var requester;
var funcToEval;
var oldSortName;
var oldSortOrder = "ascending";

function getHTTPRequester() {
	try {
		requester = new XMLHttpRequest();
	}
	catch (error)
	{
		try {
			requester = new ActiveXObject("Microsoft.XMLHTTP");			
		}
		catch (error) {
			try {
				requester = new ActiveXObject("Msxml2.XMLHTTP");	
			}
			catch (error) {
				return false;
			}
		}
	}
	
	try {
		requester.overrideMimeType('text/xml');
	}
	catch (ex) {}
	return requester;
}

function sendRequest(functionName, type, url, async) {
		requester = getHTTPRequester();
	if (requester != null) {
		requester.open(type, url, true);
		requester.send(null);
		
		funcToEval = functionName;
		requester.onreadystatechange = stateChanged;
	} else {
		alert("Error retrieving requester! HTTP Requester is not valid!");
	}
}

function stateChanged() {
	if (requester.readyState == 4) {
		if (requester.status == 200) {
			eval(funcToEval);
		} else {
			alert("There was a problem while retrieving data from the server:\n"+requester.statusText);
		}
	}
	return true;
}
