<?php 

if (!class_exists('Forums'))
{
	?>
	<h1>Форумы</h1>
	<p>Функционал недоступен, приобретите более старшую редакцию.</p>
	<p>Модуль &laquo;<a href="http://www.hostcms.ru/hostcms/modules/forums/">Форумы</a>&raquo; доступен в редакции &laquo;<a href="http://www.hostcms.ru/hostcms/editions/corporation/">Корпорация</a>&raquo;.</p> 
	<?php
	return ;
}

if (!class_exists('SiteUsers'))
{
	?>
	<h1>Пользователи сайта</h1>
	<p>Функционал недоступен, приобретите более старшую редакцию.</p>
	<p>Модуль &laquo;<a href="http://www.hostcms.ru/hostcms/modules/users/">Пользователи сайта</a>&raquo; доступен в редакциях &laquo;<a href="http://www.hostcms.ru/hostcms/editions/corporation/">Корпорация</a>&raquo; и &laquo;<a href="http://www.hostcms.ru/hostcms/editions/business/">Бизнес</a>&raquo;.</p> 
	<?php
	return ;
}

$Forums = & singleton('Forums');
$SiteUsers = & singleton('SiteUsers');

$external_propertys = array();

/* XSL шаблоны */
$xsl_new_topic = to_str($GLOBALS['LA']['xsl_new_topic']);
$xsl_mail_add_user = to_str($GLOBALS['LA']['xsl_mail_add_user']);
$xsl_mail_add_curator = to_str($GLOBALS['LA']['xsl_mail_add_curator']);
$xsl_mail_edit_user = to_str($GLOBALS['LA']['xsl_mail_edit_user']);
$xsl_mail_edit_curator = to_str($GLOBALS['LA']['xsl_mail_edit_curator']);
$xsl_mail_add_theme = to_str($GLOBALS['LA']['xsl_mail_add_theme']);
$xsl_edit_message = to_str($GLOBALS['LA']['xsl_edit_message']);
$xsl_topic_messages = to_str($GLOBALS['LA']['xsl_topic_messages']);
$xsl_forum_topics = to_str($GLOBALS['LA']['xsl_forum_topics']);
$xsl_user_info = to_str($GLOBALS['LA']['xsl_user_info']);
$xsl_forums = to_str($GLOBALS['LA']['xsl_forums']);

/* Получаем идентификатор залогинившегося пользователя, 0 - если такого пользователя нет */
$site_users_id = $SiteUsers->GetCurrentSiteUser();

$end_array_item = end($GLOBALS['URL_ARRAY']);
$page = to_str($end_array_item);

