var count_cookies = new Object;
var cookies = new Object;
//=== COMPARE ====
cookies['comp_str'] = new Array();
count_cookies['comp_str'] = 0;

//=== BASKET ====
cookies['bask_str'] = new Array();
count_cookies['bask_str'] = 0;
var sum_all = 0;

var o_input,amount,o_sum,num_idgood,amount_prev;
//===============
function ReCalcAllBasket() {
  var tabl = document.getElementById('table_basket');
  var nodes = tabl.getElementsByTagName('input');

  var o_tr;
  for (i = 0; i < nodes.length; i++) {
		if (nodes[i].type != 'checkbox'|| !nodes[i].checked) {continue;}
    o_tr = document.getElementById("bskt_tr" + nodes[i].name.substring(3));
    if (o_tr) {o_tr.style.display = 'none';}
  }
}
//===============
function ShowBlockToBasket (o_btn) {
	$(o_btn).parents('.basket').find('.block_to_basket').animate({height: 20},500);
//	$(o_btn).parents('.basket').find('.block_to_basket').show(600);
}
//===============
function Add2Basket(o_btn,idgood,price,is_enter,a_site) {
  YaAdd2Basket();
  ShowBlockToBasket(o_btn);
  calc_basket_before(idgood,is_enter);

//	amount_prev = Math.ceil(amount_prev);
//	amount = Math.ceil(amount);

  if (amount === '0') {
    amount = 0;
    o_input.value = '';
    sum_calc(amount_prev,price,-1);
  } else if (amount === '') {
    if (num_idgood === false) {  // не было такого в корзине
      amount = 1;
      o_input.value = amount;
      sum_calc(1,price,1);
    } else {
      amount = 0;
      sum_calc(amount_prev,price,-1);
    }
  } else {
    if (num_idgood !== false && cookies['bask_str'][num_idgood]['val'] == amount) { // не написана цифра
      amount++;
    }
    sum_calc(amount - amount_prev,price,1);
    o_input.value = amount;
  }
  calc_basket_after(idgood);
//  o_btn.src = (amount) ? '/images/icons/basket_plus.gif' : '/images/icons/basket.gif';
  $(o_btn).css('background-position', (amount) ? '-224px -16px' : '-224px 0');

  if (a_site) {
  	o_btn.src = (amount) ? '/images/icons/a_basket_plus.gif' : '/images/icons/a_basket.gif';
  	o_btn.title = 'Оформить заказ';
  	$(o_btn).attr('onclick','location.href="/basket/"');
  }
}
//===============
function Add2BasketEnter(o_input,idgood,price) {
  var e = window.event;
  if (!e || e.keyCode != 13) {return;}
  var o_btn = document.getElementById("btn" + idgood);
  o_btn.focus();
  Add2Basket(o_btn,idgood,price,true);
//  o_btn.blur();
}
//===============
function YaAdd2Basket() {
  if (!yaNumCounter4site) {return;}
  setTimeout('yaCounter' + yaNumCounter4site + ".reachGoal('basket')",1);
}
//===============
function YaAddZakaz() {
  if (!yaNumCounter4site) {return;}
  setTimeout('yaCounter' + yaNumCounter4site + ".reachGoal('new_order')",1);
}
//===============
function RecalcBasket(idgood,price) {
  calc_basket_before(idgood);

  if (amount === '0' || amount === '') {
    amount = 0;
    o_input.value = '';
    sum_calc(amount_prev,price,-1);
  } else {
    sum_calc(amount - amount_prev,price,1);
    o_input.value = amount;
  }

  calc_basket_after(idgood);
  document.getElementById("bskt_sum" + idgood).innerHTML = num2str(amount * price);
  document.getElementById("bskt_sum_all").innerHTML = num2str(sum_all);
  document.getElementById("del" + idgood).checked = (amount == 0);
  calc_sum_skidka();
}
//===============
function DelFromBasket(idgood,price) {
  calc_basket_before(idgood);

  amount = 0;
  o_input.value = '';
  sum_calc(amount_prev,price,-1);

  calc_basket_after(idgood);
  document.getElementById("bskt_sum" + idgood).innerHTML = num2str(amount * price);
  document.getElementById("bskt_sum_all").innerHTML = num2str(sum_all);
  calc_sum_skidka();
}
//===============
function calc_sum_skidka() {
  var o_sk = document.getElementById("skidka");
  if (o_sk == null) {return;}
  var sk = str2num(o_sk.innerHTML);
  var sum_sk = Math.round(sum_all * sk / 100);
  document.getElementById("sum_skidka").innerHTML = num2str(sum_sk);
  document.getElementById("sum2pay").innerHTML = num2str(sum_all - sum_sk);
}
//===============
function calc_basket_before(idgood,is_enter) {
  o_input = document.getElementById("input" + idgood);
  amount = o_input.value;
  if (amount * 1 != amount) {amount = 0;}
  if (is_enter) {amount = (amount > 0) ? amount - 1 : 0;}
  o_sum = document.getElementById("bskt_sum");
  sum_all = str2num(o_sum.innerHTML);
  GetCookieBask();
  num_idgood = GetCookieNum(idgood);
  amount_prev = (num_idgood === false) ? 0 : cookies['bask_str'][num_idgood]['val'];
}
//===============
function calc_basket_after(idgood) {
  Set2Basket(idgood,amount);
  GetCookieBask();
  document.getElementById("bskt_num").innerHTML = count_cookies['bask_str'];
  o_sum.innerHTML = num2str(sum_all);
//  ChangeBgBtn();
}
//===============
function sum_calc(amount,price,znak) {
  var t = sum_all + znak * price * amount;
  sum_all = t;
}
//===============
function str2num(str) {
  var t = '';
  str = new String(str);
  for (var i = 0; i < str.length; i++) {
    if (str.charAt(i) == ' ') {continue;}
    t+= str.charAt(i);
  }
  return parseInt(t);
}
//===============
function num2str(str) {
  str = new String(str);
  var t = '';
  var len = str.length;
  for (var i = len; i > 0; i--) {
    t = str.charAt(i-1) + t;
    if ((len - i + 1) % 3 == 0) {t = ' ' + t;}
  }
  return t;
}
//===============
function Set2Basket(idgood,amount) {
  var c_name = 'bask_str';

  if (amount) {
    var num = GetCookieNum(idgood);
    if (num === false) {            // new
      var j = cookies[c_name].length;
      cookies[c_name][j] = new Array();
      cookies[c_name][j]['id'] = idgood;
      cookies[c_name][j]['val'] = amount;
    } else {                        // old
      cookies[c_name][num]['val'] = amount;
    }
  }

  var ii = 0;
  var str = '';
  for (var i = 0; i < cookies[c_name].length; i++) {
    if (amount == 0 && idgood == cookies[c_name][i]['id']) {continue;}   // delete
    if (ii) {str += '__';}
    str += cookies[c_name][i]['id'] + '_' + cookies[c_name][i]['val'];
    ii++;
  }

  document.cookie = "cookie[" + c_name + "]=" + str + "; expires=" + CalcTime(30) + '; path=/';
}
//===============
function GetCookieNum(c_id) {
  var c_name = 'bask_str';
  for (var i = 0; i < cookies[c_name].length; i++) {
    if (c_id == cookies[c_name][i]['id']) {return i;}
  }
  return false;
}
//===============
function get_cookie_str(c_name) {
	cookies[c_name] = new Array();
	var cook = ' ' + document.cookie + ';';
	var s_name = '[' + c_name + ']=';
	var b_cook = cook.indexOf(s_name);
	if (b_cook == -1) {return '';}

	b_cook += s_name.length;
	var e_cook = cook.indexOf(';',b_cook);
	return unescape(cook.substring(b_cook,e_cook));
}
//===============
function GetCookieBask() {
  var c_name = 'bask_str';
  var res = get_cookie_str(c_name);
  if (!res) {
    count_cookies[c_name] = 0;
    return;
  }

	var arr = res.split(/__/g);
	var t;
	var j = 0;
	var reg = /(\d+)_(\d+)/;
	for (var i = 0; i < arr.length; i++) {
	  t = reg.exec(arr[i]);
	  if (!t || t.length != 3) {continue;}
	  cookies[c_name][j] = new Array();
	  cookies[c_name][j]['id'] = t[1];
	  cookies[c_name][j]['val'] = t[2];
	  j++;
	}
  count_cookies[c_name] = cookies[c_name].length;
}
//===============
function ClearBasket() {
  document.cookie = "cookie[bask_str]= ; expires=" + CalcTime(30) + '; path=/';
  location.href = "/basket/";
  return;

  var tabl = document.getElementById('table_basket');
  var nodes = tabl.getElementsByTagName('input');
  for (i = 0; i < nodes.length; i++) {
		if (nodes[i].type == 'text') {
		  nodes[i].value = '';
		  continue;
		}
		if (nodes[i].type != 'checkbox'|| nodes[i].checked) {continue;}
		nodes[i].click();
//		nodes[i].onchange();
  }

  var nodes = tabl.getElementsByTagName('span');
  nodes[i].id
  for (i = 0; i < nodes.length; i++) {
    if (nodes[i].id.substring(0,8) != 'bskt_sum') {continue;}
    nodes[i].innerHTML = '0';
  }

  amount = document.getElementById("bskt_num").innerHTML = '0';
  sum_all = document.getElementById("bskt_sum_all").innerHTML = document.getElementById("bskt_sum").innerHTML = '0';
  calc_sum_skidka();

  document.cookie = "cookie[bask_str]= ; expires=" + CalcTime(30) + '; path=/';
}
//--- End of Basket --------------------------------------------

