var maximumProducts = 99;

function searchProducts(){
	var searchtext = document.getElementById("searchtext").value;
	location.href = 'productlisting.asp?searchtext=' + searchtext;
}

function checkEnterPressed(){
	if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)){
		searchProducts();
		return false;
	} 
    else return true;
}

function setLimit() {

	var url = location.href;
	var limit = document.getElementById("limit").value;
	var queryString = window.location.search.substring(1);
	var queryStringArray = queryString.split('&');
	var newQueryString = '?';
	
	for(i=0;i<queryStringArray.length;i++) {
		if(queryStringArray[i].match('limit=') != 'limit=') newQueryString += ((i != 0) ? "&" : "") + queryStringArray[i];
	}
	
	if(queryStringArray.length == 1) location.href = location.pathname + newQueryString;
	
	location.href = location.pathname + "?limit=" + limit;
	
}

function addToKart(id, timestamp){
	
	var size;
	var stock_level;
	var quantity = document.getElementById("quantity").value;
	
	try {
		size = document.getElementById("size").value;
	}
	catch(e) {
	}
	
	if(size != 0) {
	
		try {
			stock_level = document.getElementById(size + "_STOCKLEVEL").value;
		}
		catch(e) {
			stock_level = document.getElementById('stock_level').value;
		}
		
		if(/^([1-9]+)$/.test(quantity)) {
			if(parseInt(quantity) > parseInt(stock_level)) {
				if(size > 0) alert('Only ' + stock_level + ' of size ' + size + ' in stock');
				if(size == -1) alert('Only ' + stock_level + ' in stock');
				document.getElementById("quantity").value = stock_level;
			}
			else location.href = 'kart.asp?item=' + id + '&quantity=' + quantity + '&size=' + size + '&timestamp=' + timestamp;
		}
		else alert('Enter a quantity between 1-9');
	}
	else alert('Select a size from the drop down list');
	
}

function _addToKart(id, timestamp){
	
	var quantity = parseInt(document.getElementById("quantity").value);
	var stock_level = parseInt(document.getElementById("stock_level").value);
	
	if(/^([1-9]+)$/.test(quantity)) {
		if(quantity > stock_level) {
			if(stock_level > 0) alert('Only ' + stock_level + ' in stock');
			if(stock_level == 0) alert('Out of stock');
			document.getElementById("quantity").value = stock_level;
		}
		else location.href = 'kart.asp?item=' + id + '&quantity=' + quantity + '&timestamp=' + timestamp;
	}
	else alert('Enter a quantity between 1-9');
	
}

