/**
 * @author Ar
 */

var xmlHttp = createXmlHttpRequestObject();
//Адрес удаленнного сервера
var serverAdress = '/includes/js/put.php';
//Когда в true, показывать подробное описание ошибок
var showError = true;
//
var cache = new Array();

function createXmlHttpRequestObject()
    {
    var xmlHttp;
    try
    {
        xmlHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        var XmlHttpVersions = 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<XmlHttpVersions.length && !xmlHttp; i++)
        {
            try
            {
                xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
            }
            catch (e) {}
        }
    }
    if (!xmlHttp)
        alert("Error creating the XMLHttpRequest object.");
    else
        return xmlHttp;
}

function displayError($message)
{
    if(showError)
    {
        showError=false;
        alert("Ошибка:\n"+$message);
        //Пытаемся получить подтверждение через 10 сек
        
    }
}


//Улицы
function put(id,icsmart_ex_addcomp)
{            
    if (xmlHttp)
    {
        
        {
                   
            id = encodeURIComponent(id);
            
            //Ставим значения в очередь
	        cache.push("id=" + id );
		    par ="id=" + id + "&icsmart_ex_addcomp=" + id;
            try
            {
                //Если статус запроса не 1,2,3 т.е. объект request не занят и если кеш не пустой
                if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0)
                {
                    //Получаем новый набор параметров из кеша
                    var cacheEntry = cache.shift();
                    xmlHttp.open("GET", serverAdress+"?"+par, true);
                    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                    xmlHttp.onreadystatechange=handleRequestStateChange;
                    xmlHttp.send(null);
                }
            }
            catch (e)
            {
                displayError(e.toString());
            }
        
    }
}
}

function handleRequestStateChange()
{
    if (xmlHttp.readyState == 4)
    {
        if (xmlHttp.status == 200)
        {
            try
            {
                readResponse();
            }
            catch (e)
            {
                displayError(e.toString());
            }
        }
        else
        {
            displayError(xmlHttp.statusText);
        }
    }
}

function readResponse()
{
    var response = xmlHttp.responseText;
    if (response.indexOf("ERRNO") >= 0 || response.indexOf("error:") >= 0 || response.length == 0)
        throw (response.length == 0 ? "Server Error." : response);
    //ПОлучаем ответ в XML формате
    //responseXml = xmlHttp.responseXML;
    //xmlDoc = responseXml.documentElement;
    //result = xmlDoc.getElementsByTagName("result")[0].firstChild.data;
    //fieldID = xmlDoc.getElementsByTagName("fieldid")[0].firstChild.data;
    //Находим HTML элементы, отображающие ошибку
    //message = document.getElementById(fieldID + "Failed");
    //Показываем или скрываем ошибку(видимость в зависимости от класса в css)
    //message.className = (result == "0") ? "error" : "hidden";
            alert(response);    
}

