/*! * jQuery Validation Plugin v1.14.0 * * http://jqueryvalidation.org/ * * Copyright (c) 2015 Jörn Zaefferer * Released under the MIT license */ (function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(c){c.extend(c.fn,{validate:function(d){if(!this.length){if(d&&d.debug&&window.console){console.warn("Nothing selected, can't validate, returning nothing.")}return}var e=c.data(this[0],"validator");if(e){return e}this.attr("novalidate","novalidate");e=new c.validator(d,this[0]);c.data(this[0],"validator",e);if(e.settings.onsubmit){this.on("click.validate",":submit",function(f){if(e.settings.submitHandler){e.submitButton=f.target}if(c(this).hasClass("cancel")){e.cancelSubmit=true}if(c(this).attr("formnovalidate")!==undefined){e.cancelSubmit=true}});this.on("submit.validate",function(f){if(e.settings.debug){f.preventDefault()}function g(){var i,h;if(e.settings.submitHandler){if(e.submitButton){i=c("").attr("name",e.submitButton.name).val(c(e.submitButton).val()).appendTo(e.currentForm)}h=e.settings.submitHandler.call(e,e.currentForm,f);if(e.submitButton){i.remove()}if(h!==undefined){return h}return false}return true}if(e.cancelSubmit){e.cancelSubmit=false;return g()}if(e.form()){if(e.pendingRequest){e.formSubmitted=true;return false}return g()}else{e.focusInvalid();return false}})}return e},valid:function(){var e,d,f;if(c(this[0]).is("form")){e=this.validate().form()}else{f=[];e=true;d=c(this[0].form).validate();this.each(function(){e=d.element(this)&&e;f=f.concat(d.errorList)});d.errorList=f}return e},rules:function(g,d){var i=this[0],f,k,l,h,e,j;if(g){f=c.data(i.form,"validator").settings;k=f.rules;l=c.validator.staticRules(i);switch(g){case"add":c.extend(l,c.validator.normalizeRule(d));delete l.messages;k[i.name]=l;if(d.messages){f.messages[i.name]=c.extend(f.messages[i.name],d.messages)}break;case"remove":if(!d){delete k[i.name];return l}j={};c.each(d.split(/\s/),function(m,n){j[n]=l[n];delete l[n];if(n==="required"){c(i).removeAttr("aria-required")}});return j}}h=c.validator.normalizeRules(c.extend({},c.validator.classRules(i),c.validator.attributeRules(i),c.validator.dataRules(i),c.validator.staticRules(i)),i);if(h.required){e=h.required;delete h.required;h=c.extend({required:e},h);c(i).attr("aria-required","true")}if(h.remote){e=h.remote;delete h.remote;h=c.extend(h,{remote:e})}return h}});c.extend(c.expr[":"],{blank:function(d){return !c.trim(""+c(d).val())},filled:function(d){return !!c.trim(""+c(d).val())},unchecked:function(d){return !c(d).prop("checked")}});c.validator=function(d,e){this.settings=c.extend(true,{},c.validator.defaults,d);this.currentForm=e;this.init()};c.validator.format=function(d,e){if(arguments.length===1){return function(){var f=c.makeArray(arguments);f.unshift(d);return c.validator.format.apply(this,f)}}if(arguments.length>2&&e.constructor!==Array){e=c.makeArray(arguments).slice(1)}if(e.constructor!==Array){e=[e]}c.each(e,function(f,g){d=d.replace(new RegExp("\\{"+f+"\\}","g"),function(){return g})});return d};c.extend(c.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusCleanup:false,focusInvalid:true,errorContainer:c([]),errorLabelContainer:c([]),onsubmit:true,ignore:{},ignoreTitle:false,onfocusin:function(d){this.lastActive=d;if(this.settings.focusCleanup){if(this.settings.unhighlight){this.settings.unhighlight.call(this,d,this.settings.errorClass,this.settings.validClass)}this.hideThese(this.errorsFor(d))}},onfocusout:function(d){if(!this.checkable(d)&&(d.name in this.submitted||!this.optional(d))){this.element(d)}},onkeyup:function(e,f){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];if(f.which===9&&this.elementValue(e)===""||c.inArray(f.keyCode,d)!==-1){return}else{if(e.name in this.submitted||e===this.lastElement){this.element(e)}}},onclick:function(d){if(d.name in this.submitted){this.element(d)}else{if(d.parentNode.name in this.submitted){this.element(d.parentNode)}}},highlight:function(f,d,e){if(f.type==="radio"){this.findByName(f.name).addClass(d).removeClass(e)}else{c(f).addClass(d).removeClass(e)}},unhighlight:function(f,d,e){if(f.type==="radio"){this.findByName(f.name).removeClass(d).addClass(e)}else{c(f).removeClass(d).addClass(e)}}},setDefaults:function(d){c.extend(c.validator.defaults,d)},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.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:c.validator.format("Please enter no more than {0} characters."),minlength:c.validator.format("Please enter at least {0} characters."),rangelength:c.validator.format("Please enter a value between {0} and {1} characters long."),range:c.validator.format("Please enter a value between {0} and {1}."),max:c.validator.format("Please enter a value less than or equal to {0}."),min:c.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){this.labelContainer=c(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||c(this.currentForm);this.containers=c(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var d=(this.groups={}),f;c.each(this.settings.groups,function(g,h){if(typeof h==="string"){h=h.split(/\s/)}c.each(h,function(j,i){d[i]=g})});f=this.settings.rules;c.each(f,function(g,h){f[g]=c.validator.normalizeRule(h)});function e(j){var h=c.data(this.form,"validator"),g="on"+j.type.replace(/^validate/,""),i=h.settings;if(i[g]&&!c(this).is(i.ignore)){i[g].call(h,this,j)}}c(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']",e).on("click.validate","select, option, [type='radio'], [type='checkbox']",e);if(this.settings.invalidHandler){c(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)}c(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){this.checkForm();c.extend(this.submitted,this.errorMap);this.invalid=c.extend({},this.errorMap);if(!this.valid()){c(this.currentForm).triggerHandler("invalid-form",[this])}this.showErrors();return this.valid()},checkForm:function(){this.prepareForm();for(var e=0,f=(this.currentElements=this.elements());f[e];e++){if(this.findByName(f[e].name).length!=undefined&&this.findByName(f[e].name).length>1){for(var d=0;dWarning: No message defined for "+d.name+"")},formatAndAdd:function(e,g){var f=this.defaultMessage(e,g.method),d=/\$?\{(\d+)\}/g;if(typeof f==="function"){f=f.call(this,g.parameters,e)}else{if(d.test(f)){f=c.validator.format(f.replace(d,"{$1}"),g.parameters)}}this.errorList.push({message:f,element:e,method:g.method});this.errorMap[e.name]=f;this.submitted[e.name]=f},addWrapper:function(d){if(this.settings.wrapper){d=d.add(d.parent(this.settings.wrapper))}return d},defaultShowErrors:function(){var e,f,d;for(e=0;this.errorList[e];e++){d=this.errorList[e];if(this.settings.highlight){this.settings.highlight.call(this,d.element,this.settings.errorClass,this.settings.validClass)}this.showLabel(d.element,d.message)}if(this.errorList.length){this.toShow=this.toShow.add(this.containers)}if(this.settings.success){for(e=0;this.successList[e];e++){this.showLabel(this.successList[e])}}if(this.settings.unhighlight){for(e=0,f=this.validElements();f[e];e++){this.settings.unhighlight.call(this,f[e],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 c(this.errorList).map(function(){return this.element})},showLabel:function(h,i){var e,k,g,f=this.errorsFor(h),d=this.idOrName(h),j=c(h).attr("aria-describedby");if(f.length){f.removeClass(this.settings.validClass).addClass(this.settings.errorClass);f.html(i)}else{f=c("<"+this.settings.errorElement+">").attr("id",d+"-error").addClass(this.settings.errorClass).html(i||"");e=f;if(this.settings.wrapper){e=f.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()}if(this.labelContainer.length){this.labelContainer.append(e)}else{if(this.settings.errorPlacement){this.settings.errorPlacement(e,c(h))}else{e.insertAfter(h)}}if(f.is("label")){f.attr("for",d)}else{if(f.parents("label[for='"+d+"']").length===0){g=f.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1");if(!j){j=g}else{if(!j.match(new RegExp("\\b"+g+"\\b"))){j+=" "+g}}c(h).attr("aria-describedby",j);k=this.groups[h.name];if(k){c.each(this.groups,function(m,l){if(l===k){c("[name='"+m+"']",this.currentForm).attr("aria-describedby",f.attr("id"))}})}}}}if(!i&&this.settings.success){f.text("");if(typeof this.settings.success==="string"){f.addClass(this.settings.success)}else{this.settings.success(f,h)}}this.toShow=this.toShow.add(f)},errorsFor:function(f){var e=this.idOrName(f),g=c(f).attr("aria-describedby"),d="label[for='"+e+"'], label[for='"+e+"'] *";if(g){d=d+", #"+g.replace(/\s+/g,", #")}return this.errors().filter(d)},idOrName:function(d){return this.groups[d.name]||(this.checkable(d)?d.name:d.id||d.name)},validationTargetFor:function(d){if(this.checkable(d)){d=this.findByName(d.name)}return c(d).not(this.settings.ignore)[0]},checkable:function(d){return(/radio|checkbox/i).test(d.type)},findByName:function(d){return c(this.currentForm).find("[name='"+d+"']")},getLength:function(e,d){switch(d.nodeName.toLowerCase()){case"select":return c("option:selected",d).length;case"input":if(this.checkable(d)){return this.findByName(d.name).filter(":checked").length}}return e.length},depend:function(e,d){return this.dependTypes[typeof e]?this.dependTypes[typeof e](e,d):true},dependTypes:{"boolean":function(d){return d},string:function(e,d){return !!c(e,d.form).length},"function":function(e,d){return e(d)}},optional:function(d){var e=this.elementValue(d);return !c.validator.methods.required.call(this,e,d)&&"dependency-mismatch"},startRequest:function(d){if(!this.pending[d.name]){this.pendingRequest++;this.pending[d.name]=true}},stopRequest:function(d,e){this.pendingRequest--;if(this.pendingRequest<0){this.pendingRequest=0}delete this.pending[d.name];if(e&&this.pendingRequest===0&&this.formSubmitted&&this.form()){c(this.currentForm).submit();this.formSubmitted=false}else{if(!e&&this.pendingRequest===0&&this.formSubmitted){c(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted=false}}},previousValue:function(d){return c.data(d,"previousValue")||c.data(d,"previousValue",{old:null,valid:true,message:this.defaultMessage(d,"remote")})},destroy:function(){this.resetForm();c(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},number:{number:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(d,e){if(d.constructor===String){this.classRuleSettings[d]=e}else{c.extend(this.classRuleSettings,d)}},classRules:function(e){var f={},d=c(e).attr("class");if(d){c.each(d.split(" "),function(){if(this in c.validator.classRuleSettings){c.extend(f,c.validator.classRuleSettings[this])}})}return f},normalizeAttributeRule:function(f,d,g,e){if(/min|max/.test(g)&&(d===null||/number|range|text/.test(d))){e=Number(e);if(isNaN(e)){e=undefined}}if(e||e===0){f[g]=e}else{if(d===g&&d!=="range"){f[g]=true}}},attributeRules:function(e){var h={},d=c(e),f=e.getAttribute("type"),i,g;for(i in c.validator.methods){if(i==="required"){g=e.getAttribute(i);if(g===""){g=true}g=!!g}else{g=d.attr(i)}this.normalizeAttributeRule(h,f,i,g)}if(h.maxlength&&/-1|2147483647|524288/.test(h.maxlength)){delete h.maxlength}return h},dataRules:function(e){var h={},d=c(e),f=e.getAttribute("type"),i,g;for(i in c.validator.methods){g=d.data("rule"+i.charAt(0).toUpperCase()+i.substring(1).toLowerCase());this.normalizeAttributeRule(h,f,i,g)}return h},staticRules:function(e){var f={},d=c.data(e.form,"validator");if(d!==undefined&&d.settings.rules){f=c.validator.normalizeRule(d.settings.rules[e.name])||{}}return f},normalizeRules:function(e,d){c.each(e,function(h,g){if(g===false){delete e[h];return}if(g.param||g.depends){var f=true;switch(typeof g.depends){case"string":f=!!c(g.depends,d.form).length;break;case"function":f=g.depends.call(d,d);break}if(f){e[h]=g.param!==undefined?g.param:true}else{delete e[h]}}});c.each(e,function(f,g){e[f]=c.isFunction(g)?g(d):g});c.each(["minlength","maxlength"],function(){if(e[this]){e[this]=Number(e[this])}});c.each(["rangelength","range"],function(){var f;if(e[this]){if(c.isArray(e[this])){e[this]=[Number(e[this][0]),Number(e[this][1])]}else{if(typeof e[this]==="string"){f=e[this].replace(/[\[\]]/g,"").split(/[\s,]+/);e[this]=[Number(f[0]),Number(f[1])]}}}});if(c.validator.autoCreateRanges){if(e.min!=null&&e.max!=null){e.range=[e.min,e.max];delete e.min;delete e.max}if(e.minlength!=null&&e.maxlength!=null){e.rangelength=[e.minlength,e.maxlength];delete e.minlength;delete e.maxlength}}return e},normalizeRule:function(e){if(typeof e==="string"){var d={};c.each(e.split(/\s/),function(){d[this]=true});e=d}return e},addMethod:function(d,f,e){c.validator.methods[d]=f;c.validator.messages[d]=e!==undefined?e:c.validator.messages[d];if(f.length<3){c.validator.addClassRules(d,c.validator.normalizeRule(d))}},methods:{required:function(e,d,g){if(!this.depend(g,d)){return"dependency-mismatch"}if(d.nodeName.toLowerCase()==="select"){var f=c(d).val();return f&&f.length>0}if(this.checkable(d)){return this.getLength(e,d)>0}return e.length>0},email:function(e,d){return this.optional(d)||/^[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(e)},url:function(e,d){return this.optional(d)||/^(?:(?:(?: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-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(e)},date:function(e,d){return this.optional(d)||!/Invalid|NaN/.test(new Date(e).toString())},dateISO:function(e,d){return this.optional(d)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(e)},number:function(e,d){return this.optional(d)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(e)},digits:function(e,d){return this.optional(d)||/^\d+$/.test(e)},creditcard:function(h,e){if(this.optional(e)){return"dependency-mismatch"}if(/[^0-9 \-]+/.test(h)){return false}var i=0,g=0,d=false,j,f;h=h.replace(/\D/g,"");if(h.length<13||h.length>19){return false}for(j=h.length-1;j>=0;j--){f=h.charAt(j);g=parseInt(f,10);if(d){if((g*=2)>9){g-=9}}i+=g;d=!d}return(i%10)===0},minlength:function(f,d,g){var e=c.isArray(f)?f.length:this.getLength(f,d);return this.optional(d)||e>=g},maxlength:function(f,d,g){var e=c.isArray(f)?f.length:this.getLength(f,d);return this.optional(d)||e<=g},rangelength:function(f,d,g){var e=c.isArray(f)?f.length:this.getLength(f,d);return this.optional(d)||(e>=g[0]&&e<=g[1])},min:function(e,d,f){return this.optional(d)||e>=f},max:function(e,d,f){return this.optional(d)||e<=f},range:function(e,d,f){return this.optional(d)||(e>=f[0]&&e<=f[1])},equalTo:function(e,d,g){var f=c(g);if(this.settings.onfocusout){f.off(".validate-equalTo").on("blur.validate-equalTo",function(){c(d).valid()})}return e===f.val()},remote:function(h,e,i){if(this.optional(e)){return"dependency-mismatch"}var f=this.previousValue(e),d,g;if(!this.settings.messages[e.name]){this.settings.messages[e.name]={}}f.originalMessage=this.settings.messages[e.name].remote;this.settings.messages[e.name].remote=f.message;i=typeof i==="string"&&{url:i}||i;if(f.old===h){return f.valid}f.old=h;d=this;this.startRequest(e);g={};g[e.name]=h;c.ajax(c.extend(true,{mode:"abort",port:"validate"+e.name,dataType:"json",data:g,context:d.currentForm,success:function(k){var m=k===true||k==="true",n,l,j;d.settings.messages[e.name].remote=f.originalMessage;if(m){j=d.formSubmitted;d.prepareElement(e);d.formSubmitted=j;d.successList.push(e);delete d.invalid[e.name];d.showErrors()}else{n={};l=k||d.defaultMessage(e,"remote");n[e.name]=f.message=c.isFunction(l)?l(h):l;d.invalid[e.name]=true;d.showErrors(n)}f.valid=m;d.stopRequest(e,m)}},i));return"pending"}}});var a={},b;if(c.ajaxPrefilter){c.ajaxPrefilter(function(f,e,g){var d=f.port;if(f.mode==="abort"){if(a[d]){a[d].abort()}a[d]=g}})}else{b=c.ajax;c.ajax=function(e){var f=("mode" in e?e:c.ajaxSettings).mode,d=("port" in e?e:c.ajaxSettings).port;if(f==="abort"){if(a[d]){a[d].abort()}a[d]=b.apply(this,arguments);return a[d]}return b.apply(this,arguments)}}}));