!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(d){d.extend(d.fn,{validate:function(t){var s;if(this.length)return(s=d.data(this[0],"validator"))||(this.attr("novalidate","novalidate"),s=new d.validator(t,this[0]),d.data(this[0],"validator",s),s.settings.onsubmit&&(this.on("click.validate",":submit",function(t){s.submitButton=t.currentTarget,d(this).hasClass("cancel")&&(s.cancelSubmit=!0),void 0!==d(this).attr("formnovalidate")&&(s.cancelSubmit=!0)}),this.on("submit.validate",function(i){function t(){var t,e;return s.submitButton&&(s.settings.submitHandler||s.formSubmitted)&&(t=d("<input type='hidden'/>").attr("name",s.submitButton.name).val(d(s.submitButton).val()).appendTo(s.currentForm)),!(s.settings.submitHandler&&!s.settings.debug)||(e=s.settings.submitHandler.call(s,s.currentForm,i),t&&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 d(this[0]).is("form")?t=this.validate().form():(i=[],t=!0,e=d(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){var i,s,n,r,a,o=this[0],l=void 0!==this.attr("contenteditable")&&"false"!==this.attr("contenteditable");if(null!=o&&(!o.form&&l&&(o.form=this.closest("form")[0],o.name=this.attr("name")),null!=o.form)){if(t)switch(i=d.data(o.form,"validator").settings,s=i.rules,n=d.validator.staticRules(o),t){case"add":d.extend(n,d.validator.normalizeRule(e)),delete n.messages,s[o.name]=n,e.messages&&(i.messages[o.name]=d.extend(i.messages[o.name],e.messages));break;case"remove":return e?(a={},d.each(e.split(/\s/),function(t,e){a[e]=n[e],delete n[e]}),a):(delete s[o.name],n)}return(l=d.validator.normalizeRules(d.extend({},d.validator.classRules(o),d.validator.attributeRules(o),d.validator.dataRules(o),d.validator.staticRules(o)),o)).required&&(r=l.required,delete l.required,l=d.extend({required:r},l)),l.remote&&(r=l.remote,delete l.remote,l=d.extend(l,{remote:r})),l}}});function e(t){return t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}var i;d.extend(d.expr.pseudos||d.expr[":"],{blank:function(t){return!e(""+d(t).val())},filled:function(t){t=d(t).val();return null!==t&&!!e(""+t)},unchecked:function(t){return!d(t).prop("checked")}}),d.validator=function(t,e){this.settings=d.extend(!0,{},d.validator.defaults,t),this.currentForm=e,this.init()},d.validator.format=function(i,t){return 1===arguments.length?function(){var t=d.makeArray(arguments);return t.unshift(i),d.validator.format.apply(this,t)}:(void 0===t||((t=2<arguments.length&&t.constructor!==Array?d.makeArray(arguments).slice(1):t).constructor!==Array&&(t=[t]),d.each(t,function(t,e){i=i.replace(new RegExp("\\{"+t+"\\}","g"),function(){return e})})),i)},d.extend(d.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:d([]),errorLabelContainer:d([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(t){this.lastActive=t,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,t,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(t)))},onfocusout:function(t){this.checkable(t)||!(t.name in this.submitted)&&this.optional(t)||this.element(t)},onkeyup:function(t,e){9===e.which&&""===this.elementValue(t)||-1!==d.inArray(e.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(t){t.name in this.submitted?this.element(t):t.parentNode.name in this.submitted&&this.element(t.parentNode)},highlight:function(t,e,i){("radio"===t.type?this.findByName(t.name):d(t)).addClass(e).removeClass(i)},unhighlight:function(t,e,i){("radio"===t.type?this.findByName(t.name):d(t)).removeClass(e).addClass(i)}},setDefaults:function(t){d.extend(d.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:d.validator.format("Please enter no more than {0} characters."),minlength:d.validator.format("Please enter at least {0} characters."),rangelength:d.validator.format("Please enter a value between {0} and {1} characters long."),range:d.validator.format("Please enter a value between {0} and {1}."),max:d.validator.format("Please enter a value less than or equal to {0}."),min:d.validator.format("Please enter a value greater than or equal to {0}."),step:d.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function t(t){var e,i,s=void 0!==d(this).attr("contenteditable")&&"false"!==d(this).attr("contenteditable");!this.form&&s&&(this.form=d(this).closest("form")[0],this.name=d(this).attr("name")),n===this.form&&(s=d.data(this.form,"validator"),e="on"+t.type.replace(/^validate/,""),(i=s.settings)[e]&&!d(this).is(i.ignore)&&i[e].call(s,this,t))}this.labelContainer=d(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||d(this.currentForm),this.containers=d(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var i,n=this.currentForm,s=this.groups={};d.each(this.settings.groups,function(i,t){"string"==typeof t&&(t=t.split(/\s/)),d.each(t,function(t,e){s[e]=i})}),i=this.settings.rules,d.each(i,function(t,e){i[t]=d.validator.normalizeRule(e)}),d(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']",t).on("click.validate","select, option, [type='radio'], [type='checkbox']",t),this.settings.invalidHandler&&d(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),d.extend(this.submitted,this.errorMap),this.invalid=d.extend({},this.errorMap),this.valid()||d(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var t=0,e=this.currentElements=this.elements();e[t];t++)this.check(e[t]);return this.valid()},element:function(t){var e,i,s=this.clean(t),n=this.validationTargetFor(s),r=this,a=!0;return void 0===n?delete this.invalid[s.name]:(this.prepareElement(n),this.currentElements=d(n),(i=this.groups[n.name])&&d.each(this.groups,function(t,e){e===i&&t!==n.name&&((s=r.validationTargetFor(r.clean(r.findByName(t))))&&s.name in r.invalid&&(r.currentElements.push(s),a=r.check(s)&&a))}),e=!1!==this.check(n),a=a&&e,this.invalid[n.name]=!e,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),d(t).attr("aria-invalid",!e)),a},showErrors:function(e){var i;e&&(d.extend((i=this).errorMap,e),this.errorList=d.map(this.errorMap,function(t,e){return{message:t,element:i.findByName(e)[0]}}),this.successList=d.grep(this.successList,function(t){return!(t.name in e)})),this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){d.fn.resetForm&&d(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(t){var e;if(this.settings.unhighlight)for(e=0;t[e];e++)this.settings.unhighlight.call(this,t[e],this.settings.errorClass,""),this.findByName(t[e].name).removeClass(this.settings.validClass);else t.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(t){var e,i=0;for(e in t)void 0!==t[e]&&null!==t[e]&&!1!==t[e]&&i++;return i},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(t){t.not(this.containers).text(""),this.addWrapper(t).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{d(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").trigger("focus").trigger("focusin")}catch(t){}},findLastActive:function(){var e=this.lastActive;return e&&1===d.grep(this.errorList,function(t){return t.element.name===e.name}).length&&e},elements:function(){var i=this,s={};return d(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var t=this.name||d(this).attr("name"),e=void 0!==d(this).attr("contenteditable")&&"false"!==d(this).attr("contenteditable");return!t&&i.settings.debug&&window.console&&console.error("%o has no name assigned",this),e&&(this.form=d(this).closest("form")[0],this.name=t),!(this.form!==i.currentForm||t in s||!i.objectLength(d(this).rules())||(s[t]=!0,0))})},clean:function(t){return d(t)[0]},errors:function(){var t=this.settings.errorClass.split(" ").join(".");return d(this.settings.errorElement+"."+t,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=d([]),this.toHide=d([])},reset:function(){this.resetInternals(),this.currentElements=d([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(t){this.reset(),this.toHide=this.errorsFor(t)},elementValue:function(t){var e=d(t),i=t.type,s=void 0!==e.attr("contenteditable")&&"false"!==e.attr("contenteditable");return"radio"===i||"checkbox"===i?this.findByName(t.name).filter(":checked").val():"number"===i&&void 0!==t.validity?t.validity.badInput?"NaN":e.val():(t=s?e.text():e.val(),"file"===i?"C:\\fakepath\\"===t.substr(0,12)?t.substr(12):0<=(s=t.lastIndexOf("/"))||0<=(s=t.lastIndexOf("\\"))?t.substr(s+1):t:"string"==typeof t?t.replace(/\r/g,""):t)},check:function(e){e=this.validationTargetFor(this.clean(e));var t,i,s,n,r=d(e).rules(),a=d.map(r,function(t,e){return e}).length,o=!1,l=this.elementValue(e);for(i in"function"==typeof r.normalizer?n=r.normalizer:"function"==typeof this.settings.normalizer&&(n=this.settings.normalizer),n&&(l=n.call(e,l),delete r.normalizer),r){s={method:i,parameters:r[i]};try{if("dependency-mismatch"===(t=d.validator.methods[i].call(this,l,e,s.parameters))&&1===a)o=!0;else{if(o=!1,"pending"===t)return void(this.toHide=this.toHide.not(this.errorsFor(e)));if(!t)return this.formatAndAdd(e,s),!1}}catch(t){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+e.id+", check the '"+s.method+"' method.",t),t instanceof TypeError&&(t.message+=".  Exception occurred when checking element "+e.id+", check the '"+s.method+"' method."),t}}if(!o)return this.objectLength(r)&&this.successList.push(e),!0},customDataMessage:function(t,e){return d(t).data("msg"+e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())||d(t).data("msg")},customMessage:function(t,e){t=this.settings.messages[t];return t&&(t.constructor===String?t:t[e])},findDefined:function(){for(var t=0;t<arguments.length;t++)if(void 0!==arguments[t])return arguments[t]},defaultMessage:function(t,e){var i=this.findDefined(this.customMessage(t.name,(e="string"==typeof e?{method:e}:e).method),this.customDataMessage(t,e.method),!this.settings.ignoreTitle&&t.title||void 0,d.validator.messages[e.method],"<strong>Warning: No message defined for "+t.name+"</strong>"),s=/\$?\{(\d+)\}/g;return"function"==typeof i?i=i.call(this,e.parameters,t):s.test(i)&&(i=d.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 t=this.settings.wrapper?t.add(t.parent(this.settings.wrapper)):t},defaultShowErrors:function(){for(var t,e,i=0;this.errorList[i];i++)e=this.errorList[i],this.settings.highlight&&this.settings.highlight.call(this,e.element,this.settings.errorClass,this.settings.validClass),this.showLabel(e.element,e.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(i=0;this.successList[i];i++)this.showLabel(this.successList[i]);if(this.settings.unhighlight)for(i=0,t=this.validElements();t[i];i++)this.settings.unhighlight.call(this,t[i],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 d(this.errorList).map(function(){return this.element})},showLabel:function(t,e){var i,s,n,r=this.errorsFor(t),a=this.idOrName(t),o=d(t).attr("aria-describedby");r.length?(r.removeClass(this.settings.validClass).addClass(this.settings.errorClass),r.html(e)):(s=r=d("<"+this.settings.errorElement+">").attr("id",a+"-error").addClass(this.settings.errorClass).html(e||""),this.settings.wrapper&&(s=r.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(s):this.settings.errorPlacement?this.settings.errorPlacement.call(this,s,d(t)):s.insertAfter(t),r.is("label")?r.attr("for",a):0===r.parents("label[for='"+this.escapeCssMeta(a)+"']").length&&(s=r.attr("id"),o?o.match(new RegExp("\\b"+this.escapeCssMeta(s)+"\\b"))||(o+=" "+s):o=s,d(t).attr("aria-describedby",o),(i=this.groups[t.name])&&d.each((n=this).groups,function(t,e){e===i&&d("[name='"+n.escapeCssMeta(t)+"']",n.currentForm).attr("aria-describedby",r.attr("id"))}))),!e&&this.settings.success&&(r.text(""),"string"==typeof this.settings.success?r.addClass(this.settings.success):this.settings.success(r,t)),this.toShow=this.toShow.add(r)},errorsFor:function(t){var e=this.escapeCssMeta(this.idOrName(t)),t=d(t).attr("aria-describedby"),e="label[for='"+e+"'], label[for='"+e+"'] *";return t&&(e=e+", #"+this.escapeCssMeta(t).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(t){return t.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(t){return this.groups[t.name]||!this.checkable(t)&&t.id||t.name},validationTargetFor:function(t){return this.checkable(t)&&(t=this.findByName(t.name)),d(t).not(this.settings.ignore)[0]},checkable:function(t){return/radio|checkbox/i.test(t.type)},findByName:function(t){return d(this.currentForm).find("[name='"+this.escapeCssMeta(t)+"']")},getLength:function(t,e){switch(e.nodeName.toLowerCase()){case"select":return d("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!!d(t,e.form).length},function:function(t,e){return t(e)}},optional:function(t){var e=this.elementValue(t);return!d.validator.methods.required.call(this,e,t)&&"dependency-mismatch"},startRequest:function(t){this.pending[t.name]||(this.pendingRequest++,d(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],d(t).removeClass(this.settings.pendingClass),e&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(d(this.currentForm).submit(),this.submitButton&&d("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!e&&0===this.pendingRequest&&this.formSubmitted&&(d(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(t,e){return e="string"==typeof e&&e||"remote",d.data(t,"previousValue")||d.data(t,"previousValue",{old:null,valid:!0,message:this.defaultMessage(t,{method:e})})},destroy:function(){this.resetForm(),d(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(t,e){t.constructor===String?this.classRuleSettings[t]=e:d.extend(this.classRuleSettings,t)},classRules:function(t){var e={},t=d(t).attr("class");return t&&d.each(t.split(" "),function(){this in d.validator.classRuleSettings&&d.extend(e,d.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={},n=d(t),r=t.getAttribute("type");for(e in d.validator.methods)i="required"===e?(i=t.getAttribute(e),""===i&&(i=!0),!!i):n.attr(e),this.normalizeAttributeRule(s,r,e,i);return s.maxlength&&/-1|2147483647|524288/.test(s.maxlength)&&delete s.maxlength,s},dataRules:function(t){var e,i,s={},n=d(t),r=t.getAttribute("type");for(e in d.validator.methods)i=n.data("rule"+e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()),""===i&&(i=!0),this.normalizeAttributeRule(s,r,e,i);return s},staticRules:function(t){var e={},i=d.data(t.form,"validator");return e=i.settings.rules?d.validator.normalizeRule(i.settings.rules[t.name])||{}:e},normalizeRules:function(s,n){return d.each(s,function(t,e){if(!1===e)delete s[t];else if(e.param||e.depends){var i=!0;switch(typeof e.depends){case"string":i=!!d(e.depends,n.form).length;break;case"function":i=e.depends.call(n,n)}i?s[t]=void 0===e.param||e.param:(d.data(n.form,"validator").resetElements(d(n)),delete s[t])}}),d.each(s,function(t,e){s[t]="function"==typeof e&&"normalizer"!==t?e(n):e}),d.each(["minlength","maxlength"],function(){s[this]&&(s[this]=Number(s[this]))}),d.each(["rangelength","range"],function(){var t;s[this]&&(Array.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])]))}),d.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){var e;return"string"==typeof t&&(e={},d.each(t.split(/\s/),function(){e[this]=!0}),t=e),t},addMethod:function(t,e,i){d.validator.methods[t]=e,d.validator.messages[t]=void 0!==i?i:d.validator.messages[t],e.length<3&&d.validator.addClassRules(t,d.validator.normalizeRule(t))},methods:{required:function(t,e,i){return this.depend(i,e)?"select"===e.nodeName.toLowerCase()?(i=d(e).val())&&0<i.length:this.checkable(e)?0<this.getLength(t,e):null!=t&&0<t.length:"dependency-mismatch"},email:function(t,e){return this.optional(e)||/^[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(t)},url:function(t,e){return this.optional(e)||/^(?:(?:(?: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(t)},date:(i=!1,function(t,e){return i||(i=!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(e)||!/Invalid|NaN/.test(new Date(t).toString())}),dateISO:function(t,e){return this.optional(e)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(t)},number:function(t,e){return this.optional(e)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)},digits:function(t,e){return this.optional(e)||/^\d+$/.test(t)},minlength:function(t,e,i){t=Array.isArray(t)?t.length:this.getLength(t,e);return this.optional(e)||i<=t},maxlength:function(t,e,i){t=Array.isArray(t)?t.length:this.getLength(t,e);return this.optional(e)||t<=i},rangelength:function(t,e,i){t=Array.isArray(t)?t.length:this.getLength(t,e);return this.optional(e)||t>=i[0]&&t<=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){function s(t){return(t=(""+t).match(/(?:\.(\d+))?$/))&&t[1]?t[1].length:0}function n(t){return Math.round(t*Math.pow(10,r))}var r,a=d(e).attr("type"),o="Step attribute on input type "+a+" is not supported.",l=new RegExp("\\b"+a+"\\b"),h=!0;if(a&&!l.test(["text","number","range"].join()))throw new Error(o);return r=s(i),(s(t)>r||n(t)%n(i)!=0)&&(h=!1),this.optional(e)||h},equalTo:function(t,e,i){i=d(i);return this.settings.onfocusout&&i.not(".validate-equalTo-blur").length&&i.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){d(e).valid()}),t===i.val()},remote:function(s,n,t,r){if(this.optional(n))return"dependency-mismatch";r="string"==typeof r&&r||"remote";var a,e,o=this.previousValue(n,r);return this.settings.messages[n.name]||(this.settings.messages[n.name]={}),o.originalMessage=o.originalMessage||this.settings.messages[n.name][r],this.settings.messages[n.name][r]=o.message,e=d.param(d.extend({data:s},(t="string"==typeof t?{url:t}:t).data)),o.old===e?o.valid:(o.old=e,(a=this).startRequest(n),(e={})[n.name]=s,d.ajax(d.extend(!0,{mode:"abort",port:"validate"+n.name,dataType:"json",data:e,context:a.currentForm,success:function(t){var e,i=!0===t||"true"===t;a.settings.messages[n.name][r]=o.originalMessage,i?(e=a.formSubmitted,a.resetInternals(),a.toHide=a.errorsFor(n),a.formSubmitted=e,a.successList.push(n),a.invalid[n.name]=!1,a.showErrors()):(e={},t=t||a.defaultMessage(n,{method:r,parameters:s}),e[n.name]=o.message=t,a.invalid[n.name]=!0,a.showErrors(e)),o.valid=i,a.stopRequest(n,i)}},t)),"pending")}}});var s,n={};return d.ajaxPrefilter?d.ajaxPrefilter(function(t,e,i){var s=t.port;"abort"===t.mode&&(n[s]&&n[s].abort(),n[s]=i)}):(s=d.ajax,d.ajax=function(t){var e=("mode"in t?t:d.ajaxSettings).mode,i=("port"in t?t:d.ajaxSettings).port;return"abort"===e?(n[i]&&n[i].abort(),n[i]=s.apply(this,arguments),n[i]):s.apply(this,arguments)}),d});
!function(a){"function"==typeof define&&define.amd?define("jquery.validate.unobtrusive",["jquery-validation"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery-validation")):jQuery.validator.unobtrusive=a(jQuery)}(function(s){function o(a,e,n){a.rules[e]=n,a.message&&(a.messages[e]=a.message)}function d(a){return a.replace(/([!"#$%&'()*+,.\/:;<=>?@\[\\\]^`{|}~])/g,"\\$1")}function n(a){return a.substr(0,a.lastIndexOf(".")+1)}function l(a,e){return a=0===a.indexOf("*.")?a.replace("*.",e):a}function u(a){var e=s(this),n="__jquery_unobtrusive_validation_form_reset";if(!e.data(n)){e.data(n,!0);try{e.data("validator").resetForm()}finally{e.removeData(n)}e.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors"),e.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")}}function m(n){function a(a,e){(a=r[a])&&s.isFunction(a)&&a.apply(n,e)}var e=s(n),t=e.data(p),i=s.proxy(u,n),r=f.unobtrusive.options||{};return t||(t={options:{errorClass:r.errorClass||"input-validation-error",errorElement:r.errorElement||"span",errorPlacement:function(){(function(a,e){var e=s(this).find("[data-valmsg-for='"+d(e[0].name)+"']"),n=(n=e.attr("data-valmsg-replace"))?!1!==s.parseJSON(n):null;e.removeClass("field-validation-valid").addClass("field-validation-error"),a.data("unobtrusiveContainer",e),n?(e.empty(),a.removeClass("input-validation-error").appendTo(e)):a.hide()}).apply(n,arguments),a("errorPlacement",arguments)},invalidHandler:function(){(function(a,e){var n=s(this).find("[data-valmsg-summary=true]"),t=n.find("ul");t&&t.length&&e.errorList.length&&(t.empty(),n.addClass("validation-summary-errors").removeClass("validation-summary-valid"),s.each(e.errorList,function(){s("<li />").html(this.message).appendTo(t)}))}).apply(n,arguments),a("invalidHandler",arguments)},messages:{},rules:{},success:function(){(function(a){var e,n=a.data("unobtrusiveContainer");n&&(e=(e=n.attr("data-valmsg-replace"))?s.parseJSON(e):null,n.addClass("field-validation-valid").removeClass("field-validation-error"),a.removeData("unobtrusiveContainer"),e&&n.empty())}).apply(n,arguments),a("success",arguments)}},attachValidation:function(){e.off("reset."+p,i).on("reset."+p,i).validate(this.options)},validate:function(){return e.validate(),e.valid()}},e.data(p,t)),t}var a,f=s.validator,p="unobtrusiveValidation";return f.unobtrusive={adapters:[],parseElement:function(t,a){var e,i,r,o=s(t),d=o.parents("form")[0];d&&((e=m(d)).options.rules[t.name]=i={},e.options.messages[t.name]=r={},s.each(this.adapters,function(){var a="data-val-"+this.name,e=o.attr(a),n={};void 0!==e&&(a+="-",s.each(this.params,function(){n[this]=o.attr(a+this)}),this.adapt({element:t,form:d,message:e,params:n,rules:i,messages:r}))}),s.extend(i,{__dummy__:!0}),a||e.attachValidation())},parse:function(a){var a=s(a),e=a.parents().addBack().filter("form").add(a.find("form")).has("[data-val=true]");a.find("[data-val=true]").each(function(){f.unobtrusive.parseElement(this,!0)}),e.each(function(){var a=m(this);a&&a.attachValidation()})}},(a=f.unobtrusive.adapters).add=function(a,e,n){return n||(n=e,e=[]),this.push({name:a,params:e,adapt:n}),this},a.addBool=function(e,n){return this.add(e,function(a){o(a,n||e,!0)})},a.addMinMax=function(a,t,i,r,e,n){return this.add(a,[e||"min",n||"max"],function(a){var e=a.params.min,n=a.params.max;e&&n?o(a,r,[e,n]):e?o(a,t,e):n&&o(a,i,n)})},a.addSingleVal=function(e,n,t){return this.add(e,[n||"val"],function(a){o(a,t||e,a.params[n])})},f.addMethod("__dummy__",function(a,e,n){return!0}),f.addMethod("regex",function(a,e,n){return!!this.optional(e)||(e=new RegExp(n).exec(a))&&0===e.index&&e[0].length===a.length}),f.addMethod("nonalphamin",function(a,e,n){var t;return t=n?(t=a.match(/\W/g))&&t.length>=n:t}),f.methods.extension?(a.addSingleVal("accept","mimtype"),a.addSingleVal("extension","extension")):a.addSingleVal("extension","extension","accept"),a.addSingleVal("regex","pattern"),a.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"),a.addMinMax("length","minlength","maxlength","rangelength").addMinMax("range","min","max","range"),a.addMinMax("minlength","minlength").addMinMax("maxlength","minlength","maxlength"),a.add("equalto",["other"],function(a){var e=n(a.element.name),e=l(a.params.other,e);o(a,"equalTo",s(a.form).find(":input").filter("[name='"+d(e)+"']")[0])}),a.add("required",function(a){"INPUT"===a.element.tagName.toUpperCase()&&"CHECKBOX"===a.element.type.toUpperCase()||o(a,"required",!0)}),a.add("remote",["url","type","additionalfields"],function(t){var i={url:t.params.url,type:t.params.type||"GET",data:{}},r=n(t.element.name);s.each((t.params.additionalfields||t.element.name).replace(/^\s+|\s+$/g,"").split(/\s*,\s*/g),function(a,e){var n=l(e,r);i.data[n]=function(){var a=s(t.form).find(":input").filter("[name='"+d(n)+"']");return a.is(":checkbox")?a.filter(":checked").val()||a.filter(":hidden").val()||"":a.is(":radio")?a.filter(":checked").val()||"":a.val()}}),o(t,"remote",i)}),a.add("password",["min","nonalphamin","regex"],function(a){a.params.min&&o(a,"minlength",a.params.min),a.params.nonalphamin&&o(a,"nonalphamin",a.params.nonalphamin),a.params.regex&&o(a,"regex",a.params.regex)}),a.add("fileextensions",["extensions"],function(a){o(a,"extension",a.params.extensions)}),s(function(){f.unobtrusive.parse(document)}),f.unobtrusive});
!function(){function e(){var e=document.getElementsByClassName("umbraco-forms-form-config");if(0<e.length){for(var t=[],r=0;r<e.length;r++){var n=e[r],n={formId:n.dataset.id,pageButtonConditions:JSON.parse(n.dataset.serializedPageButtonConditions),fieldSetConditions:JSON.parse(n.dataset.serializedFieldsetConditions),fieldConditions:JSON.parse(n.dataset.serializedFieldConditions),triggerConditionsCheckOn:n.dataset.triggerConditionsCheckOn,disableValidationDependencyCheck:"true"===n.dataset.disableValidationDependencyCheck,recordValues:JSON.parse(n.dataset.serializedFieldsNotDisplayed),formElementHtmlIdPrefix:n.dataset.formElementHtmlIdPrefix};t.push(n)}s(t,!0)}else"undefined"==typeof umbracoFormsCollection?document.addEventListener("umbracoFormLoaded",u):s(umbracoFormsCollection);var o,i=document.getElementById("umbraco-forms-form-submitted");function a(e){for(var t=0,r=0;r<e.length;r++){var n=function(e){var t=e;for(;"BODY"!==t.tagName;){if(t.classList.contains("umbraco-forms-field"))return t;t=t.parentNode}return e}(e[r]).getBoundingClientRect().top;0<n&&(n<t||0===t)&&(t=n)}0<t&&window.scrollTo(0,t)}function l(e){e.scrollIntoView({behavior:"auto",block:"start"})}i&&(i=i.dataset.formClientId,o=i,document.onreadystatechange=function(){var e,t,r,n;"complete"==document.readyState&&(e=document.querySelectorAll(".field-validation-error"),t=document.querySelectorAll(".umbraco-forms-submitmessage"),r=document.querySelectorAll(".umbraco-forms-submitmessage-html"),n=document.getElementById("umbraco_form_"+o),0<e.length?a(e):0<t.length?l(t[0].parentElement):0<r.length?l(r[0]):n&&l(n))})}function s(e,t){var r,n;if(void 0!==window.aspnetValidation){function o(e,t){if("checkbox"!==t.type.toLowerCase()&&"radio"!==t.type.toLowerCase())return Boolean(e);for(var r=t.form.querySelectorAll("input[name='"+t.name+"']"),n=0;n<r.length;n++)if(!0===r[n].checked)return!0;return!1}function i(){this.form.elements.PreviousClicked.value="clicked"}var a=new aspnetValidation.ValidationService,l=(a.addProvider("requiredcb",o),a.addProvider("required",o),a.addProvider("umbracoforms_regex",function(e,t,r){return!e||!r.pattern||new RegExp(r.pattern).test(e)}),window.addEventListener("load",function(){for(var e in a.providers)a.providers[e]=function(n){return function(e,t,r){return null===t.offsetParent||n(e,t,r)}}(a.providers[e])}),a.bootstrap(),window.umbracoFormsValidationService=a,document.querySelectorAll("[data-umb='prev-forms-form']"));0===l.length&&(l=document.getElementsByClassName("prev cancel"));for(var s=0;s<l.length;s++)l[s].form.elements.PreviousClicked.value="",l[s].addEventListener("click",i,!1);r=c();for(let e=0;e<r.length;e++)(n=r[e]).addEventListener("click",function(e){e.preventDefault();var r=e.currentTarget.form;a.validateForm(r,e=>{if(e){f(r);var t=r.querySelectorAll("[type=submit]:not(.cancel)");for(let e=0;e<t.length;e++)t[e].setAttribute("disabled","disabled")}})})}else if("function"==typeof jQuery&&$.validator&&$.validator.unobtrusive){$.validator.setDefaults({ignore:":hidden"}),$.validator.unobtrusive.adapters.addBool("requiredcb","required"),$.validator.addMethod("umbracoforms_regex",function(e,t){var r=$(t).attr("data-regex"),t=$(t).val();return 0===t.length||t.match(r)}),$.validator.unobtrusive.adapters.addBool("regex","umbracoforms_regex"),r=c();for(let e=0;e<r.length;e++)(n=r[e]).addEventListener("click",function(e){e.preventDefault();e=$(this).closest("form");m(e[0]),e.validate(),e.valid()&&(f(e),this.setAttribute("disabled","disabled"))}.bind(n))}for(var d=0;d<e.length;d++)u({form:e[d]},t)}function u(e,t){for(var r,n,o,i,a=t?e.form:JSON.parse(decodeURI(e.form)),l=document.querySelectorAll(".umbraco-forms-form"),s=0;s<l.length;s++){var d=l[s];a.disableValidationDependencyCheck||(r=d,i=o=n=void 0,"undefined"!=typeof Umbraco&&void 0!==Umbraco.Sys||"tinymce"===document.body.id||((n=document.createElement("div")).className="umbraco-forms missing-library",n.style.color="#fff",n.style.backgroundColor="#9d261d",n.style.padding="15px",n.style.margin="10px 0",o="",!r||0<r.getElementsByClassName("umbraco-forms missing-library").length||((i=!1)===(i=window.jQuery&&$&&void 0!==$.validator||void 0!==window.aspnetValidation?!0:i)&&(o+="Umbraco Forms requires a validation framework to run, please read documentation for posible options."),""!==o&&(n.innerHTML=o+'<br/> <a href="https://docs.umbraco.com/umbraco-forms/developer/prepping-frontend" target="_blank" style="text-decoration:underline; color:#fff;">See Umbraco Forms Documentation</a>',r.insertBefore(n,r.childNodes[0]))))),new p(d.querySelector(".umbraco-forms-page"),a.pageButtonConditions,a.fieldSetConditions,a.fieldConditions,a.triggerConditionsCheckOn&&0<a.triggerConditionsCheckOn.length?a.triggerConditionsCheckOn:"change",a.recordValues,a.formElementHtmlIdPrefix).watch(),function(e){var t;"MutationObserver"in window!=!1&&(void 0!==window.aspnetValidation&&(t=e.getElementsByTagName("form")[0],t.addEventListener("submit",function(){m(t)},!1)),new MutationObserver(function(e){for(var t=0;t<e.length;t++){var r=e[t];if("field-validation-error"===r.target.className){a=i=o=n=void 0;for(var n=r.target,o=n.previousElementSibling;o;){if("input"===o.tagName.toLowerCase()||"textarea"===o.tagName.toLowerCase()||"select"===o.tagName.toLowerCase()){o.focus();break}if(o.classList.contains("radiobuttonlist")||o.classList.contains("checkboxlist")){for(var i=0;i<o.children.length;i++){var a=o.children[i];if("input"===a.tagName.toLowerCase()){a.focus();break}}break}o=o.previousElementSibling}break}}}).observe(e,{attributes:!0,attributeFilter:["class"],childList:!1,characterData:!1,subtree:!0}))}(d)}}function c(){return document.querySelectorAll(".umbraco-forms-form [type=submit]:not(.cancel)")}function f(e){e.requestSubmit?e.requestSubmit():e.submit()}function m(e){for(var t=e.getElementsByClassName("field-validation-error"),r=0;r<t.length;r++)t[r].className="field-validation-valid"}function p(e,t,r,n,o,i,a){var c={};function l(e,t,r){var n=e.querySelectorAll("select");for(let e=0;e<n.length;e++){const u=n[e];t[u.getAttribute("id")]=u.value,r[u.getAttribute("id")]="select"}var o=e.querySelectorAll("textarea");for(let e=0;e<o.length;e++){const c=o[e];t[c.getAttribute("id")]=c.value,r[c.getAttribute("id")]="textarea"}function i(e){const t=e.getAttribute("id").split("_");return t.slice(0,t.length-1).join("_")}var a,l=e.querySelectorAll("input[type=checkbox]");for(let e=0;e<l.length;e++){const f=l[e];null!==f.closest(".checkboxlist")?(t[a=i(f)]=null,r[a]="checkbox"):(t[f.getAttribute("id")]=null,r[f.getAttribute("id")]="checkbox")}var s,d=e.querySelectorAll("input");for(let e=0;e<d.length;e++){const m=d[e];"text"!==m.getAttribute("type")&&"number"!==m.getAttribute("type")&&"email"!==m.getAttribute("type")&&"url"!==m.getAttribute("type")&&"tel"!==m.getAttribute("type")&&"time"!==m.getAttribute("type")&&"date"!==m.getAttribute("type")&&"datetime-local"!==m.getAttribute("type")&&"hidden"!==m.getAttribute("type")||(t[m.getAttribute("id")]=m.value,r[m.getAttribute("id")]="text"),"radio"===m.getAttribute("type")&&m.matches(":checked")&&(t[s=i(m)]=m.value,r[s]="radio"),"checkbox"===m.getAttribute("type")&&(null!==m.closest(".checkboxlist")?(s=i(m),m.matches(":checked")&&(null===t[s]?t[s]=m.value:t[s]+=";;"+m.value)):t[m.getAttribute("id")]=m.matches(":checked")?"true":"false")}}return c.form=e,c.pageButtonConditions=t,c.fieldsetConditions=r,c.fieldConditions=n,c.triggerConditionsCheckOn=o,c.values=i,c.formElementHtmlIdPrefix=a,c.dataTypes={},c.operators={Is:function(e,t,r){if((e||"")===t)return!0;if(null==e)return t==e;"checkbox"===r&&("TRUE"===t.toUpperCase()||"ON"===t.toUpperCase()?t="true":"FALSE"!==t.toUpperCase()&&"OFF"!==t.toUpperCase()||(t="false"));r=e.split(";;");return r.filter(function(e){return e===t}).length===r.length},IsNot:function(e,t,r){var n,o;return null==e?t!=e:(o=(n=e.split(";;")).filter(function(e){return e===t}),"checkbox"===r&&("TRUE"===t.toUpperCase()||"ON"===t.toUpperCase()?t="true":"FALSE"!==t.toUpperCase()&&"OFF"!==t.toUpperCase()||(t="false")),(e||"")!==t&&o.length!=n.length)},GreaterThen:function(e,t){return isNaN(e)||isNaN(t)?t<e:parseInt(e)>parseInt(t)},LessThen:function(e,t){return isNaN(e)||isNaN(t)?e<t:parseInt(e)<parseInt(t)},StartsWith:function(e,t){return e&&e.startsWith(t)},EndsWith:function(e,t){return e&&e.endsWith(t)},Contains:function(e,t){return e&&-1<e.indexOf(t)},ContainsIgnoreCase:function(e,t){return e&&t&&0<=e.toUpperCase().indexOf(t.toUpperCase())},StartsWithIgnoreCase:function(e,t){return e&&t&&e.toUpperCase().startsWith(t.toUpperCase())},EndsWithIgnoreCase:function(e,t){return e&&t&&e.toUpperCase().endsWith(t.toUpperCase())},NotContains:function(e,t){return!e||t&&e.indexOf(t)<0},NotStartsWith:function(e,t){return!e||t&&!e.startsWith(t)},NotEndsWith:function(e,t){return!e||t&&!e.endsWith(t)},NotContainsIgnoreCase:function(e,t){return!e||t&&e.toUpperCase().indexOf(t.toUpperCase())<0},NotStartsWithIgnoreCase:function(e,t){return!e||t&&!e.toUpperCase().startsWith(t.toUpperCase())},NotEndsWithIgnoreCase:function(e,t){return!e||t&&!e.toUpperCase().endsWith(t.toUpperCase())}},c.watch=function(){var t=c.form.querySelectorAll(".datepickerfield");for(let e=0;e<t.length;e++){const n=t[e];n.addEventListener("blur",function(){var e;""===this.value&&(e=this.getAttribute("id")+"_1",c.values[e]="",document.getElementById(e).value=""),l(c.form,c.values,c.dataTypes),c.run()}.bind(n))}var r=c.form.querySelectorAll("input, textarea, select");for(let e=0;e<r.length;e++){const o=r[e];o.addEventListener(c.triggerConditionsCheckOn,function(){l(c.form,c.values,c.dataTypes),c.run()}.bind(o))}l(c.form,c.values,c.dataTypes),c.run()},c.run=function(){var e,t,r,n,o,i={};function d(e){var t,r,n=!0;return!!(n=c.fieldConditions[e.field]?u(e.field,c.fieldConditions[e.field]):n)&&(n=e,e=c.values[c.formElementHtmlIdPrefix+n.field],t=c.dataTypes[n.field],r=c.operators[n.operator],null!==e&&r(e,n.value,t))}function a(e,t){var r="Show"===t.actionType,n=i[e],e=void 0===n?(i[e]=r,i[e]=function(e,t){var r,n,o="Any"===t.logicType,i="All"===t.logicType,a={},l=!1,s=!0;if(0===t.rules.length)return!1;for(n=0;n<t.rules.length;n++){if(e===(r=t.rules[n]).field||e===r.fieldsetId)throw new Error("Field or fieldset "+e+" has a condition on itself.");void 0===a[r.fieldsetId]&&(c.fieldsetConditions[r.fieldsetId]?(a[r.fieldsetId]=u(r.fieldsetId,c.fieldsetConditions[r.fieldsetId]),a[r.fieldsetId]||(l=!0)):a[r.fieldsetId]=!0)}if(i&&l)return!1;for(n=0;n<t.rules.length&&(s=!!a[(r=t.rules[n]).fieldsetId]&&d(t.rules[n]),!o||!s)&&(!i||s);n++);return s}(e,t)):n;return!(e^r)}function u(e,t){return!t||a(e,t)}function l(e,t,r){t=u(t,r);e&&(t?e.classList.remove("umbraco-forms-hidden"):e.classList.add("umbraco-forms-hidden"))}for(e in c.pageButtonConditions)!Object.prototype.hasOwnProperty.call(c.pageButtonConditions,e)||(o=document.getElementById(e))&&l(o.querySelector("input[name='__next'], button[name='__next'], input[data-form-navigate='next'], button[data-form-navigate='next']"),e,c.pageButtonConditions[e]);for(r in c.fieldsetConditions)Object.prototype.hasOwnProperty.call(c.fieldsetConditions,r)&&(t=c.formElementHtmlIdPrefix+r,l(document.getElementById(t),r,c.fieldsetConditions[r]));for(n in c.fieldConditions)Object.prototype.hasOwnProperty.call(c.fieldConditions,n)&&(t=c.formElementHtmlIdPrefix+n,document.getElementById(t)&&l(document.getElementById(t).closest(".umbraco-forms-field"),n,c.fieldConditions[n]))},c}Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){for(var t=this;t;){if(t.matches(e))return t;t=t.parentElement}}),"complete"===document.readyState||"loading"!==document.readyState&&!document.documentElement.doScroll?e():document.addEventListener("DOMContentLoaded",e)}();