function makeRequest(ajaxRequestURL, receiptionFunctionName, postParameters)
{
	ajaxRequestURL = ajaxRequestURL + '?XMLHttpRequest=1' + '&timestamp='+ (new Date()).getTime();

	if(!(ajaxRequestResource = initAjaxObject()))
	{
			alert("XmlHttpRequest failure");
	}
	else
	{
		ajaxRequestResource.open("POST", ajaxRequestURL, true);
		//~ ajaxRequestResource.setRequestHeader("X-Requested-With", "XMLHttpRequest")
		ajaxRequestResource.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajaxRequestResource.setRequestHeader("Content-length", postParameters.length);
		//~ ajaxRequestResource.setRequestHeader("Connection", "close");
		
		ajaxRequestResource.onreadystatechange = function() 
		{
			if(ajaxRequestResource.readyState == 4 && ajaxRequestResource.status == 200)
			{
				receiveResponse(ajaxRequestResource, receiptionFunctionName);
			}
		}
		ajaxRequestResource.send(postParameters); 
	}
}
function initAjaxObject() 
{
	if (window.XMLHttpRequest) 
	{
		return new XMLHttpRequest();
	}
	else if (window.ActiveXObject) 
	{
		try 
		{
			return new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				return new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (E) 
			{
				return null;
			}
		}
	}
	else 
	{
		return null;
	}
}
function receiveResponse(ajaxRequestResource, receiptionFunctionName)
{
	if (typeof(eval(receiptionFunctionName)) != "undefined")
	{
		eval(receiptionFunctionName)(ajaxRequestResource.responseText);
	}
}
