function show_result(data) {
   var success = data.getElementsByTagName('success')[0].firstChild.data;
   var name = data.getElementsByTagName('name')[0].firstChild.data;
   var email_phone = data.getElementsByTagName('email_phone')[0].firstChild.data;
   var form_message = data.getElementsByTagName('message')[0].firstChild.data;

   //Display result on form
   var alert_holder = document.getElementById('alert_holder');

   if (success == 1) {
      alert_holder.innerHTML = 'Message Sent !';
      document.email_form.name.value='';
      document.email_form.email.value='';
      document.email_form.phone_number.value='';
      document.email_form.message.value='';


    } else {
      var message = "ERROR - Your message has not been sent ! ";

      if ((name == 0) || (email_phone == 0) || (form_message == 0)) { message = message + "please check you have included your <ul>"};
      if (name == 0) { message = message + "<li>name</li>"; } 
      if (email_phone == 0) { message = message + "<li>email or phone number</li>"; }
      if (form_message == 0) { message = message + "<li>message</li>"; }  
      if ((name == 0) || (email_phone == 0) || (form_message == 0)) { message = message + "</ul>"; }

      alert_holder.innerHTML = message;
    }
}

function send_email() {

   //Sending Message
    var alert_holder = document.getElementById('alert_holder');
    alert_holder.style.visibility = 'visible';
    alert_holder.innerHTML = "Processing Message .....";

    /* Set up the request */
    var xmlhttp =  new XMLHttpRequest();
    xmlhttp.open('POST', '/site-cgi/send_email_v1.pl', true);

    /* The callback function */
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200) {
              show_result(xmlhttp.responseXML);
            } else {
              /* ERROR RETURNED FROM SCRIPT */
              alert('An error has occured, please try again !');
            }
        }
    }

    var name = escape(document.email_form.name.value);
    var email = escape(document.email_form.email.value);
    var phone_number = escape(document.email_form.phone_number.value);
    var message = escape(document.email_form.message.value);

    /* Send the POST request */
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    //xmlhttp.send();
    xmlhttp.send('name='+name+'&email='+email+'&phone_number='+phone_number+'&message='+message);
}




//call back
function get_captcha_data(data) {
   var success = data.getElementsByTagName('success')[0].firstChild.data;
   var n1 = data.getElementsByTagName('n1')[0].firstChild.data;
   var n2 = data.getElementsByTagName('n2')[0].firstChild.data;
   var captcha_message = data.getElementsByTagName('message')[0].firstChild.data;

   var alert_holder = document.getElementById('alert_holder');

   //Display result on form
   var captcha_container = document.getElementById('captcha_container');

   if (success == 1) {
      captcha_container.innerHTML = captcha_message;
      document.email_form.n1.value = n1;
      document.email_form.n2.value = n2;
    } else {

    }

}


//get captcha
function get_captcha() {

    //Sending Message
    var captcha_container = document.getElementById('captcha_container');

    /* Set up the request */
    var xmlhttp =  new XMLHttpRequest();
    xmlhttp.open('POST', '/site-cgi/captcha.pl', true);

    /* The callback function */
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200) {
              get_captcha_data(xmlhttp.responseXML);
            } else {
              /* ERROR RETURNED / TIMED OUT ETC -  FROM SCRIPT */
              var captcha_message = "<a href='javascript:get_captcha()'>click here for question</a>";
              captcha_container.innerHTML = captcha_message;
            }

       }
    }
   
    /* Send the POST request */
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send('n1=n1');
}


// call back for captcha - send email
//show result captcha
function show_result_captcha(data) {

   var success = data.getElementsByTagName('success')[0].firstChild.data;
   var name = data.getElementsByTagName('name')[0].firstChild.data;
   var email_phone = data.getElementsByTagName('email_phone')[0].firstChild.data;
   var form_message = data.getElementsByTagName('message')[0].firstChild.data;
   var captcha = data.getElementsByTagName('captcha')[0].firstChild.data;

   //Display result on form
   var alert_holder = document.getElementById('alert_holder');
   get_captcha(); // refresh captcha    
   document.email_form.captcha_answer.value = ''; //clear captcha value     


   if (success == 1) {
      alert_holder.innerHTML = 'Message Sent !';
      document.email_form.name.value='';
      document.email_form.email.value='';
      document.email_form.phone_number.value='';
      document.email_form.message.value='';

    } else {
      var message = "ERROR - Your message has not been sent ! ";

      if ((name == 0) || (email_phone == 0) || (form_message == 0) || (captcha == 0)) { message = message + "please check you have included your <ul>"};
      if (name == 0) { message = message + "<li>name</li>"; } 
      if (email_phone == 0) { message = message + "<li>email or phone number</li>"; }
      if (form_message == 0) { message = message + "<li>message</li>"; }  
      if (captcha == 0) { message = message + "<li>captcha answer</li>"; }  

      if ((name == 0) || (email_phone == 0) || (form_message == 0) || (captcha == 0)) { message = message + "</ul>"; }

      alert_holder.innerHTML = message;
    }

}


function send_email_captcha() {

//Generate capture or send email
if (document.email_form.n1.value == 0) {
         //show captcha for first time
         document.getElementById('alert_holder').innerHTML = "Processing Message .....";
         document.getElementById('captcha_title').style.display = 'block';
         get_captcha();
         document.getElementById('alert_holder').innerHTML = "";

} else {

    //Sending Message
    var alert_holder = document.getElementById('alert_holder');
    //alert_holder.style.visibility = 'visible';
    alert_holder.innerHTML = "Processing Message .....";

    /* Set up the request */
    var xmlhttp =  new XMLHttpRequest();
    xmlhttp.open('POST', '/site-cgi/send_email_captcha.pl', true);

    /* The callback function */
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200) {
              show_result_captcha(xmlhttp.responseXML);
            } else {
              /* ERROR RETURNED FROM SCRIPT */
             alert('An error has occured, please try again !');
            }
        }
    }

    var n1 = escape(document.email_form.n1.value);
    var n2 = escape(document.email_form.n2.value);
    var captcha_answer = escape(document.email_form.captcha_answer.value);

    var name = escape(document.email_form.name.value);
    var email = escape(document.email_form.email.value);
    var phone_number = escape(document.email_form.phone_number.value);
    var message = escape(document.email_form.message.value);

    /* Send the POST request */
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send('name='+name+'&email='+email+'&phone_number='+phone_number+'&message='+message+'&n1='+n1+'&n2='+n2+'&captcha_answer='+captcha_answer);

}

}