var webFXTreeConfig={rootIcon:"/html/xloadtree/images/foldericon.png",openRootIcon:"/html/xloadtree/images/openfoldericon.png",folderIcon:"/html/xloadtree/images/foldericon.png",openFolderIcon:"/html/xloadtree/images/openfoldericon.png",fileIcon:"/html/xloadtree/images/file.png",iIcon:"/html/xloadtree/images/I.png",lIcon:"/html/xloadtree/images/L.png",lMinusIcon:"/html/xloadtree/images/Lminus.png",lPlusIcon:"/html/xloadtree/images/Lplus.png",tIcon:"/html/xloadtree/images/T.png",tMinusIcon:"/html/xloadtree/images/Tminus.png",tPlusIcon:"/html/xloadtree/images/Tplus.png",blankIcon:"/html/xloadtree/images/blank.png",defaultText:"Tree Item",defaultAction:"javascript:void(0);",defaultBehavior:"classic",inputType:"",paramName:"",usePersistence:true};var webFXTreeHandler={idCounter:0,idPrefix:"webfx-tree-object-",all:{},behavior:null,selected:null,onSelect:null,getId:function(){return this.idPrefix+this.idCounter++},toggle:function(A){this.all[A.id.replace("-plus","")].toggle()},select:function(A){this.all[A.id.replace("-icon","")].select()},focus:function(A){this.all[A.id.replace("-anchor","")].focus()},blur:function(A){this.all[A.id.replace("-anchor","")].blur()},keydown:function(B,A){return this.all[B.id].keydown(A.keyCode)},cookies:new WebFXCookie(),insertHTMLBeforeEnd:function(A,C){if(A.insertAdjacentHTML!=null){A.insertAdjacentHTML("BeforeEnd",C);return }var D;var B=A.ownerDocument.createRange();B.selectNodeContents(A);B.collapse(false);D=B.createContextualFragment(C);A.appendChild(D)}};function WebFXCookie(){if(document.cookie.length){this.cookies=" "+document.cookie}}WebFXCookie.prototype.setCookie=function(A,B){document.cookie=A+"="+escape(B)};WebFXCookie.prototype.getCookie=function(C){if(this.cookies){var E=this.cookies.indexOf(" "+C+"=");if(E==-1){return null}var A=this.cookies.indexOf(";",E);if(A==-1){A=this.cookies.length}A-=E;var B=this.cookies.substr(E,A);var D=unescape(B.substr(B.indexOf("=")+1,B.length-B.indexOf("=")+1));return D}else{return null}};function WebFXTreeAbstractNode(B,A,C){this.childNodes=[];this.id=webFXTreeHandler.getId();this.text=B||webFXTreeConfig.defaultText;this.action=A||webFXTreeConfig.defaultAction;this.value=C;this._last=false;webFXTreeHandler.all[this.id]=this}WebFXTreeAbstractNode.prototype.add=function(D,A){D.parentNode=this;this.childNodes[this.childNodes.length]=D;var B=this;if(this.childNodes.length>=2){this.childNodes[this.childNodes.length-2]._last=false}while(B.parentNode){B=B.parentNode}if(B.rendered){if(this.childNodes.length>=2){document.getElementById(this.childNodes[this.childNodes.length-2].id+"-plus").src=((this.childNodes[this.childNodes.length-2].folder)?((this.childNodes[this.childNodes.length-2].open)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tPlusIcon):webFXTreeConfig.tIcon);this.childNodes[this.childNodes.length-2].plusIcon=webFXTreeConfig.tPlusIcon;this.childNodes[this.childNodes.length-2].minusIcon=webFXTreeConfig.tMinusIcon;this.childNodes[this.childNodes.length-2]._last=false}this._last=true;var E=this;while(E.parentNode){for(var C=0;C<E.parentNode.childNodes.length;C++){if(E.id==E.parentNode.childNodes[C].id){break}}if(C==E.parentNode.childNodes.length-1){E.parentNode._last=true}else{E.parentNode._last=false}E=E.parentNode}webFXTreeHandler.insertHTMLBeforeEnd(document.getElementById(this.id+"-cont"),D.toString());if((!this.folder)&&(!this.openIcon)){this.icon=webFXTreeConfig.folderIcon;this.openIcon=webFXTreeConfig.openFolderIcon}if(!this.folder){this.folder=true;this.collapse(true)}if(!A){this.indent()}}return D};WebFXTreeAbstractNode.prototype.toggle=function(){if(this.folder){if(this.open){this.collapse()}else{this.expand()}}};WebFXTreeAbstractNode.prototype.select=function(){document.getElementById(this.id+"-anchor").focus()};WebFXTreeAbstractNode.prototype.deSelect=function(){document.getElementById(this.id+"-anchor").className="";webFXTreeHandler.selected=null};WebFXTreeAbstractNode.prototype.focus=function(){if((webFXTreeHandler.selected)&&(webFXTreeHandler.selected!=this)){webFXTreeHandler.selected.deSelect()}webFXTreeHandler.selected=this;if((this.openIcon)&&(webFXTreeHandler.behavior!="classic")){document.getElementById(this.id+"-icon").src=this.openIcon}document.getElementById(this.id+"-anchor").className="selected";document.getElementById(this.id+"-anchor").focus();if(webFXTreeHandler.onSelect){webFXTreeHandler.onSelect(this)}};WebFXTreeAbstractNode.prototype.blur=function(){if((this.openIcon)&&(webFXTreeHandler.behavior!="classic")){document.getElementById(this.id+"-icon").src=this.icon}document.getElementById(this.id+"-anchor").className="selected-inactive"};WebFXTreeAbstractNode.prototype.doExpand=function(){if(webFXTreeHandler.behavior=="classic"){document.getElementById(this.id+"-icon").src=this.openIcon}if(this.childNodes.length){document.getElementById(this.id+"-cont").style.display="block"}this.open=true;if(webFXTreeConfig.usePersistence){webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length-18),"1")}};WebFXTreeAbstractNode.prototype.doCollapse=function(){if(webFXTreeHandler.behavior=="classic"){document.getElementById(this.id+"-icon").src=this.icon}if(this.childNodes.length){document.getElementById(this.id+"-cont").style.display="none"}this.open=false;if(webFXTreeConfig.usePersistence){webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length-18),"0")}};WebFXTreeAbstractNode.prototype.expandAll=function(){this.expandChildren();if((this.folder)&&(!this.open)){this.expand()}};WebFXTreeAbstractNode.prototype.expandChildren=function(){for(var A=0;A<this.childNodes.length;A++){this.childNodes[A].expandAll()}};WebFXTreeAbstractNode.prototype.collapseAll=function(){this.collapseChildren();if((this.folder)&&(this.open)){this.collapse(true)}};WebFXTreeAbstractNode.prototype.collapseChildren=function(){for(var A=0;A<this.childNodes.length;A++){this.childNodes[A].collapseAll()}};WebFXTreeAbstractNode.prototype.indent=function(C,A,E,H,B){if(C==null){C=-2}var F=0;for(var D=this.childNodes.length-1;D>=0;D--){F=this.childNodes[D].indent(C+1,A,E,H);if(F){return }}if(A){if((H>=this._level)&&(document.getElementById(this.id+"-plus"))){if(this.folder){document.getElementById(this.id+"-plus").src=(this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;this.plusIcon=webFXTreeConfig.lPlusIcon;this.minusIcon=webFXTreeConfig.lMinusIcon}else{if(B){document.getElementById(this.id+"-plus").src=webFXTreeConfig.lIcon}}return 1}}var G=document.getElementById(this.id+"-indent-"+C);if(G){if((G._last)||((A)&&(E))){G.src=webFXTreeConfig.blankIcon}else{G.src=webFXTreeConfig.iIcon}}return 0};function WebFXTree(C,A,F,D,E,B){this.base=WebFXTreeAbstractNode;this.base(C,A,F);this.icon=E||webFXTreeConfig.rootIcon;this.openIcon=B||webFXTreeConfig.openRootIcon;if(webFXTreeConfig.usePersistence){this.open=(webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length-18))=="0")?false:true}else{this.open=true}this.folder=true;this.rendered=false;this.onSelect=null;if(!webFXTreeHandler.behavior){webFXTreeHandler.behavior=D||webFXTreeConfig.defaultBehavior}}WebFXTree.prototype=new WebFXTreeAbstractNode;WebFXTree.prototype.setBehavior=function(A){webFXTreeHandler.behavior=A};WebFXTree.prototype.getBehavior=function(A){return webFXTreeHandler.behavior};WebFXTree.prototype.getSelected=function(){if(webFXTreeHandler.selected){return webFXTreeHandler.selected}else{return null}};WebFXTree.prototype.remove=function(){};WebFXTree.prototype.expand=function(){this.doExpand()};WebFXTree.prototype.collapse=function(A){if(!A){this.focus()}this.doCollapse()};WebFXTree.prototype.getFirst=function(){return null};WebFXTree.prototype.getLast=function(){return null};WebFXTree.prototype.getNextSibling=function(){return null};WebFXTree.prototype.getPreviousSibling=function(){return null};WebFXTree.prototype.keydown=function(A){if(A==39){if(!this.open){this.expand()}else{if(this.childNodes.length){this.childNodes[0].select()}}return false}if(A==37){this.collapse();return false}if((A==40)&&(this.open)&&(this.childNodes.length)){this.childNodes[0].select();return false}return true};WebFXTree.prototype.toString=function(){var B="<div id=\""+this.id+"\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\"><img id=\""+this.id+"-icon\" class=\"webfx-tree-icon\" src=\""+((webFXTreeHandler.behavior=="classic"&&this.open)?this.openIcon:this.icon)+"\" onclick=\"webFXTreeHandler.select(this);\"><a href=\""+this.action+"\" id=\""+this.id+"-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\""+(this.target?" target=\""+this.target+"\"":"")+">"+this.text+"</a></div><div id=\""+this.id+"-cont\" class=\"webfx-tree-container\" style=\"display: "+((this.open)?"block":"none")+";\">";var C=[];for(var A=0;A<this.childNodes.length;A++){C[A]=this.childNodes[A].toString(A,this.childNodes.length)}this.rendered=true;return B+C.join("")+"</div>"};function WebFXTreeItem(D,A,F,C,E,B){this.base=WebFXTreeAbstractNode;this.base(D,A,F);if(webFXTreeConfig.usePersistence){this.open=(webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length-18))=="1")?true:false}else{this.open=false}if(E){this.icon=E}if(B){this.openIcon=B}if(C){C.add(this)}}WebFXTreeItem.prototype=new WebFXTreeAbstractNode;WebFXTreeItem.prototype.remove=function(){var B=document.getElementById(this.id+"-plus").src;var A=this.parentNode;var C=this.getPreviousSibling(true);var F=this.getNextSibling(true);var E=this.parentNode.folder;var D=((F)&&(F.parentNode)&&(F.parentNode.id==A.id))?false:true;this.getPreviousSibling().focus();this._remove();if(A.childNodes.length==0){document.getElementById(A.id+"-cont").style.display="none";A.doCollapse();A.folder=false;A.open=false}if(!F||D){A.indent(null,true,D,this._level,A.childNodes.length)}if((C==A)&&!(A.childNodes.length)){C.folder=false;C.open=false;B=document.getElementById(C.id+"-plus").src;B=B.replace("minus","").replace("plus","");document.getElementById(C.id+"-plus").src=B;document.getElementById(C.id+"-icon").src=webFXTreeConfig.fileIcon}if(document.getElementById(C.id+"-plus")){if(A==C.parentNode){B=B.replace("minus","").replace("plus","");document.getElementById(C.id+"-plus").src=B}}};WebFXTreeItem.prototype._remove=function(){for(var C=this.childNodes.length-1;C>=0;C--){this.childNodes[C]._remove()}for(var C=0;C<this.parentNode.childNodes.length;C++){if(this==this.parentNode.childNodes[C]){for(var A=C;A<this.parentNode.childNodes.length;A++){this.parentNode.childNodes[A]=this.parentNode.childNodes[A+1]}this.parentNode.childNodes.length-=1;if(C+1==this.parentNode.childNodes.length){this.parentNode._last=true}break}}webFXTreeHandler.all[this.id]=null;var B=document.getElementById(this.id);if(B){B.parentNode.removeChild(B)}B=document.getElementById(this.id+"-cont");if(B){B.parentNode.removeChild(B)}};WebFXTreeItem.prototype.expand=function(){this.doExpand();document.getElementById(this.id+"-plus").src=this.minusIcon};WebFXTreeItem.prototype.collapse=function(A){if(!A){this.focus()}this.doCollapse();document.getElementById(this.id+"-plus").src=this.plusIcon};WebFXTreeItem.prototype.getFirst=function(){return this.childNodes[0]};WebFXTreeItem.prototype.getLast=function(){if(this.childNodes[this.childNodes.length-1].open){return this.childNodes[this.childNodes.length-1].getLast()}else{return this.childNodes[this.childNodes.length-1]}};WebFXTreeItem.prototype.getNextSibling=function(){for(var A=0;A<this.parentNode.childNodes.length;A++){if(this==this.parentNode.childNodes[A]){break}}if(++A==this.parentNode.childNodes.length){return this.parentNode.getNextSibling()}else{return this.parentNode.childNodes[A]}};WebFXTreeItem.prototype.getPreviousSibling=function(A){for(var B=0;B<this.parentNode.childNodes.length;B++){if(this==this.parentNode.childNodes[B]){break}}if(B==0){return this.parentNode}else{if((this.parentNode.childNodes[--B].open)||(A&&this.parentNode.childNodes[B].folder)){return this.parentNode.childNodes[B].getLast()}else{return this.parentNode.childNodes[B]}}};WebFXTreeItem.prototype.keydown=function(B){if((B==39)&&(this.folder)){if(!this.open){this.expand()}else{this.getFirst().select()}return false}else{if(B==37){if(this.open){this.collapse()}else{this.parentNode.select()}return false}else{if(B==40){if(this.open){this.getFirst().select()}else{var A=this.getNextSibling();if(A){A.select()}}return false}else{if(B==38){this.getPreviousSibling().select();return false}}}}return true};WebFXTreeItem.prototype.toString=function(I,B){var H=this.parentNode;var A="";if(I+1==B){this.parentNode._last=true}var C=0;while(H.parentNode){H=H.parentNode;A="<img id=\""+this.id+"-indent-"+C+"\" src=\""+((H._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon)+"\">"+A;C++}this._level=C;if(this.childNodes.length){this.folder=1}else{this.open=false}if((this.folder)||(webFXTreeHandler.behavior!="classic")){if(!this.icon){this.icon=webFXTreeConfig.folderIcon}if(!this.openIcon){this.openIcon=webFXTreeConfig.openFolderIcon}}else{if(!this.icon){this.icon=webFXTreeConfig.fileIcon}}var D="";var F=false;var K=this.action;if(webFXTreeConfig.inputType&&webFXTreeConfig.paramName&&this.value&&this.value!=""){if("checkbox"==webFXTreeConfig.inputType){D="<input type=\"checkbox\" id=\""+webFXTreeConfig.paramName+"_"+this.id+"\" name=\""+webFXTreeConfig.paramName+"\" value=\""+this.value+"\" />";F=true;K=webFXTreeConfig.defaultAction}else{if("radio"==webFXTreeConfig.inputType){D="<input type=\"radio\" id=\""+webFXTreeConfig.paramName+"_"+this.id+"\" name=\""+webFXTreeConfig.paramName+"\" value=\""+this.value+"\" />";F=true;K=webFXTreeConfig.defaultAction}}}var J=this.text.replace(/</g,"&lt;").replace(/>/g,"&gt;");var E="<div id=\""+this.id+"\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">"+A+"<img id=\""+this.id+"-plus\" src=\""+((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon))+"\" onclick=\"webFXTreeHandler.toggle(this);\"><img id=\""+this.id+"-icon\" class=\"webfx-tree-icon\" src=\""+((webFXTreeHandler.behavior=="classic"&&this.open)?this.openIcon:this.icon)+"\" onclick=\"webFXTreeHandler.select(this);\">"+D+"<a href=\""+K+"\" id=\""+this.id+"-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\""+(this.target?" target=\""+this.target+"\"":"")+"><span id=\"treeItemText_"+this.value+"\">"+J+"</span></a></div><div id=\""+this.id+"-cont\" class=\"webfx-tree-container\" style=\"display: "+((this.open)?"block":"none")+";\">";var G=[];for(var C=0;C<this.childNodes.length;C++){G[C]=this.childNodes[C].toString(C,this.childNodes.length)}this.plusIcon=((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);this.minusIcon=((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);return E+G.join("")+"</div>"};function getDomDocumentPrefix(){if(getDomDocumentPrefix.prefix){return getDomDocumentPrefix.prefix}var C=["MSXML2","Microsoft","MSXML","MSXML3"];var D;for(var B=0;B<C.length;B++){try{D=new ActiveXObject(C[B]+".DomDocument");return getDomDocumentPrefix.prefix=C[B]}catch(A){}}throw new Error("Could not find an installed XML parser")}function getXmlHttpPrefix(){if(getXmlHttpPrefix.prefix){return getXmlHttpPrefix.prefix}var C=["MSXML2","Microsoft","MSXML","MSXML3"];var D;for(var B=0;B<C.length;B++){try{D=new ActiveXObject(C[B]+".XmlHttp");return getXmlHttpPrefix.prefix=C[B]}catch(A){}}throw new Error("Could not find an installed XML parser")}function XmlHttp(){}XmlHttp.create=function(){try{if(window.XMLHttpRequest){var B=new XMLHttpRequest();if(B.readyState==null){B.readyState=1;B.addEventListener("load",function(){B.readyState=4;if(typeof B.onreadystatechange=="function"){B.onreadystatechange()}},false)}return B}if(window.ActiveXObject){return new ActiveXObject(getXmlHttpPrefix()+".XmlHttp")}}catch(A){}throw new Error("Your browser does not support XmlHttp objects")};function XmlDocument(){}XmlDocument.create=function(){try{if(document.implementation&&document.implementation.createDocument){var B=document.implementation.createDocument("","",null);if(B.readyState==null){B.readyState=1;B.addEventListener("load",function(){B.readyState=4;if(typeof B.onreadystatechange=="function"){B.onreadystatechange()}},false)}return B}if(window.ActiveXObject){return new ActiveXObject(getDomDocumentPrefix()+".DomDocument")}}catch(A){}throw new Error("Your browser does not support XmlDocument objects")};if(window.DOMParser&&window.XMLSerializer&&window.Node&&Node.prototype&&Node.prototype.__defineGetter__){XMLDocument.prototype.loadXML=Document.prototype.loadXML=function(B){var C=(new DOMParser()).parseFromString(B,"text/xml");while(this.hasChildNodes()){this.removeChild(this.lastChild)}for(var A=0;A<C.childNodes.length;A++){this.appendChild(this.importNode(C.childNodes[A],true))}};XMLDocument.prototype.__defineGetter__("xml",function(){return(new XMLSerializer()).serializeToString(this)});Document.prototype.__defineGetter__("xml",function(){return(new XMLSerializer()).serializeToString(this)})}webFXTreeConfig.loadingText="Loading...";webFXTreeConfig.loadErrorTextTemplate="Error loading \"%1%\"";webFXTreeConfig.emptyErrorTextTemplate="Error \"%1%\" does not contain any tree items";function WebFXLoadTree(D,B,A,G,E,F,C){this.WebFXTree=WebFXTree;this.WebFXTree(D,A,G,E,F,C);this.src=B;this.loading=false;this.loaded=false;this.errorText="";if(this.open){_startLoadXmlTree(this.src,this)}else{this._loadingItem=new WebFXTreeItem(webFXTreeConfig.loadingText);this.add(this._loadingItem)}}WebFXLoadTree.prototype=new WebFXTree;WebFXLoadTree.prototype._webfxtree_expand=WebFXTree.prototype.expand;WebFXLoadTree.prototype.expand=function(){if(!this.loaded&&!this.loading){_startLoadXmlTree(this.src,this)}this._webfxtree_expand()};function WebFXLoadTreeItem(E,B,A,G,D,F,C){this.WebFXTreeItem=WebFXTreeItem;this.WebFXTreeItem(E,A,G,D,F,C);this.src=B;this.loading=false;this.loaded=false;this.errorText="";if(this.open){_startLoadXmlTree(this.src,this)}else{this._loadingItem=new WebFXTreeItem(webFXTreeConfig.loadingText);this.add(this._loadingItem)}}WebFXLoadTreeItem.prototype=new WebFXTreeItem;WebFXLoadTreeItem.prototype._webfxtreeitem_expand=WebFXTreeItem.prototype.expand;WebFXLoadTreeItem.prototype.expand=function(){if(!this.loaded&&!this.loading){_startLoadXmlTree(this.src,this)}this._webfxtreeitem_expand()};WebFXLoadTree.prototype.reload=WebFXLoadTreeItem.prototype.reload=function(){if(this.loaded){var A=this.open;while(this.childNodes.length>0){this.childNodes[this.childNodes.length-1].remove()}this.loaded=false;this._loadingItem=new WebFXTreeItem(webFXTreeConfig.loadingText);this.add(this._loadingItem);if(A){this.expand()}}else{if(this.open&&!this.loading){_startLoadXmlTree(this.src,this)}}};function _startLoadXmlTree(B,C){if(C.loading||C.loaded){return }C.loading=true;var A=XmlHttp.create();A.open("GET",B,true);A.onreadystatechange=function(){if(A.readyState==4){_xmlFileLoaded(A.responseXML,C)}};window.setTimeout(function(){A.send(null)},10)}function _xmlTreeToJsTree(N){var M=N.getAttribute("text");var E=N.getAttribute("action");var K=N.getAttribute("value");var L=null;var J=N.getAttribute("icon");var C=N.getAttribute("openIcon");var A=N.getAttribute("src");var I=N.getAttribute("target");var G=N.getAttribute("open");var B;if(A!=null&&A!=""){B=new WebFXLoadTreeItem(M,A,E,K,L,J,C)}else{B=new WebFXTreeItem(M,E,K,L,J,C)}B.open=G;if(I!=""){B.target=I}var H=N.childNodes;var D=H.length;for(var F=0;F<D;F++){if(H[F].tagName=="tree"){B.add(_xmlTreeToJsTree(H[F]),true)}}return B}function _xmlFileLoaded(E,D){if(D.loaded){return }var A=false;var H=false;D.loaded=true;D.loading=false;if(E==null||E.documentElement==null){alert(E.xml);D.errorText=parseTemplateString(webFXTreeConfig.loadErrorTextTemplate,D.src)}else{var C=E.documentElement;var G=C.childNodes;var B=G.length;for(var F=0;F<B;F++){if(G[F].tagName=="tree"){H=true;A=true;D.add(_xmlTreeToJsTree(G[F]),true)}}if(!H){D.errorText=parseTemplateString(webFXTreeConfig.emptyErrorTextTemplate,D.src)}}if(D._loadingItem!=null){D._loadingItem.remove();A=true}if(A){D.indent()}}function parseTemplateString(C){var A=arguments;var D=C;D=D.replace(/\%\%/g,"%");for(var B=1;B<A.length;B++){D=D.replace(new RegExp("%"+B+"%","g"),A[B])}return D}
