<%@ page contentType="text/html;charset=GBK" %>
<jsp:useBean id="myEnv" scope="application" class="com.jdon.web.UserEnvFront"/>
<jsp:setProperty name="myEnv" property="*"/>
<%
/**
 *	$RCSfile: post.jsp,v $
 *	$Revision: 1.3 $
 *	$Date: 2002/10/23 14:36:14 $
 */
%>

<%@ page import="java.net.*,
                 java.text.*,
                 java.util.*,
                 com.jivesoftware.util.*,
                 com.jivesoftware.forum.*,
                 com.jivesoftware.forum.util.*"
    errorPage="error.jsp"
%>

<%! // Formatter for short dates
    static final SimpleDateFormat shortDateFormatter =
            new SimpleDateFormat("MMM, yyyy", JiveGlobals.getLocale());
%>

<%  // Login code. Usually the following code (below the parameter code) is in
    // global.jsp, but on this page we're not including global.jsp so we can
    // have better control over the way UnauthorizedExceptions are handled.

    // First, get the message parameters because we might be entering this page
    // after submitting the message form to post a message.
    long forumID = ParamUtils.getLongParameter(request,"forum",-1L);
	long threadID = ParamUtils.getLongParameter(request,"thread",-1L);
    long messageID = ParamUtils.getLongParameter(request,"message",-1L);
    boolean reply = ParamUtils.getBooleanParameter(request,"reply");
    boolean doPost = ParamUtils.getBooleanParameter(request,"doPost");
    boolean fromPreview = ParamUtils.getBooleanParameter(request,"fromPreview");
    boolean quote = ParamUtils.getBooleanParameter(request,"quote");
    String subject = ParamUtils.getParameter(request,"subject");
    String body = ParamUtils.getParameter(request,"body");
    String name = ParamUtils.getParameter(request,"name");
    String email = ParamUtils.getParameter(request,"email");
    // Special parameters to tell us whether the user was logged in or not
    boolean wasLoggedIn = ParamUtils.getBooleanParameter(request, "isLoggedIn");
	////added by Cherami
    final int BODYLENGTH=45000;
	////
    // Check to see if a Jive authorization token exists. Wrap that check in a
    // try/catch block so we can correctly redirect to login if necessary
    Authorization authToken = null;
    try {
        authToken = SkinUtils.getUserAuthorization(request, response);
        if (doPost && wasLoggedIn && authToken == null) {
            // This case means the session died or the appserver restarted and
            // wiped the session data. Throw an UnauthorizedException so we kick
            // the user to the login page. After they login, they'll redirect
            // to this page.
            throw new UnauthorizedException("用户已登录但是授权标记丢失。");
        }
    }
    catch (UnauthorizedException ue) {

        // Redirect to login.jsp. If the subject & body are not null, post those
        // in the session.
        if (subject != null) {
            session.setAttribute("jive.post.subject."+forumID+"."+threadID, subject);
        }
        if (body != null) {
            session.setAttribute("jive.post.body."+forumID+"."+threadID, body);
        }

		// Next construct the login.jsp referrer (the link it will redirect to)
        StringBuffer url = new StringBuffer("post.jsp");
        url.append("?forum=").append(forumID);
        url.append("&thread=").append(threadID);
        url.append("&message=").append(messageID);
        url.append("&reply=").append(reply);
        url.append("&fromPreview=").append(true);     // XXX always set to true?
        url.append("&quote=").append(quote);
        url.append("&doPost=").append(doPost);
        if (name != null) { url.append("&name=").append(name); }
        if (email != null) { url.append("&email=").append(email); }
        // Do the redirect
        String redirect = "login.jsp?unauth=true&referrer=" + URLEncoder.encode(url.toString());
        response.sendRedirect(redirect);
        return;
    }
    // If authToken is null, make an anonymous login:
    if (authToken == null) {
        authToken = AuthorizationFactory.getAnonymousAuthorization();
    }
    boolean isGuest = authToken.isAnonymous();
    // Get the forum factory object.
    ForumFactory forumFactory = ForumFactory.getInstance(authToken);
    // Get the user of this page
    User pageUser = null;
    if (!isGuest) {
	    pageUser = myEnv.getForumFactory().getUserManager().getUser(authToken.getUserID());
    }

    boolean autoWatchNewTopics = false;
    boolean autoWatchReplies = false;
    boolean addWatch = ParamUtils.getBooleanParameter(request,"addWatch");
    if (!isGuest) {
        autoWatchNewTopics = "true".equals(pageUser.getProperty("jiveAutoWatchNewTopics"));
        autoWatchReplies = "true".equals(pageUser.getProperty("jiveAutoWatchReplies"));
    }
    boolean wasAutoWatchReplies = ParamUtils.getBooleanParameter(request,"wasAutoWatchReplies");
    if (reply && (addWatch != wasAutoWatchReplies)) {
        autoWatchReplies = addWatch;
    }
    boolean wasAutoWatchNewTopics = ParamUtils.getBooleanParameter(request,"wasAutoWatchNewTopics");
    if (!reply && (addWatch != wasAutoWatchNewTopics)) {
        autoWatchNewTopics = addWatch;
    }

    // The last time the user visited this page
    Date lastVisited = new Date(SkinUtils.getLastVisited(request,response));

    // The following is the rest of the normal post logic

    String formButton = ParamUtils.getParameter(request,"formButton");
    boolean preview = doPost && ("预 览".equals(formButton));

    // Grab the subject & body from the session if we're coming from
    // a message preview (these values can't be passed as parameters)
	if (fromPreview) {
 	    subject = (String)session.getAttribute("jive.post.subject."+forumID+"."+threadID);
        body = (String)session.getAttribute("jive.post.body."+forumID+"."+threadID);
	}

    // Error variables
	boolean errors = false;
	String errorMessage = "";

	// Error checks

    // Check to see the subject & body are not blank
	if (doPost && (subject == null)) {
 	    errors = true;
		errorMessage = "请输入标题!";
    }
	else if (doPost && (body == null)) {
 	    errors = true;
        errorMessage = "对不起,您不可以发表空信息,请重新输入!";
	}

    // Load the forum we're posting in.
    Forum forum = myEnv.getForumFactory().getForum(forumID);

    // Security check. Determine if this user can post new messages or reply to
    // threads
    boolean login = false;
    if (reply) {
        if (!forum.hasPermission(ForumPermissions.CREATE_MESSAGE)
                && !myEnv.getForumFactory().hasPermission(ForumPermissions.CREATE_MESSAGE))
        {
            if (isGuest) {
                login = true;
            } else {
                throw new UnauthorizedException("没有在此论坛发表回复的权限");
            }
        }
    }
    // check to see if this use can create new topics
    else {
        if (!forum.hasPermission(ForumPermissions.CREATE_THREAD)
                && !myEnv.getForumFactory().hasPermission(ForumPermissions.CREATE_THREAD))
        {
            if (isGuest) {
                login = true;
            } else {
                throw new UnauthorizedException("没有在此论坛发表新主题的权限");
            }
        }
    }
    if (login) {
        // If we need to login, send the referrer along as a link to this page
        StringBuffer postLink = new StringBuffer("post.jsp?forum=").append(forumID);
        if (threadID != -1L) {
            postLink.append("&thread=").append(threadID);
        }
        if (messageID != -1L) {
            postLink.append("&message=").append(messageID);
        }
        if (reply) {
            postLink.append("&reply=").append(reply);
        }
        response.sendRedirect("login.jsp?unauth=true&referrer=" +
            java.net.URLEncoder.encode(postLink.toString()));
        return;
    }

    // Check if we need to do a message preview
    if (preview && !errors) {
        // Put the message subject & body in the session
        session.setAttribute("jive.post.subject."+forumID+"."+threadID, subject);
        session.setAttribute("jive.post.body."+forumID+"."+threadID, body);

        // Redirect to the preview page:
        response.sendRedirect(
            "preview.jsp?forum=" + forumID + "&thread=" + threadID + "&message="
            + messageID + "&reply=" + reply
            + "&name=" + ((name!=null)?URLEncoder.encode(name):"")
            + "&email=" + ((email!=null)?URLEncoder.encode(email):"")
        );
        return;
    }

    // Load the thread we're posting in (if this is a reply).
	ForumThread thread = null;
    // The parent message we're replying to (if this is a reply)
	ForumMessage parentMessage = null;
	if (reply) {
     	thread = forum.getThread(threadID);
        // a message ID might not be passed in. If this is the case, we're
        // replying to the root message so get the message ID from the root
        // message of the thread
        if (messageID == -1L) {
            parentMessage = thread.getRootMessage();
            messageID = parentMessage.getID();
        } else {
            parentMessage = thread.getMessage(messageID);
        }
	}

    // Determine if moderation is turned on for this forum
    boolean isThreadModOn = (
        forum.getModerationDefaultThreadValue()
        < forum.getModerationMinThreadValue()
    );
    boolean isMsgModOn = (
        forum.getModerationDefaultMessageValue()
        < forum.getModerationMinMessageValue()
    );

    // A user manager lets us get and set user information
    UserManager userManager = myEnv.getForumFactory().getUserManager();

    // The new message we're creating
    ForumMessage newMessage = null;

    // Do a message preview. For this, we populate a blank ForumMessage object.
    // We don't add it to the thread though.
	if (doPost) {
		// Create a new message/thread
		if (!errors) {
			// Create a new message object
            if (isGuest) {
			    newMessage = myEnv.getForumFactory().createMessage();
            } else {
			    newMessage = myEnv.getForumFactory().createMessage(pageUser);
            }
			newMessage.setSubject(subject);
			////modified by Cherami
			if (body.length()>BODYLENGTH) {
				newMessage.setBody(body.substring(0,BODYLENGTH));
				System.out.println("内容超长,截断");
			}
			else {
			    newMessage.setBody(body);
			}
			////source code
			////newMessage.setBody(body);
			//
            // set message properties if this is a guest posting
            if (isGuest) {
                if (name != null) { newMessage.setProperty("name", name); }
                if (email != null) { newMessage.setProperty("email", email); }
            }
			// if this is a reply, add it to the thread
			if (reply) {
				thread.addMessage(parentMessage,newMessage);
			}
			else {
				// it is a new posting
				forum.addThread(myEnv.getForumFactory().createThread(newMessage));
                thread = newMessage.getForumThread();
			}
            // Get the user's watch preferences:
            if (pageUser != null) {
                boolean autoAddEmailWatch = "true".equals(pageUser.getProperty("jiveAutoAddEmailWatch"));
                // Check if we need to add a watch to this message
                if (autoWatchNewTopics || (reply && autoWatchReplies)) {
                    WatchManager watchManager = myEnv.getForumFactory().getWatchManager();
                    watchManager.createWatch(pageUser, thread, WatchManager.NORMAL_WATCH);
                    if (autoAddEmailWatch) {
                        watchManager.createWatch(pageUser, thread, WatchManager.EMAIL_NOTIFY_WATCH);
                    }
                }
            }

            session.removeAttribute("jive.post.subject."+forumID+"."+threadID);
            session.removeAttribute("jive.post.body."+forumID+"."+threadID);
   			// Figure out where we need to redirect to.
            String redirect = "thread.jsp?forum="+forumID+"&thread="+thread.getID();
            // Do a standard redirect back to the new thread page if we're
            // not replying to a message
            if (!reply) {
                // However, if thread moderation is turned on, we shoud just
                // redirect back to the forum's thread listing:
                if (isThreadModOn) {
                    response.sendRedirect("forum.jsp?forum="+forumID);
                    return;
                }
                else {
                    // Standard redirect back to the new thread page
                    response.sendRedirect(redirect);
                    return;
                }
            }
            // Otherwise, we need to redirect back to the new posted reply.
            // Compute the correct thread page to go to.
            else {
                // However, if message moderation is turned on, we should just
                // redirect back to the top of the thread listing
                if (isMsgModOn) {
                    response.sendRedirect("thread.jsp?forum=" + forumID
                        + "&thread=" + threadID);
                    return;
                }
                else {
                    // the ID of the newly created message
                    long newMessageID = newMessage.getID();
                    // the number of threads a user wants to display on a topic page
                    int threadRange = myEnv.du.getThreadRange(request, response, pageUser);
                    // the number of messages in this thread
                    int messageCount = thread.getMessageCount();
                    // number of pages in the topic listing (we'll want to be at
                    // the end of that since new messages end up at the end of the
                    // thread list)
                    int numPages = (int)Math.ceil((double)messageCount/(double)threadRange);
                    // starting point:
                    int start = (numPages-1) * threadRange;
                    // do the redirect:
        			response.sendRedirect(
                        "thread.jsp?forum=" + forumID + "&thread=" + thread.getID()
                        + "&start=" + start + "&msRange=" + threadRange
                    );
                    return;
                }
            }
		}
    }
