/* BY ARTEMIO PAGAN 
****************************************************************************** 
The variables in this section are global to this application and are used to calculate final cost: 

SUBTOTAL, and TOTAL: are set to zero (self explanatory)
SHIPPING: is used only when a flat shipping charge 'per order' is applied.  Otherwise, it should be 0 -- Will override shipping rate. 
ITEMS: Creates a detailed Description field for Verisign 
ORDERITEMS: A delimited list of the shopping cart contents
ITEMCOUNT: Used to determine how many items are being shipped/ordered 
SHIPRATETYPE: This is used to determine shipping charges.  If a FLAT rate is used a single price will be used per order.  If PARCEL rate is used than shipping is calculated on number of items shipped.
FREESHIP: The total purchase price (minus shipping cost) qualified for free shipping
*******************************************************************************
*/
	var i = 0; 
	var j = 0;
	var subtotal = 0;
	var total = 0;
     var items = "";
     var itemcount = 0 ;
     var shipratetype = "FLAT"; /* FLAT OR PARCEL -- Read above for explanation */
     var shipping = parseFloat(0.00); 
     var freeship = 0;
/* ****************************************************************************** */
/* Update item in shopping basket */
function updatebasket(form) {
	var quant=parseInt(form.elements[0].value);
	if(isNaN(quant)){
	   alert("Quantity must be a number.");
	   form.elements[0].select();
	   form.elements[0].focus();}
	else{
	if(quant >= 0){
	   updateitem(form);
	   location.href="/basket.htm";}
	else{
	   alert("Invalid quantity entered. ");
	   form.elements[0].select();
	   form.elements[0].focus();
	   }
	}
}

function updateitem(form){
	var newquant=form.elements[0].value;
	var formno=form.elements[0].name;
	var orderdata=getCookie("order");
	var orderitem=separatedata(orderdata,delimitem);
	var neworder = "";
	if (newquant>0){
	   var orderoptions=separatedata(orderitem[formno],delimoption);
	   orderoptions[3]=newquant;
	   for(i=0;i<orderoptions.length-1;i++){
	      neworder+=orderoptions[i]+delimoption
	   }
	   neworder+=orderoptions[orderoptions.length-1];
	}
	else{
	   neworder="";
	}
	orderitem[formno]=neworder;
	var neworderarray=new Array("");
	var neworderdata="";
	var j=0;
	for(i=0;i<orderitem.length;i++){
	   if(orderitem[i]!=""){
	      neworderarray[j]=orderitem[i]
		j++
	   }
	}
	if (neworderarray.length>1){
	   for(i=0;i<neworderarray.length-1;i++){
	      neworderdata+=neworderarray[i]+delimitem;
	   }
	}
	neworderdata+=neworderarray[neworderarray.length-1];
	if (neworderdata!=""){
	   setCookie("order", neworderdata);}
	else{
	   delCookie("order");
	   delCookie("cook");
	}
}

/* Show an undetailed shopping basket */
function displayitems(){
	var orderdata=getCookie("order");
     var shipped=getCookie("ShipState");
      
document.write("<table border='1' cellpadding='2' cellspacing='0' bgcolor='#E6FDD8'><tr><td><font face='times new roman'><b>Product Id</td><td><b><font face='times new roman'>Product Name</td><td><b><font face='times new roman'>Price</td><td align='center'><b><font face='times new roman'>Quantity</td><!--<td align='center'><b><font face='times new roman'>Item Total</td>--><td align='center'><b><font face='times new roman'>Update</td></tr>");

if (orderdata!=null){

	var orderitems=separatedata(orderdata,delimitem);
	var printline="";
	var orderoptions=new Array("");
	var linetotal=0;

	for(i=0;i<orderitems.length;++i){
	   orderoptions[i]=separatedata(orderitems[i],delimoption);
	   printline="<FORM METHOD='GET'><tr><td><font face='times new roman'>"+orderoptions[i][0]+"</td>";
	   printline+="<td><font face='times new roman'>"+orderoptions[i][1]+"</td><td align='right'><font face='times new roman'>"+formatamount(parseFloat(orderoptions[i][2]*orderoptions[i][3]))+"</td><td align='center'>"+"<INPUT TYPE='text' NAME='"+i+"' SIZE='3' MAXLENGTH='2' value='"+orderoptions[i][3]+"'></td>"; document.write(printline+"<td align='center'>        <A href='javascript:updatebasket(document.forms["+i+"])' STYLE='BORDER: outset 2px; BACKGROUND-COLOR: 047D54;  PADDING: 3px 3px 3px 3px; FONT: 10pt arial; TEXT-ALIGN: &quot;center&quot; ; WIDTH: 98; TEXT-DECORATION: none; COLOR: White;' ONMOUSEOVER='style.fontWeight= &quot;bold&quot;;' ONMOUSEOUT='style.fontWeight= &quot;normal&quot; ;' ONMOUSEUP='style.border=&quot;outset 1px&quot; ;' ONMOUSEDOWN='style.border=&quot;inset 2px&quot;';>Update</A></a></td></tr></form>");
	}

}
	document.write("</table>");
}

