var address_found = false;
$(function() {
  var add_to_cart_class = '';
  tryAddToCart = function (id, url, f_cl, object) {
    /*
    var try_size = $('#cart-size-'+id);
    if ($(try_size).attr('id')) {
      $('#cart-tags-'+id).toggle();
    } else {
      addToCartNoSize(id, url);
    }
    */
    add_to_cart_class = f_cl;

    $('.size_layer').hide();

    $(object).parents('.cart_reload').find('#cart-amount-'+id).toggle(1, function() {
      if ($(object).parents('.cart_reload').find('#cart-amount-'+id).length) {
        $(object).parents('.cart_reload').find('#cart-amount-val-'+id).val(1);
        $(object).parents('.cart_reload').find('#cart-amount-val-'+id).focus();
      }
    });
  }
  addToCartNoSize = function(id, url) {
    ajaxToCart(id, url, 'nosize');
  }
  ajaxToCart = function(id, url, size, amount, object) {
    $(object).parents('.cart_reload').find('#cart-ok-ajax-'+id).show();
    $.post(
      url,
      { id: id, size: size, amount: amount, 'class': add_to_cart_class },
      function (data) {
        refreshCart();
        reloadCartAdders(id, data);
        //$('.cart_reload[rel='+id+']').html(data);
      }
    );
  }

  reloadCartAdders = function(id, note_size) {
    var adders_list = $('.cart_reload[rel='+id+']');
    $.each(adders_list, function(i, object) {
      $.get(
        $(object).attr('url'),
        { 'id': id, 'class': $(object).attr('lang'), 'note_size': note_size},
        function (data) {
          $(object).html(data);
        }
      );
    });
  }

  addToCart = function(id, url, object) {
    if ($(object).parents('.cart_reload').find('#cart-size-'+id).length) {
      var size = $(object).parents('.cart_reload').find('#cart-size-'+id).val();
    } else {
      var size = 'nosize';
    }
    var amount = $(object).parents('.cart_reload').find('#cart-amount-val-'+id).val();
    $(object).parents('.cart_reload').find('#cart-ok-'+id).attr('disabled', 'disabled');
    ajaxToCart(id, url, size, amount, object);
  }
  refreshCart = function() {
    $('#reload-cart-ajax').show();
    $.post(
      $('#reload-cart').attr('url'),
      function (data) {
        $('#reload-cart').html(data);
      }
    );
  }
  $.fn.inCartRefresh = function(o) {
    var self = this;
    var regular = /cart-delete-/;
    var regular_tr = /cart-tr-/;

    refreshParentList = function() {
      var parent_list = $('tr[rel*=order_parent_category_]');
      $(parent_list).each(function() {
        var id = parseInt($(this).attr('rel').replace('order_parent_category_', ''));
        var self = this;
        if (!$('tr[rel=order_parent_child_category_'+id+']:visible').length) {
          $(self).remove();
          $('tr[rel=order_parent_delivery_category_'+id+']').remove();
          $('tr[rel=order_parent_summary_category_'+id+']').remove();
          $('tr[rel=order_date_time_'+id+']').remove();
          $('.restoran_address_list_container[rel='+id+']').remove();
        }
      });
      //order_parent_category_child_
    }

    refreshCartPrice = function() {
      var change = '#'+$(this).attr('id');
      $(change+'-ajax').show();
      var data = {};
      $(self).find(':text[id!=address_house][id!=address_house_house]').each(function() {
        data[$(this).attr('name')] = $(this).val() ;
      });
      
      var ny = $('#ny:checked');
      if(ny.html() != null){
        data['ny'] = true;
      }

      $.getJSON(
        $(self).attr('action'),
        data,
        function (data) {
          if (data['min_price']) {
            $('#order_min_delivery_message').html('При заказе на сумму '+data['min_price']+' рублей доставка по Вашему адресу будет бесплатна!');
            $('#final_delivery_message').show();
          } else {
            $('#order_min_delivery_message').html('');
            $('#final_delivery_message').hide();
          }
          if (data['delivery_add'] || data['delivery_add'] == 0) {
            $('#delivery_add_input_init').attr('value', data['delivery_add']);
          }
          $(change+'-ajax').hide();
          $('.price').find('img').hide();
          var i = 1;
          $(self).find('tr[lang=cart-tr]').each(function() {
            var id = $(this).attr('id').replace(regular_tr, '');
            if (!data['obj'][id]) {
              $(this).remove();
            } else {
              if (i % 2 == 0) {
                $(this).removeAttr('class');
              } else {
                $(this).attr('class', 'background_attr_beige');
              }
              $('#cart-product-'+id).html(data['obj'][id]);
              i++;
            }
          });
          if (i == 1) {
            $(self).replaceWith(o.clear_message);
            document.location.href = o.home_url;
            return false;
          }
          jQuery.each(data['delivery'], function(id, value) {
            if (!value) {
              value = 'бесплатно';
              tempOrderList.delivery_price_default[id] = 0;
            } else {
              tempOrderList.delivery_price_default[id] = value;
              value = value + ' руб.';
            }
            if (data['exception'] && data['exception'][id]) {
              tempOrderList.delivery_exception[id] = true;
            }
            if (tempOrderList.drive_in_state[id]) {
              //$('#cart-delivery-'+id).find('span').html('нет');
            } else {
              $('#cart-delivery-'+id).find('span').html(value);
            }
            if (data['exception'] && data['exception'][id]) {
              value = 'уточнит оператор';
              $('#cart-delivery-'+id).find('span').html(value);
            }
          });
          jQuery.each(data['sub_sum'], function(id, value) {
            $('#cart-product-summary-'+id).html(value + ' руб.');
          });
          $('#cart-summary').html(data['summary'] + ' руб');
          refreshParentList();
          tempOrderList.reloadPriceDriveInSecure();
        }
      );
    };

    deleteCartItem = function() {
      var id = $(this).attr('lang');
      $('#delete-product-'+id).val(id);
      $('#'+$(this).attr('id')+'-ajax').show();
      deleteCartItems();
    }

    deleteAllCartItems = function() {
      $('input[name^=delete_product]').val(1);
      $('#cart-clear-ajax').show();
      deleteCartItems();
    }

    deleteCartItems = function() {
      var data = {};
      $(self).find('input[name^=delete_product]').each(function() {
        data[$(this).attr('name')] = $(this).val();
      });
      $.getJSON(
        $(self).attr('action'),
        data,
        function (data) {
          if (data['min_price']) {
            $('#order_min_delivery_message').html('При заказе на сумму '+data['min_price']+' рублей доставка по Вашему адресу будет бесплатна!');
            $('#final_delivery_message').show();
          } else {
            $('#order_min_delivery_message').html('');
            $('#final_delivery_message').hide();
          }
          if (data['delivery_add'] || data['delivery_add'] == 0) {
            $('#delivery_add_input_init').attr('value', data['delivery_add']);
          }
          $('#cart-clear-ajax').hide();
          var i = 1;
          $(self).find('tr[lang=cart-tr]').each(function() {
            var id = $(this).attr('id').replace(regular_tr, '');
            if (!data['obj'][id]) {
              $(this).remove();
            } else {
              if (i % 2 == 0) {
                $(this).removeAttr('class');
              } else {
                $(this).attr('class', 'background_attr_beige');
              }
              i++;
            }
          });
          if (i == 1) {
            $(self).replaceWith(o.clear_message);
            document.location.href = o.home_url;
            return false;
          }
          jQuery.each(data['delivery'], function(id, value) {
            if (!value) {
              tempOrderList.delivery_price_default[id] = 0;
              value = 'бесплатно';
            } else {
              tempOrderList.delivery_price_default[id] = value;
              value = value + ' руб.';
            }
            if (data['exception'][id]) {
              tempOrderList.delivery_exception[id] = true;
            }
            if (tempOrderList.drive_in_state[id]) {
              //$('#cart-delivery-'+id).find('span').html('нет');
            } else {
              $('#cart-delivery-'+id).find('span').html(value);
            }
            if (data['exception'][id]) {
              value = 'уточнит оператор';
              $('#cart-delivery-'+id).find('span').html(value);
            }
          });
          jQuery.each(data['sub_sum'], function(id, value) {
            $('#cart-product-summary-'+id).html(value + ' руб.');
          });
          
          $('#cart-summary').html(data['summary'] + ' руб.');
          refreshParentList();
          tempOrderList.reloadPriceDriveInSecure();
        }
      );
    }

    $(this).find(':text[id!=address_house][id!=address_house_house]').change(refreshCartPrice);
    $(this).find('.cart-delete').click(deleteCartItem);
    $(this).find(':button[class!=status-force][class!=order_time_cart_save][id!=address_house_run][id!=back_to_menu]').click(deleteAllCartItems);
    $(this).find(':text[id!=address_house][id!=address_house_house]').keypress(function(e) {
      var self = this;
      if (e.keyCode == 13) {
        var change = '#'+$(self).attr('id');
        $(change+'-ajax').show();
        refreshCartPrice();
        return false;
      }
    });
  }

  v_clickSibling = function(e) {
    if (e.keyCode == 13) {
      $(this).siblings('input').click();
    }
  }

  v_clickSibling2 = function(e) {
    if (e.keyCode == 13) {
      $(this).parents('div.centering').find('input[type=button]').click();
    }
  }

  if ($('input.lite_order_amount').length) {
    $('input.lite_order_amount').keypress(v_clickSibling);
    $('.centering select').keypress(v_clickSibling2);
    //$('input.lite_order_amount').mask('999999', {placeholder:' '});
  }

  //пыщь пыщь!
  tempOrderList = {};
  tempOrderList.drive_in_state = '';
  tempOrderList.delivery_price_default = {};
  tempOrderList.delivery_exception = {};
  tempOrderList.is_temp = true;
  tempOrderList.reloadPriceDriveIn = function() {
    refreshCartPrice();
  }
  tempOrderList.reloadPriceDriveInSecure = function() {
    //получим для начала стоимость, чтобы отталкиваться от неё
    var current_summary = parseInt($('#cart-summary').html());
    var state = tempOrderList.drive_in_state;
    if (state) {
      $('#cart-delivery').find('span').html('');
      $('#cart-delivery').find('a.tooltip').show();
      $('#cart-delivery').find('.order_list_drive_in_enable').html('Оформить доставку');

      $('td[id^=cart-delivery-]').find('span').html('');
      $('td[id^=cart-delivery-]').find('a.tooltip').show();

      $.each(tempOrderList.delivery_price_default, function(id, object) {
        if (id != 'sum') {
          //var id = $(this).attr('rel');
          current_summary = current_summary - tempOrderList.delivery_price_default[id];
        }
      });
    } else {
      $('#cart-delivery').find('a.tooltip').hide();
      $('td[id^=cart-delivery-]').find('a.tooltip').hide();
      var insert_value = 0;
      var exception = false;
      $.each(tempOrderList.delivery_price_default, function(id, object) {
        //var id = $(this).attr('rel');
        if (tempOrderList.delivery_price_default[id]) {
          if (id != 'sum') {
            insert_value += tempOrderList.delivery_price_default[id];
          }
        }
//        current_summary = current_summary + tempOrderList.delivery_price_default[id];
        if (tempOrderList.delivery_exception[id]) {
          exception = true;
        }
      });
      if (!insert_value) {
        insert_value = 'бесплатно';
      } else {
        insert_value = insert_value + ' руб.';
      }
      if (exception) {
        insert_value = 'уточнит оператор';
      }
      $('#cart-delivery').find('.order_list_drive_in_enable').html('Забрать заказ самостоятельно');
      if (tempOrderList.is_temp) {
        $('#cart-delivery').find('span').html(insert_value);
      } else {
        $('#cart-delivery').find('a').html(insert_value);
      }
    }
    var current_summary = $('#cart-summary').html(current_summary + ' руб.');

    //afterfork
    if (tempOrderList.drive_in_state) {
      $('#final_delivery').show();
      $('#final_address').hide();
      $('#final_summary').show();
      $('#cart-delivery').find('span').html('');
      $('#cart-delivery').find('a.tooltip').show();
      $('#order_min_delivery_message').hide();
      $('#final_restoran_address_list').show();
      $('#final_you_can_get_it_drive').show();
      $('#final_you_can_get_it').hide();
      $('#final_delivery_message').hide();
    } else {
      $('#final_delivery').hide();
      $('#final_address').show();
      $('#final_summary').hide();
      if (!address_found) {
        $('#cart-delivery').find('span').html('');
      }
      $('#cart-delivery').find('a.tooltip').hide();
      $('#order_min_delivery_message').show();
      $('#final_restoran_address_list').hide();
      $('#final_you_can_get_it_drive').hide();
      $('#final_you_can_get_it').show();
    }
    //one more fork
    if (address_found) {
      $('#final_delivery').show();
      $('#final_summary').show();
      $('#final_submit').removeAttr('disabled');
      $.scrollTo($('#final_submit').position().top, 'slow');
    }
    $('.order_list_drive_in_enable_ajax').hide();
    //afterfork end
  }
});

