﻿var overColor="#FFCC00";
var outColor="#FFFFFF";

var overColor_User="#F5F5F5";
var outColor_User="#FFFFFF";

function getClassHtml(cArray,layer,ifEnd)
{
	var s="";
	var hasChild,isEnd;
	if(cArray.length>0)
	{
		for(var i=0;i<cArray.length;i++)
		{
			hasChild=typeof(cArray[i].ChildClass)!="undefined"?true:false;
			isEnd=i==cArray.length-1?true:false;

			s+="<div onmouseover=\"ChangeColor(document.all?event.srcElement:event.target,true);\" onmouseout=\"ChangeColor(document.all?event.srcElement:event.target,false);\" style='background-color:"+outColor+";";
			if(layer>0)
				s+="display:none";
			s+="' id=\"Class"+cArray[i].ID+"\""
			//if(hasChild)
				//s+=" onclick=\"ClickPlus("+cArray[i].ID+");\"";
			if(hasChild)
				s+=" hasChild=\"true\"";
			s+=">";
			for(var j=0;j<layer;j++)
			{
				if(!ifEnd)
					s+="<img src='images/vLine.gif' align='absmiddle' border=0>";
				else
					s+="<img src='images/blank.gif' align='absmiddle' border=0>";
			}
			s+="<img align='absmiddle' border=0 ";
			hasChild?(isEnd?(s+="src='images/folder3.gif' onclick=\"ClickPlus("+cArray[i].ID+");\" id=\"Image"+cArray[i].ID+"\" style=\"cursor:pointer\""):(s+="src='images/folder1.gif' onclick=\"ClickPlus("+cArray[i].ID+");\" id=\"Image"+cArray[i].ID+"\" style=\"cursor:pointer\"")):(isEnd?(s+="src='images/file1.gif'"):(s+="src='images/file.gif'"));
			s+=">";
			//hasChild?(s+="<img src='images/folderIco.gif' onclick=\"ClickPlus("+cArray[i].ID+");\" id=\"Image"+cArray[i].ID+"\" style=\"cursor:pointer\" align='absmiddle' border=0> "):(s+="<img src='images/fileIco.gif' align='absmiddle' border=0> ");
			s+="<!--input type=\"checkbox\" style=\"width:14px;height:14px;\" name=\"classID\" id=\"classID_"+cArray[i].ID+"\" value=\""+cArray[i].ID+"\" onclick=\"checkChange(this,true);\" parentID=\""+cArray[i].parentID+"\"-->";
			s+="<font color=\""+cArray[i].Color+"\">"+cArray[i].ClassName+"</font>";
			/***操作链接***/
			s+="<span align=\"right\" style=\"position:absolute;right:30px;padding-top:3px\">";
			s+="<a href=\"?action=edit&id="+cArray[i].ID+"\" onclick=\"event.cancelBubble=true;\">编辑</a>";
			s+="&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:ConfirmDelete('?action=del&id="+cArray[i].ID+"');\" onclick=\"event.cancelBubble=true;\">删除</a>";
			s+="</span>";
			if(hasChild)
			{
				s+=getClassHtml(cArray[i].ChildClass,layer+1,isEnd);
			}
			s+="</div>";
		}
	}
	return s;
}

function ConfirmDelete(url)
{
	if(confirm("删除分类，将删除其所有子分类及分类里的文件！确定删除？"))
		window.location=url;
}

function ClickPlus(cID)
{
	var d=document.getElementById("Class"+cID);
	var obj=document.getElementById("Image"+cID);
	var isEnd;
	if(d.childNodes)
	{
		if(obj.expanded!=true)
		{
			obj.expanded=true;
			isEnd=(obj.src.toLowerCase().substr(obj.src.lastIndexOf("/")+1)=="folder3.gif")?true:false;
			isEnd?obj.src="images/folder4.gif":obj.src="images/folder2.gif";
			//obj.nextSibling.src="images/openfolder.gif";
		}
		else
		{
			obj.expanded=false;
			isEnd=(obj.src.toLowerCase().substr(obj.src.lastIndexOf("/")+1)=="folder4.gif")?true:false;
			isEnd?obj.src="images/folder3.gif":obj.src="images/folder1.gif";
			//obj.nextSibling.src="images/folderIco.gif";
		}
		for(var i=0;i<d.childNodes.length;i++)
		{
			if(d.childNodes[i].tagName=="DIV")
			{
				if(obj.expanded==true)
					d.childNodes[i].style.display="";
				else
					d.childNodes[i].style.display="none";
			}
		}
	}
}

