var addSplashPanel = null;
var currentPlace = -1;
var selectedForEquals = new Array();
var isEqualsPage = false;

function addModificationFromModelPage(modificationId) {
    if (selectedForEquals.length == 3) {
        alert("Сравнивать можно не больше 3 автомобилей");
        return;
    }
    if (eq_alreadySelected(modificationId)) {
        alert("Данная модификация уже выбранна для сравнения");
        return;
    }
    currentPlace = -1;
    var cp = null;
    for (var i = 0; i < 3; i++) {
        var p = document.getElementById("eq" + i);
        if (p.getAttribute("status") == "empty") {
            currentPlace = i;
            cp = p;
            break;
        }
    }
    if (currentPlace != -1) {
        cp.setAttribute("status", "fill");
        selectedForEquals[selectedForEquals.length] = modificationId;
        var d = document.getElementById("addM" + modificationId);
        d.getElementsByTagName("DIV")[0].style.display = "none";
        d.getElementsByTagName("DIV")[1].style.display = "block";
        d.getElementsByTagName("DIV")[2].style.display = "none";
    }
    integrio.js.include("integrio.majax");
    integrio.MAJAX.processAjax("getModels_eq", "/modules/auto/ajax/catalog.jsp", "get_modification", {modificationId:modificationId}, mp_selectModificationComplete);
    //alert(modificationId);
}

function mp_selectModificationComplete() {
    eq_showModificationInPlace(this.getParameter("brandName"), this.getParameter("modelName"), this.getParameter("name"), this.getParameter("id"), this.getParameter("src"));
    var modificationId = parseInt(this.getParameter("id"));
    var d = document.getElementById("addM" + modificationId);
    d.getElementsByTagName("DIV")[0].style.display = "none";
    d.getElementsByTagName("DIV")[1].style.display = "none";
    d.getElementsByTagName("DIV")[2].style.display = "block";
}

function eq_alreadySelected(id) {
    for (var i = 0; i < selectedForEquals.length; i++) {
        if (selectedForEquals[i] == id) {
            return true;
        }
    }
    return false;
}

function addModification_ev() {
    addModification(this);
}

function addModification(but) {
    currentPlace = parseInt(but.parentNode.getAttribute("placeNumber"));
    if (addSplashPanel == null) {
        var height = 400;
        var width = 500;
        integrio.js.include("integrio.gui.build.SplashPanel");
        addSplashPanel = new integrio.gui.build.SplashPanel({effectTime:200,withEffects:true,width:width,height:height,onClickFunction:closePane,showType:integrio.gui.build.SplashPanelEffects.FIXED_TOP,opacity:0.5,bgColor:"#666666",isAlwaysCenter:true}, "addPanel");
    }
    document.getElementById("equals_div").style.display = "none";
    document.getElementById("brands").style.display = "block";
    document.getElementById("addPanelTitle").innerHTML = "Выберите марку автомобиля";
    addSplashPanel.show();
}

function closePane() {
    addSplashPanel.hide();
}

function eq_selectBrand(id) {
    document.getElementById("equals_div").getElementsByTagName("TABLE")[0].style.display = "none";
    document.getElementById("equals_div").getElementsByTagName("DIV")[0].style.display = "block";
    document.getElementById("equals_div").style.display = "block";
    document.getElementById("brands").style.display = "none";
    integrio.js.include("integrio.majax");
    integrio.MAJAX.processAjax("getBrands_eq", "/modules/auto/ajax/catalog.jsp", "get_models", {brandId:id}, eq_getModelsComplete);

}
function eq_getModelsComplete() {
    integrio.js.include("integrio.json");
    var models = integrio.JSON.parse(this.getParameter("models")).models[0];
    var place = document.getElementById("equals_div");
    place.getElementsByTagName("DIV")[0].style.display = "none";
    var table = place.getElementsByTagName("TABLE")[0];
    table.style.display = "block";
    while (table.rows.length > 0) {
        table.deleteRow(0);
    }
    document.getElementById("addPanelTitle").innerHTML = "Выберите модель автомобиля";
    var tr = table.insertRow(0);
    var count = 0;
    for (var i = 0; i < models.length; i++) {
        var td = tr.insertCell(tr.cells.length);
        var img = document.createElement("IMG");
        img.src = models[i].src;
        td.appendChild(img);
        var name = document.createElement("DIV");
        name.innerHTML = models[i].name;
        name.className = "name";
        td.appendChild(name);
        td.setAttribute("modelId", models[i].id);
        count++;
        td.onclick = eq_selectModel;
        if (count == 4) {
            count = 0;
            tr = table.insertRow(table.rows.length);
        }
    }
}

