/*
        Author of this script - Andrew Nikolsky (a@colorfor.ru) | 2007
*/
var xmlHttp = createXmlHttpRequestObject();
var state = 0;
var div_id = 'object';
function createXmlHttpRequestObject()
{
        var error;
        var xmlHttp;
        try
        {
                xmlHttp = new XMLHttpRequest();
        }
        catch (e)
        {
                var XmlHttpVersions = new Array("Microsoft.XMLHTTP",
                "MSXML2.XMLHTTP.6.0",
                "MSXML2.XMLHTTP.5.0",
                "MSXML2.XMLHTTP.4.0",
                "MSXML2.XMLHTTP.3.0",
                "MSXML2.XMLHTTP.2.0",
                "MSXML2.XMLHTTP");
                error = e.toString();
                for(var i = 0; i < XmlHttpVersions.length && !xmlHttp; i++)
                {
                        try
                        {
                                xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
                        }
                        catch (e)
                        {
                        }
                }
        }
        if(!xmlHttp) alert("Error of Object creation: " + error);
        else return xmlHttp;
}
function handleRequestStateChange()
{
        //alert("state: " + state + " | Status: " + xmlHttp.readyState);
        if(xmlHttp.readyState == 4)
        {
                if(xmlHttp.status == 200)
                {
                        try
                        {
                                handleServerResponse(div_id);
                        }
                        catch (e)
                        {
                        	EndBlink();
                                alert("Ошибка чтения ответа сервера: " + e.toString());
                        }
                }
                else
                {
                        alert("Сервер не может выдать запрошенную информацию");
                        EndBlink();
		        document.body.style.cursor = 'auto';
                }
        }
        else
        {
        	BeginBlink();
                document.body.style.cursor = 'progress';
        }
}
function handleServerResponse(what)
{
        var resp = xmlHttp.responseText;
        //resp.setContentType("text/xml;charset=;Windows-1251");
        if(state)
        {
        	document.getElementById(what).innerHTML = resp;
        }
        else
        {
                document.getElementById(what).innerHTML = document.getElementById(what).innerHTML + resp;
        }
        EndBlink();
        document.body.style.cursor = 'auto';
}
function AJAX(div_id_2, key, id)
{
        div_id = div_id_2;
        if(xmlHttp)
        {
                try
                {
                        //state = 1;
			xmlHttp.open("GET", "ajax.html?key=" + key + "&id=" + id, true);
                        //xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                        xmlHttp.onreadystatechange = handleRequestStateChange;
                        xmlHttp.send(null);
                        //alert("connected.");
                }
                catch (e)
                {
                        alert("Невозможно соединиться с сервером: " + e.toString());
                }

        }
}

