$(function() {
  // Кликаем по примеру поиска
  $('.b-catalog-rand-product').click(function(event) {
    event.preventDefault();
    $('#product_search_name').val( $(this).text());
  });
  
  // Фильтруем товары по маркеровке
  $('#product_search_form').submit(function(event) {
    event.preventDefault();
    var mark = $('#product_search_name').val();
    var type = $('#product_search_type').val();
    
    if ( !mark ) {
      alert('Введите маркировку');
      return;
    }
    
    if ( type == 1 ) {
      // Удаляем класс с результатами со всем дивов
      $('.b-catalog-topic-link').addClass('ipo8-1_').removeClass('ipo8-1');
    }
    else {
      // У всех высталяем неактивный класс и только у избранных — активный
      $('.b-catalog-topic-link').addClass('csk3-2_').removeClass('csk3-2');
    }
    
    
    // Посылаем запрос, получаем JSON со списом ID и активируем соответствующие
    $.ajax({
      type: "GET",
      url: "/catalog/filter/",
      data: { marking: mark, type: type },
      dataType: "json",
      success: function(data) {
        // Ничего не нашли
        if ( data.length == 0 ) {
          $('.b-catalog-empty-result').removeClass('g-error');
          $('.b-catalog-topic-link').addClass('csk3-2').removeClass('csk3-2_');
          return;
        }
        
        $.each(data, function(i, item){
          if ( type == 1 ) {
            $('.b-catalog-topic-link[topic_id="' + item +'"]').addClass('ipo8-1').removeClass('ipo8-1_');
          }
          else if ( type == 2 ) {
            $('.b-catalog-empty-result').addClass('g-error');
            $('.b-catalog-topic-link[topic_id="' + item +'"]').addClass('csk3-2').removeClass('csk3-2_');
            $.scrollTo( $('.csk3-2').eq(0), 800 );
          }
        });
      }
    });
  });
  
  // Показываем информацию о цене на звездочке
  $('.b-catalog-footnote-link').click(function(/* Event */ event){
    event.preventDefault();
    var position = $(this).position();
    $('#catalog_footnote').css({left: (position.left + 10) + 'px', top: (position.top + 10) + 'px'}).toggle();
  });
  
  $('.b-catalog-footnote-info-close').click(function(/* Event */ event) {
    event.preventDefault();
    $('#catalog_footnote').hide();
  });
  
  // Сменяем активную строку таблицы каталога
  $('table.tli tbody tr').mouseover(function(){ $(this).addClass('tli-r'); }).mouseout(function(){ $(this).removeClass('tli-r'); });
  
  // Форма заказа звонка
  $('.b-request-call').click(function(event){
    event.preventDefault();
    $('#ozv').toggle();
  });
  
  // Заказываем обратный звонок
  $('#call_order_form').submit(function(event) {
    event.preventDefault();
    var name  = $('#order_call_name').val();
    var phone = $('#order_call_phone').val();
    
    if ( !name || !phone ) {
      alert('Заполнены не все поля!');
      return;
    }
    
    // Посылаем запрос, получаем JSON со списом ID и активируем соответствующие
    $.ajax({
      type: "GET",
      url: "/call_order/",
      data: { name: name, phone: phone, send: 1 },
      dataType: "text",
      success: function(data) {
        $('#call_order_info').removeClass('ozv3').addClass('ozv3_').next('#call_order_ok').addClass('ozv3').removeClass('ozv3_');
        setTimeout( function() { $('#ozv').hide() }, 5000 );
        //alert('Благодарим Вас за обращение! Вы сделали правильный выбор!');
        //$('#ozv').toggle();
      }
    });
  });
  
  // Проверяем данные о количестве заказываемых товаров
  $('.b-catalog-order-add_count').keyup(function() {
    var count = parseInt( $(this).val() );
    if ( count > 1000 ) {
      $(this).val(1000);
    }
  });
  
  // Добавлем заказ
  $('.b-catalog-order-add').click(function(event) {
    event.preventDefault();
    var button = $(this);
    var posId  = parseInt( $(this).attr('pos_id') );
    var count  = $(this).parent().prev().children('.b-catalog-order-add_count').val();
    
    $.ajax({
      type: "GET",
      url: "/order/add/",
      data: { pos_id: posId, count: count },
      dataType: "text",
      success: function(data) {
        if ( !data ) return false;
        button.parent().prev().text('');
        button.parent().html('<span><a href="/order/">перейти в заказ</a></span>');
        $('.b-order-count-info').text(data);
      }
    });
  });
  
  // Удаляем заказ
  $('.b-catalog-order-del').click(function(event) {
    event.preventDefault();
    var button = $(this);
    var posId  = parseInt( $(this).attr('pos_id') );
    
    $.ajax({
      type: "GET",
      url: "/order/del/",
      data: { pos_id: posId },
      dataType: "json",
      success: function(data) {
        if ( !data.count ) return false;
        button.parent().parent().remove();
        if ( $('#orders-list tbody tr').length == 0 ) {
          $('#orders-list').prev('h2').remove();
          $('#orders-list').remove();
        }
        
        if ( data.count == 0 ) { data.count = ''; }
        $('.b-order-count-info').text(data.count);
        $('#orders-list .bas2-1').html(data.cost);
      }
    });
  });
  
  // Обновляем стоимость
  $('#orders-list input:text').keyup(function(event) {
    event.preventDefault();
    var posId  = parseInt( $(this).attr('pos_id') );
    var count = $(this).val();
    var input = $(this);
    
    $.ajax({
      type: "GET",
      url: "/order/recount/",
      data: { pos_id: posId, count: count },
      dataType: "json",
      success: function(data) {
        if ( !data.total_cost ) return false;
        if ( data.total_cost == 0 ) { data.total_cost = ''; }
        $('#orders-list .bas2-1').html(data.total_cost);
        input.parent().next().html(data.cost);
      }
    });
  });
  
  // Отправляем форму
  // Проверяем все обязательные поля — если все заполнены — снимаем блокировку
  $('#order-send-form input[name="name"]').keyup(function() {
    if ( $(this).val() && !$(this).val().match(/^[a-zA-Zа-яёА-ЯЁ\x20]+$/) ) {
      //alert('Поле заполнено не корректно.');
      $('.b-order-error_name').removeClass('g-error');
      return;
    }
    $('.b-order-error_name').addClass('g-error');
  });
  
  $('#order-send-form input[name="firm"]').keyup(function() {
    if ( $(this).val() && !$(this).val().match(/^[a-zA-Zа-яёА-ЯЁ\x20]+$/) ) {
      //alert('Поле заполнено не корректно.');
      $('.b-order-error_firm').removeClass('g-error');
      return;
    }
    $('.b-order-error_firm').addClass('g-error');
  });
  
  $('#order-send-form input[name="phone"]').keyup(function() {
    if ( $(this).val() && !$(this).val().match(/^[\d\x20\-\+\(\)\=\,]+$/) ) {
      //alert('Поле заполнено не корректно.');
      $('.b-order-error_phone').removeClass('g-error');
      return;
    }
    $('.b-order-error_phone').addClass('g-error');
  });
  
  $('#order-send-form').submit(function(event) {
    if ( !isValid() ) {
      //alert('Заполнены не все обязательные поля');
      $('.b-order-error').removeClass('g-error');
      return false;
    }
    
    if ( ($('#order-send-form input[name="name"]').val().length < 3) || ($('#order-send-form input[name="firm"]').val().length < 3) ) {
      //alert('Поля Контактное лицо или Организация заполнены не полностью. Введите более двух символов.');
      $('.b-order-error_name').removeClass('g-error');
      $('.b-order-error_firm').removeClass('g-error');
      return false;
    }
    
    if ( ( $('#order-send-form input[name="phone"]').val().replace(/[\D]+/g, "").length < 10 ) ) {
      //alert('Укажите код города в телефоне');
      $('.b-order-error_phone').removeClass('g-error');
      return false;
    }
    
    return true;
  });
});

function isValid() {
  return ( $('#order-send-form input[name="name"]').val() && $('#order-send-form input[name="firm"]').val() && $('#order-send-form input[name="phone"]').val() );
}