
// creates an XMLHttpRequest instance
function createXmlHttpRequestObject() {
	// will store the reference to the XMLHttpRequest object
	
	request = null;
	// this should work for all browsers except IE6 and older
	try {
		// try to create XMLHttpRequest object
		request = new XMLHttpRequest();
		}
	catch(e) {
		// assume IE6 or older
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP");
		// try every prog id until one works
		for (var i=0; i<XmlHttpVersions.length && !request; i++) {
			try {
				// try to create XMLHttpRequest object
				request = new ActiveXObject(XmlHttpVersions[i]);
				}
			catch (e) {}
		}
	}
	// return the created object or display an error message
	if (!request){
	//clearInterval(updateInt);
	alert("Error creating the XMLHttpRequest object.");
	}
	//alert(request);
	else	return request;
}

function asynchPOST(query,url){
	http_request = createXmlHttpRequestObject();
	//alert(request);
	if (request){
	// try to connect to the server
	try	{
		// initiate the asynchronous HTTP request
		request.onreadystatechange = handleRequest;
		request.open("POST", url, true);
		request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		request.send(query);
		//alert(query);
		}
	// display the error in case of failure
	catch (e)	{
		alert("Can't connect to server:\n" + e.toString());
		}
	}

}

function handleRequest(){
	// when readyState is 4, we are ready to read the server response
	if (request.readyState == 4){
		// continue only if HTTP status is "OK"
		if (request.status == 200){
			try	{
			// do something with the response from the server
			handleServerResponse();
			}
			catch(e){
			// display error message
			alert("Error reading the response: " + e.toString());
			}
		}
		else {
		// display status message
		alert("There was a problem retrieving the data:\n" + request.statusText);
		}
	}
}