DisplayNotice         = false;
DisplayTaxRow         = false;
TaxRate               = 0.0;
MonetarySymbol        = '£';
Language              = 'en';
varDISRTE = 0.9;
strDISRTE = '10%';
OutputItemId          = 'ID_';
OutputItemQuantity    = 'QUANTITY_';
OutputItemPrice       = 'PRICE_';
OutputItemName        = 'NAME_';
OutputItemShipping    = 'SHIPPING_';
OutputItemAddtlInfo   = 'ADDTLINFO_';
OutputOrderSubtotal   = 'SUBTOTAL';
OutputOrderShipping   = 'SHIPPING';
OutputOrderTax        = 'TOTALVAT';
AppendItemNumToOutput = true;

strSorry  = "I'm Sorry, this is as much as you can add to your Shopping cart in one go, please proceed to checkout and start agin for additioanl products - CrackedFigner will ship for free to the UK";
strAdded  = " added to your shopping cart.";
strRemove = "Click 'Ok' to remove this product from your shopping cart.";
strILabel = "Ref. Code";
strDLabel = "Description";
strQLabel = "Qty";
strPLabel = "Price";
strSLabel = "Shipping";
strRButton= "Remove";
strSUB    = "SUBTOTAL";
strSHIP   = "SHIPPING";
strTOT    = "TOTAL";
strErrQty = "Invalid Quantity.";
strNewQty = 'Please enter new quantity:';


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(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.SHIPPING == null )
strSHIPPING  = "0.00";
else
strSHIPPING  = thisForm.SHIPPING.value;

if ( thisForm.ADDITIONALINFO == null )
strADDTLINFO = "";
else
strADDTLINFO = thisForm.ADDITIONALINFO[thisForm.ADDITIONALINFO.selectedIndex].value;

if ( thisForm.VAT == null )
strVAT= "0.00";
else
strVAT = thisForm.VAT.value;

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

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

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

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

