var xmlhttp;

GetXmlHttpObject= function() {
	if (window.XMLHttpRequest)   {
	  // code for IE7+, Firefox, Chrome, Opera, Safari
	  return new XMLHttpRequest();
	  }
	if (window.ActiveXObject)   {
	  // code for IE6, IE5
	  return new ActiveXObject("Microsoft.XMLHTTP");
	  }
	return null;
}

ajax= function(url, f) {
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null) {
  alert ("Browser does not support HTTP Request");
  return;
  }
  
var params= "name="+document.getElementById("name").value;
params+= "&email="+document.getElementById("email").value;
params+= "&phone="+document.getElementById("phone").value;
params+= "&message="+document.getElementById("message").value;
params+= "&offer="+document.getElementById("offer").value;

xmlhttp.open("POST",url,true);

//Send the proper header information along with the request
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");

xmlhttp.onreadystatechange=f;

xmlhttp.send(params);
}

showResponse= function() {
	if (xmlhttp.readyState==4) {
		document.getElementById("contactForm").innerHTML=xmlhttp.responseText;
	}
}


sendData= function(url) {
	var query=url;

	var name_field= document.getElementById('name');
	var email_field= document.getElementById('email');
	var phone_field= document.getElementById('phone');
	
	var passed=false;
	
	//run valdation on all fields
	passed=validateField(name_field,'name');
	passed=(validateField(email_field,'email') && passed);
	passed=(validateField(phone_field,'phone') && passed);

	//if all all passed, run sendata
	if (passed) {
		ajax(url, showResponse);
	}
}

validateField= function(field, type) {
	var regex;
	var input=field.value;

	if (type =="email") {
		regex=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i; //email format
	} else if (type == "phone") {
		regex=/^\(?[0-9]{3}\)?[ \.-]?[0-9]{3}[ \.-]?[0-9]{4}$/; //phone number format
	} else {
		regex= /[A-Z]+/i; //non-blank
		if (input!="") {
			input="";
		}
	}
	
	//do all fields validate?
	if (regex.test(field.value)) {
		//alert("fixed");
		field.setAttribute("class","");
//		document.getElementById("error_"+type).setAttribute("class","hidden");
		document.getElementById("label_"+type).setAttribute("class","");
		return true;
	} else {

		field.setAttribute("class","error");	
	//	document.getElementById("error_"+type).setAttribute("class","error");	
		document.getElementById("label_"+type).setAttribute("class","error");	
		//field.setAttribute("onkeyup","validateField(this, 'error_'+type, type);");
		//field.onKeyUp=validateField(field, type);
		//alert("failed");
		return false;
	} 
}


