 function alreadyincart(testitemid)
{
	isalreadyincart=false;

	numberofproducts = parseInt(getCookie('CASHELLnumberofitems'));
	if( (isNaN(numberofproducts)) || (numberofproducts<1) ) numberofproducts=0;

	if(numberofproducts>0)
	{
		cartstrings = new Array(numberofproducts+1);
		for(var f=0;f<numberofproducts;f++)
		{
			cartstrings[f] = getCookie('CASHELLbasketitem'+f);
		}
	
		cartitems = new Array(numberofproducts);
		for(var f=0;f<numberofproducts;f++)
		{
			cartitems[f] = new Object();
		}
	
		for(var f=0;f<numberofproducts;f++)
		{
			for(var g=0;g<PLEN;g++)
			{
				cartitems[f][NAMES[g]] = cartstrings[f].substring(0,cartstrings[f].indexOf('|'));
				cartstrings[f] = cartstrings[f].substring((cartstrings[f].indexOf('|')) + 1);
			}
		}

		for(var f=0;f<numberofproducts;f++)
		{
			if(cartitems[f]['PRODUCTID']==testitemid)
			{
				isalreadyincart=true;break;
			}
		}
	}

	return isalreadyincart;
}


function doKeyUp(e) 
{
	recalc();
}
document.onclick = doKeyUp;
document.onkeyup = doKeyUp;
if(document.layers)
{
	document.captureEvents(Event.KEYUP);
}

var PLEN = 7;
var NAMES = new Array('PRODUCTID','PRODUCTTYPEID','NUMBER','PERIOD','PRICE','QUANTITY');
var cartitems = 0;
var itemcount = 0;
var orderbox="";
var numberofproducts=0;
var cartstrings;
var cartitems;
var outputbasket = "";
var vattotal = 0;
var subtotal = 0;

function remove(cookieid,formid)
{
	var theid = parseInt(cookieid);
	eval("document.yourbasket.quantity"+formid+".value=0");
	updateCart();
	document.location.reload(true);
}

