<?php
defined('_IN_JOHNCMS') or die('Error: restricted access');
if(empty($_SESSION['error']))
	$_SESSION['error'] = '';
//Функция отображения рейтинга
function rating($id, $type = 0) {
	if(!$id)
		return '<img class="ico" src="../images/stars/stars_5.gif" alt="0" />';
	$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_news_rating` WHERE `news`='$id'"), 0); 
	if($total) {
		$query = mysql_query("SELECT `golos`, COUNT(*) as `count` FROM `cms_news_rating` WHERE `news`='$id' GROUP BY `golos`");
		$array['plus'] = 0;
		$array['minus'] = 0;
		while (($row = mysql_fetch_assoc($query)) !== false) {
			if(isset($row['golos']) && $row['golos'] == 1) $array['plus'] = $row['count'];
			else if(isset($row['golos']) && $row['golos'] == 2) $array['minus'] = $row['count'];
			else {
				$array['plus'] = 0;
				$array['minus'] = 0;
			}
		}
		if($array['plus'] > $array['minus']) {
			if($array['minus'] == 0) {
				if($array['plus'] == 1) $count = 60;
				else if($array['plus'] == 2) $count = 60;
				else if($array['plus'] == 3) $count = 60;
				else if($array['plus'] == 4) $count = 70;
				else if($array['plus'] == 5) $count = 70;
				else if($array['plus'] == 6) $count = 80;
				else if($array['plus'] == 7) $count = 80;
				else if($array['plus'] == 8) $count = 90;
				else if($array['plus'] == 9) $count = 90;
				else if($array['plus'] >= 10) $count = 100;
			} else {
				$count = round($array['minus'] / $array['plus'], 1) * 100;
				if($count == 0)	$count = 100;
				else $count = (100 - $count);
			}
		} else if($array['plus'] < $array['minus']) {
			if($array['plus'] == 0) {
				if($array['minus'] == 1) $count = 40;
				else if($array['minus'] == 2) $count = 40;
				else if($array['minus'] == 3) $count = 40;
				else if($array['minus'] == 4) $count = 30;
				else if($array['minus'] == 5) $count = 30;
				else if($array['minus'] == 6) $count = 20;
				else if($array['minus'] == 7) $count = 20;
				else if($array['minus'] == 8) $count = 10;
				else if($array['minus'] == 9) $count = 10;
				else if($array['minus'] >= 10) $count = 0;
			} else {
				$pr = (round($array['plus'] / $array['minus'], 1) * 100);
				$count = $pr;
			}
		} else
			$count = 50;
		$percent = $count;
		if($percent == 100)	$stars = 10;
		else if($percent < 100 && $percent >= 90) $stars = 9;
		else if($percent < 100 && $percent >= 90) $stars = 9;
		else if($percent < 90 && $percent >= 80) $stars = 8;
		else if($percent < 80 && $percent >= 70) $stars = 7;
		else if($percent < 70 && $percent >= 60) $stars = 6;
		else if($percent < 60 && $percent >= 50) $stars = 5;
		else if($percent < 50 && $percent >= 40) $stars = 4;
		else if($percent < 40 && $percent >= 30) $stars = 3;
		else if($percent < 30 && $percent >= 20) $stars = 2;
		else if($percent < 20 && $percent >= 10) $stars = 2;
		else if($percent < 10 && $percent > 0) $stars = 1;
		else if($percent == 0) $stars = 0;
		if($type == 0) return '<img class="ico" src="../images/stars/stars_'.$stars.'.gif" alt="&bull;" />';
		else return $percent;
	} else return '<img class="ico" src="../images/stars/stars_5.gif" alt="&bull;" />';
}
if($id) {
	$query = mysql_query("SELECT `cms_news`.*, `cms_news_cat`.`name` as `catname`, `cms_news_cat`.`id` as `catid` FROM `cms_news` LEFT JOIN `cms_news_cat` ON `cms_news`.`refid`=`cms_news_cat`.`id` WHERE `cms_news`.`id`='$id'".($rights < 7 ? " AND `cms_news`.`time`<='" . time() . "'":"")." LIMIT 1;");
	if (mysql_num_rows($query)) {
		//Показываем новость
		$res1 = mysql_fetch_assoc($query);
		$textl = $lng['news'] . ' | ' . htmlentities($res1['name'], ENT_QUOTES, 'UTF-8');
		require_once('../incfiles/head.php');
		echo '<div class="phdr"><h3>' . htmlentities($res1['name'], ENT_QUOTES, 'UTF-8') . '</h3></div>';
		echo '<div class="list1">';
		//Выводим картинку
		if(file_exists('../files/news/news_' . $id . '.png') !== false)
			echo '<img style="float: left; margin: 5px 6px 2px 2px; border: 0px;" src="../files/news/news_' . $id . '.png" alt=""/>';
		$text = functions::checkout($res1['text'], 1, 1);
		if ($set_user['smileys'])
			$text = functions::smileys($text);
		echo $text;
		echo '<div style="clear:both;"></div></div>';
		//Обрабатываем голосование
		if(isset($_POST['plus_x']) || isset($_POST['plus_y'])) {
			if($res1['user_id'] == $user_id) {
				$_SESSION['error'] = '<div class="list1 red">' . $lng_news['my_vote'] . '!</div>';
			} else {
				$plus = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_news_rating` WHERE `news`='$id' AND `user_id`='$user_id' LIMIT 1;"), 0);
				if($plus) {
					$_SESSION['error'] = '<div class="list1 red">' . $lng_news['already_voted'] . '!</div>';
				} else {
					mysql_query("INSERT INTO `cms_news_rating` SET
					`news`='$id',
					`user_id`='$user_id', `golos`='1';");
					$_SESSION['error'] = '<div class="list1 green">' . $lng_news['ok_vote'] . '!</div>';
				}
			}
			Header('Location: index.'.$akb_for.'?act=view&id=' . $id);
			exit;
		} else if(isset($_POST['minus_x']) || isset($_POST['minus_y'])) {
			if($res1['user_id'] == $user_id) {
				$_SESSION['error'] = '<div class="list1 red">' . $lng_news['my_vote'] . '!</div>';
			} else {
				$plus = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_news_rating` WHERE `news`='$id' AND `user_id`='$user_id' LIMIT 1;"), 0);
				if($plus) {
					$_SESSION['error'] = '<div class="list1 red">' . $lng_news['already_voted'] . '!</div>';
				} else {
					mysql_query("INSERT INTO `cms_news_rating` SET
					`news`='$id',
					`user_id`='$user_id', `golos`='2';");
					$_SESSION['error'] = '<div class="list1 green">' . $lng_news['ok_vote'] . '!</div>';
				}
			}
			Header('Location: index.'.$akb_for.'?act=view&id=' . $id);
			exit;
		}
		//Сообщение об оставленном голосе
		echo $_SESSION['error'];
		//Выводим автора новости
		$us = mysql_query("SELECT `id`, `name` FROM `users` WHERE `id` = '{$res1['user_id']}'");
		if (mysql_num_rows($us)) {
			$rowuse = mysql_fetch_assoc($us);
			$name_use = $user_id ? '<a href="../users/profile.'.$akb_for.'?user=' . $rowuse['id'] . '">' . $rowuse['name'] . '</a>' : $rowuse['name'];
		} else {
			$name_use = $lng['guest'];
		}
		//
		echo '<div class="list2"><span class="underline">' . $lng['rating'] . ':</span> ' . rating($id) . '<br />
		'.($user_id ? '<form action="index.'.$akb_for.'?act=view&amp;id=' . $id . '" method="post"><div>
		<input style="cursor:none; border: 0px; padding: 0;padding-top: 2px; margin: 0;" type="image" name="plus" value="15" src="../images/like_yes1.gif" alt="' . $lng_news['like'] . '"/><input class="rate" style="cursor:none; border: 0px; margin: 0; padding: 0;padding-top: 2px;" type="image" src="../images/like_no1.gif" name="minus" alt="-"/>
		</div></form>':'<img class="ico" src="../images/like_yes1.gif" alt="+" /><img class="ico" src="../images/like_no1.gif" alt="-" /><br />').'
		</div><div class="gmenu">
		' . $lng_news['posted'] . ': ' . $name_use . '<br />
		' . $lng_news['time_posted'] . ': ' . date('d.m.o / H:i', $res1['time'] + (core::$system_set['timeshift'] + core::$user_set['timeshift']) * 3600) . '<br />
		'.($res1['time'] > time()?'<div class="func">' . $lng_news['begin_show_through'] . ': ' . timer($res1['time'] - time() + (core::$system_set['timeshift'] * 3600)) . '</div>':'').'
		<a href="index.'.$akb_for.'?act=comments&amp;id=' . $id . '">' . $lng['comments'] . '</a> (' . mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_news_comments` WHERE `refid`='$id'"), 0) . ')
		</div>
		' . ($rights >= 7 ? '<div class="menu"><div class="func">
		<a href="../panel/index.'.$akb_for.'?act=news&amp;mod=newsedit&amp;id=' . $id . '">' . $lng['edit'] . '</a><br />
		<a href="../panel/index.'.$akb_for.'?act=news&amp;mod=delnews&amp;id=' . $id . '">' . $lng['delete'] . '</a><br />
		</div></div>':'') . ''; ?>
<div class="phdr">Izox qoldirish / Izoxlar</div>
<?php 
if($user_id && empty($ban[1]) ) {
				if(isset($_POST['submit'])) {
					$text = isset($_POST['text']) ? trim($_POST['text']) : '';
					$error = array();
					if(!$text)
						$error[] = $lng_news['message_not_empty'] . '!';
					elseif (mb_strlen($text) < 4 || mb_strlen($text) > 5000)
						$error[] = $lng_news['message_long_error'] . '!';
					$flood = functions::antiflood();
					if($flood)
						$error[] = $lng['error_flood'] . ' ' . $flood . $lng['sec'];
					
					if(empty($error)) {
						mysql_query("INSERT INTO `cms_news_comments` SET
						`refid` = '$id',
						`time` = '" . time() . "',
						`user_id` = '" . $user_id . "',
						`text` = '" . mysql_real_escape_string($text) . "';");
						mysql_query("UPDATE `users` SET
							`lastpost` = '" . time() . "'
							WHERE `id` = '$user_id'
						");
						$_SESSION['error'] = '<div class="gmenu">' . $lng_news['added_message'] . '</div>';
					} else {
						$_SESSION['error'] = '<div class="rmenu">' . implode('<br />', $error) . '</div>';
					}
					Header('Location: index.'.$akb_for.'?act=view&id=' . $id);
					exit;
				}
				echo bbcode::auto_bb('form', 'text');
				echo $_SESSION['error'] . '<div class="gmenu">
				<form name="form" action="index.'.$akb_for.'?act=view&amp;id=' . $id . '" method="post"  enctype="multipart/form-data"><div>
				<b>' . $lng['message'] . ':</b><br/>
				<textarea rows="3" name="text">' . (!empty($_POST['text']) ? htmlentities($_POST['text'], ENT_QUOTES, 'UTF-8') : '') . '</textarea>
				<br /><span style="font-size: x-small;">' . $lng_news['recommended_message'] . '</span><br />
				<input type="submit" name="submit" value="' . $lng['sent'] . '"/>
				</div></form>
				</div>';
			}
			echo '<div class="phdr">' . $lng['comments'] . '</div>';
			$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_news_comments` WHERE `refid`='$id';"), 0);
			if($total) {
				if ($total > $kmess)
					echo '<div class="topmenu">' . functions::display_pagination('index.'.$akb_for.'?act=comments&amp;id=' . $id . '&amp;', $start, $total, $kmess) . '</div>';
				$i = 1;
				$req = mysql_query("SELECT `cms_news_comments`.*, `cms_news_comments`.`time` as `mtime`, `cms_news_comments`.`id` as `mid`, `users`.* FROM `cms_news_comments` LEFT JOIN `users` ON `cms_news_comments`.`user_id`=`users`.`id` WHERE `cms_news_comments`.`refid`='$id' ORDER BY `cms_news_comments`.`time` DESC LIMIT "
						. $start . "," . $kmess);
				while (($row = mysql_fetch_assoc($req)) !== false) {
					echo $i % 2 ? '<div class="list1">' : '<div class="list2">';
					$post = $row['text'];
					$post = functions::checkout($post, 1, 1);
					if ($set_user['smileys'])
						$post = functions::smileys($post, $row['rights'] >= 1 ? 1 : 0);
					if($row['reply'])
						$post .= '<div class="reply">' . functions::checkout($row['reply'], 1, 1) . '</div>';
					if($rights >= 7) $subtext = '<a href="index.'.$akb_for.'?act=comments&amp;mod=replay&amp;id=' . $id . '&amp;com=' . $row['mid'] . '">' . $lng['reply']. '</a> | <a href="index.'.$akb_for.'?act=comments&amp;mod=delete&amp;id=' . $id . '&amp;com=' . $row['mid'] . '">' . $lng['delete']. '</a>';
					else $subtext = '';
					$text = ' <span class="gray">(' . functions::display_date($row['mtime']) . ')</span>';
					$arg = array(
						'header' => $text,
						'body' => $post,
						'sub' => $subtext
					);
					echo functions::display_user($row, $arg);
					echo '</div>';
					++$i;
				}
				echo '<div class="phdr">'.$lng['total'].':'.$total.'</div>';
				if ($total > $kmess) {
					echo '<div class="topmenu">' . functions::display_pagination('index.'.$akb_for.'?act=comments&amp;id=' . $id . '&amp;', $start, $total, $kmess) . '</div>';
				}
				echo '<div class="bmenu"><a href="index.'.$akb_for.'?id=' . $res1['catid'] . '">' . htmlentities($res1['catname'], ENT_QUOTES, 'UTF-8') . '</a></div>';
			} else {
				echo '<div class="rmenu">' . $lng_news['message_news_empty'] . '!</div>';
			}
 ?>

<?php	} else {
		$textl = $lng['news'];
		require_once('../incfiles/head.php');
		echo functions::display_error($lng_news['news_does_not_exist']);
	}
} else {
	$textl = $lng['news'];
	require_once('../incfiles/head.php');
	echo functions::display_error($lng_news['news_is_not_chose']);
}
unset($_SESSION['error']);