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

//=====================================================================|| 
// UPS Shiping Mod by Stefko V.1.0.0 || 
// || 
// Version History: 02/23/03  V.1.0.0 Released || 
//                            includes USERENTRY ||                            
//                  03/02/03  V.1.1.0 Now works with Netscape & Opera || 
//                            added Taxable and Non-taxable product code|| 
//                            added MathRound to Weight || 
//=====================================================================|| 

//---------------------------------------------------------------------|| 
// 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="../os1/nopcart.js">... line. || 
// For example: <SCRIPT SRC="language-en.js"></SCRIPT> || 
// || 
// Options For Everyone: || 
// ===================== || 
// * MonetarySymbol: string, the symbol which represents dollars/euro, || 
// in your locale. || 
// * DisplayNotice: true/false, controls whether the user is provided || 
// with a popup letting them know their product is added to the cart || 
// * DisplayShippingColumn: true/false, controls whether the managecart|| 
// and checkout pages display shipping cost column. || 
// * DisplayShippingRow: true/false, controls whether the managecart || 
// and checkout pages display shipping cost total row. || 
// * DisplayTaxRow: true/false, controls whether the managecart || 
// and checkout pages display tax cost total row. || 
// * TaxRate: number, your area's current tax rate, ie: if your tax || 
// rate was 7.5%, you would set TaxRate = 0.075 || 
// * TaxByRegion: true/false, when set to true, the user is prompted || 
// with TaxablePrompt to determine if they should be charged tax. || 
// In the USA, this is useful to charge tax to those people who live || 
// in a particular state, but no one else. || 
// * TaxPrompt: string, popup message if user has not selected either || 
// taxable or nontaxable when TaxByRegion is set to true. || 
// * TaxablePrompt: string, the message the user is prompted with to || 
// select if they are taxable. If TaxByRegion is set to false, this || 
// has no effect. Example: 'Arizona Residents' || 
// * NonTaxablePrompt: string, same as above, but the choice for non- || 
// taxable people. Example: 'Other States' || 
// * MinimumOrder: number, the minium dollar amount that must be || 
// purchased before a user is allowed to checkout. Set to 0.00 || 
// to disable. || 
// * MinimumOrderPrompt: string, Message to prompt users with when || 
// they have not met the minimum order amount. || 
// || 
// Payment Processor Options: || 
// ========================== || 
// * PaymentProcessor: string, the two digit payment processor code || 
// for support payment processor gateways. Setting this field to || 
// anything other than an empty string will override your OutputItem || 
// settings -- so please be careful when receiving any form data. || 
// Support payment processor gateways are: || 
// * Authorize.net (an) || 
// * Worldpay (wp) || 
// * LinkPoint (lp) || 
// || 
// 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: 
Debug = false; //SHOW MY DEBUG STUFF
DisplaySpecialDeliveryOption = true; //SEE Section at around lines 773 and 910 onwards
SaturdayDelivery = false; //This variable is to enable the Thursday Friday  - Next day guaranteed
MonetarySymbol = '£'; 
DisplayNotice = false; 
DisplayChangeQty = true; 
DisplayShippingColumn = true; 
DisplayShippingRow = true; 
TaxRate = 0.175; //set taxable region rate || 
DisplayTaxRow = false; 
TaxByRegion = false; //leave this at false, UPS Shipping Mod will activate taxable Zone || 
TaxPrompt = 'For tax purposes, please select if you are an Kansas branch of Oasis before continuing'; //Deactivated || 
TaxablePrompt = 'Kansas Branch'; //Deactivated || 
NonTaxablePrompt = 'Other Branches'; //Deactivated || 
MinimumOrder = 0.01; 
MinimumOrderPrompt = "\n\nYou can't proceed to the checkout page as \nthere aren't any items in your shopping cart."; 
//original syntax - MinimumOrderPrompt = 'Your order is below our minimum order, please order more before checking out.'; 

NoQtyPrompt = 'You cannot proceed until You Select Your Postal Location'; //If attempted to go to checkout before selecting shipping zone || 

//Payment Processor Options: 
PaymentProcessor = ''; 

//Options for Programmers: 
OutputItemId = 'ID_'; 
OutputItemQuantity = 'QUANTITY_'; 
OutputItemPrice = 'PRICE_'; 
OutputItemName = 'NAME_'; 
OutputItemWeight = 'WEIGHT_'; //Added for UPS mod || 
OutputItemAddtlInfo = 'ADDTLINFO_'; 
OutputItemXtend = 'XTEND_'; 
OutputOrderZone = 'SHIPZONE'; 
OutputOrderSubtotal = 'SUBTOTAL'; 
OutputOrderShipping = 'SHIPPING'; 
OutputOrderTax = 'TAX'; 
OutputOrderTotal = 'TOTAL'; 
AppendItemNumToOutput = true; 
HiddenFieldsToCheckout = true; 

//Options for Shipping by Weight: 
LocationLabel = 'ZONE'; 
LocationPrompt = 'Please select your location for calculating postal charges if applicable.'; 
MaxWeightPrompt = 'Sorry for Airmail, maximum weight allowable is 500Kgs.'; 
MinSpendUK = 25.00;
MinPostageUK = 2.95;


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


//---------------------------------------------------------------------|| 
// Language Strings || 
// ------------------ || 
// These strings will not be used unless you have not included a || 
// language pack already. You should NOT modify these, but instead || 
// modify the strings in language-**.js where ** is the language pack || 
// you are using. || 
//---------------------------------------------------------------------|| 
if ( !bLanguageDefined ) { 
strSorry = "I'm Sorry, your cart is full, please proceed to checkout."; 
strAdded = " Added to your shopping cart."; 
strRemove = "Click 'Ok' to remove this product from your shopping cart."; 
strILabel = "Product Id"; 
strDLabel = "Product Name/Description"; 
strQLabel = "Qty"; 
strPLabel = "Price"; 
strSLabel = "Weight"; //Added for UPS mod || 
strRLabel = "Remove From Cart"; 
strRButton= "Remove"; 
strSUB = "SUBTOTAL"; 

strWTOT = "TOTAL WEIGHT"; //Added for UPS mod || 
strSHIP = "SHIPPING"; 
strTAX = "TAX"; 
strTOT = "TOTAL"; 
strErrQty = "Invalid Quantity."; 
strNewQty = 'Please enter new quantity:'; 
bLanguageDefined = true; 
} 


