//=====================================================================||
//               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.    ||
//                                                                     ||
//                      The Canadian Edition                           ||
//                                                                     ||
// JavaScript Shop Module, V.4.5.0  draft                              ||
//=====================================================================||
//
//                INSTALLED MODIFICATIONS   Thursday, April 08, 2004  RC 
//
// Product selector
// Two taxes (FST & PST)
// Non-Taxable fields
// Quantity Limit field
// Quantity Limit applied to ChangeQuantity function
// Product cost extended total or shipping column
// Unable to order zero, negative or fractional quantities
// Odd/even background change in Cart tables
// Weight row and FST row toggled on/off automatically
// Calculated shipping costs
// PST/GST 3 button mod
//
//---------------------------------------------------------------------||
//                       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.                       ||
// * Stolen from www.girlguidestore.ca                                 ||
//                                                                     ||
// 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)
//                                                                     ||
// 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     = '£'; 
MonetarySymbol        = '$';
DisplayNotice         = false;
DisplayShippingColumn = false;	// false displays product total (extension)
DisplayShippingRow    = true;		// toggles shipping row on or off
DisplayTaxRow         = true;		// TaxByRegion must also be false
TaxByRegion           = true;		// if true overrides DisplayTaxRow = false setting 
addTaxtoShipping      = false;  // Tax added to fShipping or to GST, PST 
FstRate               = 0.0450;		// FST row is off when FstRate = 0
TaxRate               = 0.0563;   // State or Provincial Sales Tax Rate
ShippingFstRate       = 0.00;   // Federal Sales Tax Rate applied to shipping costs
ShippingTaxRate       = 0.00;   // State Sales Tax Rate applied to shipping costs
WeightUnits           = "oz"   // Unit of measurement oz, lbs, Kilograms, grams
TaxPrompt             = 'For tax purposes, please select your place of residency.\nThank you.';
TaxablePrompt         = 'Quebec'; //Tax by Region Radio button
TaxablePrompt2        = 'Canada';  //Tax by Region Radio button
NonTaxablePrompt      = 'International';  //Tax by Region Radio button
MinimumOrder          =  0.01;	  // prevents Checkout below minimum Order amount
MinimumOrderPrompt    = 'You can not proceed to check out, because your shopping cart is empty.\n \nClick on "CONTINUE SHOPPING" to put items in your cart. ';
NoQtyPrompt = 'You cannot proceed until a Shipping Zone has been selected'; //If attempted to go to checkout before selecting shipping zone ||
//Payment Processor Options:
PaymentProcessor      = 'pp';

//Options for Programmers: 
OutputItemId          = 'ID_'; 
OutputItemQuantity    = 'QUANTITY_'; 
OutputItemPrice       = 'PRICE_'; 
OutputItemName        = 'NAME_'; 
OutputItemShipping    = 'SHIPPING_'; 
OutputItemAddtlInfo   = 'ADDTLINFO_'; 
OutputOrderSubtotal   = 'SUBTOTAL'; 
OutputOrderShipping   = 'SHIPPING';
OutputOrderZone       = "ZONE"
OutputOrderFst        = 'GST';
OutputOrderTax        = 'TAX';
OutputOrderTotal      = 'TOTAL';
AppendItemNumToOutput = true;
HiddenFieldsToCheckout = false;

//Options for Shipping by Weight: 
LocationLabel = 'ZONE';

LocationPrompt = 'In order to have your items shipped, please select a shipping method.'; 
MaxWeightPrompt = 'Please, place your order as usual and we will contact you about your shipping cost.\n\Thank you.'; 
//=====================================================================||
//---------------------------------------------------------------------||
//    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.";
strEmpty  = "Your cart is empty!";
strILabel = "Prod Id";
strDLabel = "Description";
strQLabel = "Qty";
strPLabel = "Price each";
strPTLabel= "Price total";
strRLabel = "Remove";
strSLabel = "Shipping";
strThumbLabel = "Image"; 

strWLabel = "Weight";

strRButton= "Remove";
strSUB    = "SUBTOTAL";
strSHIP   = "SHIPPING $ HANDLING";
strFST    = "FEDERAL SALES TAX";
strTAX    = "PROVINCIAL SALES TAX";
strWTOT   = "WEIGHT"
strTOT    = "TOTAL";
strErrQty = "Invalid Quantity.";
strNewQty = 'Please enter new quantity:';
strSpace  = "   ";
Language = 'en';
bLanguageDefined = true; // true;
}
strUSERENTRY = "";
strWEIGHT    = "";
strQTY       = "";
TAXABLE      = true ;
strTAXABLE   = true ;
FSTAXABLE    = true ;
strFSTAXABLE = true ;
strALLTAX    = "TOTAL TAX"; // used in managecart table
strALLTAX2   = "TOTAL TAX";	 // used in checkout table
LocationLabel = 'ZONE'; 
LocationPrompt = 'In order to have your items shipped, please select a shipping method.'; 
MaxWeightPrompt = 'Please, place your order as usual and we will contact you about your shipping cost.\n\Thank you.'; 

//---------------------------------------------------------------------||
// FUNCTION:    checkCR                                                ||
// PARAMETERS:  Keypressed                                             ||
// RETURNS:     keypressed                                             ||
// PURPOSE:     To block return (Enter) key pressed when using forms   ||
//							Block right click                                      || =======================================================================
function checkCR(evt) {
var evt  = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
  }
document.onkeypress = checkCR;
/*
function click() {
	if (event.button==2) {
	alert('\n ');
		}
	}
document.onmousedown=click
*/
//---------------------------------------------------------------------||
// FUNCTION:    CKquantity                                             ||
// PARAMETERS:  Quantity to                                            ||
// RETURNS:     Quantity as a number, and possible alert               ||
// PURPOSE:     Make sure quantity is represented as a number          ||
// =======================================================================
function CKquantity(checkString) {
var strNewQuantity = "";

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

if ( 	strNewQuantity.length < 1 )
	strNewQuantity = "1";

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

		if ( strNewQuantity.charAt(0)==0){
			strNewQuantity = strNewQuantity.substring(1, strNewQuantity.length);
			 CKquantity(strNewQuantity)
			}
			
return(strNewQuantity);
}
//---------------------------------------------------------------------||
// FUNCTION:    AddOneOfManyToCart                                     ||
// PARAMETERS:  Form Object PRODUCTSELECTOR                            ||
// RETURNS:     Product parameters to order form                       ||
// PURPOSE:     selects one of many products with different size,      ||
//              cost, shipping and/or tax to add to shopping cart      ||
//---------------------------------------------------------------------||
function AddOneOfManyToCart(formToUpdate) { 

   selectedObj = formToUpdate.PRODUCTSELECTOR[formToUpdate.PRODUCTSELECTOR.selectedIndex]; 

   nameVal = selectedObj.getAttribute("name"); 
   if (nameVal == "select") { 
      alert('Please select an option');
			location.href = location.href; 
      return false; 
   } 

   formToUpdate.NAME.value = nameVal; 

   costVal = selectedObj.getAttribute("cost"); 
   formToUpdate.PRICE.value = costVal; 


   id_numVal = selectedObj.getAttribute("id_num"); 
   formToUpdate.ID_NUM.value = id_numVal; 

if (formToUpdate.SHIPPING == null)
	formToUpdate.SHIPPING.value = 0.00;
shippingVal = selectedObj.getAttribute("shipping");
if (( isNaN(shippingVal)) || (shippingVal == null)) shippingVal = "0.00";
formToUpdate.SHIPPING.value = shippingVal;

if (formToUpdate.WEIGHT == null)
formToUpdate.WEIGHT.value = 0.00;
weightVal = selectedObj.getAttribute("weight");
if (( isNaN(weightVal)) || (weightVal == null)) weightVal = "0.00";
formToUpdate.WEIGHT.value = weightVal;

   if (formToUpdate.FSTAXABLE == null) 
	      formToUpdate.FSTAXABLE = true; 

				
   if (formToUpdate.TAXABLE == null) 
	      formToUpdate.TAXABLE = true; 

   if (formToUpdate.LIMIT == null) 
	     formToUpdate.LIMIT = 100000;
			else 
   var limitVal = selectedObj.getAttribute("limit"); 
   formToUpdate.LIMIT.value = limitVal;
				

   switch( formToUpdate.PRODUCTSELECTOR[formToUpdate.PRODUCTSELECTOR.selectedIndex].value ) { 
   } 
   AddToCart(formToUpdate); 
} 



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

