function Set_Cookie (name, value)
{
   var dies_cookie = 45 ; 
   var cookie_string = name + "=" + escape ( value );
   var data_actual = new Date() ;
   var expires = new Date (data_actual.getTime() + dies_cookie * 24 * 60 * 60 * 1000) ; 
   cookie_string += "" ; 
   expires="" + expires.toGMTString() ;
   var path = "/" ; 
   cookie_string += "; path=" + escape ( path ) ;
   var domain = ".muscaria.com" ;
   cookie_string += "; domain=" + escape ( domain ) ;
   document.cookie = cookie_string;
}

function Get_Cookie (cookie_name)
   {
   var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
   if ( results )
      {
      return (unescape (results[2])) ;
      }
   else
      {
      return (null) ;
      }
   }

function Delete_Cookie ( Nom_Cookie ) 
   {
   var path = "/"; 
   var domain = ".muscaria.com" ;
   var cookie_date = new Date ( );
   cookie_date.setTime ( cookie_date.getTime() - 100 );
   if (Get_Cookie (Nom_Cookie)) 
      {
      document.cookie = Nom_Cookie + "=" + ( ( path ) ? ";path=" + path : "") + ( ( domain ) ? ";domain=" + domain : "" ) + ";expires="  + cookie_date.toGMTString() ;
      }
   }

function Delete_All_Cookies ()
   {
   var Llista_Cookies = new Array();
   Llista_Cookies = document.cookie.split("; ");
   for (var i = 0; i < Llista_Cookies.length; i++)
      {
      var Petita_Cookie  = new Array();
      Petita_Cookie = Llista_Cookies[i].split ("=");
      if (Petita_Cookie[0])
         {
         Delete_Cookie (Petita_Cookie [0]) ; 
         }
      }
   }

function Llista_Cookies () 
   {
   var Resultat = "";
   var Petita_Cookie = new Array();
   var theCookies = new Array();
   theCookies = document.cookie.split("; ");
   for (var i = 0 ; i < theCookies.length; i++) 
      {
      Petita_Cookie = theCookies[i].split ("=");
      if (Petita_Cookie [0])
         {
         Resultat += "" + (i+1) + "-" + Petita_Cookie[0] + "=" + unescape (Petita_Cookie[1]) + "\r\n";
         }
      }
   return Resultat;
   }

function Array_Cookies ()
   {
   var Resultat = new Array() ; 
   var theCookies = new Array() ; 
   var Petita_Cookie = new Array() ; 
   theCookies = document.cookie.split ("; ");
   for (var i = 0 ; i < theCookies.length; i++) 
      {
      Petita_Cookie = theCookies [i].split ("=") ; 
      if (Petita_Cookie [0])
         {
         Petita_Cookie [1] = unescape (Petita_Cookie [1]) ; 
         Resultat [i] = Petita_Cookie ; 
         }
      }
   return Resultat;
   }

function Accepta_Cookies ()
   {
   if (document.cookie.length > 0) 
      {
      return (true) ; 
      }
   Set_Cookie ( "Prova", "Accepta Cookie" ) ;
   var Accepta_Cookie = ((Get_Cookie ("Prova")) ? true : false) ; 
   Delete_Cookie ("Prova") ; 
   return (Accepta_Cookie) ; 
   }

function Afegir_Producte (Titol, Autor, Preu_Euros, Pag_Htm, Quantitat, Pes, Codi_Prod)
   {
   var Punt_Central ; 
   var Ini_Quant ; 
   var Final_Quant ; 
   var Ja_Hi_Era = false ; 
   var Cookie_Prods = Get_Cookie ("Productes") ;
   if (Cookie_Prods) 
      {
      Punt_Central = Cookie_Prods.indexOf ("<" + Codi_Prod + "}", 1) ; 
      if (Punt_Central != -1) 
         {
         Ja_Hi_Era = true ; 
         }
      }
   if (parseInt (Quantitat, 10) < 1)
      {
      if (Ja_Hi_Era)
         {
         // Canviem la quantitat i la posem a 0
         Ini_Quant = Cookie_Prods.lastIndexOf ("$", Punt_Central) ; 
         Final_Quant = Cookie_Prods.lastIndexOf ("%", Punt_Central) ; 
         Cookie_Prods = Cookie_Prods.substring (0, Ini_Quant + 1) + "0" + Cookie_Prods.substring (Final_Quant) ; 
         Set_Cookie ("Productes", Cookie_Prods) ; 
         return true ; 
         }
      else
         {
         // No fem res (quantitat negativa, i no hi era a cistell) 
         }
      return true ; 
      }
   if (Cookie_Prods)
      {
      if (Cookie_Prods.length > 2000)
         {
         if (Titol.indexOf (".") > 0)
            {
            Titol = Titol.substring (0, Titol.indexOf (".")) ; 
            }
         }
      }
   if (parseInt (Quantitat, 10) > 0)
      {
      if (Ja_Hi_Era)
         {
         // Canviem la quantitat 
         Ini_Quant = Cookie_Prods.lastIndexOf ("$", Punt_Central) ; 
         Final_Quant = Cookie_Prods.lastIndexOf ("%", Punt_Central) ; 
         Cookie_Prods = Cookie_Prods.substring (0, Ini_Quant + 1) + Quantitat + Cookie_Prods.substring (Final_Quant) ; 
         Set_Cookie ("Productes", Cookie_Prods) ; 
         return true ; 
         }
      else
         {
         // Afegim el producte  
         var Llibre = "{" + Titol + "#" + Autor + "|" + Preu_Euros + "@" + Pag_Htm + "$" + Quantitat + "%" + Pes + "<" + Codi_Prod + "}" ;
         if (Cookie_Prods) 
            {
            Cookie_Prods = Cookie_Prods + Llibre ;
            }
         else
            {
            Cookie_Prods = Llibre ;
            }
         Set_Cookie ("Productes", Cookie_Prods) ; 
         return true ; 
         }
      }
   }


