
<!-- Start

<!-- This script sets up the Buy Now pop up java variables -->
<!-- Window onload command -->
<!-- Global hide of status bar text -->
<!-- Global Windows (Java Script) error blocker -->

var CartVersion = "Cart by WBS V1.41";


var user1 = "service";
var user2 = "support";
var user3 = "feedback";
var user4 = "maillist";
var user5 = "sponsorship";
var site = "";
var Root_Of_Site = "";
var Root_Pos_Start = 0;
var Root_Pos_End = 0;
Root_Of_Site = window.location.href;
if (Root_Of_Site.indexOf("http") >= 0)
	{
	Root_Pos_Start = Root_Of_Site.indexOf("www.") + 4;
	Root_Pos_End = Root_Of_Site.indexOf("/", Root_Pos_Start);
	site = Root_Of_Site.substring(Root_Pos_Start, Root_Pos_End);
	} else {
	site = "website-design-reviews.co.uk";
	}

var VATValue = 0.15; // set the VAT value
var ButtonText = "Add to Cart"; // Text for button to add item to cart
var ButtonTextSOLD = "     SOLD     "; // Text for SOLD button
var ButtonTextSOLDOUT = "   Sold out   "; // Text for Sold out button
var ButtonComingSoon = "Coming soon"; // Text for coming soon button 
var ButtonTextRESERVED = "Reserved "; // Text for RESERVED button
var	Item = "";
var	PandP = "";
var	Price = "";
var QTYMax = "";
var menu = "";

var ItemDesc = "Description";
var ItemPrice = "Price";
var PandP = "packing";

var ItemShoppingCart = new Array();
var ItemShoppingCartDescription = new Array();
var ItemShoppingCartPandP = new Array();
var ItemShoppingCartPrice = new Array();
var ItemShoppingCartQuantity = new Array();
var ItemShoppingCartQTYMax = new Array();
var ItemShoppingCartTotal = new Array();
var	ItemShoppingCartDescriptionStart = new Array();
var	ItemShoppingCartDescriptionEnd = new Array();
var	ItemShoppingCartPandPStart = new Array();
var	ItemShoppingCartPandPEnd = new Array();
var	ItemShoppingCartPriceStart = new Array();
var	ItemShoppingCartPriceEnd = new Array();
var	ItemShoppingCartQuantityStart = new Array();
var	ItemShoppingCartQuantityEnd = new Array();
var	ItemShoppingCartQTYMaxStart = new Array();
var	ItemShoppingCartQTYMaxEnd = new Array();
var	ItemShoppingCartCookieStart = new Array();
var	ItemShoppingCartCookieEnd = new Array();
var	item_Quantity =  new Array();
var StringStart = 0;
var	ItemNumber = 0;
var ShoppingCartNumberItems = 0;
var ShoppingCartNumberItemsCookieStart = 0;
var ShoppingCartNumberItemsCookieEnd = 0;
var Thisurl = document.URL;
var RelativeLink = 0;
var CartLink = "";
var	CustomerCheck = "Pass";

var Thisurl = document.URL;
var PaymentMethod = "";
var CartDuration = (1000*60*60);// 1 hour
var PandPMinimumUK = 2.20;
var PandPMinimumUKInsured = 5.00;
var PandPMinimumEuro = 2.20;
var PandPMinimumEuroInsured = 7.70;
var PandPMinimumROW = 2.60;
var PandPMinimumROWInsured = 8.10;
var PostalInsurance = "False";
var PostalInsuranceCost = 0.00;
var PostalRecordedCostUK = 1.00;
var PostalInsuranceCostUK = 3.60;//actually £4.60 but less the £1.00 Recorded costs
var PostalInsuranceCostAirmail = 5.50;// Euro and ROW

if (document.layers)
document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT)
document.onmouseover = mystatus
document.onmouseout = mystatus

//Block Javascript errors
function blockError(){return true;}
window.onerror = blockError;

//disable status bar
function mystatus()
{
window.status = 'Business Website Services';
return true
}

//Hide object function
function HideObject(ObjectID)
{
var ThisObject = document.getElementById(ObjectID);
ThisObject.style.visibility = "hidden";
}

//show object function
function ShowObject(ObjectID)
{
var ThisObject = document.getElementById(ObjectID);
ThisObject.style.visibility = "visible";
}

function RemoveItem()
{
i = ItemNumber;
ExtractCartCookie();
ExtractCartItemDetails();
ItemShoppingCartQuantity[i] = 0;
CreateCartCookie();
window.location.href = "ShoppingCart.htm";
}

function RemoveAllItems()
{
//Create Cookie expire date in the past
var oldDate = new Date();
oldDate.setTime(oldDate.getTime() - (1000*60*60*24*30));
document.cookie = "CartCookiePDC=" + ";expires=" + oldDate.toGMTString() + ";path=/";
document.cookie = "ShoppingCartNumberItems=" + escape(0) + ";path=/";
window.location.href = "ShoppingCart.htm";
}

