﻿//=====================================================================||
//               NOP Design JavaScript Shopping Cart                   ||
//                                                                     ||
// For more information on SmartSystems, or how NOPDesign can help you ||
// Please visit us on the WWW at http://www.nopdesign.com              ||
//                                                                     ||
// Javascript portions of this shopping cart software are available as ||
// freeware from NOP Design.  You must keep this comment unchanged in  ||
// your code.  For more information contact FreeCart@NopDesign.com.    ||
//                                                                     ||
// JavaScript Shop Module, V.4.4.0                                     ||
//=====================================================================||

//---------------------------------------------------------------------||
//                       Global Options                                ||
//                      ----------------                               ||
// Shopping Cart Options, you can modify these options to change the   ||
// the way the cart functions.                                         ||
//                                                                     ||
// Language Packs                                                      ||
// ==============                                                      ||
// You may include any language pack before nopcart.js in your HTML    ||
// pages to change the language.  Simply include a language pack with  ||
// a script src BEFORE the <SCRIPT SRC="nopcart.js">... line.          ||
//  For example: <SCRIPT SRC="language-en.js"></SCRIPT>                ||
//                                                                     ||
// Options For Everyone:                                               ||
// =====================                                               ||
// * MonetarySymbol: string, the symbol which represents dollars/euro, ||
//   in your locale.                                                   ||
// * DisplayNotice: true/false, controls whether the user is provided  ||
//   with a popup letting them know their product is added to the cart ||
// * DisplayShippingColumn: true/false, controls whether the managecart||
//   and checkout pages display shipping cost column.                  ||
// * DisplayShippingRow: true/false, controls whether the managecart   ||
//   and checkout pages display shipping cost total row.               ||
// * DisplayTaxRow: true/false, controls whether the managecart        ||
//   and checkout pages display tax cost total row.                    ||
// * TaxRate: number, your area's current tax rate, ie: if your tax    ||
//   rate was 7.5%, you would set TaxRate = 0.075                      ||
// * TaxByRegion: true/false, when set to true, the user is prompted   ||
//   with TaxablePrompt to determine if they should be charged tax.    ||
//   In the USA, this is useful to charge tax to those people who live ||
//   in a particular state, but no one else.                           ||
// * TaxPrompt: string, popup message if user has not selected either  ||
//   taxable or nontaxable when TaxByRegion is set to true.            ||
// * TaxablePrompt: string, the message the user is prompted with to   ||
//   select if they are taxable.  If TaxByRegion is set to false, this ||
//   has no effect. Example: 'Arizona Residents'                       ||
// * NonTaxablePrompt: string, same as above, but the choice for non-  ||
//   taxable people.  Example: 'Other States'                          ||
// * MinimumOrder: number, the minium dollar amount that must be       ||
//   purchased before a user is allowed to checkout.  Set to 0.00      ||
//   to disable.                                                       ||
// * MinimumOrderPrompt: string, Message to prompt users with when     ||
//   they have not met the minimum order amount.                       ||
//                                                                     ||
// Payment Processor Options:                                          ||
// ==========================                                          ||
// * PaymentProcessor: string, the two digit payment processor code    ||
//   for support payment processor gateways.  Setting this field to    ||
//   anything other than an empty string will override your OutputItem ||
//   settings -- so please be careful when receiving any form data.    ||
//   Support payment processor gateways are:                           ||
//    * Authorize.net (an)                                             ||
//    * Worldpay      (wp)                                             ||
//    * LinkPoint     (lp)                                             ||
//    Added by OGalan                                                  ||
//    * PayPal        (pp)                                             ||
//                                                                     ||
// Options For Programmers:                                            ||
// ========================                                            ||
// * OutputItem<..>: string, the name of the pair value passed at      ||
//   checkouttime.  Change these only if you are connecting to a CGI   ||
//   script and need other field names, or are using a secure service  ||
//   that requires specific field names.                               ||
// * AppendItemNumToOutput: true/false, if set to true, the number of  ||
//   each ordered item will be appended to the output string.  For     ||
//   example if OutputItemId is 'ID_' and this is set to true, the     ||
//   output field name will be 'ID_1', 'ID_2' ... for each item.       ||
// * HiddenFieldsToCheckout: true/false, if set to true, hidden fields ||
//   for the cart items will be passed TO the checkout page, from the  ||
//   ManageCart page.  This is set to true for CGI/PHP/Script based    ||
//   checkout pages, but should be left false if you are using an      ||
//   HTML/Javascript Checkout Page. Hidden fields will ALWAYS be       ||
//   passed FROM the checkout page to the Checkout CGI/PHP/ASP/Script  ||
//---------------------------------------------------------------------||

//Options for Everyone:
MonetarySymbol        = '$';
DisplayNotice         = true;
DisplayShippingColumn = false;
DisplayShippingRow    = true;
DisplayTaxRow         = true;
TaxRate               = 0.00;
TaxByRegion           = false;
TaxPrompt             = 'For tax purposes, please select if you are an Arizona resident before continuing';
TaxablePrompt         = 'Arizona Residents';
NonTaxablePrompt      = 'Other States';
MinimumOrder          = 0.00;
MinimumOrderPrompt    = 'Your order is below our minimum order, please order more before checking out.';
bAdjustShipping       = true;   //Adjust Shipping amount
fFreeShipping         = 74;     //Free shipping if over amount of $$
fMaxItemsPerShipRate  = 15;      //Max items to ship per shipping rate
fShippingAdjust       = 0.00;    //Amount to add Shipping + Amt(Qty-1)
fShippingRate         = 0.00;   //Shipping per Item
fItemsOrdered         = 0;    // Total Items ordered
fMaxCart              = 500;   // Maximum number of items per cart
sCookiePath           = '/equestrian';  //Shopping Cart Domain visibility set to '/' if visible to all
nCookieExpiration     = 360;  //Shopping Cart expiration hours  set to 0 if expires when closing page 360
sCShirtItemPrefix     = "XXX"; // Custom TShirts Item Prefix
nCShirtPrice1         = 42;  //Price per nShirtMax
nCShirtMax1           = 1;   //Max Units 1
nCShirtPrice2         = 37;  //Price per nShirtMax
nCShirtMax2           = 2;   //Max Units 1
nCShirtPrice3         = 30;  //Price per nShirtMax
nCShirtMax3           = 5;   //Max Units 1
nCShirtPrice4         = 24;  //Price per nShirtMax

//Payment Processor Options:
PaymentProcessor      = 'pp';

//Options for Programmers:
//PayPal
OutputItemId          = 'item_number_';
OutputItemQuantity    = 'quantity_';
OutputItemPrice       = 'amount_';
OutputItemName        = 'item_name_';
OutputItemShipping    = 'shipping_';
OutputItemAddtlInfo   = 'item_name_additional_';
OutputOrderSubtotal   = 'subtotal';
OutputOrderShipping   = 'shipping';
OutputOrderTax        = 'tax_cart';
OutputOrderTotal      = 'amount';
AppendItemNumToOutput = true;
HiddenFieldsToCheckout = false;


//=====================================================================||
//---------------------------------------------------------------------||
//    YOU DO NOT NEED TO MAKE ANY MODIFICATIONS BELOW THIS LINE        ||
//---------------------------------------------------------------------||
//=====================================================================||


//---------------------------------------------------------------------||
//                      Language Strings                               ||
//                     ------------------                              ||
// These strings will not be used unless you have not included a       ||
// language pack already.  You should NOT modify these, but instead    ||
// modify the strings in language-**.js where ** is the language pack  ||
// you are using.                                                      ||
//---------------------------------------------------------------------||
if ( !bLanguageDefined ) {
   strSorry  = "I'm Sorry, your cart is full, please proceed to checkout.";
   strAdded  = " added to your shopping cart.";
   strRemove = "Click 'Ok' to remove this product from your shopping cart.";
   strILabel = "Product Id";
   strDLabel = "Product Name/Description";
   strQLabel = "Quantity";
   strPLabel = "Price";
   strSLabel = "Shipping & Handling";
   strRLabel = "Remove From Cart";
   strRButton= "Remove";
   strSUB    = "Subtotal:";
   strSHIP   = "Shipping:";
   strTAX    = "Sales Tax:";
   strTOT    = "Order Total:";
   strErrQty = "Invalid Quantity.";
   strNewQty = 'Please enter new quantity:';
   bLanguageDefined = true;
}


//---------------------------------------------------------------------||
// 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";

   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 = "";
   var iCounter = 0;
   var sNameHolder = "";
   var iPStockLength = thisForm.PaperStock.length;
   var iPSizeLength = thisForm.PhotoSize.length;
   var itemsadded = "";
   
   iNumberOrdered = GetCookie("NumberOrdered");

   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

   if ( thisForm.ID_NUM == null ) {
      strID_NUM    = "";
   } else {
      strID_NUM    = thisForm.ID_NUM.value;
   }

   if ( thisForm.QUANTITY.value == "" ) {
      strQUANTITY  = "1";
   } else {
      strQUANTITY  = thisForm.QUANTITY.value;
   }
   //if ( thisForm.NAME == null )
   //   strNAME      = "";
   //else
   //   strNAME      = thisForm.NAME.value;
   // Get PaperStock and PhotoSize from radio button selections
   for (iCounter = 0; iCounter < iPStockLength; iCounter++) {
        if (thisForm.PaperStock[iCounter].checked)
            break;
   }

	strICON = thisForm.PhotoIcon.value;

	sNameHolder = thisForm.PaperStock[iCounter].value;

   for (iCounter = 0; iCounter < iPSizeLength; iCounter++) {
	    bAlreadyInCart = false;
        if (thisForm.PhotoSize[iCounter].checked) {
   			strNAME = sNameHolder + " " + thisForm.NAME[iCounter].value;

   			strPRICE = thisForm.PRICE[iCounter].value;

   			if ( thisForm.SHIPPING == null ) {
      			strSHIPPING  = "0.00";
			} else {
      			strSHIPPING  = thisForm.SHIPPING[iCounter].value;
			}
   			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;
   			}

   			//Is this product already in the cart?  If so, increment quantity instead of adding another.
   			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);

      			fields = new Array;
      			fields[0] = database.substring( 0, Token0 );
      			fields[1] = database.substring( Token0+1, Token1 );
      			fields[2] = database.substring( Token1+1, Token2 );
     			fields[3] = database.substring( Token2+1, Token3 );
      			fields[4] = database.substring( Token3+1, Token4 );
      			fields[5] = database.substring( Token4+1, Token5 );
      			fields[6] = database.substring( Token5+1, database.length );

      			if ( fields[0] == strID_NUM &&
           			fields[2] == strPRICE  &&
           			fields[3] == strNAME   &&
           			fields[5] == strADDTLINFO
         			) {
         			bAlreadyInCart = true;
         			dbUpdatedOrder = strID_NUM    + "|" +
                          (parseInt(strQUANTITY)+parseInt(fields[1]))  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;
         			strNewOrder = "Order." + i;
         			DeleteCookie(strNewOrder, sCookiePath);
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
         			break;
      			}
   			}

   			if ( !bAlreadyInCart ) {
      			iNumberOrdered++;

      			if ( iNumberOrdered > fMaxCart ) {
         			notice = strSorry;
				} else {
         			dbUpdatedOrder = strID_NUM    + "|" + 
                          strQUANTITY  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;

         			strNewOrder = "Order." + iNumberOrdered;
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			SetCookie("NumberOrdered", iNumberOrdered, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
      			}
   			}
		}
		if (notice != "") {
			itemsadded += notice + "\n";
			notice = "";
		}
   }
   if ( DisplayNotice )
      alert(itemsadded);
	  location.href=location.href;

}


