
function validacantidad(pvarvalor)
{
	errtxt = "" ;	
	if (pvarvalor == "")
	{
		errtxt = errtxt + "Debe ingresar la cantidad.\n";
	}
	else
	{
		if (isNaN(parseFloat(pvarvalor)))
		{
			errtxt = errtxt + "La cantidad debe ser numérico.\n";
		}
	}
		
	if ( errtxt == "" )
	{
		return true;
	}
	else
	{
		alert(errtxt);
  	return false;
	}

}


function CKquantity(checkString) {
   strNewQuantity = "";

   for ( i = 0; i < checkString.length; i++ ) {
      ch = checkString.substring(i, i+1);
      if ( (ch >= "0" && ch <= "9") || (ch == '.') )
         strNewQuantity += ch;
   }

   if ( strNewQuantity.length < 1 )
      strNewQuantity = "1";

   return(strNewQuantity);
}

//---------------------------------------------------------------------||
// FUNCTION:    AddToCart                                              ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//---------------------------------------------------------------------||
function AddToCart(pvarcodigo, pvarimagen, pvarcantidad) {

		if (ValidItemInCart(pvarcodigo)== true)
		{
			   iNumberOrdered = 0;
			   iNumberOrdered = GetCookie("NumberOrdered");
	   		 iNumberOrdered++;

			 		var strINFO=''
		      if ( pvarcodigo == null )
		         strID_NUM    = "";
		      else
		         strID_NUM    = pvarcodigo;
		      if (pvarcantidad == null )
		         strQUANTITY  = "1";
		      else
		         strQUANTITY  = pvarcantidad;
		      if ( pvarimagen == null )
		         strIMAGEN      = "";
		      else
		         strIMAGEN      = pvarimagen;
		      
		      dbUpdatedOrder = strID_NUM    + "|" + 
		                       strQUANTITY  + "|" +
		                       strIMAGEN    + "|" +"|" 
		      strNewOrder = "Order." + iNumberOrdered;
		      SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
		      SetCookie("NumberOrdered", iNumberOrdered, null, "/");
		      GetFromCart();
		}
		else
		alert("El artículo "+pvarcodigo + " ya se encuentra cargado en la orden")
}


//---------------------------------------------------------------------||
// FUNCTION:    AddToCart                                              ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//---------------------------------------------------------------------||
function AddToCartOnly(pvarcodigo, pvarimagen, pvarcantidad) {

		if (ValidItemInCart(pvarcodigo)== true)
		{
			   iNumberOrdered = 0;
			   iNumberOrdered = GetCookie("NumberOrdered");
	   		 iNumberOrdered++;

			 		var strINFO=''
		      if ( pvarcodigo == null )
		         strID_NUM    = "";
		      else
		         strID_NUM    = pvarcodigo;
		      if (pvarcantidad == null )
		         strQUANTITY  = "1";
		      else
		         strQUANTITY  = pvarcantidad;
		      if ( pvarimagen == null )
		         strIMAGEN      = "";
		      else
		         strIMAGEN      = pvarimagen;
		      
		      dbUpdatedOrder = strID_NUM    + "|" + 
		                       strQUANTITY  + "|" +
		                       strIMAGEN    + "|" +"|" 
		      strNewOrder = "Order." + iNumberOrdered;
		      SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
		      SetCookie("NumberOrdered", iNumberOrdered, null, "/");
		      alert("El artículo "+pvarcodigo + " ha sido agregado en su orden")
		}
		else
		alert("El artículo "+pvarcodigo + " ya se encuentra cargado en la orden")
}



//---------------------------------------------------------------------||
// FUNCTION:    getCookieVal                                           ||
// PARAMETERS:  offset                                                 ||
// RETURNS:     URL unescaped Cookie Value                             ||
// PURPOSE:     Get a specific value from a cookie                     ||
//---------------------------------------------------------------------||
function getCookieVal (offset) {
   var endstr = document.cookie.indexOf (";", offset);

   if ( endstr == -1 )
      endstr = document.cookie.length;
   return(unescape(document.cookie.substring(offset, endstr)));
}


//---------------------------------------------------------------------||
// FUNCTION:    FixCookieDate                                          ||
// PARAMETERS:  date                                                   ||
// RETURNS:     date                                                   ||
// PURPOSE:     Fixes cookie date, stores back in date                 ||
//---------------------------------------------------------------------||
function FixCookieDate (date) {
   var base = new Date(0);
   var skew = base.getTime();

   date.setTime (date.getTime() - skew);
}


