$(function(){

    var requestId = null;
    var notifier = $("<div id='filterNotifier'></div>");
    var filterBlock = $('#filterBlock')
    $(document.body).append(notifier);

    $('#filterBlock label,#filterBlock div.filterItem input').click(function(){
        if($(this).parent().hasClass('disabled')) return false;
    });

    var updateCss = function(){
        filterBlock.find('div.filterItem').removeClass('selected');

        var values = filterBlock.find('form').formToArray();
        $.each(values, function(i, item){
            var searchFor = item.name;
            if(item.name.indexOf('v') == -1){
                searchFor = item.name + "v" + item.value;
            }
            filterBlock.find('label[for=' + searchFor + ']').parent().addClass('selected');
        });
    }

    updateCss();

    function setCounts(values){
        filterBlock.find("div.filterItem span").html("");
        $.each(values, function(filterValueId, count){
            var div = $('#filterBlock form div#labelValue' + filterValueId);
            if(!div.hasClass('selected')){                
                if(count == 0){
                    div.addClass('disabled');
                } else {
                    div.removeClass('disabled');
                    div.find('span').html(count);
                }
            }
        });
    }

    if(window.filterInititalParams){
        setCounts(window.filterInititalParams);
    }

    $('#filterBlock input').change(function(){

        var $this = $(this);

        if($this.parent().hasClass('disabled')){
            return;
        }

        updateCss();

        var currentRequestId = Math.random();
        requestId = currentRequestId;

        var offset = $this.offset();

        notifier
            .html('Загрузка...')
            .show()
            .css({
                left: offset.left - 220,
                top: offset.top
            });

        $("#filterBlock form").ajaxSubmit({
            data:{
                count: 1
            },
            //"dataType": "json",
            success: function(result){
                result = eval('(' + result + ')');;
                if(currentRequestId == requestId){
                    if(result.count > 0){
                        notifier.html("Найдено товаров:" + result.count + " <a href='?" + $("#filterBlock form").serialize() + "'>Показать<a>");
                    } else {
                        notifier.html("Товаров не найдено.");
                    }                    

                    setCounts(result.byValues);

                    notifier.css({
                        left: offset.left - notifier.width() - 30
                    });
                }
            }
        });
    });
});
