var view = 'vitr';
var filt_url = '/catalog.php?set_filter=Y&mode=ajax&view=table';

function initJsHover(){
    if($.browser.msie&&$.browser.version=='6.0'){
        if($('.catalog_item')){
            $('.catalog_item').bind('mouseover',function(){
                $(this).addClass('jshover');
            });
            $('.catalog_item').bind('mouseout',function(){
                $(this).removeClass('jshover');
            });
        }
        if($('.catalog_table')){
            $('.catalog_table tr').bind('mouseover',function(){
                $(this).addClass('jshover');
            });
            $('.catalog_table tr').bind('mouseout',function(){
                $(this).removeClass('jshover');
            });
        }
        if($('.hover_input')){
            $('.hover_input').bind('mouseover',function(){
                $(this).addClass('jshover');
            });
            $('.hover_input').bind('mouseout',function(){
                $(this).removeClass('jshover');
            });
        }
    }
}

function initScrolls(){
    if($('#cat_scroll_1')){
        $('#cat_scroll_1').jScrollPane({scrollbarWidth: 7});
    }
    if($('#cat_scroll_2')){
        $('#cat_scroll_2').jScrollPane({scrollbarWidth: 7});
    }
    if($('#cat_scroll_3')){
        $('#cat_scroll_3').jScrollPane({scrollbarWidth: 7});
    }
    if($('#cat_scroll_4')){
        $('#cat_scroll_4').jScrollPane({scrollbarWidth: 7});
    }
    if($('#cat_scroll_5')){
        $('#cat_scroll_5').jScrollPane({scrollbarWidth: 7});
    }
}

function initViewButtons(){
    if($('.change_view_r')){
        $('.change_view_r .vitr').bind('click',function(){
            if(!$(this).hasClass('active')){
                $('.change_view_r .vitr').animate({opacity: 0.2}, 200);
                $.get(
                    filt_url,
                    {
                        mode: "ajax",
                        view: "vitr"
                    },
                    function(data){
                        $('.cont > *').fadeOut(200, function(){
                            $('.cont').html(data);
                            $('.catalog').fadeIn(300);
                            $('.change_view_r .active').removeClass('active');
                            $('.change_view_r .vitr').addClass('active');
                            $('.change_view_r .vitr').animate({opacity: 1}, 200);
                            initJsHover();
                            initBuyButtons();
                            view = 'vitr';
                        });
                    }
                );
            }
            $(this).blur();
            return false;
        });
        $('.change_view_r .table').bind('click',function(){
            if(!$(this).hasClass('active')){
                $('.change_view_r .table').animate({opacity: 0.2}, 200);
                $.get(
                    filt_url,
                    {
                        mode: "ajax",
                        view: "table"
                    },
                    function(data){
                        $('.cont > *').fadeOut(200, function(){
                            $('.cont').html(data);
                            $('.catalog_table').fadeIn(300);
                            $('.change_view_r .active').removeClass('active');
                            $('.change_view_r .table').addClass('active');
                            $('.change_view_r .table').animate({opacity: 1}, 200);
                            initJsHover();
                            initBuyButtons();
                            view = 'table';
                        });
                    }
                );
            }
            $(this).blur();
            return false;
        });
    }
}

function initFilter(){
    $('.cat_filt_block a').bind('click',function(){
        if(!$(this).hasClass('active')){
            // Добавление маркера клика
            $('.cat_filt .clicked').removeClass('clicked');
            $(this).addClass('clicked');
            // Текущий блок фильтра
            var cur_filt_block = $(this).parent().parent().parent().parent().parent();
            //
            $(this).parent().parent().find('.active').removeClass('active');
            $(this).addClass('active');
            // Перебираем блоки фильтра и формируем массив из свойств фильтра
            var ar_filt_url = new Array();
            var flag = 0;
            $('.cat_filt_block ul').each(function(){
                if(!flag){
                    cur_filt_a = $(this).find('.active');
                    if($(cur_filt_a).length){
                        var filt_url_r = $(cur_filt_a).attr('href');
                        filt_url_r = filt_url_r.replace("/catalog.php?", '');
                        filt_url_r = filt_url_r.replace("&set_filter=Y", '');
                        ar_filt_url.push(filt_url_r);
                    }
                    if($(this).find('.clicked').length){
                        flag = 1;
                    }
                }
            });
            filt_url = '/catalog.php?' + ar_filt_url.join("&");
            filt_url = filt_url + '&set_filter=Y&mode=ajax&view=' + view;
            // Получаем фильтрованное содержимое каталога
            $.get(
                filt_url,
                null,
                function(data){
                    $('.cont > *').fadeOut(200, function(){
                        $('.cont').html(data);
                        $('.cont > *').fadeIn(300);
                        initJsHover();
                        initBuyButtons();
                    });
                }
            );
            // Получаем пункты фильтра
            //while(1){
                var filt_cols_url = filt_url + '&filt_col=';
                filt_cols_url = filt_cols_url.replace('catalog.php', 'filter_cols.php');
                cur_filt_block = cur_filt_block.next().next();
                filt_cols_url += cur_filt_block.attr('id');
                $.get(
                    filt_cols_url,
                    null,
                    function(data){
                        if($(cur_filt_block).find('ul li').length){
                            $(cur_filt_block).find('ul > *').fadeOut(200, function(){
                                $(cur_filt_block).find('ul').html(data);
                                initFilter();
                                $(cur_filt_block).find('ul > *').fadeIn(300);
                                initScrolls();
                            });
                        }else{
                            $(cur_filt_block).find('ul').html(data);
                            initFilter();
                            $(cur_filt_block).find('ul > *').fadeIn(300);
                            initScrolls();
                        }
                    }
                );
                //if(cur_filt_block.next().next().length == 0) break;
            //}
        }
        $(this).blur();
        return false;
    });
    
    
    for(i=2;i<=5;i++){
        $('#cat_scroll_' + i + ' li').fadeIn(300);
    }
}