function UpdateQuantity()
{
i = ItemNumber;
ExtractCartCookie();
ExtractCartItemDetails();
if (i == 0) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity0.value};
if (i == 1) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity1.value};
if (i == 2) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity2.value};
if (i == 3) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity3.value};
if (i == 4) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity4.value};
if (i == 5) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity5.value};
if (i == 6) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity6.value};
if (i == 7) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity7.value};
if (i == 8) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity8.value};
if (i == 9) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity9.value};
if (i == 10) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity10.value};
if (i == 11) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity11.value};
if (i == 12) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity12.value};
if (i == 13) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity13.value};
if (i == 14) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity14.value};
if (i == 15) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity15.value};
if (i == 16) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity16.value};
if (i == 17) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity17.value};
if (i == 18) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity18.value};
if (i == 19) {ItemShoppingCartQuantity[i] = document.ShoppingCart.item_Quantity19.value};
for (i=0;i<ItemShoppingCart.length; i++)
	{
	if (ItemShoppingCartQuantity[i] > 0)
		{
		if (parseInt(ItemShoppingCartQuantity[i]) > parseInt(ItemShoppingCartQTYMax[i]))
			{
			ItemShoppingCartQuantity[i] = ItemShoppingCartQTYMax[i];
			alert("The maximum quantity of this item has been placed in your shopping cart.  To purchase a larger quantity please contact " + user1 + "@" + site);	
			}
		} // end for loop
	}
CreateCartCookie();
window.location.href = "ShoppingCart.htm";
}

function CountryRegion (selected_value)
{
//Create Cookie expire date 1 year in the future
var newDate = new Date();
newDate.setTime(newDate.getTime() + (1000*60*60*24*365));
if (selected_value == 0)
	{
	document.cookie = "CustomerRegionPDC=Euro" + ";expires=" + newDate.toGMTString() + ";path=/";
	window.location.href = "ShoppingCart.htm";
	}
if (selected_value == 1)
	{
	document.cookie = "CustomerRegionPDC=ROW" + ";expires=" + newDate.toGMTString() + ";path=/";
	window.location.href = "ShoppingCart.htm";
	}
if (selected_value == 2)
	{
	document.cookie = "CustomerRegionPDC=ROW" + ";expires=" + newDate.toGMTString() + ";path=/";
	window.location.href = "ShoppingCart.htm";
	}
if (selected_value == 3)
	{
	document.cookie = "CustomerRegionPDC=UK" + ";expires=" + newDate.toGMTString() + ";path=/";
	window.location.href = "ShoppingCart.htm";
	}
}

function AddDeletePostalInsurance()
{
if (CustomerRegion == "UK")
	{
	document.cookie = "CustomerRegionPDC=UK-INS" + ";expires=" + newDate.toGMTString() + ";path=/";
	window.location.href = "ShoppingCart.htm";
	}
if (CustomerRegion == "Euro")
	{
	document.cookie = "CustomerRegionPDC=Euro-INS" + ";expires=" + newDate.toGMTString() + ";path=/";
	window.location.href = "ShoppingCart.htm";
	}
if (CustomerRegion == "ROW")
	{
	document.cookie = "CustomerRegionPDC=ROW-INS" + ";expires=" + newDate.toGMTString() + ";path=/";
	window.location.href = "ShoppingCart.htm";
	}
if (CustomerRegion == "UK-INS")
	{
	document.cookie = "CustomerRegionPDC=UK" + ";expires=" + newDate.toGMTString() + ";path=/";
	window.location.href = "ShoppingCart.htm";
	}
if (CustomerRegion == "Euro-INS")
	{
	document.cookie = "CustomerRegionPDC=Euro" + ";expires=" + newDate.toGMTString() + ";path=/";
	window.location.href = "ShoppingCart.htm";
	}
if (CustomerRegion == "ROW-INS")
	{
	document.cookie = "CustomerRegionPDC=ROW" + ";expires=" + newDate.toGMTString() + ";path=/";
	window.location.href = "ShoppingCart.htm";
	}
}

function ChangeRegion()
{
//Create Cookie expire date 1 year in the future
var newDate = new Date();
newDate.setTime(newDate.getTime() + (1000*60*60*24*365));
if (PostalInsurance == "False")
	{
	if (CustomerRegion == "UK")
		{
		document.cookie = "CustomerRegionPDC=Euro" + ";expires=" + newDate.toGMTString() + ";path=/";
		window.location.href = "ShoppingCart.htm";
		}
	if (CustomerRegion == "Euro")
		{
		document.cookie = "CustomerRegionPDC=ROW" + ";expires=" + newDate.toGMTString() + ";path=/";
		window.location.href = "ShoppingCart.htm";
		}
	if (CustomerRegion == "ROW")
		{
		document.cookie = "CustomerRegionPDC=UK" + ";expires=" + newDate.toGMTString() + ";path=/";
		window.location.href = "ShoppingCart.htm";
		}
	} else {
	if (CustomerRegion == "UK-INS")
		{
		document.cookie = "CustomerRegionPDC=Euro-INS" + ";expires=" + newDate.toGMTString() + ";path=/";
		window.location.href = "ShoppingCart.htm";
		}
	if (CustomerRegion == "Euro-INS")
		{
		document.cookie = "CustomerRegionPDC=ROW-INS" + ";expires=" + newDate.toGMTString() + ";path=/";
		window.location.href = "ShoppingCart.htm";
		}
	if (CustomerRegion == "ROW-INS")
		{
		document.cookie = "CustomerRegionPDC=UK-INS" + ";expires=" + newDate.toGMTString() + ";path=/";
		window.location.href = "ShoppingCart.htm";
		}
	}
}