//---------------------------------------------------------------------|| 
// FUNCTION: CKquantity || 
// PARAMETERS: Quantity to || 
// RETURNS: Quantity as a number, and possible alert || 
// PURPOSE: Make sure quantity is represented as a number || 
//---------------------------------------------------------------------|| 
function CKquantity(checkString) { 
var strNewQuantity = ""; 

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

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

return(strNewQuantity); 
} 


///---------------------------------------------------------------------|| 
// FUNCTION: AddToCart || 
// PARAMETERS: Form Object || 
// RETURNS: Cookie to user's browser, with prompt || 
// PURPOSE: Adds a product to the user's shopping cart || 
// EXTRAS ADDED IN: USERENTRY for customer text input || 
//---------------------------------------------------------------------|| 
function AddToCart(thisForm) { //this adds the entire Form posting fields
//alert("addto cart");
var iNumberOrdered = 0; //declaring the variable
var bAlreadyInCart = false; //declaring the boolean variable 
var notice = ""; 
iNumberOrdered = GetCookie("NumberOrdered"); 


if ( iNumberOrdered == null ) //Equal to Null 
iNumberOrdered = 0;  

if ( thisForm.ID_NUM == null ) //ID_NUM is the Product ID Number
strID_NUM = ""; 
else 
strID_NUM = thisForm.ID_NUM.value; 

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

if ( thisForm.PRICE == null ) 
strPRICE = "0.00"; 
else 
strPRICE = thisForm.PRICE.value; 

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

if ( thisForm.WEIGHT == null ) //Added for UPS mod || 
strSHIPPING = "0"; 
else 
strSHIPPING = 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 ) { 
strADDTLINFO += "; " + thisForm.USERENTRY.value; 
} 
if ( thisForm.USERENTRY2 != null ) { 
strADDTLINFO += "; " + thisForm.USERENTRY2.value; 
} 
if ( thisForm.USERENTRY3 != null ) { 
strADDTLINFO += "; " + 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); 

//The indexOf method will search the array until it matches your search critera. It will then return the index where the item was found. It will match only one item and the match must be exact.  var myString = "How many chucks could a woodchuck chuck?"; document.write( myString.indexOf( "chuck" ) + "<br>" ); document.write( myString.indexOf( "chuck", 10 ) + "<br>" ); The output from this code segment would be 9 and 28
// Below searches for the PIPE "|"

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

//The Javascript substring() method extracts the characters in a string between two specified indices -stringObject.substring(start,stop)  
// Therefore fields[n] are the item properties in the cart lines

if ( fields[0] == strID_NUM && 
fields[2] == strPRICE && 
fields[3] == strNAME && 
fields[5] == strADDTLINFO 
) { 
bAlreadyInCart = true; 
dbUpdatedOrder = strID_NUM + "|" + 
(parseInt(strQUANTITY)+parseInt(fields[1])) + "|" + 
strPRICE + "|" + 
strNAME + "|" + 
strSHIPPING + "|" + 
strADDTLINFO; 
strNewOrder = "Order." + i; 
DeleteCookie(strNewOrder, "/"); 
SetCookie(strNewOrder, dbUpdatedOrder, null, "/"); 
notice = strAdded + "\n-------------------------------------\n" + "Quantity : " + strQUANTITY + "\nProduct  : " + strNAME; 
break; 
} 
} 


if ( !bAlreadyInCart ) { 
iNumberOrdered++; 

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

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

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

} 


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

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


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

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


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

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

return(null); 
} 


//---------------------------------------------------------------------|| 
// FUNCTION: SetCookie || 
// PARAMETERS: name, value, expiration date, path, domain, security || 
// RETURNS: Null || 
// PURPOSE: Stores a cookie in the users browser || 
//---------------------------------------------------------------------|| 
function SetCookie (name,value,expires,path,domain,secure) { 
document.cookie = name + "=" + escape (value) + 
((expires) ? "; expires=" + expires.toGMTString() : "") + 
((path) ? "; path=" + path : "") + 
((domain) ? "; domain=" + domain : "") + 
((secure) ? "; secure" : ""); 
} 


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


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

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

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

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


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


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

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

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

dbUpdatedOrder = fields[0] + "|" + 
NewQuantity + "|" + 
fields[2] + "|" + 
fields[3] + "|" + 
fields[4] + "|" + 
fields[5]; 
strNewOrder = "Order." + OrderItem; 
DeleteCookie(strNewOrder, "/"); 
SetCookie(strNewOrder, dbUpdatedOrder, null, "/"); 

//fTotal = (parseInt(fields[1]) * parseFloat(fields[2]) );alert("change qty1 ftotal -" +fTotal); //Trying to Get Simple Shipping to Work
//LocationSelected =  GetCookie("ZoneSelected");//Trying to Get Simple Shipping to Work
//fWeight = (parseInt(fields[1]) * parseFloat(fields[4]) ); //Trying to Get Simple Shipping to Work
//SetCookie ("ItemCosts",fTotal);
//alert("Chang Qty 1--"+ fTotal +"----" + LocationSelected);
//fShipping = ComputeShipping(LocationSelected, fWeight); //Trying to Get Simple Shipping to Work

location.href=location.href;
//fWeight = (parseInt(fields[1]) * parseFloat(fields[4]) ); //Trying to Get Simple Shipping to Work
//SetCookie ("ItemCosts ",fTotal);
//alert("Change Qty STEP2. - "+ fTotal2 );
//location.reload; //PAR
}// alert("Change Qty STEP3 "+ fTotal2 );
} 


//---------------------------------------------------------------------|| 
// 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 || 
// EXTRAS ADDED IN: Code to enable UPS mod. || 
//---------------------------------------------------------------------|| 
function ManageCart( ) { 
var iNumberOrdered = 0; //Number of products ordered 
var fTotal = 0; //Total cost of order 
var fTax = 0; //Tax amount 
var fWeight = 0; //Weight 
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) 
var ItemCost = 0;


//alert("managecart start");
iNumberOrdered = GetCookie("NumberOrdered"); 
if ( iNumberOrdered == null ) 
iNumberOrdered = 0; 

LocationSelected = GetCookie("ZoneSelected"); 
if (LocationSelected == null) LocationSelected = 8; // Code to use Wichita as default checked if customer goes to Checkout with an empty Cart || 


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

