	// Validation Script v.0.1
	// Alex@GoodProgrammer.com

	// Field Focus, to gather my requirement Arrays.
	for(i=document.forms.length-1; i>=0; i--){
		frm = document.forms[i];
		window.status= frm.method;
		if ( frm.method != "get" ){
			for(x=frm.length-1; x>=0; x--){
				fld = frm[x];
				if(fld.type != "hidden" && fld.type != "submit"){
					fld.focus();
				}//if
			}//for
		}//if 
	}//for

	requiredFields	= new Array();
	numericFields	= new Array();
	dateFields		= new Array();
	emailFields		= new Array();
	requiredIndex	= 0;
	numericIndex	= 0;
	dateIndex		= 0;
	emailIndex		= 0;

	function setRequired(fld, msg){
		if( !msg || msg == "" ){
			msg = "Please fill in all required fields.";
		}//if

		if( fld ){
			fieldDetail = new Array();
			fieldDetail[0] = fld;
			fieldDetail[1] = msg;
			requiredFields[requiredIndex] = fieldDetail;
		}//if

		requiredIndex++;
	}//setRequired

	function setNumeric(fld, msg){
		if( !msg || msg == "" ){
			msg = "Please check that fields which are supposed to be numeric, are numeric.";
		}//if
		
		if( fld ){
			fieldDetail					= new Array();
			fieldDetail[0]				= fld;
			fieldDetail[1]				= msg;
			numericFields[numericIndex]	= fieldDetail;
		}//if
		numericIndex++;
	}//setNumeric()

	function setEmail(fld, msg){
		if( !msg || msg == "" ){
			msg = "Please check that the E-mail is correct.";
		}//if
		
		if( fld ){
			fieldDetail					= new Array();
			fieldDetail[0]				= fld;
			fieldDetail[1]				= msg;
			emailFields[emailIndex]		= fieldDetail;
		}//if
		emailIndex++;
	}//setEmail()

	function setDate(fld, msg){
		if( !msg || msg == "" ){
			msg = "Please check that the All date fields are in a valid format";
		}//if

		if( fld ){
			fieldDetail					= new Array();
			fieldDetail[0]				= fld;
			fieldDetail[1]				= msg;
			dateFields[dateIndex]		= fieldDetail;
		}//if
	}//setDate()

	function validateForm(frm){
		// Check All Required Fields
		for(x=requiredFields.length-1; x>=0; x--){
			fieldDetail = requiredFields[x];
			if( fieldDetail[0].value == "" ){
				alert( fieldDetail[1] );
				fieldDetail[0].select();
				return false;
			}//if
		}//for

		// Check All Numeric Fields
		for(x=numericFields.length-1; x>=0; x--){
			fieldDetail = numericFields[x];
			if(isNaN( fieldDetail[0].value)){
				alert( fieldDetail[1] );
				fieldDetail[0].select();
				return false;
			}//if		
		}//for

		// Check All E-Mail fields
		for(x=emailFields.length-1; x>=0; x--){
			fieldDetail = emailFields[x];
			e = fieldDetail[0].value;
			if( e.indexOf("@") < 2 || e.indexOf(".") < 2 || e.indexOf("@") > e.lastIndexOf(".") ){
				alert( fieldDetail[1] );
				fieldDetail[0].select();
				return false;
			}//if
		}//for

		// Check All Date Fields
		for(x=0; x<dateFields.length; x++){
			fieldDetail = dateFields[x];
			if(isDate(fieldDetail[0].value)){
				alert( fieldDetail[1] );
				fieldDetail[0].select();
				return false;
			}//if		
		}//for

		//If we haven't returned yet, then everything is valid.
		return true;
	}//validateForm()

	// Future Enhancements:
	// -- Store all fields in 1 Array, with attribute markers.
	// -- RegEx Vaildation.
	// -- Comparison Validation.
	// -- Range Validation.