<?php
#------------------------------------------------------#
#               本程序为zChain.net提供                 #
#                zChain论坛(ZBB)v2.00                  #
#------------------------------------------------------#
# INPUT[$FORM{}] : $action,$url,$mbid,$mid,$page,$f_comment;

require_once('bin/config.php');
require_once('bin/common.php');
require_once('bin/zbbcodec.php');

require_once('core/class_forum_base.php');
CForumBase::setFileBase("$filepath");
require_once('core/base_memo_file.php');
require_once('core/class_user.php');
require_once('core/base_array_file.php');
require_once('core/class_mailbox.php');

$mbid=str_replace('.','',$mbid);
#--- Validate user ---
$oUsr=new CUser;
if($mbid && !$oUsr->isRegistered($mbid)){errorview('无效ID!');}
if(!$sv_user || !$oUsr->load($sv_user)){errorview('尚未登录，不能使用消息功能！');}

#--- Action branch ---
switch($action){
 case 'add_form': addForm($mbid,$url);exit;
 case 'add_submit': checkRepeat(); addSubmit($mbid,$url);exit;
 case 'clean': removeAll($mbid);exit;
 case 'remove': removeMessage($mbid,$mid);exit;
}

#--- Display mailbox ---
$oMB=new CMailBox;
$oMB->load($sv_user);
$size=$oMB->itemCount();

$oUsr->msg=0; $oUsr->oldmsg=$size;
$oUsr->store($sv_user);

if($page == ""){$page=1;}
$firstitem=($page-1)*20+1;
$lastitem=$firstitem+20-1; if($lastitem > $size){$lastitem=$size;}

page_header("{$sv_user}的私人留言本","$imgurl/bg.gif");
print "<CENTER>";
$posText=getRootText()." >> {$sv_user}的私人留言本";
menu_bar($posText,'');

print <<<EOT
<SCRIPT>
function cookie_clean(){
if (confirm("该项操作要清空您私人留言簿上的所有留言，您确定要清除吗?")){
return true;
}
return false;
}
</SCRIPT>
<BR>
<table border=0 width=600 cellspacing=1 class=forumLine cellpadding=3>
<tr>
 <td class=rowCaption colspan=2>{$sv_user}的私人留言本</td>
</tr>
<tr>
 <td class=row2>
 总共有<EM> $size </EM>条留言　当前浏览第<EM> $firstitem - $lastitem </EM>条留言</td>
 <td class=row2 align=center width=120><a href=?action=clean&mbid=$sv_user onclick="return cookie_clean()">清空留言簿</a></td>
</tr>
</table>
EOT;

for($i=$firstitem-1; $i<$lastitem; $i++) {
 $oMB->moveTo($i);

 print <<<EOT
<BR>
<table cellspacing=1 cellpadding=4 border=0 width=600 class=forumLine>
<tr>
 <td width=90 class=rowCaption>留言者</td>
 <td colspan=2 class=rowCaption>留言内容</td>
</tr>
<tr>
 <td valign=top width=90 rowspan=2 class=row1>$oMB->from</td>
 <td valign=top colspan=2 class=row1>
  <table cellspacing=0 cellpadding=0 width=100% border=0>
  <tr>
   <td align=left>
    <img height=16 alt=留言 src=$imgurl/lytu.gif border=0> 留言于: $oMB->time</td>
   <td width=25 align=right>
    <a href="?action=remove&mbid=$sv_user&mid=$oMB->id"><img height=16 alt=删除该留言 src=$imgurl/del.gif border=0></a></td>
  </tr>
  </table>
  <hr size=1>
  $oMB->content</td>
<tr>
 <td valign=bottom width=180 class=row1>
  <img height=16 alt=回复该留言 src=$imgurl/hf.gif border=0>
  <a href='?action=add_form&mbid=$oMB->from'>回复该留言</a></td>
 <td valign=bottom class=row1>
  <img height=16 alt="查看 {$oMB->from} 的个人资料" src=$imgurl/pro.gif border=0>
  <a href='viewuser.php?user=$oMB->from'>查看 {$oMB->from} 的个人资料</a></td>
</tr>
</table>
EOT;
}

print "<table border=0 width=600><tr><td align=center>";