//---------------------------------------------------------------------||
// FUNCTION:    getCookieVal                                           ||
// PARAMETERS:  offset                                                 ||
// RETURNS:     URL unescaped Cookie Value                             ||
// PURPOSE:     Get a specific value from a cookie                     ||
//---------------------------------------------------------------------||
function getCookieVal (offset) {
   var endstr = document.cookie.indexOf (";", offset);

   if ( endstr == -1 )
      endstr = document.cookie.length;
   return(unescape(document.cookie.substring(offset, endstr)));
}


//---------------------------------------------------------------------||
// FUNCTION:    FixCookieDate                                          ||
// PARAMETERS:  date                                                   ||
// RETURNS:     date                                                   ||
// PURPOSE:     Fixes cookie date, stores back in date                 ||
//---------------------------------------------------------------------||
function FixCookieDate (date) {
   var base = new Date(0);
   var skew = base.getTime();

   date.setTime (date.getTime() - skew);
}


//---------------------------------------------------------------------||
// FUNCTION:    GetCookie                                              ||
// PARAMETERS:  Name                                                   ||
// RETURNS:     Value in Cookie                                        ||
// PURPOSE:     Retrieves cookie from users browser                    ||
//---------------------------------------------------------------------||
function GetCookie (name) {
   var arg = name + "=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;

   while ( i < clen ) {
      var j = i + alen;
      if ( document.cookie.substring(i, j) == arg ) return(getCookieVal (j));
      i = document.cookie.indexOf(" ", i) + 1;
      if ( i == 0 ) break;
   }

   return(null);
}


//---------------------------------------------------------------------||
// FUNCTION:    SetCookie                                              ||
// PARAMETERS:  name, value, expiration date, path, domain, security   ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Stores a cookie in the users browser                   ||
//              expiration date changed to hours                       ||
//---------------------------------------------------------------------||
function SetCookie (name,value,expires,path,domain,secure) {
	
	// added to get number of hours
	if (expires > 0) {
		dexpires = new Date((new Date()).getTime() + expires*3600000);
	} else {
		dexpires = null;
	}
	// end add
   document.cookie = name + "=" + escape (value) +
                     ((expires) ? "; expires=" + dexpires.toGMTString() : "") +
                     ((path) ? "; path=" + path : "") +
                     ((domain) ? "; domain=" + domain : "") +
                     ((secure) ? "; secure" : "");
}


//---------------------------------------------------------------------||
// FUNCTION:    DeleteCookie                                           ||
// PARAMETERS:  Cookie name, path, domain                              ||
// RETURNS:     null                                                   ||
// PURPOSE:     Removes a cookie from users browser.                   ||
//---------------------------------------------------------------------||
function DeleteCookie (name,path,domain) {
   if ( GetCookie(name) ) {
      document.cookie = name + "=" +
                        ((path) ? "; path=" + path : "") +
                        ((domain) ? "; domain=" + domain : "") +
                        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
   }
}


//---------------------------------------------------------------------||
// FUNCTION:    MoneyFormat                                            ||
// PARAMETERS:  Number to be formatted                                 ||
// RETURNS:     Formatted Number                                       ||
// PURPOSE:     Reformats Dollar Amount to #.## format                 ||
//---------------------------------------------------------------------||
function moneyFormat(input) {
   var dollars = Math.floor(input);
   var tmp = new String(input);

   for ( var decimalAt = 0; decimalAt < tmp.length; decimalAt++ ) {
      if ( tmp.charAt(decimalAt)=="." )
         break;
   }

   var cents  = "" + Math.round(input * 100);
   cents = cents.substring(cents.length-2, cents.length)
           dollars += ((tmp.charAt(decimalAt+2)=="9")&&(cents=="00"))? 1 : 0;

   if ( cents == "0" )
      cents = "00";

   return(dollars + "." + cents);
}


//---------------------------------------------------------------------||
// FUNCTION:    RemoveFromCart                                         ||
// PARAMETERS:  Order Number to Remove                                 ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Removes an item from a users shopping cart             ||
//---------------------------------------------------------------------||
function RemoveFromCart(RemOrder) {
   if ( confirm( strRemove ) ) {
      NumberOrdered = GetCookie("NumberOrdered");
      for ( i=RemOrder; i < NumberOrdered; i++ ) {
         NewOrder1 = "Order." + (i+1);
         NewOrder2 = "Order." + (i);
         database = GetCookie(NewOrder1);
         SetCookie (NewOrder2, database, nCookieExpiration, sCookiePath);
      }
      NewOrder = "Order." + NumberOrdered;
      SetCookie ("NumberOrdered", NumberOrdered-1, nCookieExpiration, sCookiePath);
      DeleteCookie(NewOrder, sCookiePath);
      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 ( isNaN(NewQuantity) || NewQuantity <= 0) {
      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);

      fields = new Array;
      fields[0] = database.substring( 0, Token0 );					// Product Id
      fields[1] = database.substring( Token0+1, Token1 );			// Qty
      fields[2] = database.substring( Token1+1, Token2 );			// Price
      fields[3] = database.substring( Token2+1, Token3 );			// Description
      fields[4] = database.substring( Token3+1, Token4 );			// Shipping
      fields[5] = database.substring( Token4+1, Token5 );			// Additional Info
      fields[6] = database.substring( Token5+1, database.length );	// Icon

      dbUpdatedOrder = fields[0] + "|" +
                       NewQuantity + "|" +
                       fields[2] + "|" +
                       fields[3] + "|" +
                       fields[4] + "|" +
                       fields[5] + "|" +
                       fields[6];
      strNewOrder = "Order." + OrderItem;
      DeleteCookie(strNewOrder, sCookiePath);
      SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
      location.href=location.href;      
   }
}


//---------------------------------------------------------------------||
// FUNCTION:    GetFromCart                                            ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     Product Table Written to Document                      ||
// PURPOSE:     Draws current cart product table on HTML page          ||
//              **DEPRECATED FUNCTION, USE ManageCart or Checkout**    ||
//---------------------------------------------------------------------||
function GetFromCart( fShipping ) {
   ManageCart( );
}