//---------------------------------------------------------------------||
// FUNCTION:    GetCookie                                              ||
// PARAMETERS:  Name                                                   ||
// RETURNS:     Value in Cookie                                        ||
// PURPOSE:     Retrieves cookie from users browser                    ||
//---------------------------------------------------------------------||
function GetCookie (name) {
   var arg = name + "=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;

   while ( i < clen ) {
      var j = i + alen;
      if ( document.cookie.substring(i, j) == arg ) return(getCookieVal (j));
      i = document.cookie.indexOf(" ", i) + 1;
      if ( i == 0 ) break;
   }

   return(null);
}


//---------------------------------------------------------------------||
// FUNCTION:    SetCookie                                              ||
// PARAMETERS:  name, value, expiration date, path, domain, security   ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Stores a cookie in the users browser                   ||
//---------------------------------------------------------------------||
function SetCookie (name,value,expires,path,domain,secure) {
   document.cookie = name + "=" + escape (value) +
                     ((expires) ? "; expires=" + expires.toGMTString() : "") +
                     ((path) ? "; path=" + path : "") +
                     ((domain) ? "; domain=" + domain : "") +
                     ((secure) ? "; secure" : "");
                     
}


//---------------------------------------------------------------------||
// FUNCTION:    ChangeQuantity                                         ||
// PARAMETERS:  Order Number to Change Quantity                        ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Changes quantity of an item in the shopping cart       ||
//---------------------------------------------------------------------||
function ChangeQuantity(OrderItem,NewQuantity) {
   if ( isNaN(NewQuantity) ) {
      alert( strErrQty );
   } else {
      NewOrder = "Order." + OrderItem;
      database = "";
      database = GetCookie(NewOrder);

      Token0 = database.indexOf("|", 0);
      Token1 = database.indexOf("|", Token0+1);
      Token2 = database.indexOf("|", Token1+1);
      Token3 = database.indexOf("|", Token2+1);
      Token4 = database.indexOf("|", Token3+1);

      fields = new Array;
      fields[0] = database.substring( 0, Token0 );
      fields[1] = database.substring( Token0+1, Token1 );
      fields[2] = database.substring( Token1+1, Token2 );
      fields[3] = database.substring( Token2+1, Token3 );
      //fields[4] = database.substring( Token3+1, Token4 );
      //fields[5] = database.substring( Token4+1, database.length );

      dbUpdatedOrder = fields[0] + "|" +
                       NewQuantity + "|" +
                       fields[2] + "|" +
                       fields[3] + "|"
                       
                 
      strNewOrder = "Order." + OrderItem;
      DeleteCookie(strNewOrder, "/");
      SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
      //location.href=location.href;      
      GetFromCart();
   }
}


//---------------------------------------------------------------------||
// FUNCTION:    ChangeInfo                                         ||
// PARAMETERS:  Order Number to Change Quantity                        ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Changes quantity of an item in the shopping cart       ||
//---------------------------------------------------------------------||
function Changeinfo(OrderItem,NewInfo) {
      NewOrder = "Order." + OrderItem;
      database = "";
      database = GetCookie(NewOrder);

      Token0 = database.indexOf("|", 0);
      Token1 = database.indexOf("|", Token0+1);
      Token2 = database.indexOf("|", Token1+1);
      Token3 = database.indexOf("|", Token2+1);
      Token4 = database.indexOf("|", Token3+1);

      fields = new Array;
      fields[0] = database.substring( 0, Token0 );
      fields[1] = database.substring( Token0+1, Token1 );
      fields[2] = database.substring( Token1+1, Token2 );
      fields[3] = database.substring( Token2+1, Token3 );
      //fields[4] = database.substring( Token3+1, Token4 );
      //fields[5] = database.substring( Token4+1, database.length );

      dbUpdatedOrder = fields[0] + "|" +
                       fields[1] + "|" +
                       fields[2] + "|" +
                       NewInfo + "|"
                       
                 
      strNewOrder = "Order." + OrderItem;
      DeleteCookie(strNewOrder, "/");
      SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
      //location.href=location.href;      
			GetFromCart();
}

//---------------------------------------------------------------------||
// FUNCTION:    DeleteCookie                                           ||
// PARAMETERS:  Cookie name, path, domain                              ||
// RETURNS:     null                                                   ||
// PURPOSE:     Removes a cookie from users browser.                   ||
//---------------------------------------------------------------------||
function DeleteCookie (name,path,domain) {
   if ( GetCookie(name) ) {
      document.cookie = name + "=" +
                        ((path) ? "; path=" + path : "") +
                        ((domain) ? "; domain=" + domain : "") +
                        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
   }
}

