//shipping calculations changed-vishnu on 19-03-2008

//Options for Everyone:

MonetarySymbol = '&#163;';

DisplayNotice = false;

DisplayChangeQty = true;

DisplayShippingColumn = false;

DisplayShippingRow = true;

TaxRate = 0.00; //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 a resident of New Jersey before continuing'; //Deactivated ||

TaxablePrompt = 'New Jersey'; //Deactivated ||

NonTaxablePrompt = 'Other States'; //Deactivated ||

MinimumOrder = 0.01;

MinimumOrderPrompt = 'Your order is below our minimum order, please order more before checking out.';

NoQtyPrompt = 'You cannot proceed until a Shipping Option has been selected';

//Payment Processor Options:

//PaymentProcessor = 'pp';



//Add Options for Program:

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 = 'For shipping purposes, please select the shipping option before continuing.';

MaxWeightPrompt = 'Sorry, maximum weight allowable is 70 lb.';





//---------------------------------------------------------------------||

// Language Strings ||

// ------------------ ||

if ( !bLanguageDefined ) {

strSLabel = "Weight"; //Added for UPS mod ||

strWTOT = "TOTAL WEIGHT"; //Added for UPS mod ||

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

var iNumberOrdered = 0;

var bAlreadyInCart = false;

var notice = "";

iNumberOrdered = GetCookie("NumberOrdered");



if ( iNumberOrdered == null )

iNumberOrdered = 0;



if ( thisForm.ID_NUM == null )

strID_NUM = "";

else

strID_NUM = thisForm.ID_NUM.value;



if ( thisForm.QUANTITY == 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);



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] == 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 > 18 )

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

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



dbUpdatedOrder = fields[0] + "|" +

NewQuantity + "|" +

fields[2] + "|" +

fields[3] + "|" +

fields[4] + "|" +

fields[5];

strNewOrder = "Order." + OrderItem;

DeleteCookie(strNewOrder, "/");

SetCookie(strNewOrder, dbUpdatedOrder, null, "/");

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

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



iNumberOrdered = GetCookie("NumberOrdered");

if ( iNumberOrdered == null )

iNumberOrdered = 0;



LocationSelected = GetCookie("ZoneSelected");

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



if ( bDisplay )

strOutput = "<table width= 90% cellspacing=0 cellpadding=3 border=0 class=\"nopcart\"><tr>" +

"<td class=\"nopheader\" align=center><b>"+strILabel+"</b></td>" +

"<td class=\"nopheader\" align=left><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+strDLabel+"</b></td>" +

"<td class=\"nopheader\" align=center><b>"+strQLabel+"</b></td>" +

"<td class=\"nopheader\" align=center><b>"+strPLabel+"</b></td>" +

"<td class=\"nopheader\" width=\"5\"></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 cart is empty</b><br><br></center></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]) );

fWeight += (parseInt(fields[1]) * parseFloat(fields[4]) );

fWeight = Math.round(fWeight * 100)/100;

var strProductId = fields[0];

if( strProductId[0] != 'n' ) {

fTax += (parseInt(fields[1]) * parseFloat(fields[2]) ) * TaxRate;

}



strTotal = moneyFormat(fTotal);

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



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=center>"+ MonetarySymbol + moneyFormat(fields[2]) + "</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\">&nbsp;</td><td class=\"nopeven\" align=center><input type=button value=\" "+strRButton+" \" onClick=\"RemoveFromCart("+i+")\" 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);\" align=center></td>";

} else {

strOutput += "<td class=\"nopentry\" align=center>" + fields[1] + "</td>";

}

strOutput += "<td class=\"nopentry\" align=center>"+ MonetarySymbol + moneyFormat(fields[2]) + "</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\">&nbsp;</td><td class=\"nopentry\" align=center><input type=button value=\" "+strRButton+" \" onClick=\"RemoveFromCart("+i+")\" class=\"nopbutton\"></td></tr>";

}

}

if ( AppendItemNumToOutput ) {

strFooter = i;

} else {

strFooter = "";

}

if ( HiddenFieldsToCheckout ) {

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

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

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

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

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

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

}

}



