jQuery.validator.addMethod("properNoun", function(value, element) {
	return this.optional(element) || /^[a-zA-Z'\- ]*$/i.test(value);
}, "This field can contain only characters.");  
jQuery.validator.addMethod("usZipCode", function(value, element) {
	return this.optional(element) || /^\d{5}(-\d{4})?$/i.test(value);
}, "Please enter a valid zip code.");  
jQuery.validator.addMethod("vmcEmail", function(value, element) {
	return this.optional(element) || /^\s*[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|asia|coop|info|jobs|mobi|museum|name|travel))\s*$/i.test(value);
}, "Please enter a valid email address.");
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");
jQuery.validator.addMethod("vmcStreet", function(value, element) {
	return this.optional(element) || (/\d+/.test(value) && /[a-zA-Z]+/.test(value));
}, "Your address must contain characters and numbers.");
jQuery.validator.addMethod("usOrCaZipCode", function(value, element) {
	return this.optional(element) || /^\d{5}(-|\s)?(\d{4})?$|^[ABCEGHJKLMNPRSTVXYabceghjklmnprstvxy][0-9][A-Za-z]\s[0-9][A-Za-z][0-9]$/i.test(value);
}, "Please enter a valid postal code or zip code.");  
jQuery.validator.addMethod("vmcDate", function(value, element, params) {
	var check = false;
	var pattern = "^\\d{2}\\" + params + "\\d{2}\\" + params + "\\d{4}$";
	var re = new RegExp(pattern);
	if( re.test(value) ) {
		var adata = value.split(params);
		var mm = parseInt(adata[0],10);
		var dd = parseInt(adata[1],10);
		var yyyy = parseInt(adata[2],10);
		var vdate = new Date(yyyy,mm-1,dd);
		if ( ( vdate.getFullYear() == yyyy ) && ( vdate.getMonth () == mm - 1 ) && ( vdate.getDate() == dd ) ) {
			check = true;
		} else {
			check = false;
		}
	} else {
		check = false;
	}
	return this.optional(element) || check;
}, "Please enter a valid date.");  
