$(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.show(750);
			}
			
			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.show(750);
			if(data.success){  //only clear form on success
				$("form#contactForm").resetForm();
				$contactFormResponse.oneTime("5s", function(){ $(this).hide(750) });
			} 
		}
}); 
