function validate()
{
	var i=0;
	var accept = true;
	var error;
	var errno;
	var displayName;
	
	while(i<document.theform.elements.length && accept == true){
		displayName = document.theform[i].name.substring(0,1).toUpperCase() + document.theform[i].name.substring(1,document.theform[i].name.length);
		displayName = displayName.replace(/_/g, " ");
		switch (document.theform[i].name) { 
			case "title" :
			case "first_name" :
			case "last_name" :
			case "home_tel" :
			case "address_part_1" :
			case "address_part_2" :
			case "town" :
			case "county" :
			case "postcode" :
				if(error = check_required(document.theform[i].value, displayName)){
					errno = i ;
					accept = false;
				}
				break;
			case "mobile_tel" :
			case "work_tel" :
			case "address_part_3" :
			case "note" :
				if(error = check_string(document.theform[i].value, displayName)){
					errno = i ;
					accept = false;
				}
				break;
			case "email" :
				if(document.theform[i].value.length == 0){
					errno = i;
					error = "Please enter your Email Address.";
					accept = false;
				}
				else if(error = check_email(document.theform[i].value, displayName)){
					errno = i;
					accept = false;
				}
				break;
			default :
				break;
		}
		i++;
	}
	if (accept == true) {
		 document.theform.submit();
	}
	else {
		if(error!=true)
			alert(error);
		document.theform[errno].focus();
	}
}

function check_email(str,title)
{
	if(str.length>0){
		if(!emailCheck(str))
			return true;
		else
			return false;
	}
}

function check_required(str, title)
{
	var err;
	title.substring(0,1).toUpperCase() + title.substring(1,title.length);
	if(str.length==0){
		err = "Please enter your " + title + ".";
		return (err);
		}
	else
		return check_string(str, title);
}

function check_string(str, title)
{
	var err;
	if(str.length>0){
		if(has_bad_chars(str)){
			err = "The " + title + " field contains invalid characters";
			return err;
		}
		else if (str.length>254){
			err = "The " + title + " field is too long.";
			return err;
		}
	}
	else
		return false;	
}

function has_bad_chars (str){
	var j;
	for(j=0;j<str.length;j++){
		s = str.charCodeAt(j);
		if(s<48 || (s>57 && s<64) || (s>90 && s< 97) || s>122) {
			if (s==32 || s==44 ||s==45 ||s==46)
				return false;
			else
				return true;
			}
		}
	return false;
	}