﻿$(document).ready(function () {
    $("#filterMenu > li").click(function (e) {
        e.stopPropagation();
        //$('input.btn-SearchFilter').attr("disabled", "disabled");
    });
});
$("div.close").live("click", function () {
    $(this).parent().hide();
    $("#filterMenu > li").removeClass("active");
})
//клики и показ формы
var filterType = null;
function ShowCatalogFilter(sender, ftype) {
    var divMain = $("div.filterOnMain");
    if (divMain.hasClass("index"))
        divMain = $("#divFilterOnIndex");
    if (divMain.find("div.filterWindow").length == 0) {
        $.get("/redirect.ashx?ID=450")
        divMain.append('<div class="filterWindow"></div>');
    }
    var divForm = divMain.find('div.filterWindow');
    if (ftype == filterType) {
        if ($(sender).hasClass("active")) {
            $(sender).removeClass("active");
            divForm.hide();
        }
        else {
            $(sender).addClass("active");
            divForm.show();
        }
    }
    else {
        filterType = ftype;
        $(sender).parent().find(">li.active").removeClass("active");
        $(sender).addClass("active");
        divForm.show();
        LoadCatalogForm(divForm);
    }
}

function BindCatalogForm() {
    var divForm = $("div.filterWindow");
    divForm.find("ul.catList>li>a").click(
    function (e) {
        if (!$(this).parent().hasClass("active")) {
            divForm.find("ul.catList>li").removeClass("active");
            $(this).parent().addClass("active");
            divForm.find("#ddlCatalogFilterCategories").val('');
            divForm.find("#ddlCatalogFilterVendors").val('');
            LoadCatalogForm(divForm);
        }
        return false;
    }
    );
    divForm.find("#ddlCatalogFilterCategories, #ddlCatalogFilterVendors").change(
    function () {
        if ($(this).attr("id") == 'ddlCatalogFilterCategories') {
            $('#ddlCatalogFilterVendors').attr("disabled", "disabled");
        }
        LoadCatalogForm(divForm);
        //if (divForm.find("#ddlCatalogFilterCategories").val()) {
        //$('input.btn-SearchFilter').attr("disabled", "");
        //}
    });

    //    divForm.find("#ddlCatalogFilterVendors").change(
    //    function () {
    //        if ($(this).val() > 0) {
    //            divForm.find(":button").attr("disabled", false);
    //            divForm.find("div.radButtGroup :radio").attr("disabled", false);

    //        }
    //        else {
    //            divForm.find(":button").attr("disabled", true);
    //            divForm.find("div.radButtGroup :radio").attr("disabled", true);
    //        }
    //    }
    //    );
    divForm.find("a.result:eq(0)").attr("href",
       '/ru/catalog_gruzovik/search_by_features/default.aspx?force=1&' + GetCatalogFilterParams()
    );
    divForm.find("a.result:eq(1)").attr("href",
       '/ru/catalog_gruzovik/search_by_features/default.aspx?InAds=1&force=1&' + GetCatalogFilterParams()
    );
}
function LoadCatalogForm(divForm) {
    divForm.load(GetCatalogFilterURL(), function () {
        //BindCatalogFilterScroll();
        BindCatalogForm();
    });
}
function GetCatalogFilterURL() {
    var result = "/page_modules/CatalogFilter.aspx?ftype=" + filterType;
    var params = GetCatalogFilterParams();
    if (params)
        return result + "&" + params;
    else
        return result;
}
function GetCatalogFilterParams() {
    var divForm = $("div.filterWindow");
    if (divForm.find("ul.catList>li.active").length == 1) {
        // 
        var result = 'MainCategoryID=' + divForm.find("ul.catList>li.active").attr("id").replace("liMainCat_", "");
        if (divForm.find("#ddlCatalogFilterCategories").val() > 0) {
            result += '&CategoryID=' + divForm.find("#ddlCatalogFilterCategories").val();
            //result += '&InAds=' + divForm.find("div.radButtGroup :radio:checked").val();
            if (divForm.find("#ddlCatalogFilterVendors").val() > 0 && !$('#ddlCatalogFilterVendors').attr("disabled")) {
                result += '&VendorID=' + divForm.find("#ddlCatalogFilterVendors").val();
            }
        }
        return result;
    }
    return null;
}