//---------------------------------------------------------------------||
// 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;    //Number of products ordered
   var fTotal          = 0;    //Total cost of order
   var fItemSubTotal   = 0;    //Total per items
   var fTax            = 0;    //Tax amount
   var fShipping       = 0;    //Shipping amount
   var strTotal        = "0.00";   //Total cost formatted as money
   var strTax          = "0.00";   //Total tax formatted as money
   var strShipping     = "0.00";   //Total shipping formatted as money
   var strOutput       = "";   //String to be written to page
   var bDisplay        = true; //Whether to write string to the page (here for programmers)
   var aShippingRates  = new Array;  //Array of items shipping rates
   var fQuantity       = 0;  // Number of Items ordered

   iNumberOrdered = GetCookie("NumberOrdered");
   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

   //if ( bDisplay )
   //   strOutput = "<TABLE CLASS=\"nopcart\"><TR>" +
   //               "<TD CLASS=\"nopheader\"><B>"+strILabel+"</B></TD>" +
   //               "<TD CLASS=\"nopheader\"><B>"+strDLabel+"</B></TD>" +
   //               "<TD CLASS=\"nopheader\"><B>"+strQLabel+"</B></TD>" +
   //               "<TD CLASS=\"nopheader\"><B>"+strPLabel+"</B></TD>" +
   //               (DisplayShippingColumn?"<TD CLASS=\"nopheader\"><B>"+strSLabel+"</B></TD>":"") +
   //               "<TD CLASS=\"nopheader\"><B>"+strRLabel+"</B></TD></TR>";


   if ( iNumberOrdered == 0 ) {
      strOutput += "<TR height=\"34\" bgcolor=\"#a7e5d8\"><TD COLSPAN=7><font color=\"#770128\"><CENTER><BR><B>Your cart is empty</B><BR><BR></CENTER></font></TD></TR>";
   }
   
   // Fix CShirt prices
   AdjustCShirtPrices();

   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);

      fields = new Array;
      fields[0] = database.substring( 0, Token0 );                 // Product ID
      fields[1] = database.substring( Token0+1, Token1 );          // Quantity
      fields[2] = database.substring( Token1+1, Token2 );          // Price
      fields[3] = database.substring( Token2+1, Token3 );          // Product Name/Description
      fields[4] = database.substring( Token3+1, Token4 );          // Shipping Cost
      fields[5] = database.substring( Token4+1, Token5 );          // Additional Information
      fields[6] = database.substring( Token5+1, database.length ); // Image Icon

      fTotal        += ( parseInt(fields[1]) * parseFloat(fields[2]) );
	  
      fItemsOrdered  += parseInt(fields[1]);
	  
  	  // Do not count wall paper for shipping calculations
	  if (fields[0].substring(0,2) != "WP" ) 
	     fQuantity += parseInt(fields[1]);

      if ( bAdjustShipping ) {
		 aShippingRates[i-1] = parseFloat(fields[4]);
         //fShipping += parseFloat(fields[4]) * Math.ceil(parseInt(fields[1]) / fMaxItemsPerShipRate);
      } else {
         fShipping  += ( parseFloat(fields[4]) );
      }

      fItemSubTotal = ( parseInt(fields[1]) * parseFloat(fields[2]) );
      fTax          = (fTotal * TaxRate);
      strTotal      = moneyFormat(fTotal);
      strTax        = moneyFormat(fTax);
      strShipping   = moneyFormat(fShipping);

      if ( bDisplay ) {
         // Image Icon
         //<img src="images_angles/angels_s/DSC_0970_3bw_S.gif" alt="" height="180" width="140" border="0" />
         strOutput += "<TR height=\"47\" bgcolor=\"#a7e5d8\"><TD><CENTER><img src=\""  + fields[6] + "\" /></CENTER></TD>";

         // Item #
         strOutput += "<TD><CENTER>"  + fields[0] + "</CENTER></TD>";
         // Qty
         strOutput += "<TD><CENTER><INPUT TYPE=TEXT NAME=Q SIZE=2 VALUE=\"" + fields[1] + "\" onChange=\"ChangeQuantity("+i+", this.value);\"></CENTER></TD>";
         // Description
         //if ( fields[5] == "" )
            strOutput += "<TD><CENTER>"  + fields[3] + "</CENTER></TD>";
         //else
         //   strOutput += "<TD><CENTER>"  + fields[3] + " - <I>"+ fields[5] + "</I></CENTER></TD>";
         // Item Price
         strOutput += "<TD><CENTER>"+ MonetarySymbol + moneyFormat(fields[2]) + "</CENTER></TD>";
         //Item Sub Total
         strOutput += "<TD><CENTER>"+ MonetarySymbol + moneyFormat(fItemSubTotal) + "</CENTER></TD>";
         // Item Shipping
         if ( DisplayShippingColumn ) {
              if ( parseFloat(fields[4]) > 0 )
                 strOutput += "<TD><CENTER>"+ MonetarySymbol + moneyFormat(fields[4]) + "</CENTER></TD>";
         //     else
         //        strOutput += "<TD><div align=\"center\">N/A<\div></TD>";
         }
         // Remove Button
         strOutput += "<TD ALIGN=CENTER><input type=button value=\" "+strRButton+" \" onClick=\"RemoveFromCart("+i+")\"></TD></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=\"" + OutputItemName      + strFooter + "\" value=\"" + fields[3] + "\">";
         strOutput += "<input type=hidden name=\"" + OutputItemShipping  + strFooter + "\" value=\"" + fields[4] + "\">";
         strOutput += "<input type=hidden name=\"" + OutputItemAddtlInfo + strFooter + "\" value=\"" + fields[5] + "\">";
      }

   } // end of for shopping cart cookie iteration

   if (iNumberOrdered > 0) {
	   if ( bAdjustShipping ) {
		   	if (fFreeShipping != 0 && fTotal > fFreeShipping) {
				fShipping = 0.00;
	  		} else {
          		fShipping = HigherShipping( aShippingRates ) * Math.ceil(fQuantity / fMaxItemsPerShipRate);
			}
	   }
       strShipping = moneyFormat( fShipping );
   }

   if ( bDisplay ) {
      // Sub Total
      strOutput += "<TR height=\"34\" bgcolor=\"#4b4b4b\"><TD COLSPAN=5><div align=\"right\"><font color=\"#a7e5d8\"><B>"+strSUB+"  </B></font></div></TD>";
      strOutput += "<TD><CENTER><font color=\"#a7e5d8\"><B>" + MonetarySymbol + strTotal + "</B></font></CENTER></TD>";
      strOutput += "<TD></TD></TR>";
      // Total Shipping
      if ( DisplayShippingRow ) {
         strOutput += "<TR height=\"34\" bgcolor=\"#4b4b4b\"><TD COLSPAN=5><div align=\"right\"><font color=\"#a7e5d8\"><B>"+strSHIP+"  </B></font></div></TD>";
         strOutput += "<TD><CENTER><font color=\"#a7e5d8\"><B>" + MonetarySymbol + strShipping + "</B></font></CENTER></TD>";
         strOutput += "<TD></TD></TR>";
      }
      // Taxes by Region
      if ( DisplayTaxRow || TaxByRegion ) {
         if ( TaxByRegion ) {
            strOutput += "<TR height=\"34\" bgcolor=\"#4b4b4b\"><TD COLSPAN=5><div align=\"right\"><font color=\"#a7e5d8\"><B>"+strTAX+"  </B></font></div></TD>";
            strOutput += "<TD><font color=\"#a7e5d8\"><B>";
            strOutput += "<input type=radio name=\""+OutputOrderTax+"\" value=\"" + strTax + "\">";
            strOutput += TaxablePrompt + ": " + MonetarySymbol + strTax;
            strOutput += "<BR><input type=radio name=\""+OutputOrderTax+"\" value=\"0.00\">";
            strOutput += NonTaxablePrompt + ": " + MonetarySymbol + "0.00";
            strOutput += "</B></font></TD>";
            strOutput += "<TD></TD></TR>";
         } else {
            strOutput += "<TR height=\"34\" bgcolor=\"#4b4b4b\"><TD COLSPAN=5><div align=\"right\"><font color=\"#a7e5d8\"><B>"+strTAX+"  </B></font></div></TD>";
            strOutput += "<TD><CENTER><font color=\"#a7e5d8\"><B>" + MonetarySymbol + strTax + "</B></font></CENTER></TD>";
            strOutput += "<TD></TD></TR>";
         }
      }
      // Order Total
      if ( !TaxByRegion ) {
         strOutput += "<TR height=\"34\" bgcolor=\"#4b4b4b\"><TD COLSPAN=5><div align=\"right\"><font color=\"#a7e5d8\"><B>"+strTOT+"  </B></font></div></TD>";
         strOutput += "<TD><CENTER><font color=\"#a7e5d8\"><B>" + MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + "</B></font></CENTER></TD>";
         strOutput += "<TD></TD></TR>";
      }

      // Continue Shopping button
      //strOutput += "<table border=\"0\">"
      strOutput += "<TR height=\"47\" bgcolor=\"#deded8\">";
      //strOutput += "<td colspan=4><div align=\"left\">";
      //strOutput += "<input type=\"submit\" name=\"ContinueShopping\" value=\"Continue Shopping\"></div>";
      //strOutput += "</td>";

      // Checkout form/button
   	  strOutput += "<form id=\"form\" action=\"checkout.html\" method=\"get\" name=\"form\" onsubmit=\"return ValidateCart(this)\">";
      strOutput += "<td colspan=5 align=\"right\">";
	  strOutput += "<td align=\"center\"><input type=\"button\" name=\"Update\" value=\"Update\" onClick=\"location.href=location.href\">";
      strOutput += "<td align=\"center\"><input type=\"submit\" name=\"CheckOut\" value=\"Check Out\">";

      ////strOutput += "<TD colspan=6 ALIGN=right><input type=button value=\"Check Out\" onClick=\"checkout.html\">";
      /////strOutput += "<td colspan=6></td>";
      strOutput += "</td></form></tr>";

      //strOutput += "</TABLE>";

      if ( HiddenFieldsToCheckout ) {
         strOutput += "<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+ MonetarySymbol + strTotal + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+ MonetarySymbol + strShipping + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+ MonetarySymbol + strTax + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+ MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + "\">";
      }
   }
   g_TotalCost = (fTotal + fShipping + fTax);

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

//---------------------------------------------------------------------||
// FUNCTION:    ValidateCart                                           ||
// PARAMETERS:  Form to validate                                       ||
// RETURNS:     true/false                                             ||
// PURPOSE:     Validates the managecart form                          ||
//---------------------------------------------------------------------||
var g_TotalCost = 0;
function ValidateCart( theForm ) {
   if ( TaxByRegion ) {
      if ( !RadioChecked(eval("theForm."+OutputOrderTax)) ) {
         alert( TaxPrompt );
         return false;
      }
   }

   if ( MinimumOrder >= 0.01 ) {
      if ( g_TotalCost < MinimumOrder ) {
         alert( MinimumOrderPrompt );
         return false;
      }
   }

   return true;
}

