function send_message() {
  if (validate_form()) {
    var first_name = document.forms[1].elements['first_name'].value;
    var last_name = document.forms[1].elements['last_name'].value;
    var phone = document.forms[1].elements['phone'].value;
    var email = document.forms[1].elements['email'].value;
    var request_type = document.forms[1].elements['request_type'].value;
    var message = document.forms[1].elements['message'].value;
    
    var url = 'send_message.php?first_name='+first_name+'&last_name='+last_name+'&email='+email+'&phone='+phone+'&message='+message+'&request_type='+request_type;
    var req = initialise_xmlhttprequest();
    
    document.getElementById("send_status").innerHTML = "<img src='../images/wait24trans.gif'/>";

    req.onreadystatechange = function() {
      document.getElementById("send_status").innerHTML = "<img src='../images/wait24trans.gif'/>";
      if(req.readyState == 4) {
        if(req.status == 200) {
          document.getElementById("inquiry_form").innerHTML  = req.responseText;	
        } else {
          document.getElementById("inquiry_form").innerHTML="Error: returned status code " + req.status + " " + req.statusText;
        }	
      } 
    };
    req.open("GET", url, true); 
    req.send(null);
  }
}

function validate_form() {
  var first_name_valid = validate_presence_of('first_name');
  var last_name_valid = validate_presence_of('last_name');
  var email_valid = validate_presence_of('email');
  var message_valid = validate_presence_of('message');

  var email_format_valid = true;
  if (email_valid) {
    email_format_valid = validate_email_format('email');
  }
  if ( first_name_valid && last_name_valid && email_valid && email_format_valid && message_valid) {
    return true;
  } else {
    return false;
  }
}

function reset_form() {
  document.forms[1].elements['first_name'].value = '';
  document.forms[1].elements['last_name'].value = '';
  document.forms[1].elements['phone'].value = '';
  document.forms[1].elements['email'].value = '';
  document.forms[1].elements['message'].value = '';
  document.forms[1].elements['request_type'].selectedIndex = 0;

  document.getElementById('first_name_error').style.display = 'none';
  document.getElementById('last_name_error').style.display = 'none';
  document.getElementById('email_error').style.display = 'none';
  document.getElementById('email_invalid_error').style.display = 'none';
  document.getElementById('message_error').style.display = 'none';
}

function validate_presence_of(el) {
  var valid=false;
  var el_value = document.forms[1].elements[el].value;
  if (el_value=='') {
    valid = false;
    show_error_message(el);
  } else {
    valid = true;
    hide_error_message(el);
  }
  return valid;
}

function validate_email_format(el) {
  var valid=false;
  var el_value = document.forms[1].elements[el].value;
  var objRegExp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/
  //check for valid email
  if (objRegExp.test(el_value)) {
    valid = true;
    hide_error_message(el+'_invalid');
  }
  else {
    valid = false;
    show_error_message(el+'_invalid');
  }
  return valid;
}

function show_error_message(el) {
  document.getElementById(el+'_error').style.display='';
}

function hide_error_message(el) {
  document.getElementById(el+'_error').style.display='none';
}

function start_search() {
  var search_query = document.forms[0].elements['q'].value;
  //alert('search_query: '+search_query);
  //document.location.href = 'http://www.google.com.au/search?hl=en&safe=off&q=site%3Asmartsuper.com.au+'+search_query+'&btnG=Search&meta=';
  search_query= 'site:smartsuper.com.au '+search_query;
  document.forms[0].elements['q'].value = search_query;
}

function initialise_xmlhttprequest() {
  var req = null;
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    if (req.overrideMimeType)  {
      req.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) {
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch (e) {}
    }
  }
  return req;
}      
