function deleteFromCart(item_num){
   $.post('/shop/cart_my/', {'delete_item' : item_num}, function(result){
      var resultObject = eval(result);
      updateCartWithOptions(resultObject);
   })
}

function setPrice(new_price){
   $('#calc_price').text(new_price);
   $('#sum_price').val(new_price);
}

function setTotalPrice(new_price){
   $('#calc_price2').text(new_price);
   $('#little_cart .total_price').text(new_price);
   if (parseInt(new_price) > 0) {
      $('.order_button').show();
   } else {
      $('.order_button').hide();
   }
}

function calcOnChange(){
   var startPrice = parseInt($('#start_price').val());
   var totalPrice = 0;
   totalPrice += startPrice;
   $('.door_params select').each(function(i, item){
      var basePrice = parseInt($(this).attr('basePrice')) || 0;
      if(item.selectedIndex != -1){
         var price = 0;
         var currentOption = $(item.options[item.selectedIndex]);
         if (currentOption.attr('basePriceNum')) {
            basePrice = parseInt($(this).attr('basePrice' + currentOption.attr('basePriceNum')));
         }
         // Для наличников и доборов
         var multiplier = parseInt(currentOption.attr('multiplier'));
         if (multiplier && multiplier > 0) {
            var price = basePrice * multiplier;
         } else {
            // Для вариантов
            var variantPrice = currentOption.attr('prices');
            if (variantPrice) {
               var variantPrices = eval(variantPrice);
               // Смотрим какой цвет активный
               var colorItem = $('select[name="door[color]"]').get(0);
               var currentColor = $.trim($(colorItem.options[colorItem.selectedIndex]).text());
               if (variantPrices.length) {
                  for(var i = 0; i < variantPrices.length; i++) {
                     if ($.trim(variantPrices[i]['color']) == currentColor) {
                        var price = parseInt(variantPrices[i]['price'])
                     }
                  }
               }
            } else
            {
               // Для остального
               var price = parseInt(currentOption.attr('price'));
            }
         }
         totalPrice += price;
      }
   });
   var count = parseInt($('#doors_count').val());
   if(!count){
      count = 1;
   }
   setPrice(totalPrice * count);
}

function updateCart(){
   $.getJSON('/shop/cart_my/', {'getItems': true}, function(result){
      updateCartWithOptions(result);
   });
}

function updateCartWithOptions(objects){
   if(objects.length == 0){
      $('#calc_cart').empty();
      $('#little_cart .count').text(0);
      setTotalPrice(0);
      return;
   }
   var totalPrice = 0;
   var ul = $('<ul></ul>').addClass('cart_list');
   for(var i = 0; i < objects.length; i++){
      var object = objects[i];
      totalPrice += parseInt(object['sum_price']);
      var liText = object['title'] + ', ' + object['color'] + ' ' + object['sizes'];
      if(object['count'] > 1){
         liText += ' (' + object['count'] + ')';
      }
      var li = $('<li></li>').text(liText);
      var x = function(item_num){
         // DELETE ITEMS
         var a = $('<a></a>').attr('href', '#').text('удалить').click(function(e){
            e.preventDefault();
            deleteFromCart(item_num);
         });
         li.append(a);
      }(i);
      ul.append(li);
   }
   setTotalPrice(totalPrice);
   var text = '<p class="cart_info">У вас заказано ' + objects.length + ' двери: </p>';
   $('#calc_cart').empty().html(text).append(ul);
   $('#little_cart .count').text(objects.length);

}