//Calculate the region based P and P
function RegionPandP()
{
if (Cart_PandP > 0)//P+P for training check
	{
	if (CustomerRegion == "UK")//All parcels now with Recorded delivery
		{
		PostalInsurance = "False";
		PostageType = "(UK First Class Recorded)";
		Region_PandP = (Cart_PandP + (PostalRecordedCostUK * 1));// add cost for Recorded delivery		
		PostalInsuranceCost = PostalInsuranceCostUK;
		if (Region_PandP < PandPMinimumUK) {Region_PandP = PandPMinimumUK};
		}
	if (CustomerRegion == "Euro")
		{
		PostalInsurance = "False";
		PostageType = "(Europe via AirMail)";
		Region_PandP = parseFloat((Cart_PandP * 1.77778));
		PostalInsuranceCost = PostalInsuranceCostAirmail;
		if (Region_PandP < PandPMinimumEuro) {Region_PandP = PandPMinimumEuro};
		}
	if (CustomerRegion == "ROW")
		{
		PostalInsurance = "False";
		PostageType = "(Rest of World via AirMail)";
		Region_PandP = parseFloat((Cart_PandP * 2.22));
		PostalInsuranceCost = PostalInsuranceCostAirmail;
		if (Region_PandP < PandPMinimumROW) {Region_PandP = PandPMinimumROW};
		}
	if (CustomerRegion == "UK-INS")// with insurance
		{
		PostalInsurance = "True";
		PostageType = "(UK First Class Insured)";
		Region_PandP = (Cart_PandP + (PostalInsuranceCostUK * 1));// add cost for signed for delivery and insurance		
		PostalInsuranceCost = PostalInsuranceCostUK;
		if (Region_PandP < PandPMinimumUKInsured) {Region_PandP = PandPMinimumUKInsured};
		}
	if (CustomerRegion == "Euro-INS")// with insurance
		{
		PostalInsurance = "True";
		PostageType = "(Europe Insured)";
		Region_PandP = parseFloat((Cart_PandP * 1.77778) + (PostalInsuranceCostAirmail * 1));// add cost for signed for delivery and insurance
		PostalInsuranceCost = PostalInsuranceCostAirmail;
		if (Region_PandP < PandPMinimumEuroInsured) {Region_PandP = PandPMinimumEuroInsured};
		}
	if (CustomerRegion == "ROW-INS")// with insurance
		{
		PostalInsurance = "True";
		PostageType = "(Rest of World Insured)";
		Region_PandP = parseFloat((Cart_PandP * 2.22) + (PostalInsuranceCostAirmail * 1));// add cost for signed for delivery and insurance
		PostalInsuranceCost = PostalInsuranceCostAirmail;
		if (Region_PandP < PandPMinimumROWInsured) {Region_PandP = PandPMinimumROWInsured};
		}
	}
	else
	{
	Region_PandP = Cart_PandP;
	PostageType = "";
	}
Region_PandP = parseFloat(Region_PandP).toFixed(2);
}

function CheckCustomerDetails()//Check and write customer details
{
var	ShoppingCartNumberItemsCookieStart = 0;
var	ShoppingCartNumberItemsCookieEnd = 0;
var CustomerDetailsCookie = "";
var CustomerDetailsCookiePDC = "";
CustomerCheck = "Pass";

//Create Cookie expire date 1 year in the future
var newDate = new Date();
newDate.setTime(newDate.getTime() + (1000*60*60*24*365));
ChangeCaseCustomerDetails()
for (i=0;i<8; i++)
	{
	CustomerDetailsCookie = CustomerDetailsCookie + CustomerDetails[i] + "---"
	}
document.cookie = "CustomerDetailsCookiePDC=" + escape(CustomerDetailsCookie) + "***" + ";expires=" + newDate.toGMTString() + ";path=/";
if (CustomerDetails[0] == "")
	{
	alert("Please enter your name");
	CustomerCheck = "Fail"
	}
if (CustomerDetails[1] == "")
	{
	if (CustomerCheck == "Pass")
		{
		alert("Please enter your house and street details");
		CustomerCheck = "Fail"
		}
	}
if (CustomerDetails[3] == "")
	{
	if (CustomerCheck == "Pass")
		{
		alert("Please enter your Town / City details");
		CustomerCheck = "Fail"
		}
	}
if (CustomerDetails[5] == "")
	{
	if (CustomerCheck == "Pass")
		{
		alert("Please enter your Post / Zip Code");
		CustomerCheck = "Fail"
		}
	}
if (CustomerDetails[6] == "")
	{
	if (CustomerCheck == "Pass")
		{
		alert("Please enter your Country");
		CustomerCheck = "Fail"
		}
	}
if (CustomerCheck == "Pass")
	{
	emailCheck (CustomerDetails[7]);
	}
ExtractShoppingCartNumberItems();
if (ShoppingCartNumberItems == 0)
	{
	if (CustomerCheck == "Pass")
		{
		alert("The Shopping Cart is empty!  Unable to proceed.");
		CustomerCheck = "Fail"
		}
	}
if (CustomerCheck == "Pass")
	{
	window.location.href = "ShoppingCartPayOptionWindow.htm";
	} else {
	window.location.href = "ShoppingCartCustomerDetails.htm";
	}
}

