!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(u){u.extend(u.fn,{validate:function(t){if(this.length){var s=u.data(this[0],"validator");return s||(this.attr("novalidate","novalidate"),s=new u.validator(t,this[0]),u.data(this[0],"validator",s),s.settings.onsubmit&&(this.on("click.validate",":submit",function(t){s.settings.submitHandler&&(s.submitButton=t.target),u(this).hasClass("cancel")&&(s.cancelSubmit=!0),void 0!==u(this).attr("formnovalidate")&&(s.cancelSubmit=!0)}),this.on("submit.validate",function(i){function t(){var t,e;return!s.settings.submitHandler||(s.submitButton&&(t=u("").attr("name",s.submitButton.name).val(u(s.submitButton).val()).appendTo(s.currentForm)),e=s.settings.submitHandler.call(s,s.currentForm,i),s.submitButton&&t.remove(),void 0!==e&&e)}return s.settings.debug&&i.preventDefault(),s.cancelSubmit?(s.cancelSubmit=!1,t()):s.form()?s.pendingRequest?!(s.formSubmitted=!0):t():(s.focusInvalid(),!1)})),s)}t&&t.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing.")},valid:function(){var t,e,i;return u(this[0]).is("form")?t=this.validate().form():(i=[],t=!0,e=u(this[0].form).validate(),this.each(function(){(t=e.element(this)&&t)||(i=i.concat(e.errorList))}),e.errorList=i),t},rules:function(t,e){if(this.length){var i,s,r,n,a,o,l=this[0];if(t)switch(s=(i=u.data(l.form,"validator").settings).rules,r=u.validator.staticRules(l),t){case"add":u.extend(r,u.validator.normalizeRule(e)),delete r.messages,s[l.name]=r,e.messages&&(i.messages[l.name]=u.extend(i.messages[l.name],e.messages));break;case"remove":return e?(o={},u.each(e.split(/\s/),function(t,e){o[e]=r[e],delete r[e],"required"===e&&u(l).removeAttr("aria-required")}),o):(delete s[l.name],r)}return(n=u.validator.normalizeRules(u.extend({},u.validator.classRules(l),u.validator.attributeRules(l),u.validator.dataRules(l),u.validator.staticRules(l)),l)).required&&(a=n.required,delete n.required,n=u.extend({required:a},n),u(l).attr("aria-required","true")),n.remote&&(a=n.remote,delete n.remote,n=u.extend(n,{remote:a})),n}}}),u.extend(u.expr[":"],{blank:function(t){return!u.trim(""+u(t).val())},filled:function(t){var e=u(t).val();return null!==e&&!!u.trim(""+e)},unchecked:function(t){return!u(t).prop("checked")}}),u.validator=function(t,e){this.settings=u.extend(!0,{},u.validator.defaults,t),this.currentForm=e,this.init()},u.validator.format=function(i,t){return 1===arguments.length?function(){var t=u.makeArray(arguments);return t.unshift(i),u.validator.format.apply(this,t)}:(void 0===t||(2Warning: No message defined for "+t.name+""),s=/\$?\{(\d+)\}/g;return"function"==typeof i?i=i.call(this,e.parameters,t):s.test(i)&&(i=u.validator.format(i.replace(s,"{$1}"),e.parameters)),i},formatAndAdd:function(t,e){var i=this.defaultMessage(t,e);this.errorList.push({message:i,element:t,method:e.method}),this.errorMap[t.name]=i,this.submitted[t.name]=i},addWrapper:function(t){return this.settings.wrapper&&(t=t.add(t.parent(this.settings.wrapper))),t},defaultShowErrors:function(){var t,e,i;for(t=0;this.errorList[t];t++)i=this.errorList[t],this.settings.highlight&&this.settings.highlight.call(this,i.element,this.settings.errorClass,this.settings.validClass),this.showLabel(i.element,i.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(t=0;this.successList[t];t++)this.showLabel(this.successList[t]);if(this.settings.unhighlight)for(t=0,e=this.validElements();e[t];t++)this.settings.unhighlight.call(this,e[t],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 u(this.errorList).map(function(){return this.element})},showLabel:function(t,e){var i,s,r,n,a=this.errorsFor(t),o=this.idOrName(t),l=u(t).attr("aria-describedby");a.length?(a.removeClass(this.settings.validClass).addClass(this.settings.errorClass),a.html(e)):(i=a=u("<"+this.settings.errorElement+">").attr("id",o+"-error").addClass(this.settings.errorClass).html(e||""),this.settings.wrapper&&(i=a.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(i):this.settings.errorPlacement?this.settings.errorPlacement(i,u(t)):i.insertAfter(t),a.is("label")?a.attr("for",o):0===a.parents("label[for='"+this.escapeCssMeta(o)+"']").length&&(r=a.attr("id"),l?l.match(new RegExp("\\b"+this.escapeCssMeta(r)+"\\b"))||(l+=" "+r):l=r,u(t).attr("aria-describedby",l),(s=this.groups[t.name])&&(n=this,u.each(n.groups,function(t,e){e===s&&u("[name='"+n.escapeCssMeta(t)+"']",n.currentForm).attr("aria-describedby",a.attr("id"))})))),!e&&this.settings.success&&(a.text(""),"string"==typeof this.settings.success?a.addClass(this.settings.success):this.settings.success(a,t)),this.toShow=this.toShow.add(a)},errorsFor:function(t){var e=this.escapeCssMeta(this.idOrName(t)),i=u(t).attr("aria-describedby"),s="label[for='"+e+"'], label[for='"+e+"'] *";return i&&(s=s+", #"+this.escapeCssMeta(i).replace(/\s+/g,", #")),this.errors().filter(s)},escapeCssMeta:function(t){return t.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(t){return this.groups[t.name]||(this.checkable(t)?t.name:t.id||t.name)},validationTargetFor:function(t){return this.checkable(t)&&(t=this.findByName(t.name)),u(t).not(this.settings.ignore)[0]},checkable:function(t){return/radio|checkbox/i.test(t.type)},findByName:function(t){return u(this.currentForm).find("[name='"+this.escapeCssMeta(t)+"']")},getLength:function(t,e){switch(e.nodeName.toLowerCase()){case"select":return u("option:selected",e).length;case"input":if(this.checkable(e))return this.findByName(e.name).filter(":checked").length}return t.length},depend:function(t,e){return!this.dependTypes[typeof t]||this.dependTypes[typeof t](t,e)},dependTypes:{boolean:function(t){return t},string:function(t,e){return!!u(t,e.form).length},function:function(t,e){return t(e)}},optional:function(t){var e=this.elementValue(t);return!u.validator.methods.required.call(this,e,t)&&"dependency-mismatch"},startRequest:function(t){this.pending[t.name]||(this.pendingRequest++,u(t).addClass(this.settings.pendingClass),this.pending[t.name]=!0)},stopRequest:function(t,e){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[t.name],u(t).removeClass(this.settings.pendingClass),e&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(u(this.currentForm).submit(),this.formSubmitted=!1):!e&&0===this.pendingRequest&&this.formSubmitted&&(u(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(t,e){return u.data(t,"previousValue")||u.data(t,"previousValue",{old:null,valid:!0,message:this.defaultMessage(t,{method:e})})},destroy:function(){this.resetForm(),u(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-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(t,e){t.constructor===String?this.classRuleSettings[t]=e:u.extend(this.classRuleSettings,t)},classRules:function(t){var e={},i=u(t).attr("class");return i&&u.each(i.split(" "),function(){this in u.validator.classRuleSettings&&u.extend(e,u.validator.classRuleSettings[this])}),e},normalizeAttributeRule:function(t,e,i,s){/min|max|step/.test(i)&&(null===e||/number|range|text/.test(e))&&(s=Number(s),isNaN(s)&&(s=void 0)),s||0===s?t[i]=s:e===i&&"range"!==e&&(t[i]=!0)},attributeRules:function(t){var e,i,s={},r=u(t),n=t.getAttribute("type");for(e in u.validator.methods)"required"===e?(""===(i=t.getAttribute(e))&&(i=!0),i=!!i):i=r.attr(e),this.normalizeAttributeRule(s,n,e,i);return s.maxlength&&/-1|2147483647|524288/.test(s.maxlength)&&delete s.maxlength,s},dataRules:function(t){var e,i,s={},r=u(t),n=t.getAttribute("type");for(e in u.validator.methods)i=r.data("rule"+e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()),this.normalizeAttributeRule(s,n,e,i);return s},staticRules:function(t){var e={},i=u.data(t.form,"validator");return i.settings.rules&&(e=u.validator.normalizeRule(i.settings.rules[t.name])||{}),e},normalizeRules:function(s,r){return u.each(s,function(t,e){if(!1!==e){if(e.param||e.depends){var i=!0;switch(typeof e.depends){case"string":i=!!u(e.depends,r.form).length;break;case"function":i=e.depends.call(r,r)}i?s[t]=void 0===e.param||e.param:(u.data(r.form,"validator").resetElements(u(r)),delete s[t])}}else delete s[t]}),u.each(s,function(t,e){s[t]=u.isFunction(e)&&"normalizer"!==t?e(r):e}),u.each(["minlength","maxlength"],function(){s[this]&&(s[this]=Number(s[this]))}),u.each(["rangelength","range"],function(){var t;s[this]&&(u.isArray(s[this])?s[this]=[Number(s[this][0]),Number(s[this][1])]:"string"==typeof s[this]&&(t=s[this].replace(/[\[\]]/g,"").split(/[\s,]+/),s[this]=[Number(t[0]),Number(t[1])]))}),u.validator.autoCreateRanges&&(null!=s.min&&null!=s.max&&(s.range=[s.min,s.max],delete s.min,delete s.max),null!=s.minlength&&null!=s.maxlength&&(s.rangelength=[s.minlength,s.maxlength],delete s.minlength,delete s.maxlength)),s},normalizeRule:function(t){if("string"==typeof t){var e={};u.each(t.split(/\s/),function(){e[this]=!0}),t=e}return t},addMethod:function(t,e,i){u.validator.methods[t]=e,u.validator.messages[t]=void 0!==i?i:u.validator.messages[t],e.length<3&&u.validator.addClassRules(t,u.validator.normalizeRule(t))},methods:{required:function(t,e,i){if(!this.depend(i,e))return"dependency-mismatch";if("select"===e.nodeName.toLowerCase()){var s=u(e).val();return s&&0=i[0]&&s<=i[1]},min:function(t,e,i){return this.optional(e)||i<=t},max:function(t,e,i){return this.optional(e)||t<=i},range:function(t,e,i){return this.optional(e)||t>=i[0]&&t<=i[1]},step:function(t,e,i){var s=u(e).attr("type"),r="Step attribute on input type "+s+" is not supported.",n=new RegExp("\\b"+s+"\\b");if(s&&!n.test(["text","number","range"].join()))throw new Error(r);return this.optional(e)||t%i==0},equalTo:function(t,e,i){var s=u(i);return this.settings.onfocusout&&s.not(".validate-equalTo-blur").length&&s.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){u(e).valid()}),t===s.val()},remote:function(n,a,t,o){if(this.optional(a))return"dependency-mismatch";o="string"==typeof o&&o||"remote";var l,e,i,h=this.previousValue(a,o);return this.settings.messages[a.name]||(this.settings.messages[a.name]={}),h.originalMessage=h.originalMessage||this.settings.messages[a.name][o],this.settings.messages[a.name][o]=h.message,t="string"==typeof t&&{url:t}||t,i=u.param(u.extend({data:n},t.data)),h.old===i?h.valid:(h.old=i,(l=this).startRequest(a),(e={})[a.name]=n,u.ajax(u.extend(!0,{mode:"abort",port:"validate"+a.name,dataType:"json",data:e,context:l.currentForm,success:function(t){var e,i,s,r=!0===t||"true"===t;l.settings.messages[a.name][o]=h.originalMessage,r?(s=l.formSubmitted,l.resetInternals(),l.toHide=l.errorsFor(a),l.formSubmitted=s,l.successList.push(a),l.invalid[a.name]=!1,l.showErrors()):(e={},i=t||l.defaultMessage(a,{method:o,parameters:n}),e[a.name]=h.message=i,l.invalid[a.name]=!0,l.showErrors(e)),h.valid=r,l.stopRequest(a,r)}},t)),"pending")}}});var s,r={};u.ajaxPrefilter?u.ajaxPrefilter(function(t,e,i){var s=t.port;"abort"===t.mode&&(r[s]&&r[s].abort(),r[s]=i)}):(s=u.ajax,u.ajax=function(t){var e=("mode"in t?t:u.ajaxSettings).mode,i=("port"in t?t:u.ajaxSettings).port;return"abort"===e?(r[i]&&r[i].abort(),r[i]=s.apply(this,arguments),r[i]):s.apply(this,arguments)})});