function entityDecode(s) {
	var e = document.createElement("div");
	e.innerHTML = s;
	return e.firstChild.nodeValue;
}
function formData2QueryString(docForm) {
	var submitContent = '';
	var formElem;
	var lastElemName = '';
	for (i = 0; i < docForm.elements.length; i++) {
		formElem = docForm.elements[i];
		if(formElem.disabled) continue;
		switch (formElem.type) {

			// Text fields, hidden form elements
			case 'text':
			case 'hidden':
			case 'password':
			case 'textarea':
			case 'submit':
			case 'select-one':
			submitContent += formElem.name + '=' + escape(formElem.value) + '&'
			break;
			// Radio buttons
			case 'radio':
			if (formElem.checked) {
				submitContent += formElem.name + '=' + escape(formElem.value) + '&'
			}
			break;
			// Checkboxes
			case 'checkbox':
			if (formElem.checked) {
				// Continuing multiple, same-name checkboxes
				if (formElem.name == lastElemName) {
					// Strip of end ampersand if there is one
					if (submitContent.lastIndexOf('&') == submitContent.length-1) {
						submitContent = submitContent.substr(0, submitContent.length - 1);
					}
					// Append value as comma-delimited string
					submitContent += ',' + escape(formElem.value);
				}
				else {
					submitContent += formElem.name + '=' + escape(formElem.value);
				}
				submitContent += '&';
				lastElemName = formElem.name;
			}
			break;
		}
	}

	// Remove trailing separator

	submitContent = submitContent.substr(0, submitContent.length - 1);

	return submitContent;

}

var responseText;

function xmlhttpGet(strURL, strSubmit, strResultFunc,id, refreshNeeded) {
	var xmlHttpReq = false;
	// IE
	if (window.ActiveXObject) {
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	// Mozilla/Safari
	else if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
		xmlHttpReq.overrideMimeType('text/xml');
	}
	xmlHttpReq.open('POST', strURL, true);
	xmlHttpReq.setRequestHeader('Content-Type',
	'application/x-www-form-urlencoded');
	xmlHttpReq.onreadystatechange = function() {
		if (xmlHttpReq.readyState == 4) {
			//performing our things
			responseText=xmlHttpReq.responseText;
			eval(strResultFunc+"(responseText,'"+id+"','"+refreshNeeded+"')")
		}

	}
	xmlHttpReq.send(strSubmit);
}


function callbackWrapper(responseText,obj){
	//checking response for the presence of error tags/markups
	cell=document.getElementById(obj);
	cell.innerHTML=responseText;
}


function processContact(frm){
	var ok=true;
	if(!frm.name.value){ok=false; alert('Please enter your name');} 
	if(!frm.email.value||frm.email.value.indexOf('@')==-1){ok=false; alert('Please enter a valid email');} 
	
	if(ok){
		strSubmit=formData2QueryString(frm);
		xmlhttpGet('contact.ajax.php',strSubmit,'callbackWrapper','contact_wrapper');
	
	}
	
	return false;
}
