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'){
			setLabels(thisform);
			thisform.onsubmit = function(){
				return validateForm(this);
			}
		}
	}	
}

addLoadEvent(prepareForms);

function setLabels(whichform){

	if(!document.getElementsByTagName) return true;
	var labelword;
	var sElName;
	
	var forval;
	var sElClass;
	
	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("quickregerr") != -1 && labelword!=null){
			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;
					if(lbl[j].className.length > 0){
					    lbl[j].className=lbl[j].className +' labelerr';
					}
					else{
					    lbl[j].className='labelerr';
					}
					
					break;
				}
			}

		}
	}
}

function isFilled(field){

    if (field != null){
    
	    if (field.name =='terms_check'){
		    if(field.checked==false){
			    return false;
		    }
	    }
    	
	    if (field.name =='gender'){
		    if(field.checked==false){
			    return false;
		    }
	    }
    	
	    if (field.name =='lookingfor_genderm' || field.name =='lookingfor_genderf'){
		    if(field.checked==false){
			    return false;
		    }
	    }

	    if ((field.value.length < 1) || (field.value=='-1')||(field.value=='')||(field.value=='select')){
		    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;
		    }
	    }
	    
	}
	else{
	    return true;
	}
	
}

function isChecked(field){
	return field.checked;
}

function addClass(element, newClass){
    newClass = trim(newClass);

	if (element.className.indexOf(newClass)<0){
	    if(element.className.length > 0){
	        element.className = element.className + ' ' + newClass; 
	    }
	    else{
	        element.className = newClass; 
	    }
	}
}

function removeClass(element, oldClass){
    oldClass = trim(oldClass);
	element.className = element.className.replace(oldClass, '');
}


function trim(value) {
 // return value.replace(/^s+|s+$/g,"");
  return value.replace(" ","");
  
}


function getFormsLables(lables, formName){
    
    var formLabels = new Array();
    var x = 0;
    for (var i=0; i<lables.length; i++){
        if(lables[i].form.name == formName){
            formLabels[x] = lables[i];
        }
    }
    return formLabels;
}

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 errs='';
	
	var lbl = document.getElementsByTagName("label");
	//lbl = getFormsLables(lbl, whichform.name);
	
	// GET THE LABELS FOR THE PARTICUALR FORM
	
	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 && labelword!=null){
		
			if (!isFilled(element)){	
			 
				addClass(element,'quickregerr');
				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;
						addClass(lbl[j],' labelerr');
						break;
					}
					//lbl[j].style.color="black";
				}
				if(sElName == 'terms_check'){
					errs = errs + "Please agree to the terms and conditions.\n";
				}else{
					errs = errs +  "Please fill in the \'"+labelword+"\' field.\n";
				}
				
			}else if (isFilled(element)){
				removeClass(element,'quickregerr');
				for (j=0; j<lbl.length; j++){
					forval=lbl[j].getAttribute('for')?lbl[j].getAttribute('for'):lbl[j].getAttribute('htmlFor');
					if (forval == sElName){
						removeClass(lbl[j],'labelerr');
						break;
					}
					
				}
			}
			
			// fix for date of birth error in ie 7
			if(element.name == "dob_day" || element.name == "dob_month" || element.name == "dob_year" ){
			    var dobDay = document.getElementById('dob_day');
			    if ( !isFilled(document.getElementById('dob_day')) || !isFilled(document.getElementById('dob_month')) || !isFilled(document.getElementById('dob_year')) ){
			        addClass(document.getElementById('lbldob'), 'labelerr');  
			        errs = errs +  "Please fill in the \'"+labelword+"\' field.\n";
			    }
			    else{
			        removeClass(document.getElementById('lbldob'), 'labelerr'); 
			    }
			}
			
			
		}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 (lbl[j].form.name == "userform"){
					
					    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) && !isFilled(element)){
    								   
									    addClass(element,'quickregerr');
									    addClass(elemCheck,'quickregerr');
									    addClass(lbl[j],'labelerr');
									    addClass(lbl[k],'labelerr');
									    element.focus();
									    if(element.id == 'sexM' || element.id == 'sexFM' ){
									        addClass(document.getElementById('lblgender'), 'labelerr');
									    }
									    if(element.id == 'lookingfor_genderm' || element.id == 'lookingfor_genderf' ){
									        addClass(document.getElementById('lblgender_lookingfor'), 'labelerr');
									    }
    									
									    errs = errs + "Please fill in the \'"+labelword+"\' field.\n";
    									
								    }else if(isFilled(elemCheck)){
    								    
								        removeClass(element,'quickregerr');
									    removeClass(elemCheck,'quickregerr');
									    removeClass(lbl[j],'labelerr');
									    removeClass(lbl[k],'labelerr');
									    if(element.id == 'sexM' || element.id == 'sexFM' ){
									        removeClass(document.getElementById('lblgender'), 'labelerr');
									    }
									    if(element.id == 'lookingfor_genderm' || element.id == 'lookingfor_genderf' ){
									        removeClass(document.getElementById('lblgender_lookingfor'), 'labelerr');
									    }
    									
								    }
							    }
						    }
					    }
					

				}
		//	}

			
		        // fix for the gender
		        if(isFilled(document.getElementById('sexM')) || isFilled(document.getElementById('sexFM'))) {
		            removeClass(document.getElementById('lblgender'), 'labelerr');  
		        }

    		    // test for the userform the form in case the splash page has a search box
	            if(isFilled(document.forms["userform"].lookingfor_genderm) || isFilled(document.forms["userform"].lookingfor_genderm)) {
	                removeClass(document.getElementById('lblgender_lookingfor'), 'labelerr');     
	            }
		       
        			
		}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;
			}
			
		}
	}
	if (errs!=''){
		var errDiv = document.getElementById('validateerror');
		if (errDiv){
			//errDiv.style='display: block; visibility: visible';
			removeClass(errDiv, 'skip');
			layeron(getlayer('validateerror')); // needed as sunsequent client error will not show the pop up.
			if (errDiv.innerHTML.indexOf("Please fill in the highlighted options") < 0 ){
			    errDiv.innerHTML='<p>Please fill in the highlighted options.</p>'+errDiv.innerHTML;
			}
			
		}else{
			alert (errs);
		}
		return false;
	}
	
//	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);
	}
}