$(document).ready(function() {
	$.validator.addMethod("id_testing", id_test, "This field is required");
	
    $("#review_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: {
        	name: {
        		required: false
        	},
        	email: {
        		required: true,
        		email: true
        	},
        	review: {
        		required: false
        	},
        	rating: {
        		required: true
        	},
        	id: {
        		required: true,
        		id_testing: true
        	}
        },
        //set messages to appear inline
        messages: {
/*     		name: "Please enter your name", */
        	email: "Please enter a valid email address",
/*     		review: "Please enter your review", */
        	rating: "Please pick a star rating",
    		id: {required: "This field is required"}
        }
    });
    
    var options = { 
        beforeSubmit: validate_review  // pre-submit callback
    };
                
    // bind to the form's submit event 
    $('#review_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_review(formData, jqForm, options) {
	
    $('#send').after("<p id=\"working\"><img src=\"working.gif\" />Checking to see if the form is correctly filled in.</p>");
    if($("#review_form").valid()) {
        $("#working").remove();
        $('#review_form').hide('slow');
        $('#write_review').after("<p id=\"thanks\">Thank you. Your review has been submitted.</p>");
        $('#thanks').show(1500);
        $('#review_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;
	}
}
