var cookieName = "_sc";
var productSeparator = "|";
var fieldSeparator = "#";

var products = new Object();

function getSC ()
{
   var cookieVal = document.cookie;
   var cookies = cookieVal.split ( /;\s*/ );
   cookieVal = '';
   for ( var i = 0 ; i < cookies.length ; i++ )
   {
      if ( cookies[i].indexOf ( cookieName + '=' ) == 0 )
      {
         cookieVal = unescape ( cookies[i].substr ( cookieName.length + 1 ) );
      }
   }
   if ( typeof cookieVal == 'undefined' || cookieVal == '' )
   {
      return;
   }
   var productsRaw = cookieVal.split ( productSeparator );
   for ( var i = 0 ; i < productsRaw.length ; i++ )
   {
      var product = productsRaw[i].split ( fieldSeparator );
      if ( typeof products[product[0]] != 'undefined' )
      {
         products[product[0]].cantidad++;
      }
      else
      {
         products[product[0]] = [];
         products[product[0]].id = product[0];
         products[product[0]].nombre = product[1];
         products[product[0]].autor = product[2];
         products[product[0]].precio = parseFloat ( product[3] );
         products[product[0]].cantidad = parseInt ( product[4] );
      }
   }
}

function setSC()
{
   var cookieVal = '';
   for ( var key in products )
   {
      if ( products[key].cantidad == 0 )
      {
         continue;
      }

      if ( cookieVal != '' )
      {
         cookieVal += productSeparator;
      }
      cookieVal += key + fieldSeparator + products[key].nombre + fieldSeparator + products[key].autor + fieldSeparator + products[key].precio + fieldSeparator + products[key].cantidad;
   }
   document.cookie = cookieName + '=' + escape ( cookieVal ) + '; path=/';
}

function addProduct ( id , nombre , autor , precio , cantidad , noAlert )
{
   if ( typeof products[id] != 'undefined' )
   {
      products[id].cantidad++;
   }
   else
   {
      products[id] = [];
      products[id].id = id;
      products[id].nombre = nombre;
      products[id].autor = autor;
      if ( precio == '' )
      {
         precio = '0';
      }
      var precioP = /(\d+)[,\.]?(\d*)/.exec ( precio );
      if ( typeof precioP[1] != 'undefined' )
      {
         precio = precioP[1];
      }
      if ( typeof precioP[2] != 'undefined' )
      {
         precio += '.' + precioP[2];
      }
      products[id].precio = parseFloat ( precio );
      products[id].cantidad = parseInt ( cantidad );
   }
   setSC();
   if ( typeof noAlert == 'undefined' || !noAlert )
   {
      alert ( 'Se ha guardado el libro "' + products[id].nombre + '" en su cesta de libros.' );
   }
}

function removeProduct ( id )
{
   if ( typeof products[id] != 'undefined' && products[id].cantidad != 0 )
   {
      products[id].cantidad--;
   }
   setSC();
}

function getCantidad()
{
   var cantidad = 0;
   for ( var key in products )
   {
      cantidad += products[key].cantidad;
   }
   return cantidad;
}

function getPrecio()
{
   var precio = 0;
   for ( var key in products )
   {
      precio += products[key].cantidad * products[key].precio;
   }
   precio = parseInt ( precio * 100 );
   return precio / 100;
}

function emptySC()
{
   document.cookie = cookieName + '=; path=/';
   products = new Object();
}

getSC();
