
function CreateHttpRequestObj(sCallbackFunction, bXml) 
{ 
	var objRequest = null; 
	if (window.XMLHttpRequest) // Mozilla, Safari, MSIE7,...
	{ 
		objRequest = new XMLHttpRequest(); 
		if (objRequest.overrideMimeType)
			objRequest.overrideMimeType('text/xml');
	}
	else if (window.ActiveXObject) // IE 
	{
		try
		{ 
			objRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
		}
		catch (e)
		{ 
			try
			{ 
				objRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
			}
			catch (e) {} 
		} 
	}

	if (objRequest && sCallbackFunction)
	{
		objRequest.onreadystatechange = function()
		{ 
			if (objRequest.readyState == 4)
			{ 
				if (objRequest.status == 200)
				{ 
					if (bXml)
						eval(sCallbackFunction + '(objRequest.responseXML)'); 
					else 
						eval(sCallbackFunction + '(objRequest.responseText)'); 
				}
				else
					alert('There was a problem with the request.(Code: ' + objRequest.status + ' => ' + objRequest.statusText + ')'); 
			} 
		} 
	}

	return objRequest; 
}

function MakeGetRequest(sUrl, sQuery, sCallbackFunction, bXml) 
{
	var objRequest = CreateHttpRequestObj(sCallbackFunction, bXml); 
	if (!objRequest)
		return false; 

	objRequest.open('GET', sUrl + "?" + sQuery, true); 
	objRequest.send(null);
	return true;
}

