function validate(){
		var frm = document.userform;
		if ((frm.forename.value.indexOf('<')>=0)||(frm.forename.value.indexOf('>')>=0)||(frm.forename.value.indexOf('/')>=0)||(frm.surname.value.indexOf('>')>=0)||(frm.surname.value.indexOf('<')>=0)||(frm.surname.value.indexOf('/')>=0)||(frm.current_surname.value.indexOf('>')>=0)||(frm.current_surname.value.indexOf('<')>=0)||(frm.current_surname.value.indexOf('/')>=0)){
			alert("Please use alpha-numeric characters only, \n the following characters won't work <, > or / ");
			return false;
		}
}
	
function checkdates(){
	var frm = document.userform;
	if ((frm.year_from.value=='')||(frm.year_from.value=='')){
		alert("Please specify dates");
		return false;
	} else{
		return true;
	}
}

function prepareForms(){
	for (var i=0; i<document.forms.length; i++){
		var thisform = document.forms[i];
		if(typeof thisform.onsubmit != 'function'){
			thisform.onsubmit = function(){
				return validateForm(this);
			}
		}
	}	
}

addLoadEvent(prepareForms);

function isFilled(field){
	if (field.name =='terms'){
		if(field.checked==false){
			return false;
			alert (field.name);
		}
	}
	if ((field.value.length < 1)||(field.value=='')){
		return false;
	} else {
		//Town/Country is a value that is invalid!
		if (field.value != 'Town/County' && field.value != 'First name' && field.value != 'Last name' && field.value != 'Maiden name'){
			return true;
			
		}else{
			return false;
		}
	}
}

function isChecked(field){
	return field.checked;
}

function validateForm(whichform){
	if(!document.getElementsByTagName) return true;
	var labelword;
	var forval;
	var sElClass;
	var sElName;
	var sElTitle;
	var titleval;
	var forval2;
	var elemCheck;
	
	var lbl = document.getElementsByTagName("label");
	for (var i=0; i<whichform.elements.length; i++){
		var element = whichform.elements[i];
		sElName = element.getAttribute("id");
		labelword = sElName;
		if (element.className.indexOf("required") != -1){
			if (!isFilled(element)){
				element.style.borderWidth="1";
				element.style.borderColor="red";
				element.focus();
				for (j=0; j<lbl.length; j++){
					forval=lbl[j].getAttribute('for')?lbl[j].getAttribute('for'):lbl[j].getAttribute('htmlFor');
					if (forval == sElName){
						labelword = lbl[j].childNodes[0].nodeValue;
						lbl[j].style.color="red";
						break;
					}
					//lbl[j].style.color="black";
				}
				if(sElName == 'terms'){
					alert("Please agree to the terms and conditions");
				}else{
					alert ("Please fill in the \'"+labelword+"\' field.");
				}
				return false;
			}else if (isFilled(element)){
				element.style.borderWidth="1";
				element.style.borderColor="#666";
				element.style.backgroundColor="#f3f7fb";
				for (j=0; j<lbl.length; j++){
					forval=lbl[j].getAttribute('for')?lbl[j].getAttribute('for'):lbl[j].getAttribute('htmlFor');
					if (forval == sElName){
						lbl[j].style.color="#036";
						break;
					}
					
				}
			}
		}else if (element.className.indexOf("dependant") != -1){
			//used to check groups of elements that are only required once one of them has been filled (using title attrib for grouping)
			if (!isFilled(element)){
				//not filled
				
				for (j=0; j<lbl.length; j++){
					forval=lbl[j].getAttribute('for')?lbl[j].getAttribute('for'):lbl[j].getAttribute('htmlFor');
					if (forval == sElName){
						sElTitle = lbl[j].getAttribute('title');
						labelword = lbl[j].childNodes[0].nodeValue;
						for (k=0; k<lbl.length; k++){
							titleval = lbl[k].getAttribute('title');
							forval2 = lbl[k].getAttribute('for')?lbl[k].getAttribute('for'):lbl[k].getAttribute('htmlFor');
							//titleval = fathers father
							if ((titleval == sElTitle) && (sElName != forval2)){
								//found another element in the 'group'
								elemCheck = document.getElementById(forval2);
								if(isFilled(elemCheck) && elemCheck.className.indexOf("dependant") != -1){
									element.style.borderWidth="1";
									element.style.borderColor="red";
									element.focus();
									lbl[j].style.color="red";
									alert ("Please fill in the \'"+labelword+"\' field.");
									return false;
									break;
								}
							}
						}
					}
				}
			}
		}else if (element.className.indexOf("radiosurvey") != -1){
			var rs = document.getElementsByName(element.name);

			
			var bAnswered = false;
			for (var l=0;l < rs.length ;l++ ){
				if(rs[l].checked){
					
					bAnswered=true;
					
					break;
				}
			}
			
			if (bAnswered == false){
				element.style.borderWidth="1";
				element.style.borderColor="red";
				element.focus();
				alert ("Please answer each question in this survey");
				return false;
				break;
			}
			
		}
	}	
	var subs =  document.getElementsByTagName("input");
	for(i=0; i<subs.length; i++){
		if (subs[i].type == 'submit'){
			subs[i].disabled = true;
		}
	}
}

function updateto(){
	if(!document.createElement) return true;
	if(!document.userform) return true;
	if(!(document.userform.year_from && document.userform.year_to)) return true;
	var oToDiv = getlayer('yeartodiv');
	if(oToDiv){
		yearfromval = document.userform.year_from.value;
		yearfrom = parseInt(yearfromval);
		yearto = document.userform.year_to;
		if(yearto){
			yearto.options.length=0;
		}
		var disp;
		var addoption;
		for (i=yearfrom; i<=yearfrom+5; i++){
			addoption = document.createElement("option");									
			addoption.setAttribute("value", i);
			disp = document.createTextNode(i);
			addoption.appendChild(disp);
			yearto.appendChild(addoption);
		}
		layeron(oToDiv);
	}
}