$(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) });
                        } 
                }
}); 