{
   iNumberOrdered     = 0;
   var bAlreadyInCart = false;
   var notice         = "";
	 var strQTYLIMIT    = 18;
   var i              = 0;
	 strProductId       = "";
   iNumberOrdered = GetCookie("NumberOrdered");
	 
	 if ( iNumberOrdered == null )
      iNumberOrdered = 0;
	  
	  
			if ( thisForm.Thumb == null ) 
         strThumb = ""; 
       else 
         strThumb = thisForm.Thumb.value; 
			
	  

   if ( thisForm.ID_NUM == null )
      strID_NUM    = "000000";
   else {
      strID_NUM    = thisForm.ID_NUM.value;
			strProductId = strID_NUM.charAt(0);
			
			
			}
   if ( thisForm.FSTAXABLE == null) 
      strFSTAXABLE = true ;
	 else {
	  if ((thisForm.FSTAXABLE.value == "false") || (thisForm.FSTAXABLE.value == "FALSE")) 
      strFSTAXABLE = false ; 
   else  
      strFSTAXABLE = true ; 
			}
   if ( thisForm.TAXABLE == null) 
      strTAXABLE = true ;
	 else {
	  if ((thisForm.TAXABLE.value == "false") || (thisForm.TAXABLE.value == "FALSE")) 
      strTAXABLE = false ; 
   else  
      strTAXABLE = true ; 
			}
   if ( strProductId == 'd') {
      strFSTAXABLE = false ;
      strTAXABLE   = false ; 
			}

   if ( strProductId == 'n') {
      strTAXABLE   = false ; 
			}
   if ( thisForm.LIMIT == null ) {
      strQTYLIMIT  = 10000;
      } else {
	 if ((thisForm.LIMIT.value == "false" )||( thisForm.LIMIT.value == null )) {
	    strQTYLIMIT  = 10000;
      } else {
	    strQTYLIMIT  = thisForm.LIMIT.value;
      }
	}
	
   if ( thisForm.QUANTITY == null )
      strQUANTITY  = "1";
   else {
      strQUANTITY  = parseInt(thisForm.QUANTITY.value);
		}

		if (parseInt(thisForm.QUANTITY.value)<= parseInt(strQTYLIMIT)) {
      strQUANTITY  = parseInt(thisForm.QUANTITY.value);
			} else {
			strQUANTITY = strQTYLIMIT;
			}	
   if ( thisForm.PRICE == null )
      strPRICE     = "0.00";
   else
      strPRICE     = thisForm.PRICE.value;

   if ( thisForm.NAME == null )
      strNAME      = "";
   else
      strNAME      = thisForm.NAME.value;

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

   if ( thisForm.ADDITIONALINFO == null ) {
      strADDTLINFO = " ";
   } else {
      strADDTLINFO = thisForm.ADDITIONALINFO[thisForm.ADDITIONALINFO.selectedIndex].value;
  		 }
 
   if ( thisForm.ADDITIONALINFO2 != null ) {
      strADDTLINFO += " " + thisForm.ADDITIONALINFO2[thisForm.ADDITIONALINFO2.selectedIndex].value;
   }

   if ( thisForm.ADDITIONALINFO3 != null ) {
      strADDTLINFO += " " + thisForm.ADDITIONALINFO3[thisForm.ADDITIONALINFO3.selectedIndex].value;
   }
 
   if ( thisForm.ADDITIONALINFO4 != null ) {
      strADDTLINFO += " " + thisForm.ADDITIONALINFO4[thisForm.ADDITIONALINFO4.selectedIndex].value;
   }
if ( thisForm.USERENTRY != null ) {
		strUSERENTRY = thisForm.USERENTRY.value;
		if (strUSERENTRY =="enter name or leave blank") strUSERENTRY = "blank"; 
} 
if ( thisForm.USERENTRY2 != null ) { 
		strUSERENTRY += " " + thisForm.USERENTRY2.value; 
} 
if ( thisForm.USERENTRY3 != null ) { 
		strUSERENTRY += " " + thisForm.USERENTRY3.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);
      Token6 = database.indexOf("|", Token5+1);
      Token7 = database.indexOf("|", Token6+1);
      Token8 = database.indexOf("|", Token7+1);
      Token9 = database.indexOf("|", Token8+1);
	  Token10 = database.indexOf("|", Token9+1);

      fields    = new Array(12);
      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, Token6 ); // User Entry
      fields[7] = database.substring( Token6+1, Token7 ); // Weight
      fields[8] = database.substring( Token7+1, Token8 ); // Limit
      fields[9] = database.substring( Token8+1, Token9 ); // FSTaxable
      fields[10] = database.substring(Token9+1, Token10 ); // Qst
	  fields[11] = database.substring(Token10+1, database.length ); // Taxable

      if (  fields[11] == strThumb&& 
		  fields[0] == strID_NUM &&
           fields[2] == strPRICE  &&
           fields[3] == strNAME   &&
           fields[5] == strADDTLINFO &&
		   fields[6] == strUSERENTRY 
          
         ) {
         bAlreadyInCart = true;
				 
          strQTY = (parseInt(strQUANTITY)+parseInt(fields[1]));
			if (strQTY >	parseInt(strQTYLIMIT)) strQTY = strQTYLIMIT;	 

         dbUpdatedOrder =  
		                  strID_NUM    + "|" +
		                  strQTY       + "|" +
                          strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
						  strUSERENTRY + "|" +
                          strWEIGHT    + "|" +
                          strQTYLIMIT  + "|" +
						  strFSTAXABLE + "|" +
                          strTAXABLE  + "|" + 
						  strThumb;  
                            
													
         strNewOrder = "Order." + i;
         DeleteCookie(strNewOrder, "/");
         SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
//      notice = strQUANTITY + " " + strNAME + " " + strADDTLINFO + " " + strAdded;
 notice = strAdded + "\n-------------------------------------------------------------------\n" + "Your cart now contains: " + strQTY + "\n" + strNAME + " " + "\n" + strADDTLINFO + "\n" + strUSERENTRY;

        break;
      }
   }

   if ( !bAlreadyInCart ) {
      iNumberOrdered++;

			    strQTY = (parseInt(strQUANTITY));
			if (strQTY >	parseInt(strQTYLIMIT)) strQTY = strQTYLIMIT;	 

      if ( iNumberOrdered > 15 )
         alert( strSorry );
      else {
         dbUpdatedOrder = 
		                  strID_NUM    + "|" + 
                          strQTY       + "|" +
						  strPRICE     + "|" +
                          strNAME      + "|" +
                          strSHIPPING  + "|" +
                          strADDTLINFO + "|" +
						  strUSERENTRY + "|" +
                          strWEIGHT    + "|" +
                          strQTYLIMIT  + "|" +
						  strFSTAXABLE + "|" +
                        strTAXABLE  + "|" + 
						  strThumb;  
						  

         strNewOrder = "Order." + iNumberOrdered;
         SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
         SetCookie("NumberOrdered", iNumberOrdered, null, "/");
//         notice = strQUANTITY + " " + strNAME + " " + strADDTLINFO + " " + strAdded;
notice = strAdded + "\n-------------------------------------------------------------------\n" + "Quantity : " + strQUANTITY + "\nProduct  : " + strNAME + " " + "\n" + strADDTLINFO + "\n" + strUSERENTRY;
      }
   }

   if ( DisplayNotice && notice!='') 
	       alert(notice);
}


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

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


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

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


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

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

   return(null);
}


//---------------------------------------------------------------------||
// FUNCTION:    SetCookie                                              ||
// PARAMETERS:  name, value, expiration date, path, domain, security   ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Stores a cookie in the users browser                   ||
//---------------------------------------------------------------------||
function SetCookie( name, value, expires, path, domain, secure) { 


   if ( expires == "persistent" ) {   // expire in 5 years 
       var cookieDate = new Date(); 
       cookieDate.setTime( cookieDate.getTime() + 30*24*60*60*1000); 
       expires = cookieDate; 
   } 

   document.cookie = name + "=" + escape (value) + 
        ((expires) ? "; expires=" + expires.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.length <2 )
      cents = "0" + cents;

   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, null, "/");
      }
      NewOrder = "Order." + NumberOrdered;
      SetCookie ("NumberOrdered", NumberOrdered-1, null, "/");
      DeleteCookie(NewOrder, "/");
      location.href=location.href;
   }
}