function updateKart(itemCount, checkoutKart, multipleAddresses, useExpressCheckout, sendOfflineInternationalDelivery) {

	var itemQuantity;
	var kartItemID;
	var kartItemSize;
	var kartItemAddress;
	var kartItemMessage;
	var kartItemStockLevel;
	var kartContents = '';
	var sizeContents = '';
	var addressContents = '';
	var messageContents = '';
	var shippingID;
	var executeUpdate = true;
	var stockLevelOK = true;
	
	if(multipleAddresses == true) multipleAddresses = 'YES';
	else multipleAddresses = 'NO';
	
	if(useExpressCheckout == true) useExpressCheckout = 'YES';
	else useExpressCheckout = 'NO';
	
	if(sendOfflineInternationalDelivery== true) sendOfflineInternationalDelivery = 'YES';
	else sendOfflineInternationalDelivery = 'NO';
	
	try {
		
		itemCount = parseInt(itemCount);
		var voucherCode = document.getElementById('voucherCode').value;
		
		for (i=0;i<itemCount;i++) {
	
			try {
				shippingID = parseInt(document.getElementById('shippingID').value);
				itemQuantity = parseInt(document.getElementById('kartItem' + i).value);
				kartItemID = document.getElementById('kartItemID' + i).value;
				kartItemSize = document.getElementById('kartItemSize' + i).value;
				kartItemAddress = document.getElementById('kartItemAddress' + i).value;
				kartItemMessage = escape(String(document.getElementById('kartItemMessage' + i).value).replace(/,/g, '[comma]'));
				kartItemTitle = document.getElementById('kartItemTitle' + i).value;
				kartItemStockLevel = parseInt(document.getElementById('kartItemStockLevel' + i).value);
				if(kartItemMessage == "undefined") kartItemMessage = "";
			}
			catch(e) {
				//alert(e.message);
			}

			if (itemQuantity > maximumProducts) {
				executeUpdate = false;
			}

			if(kartItemStockLevel < itemQuantity) { 
				alert('Only ' + kartItemStockLevel + ' ' + kartItemTitle + ' in stock');
				for (j=0;j<kartItemStockLevel;j++) {
					kartContents = kartContents + kartItemID + ',';
					sizeContents = sizeContents + kartItemSize + ',';
					addressContents = addressContents + kartItemAddress + ',';
					messageContents = messageContents + kartItemMessage + ',';
				}
				stockLevelOK = false;
			}
			else {
				for (j=0;j<itemQuantity;j++) {
					kartContents = kartContents + kartItemID + ',';
					sizeContents = sizeContents + kartItemSize + ',';
					addressContents = addressContents + kartItemAddress + ',';
					messageContents = messageContents + kartItemMessage + ',';
				}
			}
		
		}
		
		if (checkoutKart && stockLevelOK) {
			if(parseInt(itemCount) == 0) {
				alert('Shopping Bag is Empty!');
			}
			else {
				proceedToCheckout(itemCount, voucherCode, useExpressCheckout, shippingID, kartContents, sizeContents, addressContents, messageContents, multipleAddresses);
			}
		}
		else {
			if (executeUpdate) {
				location.href='kart.asp?mode=update&kart=' + kartContents + '&size=' + sizeContents + '&address=' + addressContents + '&message=' + messageContents + '&multipleAddresses=' + multipleAddresses + '&voucherCode=' + voucherCode + '&shippingID=' + shippingID + '&useExpressCheckout=' + useExpressCheckout + "&sendOfflineInternationalDelivery=" + sendOfflineInternationalDelivery;
			}
		}
	
	}
	catch(e) {
		//alert(e.message);
	}
	
}

function proceedToCheckout(itemCount, voucherCode, useExpressCheckout, shippingID, kartContents, sizeContents, addressContents, messageContents, multipleAddresses) {
	if(parseInt(itemCount) == 0) {
		alert('Shopping Bag is Empty!');
	}
	else {
		location.href = 'kart.asp?checkoutRedirect=YES&mode=update&kart=' + kartContents + '&size=' + sizeContents + '&address=' + addressContents + '&message=' + messageContents + '&multipleAddresses=' + multipleAddresses + '&voucherCode=' + voucherCode + '&shippingID=' + shippingID + '&useExpressCheckout=' + useExpressCheckout;
	}
}

function validateKartForm() {
	if(parseInt(document.forms.kartform.itemCount.value) != 0) {
		document.forms.kartform.submit();
	}
	else {
		alert('Shopping Bag is Empty!');
	}
}

function openZoomImage(url){
	zoomImage = window.open(url, 'zoomImage', 'width=630,height=830,scrollbars=0');
}

var postcode;
var address;
var town;

function PostcodeAnywhere_Interactive_FindByPostcode_v1_00Begin(Key, Postcode, UserName) {
    var script = document.createElement("script"),
        head = document.getElementsByTagName("head")[0],
        url = "http://services.postcodeanywhere.co.uk/PostcodeAnywhere/Interactive/FindByPostcode/v1.00/json.ws?";

    // Build the query string
    url += "&Key=" + encodeURIComponent("HE29-AY32-CT67-FC28");
    url += "&Postcode=" + encodeURIComponent(document.getElementById("billingpostcode").value);
    url += "&UserName=" + encodeURIComponent(UserName);
    url += "&CallbackFunction=PostcodeAnywhere_Interactive_FindByPostcode_v1_00End";

    script.src = url;

    // Make the request
    script.onload = script.onreadystatechange = function () {
        if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") {
            script.onload = script.onreadystatechange = null;
            if (head && script.parentNode)
                head.removeChild(script);
        }
    }

    head.insertBefore(script, head.firstChild);
}

function PostcodeAnywhere_Interactive_FindByPostcode_v1_00End(response) {
    // Test for an error
    if (response.length == 1 && typeof(response[0].Error) != "undefined") {
        // Show the error message
        alert(response[0].Description);
    }
    else {
        // Check if there were any items found
        if (response.length == 0)
            alert("Sorry, there were no results");
        else {
            // PUT YOUR CODE HERE
            //FYI: The output is an array of key value pairs (e.g. response[0].Id), the keys being:
            //Id
            //StreetAddress
            //Place
        }
    }
}