function ChangeColor(obj,isIn)
{

	//var obj=document.all?event.srcElement:evt.target;
	if(obj.id.substr(0,5)=="Class")
	{
		if(isIn)
		{
			obj.style.backgroundColor=overColor;

		}
		else
		{
			obj.style.backgroundColor=outColor;
		}
	}
	else
	{
		obj=obj.parentNode;
		ChangeColor(obj,isIn);
	}
}

function checkChange(obj,isClick)
{
	pID=parseInt(obj.getAttribute("parentID"));
	if(isClick)
	{
		var classObj=document.getElementById("Class"+obj.value);
		var checkObjs=classObj.getElementsByTagName("INPUT");
		for(var i=1;i<checkObjs.length;i++)
		{
			checkObjs[i].checked=obj.checked;
		}
	}
	if(pID>0)
	{
		classObj=document.getElementById("Class"+pID);
		checkObjs=classObj.getElementsByTagName("INPUT");
		if(checkObjs.length==2)
		{
			checkObjs[0].checked=obj.checked;
		}
		else
		{
			for(var i=1;i<checkObjs.length;i++)
			{
				if(checkObjs[i]!=obj)
				{
					if(checkObjs[i].checked!=obj.checked)
					{
						checkObjs[0].checked=false;
						break;
					}
					else
						checkObjs[0].checked=obj.checked;
				}
			}
		}
		checkChange(checkObjs[0],false);
	}
}

function GetDropDownList(cArray,iStr)
{
	var s="",temp="";
	if(iStr=="")
		s+="<select name=\"ClassID\" id=\"ClassID\">";
	for(var i=0;i<cArray.length;i++)
	{
		s+="<option value=\""+cArray[i].ID+"\">"+iStr+cArray[i].ClassName+"</option>";
		if(typeof(cArray[i].ChildClass)!="undefined")
		{
			temp=iStr+cArray[i].ClassName+"→";
			s+=GetDropDownList(cArray[i].ChildClass,temp);
		}
	}
	if(iStr=="")
		s+="</select>";
	return s;
}

function GetDropDownListById(cArray,iStr,id)
{
	var s="",temp="";
	if(id=="")
		id=0;
	else
		id=parseInt(id);
	if(iStr=="")
		s+="<select name=\"ClassID\" id=\"ClassID\">";
	for(var i=0;i<cArray.length;i++)
	{
		s+="<option value=\""+cArray[i].ID+"\"";
		if(id==cArray[i].ID)
			s+=" selected";
		s+=">"+iStr+cArray[i].ClassName+"</option>";
		if(typeof(cArray[i].ChildClass)!="undefined")
		{
			temp=iStr+cArray[i].ClassName+"→";
			s+=GetDropDownListById(cArray[i].ChildClass,temp,id);
		}
	}
	if(iStr=="")
		s+="</select>";
	return s;
}






