<?
session_start();
$perpage="20"; //сообщений на страницу
include("./config.inc.php");

$tpl=new Template();
$tpl->define(array(
	"head"=>"head.tpl",
	"error"=>"error.tpl",
	"form"=>"form.tpl",
	"mess"=>"mess.tpl",
	"rep"=>"rep.tpl",
	"adm_opts"=>"adm_opts.tpl",
	"foot"=>"foot.tpl",
	"sent"=>"sent.tpl"
));
$begin=$tpl->utime();
$tpl->assign("{ADM_MENU}", "");
$tpl->assign("{SCRIPT}", $PHP_SELF);

IF(!isset($_POST['submit'])):
$tpl->assign("{REFRESH_LINK}", "[ <a href='".$PHP_SELF."'>refresh</a> ]");
if($_SESSION['logged']=="1") {
	$tpl->assign("{ADMIN_LINK}", "[ <a href='./admin.php'>admin section</a> ]");
	} else{
	$tpl->assign("{ADMIN_LINK}", "[ <a href='./auth.php'>entrance for admin</a> ]");
	};
$tpl->assign("{TITLE}", "");
$tpl->assign("{COOK_NICK}", $_COOKIE['nick']);
$tpl->assign("{COOK_EMAIL}", $_COOKIE['email']);

$m=sql();
$q=mysql_query("SELECT COUNT(id) AS number FROM ".$GLOBALS['tbl_posts']." WHERE flag='1'") or die(mysql_error());
	while($count=mysql_fetch_array($q)) {$total_entries=$count['number'];};
mysql_free_result($q);
$pages=$total_entries/$perpage;
if($pages<1) {$pages="1";};
if($pages/(int)$pages<>1) {$pages = (int) $pages + 1;} else {$pages = $pages;};
if(($offset > $total_entries) or (!is_numeric($offset))) {$offset="0";};
$pagenow=($offset/$perpage+1);
$tpl->assign("{PAGE_NOW}", $pagenow);
$tpl->assign("{TOTAL_PAGES}", $pages);
$tpl->assign("{TOTAL_SHOW_MESS}", $total_entries);

$next=$offset+$perpage;
$previous=$offset-$perpage;
	if($pages <> 1) {
		if ($previous < 0) {
			$tpl->assign("{PAGE_NEXT}", "<a href=".$PHP_SELF."?offset=".$next.">следующие ".$perpage." записей</a> &raquo;");
		} elseif($next >= $total_entries) {
			$tpl->assign("{PAGE_PREV}", "&laquo; <a href=".$PHP_SELF."?offset=".$previous.">предыдущие ".$perpage." записей</a>");
		} else {
			$tpl->assign("{PAGE_PREV}", "&laquo; <a href=".$PHP_SELF."?offset=".$previous.">предыдущие ".$perpage." записей</a> |");
			$tpl->assign("{PAGE_NEXT}", " <a href=".$PHP_SELF."?offset=".$next.">следующие ".$perpage." записей</a> &raquo;");};
	} else{
	$tpl->assign("{PAGE_PREV}", "");
	$tpl->assign("{PAGE_NEXT}", "");
	};
$i="0";
	while($i < $pages) {
		$ri=$i+1;
		$showpage=$i * $perpage;
		if($ri==$pagenow) {$page_list="";} else{$page_list.="<a href=gb.php?offset=" . $showpage . ">" . $ri . "</a> ";};
		$i++;
	};
$tpl->assign("{PAGES}", $page_list);

$q=mysql_query("SELECT * FROM ".$GLOBALS['tbl_posts']." WHERE flag='1' ORDER BY create_time DESC LIMIT $offset,$perpage") or die(mysql_error());
if(mysql_num_rows($q)>0) {
	while($row=mysql_fetch_array($q)) {
		$tpl->assign("{ID}", $row['id']);
		$tpl->assign("{AUTHOR}", $row['poster']);
			if(!empty($row['email'])) {
				$tpl->assign("{EMAIL}", "<a href='mailto:".$row['email']."'>".$row['email']."</a>");
			} else{
				$tpl->assign("{EMAIL}", "");
			};
		$tpl->assign("{TXT}", nl2br(strip_tags($row['text'], "<b><i><u>")));
		$tpl->assign("{TIME_CREATED}", date('@ H:i:s o\n d-m-Y', $row['create_time']));
		
		$rep=mysql_query("SELECT poster,reply FROM ".$GLOBALS['tbl_replies']." WHERE parent='".$row['id']."' ORDER BY create_time DESC") or die(mysql_error());
			if(mysql_num_rows($rep)>0) {
				while($reply=mysql_fetch_array($rep)) {
					$c=mysql_query("SELECT login FROM ".$GLOBALS['tbl_users']." WHERE id='".$reply['poster']."' LIMIT 1") or die(mysql_error());
					$query=mysql_fetch_array($c);
					$tpl->assign("{REP_AUTHOR}", $query['login']);
					$tpl->assign("{REPLY}", nl2br(strip_tags($reply['reply'], "<b><i><u>")));
					$tpl->parse("{REPLIES}", ".rep");
					$tpl->clear("{REPLIES}");
					mysql_free_result($c);
				};				
				mysql_free_result($rep);				
			} else{
				$tpl->assign("{REPLIES}", "");
			};

			if($_SESSION['logged']=="1") {
				$tpl->assign("{IP}", $row['ip']);
				$tpl->parse("{ADMIN_OPTS}", ".adm_opts");
				$tpl->clear("{ADMIN_OPTS}");
			} else{
				$tpl->assign("{ADMIN_OPTS}", "");
			};
$tpl->parse("{MESSAGES}", ".mess");
	};
} else{
	$tpl->assign("{MESSAGES}", "Сообщений пока нет.");
};
mysql_free_result($q);
mysql_close($m);

