<!--

function showMsg(msgTitle, msgMain, buttons) {
	document.getElementById('msgTitlebar').innerHTML = msgTitle;
	document.getElementById('msgBody').innerHTML = msgMain;
	
	if(buttons == 'buttonOK') {
		document.getElementById('msgBody').innerHTML += '<br /><br /><input type="button" name="hideMsg" value="OK" onclick="hideMsg()" />';
	}
	document.getElementById('msgBox').style.display = 'block';
}

function hideMsg() {
	document.getElementById('msgBox').style.display = 'none';
}

function testIsValidObject(objToTest) {
	if (objToTest == null || objToTest == undefined) {
		return false;
	}
	return true;
}

function acceptTermsFunc(checkboxVal) {

	if (checkboxVal.checked) {
		purchaseButton.purchase.disabled='';
	}
	else {
		purchaseButton.purchase.disabled='disabled';
	}
}

function errorField(field) {
    field.style.color='#FF0000';
    field.style.backgroundColor='#FFAAAA';
    field.style.fontWeight='bold';
    field.style.fontStyle='italic';
    field.style.border='2px solid #FF0000';
    isError = true;
 }
 
function okField(field) {
	field.style.color='#000000';
	field.style.backgroundColor='#FFFFFF';
	field.style.fontWeight='normal';
	field.style.fontStyle='normal';
	field.style.border='1px solid #000000';
}

function warnField(field) {
    field.style.color='#FF9900';
    field.style.backgroundColor='#FFFFCC';
    field.style.fontWeight='normal';
    field.style.fontStyle='italic';
    field.style.border='1px solid #FF9900';
}
 
function reEnableForm(f, frsField, alertTxt) {    	
	alertTxt.replace(/\r\n|\r/g, '\n');
	alertTxt.replace('\n', '<br />');

	var alertTitle = "Please correct the errors below and attempt to submit the details again.<br />";
         alertTitle += "----------------------------------------------------<br /><br />";
    
    var alertStr = alertTitle + alertTxt
    
    var J = jQuery.noConflict();
		
	J('<div id="dialog" title="Notification">' + alertStr + '</div>').dialog({
		modal: true,
		buttons: {
			Ok: function() {
				J(this).dialog('close');
			}
		}
	});
    return false;
 }
 
function addPrice()
  {
	// Get a reference to the table of the parent window
	//var tableRef = document.getElementById(tableID);
	var tableRef = document.getElementById('pricesTable');
	var lastRow = tableRef.rows.length;
	
	// if there's no header row in the table, then iteration = lastRow + 1
	var iteration = lastRow;
	
	// insert a row at the end - 1

	var newRow   = tableRef.insertRow(lastRow);

	// Insert a cell in the row at index 0
	var newCell1 = newRow.insertCell(0);
	var newCell2 = newRow.insertCell(1);
	var newCell3 = newRow.insertCell(2);
	var newCell4 = newRow.insertCell(3);

	var rowNum = '<span class="rowNum">' + (lastRow + 1) + '</span>';
	var priceDesc = 'Description: <input type="text" id="priceDesc' + (lastRow + 1) + '" name="priceDesc[]" size="80" />';
	var priceAmount = '£<input type="text" id="priceAmount' + (lastRow + 1) + '" name="priceAmount[]" size="8" /><input type="hidden" id="priceID' + (lastRow + 1) + '" name="priceID[]" value="0" />';
	var delCell = '<input type="button" name="delRow" value="X" onclick="delElem(\'pricesTable\', this)" />'
	
	newCell1.innerHTML = rowNum;
	newCell2.innerHTML = priceDesc;
	newCell3.innerHTML = priceAmount;
	newCell4.innerHTML = delCell;
}

function addColour()
  {
	// Get a reference to the table of the parent window
	//var tableRef = document.getElementById(tableID);
	var tableRef = document.getElementById('coloursTable');
	var lastRow = tableRef.rows.length;
	
	// if there's no header row in the table, then iteration = lastRow + 1
	var iteration = lastRow;
	
	// insert a row at the end - 1

	var newRow   = tableRef.insertRow(lastRow);

	// Insert a cell in the row at index 0
	var newCell1 = newRow.insertCell(0);
	var newCell2 = newRow.insertCell(1);
	var newCell3 = newRow.insertCell(2);
	var newCell4 = newRow.insertCell(3);

	var rowNum = '<span class="rowNum">' + (lastRow + 1) + '</span>';
	var colourName = '<input type="text" id="colourName' + (lastRow + 1) + '" name="colourName[]" />';
	var colourHex = '<input type="hidden" id="colourHex' + (lastRow + 1) + '" name="colourHex[]" class="colourPallete" />';
	var delCell = '<input type="button" name="delRow" value="X" onclick="delElem(\'coloursTable\', this)" />'
					
	newCell1.innerHTML = rowNum;
	newCell2.innerHTML = colourName;
	newCell3.innerHTML = colourHex;
	newCell4.innerHTML = delCell;
}
 
function delElem(tblRef, delRow){
    var tbl = document.getElementById(tblRef);
    theRow = delRow.parentNode.parentNode.rowIndex;
    tbl.deleteRow(theRow);
}

