!function(n){function i(n,t){for(var i=window,r=(n||"").split(".");i&&r.length;)i=i[r.shift()];return"function"==typeof i?i:(t.push(n),Function.constructor.apply(null,t))}function u(n){return"GET"===n||"POST"===n}function f(t,r){var c,o,s,h,f,e;(c=t.getAttribute("data-ajax-confirm"))&&!window.confirm(c)||(o=n(t.getAttribute("data-ajax-loading")),h=parseInt(t.getAttribute("data-ajax-loading-duration"),10)||0,n.extend(r,{type:t.getAttribute("data-ajax-method")||void 0,url:t.getAttribute("data-ajax-url")||void 0,cache:"true"===(t.getAttribute("data-ajax-cache")||"").toLowerCase(),beforeSend:function(n){var r,f,e;return f=n,u(e=s)||f.setRequestHeader("X-HTTP-Method-Override",e),r=i(t.getAttribute("data-ajax-begin"),["xhr"]).apply(t,arguments),!1!==r&&o.show(h),r},complete:function(){o.hide(h);i(t.getAttribute("data-ajax-complete"),["xhr","status"]).apply(t,arguments)},success:function(r,u,f){var o,e,h,s;o=t;e=r;-1===(h=f.getResponseHeader("Content-Type")||"text/html").indexOf("application/x-javascript")&&(s=(o.getAttribute("data-ajax-mode")||"").toUpperCase(),n(o.getAttribute("data-ajax-update")).each(function(t,i){switch(s){case"BEFORE":n(i).prepend(e);break;case"AFTER":n(i).append(e);break;case"REPLACE-WITH":n(i).replaceWith(e);break;default:n(i).html(e)}}));i(t.getAttribute("data-ajax-success"),["data","status","xhr"]).apply(t,arguments)},error:function(){i(t.getAttribute("data-ajax-failure"),["xhr","status","error"]).apply(t,arguments)}}),r.data.push({name:"X-Requested-With",value:"XMLHttpRequest"}),u(s=r.type.toUpperCase())||(r.type="POST",r.data.push({name:"X-HTTP-Method-Override",value:s})),f=n(t),f.is("form")&&"multipart/form-data"==f.attr("enctype")&&(e=new FormData,n.each(r.data,function(n,t){e.append(t.name,t.value)}),n("input[type=file]",f).each(function(){var t=this;n.each(t.files,function(n,i){e.append(t.name,i)})}),n.extend(r,{processData:!1,contentType:!1,data:e})),n.ajax(r))}var t="unobtrusiveAjaxClick",r="unobtrusiveAjaxClickTarget";n(document).on("click","a[data-ajax=true]",function(n){n.preventDefault();f(this,{url:this.href,type:"GET",data:[]})});n(document).on("click","form[data-ajax=true] input[type=image]",function(i){var r=i.target.name,u=n(i.target),f=n(u.parents("form")[0]),e=u.offset();f.data(t,[{name:r+".x",value:Math.round(i.pageX-e.left)},{name:r+".y",value:Math.round(i.pageY-e.top)}]);setTimeout(function(){f.removeData(t)},0)});n(document).on("click","form[data-ajax=true] :submit",function(i){var f=i.currentTarget.name,e=n(i.target),u=n(e.parents("form")[0]);u.data(t,f?[{name:f,value:i.currentTarget.value}]:[]);u.data(r,e);setTimeout(function(){u.removeData(t);u.removeData(r)},0)});n(document).on("submit","form[data-ajax=true]",function(i){var o,u,s=n(this).data(t)||[],e=n(this).data(r),h=e&&(e.hasClass("cancel")||void 0!==e.attr("formnovalidate"));i.preventDefault();!h&&(o=this,(u=n(o).data("unobtrusiveValidation"))&&u.validate&&!u.validate())||f(this,{url:this.action,type:this.method||"GET",data:s.concat(n(this).serializeArray())})})}(jQuery);!function(n){"function"==typeof define&&define.amd?define("jquery.validate.unobtrusive",["jquery-validation"],n):"object"==typeof module&&module.exports?module.exports=n(require("jquery-validation")):jQuery.validator.unobtrusive=n(jQuery)}(function(n){function i(n,t,i){n.rules[t]=i;n.message&&(n.messages[t]=n.message)}function f(n){return n.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g,"\\$1")}function e(n){return n.substr(0,n.lastIndexOf(".")+1)}function o(n,t){return 0===n.indexOf("*.")&&(n=n.replace("*.",t)),n}function h(t,i){var r=n(this).find("[data-valmsg-for='"+f(i[0].name)+"']"),u=r.attr("data-valmsg-replace"),e=u?!1!==JSON.parse(u):null;r.removeClass("field-validation-valid").addClass("field-validation-error");t.data("unobtrusiveContainer",r);e?(r.empty(),t.removeClass("input-validation-error").appendTo(r)):t.hide()}function c(t,i){var u=n(this).find("[data-valmsg-summary=true]"),r=u.find("ul");r&&r.length&&i.errorList.length&&(r.empty(),u.addClass("validation-summary-errors").removeClass("validation-summary-valid"),n.each(i.errorList,function(){n("<li />").html(this.message).appendTo(r)}))}function l(n){var t=n.data("unobtrusiveContainer"),i,r;t&&(i=t.attr("data-valmsg-replace"),r=i?JSON.parse(i):null,t.addClass("field-validation-valid").removeClass("field-validation-error"),n.removeData("unobtrusiveContainer"),r&&t.empty())}function a(){var t=n(this),i="__jquery_unobtrusive_validation_form_reset";if(!t.data(i)){t.data(i,!0);try{t.data("validator").resetForm()}finally{t.removeData(i)}t.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors");t.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")}}function s(t){var i=n(t),f=i.data(u),s=n.proxy(a,t),e=r.unobtrusive.options||{},o=function(n,i){var r=e[n];r&&"function"==typeof r&&r.apply(t,i)};return f||(f={options:{errorClass:e.errorClass||"input-validation-error",errorElement:e.errorElement||"span",errorPlacement:function(){h.apply(t,arguments);o("errorPlacement",arguments)},invalidHandler:function(){c.apply(t,arguments);o("invalidHandler",arguments)},messages:{},rules:{},success:function(){l.apply(t,arguments);o("success",arguments)}},attachValidation:function(){i.off("reset."+u,s).on("reset."+u,s).validate(this.options)},validate:function(){return i.validate(),i.valid()}},i.data(u,f)),f}var t,r=n.validator,u="unobtrusiveValidation";return r.unobtrusive={adapters:[],parseElement:function(t,i){var r,u,o,f=n(t),e=f.parents("form")[0];e&&((r=s(e)).options.rules[t.name]=u={},r.options.messages[t.name]=o={},n.each(this.adapters,function(){var i="data-val-"+this.name,r=f.attr(i),s={};void 0!==r&&(i+="-",n.each(this.params,function(){s[this]=f.attr(i+this)}),this.adapt({element:t,form:e,message:r,params:s,rules:u,messages:o}))}),n.extend(u,{__dummy__:!0}),i||r.attachValidation())},parse:function(t){var i=n(t),u=i.parents().addBack().filter("form").add(i.find("form")).has("[data-val=true]");i.find("[data-val=true]").each(function(){r.unobtrusive.parseElement(this,!0)});u.each(function(){var n=s(this);n&&n.attachValidation()})}},(t=r.unobtrusive.adapters).add=function(n,t,i){return i||(i=t,t=[]),this.push({name:n,params:t,adapt:i}),this},t.addBool=function(n,t){return this.add(n,function(r){i(r,t||n,!0)})},t.addMinMax=function(n,t,r,u,f,e){return this.add(n,[f||"min",e||"max"],function(n){var f=n.params.min,e=n.params.max;f&&e?i(n,u,[f,e]):f?i(n,t,f):e&&i(n,r,e)})},t.addSingleVal=function(n,t,r){return this.add(n,[t||"val"],function(u){i(u,r||n,u.params[t])})},r.addMethod("__dummy__",function(){return!0}),r.addMethod("regex",function(n,t,i){var r;return!!this.optional(t)||(r=RegExp(i).exec(n))&&0===r.index&&r[0].length===n.length}),r.addMethod("nonalphamin",function(n,t,i){var r;return i&&(r=(r=n.match(/\W/g))&&r.length>=i),r}),r.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 r=e(t.element.name),u=o(t.params.other,r),s=n(t.form).find(":input").filter("[name='"+f(u)+"']")[0];i(t,"equalTo",s)}),t.add("required",function(n){("INPUT"!==n.element.tagName.toUpperCase()||"CHECKBOX"!==n.element.type.toUpperCase())&&i(n,"required",!0)}),t.add("remote",["url","type","additionalfields"],function(t){var u,r={url:t.params.url,type:t.params.type||"GET",data:{}},s=e(t.element.name);n.each((u=t.params.additionalfields||t.element.name).replace(/^\s+|\s+$/g,"").split(/\s*,\s*/g),function(i,u){var e=o(u,s);r.data[e]=function(){var i=n(t.form).find(":input").filter("[name='"+f(e)+"']");return i.is(":checkbox")?i.filter(":checked").val()||i.filter(":hidden").val()||"":i.is(":radio")?i.filter(":checked").val()||"":i.val()}});i(t,"remote",r)}),t.add("password",["min","nonalphamin","regex"],function(n){n.params.min&&i(n,"minlength",n.params.min);n.params.nonalphamin&&i(n,"nonalphamin",n.params.nonalphamin);n.params.regex&&i(n,"regex",n.params.regex)}),t.add("fileextensions",["extensions"],function(n){i(n,"extension",n.params.extensions)}),n(function(){r.unobtrusive.parse(document)}),r.unobtrusive})