<!--
// Version 1.1b
// Copyright 2000-2003 Prostar Interactive (PI). 
// All rights reserved.
// The following code is copyrighted by PI. Duplication, modification or any
// other use is forbidden without the express written consent of PI.
//
var Ver4;
var Nav4;
var IE4;
var Addr;
var aPayOpt;
var aShipVia;
var bCheckout;
var numOrdered;
var newOrder;
var maxOrders;
var Orders;
var HColor;
var LColor;
function createArray( length )
{
var i;
this.length = length;
for( i=1; i<=length; i++)
    this[i] = 0;
return this;
}
function Address()
{
this.FirstName = "";
this.LastName = "";
this.Company = "";
this.AddressLine1 = "";
this.AddressLine2 = "";
this.City = "";
this.State = "";
this.ZipCode = "";
this.Country = "";
this.Phone = "";
this.Fax = "";
this.EMail = "";
this.ShipTo_FirstName = "";
this.ShipTo_LastName = "";
this.ShipTo_Company = "";
this.ShipTo_AddressLine1 = "";
this.ShipTo_AddressLine2 = "";
this.ShipTo_City = "";
this.ShipTo_State = "";
this.ShipTo_ZipCode = "";
this.ShipTo_Country = "";
this.ShipTo_Via = "1";
this.PurchaseOrder_Number = "";
this.CreditCard_PaymentMethod = "1";
this.CreditCard_Number = "";
this.CreditCard_Expires = "";
this.CreditCard_HolderName = "";
this.Notes = "";
this.Other_Rate_Applies=false;
this.Tax_Rate_Applies=false;
return this;
}
//Order Form Formatting
var OAlign;
var CAlign;
//Currency formatting variables
var cCurrSym;        // character(s) of currency symbbol
var cThousands;      // thousands character separator ","
var cDecimal;        // decimal character indicator "."
var uDigits;         // number of decimal digits displayed
var uLead;           // number of leading zeroes if eg. .7
var uCurrSymPos;     // $1.1 or 1.1$ or $ 1.1 or 1.1 $
var cThousandsNum;   // number of digits in group, default 3
// Tax and Other calc.
var other_rate;
var tax_rate;
var ship_base;
var sOtherApply;
var sTaxesApply;
var subtotal;
var shipping;
var bShippingTaxable;
var other;
var bOtherTaxable;
var taxes;
var total;
// Order Text fields
var sReview;
var sCheckout;
var sTitle;
var sSoldTo;
var sShipTo;
var sShipVia;
var sFirst;
var sLast;
var sCompany;
var sAddr1;
var sAddr2;
var sCity;
var sState;
var sZip;
var sCountry;
var sPhone;
var sEMail;
var sPayI;
var sPONum;
var sPayM;
var sCardNum;
var sCardName;
var sExpDate;
var sNotes;
var sTerms;
var sQty;
var sPartn;
var sDesc;
var sUnitP;
var sAmnt;
var sSub;
var sOther;
var sTaxes;
var sShip;
var sTotal;
var sValTerms;
var sValOther;
var sValTaxes;
var sValShipping;
var sValTotal;
var sCoName;
var sCoAddr1;
var sCoAddr2;
var sCoAddr3;
var sCoAddr4;
var sCoPhone;
var sCoLPhone;
var sCoFax;
var sCoLFax;
var sCoEMail;
var sCoLEMail;
// Visiblity of fields
var soldto_vis;
var shipto_vis;
var phone_vis;
var fax_vis;
var shipvia_vis;
var payi_vis;
var ponum_vis;
var paym_vis;
var cardnum_vis;
var cardname_vis;
var expdate_vis;
var notes_vis;
var qty_vis;
var partn_vis;
var desc_vis;
var price_vis;
var amnt_vis;
var subt_vis;
var other_vis;
var taxes_vis;
var ship_vis;
var total_vis;
var Review_vis;
var Checkout_vis; 
var First_vis;
var Last_vis;
var Company_vis;
var Addr1_vis;
var Addr2_vis;
var City_vis;
var State_vis;
var Zip_vis;
var Country_vis;
var EMail_vis;
var PayIL_vis;
var Terms_vis;
// Fields
var sFPayopt;
var sFshipvia;
var bWarn;
function Initialize(bCheck)
{
bCheckout = bCheck;
if (!bCheck)
    bWarn = false;
if (bCheck && (SetCookie("PIMWT","Test")==0))
    {
    if (!bWarn)
        { 
        alert("Warning, you do not have cookies enabled.\r\rIf you leave these catalogs pages and surf to another site any order data you have entered will be lost!");
        bWarn = true;
        }
    return 0;
    }
Ver4 = parseInt(navigator.appVersion) >= 4;
Nav4 = ((navigator.appName == "Netscape") && Ver4);
IE4 = ((navigator.userAgent.indexOf("MSIE") != -1) && Ver4);
Addr = new Address();
numOrdered =  0;
maxOrders = 200;
Orders = new createArray(maxOrders);
	
//WIZ review/checkout color scheme
HColor = "#9cadd6";
//WIZ review/checkout color scheme
LColor = "#c6cee7";
//WIZ general review and checkout alignment
OAlign="<div align=left>";
CAlign="</div>";
//WIZ Initialize currency defaults
uDigits=2;        // number of decimal digits displayed
cCurrSym="£";        // character(s) of currency symbbol
cThousands=",";     // thousands character separator ","
cDecimal=".";        // decimal character indicator "."
uLead=1;            // number of leading zeroes if eg. .7
uCurrSymPos=0;    // $1.1 or 1.1$ or $ 1.1 or 1.1 $
cThousandsNum=3; // number of digits in group, default 3
//WIZ payment options
aPayOpt = new createArray(2);
aPayOpt[1] = "ACCOUNT";
aPayOpt[2] = "CREDIT CARD";

//WIZ shipvia options
aShipVia = new createArray(1);
aShipVia[1] = "Next Day Carrier";

//WIZ order form custom labelling
sTitle="Easyco Order Form 2010";
sSoldTo="Invoice To:";
sShipTo="Deliver To:";
sPhone="Telephone:";
sFax="Fax:";
sShipVia="Deliver By:";
sNotes="Notes:                                  ";
sPartn="Part Number";
sDesc="Description";
sUnitP="Unit Price";
sQty="Quantity";
sAmnt="Amount";
sPONum="Order Number:";
sPayM="Payment Method:";
sCardNum="Telephone Number                    ";
sExpDate="                                        ";
sCardName="                                        ";
sSub="Subtotal:";
sOther="Other            ";
sTaxes=" VAT                                    ";
sShip="Carriage             ";
sTotal="Total:";
//WIZ order form field visibility
soldto_vis=true;
shipto_vis=true;
phone_vis=true;
fax_vis=true;
shipvia_vis=true;
notes_vis=true;
partn_vis=true;
desc_vis=true;
price_vis=true;
qty_vis=true;
amnt_vis=true;
ponum_vis=true;
paym_vis=true;
cardnum_vis=true;
expdate_vis=false;
cardname_vis=false;
subt_vis=true;
other_vis=false;
taxes_vis=true;
ship_vis=true;
total_vis=true;
// If ponum, paym, cardnum, cardname and expdata are all invisible
payi_vis=true;
// New Order Form Label Text
sReview="Review Shopping Cart";
sCheckout="Checkout"; 
sFirst="                        ";
sLast="Name:           ";
sCompany="Company:";
sAddr1="Address 1:";
sAddr2="Address 2:";
sCity="Town/City:";
sState="County:";
sZip="Postal Code:";
sCountry="Country:";
sEMail="E-Mail:";
sPayI="                                    ";
sOtherApply="";
sTaxesApply="Order Number                        ";
sTerms="Terms:";
//WIZ Taxable, Other and Taxes
bShippingTaxable=true;
bOtherTaxable=true;
other_rate=17.50;
tax_rate=17.50;
// Terms
sValTerms ="If you are paying by credit card, please select CREDIT CARD in the PAYMENT METHOD menu and insert your contact telephone number in the box below. One of our sales staff will contact you for your card details.<br><br>Orders over £70.00 net are carriage free.<br>Orders under £70.00 net, £7.00 carriage will be added to your total.<br>(N.I. Under £100.00 and £12.50 Carriage)<br>All prices and totals shown are net of VAT.<br>Our normal terms and conditions apply - see bottom of category list.";
// See DisplayCompany below
sCoName="Easyco ";
sCoAddr1="";
sCoAddr2="";
sCoAddr3="";
sCoAddr4="";
sCoPhone="01455 559028";
sCoFax="01455 698289";
sCoEMail="easyco@btconnect.com";
sCoLPhone="Telephone:";
sCoLFax="Fax:";
sCoLEMail="E-Mail:";
sFPayopt="CreditCard_PaymentMethod";
sFShipvia="ShipTo_Via";
// New Order Form Label Text Visibility
Review_vis=true;
Checkout_vis=true; 
First_vis=false;
Last_vis=true;
Company_vis=true;
Addr1_vis=true;
Addr2_vis=true;
City_vis=true;
State_vis=true;
Zip_vis=true;
Country_vis=true;
EMail_vis=true;
PayIL_vis=false;
OtherApply_vis=false;
TaxesApply_vis=true;
Terms_vis=true;
addressGetCookie();
orderGetCookie();
}
function Out0( )
{
self.frame1.document.write();
}
function Out( str )
{
self.frame1.document.write(str);
}
function Outln( str )
{
self.frame1.document.writeln(str);
}
function roundNumber( fnum ) 
{
var tot;
var result_str = "";
var tot_str;
var x=0;
var y=0;
var point_idx;
var i;
var iPad;
var tenmul=1.0;
var sub_total;
var bMinus=false;
if (fnum<0)
    {
    fnum*=-1;
    bMinus=true;
    }
tot = fnum+"";
point_idx = tot.indexOf(".");
if (point_idx == -1)
    return fnum;
if (fnum < 1)
    point_idx = 0;
for( i=0; i<uDigits; i++ )
    tenmul *= 10;
sub_total = Math.round (fnum * tenmul);
tot_str = sub_total + "";
iPad = uDigits-tot_str.length;
if (iPad>0)
	{
	var temp=tot_str;
	tot_str = "";
	for(i=0;i<iPad;i++)
		tot_str += "0";
	tot_str += temp;
	}
while (x <= (point_idx+uDigits)) 
    {
    if (x == point_idx && y == 0) 
        {
        result_str += ".";
        y = 1;
        }
    else 
        {
        result_str += tot_str.charAt(x);
        x++;
        }
    }
if (bMinus==true)
    return parseFloat( "-"+result_str );
return parseFloat( result_str );
}
function CurrencyToString( fnum )
{
var result_str = "";
var i;
var iPad;
var iLeft;
var Left;
var Right;
var tenmul=1.0;
var bMinus=false;
if (fnum<0)
    {
    fnum*=-1;
    bMinus=true;
    }
iLeft=Math.floor(fnum);
Left=iLeft+"";
for( i=0; i<uDigits; i++ )
  tenmul *= 10;
Right = Math.round( (fnum-iLeft)*tenmul )+"";
iPad = uDigits-Right.length;
if (iPad>0)
	{
	var temp=Right;
	Right = "";
	for(i=0;i<iPad;i++)
		Right += "0";
	Right += temp;
	}
Right += "00000";
if (cCurrSym.length > 0)
    {                                                           
    // 0 = $1.1, 1 = 1.1$, 2 = $ 1.1 and 3 = 1.1 $
    if (uCurrSymPos % 2 == 0)  // currency symbol on left
        {
	result_str += cCurrSym;
        if (uCurrSymPos != 0)
            result_str += " ";
        }
    }
if (fnum < 1)
    {
    for( i=0; i<uLead; i++ )
	 result_str += "0";
    }
else
  {
  var iCur=Left.length;
    for( i=0; i<Left.length; i++, iCur-- )
        {
	result_str += Left.charAt(i);
        if (((iCur % 3) == 1) && (iCur != 1) && (cThousands.lenght != 0))
            result_str += cThousands;
	}
    }
result_str += cDecimal;
if (uDigits > 0)
    {
    for( i=0; i<uDigits; i++ )
        {
	result_str += Right.charAt(i);
	}
    }
if (cCurrSym.length > 0)
    {                                                           
    // 0 = $1.1, 1 = 1.1$, 2 = $ 1.1 and 3 = 1.1 $
    if (uCurrSymPos % 2 != 0)  // currency symbol on right
        {
        if (uCurrSymPos == 3)
            result_str += " ";
        result_str += cCurrSym;
        }
    }
if (bMinus==true)
    return "("+result_str+")";
return result_str;
}
// Calculate the item discount, format should be "10-10.95" where 10.95 is the price
// if 10 or more items are ordered
function calcDiscount( iform, qty )
{
var msg=iform.price.value;
var tmp;
var rng;
var i;
for( i=0; i<iform.discount.length; i++)
  {
  rng = iform.discount.options[i].value;
  tmp  = rng.substring(rng.indexOf("-")+1,rng.length);
  rng = rng.substring(0,rng.indexOf("-"));
  if (qty >= parseInt(rng))
	msg = tmp;
  }
return msg;
}
function OrderEntry()
{
this.qty = "";
this.code = "";
this.name = "";
this.oprice = "";
this.price = "";
this.shpcost = "";
this.thumb = "";
this.extra = 0;
this.discount = false;
this.name2 = "";
this.name3 = "";
this.name4 = "";
return this;
}
function checkOrderEntry(iform,item,discount,extra)
{
item.qty = iform.qty.value;
item.code = iform.code.value;
item.name = iform.name.value;
item.oprice = iform.price.value;
item.price = iform.price.value;
item.shpcost = iform.shpcost.value;
item.thumb = iform.thumb.value;
item.extra = extra;
item.discount = discount;
if (item.qty == "")
  item.qty = "1";
if (item.discount == true)
    item.price = calcDiscount( iform, parseInt(item.qty) );
if (item.extra > 0)
    item.name2 = iform.name2.options[iform.name2.selectedIndex].value;
if (item.extra > 1)
    item.name3 = iform.name3.options[iform.name3.selectedIndex].value;
if (item.extra > 2)
    item.name4 = iform.name4.options[iform.name4.selectedIndex].value;
return this;
}
function checkDupicateOrderEntry(iform,discount,extra)
{
var bMatch=false;
for(i=1;i<=maxOrders;i++)
    if (Orders[i]!=0)
        {
        if ((Orders[i].code == iform.code.value) &&
            (Orders[i].name == iform.name.value) &&
            (Orders[i].oprice == iform.price.value) &&
            (Orders[i].discount == discount) &&
            (Orders[i].extra == extra))
			{
			if (extra > 0)
				if (Orders[i].name2 != iform.name2.options[iform.name2.selectedIndex].value)
					continue;
			if (extra > 1)
				if (Orders[i].name3 != iform.name3.options[iform.name3.selectedIndex].value)
					continue;
			if (extra > 2)
				if (Orders[i].name4 != iform.name4.options[iform.name4.selectedIndex].value)
					continue;
			bMatch = true;
			if (iform.qty.value == "")
				iform.qty.value = "1";
			var qty=parseInt(Orders[i].qty) + parseInt(iform.qty.value);
			Orders[i].qty = qty;
			if (discount == true)
				Orders[i].price = calcDiscount( iform, qty );
			newOrder = i;
			break;
			}
        }
return bMatch;
}
function RemoveItem( i, urlfrom )
{
if (Orders[i] != 0)
    {
    numOrdered-=1;
    Orders[i]=0;
    }
orderSetCookie()
ReviewOrderForm(0,urlfrom);
}
function TOT(bCheckout,vis,name,label,amnt,cols)
{
if (vis == true)
    {
    Out( "<tr><td colspan="+(cols-2)+"></td>");
    Out( "<td align=right bgcolor="+HColor+">"+label+"</td>");
    if (!bCheckout)
        Outln("<td align=right bgcolor="+LColor+">"+amnt+"</td></tr>");
    else
        {
        if (IE4)
            Outln("<td align=right bgcolor="+LColor+"><div id=\""+name+"\" class=\""+name+"IE\"><p>&nbsp;</p></div></td></tr>");
        else
            Outln("<td align=right bgcolor="+LColor+">"+amnt+"</td></tr>");
        }
    }
}
function DisplayCompany( )
{
Outln(OAlign);
if (sCoName.length != 0)
  Outln("<h3>"+sCoName+"</h3>");
if (sCoAddr1.length != 0)
  Outln(sCoAddr1+"<br>");
if (sCoAddr2.length != 0)
  Outln(sCoAddr2+"<br>");
if (sCoAddr3.length != 0)
  Outln(sCoAddr3+"<br>");
if (sCoAddr4.length != 0)
  Outln(sCoAddr4+"<br>");
if (sCoPhone.length != 0)
  Outln(sCoLPhone+" "+sCoPhone+"<br>");
if (sCoFax.length != 0)
  Outln(sCoLFax+" "+sCoFax+"<br>");
if (sCoEMail.length != 0)
  Outln(sCoLEMail+" <a href=mailto:"+sCoEMail+">"+sCoEMail+"</a><br>");
Outln(CAlign);
}
function InitTotals()
{
ship_base=0.00;
subtotal=0.0;
other=0.0;
taxes=0.0;
if (ship_vis)
	shipping=ship_base;
else
	shipping=0.0;
total=0.0;
sValOther="";
sValTaxes="";
sValShipping="";
sValTotal="";
}
function CalcTotals()
{
var i;
var price=0.0;
var itemtotal=0.0;
var tax_shipping=0.0;
var tax_other=0.0;
InitTotals();
for( i=1; i<=maxOrders; i++ )
  if (Orders[i] != 0)
	{
    price = parseFloat(Orders[i].price);
    itemtotal = roundNumber(price*parseFloat(Orders[i].qty));
	subtotal += itemtotal;
	if (ship_vis)
		shipping += parseFloat(Orders[i].shpcost)*parseFloat(Orders[i].qty);
    }
if (ship_vis)
	{
	if (bShippingTaxable)
		tax_shipping = roundNumber(shipping*(tax_rate/100));
	}
other=0.0;
if(other_vis && OtherApply_vis)
	if ((other_rate != 0.0)&&Addr.Other_Rate_Applies)
		{
		other = roundNumber(subtotal*(other_rate/100));
		if (bOtherTaxable)
			tax_other = roundNumber(other*(tax_rate/100));
		}
taxes=0.0;
if(taxes_vis && TaxesApply_vis)
	if ((tax_rate != 0.0)&&Addr.Tax_Rate_Applies)
		{
		taxes = roundNumber(subtotal*(tax_rate/100));
		taxes += tax_shipping+tax_other;
		}
sValOther = CurrencyToString(other);
sValTaxes = CurrencyToString(taxes);
shipping = roundNumber(shipping);
sValShipping = CurrencyToString(shipping);
total = subtotal + other + taxes + shipping;
sValTotal = CurrencyToString(total);
}
function DisplayOrders(bCheckout,title,thumb,urlfrom)
{
var str;
var i;
var cols=0;
var some=0;
var price=0.0;
var itemtotal=0.0;
InitTotals();
Outln(OAlign);
Outln("<table border=0 width=80%>");
str="<tr bgcolor=" + HColor + ">";
if ((thumb.length != 0) && (numOrdered > 0))
    {
    str+="<th align=center>" + thumb + "</th>";
    cols++;
    }
if (qty_vis == true)
    {
    str +="<th align=left>"+sQty+"</th>";
    cols++;
    }
if (partn_vis == true)
    {
    str +="<th align=left>"+sPartn+"</th>";
    cols++;
    }
if (desc_vis == true)
    {
    str +="<th align=left>"+sDesc+"</th>";
    cols++;
    }
if (price_vis == true)
    {
    str +="<th align=right>"+sUnitP+"</th>";
    cols++;
    }
if (amnt_vis == true)
    {
    str +="<th align=right>"+sAmnt+"</th>";
    cols++;
    }
str +="</tr>";
if (!bCheckout)
    {
	if (title.length != 0)
        Outln("<tr bgcolor=" + HColor + "><th align=left colspan="+cols+"><font size=5>"+title+"</font></th></tr>");
    Outln("<tr bgcolor=" + HColor + "><th align=left colspan="+cols+"><font size=4>"+sTitle+"</font></th></tr>");
    }
Outln(str);
for( i=1; i<=maxOrders; i++ )
    if (Orders[i] != 0)
		{
		some++;
			Outln("<tr bgcolor=" + LColor + ">");
		if (!bCheckout)
			{
			str = "<a href=\"javascript:parent.RemoveItem('" + i + "','" + urlfrom + "')\">Remove<br>Item</a>";
			Outln("<td align=center>" + str + "</td>");
			}
		if (qty_vis == true)
			{
			str = "<td align=left>" + Orders[i].qty + "</td>";
			Outln(str);
			}
		if (partn_vis == true)
			{
		str = "<td align=left>" + Orders[i].code + "</td>";
			Outln(str);
			}
		if (desc_vis == true)
			{
			Out("<td>");
			if (i == newOrder)
				Out("<font color=#6600cc><b>");
			str = Orders[i].name;
			if (Orders[i].extra > 0)
				str += " - " + Orders[i].name2;
			if (Orders[i].extra > 1)
				str += ", " + Orders[i].name3;
			if (Orders[i].extra > 2)
				str += ", " + Orders[i].name4;
			Out(str);
 			if (i == newOrder)
				Outln("</b></font>");
			Out("</td>");
			}
		price = parseFloat(Orders[i].price);
		itemtotal = roundNumber(price*parseFloat(Orders[i].qty));
		if (price_vis == true)
			{
		    str = "<td align=right>" + CurrencyToString(price) + "</td>";
			Outln(str);
			}
		if (amnt_vis == true)
			{
		    str = "<td align=right>" + CurrencyToString(itemtotal) + "</td>";
			Outln(str);
			}
		Outln("</tr>");
		}
if (some != 0.00)
    {
    CalcTotals();
    TOT(false,subt_vis,"subtotal",sSub,CurrencyToString(subtotal),cols);
    if (bCheckout)
        {
        TOT(bCheckout,ship_vis,"shipping",sShip,sValShipping,cols);
        TOT(bCheckout,other_vis,"other",sOther+"("+other_rate+"%)",sValOther,cols);
        TOT(bCheckout,taxes_vis,"taxes",sTaxes+"("+tax_rate+"%)",sValTaxes,cols);
        TOT(bCheckout,total_vis,"total",sTotal,sValTotal,cols);
        }
    }
Outln("</table><br>");
if (some == 0)
    Out( "<font color=#6600cc><b>Cart is Empty</br></b></font>");
Outln(CAlign);
return some;
}
function stringReplace( origstr, findstr, replstr )
{
	var pos=0;
	var len=findstr.length;
	
	pos = origstr.indexOf(findstr);
	while (pos != -1)
		{
		prestr = origstr.substring(0,pos);
		poststr = origstr.substring(pos+len, origstr.length);
		origstr = prestr + replstr + poststr;
		pos = origstr.indexOf(findstr);
		}
	return origstr;
}
function stringQuotes( origstr )
{
	temp = stringReplace( origstr, "\"", "&#34" );
	temp = stringReplace( temp, "'", "&#39" );
		
	return temp;
}
function HiddenOrders( )
{
var str;
var i;
var price=0.0;
var itemtotal=0.0;
for( i=1; i<=maxOrders; i++ )
    if (Orders[i] != 0)
	  {
        str = "<input type=hidden name=Item" + i + " value=\"";
	  str += Orders[i].qty + " ";
	  str += stringQuotes(Orders[i].code) + " ";
	  str += stringQuotes(Orders[i].name);
        if (Orders[i].extra > 0)
            str += " - " + stringQuotes(Orders[i].name2);
        if (Orders[i].extra > 1)
            str += ", " + stringQuotes(Orders[i].name3);
        if (Orders[i].extra > 2)
            str += ", " + stringQuotes(Orders[i].name4);
        price = parseFloat( Orders[i].price );
	  str += " " + CurrencyToString(price);
	  itemtotal = roundNumber( parseFloat( Orders[i].price ) * parseFloat( Orders[i].qty ) );
	  str += " " + CurrencyToString(itemtotal);
	  str += "\">";
	  Outln( str );
      }
    
str = "<input type=hidden name=Subtotal value=" + CurrencyToString(subtotal) + ">";
Outln( str );
str = "<input type=hidden name=OOther value=" + sValOther + ">";
Outln( str );
str = "<input type=hidden name=OTaxes value=" + sValTaxes + ">";
Outln( str );
str = "<input type=hidden name=OShipping value=" + sValShipping + ">";
Outln( str );
str = "<input type=hidden name=OTotal value=" + sValTotal + ">";
Outln( str );
}
function HiddenTotals(Order)
{
Order.OOther.value=sValOther;
Order.OTaxes.value=sValTaxes;
Order.OShipping.value=sValShipping;
Order.OTotal.value=sValTotal;
}
function getSelectValue(obj)
{
return ""+(obj.selectedIndex+1);
}
function showTotals(document) 
{
CalcTotals();
var msgOther = "<P ID='totals'>" +sValOther+ "</P>";
var msgTaxes = "<P ID='totals'>" +sValTaxes+ "</P>";
var msgShipping = "<P ID='totals'>" +sValShipping+ "</P>";
var msgTotal = "<P ID='totals'>" +sValTotal+ "</P>";
if (IE4) 
    {
	if(other_vis && OtherApply_vis)
		document.all("other").innerHTML = msgOther;
	if(taxes_vis && TaxesApply_vis)
		document.all("taxes").innerHTML = msgTaxes;
	if (ship_vis)
		document.all("shipping").innerHTML = msgShipping;
	if (total_vis)
		document.all("total").innerHTML = msgTotal;
    }
}
function L(label)
{
Outln("<tr bgcolor=" + HColor + "><td colspan=2><b>" + label + "</b></td></tr>");
}
function AL(label,name,maxchars,value)
{
var size=40;
if (maxchars < size)
  size = maxchars;
Outln("<tr><td bgcolor=" + LColor + "><b><font size=2>" + label + "</b></font></td>");
Out("<td><font size=2><input type=text maxlength=" + maxchars + " size=" + size );
Out(" name=\"" + name +"\" value=\"" + value + "\"");
Outln(" onChange='parent.Addr[\""+name+"\"]=document.Order[\""+name+"\"].value;parent.addressSetCookie()'></font></td></tr>");
}
function AC(apply,label,name,urlfrom,bOther,bTaxes)
{
var checked;
if (apply)
    check=" checked";
else
    check="";
Outln("<tr><td bgcolor=" + LColor + "><b>"+label+"</b></td>");
Out("<td><input type=checkbox name=\""+name+"\""+check);
Outln(" onClick=\"");
if (bOther)
	Outln("parent.Addr.Other_Rate_Applies=document.Order.Other_Rate_Applies.checked;");
if (bTaxes)
	Outln("parent.Addr.Tax_Rate_Applies=document.Order.Tax_Rate_Applies.checked;");
Out("parent.CalcTotals();parent.HiddenTotals(document.Order);");
Out("parent.addressSetCookie();");
if (IE4)
    {
    Outln("parent.showTotals(document)\"></td></tr>");
    }
else
    {
    Outln("parent.CheckOut('"+urlfrom+"')\"></td></tr>");
    }
}
function AS(label,name,aOptions)
{
var i;
Outln("<tr><td bgcolor=" + LColor + "><b><font size=2>"+label+"</font></b></td>");
Outln("<td><select name=\""+name+"\"");
Outln(" onChange='parent.Addr[\""+name+"\"]=parent.getSelectValue(document.Order[\""+name+"\"]);");
Out("parent.addressSetCookie();'>");
for(i=1;i<=aOptions.length;i++)
    {
    if (parseInt(Addr[name])==i)
        Outln("<option selected>"+aOptions[i]);
    else
        Outln("<option>"+aOptions[i]);
    }
Outln("</select></td></tr>");
}
function DocOrderInit(order)
{
if(soldto_vis)
    {
	if (First_vis)
		order.FirstName.value = Addr.FirstName;
	if (Last_vis)
		order.LastName.value = Addr.LastName;
	if (Company_vis)
		order.Company.value = Addr.Company;
	if (Addr1_vis)
		order.AddressLine1.value = Addr.AddressLine1;
	if (Addr2_vis)
		order.AddressLine2.value = Addr.AddressLine2;
	if (City_vis)
		order.City.value = Addr.City;
	if (State_vis)
		order.State.value = Addr.State;
	if (Zip_vis)
		order.ZipCode.value = Addr.ZipCode;
	if (Country_vis)
		order.Country.value = Addr.Country;
	if (phone_vis)
		order.Phone.value = Addr.Phone;
	if (fax_vis)
		order.Fax.value = Addr.Fax;
	if (EMail_vis)
		order.EMail.value = Addr.EMail;
	}
if(shipto_vis)
    {
	if (First_vis)
		order.ShipTo_FirstName.value = Addr.ShipTo_FirstName;
	if (Last_vis)
		order.ShipTo_LastName.value = Addr.ShipTo_LastName;
	if (Company_vis)
		order.ShipTo_Company.value = Addr.ShipTo_Company;
	if (Addr1_vis)
		order.ShipTo_AddressLine1.value = Addr.ShipTo_AddressLine1;
	if (Addr2_vis)
		order.ShipTo_AddressLine2.value = Addr.ShipTo_AddressLine2;
	if (City_vis)
		order.ShipTo_City.value = Addr.ShipTo_City;
	if (State_vis)
		order.ShipTo_State.value = Addr.ShipTo_State;
	if (Zip_vis)
		order.ShipTo_ZipCode.value = Addr.ShipTo_ZipCode;
	if (Country_vis)
		order.ShipTo_Country.value = Addr.ShipTo_Country;
	}
if(shipvia_vis)
	order.ShipTo_Via.selectedIndex = parseInt(Addr.ShipTo_Via)-1;
if(ponum_vis)
	order.PurchaseOrder_Number.value = Addr.PurchaseOrder_Number;
if(paym_vis)
	order.CreditCard_PaymentMethod.selectedIndex = parseInt(Addr.CreditCard_PaymentMethod)-1;
if(cardnum_vis)
	order.CreditCard_Number.value = Addr.CreditCard_Number;
if(expdate_vis)
	order.CreditCard_Expires.value = Addr.CreditCard_Expires;
if(cardname_vis)
	order.CreditCard_HolderName.value = Addr.CreditCard_HolderName;
if(notes_vis)
	order.Notes.value = Addr.Notes;
if(other_vis && OtherApply_vis)
	order.Other_Rate_Applies.checked = Addr.Other_Rate_Applies;
if(taxes_vis && TaxesApply_vis)
	order.Tax_Rate_Applies.checked = Addr.Tax_Rate_Applies;
}
function ClearCart()
{
var i;
numOrdered = 0;
for( i=1; i<=maxOrders; i++ )
    Orders[i] = 0;
InitTotals();
SetCookie("PIMWO","");
}
function ClearOrder()
{
Addr = new Address(); 
SetCookie("PIMW","");
ClearCart();
}
function CheckOut(urlfrom)
{
var bOther, bTaxes;
if (numOrdered == 0)
    {
    ReviewOrderForm(0,urlfrom);
    return;
    }
Out0();
Outln("<html><head><title>"+sCheckout+"</title></head>");
Outln("<body bgcolor=\"#FFFFFF\" onLoad=\"parent.Initialize(true);parent.DocOrderInit(document.Order);parent.showTotals(document)\"");
Outln(" onUnload=\"parent.bCheckout=false\">");
Outln(OAlign);
Outln("<form name=Order method=post action=\"http://www.easyco.co.uk/easyco-product-catalogue/minicat.php\">");
Outln("<input type=\"hidden\" name=\"Order_Name\" value=\""+sTitle+"\">");
Outln("<input type=\"hidden\" name=\"Catalog_Name\" value=\"Easyco Workshop Consumables & Tools 2010\">");
Outln("<input type=\"hidden\" name=\"frm_company\" value=\""+sCoName+"\">");
Outln("<input type=\"hidden\" name=\"frm_emailto\" value=\"easyco@btconnect.com\">");
Outln("<input type=\"hidden\" name=\"frm_linkto\" value=\""+urlfrom+"\">");
Outln("<input type=\"hidden\" name=\"CurrSym\" value=\""+cCurrSym+"\">");
Outln("<input type=\"hidden\" name=\"CurrNum\" value=\""+cCurrSym.length+"\">");
Outln("<table border=0 width=80%>");
if (Checkout_vis)
	L("<font size=5>"+sCheckout+"</font>");
L("<font size=4>"+sTitle+"</font>");
if(soldto_vis)
    {
    L(sSoldTo);
	if (First_vis)
		AL(sFirst,"FirstName",40,Addr.FirstName);
	if (Last_vis)
		AL(sLast,"LastName",40,Addr.LastName);
	if (Company_vis)
		AL(sCompany,"Company",40,Addr.Company);
	if (Addr1_vis)
		AL(sAddr1,"AddressLine1",40,Addr.AddressLine1);
	if (Addr2_vis)
		AL(sAddr2,"AddressLine2",40,Addr.AddressLine2);
	if (City_vis)
		AL(sCity,"City",40,Addr.City);
	if (State_vis)
		AL(sState,"State",5,Addr.State);
	if (Zip_vis)
		AL(sZip,"ZipCode",10,Addr.ZipCode);
	if (Country_vis)
		AL(sCountry,"Country",10,Addr.Country);
	if (phone_vis)
		AL(sPhone,"Phone",40,Addr.Phone);
	if (fax_vis)
		AL(sFax,"Fax",40,Addr.Fax);
	if (EMail_vis)
		AL(sEMail,"EMail",60,Addr.EMail);
    }
if(shipto_vis)
    {
    L(sShipTo);
	if (First_vis)
	    AL(sFirst,"ShipTo_FirstName",40,Addr.ShipTo_FirstName);
	if (Last_vis)
		AL(sLast,"ShipTo_LastName",40,Addr.ShipTo_LastName);
	if (Company_vis)
		AL(sCompany,"ShipTo_Company",40,Addr.ShipTo_Company);
	if (Addr1_vis)
		AL(sAddr1,"ShipTo_AddressLine1",40,Addr.ShipTo_AddressLine1);
	if (Addr2_vis)
		AL(sAddr2,"ShipTo_AddressLine2",40,Addr.ShipTo_AddressLine2);
	if (City_vis)
		AL(sCity,"ShipTo_City",40,Addr.ShipTo_City);
	if (State_vis)
		AL(sState,"ShipTo_State",5,Addr.ShipTo_State);
	if (Zip_vis)
		AL(sZip,"ShipTo_ZipCode",10,Addr.ShipTo_ZipCode);
	if (Country_vis)
		AL(sCountry,"ShipTo_Country",10,Addr.ShipTo_Country);
    }
if(shipvia_vis)
	AS(sShipVia,sFShipvia,aShipVia);
if(payi_vis && PayIL_vis)
    L(sPayI);
if(ponum_vis)
    AL(sPONum,"PurchaseOrder_Number",25,Addr.PurchaseOrder_Number);
if(paym_vis)
    AS(sPayM,sFPayopt,aPayOpt);
if(cardnum_vis)
    AL(sCardNum,"CreditCard_Number",25,Addr.CreditCard_Number);
if(expdate_vis)
    AL(sExpDate,"CreditCard_Expires",10,Addr.CreditCard_Expires);
if(cardname_vis)
    AL(sCardName,"CreditCard_HolderName",40,Addr.CreditCard_HolderName);
if(notes_vis)
    {
    L(sNotes);
    Outln("<tr><td></td><td><textarea name=\"Notes\" rows=3 cols=40 wrap=physical");
    Outln(" onChange='parent.Addr[\"Notes\"]=document.Order[\"Notes\"].value'>"+Addr.Notes+"</textarea></td></tr>");
    }
if(Terms_vis)
    {
    L(sTerms);
    Outln("<tr><td></td><td><table border width=100%><tr><td>"+sValTerms+"</tr></td></table><br></td></tr>");
    }
bOther=(other_vis && OtherApply_vis);
bTaxes=(taxes_vis && TaxesApply_vis);
if(bOther)
    AC(Addr.Other_Rate_Applies,sOtherApply,"Other_Rate_Applies",urlfrom,bOther,bTaxes);
if(bTaxes)
    AC(Addr.Tax_Rate_Applies,sTaxesApply,"Tax_Rate_Applies",urlfrom,bOther,bTaxes);
Outln("</table>");
Outln("<br>");
Outln(CAlign);
DisplayOrders(true,"","",urlfrom);
HiddenOrders();
Outln(OAlign);
Outln("<a href=\"" + urlfrom + "\"><img src=\"b_left.jpg\" alt=\"[Back]\" border=\"none\"></a>");
Outln("<input type=image name=Order src=\"b_email.jpg\" alt=\"[EMail Order]\" border=0>");
Outln("<a href=\""+urlfrom+"\" onClick=\"parent.ClearOrder()\"><img src=\"b_cform.jpg\" alt=\"[Clear Form]\" border=\"none\"></a>");
Outln(CAlign);
Outln("</form>");
DisplayCompany();
Outln("</body></html>");
self.frame1.document.close();
}
function ReviewOrderForm( iform, urlfrom )
{
var str=" ";
var some;
if (iform != 0)
    str = "<img src=\"" + iform.thumb.value + "\" alt=\"Thumbnail\">";
Out0();
Outln("<html><head>"+
    "<title>Order Form</title>"+"</head><body bgcolor=\"#FFFFFF\">");
if (!Review_vis)
	sReview = "";
some = DisplayOrders(false,sReview,str,urlfrom);
Outln(OAlign);
Outln("<br>");
Outln("<a href=\"" + urlfrom + "\"><img src=\"b_left.jpg\" alt=\"[Back]\" border=\"none\"></a>");
if (some != 0)
    {
    Outln("<a href=\""+urlfrom+"\" onClick=\"parent.ClearCart()\"><img src=\"b_empty.jpg\" alt=\"[Empty Cart]\" border=\"none\"></a>");
    Outln("<a href=\"javascript:parent.CheckOut('" + urlfrom + "')\"><img src=\"b_chkout.jpg\" alt=\"[Checkout]\" border=\"none\"></a>");
    }
Outln(CAlign);
DisplayCompany();
Outln("</body></html>");
self.frame1.document.close();
}
function checkQuantity( qty )
{
var i;
var c;
for(i=0;i<qty.length;i++)
  {
  c = qty.charAt(i);
  if (c < "0" || c > "9")
	return false;
  }
return parseInt( qty ) != 0;
}
function OrderItem( iform, discount, extra, urlfrom )
{
var i;
if (!checkQuantity( iform.qty.value ))
	{
    alert( "Invalid quantity entered!");
	return;
	}
newOrder = 0;
if (!checkDupicateOrderEntry(iform,discount,extra))
    {
    if (numOrdered == maxOrders)
        {
        alert("Maximum number of items have been ordered in this order!");
        return false;
        }
    numOrdered += 1;
    for( i=1; i<=maxOrders; i++ )
        if (Orders[i] == 0)
            break;
    Orders[i] = new OrderEntry();
    newOrder = i;
    checkOrderEntry(iform,Orders[i],discount,extra);
    }
orderSetCookie();
orderGetCookie();
ReviewOrderForm(iform, urlfrom);
newOrder = 0;
//return false;
}
function getCookieVal(offset)
{
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}
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 "";
}
function SetCookie(name,value) 
{
document.cookie = name + "=" + escape (value);
return document.cookie.length; 
}
function addressMakeCookie()
{
return "\fFirstName:"+ Addr.FirstName +
      "\fLastName:"+ Addr.LastName +
      "\fCompany:"+ Addr.Company +
      "\fAddressLine1:"+ Addr.AddressLine1 +
      "\fAddressLine2:"+ Addr.AddressLine2 +
      "\fCity:"+ Addr.City +
      "\fState:"+ Addr.State +
      "\fZipCode:"+ Addr.ZipCode +
      "\fCountry:"+ Addr.Country +
      "\fPhone:"+ Addr.Phone +
      "\fFax:"+ Addr.Fax +
      "\fEMail:"+ Addr.EMail +
      "\fShipTo_FirstName:"+ Addr.ShipTo_FirstName +
      "\fShipTo_LastName:"+ Addr.ShipTo_LastName +
      "\fShipTo_Company:"+ Addr.ShipTo_Company +
      "\fShipTo_AddressLine1:"+ Addr.ShipTo_AddressLine1 +
      "\fShipTo_AddressLine2:"+ Addr.ShipTo_AddressLine2 +
      "\fShipTo_City:"+ Addr.ShipTo_City +
      "\fShipTo_State:"+ Addr.ShipTo_State +
      "\fShipTo_ZipCode:"+ Addr.ShipTo_ZipCode +
      "\fShipTo_Country:"+ Addr.ShipTo_Country +
      "\fShipTo_Via:"+ Addr.ShipTo_Via +
      "\fPurchaseOrder_Number:"+ Addr.PurchaseOrder_Number +
      "\fCreditCard_PaymentMethod:"+ Addr.CreditCard_PaymentMethod +
      "\fCreditCard_Number:"+ Addr.CreditCard_Number +
      "\fCreditCard_Expires:"+ Addr.CreditCard_Expires +
      "\fCreditCard_HolderName:"+ Addr.CreditCard_HolderName +
      "\fNotes:"+ Addr.Notes +
      "\fOther_Rate_Applies:"+ Addr.Other_Rate_Applies +
      "\fTax_Rate_Applies:"+ Addr.Tax_Rate_Applies +"\f\f";
}
function addressSetCookie()
{
SetCookie("PIMW",addressMakeCookie());
}
function pack(name,value)
{
return "\r"+name+":"+value;
}
function orderMakeCookie()
{
var s="";
for(i=1;i<=maxOrders;i++)
    if (Orders[i]!=0)
        {
        s += "\fo"+i+":";
        s += pack("code",Orders[i].code);
        s += pack("name",Orders[i].name);
        s += pack("oprice",Orders[i].oprice);
        s += pack("price",Orders[i].price);
        s += pack("shpcost",Orders[i].shpcost);
        s += pack("thumb",Orders[i].thumb);
        s += pack("qty",Orders[i].qty);
        s += pack("extra",""+Orders[i].extra);
        s += pack("discount",Orders[i].discount);
        if (Orders[i].extra > 0)
            s += pack("name2",Orders[i].name2);
        if (Orders[i].extra > 1)
            s += pack("name3",Orders[i].name3);
        if (Orders[i].extra > 2)
            s += pack("name4",Orders[i].name4);
        s += "\r\r";
        }
return s+"\f\f";
}
function orderSetCookie()
{
SetCookie("PIMWO",orderMakeCookie());
}
// Cookie globals
var pLabel,pValue;
function parseCookie(sep,s,i,slen)
{
var iRet=-1;
var start, end, vend;
start = s.indexOf(sep,i);
if (start>=0)
    {
    end = s.indexOf(":",start);
    if (end>start)
        {
        vend = s.indexOf(sep,end);
        if (vend>end)
            {
            pLabel = s.substring(start+1,end);
            pValue = s.substring(end+1,vend);
            iRet = vend;
            }
        }
    }
return iRet;
}
function addressGetCookie()
{
var s;
var slen;
var i=0;
s = GetCookie("PIMW");
slen = s.length;
while(i<slen) 
    {
    i = parseCookie("\f",s,i,slen);
    if (i != -1)
        {
        if ((pLabel == "Other_Rate_Applies") || (pLabel=="Tax_Rate_Applies"))
            {
            if (pValue=="false")
                Addr[pLabel] = false;
            else   
                Addr[pLabel] = true;
            }
        else
            Addr[pLabel] = pValue;
        }
    else
        break;
    }
}
function setItem(item,n,v)
{
item[n] = v;
}
function orderGetCookie()
{
var s;
var slen,olen;
var i=0,j=0;
s = GetCookie("PIMWO");
slen = s.length;
if (slen==0)
    return;
numOrdered = 0;
while(i<slen) 
    {
    i = parseCookie("\f",s,i,slen);
    if (i != -1)
        {
        var o=pValue;
        olen = o.length;
        numOrdered++;
        Orders[numOrdered] = new OrderEntry();
        while(j<olen) 
            {
            j = parseCookie("\r",o,j,olen);
            if (j != -1)
                {
                if (pLabel == "discount")
                    {
                    if (pValue=="false")
                        Orders[numOrdered].discount = false;
                    else   
                        Orders[numOrdered].discount = true;
                    }
                else if (pLabel == "extra")
			    Orders[numOrdered].extra = parseInt(pValue);
                else			
                    setItem(Orders[numOrdered],pLabel,pValue); 
                }
            else
                break;
            }
        }
    else
        break;
    }
}
function checkUnload( )
{
    return true;
}
-->