function checkLogin(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.Username.value=="") {
		f.Username.focus();
		
		errorField(f.Username);
        
        if (frsField == "") {
            frsField = f.Username;
        }
        alertTxt += "Please enter a valid username.<br />";
        isError = 1;
	}
	else {
		okField(f.Username);
	}
	
	if(f.Password.value=="") {
		f.Password.focus();
		
		errorField(f.Password);
        
        if (frsField == "") {
            frsField = f.Password;
        }
        alertTxt += "Please enter a valid password.<br />";
        isError = 1;
	}
	else {
		okField(f.Password);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkForgottenPass1(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.UserNameCheck.value=="") {
		f.UserNameCheck.focus();
		
		errorField(f.UserNameCheck);
        
        if (frsField == "") {
            frsField = f.UserNameCheck;
        }
        alertTxt += "Please enter a valid username.<br />";
        isError = 1;
	}
	else {
		okField(f.UserNameCheck);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkForgottenPass2(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.SecretAnswerCheck.value=="") {
		f.SecretAnswerCheck.focus();
		
		errorField(f.SecretAnswerCheck);
        
        if (frsField == "") {
            frsField = f.SecretAnswerCheck;
        }
        alertTxt += "Please enter a valid answer.<br />";
        isError = 1;
	}
	else {
		okField(f.SecretAnswerCheck);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkRegistration(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.firstName.value=="") {
		f.firstName.focus();
		
		errorField(f.firstName);
        
        if (frsField == "") {
            frsField = f.firstName;
        }
        alertTxt += "Your first name cannot be blank.<br />";
        isError = 1;
	}
	else {
		okField(f.firstName);
	}
	
	if(f.surname.value=="") {
		f.surname.focus();
		
		errorField(f.surname);
        
        if (frsField == "") {
            frsField = f.surname;
        }
        alertTxt += "Your surname cannot be blank.<br />";
        isError = 1;
	}
	else {
		okField(f.surname);
	}
	
	if(f.title.value=="") {
		f.title.focus();
		
		errorField(f.title);
        
        if (frsField == "") {
            frsField = f.title;
        }
        alertTxt += "Please select your preferred title.<br />";
        isError = 1;
	}
	else {
		okField(f.title);
	}
	
	if(f.gender.value=="") {
		f.gender.focus();
		
		//errorField(f.gender);
        
        if (frsField == "") {
            frsField = f.gender;
        }
        alertTxt += "Please select your gender.<br />";
        isError = 1;
	}
	else {
		//okField(f.gender);
	}
	
	if(isSet(f.address)) {
		if(f.address.value=="") {
			f.address.focus();
			
			errorField(f.address);
			
			if (frsField == "") {
				frsField = f.address;
			}
			alertTxt += "Please enter your address.<br />";
			isError = 1;
		}
		else {
			okField(f.address);
		}
	}
	
	if(isSet(f.town)) {
		if(f.town.value=="") {
			f.town.focus();
			
			errorField(f.town);
			
			if (frsField == "") {
				frsField = f.town;
			}
			alertTxt += "Please enter your town.<br />";
			isError = 1;
		}
		else {
			okField(f.town);
		}
	}
	
	if(isSet(f.county)) {
		if(f.county.value=="") {
			f.county.focus();
			
			errorField(f.county);
			
			if (frsField == "") {
				frsField = f.county;
			}
			alertTxt += "Please enter your county.<br />";
			isError = 1;
		}
		else {
			okField(f.county);
		}
	}
	
	if(isSet(f.countryCode)) {
		if(f.countryCode.value=="") {
			f.countryCode.focus();
			
			errorField(f.countryCode);
			
			if (frsField == "") {
				frsField = f.countryCode;
			}
			alertTxt += "Please select your country.<br />";
			isError = 1;
		}
		else {
			okField(f.countryCode);
		}
	}
	
	if(isSet(f.postCode)) {
		if(f.postCode.value=="") {
			f.postCode.focus();
			
			errorField(f.postCode);
			
			if (frsField == "") {
				frsField = f.postCode;
			}
			alertTxt += "Please enter your post code.<br />";
			isError = 1;
		}
		else if(!isPostCode(f.postCode.value) && f.ValidateUKPostCode == 'Y') {
			f.postCode.focus();
			
			errorField(f.postCode);
			
			if (frsField == "") {
				frsField = f.postCode;
			}
			alertTxt += "The post code you entered does not appear to be valid.<br />";
			isError = 1;
		}
		else {
			okField(f.postCode);
		}
	}
	
	if(isSet(f.email)) {
		if (f.email.value == "") {
			
			errorField(f.email);
		
			if (frsField == "") {
				frsField = f.email;
			}
			alertTxt += "Please enter your email address.<br />";
			isError = 1;
		}
		else {
			if (emailCheck(f.email.value) != true) {
				errorField(f.email);
			
				if (frsField == "") {
					frsField = f.email;
				}
				alertTxt += emailCheck(f.email.value) + "<br />";
				isError = 1;
			}
			else {
				okField(f.email);
			}
		}
	}
	
	if(isSet(f.tel)) {
		if (f.tel.value == "") {
			errorField(f.tel);
		
			if (frsField == "") {
				frsField = f.tel;
			}
			alertTxt += "Please enter your telephone number.<br />";
			isError = 1;
		}
		else {
			if (isTel(f.tel.value)==false) {
				errorField(f.tel);
			
				if (frsField == "") {
					frsField = f.tel;
				}
				alertTxt += "Your phone number does not appear to be valid!\nPlease enter a valid phone number using only numbers and spaces.<br />";
				isError = 1;
			}
			else {
				okField(f.tel);
			}
		}
	}
	
	if(isSet(f.dobD)) {
		if(f.dobD.value=="") {
			f.dobD.focus();
			
			errorField(f.dobD);
			
			if (frsField == "") {
				frsField = f.dobD;
			}
			alertTxt += "Please enter your correct date of birth using the drop-downs.<br />";
			isError = 1;
		}
		else {
			okField(f.dobD);
		}
		
		if(f.dobM.value=="") {
			f.dobM.focus();
			
			errorField(f.dobM);
			
			if (frsField == "") {
				frsField = f.dobM;
			}
			alertTxt += "Please enter your correct date of birth using the drop-downs.<br />";
			isError = 1;
		}
		else {
			okField(f.dobM);
		}
		
		if(f.dobY.value=="") {
			f.dobY.focus();
			
			errorField(f.dobY);
			
			if (frsField == "") {
				frsField = f.dobY;
			}
			alertTxt += "Please enter your correct date of birth using the drop-downs.<br />";
			isError = 1;
		}
		else {
			okField(f.dobY);
		}
	}
	
	if(f.username.value=="") {
		f.username.focus();
		
		errorField(f.username);
        
        if (frsField == "") {
            frsField = f.username;
        }
        alertTxt += "Please select a desired username. You will be notified if it is not available.<br />";
        isError = 1;
	}
	else {
		okField(f.username);
	}
	
	if(f.password1.value=="") {
		f.password1.focus();
		
		errorField(f.password1);
        
        if (frsField == "") {
            frsField = f.password1;
        }
        alertTxt += "Please enter your desired password into both password boxes.<br />";
        isError = 1;
	}
	else {
		okField(f.password1);
	}
	
	if(f.password2.value=="") {
		f.password2.focus();
		
		errorField(f.password2);
        
        if (frsField == "") {
            frsField = f.password2;
        }
        alertTxt += "Please enter your desired password into both password boxes.<br />";
        isError = 1;
	}
	else {
		okField(f.password2);
	}
	
	if(f.password1.value != f.password2.value) {
		f.password1.focus();
		
		errorField(f.password1);
        
        if (frsField == "") {
            frsField = f.password1;
        }
        alertTxt += "Your passwords do not match. Please re-enter the passwords into both boxes and check you do not have CAPS LOCK turned on.<br />";
        isError = 1;
	}
	else {
		okField(f.password1);
	}
	
	if(f.secretQ.value=="") {
		f.secretQ.focus();
		
		errorField(f.secretQ);
        
        if (frsField == "") {
            frsField = f.secretQ;
        }
        alertTxt += "Please choose a security question (which can be used to reset your password in case you forget it).<br />";
        isError = 1;
	}
	else {
		okField(f.secretQ);
	}
	
	if(f.secretA.value=="") {
		f.secretA.focus();
		
		errorField(f.secretA);
        
        if (frsField == "") {
            frsField = f.secretA;
        }
        alertTxt += "Please enter an answer to your security question (which can be used to reset your password in case you forget it).<br />";
        isError = 1;
	}
	else {
		okField(f.secretA);
	}
	
	if(f.imageVerification.value=="") {
		f.imageVerification.focus();
		
		errorField(f.imageVerification);
        
        if (frsField == "") {
            frsField = f.imageVerification;
        }
        alertTxt += "Please enter the characters from the image into the box to the right (you may also click the link under the image to generate a new image if you are having trouble reading the characters).<br />";
        isError = 1;
	}
	else {
		okField(f.imageVerification);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkPaymentAddress(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.BillingAddress.value=="") {
		f.BillingAddress.focus();
		
		errorField(f.BillingAddress);
		
		if (frsField == "") {
			frsField = f.BillingAddress;
		}
		alertTxt += "Please enter your billing address.<br />";
		isError = 1;
	}
	else {
		okField(f.BillingAddress);
	}
	
	if(f.BillingTown.value=="") {
		f.BillingTown.focus();
		
		errorField(f.BillingTown);
		
		if (frsField == "") {
			frsField = f.BillingTown;
		}
		alertTxt += "Please enter your billing town.<br />";
		isError = 1;
	}
	else {
		okField(f.BillingTown);
	}
	
	if(f.BillingCounty.value=="") {
		f.BillingCounty.focus();
		
		errorField(f.BillingCounty);
		
		if (frsField == "") {
			frsField = f.BillingCounty;
		}
		alertTxt += "Please enter your billing county.<br />";
		isError = 1;
	}
	else {
		okField(f.BillingCounty);
	}
	
	if(f.BillingCountryCode.value=="") {
		f.BillingCountryCode.focus();
		
		errorField(f.BillingCountryCode);
		
		if (frsField == "") {
			frsField = f.BillingCountryCode;
		}
		alertTxt += "Please select your billing country.<br />";
		isError = 1;
	}
	else {
		okField(f.BillingCountryCode);
	}
	
	if(f.BillingPostCode.value=="") {
		f.BillingPostCode.focus();
		
		errorField(f.BillingPostCode);
		
		if (frsField == "") {
			frsField = f.BillingPostCode;
		}
		alertTxt += "Please enter your billing post code.<br />";
		isError = 1;
	}
	else if(!isPostCode(f.BillingPostCode.value) && f.ValidateUKPostCode == 'Y') {
		f.BillingPostCode.focus();
		
		errorField(f.BillingPostCode);
		
		if (frsField == "") {
			frsField = f.BillingPostCode;
		}
		alertTxt += "The billing post code you entered does not appear to be valid.<br />";
		isError = 1;
	}
	else {
		okField(f.BillingPostCode);
	}
	
	if (f.BillingEmail.value == "") {
			
		errorField(f.BillingEmail);
	
		if (frsField == "") {
			frsField = f.BillingEmail;
		}
		alertTxt += "Please enter your billing email address.<br />";
		isError = 1;
	}
	else {
		if (emailCheck(f.BillingEmail.value) != true) {
			errorField(f.BillingEmail);
		
			if (frsField == "") {
				frsField = f.BillingEmail;
			}
			alertTxt += emailCheck(f.BillingEmail.value) + "<br />";
			isError = 1;
		}
		else {
			okField(f.BillingEmail);
		}
	}
	
	if (f.BillingTel.value == "") {
		errorField(f.BillingTel);
	
		if (frsField == "") {
			frsField = f.BillingTel;
		}
		alertTxt += "Please enter your billing telephone number.<br />";
		isError = 1;
	}
	else {
		if (isTel(f.BillingTel.value)==false) {
			errorField(f.BillingTel);
		
			if (frsField == "") {
				frsField = f.BillingTel;
			}
			alertTxt += "Your billing phone number does not appear to be valid!\nPlease enter a valid phone number using only numbers and spaces.<br />";
			isError = 1;
		}
		else {
			okField(f.BillingTel);
		}
	}
	
	if(f.ShippingAddress.value=="") {
		f.ShippingAddress.focus();
		
		errorField(f.ShippingAddress);
		
		if (frsField == "") {
			frsField = f.ShippingAddress;
		}
		alertTxt += "Please enter your shipping address.<br />";
		isError = 1;
	}
	else {
		okField(f.ShippingAddress);
	}
	
	if(f.ShippingTown.value=="") {
		f.ShippingTown.focus();
		
		errorField(f.ShippingTown);
		
		if (frsField == "") {
			frsField = f.ShippingTown;
		}
		alertTxt += "Please enter your shipping town.<br />";
		isError = 1;
	}
	else {
		okField(f.ShippingTown);
	}
	
	if(f.ShippingCounty.value=="") {
		f.ShippingCounty.focus();
		
		errorField(f.ShippingCounty);
		
		if (frsField == "") {
			frsField = f.ShippingCounty;
		}
		alertTxt += "Please enter your shipping county.<br />";
		isError = 1;
	}
	else {
		okField(f.ShippingCounty);
	}
	
	if(f.ShippingCountryCode.value=="") {
		f.ShippingCountryCode.focus();
		
		errorField(f.ShippingCountryCode);
		
		if (frsField == "") {
			frsField = f.ShippingCountryCode;
		}
		alertTxt += "Please select your shipping country.<br />";
		isError = 1;
	}
	else {
		okField(f.ShippingCountryCode);
	}
	
	if(f.ShippingPostCode.value=="") {
		f.ShippingPostCode.focus();
		
		errorField(f.ShippingPostCode);
		
		if (frsField == "") {
			frsField = f.ShippingPostCode;
		}
		alertTxt += "Please enter your shipping post code.<br />";
		isError = 1;
	}
	else if(!isPostCode(f.ShippingPostCode.value) && f.ValidateUKPostCode == 'Y') {
		f.ShippingPostCode.focus();
		
		errorField(f.ShippingPostCode);
		
		if (frsField == "") {
			frsField = f.ShippingPostCode;
		}
		alertTxt += "The shipping post code you entered does not appear to be valid.<br />";
		isError = 1;
	}
	else {
		okField(f.ShippingPostCode);
	}
	
	if (f.ShippingEmail.value == "") {
			
		errorField(f.ShippingEmail);
	
		if (frsField == "") {
			frsField = f.ShippingEmail;
		}
		alertTxt += "Please enter your shipping email address.<br />";
		isError = 1;
	}
	else {
		if (emailCheck(f.ShippingEmail.value) != true) {
			errorField(f.ShippingEmail);
		
			if (frsField == "") {
				frsField = f.ShippingEmail;
			}
			alertTxt += emailCheck(f.ShippingEmail.value) + "<br />";
			isError = 1;
		}
		else {
			okField(f.ShippingEmail);
		}
	}
	
	if (f.ShippingTel.value == "") {
		errorField(f.ShippingTel);
	
		if (frsField == "") {
			frsField = f.ShippingTel;
		}
		alertTxt += "Please enter your shipping telephone number.<br />";
		isError = 1;
	}
	else {
		if (isTel(f.ShippingTel.value)==false) {
			errorField(f.ShippingTel);
		
			if (frsField == "") {
				frsField = f.ShippingTel;
			}
			alertTxt += "Your shipping phone number does not appear to be valid!\nPlease enter a valid phone number using only numbers and spaces.<br />";
			isError = 1;
		}
		else {
			okField(f.ShippingTel);
		}
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkCardDetails(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(!HasSelectedItem(f.CardType)) {
		//f.CardType.focus();
		
		//errorField(f.CardType);
        
        if (frsField == "") {
            frsField = f.CardType;
        }
        alertTxt += "Please select a card type.<br />";
        isError = 1;
	}
	else {
		//okField(f.CardType);
	}
	
	if (isCardNumber(f.CardNumber.value)==false) {
		errorField(f.CardNumber);
	
		if (frsField == "") {
			frsField = f.CardNumber;
		}
		alertTxt += "Your credit/debit card number does not appear to be valid!\nPlease check the number and try again\nIf you continue to have problems, tey entering the number without any spaces.<br />";
		isError = 1;
	}
	else {
		okField(f.CardNumber);
	}
			
	if(f.CardFromMonth.value=="") {
		f.CardFromMonth.focus();
		
		errorField(f.CardFromMonth);
        
        if (frsField == "") {
            frsField = f.CardFromMonth;
        }
        alertTxt += "Please select the start month for the card.<br />";
        isError = 1;
	}
	else {
		okField(f.CardFromMonth);
	}
	
	if(f.CardFromYear.value=="") {
		f.CardFromYear.focus();
		
		errorField(f.CardFromYear);
        
        if (frsField == "") {
            frsField = f.CardFromYear;
        }
        alertTxt += "Please select the start year for the card.<br />";
        isError = 1;
	}
	else {
		okField(f.CardFromYear);
	}
	
	if(f.CardToMonth.value=="") {
		f.CardToMonth.focus();
		
		errorField(f.CardToMonth);
        
        if (frsField == "") {
            frsField = f.CardToMonth;
        }
        alertTxt += "Please select the end month for the card.<br />";
        isError = 1;
	}
	else {
		okField(f.CardToMonth);
	}
	
	if(f.CardToYear.value=="") {
		f.CardToYear.focus();
		
		errorField(f.CardToYear);
        
        if (frsField == "") {
            frsField = f.CardToYear;
        }
        alertTxt += "Please select the end year for the card.<br />";
        isError = 1;
	}
	else {
		okField(f.CardToYear);
	}
	
	if(!checkInteger(f.SecurityCode.value, 3)) {
		f.SecurityCode.focus();
		
		errorField(f.SecurityCode);
        
        if (frsField == "") {
            frsField = f.SecurityCode;
        }
        alertTxt += "The security code you entered is invalid\nThis should be the last three digits from the number on the security strip on the reverse of your card.<br />";
        isError = 1;
	}
	else {
		okField(f.SecurityCode);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkPage(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.pageTitle.value=="") {
		f.pageTitle.focus();
		
		errorField(f.pageTitle);
        
        if (frsField == "") {
            frsField = f.pageTitle;
        }
        alertTxt += "Please enter a title for the page.<br />";
        isError = 1;
	}
	else {
		okField(f.pageTitle);
	}
	
	if(f.editPageRef.value=="") {
		f.editPageRef.focus();
		
		errorField(f.editPageRef);
        
        if (frsField == "") {
            frsField = f.editPageRef;
        }
        alertTxt += "Please enter a valid page reference.<br />";
        isError = 1;
	}
	else if(checkURLText(f.editPageRef.value)== false) {
		f.editPageRef.focus();
		
		errorField(f.editPageRef);
        
        if (frsField == "") {
            frsField = f.editPageRef;
        }
        alertTxt += "Please enter a valid page reference which must not contain spaces or special characters.<br />";
        isError = 1;
	}
	else {
		okField(f.editPageRef);
	}
	
	if(f.pageType.value=="") {
		f.pageType.focus();
		
		errorField(f.pageType);
        
        if (frsField == "") {
            frsField = f.pageType;
        }
        alertTxt += "Please enter a valid page type.<br />";
        isError = 1;
	}
	else {
		okField(f.pageType);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkItem(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.pageTitle.value=="") {
		f.pageTitle.focus();
		
		errorField(f.pageTitle);
        
        if (frsField == "") {
            frsField = f.pageTitle;
        }
        alertTxt += "Please enter a title for the page.<br />";
        isError = 1;
	}
	else {
		okField(f.pageTitle);
	}
	
	if(f.widthType.value=="") {
		f.widthType.focus();
		
		errorField(f.widthType);
        
        if (frsField == "") {
            frsField = f.widthType;
        }
        alertTxt += "Please enter a valid width for this section.<br />";
        isError = 1;
	}
	else {
		okField(f.widthType);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkTopic(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.topicTitle.value=="") {
		f.topicTitle.focus();
		
		errorField(f.topicTitle);
        
        if (frsField == "") {
            frsField = f.topicTitle;
        }
        alertTxt += "Please enter a title for this topic into the box before pressing save.<br />";
        isError = 1;
	}
	else {
		okField(f.topicTitle);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkPost(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	/*
	if(f.postContents.value=="") {
		f.postContents.focus();
		
		errorField(f.postContents);
        
        if (frsField == "") {
            frsField = f.postContents;
        }
        alertTxt += "Please enter your comments into the box before pressing save.<br />";
        isError = 1;
	}
	else {
		okField(f.postContents);
	}*/
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkRecipe(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.recipeName.value=="") {
		f.recipeName.focus();
		
		errorField(f.recipeName);
        
        if (frsField == "") {
            frsField = f.recipeName;
        }
        alertTxt += "Please enter a name for the recipe.<br />";
        isError = 1;
	}
	else {
		okField(f.recipeName);
	}
	
	if(checkURLText(f.recipeRef.value)== false) {
		f.recipeRef.focus();
		
		errorField(f.recipeRef);
        
        if (frsField == "") {
            frsField = f.recipeRef;
        }
        alertTxt += "Please enter a valid recipe reference which must not contain spaces or special characters.<br />";
        isError = 1;
	}
	else {
		okField(f.recipeRef);
	}
	
	if(f.widthType.value=="") {
		f.widthType.focus();
		
		errorField(f.widthType);
        
        if (frsField == "") {
            frsField = f.widthType;
        }
        alertTxt += "Please enter a valid width for this section.<br />";
        isError = 1;
	}
	else {
		okField(f.widthType);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkRecipeStep(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.stepName.value=="") {
		f.stepName.focus();
		
		errorField(f.stepName);
        
        if (frsField == "") {
            frsField = f.stepName;
        }
        alertTxt += "Please enter a name for this step of the recipe.<br />";
        isError = 1;
	}
	else {
		okField(f.stepName);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkProduct(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.prodName.value=="") {
		f.prodName.focus();
		
		errorField(f.prodName);
        
        if (frsField == "") {
            frsField = f.prodName;
        }
        alertTxt += "Please enter the product name.<br />";
        isError = 1;
	}
	else {
		okField(f.prodName);
	}
	
	if(f.prodRef.value=="") {
		f.prodRef.focus();
		
		errorField(f.prodRef);
        
        if (frsField == "") {
            frsField = f.prodRef;
        }
        alertTxt += "Please enter the product reference.<br />";
        isError = 1;
	}
	else if(checkURLText(f.prodRef.value)== false) {
		f.prodRef.focus();
		
		errorField(f.prodRef);
        
        if (frsField == "") {
            frsField = f.prodRef;
        }
        alertTxt += "Please enter a valid product reference which must not contain spaces or special characters.<br />";
        isError = 1;
	}
	else {
		okField(f.prodRef);
	}
	
	if(f.widthType.value=="") {
		f.widthType.focus();
		
		errorField(f.widthType);
        
        if (frsField == "") {
            frsField = f.widthType;
        }
        alertTxt += "Please select the width for the product display.<br />";
        isError = 1;
	}
	else {
		okField(f.widthType);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkProduct2(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.prodName.value=="") {
		f.prodName.focus();
		
		errorField(f.prodName);
        
        if (frsField == "") {
            frsField = f.prodName;
        }
        alertTxt += "Please enter the product name.<br />";
        isError = 1;
	}
	else {
		okField(f.prodName);
	}
	
	if(f.prodRef.value=="") {
		f.prodRef.focus();
		
		errorField(f.prodRef);
        
        if (frsField == "") {
            frsField = f.prodRef;
        }
        alertTxt += "Please enter the product reference.<br />";
        isError = 1;
	}
	else if(checkURLText(f.prodRef.value)== false) {
		f.prodRef.focus();
		
		errorField(f.prodRef);
        
        if (frsField == "") {
            frsField = f.prodRef;
        }
        alertTxt += "Please enter a valid product reference which must not contain spaces or special characters.<br />";
        isError = 1;
	}
	else {
		okField(f.prodRef);
	}
	
	if(f.widthType.value=="") {
		f.widthType.focus();
		
		errorField(f.widthType);
        
        if (frsField == "") {
            frsField = f.widthType;
        }
        alertTxt += "Please select the width for the product display.<br />";
        isError = 1;
	}
	else {
		okField(f.widthType);
	}
	
	if(f.elements["priceDesc[]"]){
		if(f.elements["priceDesc[]"].length){
			for(i=0; i<f.elements["priceDesc[]"].length; i++) {
				if(f.elements["priceDesc[]"][i].value == "") {
					errorField(f.elements["priceDesc[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["priceDesc[]"][i];
					}
					alertTxt += "Please enter a description for price " + i + "<br />";
					isError = 1;
				}
				else {
					okField(f.elements["priceDesc[]"][i]);
				}
		
			}
		}
		else {
			if(f.elements["priceDesc[]"].value == "") {
				errorField(f.elements["priceDesc[]"]);
	
				if (frsField == "") {
					frsField = f.elements["priceDesc[]"];
				}
				alertTxt += "Please enter a description for price.<br />";
				isError = 1;
			}
			else {
				okField(f.elements["priceDesc[]"]);
			}
		}
	}
	
	if(f.elements["priceAmount[]"]){
		if(f.elements["priceAmount[]"].length){
			for(i=0; i<f.elements["priceAmount[]"].length; i++) {
				if(f.elements["priceAmount[]"][i].value == "") {
					errorField(f.elements["priceAmount[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["priceAmount[]"][i];
					}
					alertTxt += "Please enter the amount for price " + i + "<br />";
					isError = 1;
				}
				else if(!isDecimal(f.elements["priceAmount[]"][i].value)) {
					errorField(f.elements["priceAmount[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["priceAmount[]"][i];
					}
					alertTxt += "The price must be a number: " + f.elements["priceAmount[]"][i].value + "<br />";
					isError = 1;
				}
				else {
					okField(f.elements["priceAmount[]"][i]);
				}
			}
		}
		else {
			if(f.elements["priceAmount[]"].value == "") {
				errorField(f.elements["priceAmount[]"]);
	
				if (frsField == "") {
					frsField = f.elements["priceAmount[]"];
				}
				alertTxt += "Please enter the amount for price 1<br />";
				isError = 1;
			}
			else if(!isDecimal(f.elements["priceAmount[]"].value)) {
				errorField(f.elements["priceAmount[]"]);
	
				if (frsField == "") {
					frsField = f.elements["priceAmount[]"];
				}
				alertTxt += "The price must be a number: " + f.elements["priceAmount[]"].value + "<br />";
				isError = 1;
			}
			else {
				okField(f.elements["priceAmount[]"]);
			}
		}
	}
		
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkColours(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";

	if(f.elements["colourName[]"]){
		if(f.elements["colourName[]"].length){
			for(i=0; i<f.elements["colourName[]"].length; i++) {
				if(f.elements["colourName[]"][i].value == "") {
					errorField(f.elements["colourName[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["colourName[]"][i];
					}
					alertTxt += "Please enter the name of the colour for box " + (i+1) + " or remove the box using the X button to the right<br />";
					isError = 1;
				}
				else {
					okField(f.elements["colourName[]"][i]);
				}
		
			}
		}
		else {
			if(f.elements["colourName[]"].value == "") {
				errorField(f.elements["colourName[]"]);
	
				if (frsField == "") {
					frsField = f.elements["colourName[]"];
				}
				alertTxt += "Please enter the name of the colour or press the close (X) button at the top-right of the Manage Colours Dialogue if you do not wish to add colours to the item.<br />";
				isError = 1;
			}
			else {
				okField(f.elements["colourName[]"]);
			}
		}
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkAutograph(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.artistSuggest.value == "" || (f.artistSuggest.value == 'X' && f.artist.value=="")) {
		f.artist.focus();
		
		errorField(f.artist);
        
        if (frsField == "") {
            frsField = f.artist;
        }
        alertTxt += "Please enter a valid artist for the autograph or choose one from the drop-down.<br />";
        isError = 1;
	}
	else {
		okField(f.artist);
	}
	
	if(f.titleSuggest.value == 'X' && f.title.value=="") {
		f.title.focus();
		
		errorField(f.title);
        
        if (frsField == "") {
            frsField = f.title;
        }
        alertTxt += "Please enter a valid title for the autograph or choose one from the drop-down.<br />";
        isError = 1;
	}
	else {
		okField(f.title);
	}
	
	if(f.price.value=="") {
		f.price.focus();
		
		errorField(f.price);
        
        if (frsField == "") {
            frsField = f.price;
        }
        alertTxt += "Please enter a price for the autograph.<br />";
        isError = 1;
	}
	else if(!isDecimal(f.price.value)) {
		errorField(f.price);

		if (frsField == "") {
			frsField = f.price;
		}
		alertTxt += "The price must be a number: " + f.price.value + "<br />";
		isError = 1;
	}
	else {
		okField(f.price);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkAutographSelection(drop, hiddenSpan, hiddenFld) {
	hideSpan = document.getElementById(hiddenSpan);
	hideFld  = document.getElementById(hiddenFld);
	
	if(drop.value == 'X') {
		hideSpan.style.display = 'block';
		hideFld.value = '';
		hideFld.select();
	}
	else {
		hideSpan.style.display = 'none';
		hideFld.value = '';
		hideFld.select();
	}
}

function checkDeliveryMethod(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.deliveryDesc.value=="") {
		f.deliveryDesc.focus();
		
		errorField(f.deliveryDesc);
        
        if (frsField == "") {
            frsField = f.deliveryDesc;
        }
        alertTxt += "Please enter a description for the delivery method.<br />";
        isError = 1;
	}
	else {
		okField(f.deliveryDesc);
	}
	
	if(f.price.value=="") {
		f.price.focus();
		
		errorField(f.price);
        
        if (frsField == "") {
            frsField = f.price;
        }
        alertTxt += "Please enter a price for this delivery method.<br />";
        isError = 1;
	}
	else if(!isDecimal(f.price.value)) {
		errorField(f.price);

		if (frsField == "") {
			frsField = f.price;
		}
		alertTxt += "The price must be a number: " + f.price.value + "<br />";
		isError = 1;
	}
	else {
		okField(f.price);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkAddBasket(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.elements["itemID[]"]){
		if(f.elements["itemID[]"].length){
			for(i=0; i<f.elements["itemID[]"].length; i++) {
				if(f.elements["itemID[]"][i].value == "") {
					errorField(f.elements["itemID[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["itemID[]"][i];
					}
					alertTxt += "Item ID not specified for item " + f.elements["itemName[]"][i].value + "<br />";
					isError = 1;
				}
				else {
					okField(f.elements["itemID[]"][i]);
				}
		
			}
		}
		else {
			if(f.elements["itemID[]"].value == "") {
				errorField(f.elements["itemID[]"]);
	
				if (frsField == "") {
					frsField = f.elements["itemID[]"];
				}
				alertTxt += "Item ID not specified for item " + f.elements["itemName[]"].value + "<br />";
				isError = 1;
			}
			else {
				okField(f.elements["itemID[]"]);
			}
		}
	}
	
	var qty = 0;
	if(f.elements["qty[]"]){
		if(f.elements["qty[]"].length){
			for(i=0; i<f.elements["qty[]"].length; i++) {
				if(f.elements["qty[]"][i].value == "") {
					errorField(f.elements["qty[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["qty[]"][i];
					}
					alertTxt += "Invalid quantity for item " + f.elements["itemName[]"][i].value + "<br />";
					isError = 1;
				}
				else if(!isDecimal(f.elements["qty[]"][i].value)) {
					errorField(f.elements["qty[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["qty[]"][i];
					}
					alertTxt += "The quantity must be a number: " + f.elements["qty[]"][i].value + "<br />";
					isError = 1;
				}
				else {
					okField(f.elements["qty[]"][i]);
					qty += f.elements["qty[]"][i].value;
				}
			}
		}
		else {
			if(f.elements["qty[]"].value == "") {
				errorField(f.elements["qty[]"]);
	
				if (frsField == "") {
					frsField = f.elements["qty[]"];
				}
				alertTxt += "Invalid quantity for item " + f.elements["itemName[]"][i].value + "<br />";
				isError = 1;
			}
			else if(!isDecimal(f.elements["qty[]"].value)) {
				errorField(f.elements["qty[]"]);
	
				if (frsField == "") {
					frsField = f.elements["qty[]"];
				}
				alertTxt += "The quantity must be a number: " + f.elements["qty[]"][i].value + "<br />";
				isError = 1;
			}
			else {
				okField(f.elements["qty[]"]);
				qty += f.elements["qty[]"].value;
			}
		}
	}
	
	if(qty < 1) {
		alertTxt += "Before pressing \"Add To Basket\" you much select a quantity for any of the items you wish to purchase.<br />";
		isError = 1;
	}
		
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkAddBasket2(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.elements["itemID[]"]){
		if(f.elements["itemID[]"].length){
			for(i=0; i<f.elements["itemID[]"].length; i++) {
				if(f.elements["itemID[]"][i].value == "") {
					errorField(f.elements["itemID[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["itemID[]"][i];
					}
					alertTxt += "Item ID not specified for item " + f.elements["itemName[]"][i].value + "<br />";
					isError = 1;
				}
				else {
					okField(f.elements["itemID[]"][i]);
				}
		
			}
		}
		else {
			if(f.elements["itemID[]"].value == "") {
				errorField(f.elements["itemID[]"]);
	
				if (frsField == "") {
					frsField = f.elements["itemID[]"];
				}
				alertTxt += "Item ID not specified for item " + f.elements["itemName[]"].value + "<br />";
				isError = 1;
			}
			else {
				okField(f.elements["itemID[]"]);
			}
		}
	}
	
	var qty = 0;
	if(f.elements["qty[]"]){
		if(f.elements["qty[]"].length){
			for(i=0; i<f.elements["qty[]"].length; i++) {
				if(f.elements["qty[]"][i].value == "") {
					errorField(f.elements["qty[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["qty[]"][i];
					}
					alertTxt += "Invalid quantity for item " + f.elements["itemName[]"][i].value + "<br />";
					isError = 1;
				}
				else if(!isDecimal(f.elements["qty[]"][i].value)) {
					errorField(f.elements["qty[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["qty[]"][i];
					}
					alertTxt += "The quantity must be a number: " + f.elements["qty[]"][i].value + "<br />";
					isError = 1;
				}
				else {
					okField(f.elements["qty[]"][i]);
					qty += f.elements["qty[]"][i].value;
				}
			}
		}
		else {
			if(f.elements["qty[]"].value == "") {
				errorField(f.elements["qty[]"]);
	
				if (frsField == "") {
					frsField = f.elements["qty[]"];
				}
				alertTxt += "Invalid quantity for item " + f.elements["itemName[]"][i].value + "<br />";
				isError = 1;
			}
			else if(!isDecimal(f.elements["qty[]"].value)) {
				errorField(f.elements["qty[]"]);
	
				if (frsField == "") {
					frsField = f.elements["qty[]"];
				}
				alertTxt += "The quantity must be a number: " + f.elements["qty[]"][i].value + "<br />";
				isError = 1;
			}
			else {
				okField(f.elements["qty[]"]);
				qty += f.elements["qty[]"].value;
			}
		}
	}
	
	if(qty < 1) {
		alertTxt += "Before pressing \"Add To Basket\" you much select a quantity for any of the items you wish to purchase.<br />";
		isError = 1;
	}
	
	if(f.elements["colourID[]"]){
		if(f.elements["colourID[]"].length){
			for(i=0; i<f.elements["colourID[]"].length; i++) {
				if(f.elements["colourID[]"][i].value == "") {
					if(f.elements["qty[]"][i].value > 0) {
						errorField(f.elements["colourID[]"][i]);
		
						if (frsField == "") {
							frsField = f.elements["colourID[]"][i];
						}
						alertTxt += "Invalid colour for \"" + f.elements["itemName[]"][i].value + "\"<br />";
						isError = 1;
					}
				}
				else if(!isDecimal(f.elements["colourID[]"][i].value)) {
					errorField(f.elements["colourID[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["colourID[]"][i];
					}
					alertTxt += "The colour must be a number: " + f.elements["colourID[]"][i].value + "<br />";
					isError = 1;
				}
				else {
					okField(f.elements["colourID[]"][i]);
				}
			}
		}
		else {
			if(f.elements["colourID[]"].value == "") {
				if(f.elements["qty[]"].value > 0) {
					errorField(f.elements["colourID[]"]);
		
					if (frsField == "") {
						frsField = f.elements["colourID[]"];
					}
					alertTxt += "Invalid colour for \"" + f.elements["itemName[]"].value + "\"<br />";
					isError = 1;
				}
			}
			else if(!isDecimal(f.elements["colourID[]"].value)) {
				errorField(f.elements["colourID[]"]);
	
				if (frsField == "") {
					frsField = f.elements["colourID[]"];
				}
				alertTxt += "The colour must be a number: " + f.elements["colourID[]"][i].value + "<br />";
				isError = 1;
			}
			else {
				okField(f.elements["colourID[]"]);
			}
		}
	}
		
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkAddOffer(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.elements["itemID[]"]){
		if(f.elements["itemID[]"].length){
			for(i=0; i<f.elements["itemID[]"].length; i++) {
				if(f.elements["itemID[]"][i].value == "") {
					errorField(f.elements["itemID[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["itemID[]"][i];
					}
					alertTxt += "Item ID not specified for item " + f.elements["itemName[]"][i].value + "<br />";
					isError = 1;
				}
				else {
					okField(f.elements["itemID[]"][i]);
				}
		
			}
		}
		else {
			if(f.elements["itemID[]"].value == "") {
				errorField(f.elements["itemID[]"]);
	
				if (frsField == "") {
					frsField = f.elements["itemID[]"];
				}
				alertTxt += "Item ID not specified for item " + f.elements["itemName[]"].value + "<br />";
				isError = 1;
			}
			else {
				okField(f.elements["itemID[]"]);
			}
		}
	}
	
	var qty = 0;
	if(f.elements["qty[]"]){
		if(f.elements["qty[]"].length){
			for(i=0; i<f.elements["qty[]"].length; i++) {
				if(f.elements["qty[]"][i].value == "") {
					errorField(f.elements["qty[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["qty[]"][i];
					}
					alertTxt += "Invalid quantity for item " + f.elements["itemName[]"][i].value + "<br />";
					isError = 1;
				}
				else if(!isDecimal(f.elements["qty[]"][i].value)) {
					errorField(f.elements["qty[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["qty[]"][i];
					}
					alertTxt += "The quantity must be a number: " + f.elements["qty[]"][i].value + "<br />";
					isError = 1;
				}
				else {
					okField(f.elements["qty[]"][i]);
					qty += f.elements["qty[]"][i].value;
				}
			}
		}
		else {
			if(f.elements["qty[]"].value == "") {
				errorField(f.elements["qty[]"]);
	
				if (frsField == "") {
					frsField = f.elements["qty[]"];
				}
				alertTxt += "Invalid quantity for item " + f.elements["itemName[]"][i].value + "<br />";
				isError = 1;
			}
			else if(!isDecimal(f.elements["qty[]"].value)) {
				errorField(f.elements["qty[]"]);
	
				if (frsField == "") {
					frsField = f.elements["qty[]"];
				}
				alertTxt += "The quantity must be a number: " + f.elements["qty[]"][i].value + "<br />";
				isError = 1;
			}
			else {
				okField(f.elements["qty[]"]);
				qty += f.elements["qty[]"].value;
			}
		}
	}
	
	if(qty < 1) {
		alertTxt += "Before pressing \"Add To Basket\" you much select a quantity for any of the items you wish to purchase.<br />";
		isError = 1;
	}
	
	if(f.elements["colourID[]"]){
		if(f.elements["colourID[]"].length){
			for(i=0; i<f.elements["colourID[]"].length; i++) {
				if(f.elements["colourID[]"][i].value == "") {
					//if(f.elements["qty[]"][i].value > 0) {
						errorField(f.elements["colourID[]"][i]);
		
						if (frsField == "") {
							frsField = f.elements["colourID[]"][i];
						}
						alertTxt += "You have not selected a colour for \"" + f.elements["priceDesc[]"][i].value + "\"<br />";
						isError = 1;
					//}
				}
				else if(!isDecimal(f.elements["colourID[]"][i].value)) {
					errorField(f.elements["colourID[]"][i]);
	
					if (frsField == "") {
						frsField = f.elements["colourID[]"][i];
					}
					alertTxt += "The colour must be a number: " + f.elements["colourID[]"][i].value + "<br />";
					isError = 1;
				}
				else {
					okField(f.elements["colourID[]"][i]);
				}
			}
		}
		else {
			if(f.elements["colourID[]"].value == "") {
				//if(f.elements["qty[]"].value > 0) {
					errorField(f.elements["colourID[]"]);
		
					if (frsField == "") {
						frsField = f.elements["colourID[]"];
					}
					alertTxt += "You have not selected a colour for \"" + f.elements["priceDesc[]"].value + "\"<br />";
					isError = 1;
				//}
			}
			else if(!isDecimal(f.elements["colourID[]"].value)) {
				errorField(f.elements["colourID[]"]);
	
				if (frsField == "") {
					frsField = f.elements["colourID[]"];
				}
				alertTxt += "The colour must be a number: " + f.elements["colourID[]"][i].value + "<br />";
				isError = 1;
			}
			else {
				okField(f.elements["colourID[]"]);
			}
		}
	}
		
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkSubmitBasket(f) {
	var isError
    var alertTxt
    var frsField

	var acceptTerms = document.getElementById('acceptTerms').checked;
	
    alertTxt = "";
	
	if(f.userID.value=="") {
        location.href = "index.php?act=Login";
		return false;
	}
	else {
		if(f.deliveryAmount.value=="" || f.deliveryAmount.value=="0" || f.deliveryAmount.value=="0.00") {
			if (frsField == "") {
				frsField = f.deliveryAmount;
			}
			alertTxt += "Please choose your preferred delivery method.<br />";
			isError = 1;
		}
		
		if(!acceptTerms) {
			
			if (frsField == "") {
				frsField = acceptTerms;
			}
			alertTxt += "You must accept the terms and conditions before you can submit a payment.<br />";
			isError = 1;
		}
		
		if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
		}
		else {
			return true;
		}
	}
}

function checkEnquiry(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.CustName.value=="") {
		f.CustName.focus();
		
		errorField(f.CustName);
        
        if (frsField == "") {
            frsField = f.CustName;
        }
        alertTxt += "Your name cannot be blank.<br />";
        isError = 1;
	}
	else {
		okField(f.CustName);
	}
	
	if(isSet(f.Tel)) {
		if((f.Email.value=="") && (f.Tel.value=="")) {
			errorField(f.Email);
			
			if (frsField == "") {
				frsField = f.Email;
			}
			alertTxt += "Your email address and phone number cannot both be empty as we will be unable to contact you.<br />";
			isError = 1;
		}
		else {
			okField(f.Email);
		}
	}
	else {
		if((f.Email.value=="")) {
			errorField(f.Email);
			
			if (frsField == "") {
				frsField = f.Email;
			}
			alertTxt += "Your email address cannot be empty as we will be unable to contact you.<br />";
			isError = 1;
		}
		else {
			okField(f.Email);
		}
	}
	
	if(isSet(f.Tel)) {
		if (f.Tel.value != "") {
			if (isTel(f.Tel.value)==false) {
				errorField(f.Tel);
			
				if (frsField == "") {
					frsField = f.Tel;
				}
				alertTxt += "Your phone number does not appear to be valid!\nPlease enter a valid phone number using only numbers and spaces.<br />";
				isError = 1;
			}
			else {
				okField(f.Tel);
			}
		}
		else {
			okField(f.Tel);
		}
	}

	if (f.Email.value != "") {
		if (emailCheck(f.Email.value) != true) {
			errorField(f.Email);
        
			if (frsField == "") {
				frsField = f.Email;
			}
			alertTxt += emailCheck(f.Email.value) + "<br />";
			isError = 1;
		}
		else {
			okField(f.Email);
		}
	}
	else {
		okField(f.Email);
	}
	
	if(f.Comments.value=="") {
		errorField(f.Comments);
        
		if (frsField == "") {
			frsField = f.Comments;
		}
		alertTxt += "Please enter details of your enquiry into the comments box.<br />";
		isError = 1;
	}
	else {
		okField(f.Comments);
	}
	
	if(isSet(f.imageVerification)) {
		if(f.imageVerification.value=="") {
			f.imageVerification.focus();
			
			errorField(f.imageVerification);
			
			if (frsField == "") {
				frsField = f.imageVerification;
			}
			alertTxt += "Please enter the characters from the image into the box to the right (you may also click the link under the image to generate a new image if you are having trouble reading the characters).<br />";
			isError = 1;
		}
		else {
			okField(f.imageVerification);
		}
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }

}

function checkAList(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if (!isPostCode(f.PostCode.value)) {
		errorField(f.PostCode);
	
		if (frsField == "") {
			frsField = f.PostCode;
		}
		alertTxt += "The post code you entered is not in the correct format. Please enter a valid UK post code<br />";
		isError = 1;
	}
	else {
		okField(f.PostCode);
	}
	
	if((f.Tel.value=="") && (f.Email.value=="")) {
		errorField(f.Tel);
		errorField(f.Email);
		
		if (frsField == "") {
			frsField = f.Email;
		}
		alertTxt += "Your email address and phone number cannot both be empty as we will be unable to contact you.<br />";
		isError = 1;
	}
	else {
		okField(f.Tel);
		okField(f.Email);
	}
	
	if (f.Tel.value != "") {
		if (isTel(f.Tel.value)==false) {
			errorField(f.Tel);
		
			if (frsField == "") {
				frsField = f.Tel;
			}
			alertTxt += "Your phone number does not appear to be valid!\nPlease enter a valid phone number using only numbers and spaces.<br />";
			isError = 1;
		}
		else {
			okField(f.Tel);
		}
	}
	else {
		//okField(f.Tel);
	}

	if (f.Email.value != "") {
		if (emailCheck(f.Email.value) != true) {
			errorField(f.Email);
        
			if (frsField == "") {
				frsField = f.Email;
			}
			alertTxt += emailCheck(f.Email.value) + "<br />";
			isError = 1;
		}
		else {
			okField(f.Email);
		}
	}
	else {
		//okField(f.Email);
	}
	
	if(f.Name.value=="") {
		errorField(f.Name);
        
		if (frsField == "") {
			frsField = f.Name;
		}
		alertTxt += "Please enter your name so we know who to ask for when contacting you.<br />";
		isError = 1;
	}
	else {
		okField(f.Name);
	}
	
	if(!HasSelectedItem(f.Distance)) {
		//f.CardType.focus();
		
		errorField(document.getElementById('Distance'));
        
        if (frsField == "") {
            frsField = f.Distance;
        }
        alertTxt += "Please select at least one service.<br />";
        isError = 1;
	}
	else {
		okField(document.getElementById('Distance'));
	}
	
	if(!HasSelectedItem(f.elements["Services[]"])) {
		//f.CardType.focus();
		
		errorField(document.getElementById('servicesList'));
        
        if (frsField == "") {
            frsField = f.elements["Services[]"];
        }
        alertTxt += "Please select at least one service.<br />";
        isError = 1;
	}
	else {
		okField(document.getElementById('servicesList'));
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkCompaniesList(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(!HasSelectedItem(f.elements["Companies[]"])) {
		//f.CardType.focus();
		
		errorField(document.getElementById('listing'));
        
        if (frsField == "") {
            frsField = f.elements["Companies[]"];
        }
        alertTxt += "Please select at least one company for your message to be sent to.<br />";
        isError = 1;
	}
	else {
		okField(document.getElementById('listing'));
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function checkEmail(f) {
	var isError
    var alertTxt
    var frsField
    
    alertTxt = "";
	
	if(f.EmailBody.value=="") {
		errorField(f.EmailBody);
        
		if (frsField == "") {
			frsField = f.EmailBody;
		}
		alertTxt += "Please enter your email into the box below, containing information relating to your enquiry.<br />";
		isError = 1;
	}
	else {
		okField(f.EmailBody);
	}
	
	if(f.imageVerification.value=="") {
		errorField(f.imageVerification);
        
		if (frsField == "") {
			frsField = f.imageVerification;
		}
		alertTxt += "Please enter the verification code into the box.<br />";
		isError = 1;
	}
	else {
		okField(f.imageVerification);
	}
	
	if(isError == 1) {
		alertTxt.replace('\n', '<br />')
        reEnableForm(f, frsField, alertTxt);
        return false;
    }
    else {
        return true;
    }
}

function priceFilterShowHide() {
	filterOptions = document.getElementById('priceFilter');
	
	if(filterOptions.style.display == 'none') {
		filterOptions.style.display = 'block';
	}
	else {
		filterOptions.style.display = 'none';
	}
}

function hoverStars(objectID, starNum, userRating, objectName, objectType) {
	var ratingText = document.getElementById('ratingText-' + objectID);
	
	if(userRating != "") {
		ratingText.innerHTML = '<font color="#FF0000"><strong>You have already rated this ' + objectType + '!</strong></font>';
	}
	else {
		var star1 = document.getElementById(objectID + '-star1');
		var star2 = document.getElementById(objectID + '-star2');
		var star3 = document.getElementById(objectID + '-star3');
		var star4 = document.getElementById(objectID + '-star4');
		var star5 = document.getElementById(objectID + '-star5');

		if(starNum >=1) {
			star1.src= '/images/ratings/star.png';
		}
		else {
			star1.src= '/images/ratings/blankstar.png';
		}
		
		if(starNum >=2) {
			star2.src= '/images/ratings/star.png';
		}
		else {
			star2.src= '/images/ratings/blankstar.png';
		}
		
		if(starNum >=3) {
			star3.src= '/images/ratings/star.png';
		}
		else {
			star3.src= '/images/ratings/blankstar.png';
		}
		
		if(starNum >=4) {
			star4.src= '/images/ratings/star.png';
		}
		else {
			star4.src= '/images/ratings/blankstar.png';
		}
		
		if(starNum >=5) {
			star5.src= '/images/ratings/star.png';
		}
		else {
			star5.src= '/images/ratings/blankstar.png';
		}
		
		ratingText.innerHTML = 'Rate this ' + objectType + ' <strong>' + (starNum * 2) * 10 + '%</strong>?';
	}
}

function setStars(formName, objectType, rating, userRating) {
	var starForm = document.getElementById(formName);
	
	if(userRating != "") {
		var J = jQuery.noConflict();
		
		alertStr = 'You have already rated this ' + objectType + ' as ' + userRating + '% and cannot rate it more than once!';
		
		J('<div id="dialog" title="Already Rated">' + alertStr + '</div>').dialog({
			modal: true,
			buttons: {
				Ok: function() {
					J(this).dialog('close');
				}
			}
		});
		return false;
	}
	else {
		starForm.rating.value = rating;
		starForm.submit();
	}
}

function returnStars(objectID, objectType, starNum, star1V, star2V, star3V, star4V, star5V, userRating) {
	var ratingText = document.getElementById('ratingText-' + objectID);
	
	if(userRating != "") {
		ratingText.innerHTML = 'Your rating of this ' + objectType + ' was <strong>' + userRating + '</strong>%';
	}
	else {
		var star1 = document.getElementById(objectID + '-star1');
		var star2 = document.getElementById(objectID + '-star2');
		var star3 = document.getElementById(objectID + '-star3');
		var star4 = document.getElementById(objectID + '-star4');
		var star5 = document.getElementById(objectID + '-star5');
		
		ratingText.innerHTML = '';
		
		if(star1V == 2) {
			star1.src= '/images/ratings/star.png';
		}
		else if(star1V == 1) {
			star1.src= '/images/ratings/halfstar.png';
		}
		else {
			star1.src= '/images/ratings/blankstar.png';
		}
		
		if(star2V == 2) {
			star2.src= '/images/ratings/star.png';
		}
		else if(star2V == 1) {
			star2.src= '/images/ratings/halfstar.png';
		}
		else {
			star2.src= '/images/ratings/blankstar.png';
		}
		
		if(star3V == 2) {
			star3.src= '/images/ratings/star.png';
		}
		else if(star3V == 1) {
			star3.src= '/images/ratings/halfstar.png';
		}
		else {
			star3.src= '/images/ratings/blankstar.png';
		}
		
		if(star4V == 2) {
			star4.src= '/images/ratings/star.png';
		}
		else if(star4V == 1) {
			star4.src= '/images/ratings/halfstar.png';
		}
		else {
			star4.src= '/images/ratings/blankstar.png';
		}
		
		if(star5V == 2) {
			star5.src= '/images/ratings/star.png';
		}
		else if(star5V == 1) {
			star5.src= '/images/ratings/halfstar.png';
		}
		else {
			star5.src= '/images/ratings/blankstar.png';
		}
	}
}

function copyBillingAddr(chkBox, frm) {
	if(chkBox.checked) {
		if(AddressEntry.BillingAddress.value == '' || AddressEntry.BillingTown.value == '' || AddressEntry.BillingCounty.value == '' || AddressEntry.BillingPostCode.value == '') {
			// Fields are missing
			chkBox.checked = false;
    
			var alertStr = 'Your billing address must be completed before you can copy the details to the shipping address. Please complete the billing address details and tick the box again';
			
			var J = jQuery.noConflict();
				
			J('<div id="dialog" title="Notification">' + alertStr + '</div>').dialog({
				modal: true,
				buttons: {
					Ok: function() {
						J(this).dialog('close');
					}
				}
			});
			return false;
		}
		else {
			//Billing address is complete so populate shipping address with billing details
			AddressEntry.ShippingAddress.value  = AddressEntry.BillingAddress.value;
			AddressEntry.ShippingTown.value     = AddressEntry.BillingTown.value;
			AddressEntry.ShippingCounty.value   = AddressEntry.BillingCounty.value;
			AddressEntry.ShippingPostCode.value = AddressEntry.BillingPostCode.value;
			AddressEntry.ShippingEmail.value    = AddressEntry.BillingEmail.value;
			AddressEntry.ShippingTel.value      = AddressEntry.BillingTel.value;
		}
	}
	else {
		AddressEntry.ShippingAddress.value  = '';
		AddressEntry.ShippingTown.value     = '';
		AddressEntry.ShippingCounty.value   = '';
		AddressEntry.ShippingPostCode.value = '';
		AddressEntry.ShippingEmail.value    = '';
		AddressEntry.ShippingTel.value      = '';
	}
}

function clearSearchBox(tbox, defaultVal) {
	if(tbox.value == defaultVal) {
		tbox.value = '';	
	}
	else if(tbox.value == '') {
		tbox.value = defaultVal;	
	}
}

function setcookie(user, pass)

{

  var username = user;

  var pword = pass;

  var all=username+"/"+pword;

  var user_cookie = "username="+escape(username);

  var pass_cookie = "password="+escape(pword);

  document.cookie = user_cookie;

  document.cookie = pass_cookie;

}

  

function delcookie()

{

  var user_cookie = "username=";

  var pass_cookie = "password=";

  document.cookie = user_cookie;

  document.cookie = pass_cookie;

}



function noUser()

{      

  window.alert($noUserMsg);

  htmlMsg($noUserMsg);

}



function noPass()

{

  window.alert($noPassMsg);

  htmlMsg($noPassMsg);

}



function noForename()

{

  window.alert($blankForename);

  htmlMsg($blankForename);

}



function noSurname()

{

  window.alert($blankSurname);

  htmlMsg($blankSurname);

}



function noAddress()

{

  window.alert($blankAddress);

  htmlMsg($blankAddress);

}



function passMismatch()

{

  window.alert($passNoMatch);

  htmlMsg($passNoMatch);

}

  

function htmlMsg(msg)

{

  loginError.innerText = msg;

}



function emailCheck (emailStr) {



/* The following variable tells the rest of the function whether or not

to verify that the address ends in a two-letter country or well-known

TLD.  1 means check it, 0 means don't. */



var checkTLD=1;



/* The following is the list of known TLDs that an e-mail address must end with. */



var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;



/* The following pattern is used to check if the entered e-mail address

fits the user@domain format.  It also is used to separate the username

from the domain. */



var emailPat=/^(.+)@(.+)$/;



/* The following string represents the pattern for matching all special

characters.  We don't want to allow special characters in the address. 

These characters include ( ) < > @ , ; : \ " . [ ] */



var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";



/* The following string represents the range of characters allowed in a 

username or domainname.  It really states which chars aren't allowed.*/



var validChars="\[^\\s" + specialChars + "\]";



/* The following pattern applies if the "user" is a quoted string (in

which case, there are no rules about which characters are allowed

and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com

is a legal e-mail address. */



var quotedUser="(\"[^\"]*\")";



/* The following pattern applies for domains that are IP addresses,

rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal

e-mail address. NOTE: The square brackets are required. */



var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;



/* The following string represents an atom (basically a series of non-special characters.) */



var atom=validChars + '+';



/* The following string represents one word in the typical username.

For example, in john.doe@somewhere.com, john and doe are words.

Basically, a word is either an atom or quoted string. */



var word="(" + atom + "|" + quotedUser + ")";



// The following pattern describes the structure of the user



var userPat=new RegExp("^" + word + "(\\." + word + ")*$");



/* The following pattern describes the structure of a normal symbolic

domain, as opposed to ipDomainPat, shown above. */



var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");



/* Finally, let's start trying to figure out if the supplied address is valid. */



/* Begin with the coarse pattern to simply break up user@domain into

different pieces that are easy to analyze. */



var matchArray=emailStr.match(emailPat);



if (matchArray==null) {



/* Too many/few @'s or something; basically, this address doesn't

even fit the general mould of a valid e-mail address. */



return "Your email address appears to be incorrect";

return false;

}

var user=matchArray[1];

var domain=matchArray[2];



// Start by checking that only basic ASCII characters are in the strings (0-127).



for (i=0; i<user.length; i++) {

if (user.charCodeAt(i)>127) {

return "Your email address appears to be incorrect (before the '@')";

return false;

   }

}

for (i=0; i<domain.length; i++) {

if (domain.charCodeAt(i)>127) {

return "Your email address appears to be incorrect (after the '@')";

return false;

   }

}



// See if "user" is valid 



if (user.match(userPat)==null) {



// user is not valid



return "Your email address appears to be incorrect (before the '@')";

return false;

}



/* if the e-mail address is at an IP address (as opposed to a symbolic

host name) make sure the IP address is valid. */



var IPArray=domain.match(ipDomainPat);

if (IPArray!=null) {



// this is an IP address



for (var i=1;i<=4;i++) {

if (IPArray[i]>255) {

return "Destination IP address is invalid!";

return false;

   }

}

return "";

}



// Domain is symbolic name.  Check if it's valid.

 

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("Your email address appears to be incorrect (after the '@')");

return false;

   }

}



/* domain name seems valid, but now make sure that it ends in a

known top-level domain (like com, edu, gov) or a two-letter word,

representing country (uk, nl), and that there's a hostname preceding 

the domain or country. */



if (checkTLD && domArr[domArr.length-1].length!=2 && 

domArr[domArr.length-1].search(knownDomsPat)==-1) {

alert("The email address must end in a well-known domain or two letter " + "country.");

return false;

}



// Make sure there's a host name preceding the domain.



if (len<2) {

alert("The email address is missing a hostname!");

return false;

}



// If we've gotten this far, everything's valid!

return true;

}


/**
 * DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year

var dtCh= "/";
var minYear=1900;
var maxYear=2100;

var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isSet(objToTest) {
	if (null == objToTest) {
		return false;
	}
	if ("undefined" == typeof(objToTest) ) {
		return false;
	}
	return true;

}

function GetSelectedItem(items) {

	chosen = ""
	len = items.length
	
	for (i = 0; i <len; i++) {
		if (items[i].checked) {
			chosen = items[i].value
		}
	}
	
	if (chosen == "") {
		return "0";
	}
	else {
		return chosen; 
	}
}

function HasSelectedItem(items) {

	chosen = ""
	len = items.length
	
	for (i = 0; i <len; i++) {
		if (items[i].checked) {
			chosen = items[i].value
		}
	}
	
	if (chosen == "") {
		return false;
	}
	else {
		return true; 
	}
}

function checkAllSub(cbMaster, cbArray, groupID) {
	boxes = document.getElementsByName(cbArray);
	
	for (var i=0;i< boxes.length;i++) {
		boxStr =  boxes[i].id;
		idPos = boxStr.indexOf('-');
		boxStrLen = boxStr.length;
		masterID = boxStr.substr(0, idPos);
		childID = boxStr.substr(idPos + 1, boxStrLen - idPos);
		
		// Only tick boxes within this category unless groupID is zero
		if(groupID == 0) {
			boxes[i].checked = cbMaster.checked;
		}
		else if(masterID == groupID) {
			boxes[i].checked = cbMaster.checked;
		}
	}
}

function clearField(f1, fldID) {
	var f2, f1text, f2text;
	
	f2 = document.getElementById(fldID);
	
	f1text = f1.value
	f2text = f2.value
	
	// Trim leading \n\r tags which get added causing the strings not to match
	f1text = f1text.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
	f2text = f2text.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
	

	if(f1text == f2text) {
		f1.value='';	
	}
}

function checkField(f1, fldID) {
	var f2, f1text, f2text;
	
	f2 = document.getElementById(fldID);
	
	f1text = f1.value
	f2text = f2.value
	
	// Trim leading \n\r tags which get added causing the strings not to match
	f1text = f1text.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
	f2text = f2text.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
	
	if(f1text == f2text) {

	}
	else {
		if(f1text == '') {
			f1.value = f2text
		}
	}
}

function checkURLText(sText)
{
   var InvalidChars = " /\:&?^\"";
   var isValid=true;
   var Char;
   var intCnt;

 
   for (intCnt = 0; intCnt < sText.length && isValid == true; intCnt++) 
      { 
      Char = sText.charAt(intCnt); 
      if (InvalidChars.indexOf(Char) == -1) 
         {
         	isValid = true;
         }
		 else {
			 isValid = false;
		 }
      }
   return isValid;
   
}

function isEmpty(aTextField){
    var re = /\s/g; //Match any white space including space, tab, form-feed, etc. 
    RegExp.multiline = true; // IE support
    var str = aTextField.replace(re, "");

    if (str.length == 0) {
        return true;
    } else {
        return false;
    }
}

function isTime(aTextField){
    var re = /^([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,2}$/;
    RegExp.multiline = true; // IE support
    var str = aTextField.replace(re, "");

    if(aTextField.length == 0) {
        return false;
    }
    else if (str.length == 0) {
        return true;
    } else {
        return false;
    }
}

function isPostCode(aTextField){
    var re = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$/;
    RegExp.multiline = true; // IE support
    var str = aTextField.replace(re, "");

    if(aTextField.length == 0) {
        return false;
    }
    else if (str.length == 0) {
        return true;
    } else {
        return false;
    }
}

function isCardNumber(aTextField){
    var re = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/;
    RegExp.multiline = true; // IE support
    var str;
	
	str = aTextField.replace(/ /gi, "");
	str = str.replace(/-/gi, "");
	str = str.replace(re, "");

    if(aTextField.length == 0) {
        return false;
    }
    else if (str.length == 0) {
        return true;
    } else {
        return false;
    }
}

function isInteger(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
   var intCnt;

 
   for (intCnt = 0; intCnt < sText.length && IsNumber == true; intCnt++) 
      { 
      Char = sText.charAt(intCnt); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
   
function checkInteger(num, chars)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
   var intCnt;

 	if(num.length != chars) {
		IsNumber = false;
	}
 	else {
	   for (intCnt = 0; intCnt < num.length && IsNumber == true; intCnt++) 
		  { 
		  Char = num.charAt(intCnt); 
		  if (ValidChars.indexOf(Char) == -1) 
			 {
			 IsNumber = false;
			 }
		 }
	}
	 
   return IsNumber;
   
}

function isDecimal(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   var intCnt;
 
   for (intCnt = 0; intCnt < sText.length && IsNumber == true; intCnt++) 
      { 
      Char = sText.charAt(intCnt); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
   
function isDecimal2(s){
	var i;
    var ValidChars = "0123456789.";
    var intCnt;

    for (intCnt = 0; intCnt < s.length; intCnt++){   
        // Check that current character is number.
        var c = s.charAt(intCnt);
        if (ValidChars.indexOf(s.charAt(intCnt)) == -1)  return false;
    }
    // All characters are numbers.
    return true;
}

function isTel(s){
	var i;
    var ValidChars = "0123456789 ";
    var intCnt;
	
	if(s.length < 6) {
		return false;
	}
	else {
		for (intCnt = 0; intCnt < s.length; intCnt++){   
			// Check that current character is number.
			var c = s.charAt(intCnt);
			if (ValidChars.indexOf(s.charAt(intCnt)) == -1)  return false;
		}
	}
    // All characters are numbers.
    return true;
}

function isChar(s){
	var intCnt;

    for (intCnt = 0; intCnt < s.length; intCnt++){   
        // Check that current character is number.
        var c = s.charAt(intCnt);
        if (((c < "A") || (c > "z"))) return false;
    }
    // All characters are numbers.
    return true;
}

function isUpper(s){
	var intCnt;

    for (intCnt = 0; intCnt < s.length; intCnt++){   
        // Check that current character is number.
        var c = s.charAt(intCnt);
        if (((c < "A") || (c > "Z"))) return false;
    }
    // All characters are numbers.
    return true;
}

function isLower(s){
	var intCnt;

    for (intCnt = 0; intCnt < s.length; intCnt++){   
        // Check that current character is number.
        var c = s.charAt(intCnt);
        if (((c < "a") || (c > "z"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("Please enter the date in the following format: dd/mm/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month in the date box")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day in the date box")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear+" in the date box")
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date in the date box")
		return false
	}
return true
}

//  End 

-->