if( !bAlreadyInCart ) {
iNumberOrdered++;

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

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

if( DisplayNotice )
alert(notice);
}

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 (date) {
var base = new Date(0);
var skew = base.getTime();

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


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 (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 (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(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(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(QtyOrder,CurrQty) {
var newQty;

newQty=prompt(strNewQty,CurrQty);
if( isNaN(newQty) ) {
alert( strErrQty );
} else {
NewOrder = "Order." + QtyOrder;
database = "";
database = GetCookie(NewOrder);

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

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

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

return true;
}

return false;
}


function GetFromCart( fShipping ) {
if( fShipping )
WriteToForm( true, fShipping );
else
WriteToForm( true, 0 );
}

function GetFromCartHidden( fShipping ) {
if( fShipping )
WriteToForm( "", fShipping );
else
WriteToForm( "", 0 );
}


function WriteToForm( bDisplay, fShipping ) {
var iNumberOrdered = 0;
var fTotal         = 0;
var shippingA      = 0;
var shippingB      = 0;
var shippingC      = 0;
var shippingD      = 0;
var shippingE      = 0;
var strTOTALWEIGHT = 0;
var strTotalVAT    = 0;
var strTotal       = "";
var strShipping    = "";
var strOutput      = "";
var strQNT         = 0;
var strREM         = 0;
var srtVAT	   = 0;
iNumberOrdered = GetCookie("NumberOrdered");

// Head of table
if( iNumberOrdered == null )
    iNumberOrdered = 0;
if ( bDisplay ) {
 strOutput += "<table width=\"550\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\" align=\"center\" bgcolor=\"#990000\"><tr><td bgcolor=#dddddd>";
}
if ( bDisplay ) 
strOutput +=  "<TABLE width=\"550\" bgcolor=\"#dddddd\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><TR><TD CLASS=\"cfheadfont\" width=\"69\">"+strILabel+"</TD><TD CLASS=\"cfheadfont\" width=\"168\">"+strDLabel+"</TD><TD CLASS=\"cfheadfont\" width=\"30\">"+strQLabel+"</TD><TD CLASS=\"cfheadfont\" width=\"65\">"+strPLabel+"</TD><TD CLASS=\"cfheadfont\" width=\"59\">"+strSLabel+"</TD><TD CLASS=\"cfheadfont\" width=\"69\"></TD><TD CLASS=\"cfheadfont\" width=\"90\">\&nbsp</TD></TR></table></td></tr><tr><td bgcolor=\"#ffffff\"><TABLE bgColor=\"#ffffff\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";

// Loop each product start
for ( i = 1; i <= iNumberOrdered; i++ ) {
NewOrder = "Order." + i;
database = "";
database = GetCookie(NewOrder);

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

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

fTotal += (parseInt(fields[1]) * parseFloat(fields[2])); 
strTotalVAT   += (parseInt(fields[1]) * parseFloat(fields[6]));
strTOTALWEIGHT += (parseInt(fields[1]) * parseFloat(fields[4]));
strQNT     += (parseInt(fields[1]));

if ( bDisplay ) {
strOutput += "<TR><TD width=\"69\" bgcolor=#ffffff class=\"tablecontentblk\">"+ fields[0] +"</TD>";

if ( fields[5] == "" ) 
strOutput += "<TD width=\"168\" bgcolor=#ffffff class=\"tablecontentblk\">"+ fields[3] +"</TD>";
else 
strOutput += "<TD width=\"168\" bgcolor=#ffffff class=\"tablecontentblk\">"+ fields[3] +" - <I>"+ fields[5] +"</I></TD><TD width=\"30\" bgcolor=#ffffff class=\"tablecontentblk\">"+ fields[1] +"</TD><TD width=\"65\" bgcolor=#ffffff class=\"tablecontentblk\">"+ MonetarySymbol+ moneyFormat(fields[2]) +"/ea</TD><TD width=\"59\" bgcolor=#ffffff class=\"tablecontentblk\">"+ MonetarySymbol+ moneyFormat(fields[4]) +"/ea</TD><TD width=\"69\" bgcolor=#ffffff class=\"tablecontentblk\"></TD><TD ALIGN=CENTER width=\"90\" bgcolor=#ffffff><input type=\"button\" value=\""+strRButton+"\" onClick=\"RemoveFromCart("+i+")\" class=\"Button\"></TD></TR>";
}

if( AppendItemNumToOutput ) {
strFooter = i;
} else {
strFooter = "";
}
strOutput += "<input type=hidden name=\"" + OutputItemId + strFooter + "\" value=\"" + fields[0] + "\"><input type=hidden name=\"" + OutputItemQuantity + strFooter + "\" value=\"" + fields[1] + "\"><input type=hidden name=\"" + OutputItemPrice + strFooter + "\" value=\"" + fields[2] + "\"><input type=hidden name=\"" + OutputItemName + strFooter + "\" value=\"" + fields[3] + "\"><input type=hidden name=\"" + OutputItemShipping + strFooter + "\" value=\"" + fields[4] + "\"><input type=hidden name=\"" + OutputItemAddtlInfo + strFooter + "\" value=\"" + fields[5] + "\">";
}
// loop each product end



vTotal = (fTotal + strTotalVAT + strTOTALWEIGHT);
usdTotal = moneyFormat(vTotal * USD);
strTotal    = moneyFormat(fTotal);
strTotalBULK = moneyFormat(vTotal * varDISRTE);
strShipping = moneyFormat(fShipping);
strREM      = (10 - strQNT);
strTotalVAT = moneyFormat(strTotalVAT);

if ( bDisplay ) {
strOutput += "</table></td></tr><tr><td bgcolor=\"#dddddd\"><table width=\"550\" bgcolor=\"#dddddd\"><tr><td class=\"tablecontentblk\">";
} else {
strOutput += "<table width=\"550\" bgcolor=\"#dddddd\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\"><tr><td colspan=\"2\" class=\"extrapagetitle\">Cost of your order:</td></tr><tr><td colspan=\"2\" class=\"tablecontentblk\">";
}

// totals

strOutput += "</td></tr><tr><td align=right bgcolor=#dddddd class=\"newsheadtxt\"></td><td bgcolor=#dddddd class=\"newsdatetxt\"></td></tr><tr><td align=right bgcolor=#dddddd class=\"newsheadtxt\">Total Shipping:</td><td bgcolor=#dddddd class=\"newsdatetxt\">" + MonetarySymbol + moneyFormat(strTOTALWEIGHT) + "</td></tr><tr><td align=right bgcolor=#dddddd class=\"newsheadtxt\" width=\"440\">Total order:</td><td bgcolor=#dddddd class=\"errortext\" width=\"120\">" + MonetarySymbol + moneyFormat(vTotal) + "</td></tr><tr Height=\"5\"><td Height=\"5\" colspan=\"2\"></td></tr><tr><td align=\"right\" bgcolor=#dddddd class=\"newsdatetxt\" width=\"440\">(Approx US Dollar Cost :</td><td bgcolor=#dddddd class=\"newsdatetxt\" width=\"120\">$" + moneyFormat(usdTotal) + ")</td>";

// Checkout Button
//strOutput += 
//if ( strQNT = 0 ) {

strOutput += "<input type=hidden name=\"VAT\" value=\""+ strTotalVAT +"\"><input type=hidden name=\"rawTOTAL\" value=\""+ moneyFormat(fTotal) +"\">";



strOutput += "</tr></table></td></tr></table><input type=hidden name=\""+OutputOrderSubtotal+"\" value=\""+ MonetarySymbol + strTotal + "\"><input type=hidden name=\""+OutputOrderShipping+"\" value=\""+ MonetarySymbol + strShipping + "\"><input type=hidden name=\""+OutputOrderTax+"\" value=\""+ strTotalVAT + "\"><input type=hidden name=\"QNT\" value=\"" + strQNT + "\"><input type=hidden name=\"SHIPPING2\" value=\""+ strTOTALWEIGHT + "\">";
document.write(strOutput);
document.close();
}