function appendUrl( param, val )
{
    var loc = window.location.search;
    if ( loc.length === 0 )
    {
        if ( val.length === 0 )
            return '';
        return "?" + param + "=" + val.join(',');
    }
    var ref = loc.split('?');
    var par = ref[1].split('&');
    for (var i = 0; i < par.length; i++ )
    {
        var pair = par[i].split('=');
        if ( pair[0] == param )
        {
            if ( val.length === 0 )
                par.splice(i, 1); // remove
            else
                par[i] = param + "=" + val.join(',');
            if ( par.length === 0 )
                return "";
            return "?" + par.join('&');
        }
    }
    if ( val.length === 0 )
        return loc;
    return loc + "&" + param + "=" + val.join(',');
}

function reloadFilters(link)
{
    snippet(link, null, '#category-view', function(){
        if (window.innerWidth <= 991) {
            var $sidebar = $('#sidebar');
            $sidebar.find('.sidebar').addClass('notransition');
            $sidebar.find('.categories-list').removeClass('closed').hide();
            $sidebar.find('.controller').css({'visibility':'hidden'});
            $sidebar.find('.sidebar').addClass('open');
            //$sidebar.find('.sidebar').css('left', '0px');
            $sidebar.find('#close-filter').show();
            $sidebar.find('.filters').show();
            $sidebar[0].offsetHeight;
            $sidebar.find('.sidebar').removeClass('notransition');
        }
    });
    history.pushState(null, null, link);
}

$(document).ready(function () {
    //filtry
    $('.lengthSlider').each(function () {
        var $this = $(this);
        var slider = $this.bootstrapSlider();
        $(this).parent().parent().find('.sliderEvent').on('click', function ( e ) {
            e.preventDefault();
            values = slider.bootstrapSlider('getValue');
            var param = $this.parent().find('input').attr('name');
            var link = window.location.pathname + appendUrl(param, values);

            reloadFilters(link);
        });
    });

    $(document).on('click', '.fi-checkbox', function (e) {
        e.preventDefault();
        var $this = $(this);
        var link = $this.attr('href');

        reloadFilters(link);
    });

    var $alert = $('body').find('.alert.alert-dismissible:not(.no-autodismiss)');
    if ($alert.length > 0) {
        setTimeout(function() {

            if ($alert.is(':hover') === false) {
                $alert.slideUp(200, function() {
                    $(this).alert('close');
                });
            }

        }, 10000);
    }
    
    $(".protect input[name='form_protect_1']").each(function(){
        var prot1 = $(this);
        //
        var prot2 = $(this).parent().find("input[name='form_protect_2']");
        if( $(prot2.length) )
        {  
            prot2.attr("value", prot1.val());
            $(this).parent().addClass("hidden"); 
        }
    });

    var $sidebarTabletList = $('#sidebar').find('.categories-list.tablet');
    $sidebarTabletList.find('li').not('.active').removeClass('open').find('.submenu').addClass('closed').removeClass('open');
    $sidebarTabletList.find('li.active').addClass('open').find('.submenu').removeClass('closed').addClass('open');
});

$(document).on('click', '[data-toggle]', function () {
    var element = $(this).data('toggle');
    var type = $(this).data('type');
    if ( type && type === 'slide' )
        $(element).slideToggle();
    else
        $(element).toggle();
});


if ( typeof $.fancybox == 'object' )
{
    $.fancybox.defaults.hash = false;
    $('.fancybox').fancybox({
        loop: true,
        arrows : true,
        infobar : false
    });
}

var searchDelay = (function () {
    var timer = 0;
    return function ( callback, ms ) {
        clearTimeout(timer);
        timer = setTimeout(callback, ms);
    };
})();

$(document).on('click', '#search-close', function () {
    $('.header .search .input').removeClass('active');
    $(".search-container").hide();
});

$(document).on('blur', '.header .search .input input[type=\"text\"]', function(){
    var div = $(".search-container");
    if (div.data('search') !== 'true')
        $(this).parent().removeClass('active');
});

$(document).on('focus', '.header .search .input input[type=\"text\"]', function () {
    var div = $(".search-container");
    $(this).parent().addClass('active');
    // jen pokud uz probehlo vyhledani
    if (div.data('search') === 'true') {
        div.show();
    }
});

$(document).on('keyup', '.header .search .input input[type=\"text\"]', function (e) {

    // nehledat pres ajax pri stisknuti enteru
    if (e.which === 13)
        return false;

    var input = $(this);
    var val = $.trim(input.val());
    var container = $(".search-container");

    if ( val.length < 3 )
    {
        container.data('search', 'false').hide();
        return;
    }

    container.show();
    $(".search-loading").show();

    var link = input.data('href');
    var obj = {
        'ajax': true,
        'search': val
    };

    searchDelay(function () {
        snippet(link, obj, '.search-container', function () {
            input.parent().addClass('active');
            $(".search-loading").hide();
            $(".search-container").show().data('search', 'true');
            if (typeof gtag === "function")
                gtag("event", "search", {search_term: val});
        });
    }, 750);
});

