function treelist(c,d,e,f){var g=document.createElement('ul');g.className='treeRoot';c.appendChild(g);var h=this;var j=new Array();var k=new Object();k.length;var l=function(r){j.push(r);g.appendChild(r.nodeElm);r.idx=j.length-1;k[r.idx]=r;};var loadNodesCallback=function(r){var s=r.responseXML.getElementsByTagName('item');for(var i=0;i<s.length;i++){var t=s[i].getElementsByTagName('label')[0].firstChild.nodeValue;var u=s[i].getElementsByTagName('data')[0]?s[i].getElementsByTagName('data')[0].firstChild.nodeValue:null;var open=s[i].getElementsByTagName('open')[0]?s[i].getElementsByTagName('open')[0].firstChild.nodeValue=='true':false;var v=s[i].getElementsByTagName('hint')[0]?s[i].getElementsByTagName('hint')[0].firstChild.nodeValue:null;var w=s[i].getElementsByTagName('nodes')[0]?s[i].getElementsByTagName('nodes')[0].firstChild.nodeValue:null;new treenode(t,h,open,u,v,w);}};var m=function(r){if(r&&e){for(var i=0;i<j.length;i++)j[i].select(true);}else if(!r){for(var i=0;i<j.length;i++)j[i].select(false);}};var n=function(){return j;};var o=function(){j=new Array();};var p=function(){k.length=0;for(var r in k)k.length++;k.length-=1;return k;};var q=function(){var r=new Array();for(var i=0;i<j.length;i++)if(j[i].isSelected())r.push(j[i]);return r;};if(f)treelist_loadNodesByAjax(f+(f.indexOf('\x3f')>0?'\x26':'\x3f')+'ts='+(new Date().getTime()),loadNodesCallback);this.getAllNodes=n;this.getAllNodesObj=p;this.addNode=l;this.multiSelectable=e;this.itemClickFn=d;this.selectAll=m;this.getSelectedItemNodes=q;this.container=c;this.resetAllNodes=o;this.getRoot=function(){return g;};}function treenode(c,d,e,f,g,h,j){var k=document.createElement('li');var l={};var m=function(z){for(var A in z){l[A]=z[A];}};var n=function(){m({treeUl:'treeUl',treeItem:'treeItem',treeOpen:'treeOpen',treeClose:'treeClose',treeItemSelected:'treeItemSelected'});};n();if(j){m(j);}if(typeof c=='object')k.appendChild(c);else k.innerHTML=c;k.className=h?l.treeItem+"\x20"+l.treeClose:l.treeItem;if(g)k.title=g;k.node=this;this.nodeElm=k;d.addNode(this);var o;var p;var q=d;while(q.parentNode)q=q.parentNode;var r=function(z){if(!o){o=document.createElement('ul');o.className=l.treeUl;o.style.display=e?'block':'none';k.appendChild(o);k.className=e?l.treeItem+"\x20"+l.treeOpen:l.treeItem+"\x20"+l.treeClose;}q.getAllNodes().push(1);z.idx=q.getAllNodes().length-1;o.appendChild(z.nodeElm);q.getAllNodesObj()[z.idx]=z;z.parentIdx=this.idx;};var s=function(z){stopPropagation(z);if(h){loadNodes(h);h=null;}else if(o&&o.childNodes.length>0){e=!e;o.style.display=e?'block':'none';k.className=e?l.treeItem+"\x20"+l.treeOpen:l.treeItem+"\x20"+l.treeClose;}else{if(!q.multiSelectable){var self=findTargetItem(z);for(var A in q.getAllNodesObj()){if(A!=self.idx&&A!='length')q.getAllNodesObj()[A].select(false);}}select(!p);if(q.itemClickFn)q.itemClickFn(findTargetItem(z));}};var select=function(z){if(!o&&!h){p=z;k.className=p?l.treeItem+"\x20"+l.treeItemSelected:l.treeItem;}};var stopPropagation=function(z){if(window.event)window.event.cancelBubble=true;if(z&&z.stopPropagation)z.stopPropagation();};var findTargetItem=function(z){var A;if(window.event&&window.event.srcElement)A=window.event.srcElement;else if(z&&z.target)A=z.target;while(A&&A.nodeName.toLowerCase()!='li')A=A.parentNode;return A.node;};var loadNodes=function(z){treelist_loadNodesByAjax(z+(z.indexOf('\x3f')>0?'\x26':'\x3f')+'ts='+(new Date().getTime()),loadNodesCallback);};var loadNodesCallback=function(z){var A=z.responseXML.getElementsByTagName('item');for(var i=0;i<A.length;i++){var B=A[i].getElementsByTagName('label')[0].firstChild.nodeValue;var C=A[i].getElementsByTagName('data')[0]?A[i].getElementsByTagName('data')[0].firstChild.nodeValue:null;var open=A[i].getElementsByTagName('open')[0]?A[i].getElementsByTagName('open')[0].firstChild.nodeValue=='true':false;var D=A[i].getElementsByTagName('hint')[0]?A[i].getElementsByTagName('hint')[0].firstChild.nodeValue:null;var E=A[i].getElementsByTagName('nodes')[0]?A[i].getElementsByTagName('nodes')[0].firstChild.nodeValue:null;new treenode(B,k.node,open,C,D,E);}e=true;o.style.display='block';k.className=l.treeItem+"\x20"+l.treeOpen;};if(e&&h){loadNodes(h);h=null;}k.onclick=s;this.addNode=r;this.parentNode=d;this.select=select;this.isSelected=function(){return p;};this.data=f;this.label=c;this.clickNode=s;function t(z,A){var B=z.tagName?z.tagName.toLowerCase():z.nodeName.toLowerCase();if(B!=A)z=t(z.parentNode,A);return z;}function u(z,A){var B=q.getAllNodesObj();var C=false;for(var i in z){for(var D in B){if(i==B[D].parentIdx){if(!z[D]){z[D]=1;C=true;}}}}if(C)z=u(z,A);return z;}function v(){var z=new Array();var A=q.getAllNodesObj();for(var B in A){if(!isNaN(parseInt(B)))if(!isNaN(parseInt(A[B].parentIdx)))z[A[B].parentIdx]=1;}return z;}var w=function(z){var A=q.getAllNodesObj();z=typeof z=='undefined'?true:z;var B=true;if(A[this.idx]&&A[this.idx].nodeElm.childNodes.length==1)B=false;var C=false;if(A.length>0&&A[this.idx]){C=true;if(!B&&!z){C=false;}}if(C){var D={};D[k.node.idx]=1;D=u(D,k.node.idx);for(var E in D){if(z||E!=k.node.idx)delete q.getAllNodesObj()[E];}var F=k.node.idx==0?k:t(k.parentNode,'ul');if(z){k.parentNode.removeChild(k);if(k.node.idx==0)q.resetAllNodes();}else{var G=k.childNodes[1].childNodes;theELchildLen=G.length;k.removeChild(k.childNodes[1]);F=null;o=null;}if(F){if(F.getElementsByTagName('li').length==0){if(q.getAllNodesObj().length>0){var H=t(F,'li');H.className=l.treeItem;}if(F.parentNode){F.parentNode.removeChild(F);}else{}}}else{k.className=l.treeItem;}}};var x=function(z){if(o&&o.childNodes.length>0){e=z;o.style.display=e?'block':'none';k.className=e?l.treeItem+"\x20"+l.treeOpen:l.treeItem+"\x20"+l.treeClose;}};var y=function(z){var A=q.getAllNodesObj();var B;var C={};C[k.node.idx]=1;C=u(C,k.node.idx);var D=new Array();for(var E in C){if(E!=k.node.idx&&A[E].parentIdx!='undefined'&&!D[A[E].parentIdx])D[A[E].parentIdx]=1;}B=D;for(var E in B){if(z)A[E].expend();else A[E].collapse();}};this.expend=function(){x(true);};this.collapse=function(){x(false);};this.expendAll=function(z){y(true);};this.collapseAll=function(z){y(false);};this.removeTrNode=w;}function treelist_loadNodesByAjax(c,d){var e=document.createElement('div');e.style.cssText='background:red; color:white; padding:3px 5px 3px 5px; position:absolute; right:0px; top:0px;';e.innerHTML=' 讀取中... ';var f;if(window.ActiveXObject)f=new ActiveXObject('Microsoft.XMLHTTP');else if(window.XMLHttpRequest)f=new XMLHttpRequest();f.onreadystatechange=function(){if(f.readyState==4){document.body.removeChild(e);d(f);}};try{document.body.appendChild(e);f.open('GET',c,true);f.send(null);}catch(g){alert(g);}}