/* Empty basket */
function emptybasket(){
	   delCookie("order");
	   for(i = 0 ; i < document.cookie.length; i++){
	   delCookie("cook"+i);
	   }
}

/* Format field with two decimals */
function formatamount(amount){
    var decpoint;
    var begin;
    var end;
    var valstr;
    var temp_char;

    amount = Math.round(amount * 100) / 100
    valstr = "" + amount;
    decpoint = valstr.indexOf(".")

    if (decpoint != -1) {
        begin = valstr.substring(0,decpoint);
        end = valstr.substring(decpoint+1,valstr.length);
	}
    else {
        begin = valstr;
        end = "";
	} 
	if (end.length < 2)
	 {while (end.length < 2)
	    {end += "0";}
	 }   
	end = end.substring(0,2);
    return (begin+"."+end);
}

/* Show basket items */
function displayitems2(){

	var orderdata=getCookie("order");
     var shipped=getCookie("ShipState");

document.write("<table border='0' ALIGN='center' cellpadding='4' cellspacing='0' WIDTH='560' STYLE='border: solid thin; '><TR BGCOLOR='EAFBED'><TD ALIGN='left' WIDTH='70'><SPAN style='font: 9pt arial; color: black;'>PRODUCT</SPAN></TD><TD WIDTH='325' ALIGN='left'><SPAN style='font: 9pt arial; color: black;'>PRODUCT NAME</SPAN></TD><TD WIDTH='45' ALIGN='left'><SPAN style='font: 9pt arial; color: black;'>PRICE</TD><TD WIDTH='40' ALIGN='right'><SPAN style='font: 9pt arial; color: black;'>QUANTITY</TD><TD WIDTH='70' align='right'><SPAN style='font: 9pt arial; color: black;'>ITEM TOTAL</TD></TR>");

if (orderdata!=null){
	var orderitems=separatedata(orderdata,delimitem);
	var printline="";
	var orderoptions=new Array("");
	var linetotal=0;

itemcount = 0 /* Used to determine how many items are being shipped/ordered */

	for(i=0;i<orderitems.length;++i){
	   orderoptions[i]=separatedata(orderitems[i],delimoption);
	   printline="<tr><td><SPAN STYLE='font: 10pt arial;'>"+orderoptions[i][0]+"</SPAN></td>";
	   linetotal=parseFloat(orderoptions[i][2])*parseFloat(orderoptions[i][3])
	   subtotal+=linetotal

/* Used to determine how many items are being shipped/ordered */        
itemcount += parseInt(orderoptions[i][3]) 
	   for(j=4;j<orderoptions[i].length;j++){
		if(j<orderoptions[i].length-1){
		   var breakme = "<br>";}
		else{
		   var breakme = "";}
		if(orderoptions[i][j]!=" "){
	      printline+=orderoptions[i][j]+breakme;}
	   }
	   printline+="<td><SPAN STYLE='font: 10pt arial;'>"+orderoptions[i][1]+"</SPAN></td><td ALIGN='center'><SPAN STYLE='font: 10pt arial;'>$"+orderoptions[i][2]+"</SPAN></td><td align='center'><SPAN STYLE='font: 10pt arial;'>"+orderoptions[i][3]+"<INPUT TYPE='hidden' name='order' value='"+orderoptions[i][1]+ ' $' +linetotal + ' (' +orderoptions[i][3]+")'></SPAN></td>";

	   printline+="<td align='right'><SPAN STYLE='font: 10pt arial;'>$"+formatamount(linetotal)+"</SPAN></td></tr>"
	   document.write(printline);
	}
/* ************************************************************************************
SHIPPING INFORMATION CALCULATED -- START */     
<!--                                 FLAT RATE                                   -->
if(shipratetype == "FLAT"){     
     if(linetotal < freeship){
          Tshipping = shipping;
          shippingmessage = "Our shipping charge is a flat rate $"+shipping
          total=parseFloat(shipping)+parseFloat(subtotal);
     }
     if(linetotal > freeship){
          Tshipping = 0; shipping = 0;
          shippingmessage = "Shipping is free within the United States"
<!--      "Shipping is FREE for orders of $"+freeship+" or more!" -->
          total=parseFloat(shipping)+parseFloat(subtotal);
     }
}
<!--                              PER PARCEL RATE                                -->
if(shipratetype == "PARCEL"){
     if(linetotal < freeship){
          Tshipping=shipping*itemcount;
          total=parseFloat(Tshipping)+parseFloat(subtotal);
          shippingmessage = "We charge a rate of $"+shipping+" per parcel shipped.  Each item ordered is individually shipped."  
     }
     if(linetotal > freeship){
          Tshipping=0
          total=parseFloat(subtotal);
          shippingmessage = "Shipping is FREE for orders of $"+freeship+" or more!"
     }
}     
/* SHIPPING INFORMATION CALCULATED -- END
************************************************************************************ */
}

/* Create the Description field for Verisign with all items ordered */
     items = ""
     for(i=0;i<orderitems.length;++i){
          items += orderoptions[i][3] + "-" + orderoptions[i][1]
          if(orderoptions[i][3] > 1){
          items += "s"
          }
          if(i < (orderitems.length-1)){
               items += ", ";
          }
     }
	document.write("<TR><TD HEIGHT='2' COLSPAN='5'><HR SIZE=1></TD></TR><tr><TD COLSPAN=2 ROWSPAN=4><SPAN STYLE='font: 8pt arial;font-weight: bold; color: gray;'><UL TYPE='circle'><LI>" + shippingmessage + "<LI>In accordance with tax laws, we collect sales tax for purchases with a billing address in the State of Texas. (Tax amount will appear on next page)</UL></SPAN> </TD><TD></TD><TD HEIGHT='15'><SPAN style='font: 10pt arial;'>Amount:</SPAN></td><td HEIGHT='15' align='right'><SPAN style='font: 10pt arial;'>$"+formatamount(subtotal)+"</SPAN></td></tr><tr><TD></TD><td><SPAN style='font: 10pt arial;'>Shipping:</SPAN></td><td align='right'><SPAN style='font: 10pt arial;'>$"+formatamount(Tshipping)+"</SPAN></td></tr><tr><TD></TD><td><SPAN STYLE='font: 10pt arial; font-weight: bold;'>Subtotal:</SPAN></td><td align='right'><SPAN style='font: 10pt arial; text-decoration: overline;'>$"+formatamount(total)+"</SPAN></td></tr><TR><TD COLSPAN='5'><INPUT type='Hidden' name='AMOUNT' VALUE='"+formatamount(total)+"'><INPUT type='Hidden' name='SHIPAMOUNT' VALUE='"+formatamount(shipping)+"'><input type='Hidden' name='DESCRIPTION' value='"+items+"'></TD></TR></table></p>");
}

