function getXMLRequest() {
	var XMLHttpRequestObject=false;

	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	} 
	else if(window.ActiveXObject) {
		try {
			XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				XMLHttpRequestObject = false;
			}
		}
	}
	return XMLHttpRequestObject;
}


function getText(url,callfunction,element) {
	var XMLHttpRequestObject=getXMLRequest();
		
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET",url);
		
		XMLHttpRequestObject.onreadystatechange=function() {
			if(XMLHttpRequestObject.readyState==4 && XMLHttpRequestObject.status==200) {
				callfunction(XMLHttpRequestObject.responseText,element);
				delete XMLHttpRequestObject;
				XMLHttpRequestObject=null;
			}
		};
		
		XMLHttpRequestObject.send(null);
	}
}

function setText(text,element) {
	document.getElementById(element).innerHTML=text;
}

function postText(url,data,callfunction,element,recallFunction) {
	var XMLHttpRequestObject=getXMLRequest();
		
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST",url);
		XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		
		XMLHttpRequestObject.onreadystatechange=function() {
			if(XMLHttpRequestObject.readyState==4 && XMLHttpRequestObject.status==200) {
				callfunction(XMLHttpRequestObject.responseText,element);
				delete XMLHttpRequestObject;
				XMLHttpRequestObject=null;
				
				if(recallFunction) {
					recallFunction();
				}
			}
		};
		
		XMLHttpRequestObject.send(data);
	}
}

function loginAction(text,element) {
	if(text=="loginOK")
		window.location="admin/admin.php";
	else
		element.innerHTML=text;
		element.style.display="block";
}

function elementUpdate(text,element) {
	element.innerHTML=text;
}

function setupContact() {
	if(document.getElementById("contactform")) {
		var contactdata=""
		var contactform=document.getElementById("contactform");	
		contactform.onsubmit=function() {
			var contactdata="";
			for(var i=0;i<contactform.elements.length;i++) {
				contactdata+=contactform.elements[i].name + "=" + escape(contactform.elements[i].value) + "&";	
			}
			postText('contact/ajaxcontact.php',contactdata,elementUpdate,contentholder,setupContact);
			return false;
		};
	}	
}

function pageSetup() {
	var loginform=document.getElementById("loginform");	
	var loginText=document.getElementById("loginText");
	loginform.onsubmit=function() {
		var data="";
		for(var i=0;i<loginform.elements.length;i++) {
			data+=loginform.elements[i].name + "=" + escape(loginform.elements[i].value) + "&";	
		}
		
		postText('admin/index_ajax.php',data,loginAction,loginText,0);
		return false;
	};
	
	var searchform=document.getElementById("searchform");	
	searchform.onsubmit=function() {
		var searchterm="searchtext=" + escape(searchform.searchtext.value);	
		var contentholder=document.getElementById("contentholder");

		postText('search/index.php',searchterm,elementUpdate,contentholder,0);
		return false;
	};
	
	/* seperate function because it must be called after the contact form is submited to re-instate the onsubmit command */
	setupContact();
}

window.onload=pageSetup;