// Class "Каталог"
var Catalog = {
    
    items_count : '',

    // function executes when DOM loaded
    Catalog : function () {
        // slider
        if($("#slider").length!=0) {
            // прячем стрелки если слайд один
            if($("#slider > div").length==1) {
                $("a.right, a.left").hide();
            }
            $('#slider').cycle({ 
                fx:     'slideX', 
                speed:  'fast', 
                timeout: 0, 
                next:   'a.right', 
                prev:   'a.left' 
            });
        }
        
        // форма поиска - ввод
        $("#quick_search .input_s").bind("focus click", function(){
            if($("select[name='brand']").val()==0) {
                $(this).val($(this).attr("data-inactive"));
                $("select[name='brand']").focus();
                $(this).closest("form :submit").attr('disabled', 'true');
            } else {
                $(this).val('');
                $(this).closest("form :submit").attr('disabled', '');
            }
            return false;
        });
        
        $("#quick_search .input_s").trigger("focus");
        
        $("#quick_search select[name='brand']").change(function(){
            $("#quick_search .input_s").trigger("focus");
        });
        
        /*
        *   Страница каталога
        */
        
        // меняем число найденных товаров
        $("#count").html(Catalog.items_count);
        
        // при выборе производителя - подгружаем разделы каталога
        $("#catalog_form > select[name='brand']").change(function(){
            Jet.ajax({
                'module'    :   'Catalog',
                'func'      :   'get_sections',
                'vars'      :   'sections',
                'data'      :   {'brand':$(this).val()},
                'callback'  :   function(sections) {
                    // показываем селект с разделами
                    $("#catalog_form > select[name='section']").empty().attr('disabled', '').removeClass('hide');
                    // скрываем селект с категориями
                    $("#catalog_form > select[name='cat']").empty().attr('disabled', 'true').addClass('hide').
                    append("<option disabled selected>Категория</option>");
                    // добавляем пустую опцию в селект с разделами
                    $("#catalog_form > select[name='section']").append("<option disabled selected>Раздел</option>");
                    for(i in sections) {
                        $("#catalog_form > select[name='section']").append("<option value=\""+sections[i]['id']+"\">"+sections[i]['name']+"</option>");
                    }
                }
            });
        }).focus();
        
        // при выборе раздела каталога - подгружаем категории этого раздела
        $("#catalog_form > select[name='section']").change(function(){
            Jet.ajax({
                'module'    :   'Catalog',
                'func'      :   'get_cats',
                'vars'      :   'cats',
                'data'      :   {'section':$(this).val()},
                'callback'  :   function(cats) {
                    // показываем селект с категориями
                    $("#catalog_form > select[name='cat']").empty().attr('disabled', '').removeClass('hide');
                    // добавляем пустую опцию в селект с категориями
                    $("#catalog_form > select[name='cat']").append("<option disabled selected>Категория</option>");
                    for(i in cats) {
                        $("#catalog_form > select[name='cat']").append("<option value=\""+cats[i]['id']+"\">"+cats[i]['name']+"</option>");
                    }
                }
            });
        });
        
        // при выборе категории каталога - отправляем форму
        $("#catalog_form > select[name='cat']").change(function(){
            // сбрасываем строку поиска
            $("#catalog_form input[name='search']").val('Поиск');
            $("#catalog_form").submit();
        });
        
        // при отправке формы аплоада
        $("#upload_form").submit(function(){
            alert('Обработка прайс-листа может занять долгое время (несколько минут), обязательно дождитесь окончания загрузки страницы.');
            $(this).find(":submit").attr("disabled", "true");
        });
        
        // при нажатии на "заказать"
        $("a.order").click(function(){
	    $.jGrowl('<p>Уважаемые пользователи интернет-магазина автозапчастей «АЗК», в данный момент мы делаем сайт удобнее для Вас, но некоторые функции сайта из-за этого сейчас ограничены.</p>\n\
<p>Услуга по созданию он-лайн заказа временно не доступна. Однако, Вы можете получить всю актуальную информацию по ценам из наших прайс-листов , а на ваши вопросы ответят наши специалисты по телефону: <b>(846) 956-67-00</b>, <b>(846) 956-67-07</b></p>\n\
<p>Мы благодарим Вас за то, что Вы – наш клиент.</p>', { sticky: true });
	    return false;
	    ////////////
            var count=$(this).closest("tr").find(".kol").find("input").val() || '1';
            $(this).closest("tr").find(".kol").find("input").val(count).trigger("change");
            var pattern=/^\d+$/;
            if(pattern.test(count) && parseInt(count)>0) {
                // добавляем в корзину
                Jet.ajax({
                'module'    :   'Catalog',
                'func'      :   'basket_add',
                'data'      :   {item : $(this).attr('data-id'), amount : count},
                'vars'      :   'item,summ,count',
                'callback'  :   function(data) {
                    if(data.summ) {
                        $(".basket_count").html(data.count);
                        $(".basket_summ").html(data.summ);
                        $.jGrowl("<p>Товар добален в корзину: <br /> <b>"+data.item.name+"</b></p><p>Общая сумма заказа: "+data.summ+" руб.</p>", {header:'Корзина'});
                    } else {
                        $.jGrowl("Товар не найден.", {header:'Ошибка'});
                    }
                }
                });
            } else {
                $.jGrowl('Укажите верное кол-во заказываемых деталей или оставьте поле пустым, если деталь нужна только одна', {header : 'Ошибка'});
            }
            return false;
        });
        
        // при изменении значения в поле "кол-во" - посчитаем сумму
        $("input.count").bind("change keyup", function(){
            $(this).closest("tr").find(".amount").text( Math.round( parseInt($(this).val() || 0)*parseFloat($(this).closest("tr").find(".price").text())*100 )/100+' руб.' );
        });
        
        // при изменении значения в поле "кол-во" - посчитаем сумму
        $("input.count_view").bind("change keyup", function(){
            $(this).closest("tr").find(".amount").text( Math.round( parseInt($(this).val() || 0)*parseFloat($(this).closest("tr").find(".price").text())*100 )/100 );
        });
        
        // при нажатии на "обновить" на странице корзины - пересчитаем все товары
        $("#basket_form .submit").click(function(){
            Jet.ajax({
            'module'    :   'Catalog',
            'func'      :   'basket_recalc',
            'vars'      :   'summ,count',
            'method'    :   'POST',
            'data'      :   $("#basket_form").serializeArray(),
            'callback'  :   function(data) {
                $(".basket_summ").html(data.summ+' р.');
                $(".basket_count").html(data.count);
                $.jGrowl("Данные о товарах обновлены. Можно продолжить оформление заказа.", {header : "Корзина"});
            }
            });
            return false;
        });
        
        // валидация формы отправки заказа
        Jet.validate([
          ["#order_form input[name='email']", "^[\\w-\.]+\@[\\w-\\.]+\\.[a-z]{2,6}$", 'error'],
          ["#order_form input[name='name']", "^.+$", 'error'],
          ["#order_form input[name='cell']", "^.+$", 'error'],
          ["#order_form textarea[name='text']", ".+", 'error']
        ], "#order_form :submit", "disabled");
        
        // при нажатии на "удалить" в корзине
        $("a.delete").click(function(){
            var el=this;
            if(confirm('Точно удалить этот товар из корзины?')) {
                Jet.ajax({
                'module'    :   'Catalog',
                'func'      :   'basket_delete',
                'vars'      :   'summ,count',
                'data'      :   {id:$(this).attr("data-id")},
                'callback'  :   function(data) {
                    $(el).closest("tr").remove();
                    $(".basket_summ").html(data.summ+' р.');
                    $(".basket_count").html(data.count);
                    if(parseInt(data.count)<1) {
                        window.location.reload();
                    }
                }
                });
            }
            
            return false;
        });
        
        // при клике на строку ввода поиска
        $(".search_submit input[name='search']").bind("focus click", function(){
            if(!$(this).attr("data-changed")) {
        	    $(this).val('').attr("data-changed", "true");
    	    }
        });
        
        // при отправке формы посмотрим выбран ли производитель
        $("#catalog_form").submit(function(){
            if($(this).find("select[name='brand']").val()=='Производитель') {
                $.jGrowl("Сначала нужно выбрать производителя.", {header : "Ошибка"})
                return false;
            }
            else
                return true;
        });
    }
}

