//**********************************************************************
//                             StaticCart                              *
//      For more information contact staticcart@kfldesign.com          *
// JavaScript Shop Module, V.3.0.0 build 294       Copyright 2004-2005 *
//                                                                     *
//**********************************************************************
//                                                                     *
// None of this script may be redistributed or sold without the        *
// authors express consent. Violations of this copyright will be       *
// prosecuted. Modification to this program are strictly prohibited    *
// without the authors express consent. If you would to make           *
// modifications to StaticCart, email us at staticcart@kfldesign.com   *
//                                                                     *
//**********************************************************************
//                     Developers of StaticCart                        *
// C A Lane         - Project Manager/Developer -          KFL Design  *
// Randy Creighton        - Lead Developer -  KFL Design/JRS Services  *
// Fenea Lane                - Logistics -                 KFL Design  *
//                                                                     *
//                          Contrubultors                              *
//                  Dave Stanovic - Progressive Scripts                *
//                    Andy Chitty - Exigen Limited                     *
//                   Zak Goldburg - Echelon Design                     *
//                                                                     *
//**********************************************************************
//=====================================================================||
//---------------------------------------------------------------------||
//    YOU DO NOT NEED TO MAKE ANY MODIFICATIONS BELOW THIS LINE        ||
//---------------------------------------------------------------------||
//=====================================================================||
var strTaxCalc;
var useAdvancedCookie = false;
var strCouponString;
var PercentShipping = 0;
var OutputItemUserEntry='USERENTRY_';
//---------------------------------------------------------------------||
//                      Shopping Cart Array                            ||
//                     ---------------------                           ||
// This is array for storing shopping cart information.  The array     ||
// should never be accessed directly.  Array information is serialised ||
// to and from local cookies as required.                              ||
//---------------------------------------------------------------------||

var g_ItemArray=null;
//---------------------------------------------------------------------||
// FUNCTION:    Browser test                                           ||
// PARAMETERS:  None                                                   ||
// RETURNS:     Browser name, version and max cookie size              ||
// PURPOSE:     To determine accessing browser, and set cookie size    ||
// --------------------------------------------------------------------||

browserName=navigator.appName;
browserVer=parseInt(navigator.appVersion);
if(browserName=="Netscape"&&browserVer>=3){
sccookiel=(15*4096);
scitemlen=1920;
}else{
sccookiel=3600;
scitemlen=1024;
}

//---------------------------------------------------------------------||
// FUNCTION:    checkCR                                                ||
// PARAMETERS:  Keypressed                                             ||
// RETURNS:     keypressed                                             ||
// PURPOSE:     To block return (Enter) key pressed when using forms   ||
// --------------------------------------------------------------------||

function checkCR(evt){
var evt=(evt)?evt:((event)?event:null);
var node=(evt.target)?evt.target:((evt.srcElement)?evt.srcElement:null);
if((evt.keyCode==13)&&(node.type=="text")){return false;}
}
document.onkeypress=checkCR;

//---------------------------------------------------------------------||
// FUNCTION:    AddOneOfManyToCart                                     ||
// PARAMETERS:  Form Object PRODUCTSELECTOR                            ||
// RETURNS:     Product parameters to order form                       ||
// PURPOSE:     selects one of many products with different size,      ||
//              cost, shipping and/or tax to add to shopping cart      ||
//---------------------------------------------------------------------||

function AddOneOfManyToCart(formToUpdate){
selectedObj=formToUpdate.PRODUCTSELECTOR[formToUpdate.PRODUCTSELECTOR.selectedIndex];
nameVal=selectedObj.getAttribute("name");
if(nameVal=="select"){
alert('Please select an option');
return false;
}
formToUpdate.NAME.value=nameVal;
costVal=selectedObj.getAttribute("cost");
formToUpdate.PRICE.value=costVal;
id_numVal=selectedObj.getAttribute("id_num");
formToUpdate.ID_NUM.value=id_numVal;
if(formToUpdate.SHIPPING==null)
formToUpdate.SHIPPING.value=0.00;
shippingVal=selectedObj.getAttribute("shipping");
if((isNaN(shippingVal))||(shippingVal==null))shippingVal="0.00";
formToUpdate.SHIPPING.value=shippingVal;
if(formToUpdate.WEIGHT==null)
formToUpdate.WEIGHT.value=0.00;
weightVal=selectedObj.getAttribute("weight");
if((isNaN(weightVal))||(weightVal==null))weightVal="0.00";
formToUpdate.WEIGHT.value=weightVal;
if(formToUpdate.FSTAXABLE==null)
formToUpdate.FSTAXABLE=1;
if(formToUpdate.TAXABLE==null)
formToUpdate.TAXABLE=1;
if(formToUpdate.LIMIT==null)
formToUpdate.LIMIT=0;
else
var limitVal=selectedObj.getAttribute("limit");
formToUpdate.LIMIT.value=limitVal;
switch(formToUpdate.PRODUCTSELECTOR[formToUpdate.PRODUCTSELECTOR.selectedIndex].value){
}
AddToCart(formToUpdate);
}

//---------------------------------------------------------------------||
// FUNCTION:    CKquantity                                             ||
// PARAMETERS:  Quantity to                                            ||
// RETURNS:     Quantity as a number, and possible alert               ||
// PURPOSE:     Make sure quantity is represented as a number          ||
//---------------------------------------------------------------------||

function CKquantity(checkString){
var 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";
if(strNewQuantity.charAt(0)==0)
strNewQuantity=strNewQuantity.substring(1,strNewQuantity.length);
return(strNewQuantity);
}

//---------------------------------------------------------------------||
// FUNCTION:    CKnumbers                                              ||
// PARAMETERS:  Numbers string to check                                ||
// RETURNS:     String as numbers 0 to 9, and possible alert           ||
// PURPOSE:     Make sure string  is represented as a number           ||
//---------------------------------------------------------------------||
function CKnumbers(checkString) {
var strNewQuantity = "";


for ( i = 0; i < checkString.length; i++ ) {
	ch = checkString.substring(i, i+1);
	if (ch >= "0" && ch <= "9")
	strNewQuantity += ch;
   }

	if ( 	strNewQuantity < 0 )
	strNewQuantity = "0";

			if ( strNewQuantity.charAt(0)==0){
			strNewQuantity = strNewQuantity.substring(1, strNewQuantity.length);}
			
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(thisForm){
var iNumberOrdered=0;
var bAlreadyInCart=false;
var notice="";


if (useAdvancedCookie) {
iNumberOrdered=GetShoppingCartCount();
}
if (!useAdvancedCookie) {
iNumberOrdered = ReadCookie("NumberOrdered");
}


if(iNumberOrdered==null)
iNumberOrdered=0;
if(thisForm.ID_NUM==null){
strID_NUM="";
}else{
strID_NUM=thisForm.ID_NUM.value;
}
if(thisForm.FSTAXABLE==null)
strFSTAXABLE=1;
else{
if((thisForm.FSTAXABLE.value=="false")||(thisForm.FSTAXABLE.value=="FALSE"))
strFSTAXABLE=0;
else
strFSTAXABLE=1;
}
if(thisForm.TAXABLE==null)
strTAXABLE=1;
else{
if((thisForm.TAXABLE.value=="false")||(thisForm.TAXABLE.value=="FALSE"))
strTAXABLE=0;
else
strTAXABLE=1;
}
if(thisForm.LIMIT==null){
strQTYLIMIT=0;
}else{
if((thisForm.LIMIT.value=="false")||(thisForm.LIMIT.value=="FALSE")||(thisForm.LIMIT.value==null)){
strQTYLIMIT=0;
}else{
strQTYLIMIT=thisForm.LIMIT.value;
}
}
if(thisForm.QUANTITY==null){
strQUANTITY="1";
}else{
strQUANTITY=thisForm.QUANTITY.value;
}
if(strQUANTITY<=0){
alert(strErrQty);
return false;
}
if(thisForm.PRICE==null){
strPRICE="0.00";
}else{
strPRICE=thisForm.PRICE.value;
}
if(thisForm.NAME==null){
strNAME="";
}else{
strNAME=thisForm.NAME.value;
}
if((thisForm.SHIPPING==null)||(thisForm.SHIPPING.value==null)){
strSHIPPING="0.00";
}else{
strSHIPPING=thisForm.SHIPPING.value;
}
if((thisForm.WEIGHT==null)||(thisForm.WEIGHT.value==null)){
strWEIGHT="0";
}else{
strWEIGHT=thisForm.WEIGHT.value;
}
if (BuildID){
var Token0   = "";   // declare the variables before you use them   
var database = "";         

if ( thisForm.ADDITIONALINFO == null ) {
      strADDTLINFO = "";
   } else {
      database = thisForm.ADDITIONALINFO[thisForm.ADDITIONALINFO.selectedIndex].value;
      Token0 = database.indexOf("|", 0);
      strADDTLINFO = database.substring( 0, Token0 );                //Additional
strID_NUM += database.substring( Token0+1, database.length );  // Product ID
         }
 
   if ( thisForm.ADDITIONALINFO2 != null ) {
database = thisForm.ADDITIONALINFO2[thisForm.ADDITIONALINFO2.selectedIndex].value;
      Token0 = database.indexOf("|", 0);
      strADDTLINFO+= "; " + database.substring( 0, Token0 );         //Additional
strID_NUM += database.substring( Token0+1, database.length );  // Product ID
   }

   if ( thisForm.ADDITIONALINFO3 != null ) {
database = thisForm.ADDITIONALINFO3[thisForm.ADDITIONALINFO3.selectedIndex].value;
      Token0 = database.indexOf("|", 0);
      strADDTLINFO+= "; " + database.substring( 0, Token0 );         //Additional
strID_NUM += database.substring( Token0+1, database.length );  // Product ID
   }
 
   if ( thisForm.ADDITIONALINFO4 != null ) {
database = thisForm.ADDITIONALINFO4[thisForm.ADDITIONALINFO4.selectedIndex].value;
      Token0 = database.indexOf("|", 0);
      strADDTLINFO+= "; " + database.substring( 0, Token0 );         //Additional
strID_NUM += database.substring( Token0+1, database.length );  // Product ID
   }
}
// ---end of ADDITONALINFO mod  --------- || 

if (!BuildID){
if(thisForm.ADDITIONALINFO==null){
strADDTLINFO="";
}else{
strADDTLINFO=thisForm.ADDITIONALINFO[thisForm.ADDITIONALINFO.selectedIndex].value;
}
if(thisForm.ADDITIONALINFO2!=null){
strADDTLINFO+="; "+thisForm.ADDITIONALINFO2[thisForm.ADDITIONALINFO2.selectedIndex].value;
}
if(thisForm.ADDITIONALINFO3!=null){
strADDTLINFO+="; "+thisForm.ADDITIONALINFO3[thisForm.ADDITIONALINFO3.selectedIndex].value;
}
if(thisForm.ADDITIONALINFO4!=null){
strADDTLINFO+="; "+thisForm.ADDITIONALINFO4[thisForm.ADDITIONALINFO4.selectedIndex].value;
}
}
if(thisForm.USERENTRY!=null){
strUSERENTRY="; "+thisForm.USERENTRY.value;
}
if(thisForm.USERENTRY2!=null){
strUSERENTRY+="; "+thisForm.USERENTRY2.value;
}
if(thisForm.USERENTRY3!=null){
strUSERENTRY+="; "+thisForm.USERENTRY3.value;
}



if (useAdvancedCookie) {
for(i=1;i<=iNumberOrdered;i++){
database=GetShoppingCartItem(i);
Token0=database.indexOf("|",0);
Token1=database.indexOf("|",Token0+1);
Token2=database.indexOf("|",Token1+1);
Token3=database.indexOf("|",Token2+1);
Token4=database.indexOf("|",Token3+1);
Token5=database.indexOf("|",Token4+1);
Token6=database.indexOf("|",Token5+1);
Token7=database.indexOf("|",Token6+1);
Token8=database.indexOf("|",Token7+1);
Token9=database.indexOf("|",Token8+1);
fields=new Array(11);
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,Token5);
fields[6]=database.substring(Token5+1,Token6);
fields[7]=database.substring(Token6+1,Token7);
fields[8]=database.substring(Token7+1,Token8);
fields[9]=database.substring(Token8+1,Token9);
fields[10]=database.substring(Token9+1,database.length);
if(fields[0]==strID_NUM&&fields[2]==strPRICE&&fields[3]==strNAME&&fields[6]==strADDTLINFO&&fields[7]==strUSERENTRY){
bAlreadyInCart=true;
strQTY=(parseInt(strQUANTITY)+parseInt(fields[1]));
if((strQTY>parseInt(strQTYLIMIT))&&(strQTYLIMIT!=0)){
strQTY=strQTYLIMIT;
alert(strErrLimit+strQTY);}
dbUpdatedOrder=strID_NUM+"|"+strQTY+"|"+strPRICE+"|"+strNAME+"|"+strSHIPPING+"|"+strWEIGHT+"|"+strADDTLINFO+"|"+strUSERENTRY+"|"+strQTYLIMIT+"|"+strFSTAXABLE+"|"+strTAXABLE;
UpdateItemToShoppingCart(dbUpdatedOrder,i);
if (DisplayStyle){
winAlert();
}else{
notice=strAdded+"\n"+"\nQuantity : "+strQUANTITY+"\nProduct  : "+strNAME+"\ - "+strADDTLINFO+' '+strUSERENTRY;
if(DisplayNotice&&notice!='')
alert(notice);

}
break;
}
}
if(!bAlreadyInCart){
iNumberOrdered++;
strQTY=(parseInt(strQUANTITY));
if((strQTY>strQTYLIMIT)&&(strQTYLIMIT!=0))strQTY=strQTYLIMIT;
if((iNumberOrdered>250)||(document.cookie.length>=sccookiel)){
alert(strSorry);
}else{
dbUpdatedOrder=strID_NUM+"|"+strQTY+"|"+strPRICE+"|"+strNAME+"|"+strSHIPPING+"|"+strWEIGHT+"|"+strADDTLINFO+"|"+strUSERENTRY+"|"+strQTYLIMIT+"|"+strFSTAXABLE+"|"+strTAXABLE;
if(AddItemToShoppingCart(dbUpdatedOrder)){
if (DisplayStyle){
winAlert();
}else{
notice=strAdded+"\n"+"\nQuantity : "+strQUANTITY+"\nProduct  : "+strNAME+"\ - "+strADDTLINFO+' '+strUSERENTRY;
if(DisplayNotice&&notice!='')
alert(notice);
}
}
}
}
}



if (!useAdvancedCookie) {
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);
Token4=database.indexOf("|",Token3+1);
Token5=database.indexOf("|",Token4+1);
Token6=database.indexOf("|",Token5+1);
Token7=database.indexOf("|",Token6+1);
Token8=database.indexOf("|",Token7+1);
Token9=database.indexOf("|",Token8+1);
fields=new Array(11);
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,Token5);
fields[6]=database.substring(Token5+1,Token6);
fields[7]=database.substring(Token6+1,Token7);
fields[8]=database.substring(Token7+1,Token8);
fields[9]=database.substring(Token8+1,Token9);
fields[10]=database.substring(Token9+1,database.length);
if(fields[0]==strID_NUM&&fields[2]==strPRICE&&fields[3]==strNAME&&fields[6]==strADDTLINFO&&fields[7]==strUSERENTRY){
bAlreadyInCart=true;
strQTY=(parseInt(strQUANTITY)+parseInt(fields[1]));
if((strQTY>parseInt(strQTYLIMIT))&&(strQTYLIMIT!=0)){
strQTY=strQTYLIMIT;
alert(strErrLimit+strQTY);}

dbUpdatedOrder=strID_NUM+"|"+strQTY+"|"+strPRICE+"|"+strNAME+"|"+strSHIPPING+"|"+strWEIGHT+"|"+strADDTLINFO+"|"+strUSERENTRY+"|"+strQTYLIMIT+"|"+strFSTAXABLE+"|"+strTAXABLE;



         strNewOrder = "Order." + i;
         DeleteCookie(strNewOrder, "/");
         SetCookie(strNewOrder, dbUpdatedOrder, null, "/");



if (DisplayStyle){
winAlert();
}else{
notice=strAdded+"\n"+"\nQuantity : "+strQUANTITY+"\nProduct  : "+strNAME+"\ - "+strADDTLINFO+' '+strUSERENTRY;
if(DisplayNotice&&notice!='')
alert(notice);

}
break;
}
}




   if ( !bAlreadyInCart ) {
      iNumberOrdered++;

strQTY=(parseInt(strQUANTITY));
if((strQTY>strQTYLIMIT)&&(strQTYLIMIT!=0))strQTY=strQTYLIMIT;
if(iNumberOrdered>12){
alert(strSorry);
}else{

dbUpdatedOrder=strID_NUM+"|"+strQTY+"|"+strPRICE+"|"+strNAME+"|"+strSHIPPING+"|"+strWEIGHT+"|"+strADDTLINFO+"|"+strUSERENTRY+"|"+strQTYLIMIT+"|"+strFSTAXABLE+"|"+strTAXABLE;
         strNewOrder = "Order." + iNumberOrdered;
         SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
         WriteCookie("NumberOrdered", iNumberOrdered, null, "/");
if (DisplayStyle){
winAlert();
}else{
notice=strAdded+"\n"+"\nQuantity : "+strQUANTITY+"\nProduct  : "+strNAME+"\ - "+strADDTLINFO+' '+strUSERENTRY;
if(DisplayNotice&&notice!='')
alert(notice);
}
}
}
}



}

