/*! nice validator 0.8.0 * (c) 2012-2015 jony zhang , mit licensed * http://niceue.com/validator/ */ !function(e){"function"==typeof define&&(define.amd||define.cmd)?define([],function(){return e}):e(jquery)}(function(e,t){"use strict";function i(t,n){function s(){a._init(a.$el[0],n)}var a=this;return a instanceof i?(a.$el=e(t),void(a.$el.length?i.loading?e(window).on("validatorready",s):s():x(t)&&(et[t]=n))):new i(t,n)}function n(e,t){if(z(e)){var i,s=t?t===!0?this:t:n.prototype;for(i in e)m(i)&&(s[i]=a(e[i]))}}function s(e,t){if(z(e)){var i,n=t?t===!0?this:t:s.prototype;for(i in e)n[i]=e[i]}}function a(t){switch(e.type(t)){case"function":return t;case"array":var i=function(e){return t.msg=t[1],t[0].test(y(e))||t[1]||!1};return i.msg=t[1],i;case"regexp":return function(e){return t.test(y(e))}}}function r(t){var i,n,s;if(t&&t.tagname){switch(t.tagname){case"input":case"select":case"textarea":case"button":case"fieldset":i=t.form||e(t).closest("."+m);break;case"form":i=t;break;default:i=e(t).closest("."+m)}for(n in et)if(e(i).is(n)){s=et[n];break}return e(i).data(_)||e(i)[_](s).data(_)}}function l(e,t){var i,n=t||e.currenttarget;n.form&&null===k(n.form,n)&&(i=r(n),i?(i._parse(n),i._focusin(e),t&&i._focusout(e,t)):k(n,v,null))}function o(e,t){var i=j(k(e,v+"-"+t));if(i)return i=new function("return "+i)(),i?a(i):void 0}function u(e,t,i){var n=t.msg,s=t._r;return z(n)&&(n=n[s]),x(n)||(n=k(e,c+"-"+s)||k(e,c)||(i?x(i)?i:i[s]:"")),n}function d(e){var t;return e&&(t=l.exec(e)),t&&t[1]}function c(e){return x(e)||z(e)&&("error"in e||"ok"in e)?e:void 0}function f(e){return"input"===e.tagname&&"checkbox"===e.type||"radio"===e.type}function g(e){return date.parse(e.replace(/\.|\-/g,"/"))}function m(e){return/^[\w\d]+$/.test(e)}function p(e){return"#"===e.charat(0)?e.replace(/(:|\.|\[|\])/g,"\\$1"):'[name="'+e+'"]:input'}var h,v,_="validator",y="."+_,k=".rule",w=".field",b=".form",m="nice-"+_,$="msg-box",x="aria-required",o="aria-invalid",v="data-rule",c="data-msg",f="data-tip",t="data-ok",a="data-timely",e="data-target",j="data-display",r="data-must",n="novalidate",s=":verifiable",d=/(&)?(!)?\s?(\w+)(?:\[\s*(.*?\]?)\s*\]|\(\s*(.*?\)?)\s*\))?\s*(;|\||&)?/g,q=/(\w+)(?:\[\s*(.*?\]?)\s*\]|\(\s*(.*?\)?)\s*\))?/,i=/(?:([^:;\(\[]*):)?(.*)/,b=/[^\x00-\xff]/g,l=/^.*(top|right|bottom|left).*$/,u=/(?:(post|get):)?(.+)/i,h=/[<>'"`\\]|&#x?\d+[a-f]?;?|%3[a-f]/gim,p=e.noop,w=e.proxy,j=e.trim,q=e.isfunction,x=function(e){return"string"==typeof e},z=function(e){return e&&"[object object]"===object.prototype.tostring.call(e)},g=document.documentmode||+(navigator.useragent.match(/msie (\d+)/)&®exp.$1),k=function(e,i,n){return n===t?e.getattribute(i):void(null===n?e.removeattribute(i):e.setattribute(i,""+n))},y=function(t){return e(t).val()},z=window.console||{log:p,info:p},et={},tt={debug:0,timely:1,theme:"default",ignore:"",focusinvalid:!0,beforesubmit:p,msgwrapper:"span",msgmaker:function(t){var i;return i=''+t.arrow,t.result?e.each(t.result,function(e,n){i+=''+t.icon+''+n.msg+""}):i+=t.icon+''+t.msg+"",i+=""},msgarrow:"",msgicon:'',msgclass:"",validclass:"n-valid",invalidclass:"n-invalid"},it={"default":{formclass:"n-default",msgclass:"n-right"}};e.fn[_]=function(t){var n=this,s=arguments;return n.is(":input")?n:(!n.is("form")&&(n=this.find("form")),!n.length&&(n=this),n.each(function(){var n=e(this).data(_);if(n)if(x(t)){if("_"===t.charat(0))return;n[t].apply(n,array.prototype.slice.call(s,1))}else t&&(n._reset(!0),n._init(this,t));else new i(this,t)}),this)},e.fn.isvalid=function(e,t){var i,n,s=r(this[0]),a=q(e);return s?(s.checkonly=!!t,n=s.options,i=s._multivalidate(this.is(":input")?this:this.find(s),function(t){t||!n.focusinvalid||s.checkonly||s.$el.find("["+o+"]:input:first").focus(),a&&e.call(null,t),s.checkonly=!1}),a?this:i):!0},e.expr[":"].verifiable=function(e){var t=e.nodename.tolowercase();return("input"===t&&!{submit:1,button:1,reset:1,image:1}[e.type]||"select"===t||"textarea"===t)&&e.disabled===!1},e.expr[":"].filled=function(e){return!!j(y(e))},i.prototype={_init:function(t,i){var a,r,l,o=this;q(i)&&(i={valid:i}),i=i||{},l=k(t,"data-"+_+"-option"),l=l&&"{"===l.charat(0)?new function("return "+l)():{},r=it[i.theme||l.theme||tt.theme],a=o.options=e.extend({},tt,r,o.options,i,l),o.rules=new n(a.rules,!0),o.messages=new s(a.messages,!0),o.elements=o.elements||{},o.deferred={},o.errors={},o.fields={},o._initfields(a.fields),o.msgopt={type:"error",pos:d(a.msgclass),wrapper:a.msgwrapper,cls:a.msgclass,style:a.msgstyle,arrow:a.msgarrow,icon:a.msgicon,show:a.msgshow,hide:a.msghide},x(a.target)&&o.$el.find(a.target).addclass("msg-container"),o.$el.data(_)||(o.$el.data(_,o).addclass(m+" "+a.formclass).on("submit"+y+" validate"+y,w(o,"_submit")).on("reset"+y,w(o,"_reset")).on("showmsg"+y,w(o,"_showmsg")).on("hidemsg"+y,w(o,"_hidemsg")).on("focusin"+y+" click"+y,s,w(o,"_focusin")).on("focusout"+y+" validate"+y,s,w(o,"_focusout")),a.timely&&o.$el.on("keyup"+y+" input"+y,s,w(o,"_focusout")).on("click"+y,":radio,:checkbox","click",w(o,"_focusout")).on("change"+y,'select,input[type="file"]',"change",w(o,"_focusout")),o._novalidate=k(t,n),k(t,n,n))},_guessajax:function(t){var i=this;if(!(i.isajaxsubmit=!!i.options.valid)){var n=(e._data||e.data)(t,"events");n&&n.valid&&e.map(n.valid,function(e){return~e.namespace.indexof("form")?1:null}).length&&(i.isajaxsubmit=!0)}},_initfields:function(t){var i=this,n=null===t;n&&(t=i.fields),z(t)&&e.each(t,function(e,t){if(null===t||n){var s=i.elements[e];s&&i._resetelement(s,!0),delete i.fields[e]}else i.fields[e]=x(t)?{rule:t}:t}),i.$el.find(s).each(function(){i._parse(this)})},_parse:function(e){var t,i,n=this,s=n.options,a=e.name,r=k(e,v);r&&k(e,v,null),(e.id&&"#"+e.id in n.fields||!e.name)&&(a="#"+e.id),a&&(t=n.fields[a]||{},t.key=a,t.rule=t.rule||r||"",t.display||!(t.display=k(e,j))&&s.display&&(t.display=s.display),t.rule&&((null!==k(e,r)||/match\(|checked/.test(t.rule))&&(t.must=!0),~t.rule.indexof("required")&&(t.required=!0,k(e,x,!0)),"showok"in t||(t.showok=s.showok),i=k(e,a),i?t.timely=+i:"timely"in t&&k(e,a,+t.timely),t=n._parserule(t),t.old={}),x(t.target)&&k(e,e,t.target),x(t.tip)&&k(e,f,t.tip),n.fields[a]=t)},_parserule:function(i){var n=i.exec(i.rule);if(n)return i._i=0,n[1]&&(i.display=n[1]),n[2]&&(i.rules=[],n[2].replace(d,function(){var n=arguments;n[4]=n[4]||n[5],i.rules.push({and:"&"===n[1],not:"!"===n[2],or:"|"===n[6],method:n[3],params:n[4]?e.map(n[4].split(", "),function(e){return j(e)}):t})})),i},_multivalidate:function(i,n){var s=this,a=s.options;return s.haserror=!1,a.ignore&&(i=i.not(a.ignore)),i.each(function(e,t){var i=s.getfield(t);return i&&(s._validate(t,i),s.haserror&&a.stoponerror)?!1:void 0}),n&&(s.verifying=!0,e.when.apply(null,e.map(s.deferred,function(e){return e})).done(function(){n.call(s,!s.haserror),s.verifying=!1})),e.isemptyobject(s.deferred)?!s.haserror:t},_submit:function(i){function n(){var e,t;v=!0,h&&(e=h.name)?(h.name="",t=l.submit,a.$el.append(''),t.call(l)):l.submit()}var s,a=this,r=a.options,l=i.target,o=i.isdefaultprevented();if(i.preventdefault(),!(v&&~(v=!1)||a.submiting||"validate"===i.type&&a.$el[0]!==l||r.beforesubmit.call(a,l)===!1)){if(a.isajaxsubmit===t&&a._guessajax(l),s="submit"===i.type&&!o&&!a.isajaxsubmit,i.istrigger&&a.isvalid&&s)return void n();r.debug&&z.log("\n<<< "+(i.istrigger?"trigger: ":"event: ")+i.type),a._reset(),a.submiting=!0,a._multivalidate(a.$el.find(s),function(t){var i,o=t||2===r.debug?"valid":"invalid";t||(r.focusinvalid&&a.$el.find("["+o+'="true"]:input:first').focus(),i=e.map(a.errors,function(e){return e})),a.submiting=!1,a.isvalid=t,q(r[o])&&r[o].call(a,l,i),a.$el.trigger(o+b,[l,i]),r.debug&&z.log(">>> "+o),t&&s&&n()})}},_reset:function(e){var t=this;t.errors={},e&&(t.reseting=!0,t.$el.find(s).each(function(e,i){t._resetelement(i)}),delete t.reseting)},_resetelement:function(t,i){var n=this.options;e(t).removeclass(n.validclass+" "+n.invalidclass),this.hidemsg(t),i&&k(t,x,null)},_gettimely:function(e,t){var i=k(e,a);return null!==i?+i:+t.timely},_focusin:function(t){var i,n,s=this,a=s.options,r=t.target;s.verifying||"click"===t.type&&document.activeelement===r||(a.focuscleanup&&"true"===k(r,o)&&(e(r).removeclass(a.invalidclass),s.hidemsg(r)),n=k(r,f),n?s.showmsg(r,{type:"tip",msg:n}):(i=s._gettimely(r,a),(8===i||9===i)&&s._focusout(t)))},_focusout:function(i,n){var s,a,r,l,o,u,d=this,c=d.options,g=i.target,m=i.type,p="focusin"===m,h="validate"===m,v=d.getfield(g),_=0;if(v){if(v._e=m,s=v.old,a=y(g),!n&&f(g)&&(n=d.$el.find('input[name="'+g.name+'"]').get(0)),u=d._gettimely(n||g,c),!h)if("focusout"===m){if(2===u||8===u){if(!a)return;v.isvalid&&!s.showok?d.hidemsg(g):d._makemsg(g,v,s)}}else{if(!u||2>u&&!i.data)return;if(r=+new date,r-(g._ts||0)<100||"keyup"===m&&"input"===g._et)return;if(g._ts=r,g._et=m,"keyup"===m){if(l=i.keycode,o={8:1,9:1,16:1,32:1,46:1},9===l&&!a)return;if(48>l&&!o[l])return}p||(_=u>=100?u:400)}c.ignore&&e(g).is(c.ignore)||(cleartimeout(v._t),u&&(h||!c.ignoreblank||a||p)?(v.value=a,u!==t&&(v.timely=u),_?v._t=settimeout(function(){d._validate(g,v)},_):(h&&(v.old={}),d._validate(g,v))):d.hidemsg(g))}},_showmsg:function(t,i,n){var s=this,a=t.target;e(a).is(":input")?s.showmsg(a,{type:i,msg:n}):"tip"===i&&s.$el.find(s+"["+f+"]",a).each(function(){s.showmsg(this,{type:i,msg:n})})},_hidemsg:function(t){var i=e(t.target);i.is(":input")&&this.hidemsg(i)},_validatedfield:function(t,i,n){var s=this,a=s.options,r=i.isvalid=n.isvalid=!!n.isvalid,l=r?"valid":"invalid";n.key=i.key,n.rulename=i._r,n.id=t.id,n.value=y(t),r?n.type="ok":(s.submiting&&(s.errors[i.key]=n.msg),s.isvalid=!1,s.haserror=!0),s.elements[i.key]=n.element=t,s.$el[0].isvalid=r?s.isformvalid():r,i.old=n,q(i[l])&&i[l].call(s,t,n),q(a.validation)&&a.validation.call(s,t,n),e(t).attr(o,r?null:!0).removeclass(r?a.invalidclass:a.validclass).addclass(n.skip?"":r?a.validclass:a.invalidclass).trigger(l+w,[n,s]),s.$el.triggerhandler("validation",[n,s]),s.checkonly||s._makemsg.apply(s,arguments)},_makemsg:function(t,i,n){(i.msgmaker||this.options.msgmaker)&&(n=e.extend({},n),"focusin"===i._e&&(n.type="tip"),this[n.showok||n.msg||"tip"===n.type?"showmsg":"hidemsg"](t,n,i))},_validatedrule:function(i,n,s,a){n=n||c.getfield(i),a=a||{};var r,l,o,d,c=this,f=c.options,g=n._r,m=n.timely||f.timely,p=9===m||8===m,h=!1;if(null===s)return void c._validatedfield(i,n,{isvalid:!0,skip:!0});if(s===t?o=!0:s===!0||""===s?h=!0:x(s)?r=s:z(s)&&(s.error?r=s.error:(r=s.ok,h=!0)),l=n.rules[n._i],l.not&&(r=t,h="required"===g||!h),l.or)if(h)for(;n._i "+(h||r)),(h||p)&&n._i=+u&&+d>=e&&(s=!0),f=f.concat(o)):u&&!d?(g&&e>=+u&&(s=!0),f.push(u),c="gte"):!u&&d&&(g&&+d>=e&&(s=!0),f.push(d),c="lte"):(e===+u&&(s=!0),f.push(u),c="eq"),l&&(n&&l[c+n]&&(c+=n),f[0]=l[c]),s||(r.msg=a.rendermsg.apply(null,f))}},rendermsg:function(){var e=arguments,t=e[0],i=e.length;if(t){for(;--i;)t=t.replace("{"+i+"}",e[i]);return t}},_getdisplay:function(e,t){return x(t)?t:q(t)?t.call(this,e):""},_getmsgopt:function(t){return e.extend({},this.msgopt,x(t)?{msg:t}:t)},_getmsgdom:function(t,i){var n,s,a,r,l=e(t);if(l.is(":input")?(a=i.target||k(t,e),a&&(a=q(a)?a.call(this,t):this.$el.find(a),a.length&&(a.is(":input")?t=a.get(0):a.hasclass($)?n=a:r=a)),n||(s=f(t)&&t.name||!t.id?t.name:t.id,n=this.$el.find(i.wrapper+"."+$+'[for="'+s+'"]'))):n=l,!n.length)if(l=this.$el.find(a||t),n=e("<"+i.wrapper+">").attr({"class":$+(i.cls?" "+i.cls:""),style:i.style||"","for":s}),f(t)){var o=l.parent();n.appendto(o.is("label")?o.parent():o)}else r?n.appendto(r):n[i.pos&&"right"!==i.pos?"insertbefore":"insertafter"](l);return n},showmsg:function(t,i,n){if(t){var s,a,r,l=this,o=l.options;if(z(t)&&!t.jquery&&!i)return void e.each(t,function(e,t){var i=l.elements[e]||l.$el.find(p(e))[0];l.showmsg(i,t)});i=l._getmsgopt(i),t=e(t).get(0),i.msg||"error"===i.type||(a=k(t,"data-"+i.type),null!==a&&(i.msg=a)),x(i.msg)&&(e(t).is(s)&&(n=n||l.getfield(t),n&&(i.style=n.msgstyle||i.style,i.cls=n.msgclass||i.cls,i.wrapper=n.msgwrapper||i.wrapper,i.target=n.target||o.target)),(s=(n||{}).msgmaker||o.msgmaker)&&(r=l._getmsgdom(t,i),!l.test(r[0].classname)&&r.addclass(i.cls),6===g&&"bottom"===i.pos&&(r[0].style.margintop=e(t).outerheight()+"px"),r.html(s.call(l,i))[0].style.display="",q(i.show)&&i.show.call(l,r,i.type)))}},hidemsg:function(t,i,n){var s,a=this,r=a.options;t=e(t).get(0),i=a._getmsgopt(i),e(t).is(s)&&(n=n||a.getfield(t),n&&((n.isvalid||a.reseting)&&k(t,o,null),i.wrapper=n.msgwrapper||i.wrapper,i.target=n.target||r.target)),s=a._getmsgdom(t,i),s.length&&(q(i.hide)?i.hide.call(a,s,i.type):(s[0].style.display="none",s[0].innerhtml=null))},getfield:function(e){var t,i=this;return x(e)?t=e:(t=e.id&&"#"+e.id in i.fields||!e.name?"#"+e.id:e.name,k(e,v)&&i._parse(e)),i.fields[t]},setfield:function(e,t){var i={};e&&(x(e)?i[e]=t:i=e,this._initfields(i))},isformvalid:function(){var e,t=this.fields;for(e in t)if(!t[e].isvalid)return t[e].isvalid;return!0},holdsubmit:function(e){this.submiting=e===t||e},cleanup:function(){this._reset(1)},destroy:function(){this._reset(1),this.$el.off(y).removedata(_),k(this.$el[0],n,this._novalidate)}},e(window).on("beforeunload",function(){this.focus()}),e(document).on("focusin","["+v+"]:input",function(e){l(e)}).on("click","input,button",function(e){var t,i,n=this,s=n.name;n.form&&("submit"===n.type?(h=n,t=n.getattributenode("formnovalidate"),(t&&null!==t.nodevalue||null!==k(n,n))&&(v=!0)):null===k(n.form,n)&&(s&&f(n)?(i=n.form.elements[s],i.length&&(i=i[0]),k(i,v)&&l(e,i)):l(e)))}).on("submit validate","form",function(t){if(null===k(this,n)){var i,n=e(this);n.data(_)||(i=r(this),e.isemptyobject(i.fields)?(k(this,n,n),n.off(y).removedata(_)):i._submit(t))}}),new s({fallback:"this field is not valid.",loading:"validating..."}),new n({required:function(t,i,n){var s=this,a=j(y(t)),r=!0;if(i)if(1===i.length){if(m(i[0])){if(s.rules[i[0]]){if(!a&&!s.test(t,i[0]))return k(t,x,null),null;k(t,x,!0)}}else if(!a&&!e(i[0],s.$el).length)return null}else if("not"===i[0])e.each(i.slice(1),function(){return r=a!==j(this)});else if("from"===i[0]){var l,o=s.$el.find(i[1]),d="_validated_";return r=o.filter(function(){return!!j(y(this))}).length>=(i[2]||1),r?a||(l=null):l=u(o[0],n)||!1,e(t).data(d)||o.data(d,1).each(function(){t!==this&&s._checkrule(this,s.getfield(this))}).removedata(d),l}return r&&!!a},integer:function(e,t){var i,n="0|",s="[1-9]\\d*",a=t?t[0]:"*";switch(a){case"+":i=s;break;case"-":i="-"+s;break;case"+0":i=n+s;break;case"-0":i=n+"-"+s;break;default:i=n+"-?"+s}return i="^(?:"+i+")$",new regexp(i).test(y(e))||this.messages.integer[a]},match:function(t,i,n){if(i){var s,a,r,l,o,u,d,c,f=this,m="eq";if(1===i.length?r=i[0]:(m=i[0],r=i[1]),u=p(r),d=f.$el.find(u)[0]){if(c=f.getfield(d),s=y(t),a=y(d),n._match||(f.$el.on("valid"+w+y,u,function(){e(t).trigger("validate")}),n._match=c._match=1),!n.required&&""===s&&""===a)return null;if(o=i[2],o&&(/^date(time)?$/i.test(o)?(s=g(s),a=g(a)):"time"===o&&(s=+s.replace(/:/g,""),a=+a.replace(/:/g,""))),"eq"!==m&&!isnan(+s)&&isnan(+a))return!0;switch(l=f.messages.match[m].replace("{1}",f._getdisplay(t,c.display||r)),m){case"lt":return+a>+s||l;case"lte":return+a>=+s||l;case"gte":return+s>=+a||l;case"gt":return+s>+a||l;case"neq":return s!==a||l;default:return s===a||l}}}},range:function(e,t,i){return this.getrangemsg(y(e),t,i)},checked:function(e,t,i){if(f(e)){var n,s,a=this;return e.name?s=a.$el.find('input[name="'+e.name+'"]').filter(function(){var e=this;return!n&&f(e)&&(n=e),!e.disabled&&e.checked}).length:(n=e,s=n.checked),t?a.getrangemsg(s,t,i):!!s||u(n,i,"")||a.messages.required}},length:function(e,t,i){var n=y(e),s=(t[1]?n.replace(b,"xx"):n).length;return this.getrangemsg(s,t,i,t[1]?"_2":"")},remote:function(t,i){if(i){var n,s=this,a=u.exec(i[0]),r={},l="";return r[t.name]=y(t),i[1]&&e.map(i.slice(1),function(e){var t,i;~e.indexof("=")?l+="&"+e:(t=e.split(":"),e=j(t[0]),i=j(t[1])||e,r[e]=s.$el.find(p(i)).val())}),/^https?:/.test(a[2])&&!~a[2].indexof(location.host)&&(n="jsonp"),e.ajax({url:a[2],type:a[1]||"post",data:e.param(r)+l,datatype:n,cache:!1})}},validate:function(t,i){var n="_validated_";i&&!e(t).data(n)&&this.$el.find(e.map(i,function(e){return p(e)}).join(",")).data(n,1).trigger("validate").removedata(n)},filter:function(e,t){var i,n=y(e);i=n.replace(t?new regexp("["+t[0]+"]","gm"):h,""),i!==n&&(e.value=i)}}),i.config=function(t){e.each(t,function(e,t){"rules"===e?new n(t):"messages"===e?new s(t):tt[e]=t})},i.settheme=function(t,i){z(t)?e.extend(!0,it,t):x(t)&&z(i)&&(it[t]=e.extend(it[t],i))},e[_]=i,function(t){var n,s,a,r,l,o,u=document,d=u.getelementsbytagname("script");if(t)s=d[0],n=t.match(/(.*)\/local\/([\w\-]{2,5})\.js/);else for(a=d.length,r=/(.*validator.js)\?.*local=([\w\-]*)/;a--&&!n;)s=d[a],n=(s.hasattribute?s.src:s.getattribute("src",4)||"").match(r);n&&(l=n[0].split("/").slice(0,-1).join("/").replace(/\/(local|src)$/,"")+"/",o=u.createelement("link"),o.rel="stylesheet",o.href=l+"jquery.validator.css",s.parentnode.insertbefore(o,s),t||(i.loading=1,o=u.createelement("script"),o.src=l+"local/"+(n[2]||u.documentelement.lang||"en").replace("_","-")+".js",a="onload"in o?"onload":"onreadystatechange",o[a]=function(){(!o.readystate||/loaded|complete/.test(o.readystate))&&(e(window).trigger("validatorready"),delete i.loading,o=o[a]=null)},s.parentnode.insertbefore(o,s)))}(e._validator_uri)});