//--- COMPARE ----
//---------------
function ViewCompBlock() {
  GetCookieCompare();

  var o_bl = document.getElementById("comp_block");
  if (!o_bl) {return;}
  if (count_cookies['comp_str'] == 0) {
    o_bl.style.display = 'none';
  } else {
    o_bl.style.display = 'block';
//    var o_btn = document.getElementById("comp_btn");
//    if (count_cookies['comp_str'] == 1) {
//      o_btn.style.display = 'none';
//    } else {
//      o_btn.style.display = 'inline';
//    }
  }
}
//================================
function declension_tovar (num) {
  if ((num % 10 == 1) && (num % 100 < 10 || num % 100 > 20)) {return 'товар';}
  else if ((num % 10 >= 2 && num % 10 <= 4) && (num % 100 < 10 || num % 100 > 20)) {return 'товара';}
  else {return 'товаров';}
}
//---------------
function Add2CList(o_input,idgood,idcat) {
  var r = Set2Compare(idgood);
  o_input.title = (r) ? "убрать из списка для сравнения" : "добавить в список для сравнения";
  ViewCompBlock();
  var o_num = document.getElementById("comp_num");
  var o_tovar = document.getElementById("comp_tovar");
  if (!o_num) {return;}
  o_num.innerHTML = count_cookies['comp_str'];
  if (o_tovar) {o_tovar.innerHTML = declension_tovar (count_cookies['comp_str']);}

  var o_titl = document.getElementById("comp_title" + idgood);
  var is_full = true;
  var titl = 'сравнить:';
  if (!o_titl) {
    o_titl = document.getElementById("comp_title" + idcat);
    idgood = idcat;
    titl = 'сравнить';
    is_full = false;
  }
  if (!o_titl) {return;}
  if (!r && o_titl.tagName == 'SPAN') {return;}
  if (r || (!r && !is_full)) {
    o_titl.className = '';
    o_titl.href = '/compare/';
  } else {
    o_titl.className = 'no_act_available';
    o_titl.href = '';
  }
}
//---------------
function ClearCompare() {
  // чистим куку
  document.cookie = "cookie[comp_str]= ; expires=" + CalcTime(-3) + '; path=/';
  // убираем галочки
  var arr = document.getElementById("catalog").getElementsByTagName('input');
  for (var i = 0; i < arr.length; i++) {
    if (arr[i].className != 'btn_compare') {continue;}
    arr[i].checked = false;
  }
  // кол-во для сравнения = 0
  ViewCompBlock();
  $("#comp_block").hide();
}
//---------------
function GetCookieCompare() {
  var c_name = 'comp_str';
  var res = get_cookie_str(c_name);
  if (!res) {count_cookies[c_name] = 0; return;}

	var arr = res.split(/_/g);
	var t;
	var j = 0;
	for (var i = 0; i < arr.length; i++) {
	  t = arr[i];
	  if (! (t * 1)) {continue;}
	  cookies[c_name][j] = t;
	  j++;
	}
  count_cookies[c_name] = cookies[c_name].length;

}
//---------------
function GetCookieNumComp(c_id) {
  var c_name = 'comp_str';
  for (var i = 0; i < cookies[c_name].length; i++) {
    if (c_id == cookies[c_name][i]) {return i;}
  }
  return false;
}
//---------------
function Set2Compare(idgood) {
  var return_val = false;
  GetCookieCompare();

  var c_name = 'comp_str';
  var num = GetCookieNumComp(idgood);

  if (num === false) {            // add
    var j = cookies[c_name].length;
    cookies[c_name][j] = idgood;
    return_val = true;
  }

  var ii = 0;
  var str = '';
  for (var i = 0; i < cookies[c_name].length; i++) {
    if (!return_val && idgood == cookies[c_name][i]) {continue;}   // delete
    if (ii) {str += '_';}
    str += cookies[c_name][i];
    ii++;
  }

  document.cookie = "cookie[" + c_name + "]=" + str + "; expires=" + CalcTime(30) + '; path=/';
  return return_val;
}
//--- End of COMPARE ----

