<!--#include file="Admin_Const.asp"-->
<%
if Not Cl.TrueOtherPurview("LinkSite") then
	Admin_ShowErr("<br><li>您无此操作权限！</li>")
end if
const MaxPerPage=20
dim Action,ParentID,ParentPath

Action=Trim(request("Action"))
ParentID=Trim(request("ParentID"))
if Not IsNumeric(ParentID) then
	ParentID=0
else
	ParentID=CLng(ParentID)
end if
strFileName="Admin_LinkClass.asp"
%>
<html>
<head>
<title>友情链接管理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="../Skins/Admin_Style.Css" rel="stylesheet" type="text/css">
<script src="../Inc/Js/Admin.js" type="text/javascript"></script>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="1" class="border">
  <tr class="title"> 
    <td height="22" colspan="2" align="center"><strong>友情链接管理</strong></td>
  </tr>
  <tr class="tdbg"> 
    <td width="70" height="30"><strong>管理导航：</strong></td>
    <td height="30"><a href="<%=strFileName%>">管理首页</a> | <a href="<%=strFileName%>?Action=Order">一级栏目排序</a>&nbsp;|&nbsp;<a href="<%=strFileName%>?Action=OrderN">N级栏目排序</a>&nbsp;|&nbsp;<a href="<%=strFileName%>?Action=Reset">复位所有栏目</a>&nbsp;|&nbsp;<a href="<%=strFileName%>?Action=Unite">链接栏目合并</a>
	<br>
	<a href="<%=strFileName%>?Action=Add">添加友情链接</a> | <a href="<%=strFileName%>?Action=Add">添加链接栏目</a>&nbsp;|&nbsp;<a href="<%=strFileName%>?Action=UpDateClassData">更新链接栏目数据</a>
	</td>
  </tr>
</table>
<br>
<%
OpenConn
Select Case Action
Case "Add"
	call ClassInfo()
Case "SaveAdd"
	call SaveAdd()
Case "Modify"
	call ClassInfo()
Case "SaveModify"
	call SaveModify()
Case "Move"
	call MoveClass()
Case "SaveMove"
	call SaveMove()
Case "Del"
	call DeleteClass()
Case "Clear"
	call ClearClass()
Case "UpOrder"
	call UpOrder() 
Case "DownOrder"
	call DownOrder() 
Case "Order"
	call Order()
Case "UpOrderN"
	call UpOrderN() 
Case "DownOrderN"
	call DownOrderN() 
Case "OrderN"
	call OrderN()
Case "Reset"
	call Reset()
Case "SaveReset"
	call SaveReset()
Case "Unite"
	call Unite()
Case "SaveUnite"
	call SaveUnite()
Case "UpDateClassData"
	call UpDateClassData()
	Response.Write Cl.ShowSuc("恭喜你，更新成功！返回 <a href='"&strFileName&"'>栏目管理首页</a> 。")
Case else
	call Main()
End Select
CloseAllObj

if FoundErr=True then Admin_ShowErr(ErrMsg)

sub Main()
	dim arrShowLine(10)
	for i=0 to ubound(arrShowLine)
		arrShowLine(i)=False
	next
	dim sqlClass,rsClass,iDepth,TempName
	sqlClass="select * From Cl_LinkClass order by RootID,OrderID"
	set rsClass=Cl.Execute(sqlClass)
%>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" class="border">
  <tr class="title">
    <td width="30" align="center"><strong>ID</strong></td>
    <td height="22" align="center"><strong>栏目名称</strong></td>
    <td width="40" align="center"><strong>属性</strong></td>
    <td width="300" height="22" align="center"><strong>操作选项</strong></td>
  </tr>
  <% 
do while not rsClass.eof 
%>
  <tr class="tdbg" onMouseOut="this.className='tdbg'" onMouseOver="this.className='tdbg2'"> 
    <td width="30" align="center"><Font Color=#0000ff><%=rsClass("ClassID")%></font></td>
    <td> <% 
	iDepth=rsClass("Depth")
	if rsClass("NextID")>0 then
		arrShowLine(iDepth)=True
	else
		arrShowLine(iDepth)=False
	end if
	if iDepth>0 then
	  	for i=1 to iDepth 
			if i=iDepth then 
				if rsClass("NextID")>0 then 
					response.write "<img src='../images/Tree/line1.gif' width='17' height='16' valign='abvmiddle'>" 
				else 
					response.write "<img src='../images/Tree/line2.gif' width='17' height='16' valign='abvmiddle'>" 
				end if 
			else 
				if arrShowLine(i)=True then
					response.write "<img src='../images/Tree/line3.gif' width='17' height='16' valign='abvmiddle'>" 
				else
					response.write "<img src='../images/Tree/line4.gif' width='17' height='16' valign='abvmiddle'>" 
				end if
			end if 
	  	next 
	  end if 
	  if rsClass("Child")>0 then 
	  	response.write "<img src='../images/Tree/folder4.gif' width='15' height='15' valign='abvmiddle'>" 
	  else 
	  	response.write "<img src='../images/Tree/folder3.gif' width='15' height='15' valign='abvmiddle'>" 
	  end if 
	  TempName="<a href='"&strFileName&"?Action=Modify&ClassID=" & rsClass("ClassID") & "' title='" & rsClass("ReadMe") & "'>" & rsClass("ClassName") & "</a>"
	  if rsClass("Child")>0 then 
	  	TempName = TempName & "(" & rsClass("Child") & ")" 
	  end if
	  if rsClass("Depth")=0 then 
	  	response.write "<b>" & TempName & "</b>"
	  else
	  	response.write TempName
	  end if
	  %> </td>
    <td width="40" align="center"> <%
	if rsClass("IsElite")=True then
		response.write "<font color=blue>荐</font>"
	else
		response.write "普"
	end if
	%> </td>
    <td align="center"><a href="<%=strFileName%>?Action=Add&ParentID=<%=rsClass("ClassID")%>">添加子栏目</a> 
      | <a href="<%=strFileName%>?Action=Modify&ClassID=<%=rsClass("ClassID")%>">修改设置</a> 
      | <a href="<%=strFileName%>?Action=Move&ClassID=<%=rsClass("ClassID")%>">移动栏目</a> 
      | <a href="<%=strFileName%>?Action=Clear&ClassID=<%=rsClass("ClassID")%>" onClick="return ConfirmDel3();">清空</a> 
      | <a href="<%=strFileName%>?Action=Del&ClassID=<%=rsClass("ClassID")%>" onClick="<%if rsClass("Child")>0 then%>return ConfirmDel1();<%else%>return ConfirmDel2();<%end if%>">删除</a></td>
  </tr>
  <% 
	rsClass.movenext 
loop 
%>
</table>
<script language="JavaScript" type="text/JavaScript">
function ConfirmDel1()
{
   alert("此栏目下还有子栏目，必须先删除下属子栏目后才能删除此栏目！");
   return false;
}

function ConfirmDel2()
{
   if(confirm("删除栏目将同时删除此栏目中的所有数据，并且不能恢复！确定要删除此栏目吗？"))
     return true;
   else
     return false;
	 
}
function ConfirmDel3()
{
   if(confirm("清空栏目将把栏目（包括子栏目）的所有数据放入回收站中！确定要清空此栏目吗？"))
     return true;
   else
     return false;
	 
}
</script>
<%
end sub

sub ClassInfo()
dim Prs,ClassID,sAction,SubmitValue
Dim sClassName,sClassDir,sReadme,sIsElite,sShowOnTop
Dim sCommentIsChk,sAddIsChk,sCommentGroup,sAddPoint
if Action="Add" then
	sClassName="":sClassDir="":sReadme="":sIsElite=True:sShowOnTop=True
	sAction="SaveAdd":SubmitValue="添 加"
