//
function AddNewItem(ProductId,ProductDescription)
{
var TheForm = window.opener.document.StarterKitAdmin;
var RequiredList="",Header="",TrClass="",ProdDescription,Id,QtySelect,NewItemRow="",AlreadyListed=false;
var RowCount = 0;

for(i = 0; i <=100 ; i++)
	{
	if(TheForm.elements["required_"+i])
		{
		if(parseInt(RowCount/2) == RowCount/2)
			{
			TrClass = "mainpagetableline";
			}
		else
			{
			TrClass = "mainpagetableline2";
			}
		ProdDescription = TheForm.elements["ProdDescription_"+i].value;
		Id = TheForm.elements["Id_"+i].value;
		QtySelect = parseInt(TheForm.elements["Qty_"+i].options[TheForm.elements["Qty_"+i].selectedIndex].value);
		var QtyOptions = "";
		for(n = 1; n <= 5; n++)
			{
			if(n == QtySelect)
				{
				QtyOptions = QtyOptions + "<option value='"+n+"' selected>"+n+"</option>";
				}
			else
				{
				QtyOptions = QtyOptions + "<option value='"+n+"'>"+n+"</option>";
				}
			}
			QtySelect = "<select name='Qty_"+RowCount+"'>"+QtyOptions+"</select>";
			RequiredList = RequiredList + "<tr class='"+TrClass+"'><input type='hidden' name='Id_"+RowCount+"' value='"+Id+"'>";
			RequiredList = RequiredList + "<td class='medboldtable' valign='middle' align='left'>"+ProdDescription+"<input type='hidden' name='ProdDescription_"+RowCount+"' value='"+ProdDescription+"'></td>";
			RequiredList = RequiredList + "<td class='' valign='middle' align='center'>"+QtySelect+"</td>";
			RequiredList = RequiredList + "<td class='' valign='middle' align='center'><input type='checkbox' onclick='RemoveItem(this);' name='required_"+RowCount+"' checked></td>";
			RequiredList = RequiredList + "</tr>";
			RowCount ++;
			if(Id == ProductId)
				{
				AlreadyListed = true;		
				}
		}
	else
		{
		break;
		}
	}

if(AlreadyListed == false) //check to see if item to be added is already listed
	{
	if(parseInt(RowCount/2) == RowCount/2)
		{
		TrClass = "mainpagetableline";
		}
	else
		{
		TrClass = "mainpagetableline2";
		}
	var QtyOptions = "<option value='1' selected>1</option>";
	for(q = 2; q <= 5; q++)
		{
		QtyOptions = QtyOptions + "<option value='"+q+"'>"+q+"</option>";
		}
	QtySelect = "<select name='Qty_"+RowCount+"'>"+QtyOptions+"</select>";
	NewItemRow = NewItemRow + "<tr class='"+TrClass+"'><input type='hidden' name='Id_"+RowCount+"' value='"+ProductId+"'>";
	NewItemRow = NewItemRow + "<td class='medboldtable' valign='middle' align='left'>"+ProductDescription+"<input type='hidden' name='ProdDescription_"+RowCount+"' value='"+ProductDescription+"'></td>";
	NewItemRow = NewItemRow + "<td class='' valign='middle' align='center'>"+QtySelect+"</td>";
	NewItemRow = NewItemRow + "<td class='' valign='middle' align='center'><input type='checkbox' onclick='RemoveItem(this);' name='required_"+RowCount+"' checked></td>";
	NewItemRow = NewItemRow + "</tr>";
}

Header = Header + "<table border='0' cellpadding='3' cellspacing='0' width='100%' class=''>";
Header = Header + "<tr>";
Header = Header + "<td class='medboldtable' valign='middle' align='left' width=''>Item</td>";
Header = Header + "<td class='medboldtable' valign='middle' align='center' width='40'>Qty</td>";
Header = Header + "<td class='' valign='middle' align='center' width='20'>&nbsp;</td>";
Header = Header + "</tr>";
Header = Header + "<tr>";
Header = Header + "<td class='' valign='top' align='left' width='' height='5' colspan='3'><hr class='black'></td>";
Header = Header + "</tr>";

RequiredList = Header + RequiredList + NewItemRow + "</table>";
window.opener.ItemsList.innerHTML = RequiredList;
}

//
function AddItem()
{
var MyUrl = "complete_setup_product_list.asp";
var WinProps = "width=650,height=250,top=0,left=0,scrollbars=no,status=yes,resizable=yes";
var ProductChooserWindow = window.open(MyUrl,'Product_Chooser',WinProps);
}

