/**
 * Запрос v 0.1 (26.10.2010)
 */


var req;

function loadXMLDoc(url, data, id) {
    req = null;
    if (window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch (e){}
    } else if (window.ActiveXObject) {
        try {
            req = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){
            try {
                req = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e){}
        }
    }
    if (req) {
        req.onreadystatechange = function() { processReqChange(id); }
        req.open("POST", url, true);
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        //req.setRequestHeader("Content-Length", url.length());
        if (data == null) {
            req.send('');
        } else {
            req.send(data);
        }
    } else {
        alert("Браузер не поддерживает AJAX");
    }
}

function processReqChange(id) {
    if (req.readyState == 4) {
        if (req.status == 200) {
            // вывод
            document.getElementById(id).innerHTML = req.responseText;
            //req.abort();
        } else {
            alert("Не удалось получить данные:\n" + req.statusText);
        }
    }
}

/**
 * Запрос данных и вывод
 * @param params - передаваемый параметр
 * @param id - id объекта куда вставить результат
 * @returns {Boolean}
 */
function reqOpen(url, params, id) {
    loadXMLDoc(url, params, id);
    return false;
}

/**
 * Запрос данных (из формы) и вывод
 * @param form - id формы
 * @param params - передаваемый параметр
 * @param id - id объекта куда вставить результат
 * @returns {Boolean}
 */
function reqSend(form, params, id) {
    var v = document.getElementById(form);
    var formData = "";
    for (var i=0; i<v.length; i++) {
        if (v.elements[i].type == 'checkbox' && !v.elements[i].checked) continue;
        formData = formData+v.elements[i].name+'='+v.elements[i].value.replace(/&/g, "и")+'&';
    }
    formData = formData + params;
    loadXMLDoc('?', formData, id);
    return false;
}

