<?php
/**
 * Система управления сайтом HostCMS v. 5.xx
 * Copyright © 2005-2010 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 *
 * Форма для добаления/редактирования информационной группы
 * 
 * Файл: /admin/InformationSystems/action/form_edit_add_information_groups.php
 * 
 * @author Hostmake LLC
 * @version 5.x
 */
$InformationSystem = & singleton('InformationSystem');

$site_users_id = 0;
$info_sys_row = $InformationSystem->GetInformationSystem($information_system_id);
// Не возникало ошибок при добавлении/редактировании информационной группы
if (!isset($error_information_group))
{
	// Картинки.
	

	if ($info_sys_row)
	{
		$information_group_big_image_max_width = $info_sys_row['information_systems_image_big_max_width_group'];
		$information_group_big_image_max_height = $info_sys_row['information_systems_image_big_max_height_group'];
		$information_group_small_image_max_width = $info_sys_row['information_systems_image_small_max_width_group'];
		$information_group_small_image_max_height = $info_sys_row['information_systems_image_small_max_height_group'];

		$information_systems_typograph_group = $info_sys_row['information_systems_typograph_group'];

		// Watermark
		$information_systems_watermark_default_position_x = $info_sys_row['information_systems_watermark_default_position_x'];
		$information_systems_watermark_default_position_y = $info_sys_row['information_systems_watermark_default_position_y'];
	}
	else
	{
		$information_group_big_image_max_width = MAX_SIZE_LOAD_IMAGE_BIG;
		$information_group_big_image_max_height = MAX_SIZE_LOAD_IMAGE_BIG;
		$information_group_small_image_max_width = MAX_SIZE_LOAD_IMAGE;
		$information_group_small_image_max_height = MAX_SIZE_LOAD_IMAGE;

		$information_systems_typograph_group = 0;

		// Watermark
		$information_systems_watermark_default_position_x = '50%';
		$information_systems_watermark_default_position_y = '100%';
	}

	// Редактирование информационной группы
	if ($information_group_id != 0)
	{
		$result = $InformationSystem->select_information_groups($information_group_id, $information_system_id);

		if (mysql_num_rows($result))
		{
			$row = mysql_fetch_assoc($result);

			$information_group_parent_id = $row["information_groups_parent_id"];
			$information_group_name = $row["information_groups_name"];
			$information_group_description = $row["information_groups_description"];
			$information_group_order = to_int($row['information_groups_order']);
			$information_group_path = $row['information_groups_path'];
			$information_group_image = $row['information_groups_image'];
			$information_group_small_image = $row['information_groups_small_image'];
			$information_group_allow_indexation = $row['information_groups_allow_indexation'];
			$information_group_seo_title = $row['information_groups_seo_title'];
			$information_group_seo_description = $row['information_groups_seo_description'];
			$information_group_seo_keywords = $row['information_groups_seo_keywords'];
			$information_group_access = $row['information_groups_access'];

			$information_group_sns_type = $row['sns_type_id'];
			$information_group_activity = $row['information_groups_activity'];
			$site_users_id = $row['site_users_id'];
		}
	}
	else // Добавление информационной группы
	{
		// Значения по умолчанию - пустые
		$information_group_parent_id = to_int($_REQUEST["information_groups_parent_id"]);
		$information_group_name = '';
		$information_group_description = '';
		$information_group_order = 0;
		$information_group_path = '';
		$information_group_image = '';
		$information_group_small_image = '';
		$information_group_allow_indexation = 1;
		$information_group_seo_title = '';
		$information_group_seo_description = '';
		$information_group_seo_keywords = '';
		$information_group_access = -1;

		$information_group_activity = 1;
		$information_group_sns_type = 0;
		$information_group_sns_item_default_accessibility = 0;
		$information_group_sns_item_default_show_comments_mode = 0;
		$information_group_sns_item_default_add_comments_mode = 0;
	}
}// Произошла ошибка при добавлении/редактировании информационной группы
else
{
	// Указываем заданные значения
	$information_group_parent_id =  to_int($_POST['information_group_parent_id']);
	$information_group_name = to_str($_POST['information_group_name']);
	$information_group_description = to_str($_POST['information_group_description']);
	$information_group_order = to_int($_POST['information_group_order']);
	$information_group_path = to_str($_POST['information_group_path']);

	// Watermark
	$information_systems_watermark_default_position_x = to_str($_POST['image_watermark_position_x_information_group_image']);
	$information_systems_watermark_default_position_y = to_str($_POST['image_watermark_position_y_information_group_image']);

	if ($information_group_id != 0)
	{
		$result = $InformationSystem->select_information_groups($information_group_id, $information_system_id);

		$row = mysql_fetch_assoc($result);

		$information_group_image = $row['information_groups_image'];
		$information_group_small_image = $row['information_groups_small_image'];
	}
	else
	{
		$information_group_image = '';
		$information_group_small_image = '';
	}

	$information_group_allow_indexation = isset($_POST['information_group_allow_indexation']) ? 1 : 0;
	$information_group_seo_title = to_str($_POST['information_group_seo_title']);
	$information_group_seo_description = to_str($_POST['information_group_seo_description']);
	$information_group_seo_keywords = to_str($_POST['information_group_seo_keywords']);
	$information_group_access = to_int($_POST['information_group_access']);

	$information_group_big_image_max_width = to_int($_POST['big_image_max_width_information_group_image']);
	$information_group_big_image_max_height = to_int($_POST['big_image_max_height_information_group_image']);
	$information_group_small_image_max_width = to_int($_POST['small_image_max_width_information_group_image']);
	$information_group_small_image_max_height = to_int($_POST['small_image_max_height_information_group_image']);

	$information_group_activity = 1;
	$information_group_sns_type = 0;
	$information_group_sns_item_default_accessibility = 0;
	$information_group_sns_item_default_show_comments_mode = 0;
	$information_group_sns_item_default_add_comments_mode = 0;
	
	$site_users_id = to_int($_POST['site_users_id']);
}

$form_params = array();

$form_params['title'] = ($information_group_id == 0)
? $GLOBALS['MSG_information_systems']['information_groups_add_form_title']
: $GLOBALS['MSG_information_systems']['information_groups_edit_form_title'];

$form_params['form_attribs']['method'] = 'post';
$form_params['form_attribs']['action'] = '/admin/InformationSystems/InformationSystems.php';
$form_params['form_attribs']['name'] = 'EditAddInformationGroup';
$form_params['form_attribs']['ENCTYPE'] = 'multipart/form-data';

$admin_forms_fields = new admin_forms_fields();

// Формируем "хлебные крошки"
$new_path_array = array();

$new_path_array[] = array(
'link' => $admin_forms_fields->GetHtmlCallDoLoadAjax('/admin/InformationSystems/InformationSystems.php', ' ', 11, 'load_data'),
'onclick' => $admin_forms_fields->GetOnClickCallDoLoadAjax('/admin/InformationSystems/InformationSystems.php', ' ', 11, 'load_data'),
'name' => $GLOBALS['MSG_information_systems']['show_information_systems_title']);

// Идентификатор текущей группы (раздела) информационных систем
$information_systems_dir_parent_id = to_int($_REQUEST['information_systems_dir_parent_id']);

