var iconpath = '/Public/Images/';//var icon path
var icon={
		root		:iconpath+'list/desktop.gif',
		open		:iconpath+'list/open.gif',
		close		:iconpath+'list/close.gif',
		file		:iconpath+'list/close.gif',
		join		:iconpath+'list/T.gif',
		joinbottom	:iconpath+'list/L.gif',
		plus		:iconpath+'list/Tplus.gif',
		plusbottom	:iconpath+'list/Lplus.gif',
		minus		:iconpath+'list/Tminus.gif',
		minusbottom	:iconpath+'list/Lminus.gif',
		blank		:iconpath+'list/empty.gif',
		line		:iconpath+'list/I.gif'
}

//分类设定

function $T(s,t){return $(s).getElementsByTagName(t);}
function Init___Ajax() {var ajax=false;try{ajax=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{ajax=new ActiveXObject("Microsoft.XMLHTTP");}catch(E){ajax=false;}}if(!ajax&&typeof XMLHttpRequest!='undefined'){ajax=new XMLHttpRequest();}return ajax;}/***初始化一个xmlhttp对象***/
var sort_set_root='';
function sort_set(id,name,pid,url) {
	var sortobj=$T('sort_tree','a');
	for (var i=0; i<sortobj.length; i++) sortobj[i].style.color="#000";	
	$("sort_"+id).style.color="#fd9e4a";
	$('sort_set_form').innerHTML='<div class="dataloading" style="width:750px;border:1px solid #ccc;">正在加载中...</div>';
//	alert(sort_set_root+'?mod=sort_set&id='+id+'&name='+name+'&pid='+pid);
	initHTML('sort_set_form',sort_set_root+'?mod=sort_set&id='+id+'&name='+name+'&pid='+pid);	
}

//Ajax initHTML By Zmor
function initHTML(id,url,pars,target) {
	var regExp = new RegExp("((^http)|(^https)|(^ftp))");
	if (url.match(regExp)) url = '/app/agent/?'+url;
	if (typeof(pars)=='undefined') pars='';
	var ajax = Init___Ajax();
	ajax.open("POST",url,true);
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send(pars);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4 && ajax.status == 200) {
			if (typeof(id)=='undefined'||id=='') return false;
			switch(target) {
				case 'value':
				$(id).value=ajax.responseText;
				break;
				case 'p_value':
				parent.$(id).value=ajax.responseText;
				break;
				case 'p_innerHTML':
				parent.$(id).innerHTML=ajax.responseText;
				break;
				default:
				//alert(ajax.responseText);
				fillHTML($(id),ajax.responseText);
				break;
			}
		}
	}
}
var fillHTML = function(el,HTMLString) {
	if (!el) return;
	if (window.ActiveXObject) { //For IE
	el.innerHTML = "<img style='display:none'/>" + HTMLString.replace(/<script([^>]*)>/ig, '<script$1 defer>');
	el.removeChild(el.firstChild)
	} else { //For Mozilla,Opare
	var nSibling = el.nextSibling;
	var pNode = el.parentNode;
	pNode.removeChild(el);
	el.innerHTML = HTMLString;
	pNode.insertBefore(el,nSibling)
	}
}


function Winopen(url) {
window.open(url,'main')
}

function PreLoad(){
	for(i in icon){
	var tem=icon[i]
	icon[i]=new Image()
	icon[i].src=tem
	}
}
PreLoad()

function TreeView(obj,target,ExpandOne){
	this.obj=obj;
	this.Tree=new Node(-1)
	this.Root=null
	this.Nodes=new Array()
	this.target=target?target:"_blank";
	this.ie=document.all?1:0;
	this.ExpandOne=ExpandOne?1:0
}

function Node(id,pid,txt,link,title,target,xicon){
	this.Index=null;
	this.id=id;
	this.pid=pid
	this.parent=null
	this.txt=txt?txt:""
	this.link=link
	this.title=title?title:this.txt
	this.target=target
	this.xicon=xicon
	this.indent=""
	this.hasChild=false;
	this.lastNode=false;
	this.open=false
}

