Adding AJAX to existing node form
Your module needs to implement hook_form_alter() to add '#ajax' arrays to the elements that trigger a change in the form. The #ajax elements will include 'wrapper' and 'callback' elements that specify the html ID of the part of the form to replace and a function in your module that returns the part of the form that is being replaced. 

For example, if the element 'my-element' should be replaced, add 

'#prefix' =&gt; '&lt;div id="my-element-id"&gt;', 
'#suffix' =&gt; '&lt;/div&gt;' 


to the form array with key 'my-element'. The element that triggers the replacement will get 

'#ajax' =&gt; array(
   'wrapper' =&gt; 'my-element-id',
   'callback' =&gt; 'my_callback',
   'method' =&gt; 'replace',
),


Here is the callback function:

function my_callback($form, &amp;$form_state) {
    return $form['my-element'];
}


Your hook_form_alter() will hide/show elements and generate your custom messaging depending on $form_state (which it will read when the ajax callback happens).