/*! jquery validation plugin - v1.19.3 - 1/9/2021 * https://jqueryvalidation.org/ * copyright (c) 2021 jörn zaefferer; licensed mit */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jquery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.submitbutton=b.currenttarget,a(this).hasclass("cancel")&&(c.cancelsubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelsubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.submitbutton&&(c.settings.submithandler||c.formsubmitted)&&(d=a("").attr("name",c.submitbutton.name).val(a(c.submitbutton).val()).appendto(c.currentform)),!(c.settings.submithandler&&!c.settings.debug)||(e=c.settings.submithandler.call(c,c.currentform,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventdefault(),c.cancelsubmit?(c.cancelsubmit=!1,d()):c.form()?c.pendingrequest?(c.formsubmitted=!0,!1):d():(c.focusinvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorlist))}),c.errorlist=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0],k="undefined"!=typeof this.attr("contenteditable")&&"false"!==this.attr("contenteditable");if(null!=j&&(!j.form&&k&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticrules(j),b){case"add":a.extend(f,a.validator.normalizerule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizerules(a.extend({},a.validator.classrules(j),a.validator.attributerules(j),a.validator.datarules(j),a.validator.staticrules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}});var b=function(a){return a.replace(/^[\s\ufeff\xa0]+|[\s\ufeff\xa0]+$/g,"")};a.extend(a.expr.pseudos||a.expr[":"],{blank:function(c){return!b(""+a(c).val())},filled:function(c){var d=a(c).val();return null!==d&&!!b(""+d)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentform=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makearray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==array&&(c=a.makearray(arguments).slice(1)),c.constructor!==array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new regexp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorclass:"error",pendingclass:"pending",validclass:"valid",errorelement:"label",focuscleanup:!1,focusinvalid:!0,errorcontainer:a([]),errorlabelcontainer:a([]),onsubmit:!0,ignore:":hidden",ignoretitle:!1,onfocusin:function(a){this.lastactive=a,this.settings.focuscleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorclass,this.settings.validclass),this.hidethese(this.errorsfor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementvalue(b)||a.inarray(c.keycode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentnode.name in this.submitted&&this.element(a.parentnode)},highlight:function(b,c,d){"radio"===b.type?this.findbyname(b.name).addclass(c).removeclass(d):a(b).addclass(c).removeclass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findbyname(b.name).removeclass(c).addclass(d):a(b).removeclass(c).addclass(d)}},setdefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"this field is required.",remote:"please fix this field.",email:"please enter a valid email address.",url:"please enter a valid url.",date:"please enter a valid date.",dateiso:"please enter a valid date (iso).",number:"please enter a valid number.",digits:"please enter only digits.",equalto:"please enter the same value again.",maxlength:a.validator.format("please enter no more than {0} characters."),minlength:a.validator.format("please enter at least {0} characters."),rangelength:a.validator.format("please enter a value between {0} and {1} characters long."),range:a.validator.format("please enter a value between {0} and {1}."),max:a.validator.format("please enter a value less than or equal to {0}."),min:a.validator.format("please enter a value greater than or equal to {0}."),step:a.validator.format("please enter a multiple of {0}.")},autocreateranges:!1,prototype:{init:function(){function b(b){var c="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");if(!this.form&&c&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name")),d===this.form){var e=a.data(this.form,"validator"),f="on"+b.type.replace(/^validate/,""),g=e.settings;g[f]&&!a(this).is(g.ignore)&&g[f].call(e,this,b)}}this.labelcontainer=a(this.settings.errorlabelcontainer),this.errorcontext=this.labelcontainer.length&&this.labelcontainer||a(this.currentform),this.containers=a(this.settings.errorcontainer).add(this.settings.errorlabelcontainer),this.submitted={},this.valuecache={},this.pendingrequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentform,e=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizerule(d)}),a(this.currentform).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidhandler&&a(this.currentform).on("invalid-form.validate",this.settings.invalidhandler)},form:function(){return this.checkform(),a.extend(this.submitted,this.errormap),this.invalid=a.extend({},this.errormap),this.valid()||a(this.currentform).triggerhandler("invalid-form",[this]),this.showerrors(),this.valid()},checkform:function(){this.prepareform();for(var a=0,b=this.currentelements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationtargetfor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareelement(f),this.currentelements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationtargetfor(g.clean(g.findbyname(a))),e&&e.name in g.invalid&&(g.currentelements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberofinvalids()||(this.tohide=this.tohide.add(this.containers)),this.showerrors(),a(b).attr("aria-invalid",!c)),h},showerrors:function(b){if(b){var c=this;a.extend(this.errormap,b),this.errorlist=a.map(this.errormap,function(a,b){return{message:a,element:c.findbyname(b)[0]}}),this.successlist=a.grep(this.successlist,function(a){return!(a.name in b)})}this.settings.showerrors?this.settings.showerrors.call(this,this.errormap,this.errorlist):this.defaultshowerrors()},resetform:function(){a.fn.resetform&&a(this.currentform).resetform(),this.invalid={},this.submitted={},this.prepareform(),this.hideerrors();var b=this.elements().removedata("previousvalue").removeattr("aria-invalid");this.resetelements(b)},resetelements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorclass,""),this.findbyname(a[b].name).removeclass(this.settings.validclass);else a.removeclass(this.settings.errorclass).removeclass(this.settings.validclass)},numberofinvalids:function(){return this.objectlength(this.invalid)},objectlength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideerrors:function(){this.hidethese(this.tohide)},hidethese:function(a){a.not(this.containers).text(""),this.addwrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorlist.length},focusinvalid:function(){if(this.settings.focusinvalid)try{a(this.findlastactive()||this.errorlist.length&&this.errorlist[0].element||[]).filter(":visible").trigger("focus").trigger("focusin")}catch(b){}},findlastactive:function(){var b=this.lastactive;return b&&1===a.grep(this.errorlist,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentform).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name"),e="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),e&&(this.form=a(this).closest("form")[0],this.name=d),this.form===b.currentform&&(!(d in c||!b.objectlength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorclass.split(" ").join(".");return a(this.settings.errorelement+"."+b,this.errorcontext)},resetinternals:function(){this.successlist=[],this.errorlist=[],this.errormap={},this.toshow=a([]),this.tohide=a([])},reset:function(){this.resetinternals(),this.currentelements=a([])},prepareform:function(){this.reset(),this.tohide=this.errors().add(this.containers)},prepareelement:function(a){this.reset(),this.tohide=this.errorsfor(a)},elementvalue:function(b){var c,d,e=a(b),f=b.type,g="undefined"!=typeof e.attr("contenteditable")&&"false"!==e.attr("contenteditable");return"radio"===f||"checkbox"===f?this.findbyname(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badinput?"nan":e.val():(c=g?e.text():e.val(),"file"===f?"c:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastindexof("/"),d>=0?c.substr(d+1):(d=c.lastindexof("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationtargetfor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementvalue(b);"function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.tohide=this.tohide.not(this.errorsfor(b)));if(!c)return this.formatandadd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof typeerror&&(k.message+=". exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectlength(g)&&this.successlist.push(b),!0},customdatamessage:function(b,c){return a(b).data("msg"+c.charat(0).touppercase()+c.substring(1).tolowercase())||a(b).data("msg")},custommessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===string?c:c[b])},finddefined:function(){for(var a=0;awarning: no message defined for "+b.name+""),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatandadd:function(a,b){var c=this.defaultmessage(a,b);this.errorlist.push({message:c,element:a,method:b.method}),this.errormap[a.name]=c,this.submitted[a.name]=c},addwrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultshowerrors:function(){var a,b,c;for(a=0;this.errorlist[a];a++)c=this.errorlist[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorclass,this.settings.validclass),this.showlabel(c.element,c.message);if(this.errorlist.length&&(this.toshow=this.toshow.add(this.containers)),this.settings.success)for(a=0;this.successlist[a];a++)this.showlabel(this.successlist[a]);if(this.settings.unhighlight)for(a=0,b=this.validelements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorclass,this.settings.validclass);this.tohide=this.tohide.not(this.toshow),this.hideerrors(),this.addwrapper(this.toshow).show()},validelements:function(){return this.currentelements.not(this.invalidelements())},invalidelements:function(){return a(this.errorlist).map(function(){return this.element})},showlabel:function(b,c){var d,e,f,g,h=this.errorsfor(b),i=this.idorname(b),j=a(b).attr("aria-describedby");h.length?(h.removeclass(this.settings.validclass).addclass(this.settings.errorclass),h.html(c)):(h=a("<"+this.settings.errorelement+">").attr("id",i+"-error").addclass(this.settings.errorclass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelcontainer.length?this.labelcontainer.append(d):this.settings.errorplacement?this.settings.errorplacement.call(this,d,a(b)):d.insertafter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapecssmeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new regexp("\\b"+this.escapecssmeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapecssmeta(b)+"']",g.currentform).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addclass(this.settings.success):this.settings.success(h,b)),this.toshow=this.toshow.add(h)},errorsfor:function(b){var c=this.escapecssmeta(this.idorname(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapecssmeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapecssmeta:function(a){return a.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g,"\\$1")},idorname:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationtargetfor:function(b){return this.checkable(b)&&(b=this.findbyname(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findbyname:function(b){return a(this.currentform).find("[name='"+this.escapecssmeta(b)+"']")},getlength:function(b,c){switch(c.nodename.tolowercase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findbyname(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependtypes[typeof a]||this.dependtypes[typeof a](a,b)},dependtypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementvalue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startrequest:function(b){this.pending[b.name]||(this.pendingrequest++,a(b).addclass(this.settings.pendingclass),this.pending[b.name]=!0)},stoprequest:function(b,c){this.pendingrequest--,this.pendingrequest<0&&(this.pendingrequest=0),delete this.pending[b.name],a(b).removeclass(this.settings.pendingclass),c&&0===this.pendingrequest&&this.formsubmitted&&this.form()?(a(this.currentform).submit(),this.submitbutton&&a("input:hidden[name='"+this.submitbutton.name+"']",this.currentform).remove(),this.formsubmitted=!1):!c&&0===this.pendingrequest&&this.formsubmitted&&(a(this.currentform).triggerhandler("invalid-form",[this]),this.formsubmitted=!1)},previousvalue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousvalue")||a.data(b,"previousvalue",{old:null,valid:!0,message:this.defaultmessage(b,{method:c})})},destroy:function(){this.resetform(),a(this.currentform).off(".validate").removedata("validator").find(".validate-equalto-blur").off(".validate-equalto").removeclass("validate-equalto-blur").find(".validate-lessthan-blur").off(".validate-lessthan").removeclass("validate-lessthan-blur").find(".validate-lessthanequal-blur").off(".validate-lessthanequal").removeclass("validate-lessthanequal-blur").find(".validate-greaterthanequal-blur").off(".validate-greaterthanequal").removeclass("validate-greaterthanequal-blur").find(".validate-greaterthan-blur").off(".validate-greaterthan").removeclass("validate-greaterthan-blur")}},classrulesettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateiso:{dateiso:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addclassrules:function(b,c){b.constructor===string?this.classrulesettings[b]=c:a.extend(this.classrulesettings,b)},classrules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classrulesettings&&a.extend(c,a.validator.classrulesettings[this])}),c},normalizeattributerule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=number(d),isnan(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributerules:function(b){var c,d,e={},f=a(b),g=b.getattribute("type");for(c in a.validator.methods)"required"===c?(d=b.getattribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeattributerule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},datarules:function(b){var c,d,e={},f=a(b),g=b.getattribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charat(0).touppercase()+c.substring(1).tolowercase()),""===d&&(d=!0),this.normalizeattributerule(e,g,c,d);return e},staticrules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizerule(d.settings.rules[b.name])||{}),c},normalizerules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetelements(a(c)),delete b[d])}}),a.each(b,function(a,d){b[a]="function"==typeof d&&"normalizer"!==a?d(c):d}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=number(b[this]))}),a.each(["rangelength","range"],function(){var a;b[this]&&(array.isarray(b[this])?b[this]=[number(b[this][0]),number(b[this][1])]:"string"==typeof b[this]&&(a=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[number(a[0]),number(a[1])]))}),a.validator.autocreateranges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizerule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addmethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addclassrules(b,a.validator.normalizerule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodename.tolowercase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getlength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[a-za-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-za-z0-9](?:[a-za-z0-9-]{0,61}[a-za-z0-9])?(?:\.[a-za-z0-9](?:[a-za-z0-9-]{0,61}[a-za-z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\s+(?::\s*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[\/?#]\s*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn("the `date` method is deprecated and will be removed in version '2.0.0'.\nplease don't use it, since it relies on the date constructor, which\nbehaves very differently across browsers and locales. use `dateiso`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")),this.optional(c)||!/invalid|nan/.test(new date(b).tostring())}}(),dateiso:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(a,b,c){var d=array.isarray(a)?a.length:this.getlength(a,b);return this.optional(b)||d>=c},maxlength:function(a,b,c){var d=array.isarray(a)?a.length:this.getlength(a,b);return this.optional(b)||d<=c},rangelength:function(a,b,c){var d=array.isarray(a)?a.length:this.getlength(a,b);return this.optional(b)||d>=c[0]&&d<=c[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new regexp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return math.round(a*math.pow(10,e))},m=!0;if(j)throw new error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalto:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalto-blur").length&&e.addclass("validate-equalto-blur").on("blur.validate-equalto",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousvalue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalmessage=i.originalmessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startrequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,datatype:"json",data:g,context:f.currentform,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalmessage,j?(h=f.formsubmitted,f.resetinternals(),f.tohide=f.errorsfor(c),f.formsubmitted=h,f.successlist.push(c),f.invalid[c.name]=!1,f.showerrors()):(d={},g=a||f.defaultmessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showerrors(d)),i.valid=j,f.stoprequest(c,j)}},d)),"pending")}}});var c,d={};return a.ajaxprefilter?a.ajaxprefilter(function(a,b,c){var e=a.port;"abort"===a.mode&&(d[e]&&d[e].abort(),d[e]=c)}):(c=a.ajax,a.ajax=function(b){var e=("mode"in b?b:a.ajaxsettings).mode,f=("port"in b?b:a.ajaxsettings).port;return"abort"===e?(d[f]&&d[f].abort(),d[f]=c.apply(this,arguments),d[f]):c.apply(this,arguments)}),a});