Пример #1
0
/*nolure@vip.qq.com*/define("lib/nojs/mods/form",["lib/jquery/jquery","lib/nojs/ui"],function(require){function getMessage(a,b){return a||form.message[b]||""}var $=require("lib/jquery/jquery"),ui=require("lib/nojs/ui"),form=function(a){this.options=a=config(a),this.button=a.button,this.formSubmit=this.button&&this.button.length?!1:!0;var b=$("string"==typeof a.form?"#"+a.form:a.form);if(this.form=b||this.button&&this.button.closest("form"),this.form&&this.form.length){var c="form"==this.form[0].tagName.toLowerCase();(!this.formSubmit||c)&&(c&&!this.button&&(this.button=this.form.find('[type="submit"]')),this.rules=a.rules,this.item=[],a.showIco=0==a.showIco?!1:a.showIco||!0,a.focusOnError=0==a.focusOnError?!1:!0,this.checkMode=a.checkMode||"submit",this.init())}},config=function(a){var b="function"==typeof form.config?form.config(a):form.config;return $.extend(!0,{},b,a)};return form.prototype={init:function(rules){var i,j,name,_rules=rules||this.rules,T=this;if(this.rules=$.extend(!0,{},_rules),this.item=[],!_rules){var item=this.form.find("[data-rule]");item.each(function(){var rule=eval("({"+$(this).data("rule")+"})"),rules={};this.name&&(T.rules[this.name]=rule)})}for(i in this.rules)if(name=$.trim(i),name.indexOf(" ")>0)for(name=name.split(" "),j=0;j<name.length;j++)T.push(name[j]);else T.push(name);!rules&&this.bind()},push:function(a,b){function c(a,b){a&&(a="function"==typeof a?a.call(b):a,b.data("replace",a))}var c,d=this,e=d.form.find("[name='"+a+"']");if(e.length){b=this.rules[a],c(b.replace,e);var f=d.type(e);("checkbox"!=f&&"radio"!=f||void 0!==b.isNull)&&(d.item.push(e),"input"==f||"textarea"==f?!function(a,b){if(a.off("keyup.validate").on("keyup.validate",function(){$(this).data("state",!1)}),b.$focus&&a.off("focus.validate").on("focus.validate",function(){$(this).data("state")||form.state($(this),"focus",b.$focus,d.options.icoPosition)}),d.formSubmit||"input"!=d.type(a)||a.off("keyup.validate").on("keyup.validate",function(a){$(this).data("state",!1),13==a.keyCode&&d.button.click()}),"password"===a.attr("type")){var e,f,g=b.confirmPas;if(g&&g.name){e=d.form.find("[name='"+g.name+"']"),f="rePas"+ +new Date,a.off("keyup.validate").on("keyup.validate",function(){a.data("state",!1),e.data("state",!1)}),e.off("keyup.validate").on("keyup.validate",function(){e.data("state",!1)}),form.reg[f]=function(b){return a.val()==b?!0:!1};var h=$.extend(!0,{},b,{isNull:"undefined"!=typeof g.isNull?g.isNull:"请填写确认密码"});delete h.confirmPas,h[f]="undefined"!=typeof g.error?g.error:"两次密码输入不一致",c(h.replace,e),e.data("formInit",!0),e.data("rule",h),e.data("state",!1),d.rules[g.name]=h,d.item.push(e)}}}(e,b):("checkbox"==f||"radio"==f)&&(_rule={},_rule.isLength=b.isLength||[],_rule.isLength[0]=_rule.isLength[0]||b.isNull,_rule.isLength[1]=_rule.isLength[1]||{},_rule.isLength[1].min="radio"==f?1:_rule.isLength[1].min||1,b=_rule),e.data("formInit",!0),e.data("rule",b),e.data("state",!1))}},bind:function(){var a,b,c,d=this;if(this.form.submit(function(){return d.submit()}),this.formSubmit||this.button.click(function(){return"form"==d.form[0].tagName.toLowerCase()?d.form.submit():d.submit(),!1}),this.checkMode&&("keyup"==this.checkMode||"blur"==this.checkMode))for(var e=0;e<d.item.length;e++)a=d.item[e],c=this.type(a),"input"==c||"textarea"==c?("keyup"==this.checkMode&&(this.checkMode="keyup blur"),a.on(this.checkMode,function(){m=$(this),clearTimeout(b),b=setTimeout(function(){d.check(m)},90)})):("checkbox"==c||"select"==c)&&a.on("change",function(){d.check($(this))})},type:function(a){if(!a||!a.length)return"text";var b=a[0].tagName.toLowerCase(),c=b;return"input"==b&&("checkbox"==a.attr("type")?c="checkbox":"radio"==a.attr("type")?c="radio":"hidden"==a.attr("type")&&(c="hidden")),c},check:function(a,b,c){var d="string"==typeof a?a:a[0].name;a=this.form.find('[name="'+d+'"]');var e=this.type(a);if(!a.length||a.is(":hidden")&&"hidden"!=e)return!0;a.data("formInit")||this.push(d);var f,g,h,i,j=this,k=c||a.data("rule"),l=!1,m="",n=form.state,o=form.reg;if(!k)return!0;if("checkbox"==e||"radio"==e)return f=a.filter(":checked").length,g=k.isLength,m=getMessage(g[0],"isLength"),h=g[1],o.isLength(f,h,a)?(l=!0,0!==b&&this.options.showIco&&n(a.last(),"error"==this.options.showIco?null:"ok",this.options.icoPosition)):(l=!1,0!==b&&this.options.showIco&&n(a.last(),"error",m,this.options.icoPosition),a.last().focus()),a.data("state",l),l;if(f=a.val(),"undefined"==typeof k.isNull&&("input"==e||"textarea"==e)&&""==f)return a.data("state",!0),!0;if(("input"==e||"textarea"==e)&&1==a.data("state")&&""!=f)return!0;for(var p in k)if(g=k[p],o[p]?("array"==$.type(g)?(m=g[0],h=g[1]):m=g,m="function"==typeof m?m.call(a):m,m=getMessage(m,p),"remote"==p&&(a.data("tip",m),b&&(h.callback=function(){j.submit()})),i="select"==e&&0==f?!1:o[p].call(j,f,h,a),1==i?(l=!0,0!==b&&this.options.showIco&&n(a,"error"==this.options.showIco?null:"ok",null,this.options.icoPosition)):0==i?(0!==b&&this.options.showIco&&n(a,"error",m,this.options.icoPosition),b&&(this.options.focusOnError&&a.focus(),"hidden"==a[0].type&&a.data("replace")&&$(window).scrollTop(a.data("replace").offset().top)),l=!1):"pending"==i&&(0!==b&&this.options.showIco&&n(a,"pending","loading...",this.options.icoPosition),l=!1)):l=!0,0==l)break;return a.data("state",l),0!==b&&this.options.onCheck&&this.options.onCheck.call(this,l),l},verify:function(a){a=a||0;for(var b in this.rules)if(!this.check(b,a))return this.options.onSubmitError&&this.options.onSubmitError.call(this),!1},submit:function(){if(this.state||this.options.onBeforeSubmit&&0==this.options.onBeforeSubmit.call(this))return!1;if(0==this.verify(!0))return!1;this.state=!0;var a=this.options.onSubmit&&this.options.onSubmit.call(this);return this.options.ajaxSubmit?(this.ajaxSubmit(),!1):(this.state=null,a)},reset:function(){var a=this.form[0];this.item.forEach(function(a){a.data("state",null)}),"form"==a.tagName.toLowerCase()?a.reset():this.form.find("input, textarea, select").filter(function(){return"submit"!=this.type&&"button"!=this.type}).val(""),this.form.find("span.nj_f_tip").remove()},ajaxSubmit:function(){var a=this,b=$.extend({url:this.form[0].action,type:"post",dataType:"json",context:this},this.options.ajaxSubmit),c=b.success;b.success=function(b){a.state=null,c&&c.call(this,b)};var d=b.beforeSend;return"function"==typeof d&&0==d()?void(a.state=null):(d&&delete b.beforeSend,b.data=this.form.serialize(),void("jsonp"==b.dataType&&"post"==b.type?form.post(this.form,b):$.ajax(b)))}},form.state=function(a,b,c,d){c=c||"";var e,f,g,h=a;a.data("replace")&&(h=a.data("replace"),d=d||"append"),a.removeClass("error pending"),h.siblings(".nj_f_tip").remove().end().find(".nj_f_tip").remove(),b&&(d=d||"after",("error"==b||"pending"==b)&&a.addClass(b),b="pending"==b?"loading":b,g=a.offset(),e=$('<span class="nj_f_tip"><span class="tip_ico nj_ico n_i_'+b+'">'+(ui.config.iconText[b]||"")+'</span><span class="tip_con">'+c+"</span></span>"),f=e.find("span.tip_ico"),h[d](e),e.addClass("nj_f_"+b))},form.reg={isNull:function(a){return""!=a.replace(/\s/g,"")?!0:!1},isEmail:function(a){var b=/^\w+(?:[-+.']\w+)*@\w+(?:[-.]\w+)*\.\w+(?:[-.]\w+)*$/;return b.test(a)?!0:!1},isQQ:function(a){var b=/^\s*[.0-9]{5,10}\s*$/;return b.test(a)?!0:!1},isUrl:function(a){if("string"!=typeof a)return!1;a=a.split(/[\?#]/)[0];var b=/^(?:http(?:s)?:\/\/)?([\w-]+\.)+[\w-]+(?:\/[\w\W]*)?$/;return b.test(a)?!0:!1},isMobile:function(a){var b=/^(13[0-9]|14[0-9]|15[0-9]|18[0-9])[0-9]{8}$/;return b.test(a)?!0:!1},isTel:function(a){var b=/^\d{2,5}?[-]?\d{5,8}([-]\d{0,1})?$/;return b.test(a)?!0:!1},isTel400:function(a){var b=/^(400)[-]?\d{3}[-]?\d{4}$/;return b.test(a)?!0:!1},isIdcard:function(a){var b=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}(?:\d|[a-zA-Z])$/;return b.test(a)?!0:!1},specialCode:function(a){return/^[\u4e00-\u9fa5\w]*$/.test(a)?!0:!1},isLength:function(a,b){if(b){var c=function(a){for(var b=0,c=0;c<a.length;c++)b+=/[\u4e00-\u9fa5]/.test(a.charAt(c))?2:1;return b},b=b,d="string"==typeof a?c(a):"number"==typeof a?a:0,e=!0;return b.min&&d<b.min&&(e=!1),b.max&&d>b.max&&(e=!1),e}},isNum:function(val,opt){var opt=opt||{},p,test=!isNaN(val);return opt.decimals&&(p=eval("/^-?\\d+(?:\\.\\d{1,"+opt.decimals+"})?$/"),test=p.test(val)),(opt.min||0==opt.min)&&val<opt.min&&(test=!1),(opt.max||0==opt.max)&&val>opt.max&&(test=!1),"int"==opt.type&&-1!=val.indexOf(".")&&(test=!1),val.lastIndexOf(".")==val.length-1&&(test=!1),test},remote:function(a,b,c){var d,e=this;if(b=b||{},b.beforeSend&&0==b.beforeSend(c))return"pending";d=b.data=b.data||{},"function"==typeof b.data&&(d=b.data.call(this)||{}),b.name?d[b.name]=a:d[c.attr("name")]=a;var f=b.success;return $.ajax({url:b.url,type:b.type||"get",data:d,context:b.context,dataType:b.dataType||"json",success:function(a){f&&f(a,c),a&&1==a.state||1==a.status||b.check&&b.check(a)?(c.data("state",!0),form.state(c,"ok",a.info||"",e.options&&e.options.icoPosition),b.callback&&b.callback(),b.callback=null):(c.data("state",!1),form.state(c,"error",a.info||c.data("tip"),e.options&&e.options.icoPosition))}}),"pending"}},form.message={isNull:"不能为空",isEmail:"邮箱格式错误",isQQ:"qq号码格式错误",isUrl:"url格式错误",isMobile:"手机号码格式错误"},form.fill=function(a){a=a||{};var b,c,d,e,f=$(a.form||document.forms[0]),g=a.data;if(f.length&&"object"==$.type(g))for(b in g)c=f.find('[name="'+b+'"]'),c.length&&(d=c[0].type,e=g[b],"text"==d||"hidden"==d||"textarea"==d||"select-one"==d&&"string"==typeof e?c.val(e):"radio"==d?c.filter('[value="'+e+'"]').attr("checked","checked"):"checkbox"==d&&"array"==$.type(e)&&$.each(e,function(a,b){c.filter('[value="'+b+'"]').click()}))},form.parse=function(a,b){if(a&&a.length){var c,d=a.find("form"),e="form"==a[0].tagName.toLowerCase()?a:d.length?d:null;if(b=b||"string",e)c=e.serialize();else for(var f=a.find("input,textarea,select,button"),g=0,h=f.length,c={};h>g;g++)f[g].name&&(c[f[g].name]=f[g].value);return c}},form.post=function(a,b){b=b||{};var c="iframe_"+ +new Date,d=$('<iframe src="" name="'+c+'" style="display:none"></iframe>').appendTo(document.body),e="jsoncallback_"+ +new Date;a&&a.length&&(a[0].target=c,a[0].action=a[0].action.split("?")[0]+"?jsoncallback="+e,window[e]=function(a){b.complete&&b.complete.call(b,a),b.success&&b.success.call(b,a),delete window[e],d.remove(),d=null},b.beforeSend&&b.beforeSend.call(b),a[0].submit())},form});
Пример #2
0
/*nolure@vip.qq.com*/define("docs/demo",["lib/jquery/jquery","./url","./index","lib/nojs/ui","./menu","../lib/nojs/mods/tree","./key","../lib/nojs/mods/Switch"],function(require){function a(){b=c(['<div id="demo_content" class=""><div class="d_wrap">','<div class="d_close nj_ico n_i_close">×</div>','<div class="d_content clearfix"></div>',"</div></div>"].join("")).appendTo(f.$wrap),b.find("div.d_close").click(function(){a.hide()}),a.$content=b.find("div.d_content")}var b,c=require("lib/jquery/jquery"),d=require("./url"),e=d.setUrl,f=require("./index"),g=require("../lib/nojs/mods/Switch");return a.show=function(c){window.demoAction&&(c=c||0,!b&&a(),f.$wrap.addClass("demo_wrap"),setTimeout(function(){b.addClass("d_open")},200),a.tab?a.tab.change(c):a.render(c),a.isOpen=1)},a.hide=function(){f.$wrap.removeClass("demo_wrap"),b.removeClass("d_open"),a.isOpen=null,e("demo",null)},a.render=function(b){for(var c=window.demoAction.item,d={menu:"",content:""},f=0,h=c.length;h>f;f++)d.menu+='<li class="nj_s_m">demo'+(f+1)+"</li>",d.content+='<div class="nj_s_c">'+c[f].content+"</div>";d.menu='<ul class="nj_s_menu demo_tab clearfix">'+d.menu+"</ul>",d.content='<div class="nj_s_con clearfix">'+d.content+"</div>",a.$content.html((window.demoAction.html||"")+d.menu+d.content),a.tab=new g.tab(a.$content,{mode:"click",firstIndex:b,onChange:function(b){a.index=b,c[b].callback&&(c[b].callback(),delete c[b].callback),window.demoAction.onChange&&window.demoAction.onChange(b),e("demo",b)}})},a.destroy=function(){b&&a.$content.empty(),window.demoAction=a.tab=null},d.onHashChange.push(function(b,c){var d=c.key,f=e("demo");"demo"==d&&(f?a.isOpen?a.tab&&f!=a.index&&a.tab.change(f):a.show():a.hide())}),f.$wrap.delegate("a[data-action]","click",function(){var b=c(this).data("action");return"demo"==b&&a.show(c(this).data("index")),!1}),a}),define("docs/url",["lib/jquery/jquery"],function(require){function a(c,e){var f,g,h=location.hash.replace(/^#/,"").split("&"),i={},j="object"==d.type(c);for(c=c||"id",f=0;f<h.length;f++)h[f]&&(g=h[f].split("="),i[g[0]]=g[1]);if(j)return void a.group(d.extend({},i,c));if(e==i[c])return i[c];if(null===e)delete i[c];else{if(void 0===e)return i[c]=i[c]&&decodeURIComponent(i[c]),i[c]&&decodeURIComponent(i[c]);i[c]=e&&encodeURIComponent(e),i[c]=encodeURIComponent(i[c])}h=[];for(f in i)h.push(f+"="+i[f]);a.call&&a.call(),b(h.join("&"))}function b(a){f&&(g.document.getElementById(a)||h.append('<a id="'+a+'" style="display:block;width:1px;height:1px"></a>'),i.href="#"+a,i.click()),location.hash=a}function c(a){var b,d,e=c.hash(a.newURL),f=c.hash(a.oldURL);for(d in e)if(e[d]!=f[d]){b=d;break}if(!b)for(d in f)if(e[d]!=f[d]){b=d;break}return b}var d=require("lib/jquery/jquery"),e={},f=d.browser.ie&&parseFloat(d.browser.version)<8;if(f){var g,h=d('<iframe id="hashIframe" name="hashIframe" style="display:none;position:absolute"></iframe><a target="hashIframe"></a>').appendTo(document.body),i=h[1];g=h[0].contentWindow,h=g.document,h.open(),h.write('<a href="" style="display:block;width:100px;height:500px"></a>'),h.close(),h=d(h.body),h.css({height:"1px",overflow:"scroll"})}if(e.onHashChange=[],a.group=function(c){var d=[];for(var e in c)c[e]&&d.push(e+"="+c[e]);d=d.join("&"),"#"+d!=location.hash&&(a.call&&a.call(),b(d))},e.setUrl=a,c.hash=function(a){var b,c,d={},e=0;if(!a)return d;for(b=a.split("#")[1],b=b?b.split("&"):[];e<b.length;e++)c=b[e].split("="),d[c[0]]=c[1];return d},e.getChange=c,"undefined"!=typeof onhashchange){var j,k,l,m=e.onHashChange,n=location.href,o=function(b){for(b=b||window.event,b.oldURL=b.oldURL||n,b.newURL=b.newURL||location.href,n=b.newURL,k=m.length,l={},l.id=a(),l.key=c(b),j=0;k>j;j++)m[j](b,l)};f?d(g).on("scroll",function(a){o(a)}):window.onhashchange=o}return e}),define("docs/index",["lib/jquery/jquery","lib/nojs/ui","docs/menu","docs/url","lib/nojs/mods/tree","docs/key"],function(require){var a=require("lib/jquery/jquery"),b=require("lib/nojs/ui"),c={},d=require("docs/menu"),e=require("docs/url"),f=e.setUrl,g=require("docs/key"),h=a("html");return g.methods[70]=function(){var b=a.localStorage.get("fullpage");a.localStorage.set("fullpage",1==b?0:1),h[0==b?"addClass":"removeClass"]("page_full")},(1==a.localStorage.get("fullpage")||b.mobile)&&h.addClass("page_full"),c={$wrap:a("#main_content"),$content:a("#iframe_content"),beforeSend:function(){c.options.beforeSend&&c.options.beforeSend()},complete:function(a){c.data=a,c.options.complete&&c.options.complete()},$menu:a("#side_menu"),menu:d},b.config({overlay:{insertTo:c.$content},msg:{insertTo:"body"}}),c.jump=function(a){f("url",a)},c.$wrap.click(function(b){var e,f,g=b.target;if("a"==g.tagName.toLowerCase()){if(f=a(g).attr("data-act"),"jump"==f)return c.jump(a(g).attr("href")),!1;e=a(g).attr("data-treeid");var h,i=d.items.length;if(e&&i){for(var j=0;i>j;j++)if(h=d.items[j],h.data.all[e]){h.select(e);break}return!1}}}).delegate('[data-act="jumps"] a',"click",function(b){return c.jump(a(b.target).attr("href")),!1}),a("#ui_page").show(),c.init=function(a){c.options=a||{},d.init(c)},b.touch(function(){c.$wrap.swipeRight(function(){c.$menu.css("left","0")}).swipeLeft(function(){c.$menu.css("left","-250px")})}),c}),define("docs/menu",["lib/jquery/jquery","lib/nojs/ui","docs/url","lib/nojs/mods/tree"],function(require){function a(a){var b=a.link,c=a[g.key.id];if(b){var f=i("url"),h=this.box[0].id,j=(h.substring(h.indexOf("_")+1,h.length),f||b),l=document.title,m={title:a.name,url:j};l=l.indexOf(" - ")>-1?l.split(" - ")[1]:l,d.beforeSend&&d.beforeSend(m),document.title=a.name+" - "+l,this.box.siblings(".nj_tree").find("a.current").removeClass("current"),k.load(m,a),e.localStorage.set("lastNode",c)}}function b(){function a(a){for(var b in a)c(b,a[b])}var b=d.options.menu;"string"==typeof b?e.getJSON(b,a):a(b)}function c(a,b){var c,d,f=b.data;if("true"!=b.disable&&f){d="menu_"+a,c=e('<div id="'+d+'" class="nj_tree"></div>'),h.append(c),c.data("id",a);var i=new g(d,{data:f,onSelect:l.onSelect,defaultNode:l.defaultNode});k.items.push(i)}}var d,e=require("lib/jquery/jquery"),f=(require("lib/nojs/ui"),require("docs/url")),g=require("lib/nojs/mods/tree"),h=e("#side_menu"),i=f.setUrl,j=0,k={items:[]};f.onHashChange.push(function(a,b){var c,d=b.id,e=b.key;if(d&&("id"==e||"url"==e)&&k.items.length)for(var f=0;f<k.items.length;f++)if(c=k.items[f],c.data.all[d]){j=2,c.select(d),j=1;break}});var l={onSelect:function(b){if(!j&&i())return a.call(this,b),void(j=1);if(2==j)a.call(this,b);else{var c={id:b[g.key.id]};j&&(c.url=null),i(c),j=1}}};return k.load=function(a,b){function c(b){d.$content.html(b),d.complete&&d.complete(a)}return a=a||d.data,b&&b.content?void setTimeout(function(){c(b.content)},1):void e.ajax({url:a.url,type:"get",dataType:"html",headers:{noAjax:!0},success:c})},k.init=function(a){d=a,l.defaultNode=i()||d.options.defaultNode,d.options.treeKey&&(g.key=d.options.treeKey),b()},k}),define("lib/nojs/mods/tree",["lib/jquery/jquery"],function(require){function a(c,d){+new Date;this.box="string"==typeof c?b("#"+c):c,this.options=d=d||{},this._data=d.data,this.ajaxMode="string"==typeof this._data,a.key=b.extend({id:"id",name:"name",parent:"parent",children:"children",open:"open",link:"link"},a.key);var e=d.formatData,f="object"==b.type(e)&&"object"==b.type(e.all)&&"array"==b.type(e.level);if(d.formatData&&!function(){var a,b,c,d=e.all,f=e.level,g=f.length;for(a in d)d[a].init=1;for(a=0;g>a;a++)for(c=f[a],b=0;b<c.length;b++)c[b].init=1}(),this.data=f?e:this.ajaxMode?null:a.format(this._data),this.box.length&&(this.ajaxMode||this.data.level.length))if(this.max=d.max||a.max,this.relationChildren=0==this.options.relationChildren?!1:!0,this.relationParent=0==this.options.relationParent?!1:!0,this.radio=this.options.radio,this.ajaxMode){var g=this;this.data?this.init(null,!0,!0):a.ajax({url:this._data,tree:this,success:function(a){g.init(null,!0,!0),g.options.ajaxSuccess&&g.options.ajaxSuccess.call(g,a)}})}else this.init(null,!0,!0)}var b=require("lib/jquery/jquery");return a.key={},a.max=50,a.rootID=-1,a.ajax=function(c){c=c||{};var d=c.data,e=c.url,f=d&&d[a.key.parent];-1!=e.indexOf("?")||d||(e+="?"+a.key.parent+"="+a.rootID,f=a.rootID),b.getJSON(e,d,function(b){if(1==b.status){var d=c.tree,e=b.data;if(e&&void 0!=f){var g,h=a.key.parent;for(g=0;g<e.length;g++)e[g][h]=f}d&&e&&(d.data=a.format(e,d.data)),c.success&&c.success(e)}})},a.format=function(c,d){function e(b,c){var l,m,n,o,p,q=b.length,r=0;for(i++,l=0;q>l;l++)if(n=b[l],o=n[j.id],r++,void 0!=o&&!k[o]){if(k[o]=n,p=n[j.parent],p==a.rootID)n.level=c=0,n[f]=[];else{if(n[f]=[],!k[p]){delete k[o],r--;continue}if(k[p][f]=k[p][f]||[],k[p][f].push(o),d&&h[c])for(m=0;m<h[c].length;m++)if(h[c][m][j.id]==p){h[c][m][f]=[].concat(k[p][f]);break}n.level=c=k[p].level+1}h[c]=h[c]||[],h[c].push(k[o])}2==g&&q>r&&3>i&&e(b)}var f,g=b.type(c),h=d&&d.level?d.level:[],i=0,j=a.key,k=d&&d.all?d.all:{};return"array"==g&&c.length&&"object"==b.type(c[0])?(f=j.children,g=void 0==c[0][j.parent]?1:2,e(c,0),{all:k,level:h}):{all:k,level:h}},a.parents=function(b,c,d){var e,f=a.key.parent,g=a.key.id,h=[];if(c=c||{},b=c[b],!b)return h;for(e=b[f];(e=c[e])&&(!d||!d(e));e=e[f])h.push(e[g]);return h},a.prototype={init:function(c,d,e){var f,g,h,i,j,k,l,m,n=this,o=a.key.link,p=a.key.id,q=a.key.open,r=a.key.name,s=(a.key.parent,a.key.children),t=void 0!=c&&c!=a.rootID,u=this.data.all,v=t?u[c].level+1:0,w=t?u[c][s]:this.data.level[v],x=this.options.isCheck,y=this.ajaxMode&&this.options.level&&this.options.level-1==v,z="";t&&(u[c].init=2);{if(w.length){if(w["break"]=w["break"]||0,j="",v)for(g=0;v>g;g++)j+='<i class="line"></i>';for(f=w["break"];f<w.length;f++){if(f>=n.max+w["break"]){w["break"]+=n.max,z+='<li class="no_child more"><a href="" id="more_'+(t?c:a.rootID)+"_"+v+'" class="item" pid="'+(t?c:a.rootID)+'" data-action="more">'+j+'<i class="ico last_ico"></i><i class="folder"></i>more</a></li>';break}h=w[f],h=t?u[h]:h,k=h[p],h.init=h.init||1,z+='<li level="'+v+'">',i=h[o]?h[o]:"javascript:void(0)",l="undefined"!=typeof h[q]?'open="'+h[q]+'"':"",m=x?'<input type="checkbox" value="'+k+'" />':"",y=!h[s].length,this.ajaxMode&&(y=null,this.options.level&&this.options.level-1==v&&(y=!0),this.options.formatData&&h.ajax&&(y=!h[s].length)),z+='<a class="item'+(y?" no_child":"")+'" href="'+i+'" reallink="'+i+'" id="'+k+'" '+l+">"+j+'<i class="ico"></i>'+m+'<i class="folder"></i><span class="text">'+h[r]+"</span></a>",y||(1==h[q]||n.options.openAll?(z+='<ul data-init="true">',z+=this.init(k,!1)):z+="<ul>",z+="</ul>"),z+="</li>"}if(d){var A,B=this.box;t?(B=b(z),A=this.box.find("#"+c),A.next("ul").data("init",!0).append(B),this.addClass(A.parent())):(this.rootWrap||(this.rootWrap=b("<ul></ul>"),B.html(this.rootWrap),this.bind()),this.rootWrap.append(z),this.addClass(B,!0)),this.replaceLink(B),function(a){var b=a.find("a.item").not(".no_child");n.options.openAll&&(a.find("ul ul").show(),b.addClass("open")),b.filter(function(){return"0"==this.getAttribute("open")}).removeClass("open").next("ul").hide(),b.filter(function(){return"1"==this.getAttribute("open")}).addClass("open").next("ul").show()}(B),!this.selected&&e&&this.select(this.options.defaultNode)}return z}if(this.ajaxMode){var C=b("#"+u[c][p]);C.addClass("no_child").next("ul").remove(),C.find(".last_ico1").length&&C.find(".last_ico1").addClass("last_ico").removeClass("last_ico1")}}},bind:function(){var c,d,e,f,g=this,h=this.options.radio;this.box.off("click.tree").on("click.tree",function(i){if(f=i.target,c=b(f),d=c.parent(),"more"==c.attr("data-action")||"more"==d.attr("data-action"))c="more"==d.attr("data-action")?d:c,g.init(c.attr("pid"),!0),c.parent().remove();else if(c.hasClass("ico")&&!c.parent().hasClass("no_child"))if(c=c.parent(".item"),e=c.next("ul"),c.hasClass("open"))e&&e.is(":visible")&&e.hide(),c.removeClass("open");else{var j=c[0].id,k=g.ajaxMode,l={};2!=g.data.all[j].init&&(g.options.formatData&&g.options.formatData.all[j]&&g.options.formatData.all[j].ajax&&(k=null),l[a.key.parent]=j,k?a.ajax({url:g._data,data:l,tree:g,success:function(a){g.init(j,!0),g.data.all[j].ajax=1,g.options.ajaxSuccess&&g.options.ajaxSuccess.call(g,a,g.data.all[j])}}):g.init(j,!0)),e&&e.is(":hidden")&&e.show(),c.addClass("open")}else if(c.hasClass("folder")||c.hasClass("item")||c.hasClass("text")||c.hasClass("line")||c.hasClass("ico")){if(!g.options.onSelect)return!1;c.hasClass("item")||(c=c.parent()),g.selected==c[0].id,g.box.find("a.current").removeClass("current"),c.addClass("current"),g.options.onSelect&&g.options.onSelect.call(g,g.data.all[c[0].id]),g.selected=c[0].id}else if("input"==f.tagName.toLowerCase()&&"checkbox"==f.type){var m,n,o=c.closest("a.item").next("ul").find("input"),p=c.parents("ul");if(f.checked){if(g.options.onCheckBefore&&!g.options.onCheckBefore.call(g,g.data.all[f.value]))return!1;h&&c.closest("ul").find("input").not(f).attr("checked",!1),g.relationChildren&&o.attr("checked","checked");for(var m=0;m<p.length;m++)n=p.eq(m),(!n.find("input").not(":checked").length||h)&&g.relationParent&&n.prev("a.item").find("input").attr("checked","checked")}else g.relationChildren&&o.attr("checked",!1),g.relationParent&&p.prev("a.item").find("input").attr("checked",!1);return g.getChecked(),g.options.onCheck&&!g.options.onCheck.call(g,g.data.all[f.value],f),!0}return!1})},getChecked:function(){var a=this.box.find("input:checked");this.checked=a.length?function(){var b=[];return a.each(function(){b.push(this.value)}),b}():null},addClass:function(a,b){a=a||this.box;var c,d,e,f,g,h,i,j,k=a.find("a.item"),l=k.length;for(b&&k.eq(0).find(".ico").addClass("first_ico"),c=0;l>c;c++)if(g=k.eq(c),i=g.closest("li"),g.next("ul").length)for(!i.next().length&&g.find(".ico").addClass("last_ico1"),j=i.attr("level"),d=0;d<i.find("li").length;d++)for(h=i.find("li").eq(d).find(".line"),!i.next().length&&h.eq(j).addClass("last_line"),e=g.find(".last_line"),f=0;f<e.length;f++)h.eq(e.eq(f).index()).addClass("last_line");else!this.ajaxMode&&g.addClass("no_child"),i.next().length||g.find(".ico").addClass("last_ico")},select:function(c,d){function e(){return j.addClass("current"),i.options.onSelect&&i.options.onSelect.call(i,i.data.all[c]),i.selected=c,!1}function f(a){0>a||(n=o.eq(a),n.show().siblings("a.item").addClass("open"),f(--a))}if(c){d=d||"id";var g,h,i=this,j=this.box.find("a["+d+'="'+c+'"]').eq(0),k=this.data.all,l=a.key.parent,m=[];if(k[c]){if(!j||!j.length){if(m=a.parents(c,this.data.all,function(a){return 2==a.init}),m.length){for(g=m.length-1;g>=0;g--){for(h=k[m[g]];!h.init;)b("#more_"+h[l]+"_"+h.level).click();b("#"+m[g]).find("i.ico").click()}m=b("#"+m[0]).next()}else m=b("#"+k[c][l]).next();if(j=m.find("a["+d+'="'+c+'"]').eq(0),!j.length){for(;!k[c].init;)b("#more_"+k[c][l]+"_"+k[c].level).click();j=m.find("a["+d+'="'+c+'"]').eq(0)}}if(this.box.find("a.current").removeClass("current"),j.parents("ul").first().is(":visible"))return e();var n,o=j.parents("ul").not(":visible"),p=o.length;f(p-1),e()}}},check:function(a,c){function d(a){a&&f.data.all[a]&&(c=0==c?!1:!0,e=b("#"+a).find("input")[0],c?!e.checked&&e.click():e.checked&&e.click(),f.getChecked())}var e,f=this;"number"==typeof a||"string"==typeof a?d(a):b.each(a,function(a,b){d(b)})},open:function(a){var c;a&&this.data.all[a]&&(this.data.all[a].init="pending",c=b("#"+a),!c.hasClass("open")&&c.find(".ico").click())},replaceLink:function(a){if(b.browser.ie&&parseFloat(b.browser.version)<8){a=a||this.box;var c=a.find("a");c.each(function(){this.href=this.getAttribute("reallink",2),this.removeAttribute("reallink")})}}},a.select=function(c,d){function e(a,b){var c,d,e="";if(a&&a.length)for(c in a)d=a[c],d="string"==typeof d?m.all[d]:d,e+=g(d,b);return e}function f(a){var b,c="--";for(b=0;a>b;b++)c+="--";return c}function g(a,b){var c=d.disable&&d.disable.indexOf(a[s])>-1?'disabled="disabled"':"";return"<option "+c+' value="'+(void 0!=a[s]?a[s]:"")+'">'+(o?f(a.level):"")+a[t]+"</option>"+(o?e(a[v],b):"")}function h(f){var g,h=0,i="",l=f?m.all[f][v]:q[h],p=0==h&&o;if(l&&l.length||p){f&&(m.all[f].init=1),h=f?m.all[f].level+1:0,g=d.name?d.name[h]:"",i='<select name="'+g+'">',i+=p?'<option value="'+a.rootID+'">根目录</option>':k,i+=e(l,h),i+="</select>",i=b(i),void 0!=n[h]&&(i[0].value=n[h],n[h]=null),c.append(i),x[h]=i[0];var r={};return r[w.event]=function(){j(this,h)},r.value=i.val(),w.init?x[h]=w.init(i,r):(i[0][w.event]=r[w.event],r.value&&j(i[0],h)),!d.value&&d.level&&h+1<d.level,i}}function i(b,c){function e(){q=m.level,c?c():h()}var f=b&&b[u];return l&&(!f||f&&m.all[f].ajax)?void e():void a.ajax({url:d.data,data:b,success:function(b){f&&(m.all[f].ajax=1),b&&b.length&&(m=a.format(b,m),e()),d.ajaxSuccess&&d.ajaxSuccess(b,f,m)}})}function j(a,c){var e=a[w.value],f={},g="select"==w.element?b(a):a[w.element];f[u]=e,d.onSelect&&d.onSelect(e,m),g.nextAll(g).remove(),e!=r&&m.all[e]&&(o||d.level&&c+1>=d.level||(p&&!m.all[e].init?i(f,function(){h(e)}):h(e)))}d=d||{},a.key=b.extend({id:"id",name:"name",parent:"parent",children:"children",open:"open",link:"link"},a.key);var k,l=d.formatData,m=l?l:"string"==typeof d.data?{}:a.format(d.data),n=[].concat(d.select),o=0==d.level,p="string"==typeof d.data,q=p?[]:m.level,r=void 0!=d.empty?d.empty:"",s=a.key.id,t=a.key.name,u=a.key.parent,v=a.key.children,w=b.extend(!0,{event:"onchange",value:"value",element:"select",destroy:"destroy"},d.ui),x=[];return c&&c.length&&q?(k='<option value="'+r+'">请选择</option>',h.empty=function(a){var b=d.name?d.name[a]:"",e='<select name="'+b+'">'+k+"</select>";c.append(e)},h.bind=function(){},p?i():h(),{select:function(a){"array"==b.type(a)&&a.length&&(n=a,c.empty(),h())}}):void 0},a}),define("docs/key",["lib/jquery/jquery"],function(require){var a,b=require("lib/jquery/jquery"),c={};return c.methods={},b(document).keydown(function(b){var d=b.keyCode,e=b.target.tagName.toLowerCase();if(a=a||17==d||18==d||16==d,!a&&"input"!=e&&"textarea"!=e&&"true"!=b.target.contentEditable)for(var f in c.methods)f==d&&c.methods[f]()}).keyup(function(){a=null}),c}),define("lib/nojs/mods/Switch",["lib/jquery/jquery","lib/nojs/ui"],function(require){function a(b,c){return this instanceof a?void((this.element=d.dom(b))&&(this.menu=this.element.find(".nj_s_menu").first(),this.menuItem=this.menu.find(".nj_s_m"),this.wrap=this.element.find(".nj_s_con").first(),this.item=this.wrap.children(".nj_s_c"),this.length=this.item.length,this.length&&(this.options=c=c||{},this.mode=c.mode||d.config.eventType,this.onChange=c.onChange,this.onHide=c.onHide,this.index=this.getIndex(c.firstIndex),this.rule=c.rule||this.rule,this.options.start=this.options.start===!1?!1:!0,this.bind()))):new a(b,c)}function b(a,c){if(b.baseConstructor.call(this,a,c),this.element){this.play=null,this.time=this.options.time||5e3,this.auto=this.options.auto===!1?!1:!0,this.stopOnHover=this.options.stopOnHover===!1?!1:!0;var d=this;this.stopOnHover&&this.element.hover(function(){d.play=clearInterval(d.play)},function(){d.start()}),this.getNum(),this.options.start&&this.start(!0)}}var c=require("lib/jquery/jquery"),d=require("lib/nojs/ui");return a.prototype={bind:function(){var a,b,d=this,e="mouseover"==this.mode?100:0;this.menuItem&&(this.menuItem.on(this.mode+".nj_switch",function(){return b=c(this),b.hasClass("current")?!1:(d.onTrigger&&d.onTrigger(),a=setTimeout(function(){d.change(d.menuItem.index(b))},e),!1)}).mouseout(function(){a=clearTimeout(a)}),this.options.start&&this.change(this.index))},getIndex:function(a){return a=parseInt(a)||0,a=a>this.length-1?0:a,a=0>a?this.length-1:a},change:function(a){if(a=this.getIndex(a),this.rule){if(this.rule.call(this,a)===!1)return!1}else this.item.eq(a).show().siblings().hide(),this.menuItem.eq(a).addClass("current").siblings().removeClass("current");this.onHide&&this.index!=a&&this.onHide.call(this,this.index),this.index=a,this.onChange&&this.onChange.call(this,a)}},d.extend(b,a),b.prototype.getNum=function(){if(!this.menu.children().length){for(var a="",b=1;b<=this.length;b++)a+='<li class="nj_s_m">'+b+"</li>";this.menu.append(a),this.menuItem=this.menu.find(".nj_s_m"),this.bind()}},b.prototype.onTrigger=function(){!this.stopOnHover&&this.start()},b.prototype.rule=function(a){this.item.eq(a).fadeIn(400).siblings().hide(),this.menuItem.eq(a).addClass("current").siblings().removeClass("current"),this.index=a},b.prototype.start=function(a){var b=this;!this.auto||this.length<2||(a&&this.change(this.index),clearInterval(b.play),b.play=setInterval(function(){b.change(++b.index)},b.time))},{tab:a,slide:b}});