var arrow_bot = '/image/layout/down1.gif';
var arrow_bot_gr = '/image/layout/down.gif';
var maxCountOneCart = '99999';

function inisializ_shop(mode) {
  $('input.cart_input').bind("blur", function() {
     addCart(this, mode);
  }).bind("keypress", function() {
     addCart(this, mode);
  }).bind("keyup", function() {
     addCart(this, mode);
  });
  $('img').filter(function () { return this.id.match(/^s_top_[0-9]+$/); }).bind("click", function() {
     addPLus(this, mode);
  });
  $('img').filter(function () { return this.id.match(/^s_bot_[0-9]+$/); }).bind("click", function() {
     addMinus(this, mode);
  });
  if (mode == 2) {
    $('a.cart-delete').bind("click", function() { return confirm('Вы хотите удалить данный товар из заказа?'); });
    $('a.cart-delete-all').bind("click", function() { return confirm('Вы хотите удалить весь товар из заказа?'); });
  }  
}

function setCookie(name, value, expires, path, domain, secure) {
  path = "/";
  value = escape(value);
  domain = document.domain;
  domain = '.'+domain.replace(/www./, "");
  
  var curCookie = name + "=" + value +
                ((expires) ? "; expires=" + expires.toGMTString() : "") +
                ((path) ? "; path=" + path : "") +
                ((domain) ? "; domain=" + domain : "") +
                ((secure) ? "; secure" : "");

  document.cookie = curCookie;
}

function getCookie(name) {
  var prefix = name + "=";
  var cookieStartIndex = document.cookie.indexOf(prefix);
  if (cookieStartIndex == -1) return null;
  var cookieEndIndex = document.cookie.indexOf(";",cookieStartIndex + prefix.length);
  if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
  return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

function DeleteCookie(code) {
	var exp = new Date();
	exp.setTime (exp.getTime() - 1000000000);  // This cookie is history (changed -1 to make it previous time)
	var cval = GetCookie (code);
	document.cookie =code + "=" + cval + "; expires=" + exp.toGMTString();	
}

//ch = 0 - вызов из списка товаров
//ch = 1 - вызов из карточки товара
//ch = 2 - вызов из корзины
function addCart(elem,ch) {
  var m = elem.id.match(/^item_([0-9]+)$/);
  var n = m[1];
  var cart = getCookie("cart");
  var v = new String(elem.value);
  v = v.replace(/[^0-9]+/,'');
  v = v.replace(/^0+/,'');
  if (v=='') v = '0';
  elem.value = (v=='0' || !elem.value) ? '' : v;
  var scart = "|";
  cart = cart==null?'':cart;
  if (cart.length<3&&v.length>0) {
    scart += n+"="+v+"|";
  } else {
    var ar = cart.split("|");
    var f = 0;
    for(var i=0; i<ar.length; i++) {
      var s = ar[i];
      if (s.length>2) {
        var p = s.indexOf(n+"=");
        if (p==0) {
          if (v.length>0) {
            scart += n+"="+v+"|";
          }
          f = 1;
        } else {
          scart = scart+s;
          scart = scart+"|";
        }
      }
    }
    if (f==0&&v.length>0) {
      scart += n+"="+v+"|";
    }
  }
  if (ch==0 || ch==1) {
    if (v*1 == 0) $('#td_text_'+n).text('Количество');
    else $('#td_text_'+n).html('<b>В корзине</b>');
  }
  var countold = $('#c_id_'+n).attr('value')*1;
  var sumitem = $('#c_sum_'+n).attr('value')*1;

  var temp = ($('#shopCount').text()*1 - countold + v*1);
  $('#shopCount').text(temp);
  
  var temp = validatePrice($('#shopSum').text()*1 - countold*sumitem + v*sumitem*1);
  if (temp > 0) $('#shopSum').text(temp); else $('#shopSum').text('0.00');

  $('#c_id_'+n).attr('value', v);
  
  if ($('#item_'+n).attr('value')*1 > 0) {
    $('#s_bot_'+n).attr('src', arrow_bot);
  } else {
    $('#item_'+n).attr('value', ''); 
    $('#s_bot_'+n).attr('src', arrow_bot_gr);
  }
  
  
  if (ch==2) {
    var countall = 0;
    var sumall = 0;
    var sumitem = validatePrice(1*v*sumitem);
    $('#item_sum_'+n).html(htmlPrice(sumitem));
    var ar = scart.split("|");
    for(var i=0; i<ar.length; i++) {
      if (z = ar[i].match(/^([0-9]+)=([0-9]+)$/)) {
        if (z[2] > 0) {
          countall = countall + z[2]*1;
          temp = validatePrice($('#c_sum_'+z[1]).attr('value')*1);
          sumall = sumall + z[2]*temp*1;
          sumall = validatePrice(sumall)*1;
        }
      }
    }
    $('#itog_count').text(countall);
    $('#itog_sum').text(sumall);
  }
  
  
  var exp = new Date();
  exp.setTime (exp.getTime() + 3*31*24*60*60);
  setCookie("cart",scart,exp);
}

function addPLus(elem, mode) {
  var m = elem.id.match(/^s_top_([0-9]+)$/);
  var n = m[1];
  var v = ($('#item_'+n).attr('value') == '' || !$('#item_'+n).attr('value')) ? '0' : $('#item_'+n).attr('value');
  if (v*1 < maxCountOneCart) $('#item_'+n).attr('value',v*1+1);
  elts = $('input').filter(function () { return this.id.match(/^item_[0-9]+$/); });
  for (var i=0; i< elts.length; i++) if (elts[i].id == 'item_'+n) addCart(elts[i], mode);
}

function addMinus(elem, mode) {
  var m = elem.id.match(/^s_bot_([0-9]+)$/);
  var n = m[1];
  var v = ($('#item_'+n).attr('value') == '' || !$('#item_'+n).attr('value')) ? '0' : $('#item_'+n).attr('value');
  if (v*1 > 0) $('#item_'+n).attr('value',v*1-1);
  else $('#item_'+n).attr('value', '');
  elts = $('input').filter(function () { return this.id.match(/^item_[0-9]+$/); });
  for (var i=0; i< elts.length; i++) if (elts[i].id == 'item_'+n) addCart(elts[i], mode);
}

function validatePrice(price) {
  var sum = new String(Math.floor(price*1000/10));
  return sum.replace(/(\d*)(\d\d)/,"$1.$2");
}

function htmlPrice(price) {
  var p = new String(price);
  m = p.match(/^(.+)(\.[0-9]+)$/);
  if (m) {
    var str = '';
    var j = 0;
    for (var i = m[1].length-1; i >=0; i--) {
      j++;
      oneChar = m[1].charAt(i);
      str = oneChar+str;
      if (j == 3 && i > 0) { 
        j = 0; 
        str = ' '+str;
      }  
    }  
    p = str+'<small>'+m[2]+'</small>';
  }
  else p = price;
  return p;
}  
