function chkRequired(form,reqColor,emColor,phColor) {
	if(!reqColor) {
		reqColor = "#FFF0F0";
	}
	if(!emColor) {
		emColor = "#F0F0FF";
	}
	if(!phColor) {
		phColor = "#F0F0FF";
	}
	var size = form.elements.length;
	for(var x=0; x<size; x++) {
		// Check Required
		if((form.elements[x].getAttribute("required") && form.elements[x].value == "") || 
		(form.elements[x].getAttribute("required") && (form.elements[x].type == "checkbox" || form.elements[x].type == "radio") && !form.elements[x].checked)) {
			alert("Please fill out all required fields.  Required fields are indicated by a *.");
			form.elements[x].style.backgroundColor = reqColor; //FFCECE
			form.elements[x].focus();
			return false;
		}
		// Check Valid Email
		if(form.elements[x].getAttribute("email")) {
			if(!validateEmail(form.elements[x].value)) {
				alert("Please enter a valid email address in all email fields.");
				form.elements[x].style.backgroundColor = emColor; //CDCDFF
				form.elements[x].focus();
				return false;
			}
		}
		// Check Valid Phone
		if(form.elements[x].getAttribute("phone")) {
			if(!validatePhoneLength(form.elements[x].value)) {
				alert("Please enter a valid U.S. phone number in all telephone fields.");
				form.elements[x].style.backgroundColor = phColor; //CDCDFF
				form.elements[x].focus();
				return false;
			}
		}
		// Check Length of TEXTAREA if maxlength is present
		if(form.elements[x].type == "textarea" && form.elements[x].getAttribute("maxlength")) {
			var maxLngth = form.elements[x].getAttribute("maxlength");
			var txtLngth = form.elements[x].value.length;
			if(txtLngth > maxLngth) {
				form.elements[x].style.backgroundColor = reqColor; //FFCECE
				form.elements[x].focus();
				alert("The highlighted field is " + eval(txtLngth - maxLngth) + " Characters too long. Please revise.");
				return false;
			}
		}
	}
	return true;
}

function validateEmail(email) {
	if(email == null || email == "")
		return true;
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(email);
}

function validatePhoneLength(phone) {
	var onlyNumbers = phone.replace(/\D/gi, "");
	if(phone.length > 0 && onlyNumbers.length == 0) {
		return false;
	}
	if(onlyNumbers.length == 0 || onlyNumbers.length == 7 || onlyNumbers.length == 10) {
		return true;
	} else {
		return false;	
	}
}