<?php
# Script by seg0ro http://mobilarts.ru
# Not for sale!!!

defined('_IN_JOHNCMS') or die('Error: restricted access');

$textl .= ' | Новое сообщение';
require_once('../incfiles/head.php');

if (!$topic){
  echo functions::display_error('Отсутствует идентификатор темы!<br /><a href="index.php">Форум</a>');
  require_once('../incfiles/end.php');
  exit;
}

if (!$user_id || $ban['1'] || $ban['11'] || ($topicRes['close'] && ($rights != 3 && $rights < 6))){
  echo functions::display_error('У вас недостаточно прав для просмотра этой страницы!<br /><a href="index.php">Форум</a>');
  require_once('../incfiles/end.php');
  exit;
}

$quote = (isset($_GET['quote']) && $post) ? '&amp;quote' : '';
$text = $_POST['text'] ? trim($_POST['text']) : '';
$quoteText = '';

if (empty($_SESSION['tempid']))
  $_SESSION['tempid'] = rand(1111, 9999).$user_id;

$tree = array('<a href="index.php">Форум</a>', '<a href="index.php?topic='.$topicRes['topic'].'&amp;page='.$page.'">'.functions::checkout($topicRes['topicname']).'</a>', 'Новое сообщение');
echo '<div class="phdr">'.functions::display_menu($tree).'</div>';

$flood = functions::antiflood();
if ($flood){
  echo functions::display_error('Слишком высокая активность!<br />Пожалуйста, подождите '.$flood.' сек.<br /><a href="index.php?topic='.$topic.'&amp;page='.$page.'">Назад</a>');
  require_once('../incfiles/end.php');
  exit;
}

if ($post){
  if (isset($_GET['quote'])){
    $quoteText = isset($_POST['quote']) ? trim($_POST['quote']) : trim(preg_replace('#\[quote=(.*?)\](.*?)\[/quote\]#si', '', $postRes['text']));
  }else{
    $text = $_POST['text'] ? trim($_POST['text']) : '[b]'.$postRes['user'].'[/b], ';
  }
}

if (isset($_POST['addfile']) && $_FILES['file']['name']){
  $postId = 0;
  $topicId = $topic;
  $tempId = $_SESSION['tempid'];
  require_once ('includes/fileupload.php');
}

if (isset($_POST['delfile'])){
  $array = $_POST['delfile'];
  if (is_array($array)){
    foreach ($array as $file => $val){
      require_once ('includes/delfile.php');
    }
  }else{
    $error = 'Возникла ошибка при удалении файла!';
  }
}

$fileReq = mysql_query("SELECT * FROM `forum_files` WHERE `tempid` = '".intval($_SESSION['tempid'])."' LIMIT 11 ");
$total = mysql_num_rows($fileReq);