if ( bDisplay ) {

strOutput += "<tr><td class=\"noptotal\" colspan=5 align=right><br /><font style='font-size:10pt; color:#A11809'><b>"+strSUB+"</b></td>";

strOutput += "<td class=\"noptotal\" colspan=1 align=right><br /><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 class=\"nopship\" colspan=1 align=center><b><font style='font-size:10pt; color:#A11809'><b>"+"Shipping Options"+"</b></td>";

strOutput += "<td class=\"nopship\" colspan=5>";

//strOutput += "<input type=radio name=\"ZONE\" value=\"0" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">";

//strOutput += "No Shipping Option";

//strOutput += "<br><input type=radio name=\"ZONE\" value=\"1" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">";

//strOutput += "First Class - Domestic (<i>max. 13 oz</i>)";

if(fWeight>369){

//strOutput += "<br><input type=radio name=\"ZONE\" value=\"1" + "\" DISABLED>";

strOutput += "First Class - Domestic";

}else{

strOutput += "<div align=left><br><input type=radio name=\"ZONE\" value=\"1" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">";

strOutput += "Royal Mail - UK & Ireland 2-4 days<br>";

}

strOutput += "<div align=left><br><input type=radio name=\"ZONE\" value=\"2" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">";

strOutput += "Royal Mail Airmail - Europe 4-7 days<br>";

strOutput += "<br><input type=radio name=\"ZONE\" value=\"3" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">";

strOutput += "Royal Mail Airmail - Worldwide 7-10 days<br>";

//strOutput += "<br><br><input type=radio name=\"ZONE\" value=\"4" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">";

//strOutput += "First Class - New Jersey";

if(fWeight>369){

//strOutput += "<br><br><input type=radio name=\"ZONE\" value=\"4" + "\" DISABLED>";

//strOutput += "First Class - New Jersey";

}else{

//strOutput += "<br><input type=radio name=\"ZONE\" value=\"4" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">";

//strOutput += "International - Asia Pacific";

}

//strOutput += "<br><input type=radio name=\"ZONE\" value=\"5" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">";

//strOutput += "International - USA/Canada/Middle East";

//strOutput += "<br><input type=radio name=\"ZONE\" value=\"6" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">";

//strOutput += "International - Rest of the World";

//strOutput += "<br><input type=radio name=\"ZONE\" value=\"7" + "\" onClick=\"ComputeShipping(this.value, "+fWeight+")\">";

//strOutput += "International - Rest Of World";

strOutput += "</td>";

strOutput += "</tr>";



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 = "No Shipping Option";

if (LocationSelected == 1) LocationLabel = "Royal Mail - UK & Ireland 2-4 days";

if (LocationSelected == 2) LocationLabel = "Royal Mail Airmail - Europe 4-7 days";

if (LocationSelected == 3) LocationLabel = "Royal Mail Airmail - Worldwide 7-10 days";

//if (LocationSelected == 4) LocationLabel = "International - Asia/Pacific";

//if (LocationSelected == 5) LocationLabel = "International - USA/Canada/Middle East";

//if (LocationSelected == 6) LocationLabel = "International - Rest of the World";

//if (LocationSelected == 7) LocationLabel = "International Orders you will receive<br>an e-mail with the total shipping costs";

if (LocationSelected == 8) LocationLabel = '<font color="#FF0000">Select Shipping Zone</font>';



if (fWeight == 0) fShipping = 0;

else fShipping = ComputeShipping(LocationSelected, fWeight);

strRegship = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='font-size:10pt; color:#A11809'><b>";

strTntship = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='font-size:10pt; color:#A11809'><b>";

strShipping = moneyFormat(fShipping);

strOutput += "<tr><td class=\"nopship\" colspan=7><br />"+strRegship+"</td>";

strOutput += "<tr><td class=\"nopship\" colspan=7>"+strTntship+"</td>";



strOutput += "<tr><td class=\"noptotal\" colspan=5><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='font-size:10pt; color:#A11809'><b>" + strSHIP + "</b></font>&nbsp;&nbsp;(for " + LocationLabel + ")</td>";

strOutput += "<td class=\"noptotal\" colspan=1 align=right><br /><b>" + MonetarySymbol + strShipping + strSpace +"</b></td>";

strOutput += "</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;



//NJ is 4, 5, 6

if ((LocationSelected != 0) || (LocationSelected == 1) || (LocationSelected == 2) || (LocationSelected == 3) || (LocationSelected == 7))

fTax = 0.00;

if ((LocationSelected == 0) || (LocationSelected == 4) || (LocationSelected == 5) || (LocationSelected == 6))

fTax = TaxRate * fTotal;



//if (LocationSelected == 0)  {

if ((LocationSelected == 0) || (LocationSelected == 4) || (LocationSelected == 5) || (LocationSelected == 6)) {

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 bgcolor=\"#C8C7C6\" colspan=5><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='font-size:10pt; color:#000000'>"+strTOT+"</b></td>";

strOutput += "<td bgcolor=\"#C8C7C6\" colspan=1 align=right><font style='font-size:10pt; color:#000000'><b>" + MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + strSpace +"</b></td>";

//strOutput += "<td class=\"noptotal\" colspan=1 align=right><b>" + MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + strSpace +"</b>" + fTax + "-" + strTax + "-" + LocationSelected +"</td>";

strOutput += "</tr>";

}

strOutput += "</table>";



if ( HiddenFieldsToCheckout ) {

strOutput += "<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+ MonetarySymbol + strTotal + "\">";

strOutput += "<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+ MonetarySymbol + strShipping + "\">";

strOutput += "<input type=hidden name=\""+OutputOrderTax+"\" value=\""+ MonetarySymbol + strTax + "\">";

strOutput += "<input type=hidden name=\""+OutputOrderTotal+"\" value=\""+ MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + "\">";

}

}

