/*! jquery validation plugin - v1.14.0 - 6/30/2015
* http://jqueryvalidation.org/
* copyright (c) 2015 jörn zaefferer; licensed mit */
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jquery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submithandler&&(c.submitbutton=b.target),a(this).hasclass("cancel")&&(c.cancelsubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelsubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submithandler?(c.submitbutton&&(d=a("").attr("name",c.submitbutton.name).val(a(c.submitbutton).val()).appendto(c.currentform)),e=c.settings.submithandler.call(c,c.currentform,b),c.submitbutton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventdefault(),c.cancelsubmit?(c.cancelsubmit=!1,d()):c.form()?c.pendingrequest?(c.formsubmitted=!0,!1):d():(c.focusinvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,d=d.concat(c.errorlist)}),c.errorlist=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticrules(j),b){case"add":a.extend(f,a.validator.normalizerule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeattr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizerules(a.extend({},a.validator.classrules(j),a.validator.attributerules(j),a.validator.datarules(j),a.validator.staticrules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentform=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makearray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==array&&(c=a.makearray(arguments).slice(1)),c.constructor!==array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new regexp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorclass:"error",validclass:"valid",errorelement:"label",focuscleanup:!1,focusinvalid:!0,errorcontainer:a([]),errorlabelcontainer:a([]),onsubmit:!0,ignore:":hidden",ignoretitle:!1,onfocusin:function(a){this.lastactive=a,this.settings.focuscleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorclass,this.settings.validclass),this.hidethese(this.errorsfor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementvalue(b)||-1!==a.inarray(c.keycode,d)||(b.name in this.submitted||b===this.lastelement)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentnode.name in this.submitted&&this.element(a.parentnode)},highlight:function(b,c,d){"radio"===b.type?this.findbyname(b.name).addclass(c).removeclass(d):a(b).addclass(c).removeclass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findbyname(b.name).removeclass(c).addclass(d):a(b).removeclass(c).addclass(d)}},setdefaults:function(b){a.extend(a.validator.defaults,b)},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:a.validator.format("please enter no more than {0} characters."),minlength:a.validator.format("please enter at least {0} characters."),rangelength:a.validator.format("please enter a value between {0} and {1} characters long."),range:a.validator.format("please enter a value between {0} and {1}."),max:a.validator.format("please enter a value less than or equal to {0}."),min:a.validator.format("please enter a value greater than or equal to {0}.")},autocreateranges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelcontainer=a(this.settings.errorlabelcontainer),this.errorcontext=this.labelcontainer.length&&this.labelcontainer||a(this.currentform),this.containers=a(this.settings.errorcontainer).add(this.settings.errorlabelcontainer),this.submitted={},this.valuecache={},this.pendingrequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizerule(d)}),a(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']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidhandler&&a(this.currentform).on("invalid-form.validate",this.settings.invalidhandler),a(this.currentform).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkform(),a.extend(this.submitted,this.errormap),this.invalid=a.extend({},this.errormap),this.valid()||a(this.currentform).triggerhandler("invalid-form",[this]),this.showerrors(),this.valid()},checkform:function(){this.prepareform();for(var a=0,b=this.currentelements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationtargetfor(c),e=!0;return this.lastelement=d,void 0===d?delete this.invalid[c.name]:(this.prepareelement(d),this.currentelements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberofinvalids()||(this.tohide=this.tohide.add(this.containers)),this.showerrors(),e},showerrors:function(b){if(b){a.extend(this.errormap,b),this.errorlist=[];for(var c in b)this.errorlist.push({message:b[c],element:this.findbyname(c)[0]});this.successlist=a.grep(this.successlist,function(a){return!(a.name in b)})}this.settings.showerrors?this.settings.showerrors.call(this,this.errormap,this.errorlist):this.defaultshowerrors()},resetform:function(){a.fn.resetform&&a(this.currentform).resetform(),this.submitted={},this.lastelement=null,this.prepareform(),this.hideerrors();var b,c=this.elements().removedata("previousvalue").removeattr("aria-invalid");if(this.settings.unhighlight)for(b=0;c[b];b++)this.settings.unhighlight.call(this,c[b],this.settings.errorclass,"");else c.removeclass(this.settings.errorclass)},numberofinvalids:function(){return this.objectlength(this.invalid)},objectlength:function(a){var b,c=0;for(b in a)c++;return c},hideerrors:function(){this.hidethese(this.tohide)},hidethese:function(a){a.not(this.containers).text(""),this.addwrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorlist.length},focusinvalid:function(){if(this.settings.focusinvalid)try{a(this.findlastactive()||this.errorlist.length&&this.errorlist[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findlastactive:function(){var b=this.lastactive;return b&&1===a.grep(this.errorlist,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentform).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectlength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorclass.split(" ").join(".");return a(this.settings.errorelement+"."+b,this.errorcontext)},reset:function(){this.successlist=[],this.errorlist=[],this.errormap={},this.toshow=a([]),this.tohide=a([]),this.currentelements=a([])},prepareform:function(){this.reset(),this.tohide=this.errors().add(this.containers)},prepareelement:function(a){this.reset(),this.tohide=this.errorsfor(a)},elementvalue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?this.findbyname(b.name).filter(":checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badinput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationtargetfor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementvalue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.tohide=this.tohide.not(this.errorsfor(b)));if(!c)return this.formatandadd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof typeerror&&(j.message+=". exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectlength(f)&&this.successlist.push(b),!0},customdatamessage:function(b,c){return a(b).data("msg"+c.charat(0).touppercase()+c.substring(1).tolowercase())||a(b).data("msg")},custommessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===string?c:c[b])},finddefined:function(){for(var a=0;awarning: no message defined for "+b.name+"")},formatandadd:function(b,c){var d=this.defaultmessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorlist.push({message:d,element:b,method:c.method}),this.errormap[b.name]=d,this.submitted[b.name]=d},addwrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultshowerrors:function(){var a,b,c;for(a=0;this.errorlist[a];a++)c=this.errorlist[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorclass,this.settings.validclass),this.showlabel(c.element,c.message);if(this.errorlist.length&&(this.toshow=this.toshow.add(this.containers)),this.settings.success)for(a=0;this.successlist[a];a++)this.showlabel(this.successlist[a]);if(this.settings.unhighlight)for(a=0,b=this.validelements();b[a];a++)this.settings.unhighlight.call(this,b[a],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 a(this.errorlist).map(function(){return this.element})},showlabel:function(b,c){var d,e,f,g=this.errorsfor(b),h=this.idorname(b),i=a(b).attr("aria-describedby");g.length?(g.removeclass(this.settings.validclass).addclass(this.settings.errorclass),g.html(c)):(g=a("<"+this.settings.errorelement+">").attr("id",h+"-error").addclass(this.settings.errorclass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelcontainer.length?this.labelcontainer.append(d):this.settings.errorplacement?this.settings.errorplacement(d,a(b)):d.insertafter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),i?i.match(new regexp("\\b"+f+"\\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentform).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addclass(this.settings.success):this.settings.success(g,b)),this.toshow=this.toshow.add(g)},errorsfor:function(b){var c=this.idorname(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idorname:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationtargetfor:function(b){return this.checkable(b)&&(b=this.findbyname(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findbyname:function(b){return a(this.currentform).find("[name='"+b+"']")},getlength:function(b,c){switch(c.nodename.tolowercase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findbyname(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependtypes[typeof a]?this.dependtypes[typeof a](a,b):!0},dependtypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementvalue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startrequest:function(a){this.pending[a.name]||(this.pendingrequest++,this.pending[a.name]=!0)},stoprequest:function(b,c){this.pendingrequest--,this.pendingrequest<0&&(this.pendingrequest=0),delete this.pending[b.name],c&&0===this.pendingrequest&&this.formsubmitted&&this.form()?(a(this.currentform).submit(),this.formsubmitted=!1):!c&&0===this.pendingrequest&&this.formsubmitted&&(a(this.currentform).triggerhandler("invalid-form",[this]),this.formsubmitted=!1)},previousvalue:function(b){return a.data(b,"previousvalue")||a.data(b,"previousvalue",{old:null,valid:!0,message:this.defaultmessage(b,"remote")})},destroy:function(){this.resetform(),a(this.currentform).off(".validate").removedata("validator")}},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(b,c){b.constructor===string?this.classrulesettings[b]=c:a.extend(this.classrulesettings,b)},classrules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classrulesettings&&a.extend(c,a.validator.classrulesettings[this])}),c},normalizeattributerule:function(a,b,c,d){/min|max/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=number(d),isnan(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributerules:function(b){var c,d,e={},f=a(b),g=b.getattribute("type");for(c in a.validator.methods)"required"===c?(d=b.getattribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeattributerule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},datarules:function(b){var c,d,e={},f=a(b),g=b.getattribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charat(0).touppercase()+c.substring(1).tolowercase()),this.normalizeattributerule(e,g,c,d);return e},staticrules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizerule(d.settings.rules[b.name])||{}),c},normalizerules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isfunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isarray(b[this])?b[this]=[number(b[this][0]),number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[number(c[0]),number(c[1])]))}),a.validator.autocreateranges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizerule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addmethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addclassrules(b,a.validator.normalizerule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodename.tolowercase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getlength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[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(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?: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(a)},date:function(a,b){return this.optional(b)||!/invalid|nan/.test(new date(a).tostring())},dateiso:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\d/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charat(c),f=parseint(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isarray(b)?b.length:this.getlength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isarray(b)?b.length:this.getlength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isarray(b)?b.length:this.getlength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalto:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.off(".validate-equalto").on("blur.validate-equalto",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousvalue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalmessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startrequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,datatype:"json",data:f,context:e.currentform,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalmessage,j?(i=e.formsubmitted,e.prepareelement(c),e.formsubmitted=i,e.successlist.push(c),delete e.invalid[c.name],e.showerrors()):(f={},h=d||e.defaultmessage(c,"remote"),f[c.name]=g.message=a.isfunction(h)?h(b):h,e.invalid[c.name]=!0,e.showerrors(f)),g.valid=j,e.stoprequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxprefilter?a.ajaxprefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxsettings).mode,f=("port"in d?d:a.ajaxsettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})});