//
function EditViv(FormElement)
{
var TheForm = FormElement.form;
var VivList="",Header="";
var StyleOptions="",LOptions="",WOptions="",HOptions="";
if(FormElement.checked == true)
	{
	var VivRestore = confirm("Restore vivarium options?");
	if(VivRestore == true)
		{
		FormElement.checked = true;
		LengthArray = new Array(12,15,18,21,24,27,30,36,42,48,54,60,66,72);
		WidthArray = new Array(12,18,24);
		HighArray = new Array(12,15,18,21,24,27,30,36,42,48,54,60,66,72);
		StyleName = new Array("Standard","Glass Lower","Mesh/Upper Flap","Chameleon");
		for(L = 0; L <= LengthArray.length-1; L++)
			{
			LOptions = LOptions +"<option value='"+LengthArray[L]+"'>"+LengthArray[L]+"</option>";
			}
		for(W = 0; W <= WidthArray.length-1; W++)
			{
			WOptions = WOptions +"<option value='"+WidthArray[W]+"'>"+WidthArray[W]+"</option>";
			}
		for(H = 0; H <= HighArray.length-1; H++)
			{
			HOptions = HOptions +"<option value='"+HighArray[H]+"'>"+HighArray[H]+"</option>";
			}
		for(S = 0; S <= StyleName.length-1; S++)
			{
			StyleOptions = StyleOptions +"<option value='"+StyleName[S]+"'>"+StyleName[S]+"</option>";
			}
		Header = Header + "<table border='0' cellpadding='3' cellspacing='0' width='100%' class=''>"
		Header = Header + "<tr>"
		Header = Header + "<td class='medboldtable' valign='middle' align='left' width=''>Vivarium&nbsp;(&nbsp;<select name='VivStyle' class='selectboxmed'>"+StyleOptions+"</select>&nbsp;)&nbsp;"
		Header = Header + "<select name='VivLength' class='selectboxtiny'>"+LOptions+"</select>&nbsp;L x&nbsp;"
		Header = Header + "<select name='VivWidth' class='selectboxtiny'>"+WOptions+"</select>&nbsp;W x&nbsp;"
		Header = Header + "<select name='VivHeight' class='selectboxtiny'>"+HOptions+"</select>&nbsp;H</td>"
		Header = Header + "<td class='medboldtable' valign='middle' align='right' width='20'><input type='checkbox' onclick='EditViv(this);' name='edit_viv' checked></td>"
		Header = Header + "</tr>"
		Header = Header + "</table>"
		VivariumList.innerHTML = Header;
		}
	else
		{
		FormElement.checked = false;
		}
	}
else
	{
	var VivDelete = confirm("Delete this vivarium?");
	if(VivDelete == true)
		{
		FormElement.checked = false;
		Header = Header + "<table border='0' cellpadding='3' cellspacing='0' width='100%' class=''>";
		Header = Header + "<tr>";
		Header = Header + "<td class='medboldtable' valign='middle' align='right' width=''>Add Vivarium ?</td>";
		Header = Header + "<td class='' valign='middle' align='center' width='20'><input type='checkbox' name='edit_viv' onclick='EditViv(this);'></td>";
		Header = Header + "</tr></table>";
		VivariumList.innerHTML = Header;
		}
	else
		{
		FormElement.checked = true;
		}
	}
}