if ( iNumberOrdered == 0 ) { 
strOutput += "<TR><TD COLSPAN=6 CLASS=\"nopentry\"><CENTER><BR><B>Your Basket is empty</B><BR><BR></CENTER></TD></TR>"; 
} 

   // Get the total number of item rows and put in the variable 'stuff'
   // **** NOTE:
   // May need to increase this to take account of the sub-total
   // and shipping rows which ProtX may need
   // ******************************************************************

   rows = parseInt(iNumberOrdered)+1;
   //rows = rows/2;
   //rows=(rows*2)+1;
   stuff = rows;
   
   //IF I want to include the Shipping row in the Basket for Protx
   //This would be of form. "Postal Cost - Europe:::£4.99"     
   //THE TABLE OUTPUT WITH WHAT I WANT IS :
   //"<TR><TD <B>" + strSHIP +"&nbsp;&nbsp;" + LocationLabel + "</B></TD>"; 
   //POSTAL & LOCATION Text + The Total cost i.e Postal Charges - UK:::0.00  ||
   // <tD>+ MonetarySymbol + strShipping + strSpace +"</B></TD>"; //THE POSTAL CHARGES||




for ( i = 1; i <= iNumberOrdered; i++ ) { 
         even = Math.round(i/2); 
      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 

		// Protx Total
		protexItemTotal = (parseInt(fields[1]) * parseFloat(fields[2]) );
		fTotal += (parseInt(fields[1]) * parseFloat(fields[2]) ); //alert("Line 664 -ftotal" +fTotal);
		SetCookie("ItemCosts",fTotal);//alert("set-ItemCosts");
		Test = GetCookie("ItemCosts");//alert("Protx Total Line 667 - GetCookie-Itemscosts" + Test);
		fWeight += (parseInt(fields[1]) * parseFloat(fields[4]) ); 
		fWeight = Math.round(fWeight * 100)/100; //alert("Line 664- fweight=" +fWeight); 
		var strProductId = fields[0]; 
		if( strProductId[0] != 'n' ) { 
		fTax += (parseInt(fields[1]) * parseFloat(fields[2]) ) * TaxRate; 
		} 

		strTotal = moneyFormat(fTotal); 
		strTax = moneyFormat(fTax); 

		// Add each row item to the variable 'stuff'
		stuff += ":" + fields[3] + ":" + fields[1] + ":" + fields[2] + ":----:" + fields[2] + ":" + protexItemTotal;


		if ( bDisplay ){ 
		if ((even) ==(i/2) ) { 
		strOutput += "<TR><TD CLASS=\"nopeven\" ALIGN=CENTER>" + fields[0] + "</TD>"; 

		if ( fields[5] == "" ) 
		strOutput += "<TD CLASS=\"nopeven\">" + fields[3] + "</TD>"; 
		else 
		strOutput += "<TD CLASS=\"nopeven\">" + fields[3] + " - <I>"+ fields[5] + "</I></TD>"; 

		if ( DisplayChangeQty ) { 
		strOutput += "<TD CLASS=\"nopeven\" ALIGN=CENTER><INPUT TYPE=TEXT NAME=Q SIZE=2 class=\" nobottom \"   VALUE=\"" + fields[1] + "\" onChange=\"ChangeQuantity("+i+", this.value);\" ALIGN=CENTER></TD>";  
} else { 
	strOutput += "<TD CLASS=\"nopeven\" ALIGN=CENTER>" + fields[1] + "</TD>"; 
} 


strOutput += "<TD CLASS=\"nopeven\" ALIGN=RIGHT>"+ MonetarySymbol + moneyFormat(fields[2]) + "/ea</TD>"; 

if ( DisplayShippingColumn ) { 

strOutput += "<TD CLASS=\"nopeven\" ALIGN=RIGHT>"+ MonetarySymbol + moneyFormat(parseInt(fields[1]) * parseFloat(fields[2]) ) + "</TD>"; 
}else { 
strOutput += "<TD CLASS=\"nopeven\" ALIGN=RIGHT>N/A</TD>"; 
} 

strOutput += "<TD CLASS=\"nopeven\" ALIGN=CENTER><input type=button value=\" "+strRButton+" \" onClick=\"RemoveFromCart("+i+")\" class=\"nopbutton\"><input type=button value=Update onClick=\"ChangeQuantity(OrderItem,NewQuantity);\" class=\"nopbutton\"></TD></TR>"; 
} 
 else { 
strOutput += "<TR><TD CLASS=\"nopentry\" ALIGN=CENTER>" + fields[0] + "</TD>"; 

if ( fields[5] == "" ) 
strOutput += "<TD CLASS=\"nopentry\">" + fields[3] + "</TD>"; 
else 
strOutput += "<TD CLASS=\"nopentry\">" + fields[3] + " - <I>"+ fields[5] + "</I></TD>"; 

if ( DisplayChangeQty ) { 
strOutput += "<TD CLASS=\"nopentry\" ALIGN=CENTER><INPUT TYPE=TEXT NAME=Q SIZE=2 class=\" nobottom \"   VALUE=\"" + fields[1] + "\" onChange=\"ChangeQuantity("+i+", this.value); ComputeShipping(LocationSelected,strWTOT )\" ALIGN=CENTER></TD>";  
} else { 
strOutput += "<TD CLASS=\"nopentry\" ALIGN=CENTER>" + fields[1] + "</TD>"; 
} 
strOutput += "<TD CLASS=\"nopentry\" ALIGN=RIGHT>"+ MonetarySymbol + moneyFormat(fields[2]) + "/ea</TD>"; 

if ( DisplayShippingColumn ) { 

strOutput += "<TD CLASS=\"nopentry\" ALIGN=RIGHT>"+ MonetarySymbol + moneyFormat(parseInt(fields[1]) * parseFloat(fields[2]) ) + "</TD>"; 
}else { 
strOutput += "<TD CLASS=\"nopentry\" ALIGN=RIGHT>N/A</TD>"; 
} 

strOutput += "<TD CLASS=\"nopentry\" ALIGN=CENTER><input type=button value=\" "+strRButton+" \" onClick=\"RemoveFromCart("+i+")\" class=\"nopbutton\"><input type=button value=Update onClick=\"ChangeQuantity(OrderItem,NewQuantity)\" class=\"nopbutton\"></TD></TR>"; //THE UPDATE BUTTON
} 
} 
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=\"" + OutputItemWeight + strFooter + "\" value=\"" + fields[4] + "\">"; 
strOutput += "<input type=hidden name=\"" + OutputItemAddtlInfo + strFooter + "\" value=\"" + fields[5] + "\">"; 
} 

} 

