<?php
if (class_exists('SiteUsers') && class_exists('helpdesk'))
{
	$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('UTF-8');
	
		$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;
	}
}
?>