var xmlHttp = createXmlHttpRequestObject();
var serverAdress = "/include/ajax.php";
var destination = new Array();
var cache = new Array();
var showError = true;
var ajax_req;
var br_iE;

function createXmlHttpRequestObject()
	{
		var xmlHttp;

		try
		{
			br_iE = 0;
			xmlHttp = new XMLHttpRequest;

		}
		catch(e)
		{
			br_iE = 1;
			var XmlHttpVersion = new Array(
										   "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<XmlHttpVersion.length && !xmlHttp; i++)
			{
				try
				{
				xmlHttp = new ActiveXObject(XmlHttpVersion[i]);
				}
				catch(e){}
			}
		}

		if(!xmlHttp)
			alert("Ошибка создания объекта XMLHttpRequest.");
		else
			return xmlHttp;
	}

function handleRequestStateChange()
	{
	if (xmlHttp.readyState == 4)
		{
		if(xmlHttp.status == 200)
			{
				try
				{
				readResponse();
				}
				catch(e)
				{
				displayError(e.toString());
				}
			}
		else
			{
			displayError(xmlHttp.statusText);
			}
		}
	}


function fnShowProps(obj, objName){
    var result = "";
    for (var i in obj) // обращение к свойствам объекта по индексу
        result += objName + "." + i + " = " + obj[i] + "";
    alert(result);
}




function readResponse()
	{
	var div_id =  destination.shift();
	var div = document.getElementById(div_id);

	var response = xmlHttp.responseText;

	/*if(!response || !response.documentElement)
		throw("Неправильная структура XML"+xmlHttp.responseText);

	var rootNodeName = response.documentElement.nodeName;

	if(rootNodeName=="parsererror")
		throw("Неправильная структура XML"+xmlHttp.responseText);	*/
	//var arrCnt = response.getElementsByTagName('content');

	if(br_iE)
		div.innerHTML = response;
	else
		div.innerHTML = response;

	//document.getElementById("an_model_id").disabled=false;
	execAjax();
	}

function displayError($message)
	{
	if(showError)
		{
		alert("Обнаружена ошибка: \n" + $message);
		}

	}

function  execAjax()
	{
 if(xmlHttp)
	{

		try
		{
			if((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length >0)
			{
			var cacheEntry = cache.shift();

			xmlHttp.open("POST",serverAdress,true);
			xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xmlHttp.onreadystatechange  = handleRequestStateChange;

			xmlHttp.send(cacheEntry);
			}
		}
		catch (e)
			{
				location.reload();
				/*fnShowProps(location, "location");*/
				/*displayError(e.toString());*/
			}

	}
  }