TreeView.prototype.add=function(id,pid,txt,link,title,target,xicon){
	target=target?target:this.target
	var nNode=new Node(id,pid,txt,link,title,target,xicon);
	if(pid==this.Tree.id)nNode.open=true;
	nNode.Index=this.Nodes.length
	this.Nodes[this.Nodes.length]=nNode
}

TreeView.prototype.InitNode=function(oNode){
	var last;
	for(i=0;i<this.Nodes.length;i++){
		if(this.Nodes[i].pid==oNode.id){this.Nodes[i].parent=oNode;oNode.hasChild=true}
		if(this.Nodes[i].pid==oNode.pid)last=this.Nodes[i].id
	}
	if(last==oNode.id)oNode.lastNode=true
}

TreeView.prototype.DrawLine=function(pNode,oNode){
		oNode.indent=pNode.indent+(oNode.pid!=this.Tree.id&&oNode.pid!=this.Root.id?("<img align='absmiddle' src='"+(pNode.lastNode?icon.blank.src:icon.line.src)+"'>"):'')
}

TreeView.prototype.DrawNode=function(nNode,pNode){
	var str=""
	var indents=""
	var nid=nNode.id
	var nIndex=nNode.Index;
	this.DrawLine(pNode,nNode)
	if(nNode.hasChild)
	indents=nNode.indent+"<a style='cursor:hand' onclick='void(0);"+this.obj+".Toggle("+nIndex+",this);return false'>"+(this.Tree.id!=nNode.pid?("<img align='absmiddle' src='"+(nNode.lastNode?(nNode.open?icon.minusbottom.src:icon.plusbottom.src):(nNode.open?icon.minus.src:icon.plus.src))+"' id='icon"+nid+"' border=0>"):"")+"</a>"
	else
	indents=nNode.indent+(nNode.pid==this.Tree.id?'':("<img align='absmiddle' src='"+(nNode.lastNode?icon.joinbottom.src:icon.join.src)+"'>"))
	indents+="<img style='cursor:hand' onclick='"+this.obj+".Toggle("+nIndex+",this)' id='folder"+nid+"' align='absmiddle' src='"+(nNode.xicon?nNode.xicon:(nNode.hasChild?(nNode.open?icon.open.src:icon.close.src):icon.file.src))+"'>"
	str+="<div class='node'><nobr>"+indents+this.DrawLink(nNode)+"</nobr></div>"
	if(nNode.hasChild){
	str+="<div id='Child"+nid+"' style='display:"+(nNode.open?"":"none")+"'>"
	str+=this.DrawTree(nNode)
	str+="</div>"
	}
	return str;
}

TreeView.prototype.DrawTree=function(pNode){
	var str=""
	for(var i=0;i<this.Nodes.length;i++)
		if(this.Nodes[i].pid==pNode.id)
		str+=this.DrawNode(this.Nodes[i],pNode)
	return str
}

TreeView.prototype.DrawLink=function(oNode){
	var str=""
	str+=" <span id='NodeItem"+oNode.id+"' tabindex='1' title='"+oNode.title+"' onclick='"+this.obj+".Select(this)'>"+(oNode.link?("<a id='sort_"+oNode.id+"' href='"+oNode.link+"' target='"+oNode.target+"' onmouseover='window.status=\"\"' onmouseout='window.status=\"\"' onfocus='this.blur()' >"+oNode.txt+"</a>"):oNode.txt)+"</span>";
	//$(\"sort_operate"+oNode.id+"\").style.display=\"\";
	
	//str+='<span class="sort_operate" id="sort_operate'+oNode.id+'" style="display:none;" onmouseout="this.style.display=\'none\';"><a class="sort_add" title="�ڸ÷���������·���" href="javascript://" onclick="sort_operate('+oNode.id+',\'add\')"></a><a class="sort_edit" title="�޸ı�����" href="javascript://" onclick="sort_operate('+oNode.id+',\'edit\')"></a><a class="sort_del" title="ɾ�����" href="javascript://" onclick="sort_operate('+oNode.id+',\'del\')"></a></span>';
	return str
}


