// Получаем AJAX обьект:
// ActiveXObject для IE, либо XMLHttpRequest для нормальных браузеров
function getXMLHttpObject() {
    var httpObj;
    if (window.ActiveXObject) {
        httpObj = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        httpObj = new XMLHttpRequest();
    }
    return httpObj;
}

// Отправка запроса и получение списка значений
function filterGetChildOptions(parent, node) {
    filterClearOptions(node);
    if (isNaN(parseInt(parent))) {
        filterChangeCount(node.form);
    } else {
        var ajax = getXMLHttpObject();
        ajax.open("GET", globalXMLHttpObjectUrl + "?mode=resources&parent=" + parent, true);
        ajax.onreadystatechange = function() {
            if (ajax.readyState == 4) {
                filterSetChildOptions(ajax.responseText, node);
                filterChangeCount(node.form);
            }
        }
        ajax.send("");
    }
}

// Установка списка значений
function filterSetChildOptions(optionsString, node) {
    if (optionsString == "") {
        return;
    }
    var i, equalPosition, optionValue, optionText;
    var optionsList = optionsString.split("||");
    var tempOption = document.createElement("option");
    try {
        node.add(tempOption, null);
    } catch(e) {
        node.add(tempOption);
    }
    for (i in optionsList) {
        equalPosition = optionsList[i].indexOf("=");
        optionValue   = optionsList[i].substr(0, equalPosition);
        optionText    = optionsList[i].substr(equalPosition + 1);
        tempOption    = document.createElement("option");
        tempOption.value = optionValue;
        tempOption.text  = optionText;
        
        try {
            node.add(tempOption, null);
        } catch(e) {
            node.add(tempOption);
        }
    }
    node.selectedIndex = 0;
}

// Очистка списка значений
function filterClearOptions(node) {
    var optLen = node.options.length;
    for (var i = 0; i < optLen; i++) {
        node.remove(0);
    }
}

// Вывод количества найденых ресурсов при изменении фильтра
function filterChangeCount(form) {
    var countSpan = document.getElementById("filter_count_total");
    countSpan.innerHTML = '<img src="/assets/images/ajax-loader.gif" width="16" height="16" alt="Загрузка" style="float:left;padding:5px;">';
    var ajax = getXMLHttpObject();
    var url = globalXMLHttpObjectUrl + "?mode=filter";
    for (var i = 0; i < form.elements.length; i++) {
        url += "&" + form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value);
    }
    ajax.open("GET", url, true);
    ajax.onreadystatechange = function() {
        if (ajax.readyState == 4) {
            countSpan.innerHTML = ajax.responseText;
        }
    }
    ajax.send("");

}

// Сравнение товаров
function productCompare(id, node) {
    var op;
    if (!node.checked) {
        op = "remove";
    } else {
        op = "add";
        if (globalCompareProductsCount > 6) {
            return;
        }
    }
    var ajax = getXMLHttpObject();
    ajax.open("GET", globalXMLHttpObjectUrl + "?mode=compare&op=" + op + "&id=" + id, true);
    ajax.onreadystatechange = function() {
        if (ajax.readyState == 4) {
            if (op == "remove") {
                node.checked = false;
                node.removeAttribute("checked");
                globalCompareProductsCount--;
                if (globalCompareProductsCount == 6) {
                    $(".shs-price :checkbox:not(:checked)").removeAttr("disabled");
                }
            } else {
                node.checked = true;
                node.setAttribute("checked", "checked");
                globalCompareProductsCount++;
                if (globalCompareProductsCount == 7) {
                    $(".shs-price :checkbox:not(:checked)").attr("disabled", "disabled");
                }
            }
        }
    }
    ajax.send("");
    
}