//Instructions at the bottom!
if (typeof(pcaControls) == 'undefined') var pcaControls=[];
function PostcodeAnywhere_Interactive_FindByPostcode_v1_00()
{
    this.m_intUid = pcaControls.length;
    this.m_strControlPrefix = "WP17";
    this.m_objParameters = ["Key","Postcode","UserName"];
    this.m_objColumns = ["Id","StreetAddress","Place"];
    this.m_objExamples = ["HE29-AY32-CT67-FC28","",""];
    this.m_objDescriptions = ["The key to use to authenticate to the service.","The postcode to search with find.","The username associated with the Royal Mail license (not required for click licenses)."];
    this.m_objControls = ["<input id=\"WP17_Key\" type=\"hidden\" onchange=\"pcaControls[" + this.m_intUid + "].Values['Key']=this.value\">","<input id=\"billingpostcode\" type=\"text\" onchange=\"pcaControls[" + this.m_intUid + "].Values['Postcode']=this.value\">","<input id=\"WP17_UserName\" type=\"hidden\" onchange=\"pcaControls[" + this.m_intUid + "].Values['UserName']=this.value\">"];
    this.Values = new Array();
    this.Values["Key"] = "";
    this.Values["Postcode"] = "";
    this.Values["UserName"] = "";
    this.Error = null;
    this.Result = null;
    this.OnError = null;
    this.OnResult = null;
    
    this.RenderForm = function (Control, ParameterMask, IncludeExamples, IncludeDescriptions)
    {
        var _strHtml="";
        var _intCounter="";
        _strHtml = "<table cellpadding=0 cellspacing=0>";
        for (_intCounter=0; _intCounter<this.m_objParameters.length; _intCounter++)
        {
            if (ParameterMask=="" || ParameterMask.indexOf(this.m_objParameters[_intCounter])>=0)
            {
                _strHtml += " <tr>";
                _strHtml += "<th>" + this.m_objParameters[_intCounter] + "</th>";
                _strHtml += "<td>" + this.m_objControls[_intCounter] + "</td>";
                if (IncludeExamples) _strHtml += "<td>" + this.m_objExamples[_intCounter] + "</td>";
                if (IncludeDescriptions) _strHtml += "<td>" + this.m_objDescriptions[_intCounter] + "</td>";
                _strHtml += "</tr>";
            }
        }
        _strHtml+= "</table>";
        Control.innerHTML = _strHtml; 
    }

    this.InvokeForm = function()
    {
        this.Invoke(this.Values["Key"],this.Values["Postcode"],this.Values["UserName"]);
		document.getElementById("postcodeanywhere").style.visibility = 'visible';
		document.getElementById("postcodeanywhere").style.display = 'block';
    }

    this.Invoke = function (Key, Postcode, UserName)
    {
         var scriptTag = document.getElementById("PCAe77e16ccba9d4f82a564c4e9e1df189d");
         var headTag = document.getElementsByTagName("head").item(0);
         var strUrl = "";
         strUrl = "http://services.postcodeanywhere.co.uk/PostcodeAnywhere/Interactive/FindByPostcode/v1.00/json.ws?";
         strUrl += "&Key=" + encodeURI("HE29-AY32-CT67-FC28");
         strUrl += "&Postcode=" + encodeURI(document.getElementById(postcode).value);
         strUrl += "&UserName=" + encodeURI(UserName);
         strUrl += "&CallbackFunction=pcaControls[" + this.m_intUid + "].Callback";
         if (scriptTag) 
         {
             try
             {
                 headTag.removeChild(scriptTag)
             }
             catch (e)
             {
                 //Ignore 
             }
         }
         scriptTag = document.createElement("script");
         scriptTag.src = strUrl
         scriptTag.type = "text/javascript";
         scriptTag.id = "PCAe77e16ccba9d4f82a564c4e9e1df189d";
         headTag.appendChild(scriptTag);
    }

    this.Callback = function(response)
    {
        if (response.length==1 && typeof(response[0].Error) != 'undefined')
        {
            this.Error = response[0];
            if (this.OnError != null) this.OnError();
        }
        else
        {
            this.Result = response;
            if (this.OnResult != null) this.OnResult();
        }
    }

    this.SetDefaults = function()
    {
        for (_intCounter=0; _intCounter<this.m_objParameters.length; _intCounter++)
        {
            this.SetValue(this.m_objParameters[_intCounter], this.m_objExamples[_intCounter]);
        }
    }

    this.SetValue = function(Control, Value)
    {
        if (document.getElementById("WP17_" + Control)!=null)
        {
            document.getElementById("WP17_" + Control).value=Value;
        }
        this.Values[Control] = Value;
    }

    this.RenderTable = function (Control, ColumnMask) 
    {
        var _strHtml=""; 
        var _intCounter=0;
        var _objDisplayColumn=new Array();
        _strHtml = "<select id=\"postcodeanywhereselector\" class=\"postcodeanywhereselector\" onchange=\"selectAddress()\">";
        for (_intCounter=0; _intCounter<this.Result.length; _intCounter++)
        {
			_strHtml += "<option value=\"" + this.NoBlank(this.Result[_intCounter].StreetAddress) + ";" + this.NoBlank(this.Result[_intCounter].Place) + "\">" + this.NoBlank(this.Result[_intCounter].StreetAddress) + ", " + this.NoBlank(this.Result[_intCounter].Place) + "</option>\n";
        }
        _strHtml+= "</select>";
        Control.innerHTML = _strHtml;  
    }

    this.RenderError = function (Control) 
    {
        var _strHtml=""; 
        var _intCounter=0;
        _strHtml = "<table cellpadding=0 cellspacing=0>";
        _strHtml+= "<tr><th>Number</th><td>" + this.Error.Error + "</td></tr>";
        _strHtml+= "<tr><th>Description</th><td>" + this.Error.Description + "</td></tr>";
        _strHtml+= "<tr><th>Cause</th><td>" + this.Error.Cause + "</td></tr>";
        _strHtml+= "<tr><th>Resolution</th><td>" + this.Error.Resolution + "</td></tr>";
        _strHtml+= "</table>";
        Control.innerHTML = _strHtml;  
    }

    this.NoBlank = function(what)
    {
        if (what=="")
            return "&nbsp;"
        else
            return what;
    }
    pcaControls[this.m_intUid] = this;
}

