﻿function validate(form, args) {
        var name = $(form).parents("form").attr("name");
        $('#' + name).validate({
            ignoreTitle: true,
            errorLabelContainer: '#summary',
            showErrors: function (errorMap, errorList) {
                this.defaultShowErrors();
                $('#summary').hide();
            }
            //submitHandler: function(f){
              //$('form input[type=submit]').attr('disabled', 'disabled');
              //$(form).submit();
            //}
        });

        $.validator.addMethod(
            "regex",
            function (value, element, regexp) {
                var check = false;
                var re = new RegExp(regexp);
                return this.optional(element) || re.test(value);
            },
            "Please check your input."
        );
        
        $.validator.addMethod("either", function(value, element) {
          var hasValue = false;
          $(".either").each(function(index, val){
            if(val.value.length > 0){
              hasValue = true;
              return false;
            }
          });
          return hasValue;
        }, "");

        var clientID = "ctl00_LeftPlaceHolder_";
        if ($("#" + clientID + "NewPassword").length > 0) {

            $("#" + clientID + "NewPassword").rules("add", {
                regex: /^(?=.*\d)(?=.*[a-z])/,
                minlength: 6,
                messages: {
                    minlength: jQuery.format("Please, at least {0} characters are necessary"),
                    regex: jQuery.format("Password must be a minimum of six characters long and include at least one number and one lower case letter")
                }
            });
        }

        if ($("#" + clientID + "ConfirmPassword").length > 0) {
            $("#" + clientID + "ConfirmPassword").rules("add", {
                equalTo: "#" + clientID + "NewPassword",
                messages: {
                    equalTo: jQuery.format("Passwords must match")
                }
            });
        }

        if ($("#" + clientID + "ConfirmEmailAddress").length > 0) {
            $("#" + clientID + "ConfirmEmailAddress").rules("add", {
                equalTo: "#" + clientID + "NewEmailAddress",
                messages: {
                    equalTo: jQuery.format("Email addresses must match")
                }
            });
        } 
}