//
function RemoveItem(FormElement)
{
var ItemDelete = confirm("Delete this item ?");
var TheForm = FormElement.form;
var RequiredList="",Header="",TrClass="",ProdDescription,Id,QtySelect;
var RowCount = 0;
if(ItemDelete == true)
	{
	FormElement.checked = false;
	for(i = 0; i <=100 ; i++)
		{
		if(TheForm.elements["required_"+i])
			{
			if(TheForm.elements["required_"+i].checked == true)
				{
				if(parseInt(RowCount/2) == RowCount/2)
					{
					TrClass = "mainpagetableline";
					}
					else
					{
					TrClass = "mainpagetableline2";
					}
				ProdDescription = TheForm.elements["ProdDescription_"+i].value;
				Id = TheForm.elements["Id_"+i].value;
				QtySelect = parseInt(TheForm.elements["Qty_"+i].options[TheForm.elements["Qty_"+i].selectedIndex].value);
				var QtyOptions = "";
				for(n = 1; n <= 5; n++)
					{
					if(n == QtySelect)
						{
						QtyOptions = QtyOptions + "<option value='"+n+"' selected>"+n+"</option>";
						}
					else
						{
						QtyOptions = QtyOptions + "<option value='"+n+"'>"+n+"</option>";
						}
}
				QtySelect = "<select name='Qty_"+RowCount+"'>"+QtyOptions+"</select>";
				RequiredList = RequiredList + "<tr class='"+TrClass+"'><input type='hidden' name='Id_"+RowCount+"' value='"+Id+"'>";
				RequiredList = RequiredList + "<td class='medboldtable' valign='middle' align='left'>"+ProdDescription+"<input type='hidden' name='ProdDescription_"+RowCount+"' value='"+ProdDescription+"'></td>";
				RequiredList = RequiredList + "<td class='' valign='middle' align='center'>"+QtySelect+"</td>";
				RequiredList = RequiredList + "<td class='' valign='middle' align='center'><input type='checkbox' onclick='RemoveItem(this);' name='required_"+RowCount+"' checked></td>";
				RequiredList = RequiredList + "</tr>";
				RowCount ++;
				}
			}
		else
			{
			break;
			}
		}
	Header = Header + "<table border='0' cellpadding='3' cellspacing='0' width='100%' class=''>";
	Header = Header + "<tr>";
	Header = Header + "<td class='medboldtable' valign='middle' align='left' width=''>Item</td>";
	Header = Header + "<td class='medboldtable' valign='middle' align='center' width='40'>Qty</td>";
	Header = Header + "<td class='' valign='middle' align='center' width='20'>&nbsp;</td>";
	Header = Header + "</tr>";
	Header = Header + "<tr>";
	Header = Header + "<td class='' valign='top' align='left' width='' height='5' colspan='3'><hr class='black'></td>";
	Header = Header + "</tr>";

	RequiredList = Header + RequiredList + "</table>";
	ItemsList.innerHTML = RequiredList;
	}
else
	{
	FormElement.checked = true;
	}
}

//
function SelectType(TheForm,TypeSelected)
{
var SpeciesList = TheForm.elements[TypeSelected].value;
var SpeciesArrays = SpeciesList.split("#endspecies#");

var DestForm = TheForm.SpeciesSelect;
var FormLength = DestForm.length; 
for(i = FormLength; i >= 0; i--) //empty the select list ready for new options
	{
	DestForm.options[i] = null;
	}
for(i = 0; i <= SpeciesArrays.length-1; i++)
	{
	var TempArray = SpeciesArrays[i].split("$");
	var NewText = TempArray[0];
	var NewId = TempArray[1];
	var NewOption = new Option(NewText,NewId);
	DestForm.options[i] = NewOption;
	}
if(document.StarterKit.SelectedId)
	{
	document.StarterKit.SelectedId.value = "";
	}
}