//---------------------------------------------------------------------||
// FUNCTION:    ChangeQuantity                                         ||
// PARAMETERS:  Order Number to Change Quantity                        ||
// RETURNS:     Null                                                   ||
// PURPOSE:     Changes quantity of an item in the shopping cart       ||
//---------------------------------------------------------------------||
function ChangeQuantity(OrderItem,NewQuantity) {
   if ( isNaN(NewQuantity) ) {
      alert( strErrQty );
   } else {
		 if (NewQuantity == 0 ){RemoveFromCart(OrderItem); return false;} 
	 	 if (NewQuantity < 1 ) 
         NewQuantity = 1;
      NewOrder = "Order." + OrderItem;
      database = "";
      database = GetCookie(NewOrder);

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

      fields    = new Array(11);
      fields[0] = database.substring( 0, Token0 );        // 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, Token6 ); // User Entry
      fields[7] = database.substring( Token6+1, Token7 ); // Weight
      fields[8] = database.substring( Token7+1, Token8 ); // Limit
      fields[9] = database.substring( Token8+1, Token9 ); // FSTaxable
	  fields[10] = database.substring( Token9+1, Token10 ); // FSTaxable
      fields[11] = database.substring( Token10+1, database.length ); // Qst

			    strQTYLIMIT = (parseInt(fields[8]));
			if (NewQuantity >	strQTYLIMIT	) NewQuantity = strQTYLIMIT;	 

      dbUpdatedOrder = fields[0] + "|" +
                       NewQuantity + "|" +
                       fields[2] + "|" +
                       fields[3] + "|" +
                       fields[4] + "|" +
                       fields[5] + "|" +
                       fields[6] + "|" +
                       fields[7] + "|" +
                       fields[8] + "|" +
                       fields[9] + "|" +
                       fields[10] + "|" +
					   fields[11];
					   
      strNewOrder = "Order." + OrderItem;
      DeleteCookie(strNewOrder, "/");
      SetCookie(strNewOrder, dbUpdatedOrder, null, "/");
      location.href=location.href;      
   }
}
function ChangeTax( newTax ) {
   DeleteCookie( "taxRate" );
   SetCookie( "taxRate", newTax, "persistent", "/" );
   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 fprodttl       = 0; 		//Total product cost = QTY * PRICE
   var fFst           = 0;    //FST amount
   var fTax           = 0;    //Tax amount
   var fATax          = 0;    //Total of Both Taxes  
   var fShip          = 0;    //Shipping amount
   var fShipping      = 0;    //Calculated Shipping amount
	 var fWeight        = 0;		//Weight of items for shipping calculation 
	 var fItems         = 0;    //Sum of item Quantities
	 var LocationSelected = 99;
	 var LocationLabel  = "";
	  var LocationD  = "";
	 var TotWeight      = 0;
   var strTotal       = "";   //Total cost formatted as money
   var strFst         = "";   //Total FST formatted as money
   var strTax         = "";   //Total tax formatted as money
   var strATax        = "";   //Total both taxes formatted as money
   var strNTax        = 0;  
   var strShipping    = "";   //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 strProductId   = "";		//Used or non-taxable item identification

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

LocationSelected = GetCookie("ZoneSelected"); 
if (LocationSelected == true) LocationSelected = 0; // 

 
//end addition 
 

// ------------------- Manage Cart Table Header ------------------------------||
  
  
  if ( bDisplay )
				 
						strOutput = 	"<TABLE CELLSPACING=0 CELLPADDING=2 WIDTH=100% BORDER=0><TR><TD>" ;
	
//------------------------------------START CART DESCRIPTION TABLE--------------------------||
if ( iNumberOrdered  > 0 ) {
				 		strOutput += "<table width=100% height=100 border=0 cellspacing=0 cellpadding=0><tr><td valign=top><span class=technicaltext><b>The items in your shopping cart are listed below.</b><br><br> If you wish to change the quantity in your cart, you can use the<font color=cc0000> + </font>or <font color=cc0000>-</font> sign beside the quantity box, or just simply rewrite the quantity inside the box.<br>To remove items click on the Delete button.<br> If you have modified your cart contents click on the Update Cart button at the bottom.</td></tr></table>";
//---------------------------------------END CART DESCRIPTION TABLE-------------------------||



//---------------------------------------START PRODUCT IMAGES TABLE-------------------------||
strOutput += "<TABLE border=0 cellspacing=0 cellpadding=0 width=656>";
strOutput += "<TR height=22><TD width=248 align=center bgcolor=EDEDED><IMG src=product_name_cart.gif width=77 height=13></TD>";
strOutput += "<TD width=6 bgcolor=FFFFFF><IMG src=../common/pixel.gif width=6 height=1></TD>";
strOutput += "<TD width=118 bgcolor=#EDEDED class=companybold><CENTER><IMG src=product_shape_cart.gif width=90 height=13>";
strOutput += "</CENTER></TD>";
strOutput += "<TD width=6 bgcolor=FFFFFF class=companybold><IMG src=../common/pixel.gif width=6 height=1></TD>";
strOutput += "<TD width=58 bgcolor=EDEDED class=companybold><CENTER><IMG src=product_qty_cart.gif width=41 height=13></CENTER>";
strOutput += "</TD>";
strOutput += "<TD width=6 bgcolor=FFFFFF class=companybold><IMG src=../common/pixel.gif width=6 height=1></TD>";
strOutput +=  "<TD width=131 bgcolor=#EDEDED class=companybold><CENTER><IMG src=product_price_cart.gif width=58 height=12>";
strOutput += "</CENTER></TD>";
strOutput +=  "<TD width=6 bgcolor=FFFFFF class=companybold><IMG src=../common/pixel.gif width=6 height=1>";
strOutput +=  "<TD width=60 bgcolor=#EDEDED><CENTER>";
strOutput += "<IMG src=product_EDIT_cart.gif width=46 height=11></TD>";

strOutput += "</TR></TABLE>";
				 }
//---------------------------------------END PRODUCT IMAGES TABLE-------------------------------||

//---------------------------------------START PRODUCT TABLE------------------------------------||

strOutput += "<TABLE CELLSPACING=0 CELLPADDING=0 WIDTH=100% BORDER=0><TR>" ;	

//--------------------------------------START EMPTY CART----------------------------------------||


   if ( iNumberOrdered == 0 ) {
      strOutput += "<TR><TD COLSPAN=7 CLASS=\"technicaltext\"><CENTER><font color=cc0000><b>Your shopping cart is empty</font></b></CENTER><BR><BR>To place something in your Shopping Bag, enter a quantity alongside the desired item and click the Add to Bag button. <br>To continue shopping, <a href=http://mindyshear.com/products/shoponline.htm class=link2>click here</a>.<br>To learn more about shopping on our site, click here. <br><br> If you are experiencing technical difficulties and would prefer to place your order over the phone, you may contact our customer service at 514 932 0002 during opening hours.<BR></CENTER>";
	  
   if ( iNumberOrdered == 0) {
	  
//--------------------------------------START CONTINUE SHOPPING INSIDE EMPTY CART--------------||	  
strOutput += "<BR><BR><table border=0 cellspacing=0 cellpadding=0 align=left height=50>";
strOutput += "<tr><td align=left valign=middle>";
strOutput += "<A href=\"javascript:history.back()\"><img src=cont_shop.gif align=absmiddle width=138 height=13 border=0 /></a>";
strOutput += "</td>";
strOutput += "</table>";
//--------------------------------------END CONTINUE SHOPPING INSIDE EMPTY CART----------------||	  	  
	   }	
	  
	  
	strOutput+=  "</TD></TR></table>";
   
//--------------------------------------------END EMPTY CART------------------------------------||
  
  
   strTotal       = "";   //Total cost formatted as money
   strFst         = "";   //Total gst formatted as money
   strTax         = "";   //Total tax formatted as money
   strATax        = "";   //Total both taxes formatted as money 
   strShipping    = "";   //Total shipping formatted as money

   }
   
 
	  


   for ( i = 1; i <= iNumberOrdered; i++ ) {
			even = (i & 1);
      NewOrder = "Order." + i;
      database = "";
      database = GetCookie(NewOrder);
	msg2 ='[ '+i+' ] ';
			
      Token0 = database.indexOf("|", 0);
      Token1 = database.indexOf("|", Token0+1);
      Token2 = database.indexOf("|", Token1+1);
      Token3 = database.indexOf("|", Token2+1);
      Token4 = database.indexOf("|", Token3+1);
      Token5 = database.indexOf("|", Token4+1);
      Token6 = database.indexOf("|", Token5+1);
      Token7 = database.indexOf("|", Token6+1);
      Token8 = database.indexOf("|", Token7+1);
      Token9 = database.indexOf("|", Token8+1);
	  Token10 = database.indexOf("|", Token9+1);

      fields    = new Array(12);
      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, Token6 ); // User Entry
      fields[7] = database.substring( Token6+1, Token7 ); // Weight
      fields[8] = database.substring( Token7+1, Token8 ); // Limit
      fields[9] = database.substring( Token8+1, Token9 ); // FSTaxable
	  fields[10] = database.substring( Token9+1, Token10 ); // FSTaxable
      fields[11] = database.substring( Token10+1, database.length ); // Taxable

      fprodttl    = (parseInt(fields[1]) * parseFloat(fields[2]) );
      fTotal     += fprodttl;	             
      fItems     += parseInt(fields[1]);	  
	  fWeight    += (parseInt(fields[1])* parseFloat(fields[7]) );
      fShipping      += (parseInt(fields[1]) * parseFloat(fields[4]) );
	 

	
			if( fields[9]  == "true" ) { fFst += ( fprodttl * FstRate); }
			if( fields[10] == "true" ) { fTax += ( fprodttl * TaxRate); }
			
			

   
		
// ------------------- Manage Cart Table Body -------------------------------||


	
if ( bDisplay ){
	

 //-------------------------------------------------ITEM ROW-----------------------------------------||    
 

          if ( fields[5] == "" )
            strOutput += "<tr height=56 CLASS=\"item2\"><TD CLASS=\"item2\"><b>"+ " &nbsp "  + fields[3] + "</TD>";
			
         else
            strOutput += "<td width=60 CLASS=\"item2\" align=center>" + fields[11] + "</td><TD CLASS=\"item\" width=190 height=50 align=left>"+ fields[3] + " </TD>";
			strOutput += "<TD CLASS=\"item2\" width=114 align=center> " + fields[5] + "</TD>";
			
//--------------------------------------------ADD-QTY-CELL---------------------------------------||

strOutput += "<TD width=15 align=right valign=middle CLASS=\"item2\"><A CLASS=\"add\" HREF=\"javascript: ChangeQuantity("+i+", (("+fields[1]+")-1));\">&nbsp;-&nbsp;</a></TD>";

strOutput += "<TD align=center width=15 CLASS=\"item2\"><INPUT TYPE=TEXT  CLASS=\"box\" NAME=Q SIZE=2 maxlength=3 class=form_input VALUE=\"" + fields[1] + "\" onChange=\"ChangeQuantity("+i+", this.value);\" ></TD>";

strOutput += "<TD ALIGN=LEFT width=13 CLASS=\"item2\"><A CLASS=\"add\" HREF=\"javascript:ChangeQuantity("+i+",(("+fields[1]+")+1));\">+</a></TD>";

strOutput += "<TD CLASS=\"item2\" align=center width=136>"+ "&nbsp  " + MonetarySymbol + moneyFormat(fields[2]) + "/ea</TD>";

//--------------------------------------------DELETE BUTTON--------------------------------------||     

strOutput += "<TD width=58 ALIGN=right style=\"cursor:hand; cursor:pointer\" class=\"item2\"><a href=javascript:location.reload() onClick=\"RemoveFromCart("+i+")\"><img src=\"clearcart.gif\" border=\"0\"></a></TD></TR>";
		  

}

// ------------------- End of ManageCart Table Body --------------------------||

      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] + "\">";
      }

   }