//---------------------------------------------------------------------||
// 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;    //Number of products ordered
   var fTotal          = 0;    //Total cost of order
   var fItemSubTotal   = 0;    //Item Sub Total
   var fTax            = 0;    //Tax amount
   var fShipping       = 0;    //Shipping amount
   var strTotal        = "0.00";   //Total cost formatted as money
   var strTax          = "0.00";   //Total tax formatted as money
   var strShipping     = "0.00";   //Total shipping formatted as money
   var strOutput       = "";   //String to be written to page
   var bDisplay        = true; //Whether to write string to the page (here for programmers)
   var strPP           = "";   //Payment Processor Description Field
   var aShippingRates  = new Array;  //Array of items shipping rates
   var fQuantity       = 0;  // Number of Items ordered

   iNumberOrdered = GetCookie("NumberOrdered");
   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

   if ( TaxByRegion ) {
      QueryString_Parse();
      fTax = parseFloat( QueryString( OutputOrderTax ) );
      strTax = moneyFormat(fTax);
   }

   //if ( bDisplay )
   //   strOutput = "<TABLE CLASS=\"nopcart\"><TR>" +
   //               "<TD CLASS=\"nopheader\"><B>"+strILabel+"</B></TD>" +
   //               "<TD CLASS=\"nopheader\"><B>"+strDLabel+"</B></TD>" +
   //               "<TD CLASS=\"nopheader\"><B>"+strQLabel+"</B></TD>" +
   //               "<TD CLASS=\"nopheader\"><B>"+strPLabel+"</B></TD>" +
   //               (DisplayShippingColumn?"<TD CLASS=\"nopheader\"><B>"+strSLabel+"</B></TD>":"") +
   //               "</TR>";

	if ( iNumberOrdered == 0 ) {
      strOutput += "<TR height=\"34\" bgcolor=\"#a7e5d8\"><TD COLSPAN=5><font color=\"#770128\"><CENTER><BR><B>Your cart is empty</B><BR><BR></CENTER></font></TD></TR>";
   		}

   //Shopping cart items {Quantity,Id,Name,Price}
   aShoppingCart = new Array (iNumberOrdered);
   for (i=0; i< iNumberOrdered; i++) {
   		aShoppingCart[i] = new Array (4);
   }

   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);

      fields = new Array;
      fields[0] = database.substring( 0, Token0 );                 // Product ID
      fields[1] = database.substring( Token0+1, Token1 );          // Quantity
      fields[2] = database.substring( Token1+1, Token2 );          // Price
      fields[3] = database.substring( Token2+1, Token3 );          // Product Name/Description
      fields[4] = database.substring( Token3+1, Token4 );          // Shipping Cost
      fields[5] = database.substring( Token4+1, Token5 );          // Addtional Information
      fields[6] = database.substring( Token5+1, database.length ); // Photo Icon

      fTotal        += (parseInt(fields[1]) * parseFloat(fields[2]) );
      fItemSubTotal = (parseInt(fields[1]) * parseFloat(fields[2]) );
	  
	  // Do not count wall paper for shipping calculations
	  if (fields[0].substring(0,2) != "WP" )
	     fQuantity += parseInt(fields[1]);
	  
	  aShoppingCart[i-1][0] = fields[1];  //Qty
	  aShoppingCart[i-1][1] = fields[0];  //Product ID
	  aShoppingCart[i-1][2] = fields[3];  //Product Name/Description
	  aShoppingCart[i-1][3] = fields[2];  //Price

      if ( bAdjustShipping ) {
		 aShippingRates[i-1] = parseFloat(fields[4]);
         //fShipping += parseFloat(fields[4]) * Math.ceil(parseInt(fields[1]) / fMaxItemsPerShipRate);
      } else {
         fShipping  += ( parseFloat(fields[4]) );
      }

      if ( !TaxByRegion ) fTax = (fTotal * TaxRate);
      strTotal      = moneyFormat(fTotal);
      if ( !TaxByRegion ) strTax = moneyFormat(fTax);
      strShipping   = moneyFormat(fShipping);

      if ( bDisplay ) {
         // Item #
         strOutput += "<TR height=\"20\" bgcolor=\"#a7e5d8\"><TD><CENTER>"  + fields[0] + "</CENTER></TD>";
         // Qty
         strOutput += "<TD><CENTER>" + fields[1] + "</CENTER></TD>";
         // Description
         //if ( fields[5] == "" )
            strOutput += "<TD><CENTER>"  + fields[3] + "</CENTER></TD>";
         //else
         //   strOutput += "<TD><CENTER>"  + fields[3] + " - <I>"+ fields[5] + "</I></CENTER></TD>";
         // Item Price
         strOutput += "<TD><CENTER>"+ MonetarySymbol + moneyFormat(fields[2]) + "</CENTER></TD>";
         // Item Sub Total
         strOutput += "<TD><CENTER>"+ MonetarySymbol + moneyFormat(fItemSubTotal) + "</CENTER></TD>";
         // Item Shipping
         if ( DisplayShippingColumn ) {
            if ( parseFloat(fields[4]) > 0 )
               strOutput += "<TD><CENTER>"+ MonetarySymbol + moneyFormat(fields[4]) + "</CENTER></TD>";
         //  else
         //      strOutput += "<TD><div align=\"center\">N/A<\div></TD>";
         }
         strOutput += "</TR>";
      }

      if ( AppendItemNumToOutput ) {
         strFooter = i;
      } else {
         strFooter = "";
      }
      if ( PaymentProcessor != '' ) {
         //Process description field for payment processors instead of hidden values.
         //Format Description of product as:
         // ID, Name, Qty X
         strPP += fields[0] + ", " + fields[3];
         if ( fields[5] != "" )
            strPP += " - " + fields[5];
         strPP += ", Qty. " + fields[1] + "\n";
      } 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=\"" + OutputItemAddtlInfo + strFooter + "\" value=\"" + fields[5] + "\">";
      } 
   }

   if (iNumberOrdered > 0) {
	   if ( bAdjustShipping ) {
		   	if (fFreeShipping != 0 && fTotal > fFreeShipping) {
				fShipping = 0.00;
	  		} else {
          		fShipping = HigherShipping( aShippingRates ) * Math.ceil(fQuantity / fMaxItemsPerShipRate);
			}
	   }
       strShipping = moneyFormat( fShipping );
   }

   if ( bDisplay ) {
      strOutput += "<TR height=\"20\" bgcolor=\"#4b4b4b\"><TD COLSPAN=4><div align=\"right\"><font color=\"#a7e5d8\"><B>"+strSUB+"  </B></font></div></TD>";
      strOutput += "<TD><CENTER><font color=\"#a7e5d8\"><B>" + MonetarySymbol + strTotal + "</B></font></CENTER></TD>";
      strOutput += "<TD></TD></TR>";
      // strOutput += "<TR><TD COLSPAN=3><B>"+strSUB+"</B></TD>";
      // strOutput += "<TD COLSPAN=2 ALIGN=RIGHT><B>" + MonetarySymbol + strTotal + "</B></TD>";
      // strOutput += "</TR>";

      if ( DisplayShippingRow ) {
         strOutput += "<TR height=\"20\" bgcolor=\"#4b4b4b\"><TD COLSPAN=4><div align=\"right\"><font color=\"#a7e5d8\"><B>"+strSHIP+"  </B></font></div></TD>";
         strOutput += "<TD><CENTER><font color=\"#a7e5d8\"><B>" + MonetarySymbol + strShipping + "</B></font></CENTER></TD>";
         strOutput += "<TD></TD></TR>";
         // strOutput += "<TR><TD COLSPAN=3><B>"+strSHIP+"</B></TD>";
         // strOutput += "<TD COLSPAN=2 ALIGN=RIGHT><B>" + MonetarySymbol + strShipping + "</B></TD>";
         // strOutput += "</TR>";
      }

      if ( DisplayTaxRow || TaxByRegion ) {
         strOutput += "<TR height=\"20\" bgcolor=\"#4b4b4b\"><TD COLSPAN=4><div align=\"right\"><font color=\"#a7e5d8\"><B>"+strTAX+"  </B></font></div></TD>";
         strOutput += "<TD><CENTER><font color=\"#a7e5d8\"><B>" + MonetarySymbol + strTax + "</B></font></CENTER></TD>";
         strOutput += "<TD></TD></TR>";

         // strOutput += "<TR><TD COLSPAN=3><B>"+strTAX+"</B></TD>";
         // strOutput += "<TD COLSPAN=2 ALIGN=RIGHT><B>" + MonetarySymbol + strTax + "</B></TD>";
         // strOutput += "</TR>";
      }
      strOutput += "<TR height=\"20\" bgcolor=\"#4b4b4b\"><TD COLSPAN=4><div align=\"right\"><font color=\"#a7e5d8\"><B>"+strTOT+"  </B></font></div></TD>";
      strOutput += "<TD><CENTER><font color=\"#a7e5d8\"><B>" + MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + "</B></font></CENTER></TD>";
      strOutput += "<TD></TD></TR>";

      // strOutput += "<TR><TD COLSPAN=3><B>"+strTOT+"</B></TD>";
      // strOutput += "<TD COLSPAN=2 ALIGN=RIGHT><B>" + MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + "</B></TD>";
      // strOutput += "</TR>";

      //strOutput += "</TABLE>";

      
      if ( PaymentProcessor == 'an') {
         //Process this for Authorize.net WebConnect
         strOutput += "<input type=hidden name=\"x_Version\" value=\"3.0\">";
         strOutput += "<input type=hidden name=\"x_Show_Form\" value=\"PAYMENT_FORM\">";
         strOutput += "<input type=hidden name=\"x_Description\" value=\""+ strPP + "\">";
         strOutput += "<input type=hidden name=\"x_Amount\" value=\""+ moneyFormat((fTotal + fShipping + fTax)) + "\">";
      } else if ( PaymentProcessor == 'wp') {
         //Process this for WorldPay
         strOutput += "<input type=hidden name=\"desc\" value=\""+ strPP + "\">";
         strOutput += "<input type=hidden name=\"amount\" value=\""+ moneyFormat((fTotal + fShipping + fTax)) + "\">";
      } else if ( PaymentProcessor == 'lp') {
         //Process this for LinkPoint         
         strOutput += "<input type=hidden name=\"mode\" value=\"fullpay\">";
         strOutput += "<input type=hidden name=\"chargetotal\" value=\""+ moneyFormat((fTotal + fShipping + fTax)) + "\">";
         strOutput += "<input type=hidden name=\"tax\" value=\""+ MonetarySymbol + strTax + "\">";
         strOutput += "<input type=hidden name=\"subtotal\" value=\""+ MonetarySymbol + strTotal + "\">";
         strOutput += "<input type=hidden name=\"shipping\" value=\""+ MonetarySymbol + strShipping + "\">";
         strOutput += "<input type=hidden name=\"desc\" value=\""+ strPP + "\">";
      } else if (PaymentProcessor == 'pp') {
         //Process this for PayPal
         strOutput += "<input type=hidden name=\"cmd\" value=\"_cart\">";
         strOutput += "<input type=hidden name=\"upload\" value=\"1\">";
         strOutput += "<input type=hidden name=\"business\" value=\"ogalan\@oscargalan.com\">";
         strOutput += "<input type=hidden name=\"cancel_return\" value=\"http://www.oscargalansports.com/equestrian/transact_cancel.html\">";
         strOutput += "<input type=hidden name=\"return\" value=\"http://www.oscargalansports.com/equestrian/transact_complete.html\">";
         // strOutput += "<input type=hidden name=\"item_name\" value=\"" + strPP + "\">";
		 // strOutput += "<input type=hidden name=\"amount\" value=\""+ moneyFormat((fTotal + fTax)) + "\">";
         strOutput += "<input type=hidden name=\"shipping_1\" value=\""+ moneyFormat(fShipping) + "\">";
		 for ( i = 1; i <= iNumberOrdered; i++ ) {
			 strOutput += "<input type=hidden name=\"quantity_" + i + "\" value=\""+ aShoppingCart[i-1][0] + "\">";
			 strOutput += "<input type=hidden name=\"item_number_" + i + "\" value=\"" + aShoppingCart[i-1][1] + "\">";
			 strOutput += "<input type=hidden name=\"item_name_" + i + "\" value=\"" + aShoppingCart[i-1][2] + "\">";
			 strOutput += "<input type=hidden name=\"amount_" + i + "\" value=\""+ moneyFormat(aShoppingCart[i-1][3]) + "\">";
		 }
      } else {
         strOutput += "<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+ MonetarySymbol + strTotal + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+ MonetarySymbol + strShipping + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+ MonetarySymbol + strTax + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+ MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + "\">";
      }
   }

	strOutput += "<tr>";
	strOutput += "<td bgcolor=\"#deded8\" width=\"612\" height=\"35\" colspan=\"4\"></td>";
	if ( iNumberOrdered == 0 ) {
		strOutput += "<td bgcolor=\"#deded8\" align=\"center\" valign=\"middle\" width=\"132\"><input type=\"button\" value=\"Submit Order\" /></td>";
	} else {
		strOutput += "<td bgcolor=\"#deded8\" align=\"center\" valign=\"middle\" width=\"132\"><input type=\"submit\" value=\"Submit Order\" /></td>";
	}
	strOutput += "</tr>";

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

//=====================================================================||
//               END NOP Design SmartPost Shopping Cart                ||
//=====================================================================||
//---------------------------------------------------------------------||
// FUNCTION:    HigherShipping                                         ||
// PARAMETERS:  Array with shipping rates                              ||
// RETURNS:     Highest value in array                                 ||
// PURPOSE:     To find highest shipping rate                          ||
//---------------------------------------------------------------------||

function HigherShipping( aShippingRates ) {

	var iCounter = 0;
	var iShipRates = aShippingRates.length;
	var fMaxShipRate = aShippingRates[0];

	for ( iCounter = 1; iCounter <= iShipRates; iCounter++ ) {
		if ( aShippingRates[iCounter] > fMaxShipRate ) {
			fMaxShipRate = aShippingRates[iCounter];
		}
	}

	return fMaxShipRate;
}

//---------------------------------------------------------------------||
// FUNCTION:    AddToCart2                                             ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//              Wall Clings add to cart                                ||
//---------------------------------------------------------------------||
function AddToCart2(thisForm) {
   var iNumberOrdered = 0;
   var bAlreadyInCart = false;
   var notice = "";
   var iCounter = 0;
   var sNameHolder = "";
   var iPSizeLength = thisForm.PhotoSize.length;
   var itemsadded = "";
   
   iNumberOrdered = GetCookie("NumberOrdered");

   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

   if ( thisForm.ID_NUM == null ) {
      strID_NUM    = "";
   } else {
      strID_NUM    = thisForm.ID_NUM.value;
   }

   if ( thisForm.QUANTITY.value == "" ) {
      strQUANTITY  = "1";
   } else {
      strQUANTITY  = thisForm.QUANTITY.value;
   }
   //if ( thisForm.NAME == null )
   //   strNAME      = "";
   //else
   //   strNAME      = thisForm.NAME.value;
   // Get PaperStock and PhotoSize from radio button selections

	strICON = thisForm.PhotoIcon.value;

   for (iCounter = 0; iCounter < iPSizeLength; iCounter++) {
	    bAlreadyInCart = false;
        if (thisForm.PhotoSize[iCounter].checked) {
   			strNAME = thisForm.NAME[iCounter].value;

   			strPRICE = thisForm.PRICE[iCounter].value;

   			if ( thisForm.SHIPPING == null ) {
      			strSHIPPING  = "0.00";
			} else {
      			strSHIPPING  = thisForm.SHIPPING[iCounter].value;
			}
   			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;
   			}

   			//Is this product already in the cart?  If so, increment quantity instead of adding another.
   			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);

      			fields = new Array;
      			fields[0] = database.substring( 0, Token0 );
      			fields[1] = database.substring( Token0+1, Token1 );
      			fields[2] = database.substring( Token1+1, Token2 );
     			fields[3] = database.substring( Token2+1, Token3 );
      			fields[4] = database.substring( Token3+1, Token4 );
      			fields[5] = database.substring( Token4+1, Token5 );
      			fields[6] = database.substring( Token5+1, database.length );

      			if ( fields[0] == strID_NUM &&
           			fields[2] == strPRICE  &&
           			fields[3] == strNAME   &&
           			fields[5] == strADDTLINFO
         			) {
         			bAlreadyInCart = true;
         			dbUpdatedOrder = strID_NUM    + "|" +
                          (parseInt(strQUANTITY)+parseInt(fields[1]))  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;
         			strNewOrder = "Order." + i;
         			DeleteCookie(strNewOrder, sCookiePath);
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
         			break;
      			}
   			}

   			if ( !bAlreadyInCart ) {
      			iNumberOrdered++;

      			if ( iNumberOrdered > fMaxCart ) {
         			notice = strSorry;
				} else {
         			dbUpdatedOrder = strID_NUM    + "|" + 
                          strQUANTITY  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;

         			strNewOrder = "Order." + iNumberOrdered;
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			SetCookie("NumberOrdered", iNumberOrdered, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
      			}
   			}
		}
		if (notice != "") {
			itemsadded += notice + "\n";
			notice = "";
		}
   }
   if ( DisplayNotice )
      alert(itemsadded);
	  location.href=location.href;

}

