﻿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);
	}
}

String.prototype.Repeat = function(count) {
	if (typeof (count) != "number" || count < 1) {
		return this;
	}
	var r = "";
	for (var i = 0; i < count; i++) {
		r += this;
	}
	return r;
}

function ClassDropDownListBuilder(data, includeAll,selected, indent, color) {
	if (typeof (data) == "undefined" || data == null) {
		return "";
	}
	if (typeof (selected) == "undefined" || selected == null) {
		selected = 0;
	} else {
		selected = parseInt(selected);
	}
	if (isNaN(selected))
		selected = 0;

	if (typeof (indent) == "undefined" || indent == null) {
		indent = 0;
	}
	if (isNaN(indent) || indent < 0)
		indent = 0;
		
	var s="";

	if (includeAll && indent == 0) {
		s += '<option value="">全部</option>\r\n';
	}
	for (var i = 0; i < data.length; i++) {
		s += '<option value="';
		s += data[i].ID;
		s += '"';
		s += selected == data[i].ID ? ' selected="selected"' : '';
		if (data[i].Color != null && data[i].Color != "") {
			s += ' style="color:' + data[i].Color + '"';
		} else if (color) {
			s += ' style="color:' + color + '"';
		}
		s += '>';
		if (indent > 0) {
			s += ("&nbsp;".Repeat(5)).Repeat(indent);
		}
		s += data[i].ClassName;
		s += "</option>\r\n";
		if (typeof (data[i].ChildClass) != "undefined") {
			s += ClassDropDownListBuilder(data[i].ChildClass, false, selected, indent + 1, data[i].Color);
		}
	}
	if (indent == 0) {
		s = '<select name="ClassID" id="ClassID">' + s + '</select>';
	}
	return s;
}

function GetDropDownListEx(cArray,iStr)
{
	var s="",temp="";
	if (iStr == "") {
	    s += "<select name=\"ClassID\" id=\"ClassID\">";
	    s += '<option value="">请选择一个分类</option>';
	}
	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 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 toggleUnion() {
	var ub=document.getElementById('unionBox');
	if (ub) ub.style.display = ub.style.display != 'none' ? 'none' : 'block'; 
}


/***前台使用函数***/
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>' + 
	     '<td class="classMenuBar" style="padding:5px" algin="center" onmouseover="this.className=\'classMenuBarOver\';"' +
	     ' onmouseout="this.className=\'classMenuBar\';"><a href="http://www.levelup.cn" class="mainmenu">主站</a></td>' +
	     '<td class="classMenuBar" style="padding:5px" algin="center" onmouseover="this.className=\'classMenuBarOver\';"' +
	     ' onmouseout="this.className=\'classMenuBar\';"><a href="http://www.levelup.cn/comic/" class="mainmenu">动漫频道</a></td>' +
	     '<td class="classMenuBar" style="padding:5px" algin="center" onmouseover="this.className=\'classMenuBarOver\';"' +
	     ' onmouseout="this.className=\'classMenuBar\';"><a href="index.aspx" class="mainmenu">全部列表</a></td>' +
	     '<td class="classMenuBar" style="padding:5px" algin="center" onmouseover="this.className=\'classMenuBarOver\';"' +
	     ' onmouseout="this.className=\'classMenuBar\';"><a href="Group.aspx" class="mainmenu">分组列表</a></td>' +
	     '<td class="classMenuBar" style="padding:5px" algin="center" onmouseover="this.className=\'classMenuBarOver\';"' +
	     ' onmouseout="this.className=\'classMenuBar\';"><a href="javascript:void(0);" onmouseover="toggleUnion();return false;" onclick="toggleUnion();return;" class="mainmenu">资源发布联盟</a></td>' +
	     '<td style="color:white">&nbsp;|&nbsp;</td>';
	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;z-index:10000;\"><table class=menu border=0 cellpandding=0 cellspacing=0>";
	
	for(var i=0;i<cArray.length;i++)
	{
		hasChild=typeof(cArray[i].ChildClass)!="undefined"?true:false;
		if(isTop)
		{
		    s += "<td class=\"classMenuBar\" style=\"padding:5px\" algin=\"center\" onmouseover=\"this.className='classMenuBarOver';";
			
			if (hasChild) {
			    s += "ShowClass(this,event," + cArray[i].ID + ",true,false);";
			}
			
			s += "\" onmouseout=\"this.className='classMenuBar';";
			
			if (hasChild) {
			    s += "ShowClass(this,event," + cArray[i].ID + ",false,false);";
			    temp = getClassNavigate(cArray[i].ChildClass, false, cArray[i].ID);
			    s1 += temp.main + temp.div;
			}

			s += "\"><a href=\"index.aspx?c=" + getShowClassID(cArray[i]) + "\" class=\"mainmenu\">" + cArray[i].ClassName + "</a></td>";
		}
		else {
		    var lastrow = (i + 1 == cArray.length) ? " style=\"border-bottom:none;\"" : "";
			s+="<tr><td class=\"folder\" height=22 ";
			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;\"" + lastrow + "><a href=\"index.aspx?c="+getShowClassID(cArray[i])+"\" class=submenu2>" + 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;\"" + lastrow + "><a href=\"index.aspx?c=" + getShowClassID(cArray[i]) + "\" class=submenu>" + cArray[i].ClassName + "</a>";
			s+="</td></tr>";
		}
	}
	if (isTop)
		s += '<td style="color:white">&nbsp;|&nbsp;</td><td class="classMenuBar" style="padding:5px" algin="center" onmouseover="this.className=\'classMenuBarOver\';"' 
			+ ' onmouseout="this.className=\'classMenuBar\';"><a href="http://bbs.levelup.cn" target="_blank" class="mainmenu">社区</a></td>'
			+ '</tr></table>';
	else
		s += "</table></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";

	var offset = 1;
	if(isSide){
	    if (p.x + obj.offsetWidth - offset + classDiv.scrollWidth > document.body.clientWidth)
	        classDiv.style.left = p.x - classDiv.scrollWidth + offset;
		else
		    classDiv.style.left = p.x + obj.offsetWidth - offset;
		classDiv.style.top = p.y + offset;
	}
	else{
	    classDiv.style.left = p.x + offset;
	    classDiv.style.top = p.y + obj.offsetHeight - offset;
	}
	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;
}