<?php

$SiteUsers = & singleton('SiteUsers');
$current_site_user = $SiteUsers->GetCurrentSiteUser();

// Если пользователь не авторизован
if ($current_site_user == 0)
{
	// Редирект на авторизацию
	header('Location: /users/');
	exit();
}

$kernel = & singleton('kernel');

$helpdesk = & singleton('helpdesk');

/* ID Службы техподдержки */
$helpdesk_id = to_int($GLOBALS['LA']['HelpdeskID']);

/* Количество тикетов на страницу */
$ticket_on_page = to_int($GLOBALS['LA']['TicketOnPage']);

// Обработчик добавления оценки к сообщению
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'set_message_grade' && isset($_REQUEST['helpdesk_message_id']) && isset($_REQUEST['grade']))
{
	$JsHttpRequest = new JsHttpRequest(SITE_CODING);

	$message_id = to_int($_REQUEST['helpdesk_message_id']);
	$grade = to_int($_REQUEST['grade']);

	// Получаем информацию о сообщении
	$message_row = $helpdesk->GetMessage($message_id);

	if ($message_row)
	{
		// Получаем информацию о тикете
		$ticket_row = $helpdesk->GetTicket($message_row['helpdesk_ticket_id']);

		if ($ticket_row)
		{
			// Проверяем, принадлежит ли сообщение текущему пользователю сайта
			if ($ticket_row['site_users_id'] == $current_site_user)
			{
				$array_param = array();
				$array_param['helpdesk_message_id'] = $message_id;
				$array_param['helpdesk_message_grade'] = $grade;
				$array_param['helpdesk_ticket_id'] = $message_row['helpdesk_ticket_id'];

				// Обновляем информацию о сообщении
				$helpdesk->InsertMessage($array_param);
			}
		}
	}

	$GLOBALS['_RESULT'] = array(
	'result' => '');

	echo $JsHttpRequest->LOADER;
	exit();
}

$property = array();

/* Текстовая информация для указания номера страницы, например "страница" */
if (isset($GLOBALS['LA']['page']))
{
	$property['page'] = to_str($GLOBALS['LA']['page']);
}
else
{
	$property['page'] = 'страница';
}

/* Разделитель в заголовке страницы */
if (isset($GLOBALS['LA']['separator']))
{
	$property['separator'] = to_str($GLOBALS['LA']['separator']);
}
else
{
	$property['separator'] = ' / ';
}

$GLOBALS['HelpdeskResult'] = array();

/* Определяем номер страницы для показа */
$end_array_item = end($GLOBALS['URL_ARRAY']);

$page = to_str($end_array_item);

/* Определяем, выводится тикет, режим работы или список тикетов */

// Выводится список сообщений тикета
if (ereg ("^ticket_([0-9]*)$", $page, $regs) && to_int($regs[1]) > 0)
{
	$GLOBALS['HelpdeskResult']['ticket_id'] = to_int($regs[1]);

	// Вложенные файлы
	if (isset($_GET['get_attachment_id']) && to_int($_GET['get_attachment_id']) > 0)
	{
		$get_attachment_id = to_int($_GET['get_attachment_id']);

		// Проверяем доступность вложенного файла данному поьзователю сайта
		$access = $helpdesk->AccessToAttachment($get_attachment_id, $current_site_user);

		// Есть доступ
		if ($access)
		{
			// Получаем путь к файлу
			$attachment_path = $helpdesk->GetAttachmentPath($get_attachment_id);

			if ($attachment_path)
			{
				// Получаем информацию о вложенном файле
				$attachment_row = $helpdesk->GetAttachment($get_attachment_id);

				if ($attachment_row)
				{
					$File = new File();
					$File->Download($attachment_path, $attachment_row['helpdesk_attachment_file_name']);
					exit();
				}
			}
		}
	}
}
// Выводится режим работы
elseif (ereg ("^worktime$", $page, $regs))
{
	$GLOBALS['HelpdeskResult']['worktime'] = true;
	$GLOBALS['HelpdeskResult']['helpdesk_id'] = $helpdesk_id;
}
// Выводится список тикетов службы техподдержки
else
{
	if (ereg ("^page-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 0)
	{
		/* Страница умножается на кол-во элементов, выводимых на страницу */
		$ticket_begin = ($regs[1] - 1) * $ticket_on_page;
		$current_page = to_int($regs[1]);
	}
	else
	{
		$ticket_begin = 0;
		$current_page = 0;
	}

	/* Массив, возвращаемый методом */
	$GLOBALS['HelpdeskResult']['ticket_begin'] = $ticket_begin;
	$GLOBALS['HelpdeskResult']['ticket_on_page'] = $ticket_on_page;
	$GLOBALS['HelpdeskResult']['current_page'] = $current_page;
	$GLOBALS['HelpdeskResult']['helpdesk_id'] = $helpdesk_id;

}
?>