/* myajax.js - ajax script to async sending contact */

var req; // ajax object variable

// ajax processing
function loadXMLDoc(url)
{
    req = null;
    if (window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch (e){}
    } else if (window.ActiveXObject) {
        try {
            req = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){
            try {
                req = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e){}
        }
    }

    if (req) {
    	document.getElementById('submit').disabled = true;
    	document.getElementById('submit').value = "Wait...";
        req.open("POST", url, true);
		var param = "Name="+escape(document.getElementById('Name').value);
		param += "&Company="+escape(document.getElementById('Company').value);
		param += "&Email="+escape(document.getElementById('Email').value);
		param += "&Telephone="+escape(document.getElementById('Telephone').value);
		param += "&Code="+escape(document.getElementById('Code').value);
		param += "&Enquiry="+escape(document.getElementById('Enquiry').value);
		req.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
        req.onreadystatechange = processReqChange;
        req.send(param);
    }
    else {
    	alert("Error initializing XMLHttpRequest!");
    }
}

// request ajax function
function processReqChange()
{
    if (req.readyState == 4) {
        if (req.status == 200) {
          if(req.responseText.match(/^OK/) != null) {
          	alert('Your contact has been sent!');
            document.getElementById('contact_form').reset();
          } else {
            alert(req.responseText);
          }
        } else {
            alert("Request Error:\n" +
                req.statusText);
        }
        document.getElementById('submit').value = 'send';
        document.getElementById('submit').disabled = false;
    }
}

// validate data form (contact)
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      	  }
        }
      } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n';
      }
    }
    if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }

