<!--#include file="conn.asp"-->
<!--#include file="inc/const.asp"-->
<!--#include file="inc/ubbcode.asp"-->
<%
Dim HtmlContent,XMLDom,TopicUseTable
Dim topicid,classid,classname,child,HeadTitle,topicmode,HeadCategory,isnowuser
Dim maxperpage,CurrentPage,Pcount,totalrec,totalnumber
Dim icons,PostNum,allowAnswers,allowDeletes
allowAnswers = NewAsp.ChkNumeric(NewAsp.Posts_Setting(4))
allowDeletes = NewAsp.ChkNumeric(NewAsp.Posts_Setting(5))
maxperpage = 10
CurrentPage = NewAsp.ChkNumeric(Request("page"))
If CurrentPage = 0 Then CurrentPage = 1
topicid = NewAsp.ChkNumeric(Request("topicid"))

mainshare()
NewAsp.CloseConn()

Sub mainshare()
	If topicid = 0 Then Exit Sub
	HtmlContent = NewAsp.LoadTemplate("share")
	shareTopic()
	CategoryInfo()
	LoadShareList()
	HtmlContent = Replace(HtmlContent, "{$HeadTitle}", HeadTitle)
	HtmlContent = Replace(HtmlContent, "{$ClassID}", 0)
	Response.Write NewAsp.ArchiveHtml(HtmlContent)
End Sub

Sub shareTopic()
	If topicid = 0 Then Exit Sub
	Dim SQL,Rs,Node
	Newasp.Execute ("UPDATE NC_Ask_Topic SET Hits=Hits+1 WHERE topicid="&topicid)
	SQL="SELECT TopicID,classid,userid,classname,title,PostUsername,Expired,Closed,PostTable,DateAndTime,LastPostTime,ExpiredTime,LockTopic,Reward,Hits,PostNum,CommentNum,TopicMode,Broadcast,Anonymous,supplement FROM NC_Ask_Topic WHERE topicid="&topicid&" And topicmode=3"
	Set Rs = NewAsp.Execute(SQL)
	If Rs.BOF And Rs.EOF Then
		Set Rs = Nothing
		NewAsp.FoundErr = True
		Exit Sub
	End If
	Set XMLDom = NewAsp.RecordsetToxml(Rs,"topic","xml")
	Set Rs = Nothing
	Set Node = XMLDom.documentElement.selectSingleNode("topic")
	topicid = CLng(Node.selectSingleNode("@topicid").text)
	classid = CLng(Node.selectSingleNode("@classid").text)
	topicmode = CLng(Node.selectSingleNode("@topicmode").text)
	PostNum = CLng(Node.selectSingleNode("@postnum").text)
	HeadTitle = Trim(Node.selectSingleNode("@title").text)
	TopicUseTable = Trim(Node.selectSingleNode("@posttable").text)
	icons = topicmode

	If CLng(Node.selectSingleNode("@userid").text) <> NewAsp.UserID Then
		isnowuser = 0
	Else
		isnowuser = 1
	End If
	XMLDom.documentElement.setAttribute "postuserid",Node.selectSingleNode("@userid").text
	Set Node = Nothing
	HtmlContent = Replace(HtmlContent, "{$TopicID}", topicid)
	HtmlContent = Replace(HtmlContent, "{$ClassID}", classid)
End Sub

Sub LoadShareList()
	If NewAsp.FoundErr Then Exit Sub
	XMLDom.documentElement.setAttribute "classname",classname
	XMLDom.documentElement.setAttribute "userid",NewAsp.UserID
	XMLDom.documentElement.setAttribute "topicmode",topicmode
	XMLDom.documentElement.setAttribute "isnowuser",isnowuser
	XMLDom.documentElement.setAttribute "icons",icons
	XMLDom.documentElement.setAttribute "allowanswers",allowAnswers
	XMLDom.documentElement.setAttribute "allowdeletes",allowDeletes

	Dim SQL,Rs,Postlist,Node,NowPostNum
	Dim satisanswer,otheranswer,i
	i=0
	SQL="SELECT postsid,classid,TopicID,userid,UserName,topic,content,addText,PostTime,DoneTime,star,satis,LockTopic,PostsMode,VoteNum,Plus,Minus,PostIP,Report FROM ["&TopicUseTable&"] WHERE topicid="&topicid&" and LockTopic=0 ORDER BY postsid ASC"
	Set Rs = NewAsp.Execute(SQL)
	If Not Rs.EOF Then
		SQL=Rs.GetRows(-1)
		Set Postlist=NewAsp.ArrayToxml(SQL,Rs,"row","postlist")
	Else
		Set Postlist=Nothing
	End If
	Set Rs=Nothing
	SQL=Empty
	If Not Postlist Is Nothing Then
		NowPostNum = Postlist.documentElement.SelectNodes("row[@postsmode=1]").Length
		XMLDom.documentElement.setAttribute "nowpostnum",NowPostNum
		For Each Node in Postlist.documentElement.SelectNodes("row")
			Node.selectSingleNode("@topic").text=NewAsp.Checkstr(Node.selectSingleNode("@topic").text)
			Node.selectSingleNode("@posttime").text=NewAsp.FormatDate(Node.selectSingleNode("@posttime").text,1)
			Node.selectSingleNode("@content").text=UBBCode(Node.selectSingleNode("@content").text)
			Node.attributes.setNamedItem(Postlist.createNode(2,"i","")).text = i
			i = i + 1
		Next
		XMLDom.documentElement.appendChild(Postlist.documentElement)
		Set Postlist=Nothing
	Else
		NowPostNum = 0
		XMLDom.documentElement.setAttribute "nowpostnum",NowPostNum
	End If
	'--如果回答数不正确,更新回答总数
	If PostNum <> NowPostNum Then
		NewAsp.Execute ("UPDATE NC_Ask_Topic SET PostNum=" & NowPostNum & " WHERE topicid="&topicid)
	End If
	transform_sharelist()
