$(document).ready(function() {
	$.validator.addMethod("id_testing", id_test, "This field is required");
	
    $("form").validate({
    	//set the placement of the error message
    	errorPlacement: function(error, element) {
    		error.appendTo(element.parent().prev());
    	},
        //set the rules for the field names
        rules: {
			email: {
				required: true,
				email: true
			},
			name: {
				required: true
			},
			subject: {
				required: false
			},
			phone: {
				required: false
			},
			message: {
				required: true
			},
        	id: {
        		required: true,
        		id_testing: true
        	}
		},
		//set messages to appear inline
		messages: {
			email: "Please enter a valid email address",
			name: "Please enter your name",
			message: "Please enter your message",
    		id: {required: "This field is required"}
        }
    });
    
    var options = { 
        beforeSubmit: validate_email  // pre-submit callback
    };
                
    // bind to the form's submit event 
    $('form').bind('submit', function() {
        // inside event callbacks 'this' is the DOM element so we first 
        // wrap it in a jQuery object and then invoke ajaxSubmit 
        $(this).ajaxSubmit(options);
        
        // return false to prevent standard browser submit and page navigation
        return false;
    });
});
        
function validate_email(formData, jqForm, options) {
    $('#send').after("<p id=\"working\"><img src=\"working.gif\" />Checking to see if the form is correctly filled in.</p>");
    if($("form").valid()) {
        $("#working").remove();
        $('form').hide('slow');
        
        $('#e-mail a.email').after("<p id=\"thanks\">Thank you. Your e-mail has been sent.</p><img id=\"new_email\" src=\"new_e-mail_button.png\" alt=\"\" />");
		
        $("img#new_email").click(function(){
			$("#thanks").remove();
			$("#new_email").remove();
			$("form").show('slow');
		});
		
        $('form').clearForm();
        
        return true;
    } else {
        $("#working").remove();
        return false;
    }
}

function id_test(value, element) {
	// Convert to lowercase
	value = value.toLowerCase();
	
	// Trim string of whitespace
	value = value.replace(/^\s+|\s+$/g,"");
	
	if (value === 'goat') {
		return true;
	} else {
		return false;
	}
}
