function getHTTPObject() {
  var xmlhttp;
  if(window.XMLHttpRequest){
    xmlhttp = new XMLHttpRequest();
  }
  else if (window.ActiveXObject){
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    if (!xmlhttp){
        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
}
  return xmlhttp;
}

http = getHTTPObject();



function ajax_validate(frm) {
  
  var query = ""; var allok = true;
  for (var i=0; i < frm.elements.length; i++) {
    var element = frm.elements[i];
    var field = element.name;
    field = field.replace(/id_/gi, "container_");
    
    if (element.type == "text" || element.type == "select") {
      document.getElementById(field).style.borderColor = '';
    }

    if (element.type == "checkbox") {var query = query + element.name + "=" + element.checked + "&";}
    else {var query = query + element.name + "=" + escape(element.value) + "&";}
  }
  document.getElementById('Errors').innerHTML = "";
  
  var url = "/quote/ajax_validate.php?form=" +frm.name + "&" + query;
  http.open("POST", url, false); http.send(null);
  
  //Parse results
  var xmlDoc = http.responseXML;
  var textDoc = http.responseText;
 
  var errmsg_alert = "";
  
  //textDoc = textDoc.replace(/id_/gi, "container_"); alert (textDoc);
 
  //Highlight error fields
  var highlight = xmlDoc.getElementsByTagName('highlight');
  for(i=0;i<highlight.length;i++) {
    var allok = false;
    var field = highlight[i].childNodes[0].nodeValue;
    field = field.replace(/id_/gi, "container_");
    if (field != "") {
      errmsg_alert = errmsg_alert + xmlDoc.getElementsByTagName('message')[i].childNodes[0].nodeValue + "\n";
    }
    
    if (field != "alert") {document.getElementById(field).style.borderColor = "#f5566c";}
  }
 
  //Show error messages
  var errmsg = xmlDoc.getElementsByTagName('message');
  for(i=0;i<errmsg.length;i++) {
  var allok = false;
    var errormessage = errmsg[i].childNodes[0].nodeValue;
    document.getElementById('Errors').innerHTML = document.getElementById('Errors').innerHTML + errormessage + "<BR>";
  }
  if (errmsg.length > 0) {
    document.getElementById('Errors').innerHTML = document.getElementById('Errors').innerHTML + "<BR>";
    alert (errmsg_alert);
  }
  return allok;
}



function ajax_validate_postcode (postcode, country) {
  if (country != 'Australia' && postcode == '' || postcode == '(if known)') {return true;}

  var url = "/quote/ajax_validate_postcode.php?postcode=" + postcode.toUpperCase() + "&country=" + country;
  http.open("POST", url, false); http.send(null);
  var result = http.responseText;
  if (result != '') {alert (result); return false;} else {return true;}
 
}