if ( bDisplay ) { 
strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=5><B>"+strSUB+"</B></TD>"; 
strOutput += "<TD CLASS=\"noptotal\" COLSPAN=1 ALIGN=RIGHT><B>" + MonetarySymbol + strTotal + strSpace +"</B></TD>"; 
strOutput += "</TR>"; 

//this displays the shipping matrix and sets the value for each zone || 





if (( DisplayShippingRow ) && ( iNumberOrdered != 0)) { 
strOutput += "<TR><TD><BR></TD></TR>"; //PAR__INCLUDED----MODIFIED||
strOutput += "<TR><TD align=right CLASS=\"noptotal\" COLSPAN=1>"+"<small>Please Select<BR>Your Location<br>To Confirm<br>Postage</small>"+"</TD>"; 
strOutput += "<TD CLASS=\"noptotal\" COLSPAN=5>"; 
//strOutput += "<input type=radio name=\"ZONE\" value=\"0" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
//strOutput += " United Kingdom - First Class Royal Mail"; 

//CHANGE SHIPPING DISPLAY DEPENDING ON WHETHER TENS HIRE
//********************************************************
LocationValue = GetCookie("ZoneSelected");


if (mixedTensBasket == true) // i.e. TENS + Other items
  {
	
	if (daysToDueDate > 28) // Checking to see whether we despatch items together or separately from TENS 
		{
		strOutput += "<BR><input type=radio name=\"ZONE\" value=\"1" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
		strOutput += "  UK - First Class Recorded ~ 'Signed For' (FREE With TENS Hire)";
		strOutput += "<br><b><font style=\"font-size: 8pt; font-weight: normal; color: #FF0000\"> (Your TENS hire will be despatched Recorded Delivery to arrive for the start of your 37th week of pregnancy. Your other items will be despatched on the next despatch by 1st class Royal Mail). </b></font color=red></SMALL>";
		}
	
	//else if (daysToDueDate > 28) 
	//	{
	//	strOutput += "<BR><input type=radio name=\"ZONE\" value=\"1" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
	//	strOutput += "  UK - First Class Recorded ~ 'Signed For' (FREE With TENS Hire)";
	//	strOutput += "<br><b><font style='font-size: 8pt; font-weight: normal; color: #FF0000'> (You have ordered a TENS Hire close to the 37 week despatch date. Your items may be despatched recorded delivery with your TENS Hire Unit or they may arrive separately ahead of the TENS Hire by 1st class Royal Mail). </b></font color=red></SMALL>";
	//	}
	else  
		{
		strOutput += "<BR><input type=radio name=\"ZONE\" value=\"1" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
		strOutput += "  UK - First Class Recorded ~ 'Signed For' (FREE With TENS Hire)";
		strOutput += "<br><b><font style='font-size: 8pt; font-weight: normal; color: #FF0000'> (Your TENS hire together with your other items will be despatched recorded delivery on the next despatch). </b></font color=red></SMALL>";
		}
	
  }


else if (onlyTens == true) 
  {
	if (daysToDueDate > 25) // we'll send it to arrive in week 37
		{
		strOutput += "<BR><input type=radio name=\"ZONE\" value=\"1" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
		strOutput += "  UK - First Class Recorded ~ 'Signed For' (FREE With TENS Hire)"
		strOutput += "<br><b><font style='font-size: 8pt; font-weight: normal; color: #FF0000'> (Your TENS hire will be sent out to arrive at the start of Week 37 of pregnancy). </b></font color=red></SMALL>";

		}
	else // TENS only but send it out now
		{
		strOutput += "<BR><input type=radio name=\"ZONE\" value=\"1" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
		strOutput += "  UK - First Class Recorded ~ 'Signed For' (FREE With TENS Hire)"
		strOutput += "<br><b><font style='font-size: 8pt; font-weight: normal; color: #FF0000'> (Your TENS hire will be despatched at next despatch). </b></font color=red></SMALL>";
		}
   }
else //NO TENS IN THE BASKET SO PROCEED AS NORMAL
{

strOutput += "<BR><input type=radio name=\"ZONE\" value=\"1" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
strOutput += " UK - First Class Royal Mail "
strOutput += "<BR><input type=radio name=\"ZONE\" value=\"4" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
strOutput += " UK - First Class Recorded ~ 'Signed For'";
strOutput += " <A HREF= \"delivery.shtml\"><IMG SRC= \"/images/info-icon.png\" ALT= \"Info on Postage\" Title= \"Info On Postage\" BORDER=0></A> "; 


}



// Check if it's the Saturday Special Delivery and if set to true then display below + use extra £2 charge. If false then use the usual.
if (SaturdayDelivery) {
strOutput += "<BR><input type=radio name=\"ZONE\" value=\"6" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
strOutput += " UK - Next Day Special SATURDAY Delivery (Order By 2pm Friday)"; 
strOutput += " <A HREF= \"delivery.shtml\"><IMG SRC= \"/images/info-icon.png\" ALT= \"Info on Postage\" Title= \"Info On Postage\" BORDER=0></A> ";}
else {

if (DisplaySpecialDeliveryOption) {
strOutput += "<BR><input type=radio name=\"ZONE\" value=\"5" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
strOutput += " UK - Next Day Special Delivery (Order By 2pm)"; 
strOutput += " <A HREF= \"delivery.shtml\"><IMG SRC= \"/images/info-icon.png\" ALT= \"Info on Postage\" Title= \"Info On Postage\" BORDER=0></A> ";} 
}


strOutput += "<BR><input type=radio name=\"ZONE\" value=\"2" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
strOutput += " Europe (including Eire) - Airmail"; 
strOutput += " <A HREF= \"delivery.shtml\"><IMG SRC= \"/images/info-icon.png\" ALT= \"Info on Postage\" Title= \"Info On Postage\" BORDER=0></A> "; 

strOutput += "<BR><input type=radio name=\"ZONE\" value=\"3" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">"; 
strOutput += " Rest of the world - Airmail"; 
strOutput += " <A HREF= \"delivery.shtml\"><IMG SRC= \"/images/info-icon.png\" ALT= \"Info on Postage\" Title= \"Info On Postage\" BORDER=0></A> "; 



strOutput += "</TD>"; 
strOutput += "</TR>";
strOutput += "<TR><TD><BR></TD></TR>"; //PAR__INCLUDED----MODIFIED||

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

LocationSelected = GetCookie("ZoneSelected"); 
if (LocationSelected == null) LocationSelected = 8; // 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; 
    } 
} 