$tpl->parse("HEAD", "head");
$tpl->parse("FORM", "form");
$tpl->FastPrint("HEAD");
$tpl->FastPrint("FORM");

$end=$tpl->utime();
$tpl->assign("{GEN_TIME}", sprintf("%01.3f ", ($end-$begin)));
$tpl->parse("FOOT", "foot");
$tpl->FastPrint("FOOT");
exit;

ELSE:
	if((time()-$_SESSION['l_act'])<=300) {
		$tpl->assign("{ERROR}", "Вы не можете отправить следующее сообщение меньше, чем через пять минут после предыдущего.");
		$tpl->parse("ERROR", "error");
		$tpl->FastPrint("ERROR");
		exit;
	};
	if(empty($_POST['nick'])) {
		$tpl->assign("{ERROR}", "Поле 'Nick' является обязательным. Вернитесь и заполните.");
		$tpl->parse("ERROR", "error");
		$tpl->FastPrint("ERROR");
		exit;
	};
	if(empty($_POST['mess'])) {
		$tpl->assign("{ERROR}", "Поле 'Message' является обязательным. Вернитесь и заполните.");
		$tpl->parse("ERROR", "error");
		$tpl->FastPrint("ERROR");
		exit;
	};
setcookie("nick", $_POST['nick'], time()+300);
setcookie("email", $_POST['email'], time()+300);
$_SESSION['l_act']=time();

$m=sql();
mysql_query("INSERT INTO ".$GLOBALS['tbl_posts']." VALUES('','".$_POST['nick']."','".$_POST['email']."','".$_POST['mess']."','".ip()."','".time()."','')");
$q=mysql_query("SELECT login,email FROM ".$GLOBALS['tbl_users']." ORDER BY id");
	while($row=mysql_fetch_array($q)) {
	@mail($row['email'], "Новое сообщение в гостевой книге", "Здравствуйте, ".$row['login']."!\n\nВ гостевую книгу было отправлено следующее сообщение:\n\nАвтор: ".$_POST['nick']."\nE-mail: ".$_POST['email']."\nСообщение:\n".$_POST['mess']."\n\n------\nЧтобы открыть это сообщение, пройдите по следующей ссылке:\nhttp://".$_SERVER['SERVER_NAME'].dirname($PHP_SELF)."/admin.php?mode=show&id=".mysql_insert_id()."\nУдаление:\nhttp://".$_SERVER['SERVER_NAME'].dirname($PHP_SELF)."/admin.php?mode=del&id=".mysql_insert_id()."\nРедактирование: http://".$_SERVER['SERVER_NAME'].dirname($PHP_SELF)."/admin.php?mode=edit&id=".mysql_insert_id()."\nНаписать ответ: http://".$_SERVER['SERVER_NAME'].dirname($PHP_SELF)."/admin.php?mode=show&id=".mysql_insert_id());
	};
mysql_free_result($q);
mysql_close($m);

$tpl->assign("{TITLE}", "- спасибо за сообщение.");
$tpl->parse("HEAD", "head");
$tpl->assign("{POSTER}", htmlspecialchars($_POST['nick']));
$tpl->assign("{EMAIL}", htmlspecialchars($_POST['email']));
$tpl->assign("{TEXT}", nl2br(strip_tags($_POST['mess'], "<b><i><u>")));
$tpl->parse("SENT", "sent");
$tpl->FastPrint("HEAD");
$tpl->FastPrint("SENT");
$end=$tpl->utime();
$tpl->assign("{GEN_TIME}", sprintf("%01.3f ", ($end-$begin)));
$tpl->parse("FOOT", "foot");
$tpl->FastPrint("FOOT");

exit;

ENDIF;
?>