//
function SelectSpecies(TheForm,TypeSelected,Species)
{
var Description="",Price="",TempArray,Product,TempProdArray,TempProd,SubTotal,CheckNumDigits,VivL,VivW,VivH,VivColour,VivStyle,ItemCount=1;
var VivList = "",RequiredList="",Header="";
var ProductArray = (TheForm.ProductList.value).split("nextprod");
var ProductsLength = ProductArray.length-1;
var SpeciesArrays = (TheForm.elements[TypeSelected].value).split("#endspecies#");
var Count = 1;
var TotalPrice = 0;
var TdStartMedLeft = "<td align='left' valign='middle' class='medboldtable'>";
var TdStartMedLeft2 = "<td align='left' valign='middle' class='medboldtable' colspan='2'>";
var TdStartMedCentre = "<td align='center' valign='middle' class='medboldtable'>";
var TdStartLargeLeft = "<td align='left' valign='middle' class='largebold'>";
var TdStartLargeRight = "<td align='right' valign='middle' class='largebold' colspan='2'>";
var TrClass = "mainpagetableline2";
var StyleClass = "checkstyle1";
Header = "<table border='0' cellpadding='3' cellspacing='0' width='100%' class=''>";
Header = Header + "<tr height='40'>";
Header = Header + "<td align='left' valign='middle' class='medboldtable' colspan='6'><u>Suggested Equipment List:</u>&nbsp;&nbsp;<select class='selectboxsmall' name='YoungAdult'><option value='young'>Young</option><option value='adult'>Adult</option></select></td>";
Header = Header + "</tr>";
Header = Header + "<tr class='' height='30'>";
Header = Header +TdStartMedLeft2+"&nbsp;</td>";
Header = Header +TdStartMedCentre+"Price Each</td>";
Header = Header +TdStartMedCentre+"Qty</td>";
Header = Header +TdStartMedCentre+"Total</td>";
Header = Header +TdStartMedCentre+"&nbsp;</td>";
Header = Header + "</tr>";
Header = Header + "<tr height='5'><td align='center' valign='middle' colspan='6'><hr class='black'></td></tr>";
var InfoList = "<table border='0' cellpadding='3' cellspacing='0' width='100%' class=''>";
var div = Math.pow(10,2);

for(a=0; a<=SpeciesArrays.length-1; a++)
	{
	var TempSpeciesArray = SpeciesArrays[a].split("$");
	var TempSpecies = TempSpeciesArray[0];
	if(Species == TempSpecies)
		{
		InfoList = InfoList + "<tr><td align='' valign=''>";
		InfoList = InfoList + "<font class='largebold'><u>"+Species+"</u></font><br><font class='medboldtable'><i>("+TempSpeciesArray[1]+")</i></font>";	
		InfoList = InfoList + "<div class='medboldtable'>"+"Suitable for "+TempSpeciesArray[4]+"</div>";
		InfoList = InfoList + "<div class='medboldtable'>Size: Young - "+TempSpeciesArray[5]+"</div><div class='medboldtable'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adult - "+TempSpeciesArray[6]+"</div>";
		InfoList = InfoList + "<div class='medboldtable'><p>"+TempSpeciesArray[8]+"</div></td>";
		InfoList = InfoList + "<td align='right' valign='top'><img src='images/reptile_pics/"+TempSpeciesArray[7]+"' width='256' height='192' border='0' name='picture'></td></tr>";

		var RequiredListArray = TempSpeciesArray[9].split("#");
		for(i=0; i<=RequiredListArray.length-1; i++)	
			{
			TempRequiredArray = RequiredListArray[i].split(",");
			Product = TempRequiredArray[0];
			Qty = TempRequiredArray[1];
			for(b=0; b<=ProductsLength; b++)
				{
				TempProdArray = ProductArray[b].split("#");
				TempProduct = TempProdArray[0];
				if(Product == TempProduct)
					{
					Description = TempProdArray[1];
					Price = parseFloat(TempProdArray[2]);
					SubTotal = Price*Qty;
					CheckNumDigits = (SubTotal.toString()).split(".");
					if(CheckNumDigits[1].length == 1)
						{
						SubTotal = SubTotal.toString()+ "0";	
						}
					if(parseInt(ItemCount/2) == ItemCount/2)
						{
						TrClass = "mainpagetableline2";
						}
						else
						{
						TrClass = "mainpagetableline";
						}
					RequiredList = RequiredList + "<tr class='"+TrClass+"'>";
					RequiredList = RequiredList + TdStartMedLeft2+Description+"</td>";
					RequiredList = RequiredList + TdStartMedCentre+Price+"</td>";
					RequiredList = RequiredList + TdStartMedCentre+Qty+"</td>";
					RequiredList = RequiredList + TdStartMedCentre+SubTotal+"</td>";
					RequiredList = RequiredList +TdStartMedLeft+"<input type='checkbox' style='' onclick='ReCalculate();' name='Item_"+ItemCount+"' value='"+Product+"' checked></td>";
					RequiredList = RequiredList + "</tr>";
					RequiredList = RequiredList + "<input type='hidden' name='Price_"+ItemCount+"' value='"+Price+"'>";
					RequiredList = RequiredList + "<input type='hidden' name='Qty_"+ItemCount+"' value='"+Qty+"'>";
					TotalPrice = TotalPrice + (Price*Qty);
					ItemCount ++;
					}
				}
			}
		if(TempSpeciesArray[2] != "")
			{
			VivSizeArray = TempSpeciesArray[3].split("x");
			VivL = parseFloat(VivSizeArray[0]);
			VivW = parseFloat(VivSizeArray[1]);
			VivH = parseFloat(VivSizeArray[2]);
			VivStyle = TempSpeciesArray[2];
			switch (VivStyle)
				{
				case "Standard":
					VivStyle = 1;
					break;
				case "Glass Lower":
					VivStyle = 1.1;
					break;
				case "Mesh/Upper Flap":
					VivStyle = 1.2;
					break;
				case "Chameleon":
					VivStyle = 1.2;
					break;
				default:
					VivStyle = 1;
				}
			var TempString = Update('',VivL,VivW,VivH,'Limed Oak',VivStyle); // get the vivarium price and weight
			var TempArray = TempString.split("end");
			var VivariumPrice = parseFloat(TempArray[0]);
			var VivWeight = TempArray[1];
			TotalPrice = TotalPrice + VivariumPrice;
			var SelectColour = "<select class='selectboxsmall' name='VivColour' onchange=\"UpdateStarterCost('',"+VivL+","+VivW+","+VivH+",this.options[this.selectedIndex].text,"+VivStyle+");\">";
			SelectColour = SelectColour+"<option>Limed Oak</option>";
			SelectColour = SelectColour+"<option>Mahogany</option>";
			SelectColour = SelectColour+"<option>Pine</option>";
			SelectColour = SelectColour+"<option>Beech</option>";
			SelectColour = SelectColour+"<option>Black Ash</option>";
			SelectColour = SelectColour+"<option>Cherry</option>";
			SelectColour = SelectColour+"<option>Maple</option>";
			SelectColour = SelectColour+"<option>White</option>";
			SelectColour = SelectColour+"</select>";

			VivList = VivList + "<tr class='mainpagetableline1'>";
			VivList = VivList + TdStartMedLeft+"Vivarium ("+TempSpeciesArray[2]+")<br>"+TempSpeciesArray[3]+"</td>";
			VivList = VivList + TdStartMedLeft+SelectColour+"</td>";
			VivList = VivList + TdStartMedCentre+"<input type='text' name='VivCost' class='textboxsmall' size='4' onfocus='this.blur();'></td>";
			VivList = VivList + TdStartMedCentre+"1</td>";
			VivList = VivList + TdStartMedCentre+"<input type='text' name='TotVivCost' class='textboxsmall' size='4' onfocus='this.blur();'></td>";
			VivList = VivList +TdStartMedLeft+"<input type='checkbox' style='' onclick='ReCalculate();' name='Viv_1' value='"+TempSpeciesArray[2]+"\#"+TempSpeciesArray[3]+"' checked></td>";
			VivList = VivList + "</tr>";
			VivList = VivList + "<input type='hidden' name='TotVivWeight' value='"+VivWeight+"'>";
			}
		var SelectedId = "<input type='hidden' name='SelectedId' value='"+TempSpeciesArray[10]+"'>";
		}
	}
TotalPrice = Math.round(TotalPrice * div)/div;
RequiredList = Header + VivList + RequiredList + "<tr><td colspan='6'><hr class='black'></td></tr>";
RequiredList = RequiredList + "<tr>";
RequiredList = RequiredList +TdStartMedLeft2+"&nbsp;</td>";
RequiredList = RequiredList +TdStartMedLeft+"&nbsp;</td>";
RequiredList = RequiredList +TdStartLargeLeft+"Total</td>";
RequiredList = RequiredList +TdStartLargeRight+"<input type='text' name='Total' class='textboxmed' value='"+TotalPrice+"' size='4' onfocus='this.blur();'></td>";
RequiredList = RequiredList +"</tr>";
RequiredList = RequiredList + "<tr><td colspan='6'><hr class='black'></td></tr>";
RequiredList = RequiredList + "<tr><td valign='middle' align='right' colspan='6'><input type='button' class='buttonstyle' name='AddSelectedToBasket' value='Add Selected to Basket >>' onclick='AddSuggested();'></td></tr>";
InfoList = InfoList + "</table>";
RequiredList = RequiredList + "</table>";
ItemsList.innerHTML = InfoList + RequiredList + "<input type='hidden' name='NoItems' value='"+ItemCount+"'>" + SelectedId;

if(document.StarterKit.VivCost)
	{
	document.StarterKit.VivCost.value = Math.round(VivariumPrice * div)/div;
	document.StarterKit.TotVivCost.value = Math.round(VivariumPrice * div)/div;
	}
}