function CheckOrderDetails()//Check cart has content when place order button is pressed
{
var	CustomerCheck = "Pass";
var CartCheck = "Pass";
var	ShoppingCartNumberItemsCookieStart = 0;
var	ShoppingCartNumberItemsCookieEnd = 0;

ExtractShoppingCartNumberItems();
if (ShoppingCartNumberItems == 0)
	{
	alert("The Shopping Cart is empty!  Unable to proceed.");
	}
}


function ClearCustomerDetails()
{
// This function clears the customer details by deleting the cookie
//Create Cookie expire date in the past
var oldDate = new Date();
oldDate.setTime(oldDate.getTime() - (1000*60*60*24*30));
document.cookie = "CustomerDetailsCookiePDC=" + ";expires=" + oldDate.toGMTString() + ";path=/";
window.location.href = "ShoppingCartCustomerDetails.htm";
}

function SaveCustomerDetails()
{
// This function saves the customer details as a Cookie
//Create Cookie expire date 1 year in the future
var CustomerDetailsCookie = "";
var CustomerDetailsCookiePDC = "";


var newDate = new Date();
newDate.setTime(newDate.getTime() + (1000*60*60*24*365));
ChangeCaseCustomerDetails()
for (i=0;i<8; i++)
	{
	CustomerDetailsCookie = CustomerDetailsCookie + CustomerDetails[i] + "---"
	}
document.cookie = "CustomerDetailsCookiePDC=" + escape(CustomerDetailsCookie) + "***" + ";expires=" + newDate.toGMTString() + ";path=/";
alert("Your details have been saved.");
}

function CreateEmail()
{
var LogFileCustomerDetails = "";
var	CustomerName = "";
var	CustomerDetailsCookieStart = 0;
var	CustomerDetailsCookieEnd = 0;
var CustomerDetailsCookie = "";
var CustomerDetailsCookiePDC = "";


// extract the Customer Name from the Cookie
CustomerDetailsCookieStart = document.cookie.indexOf("CustomerDetailsCookiePDC=");
CustomerDetailsCookieEnd = document.cookie.indexOf("***", CustomerDetailsCookieStart + 0);
if (CustomerDetailsCookieEnd == -1)
	{
	CustomerDetailsCookieEnd = document.cookie.length;
	}
CustomerDetailsCookie = unescape(document.cookie.substring(CustomerDetailsCookieStart + 25, CustomerDetailsCookieEnd));
if (CustomerDetailsCookieStart == -1)
	{
	CustomerDetailsCookie = "---------------------";
	}
CustomerDetails = CustomerDetailsCookie.split("---");
for (i=0;i<8; i++)
	{
	if (CustomerDetails[i] == "undefined")
		{
		CustomerDetails[i] = "";
		}
	LogFileCustomerDetails = LogFileCustomerDetails + CustomerDetails[i] + ", \r\n";
	}
for (i=0;i<7; i++)
	{
	if (CustomerDetails[i] != "")
		{
		InvoiceCustomerNameAddress = InvoiceCustomerNameAddress + CustomerDetails[i] + "<br/>";
		}
	}
CustomerName = CustomerDetails[0];
OrderClientEmail = CustomerDetails[7];
LogFileContent = CartLogFile + "\r\nSelected P and P Region is: " + CustomerRegion + ".  \r\n\r\nCustomer details: \r\n" + LogFileCustomerDetails;
}

function ExtractCustomerRegion()
{
// extract the Customer Region from the Cookie
var	CustomerRegionCookieStart = 0;
var	CustomerRegionCookieEnd = 0;
CustomerRegionCookieStart = document.cookie.indexOf("CustomerRegionPDC=");
CustomerRegionCookieEnd = document.cookie.indexOf(";", CustomerRegionCookieStart + 0);
if (CustomerRegionCookieEnd == -1)
	{
	CustomerRegionCookieEnd = document.cookie.length;
	}
CustomerRegion = document.cookie.substring(CustomerRegionCookieStart + 18, CustomerRegionCookieEnd);
if (CustomerRegionCookieStart == -1)
	{
	CustomerRegion = "UK";
	}
}

