function zXmlHttp()
{
}

zXmlHttp.createRequest = function()
{
	if(typeof XMLHttpRequest != "undefined")
	{
		return new XMLHttpRequest();
	}	
	else
	{
		var zXmlVersion = null;
		var zXmlVersions = ["MSXML2.XmlHttp.6.0","MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp","Microsoft.XmlHttp"];
		for(var i=0; i<zXmlVersions.length; i++)
		{
			try
			{
				new ActiveXObject(zXmlVersions[i]);
				zXmlVersion = zXmlVersions[i];
				break;
			}
			catch(oError)
			{                
			}
		}
		
		if(zXmlVersion)
		{
			return new ActiveXObject(zXmlVersion);
		}
		else
		{
		throw new Error("Ваш браузер не поддерживает XML HTTP Request!");
		}
	}
};

function LoadingAlert(action)
{
	if(action == "show")
	{
		document.body.style.cursor = "wait";
	}
	if(action == "hide")
	{
		document.body.style.cursor = "default";
	}
}

function LoadingErrorAlert(error)
{
	window.defaultStatus = "Ошибка загрузки: "+error;	
}

function XmlHttp(idArray, uri, queryArray)
{
	var queryString = "";
	var syncStatus = true;
	
	if(idArray.length == 0)
	{
		syncStatus = false;
	}
	
	for(i in queryArray)
	{
		queryString += i+"="+escape(encodeURI(queryArray[i]))+"&";
	}
	queryString = queryString.substr(0, queryString.length-1);

	var oXmlHttp = zXmlHttp.createRequest();
	
	if(typeof XMLHttpRequest == "undefined")
	{
		LoadingAlert("show");
	}
	
	oXmlHttp.open("POST", uri, syncStatus);
	oXmlHttp.onreadystatechange = function()
	{
		if(oXmlHttp.readyState == 1 && typeof XMLHttpRequest != "undefined")
		{
			LoadingAlert("show");
		}
		if(oXmlHttp.readyState == 4)
		{
			if(oXmlHttp.status == 200)
			{
				LoadingAlert("hide");
				for(i in idArray)
				{
					document.getElementById(String(idArray[i])).innerHTML = oXmlHttp.responseText;
				}					

			}
			else
			{
				LoadingAlert("hide");
				LoadingErrorAlert(oXmlHttp.statusText);
			}
		}
	}
	
	oXmlHttp.setRequestHeader("Method", "POST '"+uri+"' HTTP/1.1");
	oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	oXmlHttp.send(queryString);	
	
	if(!syncStatus)
	{
		return oXmlHttp.responseText;
	}
}