strOutput += "</td></tr></table>";


// --------------------- Start of ManageCart Table Footer -----------------------||
// -- Calculate shipping by Zone, Quantity, weight, value, Shipping (fields[4] --|
			


			if (addTaxtoShipping){
      fShipping  += (fShipping * ShippingFstRate);	// calculates FST on shipping charge
	    fShipping  += (fShipping * ShippingTaxRate);	// calculates PST on shipping charge
			} else {
      fFst  += (fShipping * ShippingFstRate);	// calculates FST on shipping charge
	    fTax  += (fShipping * ShippingTaxRate);	// calculates PST on shipping charge
			// tax on shipping now added to GST not to fShipping...
			}

			

	  fATax       = fFst + fTax;	
      strTotal    = moneyFormat(fTotal);
      strFst      = moneyFormat(fFst);
      strTax      = moneyFormat(fTax);
      strATax     = moneyFormat(fATax);
      strShipping = moneyFormat(fShipping);
	 
//-----------------------------------------------START SUB-TOTAL TABLE ------------------------------------||
	

   if ( bDisplay ) {
      strOutput += "<table width=100% border=0 height=60>";
	 
	if ( iNumberOrdered  > 0 ) {
		 
	 
      strOutput += "<TR><TD WIDTH=200><A href=\"javascript:history.back()\"><img src=cont_shop.gif align=absmiddle width=138 height=13 border=0 /></a></TD><TD CLASS=\"technicaltext\" ALIGN=\"right\" width=380><B>SUB-TOTAL BEFORE 25% DISCOUNT </B></TD>";
      strOutput += "<TD CLASS=\"technicaltext\" ALIGN=\"right\" VALIGN=middle>" + MonetarySymbol + strTotal + "</B></TD>";
      strOutput += "</TR>";
	

// Don't display Weight Row if Weight is zero
			if (fWeight <0 ){
      strOutput += "<TR><TD CLASS=\"noptotal\" ALIGN=RIGHT><B>"+strWTOT+" &nbsp; </B></TD>"; 
      strOutput += "<TD CLASS=\"noptotal\" COLSPAN=1 ALIGN=RIGHT><B>" + moneyFormat(fWeight) + "</B></TD>"; 
      strOutput += "<TD CLASS=\"noptotal\" COLSPAN=1 ALIGN=LEFT>&nbsp;<B> "+ WeightUnits +"</B></TD></TR>"; 
     }

      if ( DisplayShippingRow ) {
         strOutput += "<TR><TD CLASS=\"technicaltext\" align=\"right\"><B></B></TD>";
        strOutput += "<TD CLASS=\"technicaltext\" ALIGN=\"right\"></B></TD>";
         strOutput += "</TR></table>";
      }
	 
//------------------------------------------END SUBTOTAL TABLE----------------------------------------------||
	
	
//------------------------------------------START GRAY LINE---------------------------------------------||

  strOutput +=  "<TABLE width=100% border=0 cellspacing=0 cellpadding=0><TR><TD bgcolor=#CCCCCC>";
	    strOutput += "<IMG src=../common/pixel.gif width=1 height=1></TD></TR></TABLE>";
	
	 

strOutput += "<br><IMG src=\"managepage_shippingoptions.gif\" width=\"200\" height=\"17\"><br><br>";



//----------------------------------------------START SHIPPING DESCRIPTION TABLE----------------------------||
strOutput += "<table width=100% border=0 cellpadding=0 cellspacing=0><TR>";
strOutput += "<TD class=technicaltext><b>";
strOutput += "The ways we can ship your order.</B><BR>Most orders are processed within 24 hours of receipt. Orders placed on Saturday and Sunday will be processed<BR> on the following Monday. <BR>Priority shipping orders received by 2:00PM ET, will be shipped the same day (Weekends excluded).<BR> If your order is placed after 2:00PM ET and you have selected second day or overnight shipping, your order will ship out the following day. <BR><BR><B><font color=cc0000>Please select shipping method.</font></B><br><br>";
strOutput += "</TD></TR></TABLE>";
//---------------------------------------------END SHIPPING DESCRIPTION TABLE-------------------------------|| 

//----------------------------------------------START SHIPPING OPTION TABLE---------------------------------||	 

strOutput += "<TABLE border=0 cellspacing=0 cellpadding=0 width=100%>";
strOutput += "<TR><TD align=top BGCOLOR=#EDEDED COLSPAN=5 height=22 width=600>";

function ShowProvince( ) {
   var strProvince = ""
   var strOutput = ""
   
}
if (( DisplayShippingRow ) && ( iNumberOrdered != 0)) { 
//this displays the shipping matrix and sets the value for each zone ||



strOutput += "<SELECT class=\"box\" name=\"ZONE\" onChange=\"ComputeShipping(this.options[this.selectedIndex].value)\">"; 
strOutput += "<OPTION VALUE=\"0\">SHIPPING OPTIONS</OPTION>";



strOutput += "<OPTION VALUE=\"1\">Regular Parcel</OPTION>"; 
strOutput += "<OPTION VALUE=\"2\">Xpresspost</OPTION>"; 
strOutput += "<OPTION VALUE=\"3\">Priority Courier</OPTION>";


//strOutput += "<OPTION VALUE=\"4\">Expedited Parcel USA</OPTION>"; 
//strOutput += "<OPTION VALUE=\"5\">Xpresspost USA</OPTION>";

//strOutput += "<OPTION VALUE=\"0\"></OPTION>";
//strOutput += "<OPTION VALUE=\"6\">International Parcel Surface</OPTION>";
//strOutput += "<OPTION VALUE=\"0\"></OPTION>";
strOutput += "</SELECT></TD>";             
strOutput += "</TR></a>"; 


document.write(strOutput);
strOutput = "";

LocationSelected = GetCookie("ZoneSelected"); 
if (LocationSelected == null) LocationSelected = 0; // Code to use Local Area as default checked, but not needed because want null selected at this time ||
if (LocationSelected != null) document.all.ZONE[LocationSelected].checked = true; 

if (LocationSelected != null) {
    var cLocations = document.getElementsByName('ZONE');
    for (var iCtr = 0; iCtr < cLocations.length; iCtr++) {
         if (cLocations[iCtr].value == LocationSelected) cLocations[iCtr].checked = true;
    }
}


////////////////////////////////shipping options////////////////////////////////////////////


if (LocationSelected == 0) LocationLabel = '<font color="#cc0000">Please select shipping option</font>';
if (LocationSelected == 1) LocationLabel = "Regular Parcel"; 
if (LocationSelected == 2) LocationLabel = "Xpresspost"; 
if (LocationSelected == 3) LocationLabel = "Priority Courier"; 
//if (LocationSelected == 4) LocationLabel = "Expedited Parcel USA"; 
//if (LocationSelected == 5) LocationLabel = "Xpresspost USA"; 
//if (LocationSelected == 6) LocationLabel = "International Parcel Surface"; 


if (LocationSelected == 1) LocationD = "<b>Regular Parcel</b> delivers within 3 business day locally, 4 to 6 business days regionally and 5 - 10 business days nationally between major Canadian centres."; 

if (LocationSelected == 2) LocationD = "<b>Xpresspost</b> delivers the next business day locally and regionally, and 2 business days nationally between most major Canadian centres.";


if (LocationSelected == 3) LocationD = "<b>Priority Courier</b> delivers noon next business day locally and regionally between most major Canadian centres, next business day nationally between major Canadian centres.";

////////////////////////////////////////////////////////////////////////////////////////////

if (fTotal == 0) fShipping = 0; 
else fShipping = ComputeShipping(LocationSelected, fTotal, fShip); 

strShipping = moneyFormat(fShipping); 
strOutput += "<tr><a href=bx></a><TD WIDTH=360 rowspan=2 class=technicaltext valign=bottom HEIGHT=30>"+LocationD+"</td><TD CLASS=\"technicaltext\" align=right COLSPAN=2 HEIGHT=26 VALIGN=BOTTOM nowrap><B>" + LocationLabel + "&nbsp;</B></TD><td width=5></td>"; 
strOutput += "<TD CLASS=\"technicaltext\" ALIGN=RIGHT VALIGN=BOTTOM >" + MonetarySymbol + strShipping + "</TD>"; 
strOutput += "</TR>"; 
strOutput += "<TD CLASS=\"technicaltext\" align=right COLSPAN=2 nowrap><B></B></TD>";
strOutput += "<TD COLSPAN=5 ALIGN=RIGHT CLASS=\"technicaltext\" HEIGHT=24><B><font color=cc0000></B></TD>";
strOutput += "</TR></table>";




//------------------------------------------START GRAY LINE---------------------------------------------||

  strOutput +=  "<BR><TABLE width=100% border=0 cellspacing=0 cellpadding=0><TR><TD bgcolor=#CCCCCC>";
	    strOutput += "<IMG src=../common/pixel.gif width=1 height=1></TD></TR></TABLE>";

//----------------------------------------START TAX DESRIPTION TABLE------------------------------------||
strOutput += "<br><IMG src=\"managepage_salestax.gif\" width=\"200\" height=\"17\"><br>";


strOutput += "<br><table width=100% BORDER=0 CELLSPACING=0 CELLPADDING=0 height=40><tr><TD CLASS=\"technicaltext\"><b>What taxes are charged?</b><br> GST (6%) will be charged to all products being shipped in Canada. QST will be an additional charge to all products shipped within Quebec (7.5%). International ordes are tax free.<br><br><b><font color=cc0000>Please indicate your place of residency.</font><br><br></TD></tr></table>";	

//----------------------------------------START TAX SELECTION TABLE--------------------------------------||


      if ( FstRate > 0 ) {
            strOutput += "<table width=100% border=0 CELLSPACING=0>";
            
			}
// Don't display Provincial Sales Tax Row if Tax Rate zero
      if ( TaxRate > 0 ) {
            strOutput += "";
            strOutput += "";
           
			}

      if ( DisplayTaxRow || TaxByRegion ) {
         if ( TaxByRegion ) {
            
strOutput += "<TR height=70><td ALIGN=\"center\" width=33% CLASS=\"technicaltext\" bgcolor=#EDEDED>You are residing in the Province of Quebec<br><br><input type=radio name=\"" +OutputOrderTax+"\" value=\"" + strATax +  "\" checked=\"checked\"></td>";

strOutput += "<td WIDTH=1></td>";

strOutput += "<td ALIGN=\"center\" width=33% CLASS=\"technicaltext\" bgcolor=#EDEDED>You are residing outside the<br>Province of Quebec in Canada<br><br><input type=radio name=\""+OutputOrderTax+"\" value=\"" + strFst + "\"></td>";

strOutput += "<td WIDTH=1></td>";

strOutput += "<td ALIGN=\"center\" width=33% CLASS=\"technicaltext\" bgcolor=#EDEDED>You are residing outside<br>Canada<br><br><input type=radio name=\""+OutputOrderTax+"\" value=\"0.00\"></input></td></TR>";
 

           
         } else {
            strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=5 align=\"right\"><B>"+strTAX+" &nbsp; </B></TD>";
            strOutput += "<TD CLASS=\"noptotal\" ALIGN=\"right\"><B>" + MonetarySymbol + strATax + "</B></TD>";
            strOutput += "</TR>";
         }
      }
}
      if ( !TaxByRegion ) {
         strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=5 align=\"right\"><B>"+strTOT+" &nbsp; </B></TD>";
         
         strOutput += "</TR>";
      }
      strOutput += "</TABLE> ";
	  
 
   
  
//------------------------------------------------END TAX TABLE--------------------------------------------||


//------------------------------------------START TOTAL TABLE-----------------------------------------------|| 
	  
		strOutput += "<br><table width=100% BORDER=0>";
   
		
		if (fItems >= 1) { 
discount = (fTotal * .25); 
strOutput += "<TR><TD align=\"right\" CLASS=\"technicaltext\" COLSPAN=4><B><font color=CC0000>25% DISCOUNT</B></font></TD>"; 
strOutput += "<TD CLASS=\"technicaltext\" ALIGN=\"right\"><font color=#CC0000>" + MonetarySymbol + moneyFormat(discount); + "</B></TD><TD CLASS=\"technicaltext\"><BR></TD>"; 
strOutput += "</TR>";
strOutput += "<TR><TD CLASS=\"technicaltext\" align=right colspan=4><b>	PRICE AFTER DISCOUNT</TD>";
strOutput += "<TD ALIGN=RIGHT CLASS=\"technicaltext\">" + MonetarySymbol + moneyFormat(fTotal +  - discount) + "</TD></tr>";

strOutput += "<tr><TD CLASS=\"technicaltext\" align=right colspan=5><font color=cc0000>Applicable taxes will be added at checkout</font></TD></tr>";

strOutput += "<tr><td align=right colspan=5 height=20><table cellspacing=0 cellpadding=0><TR><TD bgcolor=\"#000000\"><IMG src=\"../../common/pixel.gif\" width=\"245\" height=\"1\"></TD></TR></table></td></tr>";

 //---------------------------------------TOTAL LINE TABLE------------------------------------------------------
 
  

 



strOutput += "<TR><TD WIDTH=600 CLASS=\"technicaltext\" align=right colspan=4><b>SUB-TOTAL with Discount and Shipping & Handling added</TD>";
strOutput += "<TD ALIGN=RIGHT CLASS=\"technicaltext\"><B><font color=#CC0000>" + MonetarySymbol + moneyFormat(fTotal + fShipping +  - discount) + "</B></TD></tr>";
strOutput += "</table>";
		}

// Don't display Federal Sales Tax Row if FST Rate zero



	 

//------------------------------------------START GRAY LINE-------------------------------------------------||

  //strOutput +=  "<TABLE width=100% border=0 cellspacing=0 cellpadding=0><BR><TR><TD bgcolor=#CCCCCC>";
  //strOutput += "<IMG src=../common/pixel.gif width=1 height=10></TD></TR></TABLE>";
  
  //strOutput +=  "<TABLE width=100% border=0 cellspacing=0 cellpadding=0><BR><TR><TD bgcolor=#CCCCCC align=right>";
  
  
  
  
   //strOutput +=" <SELECT name=\"ADDITIONALINFO2\"  id=\"ADDITIONALINFO2\">";
   //strOutput +="<option value=\"Select an event\">Select an event</option>";
    //strOutput +="<option value=\"Wild Card\">Wild Card</option>";
    //strOutput +="<option value=\"Nolcha\">Nolcha</option>";
    //strOutput +="<option value=\"Pure\">Pure</option>";
    //strOutput +="<option value=\"Kinky Media\">Kinky Media</option>";
    //strOutput +="<option value=\"Charitable Events\">Charitable Events</option>";
    //strOutput +="<option value=\"No event\">No event</option>";
       //strOutput += "</select>";
  
  
  //strOutput += "</TD></TR></TABLE>";
  

//--------------------------------------START BOTTOM NAVIGATION TABLE---------------------------------------||

strOutput += "<br><table border=0 cellspacing=4 cellpadding=0 align=right height=30>";

strOutput += "<tr><td align=left valign=middle>";
strOutput += "<A href=\"javascript:history.back()\"><img src=cont_shop.gif align=absmiddle width=138 height=13 border=0 /></a>";
strOutput += "</td>";
strOutput += "<td>";
strOutput += "<A href=managecart.html class=cartlinks onClick=\"SetCookie ('NumberOrdered', 0, null, '/');\"><img src=empty_cart.gif align=absmiddle width=90 height=13 border=0 /></a></td>";
strOutput += "<td align=right>";

strOutput += "<A href=javascript:location.reload() target=\_self class=cartlinks><img src=product_update_cart.gif width=90 border=0 /></a></td>";
strOutput += "<td valign=MIDDLE align=RIGHT></a><INPUT type=\"image\" src=product_checkout_cart.gif border=\"0\" onSubmit=\"return ValidateCart(this)\"></td>";
strOutput += "</tr>";
strOutput += "</table><TD>";

} 


strOutput += "</TR></TD>";
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=\""+OutputOrderFst+"\"      value=\""+ MonetarySymbol + strFst + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+ MonetarySymbol + strTax + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+ MonetarySymbol + moneyFormat((fTotal + fShipping + fFst + fTax)) + "\">";

      }
   }
 g_TotalCost = (fTotal);
   document.write(strOutput);
   document.close();
}