%>

<%  String title = "论坛 - 发布消息 " + forum.getName(); %>
<%@ include file="header.jsp" %>

<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
    <td valign="top" width="98%">
    <font face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>" color="<%= JiveGlobals.getJiveProperty("skin.default.linkColor") %>">
    <%  if (reply) { %>
        <b>回复</b>
    <%  } else { %>
        <b>发新贴</b>
    <%  } %>
    </font>
    <br>

    <%-- Breadcrumbs --%>

    <font size="-1" face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>" color="<%= JiveGlobals.getJiveProperty("skin.default.linkColor") %>">
    <b>
    <a href="<%= JiveGlobals.getJiveProperty("skin.default.homeURL") %>"
    >首页</a>
    &raquo;
    <a href="index.jsp" title="返回论坛列表"
    >论坛</a>
    &raquo;
    <a href="forum.jsp?forum=<%= forumID %>" title="返回论坛主题列表"
    ><%= forum.getName() %></a>
    </b>
    </font>
    <p>
    <font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
    <%  if (reply) { %>
    在<a href="forum.jsp?forum=<%= forumID %>"><%= forum.getName() %></a>论坛中回应<b><%= parentMessage.getSubject() %></b>消息.
    <%  } else { %>
    在<a href="forum.jsp?forum=<%= forumID %>"><%= forum.getName() %></a>发新帖.
    <%  } %>
    </font>
    <p>
    </td>
    <td valign="top" width="1%" align="center">
    <%@ include file="loginbox.jsp" %>
    </td>
</tr>
</table>

<p>

<font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
<%  if (reply) { %>
请在下面的表格中输入回复此主题的信息，当您输入完毕您可以选择下面“预览”
按钮预览信息。或者可以直接选择“发表”按钮，直接发布信息。  <br>

    <%  if (isMsgModOn) { %>
    <p>
    <font color="#cc3300">

	<b>请注意</b>：您的回复在批准后才会发布在论坛里！！！ <br>
    </font>
    <%  } %>

<%  } else { %>
请在下面的表格中输入您想发布的信息，当您输入完毕您可以选择下面“预览”
按钮预览信息。或者可以直接选择“发表”按钮，直接发布信息。 <br>

    <%  if (isThreadModOn) { %>
    <p>
    <font color="#cc3300">

	<b>请注意</b>：您发布的信息在批准后才会发布在论坛里！！！  <br>
    </font>
    <%  } %>

<%  } %>
</font>
<p>

<%  if (errors) { %>
    <font class=p2 color="#990000" face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
    <i><%= errorMessage %></i>
    </font>
    <p>
<%  } %>

<script language="JavaScript" type="text/javascript">
<!--
var checked = false;
function checkPost() {
    if (!checked) {
        checked = true;
        return true;
    }
    return false;
}
//-->
</script>

<form action="post.jsp" method="post" name="main" onsubmit="return checkPost();">
<input type="hidden" name="doPost" value="true">
<input type="hidden" name="reply" value="<%=reply%>">
<input type="hidden" name="forum" value="<%=forumID%>">
<input type="hidden" name="thread" value="<%=threadID%>">
<input type="hidden" name="message" value="<%=messageID%>">
<%  if (!isGuest) { %>
<input type="hidden" name="isLoggedIn" value="true">
<%  } %>