//---------------------------------------------------------------------||
// FUNCTION:    AddToCart3                                             ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//              *** Mobile Phone Wallpaper AddToCart                   ||
//---------------------------------------------------------------------||
function AddToCart3(thisForm) {
   var iNumberOrdered = 0;
   var bAlreadyInCart = false;
   var notice = "";
   iNumberOrdered = GetCookie("NumberOrdered");
   
   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

   if ( thisForm.ID_NUM == null )
      strID_NUM    = "";
   else
      strID_NUM    = thisForm.ID_NUM.value;

   if ( thisForm.QUANTITY.value == "" )
      strQUANTITY  = "1";
   else
      strQUANTITY  = thisForm.QUANTITY.value;

   if ( thisForm.NAME == null )
      strNAME      = "";
   else
      strNAME      = thisForm.NAME.value;
	  
   if ( thisForm.PhoneModel.value == "Not Listed" )
	  strNAME += " - " + thisForm.txtMobileModel.value;
   else
      strNAME += " - " + thisForm.PhoneModel.value;

   if (thisForm.WallpaperTransfer[0].checked)
      strNAME += " - eMail Msg: " + thisForm.txteMailAdd.value;
   else
      strNAME += " - MMS Msg: " + thisForm.txtMobileNumber.value;

   strPRICE = thisForm.PRICE.value;

   strICON = thisForm.PhotoIcon.value;

   if ( thisForm.SHIPPING == null )
      strSHIPPING  = "0.00";
   else
      strSHIPPING  = thisForm.SHIPPING.value;

   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;
   }

   //Is this product already in the cart?  If so, increment quantity instead of adding another.
   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);

      fields = new Array;
      fields[0] = database.substring( 0, Token0 );
      fields[1] = database.substring( Token0+1, Token1 );
      fields[2] = database.substring( Token1+1, Token2 );
      fields[3] = database.substring( Token2+1, Token3 );
      fields[4] = database.substring( Token3+1, Token4 );
      fields[5] = database.substring( Token4+1, Token5 );
      fields[6] = database.substring( Token5+1, database.length );

      if ( fields[0] == strID_NUM &&
           fields[2] == strPRICE  &&
           fields[3] == strNAME   &&
           fields[5] == strADDTLINFO
         ) {
         bAlreadyInCart = true;
         dbUpdatedOrder = strID_NUM    + "|" +
                          (parseInt(strQUANTITY)+parseInt(fields[1]))  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;
         strNewOrder = "Order." + i;
         DeleteCookie(strNewOrder, sCookiePath);
         SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         notice = strQUANTITY + " " + strNAME + strAdded;
         break;
      }
   }

   if ( !bAlreadyInCart ) {
      iNumberOrdered++;

      if ( iNumberOrdered > fMaxCart )
         notice = strSorry;
      else {
         dbUpdatedOrder = strID_NUM    + "|" + 
                          strQUANTITY  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;

         strNewOrder = "Order." + iNumberOrdered;
         SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         SetCookie("NumberOrdered", iNumberOrdered, nCookieExpiration, sCookiePath);
         notice = strQUANTITY + " " + strNAME + strAdded;
      }
   }

   if ( DisplayNotice )
      alert(notice);
	  location.href=location.href;
}

//---------------------------------------------------------------------||
// FUNCTION:    AddToCart4                                             ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//              *** Custom TShirt AddToCart                            ||
//---------------------------------------------------------------------||
function AddToCart4(thisForm) {
   var iNumberOrdered = 0;
   var bAlreadyInCart = false;
   var notice = "";
   var iCounter = 0;
   var sNameHolder = "";
   var sSleeveType = "";
   var iSTypeLength = thisForm.ShirtType.length;
   var iSSizeLength = thisForm.SType.length;
   var itemsadded = "";
   var strQUANTITY = "";
   
   iNumberOrdered = GetCookie("NumberOrdered");

   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

   if ( thisForm.ID_NUM == null ) {
      strID_NUM    = "";
   } else {
      strID_NUM    = thisForm.ID_NUM.value;
   }

   	strPRICE = thisForm.PRICE.value;
   //if ( thisForm.QUANTITY.value == "" ) {
   //   strQUANTITY  = "1";
   //} else {
   //   strQUANTITY  = thisForm.QUANTITY.value;
   //}
   
   if (thisForm.SleeveShirt[0].checked) {
	  sSleeveType = thisForm.SleeveShirt[0].value;
   } else {
	  sSleeveType = thisForm.SleeveShirt[1].value;
   }

	strICON = thisForm.PhotoIcon.value;

   if ( thisForm.SHIPPING == null ) {
      strSHIPPING  = "0.00";
   } else {
      strSHIPPING  = thisForm.SHIPPING.value;
   }

   for (iCounter = 0; iCounter < iSTypeLength; iCounter++) {
        if (thisForm.ShirtType[iCounter].checked)
            break;
   }

	sNameHolder = thisForm.ShirtType[iCounter].value;

   for (iCounter = 0; iCounter < iSSizeLength; iCounter++) {
	    bAlreadyInCart = false;
        if (parseInt(thisForm.QUANTITY[iCounter].value) > 0  && thisForm.SType[iCounter].value == sNameHolder) {
   			strNAME = sNameHolder + " " + sSleeveType + " " + thisForm.NAME[iCounter].value;

		    strQUANTITY  = "" + parseInt(thisForm.QUANTITY[iCounter].value);

   			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;
   			}

   			//Is this product already in the cart?  If so, increment quantity instead of adding another.
   			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);

      			fields = new Array;
      			fields[0] = database.substring( 0, Token0 );
      			fields[1] = database.substring( Token0+1, Token1 );
      			fields[2] = database.substring( Token1+1, Token2 );
     			fields[3] = database.substring( Token2+1, Token3 );
      			fields[4] = database.substring( Token3+1, Token4 );
      			fields[5] = database.substring( Token4+1, Token5 );
      			fields[6] = database.substring( Token5+1, database.length );

      			if ( fields[0] == strID_NUM &&
           			fields[2] == strPRICE  &&
           			fields[3] == strNAME   &&
           			fields[5] == strADDTLINFO
         			) {
         			bAlreadyInCart = true;
         			dbUpdatedOrder = strID_NUM    + "|" +
                          (parseInt(strQUANTITY)+parseInt(fields[1]))  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;
         			strNewOrder = "Order." + i;
         			DeleteCookie(strNewOrder, sCookiePath);
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
         			break;
      			}
   			}

   			if ( !bAlreadyInCart ) {
      			iNumberOrdered++;

      			if ( iNumberOrdered > fMaxCart ) {
         			notice = strSorry;
				} else {
         			dbUpdatedOrder = strID_NUM    + "|" + 
                          strQUANTITY  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;

         			strNewOrder = "Order." + iNumberOrdered;
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			SetCookie("NumberOrdered", iNumberOrdered, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
      			}
   			}
		}
		if (notice != "") {
			itemsadded += notice + "\n";
			notice = "";
		}
   }
   
   AdjustCShirtPrices();
   
   if ( DisplayNotice )
      alert(itemsadded);
	  location.href=location.href;
}

//---------------------------------------------------------------------||
// FUNCTION:    AdjustCShirtPrices                                     ||
// PARAMETERS:  none                                                   ||
// RETURNS:     none                                                   ||
// PURPOSE:     To calculate Custom Shirt prices based on volume       ||
//              and values set up at top, updates cookie with          ||
//              new values, used be addtocart4 and managecart          ||
//---------------------------------------------------------------------||


function AdjustCShirtPrices() {
	
	aCShirtItemIds = new Array;
	aCShirtItemQtys = new Array;
	aCShirtItemPrices = new Array;
	fCShirtQty = 0;
	sCShirtItemId = "";
	bCShirtFound = false;
	iNumberOrdered = GetCookie("NumberOrdered");
	
	for ( i = 1; i <= iNumberOrdered; i++ ) {
      	NewOrder = "Order." + i;
    	database = "";
     	database = GetCookie(NewOrder);

      	Token0 = database.indexOf("|", 0);
      	Token1 = database.indexOf("|", Token0+1);
      	Token2 = database.indexOf("|", Token1+1);
      	Token3 = database.indexOf("|", Token2+1);
      	Token4 = database.indexOf("|", Token3+1);
      	Token5 = database.indexOf("|", Token4+1);

      	fields = new Array;
      	fields[0] = database.substring( 0, Token0 );                 // Product ID
      	fields[1] = database.substring( Token0+1, Token1 );          // Quantity
      	fields[2] = database.substring( Token1+1, Token2 );          // Price
      	fields[3] = database.substring( Token2+1, Token3 );          // Product Name/Description
      	fields[4] = database.substring( Token3+1, Token4 );          // Shipping Cost
      	fields[5] = database.substring( Token4+1, Token5 );          // Additional Information
      	fields[6] = database.substring( Token5+1, database.length ); // Image Icon

	  	// Get Quantity for Custom TShirts
	  	if (fields[0].substring(0,3) == sCShirtItemPrefix ) {
	    	sCShirtItemId = fields[0];
			bCShirtFound = false;
			if (aCShirtItemIds.length == 0 ) {
				aCShirtItemIds[0] = sCShirtItemId;
				aCShirtItemQtys[0] = parseInt(fields[1]);
				aCShirtItemPrices[0] = 0;
			} else {
				for ( x=0; x < aCShirtItemIds.length; x++) {
					if (aCShirtItemIds[x] == sCShirtItemId) {
						aCShirtItemQtys[x] += parseInt(fields[1]);
						bCShirtFound = true;
						break;
					}
				}
				if (!bCShirtFound) {
					aCShirtItemIds[aCShirtItemIds.length] = sCShirtItemId;
					aCShirtItemQtys[aCShirtItemQtys.length] = parseInt(fields[1]);
					aCShirtItemPrices[aCShirtItemPrices.length] = 0;
				}
			}
		}
	}

	// calculate price for each CShirt based on qty
	for (x=0; x < aCShirtItemIds.length; x++) {
		if (aCShirtItemQtys[x] == nCShirtMax1) {
			aCShirtItemPrices[x] = nCShirtPrice1;
		} else if (aCShirtItemQtys[x] > nCShirtMax1 && aCShirtItemQtys[x] <= nCShirtMax2) {
			aCShirtItemPrices[x] = nCShirtPrice2;
		} else if (aCShirtItemQtys[x] > nCShirtMax2 && aCShirtItemQtys[x] <= nCShirtMax3) {
			aCShirtItemPrices[x] = nCShirtPrice3;
		} else {
			aCShirtItemPrices[x] = nCShirtPrice4;
		}
	}

	// Update Cart with CShirt new prices
	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);

      	fields = new Array;
      	fields[0] = database.substring( 0, Token0 );
      	fields[1] = database.substring( Token0+1, Token1 );
      	fields[2] = database.substring( Token1+1, Token2 );
     	fields[3] = database.substring( Token2+1, Token3 );
      	fields[4] = database.substring( Token3+1, Token4 );
      	fields[5] = database.substring( Token4+1, Token5 );
      	fields[6] = database.substring( Token5+1, database.length );

		// Set new price for each CShirt
		if (fields[0].substring(0,3) == sCShirtItemPrefix ) { 
			for (x=0; x < aCShirtItemIds.length; x++) {
				if (aCShirtItemIds[x] == fields[0]) {
         			dbUpdatedOrder = fields[0]    + "|" +
                          fields[1]  + "|" +
                          aCShirtItemPrices[x]     + "|" +
                          fields[3]      + "|" +
                          fields[4]  + "|" +
                          fields[5] + "|" +
                          fields[6];
         			strNewOrder = "Order." + i;
         			DeleteCookie(strNewOrder, sCookiePath);
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
      			}
   			}
		}
	}
}