function selectAddress() {
	document.getElementById(address).value = String(document.getElementById("postcodeanywhereselector").value).split(';')[0];
	document.getElementById(town).value = String(document.getElementById("postcodeanywhereselector").value).split(';')[1];
	document.getElementById("postcodeanywhere").style.visibility = 'hidden';
	document.getElementById("postcodeanywhere").style.display = 'none';
}

var xmlHttp;
var emailExists = false;

function ajaxFunction() {  
	try {    
		xmlHttp = new XMLHttpRequest();    
	}
	catch (e) {    
		try {      
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");      
		}
		catch (e) {       
			try {        
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");        
			}
			catch (e) {        
				alert("Your browser does not support AJAX!");        
				return false;        
			}		      
		}    
	}  
	
	xmlHttp.onreadystatechange = function() {
  		if(xmlHttp.readyState == 4) {
    		emailExists = xmlHttp.responseText;
    	}
  	}
	
}

function checkEmailExists(email, previousemail) {
	ajaxFunction();
	xmlHttp.open("GET", "kart/sql/emailexists.asp?email=" + email + "&previousemail=" + previousemail, false);
	xmlHttp.send(null);	
	return emailExists;
}

var firstname;
var lastname;
var landphone;
var mobilephone;
var billingaddress1;
var billingaddress2;
var billingaddress3;
var billingtown;
var billingpostcode;
var deliveryaddress1;
var deliveryaddress2;
var deliveryaddress3;
var deliverytown;
var deliverypostcode;
var email;
var previousemail;
var password1;
var password2;

var FIRSTNAMEOK;
var LASTNAMEOK;
var LANDPHONEOK;
var MOBILEPHONEOK;
var BILLINGADDRESS1OK;
var BILLINGADDRESS2OK;
var BILLINGADDRESS3OK;
var BILLINGTOWNOK;
var BILLINGPOSTCODEOK;
var DELIVERYADDRESS1OK;
var DELIVERYADDRESS2OK;
var DELIVERYADDRESS3OK;
var DELIVERYTOWNOK;
var DELIVERYPOSTCODEOK;
var EMAILOK;
var PASSWORD1OK;
var PASSWORD2OK;
var PASSWORDMATCH;

