function isEmail(curField, required, message){
	cField = curField.value;
	state = 0;
	if(!required){
		if(cField.length == 0)
			return true;
	}	
	if(cField.length == 0){
		curField.focus();
		alert(message);
		return false;
	}
	if (!(((cField.charAt(0) >= 'a') && (cField.charAt(0) <= 'z')) ||
		((cField.charAt(0) >= 'A') && (cField.charAt(0) <= 'Z')) ||
		((cField.charAt(0) >= '0') && (cField.charAt(0) <= '9')))){
			curField.focus();
			alert("Email address must start with a letter or a number");
			return false;	
	}
	state = 1;
	for(i=0; i < cField.length; i++){
			
		if(cField.charAt(i) == ' '){
			curField.focus();
			alert("Email address may not contain spaces");
			return false;	
		}
	
		if(cField.charAt(i) == '@'){
			if(state != 1){
				curField.focus();
				alert(message);
				return false;	
			}else{
				if (!(((cField.charAt(i+1) >= 'a') && (cField.charAt(i+1) <= 'z')) ||
					((cField.charAt(i+1) >= 'A') && (cField.charAt(i+1) <= 'Z')) ||
					((cField.charAt(i+1) >= '0') && (cField.charAt(i+1) <= '9')))){
						curField.focus();
						alert(message);
						return false;	
				}else{
					state = 2;
				}
			}
		}
		if(cField.charAt(i) == '.' && state == 2){
			if((cField.length - i) > 2){
				state = 3;
			}
		}		
	}		
	if(state == 3){
		return true;
	}else{
		curField.focus();
		alert("Please enter a valid email address.")
		return false
	}
}