// Путь по группам инфосистем
if ($information_systems_dir_parent_id)
{
	$information_systems_dir_path_array = $InformationSystem->GetInformationSystemsDirPathArray($information_systems_dir_parent_id);
	
	// Меняем порядок следования элементов в массиве на обратный
	$information_systems_dir_path_array = array_reverse($information_systems_dir_path_array, true);
	
	foreach ($information_systems_dir_path_array as $key => $value)
	{
		$new_path_array[] = array (
		'link' => $admin_forms_fields->GetHtmlCallDoLoadAjax('/admin/InformationSystems/InformationSystems.php', "&information_systems_dir_parent_id={$key}", 11, 'load_data'),
		'onclick' => $admin_forms_fields->GetOnClickCallDoLoadAjax('/admin/InformationSystems/InformationSystems.php', "&information_systems_dir_parent_id={$key}", 11, 'load_data'),
		'name' => $value['information_systems_dir_name']);
	}
}	

// Получаем данные об информационной системе, группу которой сейчас добавляем/редактируем
$information_system_row = $InformationSystem->GetInformationSystem($information_system_id);

// Определим ID макета по структуре, связанной с инфосистемой
$structure = & singleton('Structure');
$structure_row = $structure->GetStructureItem(to_int($information_system_row['structure_id']));
$template_id = to_int($structure_row['templates_id']);

$path_array = $InformationSystem->GetInformationGroupsPathArray($information_group_parent_id, $information_system_id);

if (count($path_array) > 0)
{
	// Меняем порядок следования элементов в массиве на обратный
	$path_array = array_reverse($path_array, true);
	
	// Преобразуем идентификаторы групп в ссылки на группы.
	if ($path_array)
	{
		foreach ($path_array as $key => $value)
		{
			$new_path_array[] = array (
			'link' => $admin_forms_fields->GetHtmlCallDoLoadAjax('/admin/InformationSystems/InformationSystems.php', "&information_groups_parent_id={$key}&information_systems_dir_parent_id={$information_systems_dir_parent_id}&information_system_id={$information_system_id}", 12, 'load_data'),
			'onclick' => $admin_forms_fields->GetOnClickCallDoLoadAjax('/admin/InformationSystems/InformationSystems.php', "&information_groups_parent_id={$key}&information_systems_dir_parent_id={$information_systems_dir_parent_id}&information_system_id={$information_system_id}", 12, 'load_data'),
			'name' => $value['information_groups_name']);
		}
	}
}

// Передаем в массив для констурктора хлебные крошки
$form_params['path_array'] = $new_path_array;

$InformationSystem = & singleton('InformationSystem');

$admin_forms_fields->admin_forms_fields($form_params);

$DataBase = & singleton('DataBase');

$tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_information_systems']['information_groups_form_tab_1']);

// Название информационной группы.
$param = array();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_name';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_groups_name'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $information_group_name;
$param['attributes'] = array();
$param['attributes']['class'] = 'large';
$param['format']['minlen']['value'] = 1;
$param['format']['maxlen']['value'] = 255;
$admin_forms_fields->AddField($param);

// Разделитель.
$admin_forms_fields->AddSeparator($tab_id);

// Идентификатор информационной группы
if ($information_group_id)
{
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = '';
	$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_groups_id'];
	$param['type'] = 0;
	$param['value'] = $information_group_id;
	// Данное поле только для чтения
	$param['attributes']['readonly'] = '';
	$param['attributes']['style'] = 'width: 110px;';
	$param['div_attributes']['style'] = 'float: left';
	$admin_forms_fields->AddField($param);
}

// Список групп
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_parent_id';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_groups_parent_id'];
$param['type'] = 2; // Выпадающий список.
$param['value'] = $information_group_parent_id;

$mas_groups = $InformationSystem->GetAllInformationGroups(array(
	'information_system_id' => $information_system_id,
	'select_fields' => array('information_groups_id', 'information_groups_parent_id', 'information_groups_name'),
));

$aGroupsTree = array();
foreach ($mas_groups as $key => $row)
{
	$aGroupsTree[$row['information_groups_parent_id']][] = $row;
}

$param['items'] = array ('...') + GetDelimitedGroups(0, $aGroupsTree, '', $information_group_id);
$param['div_attributes']['style'] = '';
$param['attributes']['style'] = 'width: 320px; float: left;';
$param['apply_filter'] = true;
$admin_forms_fields->AddField($param);

// Разделитель.
$admin_forms_fields->AddSeparator($tab_id);

// Описание информационной группы.
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_description';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_groups_description'];

// Если не существует константа для отображения wysywig или
// она равна true, то отображаем wysiwyg.
if (!defined('ALLOW_WYSIWYG_DESCRIPTION_IS_GROUP') || (defined('ALLOW_WYSIWYG_DESCRIPTION_IS_GROUP')  && ALLOW_WYSIWYG_DESCRIPTION_IS_GROUP))
{
	$param['type'] = 7; // Визуальный редактор.
	$param['template'] = $template_id;
}
else
{
	$param['type'] = 5; // textarea
	$param['attributes'] = array();
	$param['attributes']['rows'] = 7;
}

$param['value'] = $information_group_description;

$admin_forms_fields->AddField($param);

// Добавляем чекбоксы типографики для описания.
if (class_exists("typograph"))
{
	// Оптическое выравнивание
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['type'] = 1;
	$param['name'] = 'use_typograph_for_description';
	$param['html_id'] = 'id_exec_typograph_for_description';
	$param['caption'] = $GLOBALS['MSG_information_systems']['exec_typograph_for_group_description'];
	$param['div_attributes']['style'] = 'float: left;';
	if (isset($_POST['use_typograph_for_description']))
	{
		$param['value'] = 1;
	}
	else
	{
		$param['value'] = to_int($information_systems_typograph_group);
	}

	$admin_forms_fields->AddField($param);

	// Висячая пунктуация
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['type'] = 1;
	$param['name'] = 'trailing_punctuation_for_description';
	$param['html_id'] = 'id_trailing_punctuation_for_description';
	$param['caption'] = $GLOBALS['MSG_information_systems']['use_trailing_punctuation_for_prop'];
	$param['div_attributes']['style'] = 'float: left';
	if (isset($_POST['use_typograph_for_description']) && isset($_POST['trailing_punctuation_for_description']))
	{
		$param['value'] = 1;
	}
	else
	{
		$param['value'] = to_int($information_systems_typograph_group);
	}

	$admin_forms_fields->AddField($param);
}
// Разделитель.
$admin_forms_fields->AddSeparator($tab_id);

// Изображение информационной группы.
$param = array();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_image';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_image'];
$param['type'] = 9; // Поле загрузки файла.
$param['value'] = $information_group_name;

$param['options'] = array();
$param['options']['make_small_image_from_big_show'] = 1; // отображать ли checkbox с подписью "Создать малое изображение из большого" (1 -  отображать (по умолчанию), 0 - не отображать);

if (!isset($error_information_group))
{
	// вид ображения checkbox'а с подписью "Создать малое изображение из большого" выбранным (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
	$param['options']['make_small_image_from_big_checked'] = $information_group_small_image != '' ? 0 :1;
}
else
{
	// вид ображения checkbox'а с подписью "Создать малое изображение из большого" выбранным (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
	$param['options']['make_small_image_from_big_checked'] = isset($_POST['used_big_image_information_group_image']) ? 1 : 0;
}

// Отображать ли поле загрузки малого изображения (1 -  отображать (по умолчанию), 0 - не отображать);
$param['options']['load_small_image_show'] = 1;

// Заголовок поля загрузки малого изображения
$param['options']['load_small_image_caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_small_image'];

// Значение максимальной ширины большого изображения;
$param['options']['image_big_max_width'] = $information_group_big_image_max_width;

// Значение максимальной высоты большого изображения;
$param['options']['image_big_max_height'] = $information_group_big_image_max_height;

// Значение максимальной ширины малого изображения;
$param['options']['image_small_max_width'] = $information_group_small_image_max_width;

