$.fn.homepopup = function () {
    var popup = this.eq(0);
    //overlay
    var overlay = $('<div id="homepopupOverlay"></div>');
    var bodyW = $(document).width();
    var bodyH = $(document).height();
    overlay.width(bodyW);
    overlay.height(bodyH);
    popup.before(overlay);
    //animacia na popup
    var desiredHeight = popup.height();
    popup.find('.homepopup, .close').hide();
    popup.height(1).show();
    popup.css({
        top: (($(window).height() - desiredHeight) / 2 + $(document).scrollTop()) + 'px',
        left: (($(window).width() - popup.width()) / 2 + $(document).scrollLeft()) + 'px'
    });
    popup.animate({
        height: desiredHeight + 'px'
    },{
        duration: 500,
        complete: function () {
            $(this).find('.homepopup, .close').show();
        }
    });
    popup.find('.close').click(function () {
        popup.hide();
        overlay.remove();
    });
    return this;
};

$(function () {
    //ikonkove vyhladavanie
    $('#catalogSearchIcons li.pict').mouseover(function () {
        $('div.catalogSearchIcon-info').hide();
        var icoid = $(this).attr('id').substring(18);
        infodiv = $('#catalogSearchIconInfo_' + icoid);
        infodiv.appendTo('body');
        var offset = $(this).offset();
        var top = offset.top + 46;
        infodiv.css('top',top + 'px');
        var left = offset.left - 6;
        var ww = $(window).width() + $(window).scrollLeft();
        if (left + 175 > ww) {
            left = ww - 175;
            var zobakleft = offset.left - left + 20;
            infodiv.find('div.zobak').css('left',zobakleft + 'px');
        } else {
            infodiv.find('div.zobak').css('left','25px');
        }
        infodiv.css('left',left + 'px');
        if (!$('#catalogAVSearchResults').is('.loading') && !$('#catalogSearchIcon_' + icoid).is('.disabled')) {
            infodiv.show();
        }
    });
    $('div.catalogSearchIcon-info').mouseleave(function () {
        $(this).hide();
    });
    $('#catalogSearchIcons li.pict').click(function () {
        var ico = $(this);
        var icoid = $(this).attr('id').substring(18);
        if (!$('#catalogSearchIconInfo_' + icoid + ' ul').length) {
            if (!ico.is('.disabled')) {
                //toggle class
                var a = $('#catalogSearchIconInfo_' + icoid).find('a');
                catalogSearchAddCriteria(a.attr('rev'), a.attr('rel'));
                $('#catalogSearchIconInfo_' + icoid).hide();
            }
        }
    });
    $('#catalogSearchIcons a').click(function () {
        var pictinfo = $(this).closest('div.catalogSearchIcon-info');
        var icoid = pictinfo.attr('id').substring(22);
        var ico = $('#catalogSearchIcon_' + icoid);
        if (!ico.is('.disabled') && !$(this).is('.disabled')) {
            catalogSearchAddCriteria(this.rev, this.rel);
        }
        pictinfo.hide();
        return false;
    });
    //rucicka na ikonnky, ktore nemaju viac moznosti
    // $('#catalogSearchIcons li.pict:has(ul)').css('cursor','default');
    
    //vytvorenie vyhladavania z odkazov
    if ($('#catalogAVSearchCriteria input').length) {
        $('#catalogAVSearchCriteria input').each(function (idx, inpt) {
            var avpair = inpt.id.split('_');
            $(inpt).remove();
            catalogSearchAddCriteria(avpair[1],avpair[2],false);
        });
        catalogSearchAddCriteria(0,0,true);
    }
    
    //homepopup
    $('#homepopup').homepopup();
});

