<?php
	/*
	* Модуль почты для JohnCMS 3.2.2 v2.6
	* Copyright © 2010-2011 UPcoder.RU Group All Rights Reserved.
	* Coding by Krite 2010-2011
	*/
	defined('_IN_JOHNCMS') or die('Error: restricted access');
	$textl = 'Отправка сообщений';
	$headmod = 'pochta';
	require_once('../incfiles/head.php');
	
	echo '<div class="phdr"><h3>Написать сообщение</h3></div>';
	//Функция правельных окончаний
	function number_end($number, $ending0, $ending1, $ending2) {
		$num100 = $number % 100;
		$num10 = $number % 10;
		if($num100>=5 && $num100<=20) {
			return $ending0;
		}
		elseif($num10 == 0)	{
			return $ending0;
		}
		elseif($num10 == 1)	{
			return $ending1;
		}
		elseif($num10>=2 && $num10 <= 4) {
			return $ending2;
		}
		elseif($num10>=5 && $num10 <= 9) {
			return $ending0;
		}
		else {
			return $ending2;
		}
	}
		
	function formattime($file_time, $type = 0) {
		if($file_time >= 86400) {
			$file_time = round((($file_time / 60) / 60) / 24, 1) . ' ' . number_end(round((($file_time / 60) / 60) / 24, 1), 'дней', 'день', 'дня');
		}
		elseif ($file_time >= 3600) {
			$file_time = round(($file_time / 60) / 60, 1) . ' '.number_end(round(($file_time / 60) / 60, 1), 'часов', 'час', 'часа');
		}
		elseif($file_time >= 60) {
			$file_time = round($file_time / 60) . ' '.number_end(round($file_time / 60), 'минут', 'минут'.($type=0?'а':'у'), 'минуты');
		}
		else {
			$file_time = round($file_time) . ' '.number_end(round($file_time), 'секунд', 'секунд'.($type=0?'а':'у'), 'секунды');
		}
		return $file_time;
	}
	/*$flood = antiflood();
	if($flood){
		echo '<div class="rmenu">Вы не можете так часто добавлять сообщения<br />Пожалуйста, подождите ' . $flood . ' сек.</div>';
		require_once('../incfiles/end.php');
		exit;
	}*/
	
	if($ban[3]){
		$req = mysql_query("SELECT * FROM `cms_ban_users` WHERE `user_id`='$user_id' AND `ban_type`='3' ORDER BY `ban_while` DESC LIMIT 1");
		if (mysql_num_rows($req)) {
			$res = mysql_fetch_assoc($req);
			echo '<div class="rmenu">Отправка почты заблокирована<br />
			Срок: ' . timecount($res['ban_time'] - $res['ban_while']) . '<br />
			Осталось: ' . formattime($res['ban_time'] - $realtime) . '</div>';
			require_once('../incfiles/end.php');
			exit;
		}
	}
	
	if ($ban['1']) {
		echo '<div class="rmenu">Ваша учетная запись заблокированна. Отправка почты невозможна</div>';
		require_once('../incfiles/end.php');
		exit;
	}
	
	if(!isset($_POST['submit'])) {
		echo '<form enctype="multipart/form-data" method="post" action="' . $home . '/pochta/index.php?act=add' . (!$id?'':'&amp;id='.$id) . '"><div class="menu">';
		if(!$id) {
			echo '<strong>Логин:</strong> (2-15)<br />
			<input type="text" name="login" maxlength="15"/><br />';
		}
		echo '<strong>Сообщение:</strong> (4-'.$pochta['MAX_MESSAGE'].')<br />
		<textarea rows="4" cols="25" name="text"></textarea><br/>
		Прикрепить файл:<br/>';
		echo '<input type="file" name="fail"/><br/>';
		echo '<input type="submit" name="submit" value="Написать"/>
		</div></form>';
		echo '<div class="bmenu"><a href="' . $home . '/pochta/">Почта</a></div>';
	} else {
		$text = trim($_POST['text']);
		$error = array();
		if ($id) {
			$req = mysql_query("SELECT * FROM `users` WHERE `id`='" . $id . "';");
			if(mysql_num_rows($req) == 0)
				$error[] = 'Пользователя не существует!';
			else {
				$row = mysql_fetch_assoc($req);
			}
		} else {
			$name = check($_POST['login']);
		}
		if (!$id) {
			$req = mysql_query("SELECT * FROM `users` WHERE `name_lat`='" . mysql_real_escape_string($name) . "';");
			if(mysql_num_rows($req) == 0)
				$error[] = 'Пользователя не существует!';
			else {
				$row = mysql_fetch_assoc($req);
				$id = $row['id'];
			}
		}
		if($ban[3]){
			$req = mysql_query("SELECT * FROM `cms_ban_users` WHERE `user_id`='$user_id' AND `ban_type`='3' ORDER BY `ban_while` DESC LIMIT 1");
			if (mysql_num_rows($req)) {
				$res = mysql_fetch_assoc($req);
				echo '<div class="rmenu">Отправка почты заблокирована<br />
				Срок: ' . timecount($res['ban_time'] - $res['ban_while']) . '<br />
				Осталось: ' . timecount($res['ban_time'] - $realtime) . '</div>';
				require_once('../incfiles/end.php');
				exit;
			}
		}
		if ($id==$user_id)
			$error[] = 'Самому себе писать нельзя';
		//if(antiflood())
			//$error[] = 'Вы не можете так часто добавлять сообщения<br />Пожалуйста, подождите ' . $flood . ' сек.';
		if (!$text)
			$error[] = 'Вы не ввели сообщение!';
		else if (mb_strlen($text) > $pochta['MAX_MESSAGE'])
			$error[] = 'Слишком длинное сообщение! (Максимум '.$pochta['MAX_MESSAGE'].' символа).';
		if (mb_strlen($text) < 4)
			$error[] = 'Слишком короткое сообщение! (Минимум 4 символа).';
		
		/*
		* TODO:  Написать функцию проверки максимального количества сообщений в почтовом ящике
		*/
		if($pochta['MAX_OUT'] > 0) {
			if(mysql_result(mysql_query('SELECT COUNT(*) FROM `mail_msg` WHERE `id_user`=' . $user_id . ' AND `sys`=1 AND `delete`!=' . $user_id . ';'), 0) >= $pochta['MAX_OUT']) {
				$error[] = 'Ящик с исходящими письмами переполнен! Отправить письмо не возможно';
			}
		}
		if($pochta['MAX_IN'] > 0) {
			if(mysql_result(mysql_query('SELECT COUNT(*) FROM `mail_msg` WHERE `id_kont`=' . $id . ' AND `sys`=1 AND `delete`!=' . $id . ';'), 0) >= $pochta['MAX_IN']) {
				$error[] = 'Ящик данного пользователя переполнен! Отправить письмо не возможно';
			}
		}
		if(!$error) {
			if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_konts` WHERE `id_user`='" . $id . "' AND `id_kont`='" . $user_id . "' AND `type`='2';"), 0)!=0)
				$error[] = 'Вы не можете писать данному пользователю! Пользователь добавил вас в игнор.';
			if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_konts` WHERE `id_user`='" . $user_id . "' AND `id_kont`='" . $id . "' AND `type`='2';"), 0)!=0)
				$error[] = 'Вы не можете писать данному пользователю! Он находится у Вас в игноре.';
		}
			
		if (!$error) {
			if($rights == 0) {
				$array_spam = array();
				$req = mysql_query("SELECT * FROM `mail_msg` WHERE `id_user`='" . $user_id . "' AND `read`='1' AND `time`>'" . ($realtime-$spam['block']) . "'");
					
				while($results = mysql_fetch_assoc($req)) {
					$array_spam[] = $results['id_kont'];
				}
					
				if (count(array_count_values($array_spam))>=$spam['msg']) {
					mysql_query("INSERT INTO `cms_ban_users` SET
					`user_id` = '$user_id',
					`ban_time` = '" . ($realtime + $spam['time']*3600) . "',
					`ban_while` = '$realtime',
					`ban_type` = '3',
					`ban_who` = 'Система антиспама',
					`ban_reason` = 'Подозрение на рассылку СПАМа'") or die('error');
					mysql_query("UPDATE `mail_msg` SET
					`spam` = '2' WHERE `id_user`='" . $user_id . "' AND `read`='1' AND `time`>'" . ($realtime-1800) . "'");
					$error[] = 'Подозрение на рассылку СПАМа, отправка почты для Вашей учетной записи заблокирована на '.$spam['time'].' час.<br />
					Информация отправлена администратору';
				}
			}
		}
		if (!$error) {
			//Выгружаем файл
			require_once ('../incfiles/class_upload.php');
			$handle = new upload($_FILES['fail']);
			$name_en = '';
			$name_convert = '';
			if ($handle->uploaded) {
				$handle->file_max_size = 1024 * $flsz;
				$handle->no_script = false;
				$handle->file_auto_rename = true;
				$handle->process('../files/pochta/');
				if ($handle->processed)	{
					$name_en = $handle->file_dst_name;
					$ok_file = '<div class="gmenu">Файл '.$name_en.' отправлен.</div>';
					$name_convert = $name_en;
				} else {
					$err_file = $handle->error;
				}
			}
		}
		if (!$error) {
			
			mysql_query("INSERT INTO `mail_msg` SET
			`id_user`='" . $user_id . "',
			`id_kont`='" . $id . "',
			`time`='" . $realtime . "',
			`from`='" . mysql_real_escape_string($login) . "',
			`from_out`='" . mysql_real_escape_string($row['name']) . "',
			`msg`='" . mysql_real_escape_string($text) . "',
			`file`='" . mysql_real_escape_string($name_convert) . "',
			`ip`='$ipl',
			`ua`='" . mysql_real_escape_string($agn) . "';");
			
			mysql_query("UPDATE `users` SET
			`lastpost` = '" . $realtime . "' WHERE `id` = '" . $user_id . "' LIMIT 1");
			if($err_file) {
				echo '<div class="rmenu">Файл не отправлен! '.$err_file.'</div>';
			}
			if($ok_file) {
				echo $ok_file;
			}
			header('Location: index.php?act=history&id='.$id);
			exit;
			echo '<div class="menu">Сообщение отправлено</div>';
			echo '<div class="bmenu"><a href="'.$home.'/pochta/">Назад</a> | <a href="'.$home.'/pochta/index.php?act=history&amp;id='.$id.'">История</a></div>';
		}
		else {
			echo '<div class="rmenu">'.implode('<br/>',$error).'</div>';
			echo '<div class="bmenu"><a href="'.$home.'/pochta/index.php?act=add' . (!$id?'':'&amp;id='.$id) . '">Назад</a></div>';
		}
	}
	
?>