g_TotalCost = (fTotal + fShipping + fTax);



document.write(strOutput);

document.close();

}



//---------------------------------------------------------------------||

// FUNCTION: ComputeShipping ||

// PARAMETERS: ||

// RETURNS: ||

// PURPOSE: Compute shipping cost due to total weight ||

//---------------------------------------------------------------------||

function ComputeShipping(Zone, TotWeight) {

LocationValue = GetCookie("ZoneSelected");



if (LocationValue != Zone) {

SetCookie("ZoneSelected", Zone, null, "/");

location.href=location.href;

}



if (TotWeight == 0) return 0.00;



if (LocationValue == 0 ) {

if (TotWeight <= 0.010) return 0.00;

if ((TotWeight <= 500) && (TotWeight > 0.010)) return (0.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 0.010) / 1))));

}



// Royal Mail - UK & Ireland

if (LocationValue == 1 ) {

if (TotWeight <= 0.010) return 4.50;

if ((TotWeight <= 0.500) && (TotWeight > 0.010)) return (4.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.000) && (TotWeight > 0.500)) return (7.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.500) && (TotWeight > 1.000)) return (9.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 2.000) && (TotWeight > 1.500)) return (11.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 3.000) && (TotWeight > 2.000)) return (13.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 5.000) && (TotWeight > 3.000)) return (15.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if (TotWeight > 369.000) return 0.00;

}



// Royal Mail Airmail - Europe

if (LocationValue == 2 ) {

if (TotWeight <= 0.010) return 6.50;

if ((TotWeight <= 0.500) && (TotWeight > 0.010)) return (6.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.000) && (TotWeight > 0.500)) return (11.95 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.500) && (TotWeight > 1.000)) return (13.95 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 2.000) && (TotWeight > 1.500)) return (15.95 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 3.000) && (TotWeight > 2.000)) return (17.95 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 5.000) && (TotWeight > 3.000)) return (19.95 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if (TotWeight > 31752.000) return 0.00;

}



// Royal Mail Airmail - Worldwide

if (LocationValue == 3 ) {

if (TotWeight <= 0.250) return 8.50;

if ((TotWeight <= 0.500) && (TotWeight > 0.250)) return (8.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 0.750) && (TotWeight > 0.500)) return (13.10 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.000) && (TotWeight > 0.750)) return (16.45 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.250) && (TotWeight > 1.000)) return (19.80 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.500) && (TotWeight > 1.250)) return (23.15 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.750) && (TotWeight > 1.500)) return (26.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 2.000) && (TotWeight > 1.750)) return (30.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 2.500) && (TotWeight > 2.000)) return (33.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 3.000) && (TotWeight > 2.500)) return (37.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 3.500) && (TotWeight > 3.000)) return (41.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 4.000) && (TotWeight > 3.500)) return (45.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 4.500) && (TotWeight > 4.000)) return (48.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 5.000) && (TotWeight > 4.500)) return (52.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 5.500) && (TotWeight > 5.000)) return (55.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 6.000) && (TotWeight > 5.500)) return (59.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 6.500) && (TotWeight > 6.000)) return (52.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 7.000) && (TotWeight > 6.500)) return (56.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 20.000) && (TotWeight > 7.000)) return (100.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if (TotWeight > 20.000) return 0.00;

}



