function treelist(x,m,h,c){var ab=document.createElement('ul');ab.className='treeRoot';x.appendChild(ab);var aa=this;var o=new Array();var addNode=function(node){o.push(node);ab.appendChild(node.a);};var l=function(f){var b=f.responseXML.getElementsByTagName('item');for(var i=0;i<b.length;i++){var label=b[i].getElementsByTagName('label')[0].firstChild.nodeValue;var data=b[i].getElementsByTagName('data')[0]?b[i].getElementsByTagName('data')[0].firstChild.nodeValue:null;var open=b[i].getElementsByTagName('open')[0]?b[i].getElementsByTagName('open')[0].firstChild.nodeValue=='true':false;var s=b[i].getElementsByTagName('hint')[0]?b[i].getElementsByTagName('hint')[0].firstChild.nodeValue:null;var r=b[i].getElementsByTagName('nodes')[0]?b[i].getElementsByTagName('nodes')[0].firstChild.nodeValue:null;new treenode(label,aa,open,data,s,r);}};var selectAll=function(turnOn){if(turnOn&&h){for(var i=0;i<o.length;i++)o[i].select(true);}else if(!turnOn){for(var i=0;i<o.length;i++)o[i].select(false);}};var getAllNodes=function(){return o;};var getSelectedItemNodes=function(){var q=new Array();for(var i=0;i<o.length;i++)if(o[i].isSelected())q.push(o[i]);return q;};if(c)j(c+(c.indexOf('?')>0?'&':'?')+'ts='+(new Date().getTime()),l);this.getAllNodes=getAllNodes;this.addNode=addNode;this.h=h;this.m=m;this.selectAll=selectAll;this.getSelectedItemNodes=getSelectedItemNodes;}function treenode(label,parentNode,k,data,s,c){var a=document.createElement('li');a.innerHTML=label;a.className=c?'treeItem treeClose':'treeItem';if(s)a.title=s;a.node=this;this.a=a;parentNode.addNode(this);var d;var w;var e=parentNode;while(e.parentNode)e=e.parentNode;var addNode=function(node){if(!d){d=document.createElement('ul');d.className='treeUl';d.style.display=k?'block':'none';a.appendChild(d);a.className=k?'treeItem treeOpen':'treeItem treeClose';}e.getAllNodes().push(node);d.appendChild(node.a);};var y=function(ev){stopPropagation(ev);if(c){t(c);c=null;}else if(d){k=!k;d.style.display=k?'block':'none';a.className=k?'treeItem treeOpen':'treeItem treeClose';}else{if(!e.h){var ac=p(ev);for(var i=0;i<e.getAllNodes().length;i++)if(e.getAllNodes()[i]!=ac)e.getAllNodes()[i].select(false);}select(!w);if(e.m)e.m(p(ev));}};var select=function(turnOn){if(!d&&!c){w=turnOn;a.className=w?'treeItem treeItemSelected':'treeItem';}};var stopPropagation=function(ev){if(window.event)window.event.cancelBubble=true;if(ev&&ev.stopPropagation)ev.stopPropagation();};var p=function(ev){var target;if(window.event&&window.event.srcElement)target=window.event.srcElement;else if(ev&&ev.target)target=ev.target;while(target&&target.nodeName.toLowerCase()!='li')target=target.parentNode;return target.node;};var t=function(r){j(r+(r.indexOf('?')>0?'&':'?')+'ts='+(new Date().getTime()),l);};var l=function(f){var b=f.responseXML.getElementsByTagName('item');for(var i=0;i<b.length;i++){var label=b[i].getElementsByTagName('label')[0].firstChild.nodeValue;var data=b[i].getElementsByTagName('data')[0]?b[i].getElementsByTagName('data')[0].firstChild.nodeValue:null;var open=b[i].getElementsByTagName('open')[0]?b[i].getElementsByTagName('open')[0].firstChild.nodeValue=='true':false;var s=b[i].getElementsByTagName('hint')[0]?b[i].getElementsByTagName('hint')[0].firstChild.nodeValue:null;var r=b[i].getElementsByTagName('nodes')[0]?b[i].getElementsByTagName('nodes')[0].firstChild.nodeValue:null;new treenode(label,a.node,open,data,s,r);}k=true;d.style.display='block';a.className='treeItem treeOpen';};if(k&&c){t(c);c=null;}a.onclick=y;this.addNode=addNode;this.parentNode=parentNode;this.select=select;this.isSelected=function(){return w;};this.data=data;this.label=label;}function j(z,v){var n=document.createElement('div');n.style.cssText='background:red; color:white; padding:3px 5px 3px 5px; position:absolute; right:0px; top:0px;';n.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(n);v(f);}};try{document.body.appendChild(n);f.open('GET',z,true);f.send(null);}catch(ex){alert(ex);}}