elseif Action="Modify" then
	ClassID=Trim(request("ClassID"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>参数不足！</li>"
		exit sub
	end if
	ClassID=CLng(ClassID)
	set Prs=Cl.Execute("select * From Cl_LinkClass where ClassID=" & ClassID & "")
	if Prs.bof and Prs.eof then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>找不到指定的栏目！</li>"
		exit sub
	End if
	ParentID=Prs("ParentID"):ParentPath=Prs("ParentPath")
	sClassName=Prs("ClassName"):sClassDir=Prs("ClassDir"):sReadme=Prs("Readme"):sIsElite=Prs("IsElite")
	sShowOnTop=Prs("ShowOnTop")
	Set Prs=Nothing
	sAction="SaveModify":SubmitValue="修 改"
end if
%>
<form name="form1" method="post" action="<%=strFileName%>" onsubmit="return check()">
  <table width="100%" border="0" align="center" cellpadding="2" cellspacing="1" class="border">
    <tr class="title"> 
      <td height="22" colspan="2" align="center"><strong><%=SubmitValue%> 栏 目</strong></td>
    </tr>
	<%if Action="Modify" then%>
    <tr class="tdbg"> 
      <td width="150" align="right"><strong>所属栏目：</strong></td>
      <td> <%
	if ParentID<=0 then
	  	response.write "无（作为一级栏目）"
	else
    	dim rsParentClass
		set rsParentClass=Cl.Execute("Select * From Cl_LinkClass where ClassID in (" & ParentPath & ") order by Depth")
		do while not rsParentClass.eof
			for i=1 to rsParentClass("Depth")
				response.write "&nbsp;&nbsp;&nbsp;"
			next
			if rsParentClass("Depth")>0 then
				response.write "└"
			end if
			response.write "&nbsp;" & rsParentClass("ClassName") & "<br>"
			rsParentClass.movenext
		loop
		set rsParentClass=Nothing
	end if
	%> <br>&nbsp;<font color="#0000ff">提示：如果你想改变所属栏目，请<a href='<%=strFileName%>?Action=Move&ClassID=<%=ClassID%>'>点此移动栏目</a></font></td>
    </tr>
	<%else%>
    <tr class="tdbg"> 
      <td width="150" align="right"><strong>所属栏目：</strong></td>
      <td> <select name="ParentID">
          <%=ShowLinkClass_Option(0,ParentID)%> 
        </select></td>
    </tr>
	<%end if%>
    <tr class="tdbg"> 
      <td width="150" align="right"><strong>栏目名称：</strong></td>
      <td><input name="ClassName" type="text" value="<%=sClassName%>" size="50" maxlength="20"> <font color=red>*</font>
        <input name="ClassID" type="hidden" id="ClassID" value="<%=ClassID%>"></td>
    </tr>
<!--==================================================================-->
<!--    <tr class="tdbg"> 
      <td width="150" align="right"><strong>栏目目录（英文名）：</strong></td>
      <td><input name="ClassDir" type="text" value="<%=sClassDir%>" size="50" maxlength="20"> <font color=red>*</font><br><font color="#ff0033">注意：只能是英文，不能带空格或“\”、“/”等符号，此项更改后，请重新生成此栏目所有内容。</font></td>
    </tr>-->
    <tr class="tdbg"> 
      <td width="150" align="right"><strong>栏目说明：</strong></td>
      <td><textarea name="Readme" cols="42" rows="4" id="Readme"><%=sReadMe%></textarea><br> <font color="#ff0033">注意：（不支持HTML，不能有回车，说明可为留空。）</font></td>
    </tr>
    <tr class="tdbg">
      <td align="right"><strong>推荐栏目：</strong></td>
      <td>
		<input name="IsElite" type="radio" value="Yes" <%if sIsElite=True then response.write " checked"%>> 是&nbsp;&nbsp;&nbsp;&nbsp; 
		<input type="radio" name="IsElite" value="No" <%if sIsElite=False then response.write " checked"%>> 否</td>
    </tr>
    <tr class="tdbg">
      <td align="right"><strong>固顶栏目：</strong></td>
      <td>
		<input name="ShowOnTop" type="radio" value="Yes" <%if sShowOnTop=True then response.write " checked"%>> 是&nbsp;&nbsp;&nbsp;&nbsp; 
		<input type="radio" name="ShowOnTop" value="No" <%if sShowOnTop=False then response.write " checked"%>> 否</td>
    </tr>
<!--==================================================================-->
    <tr class="tdbg"> 
      <td height="40" colspan="2" align="center"><input name="Action" type="hidden" id="Action" value="<%=sAction%>"> 
        <input name="Submit" type="submit" value=" <%=SubmitValue%> "> 
        &nbsp; <input name="Cancel" type="button" id="Cancel" value=" 取 消 " onClick="window.location.href='<%=strFileName%>'"></td>
    </tr>
</table>
</form>
<script language="JavaScript" type="text/JavaScript">
function check()
{
  if (document.form1.ClassName.value=="")
  {
    alert("栏目名称不能为空！");
	document.form1.ClassName.focus();
	return false;
  }
}
</script>
<%
end sub

sub MoveClass()
	dim ClassID,rsClass,i
	ClassID=Trim(request("ClassID"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>参数不足！</li>"
		exit sub
	else
		ClassID=CLng(ClassID)
	end if
	
	sql="select * From Cl_LinkClass where ClassID=" & ClassID
	set rsClass=server.CreateObject ("Adodb.recordset")
	rsClass.open sql,Conn,1,3
	if rsClass.bof and rsClass.eof then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>找不到指定的栏目！</li>"
	else
%>
<form name="form1" method="post" action="<%=strFileName%>">
  <table width="100%" border="0" align="center" cellpadding="2" cellspacing="1" class="border">
    <tr class="title"> 
      <td height="22" colspan="2" align="center"><strong>移 动 栏 目</strong></td>
    </tr>
    <tr class="tdbg"> 
      <td width="200"><strong>栏目名称：</strong></td>
      <td><%=rsClass("ClassName")%> <input name="ClassID" type="hidden" id="ClassID" value="<%=rsClass("ClassID")%>"></td>
    </tr>
    <tr class="tdbg">
      <td width="200"><strong>当前所属栏目：</strong></td>
      <td>
        <%
	if rsClass("ParentID")<=0 then
	  	response.write "无（作为一级栏目）"
	else
    	dim rsParent,sqlParent
		sqlParent="Select * From Cl_LinkClass where ClassID in (" & rsClass("ParentPath") & ") order by Depth"
		set rsParent=server.CreateObject("adodb.recordset")
		rsParent.open sqlParent,Conn,1,1
		do while not rsParent.eof
			for i=1 to rsParent("Depth")
				response.write "&nbsp;&nbsp;&nbsp;"
			next
			if rsParent("Depth")>0 then
				response.write "└"
			end if
			response.write "&nbsp;" & rsParent("ClassName") & "<br>"
			rsParent.movenext
		loop
		rsParent.close
		set rsParent=Nothing
	end if
	%>
      </td>
    </tr>
    <tr class="tdbg"> 
      <td width="200"><strong>移动到：</strong><br>
        不能指定为当前栏目的下属子栏目<br>
        不能指定为外部栏目</td>
      <td><select name="ParentID" size="2" style="height:300px;width:500px;"><%=ShowLinkClass_Option(0,rsClass("ParentID"))%></select></td>
    </tr>
    <tr class="tdbg"> 
      <td height="40" colspan="2" align="center"><input name="Action" type="hidden" id="Action" value="SaveMove"> 
        <input name="Submit" type="submit" value=" 保存移动结果 " style="cursor:hand;">
        &nbsp; 
        <input name="Cancel" type="button" id="Cancel" value=" 取 消 " onClick="window.location.href='<%=strFileName%>'" style="cursor:hand;"></td></tr>
  </table>
</form>
<%
	end if
	rsClass.close
	set rsClass=Nothing
end sub

sub Order() 
	dim sqlClass,rsClass,iCount,j 
	sqlClass="select * From Cl_LinkClass where ParentID=0 order by RootID" 
	set rsClass=server.CreateObject("adodb.recordset") 
	rsClass.open sqlClass,Conn,1,1 
	iCount=rsClass.recordcount 
%>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" class="border"> 
  <tr class="title">  
    <td height="22" colspan="4" align="center"><strong>一 级 栏 目 排 序</strong></td> 
  </tr> 
  <% 
j=1 
do while not rsClass.eof 
%> 
    <tr class="tdbg" onMouseOut="this.className='tdbg'" onMouseOver="this.className='tdbg2'">  
      <td width="200">&nbsp;<%=rsClass("ClassName")%></td> 
<% 
	if j>1 then 
  		response.write "<form action='" & strFileName & "?Action=UpOrder' method='post'><td width='150'>" 
		response.write "<select name=MoveNum size=1><option value=0>向上移动</option>" 
		for i=1 to j-1 
			response.write "<option value="&i&">"&i&"</option>" 
		next 
		response.write "</select>" 
		response.write "<input type=hidden name=ClassID value="&rsClass("ClassID")&">"
		response.write "<input type=hidden name=cRootID value="&rsClass("RootID")&">&nbsp;<input type=submit name=Submit value=修改>" 
		response.write "</td></form>" 
	else 
		response.write "<td width='150'>&nbsp;</td>" 
	end if 
	if iCount>j then 
  		response.write "<form action='"&strFileName&"?Action=DownOrder' method='post'><td width='150'>" 
		response.write "<select name=MoveNum size=1><option value=0>向下移动</option>" 
		for i=1 to iCount-j 
			response.write "<option value="&i&">"&i&"</option>" 
		next 
		response.write "</select>" 
		response.write "<input type=hidden name=ClassID value="&rsClass("ClassID")&">"
		response.write "<input type=hidden name=cRootID value="&rsClass("RootID")&">&nbsp;<input type=submit name=Submit value=修改>" 
		response.write "</td></form>" 
	else 
		response.write "<td width='150'>&nbsp;</td>" 
	end if 
%> 
      <td>&nbsp;</td>
	</tr> 
  <% 
	j=j+1 
	rsClass.movenext 
loop 
%> 
</table> 
<% 
	rsClass.close 
	set rsClass=Nothing 
end sub 

sub OrderN() 
	dim sqlClass,rsClass,iCount,trs,UpMoveNum,DownMoveNum 
	sqlClass="select * From Cl_LinkClass order by RootID,OrderID" 
	set rsClass=server.CreateObject("adodb.recordset") 
	rsClass.open sqlClass,Conn,1,1 
%>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" class="border"> 
  <tr class="title">  
    <td height="22" colspan="4" align="center"><strong>N 级 栏 目 排 序</strong></td> 
  </tr> 
  <% 
do while not rsClass.eof 
%> 
    <tr class="tdbg" onMouseOut="this.className='tdbg'" onMouseOver="this.className='tdbg2'">  
      <td width="300"> 
	  <% 
	for i=1 to rsClass("Depth") 
	  	response.write "&nbsp;&nbsp;&nbsp;" 
	next 
	if rsClass("Child")>0 then 
		response.write "<img src='../images/Tree/folder4.gif' width='15' height='15' valign='abvmiddle'>" 
	else 
	  	response.write "<img src='../images/Tree/folder3.gif' width='15' height='15' valign='abvmiddle'>" 
	end if 
	if rsClass("ParentID")=0 then 
		response.write "<b>" 
	end if 
	response.write rsClass("ClassName") 
	if rsClass("Child")>0 then 
		response.write "(" & rsClass("Child") & ")" 
	end if 
	%></td> 
<% 
	if rsClass("ParentID")>0 then   '如果不是一级栏目，则算出相同深度的栏目数目，得到该栏目在相同深度的栏目中所处位置（之上或者之下的栏目数） 
		'所能提升最大幅度应为For i=1 to 该版之上的版面数 
		set trs=Cl.Execute("select count(ClassID) From Cl_LinkClass where ParentID="&rsClass("ParentID")&" and OrderID<"&rsClass("OrderID")&"") 
		UpMoveNum=trs(0) 
		if isnull(UpMoveNum) then UpMoveNum=0 
		if UpMoveNum>0 then 
  			response.write "<form action='"&strFileName&"?Action=UpOrderN' method='post'><td width='150'>" 
			response.write "<select name=MoveNum size=1><option value=0>向上移动</option>" 
			for i=1 to UpMoveNum 
				response.write "<option value="&i&">"&i&"</option>" 
			next 
			response.write "</select>" 
			response.write "<input type=hidden name=ClassID value="&rsClass("ClassID")&">&nbsp;<input type=submit name=Submit value=修改>" 
			response.write "</td></form>" 
		else 
			response.write "<td width='150'>&nbsp;</td>" 
		end if 
		trs.close 
		'所能降低最大幅度应为For i=1 to 该版之下的版面数 
		set trs=Cl.Execute("select count(ClassID) From Cl_LinkClass where ParentID="&rsClass("ParentID")&" and orderID>"&rsClass("orderID")&"") 
		DownMoveNum=trs(0) 
		if isnull(DownMoveNum) then DownMoveNum=0 
		if DownMoveNum>0 then 
  			response.write "<form action='"&strFileName&"?Action=DownOrderN' method='post'><td width='150'>" 
			response.write "<select name=MoveNum size=1><option value=0>向下移动</option>" 
			for i=1 to DownMoveNum 
				response.write "<option value="&i&">"&i&"</option>" 
			next 
			response.write "</select>" 
			response.write "<input type=hidden name=ClassID value="&rsClass("ClassID")&">&nbsp;<input type=submit name=Submit value=修改>" 
			response.write "</td></form>" 
		else 
			response.write "<td width='150'>&nbsp;</td>" 
		end if 
		trs.close 
	else 
		response.write "<td colspan=2>&nbsp;</td>" 
	end if 
%> 
      <td>&nbsp;</td>
	</tr> 
  <% 
	UpMoveNum=0 
	DownMoveNum=0 
	rsClass.movenext 
loop 
%> 
</table> 
<% 
	rsClass.close 
	set rsClass=Nothing 
end sub 

sub Reset() 
%>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" class="border"> 
  <tr class="title">  
    <td height="22" colspan="3" align="center"><strong>复 位 所 有 栏 目</strong></td> 
  </tr> 
    <tr class="tdbg">  
    <td align="center">  
      <form name="form1" method="post" action="<%=strFileName%>?Action=SaveReset"> 
        <table width="80%" border="0" cellspacing="0" cellpadding="0"> 
          <tr>  
            <td height="150"><font color="#FF0000"><strong>注意：</strong></font><br> 
              &nbsp;&nbsp;&nbsp;&nbsp;如果选择复位所有栏目，则所有栏目都将作为一级栏目，这时您需要重新对各个栏目进行归属的基本设置。不要轻易使用该功能，仅在做出了错误的设置而无法复原栏目之间的关系和排序的时候使用。  
            </td> 
          </tr> 
        </table> 
        <input type="submit" name="Submit" value="复位所有栏目"> &nbsp; <input name="Cancel" type="button" id="Cancel" value=" 取 消 " onClick="window.location.href='<%=strFileName%>'" style="cursor:hand;">
      </form></td>
    </tr>
</table>
<%
end sub

sub Unite()
%>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" class="border">
  <tr class="title"> 
    <td height="22" colspan="3" align="center"><strong>栏 目 合 并</strong></td>
  </tr>
  <tr class="tdbg"> 
    <td height="100"><form name="myform" method="post" action="<%=strFileName%>" onSubmit="return ConfirmUnite();">
        &nbsp;&nbsp;将栏目 
        <select name="ClassID" id="ClassID">
        <%=ShowLinkClass_Option(1,0)%>
        </select>
        合并到
        <select name="TargetClassID" id="TargetClassID">
        <%=ShowLinkClass_Option(1,0)%>
        </select>
        <br> <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        <input name="Action" type="hidden" id="Action" value="SaveUnite">
        <input type="submit" name="Submit" value=" 合并栏目 " style="cursor:hand;">
        &nbsp;&nbsp; 
        <input name="Cancel" type="button" id="Cancel" value=" 取 消 " onClick="window.location.href='<%=strFileName%>'" style="cursor:hand;">
      </form>
	</td>
  </tr>
  <tr class="tdbg"> 
    <td height="60"><strong>注意事项：</strong><br>
      &nbsp;&nbsp;&nbsp;&nbsp;所有操作不可逆，请慎重操作！！！<br>
      &nbsp;&nbsp;&nbsp;&nbsp;不能在同一个栏目内进行操作，不能将一个栏目合并到其下属栏目中。目标栏目中不能含有子栏目。<br>
      &nbsp;&nbsp;&nbsp;&nbsp;合并后您所指定的栏目（或者包括其下属栏目）将被删除，所有数据将转移到目标栏目中。</td>
  </tr>
</table> 
<script language="JavaScript" type="text/JavaScript">
function ConfirmUnite()
{
  if (document.myform.ClassID.value==document.myform.TargetClassID.value)
  {
    alert("请不要在相同栏目内进行操作！");
	document.myform.TargetClassID.focus();
	return false;
  }
  if (document.myform.TargetClassID.value=="")
  {
    alert("目标栏目不能指定为含有子栏目的栏目！");
	document.myform.TargetClassID.focus();
	return false;
  }
}
</script>
<% 
end sub
%> 
</body> 
</html> 
<% 
sub SaveAdd()
	dim ClassID,ClassName,ClassDir,ParentDir,IsElite,ShowOnTop,Setting,Readme,PrevOrderID,trs
	dim RootID,ParentDepth,ParentPath,ParentStr,ParentName,MaxClassID,MaxRootID
	dim PrevID,NextID,Child
	ClassName=Trim(request("ClassName"))
	ClassDir=Trim(request("ClassDir"))
	IsElite=Trim(request("IsElite"))
	ShowOnTop=Trim(request("ShowOnTop"))
	Readme=Trim(request("Readme"))
	if ClassName="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>栏目名称不能为空！</li>"
	end if
	'if ClassDir="" then
	'	FoundErr=True
	'	ErrMsg=ErrMsg & "<br><li>栏目目录不能为空！</li>"
	'end if
	if FoundErr=True then
		exit sub
	end if

	set rs = Cl.Execute("select Max(ClassID) From Cl_LinkClass")
	MaxClassID=rs(0)
	if isnull(MaxClassID) then
		MaxClassID=0
	end if
	rs.close
	ClassID=MaxClassID+1
	set rs=Cl.Execute("select max(rootid) From Cl_LinkClass")
	MaxRootID=rs(0)
	if isnull(MaxRootID) then
		MaxRootID=0
	end if
	rs.close
	RootID=MaxRootID+1
	
	if ParentID>0 then
		sql="select * From Cl_LinkClass where ClassID=" & ParentID & ""
		rs.open sql,Conn,1,1
		if rs.bof and rs.eof then
			FoundErr=True
			ErrMsg=ErrMsg & "<br><li>所属栏目已经被删除！</li>"
			rs.close:set rs=Nothing
			exit sub
		else	
			RootID=rs("RootID")
			ParentName=rs("ClassName")
			ParentDepth=rs("Depth")
			ParentPath=rs("ParentPath")
			Child=rs("Child")
			ParentPath=ParentPath & "," & ParentID     '得到此栏目的父级栏目路径
			ParentDir=rs("ParentDir") & rs("ClassDir") & "/"      '得到此栏目的父级栏目目录
			PrevOrderID=rs("OrderID")
			if Child>0 then
				dim rsPrevOrderID
				'得到与本栏目同级的最后一个栏目的OrderID
				set rsPrevOrderID=Cl.Execute("select Max(OrderID) From Cl_LinkClass where ParentID=" & ParentID)
				PrevOrderID=rsPrevOrderID(0)
				set trs=Cl.Execute("select ClassID from Cl_LinkClass where ParentID=" & ParentID & " and OrderID=" & PrevOrderID)
				PrevID=trs(0)
				'得到同一父栏目但比本栏目级数大的子栏目的最大OrderID，如果比前一个值大，则改用这个值。
				set rsPrevOrderID=Cl.Execute("select Max(OrderID) From Cl_LinkClass where ParentPath like '" & ParentPath & ",%'")
				if not(rsPrevOrderID.bof and rsPrevOrderID.eof) then
					if not IsNull(rsPrevOrderID(0))  then
				 		if rsPrevOrderID(0)>PrevOrderID then
							PrevOrderID=rsPrevOrderID(0)
						end if
					end if
				end if
			else
				PrevID=0
			end if

		end if
		rs.close
	else
		if MaxRootID>0 then
			set trs=Cl.Execute("select ClassID from Cl_LinkClass where RootID=" & MaxRootID & " and Depth=0")
			PrevID=trs(0)
			trs.close
		else
			PrevID=0
		end if
		PrevOrderID=0
		ParentPath="0"
		ParentDir="/"
	end if

	'sql="Select * From Cl_LinkClass where ParentID=" & ParentID & " And (ClassName='" & ClassName & "' or ClassDir='"&ClassDir&"')"
	sql="Select * From Cl_LinkClass where ParentID=" & ParentID & " And (ClassName='" & ClassName & "')"
	set rs=server.CreateObject("adodb.recordset")
	rs.open sql,Conn,1,1
	if not(rs.bof and rs.eof) then
		FoundErr=True
		if ParentID=0 then
			ErrMsg=ErrMsg & "<br><li>已经存在一级栏目名：" & ClassName & " 或者已经存在目录：" & ClassDir & "。</li>"
		else
			ErrMsg=ErrMsg & "<br><li>“" & ParentName & "”中已经存在子栏目“" & ClassName & "” 或者已经存在目录：" & ClassDir & "。</li>"
		end if
		rs.close:set rs=Nothing
		exit sub
	end if
	rs.close

	if IsElite="Yes" then
		IsElite=True
	else
		IsElite=False
	end if
	if ShowOnTop="Yes" then
		ShowOnTop=True
	else
		ShowOnTop=False
	end if
	if Readme<>"" or Not IsNull(Readme) then Readme=Replace(Readme,VbCrlf,"")
	sql="Select top 1 * From Cl_LinkClass"
	rs.open sql,Conn,1,3
    rs.addnew
	rs("ClassID")=ClassID
   	rs("ClassName")=ClassName
	rs("ParentID")=ParentID
	rs("ParentPath")=ParentPath
	rs("ClassDir")=ClassDir
	rs("ParentDir")=ParentDir
	if ParentID>0 then
		rs("Depth")=ParentDepth+1
	else
		rs("Depth")=0
	end if
	rs("RootID")=RootID
	rs("Child")=0
	rs("arrChildID")=ClassID
	rs("PrevID")=PrevID
	rs("NextID")=0
	rs("OrderID")=PrevOrderID
	rs("Readme")=Readme
	rs("IsElite")=IsElite
	rs("ShowOnTop")=ShowOnTop
	rs.update
	rs.Close:set rs=Nothing
	
	'更新与本栏目同一父栏目的上一个栏目的“NextID”字段值
	if PrevID>0 then
		Cl.Execute("Update Cl_LinkClass set NextID=" & ClassID & " where ClassID=" & PrevID)
	end if
	
	if ParentID>0 then
		'更新其父类的子栏目数
		Cl.Execute("Update Cl_LinkClass set child=child+1 where ClassID="&ParentID)
		'更新其父类以上栏目的“arrChildID”
		Dim rsParentID
		Set rsParentID=server.CreateObject("Adodb.recordset")
		rsParentID.open "Select ClassID,arrChildID From Cl_LinkClass where ClassID in ("&ParentPath&")",conn,1,3
		do While not rsParentID.Eof
			rsParentID("arrChildID")=""&rsParentID(1)&","&ClassID&""
			rsParentID.UpDate
			rsParentID.movenext
		Loop
		rsParentID.Close:Set rsParentID=Nothing
		'更新该栏目排序以及大于本需要和同在本分类下的栏目排序序号
		Cl.Execute("Update Cl_LinkClass set OrderID=OrderID+1 where rootid=" & rootid & " and OrderID>" & PrevOrderID)
		Cl.Execute("Update Cl_LinkClass set OrderID=" & PrevOrderID & "+1 where ClassID=" & ClassID)
	end if
	Cl.SaveAdminLog
	Response.Write Cl.ShowSuc("恭喜你，栏目添加成功！返回 <a href='"&strFileName&"'>栏目管理首页</a> 。")
end sub

sub SaveModify()
	dim ClassName,ClassDir,Readme,IsElite,ShowOnTop
	dim trs,rs
	dim ClassID,rsClass,i,sChind
	ClassID=Trim(request("ClassID"))
	ClassName=Trim(request("ClassName"))
	ClassDir=Cl.ReplaceBadChar(Trim(request("ClassDir")))
	IsElite=Trim(request("IsElite"))
	ShowOnTop=Trim(request("ShowOnTop"))
	Readme=Trim(request("Readme"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>参数不足！</li>"
	else
		ClassID=CLng(ClassID)
	end if
	if ClassName="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>栏目名称不能为空！</li>"
	end if
	ClassDir="Class" & ClassID
	if FoundErr=True then
		exit sub
	end if
	
	sql="select * From Cl_LinkClass where ClassID=" & ClassID
	set rsClass=server.CreateObject ("Adodb.recordset")
	rsClass.open sql,Conn,1,3
	if rsClass.bof and rsClass.eof then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>找不到指定的栏目！</li>"
		rsClass.close:set rsClass=Nothing
		exit sub
	end if
	sChind=rsClass("Child")


	if FoundErr=True then
		exit sub
	end if

	if IsElite="Yes" then
		IsElite=True
	else
		IsElite=False
	end if
	if ShowOnTop="Yes" then
		ShowOnTop=True
	else
		ShowOnTop=False
	end if
	if Readme<>"" or Not IsNull(Readme) then Readme=Replace(Readme,VbCrlf,"")
   	rsClass("ClassName")=ClassName
	rsClass("ClassDir")=ClassDir
	rsClass("Readme")=Readme
	rsClass("IsElite")=IsElite
	rsClass("ShowOnTop")=ShowOnTop
	rsClass.update
	rsClass.close:set rsClass=Nothing
	if sChind>0 then
		UpDateClassData
	end if
	Cl.SaveAdminLog
	Response.Write Cl.ShowSuc("恭喜你，栏目修改成功！返回 <a href='"&strFileName&"'>栏目管理首页</a> 。")
end sub

sub DeleteClass()
	dim PrevID,NextID,ParentPath,ClassID
	ClassID=Trim(Request("ClassID"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>参数不足！</li>"
		exit sub
	else
		ClassID=CLng(ClassID)
	end if
	
	sql="select ClassID,RootID,Depth,ParentID,ParentPath,Child,PrevID,NextID From Cl_LinkClass where ClassID="&ClassID
	set rs=server.CreateObject ("Adodb.recordset")
	rs.open sql,Conn,1,3
	if rs.bof and rs.eof then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>栏目不存在，或者已经被删除</li>"
	else
		if rs("Child")>0 then
			FoundErr=True
			ErrMsg=ErrMsg & "<br><li>该栏目含有子栏目，请删除其子栏目后再进行删除本栏目的操作</li>"
		end if
	end if
	if FoundErr=True then
		rs.close:set rs=Nothing
		exit sub
	end if
	PrevID=rs("PrevID")
	NextID=rs("NextID")
	ParentPath=rs("ParentPath")
	if rs("Depth")>0 then
		Cl.Execute("Update Cl_LinkClass set child=child-1 where ClassID=" & rs("ParentID"))
	end if
	rs.delete
	rs.update
	rs.close:set rs=Nothing

	'更新其父类以上栏目的“arrChildID”
	Dim rsParentID
	Set rsParentID=server.CreateObject("Adodb.recordset")
	rsParentID.open "Select ClassID,arrChildID From Cl_LinkClass where ClassID in ("&ParentPath&")",conn,1,3
	do While not rsParentID.Eof
		rsParentID("arrChildID")=""&Replace(rsParentID(1),","&ClassID&"","")&""
		rsParentID.UpDate
		rsParentID.movenext
	Loop
	rsParentID.Close:Set rsParentID=Nothing
	'删除本栏目的所有内容
	Cl.Execute("delete * from Cl_LinkSite where ClassID=" & ClassID)
	'修改上一栏目的NextID和下一栏目的PrevID
	if PrevID>0 then
		Cl.Execute "Update Cl_LinkClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Cl.Execute "Update Cl_LinkClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if
	Cl.SaveAdminLog
	response.redirect strFileName
end sub

sub ClearClass()
	dim strClassID,rs,trs,SuccessMsg,ClassID
	ClassID=Trim(Request("ClassID"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>参数不足！</li>"
		exit sub
	else
		ClassID=CLng(ClassID)
	end if
	strClassID=cstr(ClassID)
	set rs=Cl.Execute("select ClassID,Child,ParentPath,arrChildID from Cl_LinkClass where ClassID=" & ClassID)
	if rs.bof and rs.eof then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>栏目不存在，或者已经被删除</li>"
		exit sub
	end if
	if rs(1)>0 then
		strClassID=rs(3)
	end if
	rs.close:set rs=Nothing
	Cl.Execute("delete * from Cl_LinkSite where ClassID in (" & strClassID & ")")
	Cl.SaveAdminLog
	Response.Write Cl.ShowSuc("此栏目（包括子栏目）的所有内容已经被移到回收站中！")
end sub


sub SaveMove()
	dim ClassID,rsClass,i
	dim rParentID
	dim trs,rs
	dim ParentID,RootID,Depth,Child,ParentPath,ParentName,iParentID,iParentPath,PrevOrderID,PrevID,NextID,arrChildID,marrChildID
	ClassID=Trim(request("ClassID"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>参数不足！</li>"
		exit sub
	else
		ClassID=CLng(ClassID)
	end if
	
	sql="select * From Cl_LinkClass where ClassID=" & ClassID
	set rsClass=server.CreateObject ("Adodb.recordset")
	rsClass.open sql,Conn,1,3
	if rsClass.bof and rsClass.eof then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>找不到指定的栏目！</li>"
		rsClass.close
		set rsClass=Nothing
		exit sub
	end if

	rParentID=Trim(request("ParentID"))
	if rParentID="" then
		rParentID=0
	else
		rParentID=CLng(rParentID)
	end if
	
	if rsClass("ParentID")<>rParentID then   '更改了所属栏目，则要做一系列检查
		if rParentID=rsClass("ClassID") then
			FoundErr=True
			ErrMsg=ErrMsg & "<br><li>所属栏目不能为自己！</li>"
		end if
		'判断所指定的栏目是否为外部栏目或本栏目的下属栏目
		'if rsClass("ParentID")=0 then
			if rParentID>0 then
				set trs=Cl.Execute("select rootid From Cl_LinkClass where ClassID="&rParentID)
				if trs.bof and trs.eof then
					FoundErr=True
					ErrMsg=ErrMsg & "<br><li>找不到指定的所属栏目</li>"
				else
					if rsClass("rootid")=trs(0) then
						FoundErr=True
						ErrMsg=ErrMsg & "<br><li>不能指定该栏目的下属栏目作为所属栏目</li>"
					end if
				end if
				trs.close
				set trs=Nothing
			end if
		'else
			'set trs=Cl.Execute("select ClassID From Cl_LinkClass where ParentPath like '"&rsClass("ParentPath")&"," & rsClass("ClassID") & "%' and ClassID="&rParentID)
			'if not (trs.eof and trs.bof) then
				'FoundErr=True
				'ErrMsg=ErrMsg & "<br><li>您不能指定该栏目的下属栏目作为所属栏目</li>"
			'end if
			'trs.close
			'set trs=Nothing
		'end if
		
	end if

	if FoundErr=True then
		rsClass.close
		set rsClass=Nothing
		exit sub
	end if
	
	if rsClass("ParentID")=0 then
		ParentID=rsClass("ClassID")
		iParentID=0
	else
		ParentID=rsClass("ParentID")
		iParentID=rsClass("ParentID")
	end if
	Depth=rsClass("Depth")
	Child=rsClass("Child")
	RootID=rsClass("RootID")
	ParentPath=rsClass("ParentPath")
	arrChildID=rsClass("arrChildID")
	PrevID=rsClass("PrevID")
	NextID=rsClass("NextID")
	rsClass.close:set rsClass=Nothing
	
	
  '假如更改了所属栏目
  '需要更新其原来所属栏目信息，包括深度、父级ID、栏目数、排序、继承版主等数据
  '需要更新当前所属栏目信息
  '继承版主数据需要另写函数进行更新--取消，在前台可用ClassID in ParentPath来获得
  dim mrs,MaxRootID
  set mrs=Cl.Execute("select max(rootid) From Cl_LinkClass")
  MaxRootID=mrs(0)
  set mrs=Nothing
  if isnull(MaxRootID) then
	MaxRootID=0
  end if
  dim k,nParentPath,mParentPath
  dim ParentSql,ClassCount
  dim rsPrevOrderID
  if clng(parentid)<>rParentID and not (iParentID=0 and rParentID=0) then  '假如更改了所属栏目
	'更新原来同一父栏目的上一个栏目的NextID和下一个栏目的PrevID
	if PrevID>0 then
		Cl.Execute "Update Cl_LinkClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Cl.Execute "Update Cl_LinkClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if
	
	if iParentID>0 and rParentID=0 then  	'如果原来不是一级分类改成一级分类
		'得到上一个一级分类栏目
		sql="select ClassID,NextID from Cl_LinkClass where RootID=" & MaxRootID & " and Depth=0"
		set rs=server.CreateObject("Adodb.recordset")
		rs.open sql,Conn,1,3
		PrevID=rs(0)      '得到新的PrevID
		rs(1)=ClassID     '更新上一个一级分类栏目的NextID的值
		rs.update
		rs.close:set rs=Nothing
		
		MaxRootID=MaxRootID+1
		'更新当前栏目数据
		Cl.Execute("Update Cl_LinkClass set depth=0,OrderID=0,rootid="&maxrootid&",parentid=0,ParentPath='0',arrChildID='"&ClassID&"',PrevID=" & PrevID & ",NextID=0 where ClassID="&ClassID)

		'如果有下属栏目，则更新其下属栏目数据。下属栏目的排序不需考虑，只需更新下属栏目深度和一级排序ID(rootid)数据
		if child>0 then
			i=0
			set rs=Cl.Execute("select * From Cl_LinkClass where ParentPath like '%"&ParentPath & "," & ClassID&"%'")
			do while not rs.eof
				i=i+1
				mParentPath=replace(rs("ParentPath"),ParentPath,"")
				Cl.Execute("Update Cl_LinkClass set depth=depth-"&depth&",rootid="&maxrootid&",ParentPath='"&mParentPath&"' where ClassID="&rs("ClassID"))
				rs.movenext
			loop
			set rs=Nothing
		end if
		'更新其原来所属栏目的栏目数，排序相当于剪枝而不需考虑
		Cl.Execute("Update Cl_LinkClass set child=child-1 where ClassID="&iParentID)
		
	elseif iParentID>0 and rParentID>0 then    '如果是将一个分栏目移动到其他分栏目下
		'得到当前栏目的下属子栏目数
		ParentPath=ParentPath & ","
		set rs=Cl.Execute("select count(*) From Cl_LinkClass where ParentPath like '%"&ParentPath & ClassID&"%'")
		ClassCount=rs(0)
		if isnull(ClassCount) then
			ClassCount=1
		end if
		rs.close
		set rs=Nothing
		'获得目标栏目的相关信息		
		set trs=Cl.Execute("select * From Cl_LinkClass where ClassID="&rParentID)
		if trs("Child")>0 then		
			'得到与本栏目同级的最后一个栏目的OrderID
			set rsPrevOrderID=Cl.Execute("select Max(OrderID) From Cl_LinkClass where ParentID=" & trs("ClassID"))
			PrevOrderID=rsPrevOrderID(0)
			'得到与本栏目同级的最后一个栏目的ClassID
			sql="select ClassID,NextID from Cl_LinkClass where ParentID=" & trs("ClassID") & " and OrderID=" & PrevOrderID
			set rs=server.createobject("adodb.recordset")
			rs.open sql,Conn,1,3
			PrevID=rs(0)    '得到新的PrevID
			rs(1)=ClassID     '更新上一个栏目的NextID的值
			rs.update
			rs.close
			set rs=Nothing
			
			'得到同一父栏目但比本栏目级数大的子栏目的最大OrderID，如果比前一个值大，则改用这个值。
			set rsPrevOrderID=Cl.Execute("select Max(OrderID) From Cl_LinkClass where ParentPath like '" & trs("ParentPath") & "," & trs("ClassID") & ",%'")
			if (not(rsPrevOrderID.bof and rsPrevOrderID.eof)) then
				if not IsNull(rsPrevOrderID(0))  then
			 		if rsPrevOrderID(0)>PrevOrderID then
						PrevOrderID=rsPrevOrderID(0)
					end if
				end if
			end if
		else
			PrevID=0
			PrevOrderID=trs("OrderID")
		end if
		
		'在获得移动过来的栏目数后更新排序在指定栏目之后的栏目排序数据
		Cl.Execute("Update Cl_LinkClass set OrderID=OrderID+" & ClassCount & "+1 where rootid=" & trs("rootid") & " and OrderID>" & PrevOrderID)
		
		'更新当前栏目数据
		Cl.Execute("Update Cl_LinkClass set depth="&trs("depth")&"+1,OrderID="&PrevOrderID&"+1,rootid="&trs("rootid")&",ParentID="&rParentID&",ParentPath='" & trs("ParentPath") & "," & trs("ClassID") & "',PrevID=" & PrevID & ",NextID=0 where ClassID="&ClassID)
		
		'如果有子栏目则更新子栏目数据，深度为原来的相对深度加上当前所属栏目的深度
		set rs=Cl.Execute("select * From Cl_LinkClass where ParentPath like '%"&ParentPath&ClassID&"%' order by OrderID")
		i=1
		do while not rs.eof
			i=i+1
			iParentPath=trs("ParentPath") & "," & trs("ClassID") & "," & replace(rs("ParentPath"),ParentPath,"")
			Cl.Execute("Update Cl_LinkClass set depth=depth-"&depth&"+"&trs("depth")&"+1,OrderID="&PrevOrderID&"+"&i&",rootid="&trs("rootid")&",ParentPath='"&iParentPath&"' where ClassID="&rs("ClassID"))
			rs.movenext
		loop
		rs.close
		set rs=Nothing
		trs.close
		set trs=Nothing
		
		'更新所指向的上级栏目的子栏目数
		Cl.Execute("Update Cl_LinkClass set child=child+1 where ClassID="&rParentID)
		
		'更新其原父类的子栏目数			
		Cl.Execute("Update Cl_LinkClass set child=child-1 where ClassID="&iParentID)
	else    '如果原来是一级栏目改成其他栏目的下属栏目
		'得到移动的栏目总数
		set rs=Cl.Execute("select count(*) From Cl_LinkClass where rootid="&rootid)
		ClassCount=rs(0)
		rs.close
		set rs=Nothing
		
		'获得目标栏目的相关信息		
		set trs=Cl.Execute("select * From Cl_LinkClass where ClassID="&rParentID)
		if trs("Child")>0 then		
			'得到与本栏目同级的最后一个栏目的OrderID
			set rsPrevOrderID=Cl.Execute("select Max(OrderID) From Cl_LinkClass where ParentID=" & trs("ClassID"))
			PrevOrderID=rsPrevOrderID(0)
			sql="select ClassID,NextID from Cl_LinkClass where ParentID=" & trs("ClassID") & " and OrderID=" & PrevOrderID
			set rs=server.createobject("adodb.recordset")
			rs.open sql,Conn,1,3
			PrevID=rs(0)
			rs(1)=ClassID
			rs.update
			set rs=Nothing
			'得到同一父栏目但比本栏目级数大的子栏目的最大OrderID，如果比前一个值大，则改用这个值
			set rsPrevOrderID=Cl.Execute("select Max(OrderID) From Cl_LinkClass where ParentPath like '" & trs("ParentPath") & "," & trs("ClassID") & ",%'")
			if (not(rsPrevOrderID.bof and rsPrevOrderID.eof)) then
				if not IsNull(rsPrevOrderID(0))  then
			 		if rsPrevOrderID(0)>PrevOrderID then
						PrevOrderID=rsPrevOrderID(0)
					end if
				end if
			end if
		else
			PrevID=0
			PrevOrderID=trs("OrderID")
		end if

		'在获得移动过来的栏目数后更新排序在指定栏目之后的栏目排序数据
		Cl.Execute("Update Cl_LinkClass set OrderID=OrderID+" & ClassCount &"+1 where rootid=" & trs("rootid") & " and OrderID>" & PrevOrderID)
		
		Cl.Execute("Update Cl_LinkClass set PrevID=" & PrevID & ",NextID=0 where ClassID=" & ClassID)
		set rs=Cl.Execute("select * From Cl_LinkClass where rootid="&rootid&" order by OrderID")
		i=0
		do while not rs.eof
			i=i+1
			if rs("parentid")=0 then
				ParentPath=trs("ParentPath") & "," & trs("ClassID")
				Cl.Execute("Update Cl_LinkClass set depth=depth+"&trs("depth")&"+1,OrderID="&PrevOrderID&"+"&i&",rootid="&trs("rootid")&",ParentPath='"&ParentPath&"',parentid="&rParentID&" where ClassID="&rs("ClassID"))
			else
				ParentPath=trs("ParentPath") & "," & trs("ClassID") & "," & replace(rs("ParentPath"),"0,","")
				Cl.Execute("Update Cl_LinkClass set depth=depth+"&trs("depth")&"+1,OrderID="&PrevOrderID&"+"&i&",rootid="&trs("rootid")&",ParentPath='"&ParentPath&"' where ClassID="&rs("ClassID"))
			end if
			rs.movenext
		loop
		rs.close:set rs=Nothing
		trs.close
		set trs=Nothing
		'更新所指向的上级栏目栏目数		
		Cl.Execute("Update Cl_LinkClass set child=child+1 where ClassID="&rParentID)
	end if
	UpDateClassData '更新所有栏目数据
  end if
  Cl.SaveAdminLog
  Response.Redirect strFileName
end sub

sub UpOrder()
	dim ClassID,sqlOrder,rsOrder,MoveNum,cRootID,tRootID,PrevID,NextID
	ClassID=Trim(request("ClassID"))
	cRootID=Trim(request("cRootID"))
	MoveNum=Trim(request("MoveNum"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>参数不足！</li>"
	else
		ClassID=CLng(ClassID)
	end if
	if cRootID="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br><li>错误参数！</li>"
	else
		cRootID=Cint(cRootID)
	end if
	if MoveNum="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br><li>错误参数！</li>"
	else
		MoveNum=Cint(MoveNum)
		if MoveNum=0 then
			FoundErr=True
			ErrMsg=ErrMsg & "<br><li>请选择要提升的数字！</li>"
		end if
	end if
	if FoundErr=True then
		exit sub
	end if

	'得到本栏目的PrevID,NextID
	set rs=Cl.Execute("select PrevID,NextID from Cl_LinkClass where ClassID=" & ClassID)
	PrevID=rs(0)
	NextID=rs(1)
	rs.close
	set rs=Nothing
	'先修改上一栏目的NextID和下一栏目的PrevID
	if PrevID>0 then
		Cl.Execute "Update Cl_LinkClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Cl.Execute "Update Cl_LinkClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if

	dim mrs,MaxRootID
	set mrs=Cl.Execute("select max(rootid) From Cl_LinkClass")
	MaxRootID=mrs(0)+1
	'先将当前栏目移至最后，包括子栏目
	Cl.Execute("Update Cl_LinkClass set RootID=" & MaxRootID & " where RootID=" & cRootID)
	
	'然后将位于当前栏目以上的栏目的RootID依次加一，范围为要提升的数字
	sqlOrder="select * From Cl_LinkClass where ParentID=0 and RootID<" & cRootID & " order by RootID desc"
	set rsOrder=server.CreateObject("adodb.recordset")
	rsOrder.open sqlOrder,Conn,1,3
	if rsOrder.bof and rsOrder.eof then
		exit sub        '如果当前栏目已经在最上面，则无需移动
	end if
	i=1
	do while not rsOrder.eof
		tRootID=rsOrder("RootID")       '得到要提升位置的RootID，包括子栏目
		Cl.Execute("Update Cl_LinkClass set RootID=RootID+1 where RootID=" & tRootID)
		i=i+1
		if i>MoveNum then
			Cl.Execute("Update Cl_LinkClass set PrevID=" & ClassID & " where ClassID=" & ClassID)
			Cl.Execute("Update Cl_LinkClass set NextID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
			exit do
		end if
		rsOrder.movenext
	loop
	rsOrder.movenext
	if rsOrder.eof then
		Cl.Execute("Update Cl_LinkClass set PrevID=0 where ClassID=" & ClassID)
	else
		Cl.Execute("Update Cl_LinkClass set NextID=" & ClassID & " where ClassID=" & ClassID)
		Cl.Execute("Update Cl_LinkClass set PrevID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
	end if	
	rsOrder.close
	set rsOrder=Nothing
	
	'然后再将当前栏目从最后移到相应位置，包括子栏目
	Cl.Execute("Update Cl_LinkClass set RootID=" & tRootID & " where RootID=" & MaxRootID)
	Cl.SaveAdminLog
	response.Redirect strFileName & "?Action=Order"
end sub

sub DownOrder()
	dim ClassID,sqlOrder,rsOrder,MoveNum,cRootID,tRootID,PrevID,NextID
	ClassID=Trim(request("ClassID"))
	cRootID=Trim(request("cRootID"))
	MoveNum=Trim(request("MoveNum"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>参数不足！</li>"
	else
		ClassID=CLng(ClassID)
	end if
	if cRootID="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br><li>错误参数！</li>"
	else
		cRootID=Cint(cRootID)
	end if
	if MoveNum="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br><li>错误参数！</li>"
	else
		MoveNum=Cint(MoveNum)
		if MoveNum=0 then
			FoundErr=True
			ErrMsg=ErrMsg & "<br><li>请选择要提升的数字！</li>"
		end if
	end if
	if FoundErr=True then
		exit sub
	end if

	'得到本栏目的PrevID,NextID
	set rs=Cl.Execute("select PrevID,NextID from Cl_LinkClass where ClassID=" & ClassID)
	PrevID=rs(0)
	NextID=rs(1)
	rs.close
	set rs=Nothing
	'先修改上一栏目的NextID和下一栏目的PrevID
	if PrevID>0 then
		Cl.Execute "Update Cl_LinkClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Cl.Execute "Update Cl_LinkClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if

	dim mrs,MaxRootID
	set mrs=Cl.Execute("select max(rootid) From Cl_LinkClass")
	MaxRootID=mrs(0)+1
	'先将当前栏目移至最后，包括子栏目
	Cl.Execute("Update Cl_LinkClass set RootID=" & MaxRootID & " where RootID=" & cRootID)
	
	'然后将位于当前栏目以下的栏目的RootID依次减一，范围为要下降的数字
	sqlOrder="select * From Cl_LinkClass where ParentID=0 and RootID>" & cRootID & " order by RootID"
	set rsOrder=server.CreateObject("adodb.recordset")
	rsOrder.open sqlOrder,Conn,1,3
	if rsOrder.bof and rsOrder.eof then
		exit sub        '如果当前栏目已经在最下面，则无需移动
	end if
	i=1
	do while not rsOrder.eof
		tRootID=rsOrder("RootID")       '得到要提升位置的RootID，包括子栏目
		Cl.Execute("Update Cl_LinkClass set RootID=RootID-1 where RootID=" & tRootID)
		i=i+1
		if i>MoveNum then
			Cl.Execute("Update Cl_LinkClass set NextID=" & ClassID & " where ClassID=" & ClassID)
			Cl.Execute("Update Cl_LinkClass set PrevID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
			exit do
		end if
		rsOrder.movenext
	loop
	rsOrder.movenext
	if rsOrder.eof then
		Cl.Execute("Update Cl_LinkClass set NextID=0 where ClassID=" & ClassID)
	else
		Cl.Execute("Update Cl_LinkClass set PrevID=" & ClassID & " where ClassID=" & ClassID)
		Cl.Execute("Update Cl_LinkClass set NextID=" & rsOrder("ClassID") & " where ClassID=" & ClassID)
	end if	
	rsOrder.close
	set rsOrder=Nothing
	
	'然后再将当前栏目从最后移到相应位置，包括子栏目
	Cl.Execute("Update Cl_LinkClass set RootID=" & tRootID & " where RootID=" & MaxRootID)
	Cl.SaveAdminLog
	response.Redirect strFileName & "?Action=Order"
end sub

sub UpOrderN()
	dim sqlOrder,rsOrder,MoveNum,ClassID,i
	dim ParentID,OrderID,ParentPath,Child,PrevID,NextID
	ClassID=Trim(request("ClassID"))
	MoveNum=Trim(request("MoveNum"))
	if ClassID="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br><li>错误参数！</li>"
	else
		ClassID=CLng(ClassID)
	end if
	if MoveNum="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br><li>错误参数！</li>"
	else
		MoveNum=Cint(MoveNum)
		if MoveNum=0 then
			FoundErr=True
			ErrMsg=ErrMsg & "<br><li>请选择要提升的数字！</li>"
		end if
	end if
	if FoundErr=True then
		exit sub
	end if

	dim oldorders,ii,trs,tOrderID
	'要移动的栏目信息
	set rs=Cl.Execute("select ParentID,OrderID,ParentPath,child,PrevID,NextID From Cl_LinkClass where ClassID="&ClassID)
	ParentID=rs(0)
	OrderID=rs(1)
	ParentPath=rs(2) & "," & ClassID
	child=rs(3)
	PrevID=rs(4)
	NextID=rs(5)
	rs.close
	set rs=Nothing
	if child>0 then
		set rs=Cl.Execute("select count(*) From Cl_LinkClass where ParentPath like '%"&ParentPath&"%'")
		oldorders=rs(0)
		rs.close
		set rs=Nothing
	else
		oldorders=0
	end if
	'先修改上一栏目的NextID和下一栏目的PrevID
	if PrevID>0 then
		Cl.Execute "Update Cl_LinkClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Cl.Execute "Update Cl_LinkClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if
	
	'和该栏目同级且排序在其之上的栏目------更新其排序，范围为要提升的数字
	sql="select ClassID,OrderID,child,ParentPath,PrevID,NextID From Cl_LinkClass where ParentID="&ParentID&" and OrderID<"&OrderID&" order by OrderID desc"
	set rs=server.CreateObject("adodb.recordset")
	rs.open sql,Conn,1,3
	i=1
	do while not rs.eof
		tOrderID=rs(1)
		Cl.Execute("Update Cl_LinkClass set OrderID="&tOrderID+oldorders+i&" where ClassID="&rs(0))
		if rs(2)>0 then
			ii=i+1
			set trs=Cl.Execute("select ClassID,OrderID From Cl_LinkClass where ParentPath like '%"&rs(3)&","&rs(0)&"%' order by OrderID")
			if not (trs.eof and trs.bof) then
				do while not trs.eof
					Cl.Execute("Update Cl_LinkClass set OrderID="&tOrderID+oldorders+ii&" where and ClassID="&trs(0))
					ii=ii+1
					trs.movenext
				loop
			end if
			trs.close
			set trs=Nothing
		end if
		i=i+1
		if i>MoveNum then
			Cl.Execute("Update Cl_LinkClass set PrevID=" & ClassID & " where ClassID=" & rs(0))
			Cl.Execute("Update Cl_LinkClass set NextID=" & rs(0) & " where ClassID=" & ClassID)		
			exit do
		end if
		rs.movenext
	loop
	rs.movenext
	if rs.eof then
		Cl.Execute("Update Cl_LinkClass set PrevID=0 where ClassID=" & ClassID)
	else
		Cl.Execute("Update Cl_LinkClass set NextID=" & ClassID & " where ClassID=" & rs(0))
		Cl.Execute("Update Cl_LinkClass set PrevID=" & rs(0) & " where ClassID=" & ClassID)
	end if	
	rs.close
	set rs=Nothing
	
	'更新所要排序的栏目的序号
	Cl.Execute("Update Cl_LinkClass set OrderID="&tOrderID&" where ClassID="&ClassID)
	'如果有下属栏目，则更新其下属栏目排序
	if child>0 then
		i=1
		set rs=Cl.Execute("select ClassID From Cl_LinkClass where ParentPath like '%"&ParentPath&"%' order by OrderID")
		do while not rs.eof
			Cl.Execute("Update Cl_LinkClass set OrderID="&tOrderID+i&" where ClassID="&rs(0))
			i=i+1
			rs.movenext
		loop
		rs.close
		set rs=Nothing
	end if
	Cl.SaveAdminLog
	response.Redirect strFileName & "?Action=OrderN"
end sub

sub DownOrderN()
	dim sqlOrder,rsOrder,MoveNum,ClassID,i
	dim ParentID,OrderID,ParentPath,Child,PrevID,NextID
	ClassID=Trim(request("ClassID"))
	MoveNum=Trim(request("MoveNum"))
	if ClassID="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br><li>错误参数！</li>"
		exit sub
	else
		ClassID=Cint(ClassID)
	end if
	if MoveNum="" then
		FoundErr=true
		ErrMsg=ErrMsg & "<br><li>错误参数！</li>"
		exit sub
	else
		MoveNum=Cint(MoveNum)
		if MoveNum=0 then
			FoundErr=True
			ErrMsg=ErrMsg & "<br><li>请选择要下降的数字！</li>"
			exit sub
		end if
	end if

	dim oldorders,ii,trs,tOrderID
	'要移动的栏目信息
	set rs=Cl.Execute("select ParentID,OrderID,ParentPath,child,PrevID,NextID From Cl_LinkClass where ClassID="&ClassID)
	ParentID=rs(0)
	OrderID=rs(1)
	ParentPath=rs(2) & "," & ClassID
	child=rs(3)
	PrevID=rs(4)
	NextID=rs(5)
	rs.close
	set rs=Nothing

	'先修改上一栏目的NextID和下一栏目的PrevID
	if PrevID>0 then
		Cl.Execute "Update Cl_LinkClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Cl.Execute "Update Cl_LinkClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if
	
	'和该栏目同级且排序在其之下的栏目------更新其排序，范围为要下降的数字
	sql="select ClassID,OrderID,child,ParentPath,PrevID,NextID From Cl_LinkClass where ParentID="&ParentID&" and OrderID>"&OrderID&" order by OrderID"
	set rs=server.CreateObject("adodb.recordset")
	rs.open sql,Conn,1,3
	i=0      '同级栏目
	ii=0     '同级栏目和子栏目
	do while not rs.eof
		Cl.Execute("Update Cl_LinkClass set OrderID="&OrderID+ii&" where ClassID="&rs(0))
		if rs(2)>0 then
			set trs=Cl.Execute("select ClassID,OrderID From Cl_LinkClass where ParentPath like '%"&rs(3)&","&rs(0)&"%' order by OrderID")
			if not (trs.eof and trs.bof) then
				do while not trs.eof
					ii=ii+1
					Cl.Execute("Update Cl_LinkClass set OrderID="&OrderID+ii&" where ClassID="&trs(0))
					trs.movenext
				loop
			end if
			trs.close
			set trs=Nothing
		end if
		ii=ii+1
		i=i+1
		if i>=MoveNum then
			Cl.Execute("Update Cl_LinkClass set NextID=" & ClassID & " where ClassID=" & rs(0))
			Cl.Execute("Update Cl_LinkClass set PrevID=" & rs(0) & " where ClassID=" & ClassID)		
			exit do
		end if
		rs.movenext
	loop
	rs.movenext
	if rs.eof then
		Cl.Execute("Update Cl_LinkClass set NextID=0 where ClassID=" & ClassID)
	else
		Cl.Execute("Update Cl_LinkClass set PrevID=" & ClassID & " where ClassID=" & rs(0))
		Cl.Execute("Update Cl_LinkClass set NextID=" & rs(0) & " where ClassID=" & ClassID)
	end if	
	rs.close
	set rs=Nothing
	
	'更新所要排序的栏目的序号
	Cl.Execute("Update Cl_LinkClass set OrderID="&OrderID+ii&" where ClassID="&ClassID)
	'如果有下属栏目，则更新其下属栏目排序
	if child>0 then
		i=1
		set rs=Cl.Execute("select ClassID From Cl_LinkClass where ParentPath like '%"&ParentPath&"%' order by OrderID")
		do while not rs.eof
			Cl.Execute("Update Cl_LinkClass set OrderID="&OrderID+ii+i&" where ClassID="&rs(0))
			i=i+1
			rs.movenext
		loop
		rs.close
		set rs=Nothing
	end if
	Cl.SaveAdminLog
	response.Redirect strFileName & "?Action=OrderN"
end sub

sub SaveReset()
	dim SuccessMsg,iCount,PrevID,NextID
	sql="select ClassID From Cl_LinkClass order by RootID,OrderID"
	set rs=server.CreateObject("adodb.recordset")
	rs.open sql,Conn,1,1
	iCount=rs.recordcount
	i=1
	PrevID=0
	do while not rs.eof
		rs.movenext
		if rs.eof then
			NextID=0
		else
			NextID=rs(0)
		end if
		rs.moveprevious
		Cl.Execute("Update Cl_LinkClass set RootID=" & i & ",OrderID=0,ParentID=0,Child=0,ParentPath='0',Depth=0,PrevID=" & PrevID & ",NextID=" & NextID & " where ClassID=" & rs(0))
		PrevID=rs(0)
		i=i+1
		rs.movenext
	loop
	rs.close
	set rs=Nothing	
	Cl.SaveAdminLog
	Response.Write Cl.ShowSuc("复位成功！请返回 <a href='"&strFileName&"'>栏目管理首页</a> 做栏目的归属设置。")
end sub

sub SaveUnite()
	dim ClassID,TargetClassID,ParentPath,iParentPath,Depth,iParentID,Child,PrevID,NextID
	dim rs,trs,SuccessMsg
	ClassID=Trim(request("ClassID"))
	TargetClassID=Trim(request("TargetClassID"))
	if ClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>请指定要合并的栏目！</li>"
	else
		ClassID=CLng(ClassID)
	end if
	if TargetClassID="" then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>请指定目标栏目！</li>"
	else
		TargetClassID=CLng(TargetClassID)
	end if
	if ClassID=TargetClassID then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>请不要在相同栏目内进行操作</li>"
	end if
	if FoundErr=True then
		exit sub
	end if
	'判断目标栏目是否有子栏目，如果有，则报错。
	set rs=Cl.Execute("select Child from Cl_LinkClass where ClassID=" & TargetClassID)
	if rs.bof and rs.eof then
		FoundErr=True
		ErrMsg=ErrMsg & "<br><li>目标栏目不存在，可能已经被删除！</li>"
	else
		if rs(0)>0 then
			FoundErr=True
			ErrMsg=ErrMsg & "<br><li>目标栏目中含有子栏目，不能合并！</li>"
		end if
	end if
	if FoundErr=True then
		exit sub
	end if

	'得到当前栏目信息
	set rs=Cl.Execute("select ClassID,ParentID,ParentPath,PrevID,NextID,Depth from Cl_LinkClass where ClassID="&ClassID)
	iParentID=rs(1)
	Depth=rs(5)
	if iParentID=0 then
		ParentPath=rs(0)
	else
		ParentPath=rs(2) & "," & rs(0)
	end if
	iParentPath=rs(0)
	PrevID=rs(3)
	NextID=rs(4)
	
	'判断是否是合并到其下属栏目中
	set rs=Cl.Execute("select ClassID from Cl_LinkClass where ClassID="&TargetClassID&" and ParentPath like '"&ParentPath&"%'")
	if not (rs.eof and rs.bof) then
		FoundErr=true
		ErrMsg=ErrMsg & "<br><li>不能将一个栏目合并到其下属子栏目中</li>"
		exit sub
	end if
	
	'得到当前栏目的下属栏目ID
	set rs=Cl.Execute("select ClassID from Cl_LinkClass where ParentPath like '"&ParentPath&"%'")
	i=0
	if not (rs.eof and rs.bof) then
		do while not rs.eof
			iParentPath=iParentPath & "," & rs(0)
			i=i+1
			rs.movenext
		loop
	end if
	if i>0 then
		ParentPath=iParentPath
	else
		ParentPath=ClassID
	end if
	
	'先修改上一栏目的NextID和下一栏目的PrevID
	if PrevID>0 then
		Cl.Execute "Update Cl_LinkClass set NextID=" & NextID & " where ClassID=" & PrevID
	end if
	if NextID>0 then
		Cl.Execute "Update Cl_LinkClass set PrevID=" & PrevID & " where ClassID=" & NextID
	end if
	
	'更新数据及评论所属栏目
	Cl.Execute("Update Cl_LinkSite set ClassID="&TargetClassID&" where ClassID in ("&ParentPath&")")
	'删除被合并栏目及其下属栏目
	Cl.Execute("delete * from Cl_LinkClass where ClassID in ("&ParentPath&")")
	
	'更新其原来所属栏目的子栏目数，排序相当于剪枝而不需考虑
	if Depth>0 then
		Cl.Execute("Update Cl_LinkClass set Child=Child-1 where ClassID="&iParentID)
	end if
	Cl.SaveAdminLog
	SuccessMsg="栏目合并成功！已经将被合并栏目及其下属子栏目的所有数据转入目标栏目中。<br><br>同时删除了被合并的栏目及其子栏目。"
	Response.Write Cl.ShowSuc(SuccessMsg)
	set rs=Nothing
	set trs=Nothing
end sub

sub UpDateClassData()
	dim rs,arrChildID,trs,TempClassDir,TempPath,ParentDir,sOuter
	dim arrParentID(20),arrParentDir(20),arrPrevID(20),arrNextID(20)
	Dim sClassID
	set rs=server.createobject("adodb.recordset")
	rs.open "select * from Cl_LinkClass order by RootID Desc,OrderID Desc",Conn,1,3
	if rs.bof and rs.eof then
		rs.Close:Set rs=Nothing
		Exit Sub
	end if
	for i=0 to 19
		arrParentID(i)=0
		arrParentDir(i)=""
		arrPrevID(i)=0
		arrNextID(i)=0
	next
	do while not rs.eof
		sClassID=rs("ClassID")
		arrParentID(rs("Depth"))=sClassID
		arrParentDir(rs("Depth"))=rs("ClassDir")
		if rs("ParentID")=0 then
			rs("ParentPath")="0"
			rs("ParentDir")="/"
		else
			ParentPath="0"
			ParentDir="/"
			for i=0 to rs("Depth")-1
				ParentPath=ParentPath & "," & arrParentID(i)
				ParentDir=ParentDir & arrParentDir(i) & "/"
			next
			rs("ParentPath")=ParentPath
			rs("ParentDir")=ParentDir
		end if
		if rs("PrevID")<>0 then
			rs("PrevID")=arrPrevID(rs("Depth"))
		end if
		rs("NextID")=0
		if arrNextID(rs("Depth"))>0 then
			Cl.Execute("update Cl_LinkClass set NextID=" & sClassID & " where ClassID=" & arrPrevID(rs("Depth")))
		end if
		arrPrevID(rs("Depth"))=sClassID
		arrNextID(rs("Depth"))=rs("NextID")
		rs.update
		rs.movenext
	loop
	rs.movefirst
	do while not rs.eof
		if rs("Child")=0 then
			rs("arrChildID")=rs("ClassID")
		else
			arrChildID=rs("ClassID")
			set trs=Cl.Execute("select ClassID from Cl_LinkClass where (ParentID=" & rs("ClassID") & " or ParentPath like '%" & rs("ParentPath") & "," & rs("ClassID") & ",%')")
			do while not trs.eof
				arrChildID=arrChildID & "," & trs(0)
				trs.movenext
			loop
			set trs=Nothing
			rs("arrChildID")=arrChildID
		end if
		rs.update
		rs.movenext
	loop
	rs.Close:Set rs=Nothing
end sub

Function ShowLinkClass_Option(ShowType,CurrentID)
	dim rsClass,sqlClass,strTemp,tmpDepth,i
	if ShowType=0 then
	    strTemp="<option value='0'"
		if CurrentID=0 then strTemp=strTemp & " selected"
		strTemp=strTemp & ">无（作为一级栏目）</option>"
	end if
	dim arrShowLine(20)
	for i=0 to ubound(arrShowLine)
		arrShowLine(i)=False
	next
	sqlClass="Select * From Cl_LinkClass order by RootID,OrderID"
	set rsClass=Cl.Execute(sqlClass)
	'rsClass.open sqlClass,Conn,1,1
	if rsClass.bof and rsClass.bof then
		strTemp=strTemp & "<option value=''>请先添加栏目</option>"
	else
		do while not rsClass.eof
			tmpDepth=rsClass("Depth")
			if rsClass("NextID")>0 then
				arrShowLine(tmpDepth)=True
			else
				arrShowLine(tmpDepth)=False
			end if
			if ShowType=2 then
				strTemp=strTemp & "<option value='" & rsClass("ClassID") & "'"
			else
				strTemp=strTemp & "<option value='" & rsClass("ClassID") & "'"
			end if

			if CurrentID>0 and rsClass("ClassID")=CurrentID then
				 strTemp=strTemp & " selected"
			end if
			strTemp=strTemp & ">"
			if tmpDepth>0 then
				for i=1 to tmpDepth
					strTemp=strTemp & "&nbsp;&nbsp;"
					if i=tmpDepth then
						if rsClass("NextID")>0 then
							strTemp=strTemp & "├&nbsp;"
						else
							strTemp=strTemp & "└&nbsp;"
						end if
					else
						if arrShowLine(i)=True then
							strTemp=strTemp & "│"
						else
							strTemp=strTemp & "&nbsp;"
						end if
					end if
				next
			end if
			strTemp=strTemp & rsClass("ClassName")
			strTemp=strTemp & "</option>"

			'response.write strTemp
			rsClass.movenext
		loop
	end if
	rsClass.close:set rsClass=Nothing
	ShowLinkClass_Option=strTemp
End Function
%> 
<%
'<!--
'┌───────────────────────────────────────────────────────┐
'│														 │
'│		CreateLive CMS Version 3.1						 │
'│　　　　　　　　				Powered by Aspoo.CN	 	 │
'│　		　　　　　　　　　　						 │
'│　	邮箱: aspoo@126.com			Info@aspoo.cn　　	 │
'│		ＱＱ: 3315263				596197794			 │
'│		网站: www.aspoo.cn			www.aspoo.com		 │
'│		论坛: bbs.aspoo.cn			bbs.aspoo.com		 │
'│														 │
'│	Copyright (C) 2005 Aspoo.CN All Rights Reserved.	 │
'└───────────────────────────────────────────────────────┘
'-->
%>