function doGetBasket()
{
	numberofproducts = parseInt(getCookie('CASHELLnumberofitems'));
	if( (isNaN(numberofproducts)) || (numberofproducts<1) ) numberofproducts=0;

if(numberofproducts>0)
{
	cartstrings = new Array(numberofproducts+1);
	for(var f=0;f<numberofproducts;f++)
	{
		cartstrings[f] = getCookie('CASHELLbasketitem'+f);
	}
	
	cartitems = new Array(numberofproducts);
	for(var f=0;f<numberofproducts;f++)
	{
		cartitems[f] = new Object();
	}
	
	for(var f=0;f<numberofproducts;f++)
	{
		for(var g=0;g<PLEN;g++)
		{
			cartitems[f][NAMES[g]] = cartstrings[f].substring(0,cartstrings[f].indexOf('|'));
			cartstrings[f] = cartstrings[f].substring((cartstrings[f].indexOf('|')) + 1);
		}
	}
	outputbasket += "<br><br><table width=400 cellpadding=4 cellspacing=1 border=0 bgcolor='#888888'>\n";
	outputbasket += "<tr bgcolor='#ffffff'><td><b>Item</b></td><td align=center><b>Price</b></td><td align=center><b>Subtotal</b></td><td width=20>&nbsp;</td></tr>\n";
	itemcount = 0;
	subtotal=0;
	grandtotal=0;

	for(var f=0;f<numberofproducts;f++)
	{
		if(cartitems[f]['QUANTITY']!=0)
		{
			outputbasket += "<tr bgcolor='#ffffff' class='items'>";
			outputbasket += "<td>"+ cartitems[f]['NUMBER']	+ " for " + cartitems[f]['PERIOD']	+" months ";

			outputbasket += "<input type='hidden' name='thebasketstr" + f + "' value='" 
+ cartitems[f]['PRODUCTID']+"|"
+ cartitems[f]['PRODUCTTYPEID']+"|"
+ cartitems[f]['NUMBER']+"|"
+ cartitems[f]['PERIOD']+"|"
+ cartitems[f]['PRICE']+"|"
+ cartitems[f]['QUANTITY']+"|"
+ "'>";

			outputbasket += "</td>";

			outputbasket += "<input type='hidden' name='quantity" + f + "' value='" + cartitems[f]['QUANTITY']+"'></td>";
			outputbasket += "<td align=center nowrap><nobr>&pound;" + cartitems[f]['PRICE']	+ "</nobr><input type='hidden' name='price" + f + "' value='" + format(cartitems[f]['PRICE']) + "'></td>\n";

			lineprice = parseFloat(cartitems[f]['PRICE'])  * parseInt(cartitems[f]['QUANTITY']);

			outputbasket += "<td align=center nowrap><nobr>&pound;<input type='text' class='pricebox' size=5 name='lineprice" + f + "' value='" + format(lineprice) + "' onFocus='this.blur();'></nobr></td>\n";		

			outputbasket += "<td><a href=\"javascript:remove('" + f  + "','"+itemcount+"')\" onMouseOver=\"self.status='Remove this item'; return true;\" onMouseOut=\"self.status='';return true;\"><img src='images/delete.gif' width=14 height=14 alt='Remove this item' border=0></a><input type='hidden' name='cookieid"+itemcount+"' value='"+f+"'>";
			outputbasket += "</tr>\n";
			itemcount++;
			subtotal = parseFloat(subtotal) + parseFloat(lineprice);
		}
	}



	outputbasket += "<tr bgcolor='#ffffff'><td colspan=2 align=right><b>NET</b></td>\n";
	outputbasket += "<td align=center>&pound;<input type='text' class='pricebox' size=5 name='net' value='' onFocus='this.blur();'></td>";
	outputbasket += "<td>&nbsp;</td></tr>";

	outputbasket += "<tr bgcolor='#ffffff'><td colspan=2 align=right><b>VAT</b></td>\n";
	outputbasket += "<td align=center>&pound;<input type='text' class='pricebox' size=5 name='vat' value='' onFocus='this.blur();'></td>";
	outputbasket += "<td>&nbsp;</td></tr>";

	outputbasket += "<tr bgcolor='#ffffff'><td colspan=2 align=right><b>Grand Total</b></td>\n";
	outputbasket += "<td align=center>&pound;<input type='text' class='pricebox' size=5 name='grandtotal' value='' onFocus='this.blur();'></td>";
	outputbasket += "<td>&nbsp;</td></tr>";

	outputbasket += "</table>";
	document.write("You have ");
	document.write("<b>" + itemcount+ "</b> item");
	if(itemcount!=1) document.write("s"); 
	document.write(" in your Shopping Basket");
	document.writeln('<form name="yourbasket">');
	document.writeln(outputbasket);
	document.writeln("<p>You may edit your order by changing quantities,<br>or remove an item by clicking <img src='images/delete.gif' width=14 height=14 align=absmiddle>"); 


	document.writeln('</form>');
	document.writeln("<p>Payment in other currencies may be subject to fluctuations in exchange<br>rates and to charges made by your credit or debit card company.");

	document.writeln('<p><form name="theorderdetails"  action="paypoint_checkout.phtml" method="POST">');
	document.writeln('<input type="hidden" name="l2b" value="1"><input type="hidden" name="amount" value=""><input type="hidden" name="country" value=""><input type="hidden" name="logbox" value=""><input type="hidden" name="basketlocation" value=""><input type="hidden" name="orderbox" value=""><input type="hidden" name="total" value="">');
	document.writeln('<a href="javascript:getcheckout()"><img src="images/pgbtn_chout.gif" width=91 height=24 border=0 alt="Go to Checkout"></a>');
	document.writeln('</form>');

	recalc();
}
else
{
	document.writeln("<br><br>Your shopping basket is empty<br>"); 
}
}

function setorderbox()
{
	recalc();
	if(itemcount>0)document.theorderdetails.submit();	
}


function updateCart()
{
	numberofproducts = parseInt(getCookie('CASHELLnumberofitems'));
	if( (isNaN(numberofproducts)) || (numberofproducts<1) ) numberofproducts=0;
	for(f=0;f<numberofproducts+1;f++)
	{
		removeCookie("CASHELLbasketitem" + f);	
	}
	removeCookie("CASHELLnumberofitems");

	var newnumber = 0;
	for(f=0;f<itemcount;f++)
	{
		var thequantity = eval("document.yourbasket.quantity"+f+".value");
		if(thequantity!=0)
		{
			var revisedorderstring = eval("document.yourbasket.thebasketstr"+f+".value");
			setCookie("CASHELLbasketitem" + newnumber,revisedorderstring,"false");
			newnumber++;
		}
	}

	setCookie("CASHELLnumberofitems",newnumber,"false");
}

function recalc()
{
	subtotal = 0;
	grandtotal = 0;
	vattotal = 0;

	if(itemcount>0)
	{
		for(var f=0; f<itemcount; f++)
		{
			aquantity = eval("document.yourbasket.quantity" + f + ".value");
			if(isNaN(aquantity)||aquantity < 0||aquantity == '') aquantity = '0.0';
			aprice = eval("document.yourbasket.price" + f + ".value");
			atotal = parseInt(aquantity) * parseFloat(aprice);
			eval("document.yourbasket.lineprice"+f+".value = '" + format(atotal) + "'");
			subtotal = subtotal + atotal;

		}
		document.yourbasket.net.value = format(round_decimals(subtotal,2));
		thevat = round_decimals((subtotal/100)*17.5,2);
		document.yourbasket.vat.value = format(thevat);
		grandtotal = 0.00 + subtotal + thevat;
		document.yourbasket.grandtotal.value = format(round_decimals(grandtotal,2));
	}
}