function ExtractShoppingCartNumberItems()
{
// extract the value of the number of items in the cart from the Cookie
var ShoppingCartNumberItemsCookieStart = 0;
var ShoppingCartNumberItemsCookieEnd = 0;
ShoppingCartNumberItemsCookieStart = document.cookie.indexOf("ShoppingCartNumberItems=");
ShoppingCartNumberItemsCookieEnd = document.cookie.indexOf(";", ShoppingCartNumberItemsCookieStart + 0);
if (ShoppingCartNumberItemsCookieEnd == -1)
	{
	ShoppingCartNumberItemsCookieEnd = document.cookie.length;
	}
ShoppingCartNumberItems = document.cookie.substring(ShoppingCartNumberItemsCookieStart + 24, ShoppingCartNumberItemsCookieEnd);
if (ShoppingCartNumberItemsCookieStart == -1)
	{
	ShoppingCartNumberItems = "0";
	}
ShoppingCartNumberItems = (parseInt(ShoppingCartNumberItems));
}

function ExtractCartPandP()
{
// extract the Cart P & P from the Cookie
var	CartPandPCookieStart = 0;
var	CartPandPCookieEnd = 0;
CartPandPCookieStart = document.cookie.indexOf("Cart_PandPPDC=");
CartPandPCookieEnd = document.cookie.indexOf(";", CartPandPCookieStart + 0);
if (CartPandPCookieEnd == -1)
	{
	CartPandPCookieEnd = document.cookie.length;
	}
Cart_PandP = document.cookie.substring(CartPandPCookieStart + 14, CartPandPCookieEnd);
if (CartPandPCookieStart == -1)
	{
	Cart_PandP = "0.00";
	}
Cart_PandP = parseFloat(Cart_PandP);
}

function ExtractBackToItemURL()
{
// extract page to return to
var BackToItemURLCookieStart = 0;
var BackToItemURLCookieEnd = 0;
BackToItemURLCookieStart = document.cookie.indexOf("BackToItemURLCookiePDC=");
BackToItemURLCookieEnd = document.cookie.indexOf("---", BackToItemURLCookieStart + 30);
if (BackToItemURLCookieEnd == -1)
	{
	BackToItemURLCookieEnd = document.cookie.length;
	}
BackToItemURL = unescape(document.cookie.substring(BackToItemURLCookieStart + 23, BackToItemURLCookieEnd));
if (BackToItemURLCookieStart == -1)
	{
	BackToItemURL = "http://www." + site + "/index.html";
	}
if (BackToItemURL == "")
	{
	BackToItemURL = "http://www." + site + "/index.html";
	}
}

function GoToLastItem()
{
if (Thisurl.search("http:") >= 0) // check for live website
	{
	ExtractBackToItemURL();
	window.location.href = BackToItemURL;
	}
else
	{
	history.go(-1);
	}
}

function emailCheck (emailStr)
{
var checkTLD=1;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|cat|jobs|mobi|travel)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null)
	{
	alert("e-mail address seems incorrect (check @ and .'s)");
	CustomerCheck = "Fail";
	}
var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i<user.length; i++)
	{
	if (user.charCodeAt(i)>127)
		{
		alert("e-mail address username contains invalid characters.");
		CustomerCheck = "Fail";
   		}
	}
for (i=0; i<domain.length; i++)
	{
	if (domain.charCodeAt(i)>127)
		{
		alert("e-mail address domain name contains invalid characters.");
		CustomerCheck = "Fail";
   		}
	}
if (user.match(userPat)==null)
	{
	alert("e-mail address username doesn't seem to be valid.");
	CustomerCheck = "Fail";
	}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null)
	{
	for (var i=1;i<=4;i++)
		{
		if (IPArray[i]>255)
			{
			alert("e-mail address destination IP address is invalid!");
			CustomerCheck = "Fail";
   			}
		}
	}
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++)
	{
	if (domArr[i].search(atomPat)==-1)
		{
		alert("e-mail address domain name does not seem to be valid.");
		CustomerCheck = "Fail";
   		}
	}
if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)
	{
	alert("e-mail address must end in a well-known domain or two letter " + "country.");
	CustomerCheck = "Fail";
	}
if (len<2)
	{
	alert("e-mail address is missing a hostname!");
	CustomerCheck = "Fail";
	}
}

function ExtractCartCookie()
// extract the cart Cookie
{
CartCookieStart = document.cookie.indexOf("CartCookiePDC=");
CartCookieEnd = document.cookie.indexOf("***", CartCookieStart + 0);
if (CartCookieEnd == -1)
	{
	CartCookieEnd = document.cookie.length;
	}
CartCookie = unescape(document.cookie.substring(CartCookieStart + 14, CartCookieEnd));
if (CartCookieStart == -1)
	{
	CartCookie = "";
	}
ItemShoppingCart = CartCookie.split("---");
}

