//xmlhttp.js

//Function to create an XMLHttp Object.
function getxmlhttp (){
	//Create a boolean variable to check for a valid microsoft active X instance.
	var xmlhttp = false;
	
	//Check if we are using internet explorer.
	try {
		//If the javascript version is greater than 5.
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		//If not, then use the older active x object.
		try {
			//If we are using internet explorer.
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			//Else we must be using a non-internet explorer browser.
			xmlhttp = false;
		}
	}
	
	//If we are using a non-internet explorer browser, create a javascript instance of the object.
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	
	return xmlhttp;
}

//Function to process an XMLHttpRequest.
function processajax (id,page,getOrPost, str){
	//Get an XMLHttpRequest object for use.
	xmlhttp = getxmlhttp ();
	
	//check if id is valid
	if(id){
		//randomise url to prevent caching issues
		//check the url type
		if(page.indexOf('?') == -1) {
			//no match + ?rand=9090
			var serverPage = page + "?rand=" + Math.random();
		}
		else
		{
			//match + &rand=9090
			var serverPage = page + "&rand=" + Math.random();
		}
		
		//get page with wait
		if (getOrPost == "getwait"){
			xmlhttp.open("GET", serverPage);
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					id.innerHTML = xmlhttp.responseText;
				}
				else {
					sleep(250);
					id.innerHTML = "<div style='padding-left:25px;'><img src='img/nei-loader.gif' /></div>";
				}
			}
			xmlhttp.send(null);
		}
		//getpage no wait
		else if (getOrPost == "get"){
			xmlhttp.open("GET", serverPage);
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					id.innerHTML = xmlhttp.responseText;
				}
			}
			xmlhttp.send(null);
		} 
		//submit page without wait 
		else if (getOrPost == 'post') {
			xmlhttp.open("POST", serverPage, true);
			xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					id.innerHTML = xmlhttp.responseText;
				}
				//else
				//{
					//sleep(50);
					//showhide('submit', 'hide'); 
					//showhide('loading', 'show');
				//}
			}
			xmlhttp.send(str);
		}
		//submit page 
		else {
			xmlhttp.open("POST", serverPage, true);
			xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					obj.innerHTML = xmlhttp.responseText;
				}
				else {
					sleep(250);
					obj.innerHTML = "<div style='padding-left:25px;padding-top:15px;'><img src='img/nei-loader.gif' /></div>";
				}
			}
			xmlhttp.send(str);
		}
	}
}


function sleep(milliSeconds) {
	var startTime = new Date().getTime(); // get the current time
	while (new Date().getTime() < startTime + milliSeconds); // hog cpu
}