//
function UpdateStarterCost(WhichPage,VivL,VivW,VivH,VivColour,VivStyle)
{
var VivariumPrice = Update('',VivL,VivW,VivH,VivColour,VivStyle);
ReCalculate();
}

//
function ReCalculate()
{
var TotalPrice = 0;
var TheForm = document.StarterKit;
var NumberOfItems = TheForm.NoItems.value;
if(TheForm.VivCost) // there is a vivarium listed so check price
	{
	if(TheForm.Viv_1.checked == true)
		{
		TotalPrice = TotalPrice + parseFloat(TheForm.VivCost.value);
		}
	}
for(i = 1; i <= NumberOfItems-1; i++)
	{
	if(TheForm.elements["Item_"+i].checked == true)
		{
		Price = parseFloat(TheForm.elements["Price_"+i].value);
		Qty = parseFloat(TheForm.elements["Qty_"+i].value);
		TotalPrice = TotalPrice + (Price * Qty);
		}
	}
var div = Math.pow(10,2);
TheForm.Total.value = Math.round(TotalPrice * div)/div;
}

//
function MainCat(SourceForm)
{
var TheForm = SourceForm.form;
var DestForm = TheForm.SubCatList;
var FormLength = DestForm.length; 
var CatList = TheForm.SubCatArray.value;
CatList = "remove" + CatList;
CatList = CatList.replace("remove#start#","");
var CatArrays = CatList.split("#start#");
var CatSelected = SourceForm.options[SourceForm.selectedIndex].value;

for(i = FormLength-1; i >= 0; i--) //empty the select list ready for new options
	{
	DestForm.options[i] = null;
	}
for(z = 0; z <= CatArrays.length-1; z++)
	{
	var SubCatList = CatArrays[z]
	var SubCatArray = SubCatList.split("#");
	var MainCatId = SubCatArray[0];
	var SubCatInfo = SubCatArray[1];
	if(CatSelected == MainCatId)
		{
		for(n = 1; n <= SubCatArray.length-1; n++)
			{
			var TempArray = SubCatArray[n].split("$");
			var NewId = TempArray[0];
			var NewText = TempArray[1];
			var NewOption = new Option(NewText,NewId);
			DestForm.options[n-1] = NewOption;
			
			}
		}
	}
}