//---------------------------------------------------------------------||
// FUNCTION:    AddToCart2                                              ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//---------------------------------------------------------------------||

function AddToCart2(thisForm){
var iNumberOrdered=0;
var bAlreadyInCart=false;
var notice="";


if (useAdvancedCookie) {
iNumberOrdered=GetShoppingCartCount();
}
if (!useAdvancedCookie) {
iNumberOrdered = ReadCookie("NumberOrdered");
}


if(iNumberOrdered==null)
iNumberOrdered=0;
if(thisForm.ID_NUM==null){
strID_NUM="";
}else{
strID_NUM=thisForm.ID_NUM.value;
}
if(thisForm.FSTAXABLE==null)
strFSTAXABLE=1;
else{
if((thisForm.FSTAXABLE.value=="false")||(thisForm.FSTAXABLE.value=="FALSE"))
strFSTAXABLE=0;
else
strFSTAXABLE=1;
}
if(thisForm.TAXABLE==null)
strTAXABLE=1;
else{
if((thisForm.TAXABLE.value=="false")||(thisForm.TAXABLE.value=="FALSE"))
strTAXABLE=0;
else
strTAXABLE=1;
}
if(thisForm.LIMIT==null){
strQTYLIMIT=0;
}else{
if((thisForm.LIMIT.value=="false")||(thisForm.LIMIT.value=="FALSE")||(thisForm.LIMIT.value==null)){
strQTYLIMIT=0;
}else{
strQTYLIMIT=thisForm.LIMIT.value;
}
}
if(thisForm.QUANTITY==null){
strQUANTITY="1";
}else{
strQUANTITY=thisForm.QUANTITY.value;
}
if(strQUANTITY<=0){
alert(strErrQty);
return false;
}
if(thisForm.PRICE==null){
strPRICE="0.00";
}else{
strPRICE=thisForm.PRICE.value;
}
if(thisForm.NAME==null){
strNAME="";
}else{
strNAME=thisForm.NAME.value;
}
if((thisForm.SHIPPING==null)||(thisForm.SHIPPING.value==null)){
strSHIPPING="0.00";
}else{
strSHIPPING=thisForm.SHIPPING.value;
}
if((thisForm.WEIGHT==null)||(thisForm.WEIGHT.value==null)){
strWEIGHT="0";
}else{
strWEIGHT=thisForm.WEIGHT.value;
}
if (BuildID){
var Token0   = "";   // declare the variables before you use them   
var database = "";         

if ( thisForm.ADDITIONALINFO == null ) {
      strADDTLINFO = "";
   } else {
      database = thisForm.ADDITIONALINFO[thisForm.ADDITIONALINFO.selectedIndex].value;
      Token0 = database.indexOf("|", 0);
      strADDTLINFO = database.substring( 0, Token0 );                //Additional
strID_NUM += database.substring( Token0+1, database.length );  // Product ID
         }
 
   if ( thisForm.ADDITIONALINFO2 != null ) {
database = thisForm.ADDITIONALINFO2[thisForm.ADDITIONALINFO2.selectedIndex].value;
      Token0 = database.indexOf("|", 0);
      strADDTLINFO+= "; " + database.substring( 0, Token0 );         //Additional
strID_NUM += database.substring( Token0+1, database.length );  // Product ID
   }

   if ( thisForm.ADDITIONALINFO3 != null ) {
database = thisForm.ADDITIONALINFO3[thisForm.ADDITIONALINFO3.selectedIndex].value;
      Token0 = database.indexOf("|", 0);
      strADDTLINFO+= "; " + database.substring( 0, Token0 );         //Additional
strID_NUM += database.substring( Token0+1, database.length );  // Product ID
   }
 
   if ( thisForm.ADDITIONALINFO4 != null ) {
database = thisForm.ADDITIONALINFO4[thisForm.ADDITIONALINFO4.selectedIndex].value;
      Token0 = database.indexOf("|", 0);
      strADDTLINFO+= "; " + database.substring( 0, Token0 );         //Additional
strID_NUM += database.substring( Token0+1, database.length );  // Product ID
   }
}
// ---end of ADDITONALINFO mod  --------- || 

if (!BuildID){
if(thisForm.ADDITIONALINFO==null){
strADDTLINFO="";
}else{
strADDTLINFO=thisForm.ADDITIONALINFO[thisForm.ADDITIONALINFO.selectedIndex].value;
}
if(thisForm.ADDITIONALINFO2!=null){
strADDTLINFO+="; "+thisForm.ADDITIONALINFO2[thisForm.ADDITIONALINFO2.selectedIndex].value;
}
if(thisForm.ADDITIONALINFO3!=null){
strADDTLINFO+="; "+thisForm.ADDITIONALINFO3[thisForm.ADDITIONALINFO3.selectedIndex].value;
}
if(thisForm.ADDITIONALINFO4!=null){
strADDTLINFO+="; "+thisForm.ADDITIONALINFO4[thisForm.ADDITIONALINFO4.selectedIndex].value;
}
}
if(thisForm.Gift_For==null){
strUSERENTRY="";
}else{
strUSERENTRY=thisForm.Gift_For.value;
}
if(thisForm.Gift_From!=null){
strUSERENTRY+=":"+thisForm.Gift_From.value;
}
if(thisForm.Special_Occasion!=null){
strUSERENTRY+=":"+thisForm.Special_Occasion[thisForm.Special_Occasion.selectedIndex].value;
}
if(thisForm.Recipient_Title!=null){
strUSERENTRY+=":"+thisForm.Recipient_Title[thisForm.Recipient_Title.selectedIndex].value;
}
if(thisForm.Recipient_Name!=null){
strUSERENTRY+=":"+thisForm.Recipient_Name.value;
}
if(thisForm.Recipient_Address!=null){
strUSERENTRY+=":"+thisForm.Recipient_Address.value;
}
if(thisForm.Recipient_Address2!=null){
strUSERENTRY+=":"+thisForm.Recipient_Address2.value;
}
if(thisForm.Recipient_City!=null){
strUSERENTRY+=":"+thisForm.Recipient_City.value;
}
if(thisForm.Recipient_State!=null){
strUSERENTRY+=":"+thisForm.Recipient_State.value;
}
if(thisForm.Recipient_Zip!=null){
strUSERENTRY+=":"+thisForm.Recipient_Zip.value;
}
if(thisForm.Recipient_Country!=null){
strUSERENTRY+=":"+thisForm.Recipient_Country.value;
}
if(thisForm.Recipient_Phone!=null){
strUSERENTRY+=":"+thisForm.Recipient_Phone.value;
}
if(thisForm.Recipient_Email!=null){
strUSERENTRY+=":"+thisForm.Recipient_Email.value;
}
/*
if(thisForm.Include_Amount!=null){
strUSERENTRY+=":"+thisForm.Include_Amount.value;
}
*/
if ( thisForm.Include_Amount != null ) {
for (var i=0; i < thisForm.Include_Amount.length; i++)
{
if (thisForm.Include_Amount[i].checked)
{
var rad_val = thisForm.Include_Amount[i].value;
}
}
strUSERENTRY += ":" + rad_val;
}
if(thisForm.Message!=null){
strUSERENTRY+=":"+thisForm.Message.value;
}


if (useAdvancedCookie) {
for(i=1;i<=iNumberOrdered;i++){
database=GetShoppingCartItem(i);
Token0=database.indexOf("|",0);
Token1=database.indexOf("|",Token0+1);
Token2=database.indexOf("|",Token1+1);
Token3=database.indexOf("|",Token2+1);
Token4=database.indexOf("|",Token3+1);
Token5=database.indexOf("|",Token4+1);
Token6=database.indexOf("|",Token5+1);
Token7=database.indexOf("|",Token6+1);
Token8=database.indexOf("|",Token7+1);
Token9=database.indexOf("|",Token8+1);
fields=new Array(11);
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,Token5);
fields[6]=database.substring(Token5+1,Token6);
fields[7]=database.substring(Token6+1,Token7);
fields[8]=database.substring(Token7+1,Token8);
fields[9]=database.substring(Token8+1,Token9);
fields[10]=database.substring(Token9+1,database.length);
if(fields[0]==strID_NUM&&fields[2]==strPRICE&&fields[3]==strNAME&&fields[6]==strADDTLINFO&&fields[7]==strUSERENTRY){
bAlreadyInCart=true;
strQTY=(parseInt(strQUANTITY)+parseInt(fields[1]));
if((strQTY>parseInt(strQTYLIMIT))&&(strQTYLIMIT!=0)){
strQTY=strQTYLIMIT;
alert(strErrLimit+strQTY);}
dbUpdatedOrder=strID_NUM+"|"+strQTY+"|"+strPRICE+"|"+strNAME+"|"+strSHIPPING+"|"+strWEIGHT+"|"+strADDTLINFO+"|"+strUSERENTRY+"|"+strQTYLIMIT+"|"+strFSTAXABLE+"|"+strTAXABLE;
UpdateItemToShoppingCart(dbUpdatedOrder,i);
if (DisplayStyle){
winAlert();
}else{
notice=strAdded+"\n"+"\nQuantity : "+strQUANTITY+"\nProduct  : "+strNAME+"\ - "+strADDTLINFO+' '+strUSERENTRY;
if(DisplayNotice&&notice!='')
alert(notice);

}
break;
}
}
if(!bAlreadyInCart){
iNumberOrdered++;
strQTY=(parseInt(strQUANTITY));
if((strQTY>strQTYLIMIT)&&(strQTYLIMIT!=0))strQTY=strQTYLIMIT;
if((iNumberOrdered>250)||(document.cookie.length>=sccookiel)){
alert(strSorry);
}else{
dbUpdatedOrder=strID_NUM+"|"+strQTY+"|"+strPRICE+"|"+strNAME+"|"+strSHIPPING+"|"+strWEIGHT+"|"+strADDTLINFO+"|"+strUSERENTRY+"|"+strQTYLIMIT+"|"+strFSTAXABLE+"|"+strTAXABLE;
if(AddItemToShoppingCart(dbUpdatedOrder)){
if (DisplayStyle){
winAlert();
}else{
notice=strAdded+"\n"+"\nQuantity : "+strQUANTITY+"\nProduct  : "+strNAME+"\ - "+strADDTLINFO+' '+strUSERENTRY;
if(DisplayNotice&&notice!='')
alert(notice);
}
}
}
}
}



if (!useAdvancedCookie) {
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);
Token4=database.indexOf("|",Token3+1);
Token5=database.indexOf("|",Token4+1);
Token6=database.indexOf("|",Token5+1);
Token7=database.indexOf("|",Token6+1);
Token8=database.indexOf("|",Token7+1);
Token9=database.indexOf("|",Token8+1);
fields=new Array(11);
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,Token5);
fields[6]=database.substring(Token5+1,Token6);
fields[7]=database.substring(Token6+1,Token7);
fields[8]=database.substring(Token7+1,Token8);
fields[9]=database.substring(Token8+1,Token9);
fields[10]=database.substring(Token9+1,database.length);
if(fields[0]==strID_NUM&&fields[2]==strPRICE&&fields[3]==strNAME&&fields[6]==strADDTLINFO&&fields[7]==strUSERENTRY){
bAlreadyInCart=true;
strQTY=(parseInt(strQUANTITY)+parseInt(fields[1]));
if((strQTY>parseInt(strQTYLIMIT))&&(strQTYLIMIT!=0)){
strQTY=strQTYLIMIT;
alert(strErrLimit+strQTY);}

dbUpdatedOrder=strID_NUM+"|"+strQTY+"|"+strPRICE+"|"+strNAME+"|"+strSHIPPING+"|"+strWEIGHT+"|"+strADDTLINFO+"|"+strUSERENTRY+"|"+strQTYLIMIT+"|"+strFSTAXABLE+"|"+strTAXABLE;



         strNewOrder = "Order." + i;
         DeleteCookie(strNewOrder, "/");
         SetCookie(strNewOrder, dbUpdatedOrder, null, "/");



if (DisplayStyle){
winAlert();
}else{
notice=strAdded+"\n"+"\nQuantity : "+strQUANTITY+"\nProduct  : "+strNAME+"\ - "+strADDTLINFO+' '+strUSERENTRY;
if(DisplayNotice&&notice!='')
alert(notice);

}
break;
}
}




   if ( !bAlreadyInCart ) {
      iNumberOrdered++;

strQTY=(parseInt(strQUANTITY));
if((strQTY>strQTYLIMIT)&&(strQTYLIMIT!=0))strQTY=strQTYLIMIT;
if(iNumberOrdered>12){
alert(strSorry);
}else{

dbUpdatedOrder=strID_NUM+"|"+strQTY+"|"+strPRICE+"|"+strNAME+"|"+strSHIPPING+"|"+strWEIGHT+"|"+strADDTLINFO+"|"+strUSERENTRY+"|"+strQTYLIMIT+"|"+strFSTAXABLE+"|"+strTAXABLE;
         strNewOrder = "Order." + iNumberOrdered;
         SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
         WriteCookie("NumberOrdered", iNumberOrdered, null, "/");
if (DisplayStyle){
winAlert();
}else{
notice=strAdded+"\n"+"\nQuantity : "+strQUANTITY+"\nProduct  : "+strNAME+"\ - "+strADDTLINFO+' '+strUSERENTRY;
if(DisplayNotice&&notice!='')
alert(notice);
}
}
}
}



}