function initShowFilter(){
    if($('.show_filter')){
        $('.show_filter').bind('click',function(){
            $('.show_filter').animate({ opacity: 0.2 }, 200, '');
            $.get(
                "/filter.php",
                {
                    mode: "ajax"
                },
                function(data){
                    $('#catalog_filter').css('height', '46px');
                    $('#catalog_filter > *').fadeOut(200, function(){
                        $('#catalog_filter').animate({ height:'205px' }, 500);
                        $('#catalog_filter').html(data);
                        initFilter();
                        $('#catalog_filter .cat_filt').fadeIn(500);
                        initScrolls();
                        $.get(
                            "/change_view.php",
                            {
                                mode: "ajax"
                            },
                            function(data_2){
                                $('#catalog_filter').after(data_2);
                                initViewButtons();
                                $('.change_view').fadeIn(1000);
                            }
                        );
                        $.get(
                            "/catalog.php",
                            {
                                mode: "ajax",
                                view: "vitr",
                                first_time: "Y"
                            },
                            function(data){
                                $('.cont > *').fadeOut(300, function(){
                                    $('.cont').html(data);
                                    $('.catalog').fadeIn(1000);
                                    initJsHover();
                                    initBuyButtons();
                                    filt_url = '/catalog.php?set_filter=Y';
                                });
                            }
                        );
                    });
                }
            );
            $(this).blur();
            return false;
        });
    }
}

function initBuyButtons(){
    if($('.buy').length!=0 || $('.add_to_cart').length!=0){
        $('.buy a').click(function(){
            var tobasket_url = $(this).attr('href').slice($(this).attr('href').lastIndexOf("?"));
            $.get(
                '/basket.php' + tobasket_url + '&mode=ajax',
                null,
                function(databasket){
                    $('.cart_mini_block > *').fadeOut(300, function(){
                        $('.cart_mini_block').html(databasket);
                        $('.cart_mini_block > *').fadeIn(300);
                    });
                }
            );
            $(this).blur();
            return false;
        });
        $('.add_to_cart a').click(function(){
            var tobasket_url = $(this).attr('href').slice($(this).attr('href').lastIndexOf("?"));
            $.get(
                '/basket.php' + tobasket_url + '&mode=ajax',
                null,
                function(databasket){
                    $('.cart_mini_block > *').fadeOut(300, function(){
                        $('.cart_mini_block').html(databasket);
                        $('.cart_mini_block > *').fadeIn(300);
                    });
                }
            );
            $(this).blur();
            return false;
        });
    }
}

function initFancybox(){
    if($("a[rel='fancybox']").length){
        $("a[rel='fancybox']").fancybox({
            'titleShow'  : false,
            'transitionIn' : 'elastic',
            'transitionOut' : 'elastic'
        });
    }
}

function initjCarousel(){
	if($('.product_photos ul li').length){
		$('.product_photos ul').jcarousel({
			visible: 4,
			scroll: 2
		});
	}
}

function initUpLink(){
	if($('.up').length){
        $('.up').css('opacity', 0).show();
        $(window).bind('scroll', function(){
            var scroll = $(window).scrollTop();
            var height = $(window).height();
            if(scroll < height){
                $('.up').css('opacity', 0);
            }else if(scroll > height * 2){
                $('.up').css('opacity', 1);
            }else{
                $('.up').css('opacity', (scroll - height) / height);
            }
        });
	}
}

$(function()
{
    // Инициализация фильтра
    initFilter();
    
    // Инициализация скроллов
    initScrolls();
    
    // Инициализация обработчиков события HOVER для IE6
    initJsHover();
    
    // Кнопки изменения вида отображения каталога
    initViewButtons();
    
    // Обработчик отображения фильтра
    initShowFilter();
    
    // Инициализация кнопок покупки
    initBuyButtons();
    
    // Инициализация Fancybox
    initFancybox();
    
    // Инициализация jCarousel
    initjCarousel();
    
    // Инициализация ссылки "Вверх"
    initUpLink();
    
    // Инициализация dummy-запроса
    setInterval(function(){
            $.get(
                '/basket.php?mode=ajax'
            );
        },
        60000
    );
});
