<?PHP include('header.php'); 
echo '<link rel="stylesheet" href="/css/forum.css" type="text/css" />';
$id = (isset($_GET["id"]) && preg_match("|^[\d]{1,11}$|", trim($_GET["id"]))) ? intval(trim($_GET["id"])) : false;
if($id == false){
echo '<script type="text/javascript"> top.document.location.href = "/forum"; </script>';
echo '<noscript><META HTTP-EQUIV="REFRESH" CONTENT="0;URL=/forum"></noscript>';
}
$sql_t = mysql_query("SELECT `topic`, `time`, `status` FROM `b_forum_topic` WHERE `id`='$id'");
if(mysql_num_rows($sql_t) > 0){
$row_t = mysql_fetch_assoc($sql_t);
$t = $row_t["topic"];
$v = times($row_t["time"]);
echo "<span class='top-bl-s-verh'>$t $v</span>
<div class='menucenter-top1'>
<table class='profile' width='100%' border='0' cellpadding='0' cellspacing='0' style='margin-bottom: 0;'>
<tr><td class='value1'>
Уважаемый пользователь! Просьба не спамить и соблюдать правила проекта, за нарушения правил предусмотренны наказания.
</td></tr>
</table>";
#Навигация 
$sql = mysql_query("SELECT `id` FROM `b_forum_topic_answer` WHERE `id_topic`='$id'"); //общее кол-во ответов
$kolvo = 10; //кол-во выводимых записей на странице
$get_pg = (isset($_GET["pg"])) ? intval($_GET["pg"]) : 0;
$allnews = mysql_num_rows($sql); //общее кол-во записей
$vsego = intval(($allnews - 1) / $kolvo) + 1;  
$nowpage = intval($get_pg);
if(empty($nowpage) or $nowpage < 0) $nowpage = 1; 
if($nowpage > $vsego) $nowpage = $vsego; 
$gg = $nowpage * $kolvo - $kolvo; 
$urls = "forum_post_$id";
// Находим две ближайшие станицы с обоих краев, если они есть 
if($nowpage - 3 > 0){ $pagefirst = '<a href= "/'.$urls.'-1">1<</a>';}else{$pagefirst = NULL;}
if($nowpage - 2 > 0) {$page2left = '<a href= "/'.$urls.'-'. ($nowpage - 2) .'">'. ($nowpage - 2) .'</a> ';  }else{$page2left = NULL;}
if($nowpage - 1 > 0) {$page1left = '<a href= "/'.$urls.'-'. ($nowpage - 1) .'">'. ($nowpage - 1) .'</a> ';  }else{$page1left = NULL;}
if($nowpage + 2 <= $vsego) {$page2right = '<a href= "/'.$urls.'-'. ($nowpage + 2) .'">'. ($nowpage + 2) .'</a>';  }else{$page2right = NULL;}
if($nowpage + 1 <= $vsego) {$page1right = '<a href= "/'.$urls.'-'. ($nowpage + 1) .'">'. ($nowpage + 1) .'</a>'; }else{$page1right = NULL;}
if($nowpage + 2 < $vsego){ $pagelast = '<a href= "/'.$urls.'-'.$vsego.'">>'.$vsego.'</a>';}else{$pagelast = NULL;}
// Вывод меню 

$sql = mysql_query("SELECT `id`, `message`, `time`, `id_user`, `id_chenge`, `time_chenge` FROM `b_forum_topic_answer` WHERE `id_topic`='$id' ORDER by `id` ASC LIMIT $gg,$kolvo");
if(mysql_num_rows($sql) > 0){
while($row = mysql_fetch_assoc($sql)){
$sql_u = mysql_query("SELECT `avatar`, `reyting`, `forum_status` FROM `b_users` WHERE `id`='".$row["id_user"]."'") or die(mysql_error());
$row_u = mysql_fetch_assoc($sql_u);
echo "<table width='100%' class='f-post' id='answer_".$row["id"]."'>";
echo "<thead><th align='left'>".ucfirst(get_us_name($row["id_user"]))."</th><th><span style='float:left;'>".times($row["time"])."</span><span style='float:right;'>#".$row["id"]."</span>";
if($id_user != false AND $user_status != "ban" AND ($user_status == "admin" OR $my_forum_st == "admin" OR $my_forum_st == "moder")) {
echo "<span class='f-dell' onclick='f_del_post(".$row["id"].");' title='Удалить сообщение'></span>";
}
echo "</th></thead>";
echo "<tr>";
echo "<td style='width:90px;vertical-align:top'>";
echo "<center><div style='width:60px;text-align:center;display:block;'><img class='ava_box' src='/avp/".$row_u["avatar"]."' width='60px' height='60px'><br />";
echo "<span style='margin-top:5px;display:block;'>";
echo "<span onclick='f_rep(\"".$row["id_user"]."\", \"1\");' class='f-rep-m' title='Понизить репутацию'></span>";
echo "<a href='/forum_rep_".$row["id_user"]."' title='Посмотреть репутацию'>";
$us_rep_m = mysql_num_rows(mysql_query("SELECT `id` FROM `b_forum_reputation` WHERE `id_to`='".$row["id_user"]."' AND `type`='1'"));
$us_rep_p = mysql_num_rows(mysql_query("SELECT `id` FROM `b_forum_reputation` WHERE `id_to`='".$row["id_user"]."' AND `type`='2'"));
$sum_us_rep = $us_rep_p - $us_rep_m;
if($sum_us_rep == 0) { echo $sum_us_rep;}
elseif($sum_us_rep > 0){ echo "<b style='color:#2E9125;'>".$sum_us_rep."</b>"; }
else{ echo "<b style='color:#BC1818;'>".$sum_us_rep."</b>";}
echo "</a>";
echo "<span onclick='f_rep(\"".$row["id_user"]."\", \"2\");' class='f-rep-p' title='Повысить репутацию'></span></div>";
switch($row_u["forum_status"]){
case 'admin': $f_status = "Администратор"; $color_st = "#ED2F09"; break;
case 'moder': $f_status = "Модератор"; $color_st = "#171EA5"; break;
case 'user': $f_status = "Пользователь"; $color_st = "#1C8E1E"; break;
case 'ban': $f_status = "Заблокирован"; $color_st = "#841515"; break;
}
echo "<center><span style='color:$color_st;cursor:help;display:block;' title='Статус пользователя на форуме'>$f_status</span></center>";
echo "<center><span style='display:block;cursor:help;' title='Статус пользователя'>".user_status($row_u["reyting"],1)."</span></center>";
echo "</span><br />";
if($row_t["status"] == 0){
if($id_user != false AND $user_status != "ban" AND ($row["id_user"] == $id_user AND $row["time"] >= (time()-24*3600)) OR ($user_status == "admin" OR $user_status == "moder" OR $my_forum_st == "admin" OR $my_forum_st == "moder")){
echo "<a class='f-quote' href='javascript:void(0);' style='margin: 0 0 5px;' onclick='change_post(\"".$row["id"]."\");'>Изменить</a>";
}
}
echo "</center></td>";
echo "<td valign='top'>";
$f_mess = view_text($row["message"]);
$f_mess = smyle_cng($f_mess);
echo "<div id='change-post-".$row["id"]."'>";
echo quotes($f_mess);
echo "</div>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan='2' align='right'>";
if($row["id_chenge"] > 0) {
echo "<span style='float:left;display:inline-block;'>Отредактировал <b>".ucfirst(get_us_name($row["id_chenge"]))."</b> - ".times($row["time_chenge"])."</span>";
}
if($row_t["status"] == 0){
if($row["id_user"] != $id_user AND $user_status != "ban"){
echo "<a class='f-quote' href='javascript:void(0);' style='margin: 0 0 5px;' onclick='f_quote(\"".get_us_name($row["id_user"])."\");'>Цитата</a>";
}
}
echo "</td>";
echo "</tr>";
echo "</table>";
}
}
echo "<div class='f-reply-btn'>";
if($id_user != false AND $user_status != "ban" AND $row_t["status"] == 1 AND ($user_status == "admin" OR $my_forum_st == "admin")){
echo "<a class='f-quote' href='javascript:void(0);' style='margin: 0 0 5px;' onclick='f_dell_topic(\"$id\");'>Удалить тему</a>";
}
if($id_user != false AND $user_status != "ban" AND $row_t["status"] == 0 AND ($user_status == "admin" OR $my_forum_st == "admin" OR $my_forum_st == "moder")){
echo "<a class='f-quote' href='javascript:void(0);' style='margin: 0 0 5px;' onclick='f_close_topic(\"$id\");'>Закрыть тему</a>";
}
if($id_user != false AND $user_status != "ban" AND $row_t["status"] == 1 AND ($user_status == "admin" OR $my_forum_st == "admin" OR $my_forum_st == "moder")){
echo "<a class='f-quote' href='javascript:void(0);' style='margin: 0 0 5px;' onclick='f_open_topic(\"$id\");'>Открыть тему</a>";
}
if($id_user != false AND $user_status != "ban" AND $row_t["status"] == 0){
echo "<a class='f-quote' href='javascript:void(0);' style='margin: 0 0 5px;' onclick='ShowHide(\"f_reply\");'>Ответить</a>";
echo "</div>";
echo <<<form
<div id='f_reply' style='display:none;border:1px solid #ccc;margin-top: 7px;padding:7px;'>
<table class='f-reply' width='100%'>
<tr><td>
<span class='f-smyles' onclick="smyles('f-reply_area');"></span>
<span class="btn-bold" title="Выделить жирным" onClick="wrapText('f-reply_area','[b]','[/b]','counter'); return false;"></span>
<span class="btn-italic" title="Выделить курсивом" onClick="wrapText('f-reply_area','[i]','[/i]','counter'); return false;"></span>
<span class="btn-uline" title="Выделить подчёркиванием" onClick="wrapText('f-reply_area','[u]','[/u]','counter'); return false;"></span>
<span class="btn-url" title="Выделить URL" onClick="wrapText('f-reply_area','[url]','[/url]','counter'); return false;"></span>
<span class="btn-img" title="Вставить картинку" onClick="wrapText('f-reply_area','[img]','[/img]','counter'); return false;"></span>
<input class="f-scount" type="text" id="counter" value="Осталось 10000 символов" readonly="readonly" />
</td></tr>
<tr><td>
<textarea id='f-reply_area' maxlength='10000' onkeyup="descchange('f-reply_area','counter');"></textarea>
</td></tr><tr><td>
<div style='float:right;display: block;'>
<a class='f-quote' href='javascript:void(0);' style='display: block;margin: 3px 0 0;' onclick="f_reply('$id');">Отправить</a>
</div>
</td></tr></table>
</div>
<div class='f-popup'></div>
form;
}else{
echo "<a class='f-quote' href='javascript:void(0);' style='background:#5376be;border: 1px solid #5376be;margin: 0 0 5px;color:#fff;'>Тема закрыта</a></div>";
}
?>
</div>
<div class='menucenter'>
<?
// Вывод меню 
echo "<table width='100%'><tr><td nowrap='nowrap'>";
$nextp = $nowpage + 1;
$lastp = $nowpage - 1;
if($nowpage != 1) { echo "<a href='/".$urls."-".$lastp."'><span class='text14'>"; }else{ echo "<span class='textgray'>"; } echo "Предыдущие</span>";if($nowpage==1) { echo "</a>"; } 
echo "</td><td width='90%' align='center'>$pagefirst $page2left $page1left <b> $nowpage </b> $page1right $page2right $pagelast</td><td nowrap='nowrap'>";
if($nowpage!=$vsego){ echo "<a href='/".$urls."-".$nextp."'><span class='text14'>"; }else{ echo "<span class='textgray'>"; } echo "Следующие</span>"; if($nowpage!=$vsego) { echo "</a>"; } 
echo "</td></tr></table>";
}else{
echo $infsterr."Нет такой темы!".$infederr;
}
?>
</div>
<script>
var progress = false;