if (empty($GLOBALS['Theme_ID']) && ereg("^page-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 0)
{
	/* Страница умножается на кол-во элементов, выводимых на страницу */
	$page_theme = ($regs[1] - 1);
}
else
{
	$page_theme = 0;
}

if (!empty($GLOBALS['Theme_ID']) && ereg("^page-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 0)
{
	/* Получаем текущую страницу сообщений */
	$page_message = ($regs[1] - 1);
}
else
{
	$page_message = 0;
}

$conference_row = $Forums->GetConference($GLOBALS['FORUM_CONFERENCE_ID']);

/* Определяем путь к конференции */
$conference_path = $Forums->GetConferencePath($GLOBALS['FORUM_CONFERENCE_ID']);

/* Путь к сайту */
$site = & singleton ('site');
$site_alias = $site->GetCurrentAlias($conference_row['site_id']);

/* Полный путь к конференции с учетом сайта */
$CONFERENCE_FULL_PATH = 'http://' . $site_alias . $conference_path;

$valid_captcha = false;

if (in_array('posts', $GLOBALS['URL_ARRAY']))
{
	if ($site_users_id > 0)
	{
		// Сообщения пользователя	
		if (ereg("^page-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 0)
		{
			/* Страница умножается на кол-во элементов, выводимых на страницу */
			$page_user_messages = ($regs[1] - 1);
			$messages_begin = $page_user_messages * $GLOBALS['LA']['messages_on_page'];
		}
		else
		{
			$messages_begin = 0;
		}

		unset($GLOBALS['URL_ARRAY']['posts']);
		
		$param_show_messages = array();
		$param_show_messages['site_users_id'] = $site_users_id;
		$param_show_messages['forums_conference_id'] = $GLOBALS['FORUM_CONFERENCE_ID'];
		$param_show_messages['xsl_name'] = $GLOBALS['LA']['xsl_user_messages'];
		$param_show_messages['messages_on_page'] = $GLOBALS['LA']['messages_on_page'];
		$param_show_messages['messages_begin'] = $messages_begin;
		$param_show_messages['xml_show_external_property'] = false;
		$Forums->ShowUserMessages($param_show_messages);
	}
	else
	{
		$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/";
		$time = 5; // секунд
		?>
		<h1>Необходимо авторизироваться</h1>
		<p>Вам необходимо авторизироваться. Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
		<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
		<script language="JavaScript" type="text/javascript">
		<!--
		function set_location()
		{
			location="<?php echo $path;?>";
		}
		setTimeout('set_location()', <?php echo $time*1000?>);
		//-->
		</script>
		<?php
	}
}
else
{	
	// Определение валидности капчи
	if ($site_users_id == 0)
	{
		/* Проверям кэпчу */
		$forum_row = $Forums->GetForum(to_int($GLOBALS['Forum_ID']));
		
		if ($forum_row)
		{
			$forums_captcha_used = $forum_row['forums_captcha_used'];

			$Captcha = new Captcha();
			
			if ($forums_captcha_used == 0
			|| ($forums_captcha_used == 1
			&& isset($_POST['captcha_key']) && isset($_POST['captcha_keystring'])
			&& $Captcha->ValidCaptcha($_POST['captcha_key'], $_POST['captcha_keystring'])))
			{
				$valid_captcha = true;
			}
		}
	}
	else
	{
		$valid_captcha = true;
	}
	
	/* Если известен форум и путь заканчивается 'edit_theme' или 'add_theme',
	то вызываем метод добавления/редактирования тем */
	if ($GLOBALS['Forum_ID'] &&
	(end($GLOBALS['URL_ARRAY']) == 'edit_theme' || end($GLOBALS['URL_ARRAY']) == 'add_theme'))
	{
		$forum_row = $Forums->GetForum(to_int($GLOBALS['Forum_ID']));
		
		if (!$forum_row)
		{
			return false;
		}
		
		/* Если была нажата кнопка принятия данных темы,
		 * пользовтель зарегистрирован или форум открыт для гостей */
		if (isset($_POST['add_edit_theme'])
		&& ($site_users_id > 0 || $forum_row['forums_allow_guest']))
		{
			// Проверяем, чтобы длина темы и сообщения была 2 и более символов.
			$theme_name = to_str($_POST['name_theme']);
			$theme_message = to_str($_POST['first_message']);
	
			if (mb_strlen($theme_name) < 2 || mb_strlen($theme_message) < 2)
			{
				$add_edit_theme = -3;
			}
			elseif (!$valid_captcha)
			{
				$add_edit_theme = -1;
			}
			else
			{
				$add_edit_theme = $Forums->AddEditTheme($GLOBALS['FORUM_CONFERENCE_ID'], $GLOBALS['Forum_ID'],
				to_int($_POST['theme_id']), $theme_name, to_int($_POST['theme_close']),
				to_int($_POST['theme_notice']), to_int($_POST['theme_visible']),
				$theme_message, $site_users_id, $GLOBALS['current_time'],
				array('theme_send_letter' => to_int($_REQUEST['theme_send_letter']),
				'xslname' => $xsl_mail_add_theme));
			}
			
			/* Если создание новой темы прошло с ошибкой */
			if ($add_edit_theme == 0 && $_POST['theme_id'] == 0)
			{
				/* Возвращаемся на страницу, с которой пришли, выдавая сообщение об ошибке */
				?>
				<script language="JavaScript" type="text/javascript">
				location="<?php echo $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/";?>";
				</script>
				<?php 
			}
			/* Если создание новой темы прошло успешно */
			elseif ($add_edit_theme == 1 && $_POST['theme_id'] == 0)
			{
				/* Увеличиваем число сообщений пользователя */
				$Forums->IncCountMessage($site_users_id);
				
				// Автор темы установил опцию "Сообщать об ответе" - подписываем его на рассылку сообщений
				if (isset($_REQUEST['theme_send_letter']))		
				{
					// Подписываем автора на рассылку сообщений из созданной им темы
					$Forums->InsertThemeUserSubscribe(array('theme_id' => $Forums->GetThemeId(), 'site_user_id' => $site_users_id));
				}
				else
				{
					$Forums->DeleteThemeUserSubscribe(array('theme_id' => $Forums->GetThemeId(), 'site_user_id' => $site_users_id));
				}
			}
			elseif ($add_edit_theme == -1)
			{
				$error = 'Ошибка! Введено неверный код подтверждения!';
	
				$parameters['theme_title'] = to_str($_POST['name_theme']);
				$parameters['theme_message_text'] = to_str($_POST['first_message']);
	
				$parameters['theme_visible'] = to_int($_POST['theme_visible']);
				$parameters['theme_notice'] = to_int($_POST['theme_notice']);
				$parameters['theme_close'] = to_int($_POST['theme_close']);
	
				$parameters['page_theme'] = $page_theme;
				$external_propertys['error'] = $error;
				$external_propertys = array_merge($external_propertys, $GLOBALS['external_propertys_reg']);
	
				if (!$Forums->ShowAddEditTheme($GLOBALS['FORUM_CONFERENCE_ID'], $GLOBALS['Forum_ID'], $GLOBALS['Theme_ID'],
				$xsl_new_topic, $external_propertys, $parameters))
				{
					?><h1>Ошибка</h1>
					<p>Вы не имеете права на совершение данного действия.</p>
					<?php 
				}
			}
			elseif ($add_edit_theme == -2)
			{
				$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/";
				$time = 5; // секунд
				?>
				<h1>Создание/редактирование темы</h1>
				<p>Прошло слишком мало времени с момента создания предыдущего сообщения.
				Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
				<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
				<script language="JavaScript" type="text/javascript">
				<!--
				function set_location()
				{
					location="<?php echo $path?>";
				}
				setTimeout('set_location()', <?php echo $time * 1000?>);
				//-->
				</script>
				<?php 				
			}
			elseif ($add_edit_theme == -3)
			{
				$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/";
				$time = 5; // секунд
				?>
				<h1>Создание/редактирование темы</h1>
				<p>Длина темы или сообщения должна быть не менее 2-х символов. Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
				<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
				<script language="JavaScript" type="text/javascript">
				<!--
				function set_location()
				{
					location="<?php echo $path?>";
				}
				setTimeout('set_location()', <?php echo $time * 1000?>);
				//-->
				</script>
				<?php 				
			}
	
			// Если создание/редактирование темы прошло успешно, возвращаемся на страницу, с которой пришли
			if ($add_edit_theme == 1)
			{
				$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/";
				$time = 5; // секунд
				?>
				<h1>Создание/редактирование темы</h1>
				<p>Спасибо, тема создана/отредактирована. Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
				<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
				<script language="JavaScript" type="text/javascript">
				<!--
				function set_location()
				{
					location="<?php echo $path?>";
				}
				setTimeout('set_location()', <?php echo $time * 1000?>);
				//-->
				</script>
				<?php 
			}
		}
		/* Если нет залогинившегося пользователя и не разрешен доступ гостям,
		 * возвращаемся на страницу, с которой пришли */
		elseif ($site_users_id == 0 && $forum_row['forums_allow_guest'] == 0)
		{
			$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/";
			$time = 5; // секунд
			?>
			<h1>Необходимо авторизироваться</h1>
			<p>Вам необходимо авторизироваться. Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
			<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
			<script language="JavaScript" type="text/javascript">
			<!--
			function set_location()
			{
				location="<?php echo $path;?>";
			}
			setTimeout('set_location()', <?php echo $time*1000?>);
			//-->
			</script>
			<?php 
		}
		else
		{
			/* Если происходит создание/редактирования сообщения и пользователь залогинился */
			if (end($GLOBALS['URL_ARRAY']) == 'add_theme'
			|| end($GLOBALS['URL_ARRAY']) == 'edit_theme')
			{
				$external_propertys = array_merge($external_propertys, $GLOBALS['external_propertys_reg']);

				if (!$Forums->ShowAddEditTheme($GLOBALS['FORUM_CONFERENCE_ID'],
				$GLOBALS['Forum_ID'], $GLOBALS['Theme_ID'],
				$xsl_new_topic,
				$external_propertys, array('page_theme' => $page_theme)))
				{
					$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/";
					$time = 5; // секунд
					?>
					<h1>У Вас недостаточно прав для совершения операции</h1>
					<p> Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
					<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
					<script language="JavaScript" type="text/javascript">
					<!--
					function set_location()
					{
						location="<?php echo $path;?>";
					}
					setTimeout('set_location()', <?php echo $time*1000?>);
					//-->
					</script>
					<?php 
				}
			}
		}
	}
	/* Если перешли по ссылке удаления сообщения */
	elseif (isset($_GET['del_message_id']))
	{
		$Forums->DelMessage($GLOBALS['Forum_ID'], $GLOBALS['Theme_ID'], $_GET['del_message_id'], $site_users_id);
	
		$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/{$GLOBALS['Theme_ID']}/";
		$time = 5; // секунд
		?>
		<h1>Удаление сообщения</h1>
		<p>Удаление сообщения успешно произведено. Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
		<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
		<script language="JavaScript" type="text/javascript">
		<!--
		function set_location()
		{
			location="<?php echo $path?>";
		}
		setTimeout('set_location()', <?php echo $time*1000?>);
		//-->
		</script>
		<?php 	
	}
	/* Если была нажата кнопка добавления сообщения */
	elseif (isset($_POST['add_message']))
	{
		/* Если пользователь залогинился, то добавляем сообщение */
		if ($valid_captcha)
		{
			$param = array();
			$param['forums_conference_id'] = to_int($GLOBALS['FORUM_CONFERENCE_ID']);
			$param['forums_id'] = to_int($GLOBALS['Forum_ID']);
			$param['forums_theme_id'] = to_int($GLOBALS['Theme_ID']);
			$param['forums_theme_title'] = to_str($_POST['theme_title']);
			$param['forums_message_text'] = to_str($_POST['forums_message_text']);
			$param['site_users_id'] = to_int($site_users_id);
			$param['forums_message_id'] = to_int($_POST['message_id']);

			/* Указываем XSL шаблоны */
			$param['xsl_name_add_user'] = $xsl_mail_add_user;
			$param['xsl_name_add_curator'] = $xsl_mail_add_curator;
			$param['xsl_name_edit_user'] = $xsl_mail_edit_user;
			$param['xsl_name_edit_curator'] = $xsl_mail_edit_curator;

			if (mb_strlen($param['forums_theme_title']) < 2 || mb_strlen($param['forums_message_text']) < 2)
			{
				$add_edit_message = -3;
			}
			else
			{
				$add_edit_message = $Forums->InsertEditMessage($param);
			}

			switch ($add_edit_message)
			{
				case -3: // Длина сообщения и темы должна быть не менее 2-х символов
				{
					$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/{$GLOBALS['Theme_ID']}/";
					$time = 5; // секунд
					?>
					<h1>Создание/редактирование сообщения</h1>
					<p>Длина темы или сообщения должна быть не менее 2-х символов. Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
					<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
					<script language="JavaScript" type="text/javascript">
					<!--
					function set_location()
					{
						location="<?php echo $path?>";
					}
					setTimeout('set_location()', <?php echo $time * 1000?>);
					//-->
					</script>
					<?php 
					break;
				}
				case -2: // Ошибка авторизации.
				{
					$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/{$GLOBALS['Theme_ID']}/";
					$time = 5; // секунд
					?>
					<h1>У Вас недостаточно прав для совершения операции</h1>
					<p> Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
					<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
					<script language="JavaScript" type="text/javascript">
					<!--
					function set_location()
					{
						location="<?php echo $path?>";
					}
					setTimeout('set_location()', <?php echo $time * 1000?>);
					//-->
					</script>
					<?php 
					break;
				}
				case -1: // Защита от флуда.
				{
					$param['message_theme'] = $_POST['theme_title'];
					$param['message_text'] = $_POST['forums_message_text'];

					$external_propertys['error'] = 'Ошибка! Вы слишком часто добавляете сообщения.';
					$external_propertys = array_merge($external_propertys, $GLOBALS['external_propertys_reg']);
					/* Если было добавление сообшения */
					if ($_POST['message_id'] == 0)
					{
						$param['current_page_theme'] = $page_theme;
						$param['current_page_message'] = $page_message;
						// Для вывода аватаров доп. св-ва пользователя нужны
						//$param['xml_show_external_property'] = false;
						$external_propertys = array_merge($external_propertys, $GLOBALS['external_propertys_reg']);
						
						/* Выводим таблицу сообщений */
						$Forums->ShowMessage($GLOBALS['FORUM_CONFERENCE_ID'], $GLOBALS['Forum_ID'], $GLOBALS['Theme_ID'],
						$xsl_topic_messages, $external_propertys, $param);
					}
					break;
				}
				case 0: // Ошибка.
				{
					$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/{$GLOBALS['Theme_ID']}/";
					$time = 5; // секунд
					?>
					<h1>Ошибка при редактировании/добавлении сообщения</h1>
					<p> Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
					<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
					<script language="JavaScript" type="text/javascript">
					<!--
					function set_location()
					{
						location="<?php echo $path?>";
					}
					setTimeout('set_location()', <?php echo $time * 1000?>);
					//-->
					</script>
					<?php 
					break;
				}
				default: /* Операция успешно выполнена */
				{
					if ($_POST['message_id'] == 0)
					{
						$page_count = $Forums->GetLastPageTheme($GLOBALS['Theme_ID']);
	
						if ($page_count != 0)
						{
							$page_count_txt = "page-{$page_count}/";
						}
						else
						{
							$page_count_txt = '';
						}
	
						// Добавление выполнено
						$Forums->IncCountMessage($site_users_id);
	
						$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/{$GLOBALS['Theme_ID']}/{$page_count_txt}";
						$time = 5; // секунд
						?>
						<h1>Добавление сообщения</h1>
						<p>Сообщение успешно добавлено. Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
						<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
						<script language="JavaScript" type="text/javascript">
						<!--
						function set_location()
						{
							location="<?php echo $path?>";
						}
						setTimeout('set_location()', <?php echo $time * 1000?>);
						//-->
						</script>
						<?php 					
					}
					else // Редактирование сообщения
					{
						$page_count = $Forums->GetLastPageTheme($GLOBALS['Theme_ID']);
	
						if ($page_count != 0)
						{
							$page_count_txt = "page-{$page_count}/";
						}
						else
						{
							$page_count_txt = '';
						}
	
						// Редактирование выполнено
						$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/{$GLOBALS['Theme_ID']}/{$page_count_txt}";
						$time = 5; // секунд
						?>
						<h1>Редактирование сообщения</h1>
						<p>Сообщение успешно отредактированно. Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
						<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
						<script language="JavaScript" type="text/javascript">
						<!--
						function set_location()
						{
							location="<?php echo $path?>";
						}
						setTimeout('set_location()', <?php echo $time * 1000?>);
						//-->
						</script>
						<?php	 			 
			 			// Сообщение является темой
						if ($Forums->MessageIsTheme($GLOBALS['Theme_ID'], $_POST['message_id']))
						{	
							// Получаем информацию о теме
							$row_message = $Forums->GetMessage($_POST['message_id']);
												
							// Установлена опция отправки сообщений
							if (isset($_POST['theme_send_letter']))
							{
		 						// Подписываем пользователя на рассылку сообщений темы
		 						$Forums->InsertThemeUserSubscribe(array('theme_id' => $GLOBALS['Theme_ID'], 'site_user_id' => $site_users_id));
							}
							else
							{						
		 						// Удаляем подписку пользователя на рассылку сообщений темы
		 						$Forums->DeleteThemeUserSubscribe(array('theme_id' => $GLOBALS['Theme_ID'], 'site_user_id' => $site_users_id));	 											
							}						
						}
					}				
					
					break;
				}
			}
		}
		else
		{
			/* Неправильная captcha */
			$param['message_theme'] = to_str($_POST['theme_title']);
			$param['message_text'] = to_str($_POST['forums_message_text']);
			$external_propertys['error'] = 'Ошибка! Неправильно введен код подтверждения.';
	
			/* Если было добавление сообщения */
			if ($_POST['message_id'] == 0)
			{
				$param['current_page_theme'] = $page_theme;
				$param['current_page_message'] = $page_message;
				// Для вывода аватаров доп. св-ва пользователя нужны
				//$param['xml_show_external_property'] = false;
				$external_propertys = array_merge($external_propertys, $GLOBALS['external_propertys_reg']);
	
				/* Выводим таблицу сообщений */
				$Forums->ShowMessage($GLOBALS['FORUM_CONFERENCE_ID'], $GLOBALS['Forum_ID'],
				$GLOBALS['Theme_ID'], $xsl_topic_messages, $external_propertys, $param);
			}
			else
			{
				/* Если было редактирование сообшения */
				/* выводим форму редактирования сообщения */
				$external_propertys['error'] = 'Неправильно введен код подтверждения';
				$external_propertys = array_merge($external_propertys, $GLOBALS['external_propertys_reg']);
	
				$Forums->ShowEditMessage($GLOBALS['FORUM_CONFERENCE_ID'], $GLOBALS['Forum_ID'],
				$GLOBALS['Theme_ID'], $_POST['message_id'], $xsl_edit_message, $external_propertys);
			}
		}
	}
	elseif (isset($_GET['edit_message_id']))
	{
		/* Выводим форму редактирования сообщения */
		$Forums->ShowEditMessage($GLOBALS['FORUM_CONFERENCE_ID'], $GLOBALS['Forum_ID'],
		$GLOBALS['Theme_ID'], $_GET['edit_message_id'], $xsl_edit_message);
	}
	elseif ($GLOBALS['Forum_ID'])
	{
		// Если пользователь залогинился
		if ($site_users_id != 0)
		{
			// Если перешли по ссылке закрытия темы, закрываем/открываем тему и обновляем страницу
			if (isset($_GET['close_theme_id']))
			{
				$Forums->CloseTheme($GLOBALS['Forum_ID'], $_GET['close_theme_id']);
			}
	
			/* Если перешли по ссылке темы-объявления, делаем тему объявлением или наоборот и обновляем страницу */
			if (isset($_GET['notice_theme_id']))
			{
				$Forums->NoticeTheme($GLOBALS['Forum_ID'], $_GET['notice_theme_id']);
			}
	
			/* Если перешли по ссылке видимости темы, делаем тему видимой/невидимой и обновляем страницу */
			if (isset($_GET['visible_theme_id']))
			{
				$Forums->VisibleTheme($GLOBALS['Forum_ID'], $_GET['visible_theme_id']);
			}
	
			// Если перешли по ссылке удаления темы, то удаляем тему и обновляем страницу
			if (isset($_GET['delete_theme_id']))
			{
				$Forums->DelTheme($GLOBALS['FORUM_CONFERENCE_ID'], $GLOBALS['Forum_ID'],$_GET['delete_theme_id']);
			}
		}

		if ($GLOBALS['Theme_ID'])
		{
			/* Вывод таблицы сообщений */
			$param['current_page_theme'] = $page_theme;
			$param['current_page_message'] = $page_message;
			// Для вывода аватаров доп. св-ва пользователя нужны
			//$param['xml_show_external_property'] = false;
			
			$external_propertys = array_merge($external_propertys, $GLOBALS['external_propertys_reg']);
	
			if (isset($GLOBALS['quick_reg']))
			{
				echo $GLOBALS['quick_reg'];
			}
			else
			{
				if (isset($_GET['action'])
				&& $Forums->IssetForumAccess($GLOBALS['Forum_ID'], $site_users_id, false))
				{
					// Подписка пользователя на рассылку сообщений темы
					if ($_GET['action'] == 'theme_subscribe')
					{
						$Forums->InsertThemeUserSubscribe(array('theme_id' => $GLOBALS['Theme_ID'], 'site_user_id' => $site_users_id));
					}
					
					// Отмена подписки пользователя на рассылку сообщений темы
					if ($_GET['action'] == 'theme_unsubscribe')
					{
						$Forums->DeleteThemeUserSubscribe(array('theme_id' => $GLOBALS['Theme_ID'], 'site_user_id' => $site_users_id));
					}
				}

				if (!$Forums->ShowMessage($GLOBALS['FORUM_CONFERENCE_ID'], $GLOBALS['Forum_ID'],
				$GLOBALS['Theme_ID'], $xsl_topic_messages, $external_propertys, $param))
				{
					$path = $CONFERENCE_FULL_PATH.$GLOBALS['Forum_ID']."/";
					$time = 5; // секунд
					?>
					<h1>У Вас недостаточно прав для совершения операции</h1>
					<p> Через <?php echo $time?> секунд Вы вернетесь в форум.</p>
					<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
					<script language="JavaScript" type="text/javascript">
					<!--
					function set_location()
					{
						location="<?php echo $path?>";
					}
					setTimeout('set_location()', <?php echo $time * 1000?>);
					//-->
					</script>
					<?php
				}
			}
		}
		else
		{	
			if (isset($GLOBALS['quick_reg']))
			{
				echo $GLOBALS['quick_reg'];
			}
			else
			{
				$param['current_page_theme'] = $page_theme;
				$param['current_page_message'] = $page_message;
				$param['xml_show_external_property'] = false;
				/* Отображаем темы */
				$external_propertys = array_merge($external_propertys, $GLOBALS['external_propertys_reg']);
	
				if (!$Forums->ShowThemes($GLOBALS['FORUM_CONFERENCE_ID'], $GLOBALS['Forum_ID'],
				$xsl_forum_topics, $external_propertys, $param))
				{
					$path = $CONFERENCE_FULL_PATH;
					$time = 5; // секунд
				?>
				<h1>У Вас недостаточно прав для совершения операции</h1>
				<p> Через <?php echo $time?> секунд Вы вернетесь к списку форумов.</p>
				<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
				<script language="JavaScript" type="text/javascript">
				<!--
				function set_location()
				{
					location="<?php echo $path;?>";
				}
				setTimeout('set_location()', <?php echo $time * 1000?>);
				//-->
				</script>
				<?php 	
				}
			}
		}
	}
	/*
	// Перенесено в отдельную типовую динамическую страницу для пользователя
	elseif (ereg ("^user-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 0)
	{
	// Указываем пользователя, для которого отображаем информацию
	$param['site_users_id'] = $regs[1];
	
	$external_propertys['current_page_message'] = $page_message;
	
	$external_propertys = array_merge($external_propertys, $GLOBALS['external_propertys_reg']);
	
	$Forums->ShowSiteUserInfo($GLOBALS['FORUM_CONFERENCE_ID'], $GLOBALS['Forum_ID'],
	$GLOBALS['Theme_ID'], $xsl_user_info, $external_propertys, $param);
	}
	*/
	else
	{
		if (isset($GLOBALS['quick_reg']))
		{
			echo $GLOBALS['quick_reg'];
		}
		else
		{
			$DataBase = & singleton('DataBase');
			
			/* Идентификатор форума не указан - отображаем список форумов и групп для конференции */
			$external_propertys = array_merge($external_propertys, $GLOBALS['external_propertys_reg']);
			
			// Получаем информацию о последнем зарегистрированном пользователе
			$query = "SELECT site_users_login FROM site_users_table " .
			"WHERE site_users_confirmation = 1 AND site_id = " . $conference_row['site_id'].
			" ORDER BY site_users_id DESC LIMIT 0, 1;";

			$site_user_resource = $DataBase->select($query);
			$site_user_row = mysql_fetch_assoc($site_user_resource);
			$external_propertys['ИмяЗарегистрированногоПользователя'] = $site_user_row['site_users_login'];
			  		 
			$Forums->ShowConference($GLOBALS['FORUM_CONFERENCE_ID'], $xsl_forums, $external_propertys);
		}
	}
}
?>