var CartOptions = {
  cart_count: 0
}



function update_header_cart_summ(value){
  var container = $('#cart_summ');
  if(!container) alert('Контейнер с значением общей суммы заказа не найден');
  container.html(value + ' р.');
  container = $('#order_summary');
  container.html(value + ' руб.');
}

function update_header_cart_count(value){
  var container = $('#cart_count');
  if(!container) alert('Контейнер с количеством товаров в корзине не найден');
  container.html(value);
}

function add_to_cart(good_id, info_container_id){
  if(!good_id) return false;
  if(!info_container_id)
    info_container_id = 'add_to_cart_info_'+good_id;
  CartOptions.cart_count++;
  $.ajax({
    url: '/cart/add?id='+good_id,
    dataType: 'json',
    success: function(data, textStatus, jsXHR){
      if(data.error){
        alert('Не удалось добавить товар в корзину');
        return false;
      }
      update_header_cart_summ(data.cart_summ);
      update_header_cart_count(data.cart_count);
      if(info_container_id){
        var info_container = $('#'+info_container_id);
        if(info_container){
          info_container.html('Товар успешно добавлен');
          info_container.fadeIn();
        }
      }
      return true;
    }
  });
  return true;
}


function cart_good_recount(good_id, value_container, price_summary_container){
  if(!good_id) return false;
  var count = null;
  if(value_container){
    var count = $('#'+value_container).val();
    count = parseInt(count);
  }
  $.ajax({
    url: '/cart/goodRecount?id='+good_id+'&c='+count,
    dataType: 'json',
    success: function(data, textStatus, jsXHR){
      if(data.error){
        alert('Не удалось пересчитать товар из корзины');
        return false;
      }
      update_header_cart_count(data.cart_count);
      update_header_cart_summ(data.cart_summ);
      if(price_summary_container){
        $('#'+price_summary_container).html(data.summary + ' рyб.');
      }
      // @TODO
      return true;
    }
  });
  return true;
}


function cart_remove_good(good_id, container_id){
  if(!good_id) return false;
  var container = $('#'+container_id);
  if(!container){
    alert('Неверно задан id html-контейнера с товаром');
    return false;
  }
  $.ajax({
    url: '/cart/remove?id='+good_id,
    dataType: 'json',
    success: function (data, textStatus, jsXHR){
      if(data.error){
        alert('Не удалось удалить товар из корзины');
        return false;
      }
      update_header_cart_summ(data.cart_summ);
      update_header_cart_count(data.cart_count);
      container.slideUp().remove();
      return true;
    }
  });
  return true;
}


function regular(string) {
    if (!string) return "";
    var Chars = "0123456789";
    var news = "";

    for (var i = 0; i < string.length; i++) {
       if (Chars.indexOf(string.charAt(i)) == -1) {
        void(null);
       } else {
        news=news+string.charAt(i);
       }
    }
    return news;
}
function numberFormat(el){
    number = el.value.replace(/\s/gi,"");
    if (number.length > 3) {
        var mod = number.length%3;
        var output = (mod > 0 ? (number.substring(0,mod)) : "");
        for (i=0 ; i < Math.floor(number.length/3) ; i++) {
            if ((mod ==0) && (i ==0))
                output+= number.substring(mod+3*i,mod+3*i+3);
            else
                output+= " " + number.substring(mod+3*i,mod+3*i+3);
        }
        el.value = output;
    }
    else el.value = number;
}

function phoneNumberFormat(element){
        var number,val,val2,first_char,chars,i,prev,buff,delim = ' ';
//        number = element.value.replace(/[\s]+/gi,'');
        
        number = element.value.replace(/[^0-9\-\+\s]+/gi, '');
        if (number.length > 3) {
            var mod = number.length%3;
            var output = (mod > 0 ? (number.substring(0,mod)) : "");
            for (i=0 ; i < Math.floor(number.length/3) ; i++) {
                output+= number.substring(mod+3*i,mod+3*i+3);
            }
            val = output;
        }else{
            val = number;
        }
        if(val.length > 1){
            first_char = val.substring(0,1);
            val2 = val.substring(1);
            if(val2){
                val2 = val2.replace(/[\+]/ig, '');
            }
            val = first_char + val2;
            chars = val.split('');
            len = chars.length;
            prev = buff = '';
            avail_chars = ['-',' '];
            avail_chars_counts = [];
            for(i=0;i<len;i++){
                if(i > 0) prev = chars[i-1];
                if(this.inArray(chars[i], avail_chars) && this.inArray(prev, avail_chars))
                    continue;
                buff += chars[i];
            }
            val = buff;
        }
        element.value = val.replace(/[^0-9\-\+\s]+/gi, '');
    }
    
function inArray(needle,haystack){
        var f=false,i,len;
        if(!haystack) return f;
        len = haystack.length;
        for(i=0;i<len;i++){
            if(needle==haystack[i]){
                f=true;
                break;
            }
        }
        return f;
}



function formatPhoneNumber(el, limit){
  el.value=el.value.replace(/[^0-9]+/, '');
  chars = el.value.split('');
  new_val='';
  for(var i=0;i<3;i++){
    if(chars[i]) new_val+=chars[i];
  }
  el.value=new_val;
}
    