var width = $(window).width();

if ( width <= 991 )
    $('.sidebar .categories-list').addClass('tablet');
else
    $('.sidebar .categories-list').removeClass('tablet');

$(window).resize(function () {
    var width = $(window).width();
    var $catList = $('#sidebar').find('.categories-list');

    if ( width <= 991 )
        $catList.addClass('tablet');
    else
        $catList.removeClass('tablet');

    if ( width <= 991 )
    {
        $catList.addClass('tablet').removeClass('closed');
        plusButtonWindow();
    }
    else
    {
        $catList.removeClass('tablet');
        if ( $catList.hasClass('toggle') )
            $catList.addClass('closed');
    }
});

$(document).on('click', '.sidebar .categories-list > li', function (e) {
    if ( $('.sidebar .categories-list').hasClass('tablet') )
    {
        $('.sidebar .categories-list > li').not(this).each(function () {
            $(this).find('.submenu').removeClass('open').addClass('closed');
            $(this).removeClass('open');
        });
        //$(this).find('.submenu').slideToggle('fast');
        var $submenu = $(this).find('.submenu');
        if ($(this).hasClass('open'))
        {
            if ( $(e.target).hasClass('submenu-header-title') )
                $submenu.removeClass('open').addClass('closed');
        }
        else
        {
            $submenu.removeClass('closed').addClass('open');
        }
        
        $(this).toggleClass('open');
    }
});

$(document).on('click', '#sidebar .filters > .title-filter', function () {
    $(this).parent().toggleClass('open');
});

$(document).on('mouseenter', '.sidebar .categories-list > li', function () {
    if ( !$('.sidebar .categories-list').hasClass('tablet') )
    {
        $('.sidebar .categories-list li.open').removeClass('open');
        $(this).addClass('open');
    }
});

$(document).on('mouseleave', '.sidebar .categories-list > li', function () {
    if ( $('.sidebar .categories-list').hasClass('tablet') )
        return false;
    $('.sidebar .categories-list li.open').removeClass('open');
});

$(document).on('click', '.sidebar .categories-list.tablet > li > a:not(.cat-link)', function(e) {
  e.preventDefault();
});

$(document).on('mouseenter', '.sidebar #brand,.sidebar .brands', function () {
    openBrands();
});
$(document).on('click', '.sidebar #brand', function () {
    openBrands();
});
$(document).on('mouseleave', '.sidebar #brand,.sidebar .brands', function () {
    closeBrands();
});

$(document).on('mouseleave', '.sidebar #cat,.sidebar .categories-list', function () {
    /*if ( $('.sidebar .categories-list').hasClass('tablet') )
    {
        $('.categories-list li.noactive').removeClass('noactive').addClass('active');
        $('.categories-list').addClass('closed');
        return false;
    }*/
    var $catList = $('#sidebar').find('.categories-list');
    if ( $catList.hasClass('toggle') )
        $catList.addClass('closing');
    setTimeout(function () {
        if ( $catList.hasClass('toggle') && $catList.hasClass('closing') )
        {
            $catList.removeClass('closing');
            $catList.addClass('closed');
            $catList.find('li.noactive').removeClass('noactive').addClass('active');
        }
    }, 200)

});

$(document).on('mouseenter', '.sidebar #cat,.sidebar .categories-list', function () {
    var $catList = $('#sidebar').find('.categories-list');
    $catList.removeClass('closing');
    if ( $catList.hasClass('toggle') )
    {
        $('#cat').addClass('active');
        $('#brand').removeClass('active');
        $catList.removeClass('closed');
    }
    $catList.find('li.active').removeClass('active').addClass('noactive');
});

$(document).on('mouseenter', '.categories-list li.active', function () {
    $('#cat').addClass('active');
    $('#brand').removeClass('active');
    return false;
});

function openBrands()
{
    $('#brand').addClass('active');
    $('#cat').removeClass('active');
    $('#sidebar').find('.categories-list').find('li.open').removeClass('open').find('.submenu.open').removeClass('open').addClass('closed');
    $('#sidebar').find('.brands').css('display', 'table');
}

function closeBrands()
{
    $('#brand').removeClass('active');
    $('#cat').addClass('active');
    $('#sidebar').find('.brands').css('display', 'none');
}

/*$('.sidebar .brands .list').slimScroll({
    color: '#f01921',
    opacity: '1',
    height: '360px',
    railVisible: true,
    alwaysVisible: true
});*/

