/*----------------------------------------------------| | dTree 2.05 | www.destroydrop.com/javascript/tree/ | |---------------------------------------------------| | Copyright (c) 2002-2003 Geir Landro | | | | This script can be used freely as long as all | | copyright messages are intact. | | | | Updated: 17.04.2003 | |---------------------------------------------------| | Modified for Dokuwiki by | | Samuele Tognini | | under GPL 2 license | | (http://www.gnu.org/licenses/gpl.html) | | Updated: 25.01.2006 | |---------------------------------------------------| | indexmenu | wiki.splitbrain.org/plugin:indexmenu | |--------------------------------------------------*/ function Node(dokuid,id,pid,name,url,title,icon,iconOpen,open){this.dokuid=dokuid;this.id=id;this.pid=pid;this.name=name;this.url=url;this.title=title||name;this.icon=icon;this.iconOpen=iconOpen;this._io=open||false;this._is=false;this._ls=false;this._hc=false;this._ai=0;this._p=false;this._lv=0;this._ok=false;this._cp=false;}function dTree(objName,objImg){var objExt=this.findExt(objImg);this.config ={useCookies:true,scroll:true,max:1};this.icon ={root:objImg+'base.'+objExt,folder:objImg+'folder.'+objExt,folderH:objImg+'folderh.'+objExt,folderOpen:objImg+'folderopen.'+objExt,folderHOpen:objImg+'folderhopen.'+objExt,node:objImg+'page.'+objExt,empty:objImg+'empty.'+objExt,line:objImg+'line.'+objExt,join:objImg+'join.'+objExt,joinBottom:objImg+'joinbottom.'+objExt,plus:objImg+'plus.'+objExt,plusBottom:objImg+'plusbottom.'+objExt,minus:objImg+'minus.'+objExt,minusBottom:objImg+'minusbottom.'+objExt,nlPlus:objImg+'nolines_plus.'+objExt,nlMinus:objImg+'nolines_minus.'+objExt};this.obj=objName;this.aNodes=[];this.aIndent=[];this.root=new Node(false,-1);this.selectedNode=null;this.selectedFound=false;this.completed=false;this.scrllTmr=0;this.pageid=window.indexmenu_ID||'';}dTree.prototype.add=function(dokuid,id,pid,name,url,title,icon,iconOpen,open){this.aNodes[this.aNodes.length]=new Node(dokuid,id,pid,name,url,title,icon,iconOpen,open);};dTree.prototype.openAll=function(){if(!this.getCookie('co'+this.obj)){this.oAll(true);}};dTree.prototype.toString=function(){var str= '';if(this.config.scroll){str += '
\n';}str += '
Scroll
\n';str += '
';}this.completed=true;var nojs=document.getElementById('nojs_'+this.obj);if(nojs){nojs.style.display="none";}return str;};dTree.prototype.addNode=function(pNode){var str='';var n=pNode._ai;var l=pNode._lv+1;for(n;nthis.config.max){node._io=false;h=true;}else{node._ok=true;}var str='
'+this.indent(node,nodeId);if(!node.icon){node.icon =(this.root.id==node.pid)? this.icon.root:((node._hc)?((!node.url)? this.icon.folder:this.icon.folderH):this.icon.node);}if(!node.iconOpen){node.iconOpen =(node._hc)?((!node.url)? this.icon.folderOpen:this.icon.folderHOpen):this.icon.node;}if(this.root.id==node.pid){node.icon=this.icon.root;node.iconOpen=this.icon.root;}str += '';if(node.url){str += '';if(!h){str += this.addNode(node);}str += '
';}this.aIndent.pop();return str;};dTree.prototype.indent=function(node,nodeId){var str='';if(this.root.id!=node.pid){for(var n=0;n';}if(node._ls){this.aIndent.push(0);}else{this.aIndent.push(1);}if(node._hc){str += '';}else{str += '';}}return str;};dTree.prototype.setCS=function(node){var lastId;for(var n=0;n=0;ln--){id=rd[ln];a=this.aNodes[id];eDiv=document.getElementById('d'+this.obj+id);if(!eDiv){return false;}this.aIndent=[];n=a;while(n.pid>=0){if(n._ls){this.aIndent.unshift(0);}else{this.aIndent.unshift(1);}n=n._p;}eDiv.innerHTML=this.addNode(a);a._ok=true;}return true;};dTree.prototype.openCookies=function(){var aOpen=this.getCookie('co'+this.obj).split('.');for(var n=0;n0){document.getElementById('left_'+this.obj).style.display="none";this.scrllTmr=0;return;}dtree.style.left=lft+"px";this.scrllTmr=setTimeout(function(){self.scrollRight((lft+speed >0)? lft+1:lft+speed,speed);},10);};dTree.prototype.stopscroll=function(){clearTimeout(this.scrllTmr);this.scrllTmr=0;};dTree.prototype.findExt=function(path){var ext="gif";var cext=path.lastIndexOf(".");if( cext>-1){cext++;cext=path.substring(cext,path.length-1).toLowerCase();if((cext=="png")||(cext=="jpg")){ext=cext;}}return ext;};if(!Array.prototype.push){Array.prototype.push=function array_push(){for(var i=0;i