//-----------------------------------------------------------------------|| 
// FUNCTION: ComputeShipping                                             || 
// PARAMETERS: Zone, Total Quantity, Weight, Total Value, preset amount  || 
// RETURNS:  Shipping Cost                                               || 
// PURPOSE: Compute shipping cost total Qty and shipping zone            || 
//-----------------------------------------------------------------------||
 
function ComputeShipping(Zone, fTotal, fShip) { 
LocationValue = GetCookie("ZoneSelected"); 

if (LocationValue != Zone) { 
SetCookie("ZoneSelected", Zone, null, "/"); 
location.href=location.href;


}



//-------------------------------------Regular Parcel------------------------------||

if (LocationValue == 1 ) { 
            
            if (fTotal > 1.00 && fTotal <= 25.00 ) return fShipping =  5.50 ;
			if (fTotal > 25.01 && fTotal <= 40.00 ) return fShipping = 6.50 ; 
			if (fTotal > 40.01 && fTotal <= 60.00 ) return fShipping = 7.50 ; 
			if (fTotal > 60.01 && fTotal <= 80.00 ) return fShipping =  8.50 ;
			if (fTotal > 80.01 && fTotal <= 100.00 ) return fShipping =  9.50 ;
			if (fTotal > 100.01 && fTotal <= 125.00 ) return fShipping =  11.00 ;
			if (fTotal > 125.00 && fTotal <= 160.00 ) return fShipping =  13.50 ;
			if (fTotal > 160.00 && fTotal <= 1000.00 ) return fShipping =  14.50 ; 
			if (fTotal > 1000.00 && fTotal <= 10000.00 ) return fShipping =  18.50 ; 

}

//------------------------------------Xpresspost-----------------------------------||

if (LocationValue == 2 ) { 
            
            if (fTotal > 1.00 && fTotal <= 25.00 ) return fShipping =  10.50 ;
			if (fTotal > 25.01 && fTotal <= 40.00 ) return fShipping = 11.50 ; 
			if (fTotal > 40.01 && fTotal <= 60.00 ) return fShipping = 12.50 ; 
			if (fTotal > 60.01 && fTotal <= 80.00 ) return fShipping =  13.50 ;
			if (fTotal > 80.01 && fTotal <= 100.00 ) return fShipping =  14.50 ;
			if (fTotal > 100.01 && fTotal <= 125.00 ) return fShipping =  16.00 ;
			if (fTotal > 125.00 && fTotal <= 160.00 ) return fShipping =  18.50 ;
			if (fTotal > 160.00 && fTotal <= 1000.00 ) return fShipping =  19.50 ; 
			if (fTotal > 1000.00 && fTotal <= 10000.00 ) return fShipping =  23.50 ; 

}

//------------------------------------Priority Courier-----------------------------------||

if (LocationValue == 3 ) { 
            
            if (fTotal > 1.00 && fTotal <= 25.00 ) return fShipping =  17.00 ;
			if (fTotal > 25.01 && fTotal <= 40.00 ) return fShipping = 18.50 ; 
			if (fTotal > 40.01 && fTotal <= 60.00 ) return fShipping = 19.50 ; 
			if (fTotal > 60.01 && fTotal <= 80.00 ) return fShipping =  20.50 ;
			if (fTotal > 80.01 && fTotal <= 100.00 ) return fShipping =  21.50 ;
			if (fTotal > 100.01 && fTotal <= 125.00 ) return fShipping =  23.00 ;
			if (fTotal > 125.00 && fTotal <= 160.00 ) return fShipping =  24.50 ;
			if (fTotal > 160.00 && fTotal <= 1000.00 ) return fShipping =  25.50 ; 
			if (fTotal > 1000.00 && fTotal <= 10000.00 ) return fShipping =  30.50 ; 

}
//------------------------------------Expedited-----------------------------------||

if (LocationValue == 4 ) { 
            
            if (fTotal > 1.00 && fTotal <= 25.00 ) return fShipping =  17.00 ;
			if (fTotal > 25.01 && fTotal <= 40.00 ) return fShipping = 18.50 ; 
			if (fTotal > 40.01 && fTotal <= 60.00 ) return fShipping = 19.50 ; 
			if (fTotal > 60.01 && fTotal <= 80.00 ) return fShipping =  20.50 ;
			if (fTotal > 80.01 && fTotal <= 100.00 ) return fShipping =  21.50 ;
			if (fTotal > 100.01 && fTotal <= 125.00 ) return fShipping =  23.00 ;
			if (fTotal > 125.00 && fTotal <= 160.00 ) return fShipping =  24.50 ;
			if (fTotal > 160.00 && fTotal <= 1000.00 ) return fShipping =  25.50 ; 
			if (fTotal > 1000.00 && fTotal <= 10000.00 ) return fShipping =  30.50 ; 

}

//------------------------------------ExressUSA-----------------------------------||

if (LocationValue == 5 ) { 
            
            if (fTotal > 1.00 && fTotal <= 25.00 ) return fShipping =  17.00 ;
			if (fTotal > 25.01 && fTotal <= 40.00 ) return fShipping = 18.50 ; 
			if (fTotal > 40.01 && fTotal <= 60.00 ) return fShipping = 19.50 ; 
			if (fTotal > 60.01 && fTotal <= 80.00 ) return fShipping =  20.50 ;
			if (fTotal > 80.01 && fTotal <= 100.00 ) return fShipping =  21.50 ;
			if (fTotal > 100.01 && fTotal <= 125.00 ) return fShipping =  23.00 ;
			if (fTotal > 125.00 && fTotal <= 160.00 ) return fShipping =  24.50 ;
			if (fTotal > 160.00 && fTotal <= 1000.00 ) return fShipping =  25.50 ; 
			if (fTotal > 1000.00 && fTotal <= 10000.00 ) return fShipping =  30.50 ; 

}

//------------------------------------International-----------------------------------||
if (LocationValue == 6 ) { 
            
            if (fTotal > 1.00 && fTotal <= 25.00 ) return fShipping =  20.00 ;
			if (fTotal > 25.01 && fTotal <= 40.00 ) return fShipping = 18.50 ; 
			if (fTotal > 40.01 && fTotal <= 60.00 ) return fShipping = 19.50 ; 
			if (fTotal > 60.01 && fTotal <= 80.00 ) return fShipping =  20.50 ;
			if (fTotal > 80.01 && fTotal <= 100.00 ) return fShipping =  21.50 ;
			if (fTotal > 100.01 && fTotal <= 125.00 ) return fShipping =  23.00 ;
			if (fTotal > 125.00 && fTotal <= 160.00 ) return fShipping =  24.50 ;
			if (fTotal > 160.00 && fTotal <= 1000.00 ) return fShipping =  25.50 ; 
			if (fTotal > 1000.00 && fTotal <= 10000.00 ) return fShipping =  30.50 ; 

}

if (LocationValue == 0 ) 
return 0.00

} 