//---------------------------------------------------------------------||
// FUNCTION:    winAlert                                               ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Popup window with conformation                         ||
// PURPOSE:     Replaces javascript alert                              ||
//---------------------------------------------------------------------||
function winAlert(){

var strOutput = "";

newWin = window.open('','','status=0,scrollbars=0,height='+theheight+',width='+thewidth+',left='+placeleft+',top='+placetop+'');
	 
genHTML = "<html><head><title>Thank you</title><LINK rel=\"stylesheet\" href=\"../cart/staticcart.css\" type=\"text/css\">";
if(Frames){
genHTML += "<SCRIPT type=\"text/javascript\" language=\"JavaScript\"> function doWin() {	parent.window.open(\"sc-managecart.html\",target=\""+FrameName+"\");	window.close();} </SCRIPT> ";
}

if(!Frames){
genHTML += "<SCRIPT type=\"text/javascript\" language=\"JavaScript\"> function LoadURL(url){opener.location.href=url; window.close();} </SCRIPT> ";
}

genHTML += "</head><body background=\""+WindowBackGroundPath+"\" onBlur=self.focus();>";
genHTML += "<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\" WIDTH=\"100%\" summary=\"Border\" style=\"cursor:default\">";
genHTML += "<TR><TD VALIGN=TOP WIDTH=\"100%\">";
genHTML += "<TABLE BORDER=\"0\" CELLPADDING=\"3\" CELLSPACING=\"0\" WIDTH=\"100%\" summary=\"formatting\"><TR>";
genHTML += "<TD VALIGN=TOP align=center colspan=\"2\"><IMG SRC=\"../cart/images/spacer.gif\" WIDTH=2 HEIGHT=20 ALT=\"Spacer\"><IMG SRC=\""+WindowImagePath+"\" ALT=\"One Family Inc\"><IMG SRC=\"../cart/images/spacer.gif\" WIDTH=2 HEIGHT=20 ALT=\"spacer\">";
genHTML += "</TD></TR><TR><TD>";
genHTML += "<p align=\"center\" class=\"blacktextsm\"><b>The following item has been added to your shopping cart.</b><BR></p>";
genHTML += "<table class=\"blacktextsm\"><tr><td>Item Number:</td><td>"+ strID_NUM +"</td></tr>";
genHTML += "<tr><td>Description:</td><td>"+strNAME +' '+ strADDTLINFO +"</td></tr>";
genHTML += "<tr><td>Quantity ordered:</td><td>"+ strQTY +"</td></tr>";
genHTML += "<tr><td>Unit Price:</td><td>"+ strPRICE +"</td></tr>";
genHTML += "<TR><TD colspan=\"2\"><BR><BR></TD></TR>";
genHTML += "</table>";

genHTML += "<table align=\"center\" BORDER=\"0\">";

genHTML += "<tr><td valign=top><a href=\"javascript:void(0)\" onClick=\"self.close()\"  onmouseover=\"status ='Order placed in Cart'; return true;\">";
genHTML += "<IMG src=\""+WindowCSPath+"\" alt=\"Continue to shop\" width=\"175\" height=\"19\" border=\"0\"></a></td>";
if(Frames){
genHTML += "<td valign=top><FORM NAME=\"bingo\" onClick=\"doWin();\"><img border=\"0\" src=\""+WindowVCPath+"\" name=\"submit\" alt=\"View Shopping Cart\" width=\"97\" height=\"19\" style=\"cursor:hand\"></form></td>";
}
if(!Frames){
genHTML += "<td valign=top> <A HREF=javascript:LoadURL(\"../cart/sc-managecart.html\")> <img border=\"0\" src=\""+WindowVCPath+"\" name=\"submit\" alt=\"View Shopping Cart\" width=\"97\" height=\"19\" style=\"cursor:hand\"></A></td>";
}
genHTML += "</tr></table>";
genHTML += "</td></tr></table>";
genHTML += "</TR></table>";
genHTML += "</body></html>";

notice = "";
 		 newWin.document.write(genHTML);
     newWin.document.close(); 
}


//--------------------End of popup add to cart window --------------||


//---------------------------------------------------------------------||
// 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;
 var DCvalue = DecipherText(document.cookie.substring(offset,endstr));
var newval = (unescape(DCvalue));
return(unescape(DCvalue));
}

//---------------------------------------------------------------------||
// 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 an ENCRIPTED 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 an ENCRIPTED cookie in the users browser        ||
//---------------------------------------------------------------------||

function SetCookie(name,value,expires,path,domain,secure){
if(expires=="ShipExp"){
var cookieDate=new Date();
cookieDate.setTime(cookieDate.getTime()+(expShip*60*1000));
expires=cookieDate;
}
 var ECvalue = EncipherText(value);
document.cookie=name+"="+escape(ECvalue)+((expires)?"; expires="+expires.toGMTString():"")+((path)?"; path="+path:"")+((domain)?"; domain="+domain:"")+((secure)?"; secure":"");
// alert('line 485 cookie name = '+name+'\nValue = '+value+'\nECvalue = '+ECvalue);
}

//---------------------------------------------------------------------||
// 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:    findCookieVal                                          ||
// PARAMETERS:  offset                                                 ||
// RETURNS:     URL unescaped Cookie Value                             ||
// PURPOSE:     Get a specific value from a cookie                     ||
//---------------------------------------------------------------------||

function findCookieVal(offset){
var endstr=document.cookie.indexOf(";",offset);
if(endstr==-1)
endstr=document.cookie.length;
// decode cookie here
return(unescape(document.cookie.substring(offset,endstr)));
}

//---------------------------------------------------------------------||
// FUNCTION:    ReadCookie                                             ||
// PARAMETERS:  Name                                                   ||
// RETURNS:     Value in Cookie                                        ||
// PURPOSE:     Retrieves UN-ENCRIPTED cookie from users browser       ||
//---------------------------------------------------------------------||

function ReadCookie(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(findCookieVal(j));
i=document.cookie.indexOf(" ",i)+1;
if(i==0)break;
}
return(null);
}

//---------------------------------------------------------------------||
// FUNCTION:    WriteCookie                                            ||
// PARAMETERS:  name, value, expiration date, path, domain, security   ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Stores an UN-ENCRIPTED cookie in the users browser     ||
//---------------------------------------------------------------------||

function WriteCookie(name,value,expires,path,domain,secure){
if(expires=="ShipExp"){
var cookieDate=new Date();
cookieDate.setTime(cookieDate.getTime()+(expShip*60*1000));
expires=cookieDate;
}
document.cookie=name+"="+escape(value)+((expires)?"; expires="+expires.toGMTString():"")+((path)?"; path="+path:"")+((domain)?"; domain="+domain:"")+((secure)?"; secure":"");
}

//---------------------------------------------------------------------||
// FUNCTION:    RemoveFromCart                                         ||
// PARAMETERS:  Order Number to Remove                                 ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Removes an item from a users shopping cart             ||
//---------------------------------------------------------------------||

function RemoveFromCart(RemOrder){

if (useAdvancedCookie) {
NumberOrdered=GetShoppingCartCount();
if((RemOrder>0)&&(RemOrder<=NumberOrdered)){
if(confirm(strRemove)){
for(i=RemOrder;i<NumberOrdered;i++){
UpdateItemToShoppingCart(GetShoppingCartItem(i+1),i);
}
DeleteLastItem();
location.href=location.href;
}
}

}
if (!useAdvancedCookie) {
   if ( confirm( strRemove ) ) {
      NumberOrdered = ReadCookie("NumberOrdered");
      for ( i=RemOrder; i < NumberOrdered; i++ ) {
         NewOrder1 = "Order." + (i+1);
         NewOrder2 = "Order." + (i);
         database = GetCookie(NewOrder1);
         SetCookie (NewOrder2, database, null, "/");
      }
      NewOrder = "Order." + NumberOrdered;
      WriteCookie ("NumberOrdered", NumberOrdered-1, null, "/");
      DeleteCookie(NewOrder, "/");
      location.href=location.href;
   }

}
}

//---------------------------------------------------------------------||
// 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 (useAdvancedCookie) {
if(isNaN(NewQuantity)){
alert(strErrQty+Quantity);
}else{
if(NewQuantity<=0){
RemoveFromCart(OrderItem);
location.href=location.href;
return;
}
database=GetShoppingCartItem(OrderItem)
Token0=database.indexOf("|",0);
Token1=database.indexOf("|",Token0+1);
Token2=database.indexOf("|",Token1+1);
Token3=database.indexOf("|",Token2+1);
Token4=database.indexOf("|",Token3+1);
Token5=database.indexOf("|",Token4+1);
Token6=database.indexOf("|",Token5+1);
Token7=database.indexOf("|",Token6+1);
Token8=database.indexOf("|",Token7+1);
Token9=database.indexOf("|",Token8+1);
fields=new Array(11);
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,Token5);
fields[6]=database.substring(Token5+1,Token6);
fields[7]=database.substring(Token6+1,Token7);
fields[8]=database.substring(Token7+1,Token8);
fields[9]=database.substring(Token8+1,Token9);
fields[10]=database.substring(Token9+1,database.length);
strQTYLIMIT=(parseInt(fields[8]));
if((NewQuantity>strQTYLIMIT)&&(strQTYLIMIT!=0))NewQuantity=strQTYLIMIT;
dbUpdatedOrder=fields[0]+"|"+NewQuantity+"|"+fields[2]+"|"+fields[3]+"|"+fields[4]+"|"+fields[5]+"|"+fields[6]+"|"+fields[7]+"|"+fields[8]+"|"+fields[9]+"|"+fields[10];
UpdateItemToShoppingCart(dbUpdatedOrder,OrderItem);
location.href=location.href;
}
}
if (!useAdvancedCookie) {
   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);
Token5=database.indexOf("|",Token4+1);
Token6=database.indexOf("|",Token5+1);
Token7=database.indexOf("|",Token6+1);
Token8=database.indexOf("|",Token7+1);
Token9=database.indexOf("|",Token8+1);
fields=new Array(11);
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,Token5);
fields[6]=database.substring(Token5+1,Token6);
fields[7]=database.substring(Token6+1,Token7);
fields[8]=database.substring(Token7+1,Token8);
fields[9]=database.substring(Token8+1,Token9);
fields[10]=database.substring(Token9+1,database.length);
strQTYLIMIT=(parseInt(fields[8]));
if((NewQuantity>strQTYLIMIT)&&(strQTYLIMIT!=0))NewQuantity=strQTYLIMIT;
dbUpdatedOrder=fields[0]+"|"+NewQuantity+"|"+fields[2]+"|"+fields[3]+"|"+fields[4]+"|"+fields[5]+"|"+fields[6]+"|"+fields[7]+"|"+fields[8]+"|"+fields[9]+"|"+fields[10];
      strNewOrder = "Order." + OrderItem;
      DeleteCookie(strNewOrder, "/");
      SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
      location.href=location.href;      
   }

}




}

//---------------------------------------------------------------------||
// FUNCTION:    ChangeShipping                                         ||
// PARAMETERS:  Cookie name, value                                     ||
// RETURNS:     New value to Shipping method                           ||
// PURPOSE:     Transfer shipping method to checkout                   ||
//---------------------------------------------------------------------||

function ChangeShipping(NewShipping){
DeleteCookie("ShippingMeth");
WriteCookie("ShippingMeth",NewShipping,"ShipExp","/");
location.href=location.href;
}

//---------------------------------------------------------------------||
// FUNCTION:    RadioChecked                                           ||
// PARAMETERS:  Radio button to check                                  ||
// RETURNS:     True if a radio has been checked                       ||
// PURPOSE:     Form fillin validation                                 ||
//---------------------------------------------------------------------||

function RadioChecked(radiobutton){
var bChecked=false;
var rlen=radiobutton.length;
for(i=0;i<rlen;i++){
if(radiobutton[i].checked)
bChecked=true;
}
return bChecked;
}

//---------------------------------------------------------------------||
// FUNCTION:    QueryString                                            ||
// PARAMETERS:  Key to read                                            ||
// RETURNS:     value of key                                           ||
// PURPOSE:     Read data passed in via GET mode                       ||
//---------------------------------------------------------------------||

QueryString.keys=new Array();
QueryString.values=new Array();
function QueryString(key){
var value=null;
for(var i=0;i<QueryString.keys.length;i++){
if(QueryString.keys[i]==key){
value=QueryString.values[i];
break;
}
}
return value;
}

//---------------------------------------------------------------------||
// FUNCTION:    QueryString_Parse                                      ||
// PARAMETERS:  (URL string)                                           ||
// RETURNS:     null                                                   ||
// PURPOSE:     Parses query string data, must be called before Q.S.   ||
//---------------------------------------------------------------------||

function QueryString_Parse(){
var query=window.location.search.substring(1);
var pairs=query.split("&");for(var i=0;i<pairs.length;i++){
var pos=pairs[i].indexOf('=');
if(pos>=0){
var argname=pairs[i].substring(0,pos);
var value=pairs[i].substring(pos+1);
QueryString.keys[QueryString.keys.length]=argname;
QueryString.values[QueryString.values.length]=value;
}
}
}

//---------------------------------------------------------------------||
// FUNCTION:    ManageCart                                             ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     Product Table Written to Document                      ||
// PURPOSE:     Draws current cart product table on HTML page          ||
//---------------------------------------------------------------------||

