/******************************************************************************* 阿赖目录树控件程序 由赖国欣设计于2003年6月,保留所有权利! *********************************************************************************/ function alai_imagelist() {try{ var item=[] count=0 this.path="" this.type="gif" this.err="" iml=this this.copywrite="Copywrite by Alai(赖国欣) (c)2003,All right reserved!" this.add=function(src,key) { var img=new Image() if(src==null || src=="")return if(src.indexOf("/")==-1)src=iml.path+src if(!(/\.gif$|\.jpg$|\.png$|\.bmp$/i).test(src))src+="."+iml.type if(key==null || key=="")key=src.replace(/(.*\/){0,}([^\.]+).*/ig,"$2") item[count]=img;img.index=count;item[key]=img;count++; img.onerror=function() { alert("alai_imagelist cause run time error:\nImage file "+img.src+" not found!") item[img.index]=null;item[key]=null;count--; } img.src=src return img } this.item=item this.count=function(){return count;} } catch(e){ iml.err="alai_imagelist cause run time error!\nError number:"+e.number+".\nError description:"+e.description; iml.err+="\n -- \nYou can send the case and error description message to A@lai.com.cn for support.Please visit http://www.9499.net to get the last release!" alert(iml.err); return iml; } } function alai_tree(imageList,indent,toObject,labelStyle) {try{ if(!document.getElementById){throw new Error(999,"Your browser dosen't support Alai_tree(),IE5.0+ is recommended.");} var count=0,depth=0,nodes=[],tree=this this.copywrite="Copywrite by Alai(赖国欣) (c)2003,All right reserved!" this.err="" imageList=imageList==null?new alai_imagelist():imageList var icons=imageList.item this.imageList=imageList if(icons["default"]!=null){if(icons["link"]==null)icons["link"]=icons["default"]} var showExpand=icons["expand"]!=null && icons["collapse"]!=null if(showExpand) { if(icons["expand_top"]==null)icons["expand_top"]=icons["expand"] if(icons["expand_end"]==null)icons["expand_end"]=icons["expand"] if(icons["collapse_top"]==null)icons["collapse_top"]=icons["collapse"] if(icons["collapse_end"]==null)icons["collapse_end"]=icons["collapse"] } var showBranch=icons["leaf"]!=null && icons["twig"]!=null var showLine=icons["line"]!=null && icons["blank"]!=null var root={} root.children=[] root.expanded=true; root.getTier=function(){return 0;} var selectedNode=null,activeNode=null; Array.prototype.remove=function(index){if(index<0 || index>=this.length)return;for(var i=index;i=0?indent:16;nbody.style.textIndent=indent*(tier-1) } var icon=new Image() ico=ico==null||ico==""?"default":ico if(typeof(ico)=="string")if(ico.toLowerCase().indexOf(".gif")!=-1 || ico.toLowerCase().indexOf(".jpg")!=-1){ico=imageList.add(ico).index;} if(icons[ico]!=null) { icon.src=icons[ico].src nbody.insertAdjacentElement("afterBegin",icon) } label.innerHTML=text label.style.cssText=labelStyle!=null?labelStyle:"padding:1;margin-left:2;vertical-align:middle;text-align:left;" with(label) { onclick=function(){run(node.select);if(run(node.onclick))if(run(tree.onclick,node))run(node.execute);} ondblclick=function(){if(run(node.ondblclick))run(tree.ondblclick,node)} onmouseover=function(){if(event.fromElement!=node.icon)if(run(node.onmouseover))run(tree.onmouseover,node)} onmouseout=function(){if(event.toElement!=node.icon)if(run(node.onmouseout))run(tree.onmouseout,node);} onmousemove=function(){if(run(node.onmousemove))run(tree.onmousemove,node)} onmousedown=function(){if(run(node.onmousedown))run(tree.onmousedown,node)} onmouseup=function(){if(run(node.onmouseup))run(tree.onmouseup,node)} onkeypress=function(){if(run(node.onkeypress))run(tree.onkeypress,node)} onkeydown=function(){if(run(node.onkeydown)){if(run(tree.onkeydown,node))doKeyDown(node);}} onkeyup=function(){if(run(node.onkeyup))run(tree.onkeyup,node)} onfocus=function(){if(run(node.onfocus)){if(run(tree.onfocus,node))doFocus(node);}} onblur=function(){if(run(node.onblur)){if(run(tree.onblur,node))doBlur(node);}} } with(icon) { onclick=function(){run(node.select);if(run(node.onclick))if(run(tree.onclick,node))run(node.execute);} ondblclick=function(){if(run(node.ondblclick))run(tree.ondblclick,node)} onmouseover=function(){if(event.fromElement!=node.icon)if(run(node.onmouseover))run(tree.onmouseover,node)} onmouseout=function(){if(event.toElement!=node.icon)if(run(node.onmouseout))run(tree.onmouseout,node);} onmousemove=function(){if(run(node.onmousemove))run(tree.onmousemove,node)} onmousedown=function(){if(run(node.onmousedown))run(tree.onmousedown,node)} onmouseup=function(){if(run(node.onmouseup))run(tree.onmouseup,node)} onkeypress=function(){if(run(node.onkeypress))run(tree.onkeypress,node)} onkeydown=function(){if(run(node.onkeydown)){if(run(tree.onkeydown,node))doKeyDown(node);}} onkeyup=function(){if(run(node.onkeyup))run(tree.onkeyup,node)} onfocus=function(){if(run(node.onfocus)){if(run(tree.onfocus,node))doFocus(node);}} onblur=function(){if(run(node.onblur)){if(run(tree.onblur,node))doBlur(node);}} } nbody.onblur=function(){if(node.onfocus()){if(tree.onfocus(node))doFocus(node);}} nbody.onfocus=function(){if(node.onblur()){if(tree.onblur(node))doBlur(node);}} icon.tabIndex=label.tabIndex=1;icon.hideFocus=true; node.onclick=node.ondblclick=node.onmouseover=node.onmouseout=node.onmousemove=node.onmousedown=node.onmouseup=node.onkeypress=node.onkeydown=node.onkeyup=node.oncollapse=node.onexpand=node.onfocus=node.onblur=node.onselect=new Function("return true"); node.click=function(){node.label.click();} node.focus=function(){node.label.focus();} node.blur=function(){node.icon.blur();node.label.blur();} node.select=function(){if(node.onselect()){if(tree.onselect(node))doSelect(node);}} node.body=nbody node.container=container node.exIcon=null if(showBranch){node.exIcon=new Image();nbody.insertAdjacentElement("afterBegin",node.exIcon);} node.lineIcon=[] if(showLine) { for(var i=tier-2;i>=0;i--){var img=new Image();img.src=icons["blank"].src;nbody.insertAdjacentElement("afterBegin",img);node.lineIcon[i]=img;} if(node.prev!=null)setLine(node.prev,tier-1) var n=node.parent;var i=tier-2;while(n!=root){if(n.next!=null)node.lineIcon[i].src=icons["line"].src;n=n.parent;i--} } if(showBranch){setExIcon(node);if(node.prev!=null)setExIcon(node.prev);if(node.next!=null)setExIcon(node.next);} var ma=node.parent;if(ma!=root){if(ma.exIcon==null && showExpand){ma.exIcon=new Image();var o=ma.icon.src==""?ma.label:ma.icon;o.insertAdjacentElement("beforeBegin",ma.exIcon);}setExIcon(ma);if(ma.exIcon){ma.exIcon.onmousedown=function(){ma.expand();}}} if(showExpand & !showBranch){icon.style.marginLeft=icons["expand"].width} node.label=label node.icon=icon node.add=function(text,ico,exeType,exeArg){return addNode(this,"last",text,"",ico,exeType,exeArg);} node.addLink=function(_url,text,target,img){if(text==null||text=="")text=_url;var exeArg="url";if(target!=null&&target!="")exeArg+=":"+target;if((img==null||img==""))img="link";return addNode(node,"last",text,"",img,exeArg,_url)} node.expanded=true node.expand=function(isShow,incSub) { if(node.children.length==0)return; if(isShow==null)node.expanded=!node.expanded;else node.expanded=isShow; incSub=incSub==null?false:incSub var sh=node.expanded?"block":"none" for(var i=0;i0;i--){path=separator+oNode.label.innerText+path;oNode=oNode.parent;}return path;} node.getSibling=function(){return node.parent.children}; node.getTier=function(){return tier;} node.getIndex=function(){for(var i=0;i=0;i--)if((nodes[i].getPath()+"/")==path)return nodes[i];return null;} this.testPath=function(path){if(path==null||path=="")return false;if(path=="/")return true;if(path.lastIndexOf("/")!=path.length-1)path+="/";for(var i=count-1;i>=0;i--)if((nodes[i].path()+"/").indexOf(path)==0)return true;return false;} this.pathParse=function(pathList,sort,ps,ls,ico) { if(ps==null)ps="/";if(ls==null)ls=";"; var list=pathList.split(ls);if(sort)list=list.sort(); var colPath=[];for(var i=0;i=0;i--)if(colPath[i]==path)return i;return -1;} for(var i=0;i