var sendReq		= getXmlHttpRequestObject();
var receiveReq	= getXmlHttpRequestObject();

//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject()
{
	var ajax = null;
	
	try
	{
		// Firefox, Opera 8.0+, Safari
		ajax = new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	
	return ajax;
}

function sendHttpRequest(path, vars, callbackF)
{
	if (sendReq.readyState == 4 || sendReq.readyState == 0)
	{
		handleStateChanged = callbackF || false;
		
		sendReq.open('POST', path + '?rand=' + Math.random(), true);
		sendReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		if (handleStateChanged != false)
			sendReq.onreadystatechange = handleStateChanged;
		
		sendReq.send(vars);
	}
}

function getHttpRequest(path, callbackF, vars)
{
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0)
	{
		var urlVars	= vars || '';
		var urlVars	= ((urlVars.length > 0) ? ('?' + urlVars + '&rand=' + Math.random() ) : ('?rand=' + Math.random() ) );
		
		receiveReq.open('GET', path + urlVars, true);
		receiveReq.onreadystatechange = callbackF; 
		receiveReq.send(null);
	}
}

