$(function(){
	// check if there is an error div set up and use that instead of each field
	if ($('div.errorBox').length){
		jQuery.validator.messages.required = null;
		jQuery.validator.setDefaults({
			errorClass: "errorBox",
			invalidHandler: function(e,v){
				if (v.numberOfInvalids()) {
	        var message = 'There is a problem with one or more fields. They have been highlighted.';
	        $("div.errorBox").html(message).show();
	      } else {
	        $("div.errorBox").hide();
	      }
			},
			errorLabelContainer: $('div.errorBox'),
			wrapper: "li"
		});
	}
	// custom validations
	$.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");
	$.validator.addMethod('phoneUK', function(phone_number, element) {
		return this.optional(element) || phone_number.length > 9 &&
		phone_number.match(/^(\(?(0|\+44)[1-9]{1}\d{1,4}?\)?\s?\d{3,4}\s?\d{3,4})$/);
	}, 'Please specify a valid phone number');
	$.validator.addMethod('mobileUK', function(phone_number, element) {
		return this.optional(element) || phone_number.length > 9 &&
		phone_number.match(/^((0|\+44)7(5|6|7|8|9){1}\d{2}\s?\d{6})$/);
	}, 'Please specify a valid mobile number');
});