function ExtractCartItemDetails()
// extract the data for the items in the cart from the Cookie
{
	ItemShoppingCartDescriptionStart[i] = 0;
	ItemShoppingCartDescriptionEnd[i] = ItemShoppingCart[i].indexOf("_", 1);
	ItemShoppingCartDescription[i] = ItemShoppingCart[i].substring(ItemShoppingCartDescriptionStart[i], ItemShoppingCartDescriptionEnd[i]);	

	ItemShoppingCartPandPStart[i] = ItemShoppingCartDescriptionEnd[i] + 1;
	ItemShoppingCartPandPEnd[i] = ItemShoppingCart[i].indexOf("_", ItemShoppingCartPandPStart[i]);
	ItemShoppingCartPandP[i] = ItemShoppingCart[i].substring(ItemShoppingCartPandPStart[i], ItemShoppingCartPandPEnd[i]);

	ItemShoppingCartPriceStart[i] = ItemShoppingCartPandPEnd[i] + 1;
	ItemShoppingCartPriceEnd[i] = ItemShoppingCart[i].indexOf("_", ItemShoppingCartPriceStart[i]);
	ItemShoppingCartPrice[i] = ItemShoppingCart[i].substring(ItemShoppingCartPriceStart[i], ItemShoppingCartPriceEnd[i]);
		
	ItemShoppingCartQuantityStart[i] = ItemShoppingCartPriceEnd[i] + 1;
	ItemShoppingCartQuantityEnd[i] = ItemShoppingCart[i].indexOf("_", ItemShoppingCartQuantityStart[i]);
	ItemShoppingCartQuantity[i] = ItemShoppingCart[i].substring(ItemShoppingCartQuantityStart[i], ItemShoppingCartQuantityEnd[i]);

	ItemShoppingCartQTYMaxStart[i] = ItemShoppingCartQuantityEnd[i] + 1;
	ItemShoppingCartQTYMaxEnd[i] = ItemShoppingCart[i].length;
	ItemShoppingCartQTYMax[i] = ItemShoppingCart[i].substring(ItemShoppingCartQTYMaxStart[i], ItemShoppingCartQTYMaxEnd[i]);
}

function CreateCartCookie()
//create and write Cookie
{
CartCookie = "";
for (i=0;i<ItemShoppingCartDescription.length; i++)
	{
	if (ItemShoppingCartDescription[i] != "")
		{
		if (ItemShoppingCartQuantity[i] > 0)
			{
			CartCookie = CartCookie + ItemShoppingCartDescription[i] + "_" + ItemShoppingCartPandP[i] + "_" + ItemShoppingCartPrice[i] + "_" + ItemShoppingCartQuantity[i] + "_" + ItemShoppingCartQTYMax[i] + "---";
			}
		}
	}// end of for loop
CartCookie = CartCookie + "***";

var newDate = new Date();
newDate.setTime(newDate.getTime() + CartDuration);
document.cookie = "CartCookiePDC=" + escape(CartCookie) + ";expires=" + newDate.toGMTString() + ";path=/"; // write cart cookie
}

function ChangeCaseCustomerDetails()
{
var index = 0;
var tmpStr = "";
var tmpChar = "";
var preString = "";
var postString = "";
var strlen = 0;

CustomerDetails[0] = document.ShoppingCartCustomerDetails.CustomerName.value;
CustomerDetails[1] = document.ShoppingCartCustomerDetails.CustomerAddress.value;
CustomerDetails[2] = document.ShoppingCartCustomerDetails.CustomerDistrict.value;
CustomerDetails[3] = document.ShoppingCartCustomerDetails.CustomerTownCity.value;
CustomerDetails[4] = document.ShoppingCartCustomerDetails.CustomerCountyState.value;
CustomerDetails[5] = document.ShoppingCartCustomerDetails.CustomerPostCode.value;
CustomerDetails[6] = document.ShoppingCartCustomerDetails.CustomerCountry.value;
CustomerDetails[7] = document.ShoppingCartCustomerDetails.Customeremail.value;
for (i=0;i<5; i++)
	{
	tmpStr = CustomerDetails[i].toLowerCase();
	strLen = tmpStr.length;
	if (strLen > 0)
		{
		for (index = 0; index < strLen; index++)
			{
			if (index == 0)
				{
				tmpChar = tmpStr.substring(0,1).toUpperCase();
				postString = tmpStr.substring(1,strLen);
				tmpStr = tmpChar + postString;
				} else {
				tmpChar = tmpStr.substring(index, index+1);
				if (tmpChar == " " && index < (strLen-1))
					{
					tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
					preString = tmpStr.substring(0, index+1);
					postString = tmpStr.substring(index+2,strLen);
					tmpStr = preString + tmpChar + postString;
					}
				}
			}
		}
	CustomerDetails[i] = tmpStr;
	}
CustomerDetails[5] = CustomerDetails[5].toUpperCase();
document.ShoppingCartCustomerDetails.CustomerName.value = CustomerDetails[0];
document.ShoppingCartCustomerDetails.CustomerAddress.value = CustomerDetails[1];
document.ShoppingCartCustomerDetails.CustomerDistrict.value = CustomerDetails[2];
document.ShoppingCartCustomerDetails.CustomerTownCity.value = CustomerDetails[3];
document.ShoppingCartCustomerDetails.CustomerCountyState.value = CustomerDetails[4];
document.ShoppingCartCustomerDetails.CustomerPostCode.value = CustomerDetails[5];
}