function descchange(elem,counter){
var maxLength = $('#'+elem).attr('maxlength');
var curLength = $('#'+elem).val().length;
$('#'+elem).val($('#'+elem).val().substr(0, maxLength));
var remaning = maxLength - curLength;
if (remaning < 0) remaning = 0;
$('#'+counter).val( 'Осталось ' + remaning + ' символов');
if (remaning < 100) {
$('#'+counter).css('color','#FF0000');
} else {
$('#'+counter).css('color','#68a0bf');
}
}

function wrapText(elementID, openTag, closeTag, counter ) {
var textArea = $('#' + elementID);
var len = textArea.val().length;
var start = textArea[0].selectionStart;
var end = textArea[0].selectionEnd;
var selectedText = textArea.val().substring(start, end);
var replacement = openTag + selectedText + closeTag;
textArea.val(textArea.val().substring(0, start) + replacement + textArea.val().substring(end, len));
descchange(elementID,counter);
}

function ShowHide(a,b){$("#"+a).is(":hidden")||b?$("#"+a).show(1E3):$("#"+a).hide(1E3)}

function smyles(idis){
if(!progress){
if($('.f-popup').css('display') == 'none'){
if($('#smyles-view').length){
$('.f-popup').show('fast');
} else {
if(!progress){
$.ajax({
cache: false,
type: "POST",
url: "/ajax/ajax_forum.php",
data: {"func" : "smyles", "idis" : idis},
beforeSend: function(){ progress = true;},
success: function(html){
$('.f-popup').html(html).show('fast');
progress = false;
}
});
}
}
}else{
$('.f-popup').hide('fast');
}
}
}

