jQuery.validator.setDefaults({
  invalidHandler: function(form, validator) {
  var errors = validator.numberOfInvalids();
    if (errors) {
      try {
        // if ($("div.error-message").hidden()) {
          var formElement = form.currentTarget;
          // $('#form-wrap').before('<div class="error-message" style="display: block;"><p>There was a problem with your form. Please check the highlighted fields and try again.</p><ul id="messageBox"></ul></div>');
          $("div.error-message").show();
        // }
      } catch (err) {}
    } else {
      $("div.error-message").hide();
    }
  }
});

$(document).ready(function(){
	
	// a custom method making the default value for companyurl ("http://") invalid, without displaying the "invalid url" message
    jQuery.validator.addMethod("defaultInvalid", function(value, element) {
        return value != element.defaultValue;
    }, "");

	$('#contact_form').validate({
		errorElement: 'span',
		errorLabelContainer: "#messageBox",
		wrapper: "li",
		rules: {
			name: {
				required: true,
				defaultInvalid: true
			}, 
			from: {
				required: true,
				email: true
			},
			message: "required"
		},
		messages: {
			name: "Please enter your name",
			from: {
				required: "Please enter a valid email address",
				minlength: "Please enter a valid email address"
			},
			message: "Please enter your message"
		}
	});
	
	
	$('#checkout-form').validate({
		errorElement: 'span',
		errorLabelContainer: "#messageBox",
		wrapper: "li",
		rules: {
			first_name: {
				required: true
			}, 
			last_name: {
				required: true
			},
			email_address: {
				required: true,
				email: true
			},
			telephone: {
				required: true
			},
			address: {
				required: true
			},
			city: {
				required: true
			},
			state: {
				required: true
			},
			zip: {
				required: true
			},
		},
		messages: {
			first_name: "Please enter your first name",
			last_name: "Please enter your last name",
			telephone: "Please enter your telephone number",
			address: "Please enter your billing address",
			city: "Please enter your billing city",
			state: "Please enter your billing county",
			zip: "Please enter your billing post code",
			email_address: {
				required: "Please enter a valid email address",
				minlength: "Please enter a valid email address"
			}
		}
	});
	
	
	
	
});