/* ************************************************************************************
ADDING ITEMS TO SHOPPING BASKET -- START */

//Add item to shopping basket
function addtobasket(form,page) {
	var quant=parseInt(form.elements[1].value);
	if(isNaN(quant)){
	   alert("Quantity must be a number. ");
	   form.elements[1].select();
	   form.elements[1].focus();
	   }
	else{

	if(quant > 0){
	   additem(form);
	   location.href=page;}
	else{
	   alert("Invalid quantity entered. ");
	   form.elements[1].select();
	   form.elements[1].focus();
	   }
	}
}

function additem(form){
	var myarray=new Array(form.elements[0].name,form.elements[0].value,form.elements[1].name,form.elements[1].value);
	myarray[4]=" ";
	myarray[5]=" ";
	myarray[6]=" ";
	myarray[7]=" ";
	var j=3;
  	for(i=2;i<form.elements.length;i++){
	    if(isNaN(form.elements[i].length)){
	       var optionvalue=form.elements[i].value;}
	    else {
	       var selindex=form.elements[i].selectedIndex;
	       var optionvalue=form.elements[i].options[selindex].text;
	    }
	    j++

	    myarray[j]=optionvalue
	}

	var orderdata=getCookie("order");
	var neworderdata = myarray[0]+delimoption+myarray[1]+delimoption+myarray[2]
	neworderdata += delimoption+myarray[3]+delimoption+myarray[4]+delimoption+myarray[5]
	neworderdata += delimoption+myarray[6]+delimoption+myarray[7]

	if (orderdata!=null){
	   orderdata += delimitem + neworderdata
	}
	else{
	   orderdata = neworderdata
	}
	setCookie("order", orderdata);
}
/* ADDING ITEMS TO SHOPPING BASKET -- END
************************************************************************************ 
************************************************************************************
COOKIE FUNCTIONS FORM SHOPPING BASKET -- START */

//Global variables used as delimeters
delimitem = "ÿ";
delimoption = "þ";

//Cookie functions
function getCookie(name){
	var cookiename = name + "=";
	var doccookie = document.cookie;

	if (doccookie.length > 0) {
		start = doccookie.indexOf(cookiename);
		if (start != -1) {
			start += cookiename.length;
			end = doccookie.indexOf(";", start);
			if (end == -1) end = doccookie.length;
			return unescape(doccookie.substring(start, end));
		}
	}

	return null;
}

function setCookie(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : "; expires=" + expires.toGMTString()) + ((path == null) ? "" : "; path=" + path) + ((domain == null) ? "" : "; domain=" + domain) + ((secure == null) ? "" : "; secure");

}

function delCookie (name) {
	var delDate=new Date("January 1, 1999 23:30:00");
	setCookie(name,null,delDate);
}

//Seperate strings
function separatedata(datain,delimin){
	var i=0;
	var xarray=new Array(datain);
	var j=0;
	for(i=0;i<datain.length;i++){
	   var tempstring=datain.substring(i,datain.length);
	   var x=tempstring.indexOf(delimin);
	   if(x>0){
	   var k=x+i;
	   xarray[j++]=datain.substring(i,k);
	   i+=x}
	   else{
	   xarray[j++]=tempstring;
	   i=datain.length}
	}

	return xarray;
}
/* COOKIE FUNCTIONS FORM SHOPPING BASKET -- END
************************************************************************************ */