function validateAccountForm(formname) {
	
	firstname = formname.firstname.value;
	lastname = formname.lastname.value;
	landphone = formname.landphone.value;
	mobilephone = formname.mobilephone.value;
	
	billingaddress1 = formname.billingaddress1.value;
	billingaddress2 = formname.billingaddress2.value;
	billingaddress3 = formname.billingaddress3.value;
	billingtown = formname.billingtown.value;
	billingpostcode = formname.billingpostcode.value;
	
	deliveryaddress1 = formname.deliveryaddress1.value;
	deliveryaddress2 = formname.deliveryaddress2.value;
	deliveryaddress3 = formname.deliveryaddress3.value;
	deliverytown = formname.deliverytown.value;
	deliverypostcode = formname.deliverypostcode.value;
	
	email = formname.email.value;
	password1 = formname.password1.value;
	password2 = formname.password2.value;
	
	previousemail = formname.previousemail.value;
	
	var formdata = "firstname";
	validateAccount(formdata);

	/*alert(FIRSTNAMEOK + '\n' + 
		LASTNAMEOK + '\n' + 
		LANDPHONEOK + '\n' + 
		MOBILEPHONEOK && 
		BILLINGADDRESS1OK + '\n' + 
		BILLINGADDRESS2OK + '\n' + 
		BILLINGADDRESS3OK + '\n' + 
		BILLINGTOWNOK + '\n' + 
		BILLINGPOSTCODEOK + '\n' + 
		DELIVERYADDRESS1OK + '\n' + 
		DELIVERYADDRESS2OK + '\n' + 
		DELIVERYADDRESS3OK + '\n' + 
		DELIVERYTOWNOK + '\n' + 
		DELIVERYPOSTCODEOK + '\n' + 
		EMAILOK + '\n' + 
		PASSWORD1OK + '\n' + 
		PASSWORD2OK + '\n' + 
		PASSWORDMATCH);*/

	if (FIRSTNAMEOK && 
		LASTNAMEOK && 
		LANDPHONEOK && 
		MOBILEPHONEOK && 
		BILLINGADDRESS1OK && 
		BILLINGADDRESS2OK && 
		BILLINGADDRESS3OK && 
		BILLINGTOWNOK && 
		BILLINGPOSTCODEOK && 
		DELIVERYADDRESS1OK && 
		DELIVERYADDRESS2OK && 
		DELIVERYADDRESS3OK && 
		DELIVERYTOWNOK && 
		DELIVERYPOSTCODEOK && 
		EMAILOK && 
		PASSWORD1OK && 
		PASSWORD2OK && 
		PASSWORDMATCH)
	{
		formname.submit();
	}
		
}

function validateGiftAddressForm(formname) {
	
	firstname = document.getElementById("firstname").value;
	lastname = document.getElementById("lastname").value;
	landphone = document.getElementById("landphone").value;
	mobilephone = document.getElementById("mobilephone").value;
	
	deliveryaddress1 = document.getElementById("deliveryaddress1").value;
	deliveryaddress2 = document.getElementById("deliveryaddress2").value;
	deliveryaddress3 = document.getElementById("deliveryaddress3").value;
	deliverytown = document.getElementById("deliverytown").value;
	deliverypostcode = document.getElementById("deliverypostcode").value;
	
	var formdata = "firstname";
	validateGiftAddress(formdata);

	if (FIRSTNAMEOK && 
		LASTNAMEOK && 
		LANDPHONEOK && 
		MOBILEPHONEOK && 
		DELIVERYADDRESS1OK && 
		DELIVERYADDRESS2OK && 
		DELIVERYADDRESS3OK && 
		DELIVERYTOWNOK && 
		DELIVERYPOSTCODEOK)
	{
		document.getElementById(formname).submit();
	}
		
}