// International - Asia/Pacific

if (LocationValue == 4 ) {

if (TotWeight <= 0.250) return 7.50;

if ((TotWeight <= 0.500) && (TotWeight > 0.250)) return (11.85 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 0.750) && (TotWeight > 0.500)) return (16.20 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.000) && (TotWeight > 0.750)) return (20.55 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.250) && (TotWeight > 1.000)) return (24.90 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.500) && (TotWeight > 1.250)) return (29.25 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.750) && (TotWeight > 1.500)) return (33.60 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 2.000) && (TotWeight > 1.750)) return (38.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 2.500) && (TotWeight > 2.000)) return (42.55 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 3.000) && (TotWeight > 2.500)) return (47.10 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 3.500) && (TotWeight > 3.000)) return (52.20 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 4.000) && (TotWeight > 3.500)) return (56.75 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 4.500) && (TotWeight > 4.000)) return (61.20 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 5.000) && (TotWeight > 4.500)) return (65.75 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 5.500) && (TotWeight > 5.000)) return (70.20 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 6.000) && (TotWeight > 5.500)) return (74.75 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 6.500) && (TotWeight > 6.000)) return (79.20 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 7.000) && (TotWeight > 6.500)) return (83.75 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 20.000) && (TotWeight > 7.000)) return (150.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if (TotWeight > 20.000) return 0.00;

}



// International - USA/Canada/Middle East

if (LocationValue == 5 ) {

if (TotWeight <= 0.250) return 8.50;

if ((TotWeight <= 0.500) && (TotWeight > 0.250)) return (13.90 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 0.750) && (TotWeight > 0.500)) return (19.30 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.000) && (TotWeight > 0.750)) return (24.70 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.250) && (TotWeight > 1.000)) return (30.10 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.500) && (TotWeight > 1.250)) return (35.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.750) && (TotWeight > 1.500)) return (40.90 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 2.000) && (TotWeight > 1.750)) return (46.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 2.500) && (TotWeight > 2.000)) return (53.10 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 3.000) && (TotWeight > 2.500)) return (59.70 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 3.500) && (TotWeight > 3.000)) return (66.30 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 4.000) && (TotWeight > 3.500)) return (72.90 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 4.500) && (TotWeight > 4.000)) return (79.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 5.000) && (TotWeight > 4.500)) return (86.10 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 5.500) && (TotWeight > 5.000)) return (92.70 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 6.000) && (TotWeight > 5.500)) return (99.30 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 6.500) && (TotWeight > 6.000)) return (105.90 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 7.000) && (TotWeight > 6.500)) return (112.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 20.000) && (TotWeight > 7.000)) return (200.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if (TotWeight > 20.000) return 0.00;

}



// International - Rest of World

if (LocationValue == 6 ) {

if (TotWeight <= 0.250) return 10.00;

if ((TotWeight <= 0.500) && (TotWeight > 0.250)) return (16.95 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 0.750) && (TotWeight > 0.500)) return (23.90 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.000) && (TotWeight > 0.750)) return (30.85 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.250) && (TotWeight > 1.000)) return (37.80 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.500) && (TotWeight > 1.250)) return (44.75 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 1.750) && (TotWeight > 1.500)) return (51.70 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 2.000) && (TotWeight > 1.750)) return (58.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 2.500) && (TotWeight > 2.000)) return (67.20 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 3.000) && (TotWeight > 2.500)) return (75.90 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 3.500) && (TotWeight > 3.000)) return (84.60 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 4.000) && (TotWeight > 3.500)) return (93.30 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 4.500) && (TotWeight > 4.000)) return (102.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 5.000) && (TotWeight > 4.500)) return (110.70 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 5.500) && (TotWeight > 5.000)) return (119.40 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 6.000) && (TotWeight > 5.500)) return (128.10 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 6.500) && (TotWeight > 6.000)) return (136.80 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 7.000) && (TotWeight > 6.500)) return (145.50 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if ((TotWeight <= 20.000) && (TotWeight > 7.000)) return (200.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

if (TotWeight > 20.000) return 0.00;

}



//International

if (LocationValue == 7 ) {

if (TotWeight <= 1) return 0.00;

if ((TotWeight <= 31752) && (TotWeight > 1)) return (0.00 + (0.00 * Math.ceil(parseFloat((TotWeight - 1) / 1))));

}



if (LocationValue == 8 ) return 0.00;

}