End Sub

Sub transform_sharelist()
	Dim proc,XMLStyle,node,cnode,XSLTemplate
	Set XSLTemplate=NewAsp.CreateAXObject("Msxml2.XSLTemplate" & MsxmlVersion )
	Set XMLStyle=NewAsp.CreateXmlDoc("msxml2.FreeThreadedDOMDocument"& MsxmlVersion )
	XMLStyle.load Server.MapPath(NewAsp.TemplatePath & "xslt/share.xslt")
	Set Node=XMLStyle.createNode(1,"xsl:variable","http://www.w3.org/1999/XSL/Transform")
	Set CNode=XMLStyle.createNode(2,"name","")
	CNode.text="installdir"
	Node.attributes.setNamedItem(CNode)
	Node.text=NewAsp.InstallDir
	XMLStyle.documentElement.appendChild(node)
	Set Node=XMLStyle.createNode(1,"xsl:variable","http://www.w3.org/1999/XSL/Transform")
	Set CNode=XMLStyle.createNode(2,"name","")
	CNode.text="skinurl"
	Node.attributes.setNamedItem(CNode)
	node.text=NewAsp.AskedSkinUrl
	XMLStyle.documentElement.appendChild(node)
	XSLTemplate.stylesheet=XMLStyle
	Set proc = XSLTemplate.createProcessor()
	proc.input = XMLDom
	proc.transform()
	Dim procstr
	procstr = proc.output
	HtmlContent = Replace(HtmlContent, "{$TopicList}", procstr)
	Set XMLDom=Nothing
	Set proc=Nothing
	Set XMLStyle=Nothing
	Set XSLTemplate=Nothing
End Sub

Sub CategoryInfo()
	If NewAsp.FoundErr Then Exit Sub
	Dim iAskCount,cid,cNameText
	Dim Catelist,Childlist,Node,parentid,Parentstr
	cid = classid
	child = 0
	Set Catelist = Application(NewAsp.CacheName&"_classlist")
	If Not Catelist Is Nothing Then
		For Each Node in Catelist.documentElement.SelectNodes("row[@classid="&classid&"]")
			classname=Node.selectSingleNode("@classname").text
			child=CLng(Node.selectSingleNode("@child").text)
			parentid=CLng(Node.selectSingleNode("@parentid").text)
			Parentstr=Node.selectSingleNode("@parentstr").text
			If child>0 Then
				cid=classid
			Else
				cid=CLng(Node.selectSingleNode("@parentid").text)
			End If
		Next
		cNameText = ""
		If parentid>0 Then
			Dim classType,cateid
			Dim ArrayParent,i,n,DocNodes
			ArrayParent = Split(Parentstr, ",")
			n=0
			For i=0 To UBound(ArrayParent)
				If NewAsp.ChkNumeric(ArrayParent(i))>0 Then
					If n=0 Then
						DocNodes="row[@classid="&ArrayParent(i)&""
					Else
						DocNodes=DocNodes&" or @classid="&ArrayParent(i)&""
					End If
					n=n+1
				End If
			Next
			If DocNodes<>"" Then
				DocNodes=DocNodes&"]"
				For Each Node in Catelist.documentElement.SelectNodes(DocNodes)
					classType=Node.selectSingleNode("@classname").text
					cateid=Node.selectSingleNode("@classid").text
					cNameText=cNameText&"<a href="""&NewAsp.InstallDir&"showlist.asp?classid="&cateid&"&topicmode=3&page=1"">"&classType&"</a> &gt; "
					HeadCategory=HeadCategory&classType&"-"
				Next
			End If
		End If
		cNameText=cNameText&"<a href="""&NewAsp.InstallDir&"showlist.asp?classid="&classid&"&topicmode=3&page=1"">"&classname&"</a>"
		HeadCategory=HeadCategory&classname
		Set Catelist = Nothing
	End If
	HtmlContent = Replace(HtmlContent, "{$Current}", cNameText)
	HtmlContent = Replace(HtmlContent, "{$ClassName}", classname)
End Sub
%>