if (LocationSelected == 0) LocationLabel = "- United Kingdom"; 
if (LocationSelected == 1) LocationLabel = "- United Kingdom"; 
if (LocationSelected == 2) LocationLabel = "- Europe (Ireland)"; 
if (LocationSelected == 3) LocationLabel = "- Rest of the World"; 
if (LocationSelected == 4) LocationLabel = "- First Class Recorded"; 
if (LocationSelected == 5) LocationLabel = "- Next Day Special Delivery"; 
if (LocationSelected == 6) LocationLabel = "- Special Delivery Next Day Saturday Guaranteed"; 
if (LocationSelected == 7) LocationLabel = "Zone G"; 
if (LocationSelected == 8) LocationLabel = "<Font CLASS=post>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;****Please Select Your Postal Location****</font>"; 

if (fWeight == 0) fShipping = 0; 
else fShipping = ComputeShipping(LocationSelected, fWeight);



strShipping = moneyFormat(fShipping); 
strOutput += "<TR><TD CLASS=\"nopship\" COLSPAN=4><B>"+strWTOT+"</B></TD>";//Total Weight||
strOutput += "<TD CLASS=\"nopship\" COLSPAN=1 ALIGN=RIGHT><B>" + fWeight + "Kgs" + "</B></TD>"; 
strOutput += "<TD CLASS=\"nopship\" COLSPAN=1 ALIGN=RIGHT></TD>"; 
strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=5><B>" + strSHIP +"&nbsp;&nbsp;" + LocationLabel + "</B></TD>"; //PAR POSTAL & LOCATION Text||
strOutput += "<TD CLASS=\"noptotal\" COLSPAN=1 ALIGN=RIGHT><B>" + MonetarySymbol + strShipping + strSpace +"</B></TD>"; //THE POSTAL CHARGES||
strOutput += "</TR><tr><td></td><td></td><td></td><td></td><td></td></tr>"; 
} 

if ( DisplayTaxRow || TaxByRegion ) { 
if ( TaxByRegion ) { 
strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=5><B>"+strTAX+"</B></TD>"; 
strOutput += "<TD CLASS=\"noptotal\" COLSPAN=1><B>"; 
strOutput += "<input type=radio name=\""+OutputOrderTax+"\" value=\"" + strTax + "\">"; 
strOutput += TaxablePrompt + ": " + MonetarySymbol + strTax; 
strOutput += "<BR><input type=radio name=\""+OutputOrderTax+"\" value=\"0.00\">"; 
strOutput += NonTaxablePrompt + ": " + MonetarySymbol + "0.00"; 
strOutput += "</B></TD>"; 
strOutput += "</TR>"; 
} else { 
strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=5><B>"+strTAX+"</B></TD>"; 
strOutput += "<TD CLASS=\"noptotal\" COLSPAN=1 ALIGN=RIGHT><B>" + MonetarySymbol + strTax + strSpace +"</B></TD>"; 
strOutput += "</TR>"; 
} 
} 

if (LocationSelected != 0) //sets tax to 0.00 for all areas except 0 || 
fTax = 0.00;  

if (LocationSelected == 0)  { 
strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=5><B>"+strTAX+"</B></TD>"; 
strOutput += "<TD CLASS=\"noptotal\" COLSPAN=1 ALIGN=RIGHT><B>" + MonetarySymbol + strTax + strSpace +"</B></TD>"; 
strOutput += "</TR>"; 
} 

if ( !TaxByRegion ) { 
strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=5><B>"+strTOT+"</B></TD>"; 
strOutput += "<TD CLASS=\"noptotal\" COLSPAN=1 ALIGN=RIGHT><B>" + MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + strSpace +"</B></TD>"; 
strOutput += "</TR>"; 
strOutput += "<TR><td></td></tr>"; 

} 
strOutput += "</TABLE>"; 

if ( HiddenFieldsToCheckout ) { 
strOutput += "<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+ MonetarySymbol + strTotal + "\">"; 
strOutput += "<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+ MonetarySymbol + strShipping + "\">"; 
strOutput += "<input type=hidden name=\""+OutputOrderTax+"\" value=\""+ MonetarySymbol + strTax + "\">"; 
strOutput += "<input type=hidden name=\""+OutputOrderTotal+"\" value=\""+ MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + "\">"; 
//Output the location country
strOutput += "<input type=hidden name=\"country"+"\" value=\""+ LocationLabel +"\">"; 
} 
} 
g_TotalCost = (fTotal + fShipping + fTax); 
//alert("managecart. line 852.  " + fTotal + "shipping - " + fShipping );



// Output the PROTX crypt hidden field
//****PROTX ADD SHIPPING TO BASKET STRING//
stuff += ":"+ strSHIP + " for " + LocationLabel +":----:----:----:----:" + strShipping; 

   strOutput += "<input type=hidden name=\"basket2crypt" + "\" value=\"" + stuff + "\">";
  
   //PAR.Added the Total Basket||
   strOutput += "<input type=hidden name=\"total" + "\" value=\"" + moneyFormat((fTotal + fShipping + fTax)) + "\">";
   


document.write(strOutput); 

//DEBUG STUFF
if (Debug == true)
{

document.write("iNumberOdered = " + iNumberOrdered + "<br>");
document.write("Cookie NewOrder = " + NewOrder + "<br>");
document.write("Token0 = " + Token0 + "<br>");
document.write("Token1 = " + Token1 + "<br>");
document.write("Token2 = " + Token2 + "<br>");
document.write("Token3 = " + Token3 + "<br>");
document.write("Token4 = " + Token4 + "<br><br>");

document.writeln("database = " + database + "<br>");


var Cookie1 = "";
Cookie1 = GetCookie("Order.1");

document.write('Contents of the COOKIES <br> Cookie1= ' + Cookie1 + "<BR>");
document.write('Cookie2= ' + GetCookie("Order.2") + "<BR>");
document.write('Cookie3= ' + GetCookie("Order.3") + "<BR>");

document.write('Fields0= ' + fields[0] + "<BR>");
document.write('Fields1= ' + fields[1] + "<BR>");
document.write('Fields2= ' + fields[2] + "<BR>");
document.write('Fields3= ' + fields[3] + "<BR>");
document.write('Fields4= ' + fields[4] + "<BR>");


document.write('TensID_NUM= ' + TensID_NUM + "<BR>");
document.write('nonTens Item ? = ' + nonTens + "<BR>");
document.write('A mixed Basket? = ' + mixedTensBasket + "<BR>");
document.write('DueDateVale = ' + DueDateValue + "<BR>");
document.write('only TENS = ' + onlyTens + "<BR>");
document.write('Days to Due Date = ' + daysToDueDate + "<BR>");
}


