<?php
/*
////////////////////////////////////////////////////////////////////////////////
// JohnCMS                                                                    //
// Официальный сайт сайт проекта:      http://johncms.com                     //
// Дополнительный сайт поддержки:      http://gazenwagen.com                  //
////////////////////////////////////////////////////////////////////////////////
// JohnCMS core team:                                                         //
// Евгений Рябинин aka john77          john77@johncms.com                     //
// Олег Касьянов aka AlkatraZ          alkatraz@johncms.com                   //
//                                                                            //
// Информацию о версиях смотрите в прилагаемом файле version.txt              //
////////////////////////////////////////////////////////////////////////////////
*/

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.php?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.php?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.php?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.php?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.php?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.php?act=news&amp;mod=newsedit&amp;id=' . $id . '">' . $lng['edit'] . '</a><br />
		<a href="../panel/index.php?act=news&amp;mod=delnews&amp;id=' . $id . '">' . $lng['delete'] . '</a><br />
		</div></div>':'') . '
		<div class="bmenu"><a href="index.php?id=' . $res1['catid'] . '">' . htmlentities($res1['catname'], ENT_QUOTES, 'UTF-8') . '</a></div>';
	} 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']);