function UpdateOrderPayPalScreen()
{
ExtractCustomerRegion();
ExtractCart_Parts_Total();
ExtractCartPandP();
RegionPandP();
Region_PandP = parseFloat(Region_PandP).toFixed(2);
Cart_Parts_Total = parseFloat(Cart_Parts_Total).toFixed(2);
document.BuyNowPayPal.business.value = user1 + '@' + site;
document.BuyNowPayPal.amount.value = Cart_Parts_Total;
document.BuyNowPayPal.shipping.value = Region_PandP;
}

function ExtractCart_Parts_Total()
{
var Cart_Parts_Total = 0;
var ItemShoppingCartDescription = new Array();
var ItemShoppingCartPandP = new Array();
var ItemShoppingCartPrice = new Array();
var ItemShoppingCartQuantity = new Array();
var ItemShoppingCartQTYMax = new Array();
var ItemShoppingCartTotal = new Array();
var	ItemShoppingCartDescriptionStart = new Array();
var	ItemShoppingCartDescriptionEnd = new Array();
var	ItemShoppingCartPandPStart = new Array();
var	ItemShoppingCartPandPEnd = new Array();
var	ItemShoppingCartPriceStart = new Array();
var	ItemShoppingCartPriceEnd = new Array();
var	ItemShoppingCartQuantityStart = new Array();
var	ItemShoppingCartQuantityEnd = new Array();
var	ItemShoppingCartQTYMaxStart = new Array();
var	ItemShoppingCartQTYMaxEnd = new Array();
var	ItemShoppingCartCookieStart = new Array();
var	ItemShoppingCartCookieEnd = new Array();

ExtractCartCookie()

for (i=0;i<ItemShoppingCart.length; i++)
	{
	ExtractCartItemDetails()
	ItemShoppingCartPrice[i] = parseFloat(ItemShoppingCartPrice[i]).toFixed(2);
	if (ItemShoppingCartQuantity[i] == "")
		{
		ItemShoppingCartQuantity[i] = "0";
		}
	ItemShoppingCartTotal[i] = "" + (parseFloat(ItemShoppingCartPrice[i]) * parseFloat(ItemShoppingCartQuantity[i])).toFixed(2);
	if (ItemShoppingCartTotal[i] == "NaN")
		{
		ItemShoppingCartTotal[i] = "0.00";
		}
	if (ItemShoppingCartQuantity[i] > 0)
		{
		CartLogFile = CartLogFile + ItemShoppingCartQuantity[i] + " off " + ItemShoppingCartDescription[i] + " at £" + ItemShoppingCartPrice[i] + " each, giving £" + ItemShoppingCartTotal[i] + " in total.  ";
		Cart_Parts_Total = "" + (parseFloat(Cart_Parts_Total) + parseFloat(ItemShoppingCartTotal[i])).toFixed(2);
		}
	}
}

function GoToCart()
{
if (Thisurl.search("http") >= 0)
	{
	window.location.href = "/BuyNow/ShoppingCart.htm";//absolute link (live website only)
	}
else
	{
	for (i=0;i<Thisurl.length; i++) // loop through this URL string
		{
		if (Thisurl.charAt(i) == "\\")
			{
			RelativeLink = RelativeLink + 1;
			}
		}
	RelativeLink = RelativeLink - 2;
	for (i=0;i<RelativeLink; i++) // loop to create correct link 
		{
		CartLink = CartLink + "../"
		}
	window.location.href = CartLink + "BuyNow/ShoppingCart.htm";//relative link (testing only)
	}
}