document.close(); 
} 

//---------------------------------------------------------------------|| 
// CheckTens || Not a function at this point.
// PARAMETERS:  || 
// RETURNS: true if Tens Hire is in the Cart  || 
// PURPOSE: (If total item costs is less than free shipping - we still give free shipping for Tens)  See in the Shipping|| 
//---------------------------------------------------------------------|| 

var TensID_NUM = 'be_etm_06';
var TensID_NUM2 = 'be_ntm_06';
TensHired = false;
var nonTens = false;
var mixedTensBasket = false;
var DueDateValue = GetCookie('DueDate');
var daysToDueDate = "";
var onlyTens = false;


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 ); 
fields[1] = database.substring( Token0+1, Token1 ); 
fields[2] = database.substring( Token1+1, Token2 ); 
fields[3] = database.substring( Token2+1, Token3 ); 
fields[4] = database.substring( Token3+1, Token4 ); 
fields[5] = database.substring( Token4+1, database.length ); 


if (( fields[0] == TensID_NUM)  || (fields[0] == TensID_NUM2)) 
// || means 'or' 
{ 
TensHired = true; 
}
else
{
nonTens = true;
}
//if (( fields[0] != TensID_NUM)  || (fields[0] != TensID_NUM2)) 
//{ 
//nonTens = true; 
//}

if ((TensHired == true) && (nonTens == true))
{
mixedTensBasket = true;
}
if ((TensHired == true) && (nonTens == false))
{
onlyTens = true;
}
}
//The Above is determining whether the customer has Only a Tens hire or a mixed basket.
//Use that info to change the options and delivery message that is displayed in the basket See changes in ManageCart Function
var daysToDueDate = "";
daysToDueDate = returnDays(DueDateValue);
//alert ("nopcart days to go " + daysToDueDate);



//---------------------------------------------------------------------|| 
// FUNCTION: ComputeShipping || 
// PARAMETERS: || 
// RETURNS: || 
// PURPOSE: Compute shipping cost due to total weight || 
//---------------------------------------------------------------------|| 
function ComputeShipping(Zone, TotWeight) { 
fTotal2 = GetCookie("ItemCosts");
//alert("I am Compute Shipping 1!-" + fTotal2);
LocationValue = GetCookie("ZoneSelected");


if (LocationValue != Zone) { 
SetCookie("ZoneSelected", Zone, null, "/"); 
location.href=location.href; //PAR
} 
else
if (TotWeight == 0) return 0.00; 

if (LocationValue == 1 ) { //UK
//***** Begin fixed shipping calculation 
// If the total is £25 or more, shipping is FREE  or IF TENS HIRED
if ((fTotal2 >= MinSpendUK) || (TensHired == true)) return 0.00;
//***** End fixed shipping calculation 
else if (fTotal2 <= MinSpendUK) return MinPostageUK; 

//(TotWeight <= 0.45) return 0.00; 
//else if (TotWeight > 0.45) return (0.00 * Math.ceil(parseFloat((TotWeight * 2) ))); 
// if (TotWeight >= 20.0) return 00.00; 
// if (TotWeight <= 10.0) return 0.00; 
} 

if (LocationValue == 2 ) { //Europe||

if (TotWeight < 0.5) return 3.95;
else if (TotWeight < 1.0) return 5.95; 
else if (TotWeight < 1.6) return 7.95; 
else if (TotWeight < 2.0) return 8.95; 
else if (TotWeight > 2.0) alert("This order is over a 2KG Airmail Limit. Please split into 2 orders or e-mail us to discuss best shipping options.");  

} 

if (LocationValue == 3 ) { //rest of world||
if (TotWeight < 0.5) return 6.95;
else if (TotWeight < 1.0) return 10.95; 
else if (TotWeight < 1.6) return 15.95; 
else if (TotWeight < 2.0) return 17.95; 
else if (TotWeight > 2.0) alert("This order is over a 2KG Airmail Limit. Please split into 2 orders or e-mail us to discuss best shipping options.");   
} 

if (LocationValue == 4 ) { //Recorded Signed For||
return 3.95;
   
} 


if (LocationValue == 5 ) { //Special Delivery||
if (TotWeight < 0.5) return 5.50;
else if (TotWeight < 1.0) return 6.95; 

else if (TotWeight < 2.0) return 8.95; 
else if (TotWeight > 2.0) alert("Order is over a 2KG Limit. Please  e-mail us to discuss best shipping options. For Birth Pool, please select top Royal Mail Free P&P postal option and your pool will still be sent on a Next Day courier service");   
} 


if (LocationValue == 6 ) { //Special Delivery Saturday||
if (TotWeight < 0.5) return 7.50;
else if (TotWeight < 1.0) return 8.95; 

else if (TotWeight < 2.0) return 10.95; 
else if (TotWeight > 2.0) alert("Order is over a 2KG Limit. Please  e-mail us to discuss best shipping options. For Birth Pool, please select top Royal Mail Free P&P postal option and your pool will still be sent on a Next Day courier service");   
} 

//if (LocationValue == 4 ) { 
//if (TotWeight <= 0.45) return 4.50; 
//if (TotWeight > 0.45) return (5.50 * Math.ceil(parseFloat((TotWeight * 2) ))); 
//} 
 } 

//---------------------------------------------------------------------|| 
// 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 ( !RadioChecked(theForm.ZONE) ) { 
      alert( LocationPrompt ); 
      return false; 
   } 
//IF WE ARE NOT ABLE TO DESPATCH GOODS THEN PROVIDE WARNING ALERT HERE WITH DATE

//alert ("MESSAGE: \n Due to upgrading our stock warehouse facilities we will be unable to despatch goods for a short period.\n\nOUR NEXT DESPATCH IS AFTER THE BANK HOLIDAY WEEKEND ON TUESDAY 26th August - THANK YOU.");

   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 fTax = 0; //Tax amount 
