var ajax = 
{
	requestObjects :
	[
		function() {return new XMLHttpRequest();},
		function() {return new ActiveXObject("Microsoft.XMLHTTP");},
		function() {return new ActiveXObject("MSXML2.XMLHTTP.3.0");},
		function() {return new ActiveXObject("MSXML2.XMLHTTP");}
	],
	
	requestObject : null,
	
	newRequestObject : function()
	{
		var x;
		
		for (x=0; x < ajax.requestObjects.length; x++)
		{
			try
			{
				var object = ajax.requestObjects[x];
				var request = object();
				if (request != null)
				{
					ajax.requestObject = object;
					return request;
				}
			}
			catch(err)
			{
				continue;
			}
		}
		
		ajax.requestObject = function() {throw new Error("XMLHttpRequest not supported")};
		ajax.requestObject();
	},
	
	sendGetRequest : function(url, values, elementID)
	{
		var request = ajax.newRequestObject();
		request.open("GET", url);
		//Send the proper header information along with the request
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		request.setRequestHeader("Content-length", values.length);
		request.setRequestHeader("Connection", "close");
		
		request.onreadystatechange = function()
		{
			if(request.readyState == 4)
			{
				if (request.status == 200)
				{
					document.getElementById(elementID).innerHTML = request.responseText;
				}
			}
		}
		request.send(null);
	},
	
	sendPostRequest : function(url, values, elementID, ajaxFunction)
	{
		ajaxFunction = ajaxFunction || function(returnText,elementID){document.getElementById(elementID).innerHTML = returnText;};
		var request = ajax.newRequestObject();
		request.open("POST", url);
		
		//Send the proper header information along with the request
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		request.setRequestHeader("Content-length", values.length);
		request.setRequestHeader("Connection", "close");
		
		request.onreadystatechange = function()
		{
			if(request.readyState == 4)
			{
				if (request.status == 200)
				{
					ajaxFunction(request.responseText,elementID);
					//document.getElementById(elementID).innerHTML = request.responseText;
				}
			}
		}
		request.send(values);
	},
	
	sendMultiplePostRequest : function(data)
	{
		var url       = data.url;
		var values    = data.values;
		var elementID = data.elementID;
		
		var url2       = data.url2;
		var values2    = data.values2;
		var elementID2 = data.elementID2;
		
		var request = ajax.newRequestObject();
		request.open("POST", url);
		
		//Send the proper header information along with the request
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		request.setRequestHeader("Content-length", values.length);
		request.setRequestHeader("Connection", "close");
		
		request.onreadystatechange = function()
		{
			if(request.readyState == 4)
			{
				if (request.status == 200)
				{
					document.getElementById(elementID).innerHTML = request.responseText;
					ajax.sendPostRequest(url2,values2,elementID2);
				}
			}
		}
		request.send(values);
	}
}