function catalogSearchAddCriteria(attribId,valueId,update) {
    if (attribId && valueId) {
        var critid = 'catalogAVSearchCriteria_' + attribId + '_' + valueId;
        if (!$('#'+critid).length) {
            var crit = $('<input type="hidden" />');
            crit.attr('id',critid);
            crit.attr('name','av[' + attribId + '][]');
            crit.val(valueId);
            $('#catalogAVSearchCriteria').append(crit);
            //vyfarbime ikonku a linku
            $('#' + critid + '_btn').addClass('active');
            var pictinfo = $('#' + critid + '_btn').closest('div.catalogSearchIcon-info');
            var icoid = pictinfo.attr('id').substring(22);
            $('#catalogSearchIcon_' + icoid).addClass('active');
        } else {
            $('#'+critid).remove();
            //odfarbime ikonku a linku
            $('#' + critid + '_btn').removeClass('active');
            var pictinfo = $('#' + critid + '_btn').closest('div.catalogSearchIcon-info');
            if (!pictinfo.find('a.active').length) {
                var icoid = pictinfo.attr('id').substring(22);
                $('#catalogSearchIcon_' + icoid).removeClass('active');
            }
        }
    }
    if (typeof(update) == 'undefined' || update) {
        if ($('#catalogAVSearchCriteria input').length) {
            var f = $('#catalogAVSearchForm');
            var r = $('#catalogAVSearchResults');
            if (r.is(':hidden')) {
                r.show().empty().animate({
                    height:'30px'
                },{
                    duration: 500
                });
            } else {
                r.find('div.results').hide();
            }
            r.addClass('loading');
            //disable na vsetky ikonky
            $('#catalogSearchIcons li.pict:not(.active)').addClass('disabled');
            $.get(f.attr('action'),f.serialize(),function (html) {
                $('#catalogAVSearchResults').html(html);
                $('#catalogAVSearchResults').removeClass('loading');
                //animacia
                var rr = $('#catalogAVSearchResults div.results');
                rr.show();
                r.removeClass('loading').show().animate({
                    height:(rr.height()+20) + 'px'
                },{
                    duration: 300
                });
                //enable na ikonky
                var avpjson = rr.find('input[name=avp]');
                if (avpjson.length && avpjson.val()) {
                    eval('var avp = ' + avpjson.val() + ';');
                    var a = null;
                    var v = null;
                    var pictinfo = null;
                    var icoid = null;
                    var abtn = null;
                    //skryjeme vsetky moznosti
                    // $('div.catalogSearchIcon-info ul a').addClass('disabled');
                    for (var i = 0 ; i < avp.length ; i++) {
                        for (var j = 0 ; j < avp[i].v.length ; j++) {
                            a = avp[i].a;
                            v = avp[i].v[j];
                            abtn = $('#catalogAVSearchCriteria_' + a + '_' + v + '_btn');
                            pictinfo = abtn.closest('div.catalogSearchIcon-info');
                            if (pictinfo.length) {
                                abtn.removeClass('disabled');
                                icoid = pictinfo.attr('id').substring(22);
                                $('#catalogSearchIcon_'+icoid+':not(.active)').removeClass('disabled');
                            }
                        }
                    }
                } else {
                    $('#catalogSearchIcons li.pict:not(.active)').removeClass('disabled');
                }
                //odstranenie kriteria - X button
                rr.find('a.crit-rem').click(function () {
                    var aid = this.rev;
                    var vids = this.rel.split(',');
                    for (var i = 0 ; i < vids.length ; i++) {
                        catalogSearchAddCriteria(aid,vids[i],false);
                    }
                    catalogSearchAddCriteria(0,0);
                    return false;
                });
            });
        } else {
            //nie su ziadne kriteria - nie je vyhladavanie
            //spristupnime vsetky moznosti
            $('#catalogSearchIcons li.pict').removeClass('disabled');
            $('div.catalogSearchIcon-info ul a').removeClass('disabled');
            $('#catalogAVSearchResults').animate({
                height:'0px'
            },{
                duration: 500,
                complete: function () {
                    $(this).hide();
                }
            });
        }
    }
}