<%	// Add an "Re: " to the subject if this is a reply
    if (reply) {
        subject = parentMessage.getSubject();
        if (!subject.startsWith("Re: ")) {
            subject = "Re: " + subject;
        }
    }
    // Escape any quotes in the subject.
    if (subject != null) {
        subject = StringUtils.replace(subject, "\"", "&quot;");
    }
%>
<table cellpadding="4" cellspacing="0" border="0">
<%  if (isGuest) { %>
<tr>
	<td align="right"><font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">姓名</font></td>
	<td><input type="text" name="name" value="<%= ((name!=null)?name:"") %>" size="40" maxlength="75"></td>
</tr>
<tr>
	<td align="right"><font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">Email</font></td>
	<td><input type="text" name="email" value="<%= ((email!=null)?email:"") %>" size="58" maxlength="75"></td>
</tr>
<%  } %>
<tr>
	<td align="right"><font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">标题</font></td>
	<td><input type="text" name="subject" value="<%= ((subject!=null)?subject:"") %>" size="75" maxlength="75"></td>
</tr>
<%	// Display the "Quote Original" button
    if (reply) { %>
<tr>
	<td>&nbsp;</td>
	<td><font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
        <a href="post.jsp?forum=<%=forumID%>&thread=<%=threadID%>&message=<%=messageID%>&reply=<%=reply%>&quote=true"
        >[引用原文]</a>
        </font>
	</td>
</tr>
<%	} %>

