// contact form validation script
// requires jquery

// alias $ function
(function($) {
	// set up validations object
	validations = {
		subject: {
			selector: function() { return $("#Reason"); },
			testCase: function() {
				if($("#Reason").get(0).selectedIndex == 0) return false;
				else return true;
			},
			errMsg: "Please choose a subject"
		},
		email: {
			selector: function() { return $("#email"); },
			testCase: function() {
				var str = $("#email").val();
				if(!str.match(/^[a-z0-9\_\.\-\%\+]+@[a-z0-9\_\.\-\%\+]+\.[a-z]{2,4}$/i)) return false;
				else return true;
			},
			errMsg: "Please enter a valid email address"
		},
		name: {
			selector: function() { return $("#name"); },
			testCase: function() {
				if($("#name").val() == "") return false;
				else return true;
			},
			errMsg: "Please enter your name"
		},
		message: {
			selector: function() { return $("#Comments"); },
			testCase: function() {
				if($("#Comments").val() == "") return false;
				else return true;
			},
			errMsg: "Please enter your question or request"
		}
	};
	
	// checks each validation
	function checkTheForm() {
		// setup flag variable
		var formOK = true;
		
		// loop through validations
		for(var check in validations) {
			var valid = validations[check].testCase();
			if(!valid) {
				alert(validations[check].errMsg);
				var field = validations[check].selector();
				field.focus();
				formOK = false;
				break;
			}
		}
		
		// return value
		if(formOK) return true;
		else return false;
	}
	
	// set the validation actions
	$(document).ready(function() {
		$(".LeftCol :submit").click(function() {
			var goodToGo = checkTheForm();
			if(!goodToGo) {
				return false;
			}
			else {
				// prevent multiple submissions
				$(".LeftCol :submit").parent().hide().after('<p><strong>Please wait&hellip;</strong></p>');
			}
		});
		$(".LeftCol :text, .LeftCol select").onReturn(function() {
			$(".LeftCol :submit").trigger("click");
		});
		
		// add user agent to hidden form field
		$("input[name='browser']").val(navigator.userAgent);
	});
})(jQuery);