TreeView.prototype.toString=function(){
	var str=""
	for(var i=0;i<this.Nodes.length;i++){
	if(!this.Root)
	if(this.Nodes[i].pid==this.Tree.id)this.Root=this.Nodes[i]
	this.InitNode(this.Nodes[i])
	}
	str+=this.DrawTree(this.Tree)
	return str
}

TreeView.prototype.Toggle=function(nIndex,o){
	var nNode=this.Nodes[nIndex]
	o.blur();
	if(!nNode.hasChild)return;
	if(nNode.open)this.Collapse(nNode)
	else this.Expand(nNode)
}

TreeView.prototype.Expand=function(nNode){
	var nid=nNode.id
	var node=this.GetElm('Child'+nid)
	var oicon=this.GetElm('icon'+nid)
	node.style.display=''
	var img1=new Image()
	img1.src=(nNode.lastNode?icon.minusbottom.src:icon.minus.src)
	if(oicon)oicon.src=img1.src
	if(!nNode.xicon){
		var img2=new Image()
		img2.src=icon.open.src
		this.GetElm("folder"+nid).src=img2.src
	}
	if(this.ExpandOne)this.CloseOtherItem(nNode);
	nNode.open=true
}

TreeView.prototype.Collapse=function(nNode){
	var nid=nNode.id
	var node=this.GetElm('Child'+nid)
	var oicon=this.GetElm('icon'+nid)
	node.style.display='none'
	var img1=new Image()
	img1.src=(nNode.lastNode?icon.plusbottom.src:icon.plus.src)
	if(oicon)oicon.src=img1.src
	if(!nNode.xicon){
		var img2=new Image()
		img2.src=icon.close.src	
		this.GetElm("folder"+nid).src=img2.src
	}
	nNode.open=false
}

TreeView.prototype.ExpandAll=function(){
	for(i=0;i<this.Nodes.length;i++)
		if(this.Nodes[i].hasChild)this.Expand(this.Nodes[i])
}

TreeView.prototype.CollapseAll=function(){
	for(i=0;i<this.Nodes.length;i++)
		if(this.Nodes[i].hasChild&&this.Nodes[i].pid!=this.Tree.id&&this.Nodes[i]!=this.Root)this.Collapse(this.Nodes[i])
}

TreeView.prototype.CloseOtherItem=function(nNode){
	for(var i=0;i<this.Nodes.length;i++)
		if(this.Nodes[i].pid==nNode.pid&&this.Nodes[i].open){this.Collapse(this.Nodes[i]);break}
}
TreeView.prototype.Select=function(objNode,flag){
	if(!this.current)this.current=objNode
	this.current.className=""
	objNode.className="highlight"
	this.current=objNode
	var a=objNode.getElementsByTagName("A")
	if(a.length!=0&&flag)window.open(a[0].href,a[0].target);
	if(this.ie)objNode.focus()
}

TreeView.prototype.Select2=function(objNode,flag){
	if(!this.current)this.current=objNode
	this.current.className=""
	objNode.className="highlight"
	this.current=objNode
	var a=objNode.getElementsByTagName("A")
	//if(a.length!=0&&flag)window.open(a[0].href,a[0].target);
	if(this.ie)objNode.focus()
}

TreeView.prototype.openTo=function(nIndex){
	if(nIndex<0||nIndex>=this.Nodes.length)return;
	var nNode=this.Nodes[nIndex]
	while(nNode){
		if(!nNode.open&&nNode.hasChild)this.Expand(nNode)
		nNode=nNode.parent
	}
	this.Select2(this.GetElm("NodeItem"+this.Nodes[nIndex].id),true)
}

TreeView.prototype.GetElm=function(uid){
	return document.getElementById(uid)
}