//---------------------------------------------------------------------||

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

   }



   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 

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 width= 100% cellspacing=0 cellpadding=5 border=0 ><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=right><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]) );

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]) + "</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>&nbsp;</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]) + "</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>&nbsp;</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) {

/// added ///

//strOutput += "<input type=hidden name=\"shipping_" + strFooter + "\" value=\"" + fShipping + "\">";

//strOutput += "<input type=hidden name=\"tax_1\" value=\"" + fTax + "\">";

/// end added ///

}

} 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 class=\"noptotal\" colspan=3><br /><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+strSUB+"</b></td>";

strOutput += "<td class=\"noptotal\" colspan=2 align=right><br /><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 = "No Shipping Option";

if (LocationSelected == 1) LocationLabel = "Royal Mail - UK & Ireland";

if (LocationSelected == 2) LocationLabel = "Royal Mail Airmail - Europe";

if (LocationSelected == 3) LocationLabel = "Royal Mail Airmail - Worldwide";

if (LocationSelected == 4) LocationLabel = "International - Asia/Pacific";

if (LocationSelected == 5) LocationLabel = "International - USA/Canada/Middle East";

if (LocationSelected == 6) LocationLabel = "International - Rest of the World";

if (LocationSelected == 7) LocationLabel = "International Order: You will receive<br>an e-mail with the total shipping costs";

if (LocationSelected == 8) LocationLabel = '<font color="#FF0000">Select Shipping Zone</font>';



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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + strSHIP + "</b>&nbsp;&nbsp;(for " + LocationLabel + ")</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;



//NJ is 4, 5, 6

if ((LocationSelected != 0) || (LocationSelected == 1) || (LocationSelected == 2) || (LocationSelected == 3) || (LocationSelected == 7))

fTax = 0.00;

if ((LocationSelected == 0) || (LocationSelected == 4) || (LocationSelected == 5) || (LocationSelected == 6))

fTax = TaxRate * fTotal;



//if (LocationSelected == 0)  {

if ((LocationSelected == 0) || (LocationSelected == 4) || (LocationSelected == 5) || (LocationSelected == 6)) {

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

} else {

strOutput += "<input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+ MonetarySymbol + strTotal + "\">";

strOutput += "<input type=hidden name=\""+OutputOrderShipping+"\" value=\""+ MonetarySymbol + strShipping + "\">";

//strOutput += "<input type=hidden name=\""+OutputOrderTax+"\" value=\""+ MonetarySymbol + strTax + "\">";

strOutput += "<input type=hidden name=\""+OutputOrderTax+"\" value=\""+ MonetarySymbol + moneyFormat(fTax) + "\">";

strOutput += "<input type=hidden name=\""+OutputOrderTotal+"\" value=\""+ MonetarySymbol + moneyFormat((fTotal + fShipping + fTax)) + "\">";

strOutput += "<input type=hidden name=USPS value=\""+ LocationLabel + "\">";

}

}



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 

//=====================================================================||

//=====================================================================||

// Mini Cart

//=====================================================================||



//---------------------------------------------------------------------||

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



}



//=====================================================================||

// Product Selector

//=====================================================================||



//-----------------------------------------------------------||

// FUNCTION:    AddOneOfManyToCart                           ||

// PARAMETERS:  Form Object PRODUCTSELECTOR                  ||

// RETURNS:     Product parameters to order form            ||

// PURPOSE:     selects one of many products with different size,  ||

//              cost, shipping and/or tax to add to shopping cart  ||

//-----------------------------------------------------------||



function AddOneOfManyToCart(formToUpdate)

{

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



   nameVal = selectedObj.getAttribute("name");

   if (nameVal == "select") {

      alert('Please select an option');

      return false;

   }



   formToUpdate.NAME.value = nameVal;



   costVal = selectedObj.getAttribute("cost");

   formToUpdate.PRICE.value = costVal;



   id_numVal = selectedObj.getAttribute("id_num");

   formToUpdate.ID_NUM.value = id_numVal;



   shippingVal = selectedObj.getAttribute("shipping");

   formToUpdate.SHIPPING.value = shippingVal;



   switch( formToUpdate.PRODUCTSELECTOR[formToUpdate.PRODUCTSELECTOR.selectedIndex].value ) {

   }

   AddToCart(formToUpdate);

}






