/* nuget: begin license text * * microsoft grants you the right to use these script files for the sole * purpose of either: (i) interacting through your browser with the microsoft * website or online service, subject to the applicable licensing or use * terms; or (ii) using the files as included with a microsoft product subject * to that product's license terms. microsoft reserves all other rights to the * files not expressly granted by microsoft, whether by implication, estoppel * or otherwise. insofar as a script file is dual licensed under gpl, * microsoft neither took the code under gpl nor distributes it thereunder but * under the terms set out in this paragraph. all notices and licenses * below are for informational purposes only. * * nuget: end license text */ /* ** unobtrusive validation support library for jquery and jquery validate ** copyright (c) microsoft corporation. all rights reserved. */ (function(a){var d=a.validator,b,e="unobtrusivevalidation";function c(a,b,c){a.rules[b]=c;if(a.message)a.messages[b]=a.message}function j(a){return a.replace(/^\s+|\s+$/g,"").split(/\s*,\s*/g)}function f(a){return a.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g,"\\$1")}function h(a){return a.substr(0,a.lastindexof(".")+1)}function g(a,b){if(a.indexof("*.")===0)a=a.replace("*.",b);return a}function m(c,e){var b=a(this).find("[data-valmsg-for='"+f(e[0].name)+"']"),d=b.attr("data-valmsg-replace"),g=d?a.parsejson(d)!==false:null;b.removeclass("field-validation-valid").addclass("field-validation-error");c.data("unobtrusivecontainer",b);if(g){b.empty();c.removeclass("input-validation-error").appendto(b)}else c.hide()}function l(e,d){var c=a(this).find("[data-valmsg-summary=true]"),b=c.find("ul");if(b&&b.length&&d.errorlist.length){b.empty();c.addclass("validation-summary-errors").removeclass("validation-summary-valid");a.each(d.errorlist,function(){a("
  • ").html(this.message).appendto(b)})}}function k(d){var b=d.data("unobtrusivecontainer"),c=b.attr("data-valmsg-replace"),e=c?a.parsejson(c):null;if(b){b.addclass("field-validation-valid").removeclass("field-validation-error");d.removedata("unobtrusivecontainer");e&&b.empty()}}function n(){var b=a(this);b.data("validator").resetform();b.find(".validation-summary-errors").addclass("validation-summary-valid").removeclass("validation-summary-errors");b.find(".field-validation-error").addclass("field-validation-valid").removeclass("field-validation-error").removedata("unobtrusivecontainer").find(">*").removedata("unobtrusivecontainer")}function i(c){var b=a(c),d=b.data(e),f=a.proxy(n,c);if(!d){d={options:{errorclass:"input-validation-error",errorelement:"span",errorplacement:a.proxy(m,c),invalidhandler:a.proxy(l,c),messages:{},rules:{},success:a.proxy(k,c)},attachvalidation:function(){b.unbind("reset."+e,f).bind("reset."+e,f).validate(this.options)},validate:function(){b.validate();return b.valid()}};b.data(e,d)}return d}d.unobtrusive={adapters:[],parseelement:function(b,h){var d=a(b),f=d.parents("form")[0],c,e,g;if(!f)return;c=i(f);c.options.rules[b.name]=e={};c.options.messages[b.name]=g={};a.each(this.adapters,function(){var c="data-val-"+this.name,i=d.attr(c),h={};if(i!==undefined){c+="-";a.each(this.params,function(){h[this]=d.attr(c+this)});this.adapt({element:b,form:f,message:i,params:h,rules:e,messages:g})}});a.extend(e,{__dummy__:true});!h&&c.attachvalidation()},parse:function(b){var c=a(b).parents("form").andself().add(a(b).find("form")).filter("form");a(b).find(":input[data-val=true]").each(function(){d.unobtrusive.parseelement(this,true)});c.each(function(){var a=i(this);a&&a.attachvalidation()})}};b=d.unobtrusive.adapters;b.add=function(c,a,b){if(!b){b=a;a=[]}this.push({name:c,params:a,adapt:b});return this};b.addbool=function(a,b){return this.add(a,function(d){c(d,b||a,true)})};b.addminmax=function(e,g,f,a,d,b){return this.add(e,[d||"min",b||"max"],function(b){var e=b.params.min,d=b.params.max;if(e&&d)c(b,a,[e,d]);else if(e)c(b,g,e);else d&&c(b,f,d)})};b.addsingleval=function(a,b,d){return this.add(a,[b||"val"],function(e){c(e,d||a,e.params[b])})};d.addmethod("__dummy__",function(){return true});d.addmethod("regex",function(b,c,d){var a;if(this.optional(c))return true;a=(new regexp(d)).exec(b);return a&&a.index===0&&a[0].length===b.length});d.addmethod("nonalphamin",function(c,d,b){var a;if(b){a=c.match(/\w/g);a=a&&a.length>=b}return a});b.addsingleval("accept","exts").addsingleval("regex","pattern");b.addbool("creditcard").addbool("date").addbool("digits").addbool("email").addbool("number").addbool("url");b.addminmax("length","minlength","maxlength","rangelength").addminmax("range","min","max","range");b.add("equalto",["other"],function(b){var i=h(b.element.name),j=b.params.other,d=g(j,i),e=a(b.form).find(":input[name='"+f(d)+"']")[0];c(b,"equalto",e)});b.add("required",function(a){(a.element.tagname.touppercase()!=="input"||a.element.type.touppercase()!=="checkbox")&&c(a,"required",true)});b.add("remote",["url","type","additionalfields"],function(b){var d={url:b.params.url,type:b.params.type||"get",data:{}},e=h(b.element.name);a.each(j(b.params.additionalfields||b.element.name),function(i,h){var c=g(h,e);d.data[c]=function(){return a(b.form).find(":input[name='"+f(c)+"']").val()}});c(b,"remote",d)});b.add("password",["min","nonalphamin","regex"],function(a){a.params.min&&c(a,"minlength",a.params.min);a.params.nonalphamin&&c(a,"nonalphamin",a.params.nonalphamin);a.params.regex&&c(a,"regex",a.params.regex)});a(function(){d.unobtrusive.parse(document)})})(jquery);