var speedMenu = 500; // скорость сворачивания / разворачивания меню каталога

var speedSlideFactory = 250; // скорость сворачивания / разворачивания блока "Фабрики мебели"

var speedSlider  = 1000; // скорость смены изображения в слайдере на главной странице
var periodSlider = 6000; // период автоматической смены изображения в слайдере на главной странице
var timerSlider;         // таймер для слайдера на главной странице

var speedMainCatalogue = 1000; // скорость движения строк каталога при прокрутке

var speedMainCatalogueZoom = 250; // скорость появления окна при наведении на элемент каталога

var periodLinkToCart = 3000; // время между сменой ссылки "Добавлено" на неактивную корзину

var site_url = false;

var $catalogue_top;

var $load, paged

(function($) {
    
    $(document).ready(function() {
        
        $load = $('.load')
        
        $catalogue_top = $('.catalogue-top')
        
        updateManufactories($('.left-menu-ajax .selected:first').data('termid'), {silence : true})
        
        

// загрузить еще
$('#main-catalogue').delegate( '.pagination a', 'click' , function(){
    updateLocation( false, {paged: $(this).data('paged')} );

    return false;
})

    $('.main-catalogue-item-cart a').bind('click', addToCart);

        

        // сворачивание / разворачивание блока "Фабрики мебели"
        $('.left-factory-title a').click(function() {
            $('.left-factory-content').slideToggle(speedSlideFactory, function() {
                $('.left-factory-inner').toggleClass('left-factory-closed');
            });

            return false;
        });

        // активирование слайдера на главной странице
        $('.slider').each(function() {
            var curSlider = $(this);

            var curItem = curSlider.find('.slider-content ul li.active');
            $('.slider-name').html('<a href="' + curItem.find('a').attr('href') + '">' + curItem.find('img').attr('alt') + '</a>');
            var htmlCtrl = '<ul>';
            for (var i = 0; i < curSlider.find('.slider-content ul li').length; i++) {
                htmlCtrl += '<li><a href="#"></a></li>';
            }
            htmlCtrl += '</ul>';
            $('.slider-ctrl-prev').after(htmlCtrl);
            var curIndex = curSlider.find('.slider-content ul li').index(curItem);
            $('.slider-ctrl ul li').eq(curIndex).addClass('active');
            $('.slider-ctrl ul li a').bind('click', gotoSlider);

            curSlider.data('disableAnimation', true);
            curSlider.data('curIndex', curIndex);

            timerSlider = window.setTimeout(function() {$('a.slider-next').trigger('click');}, periodSlider);
        });

        // переход к следующему изображению в слайдере на главной странице
        $('a.slider-next, a.slider-ctrl-next').click(function() {
            var curSlider = $('.slider');
            if (curSlider.data('disableAnimation')) {
                window.clearTimeout(timerSlider);
                timerSlider = null;

                var curIndex = Number(curSlider.data('curIndex'));
                var newIndex = curIndex + 1;

                if (newIndex == curSlider.find('.slider-content ul li').length) {
                    newIndex = 0;
                }

                curSlider.data('curIndex', newIndex);

                curSlider.data('disableAnimation', false);
                curSlider.find('.slider-content ul li').eq(curIndex).css({'z-index':2});
                curSlider.find('.slider-content ul li').eq(newIndex).css({'display':'block', 'z-index':1});
                curSlider.find('.slider-content ul li').eq(curIndex).fadeOut(speedSlider, function() {
                    $('.slider-name').html('<a href="' + curSlider.find('.slider-content ul li').eq(newIndex).find('a').attr('href') + '">' + curSlider.find('.slider-content ul li').eq(newIndex).find('img').attr('alt') + '</a>');
                    $('.slider-ctrl ul li').eq(curIndex).removeClass('active');
                    $('.slider-ctrl ul li').eq(newIndex).addClass('active');
                    curSlider.data('disableAnimation', true);
                    timerSlider = window.setTimeout(function() {$('a.slider-next').trigger('click');}, periodSlider);
                });
            }

            return false;
        });

        // переход к предыдущему изображению в слайдере на главной странице
        $('a.slider-prev, a.slider-ctrl-prev').click(function() {
            var curSlider = $('.slider');
            if (curSlider.data('disableAnimation')) {
                window.clearTimeout(timerSlider);
                timerSlider = null;

                var curIndex = Number(curSlider.data('curIndex'));
                var newIndex = curIndex - 1;

                if (newIndex < 0) {
                    newIndex = curSlider.find('.slider-content ul li').length - 1;
                }

                curSlider.data('curIndex', newIndex);

                curSlider.data('disableAnimation', false);
                curSlider.find('.slider-content ul li').eq(curIndex).css({'z-index':2});
                curSlider.find('.slider-content ul li').eq(newIndex).css({'display':'block', 'z-index':1});
                curSlider.find('.slider-content ul li').eq(curIndex).fadeOut(speedSlider, function() {
                    $('.slider-name').html('<a href="' + curSlider.find('.slider-content ul li').eq(newIndex).find('a').attr('href') + '">' + curSlider.find('.slider-content ul li').eq(newIndex).find('img').attr('alt') + '</a>');
                    $('.slider-ctrl ul li').eq(curIndex).removeClass('active');
                    $('.slider-ctrl ul li').eq(newIndex).addClass('active');
                    curSlider.data('disableAnimation', true);
                    timerSlider = window.setTimeout(function() {$('a.slider-next').trigger('click');}, periodSlider);
                });
            }

            return false;
        });

        // наведение на элемент строки каталога
        $('.main-catalogue-item-view').hover(
            function() {
                $(this).parent().addClass('main-catalogue-item-hover');
                $(this).find('.main-catalogue-item-zoom').stop(true, true).fadeIn(speedMainCatalogueZoom);
            },

            function() {
                $(this).find('.main-catalogue-item-zoom').stop(true, true).fadeOut(speedMainCatalogueZoom, function() {
                    $(this).parent().parent().removeClass('main-catalogue-item-hover');
                });
            }
        );

        // подключение всплывающих окон для строк каталога
        $('#main-catalogue').each(function() {
            $('a.main-catalogue-item-zoom-link').fancybox(
            {
                onComplete: function(link, index){
                    link_id = $(link[index]).data('permalink')
                    $('#fancybox-title-float-main').html( 
                                '<a href="' + $('#' + link_id).attr('href') + '">' +
                                $('#fancybox-title-float-main').text() + '</a>' );
                }
            });
        });

        // активация перемещения строк каталога
        $('.main-catalogue-row').each(function() {
            var curRow = $(this);
            curRow.data('curIndex', 0);
            curRow.find('.main-catalogue-inner').width(curRow.find('.main-catalogue-item').length * curRow.find('.main-catalogue-item').eq(0).width());
        });

        $('a.main-catalogue-next, a.main-catalogue-prev').click(function() {
            return false;
        });

        $('a.main-catalogue-next').hover(
            function() {
                var curRow = $(this).parent();
                curRow.data('enableAnimation', true);
                nextCatalogueRow(curRow);
            },

            function() {
                var curRow = $(this).parent();
                curRow.data('enableAnimation', false);
            }
        );

        $('a.main-catalogue-prev').hover(
            function() {
                var curRow = $(this).parent();
                curRow.data('enableAnimation', true);
                prevCatalogueRow(curRow);
            },

            function() {
                var curRow = $(this).parent();
                curRow.data('enableAnimation', false);
            }
        );

        // показ полного меню каталога
        $('.left-menu-all a').click(function() {
            $('.left-menu-all').slideUp(speedMenu);
            $('.left-menu-mini').slideUp(speedMenu, function() {
                $('.left-menu-full').slideDown(speedMenu);
            });
            return false;
        });

        // добавление в корзину
//        $('.main-catalogue-item-cart a').click(addToCart);

        // добавление в корзину со страницы товара
        $('.detail-title a').click(addToCartDetail);
        $('.detail-to-cart a').click(function() {
            $('.detail-title a').trigger('click');
            $(this).fadeOut();
            return false;
        });

        // отправка формы из корзины
        $('.basket-form-submit div a').click(
            function() {
                var validate = true;
                if ( $('.basket-field-input-1 input').val() == '' )
                {
                    $('.basket-field-input-1').addClass('basket-field-input-error');
                    validate = false
                }
                else $('.basket-field-input-1').removeClass('basket-field-input-error')
                
                if ( $('.basket-field-input-2 input').val() == '' )
                {
                    $('.basket-field-input-2').addClass('basket-field-input-error');
                    validate = false
                }
                else $('.basket-field-input-2').removeClass('basket-field-input-error')
                
                if ( ! isEmailCorrect( $('.basket-field-input-3 input').val() ) )
                {
                    $('.basket-field-input-3').addClass('basket-field-input-error');
                    validate = false
                }
                else $('.basket-field-input-3').removeClass('basket-field-input-error')
                
                if ( ! validate )
                    return false;
                
                    $(this).text('Идет отправка...').attr('disabled', 'disabled')
                    
                    $this = $('.basket-form-content')
                    
                    var $this_link = $(this)
                    
                    $.post(
                        site_url + '/wp-admin/admin-ajax.php',
                        {
                            action: 'price-feedback',
                            phone: $('input[name="phone"]', $this).val(),
                            email: $('input[name="email"]', $this).val(),
                            name: $('input[name="name"]', $this).val(),
                            info: $('textarea[name="info"]', $this).val(),
                            'products_ids': $.cookie('toCart').split(',')
                            
                        },
                        function(data)
                        {
                            if (data == 'ok')
                            {
                                $.cookie('toCart', null, {path: '/'});
                                $('.header-cart-icon').fadeOut();
                                $('.header-cart-text').fadeOut();
                                $('.header-cart-link').fadeOut();
                                basket_links_update()
                                basketReload()
                                $this_link.hide()
                                $('.basket-form-success').show();
                            }
                            else
                            {
                                $this_link.text('Произошла ошибка.')
                            }
                        }
                    );
                
                return false;
            }
        );

        // показ корзины
        $('.basket-list').each(function() {
            var toCartCookie = $.cookie('toCart');
            if (toCartCookie) {
                var arrayCart = toCartCookie.split(',');

                basketReload($(this))
                
                for (var i = 0; i < arrayCart.length; i++) {
                    var curLinkToCart = $('#catalogue-' + arrayCart[i]);
                    if (curLinkToCart.length == 1) {
                        curLinkToCart.addClass('disabled');
                        if (curLinkToCart.parents().filter('.detail-title').length == 1) {
                            $('.detail-to-cart a').hide();
                        }
                    }
                    /*
                    var curItem = curLinkToCart.parent().parent().parent();
                    $('.basket-list').append('<div class="basket-row"><div class="basket-row-inner"><div class="basket-row-name"><span>1.</span> ' +
                                          '<a href="' + curItem.find('.main-catalogue-item-view a').attr('href') + '" rel="' + arrayCart[i] + '">' + curItem.find('.main-catalogue-item-view a span').html() + '</a>' +
                                          '</div><div class="basket-row-photo"><a href="#"></a></div><div class="basket-row-delete"><a href="#">Удалить</a></div></div></div>');
                    */
                }                

                if (arrayCart.length > 0) {
                    $('.header-cart-text span').html(arrayCart.length);
                    $('.basket-top-text span').html(arrayCart.length);
                    $('.basket-name span').html(arrayCart.length);
                    $('.header-cart-icon').show();
                    $('.header-cart-text').show();
                    $('.header-cart-link').show();
                    refreshBasketList();
                }
            }
        });

        $('.header-cart-link a').click(function() {
            $('.basket').css({'left':($(window).width() - 980) / 2 + 111});
            $('.basket').fadeIn();
            $('.overlay').fadeIn();

            return false;
        });

        $('.overlay').click(function() {
            $('.basket').fadeOut();
            $('.overlay').fadeOut();
        });

        $('body').keypress(function(e) {
            if (e.keyCode == 27) {
                $('.basket').fadeOut();
                $('.overlay').fadeOut();
            }
        });

        $('body').keydown(function(e) {
            if (e.keyCode == 27) {
                $('.basket').fadeOut();
                $('.overlay').fadeOut();
            }
        });

        $('.basket-top-link a').click(function() {
            $('.basket').fadeOut();
            $('.overlay').fadeOut();
            return false;
        });

        // выбор активного пункта в левом меню
        $('.left-menu-ajax ul li a').click(function() {
            
            if ($(this).hasClass('selected')) return false;
            
            $('.left-menu-ajax li.active').removeClass('active');
            $(this).parents().filter('li').addClass('active');
            
            $('.left-menu-ajax .selected').removeClass('selected');
            $(this).addClass('selected');

//            $.address.value($(this).attr('href').replace(location.origin, ''));

            updateManufactories($(this).data('termid'), {callback: updateLocation( $(this).attr('href') )})

            return false;
        });

        // выбор стиля мебели
        $('.catalogue-style-item > a').click(function() {
            $(this).parent().toggleClass('catalogue-style-item-active');

            updateLocation();

            return false;
        });

        // выбор фабрики
        $('.catalogue-filter-factory-select select').change(function() {
            updateLocation();
        });

        // выбор цены
        $('#price-slider').slider({
            range:true,
            min:1000,
            max:50000,
            step:100,
            values:[1000, 50000],
            slide:function(event, ui) {
				$('#priceFrom').val(ui.values[0]);
				$('#priceTo').val(ui.values[1]);
            },
            change:function(event, ui) {
                updateLocation();
            }
        });
        $('.ui-slider-handle:first').addClass('ui-slider-handle-prev');
        $('.ui-slider-handle:last').addClass('ui-slider-handle-next');

        $('#priceFrom').change(function() {
            var curVal = Number($(this).val());
            if (!curVal) {
                curVal = 1000;
            }
            if (curVal < 1000) {
                curVal = 1000;
            }
            if (curVal > 50000) {
                curVal = 50000;
            }
            $(this).val(curVal);
            $('#price-slider').slider('values', 0, curVal);
        });

        $('#priceTo').change(function() {
            var curVal = Number($(this).val());
            if (!curVal) {
                curVal = 50000;
            }
            if (curVal < 1000) {
                curVal = 1000;
            }
            if (curVal > 50000) {
                curVal = 50000;
            }
            $(this).val(curVal);
            $('#price-slider').slider('values', 1, curVal);
        });

        // поиск по модели
        $('.model-link a').click(function() {
            $('.model-link').hide();
            $('.model-form').show();

            return false;
        });

        $('.model-form-submit a').click(function() {
            updateLocation('product', {search: $('.model-form-input input').val()});

            return false;
        });

        // подключение всплывающих окон для фотографий в детальной информации
        $('.detail-photos').each(function() {
            $('.detail-photos-inner a').fancybox();
        });
        $('#detail-photo a').fancybox();

        // активация перемещения фотографий в детальной информации
        $('.detail-photos').each(function() {
            var curRow = $(this);
            curRow.data('curIndex', 0);
            curRow.find('.detail-photos-inner').width(curRow.find('.detail-photos-inner div').length * curRow.find('.detail-photos-inner div').eq(0).width());
        });

        $('a.detail-photos-next, a.detail-photos-prev').click(function() {
            return false;
        });

        $('a.detail-photos-next').hover(
            function() {
                var curRow = $('.detail-photos');
                curRow.data('enableAnimation', true);
                nextPhoto(curRow);
            },

            function() {
                var curRow = $('.detail-photos');
                curRow.data('enableAnimation', false);
            }
        );

        $('a.detail-photos-prev').hover(
            function() {
                var curRow = $('.detail-photos');
                curRow.data('enableAnimation', true);
                prevPhoto(curRow);
            },

            function() {
                var curRow = $('.detail-photos');
                curRow.data('enableAnimation', false);
            }
        );

        // отправка формы со страницы детальной информации
        $('.detail-form-submit div a').click(
            function() {
                var validate = true;
                if ( $('.detail-field-input-1 input').val() == '' )
                {
                    $('.detail-field-input-1').addClass('detail-field-input-error');
                    validate = false
                }
                else $('.detail-field-input-1').removeClass('detail-field-input-error')
                
                if ( $('.detail-field-input-2 input').val() == '' )
                {
                    $('.detail-field-input-2').addClass('detail-field-input-error');
                    validate = false
                }
                else $('.detail-field-input-2').removeClass('detail-field-input-error')
                
                /*
if ( ! isEmailCorrect( $('.detail-field-input-3 input').val() ) )
                {
                    $('.detail-field-input-3').addClass('detail-field-input-error');
                    validate = false
                }
                else $('.detail-field-input-3').removeClass('detail-field-input-error')
*/
                
                if ( ! validate )
                    return false;
                    
                    $(this).text('Идет отправка...').attr('disabled', 'disabled')
                    
                    $this = $(this).parent().parent().parent()
                    
                    if ( $('#detail-all').is(":checked") )
                    {
                        var products_ids = $.cookie('toCart').split(',')
                        products_ids.push($(this).data('productid'));
                    }
                    else
                    {
                        var products_ids = [ $(this).data('productid') ]
                    }
                    
                    var $this_link = $(this)
                    
                    $.post(
                        site_url + '/wp-admin/admin-ajax.php',
                        {
                            action: 'price-feedback',
                            phone: $('input[name="phone"]', $this).val(),
                            email: $('input[name="email"]', $this).val(),
                            name: $('input[name="name"]', $this).val(),
                            info: $('textarea[name="info"]', $this).val(),
                            'products_ids': products_ids
                            
                        },
                        function(data)
                        {
                            if (data == 'ok')
                            {
                                if ( $('#detail-all').is(":checked") )
                                {
                                    $('.header-cart-icon').fadeOut();
                                    $('.header-cart-text').fadeOut();
                                    $('.header-cart-link').fadeOut();
                                    $.cookie('toCart', null , {path: '/'});
                                }
                                basket_links_update()
                                basketReload()
                                $this_link.hide()
                                $('.detail-form-success').show();
                            }
                            else
                            {
                                $this_link.text('Произошла ошибка.')
                            }
                        }
                    );

                return false;
            }
        );

    });

    function basketReload($this)
    {
        var toCartCookie = $.cookie('toCart');
        
        if (toCartCookie) {
            var arrayCart = toCartCookie.split(',');
            $this.load(
                site_url + '/wp-admin/admin-ajax.php',
                {
                    action: 'get-products-by-ids',
                    products_ids: arrayCart
                },
                function(data)
                {
                    $('#basket .basket-row-photo a').fancybox()
                    refreshBasketList()
                }
            )
        }
    }

    // переход к выбранному изображению в слайдере на главной странице
    function gotoSlider() {
        var curSlider = $('.slider');
        if (curSlider.data('disableAnimation')) {
            window.clearTimeout(timerSlider);
            timerSlider = null;

            var curIndex = Number(curSlider.data('curIndex'));
            var newIndex = $('.slider-ctrl ul li a').index($(this));

            curSlider.data('curIndex', newIndex);

            curSlider.data('disableAnimation', false);
            curSlider.find('.slider-content ul li').eq(curIndex).css({'z-index':2});
            curSlider.find('.slider-content ul li').eq(newIndex).css({'display':'block', 'z-index':1});
            curSlider.find('.slider-content ul li').eq(curIndex).fadeOut(speedSlider, function() {
                $('.slider-name').html('<a href="' + curSlider.find('.slider-content ul li').eq(newIndex).find('a').attr('href') + '">' + curSlider.find('.slider-content ul li').eq(newIndex).find('img').attr('alt') + '</a>');
                $('.slider-ctrl ul li').eq(curIndex).removeClass('active');
                $('.slider-ctrl ul li').eq(newIndex).addClass('active');
                curSlider.data('disableAnimation', true);
                timerSlider = window.setTimeout(function() {$('a.slider-next').trigger('click');}, periodSlider);
            });
        }

        return false;
    }

    // переход к следующему элементу в строке каталога
    function nextCatalogueRow(curRow) {
        var curIndex = Number(curRow.data('curIndex'));

        if (curIndex < curRow.find('.main-catalogue-item').length - 2) {
            curIndex++;

            curRow.data('curIndex', curIndex);

            curRow.find('a.main-catalogue-prev').show();
            curRow.find('.main-catalogue-left').show();

            var changePos = 0;
            if (curIndex == curRow.find('.main-catalogue-item').length - 2) {
                changePos = 205;
                curRow.find('a.main-catalogue-next').hide();
                curRow.find('.main-catalogue-right').hide();
            }

            curRow.find('.main-catalogue-inner').animate({'left':-(curIndex * curRow.find('.main-catalogue-item:first').width() - changePos)}, speedMainCatalogue, 'linear', function() {
                if (curRow.data('enableAnimation')) {
                    nextCatalogueRow(curRow);
                }
            });
        }
    }

    // переход к предыдущему элементу в строке каталога
    function prevCatalogueRow(curRow) {
        var curIndex = Number(curRow.data('curIndex'));

        if (curIndex > 0) {
            curIndex--;

            curRow.data('curIndex', curIndex);

            curRow.find('a.main-catalogue-next').show();
            curRow.find('.main-catalogue-right').show();

            if (curIndex == 0) {
                curRow.find('a.main-catalogue-prev').hide();
                curRow.find('.main-catalogue-left').hide();
            }

            curRow.find('.main-catalogue-inner').animate({'left':-(curIndex * curRow.find('.main-catalogue-item:first').width())}, speedMainCatalogue, 'linear', function() {
                if (curRow.data('enableAnimation')) {
                    prevCatalogueRow(curRow);
                }
            });
        }
    }

    // переход к следующему элементу в строке фото
    function nextPhoto(curRow) {
        var curIndex = Number(curRow.data('curIndex'));

        if (curIndex < curRow.find('.detail-photos-inner div').length - 4) {
            curIndex++;

            curRow.data('curIndex', curIndex);

            curRow.find('a.detail-photos-prev').show();

            if (curIndex == curRow.find('.detail-photos-inner div').length - 4) {
                curRow.find('a.detail-photos-next').hide();
            }

            curRow.find('.detail-photos-inner').animate({'left':-(curIndex * curRow.find('.detail-photos-inner div:first').width())}, speedMainCatalogue, 'linear', function() {
                if (curRow.data('enableAnimation')) {
                    nextPhoto(curRow);
                }
            });
        }
    }

    // переход к предыдущему элементу в строке фото
    function prevPhoto(curRow) {
        var curIndex = Number(curRow.data('curIndex'));

        if (curIndex > 0) {
            curIndex--;

            curRow.data('curIndex', curIndex);

            curRow.find('a.detail-photos-next').show();

            if (curIndex == 0) {
                curRow.find('a.detail-photos-prev').hide();
            }

            curRow.find('.detail-photos-inner').animate({'left':-(curIndex * curRow.find('.detail-photos-inner div:first').width())}, speedMainCatalogue, 'linear', function() {
                if (curRow.data('enableAnimation')) {
                    prevPhoto(curRow);
                }
            });
        }
    }

    // обновление списка в корзине
    function refreshBasketList() {
        var basketList = $('.basket-list');

        basketList.find('.basket-row-odd').removeClass('basket-row-odd');
        basketList.find('.basket-row:odd').addClass('basket-row-odd');
        for (var i = 0; i < basketList.find('.basket-row').length; i++) {
            basketList.find('.basket-row').eq(i).find('.basket-row-name span').html((i + 1) + '.');
        }
        basketList.find('.basket-row-delete a').unbind('click', basketDelete);
        basketList.find('.basket-row-delete a').bind('click', basketDelete);
    }

    // удаление элемента из списка в корзине
    function basketDelete() {
        var curItem = $(this).parent().parent().parent();
        var curId = curItem.find('.basket-row-name a').data('productid');

        var toCartCookie = $.cookie('toCart');
        if (toCartCookie) {
            var arrayCart = toCartCookie.split(',');
            var j = -1;
            for (var i = 0; i < arrayCart.length; i++) {
                if (arrayCart[i] == curId) {
                    j = i;
                }
            }
            if (j > -1) {
                arrayCart.splice(j, 1);
            }
            $.cookie('toCart', arrayCart.join(), {path: '/'});
            $('#catalogue-' + curId).removeClass('disabled');
            if ($('#catalogue-' + curId).parents().filter('.detail-title').length == 1) {
                $('.detail-to-cart a').show();
            }

            curItem.slideUp('fast', function(){$(this).remove()});
            refreshBasketList();

            var curCount = Number($('.header-cart-text span').html());
            $('.header-cart-text span').html(curCount - 1);
            $('.basket-top-text span').html(curCount - 1);
            $('.basket-name span').html(curCount - 1);
            if (curCount == 1) {
                $('.header-cart-icon').fadeOut();
                $('.header-cart-text').fadeOut();
                $('.header-cart-link').fadeOut();
            }
        }

        return false;
    }

    // добавление в корзину
    function addToCart() {
        console.log('11')
        if (!$(this).hasClass('disabled') && !$(this).hasClass('add')) {
            $(this).addClass('add');
            var curId = $(this).data('productid');
            window.setTimeout(function() {$('#catalogue-' + curId).removeClass('add').addClass('disabled');}, periodLinkToCart);

            var toCartCookie = $.cookie('toCart');
            if (toCartCookie) {
                toCartCookie += ',' + curId;
            } else {
                toCartCookie = curId;
            }
            $.cookie('toCart', toCartCookie, {path: '/'});

            var curCount = Number($('.header-cart-text span').html());
            $('.header-cart-text span').html(curCount + 1);
            $('.basket-top-text span').html(curCount + 1);
            $('.basket-name span').html(curCount + 1);
            if (!$('#top').data('firstCartAdd')) {
                $('#top').data('firstCartAdd', true);
                $('body, html').animate({scrollTop:0});
                $('.header-cart-icon').fadeIn(function() {
                    $(this).fadeOut(function() {
                        $(this).fadeIn(function() {
                            $(this).fadeOut(function() {
                                $(this).fadeIn(function() {
                                    $(this).fadeOut(function() {
                                        $(this).fadeIn();
                                    });
                                });
                            });
                        });
                    });
                });
                $('.header-cart-text').fadeIn(function() {
                    $(this).fadeOut(function() {
                        $(this).fadeIn(function() {
                            $(this).fadeOut(function() {
                                $(this).fadeIn(function() {
                                    $(this).fadeOut(function() {
                                        $(this).fadeIn();
                                    });
                                });
                            });
                        });
                    });
                });
                $('.header-cart-link').fadeIn(function() {
                    $(this).fadeOut(function() {
                        $(this).fadeIn(function() {
                            $(this).fadeOut(function() {
                                $(this).fadeIn(function() {
                                    $(this).fadeOut(function() {
                                        $(this).fadeIn();
                                    });
                                });
                            });
                        });
                    });
                });
            } else {
                $('.header-cart-icon').fadeIn();
                $('.header-cart-text').fadeIn();
                $('.header-cart-link').fadeIn();
            }
            
            basketReload($('.basket-list'))
            refreshBasketList();
            /*
            var curItem = $(this).parent().parent().parent();
            $('.basket-list').append('<div class="basket-row"><div class="basket-row-inner"><div class="basket-row-name"><span>1.</span> ' +
                                  '<a href="' + curItem.find('.main-catalogue-item-view a').attr('href') + '" rel="' + curId + '">' + curItem.find('.main-catalogue-item-view a span').html() + '</a>' +
                                  '</div><div class="basket-row-photo"><a href="#"></a></div><div class="basket-row-delete"><a href="#">Удалить</a></div></div></div>');
            */
        }

        return false;
    }

    // добавление в корзину со страницы товара
    function addToCartDetail() {
        if (!$(this).hasClass('disabled') && !$(this).hasClass('add')) {
            $(this).addClass('add');
            var curId = $(this).data('productid');
            window.setTimeout(function() {$('#catalogue-' + curId).removeClass('add').addClass('disabled');}, periodLinkToCart);
            if ($('#catalogue-' + curId).parents().filter('.detail-title').length == 1) {
                $('.detail-to-cart a').hide();
            }

            var toCartCookie = $.cookie('toCart');
            if (toCartCookie) {
                toCartCookie += ',' + curId;
            } else {
                toCartCookie = curId;
            }
            $.cookie('toCart', toCartCookie, {path: '/'});

            var curCount = Number($('.header-cart-text span').html());
            $('.header-cart-text span').html(curCount + 1);
            $('.basket-top-text span').html(curCount + 1);
            $('.basket-name span').html(curCount + 1);
            if (!$('#top').data('firstCartAdd')) {
                $('#top').data('firstCartAdd', true);
                $('body, html').animate({scrollTop:0});
                $('.header-cart-icon').fadeIn(function() {
                    $(this).fadeOut(function() {
                        $(this).fadeIn(function() {
                            $(this).fadeOut(function() {
                                $(this).fadeIn(function() {
                                    $(this).fadeOut(function() {
                                        $(this).fadeIn();
                                    });
                                });
                            });
                        });
                    });
                });
                $('.header-cart-text').fadeIn(function() {
                    $(this).fadeOut(function() {
                        $(this).fadeIn(function() {
                            $(this).fadeOut(function() {
                                $(this).fadeIn(function() {
                                    $(this).fadeOut(function() {
                                        $(this).fadeIn();
                                    });
                                });
                            });
                        });
                    });
                });
                $('.header-cart-link').fadeIn(function() {
                    $(this).fadeOut(function() {
                        $(this).fadeIn(function() {
                            $(this).fadeOut(function() {
                                $(this).fadeIn(function() {
                                    $(this).fadeOut(function() {
                                        $(this).fadeIn();
                                    });
                                });
                            });
                        });
                    });
                });
            } else {
                $('.header-cart-icon').fadeIn();
                $('.header-cart-text').fadeIn();
                $('.header-cart-link').fadeIn();
            }

            /*
            var curName = $('.detail-title h1').html();
            $('.basket-list').append('<div class="basket-row"><div class="basket-row-inner"><div class="basket-row-name"><span>1.</span> ' +
                                  '<a href="' + window.location + '" rel="' + curId + '">' + curName + '</a>' +
                                  '</div><div class="basket-row-photo"><a href="#"></a></div><div class="basket-row-delete"><a href="#">Удалить</a></div></div></div>');
            */
            basketReload($('.basket-list'))
            refreshBasketList();
        }

        return false;
    }

    // обновление каталога
    function refreshCatalogue(post_data, paged) {

        if ( ! paged )
        {
            paged = 0;
        }
        if ( $load.is(':hidden') )
            $load.stop(true).slideToggle();
        
        if ( ! post_data ){
            var styles_ids = []
            $('.catalogue-style-item-active', '#catalogue-styles-container').each(function(){
                styles_ids.push( $(this).data('termid') )
            })
        }

        
        $('#main-catalogue').load(site_url + '/wp-admin/admin-ajax.php',
            post_data
                ? post_data
                : {
                    action: 'catalog-custom-filter',
                    style: styles_ids.join(),
                    manufactory: $('#factory select:first').val(),
                    product: $('#left-products-menu .selected:first').data('termid'),
                    pricefrom: $('#priceFrom').val(),
                    priceto: $('#priceTo').val(),
                    paged: paged
                },
            function() {
            
            $('.breadcrumbs:visible').slideUp('fast');

            $('body,html').animate({scrollTop: $catalogue_top.offset().top}, 1000);
            basket_links_update()
            
            if ( $load.is(':visible') )
                $load.stop(true).slideToggle();

            // активность элементов
            $('.main-catalogue-item-cart a').bind('click', addToCart);
            $('a.main-catalogue-item-zoom-link').fancybox(
            {
                onComplete: function(link, index){
                    link_id = $(link[index]).data('permalink')
                    $('#fancybox-title-float-main').html( 
                                '<a href="' + $('#' + link_id).attr('href') + '">' +
                                $('#fancybox-title-float-main').text() + '</a>' );
                }
            }
            );
            $('.main-catalogue-item-view').bind('mouseover', function() {
                $(this).parent().addClass('main-catalogue-item-hover');
                $(this).find('.main-catalogue-item-zoom').stop(true, true).fadeIn(speedMainCatalogueZoom);
            });
            $('.main-catalogue-item-view').bind('mouseout', function() {
                $(this).find('.main-catalogue-item-zoom').stop(true, true).fadeOut(speedMainCatalogueZoom, function() {
                    $(this).parent().parent().removeClass('main-catalogue-item-hover');
                });
            });
        });
    }
    
    function updateManufactories(cats_ids, after){
        
        if ( ! after.silence && $load.is(':hidden') )
            $load.slideToggle();

        var $current_select = $('#factory select:first');
        
        var post_args = {}
        
        post_args['selected-select'] = $current_select.data('cat_post_name')
        post_args[$current_select.data('cat_post_name')] = cats_ids
        post_args['action'] = $current_select.data('action')
        
        $.post(
        site_url + '/wp-admin/admin-ajax.php',
        
        post_args,
        
        function(data){

            $.each(data, function(select_id, options){
                
                
                var $current_select = $('#' + select_id + '-select')
                var select_old_val = $current_select.val()
                var $options = ''
                var count = 0

                $.each(options, function(key, value){
                    count += 1
                    $options += '<option ' + (select_old_val == key ? 'selected="selected"' : '') + ' value="' + key + '">' + value + '</option>'
                })
                if ( count > 1 ) $options = '<option value="0">Все</option>' + $options
                $current_select.html($options)
                
            })
            
            if ( after.callback )
                after.callback()
        },
        'json'
        )
    }

var adressInit, adressChange

if (typeof(window.history.pushState) == 'function')
    $.address.state($.address.path());
$.address.init(function(event) {
    if( ! $.address.queryString() )
    adressInit = event.value;
}).change(function(event) {
    adressChange = event.value;
    if (adressChange != adressInit)
    {
        adressInit = false
        var param_keys = $.address.parameterNames();
        var args = {action: 'catalog-custom-filter', 'url_path': $.address.queryString()}
        $.each(param_keys, function(index, value){
            if ( value != 'action' && value != 'selected-select' )
            args[value] = decodeURIComponent( $.address.parameter(value) )
        })
        
        if (typeof url_timeout != 'undefined') window.clearTimeout(url_timeout)
        url_timeout = window.setTimeout(function() {
            refreshCatalogue(args)

            $('.catalogue-style-item-active', '#catalogue-styles-container').removeClass('catalogue-style-item-active')
            if ( args.hasOwnProperty('style') )
            $.each( args.style.split(','), function(index, value){
                $('#style-term-id-' + value).parent().addClass('catalogue-style-item-active')
            })
            
            $('.left-menu-ajax li.active').removeClass('active');
            if (args.hasOwnProperty('product')){
                var $this = $('a[data-termid="' + args.product + '"]', '.left-menu-ajax')
                $this.parents().filter('li').addClass('active');

                $('.left-menu-ajax .selected').removeClass('selected');
                $this.addClass('selected');
            }
            
            $('option:selected', '#manufactory-select').removeAttr('selected')
            if (args.hasOwnProperty('manufactory'))
                $('option[value="' + args.manufactory + '"]', '#manufactory-select').attr('selected', 'selected')
            
            if( args.hasOwnProperty('priceto') && args.hasOwnProperty('pricefrom') )
            {
                if ( $('#priceTo').val() != args.priceto )
                    $('#price-slider').slider('values', 1, args.priceto);
                if ( $('#priceFrom').val() != args.pricefrom )
                    $('#price-slider').slider('values', 0, args.pricefrom);
            }
            
        }, 50);
        
    }
});

function updateLocation(new_path, update_args)
{
    if ( ! update_args ) update_args = {}

    var styles_ids = []
    $('.catalogue-style-item-active', '#catalogue-styles-container').each(function(){
        styles_ids.push( $(this).data('termid') )
    })

    var product_category_id = $('#left-products-menu .selected:first').data('termid')
    product_category_id = product_category_id ? product_category_id : false;

    var get; 
    get = update_args.hasOwnProperty('search')
    ? {search: update_args.search}
    : {
        style: styles_ids.join(),
        manufactory: $('#factory select:first').val(),
        product: product_category_id,
        pricefrom: $('#priceFrom').val(),
        priceto: $('#priceTo').val(),
        paged: update_args.hasOwnProperty('paged') ? update_args['paged'] : $('.pagination .pag-current').data('paged')
    }
    
    if ( ! update_args.hasOwnProperty('search') )
    {
        $('.model-link').show()
        $('.model-form').hide()
    }
    
    if (typeof(window.history.pushState) == 'function')
        $.address.path(new_path ? new_path.replace(site_url, '') : $.address.path() )
    $.address.queryString( encodeURI(decodeURIComponent($.param(get))) )
}
    
    function basket_links_update()
    {
        var toCartCookie = $.cookie('toCart');
        if (toCartCookie) {
            var arrayCart = toCartCookie.split(',');
            for (var i = 0; i < arrayCart.length; i++) {
                var curLinkToCart = $('#catalogue-' + arrayCart[i]);
                if (curLinkToCart.length == 1) {
                    curLinkToCart.addClass('disabled');
                    if (curLinkToCart.parents().filter('.detail-title').length == 1) {
                        $('.detail-to-cart a').hide();
                    }
                }
            }
        }
    }

})(jQuery);

function isEmailCorrect(value) { 
	var re = /^\w+([\.-]?\w+)*@(((([a-z0-9]{2,})|([a-z0-9][-][a-z0-9]+))[\.][a-z0-9])|([a-z0-9]+[-]?))+[a-z0-9]+\.([a-z]{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/i;
	if ( re.test(value) )
            return true;
	else
            return false; 
}