/***前台使用函数***/
function getClassNavigate(cArray,isTop,pID)
{
	var s="",s1="",temp;
	var r={main:"",div:""}
	var hasChild=false;
	for(var i=0;i<cArray.length;i++)
	{
		if(typeof(cArray[i].ChildClass)!="undefined")
		{
			hasChild=true;
			break;
		}
	}
	if(isTop)
		s+="<table border=0 cellpandding=0 cellspacing=0 width=100%><tr>";
	else
		s+="<div id=\"ClassDiv"+pID+"\" onmouseover=\"DivShowFunc(this);\" onmouseout=\""+(hasChild?" ":"this.style.visibility='hidden';")+"TimeOutFunction=setTimeout(\'HidAllDiv()',500);\" style=\"display:none;visibility:hidden;background-color:#FFFFFF;margin-top:-10px;z-index:10000;text-align:left;\"><div class=\"popG\"><div class=\"innerPop\"><div class=\"popTria\"></div><div class=\"popCont\"><ul class=\"clearfix\">";
	for(var i=0;i<cArray.length;i++)
	{
		hasChild=typeof(cArray[i].ChildClass)!="undefined"?true:false;
		if(isTop)
		{
			s+="<td style=\"padding-right:3px\" algin=center ";
			if(hasChild){
				s+=" onmouseover=\"ShowClass(this,event,"+cArray[i].ID+",true,false);\" onmouseout=\"ShowClass(this,event,"+cArray[i].ID+",false,false);\"><a href=\"index.aspx?c="+getShowClassID(cArray[i])+"\"><font color=\"#ffffff\"><b>" + cArray[i].ClassName + "</b></font></a>";
				temp = getClassNavigate(cArray[i].ChildClass,false,cArray[i].ID);
				s1 += temp.main + temp.div;
			}
			else
				s+="><a href=\"index.aspx?c="+getShowClassID(cArray[i])+"\"><font color=\"#ffffff\"><b>" + cArray[i].ClassName + "</b></font></a>";
			s+="</td>";
		}
		else
		{
			s+="<li";
			if(hasChild){
				s+=" onmouseover=\"ShowClass(this,event,"+cArray[i].ID+",true,true);this.style.backgroundColor=overColor_User;\" onmouseout=\"ShowClass(this,event,"+cArray[i].ID+",false,true);this.style.backgroundColor=outColor_User;\"><a href=\"index.aspx?c="+getShowClassID(cArray[i])+"\" class=\"xc\">" + cArray[i].ClassName + "</a>";
				temp = getClassNavigate(cArray[i].ChildClass,false,cArray[i].ID);
				s1 += temp.main + temp.div;
			}
			else
				s+=" onmouseover=\"this.style.backgroundColor=overColor_User\"; onmouseout=\"this.style.backgroundColor=outColor_User;\"><a href=\"index.aspx?c="+getShowClassID(cArray[i])+"\" class=\"xc\">"+cArray[i].ClassName+"</a>";
			s+="</li>";
		}
	}
	if(isTop)
		s+="</tr></table>";
	else
		s+="</ul></div></div></div></div>";

	r.main=s;
	r.div=s1
	return r;
}

function getShowClassID(classNode)
{
	var s=classNode.ID;
	//不用返回分类字符串
	return s;
	if(typeof(classNode.ChildClass)!="undefined")
	{
		for(var i=0;i<classNode.ChildClass.length;i++)
		{
			//s+=","+classNode.ChildClass[i].ID;
			if(typeof(classNode.ChildClass[i].ChildClass)!="undefined")
				s+=","+getShowClassID(classNode.ChildClass[i])
			else
				s+=","+classNode.ChildClass[i].ID;
		}
	}
	return s;
}

function ShowClass(obj,evt,pID,ifShow,isSide)
{
	//var classDiv=obj.getElementsByTagName("DIV")[0];
	var classDiv=document.getElementById("ClassDiv"+pID);
	var p=getAbsolutePos(obj);
	classDiv.style.position="absolute";
	if(isSide){
		if(p.x+obj.offsetWidth-6+classDiv.scrollWidth>document.body.clientWidth)
			classDiv.style.left=p.x-classDiv.scrollWidth+6;
		else
			classDiv.style.left=p.x+obj.offsetWidth-6;
		classDiv.style.top=p.y+6;
	}
	else{
		classDiv.style.left=p.x+6;
		classDiv.style.top=p.y+obj.offsetHeight-6;
	}
	if(ifShow){
		//clearTimeout(TimeOutFunction);
		classDiv.style.visibility="visible";
		classDiv.style.display="inline";
		//DivInShow.push(classDiv);
	}
	else{
		classDiv.style.visibility="hidden";
		//TimeOutFunction=setTimeout("HidAllDiv()",500);
	}
}




//控制显示常量
var DivInShow=new Array();
DivInShow.length=0;
var TimeOutFunction;

function HidAllDiv()
{
	for(var i=0;i<DivInShow.length;i++)
	{
		DivInShow[i].style.visibility="hidden";
	}
	DivInShow.length=0;
}

function DivShowFunc(obj)
{
	clearTimeout(TimeOutFunction);
	obj.style.visibility="visible";
	obj.style.display="inline";
	DivInShow.push(obj);
}

function getAbsolutePos(el)
{
	var SL = 0, ST = 0;
	var is_div = /^div$/i.test(el.tagName);
	if (is_div && el.scrollLeft)
		SL = el.scrollLeft;
	if (is_div && el.scrollTop)
		ST = el.scrollTop;
	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
	if (el.offsetParent)
	{
	  var tmp = this.getAbsolutePos(el.offsetParent);
	  r.x += tmp.x;
	  r.y += tmp.y;
	}
	return r;
}