$pages=ceil($size/20);
for($i=1;$i<=$pages;$i++){
 print ($i!=$page) ? "<a href=?page=$i>[$i]</a>" : "[$i]";
}
print "</td></tr></table><br>
<a href=javascript:history.back();><IMG src=$imgurl/back.gif border=0></a></CENTER>";

page_footer();
exit;

function addForm($mbid,$url)
{
 global $imgurl,$sv_user;

 if($sv_user == $mbid){errorview("不能自己给自己留言!");}

 page_header("给 {$mbid} 留言","$imgurl/bg.gif");
 print "<CENTER>";
 $posText=getRootText()." >> 发送留言";
 menu_bar($posText,'');

 print <<<EOT
<SCRIPT>
var i=0;
function check(theForm) {
if(theForm.f_comment.value == "" ) {
alert("您的留言内容不能为空！");
return false;
}
if (theForm.f_comment.value.length > 1000){
alert("对不起，您的留言不能超过 1000 个字节！");
return false;
}
i++;
if (i>1) {alert('留言正在发出，请耐心等待！'); return false;}
}
function confirm_reset(){
if (confirm("该项操作要清除全部的内容，您确定要清除吗?")){
return true;
}
return false;
}
function presskey(eventobject){if(event.ctrlKey && window.event.keyCode==13){this.document.form.submit();}}
</SCRIPT>
<BR>
<center>
<form name=form method="post">
<input type="hidden" name="action" value="add_submit">
<input type="hidden" name="url" value="$url">
<input type="hidden" name="mbid" value="$mbid">
<table cellspacing=1 cellpadding=4 border=0 width=400 class=forumLine>
<tr><td colspan=2 class=rowCaption>给 $mbid 留言</td></tr>
<tr><td colspan=2 class=row1>注意：以下 <EM>*</EM> 星号标出的项目必需填写.</td></tr>
<tr>
 <td valign=top align=center class=row2><EM>*</EM> 您的留言:</td>
 <td class=row2><textarea name=f_comment rows=6 cols=40 onKeyDown=presskey() class=plain></textarea></td>
</tr>
<tr>
 <td class=row1>&nbsp;</td>
 <td class=row1>注意：目前这个留言簿的 HTML 功能是被不允许的。</td>
</tr>
<tr>
 <td align=center class=row2 colspan=2> 
  <input onClick="return check(this.form)" type=submit value="  确  定 留  言  " name=SUBMIT>
  <input onClick="return confirm_reset()" type=reset value="  清 除 内 容  " name=RESET>
 </td>
</tr>
</table>
</FORM>
<br>
<a href=javascript:history.back();><IMG src=$imgurl/back.gif border=0></a></CENTER>
EOT;

 page_footer();
}

function addSubmit($mbid,$url)
{
 global $istime,$stime,$sv_user,$f_comment;

 $oUsr=new CUser;
 if(!$oUsr->load($mbid)){errorview("系统中没有此用户的资料！");}
 $oMB=new CMailBox;
 $oMB->load($mbid);

 zbbencode(&$f_comment);
 if(strlen($f_comment) > 1000){errorview("您的讯息不能大于1000个字符！");}
 $oMB->insertNew();
 $oMB->id=$istime; $oMB->from=$sv_user; $oMB->to=$mbid;
 $oMB->time=$stime; $oMB->content=$f_comment; $oMB->flag=0;
 $oMB->update();
 $oMB->store($mbid);

 $oUsr->msg++;
 $oUsr->store($mbid);

 if(!$url){$url='mailbox.php';}
 print "<META HTTP-EQUIV=Refresh CONTENT='2;url=$url'>留言成功！正在返回...";
}

function removeAll($mbid)
{
 $oMB=new CMailBox;
 $oMB->destroy($mbid);
 $oUsr=new CUser;
 if($oUsr->load($mbid)){
  $oUsr->msg=$oUsr->oldmsg=0;
  $oUsr->store($mbid);
 }

 print "<META HTTP-EQUIV=Refresh CONTENT='0;url=mailbox.php'>";
}

function removeMessage($mbid,$mid)
{
 $oMB=new CMailBox;
 $oMB->load($mbid);
 if($oMB->find($mid)){$oMB->delete();}
 $oMB->store($mbid);

 $oUsr=new CUser;
 if($oUsr->load($mbid)){
  $oUsr->oldmsg--;
  $oUsr->store($mbid);
 }

 print "<META HTTP-EQUIV=Refresh CONTENT='0;url=mailbox.php'>";
}

?>