function validateGiftAddress(formdata) {
	
	switch(formdata) {
		case 'firstname':
			if (validateFirstname()) {
				FIRSTNAMEOK = true;
				validateGiftAddress('lastname');
			}
			break;
		case 'lastname':
			if (validateLastname()) {
				LASTNAMEOK = true;
				validateGiftAddress('deliveryaddress1');
			}
			break;
		case 'deliveryaddress1':
			if (validateDeliveryAddress1()) {
				DELIVERYADDRESS1OK = true;
				validateGiftAddress('deliveryaddress2');
			}
			break;
		case 'deliveryaddress2':
			if (validateDeliveryAddress2()) {
				DELIVERYADDRESS2OK = true;								 									
				validateGiftAddress('deliveryaddress3');
			}
			break;
		case 'deliveryaddress3':
			if (validateDeliveryAddress3()) {
				DELIVERYADDRESS3OK = true;
				validateGiftAddress('deliverytown');
			}
			break;
		case 'deliverytown':
			if (validateDeliveryTown()) {
				DELIVERYTOWNOK = true;
				validateGiftAddress('deliverypostcode');
			}
			break;
		case 'deliverypostcode':
			if (validateDeliveryPostcode()) {
				DELIVERYPOSTCODEOK = true;
				validateGiftAddress('landphone');
			}
			break;
		case 'landphone':
			if (validateLandphone()) {
				LANDPHONEOK = true;
				validateGiftAddress('mobilephone');
			}
			break;
		case 'mobilephone':
			if (validateMobilephone()) {
				MOBILEPHONEOK = true;
			}
			break;
		default:				
	}
	
}

function validateAccount(formdata) {
	
	switch(formdata) {
		case 'firstname':
			if (validateFirstname()) {
				FIRSTNAMEOK = true;
				validateAccount('lastname');
			}
			break;
		case 'lastname':
			if (validateLastname()) {
				LASTNAMEOK = true;
				validateAccount('landphone');
			}
			break;
		case 'landphone':
			if (validateLandphone()) {
				LANDPHONEOK = true;
				validateAccount('mobilephone');
			}
			break;
		case 'mobilephone':
			if (validateMobilephone()) {
				MOBILEPHONEOK = true;
				validateAccount('billingaddress1');
			}
			break;
		case 'billingaddress1':
			if (validateBillingAddress1()) {
				BILLINGADDRESS1OK = true;
				validateAccount('billingaddress2');
			}
			break;
		case 'billingaddress2':
			if (validateBillingAddress2()) {
				BILLINGADDRESS2OK = true;
				validateAccount('billingaddress3');
			}
			break;
		case 'billingaddress3':
			if (validateBillingAddress3()) {
				BILLINGADDRESS3OK = true;
				validateAccount('billingtown');
			}
			break;
		case 'billingtown':
			if (validateBillingTown()) {
				BILLINGTOWNOK = true;
				validateAccount('billingpostcode');
			}
			break;
		case 'billingpostcode':
			if (validateBillingPostcode()) {
				BILLINGPOSTCODEOK = true;
				validateAccount('deliveryaddress1');
			}
			break;	
		case 'deliveryaddress1':
			if (validateDeliveryAddress1()) {
				DELIVERYADDRESS1OK = true;
				validateAccount('deliveryaddress2');
			}
			break;
		case 'deliveryaddress2':
			if (validateDeliveryAddress2()) {
				DELIVERYADDRESS2OK = true;
				validateAccount('deliveryaddress3');
			}
			break;
		case 'deliveryaddress3':
			if (validateDeliveryAddress3()) {
				DELIVERYADDRESS3OK = true;
				validateAccount('deliverytown');
			}
			break;
		case 'deliverytown':
			if (validateDeliveryTown()) {
				DELIVERYTOWNOK = true;
				validateAccount('deliverypostcode');
			}
			break;
		case 'deliverypostcode':
			if (validateDeliveryPostcode()) {
				DELIVERYPOSTCODEOK = true;
				validateAccount('email');
			}
			break;
		case 'email':
			if (validateEmail()) {
				EMAILOK = true;
				validateAccount('password1');
			}
			break;
		case 'password1':
			if (validatePassword(password1)) {
				PASSWORD1OK = true;
				validateAccount('password2');
			}
			else PASSWORD1OK = false;
			break;
		case 'password2':
			if (validatePassword(password2)) {
				PASSWORD2OK = true;
				if (password1 != password2) {
					alert ('Passwords do not match!');
					PASSWORDMATCH = false;
				}
				else PASSWORDMATCH = true;
			}
			break;
		default:				
	}
	
}

