// Copyright (c) 2000-2007 Unidocs. All rights reserved.
function Node(id,pid,name,url,title,target,icon,iconOpen,open){this.id=id;this.pid=pid;this.name=name;this.url=url;this.title=title;this.target=target;this.icon=icon;this.iconOpen=iconOpen;this._io=open||false;this._is=false;this._ls=false;this._hc=false;this._ai=0;this._p};function dTree(ms){this.config={target:null,folderLinks:true,useSelection:true,useCookies:true,useLines:true,useIcons:true,useStatusText:false,closeSameLevel:false,inOrder:false};this.icon={root:'common/toc/base.gif',folder:'common/toc/folder.gif',folderOpen:'common/toc/folderopen.gif',node:'common/toc/page.gif',empty:'common/toc/empty.gif',line:'common/toc/line.gif',join:'common/toc/join.gif',joinBottom:'common/toc/joinbottom.gif',plus:'common/toc/plus.gif',plusBottom:'common/toc/plusbottom.gif',minus:'common/toc/minus.gif',minusBottom:'common/toc/minusbottom.gif',nlPlus:'common/toc/nolines_plus.gif',nlMinus:'common/toc/nolines_minus.gif'};this.obj=ms;this.aNodes=[];this.aIndent=[];this.root=new Node(-1);this.selectedNode=null;this.selectedFound=false;this.completed=false};dTree.prototype.add=function(id,pid,name,url,title,target,icon,iconOpen,open){this.aNodes[this.aNodes.length]=new Node(id,pid,name,url,title,target,icon,iconOpen,open);};dTree.prototype.openAll=function(){this.oAll(true);};dTree.prototype.closeAll=function(){this.oAll(false);};dTree.prototype.toString=function(){var str='<div class="dtree">\n';if(document.getElementById){if(this.config.useCookies)this.selectedNode=this.getSelected();str+=this.addNode(this.root);}else str+='Browser not supported.';str+='</div>';if(!this.selectedFound)this.selectedNode=null;this.completed=true;return str};dTree.prototype.addNode=function(hu){var str='';var n=0;if(this.config.inOrder)n=hu._ai;for(n;n<this.aNodes.length;n++){if(this.aNodes[n].pid==hu.id){var cf=this.aNodes[n];cf._p=hu;cf._ai=n;this.setCS(cf);if(!cf.target&&this.config.target)cf.target=this.config.target;if(cf._hc&&!cf._io&&this.config.useCookies)cf._io=this.isOpen(cf.id);if(!this.config.folderLinks&&cf._hc)cf.url=null;if(this.config.useSelection&&cf.id==this.selectedNode&&!this.selectedFound){cf._is=true;this.selectedNode=n;this.selectedFound=true}str+=this.node(cf,n);if(cf._ls)break}}return str};dTree.prototype.node=function(node,nodeId){var str='<div class="dTreeNode">'+this.indent(node,nodeId);if(this.config.useIcons){if(!node.icon)node.icon=(this.root.id==node.pid)?this.icon.root:((node._hc)?this.icon.folder:this.icon.node);if(!node.iconOpen)node.iconOpen=(node._hc)?this.icon.folderOpen:this.icon.node;if(this.root.id==node.pid){node.icon=this.icon.root;node.iconOpen=this.icon.root}str+='<img id="i'+this.obj+nodeId+'" src="'+((node._io)?node.iconOpen:node.icon)+'" alt="" />'}if(node.url){str+='<a id="s'+this.obj+nodeId+'" class="'+((this.config.useSelection)?((node._is?'nodeSel':'node')):'node')+'" href="'+node.url+'"';if(node.title)str+=' title="'+node.title+'"';if(node.target)str+=' target="'+node.target+'"';if(this.config.useStatusText)str+=' onmouseover="window.status=\''+node.name+'\';return true;" onmouseout="window.status=\'\';return true;" ';if(this.config.useSelection&&((node._hc&&this.config.folderLinks)||!node._hc))str+=' onclick="javascript: '+this.obj+'.s('+nodeId+');"';str+='>'}else if((!this.config.folderLinks||!node.url)&&node._hc&&node.pid!=this.root.id)str+='<a href="javascript: '+this.obj+'.o('+nodeId+');" class="node">';str+=node.name;if(node.url||((!this.config.folderLinks||!node.url)&&node._hc))str+='</a>';str+='</div>';if(node._hc){str+='<div id="d'+this.obj+nodeId+'" class="clip" style="display:'+((this.root.id==node.pid||node._io)?'block':'none')+';">';str+=this.addNode(node);str+='</div>'}this.aIndent.pop();return str};dTree.prototype.indent=function(node,nodeId){var str='';if(this.root.id!=node.pid){for(var n=0;n<this.aIndent.length;n++)str+='<img src="'+((this.aIndent[n]==1&&this.config.useLines)?this.icon.line:this.icon.empty)+'" alt="" />';(node._ls)?this.aIndent.push(0):this.aIndent.push(1);if(node._hc){str+='<a href="javascript: '+this.obj+'.o('+nodeId+');"><img id="j'+this.obj+nodeId+'" src="';if(!this.config.useLines)str+=(node._io)?this.icon.nlMinus:this.icon.nlPlus;else str+=((node._io)?((node._ls&&this.config.useLines)?this.icon.minusBottom:this.icon.minus):((node._ls&&this.config.useLines)?this.icon.plusBottom:this.icon.plus));str+='" alt="" /></a>'}else str+='<img src="'+((this.config.useLines)?((node._ls)?this.icon.joinBottom:this.icon.join):this.icon.empty)+'" alt="" />'}return str};dTree.prototype.setCS=function(node){var ks;for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n].pid==node.id)node._hc=true;if(this.aNodes[n].pid==node.pid)ks=this.aNodes[n].id}if(ks==node.id)node._ls=true};dTree.prototype.getSelected=function(){var sn=this.getCookie('cs'+this.obj);return(sn)?sn:null};dTree.prototype.s=function(id){if(!this.config.useSelection)return;var cf=this.aNodes[id];if(cf._hc&&!this.config.folderLinks)return;if(this.selectedNode!=id){if(this.selectedNode||this.selectedNode==0){mt=document.getElementById("s"+this.obj+this.selectedNode);mt.className="node"}eNew=document.getElementById("s"+this.obj+id);eNew.className="nodeSel";this.selectedNode=id;if(this.config.useCookies)this.setCookie('cs'+this.obj,cf.id);}};dTree.prototype.o=function(id){var cf=this.aNodes[id];this.nodeStatus(!cf._io,id,cf._ls);cf._io=!cf._io;if(this.config.closeSameLevel)this.closeLevel(cf);if(this.config.useCookies)this.updateCookie();};dTree.prototype.oAll=function(status){for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n]._hc&&this.aNodes[n].pid!=this.root.id){this.nodeStatus(status,n,this.aNodes[n]._ls);this.aNodes[n]._io=status}}if(this.config.useCookies)this.updateCookie();};dTree.prototype.openTo=function(hv,bSelect,bFirst){if(!bFirst){for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n].id==hv){hv=n;break}}}var cf=this.aNodes[hv];if(cf.pid==this.root.id||!cf._p)return;cf._io=true;cf._is=bSelect;if(this.completed&&cf._hc)this.nodeStatus(true,cf._ai,cf._ls);if(this.completed&&bSelect)this.s(cf._ai);else if(bSelect)this._sn=cf._ai;this.openTo(cf._p._ai,false,true);};dTree.prototype.closeLevel=function(node){for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n].pid==node.pid&&this.aNodes[n].id!=node.id&&this.aNodes[n]._hc){this.nodeStatus(false,n,this.aNodes[n]._ls);this.aNodes[n]._io=false;this.closeAllChildren(this.aNodes[n]);}}};dTree.prototype.closeAllChildren=function(node){for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n].pid==node.id&&this.aNodes[n]._hc){if(this.aNodes[n]._io)this.nodeStatus(false,n,this.aNodes[n]._ls);this.aNodes[n]._io=false;this.closeAllChildren(this.aNodes[n]);}}};dTree.prototype.nodeStatus=function(status,id,bottom){mu=document.getElementById('d'+this.obj+id);mv=document.getElementById('j'+this.obj+id);if(this.config.useIcons){mw=document.getElementById('i'+this.obj+id);mw.src=(status)?this.aNodes[id].iconOpen:this.aNodes[id].icon}mv.src=(this.config.useLines)?((status)?((bottom)?this.icon.minusBottom:this.icon.minus):((bottom)?this.icon.plusBottom:this.icon.plus)):((status)?this.icon.nlMinus:this.icon.nlPlus);mu.style.display=(status)?'block':'none'};dTree.prototype.clearCookie=function(){var mx=new Date();var kt=new Date(mx.getTime()-1000*60*60*24);this.setCookie('co'+this.obj,'cookieValue',kt);this.setCookie('cs'+this.obj,'cookieValue',kt);};dTree.prototype.setCookie=function(cookieName,cookieValue,gf,ku,domain,secure){document.cookie=escape(cookieName)+'='+escape(cookieValue)+(gf?'; expires='+gf.toGMTString():'')+(ku?'; path='+ku:'')+(domain?'; domain='+domain:'')+(secure?'; secure':'');};dTree.prototype.getCookie=function(cookieName){var cookieValue='';var kv=document.cookie.indexOf(escape(cookieName)+'=');if(kv!=-1){var hw=kv+(escape(cookieName)+'=').length;var endPos=document.cookie.indexOf(';',hw);if(endPos!=-1)cookieValue=unescape(document.cookie.substring(hw,endPos));else cookieValue=unescape(document.cookie.substring(hw));}return(cookieValue);};dTree.prototype.updateCookie=function(){var str='';for(var n=0;n<this.aNodes.length;n++){if(this.aNodes[n]._io&&this.aNodes[n].pid!=this.root.id){if(str)str+='.';str+=this.aNodes[n].id}}this.setCookie('co'+this.obj,str);};dTree.prototype.isOpen=function(id){var aOpen=this.getCookie('co'+this.obj).split('.');for(var n=0;n<aOpen.length;n++)if(aOpen[n]==id)return true;return false};if(!Array.prototype.push){Array.prototype.push=function array_push(){for(var i=0;i<arguments.length;i++)this[this.length]=arguments[i];return this.length}};if(!Array.prototype.pop){Array.prototype.pop=function array_pop(){my=this[this.length-1];this.length=Math.max(this.length-1,0);return my}};
