// JavaScript Document to validate form fields.

function noError(allFields){
	for (var i=0; i<allFields.elements.length; i++){
		var thisField = allFields.elements[i];
		if(thisField.className.indexOf("jsError") != -1) {
			thisField.className = thisField.className.replace(/jsError/,'');
		}
	}
}

function checkField(field) {
	var re = /(<|>|\(|\)|\[|]|;|{|}|\/)/	// Regular Expression Filter
	if(field.type == "text" || field.type == "textarea"){
		if (re.test(field.value)){
			return false;
		}
	}
	return true;
}

function required(field) {
	if(field.value.length < 1 || field.value == field.defaultValue){
		return false;
	}else{
		return true;
	}
}

function isEmail(field) {
	if(!(field.value.length < 1)){
		if(field.value.indexOf("@") == -1 || field.value.indexOf(".") == -1) {
			return false;
		}
	}else{
		return true;
	}
}

function validateForm(theForm){
	noError(theForm);
	for (var i=0; i<theForm.elements.length; i++){
		var element = theForm.elements[i];
		if(element.className.indexOf("required") != -1) {
			if (!required(element)){
				element.className += " jsError";
				alert("Please fill in the "+element.name+" field.");
				return false;
			}
		}
		
		if(element.className.indexOf("email") = -1) {
			if(!isEmail(element)){
				alert("The "+element.name+" field must be a valid email address.");
				element.className += " jsError";
				return false;
			}
		}
		
		if(!checkField(element)){
			alert("Please do not use any of these characters: < > [ ] \ | / ; { } ( )");
			element.className += " jsError";
			return false;
		}  
		
	}
	return true;
}