//
function GetProducts(SubCatId)
{
var TheForm = document.StarterKitAdmin;
var SourceForm = TheForm.SubCatList;
var DestForm = TheForm.ItemsList;
var FormLength = DestForm.length; 
var ProductList = TheForm.ProductArray.value;
var ProductArrays = ProductList.split("#start#");
var CatSelected = SourceForm.options[SourceForm.selectedIndex].value;
var OptionValue = 0;

for(i = FormLength; i >= 0; i--) //empty the select list ready for new options
	{
	DestForm.options[i] = null;
	}
for(i = 0; i <= ProductArrays.length-1; i++)
	{
	var TempArray = ProductArrays[i].split("#");
	var MainCatId = TempArray[0];
	if(SubCatId == MainCatId)
		{
		var NewId = TempArray[1];
		var NewText = TempArray[2];
		var NewOption = new Option(NewText,NewId);
		DestForm.options[OptionValue] = NewOption;
		OptionValue ++;
		}
	}
}

//
function Capitalise(TextString)
{
return TextString.toUpperCase();
}

//
function LogIn(TheForm)
{
var MessageText = "Highlighted fields are incorrect";
var OkToProceed = "yes";
var Email,PassWord,PostCode;

var EmailIsOk = ValidateEmail('Email',TheForm);
var PostCodeIsOk = ValidatePostCode('PostCode',TheForm);
var PassWordIsOk = ValidatePassWord(TheForm,'PassWord');
var PassWord2IsOk = ValidatePassWord(TheForm,'PassWord2');

if(EmailIsOk == false)
	{
	MessageText = MessageText + "\n\nEmail Address : Must be a valid address";
	}
if(PostCodeIsOk == false)
	{
	MessageText = MessageText + "\n\nPostcode : Must follow standard Postcode format";
	MessageText = MessageText + "\n           Only one space";
	MessageText = MessageText + "\n           Between 6 and 7 chars long";
	MessageText = MessageText + "\n           Last 2 chars must be alphabetic";
	MessageText = MessageText + "\n           First char after space must be numeric";
	}

	
if(EmailIsOk == true && PostCodeIsOk == true && PassWordIsOk == true && PassWord2IsOk == true)
	{
	if(TheForm.PassWord.value == TheForm.PassWord2.value)
		{
		var myurl = "index.asp?PageName=Processing&Action=Login&PreviousPage="+PreviousPage;
		myurl = myurl + "&Email="+TheForm.Email.value;
		myurl = myurl + "&PassWord="+TheForm.PassWord.value;
		myurl = myurl + "&PostCode="+TheForm.PostCode.value;
		myurl = myurl + "&NewUser=yes";
		}
	else
		{
		OkToProceed = "no";
		MessageText = MessageText + "\n\nPassword: Both password fields must be the same";
		}
	}
else
	{
	if(EmailIsOk == true && PostCodeIsOk == true && PassWordIsOk == true)
		{
		var myurl = "index.asp?PageName=Processing&Action=Login&PreviousPage="+PreviousPage;
		myurl = myurl + "&Email="+TheForm.Email.value;
		myurl = myurl + "&PassWord="+TheForm.PassWord.value;
		myurl = myurl + "&PostCode="+TheForm.PostCode.value;
		}
	else
		{
		OkToProceed = "no";
		MessageText = MessageText + "\n\nPassword: Password must contain a value";		
		}
	}

if(OkToProceed == "no")		
	{
	alert(MessageText);
	}
	else
	{
	document.location = myurl;
	}
}