//---------------------------------------------------------------------||
// FUNCTION:    AddToCart5                                             ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//              *** BMX TShirt AddToCart                               ||
//---------------------------------------------------------------------||
function AddToCart5(thisForm) {
   var iNumberOrdered = 0;
   var bAlreadyInCart = false;
   var notice = "";
   var iCounter = 0;
   var sNameHolder = "";
   var sSleeveType = "";
   var iSTypeLength = thisForm.ShirtType.length;
   var iSSizeLength = thisForm.SType.length;
   var itemsadded = "";
   var strQUANTITY = "";
   
   iNumberOrdered = GetCookie("NumberOrdered");

   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

   if ( thisForm.ID_NUM == null ) {
      strID_NUM    = "";
   } else {
      strID_NUM    = thisForm.ID_NUM.value;
   }

   	strPRICE = thisForm.PRICE.value;
   //if ( thisForm.QUANTITY.value == "" ) {
   //   strQUANTITY  = "1";
   //} else {
   //   strQUANTITY  = thisForm.QUANTITY.value;
   //}
   
   if (thisForm.SleeveShirt[0].checked) {
	  sSleeveType = thisForm.SleeveShirt[0].value;
   } else {
	  sSleeveType = thisForm.SleeveShirt[1].value;
   }

	strICON = thisForm.PhotoIcon.value;

   if ( thisForm.SHIPPING == null ) {
      strSHIPPING  = "0.00";
   } else {
      strSHIPPING  = thisForm.SHIPPING.value;
   }

   for (iCounter = 0; iCounter < iSTypeLength; iCounter++) {
        if (thisForm.ShirtType[iCounter].checked)
            break;
   }

	sNameHolder = thisForm.ShirtType[iCounter].value;

   for (iCounter = 0; iCounter < iSSizeLength; iCounter++) {
	    bAlreadyInCart = false;
        if (parseInt(thisForm.QUANTITY[iCounter].value) > 0  && thisForm.SType[iCounter].value == sNameHolder) {
   			strNAME = sNameHolder + " " + sSleeveType + " " + thisForm.NAME[iCounter].value;

		    strQUANTITY  = "" + parseInt(thisForm.QUANTITY[iCounter].value);

   			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;
   			}

   			//Is this product already in the cart?  If so, increment quantity instead of adding another.
   			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);

      			fields = new Array;
      			fields[0] = database.substring( 0, Token0 );
      			fields[1] = database.substring( Token0+1, Token1 );
      			fields[2] = database.substring( Token1+1, Token2 );
     			fields[3] = database.substring( Token2+1, Token3 );
      			fields[4] = database.substring( Token3+1, Token4 );
      			fields[5] = database.substring( Token4+1, Token5 );
      			fields[6] = database.substring( Token5+1, database.length );

      			if ( fields[0] == strID_NUM &&
           			fields[2] == strPRICE  &&
           			fields[3] == strNAME   &&
           			fields[5] == strADDTLINFO
         			) {
         			bAlreadyInCart = true;
         			dbUpdatedOrder = strID_NUM    + "|" +
                          (parseInt(strQUANTITY)+parseInt(fields[1]))  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;
         			strNewOrder = "Order." + i;
         			DeleteCookie(strNewOrder, sCookiePath);
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
         			break;
      			}
   			}

   			if ( !bAlreadyInCart ) {
      			iNumberOrdered++;

      			if ( iNumberOrdered > fMaxCart ) {
         			notice = strSorry;
				} else {
         			dbUpdatedOrder = strID_NUM    + "|" + 
                          strQUANTITY  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;

         			strNewOrder = "Order." + iNumberOrdered;
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			SetCookie("NumberOrdered", iNumberOrdered, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
      			}
   			}
		}
		if (notice != "") {
			itemsadded += notice + "\n";
			notice = "";
		}
   }
   
   if ( DisplayNotice )
      alert(itemsadded);
	  location.href=location.href;
}

//---------------------------------------------------------------------||
// FUNCTION:    DeleteAllCookies                                       ||
// PARAMETERS:  Cookie name, path, domain                              ||
// RETURNS:     null                                                   ||
// PURPOSE:     Removes all cookie from users browser.                 ||
//---------------------------------------------------------------------||

