/* #######################################################################
# cart.js version 0.1
#
# Very simple cookie based, client side shopping cart
#
# cart.js Created at 2008-12-14
# Copyright Andrei Boros (C) 2001-2008
###########################################################################
*/

/* -----------------------------------------------------------------------
 * Requirements : mylib.js
 * JS based
 * 
 */

var _cart_cnt = getCookie('_cart_cnt');
if ( _cart_cnt==null || _cart_cnt=="" || isNaN(parseInt(_cart_cnt)) ) {
  setCookie('_cart_cnt',0);
  _cart_cnt=0;
}

function addCart(product) {
  if (!product.join) {alert('Error, invalid parameter : '+product); return false;}
  _cart_cnt++; setCookie('_cart_cnt',_cart_cnt);
  setCookie('_cart_prod_'+_cart_cnt,product.join('|'));
  return true;
}

function listCart() {
  if (_cart_cnt == 0 ) { return null; }
  var products = new Array;
  for (var i=1; i<=_cart_cnt; i++) {
    products.push(getCookie('_cart_prod_'+i));
  }
  return products;
}

function delCart(item) {
  if (_cart_cnt == 0 || item < 0 || item > _cart_cnt) { return false; }
  for (var i=item; i<=_cart_cnt; i++) {
    delCookie('_cart_prod_'+i);
    if ( i<_cart_cnt ) setCookie('_cart_prod_'+i,getCookie('_cart_prod_'+(i+1)));
  }
  _cart_cnt--; setCookie('_cart_cnt',_cart_cnt);
  return true;
}

function compactCart() {
  if (_cart_cnt == 0 ) { return false; }
  for (var i=1; i<=_cart_cnt; i++) {
    var product_ref = String(getCookie('_cart_prod_'+i)).split('|');
    var j=i+1; var flag=false;
    while (j<=_cart_cnt) {
      var product = String(getCookie('_cart_prod_'+j)).split('|');
      if (product_ref[0] == product[0]) {
        product_ref[3]=parseInt(product_ref[3])+parseInt(product[3]); flag=true;
        delCart(j);
        continue;
      }
      j++;
    }
    if (flag) changeCart(i,product_ref[3]);
  }
  return true;
}

function changeCart(item,qty) {
  if (_cart_cnt == 0 || item < 0 || item > _cart_cnt) { return false; }
  var product = String(getCookie('_cart_prod_'+item)).split('|');
  product[3]=qty;
  setCookie('_cart_prod_'+item,product.join('|'));
  return true;
}

function emptyCart() {
  if (_cart_cnt == 0 ) { return false; }
  for (var i=1; i<=_cart_cnt; i++) {
    delCookie('_cart_prod_'+i);
  }
  _cart_cnt=0;
  setCookie('_cart_cnt',_cart_cnt);
  return true;
}