function smyle(smyle, idis){
var msg = $('#'+idis).val();
$('#'+idis).val(msg+smyle);
$('#'+idis).focus();
$('.f-popup').hide('fast');
descchange(idis, "counter");
}

function hide_smyle(){
$('.f-popup').hide('fast');
}

function f_quote(us){
ShowHide();
var msg = $('#f-reply_area').val();
var sel = "";
if (window.getSelection) {
sel = window.getSelection();
}else if (document.getSelection) {
sel = document.getSelection();
}else if (document.selection) {
sel = document.selection.createRange().sel;
}
if (sel != "") {
$('#f-reply_area').val("[quote="+us+"]"+sel+"[/quote]\n"+msg);
} else {
$('#f-reply_area').val("[b]"+us+"[/b],\n"+msg);
}
}

function f_reply(id){
if(!progress){
var msg = $('#f-reply_area').val();
if(!progress){
if(msg.length < 6) { QBinfo('Ошибка:','<b>Слишком короткое сообщение!</b>',4000,'bottom-right'); return false;}
if(msg.length > 10000) { QBinfo('Ошибка:','<b>Слишком длинное сообщение!</b>',4000,'bottom-right'); return false;}
$.ajax({
cache: false,
type: "POST",
url: "/ajax/ajax_forum.php",
data: {"func" : "reply", "id" : id, "msg" : msg},
beforeSend: function(){ progress = true;},
success: function(data){
if(data == 1) { QBinfo('Ошибка:','<b>Нет такой темы!</b>',4000,'bottom-right'); }
else if(data == 2) { QBinfo('Ошибка:','<b>Нельзя так часто оставлять сообщения!</b>',4000,'bottom-right'); }
else if(data == 3) { QBinfo('Ошибка:','<b>У Вас недостаточно рейтинга чтобы оставлять сообщения!</b>',4000,'bottom-right'); }
else if(data == 4) { document.location.href = "/forum_post_"+id; }
progress = false;
}
});
}
}
}