function validateEmail(){
	try {
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))
		{
			if(checkEmailExists(email, previousemail) == 'true') {
				alert("That email address is already in use! Please re-enter.")
				return (false)
			}
			else return (true)
		}
		alert("Invalid E-mail Address! Please re-enter.")
		return (false)
		}
	catch(e) {
	}
}

function validatePassword(password){
	try {
		if (/^([A-Z0-9a-z\-]+){4}$/.test(password))
		{
			return (true)
		}
		alert("Invalid Password! Please re-enter.")
		return (false)	
		}
	catch(e) {
	}
}

function validateFirstname(){
	try {
		if (/^([A-Za-z\-]+){2}$/.test(firstname))
		{
			return (true)
		}
		alert("Invalid Firstname! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
}

function validateLastname(){
	try {
		if (/^([A-Za-z\-]+){2}$/.test(lastname))
		{
			return (true)
		}
		alert("Invalid Lastname! Please re-enter.")
		return (false)	
		}
	catch(e) {
	}
}

function validateLandphone(){
	try {
		if (/^([0-9\-\s]+){7}$/.test(landphone))
		{
			return (true)
		}
		alert("Invalid Landphone Number! Please re-enter.")
		return (false)	
		}
	catch(e) {
	}
}

function validateMobilephone(){
	try {
		if (/^([0-9\s\-]+){11}$/.test(mobilephone) || mobilephone.length == 0)
		{
			return (true)
		}
		alert("Invalid Mobilephone Number! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}	
}

function validateBillingAddress1(){
	try {
		if (/^([0-9A-Za-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF\s\/\\\(\)\-\,\é]+){5}$/.test(billingaddress1))
		{
			return (true)
		}
		alert("Invalid Billing Address1! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
	
}

function validateBillingAddress2(){
	try {
		if (/^([0-9A-Za-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF\s\/\\\(\)\-\,\é]+){5}$/.test(billingaddress2) || billingaddress2.length == 0)
		{
			return (true)
		}
		alert("Invalid Billing Address2! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
}

function validateBillingAddress3(){
	try {
		if (/^([0-9A-Za-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF\s\/\\\(\)\-\,\é]+){5}$/.test(billingaddress3) || billingaddress3.length == 0)
		{
			return (true)
		}
		alert("Invalid Billing Address3! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
}

function validateBillingTown(){
	try {
		if (/^([A-Za-z\s]+){2}$/.test(billingtown))
		{
			return (true)
		}
		alert("Invalid Billing Town! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
}

function validateBillingPostcode(){
	try {
		if (/^([0-9A-Za-z\s\-]+){3}$/.test(billingpostcode))
		{
			return (true)
		}
		alert("Invalid Postcode! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
}

function validateDeliveryAddress1(){
	try {
		if (/^([0-9A-Za-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF\s\/\\\(\)\-\,\é]+){5}$/.test(deliveryaddress1) || deliveryaddress1.length == 0)
		{
			return (true)
		}
		alert("Invalid Delivery Address1! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
}

function validateDeliveryAddress2(){
	try {
		if (/^([0-9A-Za-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF\s\/\\\(\)\-\,\é]+){5}$/.test(deliveryaddress2) || deliveryaddress2.length == 0)
		{
			return (true)
		}
		alert("Invalid Delivery Address2! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
}

function validateDeliveryAddress3(){
	try {
		if (/^([0-9A-Za-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF\s\/\\\(\)\-\,\é]+){5}$/.test(deliveryaddress3) || deliveryaddress3.length == 0)
		{
			return (true)
		}
		alert("Invalid Delivery Address3! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
}

function validateDeliveryTown(){
	try {
		if (/^([A-Za-z\s]+){2}$/.test(deliverytown) || deliverytown.length == 0)
		{
			return (true)
		}
		alert("Invalid Delivery Town! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
}

function validateDeliveryPostcode(){
	try {
		if (/^([0-9A-Za-z\s\-]+){3}$/.test(deliverypostcode) || deliverypostcode.length == 0)
		{
			return (true)
		}
		alert("Invalid Delivery Postcode! Please re-enter.")
		return (false)	
	}
	catch(e) {
	}
}
