var xmlHttp;

function sendAjaxRequest(url, ajaxCallback) {
	var newXmlHttp = GetXmlHttpObject();
	if (newXmlHttp == null) {
		alert("Browser does not support HTTP Request");
		return;
	}
	if (xmlHttp != null) {
    	return false;
	}
	xmlHttp = newXmlHttp;
	xmlHttp.onreadystatechange = ajaxCallback;
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
	return true;
}

function sendAjaxFormRequest(url, ajaxCallback, form) {
	var query = "?";
	var nparams = 0;
	for (var i = 0; i < form.elements.length; i++) {
		if (form.elements[i].value != "") {
			if (nparams > 0) {
		        query = query + "&";
	        }
	        query = query + form.elements[i].name + "=" + form.elements[i].value;
	        nparams++;
        }
    }
	sendAjaxRequest(url + query, ajaxCallback);
}

function isAjaxRequestReady() {
	return xmlHttp.readyState == 4 || xmlHttp.readyState == "complete";
}

function getAjaxResponseText() {
	var response = xmlHttp.responseText;
	xmlHttp = null;
	return response;
}

function GetXmlHttpObject() {
	var newXmlHttp = null;
	try	{
		// Firefox, Opera 8.0+, Safari
		newXmlHttp = new XMLHttpRequest();
	} catch (e)	{
		//Internet Explorer
		try	{
			newXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e)	{
			newXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return newXmlHttp;
}