//++++++++++++++++ перенос пунктов из доп. меню на серую панель ++++++++++++++++++++
$(document).ready(function() {
    var resize = false;
    transferMenuItems();
})
$(window).resize(function(resize) {    
    var resize = true;
    transferMenuItems(resize);
})
function transferMenuItems(resize) {
    
    var filterMenu = $("#filterMenu");
    var adsMenu = filterMenu.find("> li ul.adsMenu");
    var adsMenuLi = adsMenu.find("> li");
    
    if(resize) {
        filterMenu.find("> li.transfered").remove();
        adsMenuLi.show();
    }
    
    var companiLinkW = filterMenu.parent().parent().width();    
    var topSearchW = $("div.searchNextToFilter").width();
    var availW = companiLinkW - filterMenu.outerWidth(true) - topSearchW;
    
    // добавляем невидимый временный блок
    filterMenu.parent().append("<div id='tempBlock' style='position:absolute; bottom:100%; left:0; font-size:1.4em; font-weight:bold; visibility:hidden'></div>")
    var tempBlock = filterMenu.parent().find("#tempBlock");
    
    for(var i = 0, k = adsMenuLi.length, transferedLis = ""; i < k; i++) {
        tempBlock.empty();
        tempBlock.append("<li>" + adsMenuLi.eq(i).html() + "</li>");
        
        if(availW > 0) {
            if(tempBlock.width() + 22 < availW) {
                availW -= (tempBlock.width() + 22); // li имеет боковые отступы по 11
                transferedLis += "<li class='transfered'>" + adsMenuLi.eq(i).html() + "</li>";
                adsMenuLi.eq(i).hide();
            }
            else {
                filterMenu.find("> li:last-child").before(transferedLis);
                tempBlock.remove();
                break;
            }
        }
    }
}


/*
var currentCategoriesMarginLeft = 0;
var currentCategoriesLiStop = 0;
//скроллинг
function BindCatalogFilterScroll(firstScroll) {
var filterWin = $("div.filterWindow");
var catList = $("#catList");
var catListLi = $("#catList > li");
var catListWrapper = $("div.catListContainer > div");
var arrFilterL = $("div.arrFilterL");
var arrFilterR = $("div.arrFilterR");
var lisArr = [];
var liStop = 0;
var maxMargin = 0;
for (var i = 0, k = catListLi.length, lisW = 0; i < k; i++) {
lisArr[i] = catListLi.eq(i).outerWidth(true);
lisW += catListLi.eq(i).outerWidth(true);
}
catList.width(lisW);
catList.css({ "marginLeft": catListWrapper.width(), "visibility": "visible" });
maxMargin = lisW - catListWrapper.width();
if (firstScroll) {
currentCategoriesMarginLeft = 0;
catList.animate({ "marginLeft": 0 }, 1000);
}
else {
catList.css("marginLeft", currentCategoriesMarginLeft + 'px');
liStop=currentCategoriesLiStop;
if(currentCategoriesMarginLeft<0)
arrFilterL.removeClass("inActive");
}
    
arrFilterR.click(function () {
arrFilterL.removeClass("inActive");
var catListWrapperW = catListWrapper.width();        
var currentMargin = Math.abs(currentCategoriesMarginLeft);
for (var i = liStop, kolvoLisToScroll = 0; kolvoLisToScroll < catListWrapperW && (currentMargin + kolvoLisToScroll) < maxMargin && i < lisArr.length; i++) {
if (kolvoLisToScroll + lisArr[i] < catListWrapperW) {
kolvoLisToScroll += lisArr[i];
liStop = i;
}
else
break;
}
if (liStop == lisArr.length - 1 || (currentMargin + kolvoLisToScroll) >= maxMargin) {
arrFilterR.addClass("inActive");
}
currentCategoriesMarginLeft = -(kolvoLisToScroll + currentMargin);
catList.animate({ "marginLeft": currentCategoriesMarginLeft + "px" }, 1000);
currentCategoriesLiStop = liStop;

});
arrFilterL.click(function () {
arrFilterR.removeClass("inActive");
var catListWrapperW = catListWrapper.width();
var currentMargin = Math.abs(currentCategoriesMarginLeft);
for (var i = liStop, kolvoLisToScroll = 0; kolvoLisToScroll < catListWrapperW && (currentMargin - kolvoLisToScroll) > 0 && i > 0; i--) {
if (kolvoLisToScroll + lisArr[i] < catListWrapperW) {
kolvoLisToScroll += lisArr[i];
liStop = i;
}
else
break;
}
currentCategoriesMarginLeft += kolvoLisToScroll;
if (Math.abs(currentCategoriesMarginLeft) < lisArr[0]) {
currentCategoriesMarginLeft = 0;
liStop = 0;
}
if (liStop == 0) {
arrFilterL.addClass("inActive");
}

catList.animate({ "marginLeft": currentCategoriesMarginLeft + "px" }, 1000);
currentCategoriesLiStop = liStop;
});
}
*/