var fWeight = 0; //Weight 
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) 
var strPP = ""; //Payment Processor Description Field 
var PaymentProcessor = "pp"; 

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

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

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

for ( i = 1; i <= iNumberOrdered; i++ ) { 
          even = Math.round(i/2); 
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]) ); 
//alert("CheckoutCart Line 1028 -ftotal" +fTotal);

fWeight += (parseInt(fields[1]) * parseFloat(fields[4]) ); 
fWeight = Math.round(fWeight * 100)/100; 
if ( !TaxByRegion ) var strProductId = fields[0]; 
if( strProductId[0] != 'n' ) { 
fTax += (parseInt(fields[1]) * parseFloat(fields[2]) ) * TaxRate; 
}  
strTotal = moneyFormat(fTotal); 
if ( !TaxByRegion ) strTax = moneyFormat(fTax); 

if ( bDisplay ){ 
      if ((even) ==(i/2) ) { 
strOutput += "<TR><TD CLASS=\"nopeven\" ALIGN=CENTER>" + fields[0] + "</TD>"; 

if ( fields[5] == "" ) 
strOutput += "<TD CLASS=\"nopeven\">" + fields[3] + "</TD>"; 
else 
strOutput += "<TD CLASS=\"nopeven\">" + fields[3] + " - <I>"+ fields[5] + "</I></TD>"; 

strOutput += "<TD CLASS=\"nopeven\" ALIGN=CENTER>" + fields[1] + "</TD>"; 
strOutput += "<TD CLASS=\"nopeven\" ALIGN=RIGHT>"+ MonetarySymbol + moneyFormat(fields[2]) + "/ea</TD>"; 

if ( DisplayShippingColumn ) { 

strOutput += "<TD CLASS=\"nopeven\" ALIGN=RIGHT>"+ MonetarySymbol + moneyFormat(parseInt(fields[1]) * parseFloat(fields[2]) ) + "</TD>"; 
}else { 
strOutput += "<TD CLASS=\"nopeven\" ALIGN=RIGHT>N/A</TD>"; 
} 

strOutput += "</TR>"; 
} 
else { 
strOutput += "<TR><TD CLASS=\"nopentry\" ALIGN=CENTER>" + fields[0] + "</TD>"; 

if ( fields[5] == "" ) 
strOutput += "<TD CLASS=\"nopentry\">" + fields[3] + "</TD>"; 
else 
strOutput += "<TD CLASS=\"nopentry\">" + fields[3] + " - <I>"+ fields[5] + "</I></TD>"; 

strOutput += "<TD CLASS=\"nopentry\" ALIGN=CENTER>" + fields[1] + "</TD>"; 
strOutput += "<TD CLASS=\"nopentry\" ALIGN=RIGHT>"+ MonetarySymbol + moneyFormat(fields[2]) + "/ea</TD>"; 

if ( DisplayShippingColumn ) { 

strOutput += "<TD CLASS=\"nopentry\" ALIGN=RIGHT>"+ MonetarySymbol + moneyFormat(parseInt(fields[1]) * parseFloat(fields[2]) ) + "</TD>"; 
}else { 
strOutput += "<TD CLASS=\"nopentry\" ALIGN=RIGHT>N/A</TD>"; 
} 

strOutput += "</TR>"; 
} 
} 
if ( AppendItemNumToOutput ) { 
strFooter = i; 
} else { 
strFooter = ""; 
} 
if ( PaymentProcessor == 'pp' ) { 
//Process description field for payment processors instead of hidden values. 
//Format Description of product as: 
// ID, Name, Qty X 
strPP += fields[3]; 
if ( fields[5] != "" ) 
strPP += " - " + fields[5] + "\n"; 
strOutput += "<input type=hidden name=\"item_number_" + strFooter + "\" value=\"" + fields[0] + "\">"; 
strOutput += "<input type=hidden name=\"add_" + strFooter + "\" value=\"" + fields[1] + "\">"; 
strOutput += "<input type=hidden name=\"quantity_" + strFooter + "\" value=\"" + fields[1] + "\">"; 
strOutput += "<input type=hidden name=\"amount_" + strFooter + "\" value=\"" + fields[2] + "\">"; 
strOutput += "<input type=hidden name=\"item_name_" + strFooter + "\" value=\"" + fields[3] + "\">"; 
strOutput += "<input type=hidden name=\"on0_" + strFooter + "\" value=\"" + fields[5] + "\">"; 
if (i == iNumberOrdered) { 

} 
} else 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 { 
LocationSelected = GetCookie("ZoneSelected"); 
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=\"" + OutputItemWeight + strFooter + "\" value=\"" + fields[4] + "\">"; 
strOutput += "<input type=hidden name=\"" + OutputItemAddtlInfo + strFooter + "\" value=\"" + fields[5] + "\">"; 
strOutput += "<input type=hidden name=\"" + OutputItemXtend + strFooter + "\" value=\"" + moneyFormat(fields[1] * fields[2]) + "\">"; 
strOutput += "<input type=hidden name=\"" + OutputOrderZone + strFooter + "\" value=\"" + LocationSelected + "\">"; 
} 

} 

if ( bDisplay ) { 
strOutput += "<TR><TD><BR></TD></TR>";
strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=3><B>"+strSUB+"</B></TD>"; 
strOutput += "<TD CLASS=\"noptotal\" COLSPAN=2 ALIGN=RIGHT><B>" + MonetarySymbol + strTotal + "</B></TD>"; 
strOutput += "</TR>"; 

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

if (LocationSelected == 0) LocationLabel = "- United Kingdom"; 
if (LocationSelected == 1) LocationLabel = "- United Kingdom"; 
if (LocationSelected == 2) LocationLabel = "- Europe & Ireland"; 
if (LocationSelected == 3) LocationLabel = "- Rest of the World"; 
if (LocationSelected == 4) LocationLabel = "Zone 5"; 
if (LocationSelected == 5) LocationLabel = "Zone 6"; 
if (LocationSelected == 6) LocationLabel = "Zone 7"; 
if (LocationSelected == 7) LocationLabel = "Zone G"; 
if (LocationSelected == 8) LocationLabel = "Zone"; 

SetCookie("ItemCosts",fTotal);//alert("CheckOutCart line 1144 set-ItemCosts as fTotal = " +fTotal);
fShipping = ComputeShipping(LocationSelected, fWeight); 
strShipping = moneyFormat(fShipping); 
//strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=3><B>"+strWTOT+"</B></TD>"; 
//strOutput += "<TD CLASS=\"noptotal\" COLSPAN=2 ALIGN=RIGHT><B>" + fWeight + " lbs" + "</B></TD>"; 
strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=3><B>" + strSHIP + " for " + LocationLabel + "</B></TD>"; 
strOutput += "<TD CLASS=\"noptotal\" COLSPAN=2 ALIGN=RIGHT><B>" + MonetarySymbol + strShipping + "</B></TD>"; 
strOutput += "</TR>"; 
} 

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