//
function SendPassword(ElementToCheck,WhichPage)
{
var TheForm = ElementToCheck.form;
if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(ElementToCheck.value))
	{
	ElementToCheck.style.backgroundColor="white";
	var SendToEmail = ElementToCheck.value;
	document.location = "index.asp?PageName=LostPassword&LostPassword=yes&WhichPage="+WhichPage+"&SendToEmail="+SendToEmail;
	}
else
	{
	ElementToCheck.style.backgroundColor="yellow";
	alert("Invalid Email address - Please check");
	}
}

//
function UpdateDetails(TheForm,GoToCheckout)
{
var OkToProceed = CheckUserDetails(TheForm);
if(OkToProceed == true)
	{
	var Title = TheForm.Title.value;
	var FirstName = Capitalise(TheForm.FirstName.value);
	var LastName = Capitalise(TheForm.LastName.value);
	var CompanyName = Capitalise(TheForm.CompanyName.value);
	var Address = escape(Capitalise(TheForm.Address.value));
	var Town = Capitalise(TheForm.Town.value);
	var County = Capitalise(TheForm.County.value);
	var PostCode = Capitalise(TheForm.PostCode.value);
	var TeleLand = TheForm.TeleLand.value;
	var TeleMob = TheForm.TeleMob.value;
	if(GoToCheckout == "yes")
		{
		PreviousPage = PreviousPage + escape("&GoToDelivery=yes");
		var myurl = "index.asp?PageName=Processing&Action=UpdateUserDetails&PreviousPage="+PreviousPage;
		}
	else
		{
		var myurl = "index.asp?PageName=Processing&Action=UpdateUserDetails&PreviousPage="+PreviousPage;
		}
	myurl = myurl + "&Title="+Title;
	myurl = myurl + "&FirstName="+FirstName;
	myurl = myurl + "&LastName="+LastName;
	myurl = myurl + "&CompanyName="+CompanyName;
	myurl = myurl + "&Address="+Address;
	myurl = myurl + "&Town="+Town;
	myurl = myurl + "&County="+County;
	myurl = myurl + "&PostCode="+PostCode;
	myurl = myurl + "&TeleLand="+TeleLand;
	myurl = myurl + "&TeleMob="+TeleMob;
	document.location = myurl;
	}
}

//
function CheckOut(TheForm)
{
if(TheForm.DetailsOk) // ask user if details are correct before proceeding
	{
	if(TheForm.DetailsOk[0].checked == true || TheForm.DetailsOk[1].checked == true)
		{
		if(TheForm.DetailsOk[1].checked == true)
			{
			var myurl = "index.asp?PageName=Checkout&UserDetailsForm=yes";
			document.location = myurl;
			}
		else
			{
			if(CheckUserDetails(TheForm) == true)
				{
				var myurl = "index.asp?PageName=Checkout&GoToDelivery=yes";
				document.location = myurl;
				}
			}
		}
	else
		{
		alert("Please confirm your address details\nbefore continuing.");
		}
	}
else
	{
	var OkToProceed = CheckUserDetails(TheForm);
	if(OkToProceed == true)
		{
		var myurl = "index.asp?PageName=Checkout&GoToDelivery=yes";
		document.location = myurl;
		}
	}
}