//Add to Cart
function AddToCart()
{
var CookieTestWrite = "false";
var	CookieTestCookieStart = 0;
var	CookieTestCookieEnd = 0;
var	ItemExists = "false";
var itemAdded = 0;
var CartCookie = "";
var	CartCookieStart = 0;
var	CartCookieEnd = 0;

Item = Item.replace("_" , " ");//remove any underscore characters from item Description as this is a control character in the cookie
Item = Item.replace("---" , " ");//remove any 3 dash characters from item Description as this is a control character in the cookie
Item = Item.replace("***" , " ");//remove any 3 star characters from item Description as this is a control character in the cookie

document.cookie = "CookieTest=" + escape("true") +";path=/";
CookieTestCookieStart = document.cookie.indexOf("CookieTest=");
CookieTestCookieEnd = document.cookie.indexOf(";", CookieTestCookieStart + 0);
if (CookieTestCookieEnd == -1) // Carry out a test for Cookies enabled
	{
	CookieTestCookieEnd = document.cookie.length;
	}
CookieTestWrite = document.cookie.substring(CookieTestCookieStart + 11, CookieTestCookieEnd);
if (CookieTestCookieStart == -1)
	{
	CookieTestWrite =  "false";
	}
if (CookieTestWrite != "true")
	{
	alert("The Shopping Cart required the use of Cookies to function.  Please enable Cookies in your Browser (refer to help in Shopping Cart) or contact " + user1 + "@" + site + " to purchase this item.")
	} else {
	var oldDate = new Date();
	oldDate.setTime(oldDate.getTime() - (1000*60*60*24*30));
	document.cookie = "CookieTest=" + ";expires=" + oldDate.toGMTString() + ";path=/";
	document.cookie = 'BackToItemURLCookiePDC=' + escape(Thisurl) + "---" +";path=/";
	ExtractShoppingCartNumberItems()
	
//Extract CartCookie
	CartCookieStart = document.cookie.indexOf("CartCookiePDC=");
	CartCookieEnd = document.cookie.indexOf("***", CartCookieStart + 0);
	if (CartCookieEnd == -1)
		{
		CartCookieEnd = document.cookie.length;
		}
	CartCookie = unescape(document.cookie.substring(CartCookieStart + 14, CartCookieEnd));
	if (CartCookieStart == -1)
		{
		CartCookie = "";
		}
	ItemShoppingCart = CartCookie.split("---");
	CartCookie = "";
	if (QTYMax == "") {QTYMax = QTYMaxDefault};
	for (i=0;i<ItemShoppingCart.length; i++)
		{
// extract the data for the items in the cart from the Cookie
		ItemShoppingCartDescriptionStart[i] = 0;
		ItemShoppingCartDescriptionEnd[i] = ItemShoppingCart[i].indexOf("_", 1);
		ItemShoppingCartDescription[i] = ItemShoppingCart[i].substring(ItemShoppingCartDescriptionStart[i], ItemShoppingCartDescriptionEnd[i]);	
		
		ItemShoppingCartPandPStart[i] = ItemShoppingCartDescriptionEnd[i] + 1;
		ItemShoppingCartPandPEnd[i] = ItemShoppingCart[i].indexOf("_", ItemShoppingCartPandPStart[i]);
		ItemShoppingCartPandP[i] = ItemShoppingCart[i].substring(ItemShoppingCartPandPStart[i], ItemShoppingCartPandPEnd[i]);

		ItemShoppingCartPriceStart[i] = ItemShoppingCartPandPEnd[i] + 1;
		ItemShoppingCartPriceEnd[i] = ItemShoppingCart[i].indexOf("_", ItemShoppingCartPriceStart[i]);
		ItemShoppingCartPrice[i] = ItemShoppingCart[i].substring(ItemShoppingCartPriceStart[i], ItemShoppingCartPriceEnd[i]);
		
		ItemShoppingCartQuantityStart[i] = ItemShoppingCartPriceEnd[i] + 1;
		ItemShoppingCartQuantityEnd[i] = ItemShoppingCart[i].indexOf("_", ItemShoppingCartQuantityStart[i]);
		ItemShoppingCartQuantity[i] = ItemShoppingCart[i].substring(ItemShoppingCartQuantityStart[i], ItemShoppingCartQuantityEnd[i]);

		ItemShoppingCartQTYMaxStart[i] = ItemShoppingCartQuantityEnd[i] + 1;
		ItemShoppingCartQTYMaxEnd[i] = ItemShoppingCart[i].length;
		ItemShoppingCartQTYMax[i] = ItemShoppingCart[i].substring(ItemShoppingCartQTYMaxStart[i], ItemShoppingCartQTYMaxEnd[i]);

		if (Item == ItemShoppingCartDescription[i]) // update quantity of item already in cart
			{
			ItemExists = "true";
			if (parseInt(ItemShoppingCartQuantity[i]) < parseInt(ItemShoppingCartQTYMax[i]))
				{
				ItemShoppingCartQuantity[i] = (parseInt(ItemShoppingCartQuantity[i]) + 1);
				} else {
				alert("The maximum quantity of this item has been placed in your shopping cart.  Unable to add another of this item to the shopping cart.  To purchase a larger quantity of this item please contact " + user1 + "@" + site);
				}
			if (QTYMax == 0)
				{
				ItemShoppingCartQuantity[i] = 0;
				alert("This item is currently out of stock.  To purchase this item please contact " + user1 + "@" + site);
				}
			}	
		
		if (ItemShoppingCartDescription[i] !="") // update cart with the new quantity
			{
			CartCookie = CartCookie + ItemShoppingCartDescription[i] + "_" + ItemShoppingCartPandP[i] + "_" + ItemShoppingCartPrice[i] + "_" + ItemShoppingCartQuantity[i] + "_" + ItemShoppingCartQTYMax[i] + "---";
			}
		}// end of for loop
		
//create and write Cookie
		for (i=0;i<ItemShoppingCart.length; i++) // add new item to cart
			{
			if (ItemExists != "true")
				{
				if (ShoppingCartNumberItems < 20)
					{
					if (itemAdded == 0)	
						{
						itemAdded = 1;
						if (QTYMax == 0)
							{
							alert("This item is currently out of stock.  To purchase this item please contact " + user1 + "@" + site);
							} else {
							CartCookie = CartCookie + Item + "_" + PandP + "_" + Price + "_1_" + QTYMax + "---";
							}
						}
					}
				}
			}// end of for loop
		}	
	CartCookie = CartCookie + "***";
	var newDate = new Date();
	newDate.setTime(newDate.getTime() + CartDuration);
	document.cookie = "CartCookiePDC=" + escape(CartCookie) + ";expires=" + newDate.toGMTString() + ";path=/"; // write cart cookie
	if (ShoppingCartNumberItems > 19)
		{
		alert("The Shopping Cart is full.  Please proceed to the checkout.");
		}
	GoToCart()
}

// End -->

// -->