//---------------------------------------------------------------------------------------------------------------------||
// FUNCTION:    SmallCart                                              ||
// PARAMETERS:  Null                                                   ||
// RETURNS:     Cart totals written to page                            ||
// PURPOSE:     Gives cart summary on page                             ||
//---------------------------------------------------------------------------------------------------------------------||
function SmallCart( ) {
   var iNumberOrdered = 0;    //Number of products ordered
   var fTotal         = 0;    //Total cost of order
   var fTax           = 0;    //Tax amount
   var fShipping      = 0;    //Shipping amount
   var strTotal       = "";   //Total cost formatted as money
   var strTax         = "";   //Total tax formatted as money
   var strShipping    = "";   //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)

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

   if ( iNumberOrdered == 0 ) {
      strOutput +="<TABLE BORDER=0 cellpadding=0 cellspacing=0 WIDTH=400><TR>";
      strOutput +="</TD><td WIDTH=76><IMG src=http://www.mindyshear.com/bag.gif width=90 height=24 align=absmiddle><TD class=smallcart WIDTH=324><font color=F8D0D1><b>0 items in Bag </b></TD><TD class=smallcart><b></TD></TR></TABLE>";
	}

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

      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, database.length ); //Additional Information

      fTotal     += (parseInt(fields[1]) * parseFloat(fields[2]) );
      fShipping  += (parseInt(fields[1]) * parseFloat(fields[4]) );
      fTax        = (fTotal * TaxRate);
      strTotal    = moneyFormat(fTotal);
      strTax      = moneyFormat(fTax);
      strShipping = moneyFormat(fShipping);
	  
	 strOutput ="<TABLE BORDER=0 cellpadding=0 cellspacing=0 WIDTH=400><TR>";
      strOutput +="<td WIDTH=76><a href=http://mindyshear.com/products/managecart.html><IMG src=http://www.mindyshear.com/bag.gif align=absmiddle border=0>";
	   strOutput +="<TD class=smallcart WIDTH=324><B><a href=http://mindyshear.com/products/managecart.html class=smallcart>"+iNumberOrdered+" ITEM(S) IN BAG</a> | SUB-TOTAL: "+MonetarySymbol+strTotal+"</TD</TR></TABLE>";
	 
	  }

   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 ( isNaN (g_TotalCost) ) { 
alert( NoQtyPrompt ); 
return false; 
} 