function Array_Prods (Productes) 
   {
   var Llibres_CDs = new Array ();
   Llibres_CDs = Productes.split ("}{") ; 
   for (var i = 0 ; i < Llibres_CDs.length; i++) 
      {
      if (i !== 0) 
         {
         Llibres_CDs [i] = "{" + Llibres_CDs [i] ; 
         }
      if (i !== (Llibres_CDs.length -1))
         {
         Llibres_CDs [i] = Llibres_CDs [i] + "}" ; 
         }
      }
   return Llibres_CDs ;
   }


function Dades_Producte (Dades_Prod, Info)
   {
   var Ini_Prod = 0 ; 
   var Final_Prod = 0 ; 
   switch (Info)
      {
      case "Titol":
         Ini_Prod = Dades_Prod.indexOf ("{") ; 
         Final_Prod = Dades_Prod.indexOf ("#") ; 
         break;

      case "Autor":
         Ini_Prod = Dades_Prod.indexOf ("#") ; 
         Final_Prod = Dades_Prod.indexOf ("|") ; 
         break;

      case "Preu_Euros":
         Ini_Prod = Dades_Prod.indexOf ("|") ; 
         Final_Prod = Dades_Prod.indexOf ("@") ; 
         break;

      case "Pag_Htm":
         Ini_Prod = Dades_Prod.indexOf ("@") ; 
         Final_Prod = Dades_Prod.indexOf ("$") ; 
         break;   

      case "Quantitat":
         Ini_Prod = Dades_Prod.indexOf ("$") ; 
         Final_Prod = Dades_Prod.indexOf ("%") ; 
         break; 

      case "Pes":
         Ini_Prod = Dades_Prod.indexOf ("%") ; 
         Final_Prod = Dades_Prod.indexOf ("<") ; 
         break;     

      case "Codi_Prod":
         Ini_Prod = Dades_Prod.indexOf ("<") ; 
         Final_Prod = Dades_Prod.indexOf ("}") ; 
         break;     

      default:
         return "--";
      }
   return (Dades_Prod.substring (Ini_Prod+1, Final_Prod)) ; 
   }

function Crea_Cami (Cami_Htm)
   {
   var Data_Actual = new Date () ;
   Data_Actual = Data_Actual.getTime() ; 
   var Cami_Pagines = Get_Cookie ("Cami_Pagines") ; 
   if (Cami_Pagines)
      {
      if (Cami_Pagines.length < 3900)
         {
         Cami_Pagines = Cami_Pagines + " / " + Cami_Htm ; 
         Set_Cookie ("Cami_Pagines", Cami_Pagines) ; 
         }
      }
   else
      {
      Cami_Pagines = "(" + Data_Actual.toGMTString() + ") " + Cami_Htm ; 
      Set_Cookie ("Cami_Pagines", Cami_Pagines) ; 
      }
   }
   
function Referencia_TC ()
   {
   var Rerferencia ; 
   var Dia_Actual = new Date() ; 
   var Milisegons = "" + Dia_Actual.getTime() ; 
   Referencia = "2" + Milisegons.substring (Milisegons.length -11, Milisegons.length) ;   // Max 12 caracter CaixaCat 
   return (Referencia) ; 
   }

// No es fa servir a partir de Juny 2011. Guardo les dades per separat.
function Posar_Ref_TC (Referencia, Preu_Euros, Preu_Dolars)
   {
   var Valors_Cookie = Referencia + "AA" + Preu_Euros + "BB" + Preu_Dolars ; 
   Set_Cookie ("Ref_TC_Imports", Valors_Cookie) ; 
   }

// No es fa servir a partir de Juny 2011. Guardo les dades per separat.
function Info_Ref_TC (Tipus_Info)
   {
   var Ini_Pos ; 
   var Final_Pos ; 
   var Dades_Ref_Import ; 
   Dades_Ref_Import = Get_Cookie ("Ref_TC_Imports") ; 
   if (Dades_Ref_Import) 
      {
      switch (Tipus_Info)
         {
         case "Referencia":
            Ini_Pos = Dades_Ref_Import.indexOf ("AA") ; 
            return (Dades_Ref_Import.substring (0, Ini_Pos)) ; 

         case "Import_Euros":
            Ini_Pos = Dades_Ref_Import.indexOf ("AA") ; 
            Final_Pos = Dades_Ref_Import.indexOf ("BB") ; 
            return (Dades_Ref_Import.substring (Ini_Pos + 2, Final_Pos)) ; 

         case "Import_Dolars":
            Ini_Pos = Dades_Ref_Import.indexOf ("BB") ; 
            return (Dades_Ref_Import.substring (Ini_Pos + 2)) ; 

         default:
            return ("--") ; 
         }
      }
   }


