$().ready(function(){
  // При клике на типе доставки
  $(".deliveryType").click(function(){
    $('#delivery_list').hide();
    setDeliveryText();
    JSONRequest();
  });

  // Обработка выбора количества товара
//  $(".order_product_quantity").ForceNumericOnly();
  $(".order_product_quantity").keypress(false);
//  $(".order_product_quantity").attr('disabled', true);
  $(".order_product_quantity_minus").click(function(){
    var button_id = $(this).attr("id");
    var field_id = button_id.substr(0, button_id.length-"_minus".length);
    var field_value = parseInt($("#"+field_id).val());
    if (field_value>1){
      $("#"+field_id).val(field_value-1);
      $("#pack_"+field_id).val($("#"+field_id).val());
    }
    JSONRequest();

    return false;
  });

  $(".order_product_quantity_plus").click(function(){
    var button_id = $(this).attr("id");
    var field_id = button_id.substr(0, button_id.length-"_plus".length);
    var field_value = parseInt($("#"+field_id).val());
    $("#"+field_id).val(field_value+1);
    $("#pack_"+field_id).val($("#"+field_id).val());
    JSONRequest();
    
    return false;
  });

  // Обработка выбора типа подарочной упаковки
  $(".pack_list_link").click(function(){
    var link_id = $(this).attr("id");
    var product_id = link_id.substr("pack_list_link".length);
    var pack_block_id = "pack_block"+product_id;

    // Найти активную упаковку и подсветить её
    $("#"+pack_block_id+" .pack_content .pack_link").each(function(index, value){
      var pack_block_id = $(value).parent().parent().attr("id");
      var product_id = pack_block_id.substr("pack_block".length);
      var str_pack_id = $(value).attr("id");
      var pack_id1 = str_pack_id.substr("pack_link".length);
      var pack_id2 = $("#hidden_pack"+product_id).val();
      if(pack_id1 == pack_id2)
        $(value).addClass('active');
      else
        $(value).removeClass('active');
    });

    $("#"+pack_block_id).show();
    return false;
  });

  $(".pack_link").click(function(){
    var pack_block_id = $(this).parent().parent().attr("id");
    var product_id = pack_block_id.substr("pack_block".length);
    var pack_id = 0;
    if($(this).attr("id") == "pack_link0"){
      $("#pack_list_link"+product_id).html("Упаковать в подарочную упаковку?");
      $("#hidden_pack"+product_id).val(0);
    }
    else{
      var str_pack_id = $(this).attr("id");
      pack_id = str_pack_id.substr("pack_link".length);
      $("#hidden_pack"+product_id).val(pack_id);
      $("#pack_list_link"+product_id).html($("#"+$(this).attr("id")+" span").html());
    }

    $("#pack_ord"+product_id).attr("name", 'productsArray['+pack_id+']');

    $(".pack_block").hide();
    JSONRequest();
    return false;
  });

  // При клике на чекбокс удаления
  $(".delete_checkbox").click(function(){
    if($(this).attr('checked')){
      var res = confirm("Удалить?");
      if(res)
        $("#recount").click();
      return res;
    }
    else
      return true;
  });

  // Ссылка Добавить телефон
  $('#add-phone-link').click(function(){
    var inputStr = '<input type="text" name="userData[additional_phone]" class="d add-phone-input" size="40"><br />';
    $('#add-phone-div').html(inputStr);
    $('#add-phone-link').hide();
    return false;
  });

  // При клике на ссылку Выберите тип доставки
  $('#delivery_list_link').click(function(){
    $('#delivery_list').toggle();
    setDeliveryText();
    return false;
  });

  $('#datepicker').datepicker({minDate: 0});

  // При клике на кнопку Отправить заказ
  $('#commit_button').click(function(){
    if(
      ($.trim($('#userData_surname').val())==='') ||
      ($.trim($('#userData_name').val())==='') ||
      ($.trim($('#userData_patronymic').val())==='') ||
      ($.trim($('#userData_phone').val())==='') ||
      ($.trim($('#userData_email').val())==='')
    ){
      alert("Поля Фамилия, Имя, Отчество, Телефон, E-Mail\nобязательны для заполнения.");
      return false;
    }
    //  /index.php?state=order&make_order=true
    var action = $('#carta').attr('action');
    action += '&make_order=true';
    $('#carta').attr('action', action);

    return true;
  });

  // При клике на кнопку Отправить предзаказ
  $('#preorder_button').click(function(){
    if(
      ($.trim($('#preorder_info_name').val())==='') ||
      ($.trim($('#preorder_info_fio').val())==='') ||
      ($.trim($('#preorder_info_phone').val())==='') ||
      ($.trim($('#preorder_info_email').val())==='') ||
      ($.trim($('#preorder_info_quantity').val())==='')
    ){
      alert("Поля Модель, ФИО, Телефон, E-Mail, Количество\nобязательны для заполнения.");
      return false;
    }

    return true;
  });

});

// Устанавливаем текст под ссылкой Выберите тип доставки
function setDeliveryText(){
  var selectedId = '';
  $('.deliveryType').each(function(index, value){
    if($(value).attr('checked'))
      selectedId = $(value).attr('id');
  });
  if(selectedId != ''){
    $('#delivery_list_link').text($('#'+selectedId+'Text').text());
    $('#delivery_price').text($('#'+selectedId+'Price').text());
  }
}

jQuery.fn.ForceNumericOnly = function(){
  return this.each(function() {
    $(this).keydown(function(e) {
      var key = e.charCode || e.keyCode || 0;
      // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
      return (
        key == 8 ||  // Backspace
        key == 9 ||  // Tab
        key == 127 ||  // Del
        (key >= 37 && key <= 40) ||  // Arrows
        (key >= 48 && key <= 57) ||  // 0-9
        (key >= 96 && key <= 105));  // NumPad 0-9
    })
  })
};


//jQuery.fn.JSONRequest =
function JSONRequest(){
  var str = '?';
  $('#carta input').each(function(n,element){
    if($(element).attr('type')=='submit')return;
    if((($(element).attr('type')=='radio') || ($(element).attr('type')=='checkbox')) && (!$(element).attr('checked')))return;
    str += $(element).attr('name') +'='+$(element).val()+'&';
  });
//  alert(str);

  $.ajax({type: "POST",
    url: "OrderJSON.php"+str,
//    data: {data: },
    dataType: 'json',
//    error: function() {
//      alert("Случилась внутренняя ошибка!");
//    },
    success: setValues
  });
  
  return;
}

// Устанавливаем значения полей
function setValues (data) {
  $('.total_price_span').html(data.totalsum);
  $('.quantity_span').html(data.quantity);
  for (var key in data.product) {
    var value = data.product[key];
    $('#product_sum_span'+value['id']).html(value['sum']);
    $('#product_pack_sum_span'+value['id']).html(value['pack_sum']);
  }
  for (var key in data.delivery) {
    var value = data.delivery[key];
    $('#deliveryType'+value['id']+'Price').text(value['price']);
    $('#deliveryType'+value['id']+'HPrice').text((value['price']==0)?'бесплатно':(value['price']+' руб.'));
  }
  setDeliveryText();
}

