function getXmlHttpRequest()
{
	var httpRequest = null;
	try
	{
		httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		try
		{
			httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e)
		{
			httpRequest = null;
		}
	}
	if (!httpRequest && typeof XMLHttpRequest != "undefined")
	{
		httpRequest = new XMLHttpRequest();
	}
	return httpRequest;
}

function getUrlSync(url)
{
	return getUrl(url, false, null);
}

function getUrlAsync(url, handleStateChange)
{
	return getUrl(url, true, handleStateChange);
}

// call a url
function getUrl(url, async, handleStateChange) {
	var xmlHttpReq = getXmlHttpRequest();

	if (!xmlHttpReq)
		return;

	if (handleStateChange)
	{
		xmlHttpReq.onreadystatechange = function()
			{
				handleChange(xmlHttpReq);
			};
	}
	else
	{
		xmlHttpReq.onreadystatechange = function() {;}
	}

	xmlHttpReq.open("GET", url, async);
	xmlHttpReq.send(null);
	return xmlHttpReq;
}

function handleChange(xmlHttpRequest) {
	if(xmlHttpRequest.readyState == 4) {
		if(xmlHttpRequest.status == 200) {
			return xmlHttpRequest;
		}
	}
}

function replaceDivContents(xmlHttpRequest, dstDivId)
{
    var dstDiv = document.getElementById(dstDivId);
	dstDiv.innerHTML = xmlHttpRequest.responseText;
}

function replaceDivContentsAsync(url, dstDivId) {

	var xmlHttpReq = getXmlHttpRequest();

	if (!xmlHttpReq)
		return;

	xmlHttpReq.onreadystatechange = function()
	{
		if (xmlHttpReq.readyState == 4) {
			var dstDiv = document.getElementById(dstDivId);
			dstDiv.innerHTML = xmlHttpReq.responseText;
		}
	};

	xmlHttpReq.open("GET", url, true);
	xmlHttpReq.send(null);
	return xmlHttpReq;
}