if (isset($_POST['send'])){

  if (!$text || ($post && $text == '[b]'.$postRes['user'].'[/b],'))
    $error .= 'Не введен текст сообщения!<br />';
    
  if ($quote && !$quoteText)
    $error .= 'Не введен текст цитаты!<br />';  

  if (!$error){
    
    $quoteText = $quote ? '[quote='.$postRes['user'].']'.$quoteText.'[/quote]' : '';
    
    $check = mysql_query("SELECT * FROM `forum_posts` WHERE `user_id` = '$user_id' AND `topic` = '$topic' ORDER BY `time` DESC LIMIT 1 ");
    if (mysql_num_rows($check) > 0){
      $checkText = mysql_fetch_array($check);
      if ($checkText['text'] == $quoteText.$text) {
        echo functions::display_error('Такое сообщение уже было!<br /><a href="index.php?topic='.$topic.'&amp;page='.$page.'">Назад</a>');
        require_once('../incfiles/end.php');
        exit;
      }
    }

    $posttime = time();

    mysql_query("INSERT INTO `forum_posts` SET
    `topic` = '$topic',
    `time` = '$posttime',
    `user_id` = '$user_id',
    `user` = '$login',
    `text` = '".mysql_real_escape_string($quoteText.$text)."',
    `files` = '$total',
    `browser` = '".mysql_real_escape_string($agn)."',
    `ip` = '".core::$ip."',
    `ip_via_proxy` = '".core::$ip_via_proxy."' ");
    $pid = mysql_insert_id();
    
    if ($post)
      journal::addEntry($postRes['user_id'], 'Вам ответили в теме: [url='.$set['homeurl'].'/forum/index.php?post='.$pid.'&find]'.$topicRes['topicname'].'[/url]');
    
    if ($total){
      mysql_query("UPDATE `forum_files` SET
      `post` = '$pid',
      `tempid` = ''
      WHERE `tempid` = '".intval($_SESSION['tempid'])."' ");
    }

    mysql_query("UPDATE `forum_topics` SET
    `time` = '$posttime',
    `lastpost` = '".$login.":|:".$pid."',
    `count` = count + 1 WHERE `topic` = '$topic' LIMIT 1 ");

    mysql_query("UPDATE `forum_forums` SET `last_topic` = '$topic:|:".$topicRes['topicname'].":|:$posttime' WHERE `forum` = '".$topicRes['forum']."' LIMIT 1 ");
    $user = functions::get_user($user);
	$shop = mysql_fetch_assoc(mysql_query("SELECT * FROM `cms_settings` WHERE `key` = 'post' LIMIT 1"));

	
    mysql_query("UPDATE `users` SET `lastpost` = '".time()."', `balans`='" . ($user['balans'] + $shop['val']) . "', `postforum` = postforum + 1 WHERE `id` = '$user_id' ");

    $goPage = $set_forum['upfp'] ? 1 : ceil(mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_posts` WHERE `topic` = '$topic' "), 0) / $kmess);

    unset ($_SESSION['tempid']);
    unset ($_SESSION['filename']);
    
    header ('Location: index.php?topic='.$topic.'&page='.$goPage.'#p'.$pid);
    
  }
}

if ($error)
  echo functions::display_error($error);

if ($text && isset($_POST['preview'])){
  $quotePreview = $quote ? '[quote='.$postRes['user'].']'.$quoteText.'[/quote]' : '';
  $textPreview = quote(functions::checkout($quotePreview.$text, 1, 1));
  if ($set_user['smileys'])
    $textPreview = functions::smileys($textPreview, $rights >= 1 ? 1 : 0);
  echo '<div class="list1"><strong>Предпросмотр:</strong><br />'.$textPreview.'</div>';
}

echo '<form id="form" name="form" action="index.php?act=addpost&amp;topic='.$topic.($post ? '&amp;post='.$post : '').$quote.'&amp;page='.$page.'" method="post" enctype="multipart/form-data">'.
'<div class="gmenu">'.($quote ? 'Цитата ('.$postRes['user'].'):<br /><textarea name="quote" cols="30" rows="'.$set_user['field_h'].'">'.text($quoteText).'</textarea><br />' : '').
'Текст:<br />'.bbcode::auto_bb('form', 'text').'<textarea name="text" cols="30" rows="'.$set_user['field_h'].'">'.text($text).'</textarea><br />'.
'<input type="submit" name="send" value="Отправить" /> <input type="submit" name="preview" value="Предпросм." /> <a href="../pages/faq.php?act=smileys">Смайлы</a></div>'.
'<div class="phdr">Файлы: '.$total.' из 10</div>';
if ($total){
  while ($fileRes = mysql_fetch_array($fileReq)){
    echo $i % 2 ? '<div class="list2">' : '<div class="list1">';
    echo show_file($fileRes).' <input type="submit" name="delfile['.$fileRes['file'].']" onclick="return confirm(\'Вы действительно хотите удалить файл?\');" value="Удалить" /></div>'; 
    ++$i;
  }
}
if ($total < 10){
  echo '<div class="gmenu">Файл <img style="cursor: pointer;" onclick="alert(this.title);" src="images/question.png" alt="?" title="Максимально '.$set['flsz'].' Кб." />:<br /><input type="file" name="file" /><br /><input type="submit" name="addfile" value="Прикрепить" /></div>';
}
echo '</form>';