/*!
 * jQuery Validation Plugin v1.15.0
 *
 * http://jqueryvalidation.org/
 *
 * Copyright (c) 2016 Jörn Zaefferer
 * Released under the MIT license
 */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=e(require("jquery")):e(jQuery)}((function(e){e.extend(e.fn,{validate:function(t){if(this.length){var i=e.data(this[0],"validator");return i||(this.attr("novalidate","novalidate"),i=new e.validator(t,this[0]),e.data(this[0],"validator",i),i.settings.onsubmit&&(this.on("click.validate",":submit",(function(t){i.settings.submitHandler&&(i.submitButton=t.target),e(this).hasClass("cancel")&&(i.cancelSubmit=!0),void 0!==e(this).attr("formnovalidate")&&(i.cancelSubmit=!0)})),this.on("submit.validate",(function(t){function a(){var a,n;return!i.settings.submitHandler||(i.submitButton&&(a=e("<input type='hidden'/>").attr("name",i.submitButton.name).val(e(i.submitButton).val()).appendTo(i.currentForm)),n=i.settings.submitHandler.call(i,i.currentForm,t),i.submitButton&&a.remove(),void 0!==n&&n)}return i.settings.debug&&t.preventDefault(),i.cancelSubmit?(i.cancelSubmit=!1,a()):i.form()?i.pendingRequest?(i.formSubmitted=!0,!1):a():(i.focusInvalid(),!1)}))),i)}t&&t.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing.")},valid:function(){var t,i,a;return e(this[0]).is("form")?t=this.validate().form():(a=[],t=!0,i=e(this[0].form).validate(),this.each((function(){(t=i.element(this)&&t)||(a=a.concat(i.errorList))})),i.errorList=a),t},rules:function(t,i){if(this.length){var a,n,r,s,o,l,d=this[0];if(t)switch(n=(a=e.data(d.form,"validator").settings).rules,r=e.validator.staticRules(d),t){case"add":e.extend(r,e.validator.normalizeRule(i)),delete r.messages,n[d.name]=r,i.messages&&(a.messages[d.name]=e.extend(a.messages[d.name],i.messages));break;case"remove":return i?(l={},e.each(i.split(/\s/),(function(t,i){l[i]=r[i],delete r[i],"required"===i&&e(d).removeAttr("aria-required")})),l):(delete n[d.name],r)}return(s=e.validator.normalizeRules(e.extend({},e.validator.classRules(d),e.validator.attributeRules(d),e.validator.dataRules(d),e.validator.staticRules(d)),d)).required&&(o=s.required,delete s.required,s=e.extend({required:o},s),e(d).attr("aria-required","true")),s.remote&&(o=s.remote,delete s.remote,s=e.extend(s,{remote:o})),s}}}),e.extend(e.expr[":"],{blank:function(t){return!e.trim(""+e(t).val())},filled:function(t){var i=e(t).val();return null!==i&&!!e.trim(""+i)},unchecked:function(t){return!e(t).prop("checked")}}),e.validator=function(t,i){this.settings=e.extend(!0,{},e.validator.defaults,t),this.currentForm=i,this.init()},e.validator.format=function(t,i){return 1===arguments.length?function(){var i=e.makeArray(arguments);return i.unshift(t),e.validator.format.apply(this,i)}:(void 0===i||(arguments.length>2&&i.constructor!==Array&&(i=e.makeArray(arguments).slice(1)),i.constructor!==Array&&(i=[i]),e.each(i,(function(e,i){t=t.replace(new RegExp("\\{"+e+"\\}","g"),(function(){return i}))}))),t)},e.extend(e.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:e([]),errorLabelContainer:e([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(e){this.lastActive=e,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,e,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(e)))},onfocusout:function(e){this.checkable(e)||!(e.name in this.submitted)&&this.optional(e)||this.element(e)},onkeyup:function(t,i){9===i.which&&""===this.elementValue(t)||-1!==e.inArray(i.keyCode,[16,17,18,20,35,36,37,38,39,40,45,144,225])||(t.name in this.submitted||t.name in this.invalid)&&this.element(t)},onclick:function(e){e.name in this.submitted?this.element(e):e.parentNode.name in this.submitted&&this.element(e.parentNode)},highlight:function(t,i,a){"radio"===t.type?this.findByName(t.name).addClass(i).removeClass(a):e(t).addClass(i).removeClass(a)},unhighlight:function(t,i,a){"radio"===t.type?this.findByName(t.name).removeClass(i).addClass(a):e(t).removeClass(i).addClass(a)}},setDefaults:function(t){e.extend(e.validator.defaults,t)},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:e.validator.format("Please enter no more than {0} characters."),minlength:e.validator.format("Please enter at least {0} characters."),rangelength:e.validator.format("Please enter a value between {0} and {1} characters long."),range:e.validator.format("Please enter a value between {0} and {1}."),max:e.validator.format("Please enter a value less than or equal to {0}."),min:e.validator.format("Please enter a value greater than or equal to {0}."),step:e.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){this.labelContainer=e(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||e(this.currentForm),this.containers=e(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var t,i=this.groups={};function a(t){var i=e.data(this.form,"validator"),a="on"+t.type.replace(/^validate/,""),n=i.settings;n[a]&&!e(this).is(n.ignore)&&n[a].call(i,this,t)}e.each(this.settings.groups,(function(t,a){"string"==typeof a&&(a=a.split(/\s/)),e.each(a,(function(e,a){i[a]=t}))})),t=this.settings.rules,e.each(t,(function(i,a){t[i]=e.validator.normalizeRule(a)})),e(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]",a).on("click.validate","select, option, [type='radio'], [type='checkbox']",a),this.settings.invalidHandler&&e(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),e(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),e.extend(this.submitted,this.errorMap),this.invalid=e.extend({},this.errorMap),this.valid()||e(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var e=0,t=this.currentElements=this.elements();t[e];e++)this.check(t[e]);return this.valid()},element:function(t){var i,a,n=this.clean(t),r=this.validationTargetFor(n),s=this,o=!0;return void 0===r?delete this.invalid[n.name]:(this.prepareElement(r),this.currentElements=e(r),(a=this.groups[r.name])&&e.each(this.groups,(function(e,t){t===a&&e!==r.name&&(n=s.validationTargetFor(s.clean(s.findByName(e))))&&n.name in s.invalid&&(s.currentElements.push(n),o=o&&s.check(n))})),i=!1!==this.check(r),o=o&&i,this.invalid[r.name]=!i,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e(t).attr("aria-invalid",!i)),o},showErrors:function(t){if(t){var i=this;e.extend(this.errorMap,t),this.errorList=e.map(this.errorMap,(function(e,t){return{message:e,element:i.findByName(t)[0]}})),this.successList=e.grep(this.successList,(function(e){return!(e.name in t)}))}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){e.fn.resetForm&&e(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var t=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(t)},resetElements:function(e){var t;if(this.settings.unhighlight)for(t=0;e[t];t++)this.settings.unhighlight.call(this,e[t],this.settings.errorClass,""),this.findByName(e[t].name).removeClass(this.settings.validClass);else e.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(e){var t,i=0;for(t in e)e[t]&&i++;return i},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(e){e.not(this.containers).text(""),this.addWrapper(e).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{e(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(e){}},findLastActive:function(){var t=this.lastActive;return t&&1===e.grep(this.errorList,(function(e){return e.element.name===t.name})).length&&t},elements:function(){var t=this,i={};return e(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter((function(){var a=this.name||e(this).attr("name");return!a&&t.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.hasAttribute("contenteditable")&&(this.form=e(this).closest("form")[0]),!(a in i||!t.objectLength(e(this).rules()))&&(i[a]=!0,!0)}))},clean:function(t){return e(t)[0]},errors:function(){var t=this.settings.errorClass.split(" ").join(".");return e(this.settings.errorElement+"."+t,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=e([]),this.toHide=e([])},reset:function(){this.resetInternals(),this.currentElements=e([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(e){this.reset(),this.toHide=this.errorsFor(e)},elementValue:function(t){var i,a,n=e(t),r=t.type;return"radio"===r||"checkbox"===r?this.findByName(t.name).filter(":checked").val():"number"===r&&void 0!==t.validity?t.validity.badInput?"NaN":n.val():(i=t.hasAttribute("contenteditable")?n.text():n.val(),"file"===r?"C:\\fakepath\\"===i.substr(0,12)?i.substr(12):(a=i.lastIndexOf("/"))>=0||(a=i.lastIndexOf("\\"))>=0?i.substr(a+1):i:"string"==typeof i?i.replace(/\r/g,""):i)},check:function(t){t=this.validationTargetFor(this.clean(t));var i,a,n,r=e(t).rules(),s=e.map(r,(function(e,t){return t})).length,o=!1,l=this.elementValue(t);if("function"==typeof r.normalizer){if("string"!=typeof(l=r.normalizer.call(t,l)))throw new TypeError("The normalizer should return a string value.");delete r.normalizer}for(a in r){n={method:a,parameters:r[a]};try{if("dependency-mismatch"===(i=e.validator.methods[a].call(this,l,t,n.parameters))&&1===s){o=!0;continue}if(o=!1,"pending"===i)return void(this.toHide=this.toHide.not(this.errorsFor(t)));if(!i)return this.formatAndAdd(t,n),!1}catch(e){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+t.id+", check the '"+n.method+"' method.",e),e instanceof TypeError&&(e.message+=".  Exception occurred when checking element "+t.id+", check the '"+n.method+"' method."),e}}if(!o)return this.objectLength(r)&&this.successList.push(t),!0},customDataMessage:function(t,i){return e(t).data("msg"+i.charAt(0).toUpperCase()+i.substring(1).toLowerCase())||e(t).data("msg")},customMessage:function(e,t){var i=this.settings.messages[e];return i&&(i.constructor===String?i:i[t])},findDefined:function(){for(var e=0;e<arguments.length;e++)if(void 0!==arguments[e])return arguments[e]},defaultMessage:function(t,i){var a=this.findDefined(this.customMessage(t.name,i.method),this.customDataMessage(t,i.method),!this.settings.ignoreTitle&&t.title||void 0,e.validator.messages[i.method],"<strong>Warning: No message defined for "+t.name+"</strong>"),n=/\$?\{(\d+)\}/g;return"function"==typeof a?a=a.call(this,i.parameters,t):n.test(a)&&(a=e.validator.format(a.replace(n,"{$1}"),i.parameters)),a},formatAndAdd:function(e,t){var i=this.defaultMessage(e,t);this.errorList.push({message:i,element:e,method:t.method}),this.errorMap[e.name]=i,this.submitted[e.name]=i},addWrapper:function(e){return this.settings.wrapper&&(e=e.add(e.parent(this.settings.wrapper))),e},defaultShowErrors:function(){var e,t,i;for(e=0;this.errorList[e];e++)i=this.errorList[e],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(e=0;this.successList[e];e++)this.showLabel(this.successList[e]);if(this.settings.unhighlight)for(e=0,t=this.validElements();t[e];e++)this.settings.unhighlight.call(this,t[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 e(this.errorList).map((function(){return this.element}))},showLabel:function(t,i){var a,n,r,s,o=this.errorsFor(t),l=this.idOrName(t),d=e(t).attr("aria-describedby");o.length?(o.removeClass(this.settings.validClass).addClass(this.settings.errorClass),o.html(i)):(a=o=e("<"+this.settings.errorElement+">").attr("id",l+"-error").addClass(this.settings.errorClass).html(i||""),this.settings.wrapper&&(a=o.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(a):this.settings.errorPlacement?this.settings.errorPlacement(a,e(t)):a.insertAfter(t),o.is("label")?o.attr("for",l):0===o.parents("label[for='"+this.escapeCssMeta(l)+"']").length&&(r=o.attr("id"),d?d.match(new RegExp("\\b"+this.escapeCssMeta(r)+"\\b"))||(d+=" "+r):d=r,e(t).attr("aria-describedby",d),(n=this.groups[t.name])&&(s=this,e.each(s.groups,(function(t,i){i===n&&e("[name='"+s.escapeCssMeta(t)+"']",s.currentForm).attr("aria-describedby",o.attr("id"))}))))),!i&&this.settings.success&&(o.text(""),"string"==typeof this.settings.success?o.addClass(this.settings.success):this.settings.success(o,t)),this.toShow=this.toShow.add(o)},errorsFor:function(t){var i=this.escapeCssMeta(this.idOrName(t)),a=e(t).attr("aria-describedby"),n="label[for='"+i+"'], label[for='"+i+"'] *";return a&&(n=n+", #"+this.escapeCssMeta(a).replace(/\s+/g,", #")),this.errors().filter(n)},escapeCssMeta:function(e){return e.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(e){return this.groups[e.name]||(this.checkable(e)?e.name:e.id||e.name)},validationTargetFor:function(t){return this.checkable(t)&&(t=this.findByName(t.name)),e(t).not(this.settings.ignore)[0]},checkable:function(e){return/radio|checkbox/i.test(e.type)},findByName:function(t){return e(this.currentForm).find("[name='"+this.escapeCssMeta(t)+"']")},getLength:function(t,i){switch(i.nodeName.toLowerCase()){case"select":return e("option:selected",i).length;case"input":if(this.checkable(i))return this.findByName(i.name).filter(":checked").length}return t.length},depend:function(e,t){return!this.dependTypes[typeof e]||this.dependTypes[typeof e](e,t)},dependTypes:{boolean:function(e){return e},string:function(t,i){return!!e(t,i.form).length},function:function(e,t){return e(t)}},optional:function(t){var i=this.elementValue(t);return!e.validator.methods.required.call(this,i,t)&&"dependency-mismatch"},startRequest:function(t){this.pending[t.name]||(this.pendingRequest++,e(t).addClass(this.settings.pendingClass),this.pending[t.name]=!0)},stopRequest:function(t,i){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[t.name],e(t).removeClass(this.settings.pendingClass),i&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(e(this.currentForm).submit(),this.formSubmitted=!1):!i&&0===this.pendingRequest&&this.formSubmitted&&(e(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(t,i){return e.data(t,"previousValue")||e.data(t,"previousValue",{old:null,valid:!0,message:this.defaultMessage(t,{method:i})})},destroy:function(){this.resetForm(),e(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,i){t.constructor===String?this.classRuleSettings[t]=i:e.extend(this.classRuleSettings,t)},classRules:function(t){var i={},a=e(t).attr("class");return a&&e.each(a.split(" "),(function(){this in e.validator.classRuleSettings&&e.extend(i,e.validator.classRuleSettings[this])})),i},normalizeAttributeRule:function(e,t,i,a){/min|max|step/.test(i)&&(null===t||/number|range|text/.test(t))&&(a=Number(a),isNaN(a)&&(a=void 0)),a||0===a?e[i]=a:t===i&&"range"!==t&&(e[i]=!0)},attributeRules:function(t){var i,a,n={},r=e(t),s=t.getAttribute("type");for(i in e.validator.methods)"required"===i?(""===(a=t.getAttribute(i))&&(a=!0),a=!!a):a=r.attr(i),this.normalizeAttributeRule(n,s,i,a);return n.maxlength&&/-1|2147483647|524288/.test(n.maxlength)&&delete n.maxlength,n},dataRules:function(t){var i,a,n={},r=e(t),s=t.getAttribute("type");for(i in e.validator.methods)a=r.data("rule"+i.charAt(0).toUpperCase()+i.substring(1).toLowerCase()),this.normalizeAttributeRule(n,s,i,a);return n},staticRules:function(t){var i={},a=e.data(t.form,"validator");return a.settings.rules&&(i=e.validator.normalizeRule(a.settings.rules[t.name])||{}),i},normalizeRules:function(t,i){return e.each(t,(function(a,n){if(!1!==n){if(n.param||n.depends){var r=!0;switch(typeof n.depends){case"string":r=!!e(n.depends,i.form).length;break;case"function":r=n.depends.call(i,i)}r?t[a]=void 0===n.param||n.param:(e.data(i.form,"validator").resetElements(e(i)),delete t[a])}}else delete t[a]})),e.each(t,(function(a,n){t[a]=e.isFunction(n)&&"normalizer"!==a?n(i):n})),e.each(["minlength","maxlength"],(function(){t[this]&&(t[this]=Number(t[this]))})),e.each(["rangelength","range"],(function(){var i;t[this]&&(e.isArray(t[this])?t[this]=[Number(t[this][0]),Number(t[this][1])]:"string"==typeof t[this]&&(i=t[this].replace(/[\[\]]/g,"").split(/[\s,]+/),t[this]=[Number(i[0]),Number(i[1])]))})),e.validator.autoCreateRanges&&(null!=t.min&&null!=t.max&&(t.range=[t.min,t.max],delete t.min,delete t.max),null!=t.minlength&&null!=t.maxlength&&(t.rangelength=[t.minlength,t.maxlength],delete t.minlength,delete t.maxlength)),t},normalizeRule:function(t){if("string"==typeof t){var i={};e.each(t.split(/\s/),(function(){i[this]=!0})),t=i}return t},addMethod:function(t,i,a){e.validator.methods[t]=i,e.validator.messages[t]=void 0!==a?a:e.validator.messages[t],i.length<3&&e.validator.addClassRules(t,e.validator.normalizeRule(t))},methods:{required:function(t,i,a){if(!this.depend(a,i))return"dependency-mismatch";if("select"===i.nodeName.toLowerCase()){var n=e(i).val();return n&&n.length>0}return this.checkable(i)?this.getLength(t,i)>0:t.length>0},email:function(e,t){return this.optional(t)||/^[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,t){return this.optional(t)||/^(?:(?:(?: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,t){return this.optional(t)||!/Invalid|NaN/.test(new Date(e).toString())},dateISO:function(e,t){return this.optional(t)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(e)},number:function(e,t){return this.optional(t)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(e)},digits:function(e,t){return this.optional(t)||/^\d+$/.test(e)},minlength:function(t,i,a){var n=e.isArray(t)?t.length:this.getLength(t,i);return this.optional(i)||n>=a},maxlength:function(t,i,a){var n=e.isArray(t)?t.length:this.getLength(t,i);return this.optional(i)||n<=a},rangelength:function(t,i,a){var n=e.isArray(t)?t.length:this.getLength(t,i);return this.optional(i)||n>=a[0]&&n<=a[1]},min:function(e,t,i){return this.optional(t)||e>=i},max:function(e,t,i){return this.optional(t)||e<=i},range:function(e,t,i){return this.optional(t)||e>=i[0]&&e<=i[1]},step:function(t,i,a){var n=e(i).attr("type"),r="Step attribute on input type "+n+" is not supported.",s=new RegExp("\\b"+n+"\\b");if(n&&!s.test(["text","number","range"].join()))throw new Error(r);return this.optional(i)||t%a==0},equalTo:function(t,i,a){var n=e(a);return this.settings.onfocusout&&n.not(".validate-equalTo-blur").length&&n.addClass("validate-equalTo-blur").on("blur.validate-equalTo",(function(){e(i).valid()})),t===n.val()},remote:function(t,i,a,n){if(this.optional(i))return"dependency-mismatch";n="string"==typeof n&&n||"remote";var r,s,o,l=this.previousValue(i,n);return this.settings.messages[i.name]||(this.settings.messages[i.name]={}),l.originalMessage=l.originalMessage||this.settings.messages[i.name][n],this.settings.messages[i.name][n]=l.message,a="string"==typeof a&&{url:a}||a,o=e.param(e.extend({data:t},a.data)),l.old===o?l.valid:(l.old=o,r=this,this.startRequest(i),(s={})[i.name]=t,e.ajax(e.extend(!0,{mode:"abort",port:"validate"+i.name,dataType:"json",data:s,context:r.currentForm,success:function(e){var a,s,o,d=!0===e||"true"===e;r.settings.messages[i.name][n]=l.originalMessage,d?(o=r.formSubmitted,r.resetInternals(),r.toHide=r.errorsFor(i),r.formSubmitted=o,r.successList.push(i),r.invalid[i.name]=!1,r.showErrors()):(a={},s=e||r.defaultMessage(i,{method:n,parameters:t}),a[i.name]=l.message=s,r.invalid[i.name]=!0,r.showErrors(a)),l.valid=d,r.stopRequest(i,d)}},a)),"pending")}}});var t,i={};e.ajaxPrefilter?e.ajaxPrefilter((function(e,t,a){var n=e.port;"abort"===e.mode&&(i[n]&&i[n].abort(),i[n]=a)})):(t=e.ajax,e.ajax=function(a){var n=("mode"in a?a:e.ajaxSettings).mode,r=("port"in a?a:e.ajaxSettings).port;return"abort"===n?(i[r]&&i[r].abort(),i[r]=t.apply(this,arguments),i[r]):t.apply(this,arguments)})})),
/*!
** Unobtrusive validation support library for jQuery and jQuery Validate
** Copyright (C) Microsoft Corporation. All rights reserved.
*/
function(e){var t,i=e.validator,a="unobtrusiveValidation";function n(e,t,i){e.rules[t]=i,e.message&&(e.messages[t]=e.message)}function r(e){return e.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g,"\\$1")}function s(e){return e.substr(0,e.lastIndexOf(".")+1)}function o(e,t){return 0===e.indexOf("*.")&&(e=e.replace("*.",t)),e}function l(t,i){var a=e(this).find("[data-valmsg-for='"+r(i[0].name)+"']"),n=a.attr("data-valmsg-replace"),s=n?!1!==e.parseJSON(n):null;a.removeClass("field-validation-valid").addClass("field-validation-error"),t.data("unobtrusiveContainer",a),s?(a.empty(),t.removeClass("input-validation-error").appendTo(a)):t.hide()}function d(t,i){var a=e(this).find("[data-valmsg-summary=true]"),n=a.find("ul");n&&n.length&&i.errorList.length&&(n.empty(),a.addClass("validation-summary-errors").removeClass("validation-summary-valid"),e.each(i.errorList,(function(){e("<li />").html(this.message).appendTo(n)})))}function u(t){var i=t.data("unobtrusiveContainer"),a=i.attr("data-valmsg-replace"),n=a?e.parseJSON(a):null;i&&(i.addClass("field-validation-valid").removeClass("field-validation-error"),t.removeData("unobtrusiveContainer"),n&&i.empty())}function h(t){var i=e(this),a="__jquery_unobtrusive_validation_form_reset";if(!i.data(a)){i.data(a,!0);try{i.data("validator").resetForm()}finally{i.removeData(a)}i.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors"),i.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")}}function m(t){var n=e(t),r=n.data(a),s=e.proxy(h,t),o=i.unobtrusive.options||{},m=function(i,a){var n=o[i];n&&e.isFunction(n)&&n.apply(t,a)};return r||(r={options:{errorClass:o.errorClass||"input-validation-error",errorElement:o.errorElement||"span",errorPlacement:function(){l.apply(t,arguments),m("errorPlacement",arguments)},invalidHandler:function(){d.apply(t,arguments),m("invalidHandler",arguments)},messages:{},rules:{},success:function(){u.apply(t,arguments),m("success",arguments)}},attachValidation:function(){n.off("reset."+a,s).on("reset."+a,s).validate(this.options)},validate:function(){return n.validate(),n.valid()}},n.data(a,r)),r}i.unobtrusive={adapters:[],parseElement:function(t,i){var a,n,r,s=e(t),o=s.parents("form")[0];o&&((a=m(o)).options.rules[t.name]=n={},a.options.messages[t.name]=r={},e.each(this.adapters,(function(){var i="data-val-"+this.name,a=s.attr(i),l={};void 0!==a&&(i+="-",e.each(this.params,(function(){l[this]=s.attr(i+this)})),this.adapt({element:t,form:o,message:a,params:l,rules:n,messages:r}))})),e.extend(n,{__dummy__:!0}),i||a.attachValidation())},parse:function(t){var a=e(t),n=a.parents().addBack().filter("form").add(a.find("form")).has("[data-val=true]");a.find("[data-val=true]").each((function(){i.unobtrusive.parseElement(this,!0)})),n.each((function(){var e=m(this);e&&e.attachValidation()}))}},(t=i.unobtrusive.adapters).add=function(e,t,i){return i||(i=t,t=[]),this.push({name:e,params:t,adapt:i}),this},t.addBool=function(e,t){return this.add(e,(function(i){n(i,t||e,!0)}))},t.addMinMax=function(e,t,i,a,r,s){return this.add(e,[r||"min",s||"max"],(function(e){var r=e.params.min,s=e.params.max;r&&s?n(e,a,[r,s]):r?n(e,t,r):s&&n(e,i,s)}))},t.addSingleVal=function(e,t,i){return this.add(e,[t||"val"],(function(a){n(a,i||e,a.params[t])}))},i.addMethod("__dummy__",(function(e,t,i){return!0})),i.addMethod("regex",(function(e,t,i){var a;return!!this.optional(t)||(a=new RegExp(i).exec(e))&&0===a.index&&a[0].length===e.length})),i.addMethod("nonalphamin",(function(e,t,i){var a;return i&&(a=(a=e.match(/\W/g))&&a.length>=i),a})),i.methods.extension?(t.addSingleVal("accept","mimtype"),t.addSingleVal("extension","extension")):t.addSingleVal("extension","extension","accept"),t.addSingleVal("regex","pattern"),t.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"),t.addMinMax("length","minlength","maxlength","rangelength").addMinMax("range","min","max","range"),t.addMinMax("minlength","minlength").addMinMax("maxlength","minlength","maxlength"),t.add("equalto",["other"],(function(t){var i=s(t.element.name),a=o(t.params.other,i);n(t,"equalTo",e(t.form).find(":input").filter("[name='"+r(a)+"']")[0])})),t.add("required",(function(e){"INPUT"===e.element.tagName.toUpperCase()&&"CHECKBOX"===e.element.type.toUpperCase()||n(e,"required",!0)})),t.add("remote",["url","type","additionalfields"],(function(t){var i={url:t.params.url,type:t.params.type||"GET",data:{}},a=s(t.element.name);e.each(function(e){return e.replace(/^\s+|\s+$/g,"").split(/\s*,\s*/g)}(t.params.additionalfields||t.element.name),(function(n,s){var l=o(s,a);i.data[l]=function(){var i=e(t.form).find(":input").filter("[name='"+r(l)+"']");return i.is(":checkbox")?i.filter(":checked").val()||i.filter(":hidden").val()||"":i.is(":radio")?i.filter(":checked").val()||"":i.val()}})),n(t,"remote",i)})),t.add("password",["min","nonalphamin","regex"],(function(e){e.params.min&&n(e,"minlength",e.params.min),e.params.nonalphamin&&n(e,"nonalphamin",e.params.nonalphamin),e.params.regex&&n(e,"regex",e.params.regex)})),e((function(){i.unobtrusive.parse(document)}))}(jQuery);
//# sourceMappingURL=jquery-validate-bundle.js.map