function eq_selectModel() {
    integrio.js.include("integrio.majax");
    document.getElementById("equals_div").getElementsByTagName("TABLE")[0].style.display = "none";
    document.getElementById("equals_div").getElementsByTagName("DIV")[0].style.display = "block";
    document.getElementById("equals_div").style.display = "block";
    document.getElementById("brands").style.display = "none";
    integrio.MAJAX.processAjax("getModels_eq", "/modules/auto/ajax/catalog.jsp", "get_modifications", {modelId:this.getAttribute("modelId")}, eq_getModificationsComplete);
}
function eq_getModificationsComplete() {
    document.getElementById("addPanelTitle").innerHTML = "Выберите модификацию автомобиля";
    var place = document.getElementById("equals_div");
    place.getElementsByTagName("DIV")[0].style.display = "none";
    var table = place.getElementsByTagName("TABLE")[0];
    table.style.display = "block";
    while (table.rows.length > 0) {
        table.deleteRow(0);
    }
    integrio.js.include("integrio.json");
    var modifications = integrio.JSON.parse(this.getParameter("modifications")).modifications[0];
    var count = 0;
    var tr = table.insertRow(0);
    for (var i = 0; i < modifications.length; i++) {
        var td = tr.insertCell(tr.cells.length);
        var name = document.createElement("DIV");
        name.innerHTML = modifications[i].name;
        name.className = "name";
        td.appendChild(name);
        td.setAttribute("modificationId", modifications[i].id);
        if (eq_alreadySelected(modifications[i].id)) {
            name.className = "name_selected";
        } else {
            td.onclick = eq_selectModification;
        }
        count++;

        if (count == 4) {
            count = 0;
            tr = table.insertRow(table.rows.length);
        }
    }
}

function eq_selectModification() {
    integrio.js.include("integrio.majax");
    document.getElementById("equals_div").getElementsByTagName("TABLE")[0].style.display = "none";
    document.getElementById("equals_div").getElementsByTagName("DIV")[0].style.display = "block";
    document.getElementById("equals_div").style.display = "block";
    document.getElementById("brands").style.display = "none";
    integrio.MAJAX.processAjax("getModels_eq", "/modules/auto/ajax/catalog.jsp", "get_modification", {modificationId:this.getAttribute("modificationId")}, eq_selectModificationComplete);
}

function eq_selectModificationComplete() {
    selectedForEquals[selectedForEquals.length] = parseInt(this.getParameter("id"));
    addSplashPanel.hide();
    if (!isEqualsPage) {
        eq_showModificationInPlace(this.getParameter("brandName"), this.getParameter("modelName"), this.getParameter("name"), this.getParameter("id"), this.getParameter("src"));
    } else {
        var brandName = this.getParameter("brandName");
        var brandId = parseInt(this.getParameter("brandId"));
        var brandSrc = this.getParameter("brandSrc");
        var modelName = this.getParameter("modelName");
        var modelId = this.getParameter("modelId");
        var name = this.getParameter("name");
        var src = this.getParameter("srcBig");
        var id = this.getParameter("id");
        eqp_showModificationInPlace(brandName, brandId, brandSrc, modelName, modelId, name, id, src);
    }
}