// Значение максимальной высоты малого изображения;
$param['options']['image_small_max_height'] = $information_group_small_image_max_height;

// Отображать ли checkbox с подписью "Наложить водяной знак на большое изображение" (1 -  отображать (по умолчанию), 0 - не отображать);
$param['options']['used_watermark_big_image_show'] = 1;

if (isset($error_information_group))
{
	// Вид ображения checkbox'а с подписью "Наложить водяной знак на большое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
	$param['options']['used_watermark_big_image_checked'] = isset($_POST['big_image_is_use_watermark_information_group_image']) ? 1 : 0;
	$param['options']['used_big_image_preserve_aspect_ratio_checked'] = isset($_POST['big_image_preserve_aspect_ratio_information_group_image']) ? 1 : 0;
}
else
{
	$param['options']['used_watermark_big_image_checked'] = to_int($information_system_row['information_systems_default_used_watermark']);
}

// Значение поля ввода с подписью "По оси X"
$param['options']['watermark_position_x'] = $information_systems_watermark_default_position_x;

// Значение поля ввода с подписью "По оси Y"
$param['options']['watermark_position_y'] = $information_systems_watermark_default_position_y;

// Отображать ли checkbox с подписью "Наложить водяной знак на малое изображение" (1 -  отображать (по умолчанию), 0 - не отображать);
$param['options']['used_watermark_small_image_show'] = 1;
$param['options']['used_big_image_preserve_aspect_ratio_checked'] = to_int($info_sys_row['information_systems_default_save_proportions']);
							
$param['options']['used_small_image_preserve_aspect_ratio_checked'] = to_int($info_sys_row['information_systems_default_save_proportions']);
if (isset($error_information_group))
{
	// Вид ображения checkbox'а с подписью "Наложить водяной знак на малое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
	$param['options']['used_watermark_small_image_checked'] = isset($_POST['small_image_is_use_watermark_information_group_image']) ? 1 : 0;
	$param['options']['used_small_image_preserve_aspect_ratio_checked'] = isset($_POST['small_image_preserve_aspect_ratio_information_group_image']) ? 1 : 0;
}
else
{
	$param['options']['used_watermark_small_image_checked'] = to_int($information_system_row['information_systems_default_used_small_watermark']);
}

// Путь к папке информационной группы
$information_group_dir = $InformationSystem->GetInformationGroupDir($information_group_id);

if ($information_group_image != '')
{
	// Адрес большого загруженного изображения
	$param['options']['big_image_path'] = '/' . $information_group_dir . rawurlencode($information_group_image);
	// Ссылка для href
	$param['options']['href_delete_big_image'] = "javascript:void(0)";
	// Значение для onclick
	$param['options']['onclick_delete_big_image'] = "sendRequest('/admin/InformationSystems/InformationSystems.php?delete_information_group_big_image={$information_group_id}', 'get', callback_function_exec_from_return); return false;";
}
else
{
	$param['options']['big_image_path'] = '';
	// Ссылка для href
	$param['options']['href_delete_big_image'] = '';
	// Значение для onclick
	$param['options']['onclick_delete_big_image'] = '';
}

if ($information_group_small_image)
{
	// Адрес малого загруженного изображения
	$param['options']['small_image_path'] = '/' . $information_group_dir .rawurlencode($information_group_small_image);

	// Ссылка для href
	$param['options']['href_delete_small_image'] = "javascript:void(0)";
	// Значение для onclick
	$param['options']['onclick_delete_small_image'] = "sendRequest('/admin/InformationSystems/InformationSystems.php?delete_information_group_small_image={$information_group_id}', 'get', callback_function_exec_from_return); return false;";
}
else
{
	$param['options']['small_image_path'] = '';
	// Ссылка для href
	$param['options']['href_delete_small_image'] = '';
	// Значение для onclick
	$param['options']['onclick_delete_small_image'] = '';
}

$admin_forms_fields->AddField($param);
$admin_forms_fields->AddSeparator($tab_id);

// Группа доступа
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_access';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_access'];
$param['type'] = 2; // Выпадающий список.

$value = $information_group_access;

$param['value'] = $value;

$items = array();

if (class_exists('SiteUsers'))
{
	$site_users = & singleton('SiteUsers');

	$result = $site_users->SelectSiteUsersGroups();

	$count_site_users_groups = mysql_num_rows($result);
}
else
{
	$count_site_users_groups = 0;
}

for ($i = -2; $i < $count_site_users_groups; $i++)
{
	switch ($i)
	{
		case -2:
			$option_text = $GLOBALS['MSG_information_systems']['information_all'];
			$option_value = 0;
			break;
		case -1:
			$option_text = $GLOBALS['MSG_information_systems']['information_parrent'];
			$option_value = -1;
			break;
		default:
			$row = mysql_fetch_assoc($result);
			$option_text = $row["site_users_group_name"];
			$option_value = $row["site_users_group_id"];
	}

	$items[$option_value] = $option_text;
}

$param['items'] = $items;
$param['attributes']['style'] = 'width: 300px;';
$param['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($param);

$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_activity';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_activity'];
$param['type'] = 2; // Выпадающий список.
$param['value'] = $information_group_activity;
$param['attributes']['style'] = 'width: 110px;';
$param['div_attributes']['style'] = 'float: left;';

$items = array();

$items[0] = $GLOBALS['MSG_information_systems']['information_groups_add_form_activity_false'];
$items[1] = $GLOBALS['MSG_information_systems']['information_groups_add_form_activity_true'];


$param['items'] = $items;

$admin_forms_fields->AddField($param);