//
function StoreVanDelivery(VanValue,FromCheckout)
{
var MessageText = "Have you checked the delivery radius ?";
MessageText = MessageText + "\n\nIf so is £ "+VanValue+".00 the correct delivery charge ?";
MessageText = MessageText + "\n\nPlease click\n[ OK ] to confirm\nOR";
MessageText = MessageText + "\n[ Cancel ] to quit\n";
var OkToContinue = confirm(MessageText);
if(OkToContinue == true)
	{
	if(FromCheckout == "yes")
		{
		var PreviousPage = escape("index.asp?PageName=Checkout&GoToDelivery=yes");
		}
	else
		{
		var PreviousPage = escape("index.asp?PageName=Shipping");
		}
	var myurl = "index.asp?PageName=Processing&Action=VanShippingCost&VanValue="+VanValue+"&PreviousPage="+PreviousPage;
	document.location = myurl;
	}
}

//
function ShippingOptions(ShippingMethod,MethodOk,FormElement)
{
var StoredDeliveryMethod = getCookieValue("Shipping");
if(ShippingMethod == "Van Delivery" && StoredDeliveryMethod != "Van Delivery")
	{
	var MessageText = "You will be redirected to the Shipping Page\n\n";
	MessageText = MessageText + "After selecting the appropriate delivery milage\n";
	MessageText = MessageText + "you will be returned to this page\n";
	alert(MessageText);
	document.location = "index.asp?PageName=Shipping&FromCheckout=yes"
	}
else
	{
	if(MethodOk != "no")
		{
		var myurl = "index.asp?PageName=Processing&Action=Shipping&ShippingMethod="+ShippingMethod+"&PreviousPage="+PreviousPage;
		document.location = myurl;
		}
	else
		{
		var MessageText = "Unfortuneately this shipping method is not available\n\n";
		MessageText = MessageText + "Possible reasons are:\n";
		MessageText = MessageText + "  Cost greater than £25\n  OR\n";
		MessageText = MessageText + "Your basket contains either of the following:\n";
		MessageText = MessageText + "  Vivariums\n";
		MessageText = MessageText + "  Incubators\n";
		MessageText = MessageText + "  Base units\n";
		FormElement.checked = false;
		switch(StoredDeliveryMethod)
			{
			case "Parcel Post":
			document.checkout.ShippingMethod[0].checked = true;
			break;
			case "First Class Post":
			document.checkout.ShippingMethod[1].checked = true;
			break;
			case "Van Delivery":
			document.checkout.ShippingMethod[2].checked = true;
			break;
			case "Collection":
			document.checkout.ShippingMethod[3].checked = true;
			break;
			}
		alert(MessageText);
		}
	}
}

//
function CreateCookie(cookieName,cookieValue,cookieExpires)
{
cookieValue = escape(cookieValue);
if (cookieExpires == "")
	{
	var nowDate = new Date();
	nowDate.setMonth(nowDate.getMonth() + 6);
	cookieExpires = nowDate.toGMTString();
	}
document.cookie = cookieName + "=" + cookieValue + ";expires=" + cookieExpires;
}

//
function getCookieValue(cookieName)
{
   var cookieValue = document.cookie;
   var cookieStartsAt = cookieValue.indexOf(" " + cookieName + "=");

   if (cookieStartsAt == -1)
   {
      cookieStartsAt = cookieValue.indexOf(cookieName + "=");
   }

   if (cookieStartsAt == -1)
   {
      cookieValue = null;
   }
   else
   {
      cookieStartsAt = cookieValue.indexOf("=", cookieStartsAt) + 1;
      var cookieEndsAt = cookieValue.indexOf(";", cookieStartsAt);
      if (cookieEndsAt == -1)
      {
         cookieEndsAt = cookieValue.length;
      }
      cookieValue = unescape(cookieValue.substring(cookieStartsAt,
         cookieEndsAt));
   }

   return cookieValue;
}

//
function TakePayment(TheForm,FreeDeliveryOnly)
{
var OkToProceed = false;
var NumFields = 3;

if(FreeDeliveryOnly == "yes")
	{
	NumFields = 4;
	}

for(i = 0; i <= NumFields; i++)
	{
	if(TheForm.ShippingMethod[i].checked == true)
		{
		OkToProceed = true;
		}
	}

if(OkToProceed == true)
	{
	var myurl = "index.asp?PageName=Checkout&GoToPayment=yes";
	document.location = myurl;
	}
else
	{
	var MessageText = "Shipping method required !\n\n";
	MessageText = MessageText + "You must specify a shipping method\nbefore continueing";
	alert(MessageText);
	}
}

//
function SecureServer(TheForm)
{
TheForm.action = "https://select.worldpay.com/wcc/purchase";
TheForm.Payment.value = "Processing - Please Wait >>";
TheForm.Payment.disabled = true;
TheForm.submit();
}