function format(number)
{
	if(number=='CALL')return 'CALL';
	if(number<1 && number>0) string = " 0" + number;
	else string = " " + number;
	if (string.indexOf('.') == -1)
	{
		return string + '.00';
	}
	point = string.length - string.indexOf('.');
	if (point > 3)
	{
		return string.substring(0, string.length - point + 3);
	}
	else if (point == 2)
	{
		return string + '0';
	}
	return string;
}

function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return result3;
}











function getcheckout()
{
	outputbasket="";
	numberofproducts = parseInt(getCookie('CASHELLnumberofitems'));
	if( (isNaN(numberofproducts)) || (numberofproducts<1) ) numberofproducts=0;

if(numberofproducts>0)
{
	cartstrings = new Array(numberofproducts+1);
	for(var f=0;f<numberofproducts;f++)
	{
		cartstrings[f] = getCookie('CASHELLbasketitem'+f);
	}
	
	cartitems = new Array(numberofproducts);
	for(var f=0;f<numberofproducts;f++)
	{
		cartitems[f] = new Object();
	}
	
	for(var f=0;f<numberofproducts;f++)
	{
		for(var g=0;g<PLEN;g++)
		{
			cartitems[f][NAMES[g]] = cartstrings[f].substring(0,cartstrings[f].indexOf('|'));
			cartstrings[f] = cartstrings[f].substring((cartstrings[f].indexOf('|')) + 1);
		}
	}
	outputbasket += "<br><br><table width=400 cellpadding=4 cellspacing=1 border=0 bgcolor='#888888'>\n";
	outputbasket += "<tr bgcolor='#ffffff'><td><b>Item</b></td><td align=center><b>Price</b></td><td align=center><b>Subtotal</b></td></tr>\n";
	itemcount = 0;
	subtotal=0;
	grandtotal=0;

	logbox='';

	for(var f=0;f<numberofproducts;f++)
	{
		if(cartitems[f]['QUANTITY']!=0)
		{
			outputbasket += "<tr bgcolor='#ffffff' class='items'>";
			outputbasket += "<td>"+ cartitems[f]['NUMBER']	+ " for " + cartitems[f]['PERIOD']	+" months ";

			logbox += cartitems[f]['PRODUCTID']+"|"
+ cartitems[f]['PRODUCTTYPEID']+"|"
+ cartitems[f]['NUMBER']+"|"
+ cartitems[f]['PERIOD']+"|"
+ cartitems[f]['PRICE']+"|"
+ cartitems[f]['QUANTITY']+"#";

			outputbasket += "</td>";
    
			outputbasket += "<td align=center nowrap><nobr>&pound;" + format(cartitems[f]['PRICE']) + "</nobr></td>\n";

			lineprice = parseFloat(cartitems[f]['PRICE'])  * parseInt(cartitems[f]['QUANTITY']);

			outputbasket += "<td align=center nowrap><nobr>&pound;" + format(lineprice) + "</td>\n";		

			outputbasket += "</tr>\n";
			itemcount++;
			subtotal = parseFloat(subtotal) + parseFloat(lineprice);
		}
	}
/*
		thevat = format((subtotal/100)*17.5);
		grandtotal = format(parseFloat(subtotal) + parseFloat(thevat));
*/

		thenet = round_decimals(subtotal,2);
		thevat = round_decimals((subtotal/100)*17.5,2);

		grandtotal = 0.00 + subtotal + thevat;
		grandtotal = round_decimals(grandtotal,2);



	outputbasket += "<tr bgcolor='#ffffff'><td colspan=2 align=right><b>NET</b></td>\n";
	outputbasket += "<td align=center>&pound;"+format(thenet)+"</td>";
	outputbasket += "</tr>";

	outputbasket += "<tr bgcolor='#ffffff'><td colspan=2 align=right><b>VAT</b></td>\n";
	outputbasket += "<td align=center>&pound;"+format(thevat)+"</td>";
	outputbasket += "</tr>";

	outputbasket += "<tr bgcolor='#ffffff'><td colspan=2 align=right><b>Grand Total</b></td>\n";
	outputbasket += "<td align=center>&pound;"+format(grandtotal)+"</td>";
	outputbasket += "</tr>";

	outputbasket += "</table>";
        
		document.theorderdetails.orderbox.value = outputbasket;
		document.theorderdetails.amount.value = parseFloat(grandtotal);
		document.theorderdetails.logbox.value = logbox;

document.theorderdetails.submit();


}
}