//form field validator
function require(form){
	
	var validationSet = {
		'first_name': {
		'regexp': /^[a-zA-Z'.-]{2,}/,
		'error': 'Please enter your first name.'
		},
		'last_name': {
		'regexp': /^[a-zA-Z'.-]{2,}/,
		'error': 'Please enter your last name.'
		},
		'name': {
		'regexp': /^[a-zA-Z'.-]{2,}/,
		'error': 'Please enter your name.'
		},
		'email': {
		'regexp': /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/,
		'error': 'Please enter a valid email address.'
		},
		'staff_email': {
		'regexp': /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/,
		'error': 'Please enter a valid email address.'
		},
		'username':{
		'regexp': /^\w{4,}$/,
		'error': 'Please enter your username.'
		},
		'password':{
		'regexp': /^\w{4,}$/,
		'error': 'Please enter your password.'
		},
		'newpwd1':{
		'regexp': /^\w{4,}$/,
		'error': 'Your password must be at least 4 characters long.'
		},
		'newpwd2':{
		'regexp': /^\w{4,}$/,
		'error': 'Please retype your new password.'
		},
		'url': {
		'regexp': /^http/,
		'error': 'A url must begin with http.'
		},
		'link_text': {
		'regexp': /^\w{1,}/,
		'error': 'Please enter the words that should appear for this link.'
		},
		'sort_order': {
		'regexp': /^[1-9]{1}\d{0,2}$/,
		'error': 'Please enter a number between 1 and 255.'
		}
	};
	
	var fm=form.elements
		
	for(var i=0; i<fm.length; i++){
		var field=fm[i].name;
		
		if (validationSet[field]){
			var re = validationSet[field]['regexp'];
			if(!re.test(fm[i].value)){
				var error_target=field + "_error";
				var output_error=document.getElementById(error_target);
				output_error.innerHTML=validationSet[field]['error'];
				output_error.style.display="block";
				fm[i].focus();
				return false;
				}
			}
		}
return true;
}

//textarea character counter
                                                
function textCounter(field,cntfield,maxlimit) 
       { 
        if (field.value.length > maxlimit) { 
               field.value = field.value.substring(0, maxlimit); 
               }else{
               cntfield.value = maxlimit - field.value.length;
               }
         }
         
//clear error

function clearError(field){
	var error_target=field.name + "_error";
	var output_error=document.getElementById(error_target);
	output_error.innerHTML="";
	output_error.style.display="none";
}

//check field match
function checkMatch(field1,field2){
	var error_target=field2.name + "_error";
	var output_error=document.getElementById(error_target);
	
	if(field1.value!=field2.value){
		output_error.innerHTML="Entries do not match.";
		output_error.style.display="block";
		field2.focus();
		return false;
	}else{
		output_error.style.display="none";
	}
}

//set focus in first form field
function setFocus(target){
							target.focus();
							}
							