if ( MinimumOrder >= 0.01 ) { 
if ( g_TotalCost < MinimumOrder ) { 
alert( MinimumOrderPrompt ); 
return false; 
} 
} 
if (LocationValue == 0 ) {
	
alert( LocationPrompt ); 
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 fprodttl       = 0; 		//Total product cost = QTY * PRICE
   var fFst           = 0;    //FST amount
   var fTax           = 0;    //Tax amount
   var fATax          = 0;    //Total of Both Taxes 
   var fShip          = 0;    //Shipping amount
   var fShipping      = 0;    //Calculated Shipping amount
   var fWeight        = 0;		//Weight of items for shipping calculation 
   var fItems         = 0;    // Sum of item Quantities
   var LocationSelected = 99;
   var LocationLabel  = "";
   var TotWeight      = 0;
   var strTotal       = 0;   //Total cost formatted as money
   
   var strFst         = "";   //Total FST formatted as money
   var strTax         = "";   //Total tax formatted as money
   var strATax        = "";   //Total both taxes formatted as money
   var strNTax        = 0;  
   var strShipping    = "";   //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 strProductId   = "";		//Used or non-taxable item identification
	 var strEv   = "ev";		//Used or non-taxable item identification
	 
   iNumberOrdered = GetCookie("NumberOrdered");
   if ( iNumberOrdered == null )
      iNumberOrdered = 0;

LocationSelected = GetCookie("ZoneSelected"); 
if (LocationSelected == null) LocationSelected = 0; // Code to defeat NANAN if value is null || 



   if ( TaxByRegion ) {
      QueryString_Parse();
      fATax = parseFloat( QueryString( OutputOrderTax ) );
      strATax = moneyFormat(fATax);
   }

// ------------------- CheckoutCart Table Header -----------------------------||
  

   if ( bDisplay )
	 		strOutput = 	"<TABLE CELLSPACING=0 CELLPADDING=0 WIDTH=100% BORDER=0><TR><TD>" +
	"<TABLE CELLSPACING=0 CELLPADDING=0 WIDTH=100% BORDER=0>" ;			



   for ( i = 1; i <= iNumberOrdered; i++ ) {
	 		even = (i & 1);
      NewOrder = "Order." + i;
      database = "";
      database = GetCookie(NewOrder);

      Token0 = database.indexOf("|", 0);
      Token1 = database.indexOf("|", Token0+1);
      Token2 = database.indexOf("|", Token1+1);
      Token3 = database.indexOf("|", Token2+1);
      Token4 = database.indexOf("|", Token3+1);
      Token5 = database.indexOf("|", Token4+1);
      Token6 = database.indexOf("|", Token5+1);
      Token7 = database.indexOf("|", Token6+1);
      Token8 = database.indexOf("|", Token7+1);
      
	  Token9 = database.indexOf("|", Token8+1);
	  Token10 = database.indexOf("|", Token9+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, Token6 ); // User Entry
      fields[7] = database.substring( Token6+1, Token7 ); // Weight
      fields[8] = database.substring( Token7+1, Token8 ); // Limit
      fields[9] = database.substring( Token8+1, Token9 ); // FSTaxable
	  fields[10] = database.substring( Token9+1, Token10 ); // IMage
	  fields[11] = database.substring( Token10+1, database.length); // FSTaxable
      

      fprodttl    = (parseInt(fields[1]) * parseFloat(fields[2]) );
      fTotal     += fprodttl;	             
      fItems     += parseInt(fields[1]);	  
			fWeight    += (parseInt(fields[1])* parseFloat(fields[7]) );
      fShip      += (parseInt(fields[1]) * parseFloat(fields[4]) );
			if( fields[9]  == "true" ) { fFst += ( fprodttl * FstRate); }

if ( !TaxByRegion ) {
			if( fields[10] == "true" ) fTax += (fprodttl * TaxRate);  
			}
      strTotal    = moneyFormat(fTotal);
			strFst    = moneyFormat(fFst);
      if ( !TaxByRegion ) strTax = moneyFormat(fTax);

      fShipping = ComputeShipping(LocationSelected, fTotal, fShip);
	  strShipping = moneyFormat(fShipping);

// ------------------- CheckoutCart Table Body -------------------------------||


if (even ^ 1 ) {noprow="nopeven";
	} else {noprow ="nopentry";
	} 			
			
if ( bDisplay ){

		strOutput += "<TR><TD CLASS=\"item2\" WIDTH=82>"  + fields[0] + "</TD>";
		
		strOutput += "<TD CLASS=\"item2\" WIDTH=50>"  + fields[1] + "</TD>"

          if ( fields[5] == "" )
            strOutput += "<tr height=50><TD CLASS=\"item2\">"+ " &nbsp "  + fields[3] + "</TD>";
         else
            strOutput += "<td width=70 CLASS=\"item2\">" + fields[11] + "</td><TD CLASS=\"item\" width=140 height=50 align=left>"+ fields[3] + " </TD>";
			strOutput += "<TD CLASS=\"item2\" width=165 align=center> " + fields[5] + "</TD>";


         
         strOutput += "<TD width=90 align=center CLASS=\"item2\">"+ MonetarySymbol + moneyFormat(fields[2]) + "</TD>";

// Display either shipping or extended price in this column
         if ( DisplayShippingColumn ) {
            if ( parseFloat(ItemWeight[i]) > 0 )
    strOutput += "<TD CLASS=\"item2\" align=\"right\">"+ MonetarySymbol + moneyFormat(ItemWeight[i]) + "/ea</TD>";
            else
    strOutput += "<TD CLASS=\"item2\" ALIGN=\"center\">N/A</TD>";
         }
	else {
		strOutput += "<TD ALIGN=RIGHT CLASS=\"item2\" align=\"right\">"+ MonetarySymbol + moneyFormat(fprodttl) + " </TD>";
         }
    strOutput += "</TR>";
  }



if (fItems >= 1) { 
discount = (fTotal * .25); 
	}

      if ( AppendItemNumToOutput ) {
         strFooter = i;
      } else {
         strFooter = "";
      }
	  
	
	    if ( PaymentProcessor == 'pp' ) { 
//Process hidden values for PayPal. 

strOutput += "<input type=hidden name=\"item_number_"+ strFooter + "\" value=\"" + fields[0] + "\">"; 
strOutput += "<input type=hidden name=\"quantity_" + strFooter + "\" value=\"" + fields[1] + "\">"; 
strOutput += "<input type=hidden name=\"amount_" + strFooter + "\" value=\"" + (fields[2]*.75) + "\">"; 
strOutput += "<input type=hidden name=\"item_name_" + strFooter + "\" value=\"" + fields[3] + "\">"; 


if (i == iNumberOrdered) { 

strOutput += "<input type=hidden name=\"on0_" + strFooter + "\" value=\"" + fields[5] + "\">";


} else { 


strOutput += "<input type=hidden name=\"handling" + strFooter + "\" value=\"" + strShipping + "\">";
strOutput += "<input type=hidden name=\"tax_1\" value=\"" + strNTax + "\">"; //me 
strOutput += "<input type=hidden name=\"tax_cart\" value=\"" + fATax + "\">"; //me 
strOutput += "<input type=hidden name=\"on0_" + strFooter + "\" value=\"" + fields[5] + "\">";
strOutput += "<input type=hidden name=\"on1_" + strFooter + "\" value=\"" + fields[1] + "\">";

}
	  
}
	  
	  
	  
	  
	  
      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=\" Item "  +  strFooter + '  PLU=' + fields[0] + strSpace + OutputItemQuantity  + '=' + fields[1] + strSpace + fields[3] + strSpace + fields[5] + strSpace + MonetarySymbol + moneyFormat(fields[2]) + "/ea " + strSpace + MonetarySymbol + moneyFormat(fprodttl) +"\n\n\">";
      } 

   }
   
  