function DeleteAllCookies () {
	
	var iNumberOrdered = 0;
	var strNewOrder = "";
	var d = new Date();

	iNumberOrdered = GetCookie("NumberOrdered");
	SetCookie("NumberOrdered", 0, nCookieExpiration, sCookiePath);

	
	for ( i = 1; i <= iNumberOrdered; i++ ) {
		strNewOrder = "Order." + i;
		document.cookie = strNewOrder + ";expires=" + d.toGMTString() + ";" + ";";
	}

}
//---------------------------------------------------------------------||
// FUNCTION:    AddToCart6                                             ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//              *** BMX TShirt AddToCart  - NEW                        ||
//---------------------------------------------------------------------||
function AddToCart6(thisForm) {
   var iNumberOrdered = 0;
   var bAlreadyInCart = false;
   var notice = "";
   var iCounter = 0;
   var sNameHolder = "";
   var sSleeveType = "";
   var sTShirtStyle = "";
   var iSTypeLength = thisForm.ShirtType.length;
   var iSSizeLength = thisForm.SType.length;
   var itemsadded = "";
   var strQUANTITY = "";
   
   iNumberOrdered = GetCookie("NumberOrdered");

   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

   if ( thisForm.ID_NUM == null ) {
      strID_NUM    = "";
   } else {
      strID_NUM    = thisForm.ID_NUM.value;
   }

   	strPRICE = thisForm.PRICE.value;
   //if ( thisForm.QUANTITY.value == "" ) {
   //   strQUANTITY  = "1";
   //} else {
   //   strQUANTITY  = thisForm.QUANTITY.value;
   //}
   
   if (thisForm.SleeveShirt[0].checked) {
	  sSleeveType = thisForm.SleeveShirt[0].value;
   } else {
	  sSleeveType = thisForm.SleeveShirt[1].value;
   }

   if (thisForm.ShirtStyle[0].checked) {
	  sTShirtStyle = thisForm.ShirtStyle[0].value;
   } else {
	  sTShirtStyle = thisForm.ShirtStyle[1].value;
   }
   
	strICON = thisForm.PhotoIcon.value;

   if ( thisForm.SHIPPING == null ) {
      strSHIPPING  = "0.00";
   } else {
      strSHIPPING  = thisForm.SHIPPING.value;
   }

   for (iCounter = 0; iCounter < iSTypeLength; iCounter++) {
        if (thisForm.ShirtType[iCounter].checked)
            break;
   }

	sNameHolder = thisForm.ShirtType[iCounter].value;

   for (iCounter = 0; iCounter < iSSizeLength; iCounter++) {
	    bAlreadyInCart = false;
        if (parseInt(thisForm.QUANTITY[iCounter].value) > 0  && thisForm.SType[iCounter].value == sNameHolder) {
   			strNAME = sNameHolder + " " + sSleeveType + " " + sTShirtStyle + " " + thisForm.ShirtSize[iCounter].value;

		    strQUANTITY  = "" + parseInt(thisForm.QUANTITY[iCounter].value);

   			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;
   			}

   			//Is this product already in the cart?  If so, increment quantity instead of adding another.
   			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);

      			fields = new Array;
      			fields[0] = database.substring( 0, Token0 );
      			fields[1] = database.substring( Token0+1, Token1 );
      			fields[2] = database.substring( Token1+1, Token2 );
     			fields[3] = database.substring( Token2+1, Token3 );
      			fields[4] = database.substring( Token3+1, Token4 );
      			fields[5] = database.substring( Token4+1, Token5 );
      			fields[6] = database.substring( Token5+1, database.length );

      			if ( fields[0] == strID_NUM &&
           			fields[2] == strPRICE  &&
           			fields[3] == strNAME   &&
           			fields[5] == strADDTLINFO
         			) {
         			bAlreadyInCart = true;
         			dbUpdatedOrder = strID_NUM    + "|" +
                          (parseInt(strQUANTITY)+parseInt(fields[1]))  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;
         			strNewOrder = "Order." + i;
         			DeleteCookie(strNewOrder, sCookiePath);
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
         			break;
      			}
   			}

   			if ( !bAlreadyInCart ) {
      			iNumberOrdered++;

      			if ( iNumberOrdered > fMaxCart ) {
         			notice = strSorry;
				} else {
         			dbUpdatedOrder = strID_NUM    + "|" + 
                          strQUANTITY  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;

         			strNewOrder = "Order." + iNumberOrdered;
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			SetCookie("NumberOrdered", iNumberOrdered, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
      			}
   			}
		}
		if (notice != "") {
			itemsadded += notice + "\n";
			notice = "";
		}
   }
   
   if ( DisplayNotice )
      alert(itemsadded);
	  location.href=location.href;
}
//---------------------------------------------------------------------||
// FUNCTION:    AddToCart7                                             ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//              *** BMX Collage AddToCart  - NEW                       ||
//---------------------------------------------------------------------||
function AddToCart7(thisForm) {
   var iNumberOrdered = 0;
   var bAlreadyInCart = false;
   var notice = "";
   var iCounter = 0;
   var sNameHolder = "";
   var sPaperStock = "";
   var sCollageFormat = "";
   var sCollageSize = "";
   var sCollageName = "";
   var iCollageFormatLength = thisForm.CollageFormat.length;
   var iCollageSizeLength = thisForm.CollageSize.length;
   var itemsadded = "";
   var strQUANTITY = "";
   
   iNumberOrdered = GetCookie("NumberOrdered");

   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

   if ( thisForm.ID_NUM == null ) {
      strID_NUM    = "";
   } else {
      strID_NUM    = thisForm.ID_NUM.value;
   }

   if ( thisForm.QUANTITY.value == "" ) {
      strQUANTITY  = "1";
   } else {
      strQUANTITY  = thisForm.QUANTITY.value;
   }
   
   if (thisForm.PaperStock[0].checked) {
	  sPaperStock = thisForm.PaperStock[0].value;
   } else {
	  sPaperStock = thisForm.PaperStock[1].value;
   }
	
	// Format
   for (iCounter = 0; iCounter < iCollageFormatLength; iCounter++) {
        if (thisForm.CollageFormat[iCounter].checked) {
			sCollageFormat = thisForm.CollageFormat[iCounter].value;
			sCollageName = thisForm.NAME[iCounter].value;
			sCollageIcon = thisForm.CollageIcon[iCounter].value;
            break;
   		}
   }

   if ( sCollageFormat != "" ) {
   	// Size
  	 for (iCounter = 0; iCounter < iCollageSizeLength; iCounter++) {
        	if (thisForm.CollageSize[iCounter].checked) {
				sCollageSize = thisForm.CollageSize[iCounter].value;
				sCollagePrice = thisForm.PRICE[iCounter].value;
            	break;
			}
   	 }
   }

	if (sCollageFormat == "") {
		iItemsToAdd = 1;
	} else {
		iItemsToAdd = 2;
	}
   for (iCounter = 0; iCounter < iItemsToAdd; iCounter++) {
	    bAlreadyInCart = false;
		// Add Photo
		if (iCounter == 0 ) {
			sNameHolder  = thisForm.CollagePhotoAdd.value;
			strICON      = thisForm.PhotoIcon.value;
			strSHIPPING  = 0.00;
			strID_NUM    = "P" + thisForm.ID_NUM.value;
			strPRICE     = 0.00;
		// Add Collage
		} else {
			sNameHolder  = sPaperStock + " " + sCollageFormat + " (" + sCollageName + ") " + sCollageSize + " Collage";
			strICON      = sCollageIcon;
			strSHIPPING  = thisForm.SHIPPING.value;
			strID_NUM    = thisForm.ID_NUM.value;
			strPRICE     = sCollagePrice;
		}
        // if (thisForm.PhotoSize[iCounter].checked) {
   			strNAME = sNameHolder;

   			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;
   			}

   			//Is this product already in the cart?  If so, increment quantity instead of adding another.
   			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);

      			fields = new Array;
      			fields[0] = database.substring( 0, Token0 );
      			fields[1] = database.substring( Token0+1, Token1 );
      			fields[2] = database.substring( Token1+1, Token2 );
     			fields[3] = database.substring( Token2+1, Token3 );
      			fields[4] = database.substring( Token3+1, Token4 );
      			fields[5] = database.substring( Token4+1, Token5 );
      			fields[6] = database.substring( Token5+1, database.length );

      			if ( fields[0] == strID_NUM &&
           			fields[2] == strPRICE  &&
           			fields[3] == strNAME   &&
           			fields[5] == strADDTLINFO
         			) {
         			bAlreadyInCart = true;
         			dbUpdatedOrder = strID_NUM    + "|" +
                          (parseInt(strQUANTITY)+parseInt(fields[1]))  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;
         			strNewOrder = "Order." + i;
         			DeleteCookie(strNewOrder, sCookiePath);
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
         			break;
      			}
   			}

   			if ( !bAlreadyInCart ) {
      			iNumberOrdered++;

      			if ( iNumberOrdered > fMaxCart ) {
         			notice = strSorry;
				} else {
         			dbUpdatedOrder = strID_NUM    + "|" + 
                          strQUANTITY  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;

         			strNewOrder = "Order." + iNumberOrdered;
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			SetCookie("NumberOrdered", iNumberOrdered, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
      			}
   			}
		// }

		if (notice != "") {
			itemsadded += notice + "\n";
			notice = "";
		}
   }
   
   if ( DisplayNotice )
      alert(itemsadded);
	  location.href=location.href;
}
//---------------------------------------------------------------------||
// FUNCTION:    AddToCart8                                             ||
// PARAMETERS:  Form Object                                            ||
// RETURNS:     Cookie to user's browser, with prompt                  ||
// PURPOSE:     Adds a product to the user's shopping cart             ||
//              *** BMX TShirt AddToCart  - NEW                        ||
//---------------------------------------------------------------------||
function AddToCart8(thisForm) {
   var iNumberOrdered = 0;
   var bAlreadyInCart = false;
   var notice = "";
   var iCounter = 0;
   var sNameHolder = "";
   var sSleeveType = "";
   var sTShirtStyle = "";
   var iSTypeLength = thisForm.ShirtType.length;
   var iSSizeLength = thisForm.SType.length;
   var itemsadded = "";
   var strQUANTITY = "";
   
   iNumberOrdered = GetCookie("NumberOrdered");

   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

   if ( thisForm.ID_NUM == null ) {
      strID_NUM    = "";
   } else {
      strID_NUM    = thisForm.ID_NUM.value;
   }

   	strPRICE = thisForm.PRICE.value;
   //if ( thisForm.QUANTITY.value == "" ) {
   //   strQUANTITY  = "1";
   //} else {
   //   strQUANTITY  = thisForm.QUANTITY.value;
   //}
   
   if (thisForm.SleeveShirt[0].checked) {
	  sSleeveType = thisForm.SleeveShirt[0].value;
   } else {
	  sSleeveType = thisForm.SleeveShirt[1].value;
   }

   if (thisForm.ShirtStyle[0].checked) {
	  sTShirtStyle = thisForm.ShirtStyle[0].value;
   } else {
	  sTShirtStyle = thisForm.ShirtStyle[1].value;
   }
   
	strICON = thisForm.PhotoIcon.value;

   if ( thisForm.SHIPPING == null ) {
      strSHIPPING  = "0.00";
   } else {
      strSHIPPING  = thisForm.SHIPPING.value;
   }

   for (iCounter = 0; iCounter < iSTypeLength; iCounter++) {
        if (thisForm.ShirtType[iCounter].checked)
            break;
   }

	sNameHolder = thisForm.ShirtType[iCounter].value;

   for (iCounter = 0; iCounter < iSSizeLength; iCounter++) {
	    bAlreadyInCart = false;
        if (parseInt(thisForm.QUANTITY[iCounter].value) > 0  && thisForm.SType[iCounter].value == sNameHolder) {
   			strNAME = sNameHolder + " " + sSleeveType + " " + sTShirtStyle + " " + thisForm.ShirtSize.value;

		    strQUANTITY  = "" + parseInt(thisForm.QUANTITY[iCounter].value);

   			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;
   			}

   			//Is this product already in the cart?  If so, increment quantity instead of adding another.
   			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);

      			fields = new Array;
      			fields[0] = database.substring( 0, Token0 );
      			fields[1] = database.substring( Token0+1, Token1 );
      			fields[2] = database.substring( Token1+1, Token2 );
     			fields[3] = database.substring( Token2+1, Token3 );
      			fields[4] = database.substring( Token3+1, Token4 );
      			fields[5] = database.substring( Token4+1, Token5 );
      			fields[6] = database.substring( Token5+1, database.length );

      			if ( fields[0] == strID_NUM &&
           			fields[2] == strPRICE  &&
           			fields[3] == strNAME   &&
           			fields[5] == strADDTLINFO
         			) {
         			bAlreadyInCart = true;
         			dbUpdatedOrder = strID_NUM    + "|" +
                          (parseInt(strQUANTITY)+parseInt(fields[1]))  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;
         			strNewOrder = "Order." + i;
         			DeleteCookie(strNewOrder, sCookiePath);
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
         			break;
      			}
   			}

   			if ( !bAlreadyInCart ) {
      			iNumberOrdered++;

      			if ( iNumberOrdered > fMaxCart ) {
         			notice = strSorry;
				} else {
         			dbUpdatedOrder = strID_NUM    + "|" + 
                          strQUANTITY  + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
                          strICON;

         			strNewOrder = "Order." + iNumberOrdered;
         			SetCookie(strNewOrder, dbUpdatedOrder, nCookieExpiration, sCookiePath);
         			SetCookie("NumberOrdered", iNumberOrdered, nCookieExpiration, sCookiePath);
         			notice = strQUANTITY + " " + strNAME + strAdded;
      			}
   			}
		}
		if (notice != "") {
			itemsadded += notice + "\n";
			notice = "";
		}
   }
   
   if ( DisplayNotice )
      alert(itemsadded);
	  location.href=location.href;
}


//=====================================================================||
//               Drop Down menu Script Start                           ||
//=====================================================================||

function expand(s)
{
  var td = s;
  var d = td.getElementsByTagName("div").item(0);

  td.className = "menuHover";
  d.className = "menuHover";
}

function collapse(s)
{
  var td = s;
  var d = td.getElementsByTagName("div").item(0);

  td.className = "menuNormal";
  d.className = "menuNormal";
}


//=====================================================================||
//               Drop Down menu Script End                             ||
//=====================================================================||

//=====================================================================||
//               Tool Tip menu Script Start                            ||
//=====================================================================||

/* --- BoxOver ---
/* --- v 2.1 17th June 2006
By Oliver Bryant with help of Matthew Tagg
http://boxover.swazz.org */

if (typeof document.attachEvent!='undefined') {
   window.attachEvent('onload',init);
   document.attachEvent('onmousemove',moveMouse);
   document.attachEvent('onclick',checkMove); }
else {
   window.addEventListener('load',init,false);
   document.addEventListener('mousemove',moveMouse,false);
   document.addEventListener('click',checkMove,false);
}

var oDv=document.createElement("div");
var dvHdr=document.createElement("div");
var dvBdy=document.createElement("div");
var windowlock,boxMove,fixposx,fixposy,lockX,lockY,fixx,fixy,ox,oy,boxLeft,boxRight,boxTop,boxBottom,evt,mouseX,mouseY,boxOpen,totalScrollTop,totalScrollLeft;
boxOpen=false;
ox=10;
oy=10;
lockX=0;
lockY=0;

function init() {
	oDv.appendChild(dvHdr);
	oDv.appendChild(dvBdy);
	oDv.style.position="absolute";
	oDv.style.visibility='hidden';
	document.body.appendChild(oDv);	
}

function defHdrStyle() {
	dvHdr.innerHTML='<img  style="vertical-align:middle"  src="info.gif">&nbsp;&nbsp;'+dvHdr.innerHTML;
	dvHdr.style.fontWeight='bold';
	dvHdr.style.width='150px';
	dvHdr.style.fontFamily='arial';
	dvHdr.style.border='1px solid #A5CFE9';
	dvHdr.style.padding='3';
	dvHdr.style.fontSize='11';
	dvHdr.style.color='#000000';  // old '#4B7A98';
	dvHdr.style.background='#4a7d85'; // old '#D5EBF9';
	dvHdr.style.filter='alpha(opacity=85)'; // IE
	dvHdr.style.opacity='0.85'; // FF
}

function defBdyStyle() {
	dvBdy.style.borderBottom='1px solid #A5CFE9';
	dvBdy.style.borderLeft='1px solid #A5CFE9';
	dvBdy.style.borderRight='1px solid #A5CFE9';
	dvBdy.style.width='150px';
	dvBdy.style.fontFamily='arial';
	dvBdy.style.fontSize='11';
	dvBdy.style.padding='3';
	dvBdy.style.color='#603137';  // old '#1B4966';
	dvBdy.style.background='#69adb5';  // old '#FFFFFF';
	dvBdy.style.filter='alpha(opacity=85)'; // IE
	dvBdy.style.opacity='0.85'; // FF
}

function checkElemBO(txt) {
if (!txt || typeof(txt) != 'string') return false;
if ((txt.indexOf('header')>-1)&&(txt.indexOf('body')>-1)&&(txt.indexOf('[')>-1)&&(txt.indexOf('[')>-1)) 
   return true;
else
   return false;
}