function initCalc(){
   $.ajaxSetup({cache: false});

   calcOnChange();
   updateCart();
   $('.door_params select[name="door[color]"]').change(function(){
      var currentOption = $(this.options[this.selectedIndex]);
      var price_nalichnik = parseInt(currentOption.attr('priceNalichnik'));
      var price_nalichnik2 = parseInt(currentOption.attr('priceNalichnik2'));
      var price_dobor_obj = eval(currentOption.attr('priceDobor'));
      $('select[name="door[nalichniki]"]').attr('basePrice', price_nalichnik);
      if (price_nalichnik2) {
         $('select[name="door[nalichniki]"]').attr('basePrice2', price_nalichnik2);
      }
      if (price_dobor_obj !== undefined && price_dobor_obj.length > 0) {
         for(var i = 0; i < price_dobor_obj.length; i++) {
            var currentSelect = $('select[name="door[dobor]"] option[num=' + i + ']');
            var currentSelectValue = currentSelect.attr('value');
            currentSelect.attr('price', price_dobor_obj[i]);
            currentSelect.text(currentSelectValue + ' (' + price_dobor_obj[i] + ' р.)')
         }
      }

      // Устанавливаем цену у вариантов
      $('select[name="door[variants]"] option').each(function(i, item){
         var variantPrice = $(item).attr('prices');
         if(variantPrice){
            var variantPrices = eval(variantPrice);
            // Смотрим какой цвет активный
            var colorItem = $('select[name="door[color]"]').get(0);
            var currentColor = $.trim($(colorItem.options[colorItem.selectedIndex]).text());
            if(variantPrices.length){
               for(var i = 0; i < variantPrices.length; i++){
                  if($.trim(variantPrices[i]['color']) == currentColor){
                     var price = parseInt(variantPrices[i]['price'])
                     var currentValue = $(item).attr('value');
                     $(item).text(currentValue + ' (' + price + ' р.)');
                     break;
                  }
               } 
            }
         }
      });

   });
   $('.door_params select[name="door[color]"]').change();

   $('.door_params select, .door_params input').change(function(){
      calcOnChange();
   });


   $('.calc .modif_cena .z').click(function(e){
      e.preventDefault();
      var serializeData = $(this).closest('form').serialize();
      $.post('/shop/cart_my/', serializeData, function(result){
         var resultObject = eval(result);
         updateCartWithOptions(resultObject);
      });
   });

}

$(document).ready(function(){
   initCalc();

   var values = {
      'name': 'Ваше имя',
      'phone': 'Ваш телефон',
      'time': 'Время удобное для звонка'
   };

   var options = {
      //target:        '#errorPhoneDiv',   // target element(s) to be updated with server response
      success:       showResponse,  // post-submit callback
      beforeSubmit:  showRequest
   }

   function showRequest(formData, jqForm, options){

   }

   function showResponse(responseText, statusText, xhr, $form){
      $('.popup-contents').html(responseText);
      var distance = 10;
      var time = 250;
      var hideDelay = 500;

      var hideDelayTimer = null;

      var beingShown = false;
      var shown = false;

      var info = $('.popup').css('opacity', 0);

      // show
      if(hideDelayTimer) clearTimeout(hideDelayTimer);
      if(beingShown || shown){
         return;
      } else{
         // reset position of info box
         beingShown = true;

         info.css({
            top: -40,
            left: -33,
            display: 'block'
         }).animate({
                  top: '-=' + distance + 'px',
                  opacity: 1
               }, time, 'swing', function(){
                  beingShown = false;
                  shown = true;
               });
      }

      setTimeout(function(){
         if(hideDelayTimer) clearTimeout(hideDelayTimer);
         hideDelayTimer = setTimeout(function (){
            hideDelayTimer = null;
            info.animate({
               top: '-=' + distance + 'px',
               opacity: 0
            }, time, 'swing', function (){
               shown = false;
               info.css('display', 'none');
            });

         }, hideDelay);
      }, 2000);

      if(statusText == 'success'){
         $('#callmypls .srch').each(function(i, item){
            $(item).val('').blur();
         });
      }
   }


   $('#callmypls form').bind('submit', function(e){
      e.preventDefault();
      $(this).ajaxSubmit(options);
   });


   /*$('#callmypls .field input')
    .focus(
    function() {
    var item = $(this);
    if (values[item.attr('name')] == item.val()) {
    item.val('');
    }
    }).blur(
    function() {
    var item = $(this);
    if (item.val() == '') {
    item.val(values[item.attr('name')]);
    }
    });*/

   $('#callmypls .button a').click(function(e){
      e.preventDefault();
      $('#callmypls form').trigger('submit');
   });
})



