$(function () {
    $('#catalogSearchSwitch a').click(function () {
        var a = $(this);
        $('#catalogSearchSwitch li').removeClass('p1-active').removeClass('p2-active');
        if (a.is('.search-catalog')) {
            $('#catalogSearchCatalog').addClass('search-active');
            $('#catalogSearchDealers').removeClass('search-active');
            $('#catalogSearchSwitch li.p1').addClass('p1-active');
        } else {
            $('#catalogSearchCatalog').removeClass('search-active');
            $('#catalogSearchDealers').addClass('search-active');
            $('#catalogSearchSwitch li.p2').addClass('p2-active');
        }
    });
    
    //catalog menu - catalog browse by...
    $('#leftmenuCatalog > li div.item').hover(function () {
        $('ul.catalog-browse',this).fadeIn("fast");
    },function () {
        $('ul.catalog-browse',this).hide();
    });
    
    //zebra tabulky
    $('table.zebra').each(function () {
        var i = 0
        $('tr',this).each(function (idx,elem) {
            if ($('td',this).length) {
                i++;
                if (i % 2 == 1) {
                    $(this).addClass('odd');
                } else {
                    $(this).addClass('even');
                }
            }
        });
    });
    
    //VYHLADAVANIE
    //vyhladavaci string
    csFilterQShowHint();
    $('#csFilterQ').focus(csFilterQHideHint);
    $('#csFilterQ').blur(csFilterQShowHint);
    //zmena katalogu
    var csFilterCatalog = $('#csFilterCatalog');
    if (!csFilterCatalog.val()) {
        csFiltersDisable();
    } else if (csFilterCatalog.is('.notloaded')) {
        csFiltersDisable();
        csFiltersLoadValues(csFilterCatalog.val(),0,1,1);
    }
    csFilterCatalog.change(function () {
        var cid = csFilterCatalog.val();
        csFiltersDisable();
        if (cid) {
            csFiltersLoadValues(csFilterCatalog.val());
        }
    });
    //vymazanie query stringu
    $('#csGo').click(function () {
        csFilterQHideHint();
        return true;
    });
    
    //VYHLADAVANIE PREDAJCOV
    //vyhladavaci string
    dsFilterQShowHint();
    $('#dsFilterQ').focus(dsFilterQHideHint);
    $('#dsFilterQ').blur(dsFilterQShowHint);
    //zmena katalogu
    var dsFilterCatalog = $('#dsFilterCatalog');
    if (!dsFilterCatalog.val()) {
        dsFiltersDisable();
    } else if (dsFilterCatalog.is('.notloaded')) {
        dsFiltersDisable();
        dsFiltersLoadValues(dsFilterCatalog.val(),1,0,0);
    }
    dsFilterCatalog.change(function () {
        var cid = dsFilterCatalog.val();
        dsFiltersDisable();
        if (cid) {
            dsFiltersLoadValues(dsFilterCatalog.val(),1,0,0);
        }
    });
    //vymazanie query stringu
    $('#dsGo').click(function () {
        dsFilterQHideHint();
        return true;
    });
});

function csFilterQShowHint() {
    var spfq = $('#csFilterQ');
    if (spfq.val() == spfq.attr('title') || spfq.val() == '') {
        spfq.addClass('hint').val(spfq.attr('title'));
    }
}
function csFilterQHideHint() {
    var spfq = $('#csFilterQ');
    spfq.removeClass('hint');
    if (spfq.val() == spfq.attr('title')) {
        spfq.val('');
    }
}

function csFiltersDisable() {
    $('#csFilterCategory, #csFilterDealer, #csFilterBrand, #csFilterQ').attr('disabled','disabled');
}
function csFiltersEnable() {
    $('#csFilterCategory, #csFilterDealer, #csFilterBrand, #csFilterQ').removeAttr('disabled');
}
function csFiltersLoadValues(cid,c,d,b) {
    if (typeof(c) == 'undefined') {
        c = 1;
    }
    if (typeof(d) == 'undefined') {
        d = 1;
    }
    if (typeof(b) == 'undefined') {
        b = 1;
    }
    $.getJSON(LANGROOT + '/catalog/search/filter-values/',{
        catalog: cid,
        categories: c,
        dealers: d,
        brands: b
    },function (filters) {
        //naplnit selecty
        if (filters.categories) {
            $('#csFilterCategory option:gt(0)').remove();
            $.each(filters.categories,function (i,o) {
                $('#csFilterCategory').append('<option value="'+o.id+'">'+o.name+'</option>');
            });
        }
        if (filters.dealers) {
            $('#csFilterDealer option:gt(0)').remove();
            $.each(filters.dealers,function (i,o) {
                $('#csFilterDealer').append('<option value="'+o.id+'">'+o.name+'</option>');
            });
        }
        if (filters.brands) {
            $('#csFilterBrand option:gt(0)').remove();
            $.each(filters.brands,function (i,o) {
                $('#csFilterBrand').append('<option value="'+o.id+'">'+o.name+'</option>');
            });
        }
        //povolit vyhladavanie
        csFiltersEnable();
    });
}


/* DEALERI */
function dsFilterQShowHint() {
    var spfq = $('#dsFilterQ');
    if (spfq.val() == spfq.attr('title') || spfq.val() == '') {
        spfq.addClass('hint').val(spfq.attr('title'));
    }
}
function dsFilterQHideHint() {
    var spfq = $('#dsFilterQ');
    spfq.removeClass('hint');
    if (spfq.val() == spfq.attr('title')) {
        spfq.val('');
    }
}
function dsFiltersDisable() {
    $('#dsFilterCategory').attr('disabled','disabled');
}
function dsFiltersEnable() {
    $('#dsFilterCategory').removeAttr('disabled');
}
function dsFiltersLoadValues(cid,c,d,b) {
    if (typeof(c) == 'undefined') {
        c = 1;
    }
    if (typeof(d) == 'undefined') {
        d = 1;
    }
    if (typeof(b) == 'undefined') {
        b = 1;
    }
    $.getJSON(LANGROOT + '/catalog/search/filter-values/',{
        catalog: cid,
        categories: c,
        dealers: d,
        brands: b
    },function (filters) {
        //naplnit selecty
        if (filters.categories) {
            $('#dsFilterCategory option:gt(0)').remove();
            $.each(filters.categories,function (i,o) {
                $('#dsFilterCategory').append('<option value="'+o.id+'">'+o.name+'</option>');
            });
        }
        //povolit vyhladavanie
        dsFiltersEnable();
    });
}