<script language="JavaScript" type="text/javascript">
<!--
function tag(el, theTag) {
    if (theTag == 'b') {
        el.value += "[b][/b]";
    } else if (theTag == 'i') {
        el.value += "[i][/i]";
    } else if (theTag == 'u') {
        el.value += "[u][/u]";
    } else if (theTag == 'code') {
        el.value += "\n[code]\n// 在此输入java代码\n[/code]";
    } else if (theTag == 'image') {
        var url = prompt("请输入一个图片的URL","http://");
        if (url != null) {
            el.value += "[img]" + url + "[/img]";
        }
    } else if (theTag == 'url') {
        var url = prompt("请输入链接的URL","http://");
        var text = prompt("请输入链接文本");
        if (url != null) {
            if (text != null) {
                el.value += "[url=" + url + "]" + text + "[/url]";
            } else {
                el.value += "[url]" + url + "[/url]";
            }
        }
    }
}
function MM_openBrWindow(theURL,features) { //v2.0
   window.open(theURL,"adwin",features);

}

//-->
</script>

<tr>
	<td valign="top" align="right">
    <font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
<%	if (reply) { %>
	您的回复
<%	} else { %>
	消息
<%	} %>
    </font>
	</td>
<%	int textareaCols = 65;
    int textareaRows = 15;
    if (quote) {
		String pBody = parentMessage.getUnfilteredBody();
		if (pBody != null) {
			body = SkinUtils.quoteOriginal(pBody,"&gt; ",54);
			body += "\n";
		}
	}
%>
	<td>
         <input type="hidden" name="body" value="<%= ((body!=null)?body:"") %>">
         <textarea name="content" style="display:none"><%= ((body!=null)?body:"") %></textarea>
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
                <tr>
                  <td class="tdbgcolor1">
                  <iframe ID="onlineEditor" name="onlineEditor" src="myeditor/HtmlEditor/index.html?ID=content" frameBorder="0" marginHeight="0" marginWidth="0" scrolling="No"   width="700" height="230"></iframe>
                  <!--<iframe src="html/htmleditor.html" id="onlineEditor"  width="700" height="352"></iframe>-->
                  <br/>
					
					
				  </td>
                </tr>
</table>
         
         
	</td>
</tr>

<%  if (!isGuest) { %>
<tr>
    <td>&nbsp;</td>
    <%  if (reply) { %>
    <input type="hidden" name="wasAutoWatchReplies" value="<%= (autoWatchReplies)?"true":"false" %>">
	<td><input type="checkbox" name="addWatch"
         id="cb"<%= (autoWatchReplies)?" checked":"" %>>
        <font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>"
        ><label for="cb">监控此主题</label></font>
	</td>
    <%  } else { %>
    <input type="hidden" name="wasAutoWatchNewTopics" value="<%= (autoWatchNewTopics)?"true":"false" %>">
	<td><input type="checkbox" name="addWatch"
         id="cb"<%= (autoWatchNewTopics)?" checked":"" %>>
        <font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>"
        ><label for="cb">监控此主题</label></font>
	</td>
    <%  } %>
</tr>
<%  } %>
<tr>
	<td>&nbsp;</td>
	<td>
	<div align="center">
	<input type="Button" value="预 览" name="formButton" onClick="javascript: onlineEditor.AttachSubmit();this.form.body.value=this.form.content.value;this.form.submit();">
	&nbsp;&nbsp;
	<input type="Button" value="发 表" name="formButton" onClick="javascript: onlineEditor.AttachSubmit();this.form.body.value=this.form.content.value;this.form.submit();">
	&nbsp;&nbsp;
	<input name="reset" type="reset" value="重置">
	&nbsp;&nbsp;
        <input type="button" name="return" value="返回" onClick="javascript:window.history.back();">
	</div>
	</td>