function eq_showModificationInPlace(brandName, modelName, modificationName, id, src) {
    var p = document.getElementById("eq" + currentPlace);
    p.setAttribute("status", "fill");
    p.innerHTML = "";
    var table = document.createElement("TABLE");
    table.cellPadding = 0;
    table.cellSpacing = 0;
    table.style.width = "100%";
    var tr = table.insertRow(0);
    var imgTD = tr.insertCell(0);
    imgTD.style.width = "120px";
    var namesTD = tr.insertCell(1);
    var img = document.createElement("IMG");
    img.src = src;
    imgTD.appendChild(img);
    namesTD.innerHTML = "<div class='brandName'>" + brandName + "</div><div class='modelName'>" + modelName + "</div><div class='modificationName'>" + modificationName + "</div><div class='button'></div>";
    var closeDIV = namesTD.getElementsByTagName("DIV")[3];
    var closeIMG = document.createElement("IMG");
    closeIMG.src = "/templates/auto/images/close_button.gif";
    closeIMG.title = "Удалить";
    closeIMG.setAttribute("modificationId", id);
    closeIMG.setAttribute("placeNumber", currentPlace);
    closeIMG.onclick = eq_delete_ev;
    closeDIV.appendChild(closeIMG);
    p.appendChild(table);
    document.getElementById("equalsStartButton").style.display = selectedForEquals.length > 1 ? "block" : "none";
}
function eq_delete_ev() {
    eq_delete(this);
}
function eq_delete(b) {
    var modificationId = b.getAttribute("modificationId");
    var placeNumber = b.getAttribute("placeNumber");
    if (!isEqualsPage) {
        var p = document.getElementById("eq" + placeNumber);
        p.innerHTML = "<div class='message'>Удаление...</div>";
    }
    integrio.js.include("integrio.majax");
    integrio.MAJAX.processAjax("deleteMod" + placeNumber, "/modules/auto/ajax/catalog.jsp", "delete_modification", {placeNumber:placeNumber,modificationId:modificationId}, eq_delete_compl);
    if (!isEqualsPage) {
        document.getElementById("equalsStartButton").style.display = "none";
    }
}
function eq_delete_compl() {
    var placeNumber = this.getParameter("placeNumber");
    var modificationId = parseInt(this.getParameter("modificationId"));
    if (!isEqualsPage) {
        var p = document.getElementById("eq" + placeNumber);
        p.setAttribute("status", "empty");
        var addButton = document.createElement("INPUT");
        addButton.type = "button";
        addButton.value = "Добавить модель";
        addButton.className = "add";
        addButton.onclick = addModification_ev;
        p.innerHTML = "";
        p.appendChild(addButton);
    }
    var t = new Array();
    for (var i = 0; i < selectedForEquals.length; i++) {
        if (selectedForEquals[i] != modificationId) {
            t[t.length] = selectedForEquals[i];
        }
    }
    selectedForEquals = t;
    if (!isEqualsPage) {
        document.getElementById("equalsStartButton").style.display = selectedForEquals.length > 1 ? "block" : "none";
        var modelPageAdd = document.getElementById("addM" + modificationId);
        if (modelPageAdd != null) {
            modelPageAdd.getElementsByTagName("DIV")[0].style.display = "block";
            modelPageAdd.getElementsByTagName("DIV")[1].style.display = "none";
            modelPageAdd.getElementsByTagName("DIV")[2].style.display = "none";
        }
    } else {
        var table = document.getElementById("equalsTable");
        var tr = table.rows.item(placeNumber);
        var tdImage = tr.cells.item(0);
        tdImage.innerHTML = "<div class=\"modelImageEmpty\"><div>Автомобиль не выбран</div></div>";
        var namesTD = tr.cells.item(1);
        namesTD.innerHTML = "";
        var button = document.createElement("INPUT");
        button.type = "button";
        button.value = "Выбрать автомобиль";
        button.onclick = addModification_ev;
        namesTD.appendChild(button);
        if (selectedForEquals.length > 0) {
            document.location.reload();
        }
    }

}

function eqp_showModificationInPlace(brandName, brandId, brandSrc, modelName, modelId, name, id, src) {
    var table = document.getElementById("equalsTable");
    var tr = table.rows.item(currentPlace);
    var tdImage = tr.cells.item(0);
    var imgA = document.createElement("A");
    imgA.href = "/catalog/model.jsp?id=" + modelId;
    tdImage.innerHTML = "";
    tdImage.appendChild(imgA);
    var modelImg = document.createElement("IMG");
    modelImg.src = src;
    modelImg.className = "modelImage";
    imgA.appendChild(modelImg);
    var namesTD = tr.cells.item(1);
    namesTD.innerHTML = "";
    var brandA = document.createElement("A");
    brandA.href = "brand.jsp?id=" + brandId;
    namesTD.appendChild(brandA);
    var brandIMG = document.createElement("IMG");
    brandIMG.src = brandSrc;
    brandIMG.className = "brandImage";
    brandA.appendChild(brandIMG);
    var divNames = document.createElement("DIV");
    divNames.innerHTML = "<a href=\"brand.jsp?id=" + brandId + "\">" + brandName + "</a>&nbsp;-&nbsp;<a href=\"/catalog/model.jsp?id=" + modelId + "\">" + modelName + "</a>&nbsp;-&nbsp;" + name
    divNames.className = "namesDiv";
    namesTD.appendChild(divNames);
    var delDiv = document.createElement("DIV");
    namesTD.appendChild(delDiv);
    var closeIMG = document.createElement("IMG");
    closeIMG.src = "/templates/auto/images/close_button.gif";
    closeIMG.title = "Удалить";
    closeIMG.setAttribute("modificationId", id);
    closeIMG.setAttribute("placeNumber", currentPlace);
    closeIMG.onclick = eq_delete_ev;
    delDiv.appendChild(closeIMG);
    delDiv.className = "delButton";
    if (selectedForEquals.length > 1) {
        document.location.reload();
    }
}