function f_open_topic(id){
if(!progress){
if(confirm("Вы уверены что хотите открыть тему?")) {
$.ajax({
cache: false,
type: "POST",
url: "/ajax/ajax_forum.php",
data: {"func" : "open_topic", "id" : id},
beforeSend: function(){ progress = true;},
success: function(data){
if(data == 1) { document.location.href = "/forum_post_"+id; }
progress = false;
}
});
}
}
}

function f_close_topic(id){
if(!progress){
if(confirm("Вы уверены что хотите закрыть тему?")) {
$.ajax({
cache: false,
type: "POST",
url: "/ajax/ajax_forum.php",
data: {"func" : "close_topic", "id" : id},
beforeSend: function(){ progress = true;},
success: function(data){
if(data == 1) { document.location.href = "/forum_post_"+id; }
progress = false;
}
});
}
}
}

function f_dell_topic(id){
if(!progress){
if(confirm("Вы уверены что хотите удалить тему?")) {
$.ajax({
cache: false,
type: "POST",
url: "/ajax/ajax_forum.php",
data: {"func" : "dell_topic", "id" : id},
beforeSend: function(){ progress = true;},
success: function(data){
if(data == 1) { document.location.href = "/forum"; }
progress = false;
}
});
}
}
}

function f_del_post(id){
if(!progress){
if(confirm("Вы уверены что хотите удалить сообщение?")) {
$.ajax({
cache: false,
type: "POST",
url: "/ajax/ajax_forum.php",
data: {"func" : "dell_post", "id" : id},
beforeSend: function(){ progress = true;},
success: function(data){
if(data == 1) {
$('#answer_'+id).remove();
}
progress = false;
}
});
}
}
}

function change_post(id){
if(!progress){
$.ajax({
cache: false,
type: "POST",
url: "/ajax/ajax_forum.php",
data: {"func" : "edit_post", "id" : id},
beforeSend: function(){ progress = true;},
success: function(data){
$('#change-post-'+id).html(data);
progress = false;
}
});
}
}

function f_save_post_edit(id){
if(!progress){
var msg = $('#f-edit_area-'+id).val();
if(!progress){
if(msg.length < 6) { QBinfo('Ошибка:','<b>Слишком короткое сообщение!</b>',4000,'bottom-right'); return false;}
if(msg.length > 10000) { QBinfo('Ошибка:','<b>Слишком длинное сообщение!</b>',4000,'bottom-right'); return false;}
$.ajax({
cache: false,
type: "POST",
url: "/ajax/ajax_forum.php",
data: {"func" : "save_edit_post", "id" : id, "msg" : msg},
beforeSend: function(){ progress = true;},
success: function(data){
$('#change-post-'+id).html(data);
progress = false;
}
});
}
}
}

function f_rep(id, type){
if(!progress){
var msg = prompt('Введите причину изменения репутации:', '');
if(msg != null){
$.ajax({
cache: false,
type: "POST",
url: "/ajax/ajax_forum.php",
data: {"func" : "edit_rep", "id" : id, "msg" : msg, "type" : type},
beforeSend: function(){ progress = true;},
success: function(data){
if(data == 1){ QBinfo('Ошибка:','<b>Нельзя так часто изменять репутацию!</b>',4000,'bottom-right'); return false;}
else if(data == 2){ document.location.href = window.location.href; }
progress = false;
}
});
}
}
}
</script>
<?PHP include('footer.php');?>