function scanBO(curNode) {
	  if (checkElemBO(curNode.title)) {
         curNode.boHDR=getParam('header',curNode.title);
         curNode.boBDY=getParam('body',curNode.title);
			curNode.boCSSBDY=getParam('cssbody',curNode.title);			
			curNode.boCSSHDR=getParam('cssheader',curNode.title);
			curNode.IEbugfix=(getParam('hideselects',curNode.title)=='on')?true:false;
			curNode.fixX=parseInt(getParam('fixedrelx',curNode.title));
			curNode.fixY=parseInt(getParam('fixedrely',curNode.title));
			curNode.absX=parseInt(getParam('fixedabsx',curNode.title));
			curNode.absY=parseInt(getParam('fixedabsy',curNode.title));
			curNode.offY=(getParam('offsety',curNode.title)!='')?parseInt(getParam('offsety',curNode.title)):10;
			curNode.offX=(getParam('offsetx',curNode.title)!='')?parseInt(getParam('offsetx',curNode.title)):10;
			curNode.fade=(getParam('fade',curNode.title)=='on')?true:false;
			curNode.fadespeed=(getParam('fadespeed',curNode.title)!='')?getParam('fadespeed',curNode.title):0.04;
			curNode.delay=(getParam('delay',curNode.title)!='')?parseInt(getParam('delay',curNode.title)):0;
			if (getParam('requireclick',curNode.title)=='on') {
				curNode.requireclick=true;
				document.all?curNode.attachEvent('onclick',showHideBox):curNode.addEventListener('click',showHideBox,false);
				document.all?curNode.attachEvent('onmouseover',hideBox):curNode.addEventListener('mouseover',hideBox,false);
			}
			else {// Note : if requireclick is on the stop clicks are ignored   			
   			if (getParam('doubleclickstop',curNode.title)!='off') {
   				document.all?curNode.attachEvent('ondblclick',pauseBox):curNode.addEventListener('dblclick',pauseBox,false);
   			}	
   			if (getParam('singleclickstop',curNode.title)=='on') {
   				document.all?curNode.attachEvent('onclick',pauseBox):curNode.addEventListener('click',pauseBox,false);
   			}
   		}
			curNode.windowLock=getParam('windowlock',curNode.title).toLowerCase()=='off'?false:true;
			curNode.title='';
			curNode.hasbox=1;
	   }
	   else
	      curNode.hasbox=2;   
}


function getParam(param,list) {
	var reg = new RegExp('([^a-zA-Z]' + param + '|^' + param + ')\\s*=\\s*\\[\\s*(((\\[\\[)|(\\]\\])|([^\\]\\[]))*)\\s*\\]');
	var res = reg.exec(list);
	var returnvar;
	if(res)
		return res[2].replace('[[','[').replace(']]',']');
	else
		return '';
}

function Left(elem){	
	var x=0;
	if (elem.calcLeft)
		return elem.calcLeft;
	var oElem=elem;
	while(elem){
		 if ((elem.currentStyle)&& (!isNaN(parseInt(elem.currentStyle.borderLeftWidth)))&&(x!=0))
		 	x+=parseInt(elem.currentStyle.borderLeftWidth);
		 x+=elem.offsetLeft;
		 elem=elem.offsetParent;
	  } 
	oElem.calcLeft=x;
	return x;
	}

function Top(elem){
	 var x=0;
	 if (elem.calcTop)
	 	return elem.calcTop;
	 var oElem=elem;
	 while(elem){		
	 	 if ((elem.currentStyle)&& (!isNaN(parseInt(elem.currentStyle.borderTopWidth)))&&(x!=0))
		 	x+=parseInt(elem.currentStyle.borderTopWidth); 
		 x+=elem.offsetTop;
	         elem=elem.offsetParent;
 	 } 
 	 oElem.calcTop=x;
 	 return x;
 	 
}

var ah,ab;
function applyStyles() {
	if(ab)
		oDv.removeChild(dvBdy);
	if (ah)
		oDv.removeChild(dvHdr);
	dvHdr=document.createElement("div");
	dvBdy=document.createElement("div");
	CBE.boCSSBDY?dvBdy.className=CBE.boCSSBDY:defBdyStyle();
	CBE.boCSSHDR?dvHdr.className=CBE.boCSSHDR:defHdrStyle();
	dvHdr.innerHTML=CBE.boHDR;
	dvBdy.innerHTML=CBE.boBDY;
	ah=false;
	ab=false;
	if (CBE.boHDR!='') {		
		oDv.appendChild(dvHdr);
		ah=true;
	}	
	if (CBE.boBDY!=''){
		oDv.appendChild(dvBdy);
		ab=true;
	}	
}

var CSE,iterElem,LSE,CBE,LBE, totalScrollLeft, totalScrollTop, width, height ;
var ini=false;

// Customised function for inner window dimension
function SHW() {
   if (document.body && (document.body.clientWidth !=0)) {
      width=document.body.clientWidth;
      height=document.body.clientHeight;
   }
   if (document.documentElement && (document.documentElement.clientWidth!=0) && (document.body.clientWidth + 20 >= document.documentElement.clientWidth)) {
      width=document.documentElement.clientWidth;   
      height=document.documentElement.clientHeight;   
   }   
   return [width,height];
}


var ID=null;
function moveMouse(e) {
   //boxMove=true;
	e?evt=e:evt=event;
	
	CSE=evt.target?evt.target:evt.srcElement;
	
	if (!CSE.hasbox) {
	   // Note we need to scan up DOM here, some elements like TR don't get triggered as srcElement
	   iElem=CSE;
	   while ((iElem.parentNode) && (!iElem.hasbox)) {
	      scanBO(iElem);
	      iElem=iElem.parentNode;
	   }	   
	}
	
	if ((CSE!=LSE)&&(!isChild(CSE,dvHdr))&&(!isChild(CSE,dvBdy))){		
	   if (!CSE.boxItem) {
			iterElem=CSE;
			while ((iterElem.hasbox==2)&&(iterElem.parentNode))
					iterElem=iterElem.parentNode; 
			CSE.boxItem=iterElem;
			}
		iterElem=CSE.boxItem;
		if (CSE.boxItem&&(CSE.boxItem.hasbox==1))  {
			LBE=CBE;
			CBE=iterElem;
			if (CBE!=LBE) {
				applyStyles();
				if (!CBE.requireclick)
					if (CBE.fade) {
						if (ID!=null)
							clearTimeout(ID);
						ID=setTimeout("fadeIn("+CBE.fadespeed+")",CBE.delay);
					}
					else {
						if (ID!=null)
							clearTimeout(ID);
						COL=1;
						ID=setTimeout("oDv.style.visibility='visible';ID=null;",CBE.delay);						
					}
				if (CBE.IEbugfix) {hideSelects();} 
				fixposx=!isNaN(CBE.fixX)?Left(CBE)+CBE.fixX:CBE.absX;
				fixposy=!isNaN(CBE.fixY)?Top(CBE)+CBE.fixY:CBE.absY;			
				lockX=0;
				lockY=0;
				boxMove=true;
				ox=CBE.offX?CBE.offX:10;
				oy=CBE.offY?CBE.offY:10;
			}
		}
		else if (!isChild(CSE,dvHdr) && !isChild(CSE,dvBdy) && (boxMove))	{
			// The conditional here fixes flickering between tables cells.
			if ((!isChild(CBE,CSE)) || (CSE.tagName!='TABLE')) {   			
   			CBE=null;
   			if (ID!=null)
  					clearTimeout(ID);
   			fadeOut();
   			showSelects();
			}
		}
		LSE=CSE;
	}
	else if (((isChild(CSE,dvHdr) || isChild(CSE,dvBdy))&&(boxMove))) {
		totalScrollLeft=0;
		totalScrollTop=0;
		
		iterElem=CSE;
		while(iterElem) {
			if(!isNaN(parseInt(iterElem.scrollTop)))
				totalScrollTop+=parseInt(iterElem.scrollTop);
			if(!isNaN(parseInt(iterElem.scrollLeft)))
				totalScrollLeft+=parseInt(iterElem.scrollLeft);
			iterElem=iterElem.parentNode;			
		}
		if (CBE!=null) {
			boxLeft=Left(CBE)-totalScrollLeft;
			boxRight=parseInt(Left(CBE)+CBE.offsetWidth)-totalScrollLeft;
			boxTop=Top(CBE)-totalScrollTop;
			boxBottom=parseInt(Top(CBE)+CBE.offsetHeight)-totalScrollTop;
			doCheck();
		}
	}
	
	if (boxMove&&CBE) {
		// This added to alleviate bug in IE6 w.r.t DOCTYPE
		bodyScrollTop=document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop;
		bodyScrollLet=document.documentElement&&document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft;
		mouseX=evt.pageX?evt.pageX-bodyScrollLet:evt.clientX-document.body.clientLeft;
		mouseY=evt.pageY?evt.pageY-bodyScrollTop:evt.clientY-document.body.clientTop;
		if ((CBE)&&(CBE.windowLock)) {
			mouseY < -oy?lockY=-mouseY-oy:lockY=0;
			mouseX < -ox?lockX=-mouseX-ox:lockX=0;
			mouseY > (SHW()[1]-oDv.offsetHeight-oy)?lockY=-mouseY+SHW()[1]-oDv.offsetHeight-oy:lockY=lockY;
			mouseX > (SHW()[0]-dvBdy.offsetWidth-ox)?lockX=-mouseX-ox+SHW()[0]-dvBdy.offsetWidth:lockX=lockX;			
		}
		oDv.style.left=((fixposx)||(fixposx==0))?fixposx:bodyScrollLet+mouseX+ox+lockX+"px";
		oDv.style.top=((fixposy)||(fixposy==0))?fixposy:bodyScrollTop+mouseY+oy+lockY+"px";		
		
	}
}

function doCheck() {	
	if (   (mouseX < boxLeft)    ||     (mouseX >boxRight)     || (mouseY < boxTop) || (mouseY > boxBottom)) {
		if (!CBE.requireclick)
			fadeOut();
		if (CBE.IEbugfix) {showSelects();}
		CBE=null;
	}
}

function pauseBox(e) {
   e?evt=e:evt=event;
	boxMove=false;
	evt.cancelBubble=true;
}

function showHideBox(e) {
	oDv.style.visibility=(oDv.style.visibility!='visible')?'visible':'hidden';
}

function hideBox(e) {
	oDv.style.visibility='hidden';
}

var COL=0;
var stopfade=false;
function fadeIn(fs) {
		ID=null;
		COL=0;
		oDv.style.visibility='visible';
		fadeIn2(fs);
}

function fadeIn2(fs) {
		COL=COL+fs;
		COL=(COL>1)?1:COL;
		oDv.style.filter='alpha(opacity='+parseInt(100*COL)+')';
		oDv.style.opacity=COL;
		if (COL<1)
		 setTimeout("fadeIn2("+fs+")",20);		
}


function fadeOut() {
	oDv.style.visibility='hidden';
	
}

function isChild(s,d) {
	while(s) {
		if (s==d) 
			return true;
		s=s.parentNode;
	}
	return false;
}

var cSrc;
function checkMove(e) {
	e?evt=e:evt=event;
	cSrc=evt.target?evt.target:evt.srcElement;
	if ((!boxMove)&&(!isChild(cSrc,oDv))) {
		fadeOut();
		if (CBE&&CBE.IEbugfix) {showSelects();}
		boxMove=true;
		CBE=null;
	}
}

function showSelects(){
   var elements = document.getElementsByTagName("select");
   for (i=0;i< elements.length;i++){
      elements[i].style.visibility='visible';
   }
}

function hideSelects(){
   var elements = document.getElementsByTagName("select");
   for (i=0;i< elements.length;i++){
   elements[i].style.visibility='hidden';
   }
}
//=====================================================================||
//               Tool Tip menu Script Ends                             ||
//=====================================================================||