//---------------------------------------------------------------------||
// FUNCTION:    MoneyFormat                                            ||
// PARAMETERS:  Number to be formatted                                 ||
// RETURNS:     Formatted Number                                       ||
// PURPOSE:     Reformats Dollar Amount to #.## format                 ||
//---------------------------------------------------------------------||
function moneyFormat(input) {
   var dollars = Math.floor(input);
   var tmp = new String(input);

   for ( var decimalAt = 0; decimalAt < tmp.length; decimalAt++ ) {
      if ( tmp.charAt(decimalAt)=="." )
         break;
   }

   var cents  = "" + Math.round(input * 100);
   cents = cents.substring(cents.length-2, cents.length)
           dollars += ((tmp.charAt(decimalAt+2)=="9")&&(cents=="00"))? 1 : 0;

   if ( cents == "0" )
      cents = "00";

   return(dollars);
}

//---------------------------------------------------------------------||
// FUNCTION:    RemoveFromCart                                         ||
// PARAMETERS:  Order Number to Remove                                 ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Removes an item from a users shopping cart             ||
//---------------------------------------------------------------------||
function RemoveFromCart(RemOrder) {
   if ( confirm("Cliquee 'Aceptar' para eliminar este producto de su lista.") ) {
      NumberOrdered = GetCookie("NumberOrdered");
      for ( i=RemOrder; i < NumberOrdered; i++ ) {
         NewOrder1 = "Order." + (i+1);
         NewOrder2 = "Order." + (i);
         database = GetCookie(NewOrder1);
         SetCookie (NewOrder2, database, null, "/");
      }
      NewOrder = "Order." + NumberOrdered;
      SetCookie ("NumberOrdered", NumberOrdered-1, null, "/");
      DeleteCookie(NewOrder, "/");
      //location.href=location.href;
      GetFromCart();
   }
   
}

//---------------------------------------------------------------------||
// FUNCTION:    GetFromCart                                            ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     Product Table Written to Document                      ||
// PURPOSE:     Draws current cart product table on HTML page          ||
//---------------------------------------------------------------------||
function GetFromCart( fShipping ) {
   if( fShipping )
      WriteToForm( true, fShipping );
   else
      WriteToForm( true, 0 );
}






//---------------------------------------------------------------------||
// FUNCTION:    ValidItemInCart                                        ||
// PARAMETERS:  								                                       ||
// RETURNS:     Product Table Written to Document                      ||
// PURPOSE:     Draws current cart product table on HTML page          ||
//---------------------------------------------------------------------||
function ValidItemInCart(pvaItem) 
{
			iNumberOrdered = 0;
		  iNumberOrdered = GetCookie("NumberOrdered");

       for ( i = 1; i <= iNumberOrdered; i++ ) 
       {
          NewOrder = "Order." + i;
          database = "";
          database = GetCookie(NewOrder);
    
          Token0 = database.indexOf("|", 0);
          Token1 = database.indexOf("|", Token0+1);
          Token2 = database.indexOf("|", Token1+1);
          Token3 = database.indexOf("|", Token2+1);
    
          fields = new Array;
          fields[0] = database.substring( 0, Token0 );
          if (pvaItem==fields[0])
          {
          	return false
          }
			}
			return true
}



