/*---------------------------------------------------------------------------------------------------------------------

	Written by Tom Sayers - SQUAREZONE Ltd +44 (0)870 803 4701
	Copyright © 2001 - 2005 Squarezone Ltd.  All rights reserved.
	This software may not be copied by any method in whole or part without
	the express written permission of the copyright holder.
	www.squarezone.co.uk & www.speedEweb.net

---------------------------------------------------------------------------------------------------------------------*/

// ------------------------------------ Form Validation functions ------------------------------------

function validForm(thisForm) {
	if(!document.getElementsByTagName) return;
	var cook = /O\d+_(.*)/;
	var pattern = /[-A-Za-z0-9 \.]{3,}/;
	var psword0 = /^[a-zA-Z0-9]+$/;
	var psword1 = /[A-Z]+/;
	var psword2 = /[a-z]+/;
	var psword3 = /[0-9]+/;
	var passwd;
	var zipcheck = /[A-Z]{2}([0-9]{1,2}|[0-9]{1}[A-Z]{1})\s?[0-9]{1}[A-Z]{2}/i;
	var emailcheck = /[-A-Z0-9._+]+\@[-A-Z0-9]+(\.[-A-Z0-9]+)+/i;
	var required = "no";
	var fcus;
	var reqd = /(.*)_(.*)/;
	inp = document.getElementsByTagName("input")
//	var backGround = inp[0].style.backgroundColor;
//alert('SUBMIT=' + thisForm.name);
/*	if(thisForm.Delete.value == 'Delete event'){
		if(thisForm.eventlist.value == 'newevent' || !confirm('You are about to permanently delete this event!')){
			return false;
		}
	}*/
	for(var ii = 0; ii < inp.length; ii++) {
/*		if(inp[ii].name == "Delete" && inp[ii].value == 'Delete User'){
			if(!confirm('You are about to permanently delete this!')){
				return false;
			}
		}*/
		if(inp[ii].alt == "UK Postcode"){
			if(inp[ii].value && !zipcheck.test(inp[ii].value)){
				inp[ii].focus();
				inp[ii].style.backgroundColor = '#DDF4E9';
				alert("Please enter a Postcode in the form\nAB12 3CD or AB1Y 3CD");
				return false;
			}
		}
		if(inp[ii].name == "Email_address_*"){
//		if(inp[ii].name == "email"){
			if(inp[ii].value && !emailcheck.test(inp[ii].value)){
				inp[ii].focus();
				inp[ii].style.backgroundColor = '#DDF4E9';
				alert("Please enter an email address in the form\nabc@abc.def");
				return false;
			}
		}
		if(inp[ii].title == "Required"){
			if(cook.test(inp[ii].name)){
				var fieldNm = RegExp.$1;
			} else {
				var fieldNm = inp[ii].name;
			}
			if(!inp[ii].value){
				inp[ii].focus();
				inp[ii].style.backgroundColor = '#DDF4E9';
				alert("The highlighted field is required!\nThis applies to any marked with an asterisk.");
				return false;
			}
			/*if(!pattern.test(inp[ii].value)){
				inp[ii].focus();
				inp[ii].style.backgroundColor = '#DDF4E9';
				alert("The '" + fieldNm + "' field cannot be that short");
				return false;
			}*/
		}
		if(inp[ii].title == "One required" && required != "ok"){
			if(inp[ii].value){
				required = "ok";
			} else {
				required = inp[ii].name;
				fcus = ii;
			}
		}
		if(inp[ii].title == "Required" && ((inp[ii].type == "password" && (inp[ii].value || passwd)) || inp[ii].alt == "Password") ){
			if(passwd){
				if(passwd != inp[ii].value){
					inp[ii].focus();
					inp[ii].style.backgroundColor = '#DDF4E9';
					alert("Passwords do not match");
					return false;
				}
			} else {
				var pswd = inp[ii].value;
				if(!psword0.test(pswd) || pswd.length < 6 || pswd.length > 12 || !psword1.test(pswd) || !psword2.test(pswd) || !psword3.test(pswd)){
					inp[ii].focus();
					inp[ii].style.backgroundColor = '#DDF4E9';
					alert("Passwords must be between\n6 & 12 characters long\nand contain a mixture of\nupper case, lower case and\nnumbers only");
					return false;
				} else {
					passwd = inp[ii].value;
				}
			}
		}
//		if(inp[ii].name == "form" && inp[ii].value == "basket" && !document.cookie){
//			alert("If you wish to place an order online, you need to enable cookies on your browser.\nWe use temporary cookies to store the details of your order.");
//			return false;
//		}
	}
	
	if(required != "no" && required != "ok"){
		inp[fcus].focus();
		inp[fcus].style.backgroundColor = '#DDF4E9';
		if(reqd.test(required)){
			var fieldNm = RegExp.$1;
			alert("At least one " + fieldNm + " is required");
		} else {
			alert("At least one entry is required");
		}
		return false;
	}

	inp = document.getElementsByTagName("textarea")
	for(var ii = 0; ii < inp.length; ii++) {
		if(inp[ii].title == "Required"){
			if(cook.test(inp[ii].name)){
				var fieldNm = RegExp.$1;
			} else {
				var fieldNm = inp[ii].name;
			}
			if(!inp[ii].value){
				inp[ii].focus();
				inp[ii].style.backgroundColor = '#DDF4E9';
				alert("The " + fieldNm + " field is required");
				return false;
			}
			/*if(!pattern.test(inp[ii].value)){
				inp[ii].focus();
				inp[ii].style.backgroundColor = '#DDF4E9';
				alert("The " + fieldNm + " field cannot be that short");
				return false;
			}*/
		}
	}
	return true;
}


// ------------------------------------------ General -----------------------------------------



// ---------------------------------------- Development ---------------------------------------

