jQuery.validator.addMethod("postalcode", function(postalcode, element) {
	return this.optional(element) || postalcode.match(/(^\d{5}(-\d{4})?$)|(^[ABCEGHJKLMNPRSTVXYabceghjklmnpstvxy]{1}\d{1}[A-Za-z]{1} ?\d{1}[A-Za-z]{1}\d{1})$/);
}, "Please specify a valid postal/zip code");

jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
    phone_number = phone_number.replace(/\s+/g, ""); 
	return this.optional(element) || phone_number.length > 9 &&
		phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
}, "Please specify a valid phone number");


$(document).ready(function(){
	$("#submitlink").click(function() {
		
		// validate form on keyup and submit
		$("#cc_form").validate({
			rules: {
				firstname: "required",
				lastname: "required",
				email: {
					required: true,
					email: true
				},
				phone: {
					required: true,
					phoneUS: true
				},
				address: "required",
				city: "required",
				state: "required",
				zipcode: {
					required: true,
					postalcode: true
				}
			},
			messages: {
				firstname: "Please enter your firstname",
				lastname: "Please enter your lastname",
				email: "Please enter a valid email",
				phone: "Please enter a valid phone number",
				address: "Please enter your address",
				city: "Please enter your city",
				state: "Please select your state",
				zipcode: "Please enter a valid zipcode"
			}
		}); 
	}); 
});

