/*! nice validator 0.7.3 * (c) 2012-2014 jony zhang , mit licensed * http://niceue.com/validator/ */ !function(e,t){"use strict";function i(n,s){var r=this;return!r instanceof i?new i(n,s):(r.$el=e(n),r._init(n,s),t)}function n(e,t){var i=t?t===!0?this:t:n.prototype;if(z(e))for(var s in e)i[s]=r(e[s])}function s(e,t){var i=t?t===!0?this:t:s.prototype;if(z(e))for(var n in e){if(!e[n])return;i[n]=e[n]}}function r(t){switch(e.type(t)){case"function":return t;case"array":return function(e){return t[0].test(e.value)||t[1]||!1};case"regexp":return function(e){return t.test(e.value)}}}function a(t){var i="";return e.map(t.split(" "),function(e){i+=","+("#"===e.charat(0)?e:'[name="'+e+'"]')}),i.substring(1)}function l(t){var i;if(t&&t.tagname){switch(t.tagname){case"input":case"select":case"textarea":case"button":case"fieldset":i=t.form||e(t).closest("."+k);break;case"form":i=t;break;default:i=e(t).closest("."+k)}return e(i).data(h)||e(i)[h]().data(h)}}function u(e){var t,i=e.currenttarget;i.form&&null===k(i.form,q)&&(t=l(i),t?(t._parse(i),t["_"+e.type](e)):k(i,v,null))}function o(i,n){var s=e.trim(k(i,v+"-"+n));if(s)return s=function("return "+s)(),s?r(s):t}function d(e,t,i,n){var s=t.msg,r=t._r;return z(s)&&(s=s[r]),q(s)||(s=k(e,a+"-"+r)||k(e,a)||i||(n?q(n)?n:n[r]:"")),s}function c(e){var t;return e&&(t=h.exec(e)),t?t[1]:""}function f(e){return"input"===e.tagname&&"checkbox"===e.type||"radio"===e.type}function g(e){return date.parse(e.replace(/\.|\-/g,"/"))}var p,m,h="validator",v="."+h,y=".rule",_=".field",b=".form",k="nice-"+h,w="n-ok",m="n-error",o="n-tip",$="n-loading",x="msg-box",c="aria-required",f="aria-invalid",v="data-rule",a="data-msg",r="data-tip",t="data-ok",s="data-target",e="data-inputstatus",q="novalidate",n=":verifiable",j=/(!?)\s?(\w+)(?:\[\s*(.*?\]?)\s*\]|\(\s*(.*?\)?)\s*\))?\s*(;|\||&)?/g,d=/(\w+)(?:\[\s*(.*?\]?)\s*\]|\(\s*(.*?\)?)\s*\))?/,i=/(?:([^:;\(\[]*):)?(.*)/,u=/[^\x00-\xff]/g,h=/^.*(top|right|bottom|left).*$/,l=/(?:(post|get):)?(.+)/i,p=/<|>/g,w=e.noop,b=e.proxy,x=e.isfunction,j=e.isarray,q=function(e){return"string"==typeof e},z=function(e){return e&&"[object object]"===object.prototype.tostring.call(e)},g=!window.xmlhttprequest,k=function(e,i,n){return n===t?e.getattribute(i):(null===n?e.removeattribute(i):e.setattribute(i,""+n),t)},y=window.console||{log:w,info:w},z={debug:0,timely:1,theme:"default",ignore:"",focusinvalid:!0,beforesubmit:w,validclass:"n-valid",invalidclass:"n-invalid",msgwrapper:"span",msgmaker:function(e){var t,i={error:m,ok:w,tip:o,loading:$}[e.type];return t='',t+=e.arrow+e.icon+''+e.msg+"",t+=""},msgicon:'',msgarrow:"",msgclass:"",defaultmsg:"{0} is not valid.",loadingmsg:"validating..."},et={"default":{formclass:"n-default",msgclass:"n-right",showok:""}};e.fn[h]=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(h);if(n)if(q(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=l(this[0]),r=x(e);return s?(s.checkonly=!!t,n=s.options,i=s._multivalidate(this.is(":input")?this:this.find(n),function(t){t||!n.focusinvalid||s.checkonly||s.$el.find(":input["+f+"]:first").focus(),r&&e.call(null,t),s.checkonly=!1}),r?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},i.prototype={_init:function(i,r){var l,u,o,d=this;if(x(r)&&(r={valid:r}),r=r||{},o=k(i,"data-"+h+"-option"),o=o&&"{"===o.charat(0)?function("return "+o)():{},u=et[r.theme||o.theme||z.theme],l=d.options=e.extend({},z,u,o,d.options,r),d.rules=new n(l.rules,!0),d.messages=new s(l.messages,!0),d.elements=d.elements||{},d.deferred={},d.errors={},d.fields={},d._initfields(l.fields),j(l.groups)&&e.map(l.groups,function(i){return q(i.fields)&&x(i.callback)?(i.$elems=d.$el.find(a(i.fields)),e.map(i.fields.split(" "),function(e){d.fields[e]=d.fields[e]||{},d.fields[e].group=i}),t):null}),d.msgopt={type:"error",pos:c(l.msgclass),wrapper:l.msgwrapper,cls:l.msgclass,style:l.msgstyle,icon:l.msgicon,arrow:l.msgarrow,show:l.msgshow,hide:l.msghide},d.isajaxsubmit=!1,l.valid||!e.trim(k(i,"action")))d.isajaxsubmit=!0;else{var f=e[e._data?"_data":"data"](i,"events");f&&f.valid&&e.map(f.valid,function(e){return-1!==e.namespace.indexof("form")?1:null}).length&&(d.isajaxsubmit=!0)}d.$el.data(h)||(d.$el.data(h,d).addclass(k+" "+l.formclass).on("submit"+v+" validate"+v,b(d,"_submit")).on("reset"+v,b(d,"_reset")).on("showtip"+v,b(d,"_showtip")).on("focusin"+v+" click"+v+" showtip"+v,n,b(d,"_focusin")).on("focusout"+v+" validate"+v,n,b(d,"_focusout")),l.timely>=2&&d.$el.on("keyup"+v+" paste"+v,n,b(d,"_focusout")).on("click"+v,":radio,:checkbox",b(d,"_focusout")).on("change"+v,'select,input[type="file"]',b(d,"_focusout")),d._novalidate=k(i,q),k(i,q,q))},_initfields:function(t){var i=this;z(t)&&e.each(t,function(e,t){if(null===t){var n=i.elements[e];n&&i._resetelement(n,!0),delete i.fields[e]}else i.fields[e]=q(t)?{rule:t}:t}),i.$el.find(n).each(function(){i._parse(this)})},_parse:function(e){var t,i=this,n=e.name,s=k(e,v);s&&k(e,v,null),(e.id&&"#"+e.id in i.fields||!e.name)&&(n="#"+e.id),n&&(t=i.fields[n]||{},t.key=n,t.old={},t.rule=t.rule||s||"",t.rule&&(t.rule.match(/match|checked/)&&(t.must=!0),-1!==t.rule.indexof("required")&&(t.required=!0,k(e,c,!0)),("timely"in t&&!t.timely||!i.options.timely)&&k(e,"notimely",!0),q(t.target)&&k(e,s,t.target),q(t.tip)&&k(e,r,t.tip),i.fields[n]=i._parserule(t)))},_parserule:function(e){var i=i.exec(e.rule),n=this.options;if(i)return e._i=0,i[1]&&(e.display=i[1]),!e.display&&n.display&&(e.display=n.display),i[2]&&(e.rules=[],i[2].replace(j,function(){var i=arguments;i[3]=i[3]||i[4],e.rules.push({not:"!"===i[1],method:i[2],params:i[3]?i[3].split(", "):t,or:"|"===i[5]})})),e},_multivalidate:function(i,n){var s=this,r=s.options;return s.verifying=!0,s.isvalid=!0,r.ignore&&(i=i.not(r.ignore)),i.each(function(e,i){var n=s.getfield(i);return n&&(s._validate(i,n),!s.isvalid&&r.stoponerror)?!1:t}),e.when.apply(null,e.map(s.deferred,function(e){return e})).done(function(){n.call(s,s.isvalid),s.verifying=!1}),e.isemptyobject(s.deferred)?s.isvalid:t},_submit:function(t){var i=this,n=i.options,s=t.target,r="submit"===t.type;t.preventdefault(),m&&~(m=!1)||i.submiting||"validate"===t.type&&i.$el[0]!==s||n.beforesubmit.call(i,s)===!1||(n.debug&&y.log("\n"+t.type),i._reset(),i.submiting=!0,i._multivalidate(i.$el.find(n),function(t){var a,l=t||2===n.debug?"valid":"invalid";t||(n.focusinvalid&&i.$el.find(":input["+f+'="true"]:first').focus(),a=e.map(i.errors,function(e){return e})),i.submiting=!1,x(n[l])&&n[l].call(i,s,a),i.$el.trigger(l+b,[s,a]),t&&!i.isajaxsubmit&&r&&(m=!0,p&&p.name&&i.$el.append(''),s.submit())}))},_reset:function(e){var t=this;t.errors={},e&&t.$el.find(n).each(function(e,i){t._resetelement(i)})},_resetelement:function(t,i){var n=this.options;e(t).removeclass(n.validclass+" "+n.invalidclass),this.hidemsg(t),i&&k(t,c,null)},_focusin:function(t){var i,n=this,s=n.options,r=t.target;n.verifying||("showtip"!==t.type&&"error"===k(r,e)&&s.focuscleanup&&(e(r).removeclass(s.invalidclass),n.hidemsg(r)),i=k(r,r),i&&n.showmsg(r,{type:"tip",msg:i}))},_focusout:function(t){var i,n,s=this,r=s.options,a=t.target,l=t.type,u={click:1,change:1,paste:1},o=0;if(!u[l]){if("validate"===l)n=!0;else{if(k(a,"notimely"))return;if(r.timely>=2&&"keyup"!==l)return}if(r.ignore&&e(a).is(r.ignore))return;if("keyup"===l){var d=t.keycode,c={8:1,9:1,16:1,32:1,46:1};if(9===d&&!a.value)return;if(48>d&&!c[d])return;o=r.timely>=100?r.timely:500}}i=s.getfield(a),i&&(o?(i._t&&cleartimeout(i._t),i._t=settimeout(function(){s._validate(a,i,n)},o)):s._validate(a,i,n))},_showtip:function(e){var t=this;t.$el[0]===e.target&&t.$el.find(n+"["+r+"]").each(function(){t.showmsg(this,{msg:k(this,r),type:"tip"})})},_validatedfield:function(t,i,n){var s=this,r=s.options,a=n.isvalid=i.isvalid=!!n.isvalid,l=a?"valid":"invalid";n.key=i.key,n.rule=i._r,a?n.type="ok":(s.submiting&&(s.errors[i.key]=n.msg),s.isvalid=!1),i.old.value=t.value,i.old.id=t.id,s.elements[i.key]=n.element=t,s.$el[0].isvalid=a?s.isformvalid():a,x(i[l])&&i[l].call(s,t,n),e(t).attr(f,a?null:!0).removeclass(a?r.invalidclass:r.validclass).addclass(n.skip?"":a?r.validclass:r.invalidclass).trigger(l+_,[n,s]),s.$el.triggerhandler("validation",[n,s]),s.checkonly||(i.msgmaker||r.msgmaker)&&s[n.showok||n.msg?"showmsg":"hidemsg"](t,n,i)},_validatedrule:function(i,n,s,r){n=n||o.getfield(i),r=r||{};var a,l,u,o=this,c=o.options,f=n._r,g=!1;if(null===s)return o._validatedfield(i,n,{isvalid:!0,skip:!0}),t;if(s===!0||s===t||""===s?g=!0:q(s)?a=s:z(s)&&(s.error?a=s.error:(a=s.ok,g=!0)),n.rules&&(l=n.rules[n._i],l.not&&(a=t,g="required"===f||!g),l.or))if(g)for(;n._i "+(g||r.msg||g)),u||g&&n._i=+l&&+u>=e)return!0;d=d.concat(a)}else if(l&&!u){if(c&&e>=+l)return!0;d.push(l),o="gte"}else if(!l&&u){if(c&&+u>=e)return!0;d.push(u),o="lte"}}else{if(e===+l)return!0;d.push(l),o="eq"}return r&&(n&&r[o+n]&&(o+=n),d[0]=r[o]),s.rendermsg.apply(null,d)}},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 q(t)?t:x(t)?t.call(this,e):""},_getmsgopt:function(t){return e.extend({},this.msgopt,q(t)?{msg:t}:t)},_getmsgdom:function(t,i){var n,s,r,a=e(t);if(a.is(":input")?(r=i.target||k(t,s),r&&(r=x(r)?r.call(this,t):this.$el.find(r),r.length&&(r.is(":input")?t=r.get(0):n=r)),n||(s=!f(t)&&t.id?t.id:t.name,n=this.$el.find(i.wrapper+"."+x+'[for="'+s+'"]'))):n=a,!n.length)if(a=this.$el.find(r||t),n=e("<"+i.wrapper+">").attr({"class":x+(i.cls?" "+i.cls:""),style:i.style||"","for":s}),f(t)){var l=a.parent();n.appendto(l.is("label")?l.parent():l)}else n[i.pos&&"right"!==i.pos?"insertbefore":"insertafter"](a);return n},showmsg:function(t,i,n){var s,r=this,a=r.options;if(i=r._getmsgopt(i),(i.msg||i.showok)&&(t=e(t).get(0),e(t).is(n)&&(k(t,e,i.type),n=n||r.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||a.target)),s=(n||{}).msgmaker||a.msgmaker)){var l=r._getmsgdom(t,i),u=l[0].classname;!h.test(u)&&l.addclass(i.cls),g&&"bottom"===i.pos&&(l[0].style.margintop=e(t).outerheight()+"px"),l.html(s.call(r,i))[0].style.display="",x(i.show)&&i.show.call(r,l,i.type)}},hidemsg:function(t,i,n){var s=this,r=s.options;t=e(t).get(0),i=s._getmsgopt(i),e(t).is(n)&&(k(t,e,null),k(t,f,null),n=n||s.getfield(t),n&&(i.wrapper=n.msgwrapper||i.wrapper,i.target=n.target||r.target));var a=s._getmsgdom(t,i);a.length&&(x(i.hide)?i.hide.call(s,a,i.type):a[0].style.display="none")},mapmsg:function(t){var i=this;e.each(t,function(e,t){var n=i.elements[e]||i.$el.find(':input[name="'+e+'"]')[0];i.showmsg(n,t)})},setmsg:function(e){new s(e,this.messages)},setrule:function(t){new n(t,this.rules),e.map(this.fields,function(e){e.old={}})},getfield:function(e){var t,i=this;return 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={};q(e)?i[e]=t:z(e)&&(i=e),this._initfields(i)},isformvalid:function(){var e=this.fields;for(var t in e)if(!e[t].isvalid)return e[t].isvalid;return!0},holdsubmit:function(e){this.submiting=e===t||e},cleanup:function(){this._reset(1)},destroy:function(){this._reset(1),this.$el.off(v).removedata(h),k(this.$el[0],q,this._novalidate)}},e(document).on("focusin",":input["+v+"]",function(e){u(e)}).on("click","input,button",function(e){var t=this,i=t.name;if(t.form)if("submit"===t.type)p=t,null!==k(t,q)&&(m=!0);else if(i&&f(t)){var n=t.form.elements[i];n.length&&(n=n[0]),k(n,v)&&u(e)}}).on("submit validate","form",function(t){if(null===k(this,q)){var i,n=e(this);n.data(h)||(i=n[h]().data(h),e.isemptyobject(i.fields)?(k(this,q,q),n.off(v).removedata(h)):i._submit(t))}}),new n({required:function(t,i){var n=e.trim(t.value),s=!0;if(i)if(1===i.length){if(!n&&!this.test(t,i[0]))return k(t,c,null),null;k(t,c,!0)}else"not"===i[0]&&e.map(i.slice(1),function(t){n===e.trim(t)&&(s=!1)});return s&&!!n},integer:function(e,t){var i,n="0|",s="[1-9]\\d*",r=t?t[0]:"*";switch(r){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+")$",regexp(i).test(e.value)||this.messages.integer[r]},match:function(t,i,n){if(i){var s,r,a,l,u,o,d,c=this,f="eq";if(1===i.length?a=i[0]:(f=i[0],a=i[1]),u="#"===a.charat(0)?a:':input[name="'+a+'"]',o=c.$el.find(u)[0]){if(d=c.getfield(o),s=t.value,r=o.value,n._match||(c.$el.on("valid"+_+v,u,function(){e(t).trigger("validate")}),n._match=d._match=1),!n.required&&""===s&&""===r)return null;if(i[2]&&("date"===i[2]?(s=g(s),r=g(r)):"time"===i[2]&&(s=+s.replace(":",""),r=+r.replace(":",""))),"eq"!==f&&!isnan(+s)&&isnan(+r))return!0;switch(l=c.messages.match[f].replace("{1}",c._getdisplay(t,d.display||a)),f){case"lt":return+r>+s||l;case"lte":return+r>=+s||l;case"gte":return+s>=+r||l;case"gt":return+s>+r||l;case"neq":return s!==r||l;default:return s===r||l}}}},range:function(e,t){return this.getrangemsg(+e.value,t,"range")},checked:function(t,i,n){if(f(t)){var s,r,a=this;return r=a.$el.find('input[name="'+t.name+'"]').filter(function(){var t=this;return!s&&f(t)&&(s=t),!t.disabled&&t.checked&&e(t).is(":visible")}).length,i?a.getrangemsg(r,i,"checked"):!!r||d(s,n,"")||a.messages.required}},length:function(e,t){var i=e.value,n=(t[1]?i.replace(u,"xx"):i).length;return this.getrangemsg(n,t,"length",t[1]?"_2":"")},remote:function(t,i){if(i){var n,s=this,r=l.exec(i[0]),a=r[2],l=(r[1]||"post").touppercase(),u={};return u[t.name]=t.value,i[1]&&e.map(i.slice(1),function(t){var i,n=t.split(":");t=e.trim(n[0]),i=e.trim(n[1]||"")||t,u[t]=s.$el.find("#"===i.charat(0)?i:':input[name="'+i+'"]').val()}),u=e.param(u),"post"===l&&(n=a.indexof("?"),-1!==n&&(u+="&"+a.substring(n+1,a.length),a=a.substring(0,n))),e.ajax({url:a,type:l,data:u,cache:!1})}},filter:function(e,t){e.value=e.value.replace(t?regexp("["+t[0]+"]","gm"):p,"")}}),i.config=function(t){e.each(t,function(e,t){"rules"===e?new n(t):"messages"===e?new s(t):z[e]=t})},i.settheme=function(t,i){z(t)?e.each(t,function(e,t){et[e]=t}):q(t)&&z(i)&&(et[t]=i)},e[h]=i}(jquery);