//---------------------------------------------------------------------||
// FUNCTION:    WriteToForm                                            ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     Product hidden fields Written to Document              ||
// PURPOSE:     Draws current cart product hidden fields on HTML form  ||
//              if bDisplay == true, shows cart output as HTML table   ||
//---------------------------------------------------------------------||
function WriteToForm( bDisplay, fShipping ) {
   iNumberOrdered = 0;
   fTotal         = 0;
   strTotal       = "";
   strShipping    = "";
   strOutput      = "";
   wvarcant=0;
   iNumberOrdered = GetCookie("NumberOrdered");

		detail =" 			<table width='96%' border='0' cellspacing='0' cellpadding='0' align='center' style='BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid' >"
		detail = detail +  "       <tr height=25 bgcolor=F4F3F0>" ;
		detail = detail +  "         <td style='BORDER-BOTTOM: #000000 1px solid;' align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>Imagen</font></td>";   //PRODUCTO
		detail = detail +  "         <td style='BORDER-BOTTOM: #000000 1px solid;' align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>Articulo</font></td>"; 	//CANTIDAD
		detail = detail +  "         <td style='BORDER-BOTTOM: #000000 1px solid;' align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>Cantidad</font></td>"; 	//PRECIO
		detail = detail +  "         <td style='BORDER-BOTTOM: #000000 1px solid;' align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>Notas</font></td>"; 	//PRECIO
		detail = detail +  "         <td style='BORDER-BOTTOM: #000000 1px solid;' align='center' width=80><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>&nbsp;</font></td>";	 	//ID CARRITO	
		detail = detail +  "       </tr>";		
       for ( i = 1; i <= iNumberOrdered; i++ ) 
       {
          NewOrder = "Order." + i;
          database = "";
          database = GetCookie(NewOrder);
    
          Token0 = database.indexOf("|", 0);
          Token1 = database.indexOf("|", Token0+1);
          Token2 = database.indexOf("|", Token1+1);
          Token3 = database.indexOf("|", Token2+1);
    
          fields = new Array;
          fields[0] = database.substring( 0, Token0 );
          fields[1] = database.substring( Token0+1, Token1 );
          fields[2] = database.substring( Token1+1, Token2 );
          fields[3] = database.substring( Token2+1, Token3 );
      
    			detail = detail +  "       <tr height=70 >" ;
    			detail = detail +  "         <td style='BORDER-BOTTOM: #000000 1px solid;'  align='center' width='10%'><img src='user/images/" + fields[2] + "'></td>";   //FOTO
    		  detail = detail +  "         <td style='BORDER-BOTTOM: #000000 1px solid;'  align='left'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>&nbsp;&nbsp;" + fields[0] + "</font></td>"; 	//codigo 
    			detail = detail +  "         <td style='BORDER-BOTTOM: #000000 1px solid;' align='center'>"


					
		    	//		//arma combo					
		    	//		var wvarcantS=100 	// cantidad de items de la combo
		    	//		detail = detail + "						 <select name='cmbqty"+i+"' onchange='ChangeQuantity("+i+",document.all.cmbqty"+i+".value)'>" 
		    	//		for (wvarS=2; wvarS < wvarcantS ; wvarS++) 
		    	//		{
		    	//			detail = detail +  "<option id=cmb" + wvarS + " value= " + wvarS  
		    	//			if ( wvarS == fields[1])
		    	//				{
		    	//					detail = detail +  " SELECTED "
		    	//				}
		    	//			detail = detail +	">" + wvarS
		    	//			detail = detail +  "</option>"
		    	//		}
		    	//		detail = detail +  "					  </SELECT>"	


					detail = detail + "	 <input  style='text-align:right' size=10 value = " + fields[1] + " name='txtCantidad"+i+"'onblur='if (validacantidad(this.value))ChangeQuantity("+i+",document.all.txtCantidad"+i+".value)'>" 

    			detail = detail +  "         </td>"; 	
    			detail = detail +  "         <td style='BORDER-BOTTOM: #000000 1px solid;' align='center'><textarea name='txtinfo"+i+"' onblur='Changeinfo("+i+",document.all.txtinfo"+i+".value)'  rows='2' cols='20' >" + fields[3] + "</textarea><BR><font size='1' face='Arial, Helvetica, sans-serif' color='#660000'>Comentario sobre el pedido</font></td>"; 	//CANTIDAD
    			detail = detail +  "         <td style='BORDER-BOTTOM: #000000 1px solid;' align='left'>"
    			detail = detail +  "         <img src='images/ico_delete.gif' alt='Haciendo click sobre este Icono eliminara el artículo de la orden de pedido actual' style='cursor:hand'   onclick='RemoveFromCart(" + i + ")'</td>"; 	
    	  	detail = detail +  "          </tr>";	
    	  	
   				wvarcant=wvarcant+parseFloat(fields[1])



          detail = detail +  "<input type=hidden name=\"txtcodigo\" value=\"" + fields[0] + "\">"; //id
          detail = detail +  "<input type=hidden name=\"txtcantidad\" value=\"" + fields[1] + "\">"; //qty
          detail = detail +  "<input type=hidden name=\"txtinfo\" value=\"" + fields[3] + "\">"; //info
       }
       
     		detail = detail +  "          <tr height=25 bgcolor=F4F3F0>";
    		detail = detail +  "    		     <td colspan='6' nowrap><font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='666666'>&nbsp;&nbsp; Cantidad de artículos del actual pedido:&nbsp;" + wvarcant  + " </font></td>";
    		detail = detail +  "          </tr>";
	 detail = detail +  "        </table><br>";
	 DataCarrito.innerHTML=detail
}