$(document).on('click', '.product .arrow-navigator', function () {
    var holder = $(this).parents('.image').find('.image-card-holder-2');
    var dir = $(this).data('dir');
    var img_count = holder.find('img').length;
    var height = holder[0].scrollHeight;
    var offset = Math.floor(height / img_count);
    if ( dir === 'up' )
    {
        holder.animate({scrollTop: holder.scrollTop() - offset}, '500');
    }
    else
    {
        holder.animate({scrollTop: holder.scrollTop() + offset}, '500');
    }
});

$(document).on('click', '.product .image-card-holder-2 .card-image', function () {
    var src = $(this).attr('src');
    $(this).closest('.image').find('img.main-image').attr('src', src).addClass('test');
});

$(document).on('click', '.header .menu-tablet #open-menu', function () {
    /*$('#sidebar').css('position', 'inherit');*/
    var $sidebar = $('#sidebar');
    if ( $sidebar.find('.sidebar').hasClass('open') )
    {
        $sidebar.find('.sidebar').addClass('closing');
        setTimeout(function () {
            $sidebar.find('.sidebar').removeClass('open closing');
            setTimeout(function () {
                $sidebar.find('.filters').show();
                $sidebar.find('.controller').css({'visibility':'visible'});
                $sidebar.find('.categories-list').removeClass('closed').show();
            }, 200);
        }, 180);
    }
    else
    {
        $sidebar.find('.controller').css({'visibility':'visible'});
        $sidebar.find('.filters').hide();
        $sidebar.find('.sidebar').addClass('open');
        $sidebar.find('.categories-list').removeClass('closed').show();
        $sidebar.find('.categories-list').find('.noactive').removeClass('noactive').addClass('active');
        //$sidebar.find('.categories-list').find('.active').addClass('open');
    }
});
$(document).on('click', '#openFilters', function(test) {
    var $sidebar = $('#sidebar');
    if ( $sidebar.find('.sidebar').hasClass('open') )
    {
        $sidebar.find('.sidebar').addClass('closing');
        setTimeout(function () {
            $sidebar.find('.sidebar').removeClass('open closing');
            setTimeout(function () {
                $sidebar.find('.categories-list').removeClass('closed').show();
                $sidebar.find('.controller').css({'visibility':'visible'});
                $sidebar.find('.filters').show();
            }, 200);
        }, 180);
    }
    else
    {
        $sidebar.find('.categories-list').removeClass('closed').hide();
        $sidebar.find('.controller').css({'visibility':'hidden'});
        $sidebar.find('.sidebar').addClass('open');
        $sidebar.find('#close-filter').show();
        $sidebar.find('.filters').show();
    }
});
$(document).on('click', '#close-filter, .close-filter', function() {
    $('#openFilters').click();
});
$(document).on('click', '#cat', function() {
    var $catList = $('#sidebar').find('.categories-list');
    if ($catList.hasClass('tablet')) {
        closeBrands();
        $catList.removeClass('closed').show();
    }
});

$(document).on('click', '.header .menu-tablet #open-search', function () {
    var element = $('.header .search.search-tablet');
    element.slideToggle('fast');
    element.find('.input input[type=\"text\"]').focus();
});

$(document).on('click', '.plus-button', function () {
    $('.header .icons .bonus-window-tablet').remove();
    $('.plus-button').not(this).each(function () {
        $(this).parent().removeClass('open');
    });
    $('.header .icons .bonus-window').each(function () {
        $(this).css('display', '');
    });
    $(this).parent().toggleClass('open');
    plusButtonWindow();
});

function plusButtonWindow()
{
    var width = $(window).width();
    var $icons = $('.header .icons');

    if ( width <= 991 && $icons.find('.open').find('.bonus-window').length > 0 && $icons.find('.bonus-window-tablet').length === 0 )
    {
        var element = $icons.find('.open').find('.bonus-window').prop('outerHTML');
        html = '<div class="bonus-window-tablet col-xs-12">' + element + '</div>';
        $icons.append(html);
        $icons.find('.open').find('.bonus-window').hide();
        //console.log(html);
    }
}

$(document).on('click', '.withhint', function() {
    var $hint = $(this).find('.hint');
    if ($hint.length > 0) {
        if ($hint.hasClass('shown'))
        {
            $hint.removeClass('shown').css({"display":""});
        } else
        {
            $hint.addClass('shown').css({"display":"block"});
        }
    }
});

function bindPopovers()
{
    $('[data-toggle="popover"]').popover({
        html: true,
        placement: 'bottom',
        trigger: "hover focus",
        content: function () {
            return $('#' + $(this).data('content-id')).html();
        }
    }).on("show.bs.popover", function () {
        if ( $(this).data('width') )
            $(this).data("bs.popover").tip().css("max-width", $(this).data('width')+"px");
    });
}