// JavaScript Document
function setQueryString( ){
queryString="";
var frm = document.forms[0];
var numberElements = frm.elements.length;
for(var i = 0; i < numberElements; i++) {
if(i < numberElements-1) {
queryString += frm.elements[i].name+"="+
encodeURIComponent(frm.elements[i].value)+"&";
} else {
queryString += frm.elements[i].name+"="+
encodeURIComponent(frm.elements[i].value);
}

}
}

var request;
var queryString; //will hold the POSTed data
function sendData( ){
setQueryString( );
var n = document.forms.enquiry_form.name.value;
var e = document.forms.enquiry_form.email.value;
var p = document.forms.enquiry_form.phone.value;
var m = document.forms.enquiry_form.message.value;
var emailFilter=/^.+@.+\..{2,3}$/;
//
if (n == "your lovely name") {
	cValid = false;
	document.getElementById('noted_name').innerHTML = "mind to share your name?";								
} else {
	cValid = true;
	document.getElementById('noted_name').innerHTML = "";
}
if ((e == "your personal email") || (!(emailFilter.test(e)))) {
	eValid = false;
	document.getElementById('noted_email').innerHTML = "so personal?";								
} else {
	eValid = true;
	document.getElementById('noted_email').innerHTML = "";
}
if ((p == "contact no. that can contact you") || (parseInt(p) != p)) {
	pValid = false;
	document.getElementById('noted_phone').innerHTML = "we wouldn't call you at 12a.m.";								
} else {
	pValid = true;
	document.getElementById('noted_phone').innerHTML = "";
}
if (m == "any message for bbw21?") {
	mValid = false;
	document.getElementById('noted_message').innerHTML = "any message will do";								
} else {
	mValid = true;
	document.getElementById('noted_message').innerHTML = "";
}
//
if ((cValid == true) && (eValid == true) && (pValid==true) && (mValid == true)) {
	var url="enquiries.php";
	httpRequest("POST",url,true);	
}
}

function clearData( ){
	document.getElementById('sent').innerHTML = "";
	document.getElementById('noted_name').innerHTML = "";
	document.getElementById('noted_email').innerHTML = "";
	document.getElementById('noted_phone').innerHTML = "";
	document.getElementById('noted_message').innerHTML = "";
}

/* Initialize a request object that is already constructed.
Parameters:
reqType: The HTTP request type, such as GET or POST.
url: The URL of the server program.
isAsynch: Whether to send the request asynchronously or not. */
function initReq(reqType,url,isAsynch){
/* Specify the function that will handle the HTTP response */
request.onreadystatechange=handleResponse;
request.open(reqType,url,isAsynch);
/* Set the Content-Type header for a POST request */
request.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded; charset=UTF-8");
request.send(queryString);
}

/* Wrapper function for constructing a request object.
Parameters:
reqType: The HTTP request type, such as GET or POST.
url: The URL of the server program.
asynch: Whether to send the request asynchronously or not. */

function httpRequest(reqType,url,asynch){
//Mozilla-based browsers
if(window.XMLHttpRequest){
request = new XMLHttpRequest( );
} else if (window.ActiveXObject){
request=new ActiveXObject("Msxml2.XMLHTTP");
if (! request){
request=new ActiveXObject("Microsoft.XMLHTTP");
}
}
//the request could still be null if neither ActiveXObject
//initialization succeeded
if(request){
initReq(reqType,url,asynch);
} else {
alert("Your browser does not permit the use of all "+
"of this application's features!");
}
}

//event handler for XMLHttpRequest
function handleResponse( ){
if(request.readyState == 4){
if(request.status == 200){
results = request.responseText;
document.getElementById('sent').innerHTML = results;
} else {
alert("A problem occurred with communicating between "+
"the XMLHttpRequest object and the server program.");
}
}//end outer if
} 