/*
 * HTTP object stuff
 */
function getHTTPObject() {
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5)
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
			  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
			  xmlhttp = false;
			}
		}
	@else
	xmlhttp = false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp = false;
		}
	}
	return xmlhttp;
}

/*
 * Ask server for information
 */
var returnFunction = "";
var returnID = "";
var requestList = new Array();
var requestBusy = false;
function startRequest(url, functie, id) {
	if(!functie || functie == "") functie = "";
	if(http)
	{
		if(requestBusy)
		{ // one request at a time...try again later, first save request
			requestList[requestList.length] = new Array(url, functie, id);
		}
		else
		{
			requestBusy = true;
			returnFunction = functie;
			returnID = id;
			http.open("GET", url, true);
			http.onreadystatechange = handleHttpResponse;
			http.send(null);
		}
	}
}

/*
 * Handle the stop respons from the server
 */
function stopHttpResponse() {
	if (http.readyState == 4) {
		results = http.responseText;
		placeRequest();
	}
}

/*
 * Handle the respons from the server
 */
function handleHttpResponse() {
	if (http.readyState == 4) {
		// Split the comma delimited response into an array
		requestResults = http.responseText;
		if(!requestResults || requestResults == "") requestResults = "none";
		if(requestResults)
		{
			if(typeof(eval(returnFunction)) == "function")
			{
				requestResults = requestResults.replace(/\\/g, "");
				requestResults = requestResults.replace(/\"/g, "\\\"");
				requestResults = requestResults.replace(/\'/g, "\\\'");
				requestResults = requestResults.replace(/[\n\r]/g, "");
				returnFunction = returnFunction+"('"+requestResults+"','"+returnID+"')";
				eval(returnFunction);
			} else {
				//alert(results);
			}
		}
		requestBusy = false;
		if(requestList.length)
		{	// there is a request waiting
			newRequst = requestList.shift();
			startRequest(newRequst[0], newRequst[1], newRequst[2]);
		}
	}
}

var http = getHTTPObject();	// We create the HTTP Object