if (LocationSelected != 0) //sets tax to 0.00 for all other areas || 
fTax = 0.00; 

if (LocationSelected == 0)  { 
strOutput += "<TR><TD CLASS=\"noptotal\" COLSPAN=3><B>"+strTAX+"</B></TD>"; 
strOutput += "<TD CLASS=\"noptotal\" COLSPAN=3 ALIGN=RIGHT><B>" + MonetarySymbol + strTax + "</B></TD>"; 
strOutput += "</TR>"; 
} 

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

strOutput += "</TABLE>"; 


if ( PaymentProcessor == 'an') { 
//Process this for Authorize.net WebConnect 
strOutput += "<input type=hidden name=\"x_Version\" value=\"3.0\">"; 
strOutput += "<input type=hidden name=\"x_Show_Form\" value=\"PAYMENT_FORM\">"; 
strOutput += "<input type=hidden name=\"x_Description\" value=\""+ strPP + "\">"; 
strOutput += "<input type=hidden name=\"x_Amount\" value=\""+ moneyFormat((fTotal + fShipping + fTax)) + "\">"; 
} else if ( PaymentProcessor == 'wp') { 
//Process this for WorldPay 
strOutput += "<input type=hidden name=\"desc\" value=\""+ strPP + "\">"; 
strOutput += "<input type=hidden name=\"amount\" value=\""+ moneyFormat((fTotal + fShipping + fTax)) + "\">"; 
} else if ( PaymentProcessor == 'pp') { 
//Process hidden values for PayPal. 
strOutput += "<input type=hidden name=\"handling_cart\" value=\"" +moneyFormat(fShipping)+"\">"; 
//strOutput += "<input type=hidden name=\"quantity_" + strFooter + "\" value=\"" + fields[1] + "\">"; 
//strOutput += "<input type=hidden name=\"amount_" + strFooter + "\" value=\"" +moneyFormat(fShipping + fTotal)+"\">"; 
//strOutput += "<input type=hidden name=\"item_name_" + strFooter + "\" value=\"" + fields[3] + "\">"; 
//strOutput += "<input type=hidden name=\"on0_" + strFooter + "\" value=\"" + fields[5] + "\">"; 
//strOutput += "<input type=hidden name=\"handling_cart\" value=\" + fields[4] + "\">"; 
//if (i == iNumberOrdered) { 
//strOutput += "<input type=hidden name=\"handling_cart\" value=\"" + fields[4] + "\">"; 
//} 


//} else if (LocationSelected != 0){ 
//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=\"" +moneyFormat(fShipping + fTotal)+"\">"; 
//strOutput += "<input type=hidden name=\"item_name_" + strFooter + "\" value=\"" + fields[3] + "\">"; 
//strOutput += "<input type=hidden name=\"on0_" + strFooter + "\" value=\"" + fields[5] + "\">"; 
//} else { 
//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=\"" +moneyFormat(fShipping + fTotal)+"\">"; 
//strOutput += "<input type=hidden name=\"item_name_" + strFooter + "\" value=\"" + fields[3] + "\">"; 
//strOutput += "<input type=hidden name=\"on0_" + strFooter + "\" value=\"" + fields[5] + "\">"; 
} 
} 


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

//---------------------------------------------------------------------|| 
// FUNCTION: Print_total || 
// PARAMETERS: none || 
// RETURNS: Total cost currently racked up by shopper || 
// PURPOSE: Aesthetics || 
//---------------------------------------------------------------------|| 
function Print_total( ) { 
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; 
document.write(strOutput); 

} 

//=====================================================================|| 
// END NOP Design SmartPost Shopping Cart || 
//=====================================================================|| 

//---------------------------------------------------------------------|| 
// FUNCTION: returnDays || 
// PARAMETERS: Date as MM-Mon-YYYY || 
// RETURNS: Number of Days from TODAY || 
// PURPOSE: TENS HIRE or Pregnancy Shopper || 
//---------------------------------------------------------------------|| 

function returnDays(DueDatevalue) {

//alert (DueDatevalue);
var HowManyMonths = "";

//Split the DueDateValue so it can go into the JS Date Function
var arr = new Array(3);
var ddate ="";
ddate = DueDatevalue.split("-");
arr = DueDatevalue.split("-");
var dday = arr[0];
var dmon = arr[1];
var dyear = arr[2];
//alert(dday);
//alert(dmon);
//alert(dyear);

//Get the Month as an integer
     if (dmon == "Jan"){
dmon = "01"}
else if (dmon == "Feb"){
dmon = "02"}
else if (dmon == "Mar"){
dmon = "03"}
else if (dmon == "Apr"){
dmon = "04"}
else if (dmon == "May"){
dmon = "05"}
else if (dmon == "Jun"){
dmon = "06"}
else if (dmon == "Jul"){
dmon = "07"}
else if (dmon == "Aug"){
dmon = "08"}
else if (dmon == "Sep"){
dmon = "09"}
else if (dmon == "Oct"){
dmon = "10"}
else if (dmon == "Nov"){
dmon = "11"}
else if (dmon == "Dec"){
dmon = "12"};


//alert(dday);
//alert("The month number is " + dmon);
//alert(dyear);


var today = new Date();
ddate = new Date(dmon+"/"+dday+"/"+dyear);
//var sDate = new Date(date1[0]+"/"+date1[1]+"/"+date1[2]);
//var eDate = new Date(date2[0]+"/"+date2[1]+"/"+date2[2]);
var daysApart = Math.abs(Math.round((ddate-today)/86400000));
//document.getElementById('diffDays').lastChild.data = daysApart;
//document.write(diffDays).lastChild.data = daysApart;
//alert(today);
//alert (ddate);
//alert(daysApart);

return daysApart;

}