// ------------------- Start of CheckoutCart Table Footer -------------------||
       
	  
	   fShipping = ComputeShipping(LocationSelected, fTotal, fShip);
	 
	 
	
		if (addTaxtoShipping){
      fShipping  += (fShipping * ShippingFstRate);	// calculates FST on shipping charge
	    fShipping  += (fShipping * ShippingTaxRate);	// calculates PST on shipping charge
			} else {
      fFst  += (fShipping * ShippingFstRate);	// calculates FST on shipping charge
	    fTax  += (fShipping * ShippingTaxRate);	// calculates PST on shipping charge
			}
			 if (fATax ==0) {fTax = fFst = 0;}
			fTax        = (fATax - fFst);
			  if (fTax <= 0.00) fTax = 0;
      strTotal    = moneyFormat(fTotal);
      strFst      = moneyFormat(fFst);
      strTax      = moneyFormat(fTax);
      


   if ( bDisplay ) {
      strOutput += "<TABLE WIDTH=658 border=0 cellpadding=\"4\" cellspacing=\"0\">";
      strOutput += "<br><TR><TD CLASS=\"technicaltext\" COLSPAN=4 ALIGN=RIGHT width=88%><B>"+strSUB+"</B></TD>";
      strOutput += "<TD CLASS=\"technicaltext\" COLSPAN=2 ALIGN=RIGHT>" + MonetarySymbol + strTotal +"</B></TD>";
      strOutput += "</TR>";
	    
		
		if (fItems >= 1) { 
fdiscount = (fTotal * .25); 
strOutput += "<TR><TD align=\"right\" CLASS=\"technicaltext\" COLSPAN=4><B><font color=cc0000>25% DISCOUNT</B></font></TD>"; 
strOutput += "<TD CLASS=\"technicaltext\" ALIGN=\"right\">" + MonetarySymbol + moneyFormat(discount)+"</B></TD>"; 
strOutput += "</TR>"; 
strOutput += "<TR><TD CLASS=\"technicaltext\" align=right colspan=4><b>	PRICE AFTER DISCOUNT</TD>";
strOutput += "<TD ALIGN=RIGHT CLASS=\"technicaltext\"><font color=#CC0000>" + MonetarySymbol + moneyFormat(fTotal + - discount) + "</TD></tr>";
		}

		 

      if ( DisplayShippingRow ) {
         strOutput += "<TR><TD CLASS=\"technicaltext\" COLSPAN=4 ALIGN=RIGHT><B>"+strSHIP+"</B></TD>";
         strOutput += "<TD CLASS=\"technicaltext\" COLSPAN=2 ALIGN=RIGHT>" + MonetarySymbol + strShipping +"</B></TD>";
         strOutput += "</TR>";
		 
		 
		 
		 
		 
		 
		 
		 
      }

         strOutput += "<TR><TD CLASS=\"technicaltext\" COLSPAN=4 ALIGN=RIGHT><B>"+strFST+"</B></TD>";
         strOutput += "<TD CLASS=\"technicaltext\" COLSPAN=4 ALIGN=RIGHT>" + MonetarySymbol + strFst +"</B></TD>";
         strOutput += "</TR>";




 
      if ( DisplayTaxRow || TaxByRegion ) {
         strOutput += "<TR><TD CLASS=\"technicaltext\" COLSPAN=4 ALIGN=RIGHT height=18><B>"+strTAX+"</B></TD>";
         strOutput += "<TD CLASS=\"technicaltext\" COLSPAN=2 ALIGN=RIGHT>" + MonetarySymbol + strTax +"</B></TD>";
         strOutput += "</TR></TABLE>";
      }

if ( DisplayShippingRow ) { 
LocationSelected = GetCookie("ZoneSelected"); 
if (LocationSelected == null) LocationSelected = 0; //Needed if checkout cart is empty

if (LocationSelected == 0) LocationLabel = '<font color="#cc0000">Please select shipping option</font>';
if (LocationSelected == 1) LocationLabel = "Regular Parcel:"; 
if (LocationSelected == 2) LocationLabel = "Xpresspost:"; 
if (LocationSelected == 3) LocationLabel = "Priority Courier:"; 
if (LocationSelected == 4) LocationLabel = "Expedited Parcel USA:"; 
if (LocationSelected == 5) LocationLabel = "Xpresspost USA:"; 
if (LocationSelected == 6) LocationLabel = "International Parcel Surface:";

fShipping = ComputeShipping(LocationSelected, fTotal, fShip); 
strShipping = moneyFormat(fShipping); 
}
//----------------------------------------TOTAL LINE TABLE HOLDER------------------------------------------------

 strOutput += "<TABLE TABLE WIDTH=100% BORDER=0><TR><TD ALIGN=RIGHT HEIGHT=4 VALIGN=BOTTOM>";
 
 //---------------------------------------TOTAL LINE TABLE------------------------------------------------------
 
  strOutput += "<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><TR><TD bgcolor=\"#000000\"><IMG src=\"../../common/pixel.gif\" width=\"237\" height=\"1\"></TD></TR></TABLE>";

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

//---------------------------------------TOTAL TABLE-------------------------------------------------------------

      strOutput += "<TABLE WIDTH=656 BORDER=0><TR><TD CLASS=\"technicaltext\" COLSPAN=2 ALIGN=RIGHT height=18 WIDTH=88%><B>"+strTOT+"</B></TD>";
      strOutput += "<TD CLASS=\"technicaltext\" COLSPAN=2 ALIGN=RIGHT><FONT color=\"#CC0000\"><B>" + MonetarySymbol + moneyFormat((fTotal + fShipping + fFst + fTax + -discount)) + "</B></TD>";
      strOutput += "</TR>";

      strOutput += "</TABLE> </TD></TR></TABLE>";
	  
//----------------------------------------END TOTAL TABLE--------------------------------------------------------	

strOutput +=  "<TABLE width=100% border=0 cellspacing=0 cellpadding=0><BR><TR>";
  strOutput += "<TD width=71% align=left bgcolor=#CCCCCC><span class=technicaltext>&nbsp;&nbsp;Please select your promotional code by selecting an event.</span>";
   strOutput += "</TD><TD width=29% align=right bgcolor=#CCCCCC>";
  
  
  
  
 strOutput +=" <SELECT name=\"ADDITIONALINFO1\"  id=\"ADDITIONALINFO1\">";
  strOutput +="<option value=\"Select an event\">Select an event</option>";
  strOutput +="<option value=\"Wild Card\">Wild Card</option>";
 strOutput +="<option value=\"Nolcha\">Nolcha</option>";
   strOutput +="<option value=\"Pure\">Pure</option>";
   strOutput +="<option value=\"Kinky Media\">Kinky Media</option>";
    strOutput +="<option value=\"Charitable Events\">Charitable Events</option>";
   strOutput +="<option value=\"No event\">No event</option>";
   strOutput += "</select>";
  
  

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






strOutput += "<TABLE BORDER=0 align=right><TR><TD CLASS=\"technicaltext\" COLSPAN=2 ALIGN=RIGHT height=28 VALIGN=BOTTOM><B><A href=\"javascript:history.back()\"><img src=\"changer_order_cart.gif\" width=\"129\" height=\"13\" border=\"0\"></TD>";
      strOutput += "<TD CLASS=\"technicaltext\" COLSPAN=2 ALIGN=RIGHT VALIGN=BOTTOM><FONT color=\"#CC0000\"><INPUT type=\"image\" name=\"imageField\" src=\"checkout_cho.gif\" /></TD>";
      strOutput += "</TR>";

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


      if ( PaymentProcessor == 'pp' ) { 
//Process hidden values for PayPal. 


strOutput += "<input type=hidden name=\"discount"+ strFooter + "\" value=\"" + .25 + "\">"; 
strOutput += "<input type=hidden name=\"item_number_"+ strFooter + "\" value=\"" + fields[0] + "\">"; 
strOutput += "<input type=hidden name=\"quantity_" + strFooter + "\" value=\"" + fields[1] + "\">"; 
strOutput += "<input type=hidden name=\"amount_" + strFooter + "\" value=\"" + (fields[2]*.75) + "\">"; 
strOutput += "<input type=hidden name=\"item_name_" + strFooter + "\" value=\"" + fields[3] + "\">"; 


if (i == iNumberOrdered) { 
strOutput += "<input type=hidden name=\"shipping_" + strFooter + "\" value=\"" + strShipping + "\">"; 

} else { 
strOutput += "<input type=hidden name=\"on0_" + strFooter + "\" value=\"" + fields[5] + "\">";




strOutput += "<input type=hidden name=\"shipping_" + strFooter + "\" value=\"" + strShipping + "\">";
strOutput += "<input type=hidden name=\"tax_1\" value=\"" + strNTax + "\">"; //me 
strOutput += "<input type=hidden name=\"tax_cart\" value=\"" + fATax + "\">"; //me 
}
	 
      } else {
         strOutput += "<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+ MonetarySymbol + strTotal + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+ MonetarySymbol + strShipping + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderFst+"\"      value=\""+ MonetarySymbol + strFst + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderTax+"\"      value=\""+ MonetarySymbol + strTax + "\">";
         strOutput += "<input type=hidden name=\""+OutputOrderTotal+"\"    value=\""+ MonetarySymbol + moneyFormat((fTotal + fShipping + fATax -discount)) + "\n" + "\n" + "\">";
      }
   }

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

//---------------------------------------------------------------------||
// FUNCTION: Print_total                                               ||
// PARAMETERS: true/false if you want MonetarySymbol added to string   ||
// RETURNS: Total cost currently racked up by shopper                  ||
// PURPOSE: Aesthetics                                                 ||
//---------------------------------------------------------------------||
function Print_total(bSymbol) {
var strOutput = ""; //String to be written to page
var strTotal = ""; //Total cost formatted as money
var fTotal = 0;
var iNumberOrdered = 0; //Number of products ordered

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

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

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 ); // Weight
fields[5] = database.substring( Token4+1, database.length ); //Additional Information

fTotal += (parseInt(fields[1]) * parseFloat(fields[2]) );
}
strTotal = moneyFormat(fTotal);
strOutput+=strTotal;
if ( bSymbol )
   strOutput = MonetarySymbol + strOutput
document.write(strOutput);
}

//---------------------------------------------------------------------||
// FUNCTION: Print_total_products                                      ||
// PARAMETERS: true/false if you want "item(s)" added to string        ||
// RETURNS: Total cost currently racked up by shopper                  ||
// PURPOSE: Aesthetics                                                 ||
//---------------------------------------------------------------------||
function Print_total_products(bVerbose) {
var strOutput = ""; //String to be written to page
var fTotal = 0;
var iNumberOrdered = 0; //Number of products ordered

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

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

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 ); // Weight
fields[5] = database.substring( Token4+1, database.length ); //Additional Information

fTotal += (parseInt(fields[1]));
}

strOutput+=fTotal;
if ( bVerbose ) {
   if (fTotal == 1) {
      strOutput+=" item"
   }
   else {
      strOutput+=" items"
   }
}
document.write(strOutput);
}

//---------------------------------------------------------------------||
// FUNCTION: Cart_is_empty                                             ||
// PARAMETERS: none                                                    ||
// RETURNS: Total true if cart is empty, false otherwise               ||
// PURPOSE: Aesthetics                                                 ||
//---------------------------------------------------------------------||
function Cart_is_empty( ) {
   iNumInCart = GetCookie("NumberOrdered");

   if ( iNumInCart == null ) iNumInCart = 0;

   if ( iNumInCart == 0 ) return true;

   return false;

}

//=====================================================================||
//               END NOP Design SmartPost Shopping Cart                ||
//=====================================================================||
//strOutput +=" <tr><td width=100%>";
//strOutput += "<TABLE border=0 cellspacing=0 cellpadding=0 width=100%>";
//strOutput += "<TR><TD width=261 align=center bgcolor=#EDEDED><IMG src=product_name_cart.gif width=77 height=13></TD>";
//strOutput += "<TD width=6 bgcolor=#FFFFFF><IMG src=../common/pixel.gif width=6 height=1></TD>";
//strOutput += "<TD width=117 class=companybold><CENTER><IMG src=product_shape_cart.gif width=95 height=13></CENTER></TD>";
//strOutput += "<TD width=6 bgcolor=#FFFFFF class=companybold><IMG src=../common/pixel.gif width=6 height=1></TD>";
//strOutput += "<TD width=58 class=companybold><CENTER><IMG src=product_qty_cart.gif width=41 height=13></CENTER></TD>";
//strOutput += "<TD width=6 bgcolor=#FFFFFF class=companybold><IMG src=../common/pixel.gif width=6 height=1></TD>";
//strOutput +=  "<TD width=135 class=companybold><CENTER><IMG src=product_price_cart.gif width=58 height=13></CENTER></TD>";
//strOutput +=  "<TD width=6 bgcolor=#FFFFFF class=companybold><IMG src=../common/pixel.gif\" width=6 height=1></TD>";
//strOutput += "<TD width=61 class=companybold><CENTER><IMG src=product_EDIT_cart.gif width=46 height=13></CENTER></TD>";
//strOutput += "</TR></TABLE>";
//strOutput += "</tr></tr>"