function ManageCart(){
var iNumberOrdered=0;
var fTotal=0;
var fProdttl=0;
var fFst=0;
var fTax=0;
var fFstTaxable=0;
var fTaxTaxable=0;
var fShipTax=0;
var fShipFst=0;
var fTax2=0;
var fShipping=BaseShipping;
var fWeight=0;
var fItems=0;
var fShipLevelcost = 0;
//var LocationSelected=99;
//var LocationLabel="";
var TotWeight=0;
var strWeight="";
var strTotal="";
var strFst="";
var strTax="";
var strTax2="";
var strShipping="";
var strMethod="";
var strOutput="";
var bDisplay=true;
strSHIPTAX='TAX ON SHIPPING';

if (useAdvancedCookie) {
iNumberOrdered=GetShoppingCartCount();
}
if (!useAdvancedCookie) {
   iNumberOrdered = ReadCookie("NumberOrdered");
}


if(iNumberOrdered==null)
iNumberOrdered=0;
shipMethod=ReadCookie('ShippingMeth');
if(shipMethod==null){
shipMethod="select";
WriteCookie("ShippingMeth",'select',"ShipExp","/");
}
//SetCookie ('GiftCoupon','z0|0|0|0', null, '/');

if(bDisplay)
Borders=0;
if(DisplayBorders)Borders=1;
strBorders=Borders;
strOutput="<TABLE CELLSPACING=0 CELLPADDING=3 BORDER="+strBorders+" CLASS=\"sccart\"><TR>"+
(DisplayItemColumn?"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strILabel+"</B></TD>":"")+
"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strDLabel+"</B></TD>"+
"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strQLabel+"</B></TD>"+
(DisplayPriceColumn?"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strPLabel+"</B></TD>":"")+
(DisplayShippingColumn?"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strSLabel+"</B></TD>":"")+
"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strRLabel+"</B></TD>"+
(DisplayExtentedColumn?"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strXLabel+"</B></TD>":"")+
"</TR>";
var data=/^\D{5}\d{15}$/;
strWrong="Sorry, Invalid License Number Entered";
if(ldata.search(data)==-1){
strOutput+="<TR><TD COLSPAN=7 CLASS=\"scentry\"><CENTER><BR><BR><BR><BR><B>"+strWrong+"</B><BR><BR><BR><BR><BR><BR><BR><BR><BR></CENTER></TD></TR>";
document.write(strOutput);
document.close();
return false;
}
if(iNumberOrdered==0){
strOutput+="<TR><TD COLSPAN=7 CLASS=\"scentry\"><CENTER><BR><B>"+strELabel+"</B><BR><BR></CENTER></TD></TR>";
fTotal=0;
fShipping=0;
fFst=0;
fTax=0;
}
for(i=1;i<=iNumberOrdered;i++){
even=Math.round(i/2);

if (useAdvancedCookie) {
database=GetShoppingCartItem(i);
}
if (!useAdvancedCookie) {
      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);
Token4=database.indexOf("|",Token3+1);
Token5=database.indexOf("|",Token4+1);
Token6=database.indexOf("|",Token5+1);
Token7=database.indexOf("|",Token6+1);
Token8=database.indexOf("|",Token7+1);
Token9=database.indexOf("|",Token8+1);
fields=new Array(11);
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,Token5);
fields[6]=database.substring(Token5+1,Token6);
fields[7]=database.substring(Token6+1,Token7);
fields[8]=database.substring(Token7+1,Token8);
fields[9]=database.substring(Token8+1,Token9);
fields[10]=database.substring(Token9+1,database.length);
fProdttl=(parseInt(fields[1])*parseFloat(fields[2]));
fTotal+=fProdttl;
fPercent=(fTotal*PercentShipping);
fShipping+=fPercent;
fShipping+=(parseInt(fields[1])*parseFloat(fields[4]));
fItems+=parseInt(fields[1]);
fWeight+=(parseInt(fields[1])*parseFloat(fields[5]));
fWeight=Math.round(fWeight*100)/100;
if(fields[9]!=false){fFst+=(fProdttl*FstRate);}
if(fields[10]!=false){fTax+=(fProdttl*TaxRate);}
if(fields[9]!=false){fFstTaxable+=(fProdttl*1);}
if(fields[10]!=false){fTaxTaxable+=(fProdttl*1);}
strTotal=moneyFormat(fTotal);
strTax=moneyFormat(fTax);
strShipping=moneyFormat(fShipping);
strWeight=fWeight;
if(bDisplay){
if((even)==(i/2)){
strCartClass="sceven";
}else{
strCartClass="scentry";
}
if(DisplayItemColumn){
if(DisplayIdLink){
strOutput+="<TR><TD CLASS=\""+strCartClass+"\" ALIGN=CENTER><a href="+fields[0]+".html>"+fields[0]+"</a></TD>";
}else{
strOutput+="<TR><TD CLASS=\""+strCartClass+"\" ALIGN=CENTER>"+fields[0]+"</TD>";
}
}
/* Customized for USERENTRY 03-15-06
if((fields[6]!="")||(fields[7]!="")){
strOutput+="<TD CLASS=\""+strCartClass+"\">"+fields[3]+" - <I>"+fields[6]+"  "+fields[7]+"</I></TD>";
}else{
strOutput+="<TD CLASS=\""+strCartClass+"\">"+fields[3]+"</TD>";
}
*/
if(fields[6]!=""){
strOutput+="<TD CLASS=\""+strCartClass+"\">"+fields[3]+" - <I>"+fields[6]+"</I></TD>";
}else{
strOutput+="<TD CLASS=\""+strCartClass+"\">"+fields[3]+"</TD>";
}
//---------END 
if(DisplayChangeQty){
strOutput+="<TD CLASS=\""+strCartClass+"\"ALIGN=CENTER><A style=\"text-decoration: none\" HREF=\"javascript: ChangeQuantity("+i+", (("+fields[1]+")-1));\"><b>&nbsp;-&nbsp;</b></a><INPUT TYPE=TEXT CLASS=checkoutinput NAME=Q SIZE=1 VALUE=\""+fields[1]+"\" onChange=\"ChangeQuantity("+i+", this.value);\"><A style=\"text-decoration: none\" HREF=\"javascript: ChangeQuantity("+i+", (("+fields[1]+")+1));\"><b>&nbsp;+&nbsp;</b></a></TD>";
}else{
strOutput+="<TD CLASS=\""+strCartClass+"\" ALIGN=CENTER>"+fields[1]+"</TD>";
}
if(DisplayPriceColumn)
//strOutput+="<TD CLASS=\""+strCartClass+"\"ALIGN=CENTER>"+MonetarySymbol+moneyFormat(fields[2])+"/ea</TD>";
strOutput+="<TD CLASS=\""+strCartClass+"\"ALIGN=CENTER>"+MonetarySymbol+moneyFormat(fields[2])+"</TD>";
if(DisplayShippingColumn){
if(parseFloat(fields[4])>0){
strOutput+="<TD CLASS=\""+strCartClass+"\"ALIGN=CENTER>"+MonetarySymbol+moneyFormat(fields[4])+"/ea</TD>";
}else{
strOutput+="<TD CLASS=\""+strCartClass+"\"ALIGN=CENTER>N/A</TD>";
}
}
if(DisplayRemoveImage){
if(RemoveImageType=="image")
strOutput+="<TD CLASS=\""+strCartClass+"\" ALIGN=CENTER><A HREF=\"javascript: RemoveFromCart("+i+")\"><image src=\" "+RemoveImagePath+" \" border=\"0\"></a></TD>";
if(RemoveImageType=="box")
strOutput+="<TD CLASS=\""+strCartClass+"\" ALIGN=CENTER><INPUT TYPE=\"Checkbox\" NAME=\"\" onClick=\"RemoveFromCart("+i+")\"></TD>";
}
if(!DisplayRemoveImage){
strOutput+="<TD CLASS=\""+strCartClass+"\" ALIGN=CENTER><input type=button value=\" "+strRButton+" \" onClick=\"RemoveFromCart("+i+")\" class=\"scbutton\"></TD>";
}
}
if(DisplayExtentedColumn){
strOutput+="<TD CLASS=\""+strCartClass+"\" ALIGN=RIGHT><B>"+MonetarySymbol+moneyFormat(parseInt(fields[1])*parseFloat(fields[2]))+"</B></TD>";
}
strOutput+="</TR>";
if(AppendItemNumToOutput){
strFooter=i;
}else{
strFooter="";
}
if(HiddenFieldsToCheckout){
//strOutput+="<input type=hidden name=\""+OutputItemId+strFooter+"\" value=\""+fields[0]+"\">";
//strOutput+="<input type=hidden name=\""+OutputItemQuantity+strFooter+"\" value=\""+fields[1]+"\">";
//strOutput+="<input type=hidden name=\""+OutputItemPrice+strFooter+"\" value=\""+fields[2]+"\">";
//strOutput+="<input type=hidden name=\""+OutputItemXtend+strFooter+"\" value=\""+(parseInt(fields[1])*parseFloat(fields[2]))+"\">";
//strOutput+="<input type=hidden name=\""+OutputItemName+strFooter+"\" value=\""+fields[3]+"\">";
//strOutput+="<input type=hidden name=\""+OutputItemShipping+strFooter+"\" value=\""+fields[4]+"\">";
//strOutput+="<input type=hidden name=\""+OutputItemWeight+strFooter+"\" value=\""+fields[5]+"\">";
//strOutput+="<input type=hidden name=\""+OutputItemAddtlInfo+strFooter+"\" value=\""+fields[6]+"\">";

//strOutput+="<input type=hidden name=\""+OutputItemUserEntry+strFooter+"\" value=\""+fields[7]+"\">";
//strOutput+="<input type=hidden name=\""+OutputItemQtyLimit+strFooter+"\" value=\""+fields[8]+"\">";
//strOutput+="<input type=hidden name=\""+OutputItemFST+strFooter+"\" value=\""+fields[9]+"\">";
//strOutput+="<input type=hidden name=\""+OutputItemTaxable+strFooter+"\" value=\""+fields[10]+"\">";

}
}


shipMethod=ReadCookie('ShippingMeth');

if(shipMethod==null){
shipMethod="select";
WriteCookie("ShippingMeth",'select',"ShipExp","/");
if(shipMethod=="level6")
shipMethod="level6";
WriteCookie("ShippingMeth",'level6',"ShipExp","/");
if(shipMethod=="level5")
shipMethod="level5";
WriteCookie("ShippingMeth",'level5',"ShipExp","/");
if(shipMethod=="level4")
shipMethod="level4";
WriteCookie("ShippingMeth",'level4',"ShipExp","/");

if(shipMethod=="level3")
shipMethod="level3";
WriteCookie("ShippingMeth",'level3',"ShipExp","/");
if(shipMethod=="level2")
shipMethod="level2";
WriteCookie("ShippingMeth",'level2',"ShipExp","/");
if(shipMethod=="level1")
shipMethod="level1";
WriteCookie("ShippingMeth",'level1',"ShipExp","/");
}
level6netcost =(ShipRateLevel6+(WeightRateLevel6*fWeight)+fShipping);
level6Fst     =(level6netcost*ShippingFstRate);
level6Tax     =(level6netcost*ShippingTaxRate);
level5netcost =(ShipRateLevel5+(WeightRateLevel5*fWeight)+fShipping);
level5Fst     =(level5netcost*ShippingFstRate);
level5Tax     =(level5netcost*ShippingTaxRate);
level4netcost =(ShipRateLevel4+(WeightRateLevel4*fWeight)+fShipping);
level4Fst     =(level4netcost*ShippingFstRate);
level4Tax     =(level4netcost*ShippingTaxRate);

level3netcost =(ShipRateLevel3+(WeightRateLevel3*fWeight)+fShipping);
level3Fst     =(level3netcost*ShippingFstRate);
level3Tax     =(level3netcost*ShippingTaxRate);
level2netcost =(ShipRateLevel2+(WeightRateLevel2*fWeight)+fShipping);
level2Fst     =(level2netcost*ShippingFstRate);
level2Tax     =(level2netcost*ShippingTaxRate);
level1netcost =(ShipRateLevel1+(WeightRateLevel1*fWeight)+fShipping);
level1Fst     =(level1netcost*ShippingFstRate);
level1Tax     =(level1netcost*ShippingTaxRate);

level6cost=level6netcost;
level5cost=level5netcost;
level4cost=level4netcost;

level3cost=level3netcost;
level2cost=level2netcost;
level1cost=level1netcost;

		if (FstShipFlag){
		level6cost += level6Fst;
		level5cost += level5Fst;
		level4cost += level4Fst;

		level3cost += level3Fst;
		level2cost += level2Fst;
		level1cost += level1Fst;
		}
		
		if (TaxShipFlag){
		level6cost += level6Tax;
		level5cost += level5Tax;
		level4cost += level4Tax;

		level3cost += level3Tax;
		level2cost += level2Tax;
		level1cost += level1Tax;
		}




if(fTotal==0||fTotal==null){
level6cost=0;
level5cost=0;
level4cost=0;

level3cost=0;
level2cost=0;
level1cost=0;
}
strlevel6costTEXT=MonetarySymbol+moneyFormat(level6cost);
strlevel5costTEXT=MonetarySymbol+moneyFormat(level5cost);
strlevel4costTEXT=MonetarySymbol+moneyFormat(level4cost);

strlevel3costTEXT=MonetarySymbol+moneyFormat(level3cost);
strlevel2costTEXT=MonetarySymbol+moneyFormat(level2cost);
strlevel1costTEXT=MonetarySymbol+moneyFormat(level1cost);

			// --------------------- Apply Discount Coupon here -----------------------------||

fTotalBeforeDiscount= fTotal;
strITotal = moneyFormat(fTotalBeforeDiscount);

			DiscountOnTotal = ApplyDiscount(fTotal);
		if (strCouponType == "S"){
				if(fTotalBeforeDiscount >= DiscountOnTotal ){
					DiscountOnTotal = 0;
					level3cost      = 0;
					level3Fst       = 0;
					level3Tax       = 0;
					level3netcost   = 0;
					strlevel3costTEXT="Free";
				} else {
					DiscountOnTotal = 0;
				}
		} else {
		if (strCouponType != "G"){
				TaxDiscount   = (DiscountOnTotal * TaxRate);
				FstDiscount   = (DiscountOnTotal * FstRate);
				fTotal -= DiscountOnTotal;
				fTax   -= TaxDiscount;
				fFst   -= FstDiscount;
				if (fTax <0) fTax = 0;
				if (fFst <0) fFst = 0;
				if (fTotal <0 && strCouponType != "G") fTotal = 0;
				}
		}
			fATax       = fFst + fTax;	
      strTotal    = moneyFormat(fTotal);
      strFst      = moneyFormat(fFst);
      strTax      = moneyFormat(fTax);
      strATax     = moneyFormat(fATax);
	// end part 1 of discount mod		


BaseCol=1;
ICol=0;
PCol=0;
ECol=0;
SCol=0;
if(DisplayItemColumn)ICol=1;
if(DisplayPriceColumn)PCol=1;
if(DisplayExtentedColumn)ECol=1;
if(DisplayShippingColumn)SCol=1;
strColA=(BaseCol+(ICol+PCol+ECol+SCol)+1);
strColB=(BaseCol+(ICol+PCol+ECol+SCol));
strColC=(BaseCol+(ICol+PCol+ECol+SCol)-1);
strColD=(BaseCol+(ICol+PCol+ECol+SCol)+2);
if(bDisplay){
var ldomain=document.domain;
strOutput+="<TR><TD CLASS=\"scheader\" COLSPAN=7><IMG SRC=\"http://staticcart.net/license/one.gif?licence="+ldata+"&domain="+ldomain+"\" WIDTH=1 HEIGHT=1 ALT=\"Space\"></TD></TR>";
if(DisplaySetup){
strOutput+="<TR><TD CLASS=\"sctotal\" ALIGN=CENTER COLSPAN="+strColD+"><FONT COLOR=\"RED\"><B>CART IS IN SET-UP MODE</B></FONT></TD></TR>";
}
if(DisplaySetup){
strOutput+="<TR><TD CLASS=\"scsetup\" ROWSPAN=\"2\"  COLSPAN=\" "+(strColA-2)+"\"><B>TAXABLE SUBTOTAL</B></TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=2>GST Taxable Amount </TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fFstTaxable)+"</B></TD>";
strOutput+="</TR>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=2>State Taxable Amount </TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fTaxTaxable)+"</B></TD>";
strOutput+="</TR>";
}
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strISUB+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fTotalBeforeDiscount)+"</B></TD>";
strOutput+="</TR>";

// start part 2 of Discount mod
// Don't display Discount Row if Discount is zero
			if (DiscountOnTotal >0 ){
      strOutput += "<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strDisCount+"</B> </TD>"; 
      strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B><FONT color=\"#FF0000\"> " +MonetarySymbol+moneyFormat(DiscountOnTotal)+ "</FONT></B></TD>"; 
      strOutput += "</TR>";
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strSUB+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fTotal)+"</B></TD>";
strOutput+="</TR>";
     }
// --------------------- end mod Discount Coupon here -----------------------------||

if(DisplaySetup){
strOutput+="<TR><TD CLASS=\"scsetup\" ROWSPAN=\"2\"  COLSPAN=\" "+(strColA-3)+"\"><B>TAX ON SUBTOTAL</B></TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=2>FstRate = "+FstRate+"</TD><TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=\"1\">GST:</TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fFst)+"</B></TD>";
strOutput+="</TR>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=2>TaxRate = "+TaxRate+"</TD><TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=\"1\">State Tax:</TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fTax)+"</B></TD>";
strOutput+="</TR>";
}
if(ComputeShipping){
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN=1><B>"+strSHIP+"</B></TD>";
if (useLEVEL == 6){
strOutput+="<TD CLASS=\"sctotal\" COLSPAN="+strColB+">"+
"<SELECT name=shipMethod class=checkoutinput onChange=\"ChangeShipping(this.options[this.selectedIndex].value)\">"+
"<OPTION VALUE=select "+(shipMethod=="select"?' SELECTED':'')+"selected>Select Shipping Method</OPTION>"+
"<OPTION VALUE=level6"+(shipMethod=="level6"?' SELECTED':'')+">("+strlevel6costTEXT+")----"+strLevel6TEXT+"</OPTION>"+
"<OPTION VALUE=level5"+(shipMethod=="level5"?' SELECTED':'')+">("+strlevel5costTEXT+")----"+strLevel5TEXT+"</OPTION>"+
"<OPTION VALUE=level4"+(shipMethod=="level4"?' SELECTED':'')+">("+strlevel4costTEXT+")----"+strLevel4TEXT+"</OPTION>"+
"<OPTION VALUE=level3"+(shipMethod=="level3"?' SELECTED':'')+">("+strlevel3costTEXT+")----"+strLevel3TEXT+"</OPTION>"+
"<OPTION VALUE=level2"+(shipMethod=="level2"?' SELECTED':'')+">("+strlevel2costTEXT+")----"+strLevel2TEXT+"</OPTION>"+
"<OPTION VALUE=level1"+(shipMethod=="level1"?' SELECTED':'')+">("+strlevel1costTEXT+")----"+strLevel1TEXT+"</OPTION>"+
"</SELECT></TD>";
}
if (useLEVEL == 5){
strOutput+="<TD CLASS=\"sctotal\" COLSPAN="+strColB+">"+
"<SELECT name=shipMethod class=checkoutinput onChange=\"ChangeShipping(this.options[this.selectedIndex].value)\">"+
"<OPTION VALUE=select "+(shipMethod=="select"?' SELECTED':'')+"selected>Select Shipping Method</OPTION>"+
"<OPTION VALUE=level5"+(shipMethod=="level5"?' SELECTED':'')+">("+strlevel5costTEXT+")----"+strLevel5TEXT+"</OPTION>"+
"<OPTION VALUE=level4"+(shipMethod=="level4"?' SELECTED':'')+">("+strlevel4costTEXT+")----"+strLevel4TEXT+"</OPTION>"+
"<OPTION VALUE=level3"+(shipMethod=="level3"?' SELECTED':'')+">("+strlevel3costTEXT+")----"+strLevel3TEXT+"</OPTION>"+
"<OPTION VALUE=level2"+(shipMethod=="level2"?' SELECTED':'')+">("+strlevel2costTEXT+")----"+strLevel2TEXT+"</OPTION>"+
"<OPTION VALUE=level1"+(shipMethod=="level1"?' SELECTED':'')+">("+strlevel1costTEXT+")----"+strLevel1TEXT+"</OPTION>"+
"</SELECT></TD>";
}
if (useLEVEL == 4){
strOutput+="<TD CLASS=\"sctotal\" COLSPAN="+strColB+">"+
"<SELECT name=shipMethod class=checkoutinput onChange=\"ChangeShipping(this.options[this.selectedIndex].value)\">"+
"<OPTION VALUE=select "+(shipMethod=="select"?' SELECTED':'')+"selected>Select Shipping Method</OPTION>"+
"<OPTION VALUE=level4"+(shipMethod=="level4"?' SELECTED':'')+">("+strlevel4costTEXT+")----"+strLevel4TEXT+"</OPTION>"+
"<OPTION VALUE=level3"+(shipMethod=="level3"?' SELECTED':'')+">("+strlevel3costTEXT+")----"+strLevel3TEXT+"</OPTION>"+
"<OPTION VALUE=level2"+(shipMethod=="level2"?' SELECTED':'')+">("+strlevel2costTEXT+")----"+strLevel2TEXT+"</OPTION>"+
"<OPTION VALUE=level1"+(shipMethod=="level1"?' SELECTED':'')+">("+strlevel1costTEXT+")----"+strLevel1TEXT+"</OPTION>"+
"</SELECT></TD>";
}
if (useLEVEL == 3){
strOutput+="<TD CLASS=\"sctotal\" COLSPAN="+strColB+">"+
"<SELECT name=shipMethod class=checkoutinput onChange=\"ChangeShipping(this.options[this.selectedIndex].value)\">"+
"<OPTION VALUE=select "+(shipMethod=="select"?' SELECTED':'')+"selected>Select Shipping Method</OPTION>"+
"<OPTION VALUE=level3"+(shipMethod=="level3"?' SELECTED':'')+">("+strlevel3costTEXT+")----"+strLevel3TEXT+"</OPTION>"+
"<OPTION VALUE=level2"+(shipMethod=="level2"?' SELECTED':'')+">("+strlevel2costTEXT+")----"+strLevel2TEXT+"</OPTION>"+
"<OPTION VALUE=level1"+(shipMethod=="level1"?' SELECTED':'')+">("+strlevel1costTEXT+")----"+strLevel1TEXT+"</OPTION>"+
"</SELECT></TD>";
}
if (useLEVEL == 2){
strOutput+="<TD CLASS=\"sctotal\" COLSPAN="+strColB+">"+
"<SELECT name=shipMethod class=checkoutinput onChange=\"ChangeShipping(this.options[this.selectedIndex].value)\">"+
"<OPTION VALUE=select "+(shipMethod=="select"?' SELECTED':'')+"selected>Select Shipping Method</OPTION>"+
"<OPTION VALUE=level2"+(shipMethod=="level2"?' SELECTED':'')+">("+strlevel2costTEXT+")----"+strLevel2TEXT+"</OPTION>"+
"<OPTION VALUE=level1"+(shipMethod=="level1"?' SELECTED':'')+">("+strlevel1costTEXT+")----"+strLevel1TEXT+"</OPTION>"+
"</SELECT></TD>";
}

fShipLevelcost = 0;
if(shipMethod=="select"){
fShipping=0;
fShipLevelcost = 0;
WriteCookie("ShippingMeth",'select',"ShipExp","/");
}
if(shipMethod=="level6"){
fShipping=(parseFloat(level6cost));
fShipLevelcost = level6netcost;
WriteCookie("ShippingMeth",'level6',"ShipExp","/");
}
if(shipMethod=="level5"){
fShipping=(parseFloat(level5cost));
fShipLevelcost = level5netcost;
WriteCookie("ShippingMeth",'level5',"ShipExp","/");
}
if(shipMethod=="level4"){
fShipping=(parseFloat(level4cost));
fShipLevelcost = level4netcost;
WriteCookie("ShippingMeth",'level4',"ShipExp","/");
}

if(shipMethod=="level3"){
fShipping=(parseFloat(level3cost));
fShipLevelcost = level3netcost;
WriteCookie("ShippingMeth",'level3',"ShipExp","/");
}
if(shipMethod=="level2"){
fShipping=(parseFloat(level2cost));
fShipLevelcost = level2netcost;
WriteCookie("ShippingMeth",'level2',"ShipExp","/");
}
if(shipMethod=="level1"){
fShipping=(parseFloat(level1cost));
fShipLevelcost = level1netcost;
WriteCookie("ShippingMeth",'level1',"ShipExp","/");
}

if(fTotalBeforeDiscount==0||fTotal==null){
fShipping=0;
}
strShipping=moneyFormat(fShipping);

strMethod=shipMethod;
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+strShipping+"</B></TD>";
strOutput+="</TR>";
}
if(ComputeShipping){
DisplayShippingRow=false;
}
if(DisplayShippingRow){
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strSHIP+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+strShipping+"</B></TD>";
strOutput+="</TR>";
}

if(ShippingFstRate>0){
fShipFst=(fShipLevelcost*ShippingFstRate);
}
if(ShippingTaxRate>0){
fShipTax=(fShipLevelcost*ShippingTaxRate);
}

if(DisplaySetup){

strOutput+="<TR><TD CLASS=\"scsetup\" ROWSPAN=\"2\"  COLSPAN=\" "+(strColA-3)+"\"><B>"+strSHIPTAX+"</B></TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=2>ShippingFstRate = "+ShippingFstRate+"</TD><TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=\"1\">GST:</TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fShipFst)+"</B></TD>";
strOutput+="</TR>";
strOutput+="<TR><TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=2>ShippingTaxRate = "+ShippingTaxRate+"</TD><TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=\"1\">State Tax:</TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fShipTax)+"</B></TD>";
strOutput+="</TR>";
strOutput+="<TR><TD CLASS=\"scsetup\" COLSPAN=\" "+(strColA+1)+"\"></TD></TR>";

strOutput+="<TR><TD CLASS=\"scsetup\" ROWSPAN=\"2\"  COLSPAN=\" "+(strColA-3)+"\"><B>SHIPPING COST</B></TD>";

	if (FstShipFlag){
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=2><B>"+MonetarySymbol+moneyFormat(fShipLevelcost)+"</B> plus GST on shipping</TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1>"+MonetarySymbol+moneyFormat(fShipFst)+"</TD>";
//strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1></TD></TR>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT ROWSPAN=\"2\" COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fShipping)+"</B></TD></TR>";
	}else{
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=3>GST on shipping added to GST Row</TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT ROWSPAN=\"2\" COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fShipping)+"</B></TD></TR>";
	fFst += fShipFst;
	}
	if (TaxShipFlag){
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=2><B>"+MonetarySymbol+moneyFormat(fShipLevelcost)+"</B> plus State Tax on shipping</TD>";
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1>"+MonetarySymbol+moneyFormat(fShipTax)+"</TD>";
//strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1><B>"+moneyFormat(fShipping)+"</B></TD></TR>";

	}else{
strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=3>State Tax on shipping added to TAX Row</span> </TD>";
	fTax += fShipTax;
	}
//strOutput+="<TD CLASS=\"scsetup\" ALIGN=RIGHT COLSPAN=1><B>"+moneyFormat(fShipping)+"</B></TD></TR>";

}

fATax=fTax+fFst;
strATax=moneyFormat(fATax);
strFst=moneyFormat(fFst);
strTax=moneyFormat(fTax);
sPST  = strTax;  // put Tax in a global variable
sFST  = strFst;  // put Fst in a global variable
sFAT  = strATax;  // put FAT in a global variable
if(FstRate>0){
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strFST+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+strFst+"</B></TD>";
strOutput+="</TR>";
}
TaxSelected = 0;
if(DisplayTaxRow){
if(TaxByRegion){
// start of 2 or 3 Radio Button Tax mod
if(FstRate>0){
// 3 Buttons: in State - Out of State - Out of Country
// PST row

strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strTAX+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+strTax+"</B></TD>";
strOutput+="</TR>";
// end PST Row

strOutput+="<TR><TD CLASS=\"sceven\" COLSPAN="+strColC+" ROWSPAN=3><B>"+strATAX+"</B></TD>";
strOutput+="<TD CLASS=\"sceven\" COLSPAN=2><B>";
strOutput+="<input type=radio name=\"TAX\" value=\""+strATax+"\" onClick=\"TaxSelected=1\">";
strOutput+=TaxablePrompt+":</B></TD>";
strOutput+="<TD CLASS=\"sceven\" ALIGN=RIGHT COLSPAN=1><B> "+MonetarySymbol+strATax+"</B></TD></TR>";


strOutput+="<TR><TD CLASS=\"sceven\" COLSPAN=2><B>";
strOutput+="<input type=radio name=\"TAX\" value=\""+strFst+"\" onClick=\"TaxSelected=2\">";
strOutput+=NonTaxablePrompt+":</B></TD>";
strOutput+="<TD CLASS=\"sceven\" ALIGN=RIGHT COLSPAN=1><B> "+MonetarySymbol+strFst+"</B></TD></TR>";

strOutput+="<TR><TD CLASS=\"sceven\" COLSPAN=2><B>";
strOutput+="<input type=radio name=\"TAX\" value=\""+moneyFormat(0)+"\" onClick=\"TaxSelected=1\">";
strOutput+=NonTaxablePrompt2+":</B></TD>";
strOutput+="<TD CLASS=\"sceven\" ALIGN=RIGHT COLSPAN=1><B> "+MonetarySymbol+moneyFormat(0)+"</B></TD></TR>";

}else{

// 2 Buttons: in State - Out of State
strOutput+="<TR><TD CLASS=\"sceven\" COLSPAN="+strColC+" ROWSPAN=2><B>"+strTAX+"</B></TD>";
strOutput+="<TD CLASS=\"sceven\" COLSPAN=2><B>";
strOutput+="<input type=radio name=\""+OutputOrderTax+"\" value=\""+strATax+"\" onClick=\"TaxSelected=1\">";
strOutput+=TaxablePrompt+":</B></TD>";
strOutput+="<TD CLASS=\"sceven\" ALIGN=RIGHT COLSPAN=1><B> "+MonetarySymbol+strTax+"</B></TD></TR>";
strOutput+="<TR><TD CLASS=\"sceven\" COLSPAN=2><B>";
strOutput+="<input type=radio name=\""+OutputOrderTax+"\" value=\""+moneyFormat(0)+"\" onClick=\"TaxSelected=1\">";
strOutput+=NonTaxablePrompt+":</B></TD>";
strOutput+="<TD CLASS=\"sceven\" ALIGN=RIGHT COLSPAN=1><B> "+MonetarySymbol+moneyFormat(0)+"</B></TD></TR>";
	}
}
// end of 2 button tax mod


if(!TaxByRegion){
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strTAX+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+strTax+"</B></TD>";
strOutput+="</TR>";
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strTOT+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat((fTotal+fShipping+fATax))+"</B></TD>";
strOutput+="</TR>";
}
}
/*
if(!DisplayTaxRow){
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strTOT+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat((fTotal+fShipping+fATax))+"</B></TD>";
strOutput+="</TR>";
}
*/
// DiscountCoupon serial number input
if(DisplayCoupons){
// active only when no coupon has been applied
if ((strCouponType == 'Z')||(strCouponType == 'z')){
strOutput+="<TR><TD CLASS=\"scheader\" COLSPAN="+(strColA-3)+"><B>"+strCOUP+"</B></FONT></TD>";
strOutput+="<TD CLASS=\"scheader\" colSpan=2><INPUT maxLength=\"16\" size=\"30\" name=\"coupon\"></TD><TD CLASS=\"scheader\" ALIGN='CENTER' colSpan=2><input type=\"button\" value=\""+strCOUPBUT+"\"  class=\"scbutton\" onClick=\"location.href ='fetch_coupon.php?coupon='+document.form.coupon.value;\"></TD></TR>";
}
}
strOutput+="<TR><TD CLASS=\"sctotal\" ALIGN=LEFT COLSPAN="+strColD+">"+strComment+"</TD></TR>";
strOutput+="</TABLE>";
if(HiddenFieldsToCheckout){

			strCouponString = ReadCookie('GiftCoupon');
if (strCouponString == null) {
code = "Z0";
PubName = 0;
cType = 0;
Redeemed = 0;
strCouponString = EncipherText(code + "|" + PubName + "|" + cType + "|" + Redeemed);
}


			strTaxString = ReadCookie('TaxOptions');
if (strTaxString == null) {
rb=1;
strTaxString = EncipherText(rb + "|" + sPST + "|" + sFST + "|" + sFAT);

}


if (useAdvancedCookie) {
  var setme = ReadCookie('NumberCookies');
			strCookieString = setme;
 for ( i = 0; i <= setme-1; i++ ) {
			strOrder = ReadCookie("Order."+i);
OutputOrderCookie =  ("ORDER."+i);

strOutput+="<input type=hidden name=\""+OutputOrderCookie+"\" value=\""+strOrder+"\">";
  }
}

if (!useAdvancedCookie) {
  var setme = iNumberOrdered;
			strCookieString = setme;
 for ( i = 1; i <= setme; i++ ) {
			strOrder = ReadCookie("Order."+i);
OutputOrderCookie =  ("ORDER."+i);

strOutput+="<input type=hidden name=\""+OutputOrderCookie+"\" value=\""+strOrder+"\">";
  }
}






strOutput+="<input type=hidden name=\"COOKIEFILES\" value=\""+strCookieString+"\">";
strOutput+="<input type=hidden name=\"COUPON\" value=\""+strCouponString+"\">";
strOutput+="<input type=hidden name=\"TAXOPTIONS\" value=\""+strTaxString+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderMethod+"\" value=\""+shipMethod+"\">";
//strOutput+="<input type=hidden name=\""+OutputOrderWeight+"\" value=\""+fWeight+"\">";
//strOutput+="<input type=hidden name=\""+OutputOrderItemTotal+"\" value=\""+MonetarySymbol+strITotal+"\">";
//strOutput+="<input type=hidden name=\""+OutputOrderDiscount+"\" value=\""+MonetarySymbol+moneyFormat(DiscountOnTotal)+"\">";
//strOutput+="<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+MonetarySymbol+strTotal+"\">";
//strOutput+="<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+MonetarySymbol+strShipping+"\">";
//strOutput+="<input type=hidden name=\""+OutputOrderFst+"\"      value=\""+MonetarySymbol+strFst+"\">";
//strOutput+="<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+MonetarySymbol+(moneyFormat(fTax))+"\">";
//strOutput+="<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+MonetarySymbol+moneyFormat((fTotal+fShipping+fATax))+"\">";
}
}
g_TotalCost=(fTotal+fShipping+fATax);
s_TotalCost=fTotal;
document.write(strOutput);
document.close();
}

//---------------------------------------------------------------------||
// FUNCTION:    ValidateCart                                           ||
// PARAMETERS:  Form to validate                                       ||
// RETURNS:     true/false                                             ||
// PURPOSE:     Validates the managecart form                          ||
//---------------------------------------------------------------------||

var g_TotalCost=0;
var s_TotalCost=0;
function ValidateCart(theForm){

// if the gift certificate reduces the total cost to within $5, let it pass
if (strCouponType == "G" && g_TotalCost<5) MinimumOrder = g_TotalCost;

if(MinimumOrder>=0.01){
if(g_TotalCost<MinimumOrder){
alert(MinimumOrderPrompt+' '+MonetarySymbol+moneyFormat(MinimumOrder));
return false;
}
}
if(s_TotalCost==0){
alert('Sorry, your cart is empty');
return false;
}
/*
if(TaxByRegion){
myOption = -1;
rb=document.form.TAX.length;
tax=new Array(rb);
strTaxCalc = rb + "|" + sPST + "|" + sFST + "|";
for (i=0; i<document.form.TAX.length; i++) {
strTaxCalc += document.form.TAX[i].value + "|" ;
}
for (i=0; i<document.form.TAX.length; i++) {
if (document.form.TAX[i].checked) {
myOption = document.form.TAX[i].value;
strTaxCalc += myOption;
	}
}
if (myOption == -1) {
alert("You must select a TAX option");
return false;
}else {
SetCookie("TaxOptions",strTaxCalc,null,"/");
	}
}
*/
if(TaxByRegion){
myOption = -1;
rb=document.form.TAX.length;
tax=new Array(rb);
strTaxCalc = rb + "|" + sPST + "|" + sFST + "|";
for (i=0; i<document.form.TAX.length; i++) {
strTaxCalc += document.form.TAX[i].value + "|" ;
}
for (i=0; i<document.form.TAX.length; i++) {
if (document.form.TAX[i].checked) {
myOption = document.form.TAX[i].value;
strTaxCalc += myOption;
	}
}
if (myOption == -1) {
alert("You must select a TAX option");
return false;
}else {
SetCookie("TaxOptions",strTaxCalc,null,"/");
	}
}else { // tax not by region
rb=1;
myOption = 0;
strTaxCalc = rb + "|" + sPST + "|" + sFST + "|" + sFAT;
SetCookie("TaxOptions",strTaxCalc,null,"/");

}



if(ComputeShipping){
shipMethod=ReadCookie('ShippingMeth');
if((shipMethod==null)||(shipMethod=="select")){
alert('Please Select Your Prefered Shipping Method');
return false;
}
}
return true;
}


//---------------------------------------------------------------------||
// FUNCTION:    ApplyDiscount                                         ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     nothing                                                ||
// PURPOSE:     Reads GiftCoupon cookie and calculates discount.       ||
//---------------------------------------------------------------------||

	function ApplyDiscount(fTotal){

			var DiscountOnTotal = 0;
			var database = GetCookie("GiftCoupon");


			if ( database == null ){
      DiscountCoupon  = 0;
			strCouponType   = "Z";
			DiscountOnTotal = 0;
strDISCOUNT = moneyFormat(DiscountOnTotal);
			return (DiscountOnTotal);
			}else 

			Token0 = database.indexOf("|", 0);
      Token1 = database.indexOf("|", Token0+1);
      Token2 = database.indexOf("|", Token1+1);
			
      var field1 = database.substring( 0, Token0 );        // Type & Value
      var field2 = database.substring( Token0+1, Token1 ); // PubName
      var field3 = database.substring( Token1+1, Token2 ); // cCode
	var field4 = database.substring( Token2+1, database.length ); // Redeemed



	  	strCouponType = field1.charAt(0);
			strCouponType = strCouponType.toUpperCase();
			fDisCount = CKnumbers(field1);
			
				if (strCouponType == "G" ) {	// Gift Certificate 
						DiscountOnTotal = (fDisCount);
						strDisCount = +moneyFormat(fDisCount)+" DOLLAR GIFT CERTIFCATE";
					} else {
				if (strCouponType == "P" ) { // Percent off
						DiscountOnTotal = (fTotal * (fDisCount/100));
						strDisCount = +fDisCount+"% DISCOUNT";
						}else{
							if (strCouponType == "C" ) {	// Money off
									DiscountOnTotal = (fDisCount);
									strDisCount = "$"+moneyFormat(fDisCount)+" OFF";
									}else {
												if (strCouponType == "S" ) { // Free Shipping
														DiscountOnTotal = (fDisCount);
														strDisCount = "FREE SHIPPING ON ORDERS OVER "+ MonetarySymbol+moneyFormat(fDisCount);
														}else{
								strDisCount = "";
								}
							}
						}
					}
			return (DiscountOnTotal);
	}
//---------------------------------------------------------------------||
// FUNCTION:    CheckoutCart                                           ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     Product Table Written to Document                      ||
// PURPOSE:     Draws current cart product table on HTML page for      ||
//              checkout.                                              ||
//---------------------------------------------------------------------||

function CheckoutCart(){
var iNumberOrdered=0;
var fTotal=0;
var fProdttl=0;
var fFst=0;
var fTax=0;
var fATax=0;
var fShipping=BaseShipping;
var fWeight=0;
var fItems=0;
var fShipLevelcost = 0;
//var LocationSelected=99;
//var LocationLabel="";
var strMethod="";
var strTotal="";
var strFst="";
var strTax="";
var strAllTax="";
var strWeight="";
var strOutput="";
var bDisplay=true;
var strPP="";

//randys tax code
if (useAdvancedCookie) {
iNumberOrdered=GetShoppingCartCount();
}
if (!useAdvancedCookie) {
   iNumberOrdered = ReadCookie("NumberOrdered");
}
if(iNumberOrdered==null)
iNumberOrdered=0;


  database = GetCookie('TaxOptions');
	cookieTax = database.split("|");
	L = cookieTax.length
	fTax  =  parseFloat(cookieTax[1]);
	fFst  =  parseFloat(cookieTax[2]);
	fATax =  moneyFormat(fTax + fFst);
if(TaxByRegion){

// QueryString_Parse();
// fTax=parseFloat(QueryString(OutputOrderTax));
taxChoice = parseFloat(cookieTax[L-1]);
if (taxChoice == 0){fTax = 0; fFst = 0;}
if(FstRate>0){if (taxChoice == fFst) fTax = 0;}
fATax = fTax + fFst;
strTax=moneyFormat(fTax);
srtFst=moneyFormat(fFst);
strAllTax=moneyFormat(fATax);
	}
//end tax code

shipMethod=ReadCookie('ShippingMeth');
if(shipMethod==null){
shipMethod='select';
WriteCookie("ShippingMeth",'select',"ShipExp","/");
}
if(bDisplay)
Borders=0;
if(DisplayBorders)Borders=1;
strBorders=Borders;
strOutput="<TABLE CELLSPACING=0 CELLPADDING=3 BORDER="+strBorders+" CLASS=\"sccart\"><TR>"+
(DisplayItemColumn?"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strILabel+"</B></TD>":"")+
"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strDLabel+"</B></TD>"+
"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strQLabel+"</B></TD>"+
(DisplayPriceColumn?"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strPLabel+"</B></TD>":"")+
(DisplayExtentedColumn?"<TD CLASS=\"scheader\" ALIGN=CENTER><B>"+strXLabel+"</B></TD>":"")+
"</TR>";
for(i=1;i<=iNumberOrdered;i++){
even=Math.round(i/2);

if (useAdvancedCookie) {
database=GetShoppingCartItem(i);
}
if (!useAdvancedCookie) {
      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);
Token4=database.indexOf("|",Token3+1);
Token5=database.indexOf("|",Token4+1);
Token6=database.indexOf("|",Token5+1);
Token7=database.indexOf("|",Token6+1);
Token8=database.indexOf("|",Token7+1);
Token9=database.indexOf("|",Token8+1);
fields=new Array(11);
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,Token5);
fields[6]=database.substring(Token5+1,Token6);
fields[7]=database.substring(Token6+1,Token7);
fields[8]=database.substring(Token7+1,Token8);
fields[9]=database.substring(Token8+1,Token9);
fields[10]=database.substring(Token9+1,database.length);
fProdttl=(parseInt(fields[1])*parseFloat(fields[2]));
fTotal+=fProdttl;
fPercent=(fTotal*PercentShipping);
fShipping+=fPercent;
fShipping+=(parseInt(fields[1])*parseFloat(fields[4]));
fItems+=parseInt(fields[1]);
fWeight+=(parseInt(fields[1])*parseFloat(fields[5]));
fWeight=Math.round(fWeight*100)/100;
strWeight=fWeight;
// if(fields[9]!=false){fFst+=(fProdttl*FstRate);}
strTotal=moneyFormat(fTotal);
if(bDisplay){
if((even)==(i/2)){
strCartClass="sceven";
}else{
strCartClass="scentry";
}
if(DisplayItemColumn){
strOutput+="<TR><TD CLASS=\""+strCartClass+"\" ALIGN=CENTER>"+fields[0]+"</TD>";
}
/* Customized for USERENTRY 03-15-06
if((fields[6]!="")||(fields[7]!="")){
strOutput+="<TD CLASS=\""+strCartClass+"\">"+fields[3]+" - <I>"+fields[6]+"  "+fields[7]+"</I></TD>";
}else{
strOutput+="<TD CLASS=\""+strCartClass+"\">"+fields[3]+"</TD>";
}
*/
if(fields[6]!=""){
strOutput+="<TD CLASS=\""+strCartClass+"\">"+fields[3]+" - <I>"+fields[6]+"</I></TD>";
}else{
strOutput+="<TD CLASS=\""+strCartClass+"\">"+fields[3]+"</TD>";
}
//---------END 
strOutput+="<TD CLASS=\""+strCartClass+"\" ALIGN=CENTER>"+fields[1]+"</TD>";
if(DisplayPriceColumn){
//strOutput+="<TD CLASS=\""+strCartClass+"\"ALIGN=CENTER>"+MonetarySymbol+moneyFormat(fields[2])+"/ea</TD>";
strOutput+="<TD CLASS=\""+strCartClass+"\"ALIGN=CENTER>"+MonetarySymbol+moneyFormat(fields[2])+"</TD>";
}
if(DisplayExtentedColumn){
strOutput+="<TD CLASS=\""+strCartClass+"\" ALIGN=RIGHT><B>"+MonetarySymbol+moneyFormat(fProdttl)+"</B></TD>";
}
strOutput+="</TR>";
}
if(AppendItemNumToOutput){
strFooter=i;
}else{
strFooter="";
}
//=====================================================================||
//            START PAYPAL PAYMENT PROCESSOR CONFIGURATION             ||
//=====================================================================||

if (PaymentProcessor=='pp'){
strOutput+="<input type=hidden name=\"item_number_"+ strFooter + "\" value=\"" + fields[0] + "\">";
strOutput+="<input type=hidden name=\"quantity_" + strFooter + "\" value=\"" + fields[1] + "\">";
strOutput+="<input type=hidden name=\"amount_" + strFooter + "\" value=\"" + fields[2] + "\">";
strOutput+="<input type=hidden name=\"item_name_" + strFooter + "\" value=\"" + fields[3] + "\">";
strOutput+="<input type=hidden name=\"on0_" + strFooter + "\" value=\"" + fields[6] + fields[7] + "\">";
if(i==iNumberOrdered){
strOutput+="<input type=hidden name=\"shipping_" + strFooter + "\" value=\"" + fShipping + "\">";
strOutput+="<input type=hidden name=\"tax_1\" value=\"" + fTax + "\">"; 
}

//=====================================================================||
//             END PAYPAL PAYMENT PROCESSOR CONFIGURATION              ||
//=====================================================================||

}else{
strOutput+="<input type=hidden name=\""+OutputItemId+strFooter+"\" value=\""+fields[0]+"\">";
strOutput+="<input type=hidden name=\""+OutputItemQuantity+strFooter+"\" value=\""+fields[1]+"\">";
strOutput+="<input type=hidden name=\""+OutputItemPrice+strFooter+"\" value=\""+fields[2]+"\">";
strOutput+="<input type=hidden name=\""+OutputItemName+strFooter+"\" value=\""+fields[3]+"\">";
strOutput+="<input type=hidden name=\""+OutputItemShipping+strFooter+"\" value=\""+fields[4]+"\">";
strOutput+="<input type=hidden name=\""+OutputItemWeight+strFooter+"\" value=\""+fields[5]+"\">";
/*Customized for USERENTRY 3-15-06
strOutput+="<input type=hidden name=\""+OutputItemAddtlInfo+strFooter+"\" value=\""+fields[6]+fields[7]+"\">";
*/
strOutput+="<input type=hidden name=\""+OutputItemAddtlInfo+strFooter+"\" value=\""+fields[6]+"\">";
strOutput+="<input type=hidden name=\""+OutputItemUserEntry+strFooter+"\" value=\""+fields[7]+"\">";
//--------END
strOutput+="<input type=hidden name=\""+OutputItemXtend+strFooter+"\" value=\""+moneyFormat(fields[1]*fields[2])+"\">";
}
}
shipMethod=ReadCookie('ShippingMeth');
if(shipMethod==null){
shipMethod='select';
WriteCookie("ShippingMeth",'select',"ShipExp","/");
}
if(shipMethod=="level6"){
fShipping=(ShipRateLevel6+(WeightRateLevel6*fWeight)+fShipping);
strMethod=strLevel6TEXT;
WriteCookie("ShippingMeth",'level6',"ShipExp","/");
}
if(shipMethod=="level5"){
fShipping=(ShipRateLevel5+(WeightRateLevel5*fWeight)+fShipping);
strMethod=strLevel5TEXT;
WriteCookie("ShippingMeth",'level5',"ShipExp","/");
}
if(shipMethod=="level4"){
fShipping=(ShipRateLevel4+(WeightRateLevel4*fWeight)+fShipping);
strMethod=strLevel4TEXT;
WriteCookie("ShippingMeth",'level4',"ShipExp","/");
}
if(shipMethod=="level3"){
fShipping=(ShipRateLevel3+(WeightRateLevel3*fWeight)+fShipping);
strMethod=strLevel3TEXT;
WriteCookie("ShippingMeth",'level3',"ShipExp","/");
}
if(shipMethod=="level2"){
fShipping=(ShipRateLevel2+(WeightRateLevel2*fWeight)+fShipping);
strMethod=strLevel2TEXT;
WriteCookie("ShippingMeth",'level2',"ShipExp","/");
}
if(shipMethod=="level1"){
fShipping=(ShipRateLevel1+(WeightRateLevel1*fWeight)+fShipping);
strMethod=strLevel1TEXT;
WriteCookie("ShippingMeth",'level1',"ShipExp","/");
}

// process Discount Coupon
			fTotalBeforeDiscount= fTotal;
			DiscountOnTotal = 0;
			DiscountOnTotal = ApplyDiscount(fTotal);


		if (strCouponType == "S"){
				if(fTotalBeforeDiscount >= DiscountOnTotal ){
					DiscountOnTotal = 0;
					if(shipMethod=="level3"){
						 fShipping=0;
						 strMethod="Free Ground";}				
				} else {
					DiscountOnTotal = 0;
				}
		} else 

				fTotal -= DiscountOnTotal;
				if (fTotal <0 && strCouponType != "G") fTotal = 0;

      strTotal    = moneyFormat(fTotal);
			strfTotalBeforeDiscount = moneyFormat(fTotalBeforeDiscount);
			strITotal = moneyFormat(fTotalBeforeDiscount);
strDiscount = moneyFormat(DiscountOnTotal);
	// end part 1 of discount mod		

//randys tax code
// add both taxes to shipping cost depending on flag:

fShipFst = 0;
fShipTax = 0;
if (FstShipFlag)fShipFst=(fShipping*ShippingFstRate);
if (TaxShipFlag)fShipTax=(fShipping*ShippingTaxRate);
fShipping+=fShipFst+fShipTax;
//end tax code

strShipping=moneyFormat(fShipping);
BaseCol=1;
ICol=0;
PCol=0;
ECol=0;
if(DisplayItemColumn)ICol=1;
if(DisplayPriceColumn)PCol=1;
if(DisplayExtentedColumn)ECol=1;
strColA=((ICol+PCol+ECol)+1);
strColB=(BaseCol+(ICol+PCol+ECol));
strColC=(BaseCol+(ICol+PCol+ECol)-1);
if(!TaxByRegion){
if(ShippingTaxRate>0){
fShipTax=(fShipping*ShippingTaxRate);
fTax+=fShipTax;
}
}
if(bDisplay){
//var ldomain=document.domain;
//strOutput+="<TR><TD CLASS=\"scheader\" COLSPAN=7><IMG SRC=\"http://staticcart.net/license/one.gif?licence="+ldata+"&domain="+ldomain+"\" WIDTH=1 HEIGHT=1 ALT=\"Space\"></TD></TR>";
strOutput+="<TR><TD CLASS=\"scheader\" COLSPAN=7><IMG SRC=\"../images/spacer.gif\" WIDTH=1 HEIGHT=1 ALT=\"Space\"></TD></TR>";
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strISUB+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" COLSPAN=1 ALIGN=RIGHT><B>"+MonetarySymbol+strfTotalBeforeDiscount+"</B></TD>";
strOutput+="</TR>";
// start part 2 of Discount mod
// Don't display Discount Row if Discount is zero
			if ((DiscountOnTotal >0) && (strCouponType != "G")){
      strOutput += "<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strDisCount+"</B> </TD>"; 
      strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B><FONT color=\"#FF0000\"> " +MonetarySymbol+moneyFormat(DiscountOnTotal)+ "</FONT></B></TD>"; 
      strOutput += "</TR>";
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strSUB+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fTotal)+"</B></TD>";
strOutput+="</TR>";
     }
// --------------------- end mod Discount Coupon here -----------------------------||


if(DisplayShippingRow){
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strSHIP+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+strMethod+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" COLSPAN=1 ALIGN=RIGHT><B>"+MonetarySymbol+strShipping+"</B></TD>";
strOutput+="</TR>";
}

//randy tax code
strFst=moneyFormat(fFst);
strTax=moneyFormat(fTax);
fATax=(fTax+fFst);
fATax=parseFloat(fATax);
strAllTax=moneyFormat(fATax);
fGTotal = fTotal+fShipping+fATax;
if (fGTotal <0)fGTotal=0;
//end randy tax code

if(FstRate>0){
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strFST+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+strFst+"</B></TD>";
strOutput+="</TR>";
}
if((DisplayTaxRow)||(TaxByRegion)){
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strTAX+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" COLSPAN=1 ALIGN=RIGHT><B>"+MonetarySymbol+strTax+"</B></TD>";
strOutput+="</TR>";
}
// Don't display gift Certificate Row if Gift Cert is zero

			if (DiscountOnTotal >0 && strCouponType == "G"){
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strTOT+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" COLSPAN=1 ALIGN=RIGHT><B>"+MonetarySymbol+moneyFormat(fTotalBeforeDiscount+fShipping+fATax)+"</B></TD>";
strOutput+="</TR>";

      strOutput += "<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strDisCount+"</B> </TD>"; 
      strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B><FONT color=\"#FF0000\"> " + moneyFormat(DiscountOnTotal) + "</FONT></B></TD>"; 
      strOutput += "</TR>";
	
	}		
// --------------------- end mod gift Certificate here -----------------------------||
/*
strOutput+="<TR><TD CLASS=\"sctotal\" COLSPAN="+strColA+"><B>"+strBAL+"</B></TD>";
strOutput+="<TD CLASS=\"sctotal\" ALIGN=RIGHT COLSPAN=1><B>"+MonetarySymbol+moneyFormat(fGTotal)+"</B></TD>";
strOutput+="</TR>";
*/   
strOutput+="</TABLE>";

//=====================================================================||
//                START PAYMENT PROCESSOR CONFIGURATION                ||
//=====================================================================||

if(PaymentProcessor=='an'){;
strOutput+="<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+MonetarySymbol+strTotal+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+MonetarySymbol+strShipping+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderWeight+"\"   value=\""+strWeight+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderMethod+"\"   value=\""+strMethod+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderFst+"\"      value=\""+MonetarySymbol+strFst+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+MonetarySymbol+strTax+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+MonetarySymbol+moneyFormat((fTotal+fShipping+fATax))+"\">";
}else if(PaymentProcessor=='wp'){;
strOutput+="<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+MonetarySymbol+strTotal+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+MonetarySymbol+strShipping+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderWeight+"\"   value=\""+strWeight+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderMethod+"\"   value=\""+strMethod+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderFst+"\"      value=\""+MonetarySymbol+strFst+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+MonetarySymbol+strTax+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+MonetarySymbol+moneyFormat((fTotal+fShipping+fATax))+"\">";
strOutput+="<input type=hidden name=\"amount\"                  value=\""+moneyFormat((fTotal+fShipping+fATax))+"\">";
}else if(PaymentProcessor=='2c'){;
strOutput+="<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+MonetarySymbol+strTotal+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+MonetarySymbol+strShipping+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderWeight+"\"   value=\""+strWeight+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderMethod+"\"   value=\""+strMethod+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderFst+"\"      value=\""+MonetarySymbol+strFst+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+MonetarySymbol+strTax+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+MonetarySymbol+moneyFormat((fTotal+fShipping+fATax))+"\">";
}else if(PaymentProcessor=='lp'){;
strOutput+="<input type=hidden name=\"the_mode\" value=\"payplus\">";
strOutput+="<input type=hidden name=\"chargetotal\" value=\""+moneyFormat((fTotal+fShipping+fATax))+"\">";
strOutput+="<input type=hidden name=\"tax\" value=\""+strAllTax+"\">";
strOutput+="<input type=hidden name=\"subtotal\" value=\""+strTotal+"\">";
strOutput+="<input type=hidden name=\"shipping\" value=\""+strShipping+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+MonetarySymbol+strTotal+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+MonetarySymbol+strShipping+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderWeight+"\"   value=\""+strWeight+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderMethod+"\"   value=\""+strMethod+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderFst+"\"      value=\""+MonetarySymbol+strFst+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+MonetarySymbol+strTax+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+MonetarySymbol+moneyFormat((fTotal+fShipping+fATax))+"\">";
}else if(PaymentProcessor=='pd'){;
strOutput+="<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+MonetarySymbol+strTotal+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+MonetarySymbol+strShipping+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderWeight+"\"   value=\""+strWeight+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderMethod+"\"   value=\""+strMethod+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderFst+"\"      value=\""+MonetarySymbol+strFst+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+MonetarySymbol+strTax+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+MonetarySymbol+moneyFormat((fTotal+fShipping+fATax))+"\">";
strOutput+="<input type=hidden name=\"amount\"                  value=\""+moneyFormat((fTotal+fShipping+fATax))+"\">";
}else if(PaymentProcessor=='pf'){;
strOutput+="<input type=hidden name=\"type\" value=\"S\">";
strOutput+="<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+MonetarySymbol+strTotal+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+MonetarySymbol+strShipping+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderWeight+"\"   value=\""+strWeight+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderMethod+"\"   value=\""+strMethod+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderFst+"\"      value=\""+MonetarySymbol+strFst+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+MonetarySymbol+strTax+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+MonetarySymbol+moneyFormat((fTotal+fShipping+fATax))+"\">";
strOutput+="<input type=hidden name=\"amount\"                  value=\""+moneyFormat((fTotal+fShipping+fATax))+"\">";
}else{;
strOutput+="<input type=hidden name=\""+OutputOrderItemTotal+"\"value=\""+MonetarySymbol+strITotal+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderDiscount+"\" value=\""+MonetarySymbol+strDiscount+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+MonetarySymbol+strTotal+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+MonetarySymbol+strShipping+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderWeight+"\"   value=\""+strWeight+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderMethod+"\"   value=\""+strMethod+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderFst+"\"      value=\""+MonetarySymbol+strFst+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+MonetarySymbol+strTax+"\">";
strOutput+="<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+MonetarySymbol+moneyFormat((fTotal+fShipping+fATax))+"\">";
};
//=====================================================================||
//                 END PAYMENT PROCESSOR CONFIGURATION                 ||
//=====================================================================||

};
document.write(strOutput);
document.close();
};

//=====================================================================||
//              START StaticCart Advanced Cookie Routine               ||
//=====================================================================||

//---------------------------------------------------------------------||
// FUNCTION:    EmptyScCart                                            ||
// PARAMETERS:  None                                                   ||
// RETURNS:     null                                                   ||
// PURPOSE:     To remove all the SC Advanced Cookies                  ||
//---------------------------------------------------------------------||

function EmptyScCart(){
if (!useAdvancedCookie) {
WriteCookie('NumberOrdered',0,null,'/');
WriteCookie('Order.1',0,null,'/');
WriteCookie('Order.2',0,null,'/');
WriteCookie('Order.3',0,null,'/');
}
if (useAdvancedCookie) {
WriteCookie('NumberCookies',0,null,'/');
WriteCookie('Order.0',0,null,'/');
WriteCookie('Order.1',0,null,'/');
WriteCookie('Order.2',0,null,'/');
}


}

//---------------------------------------------------------------------||
// FUNCTION:    GetShoppingCartCount                                   ||
// PARAMETERS:  None                                                   ||
// RETURNS:     Number of items in Cart                                ||
// PURPOSE:     To get the number of items currently in shopping cart  ||
//---------------------------------------------------------------------||

function GetShoppingCartCount(){
RetrieveItemArray();
return(g_ItemArray.length);
}

//---------------------------------------------------------------------||
// FUNCTION:    GetShoppingCartItem                                    ||
// PARAMETERS:  Index of the shopping cart item required               ||
//                          (Index starts at 1 (historic))             ||
// RETURNS:     Shopping Cart item details string                      ||
// PURPOSE:     To get a shopping cart item.  The item's information   ||
//              is stored in a string delimited by the "|" character   ||
//---------------------------------------------------------------------||

function GetShoppingCartItem(TheIndex){
RetrieveItemArray();
var nIdx=TheIndex-1;
if((nIdx>=0)&&(nIdx<g_ItemArray.length)){
return(g_ItemArray[nIdx])
}else{
return"";
}
}

//---------------------------------------------------------------------||
// FUNCTION:    UpdateItemToShoppingCart                               ||
// PARAMETERS:  The new shopping cart item string                      ||
//              Index of the shopping cart item to update              ||
// RETURNS:     null                                                   ||
// PURPOSE:     Update an item in the shopping cart.                   ||
//---------------------------------------------------------------------||

function UpdateItemToShoppingCart(TheStr,TheIndex){
RetrieveItemArray();
var nIdx=TheIndex-1;
if((nIdx>=0)&&(nIdx<g_ItemArray.length)){
g_ItemArray[nIdx]=TheStr;
SaveItemArray();
}
}

//---------------------------------------------------------------------||
// FUNCTION:    AddItemToShoppingCart                                  ||
// PARAMETERS:  The shopping cart item to be added                     ||
// RETURNS:     null                                                   ||
// PURPOSE:     To add a new item to the shopping cart                 ||
//---------------------------------------------------------------------||

function AddItemToShoppingCart(TheStr){
RetrieveItemArray();
g_ItemArray[g_ItemArray.length]=TheStr;
return(SaveItemArray());
}

//---------------------------------------------------------------------||
// FUNCTION:    DeleteLastItem                                         ||
// PARAMETERS:  none                                                   ||
// RETURNS:     null                                                   ||
// PURPOSE:     To delete the last item in the shopping cart           ||
//---------------------------------------------------------------------||

function DeleteLastItem(){
RetrieveItemArray();
if(g_ItemArray.length>0){
g_ItemArray.length=g_ItemArray.length-1;
SaveItemArray();
}
}

//---------------------------------------------------------------------||
// FUNCTION:    SaveItemArray                                          ||
// PARAMETERS:  none                                                   ||
// RETURNS:     null                                                   ||
// PURPOSE:     Store shopping cart array details to cookies           ||
//---------------------------------------------------------------------||

function SaveItemArray(){
var nCookieStrLen=scitemlen;
var nCookieId=0;
var sCookieStr="";
var retVal=true;
for(var i=0;i<g_ItemArray.length;i++){
if(sCookieStr!="")sCookieStr+="^";
sCookieStr+=g_ItemArray[i];
if(nCookieId>15){
alert("Sorry the shopping cart is full - unable to add this item.");
sCookieStr="";
retVal=false;
break;
}
if(sCookieStr.length>nCookieStrLen){
// alert("Line 1802 String length reached maximum at: "+sCookieStr.length);
SetCookie("Order."+nCookieId++,sCookieStr,null,"/");
 
sCookieStr="";
}
}
if(sCookieStr.length>0){
// alert('Line 1809 sCookieStr.length = '+sCookieStr.length);
SetCookie("Order."+nCookieId++,sCookieStr,null,"/");
sCookieStr="";
}
WriteCookie("NumberCookies",nCookieId,null,"/");
return(retVal);
}

//---------------------------------------------------------------------||
// FUNCTION:    RetrieveItemArray                                      ||
// PARAMETERS:  none                                                   ||
// RETURNS:     null                                                   ||
// PURPOSE:     Populate shopping cart array from cookies              ||
//---------------------------------------------------------------------||

function RetrieveItemArray(){
if(g_ItemArray!=null)return;
var nCount=ReadCookie("NumberCookies");
if(nCount==null){
nCount=0;
}else{
nCount=parseInt(nCount);
}
var sArrayStr="";
for(var i=0;i<nCount;i++){
if(sArrayStr!="")
sArrayStr+="^";
sArrayStr+=GetCookie("Order."+i);
}
if(nCount==0){
g_ItemArray=new Array();
}else{
//COOKIE DECRYPTION
//sArrayStr = DecipherText(sArrayStr);
//END COOKIE DECRYPTION
g_ItemArray=sArrayStr.split("^");
}
}

//=====================================================================||
//                 BEGIN Cookie Encrytion Routines                     ||
//=====================================================================||
// GLOBAL VARIABLES
// the key array
  var key;

//---------------------------------------------------------------------||
// FUNCTION:    onerror                                                ||
// PARAMETERS:  true/false                                             ||
// RETURNS:     error message                                          ||
// PURPOSE:     Enable/Disable Error Messages                          ||
//---------------------------------------------------------------------||

  function onerror(m,u,l){ return false; } // false; true occludes error messages
 
//---------------------------------------------------------------------||
// FUNCTION:    DecToHex                                               ||
// PARAMETERS:                                                         ||
// RETURNS:                                                            ||
// PURPOSE:     Conversion Function                                    ||
//---------------------------------------------------------------------||

  function DecToHex(x) {
 	var s = '', x_ = !isNaN(Number(x)) ? Number(x) : 0;
 	while( Boolean( x_ ) ) { s = '0123456789ABCDEF'.charAt( x_ & 0xf ) + s; x_ >>>= 4; }
 	while ( s.length & 0x7 ) { s = '0' + s; } 
 	return ( s );
 }
 
//---------------------------------------------------------------------||
// FUNCTION:    Encipher / Decipher                                    ||
// PARAMETERS:                                                         ||
// RETURNS:                                                            ||
// PURPOSE:     Encryption/Decryption Algorithm                        ||
//---------------------------------------------------------------------||
 
 /* Tiny Encryption Algorithm (TEA) 
 
 	- http://vader.brad.ac.uk/tea/tea.shtml
 
 	The Tiny Encryption Algorithm (TEA) by David Wheeler and Roger Needham 
 		of the Cambridge Computer Laboratory.
 
 	Placed in the Public Domain by David Wheeler and Roger Needham.
 
 
 	TEA is a Feistel cipher with XOR and AND addition as the non-linear mixing functions. 
 
 	TEA takes 64 bits of data in v[0] and v[1], ( 2 x 4 bytes -> 8 ascii chars )
 		and 128 bits of key in k[0] - k[3]. ( 4 x 4 bytes -> 16 bytes )
 
 	The result is returned in w[0] and w[1]. ( 2 x 4 bytes -> 8 ascii chars )
 
 	Returning the result separately makes implementation of cipher modes
 		other than Electronic Code Book a little bit easier.
 
 	TEA can be operated in any of the modes of DES.
 
 	n is the number of iterations. 32 is ample, 16 is sufficient,
 		as few as eight should be OK for most applications,
 		especially ones where the data age quickly (real-time video, for example).
 
 	The algorithm achieves good dispersion after six iterations.
 	The iteration count can be made variable if required.
 
 	delta is chosen to be the Golden ratio ((5/4)1/2 - 1/2 ~ 0.618034) multiplied by 2^32
 
 	Which way round you call the functions is arbitrary:
 
 	DK(EK(P)) = EK(DK(P)) where EK and DK are encryption and decryption under key K respectively
 
 
 	This implementation follows the new variant developed in response 
 		to limitations pointed out by David Wagner 1997
 
 */
 
 
 function Encipher(p1, p2)
 {

 		var k = new Array();
 		k[0] = 987654321098765;
 		k[1] = 678901234567890;
 		k[2] = 123456789012345;
 		k[3] = 432109876543210;

 	var temp = new Array();
 	temp[0] = 1; // an error flag
 	temp[1] = new Number(p1);
 	temp[2] = new Number(p2);
 
 	var sum = 0;
 	var delta = 0x9E3779B9;
 	var n = 32;
 
 	while ( n-- > 0 )
 	{
 		temp[1] = temp[1] + ( ( temp[2] << 4 ^ temp[2] >> 5 ) + temp[2] ^ sum + k[ ( sum & 3 ) ] );
 		sum = sum + delta;
 		temp[2] = temp[2] + ( ( temp[1] << 4 ^ temp[1] >> 5 ) + temp[1] ^ sum + k[ ( sum >> 11 & 3 ) ] );
 	}
 
 	// for the error flag maybe check for negative numbers
 
 	return( temp );
 
 }
 
  function Decipher(p1, p2)
 {
		var k = new Array();
 		k[0] = 987654321098765;
 		k[1] = 678901234567890;
 		k[2] = 123456789012345;
 		k[3] = 432109876543210;

 	var temp = new Array();
 	temp[0] = 1; // an error flag
 	temp[1] = new Number(p1);	
 	temp[2] = new Number(p2);
 
 	// sum = delta << 5, in general sum = delta * n
 
 	var sum   = 0xC6EF3720;
 	var delta = 0x9E3779B9;
 	var n     = 32;
 
 	while ( n-- > 0 )
 	{
 		temp[2] = temp[2] - ( ( temp[1] << 4 ^ temp[1] >> 5 ) + temp[1] ^ sum + k[ ( sum >> 11 & 3 )] );
 		sum = sum - delta;
 		temp[1] = temp[1] - ( ( temp[2] << 4 ^ temp[2] >> 5 ) + temp[2] ^ sum + k[ ( sum & 3 ) ] );
 
 	}
 
 	// for the error flag maybe check for negative numbers
 
 	return( temp );
  }
  
//---------------------------------------------------------------------||
// FUNCTION:    EncipherText                                           ||
// PARAMETERS:                                                         ||
// RETURNS:     Encrypted Cookie Data                                  ||
// PURPOSE:     Encrypt Cookie Data                                    ||
//---------------------------------------------------------------------||

  function EncipherText(sCookieStr){

  	// transfer input to local variable
 	var inString = sCookieStr;
 
 	// init local variables
 	var p1D = 0; var p2D = 0;	
 	var res = null; var outString = '';
 	
 	// predetermine inverse string length
 	var invlen = 100/inString.length;
 
 	// initialize an error flag of 64 bits
 	// include the newlines so it's even easier to spot
 	// alternatively issue a report to the status field
 	var errormark = "!!!!!!!\x0d\x0d!!!!!!!";
 
  	// pad the input so that it's a multiple of 8
 	while ( inString.length & 0x7 ) { inString += '\x20'; }
 
 	var i = 0;
 	while ( i < inString.length ) {
 
 		// slam 4 bytes into a dword 
 		p1D  = inString.charCodeAt(i++);
 		p1D |= inString.charCodeAt(i++) << 8;
 		p1D |= inString.charCodeAt(i++) << 16;
 		p1D |= inString.charCodeAt(i++) << 24;
 
 		// mask off 32 bits to be safe
 		// javascript numbers are 64 bit IEEE double doubles
 		p1D &= 0xFFFFFFFF;
 
 		// slam 4 bytes into a dword
 		p2D  = inString.charCodeAt(i++);
 		p2D |= inString.charCodeAt(i++) << 8;
 		p2D |= inString.charCodeAt(i++) << 16;
 		p2D |= inString.charCodeAt(i++) << 24;
 
 		// mask off 32 bits to be safe
 		// javascript numbers are 64 bit IEEE double doubles
 		p2D &= 0xFFFFFFFF;
 
 		// send dwords to be enciphered
 		res = Encipher(p1D, p2D, key);
 
 		// check the validity flag
 		// convert the results to hex to facilitate deciphering - 16 chars generated per turn
 		// append the hex values to the output buffer 
 		// do not include any new lines - the form is set to wrap
 
 		// the validity flag defaults to true because I'm not certain what to check for ;-)
 
 		outString += ( res[0] ? '' + DecToHex(res[1]) + DecToHex(res[2]) : errormark );
 
 		// later perhaps the outString should be chunked up
 		// along the lines of B64 email attachments
 		// although 0-9 and A-F are 6 and 7 bit values respectively
 		// it's really a question of post limitations on the http server
 
 		// clear the temporary variables
 		p1D = 0; p2D = 0; res = null;
 
  	}
   
 	// transfer the output buffer to output textarea
 return ( outString );
  }
 
//---------------------------------------------------------------------||
// FUNCTION:    DecipherText                                           ||
// PARAMETERS:                                                         ||
// RETURNS:     Unencrypted Cookie Data                                ||
// PURPOSE:     Unencrypt Cookie Data                                  ||
//---------------------------------------------------------------------||
 
 function DecipherText(sArrayStr){  
  
 	// transfer input to local variable
 	var inString = sArrayStr;
 
 	// predetermine inverse string length
 	var invlen = 100/inString.length;
 
 	// init local variables
 	var p3H = ''; var p4H = '';
 	var p3D = 0;  var p4D = 0;
 	var res = null; var outString = '';
 
 	// loop through input string
 	var i = 0; 
 	while ( i < inString.length ) {
 
 		// should check for our errormarker too!
 
 		// 8 hex chars make a dword 
 		// - unloop de loop - it's faster
 		p3H += inString.charAt(i++); // 1
 		p3H += inString.charAt(i++); // 2
 		p3H += inString.charAt(i++); // 3
 		p3H += inString.charAt(i++); // 4
 		p3H += inString.charAt(i++); // 5
 		p3H += inString.charAt(i++); // 6
 		p3H += inString.charAt(i++); // 7
 		p3H += inString.charAt(i++); // 8
 
 		// 8 hex chars make a dword 
 		// - unloop de loop - it's faster
 		p4H += inString.charAt(i++); // 1
 		p4H += inString.charAt(i++); // 2
 		p4H += inString.charAt(i++); // 3
 		p4H += inString.charAt(i++); // 4
 		p4H += inString.charAt(i++); // 5
 		p4H += inString.charAt(i++); // 6
 		p4H += inString.charAt(i++); // 7
 		p4H += inString.charAt(i++); // 8
 
 		// convert hex strings to dwords
 		p3D = parseInt(p3H,16);
 		p4D = parseInt(p4H,16);
 
 		// pass dwords to decipher routine
 		res = Decipher(p3D, p4D, key);
 
 		// transform results back into alphanumic characters
 		// check validity flag - always defaults true ...
 		if ( res[0] ) {
 
 			// unpack first dword
 			outString += String.fromCharCode( ( res[1] & 0x000000FF ) );
 			outString += String.fromCharCode( ( res[1] & 0x0000FF00 ) >>  8 );
 			outString += String.fromCharCode( ( res[1] & 0x00FF0000 ) >> 16 );
 			outString += String.fromCharCode( ( res[1] & 0xFF000000 ) >> 24 );
 
 			// unpack second dword
 			outString += String.fromCharCode( ( res[2] & 0x000000FF ) );
 			outString += String.fromCharCode( ( res[2] & 0x0000FF00 ) >>  8 );
 			outString += String.fromCharCode( ( res[2] & 0x00FF0000 ) >> 16 );
 			outString += String.fromCharCode( ( res[2] & 0xFF000000 ) >> 24 );
  		}
 		
 		// reset temporary variables
 		p3H = ''; p4H = '';
 		p3D = 0;  p4D = 0;
 		res = null;
    	}
  	return ( outString );
 }

//=====================================================================||
//                 END StaticCart Shopping Cart System                 ||
//=====================================================================||

//=====================================================================||
//             BEGIN SmartPost Shopping Cart MODIFICATIONS             ||
//=====================================================================||
//


function getCartData() {

 
createRequestObject();
var strCOOKIE=FORM_DATA['COOKIEFILES'];
var files = strCOOKIE;
var strCOUPON=FORM_DATA['COUPON'];
var strMETHOD=FORM_DATA['METHOD'];
var strTAX=FORM_DATA['TAXOPTIONS'];

if (useAdvancedCookie) {
WriteCookie("NumberCookies",strCOOKIE,null,"/");
}
if (!useAdvancedCookie) {
WriteCookie("NumberOrdered",strCOOKIE,null,"/");
}
WriteCookie("GiftCoupon",strCOUPON,null,"/");
WriteCookie("ShippingMeth",strMETHOD,null,"/");
WriteCookie("TaxOptions",strTAX,null,"/");


if (!useAdvancedCookie) {
 for ( u = 1; u <= files; u++ ) {
var strORDER=FORM_DATA['ORDER.'+u];
WriteCookie("Order."+u,strORDER,null,"/");
}
}



if (useAdvancedCookie) {
 for ( u = 0; u <= files-1; u++ ) {
var strORDER=FORM_DATA['ORDER.'+u];
WriteCookie("Order."+u,strORDER,null,"/");
}
}


}
 

<!--


/*
Webmonkey GET Parsing Module
Language: JavaScript 1.0
The parsing of GET queries is fundamental
to the basic functionality of HTTP/1.0.
This module parses GET with JavaScript 1.0.
Source: Webmonkey Code Library
(http://www.hotwired.com/webmonkey/javascript/code_library/)
Author: Patrick Corcoran
Author Email: patrick@taylor.org
*/


function createRequestObject() {
  FORM_DATA = new Object();
    // The Object ("Array") where our data will be stored.
  separator = ',';
    // The token used to separate data from multi-select inputs
  query = '' + this.location;
  qu = query
    // Get the current URL so we can parse out the data.
    // Adding a null-string '' forces an implicit type cast
    // from property to string, for NS2 compatibility.
  query = query.substring((query.indexOf('?')) + 1);
    // Keep everything after the question mark '?'.
  if (query.length < 1) { return false; }  // Perhaps we got some bad data?
  keypairs = new Object();
  numKP = 1;
    // Local vars used to store and keep track of name/value pairs
    // as we parse them back into a usable form.
  while (query.indexOf('&') > -1) {
    keypairs[numKP] = query.substring(0,query.indexOf('&'));
    query = query.substring((query.indexOf('&')) + 1);
    numKP++;
      // Split the query string at each '&', storing the left-hand side
      // of the split in a new keypairs[] holder, and chopping the query
      // so that it gets the value of the right-hand string.
  }
  keypairs[numKP] = query;
    // Store what's left in the query string as the final keypairs[] data.<
  for (i in keypairs) {
    keyName = keypairs[i].substring(0,keypairs[i].indexOf('='));
      // Left of '=' is name.
    keyValue = keypairs[i].substring((keypairs[i].indexOf('=')) + 1);
      // Right of '=' is value.
    while (keyValue.indexOf('+') > -1) {
      keyValue = keyValue.substring(0,keyValue.indexOf('+')) + ' ' + keyValue.substring(keyValue.indexOf('+') + 1);
        // Replace each '+' in data string with a space.
    }
    keyValue = unescape(keyValue);
      // Unescape non-alphanumerics
    if (FORM_DATA[keyName]) {
      FORM_DATA[keyName] = FORM_DATA[keyName] + separator + keyValue;
        // Object already exists, it is probably a multi-select input,
        // and we need to generate a separator-delimited string
        // by appending to what we already have stored.
    } else {
      FORM_DATA[keyName] = keyValue;
        // Normal case: name gets value.
    }
  }
  return FORM_DATA;
}
FORM_DATA = createRequestObject();
  // This is the array/object containing the GET data.
  // Retrieve information with 'FORM_DATA [ key ] = value'.


// -->



//=====================================================================||
//             END SmartPost Shopping Cart MODIFICATIONS               ||
//=====================================================================||