// Порядковый номер группы
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_order';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_groups_order'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $information_group_order;
$param['attributes']['style'] = 'width: 150px;';
$param['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($param);


// Идентификатор пользователя, которому принадлежит группа

$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'site_users_id';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_site_users_id'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $site_users_id;
$param['attributes']['style'] = 'width: 150px;';
$param['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($param);

$admin_forms_fields->AddSeparator($tab_id);

// Элемент URL информационной системы для данной группы
$param = array();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_path';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_groups_path'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $information_group_path;
$param['format']['lib']['value'] = 'path';
$param['format']['lib']['message'] = $GLOBALS['MSG_information_systems']['invalid_characters'];
$param['format']['maxlen']['value'] = 255;
$param['attributes']['style'] = 'font-weight: bold; width: 100%';
$admin_forms_fields->AddField($param);

// Индексировать
$param = array();
$param['tab_id'] = $tab_id;
$param['type'] = 1;
$param['name'] = 'information_group_allow_indexation';
$param['html_id'] = 'id_captcha_used';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_indexation'];
$param['value'] = $information_group_allow_indexation;

$admin_forms_fields->AddField($param);

$tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_information_systems']['information_groups_form_tab_seo']);

// Значение мета-тега <title> для информационной группы
$param = array();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_seo_title';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_groups_seo_title'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $information_group_seo_title;

$admin_forms_fields->AddField($param);

// Значение мета-тега <description> для информационной группы
$param = array();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_seo_description';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_groups_seo_description'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $information_group_seo_description;

$admin_forms_fields->AddField($param);

// Значение мета-тега <description> для информационной группы
$param = array();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_group_seo_keywords';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_groups_seo_keywords'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $information_group_seo_keywords;

$admin_forms_fields->AddField($param);


// Добавляем скрытое поле с идентификатором информационной системы
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_system_id';
$param['type'] = 4; // Скрытое поле.
$param['value'] = $information_system_id;
$admin_forms_fields->AddField($param);

// Добавляем скрытое поле для отображения списка информационных групп
$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = 'action';
$param['type'] = 4; // Скрытое поле.
$param['value'] = 'show_information_groups';
$admin_forms_fields->AddField($param);

// Добавляем скрытое поле для отображения списка  подгрупп данной информационной группы
if ($information_group_parent_id)
{
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'information_groups_parent_id';
	$param['type'] = 4; // Скрытое поле.
	$param['value'] = $information_group_parent_id;
	$admin_forms_fields->AddField($param);
}

// Идет редактирование информационной группы
if ($information_group_id)
{
	// Добавляем скрытое поле с идентификатором редактируемой информационной группы
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'information_group_id';
	$param['type'] = 4; // Скрытое поле.
	$param['value'] = $information_group_id;
	$admin_forms_fields->AddField($param);
}

// Редактирование информационной группы
if ($information_group_id)
{
	#определяем значения свойств данной группы информационной системы
	$query = "SELECT information_propertys_groups_table.*,
				    	  	  information_propertys_groups_value_table.information_propertys_groups_value_id, 
				      	  information_propertys_groups_value_table.information_propertys_groups_value_value,  
				      	  information_propertys_groups_value_table.information_propertys_groups_value_file,
				      	  information_propertys_groups_value_table.information_propertys_groups_value_file_small,
				      	  information_propertys_groups_value_table.information_groups_id 
					FROM information_propertys_groups_table LEFT JOIN  information_propertys_groups_value_table
                      	ON
                         	(
										information_propertys_groups_value_table.information_propertys_groups_id = information_propertys_groups_table .information_propertys_groups_id 
	                         AND
	                          (
		                          (information_propertys_groups_value_table.information_groups_id='$information_group_id')
		                          OR
		                          (information_propertys_groups_value_table.information_groups_id is null)
	                         )
                         ) 
                         WHERE
                         information_propertys_groups_table.information_systems_id='$information_system_id' 
                         ORDER BY information_propertys_groups_table.information_propertys_groups_order";

	$DataBase->select($query);

	$result = $DataBase->result;

}
else // Добавление информационной группы
{
	// Выбираем все свойства, относящиеся к данной инфосистеме со значениями по умолчанию
	$result = $InformationSystem->GetAllInformationGroupsPropertys($information_system_id);
}

$count_propertys = mysql_num_rows($result);

// Функция получения информации о дереве групп доп. свойств информационных групп
function get_mas_properties_information_groups_dir($information_system_id, $parent_properties_groups_dir_id, $mas_dir)
{	
	$information_system = & singleton('InformationSystem');
	
	$param = array();
	$param['parent_properties_groups_dir_id'] = $parent_properties_groups_dir_id;
	
	$dir_resource = $information_system->GetAllPropertyGroupsDirForInformationSystem($information_system_id, $param);

	if ($dir_resource)
	{
		while ($dir_row = mysql_fetch_assoc($dir_resource))
		{
			$mas_dir[] = $dir_row;		
			
			$mas_dir = get_mas_properties_information_groups_dir($information_system_id, $dir_row['information_propertys_groups_dir_id'], $mas_dir);
		}
	}
	
	return $mas_dir;
}

// Для ифосистемы заданы дополнительные свойства информационных групп
if ($count_propertys)
{
	$html = '';
	
	// Вкладка для дополнительных свойств
	$tab2_id = $admin_forms_fields->AddTab($GLOBALS['MSG_information_systems']['information_groups_form_tab_2']);
		
	// Массив дополнительных свойств инфорационных групп
	$groups_propertys_mas = array();
	
	// Цикл по дополнительным свойствам информационных групп 
	while($row = mysql_fetch_assoc($result))
	{
		// Заполняем массив дополнительных свойств информационных групп по группам свойств
	    $groups_propertys_mas[$row['information_propertys_groups_dir_id']][] = $row;    
	}
	
	// Выбираем группы дополнительных свойств информационных групп
	//$result_propertys_groups = $InformationSystem->GetAllPropertyGroupsDirForInformationSystem($information_system_id);
	
	//$row_propertys_groups = array();
	
	// Элемент массива, моделирующий кореневую группу доп. свойств групп товаров 
	//$row_propertys_groups['information_propertys_groups_dir_id'] = 0;
	
	$mas_propertys_groups_dir = array(array('information_propertys_groups_dir_id' => 0));
	 
	$mas_propertys_groups_dir = get_mas_properties_information_groups_dir($information_system_id, 0, $mas_propertys_groups_dir);
					
	// Стек
	$stack_array = array();
	
	$i = 0;
	
	// Цикл по группам дополнительных свойств информационных групп
	//do
	foreach ($mas_propertys_groups_dir as $row_propertys_groups)
	{
		$margin_left = 0;
		
		if (isset($row_propertys_groups['information_propertys_groups_dir_parent_id']))
		{
			// Стек пуст
			if (count($stack_array) == 0)
			{
				$stack_array[] = $row_propertys_groups;
								
			}
			else // В стеке есть элементы
			{
				// Верхний элемент стека
				$end_stack_item = end($stack_array);
				
				// Текущий элемент является дочерним по отношению к верхнему элементу стека
				if ($end_stack_item['information_propertys_groups_dir_id'] == $row_propertys_groups['information_propertys_groups_dir_parent_id'])
				{ 
					$i++;

					// Добавляем элемент в стек 					
					$stack_array[] = $row_propertys_groups;						
				}
				// Текущий элемент находится на одном уровне с верхним элементом стека 
				elseif ($end_stack_item['information_propertys_groups_dir_parent_id'] == $row_propertys_groups['information_propertys_groups_dir_parent_id'])
				{
					$item_stack_key = key($stack_array);				

					// Заменяем верхний элемент стека
					$stack_array[$item_stack_key] = $row_propertys_groups;
					
					//print_r($stack_array);
				}
				else // Текущий элемент находится на одном уровне с родителем верхнего элемента стека
				{
					$count_stack_items = count($stack_array);
										
					for ($k = 0; $k < $count_stack_items; $k++)
					{	
						$item_stack_key = key($stack_array);
						
						unset($stack_array[$item_stack_key]);
						
						$end_stack_item = end($stack_array);						
						
						$i--;
						
						if ($end_stack_item['information_propertys_groups_dir_parent_id'] == $row_propertys_groups['information_propertys_groups_dir_parent_id'])
						{
							// Заменяем верхний элемент стека
							$stack_array[] = $row_propertys_groups;
							break;
						}
					}										
				}	
								  
				$margin_left = $i * 15;
			}		
		}
		
		if ($row_propertys_groups['information_propertys_groups_dir_id'])
		{
			$param = array ();
			$param['tab_id'] = $tab2_id;
			$param['type'] = 8; // Название группы	
			$param['value'] = '<strong>' . $row_propertys_groups['information_propertys_groups_dir_name'] . '</strong>';
			$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
			
			$admin_forms_fields->AddField($param);
		}	
		
		// Разделитель
		$admin_forms_fields->AddSeparator($tab2_id);
		
		if (isset($groups_propertys_mas[$row_propertys_groups['information_propertys_groups_dir_id']]))
		{
			foreach($groups_propertys_mas[$row_propertys_groups['information_propertys_groups_dir_id']] as $key => $row)
			{
				$information_propertys_groups_id = to_int($row['information_propertys_groups_id']);
			
				switch ($row['information_propertys_groups_type'])
				{
					// Тип свойства - файл
					case 2:
						{
							$InformationSystemRow = $InformationSystem->GetInformationSystem($information_system_id);
			
							$param = array();
			
							$param['tab_id'] = $tab2_id;
							$param['name'] = 'property' . $information_propertys_groups_id;
							$param['caption'] = $row['information_propertys_groups_name'];
							$param['type'] = 9; // Поле загрузки файла.
							$param['value'] = $information_group_name;
							$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
			
							$param['options'] = array();
			
							// Отображать ли checkbox с подписью "Создать малое изображение из большого" (1 -  отображать (по умолчанию), 0 - не отображать);
							$param['options']['make_small_image_from_big_show'] = 1;
			
							// Отображать ли поле загрузки малого изображения (1 -  отображать (по умолчанию), 0 - не отображать);
							$param['options']['load_small_image_show'] = 1;
			
							// Заголовок поля загрузки малого изображения
							$param['options']['load_small_image_caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_property_small_image'];
			
							// Значение максимальной ширины большого изображения;
							$param['options']['image_big_max_width'] = $row['information_propertys_groups_big_width'];
			
							// Значение максимальной высоты большого изображения;
							$param['options']['image_big_max_height'] = $row['information_propertys_groups_big_height'];
			
							// Значение максимальной ширины малого изображения;
							$param['options']['image_small_max_width'] = $row['information_propertys_groups_small_width'];
			
							// Значение максимальной высоты малого изображения;
							$param['options']['image_small_max_height'] = $row['information_propertys_groups_small_height'];
			
							// Отображать ли checkbox с подписью "Наложить водяной знак на большое изображение" (1 -  отображать (по умолчанию), 0 - не отображать);
							$param['options']['used_watermark_big_image_show'] = 1;
			
							// Значение поля ввода с подписью "По оси X"
							$param['options']['watermark_position_x'] = isset($_POST['image_watermark_position_x_property'.$information_propertys_groups_id]) ? $_POST['image_watermark_position_x_property'.$information_propertys_groups_id] : $information_systems_watermark_default_position_x;
			
							// Значение поля ввода с подписью "По оси Y"
							$param['options']['watermark_position_y'] = isset($_POST['image_watermark_position_y_property'.$information_propertys_groups_id]) ? $_POST['image_watermark_position_y_property'.$information_propertys_groups_id] : $information_systems_watermark_default_position_y;
			
							// Отображать ли checkbox с подписью "Наложить водяной знак на малое изображение" (1 -  отображать (по умолчанию), 0 - не отображать);
							$param['options']['used_watermark_small_image_show'] = 1;
							$param['options']['used_big_image_preserve_aspect_ratio_checked'] = to_int($info_sys_row['information_systems_default_save_proportions']);
							$param['options']['used_small_image_preserve_aspect_ratio_checked'] = to_int($info_sys_row['information_systems_default_save_proportions']);

							// Редактирование информационной группы
							if ($information_group_id)
							{
								$information_group_big_image_property = $row['information_propertys_groups_value_file'];
								$information_group_small_image_property = $row['information_propertys_groups_value_file_small'];
			
								if ($information_group_big_image_property != '')
								{
									// Адрес большого загруженного изображения
									$param['options']['big_image_path'] = '/' . $information_group_dir . rawurlencode($information_group_big_image_property);
			
									$param['options']['href_delete_big_image'] = "javascript:void(0)";
									// Значение для onclick
									$param['options']['onclick_delete_big_image'] = "sendRequest('/admin/InformationSystems/InformationSystems.php?group_property_id=$information_propertys_groups_id&delete_information_group_property_big_image={$row['information_propertys_groups_value_id']}', 'get', callback_function_exec_from_return); return false;";
								}
								else
								{
									$param['options']['big_image_path'] = '';
									$param['options']['href_delete_big_image'] = '';
									// Значение для onclick
									$param['options']['onclick_delete_big_image'] = '';
								}
			
								if ($information_group_small_image_property != '')
								{
									// Адрес малого загруженного изображения
									$param['options']['small_image_path'] = '/' . $information_group_dir . rawurlencode($information_group_small_image_property);
			
									$param['options']['href_delete_small_image'] = "javascript:void(0)";
									// Значение для onclick
									$param['options']['onclick_delete_small_image'] = "sendRequest('/admin/InformationSystems/InformationSystems.php?group_property_id=$information_propertys_groups_id&delete_information_group_property_small_image={$row['information_propertys_groups_value_id']}', 'get', callback_function_exec_from_return); return false;";
								}
								else
								{
									$param['options']['small_image_path'] = '';
			
									$param['options']['href_delete_small_image'] = '';
									// Значение для onclick
									$param['options']['onclick_delete_small_image'] = '';
								}
							}
							else // Добавление информационной группы
							{
								$information_group_big_image_property = '';
								$information_group_small_image_property ='';
								$param['options']['big_image_path'] = '';
								$param['options']['small_image_path'] = '';
							}
			
							if (!isset($error_information_group))
							{
								// Вид ображения checkbox'а с подписью "Создать малое изображение из большого" выбранным (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
								$param['options']['make_small_image_from_big_checked'] = $information_group_small_image_property != '' ? 0 :1;
			
								// Накладываем "водяной знак" на большое изображение по умолчаию
								if (to_int($InformationSystemRow['information_systems_default_used_watermark']) == 1)
								{
									// Вид ображения checkbox'а с подписью "Наложить водяной знак на большое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
									$param['options']['used_watermark_big_image_checked'] = 1;
								}
								// Не накладываем "водяной знак" на большое изображение по умолчаию
								else
								{
									// Вид ображения checkbox'а с подписью "Наложить водяной знак на большое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
									$param['options']['used_watermark_big_image_checked'] = 0;
								}
			
								// Накладываем "водяной знак" на малое изображение по умолчаию
								if (to_int($InformationSystemRow['information_systems_default_used_small_watermark']) == 1)
								{
									// Вид ображения checkbox'а с подписью "Наложить водяной знак на малое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
									$param['options']['used_watermark_small_image_checked'] = 1;
								}
								else // Не накладываем "водяной знак" на малое изображение по умолчаию
								{
									// Вид ображения checkbox'а с подписью "Наложить водяной знак на малое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
									$param['options']['used_watermark_small_image_checked'] = 0;
								}
							}
							else
							{
								// Вид ображения checkbox'а с подписью "Создать малое изображение из большого" выбранным (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
								$param['options']['make_small_image_from_big_checked'] = isset($_POST['used_big_image_property' . $information_propertys_groups_id]) ? 1 : 0;
			
								$param['options']['used_watermark_big_image_checked'] = isset($_POST['big_image_is_use_watermark_property' . $information_propertys_groups_id]) ? 1 : 0;
								$param['options']['used_watermark_small_image_checked'] = isset($_POST['small_image_is_use_watermark_property' . $information_propertys_groups_id]) ? 1 : 0;
								
								$param['options']['used_big_image_preserve_aspect_ratio_checked'] = isset($_POST['big_image_preserve_aspect_ratio_property' . $information_propertys_groups_id]) ? 1 : 0;
								$param['options']['used_small_image_preserve_aspect_ratio_checked'] = isset($_POST['small_image_preserve_aspect_ratio_property' . $information_propertys_groups_id]) ? 1 : 0;
							}
			
							$admin_forms_fields->AddField($param);
			
							break;
						}
			
					case 3: // Тип свойства - список.
					{
						if (class_exists('lists'))
						{
							$lists = & singleton('lists');
			
							$param = array();
							$param['tab_id'] = $tab2_id;
							$param['name'] = 'property' . $information_propertys_groups_id;
							$param['caption'] = $row['information_propertys_groups_name'];
							$param['type'] = 2; // Выпадающий список.
			
							// Возникала ошибка при добавлении/редактировании информационной группы
							// присваиваем веденное ранее значение
							if (isset($_REQUEST['property' . $information_propertys_groups_id]))
							{
								$value = to_int($_REQUEST['property' . $information_propertys_groups_id]);
							}
							else
							{
								// Добавление информационной группы
								if ($information_group_id == 0)
								{
									$value = '';
								}
								else // Редактирование информационной группы
								{
									$value = $row['information_propertys_groups_value_value'];
								}
							}
			
							$param['value'] = $value;
							$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
			
							$items = array();
			
							// Идентификатор списка
							$lists_id = $row['information_propertys_groups_lists_id'];
			
							// Получаем элементы списка, которые используются как значения доп. свойства информационной группы
							$list_resource = $lists->SelectListsItems($lists_id);
			
							$count_list_items = mysql_num_rows($list_resource);
			
							$items[0] = '..';
			
							for ($j = 0; $j < $count_list_items; $j++)
							{
								$row1 = mysql_fetch_assoc($list_resource);
			
								$items[$row1['lists_items_id']] = htmlspecialchars($row1['lists_items_value']);
							}
			
							$param['items'] = $items;
			
							$admin_forms_fields->AddField($param);
						}
			
						break;
					}
			
					// Тип свойства - большое текстовое поле
					case 4:
						{
							$param = array();
			
							$param = array();
							$param['tab_id'] = $tab2_id;
							$param['name'] = 'property' . $information_propertys_groups_id;
							$param['caption'] = $row['information_propertys_groups_name'];
							$param['type'] = 5; // textarea
							$param['attributes'] = array();
							$param['attributes']['rows'] = 10;
							$param['attributes']['style'] = 'width: 100%;';
			
							// Возникала ошибка при добавлении/редактировании информационной группы
							// присваиваем веденное ранее значение
							if (isset($_REQUEST['property' . $information_propertys_groups_id]))
							{
								$value = to_str($_REQUEST['property' . $information_propertys_groups_id]);
							}
							else
							{
								// Добавление информационной группы
								if ($information_group_id == 0)
								{
									// Присваиваем значение по умолчанию
									$value = $row['information_propertys_groups_default_value'];
								}
								else // Редактирование информационной группы
								{
									// Для дополнительного свойства группы задано значение
									if ($row['information_propertys_groups_value_value'] != '')
									{
										$value = $row['information_propertys_groups_value_value'];
									}
									// Для дополнительного свойства задано не значение - присваиваем значение по умолчанию
									else
									{
										$value = $row['information_propertys_groups_default_value'];
									}
								}
							}
			
							$param['value'] = $value;
							$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
			
							$admin_forms_fields->AddSeparator($tab2_id);
							$admin_forms_fields->AddField($param);
							break;
						}
			
						// Тип свойства - визуальный редактор
					case 5:
						{
							// Описание информационной группы.
							$param = array();
			
							$param = array();
							$param['tab_id'] = $tab2_id;
							$param['name'] = 'property' . $information_propertys_groups_id;
							$param['caption'] = $row['information_propertys_groups_name'];
							$param['type'] = 7; // Визуальный редактор.
							$param['template'] = $template_id;
			
							// Возникала ошибка при добавлении/редактировании информационной группы
							// присваиваем веденное ранее значение
							if (isset($_REQUEST['property' . $information_propertys_groups_id]))
							{
								$value = to_str($_REQUEST['property' . $information_propertys_groups_id]);
							}
							else
							{
								// Добавление информационной группы
								if ($information_group_id == 0)
								{
									// Присваиваем значение по умолчанию
									$value = $row['information_propertys_groups_default_value'];
								}
								else // Редактирование информационной группы
								{
									// Для дополнительного свойства группы задано значение
									if ($row['information_propertys_groups_value_value'] != '')
									{
										$value = $row['information_propertys_groups_value_value'];
									}
									// Для дополнительного свойства задано не значение - присваиваем значение по умолчанию
									else
									{
										$value = $row['information_propertys_groups_default_value'];
									}
								}
							}
			
							$param['value'] = $value;
							$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
			
							$admin_forms_fields->AddField($param);
			
							// Добавляем чекбоксы типографики для СВОЙСТВ.
							if (class_exists("typograph"))
							{
								// Оптическое выравнивание
								$param = array();
								$param['tab_id'] = $tab2_id;
								$param['type'] = 1;
								$param['name'] = 'exec_typograph_for_prop' . $information_propertys_groups_id;
								$param['html_id'] = 'id_exec_typograph_for_prop';
								$param['caption'] = $GLOBALS['MSG_information_systems']['exec_typograph_for_prop'];
								$param['div_attributes']['style'] = 'float: left; margin-left: ' . $margin_left . 'px';
																								
								if (isset($_POST['exec_typograph_for_prop' . $information_propertys_groups_id]))
								{
									$param['value'] = 1;
								}
								else
								{
									$param['value'] = to_int($information_systems_typograph_group);
								}
			
								$admin_forms_fields->AddField($param);
			
								// Висячая пунктуация
								$param = array();
								$param['tab_id'] = $tab2_id;
								$param['type'] = 1;
								$param['name'] = 'trailing_punctuation_for_prop' . $information_propertys_groups_id;
								$param['html_id'] = 'id_trailing_punctuation_for_prop';
								$param['caption'] = $GLOBALS['MSG_information_systems']['use_trailing_punctuation_for_prop'];
								$param['div_attributes']['style'] = 'float: left;';
								if (isset($_POST['exec_typograph_for_prop' . $information_propertys_groups_id]) && isset($_POST['trailing_punctuation_for_prop' . $information_propertys_groups_id]))
								{
									$param['value'] = 1;
								}
								else
								{
									$param['value'] = to_int($information_systems_typograph_group);
								}
								$admin_forms_fields->AddField($param);
			
								// Разделитель.
								$admin_forms_fields->AddSeparator($tab2_id);
							}
							break;
						}
			
					case 6: // Информационная система
					{
						// Список групп
						$param = array();
						$param['tab_id'] = $tab2_id;
						$param['div_id'] = 'list_id';
						$param['name'] = 'information_groups_id' . $information_propertys_groups_id;
						$param['caption'] = $row['information_propertys_groups_name'] . ' - ' . $GLOBALS['MSG_information_systems']['information_system_top_menu_groups'];
						$param['type'] = 2; // Выпадающий список.
						$param['attributes']['onchange'] = "FillDocuments$information_propertys_groups_id(this.selectedIndex)";
			
						// Возникала ошибка при добавлении/редактировании информационной группы
						// присваиваем веденное ранее значение
			
						if (isset($_REQUEST['property' . $information_propertys_groups_id]))
						{
							$value = to_int($_REQUEST['property' . $information_propertys_groups_id]);
						}
						else
						{
							// Добавление информационной группы
							if ($information_group_id == 0)
							{
								// Присваиваем значение по умолчанию
								$value = $row['information_propertys_groups_default_value'];
							}
							else // Редактирование информационной группы
							{
								// Для дополнительного свойства группы задано значение - информационный элемент
								if ($row['information_propertys_groups_value_value'] != '')
								{
									$value = $row['information_propertys_groups_value_value'];
								}
								// Для дополнительного свойства задано не значение - присваиваем значение по умолчанию
								else
								{
									$value = 0;
								}
							}
						}
			
						$information_group_property_id = 0;
			
						if ($value)
						{
							$row_information_system = $InformationSystem->GetInformationSystemItem($value);
							$information_group_property_id = $row_information_system['information_groups_id'];
						}
			
						$param['value'] = $information_group_property_id;
						
						$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
			
						// Выбираем информационную систему, заданную для данного свойства данной информационной системы
						if ($value != 0 && $value != '')
						{
							$row1 = $InformationSystem->GetInformationSystemItem($value);
						}
			
						$items = array();
			
						$mas_groups = array();
			
						// Получаем дерево групп информационной системы, являющейся дополнительным свойством
						$information_system_property_id = $row['information_propertys_groups_information_systems_id'];
			
						$groups = '0';
			
						$mas_groups = $InformationSystem->GetGroupsInformationSystem(0, $information_system_property_id, "&nbsp;&nbsp;");
			
						$mas_groups_count = count($mas_groups);
			
						$items[0] = '..';
			
						for ($j = 0; $j < $mas_groups_count; $j++)
						{
							$items[$mas_groups[$j]['information_groups_id']] = $mas_groups[$j]['separator'] . htmlspecialchars($mas_groups[$j]['information_groups_name']);
			
							$groups .= "," . ($j+1);
						}
			
						$param['items'] = $items;
			
						$admin_forms_fields->AddField($param);
			
						// Список элементов
						$param = array();
						$param['tab_id'] = $tab2_id;
						$param['name'] = 'property' . $information_propertys_groups_id;
						$param['caption'] = $row['information_propertys_groups_name'] . ' - ' . $GLOBALS['MSG_information_systems']['information_system_top_menu_items'];
						$param['type'] = 2; // Выпадающий список.
						$param['value'] = 0;
						$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
			
						$items = array();
						$items[0] = 'None';
						$param['items'] = $items;
			
						$admin_forms_fields->AddField($param);
			
						$html .= '<script type="text/javascript">' . "\n" . '
						               var ItemsList' . $information_propertys_groups_id . ' = new Array(' . $groups . ');' . "\n";
			
						$html .= 'var ItemsListValue' . $information_propertys_groups_id . ' = new Array(' . $groups .');' . "\n";
			
						// Заполняем для корня
						$items_list = '".."';
						$items_list_value = '"0"';
						$current_items_id = -1;
			
						// Выводим элементы
						$result1 = $InformationSystem->GetInformationItemsFromGroup(0, $information_system_property_id);
			
						$count_items = mysql_num_rows($result1);
			
						$information_propertys_groups_information_systems_id = $value;
			
						for ($k = 0; $k < $count_items; $k++)
						{
							$row1 = mysql_fetch_assoc($result1);
			
							if ($information_propertys_groups_information_systems_id == $row1['information_items_id'])
							{
			
								$current_items_id = $k+1; // +1, т.к. нулевой = "..". Запоминаем текущий порядковый номер элемента
							}
			
							// Warning: Слэши необходимо добавлять для экранирвоания кавычек в параметрах
							$items_list .= ',"' . addslashes($row1["information_items_name"]) . '"';
							$items_list_value .= ',"' . addslashes($row1["information_items_id"]) . '"';
						}
			
						// 0 - т.к. заполняем для корня
						$html .= "ItemsList" . $information_propertys_groups_id . "[0]= new Array(" . $items_list . ");\n";
			
						// 0 - т.к. заполняем для корня
						$html .= "ItemsListValue" . $information_propertys_groups_id . "[0]= new Array(" . $items_list_value . ");\n";
			
						// Заполняем для групп
						for ($j = 0; $j < $mas_groups_count; $j++)
						{
							// Получаем список информационных элементов, принадлежащих данной информационной группе
							$result1 = $InformationSystem->GetInformationItemsFromGroup($mas_groups[$j]['information_groups_id'], $information_system_property_id);
			
							$count_items = mysql_num_rows($result1);
							$items_list = '';
							$items_list_value = '';
			
							for ($k = 0; $k < $count_items; $k++)
							{
								$row1 = mysql_fetch_assoc($result1);
			
								// Warning: Слэши необходимо добавлять для экранирования кавычек в параметрах
								$items_list .= '"' . addslashes($row1["information_items_name"]) . '"';
								$items_list_value .= '"' . addslashes($row1["information_items_id"]) . '"';
			
								if ($value == $row1["information_items_id"])
								{
									// Запоминаем текущий порядковый номер элемента
									$current_items_id = $k;
								}
			
								if ($k < ($DataBase->get_count_row()-1))
								{
									$items_list .= ',';
									$items_list_value .= ',';
								}
							}
			
							// j+1, т.к. для 0-го заполняется отдельно
							$html.= "ItemsList" . $information_propertys_groups_id . "[" . ($j+1) . "]= new Array(" . $items_list . ");\n";
			
							// j+1, т.к. для 0-го заполняется отдельно
							$html.= "ItemsListValue" . $information_propertys_groups_id . "[" . ($j+1) . "]= new Array(" . $items_list_value . ");\n";
						}
			
						$html.='function FillDocuments' . $information_propertys_groups_id . '(index)
									{
										var CurrentOptionList' . $information_propertys_groups_id . ' = ItemsList' . $information_propertys_groups_id . '[index];
										var CurrentOptionListValue' . $information_propertys_groups_id . ' = ItemsListValue' . $information_propertys_groups_id . '[index];
										var CurrentValuesCount' . $information_propertys_groups_id . ' = CurrentOptionList' . $information_propertys_groups_id . '.length;
										var ItemsListItems' . $information_propertys_groups_id.' = document.forms["EditAddInformationGroup"].elements["property'.$information_propertys_groups_id.'"];
									
										ItemsListItems' . $information_propertys_groups_id . '.length = 0;
										for (i = 0; i < CurrentValuesCount' . $information_propertys_groups_id . '; i++)
										{
											if (document.createElement){
												var ItemsOption' . $information_propertys_groups_id . ' = document.createElement("OPTION");
												ItemsOption' . $information_propertys_groups_id . '.text = CurrentOptionList' . $information_propertys_groups_id . '[i];
												ItemsOption' . $information_propertys_groups_id . '.value = CurrentOptionListValue' . $information_propertys_groups_id . '[i];
												(ItemsListItems' . $information_propertys_groups_id . '.options.add) ? ItemsListItems' . $information_propertys_groups_id . '.options.add(ItemsOption' . $information_propertys_groups_id . ') : ItemsListItems' . $information_propertys_groups_id . '.add(ItemsOption' . $information_propertys_groups_id . ', null);
											}
											else
											{
												ItemsListItems'.$information_propertys_groups_id.'.options[i] = new Option(CurrentOptionList'.$information_propertys_groups_id.'[i], CurrentOptionList'.$information_propertys_groups_id.'[i], false, false);
											}
										}
									}';
			
						// Выбираем тот подсписок, которорый есть для данной директории
						$html.='FillDocuments' . $information_propertys_groups_id . '(document.forms["EditAddInformationGroup"].elements["information_groups_id' . $information_propertys_groups_id . '"].selectedIndex);';
			
						// Если есть элемент
						if ($current_items_id != -1)
						{
							// Выбираем элемент
							$html .= 'document.forms["EditAddInformationGroup"].elements["property' . $information_propertys_groups_id . '"].options[' . $current_items_id . '].selected=1;';
						}
						$html .= '</script>';
			
						break;
					}
			
					case 7: // Флажок
					{
						$param = array();
			
						$param['tab_id'] = $tab2_id;
						$param['name'] = 'property' . $information_propertys_groups_id;
						$param['caption'] = $row['information_propertys_groups_name'];
						$param['type'] = 1; // Поле ввода.
						$param['html_id'] = 'id_define_checked_value';
			
						// Возникала ошибка при добавлении/редактировании информационной группы
						// присваиваем веденное ранее значение
						if (isset($error_information_group))
						{
							if (isset($_REQUEST['property' . $information_propertys_groups_id]) )
							{
								$value = 1;
							}
							else
							{
								$value = 0;
							}
						}
						else // Первоначальное отображение формы или не было ошибок при добавлении
						{
							// Добавление информационной группы
							if ($information_group_id == 0)
							{
								// Присваиваем значение по умолчанию
								$value = $row['information_propertys_groups_default_value'];
							}
							else // Редактирование информационной группы
							{
								if ($row['information_propertys_groups_value_value'] != '')
								{
									$value = $row['information_propertys_groups_value_value'];
								}
								else
								{
									$value = $row['information_propertys_groups_default_value'];
								}
							}
						}
			
						$param['value'] = $value;
						$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
			
						$admin_forms_fields->AddField($param);
						break;
					}
			
					case 8: // Дата
					{
						$param = array();
			
						$param['tab_id'] = $tab2_id;
						$param['name'] = 'property' . $information_propertys_groups_id;
						$param['caption'] = $row['information_propertys_groups_name'];
						$param['type'] = 10; // Поле ввода.
			
						// Возникала ошибка при добавлении/редактировании информационной группы
						// присваиваем веденное ранее значение
						if (isset($_REQUEST['property' . $information_propertys_groups_id]))
						{
							$value = to_str($_REQUEST['property' . $information_propertys_groups_id]);
						}
						else
						{
							// Добавление информационной группы
							if ($information_group_id == 0)
							{
								// Присваиваем значение по умолчанию
								$value = $row['information_propertys_groups_default_value'];
							}
							else // Редактирование информационной группы
							{
								// Для дополнительного свойства задано значение
								if ($row['information_propertys_groups_value_value'] != '')
								{
									$value = $row['information_propertys_groups_value_value'];
								}
								// Для дополнительного свойства задано не значение - присваиваем значение по умолчанию
								else
								{
									$value = $row['information_propertys_groups_default_value'];
								}
							}
						}
			
						$param['value'] = $value;
						$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
						
						$param['attributes'] = array();
						$param['attributes']['size'] = 22;
			
						$admin_forms_fields->AddField($param);
			
						break;
					}
					case 9: // Дата-время
					{
						$param = array();
			
						$param['tab_id'] = $tab2_id;
						$param['name'] = 'property' . $information_propertys_groups_id;
						$param['caption'] = $row['information_propertys_groups_name'];
						$param['type'] = 11; // Поле ввода.
			
						// Возникала ошибка при добавлении/редактировании информационной группы
						// присваиваем веденное ранее значение
						if (isset($_REQUEST['property' . $information_propertys_groups_id]))
						{
							$value = to_str($_REQUEST['property' . $information_propertys_groups_id]);
						}
						else
						{
							// Добавление информационной группы
							if ($information_group_id == 0)
							{
								// Присваиваем значение по умолчанию
								$value = $row['information_propertys_groups_default_value'];
							}
							else // Редактирование информационной группы
							{
								// Для дополнительного свойства задано значение
								if ($row['information_propertys_groups_value_value'] != '')
								{
									$value = $row['information_propertys_groups_value_value'];
								}
								// Для дополнительного свойства задано не значение - присваиваем значение по умолчанию
								else
								{
									$value = $row['information_propertys_groups_default_value'];
								}
							}
						}
			
						$param['value'] = $value;
						$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
						
						$param['attributes'] = array();
						$param['attributes']['size'] = 22;
			
						$admin_forms_fields->AddField($param);
						break;
					}
					default:
						{
							$param = array();
			
							$param['tab_id'] = $tab2_id;
							$param['name'] = 'property' . $information_propertys_groups_id;
							$param['caption'] = $row['information_propertys_groups_name'];
							$param['type'] = 0; // Поле ввода.
			
							// Возникала ошибка при добавлении/редактировании информационной группы
							// присваиваем веденное ранее значение
							if (isset($_REQUEST['property' . $information_propertys_groups_id]))
							{
								$value = to_str($_REQUEST['property' . $information_propertys_groups_id]);
							}
							else
							{
								// Добавление информационной группы
								if ($information_group_id == 0)
								{
									// Присваиваем значение по умолчанию
									$value = $row['information_propertys_groups_default_value'];
								}
								else // Редактирование информационной группы
								{
									// Для дополнительного свойства задано значение
									if ($row['information_propertys_groups_value_value'] != '')
									{
										$value = $row['information_propertys_groups_value_value'];
									}
									// Для дополнительного свойства задано не значение - присваиваем значение по умолчанию
									else
									{
										$value = $row['information_propertys_groups_default_value'];
									}
								}
							}
			
							$param['value'] = $value;
							$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
			
							$admin_forms_fields->AddField($param);
						}
				}
			}
		}
	}	
	//while($result_propertys_groups && $row_propertys_groups = mysql_fetch_array($result_propertys_groups));
	
	$admin_forms_fields->SetExternalHtml($html);
}


// Модуль "Социальные сети" загружен
if (class_exists('Sns'))
{
	// Определяем связана ли с информационной системой, к которой принадлежит группа, социальная сеть
	$Sns = & singleton('Sns');

	$sns_row = $Sns->GetSnsAssociatedInformationSystem($information_system_id);

	if ($sns_row)
	{
		// Для социальной сети, с которой связана информационная система, получаем список типов социальной сети
		$mas_sns_types = $Sns->GetSnsTypes($sns_row['sns_id']);

		// Социальная сеть
		$tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_information_systems']['information_items_form_tab_5']);

		$param = array();
		$param['tab_id'] = $tab_id;
		$param['caption'] = $GLOBALS['MSG_sns']['sns_action_add_form_sns_type'];
		$param['name'] = 'sns_type_id';
		$param['type'] = 2; // Выпадающий список
		$param['value'] = $information_group_sns_type;

		$param['attributes'] = array();

		$param['items'] = array();

		foreach ($mas_sns_types as $row_sns_types)
		{
			$param['items'][$row_sns_types['sns_type_id']] = $row_sns_types['sns_type_name'] . " [{$row_sns_types['sns_type_id']}]";
		}

		$admin_forms_fields->AddField($param);
		$admin_forms_fields->AddSeparator($tab_id);
	}
}

// Добавляем скрытое поле с идентификатором группы(раздела) информационных систем
$param = array ();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_systems_dir_parent_id';
$param['type'] = 4; // Скрытое поле.
$param['value'] = $information_systems_dir_parent_id;
$admin_forms_fields->AddField($param);

// Кнопка "Сохранить".
$param = array();
$param['name'] = 'save_information_group';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_save_form_button_name'];
$param['image'] = '/admin/images/add.gif';
$param['attributes']['onclick'] = "return SendForm('{$admin_forms_fields->GetWindowId()}', '{$admin_forms_fields->AAction}', '{$admin_forms_fields->AAdditionalParams}', this, ".to_int($_REQUEST['admin_forms_id']).", 'load_data', " . to_int($admin_forms_fields->form_params['current_page']) . ", " . to_int($admin_forms_fields->form_params['on_page']) . " )";
$param['attributes']['type'] = 'button';
$admin_forms_fields->AddButton($param);

// Кнопка "Применить".
$param = array();
$param['name'] = 'add_information_group';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_groups_add_form_button_name'];
$param['image'] = '/admin/images/add.gif';
$param['attributes']['onclick'] = "return SendForm('{$admin_forms_fields->GetWindowId()}', '{$admin_forms_fields->AAction}', '{$admin_forms_fields->AAdditionalParams}', this, ".to_int($_REQUEST['admin_forms_id']).", 'load_data', " . to_int($admin_forms_fields->form_params['current_page']) . ", " . to_int($admin_forms_fields->form_params['on_page']) . " )";
$param['attributes']['type'] = 'submit';
$admin_forms_fields->AddButton($param);

// Отображение формы.
$admin_forms_fields->ShowForm();
?>
 