</tr>
</table>
<script language="JavaScript" type="text/javascript">
<!--
<%	if (subject == null) { %>
	document.main.subject.focus();
<%	} else { %>
	document.main.body.focus();
<%	} %>
//-->
</script>
</form>

<p>

<%	// Show the original message
    if (reply) {
        User author = parentMessage.getUser();
	    long parentForumID = parentMessage.getForumThread().getForum().getID();
	    long parentThreadID = parentMessage.getForumThread().getID();
	    long parentID = parentMessage.getID();
%>
    <font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
    <b>原始信息</b>
    </font>
    <p>
    <table bgcolor="<%= JiveGlobals.getJiveProperty("skin.default.tableBorderColor") %>"
     cellpadding="0" cellspacing="0" border="0" width="100%">
    <tr><td>
    <table bgcolor="<%= JiveGlobals.getJiveProperty("skin.default.tableBorderColor") %>"
     cellpadding="4" cellspacing="1" border="0" width="100%">
    <tr bgcolor="<%= JiveGlobals.getJiveProperty("skin.default.tableRowColor1") %>">
        <td width="1%" rowspan="2" valign="top">
        <table cellpadding="0" cellspacing="0" border="0" width="140">
        <tr><td>
            <font size="-1" face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
<%	    if (author == null) {
            // Check to see if there is an extended property for name & email
            // since the gateway feature imports names and emails as extended
            // props.
            String guestName = parentMessage.getProperty("name");
            String guestEmail = parentMessage.getProperty("email");
            String nameAndEmail = myEnv.du.getNameAndEmailDisplay(guestName, guestEmail);
            if (nameAndEmail != null) {
%>
            <i>客人: <%= nameAndEmail %></i>
<%          } else { %>
			<i>客人</i>
<%          }
        } else {
            // author != null
            String authorName = author.getName();
            String userStatus = author.getProperty("status");
%>
			<a href="profile.jsp?user=<%= author.getID() %>" title="<%= (authorName!=null)?authorName:"" %>"
             ><b><%= author.getUsername() %></b></a>
            </font>

            <font class=p2 face="verdana,arial,sans-serif">
            <br><br>
            发表文章: <%= userManager.userMessageCount(author) %>
            <br>
            <%  String location = author.getProperty("location");
            if (location != null) { %>
            来　　自: <%= location %><br>
            <%  } %>
            注册时间: <%= myEnv.shortDateFormatter.format(author.getCreationDate()) %>
            <br><br>
<%      } %>
            </font>
            </td>
        </tr>
        </table>
        </td>
        <td width="97%">
        <font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
        <b><%= parentMessage.getSubject() %></b>
        </font>
		</td>
        <td width="1%" nowrap>
        <font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
        发表时间: <%= SkinUtils.formatDate(request,response,pageUser,parentMessage.getCreationDate()) %>
        </font>
        </td>

        <td width="1%" nowrap align="center">
            <table cellpadding="2" cellspacing="0" border="0">
            <tr>
                <td><img src="images/reply.gif" width="17" height="17" alt="回复此消息" hspace="3" border="0"></td>
                <td>
                <font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
                <b>回复</b>
                </font>
                </td>
            </tr>
            </table>
        </td>
    </tr>
    <tr bgcolor="<%= JiveGlobals.getJiveProperty("skin.default.tableRowColor1") %>">
        <td width="99%" colspan="3" valign="top">
        <font class=p2 face="<%= JiveGlobals.getJiveProperty("skin.default.fontFace") %>">
        <%= parentMessage.getBody() %>
        </font>
		<p>
        </td>
    </tr>
    </table>
</td></tr>
</table>

<%	} // end if reply %>

<br>

<%@ include file="footer.jsp" %>
