$(function() {
	$("form#contactForm")
		.FormFingerprint()
		.submit(function() {
			var nameField = $("#message_name");
			var phoneField = $("#message_telephone");
			var emailField = $("#message_email");
			var messageField = $("#message_body");

			nameField.css("background-color","#fff");
			emailField.css("background-color","#fff");
			messageField.css("background-color","#fff");

			var outputDiv = $("#contactFormResponse");
			outputDiv.hide();
			outputDiv.html("");

			var hasError = false;

			if(jQuery.trim(nameField.val())=="") { outputDiv.append("Name field is required.<br>"); nameField.css("background-color","#FFCCCC"); hasError=true; }
			if(jQuery.trim(emailField.val())=="") { outputDiv.append("Email field is required.<br>"); emailField.css("background-color","#FFCCCC"); hasError=true; }
			else if(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(jQuery.trim(emailField.val())) == false) { outputDiv.append("Invalid email address format.<br>"); emailField.css("background-color","#FFCCCC"); hasError=true; }
			if(jQuery.trim(messageField.val())=="") { outputDiv.append("Message field is required.<br>"); messageField.css("background-color","#FFCCCC"); hasError=true; }

			var color = (!hasError ? "#000" : "#CC0000");
			outputDiv.css("color",color);

			if (!hasError){
				$(this).ajaxSubmit({
						dataType: "json",
						success: processContactFormJson
				});
			}
			else {
				outputDiv.slideDown(500);
			}

			return false; //important
		});

		//process the response of the contact form submission
		function processContactFormJson(data){
			$contactFormResponse = $("#contactFormResponse");
			$contactFormResponse.html(data.message);
			var color = (data.success ? "#000" : "#CC0000");
			$contactFormResponse.css("color",color);
			$contactFormResponse.slideDown(500);
			if(data.success){  //only clear form on success
				$("form#contactForm").resetForm();
				$contactFormResponse.oneTime("5s", function(){ $(this).slideUp(500) });
			}
		}
});

