<?php
/**
 * Система управления сайтом HostCMS v. 5.xx
 * Copyright © 2005-2010 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 *
 * Форма добавления/редактирования узлов структуры.
 *
 * Файл: /admin/structure/action/add_edit_form.php
 *
 * @author Hostmake LLC
 * @version 5.x
 */
if (!isset($structure_id))
{
	$structure_id = to_int($_REQUEST['structure_id']);
}

$File = & singleton('File');
$documents = & singleton('documents');
$DataBase = & singleton('DataBase');
$structure = & singleton('Structure');
$kernel = & singleton('kernel');
$lib = & singleton('lib');
$menu = & singleton('menu');
$template = & singleton('templates');

$html = '';

$admin_forms_fields = new admin_forms_fields();

// Идентификатор текущего родительского узла
$current_structure_parent_id = to_int($_REQUEST['structure_parent_id']);

$form_params = array();
$form_params['title'] = $structure_id == 0 ? $GLOBALS['MSG_structure']['structure_add_form_title'] : $GLOBALS['MSG_structure']['structure_edit_form_title'];
$form_params['form_attribs']['method'] = 'post';
$form_params['form_attribs']['action'] = '/admin/structure/structure.php';
$form_params['form_attribs']['ENCTYPE'] = 'multipart/form-data';
$form_params['form_attribs']['name'] = 'EditAddNode';

$path_array = $structure->GetStructurePathArray($current_structure_parent_id, false);

// Преобразуем идентификаторы групп в ссылки на группы.
$new_path_array = array();

$new_path_array[0]['name'] = $GLOBALS['MSG_structure']['parent_dir'];
$new_path_array[0]['link'] = $admin_forms_fields->GetHtmlCallDoLoadAjax('/admin/structure/structure.php', "&action=show&structure_parent_id=0", 82, 'load_data');
$new_path_array[0]['onclick'] = $admin_forms_fields->GetOnClickCallDoLoadAjax('/admin/structure/structure.php', "&action=show&structure_parent_id=0", 82, 'load_data');

//$addon_path[0] = '';

if ($path_array)
{
	foreach ($path_array as $keys => $values)
	{
		foreach ($values as $key => $value)
		{
			if (!is_numeric($key))
			{
				//$addon_path[] = $value;
			}
			else
			{
				$new_path_array[] = array (
				'link' => $admin_forms_fields->GetHtmlCallDoLoadAjax('/admin/structure/structure.php', "&action=show&structure_parent_id={$key}", 82, 'load_data', 0, 0, 0, 0),
				'onclick' => $admin_forms_fields->GetOnClickCallDoLoadAjax('/admin/structure/structure.php', "&action=show&structure_parent_id={$key}", 82, 'load_data', 0, 0, 0, 0),
				'name' => $value);
			}
		}
	}
}

$form_params['path_array']  = $new_path_array;

$admin_forms_fields->admin_forms_fields($form_params);

// Редактировние узла стуктуры
if ($structure_id)
{
	$res = $structure->GetStructureItem($structure_id, array('cache_off' => true));
	$menu_id = to_int($res['menu_id']);
	$templates_id = to_int($res['templates_id']);
	$data_templates_id = to_int($res['data_templates_id']);
	$site_id = to_int($res['site_id']);
	$documents_id = to_int($res['documents_id']);
	$lib_id = to_int($res['lib_id']);
	$structure_parent_id = to_int($res['structure_parent_id']);
	$structure_show = to_int($res['structure_show']);
	$structure_menu_name = to_str($res['structure_menu_name']);
	$structure_title = to_str($res['structure_title']);
	$structure_description = to_str($res['structure_description']);
	$structure_keywords = to_str($res['structure_keywords']);
	$structure_external_link = to_str($res['structure_external_link']);
	$structure_order = to_int($res['structure_order']);
	$structure_path_name = to_str($res['structure_path_name']);
	$structure_type = to_int($res['structure_type']);
	$structure_access = to_int($res['structure_access']);
	$structure_access_protocol = intval($res['structure_access_protocol']);
	$structure_activity = to_int($res['structure_activity']);
	$structure_allow_indexation = to_int($res['structure_allow_indexation']);
	$users_id = to_int($res['users_id']);
	$structure_change_frequency = to_int($res['structure_change_frequency']);
	$structure_priority = to_float($res['structure_priority']);
}
else
{
	$menu_id = 0;
	$templates_id = 0;
	$data_templates_id = 0;
	$site_id = CURRENT_SITE;
	$documents_id = 0;
	$lib_id = 0;
	$structure_parent_id = $current_structure_parent_id;
	$structure_show = 1;
	$structure_menu_name = '';
	$structure_title = '';
	$structure_description = '';
	$structure_keywords = '';
	$structure_external_link = '';
	$structure_order = 0;
	$structure_path_name = '';
	$structure_type = 0;
	$structure_access = 0;
	$structure_access_protocol = 0;
	$structure_activity = 1;
	$structure_allow_indexation = 1;
	$users_id = false;
	$structure_change_frequency = 0;
	$structure_priority = 0.5;
}

$lib_dir_id = 0;

// Получаем идентификатор раздела, к которому принадлежит типовая динамическая страница
if ($lib_id)
{
	$lib_row = $lib->GetLib($lib_id);

	if ($lib_row)
	{
		$lib_dir_id = to_int($lib_row['lib_dir_id']);
	}
}

$admin_forms = new admin_forms();
$window_id = $admin_forms->GetWindowId();

$html = "<script language=\"JavaScript\">
SetViewStructure('{$window_id}', {$structure_type}, {$structure_id}, {$lib_dir_id}, {$lib_id});
</script>";

// Параметры.
$tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_menu']['menu_tab_main_params']);

// Название страницы [В меню]
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'structure_menu_name';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_menu_name'];
$params['type'] = 0; // Поле ввода.
$params['value'] = $structure_menu_name;
$params['attributes']['class'] = 'large';
$params['format']['minlen']['value'] = 1;
$params['format']['maxlen']['value'] = 255;
$admin_forms_fields->AddField($params);

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

// Заполняем список поля "Родительский раздел"
$arr = array();
$arr[0] = ' ... ';

$result_structure = $structure->GetStructure("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $site_id, 0, -1, 0, $structure_id);

if (count($result_structure)>0)
{
	foreach ($result_structure as $key => $value)
	{
		$arr[$value['structure_id']] = $value['name_with_separator'];
	}
}

// Список узлов структуры
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'insert_structure_parent_id';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_parent_dir'];
$params['type'] = 2; // Выпадающий список.
$params['items']  = $arr;
$params['value'] = $structure_parent_id;
$params['attributes']['style'] = 'width: 320px;';
$params['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($params);

// Заполняем список значений поля "Раздел меню"
$arr = array();

$menu_rows = $menu->GetAllMenu(CURRENT_SITE);

$count = mysql_num_rows($menu_rows);

while ($row = mysql_fetch_assoc($menu_rows))
{
	$arr[$row['menu_id']] = $row['menu_name'];
}

// Список разделов меню
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'menu_id';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_menu'];
$params['type'] = 2; // Выпадающий список.
$params['items']  = $arr;
$params['value'] = $menu_id;
$params['attributes']['style'] = 'width: 320px;';
$params['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($params);

// Отображать в меню сайта
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'structure_show';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_show'];
$params['type'] = 1; // Флажок.
$params['value'] = $structure_show;
$params['div_attributes']['style'] = 'float: left; margin-top: 20px;';
$admin_forms_fields->AddField($params);

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

// Заполняем значения поля "Шаблон страницы"
$arr = array();

$template = new templates();
$arr = $template->GetDataTemplatesTree(0);

// Шаблон страницы
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'data_templates_id';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_template'];
$params['type'] = 2; // Выпадающий список.
$params['items']  = $arr;
$params['value'] = $data_templates_id;
$params['attributes']['style'] = 'width: 320px;';
$params['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($params);

// Активность страницы
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'structure_activity';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_activity'];
$params['type'] = 1; // Флажок.
$params['value'] = $structure_activity;
$params['div_attributes']['style'] = 'float: left; margin-top: 20px;';
$admin_forms_fields->AddField($params);

// Индексировать страницу
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'structure_allow_indexation';
$params['caption'] = $GLOBALS['MSG_structure']["structure_add_form_indexation"];
$params['type'] = 1; // Флажок.
$params['value'] = $structure_allow_indexation;
$params['div_attributes']['style'] = 'float: left; margin-top: 20px;';
$admin_forms_fields->AddField($params);

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

// Название раздела (только латинские буквы и цифры)
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'structure_path_name';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_name'];
$params['type'] = 0; // Поле ввода.
$params['value'] = $structure_path_name;
$params['format']['lib']['value'] = 'path';
$params['format']['lib']['message'] = $GLOBALS['MSG_menu']['show_invalid_characters_path'];
$params['format']['maxlen']['value'] = 255;
$params['attributes']['style'] = 'font-weight: bold; width: 310px;';
$params['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($params);

$items_groups_access = array();

// Все
$items_groups_access[0] = $GLOBALS['MSG_structure']['structure_access_all'];

// Как у родителя
$items_groups_access[-1] = $GLOBALS['MSG_structure']['structure_access_as_parent'];

// Заполняем значения поля "Группа доступа"
if (class_exists('SiteUsers'))
{
	$site_users = & singleton('SiteUsers');
	$result = $site_users->SelectSiteUsersGroups();

	$count_access_group = mysql_num_rows($result);

	for ($i = 0; $i < $count_access_group; $i++)
	{
		$row = mysql_fetch_assoc($result);
		$items_groups_access[$row["site_users_group_id"]] = $row["site_users_group_name"];
	}
}

$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'structure_access';
$params['html_id'] = 'structure_access';
$params['caption'] = $GLOBALS['MSG_structure']['structure_access'];
$params['type'] = 2; // Выпадающий список.
$params['items'] = $items_groups_access;
$params['value'] = $structure_access;
$params['attributes']['style'] = 'width: 110px;';
$params['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($params);

// Сортировка для текущего уровня
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'structure_order';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_order'];
$params['type'] = 0; // Поле ввода.
$params['value'] = $structure_order;
$params['format']['maxlen']['value'] = 11;
$params['attributes']['style'] = 'width: 200px;';
$params['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($params);

$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'structure_access_protocol';
$params['html_id'] = 'structure_access_protocol';
$params['caption'] = $GLOBALS['MSG_structure']['structure_access_protocol'];
$params['type'] = 2; // Выпадающий список.
$params['items'] = array(
'0' => 'HTTP',
'1' => 'HTTPS');
$params['value'] = $structure_access_protocol;
$params['attributes']['style'] = 'width: 110px;';
$params['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($params);

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

// поле "как есть", открытие div-а
/*$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = '';
$param['caption'] = '';
$param['type'] = 15; // как есть
$param['value'] = '<div style="border: 1px solid #000">';
$admin_forms_fields->AddField($param);*/

// Тип раздела
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'structure_type';
$params['id'] = 'structure_type_'.$window_id;
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_type'];
$params['type'] = 13; // Радиогруппа.
$params['separator'] = '';
$params['options']['count'] = 3;
$params['options']['labels'] = array(
	0 => $GLOBALS['MSG_structure']['structure_add_form_type_static_page'],
	1 => $GLOBALS['MSG_structure']['structure_add_form_type_typical_dynamic_page'],
	2 => $GLOBALS['MSG_structure']['structure_add_form_type_dynamic_page']);
$params['options']['ext_name'] = array(0 => 0, 1 => 2, 2 => 1);
$params['options']['onclick'] = "SetViewStructure('{$window_id}', %ext_name%, {$structure_id}, {$lib_dir_id}, {$lib_id})";
$params['value'] = $structure_type;
$params['attributes']['style'] = 'font-weight: bold';
$admin_forms_fields->AddField($params);

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

// Список макетов
$params = array();
$params['tab_id'] = $tab_id;
$params['div_id'] = 'templates_id';
$params['name'] = 'templates_id';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_templates'];
$params['type'] = 2; // Выпадающий список.

// Получаем массив с данными о всех макетах
$template_items = $template->GetTemplatesTree(0);

$params['items']  = $template_items;
$params['value'] = $templates_id;
$params['div_attributes']['style'] = 'width: 500px';
$admin_forms_fields->AddField($params);

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

// Текст динамической страницы
$params = array();
$params['tab_id'] = $tab_id;
$params['div_id'] = 'module_id';
$params['name'] = 'module';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_module'];
$params['type'] = 5; // textarea
$params['attributes'] = array();
$params['attributes']['rows'] = 20;
$params['attributes']['style'] = 'height: 400px; width: 100%';
$params['attributes']['class'] = 'codepress php';

// Получаем код динамической страницы из файла
$file_name = $structure->GetStructureFilesPath() . "/Structure{$structure_id}.php";

if (is_file($file_name))
{
	$module = $File->GetFileContent($file_name);
}
else
{
	$module = '';
}

$params['value'] = $module;
$admin_forms_fields->AddField($params);

$admin_forms_fields->AddSeparator($tab_id);

// Настройки динамической страницы
$params = array();
$params['tab_id'] = $tab_id;
$params['div_id'] = 'module_config_id';
$params['name'] = 'module_config';
$params['caption'] = $GLOBALS['MSG_structure']["structure_add_form_module_config"];
$params['type'] = 5; // textarea
$params['attributes'] = array();
$params['attributes']['rows'] = 20;
$params['attributes']['style'] = 'height: 400px; width: 100%';
$params['attributes']['class'] = 'codepress php';

// Получаем настройки динамической страницы
$file_name = $structure->GetStructureFilesPath() . "/StructureConfig{$structure_id}.php";

if (is_file($file_name))
{
	$module_config = $File->GetFileContent($file_name);
}
else
{
	$module_config = '';
}

$params['value'] = $module_config;
$admin_forms_fields->AddField($params);

$admin_forms_fields->AddSeparator($tab_id);

// CodePress для textarea
$admin_forms_fields->AddExternalHtml('<script type="text/javascript">CodePressAction("load");</script>');

// Поля, относящиеся к узлам структуры типа "Страница"

// Разделы документов
$param = array();
$param['tab_id'] = $tab_id;
$param['div_id'] = 'documents_dir_list_id';
$param['name'] = 'documents_dir';
$param['html_id'] = 'documents_dir';
$param['caption'] = $GLOBALS['MSG_structure']['structure_add_form_document_dir'];
$param['type'] = 2; // Выпадающий список.
$param['attributes']['onchange'] = "FillDocumentsStructure(this.selectedIndex); ChangeDocumentImageLink(document.forms['EditAddNode'].elements['documents_id'].value)";
$param['div_attributes']['style'] = 'width: 500px';
// Добавление узла структуры
if ($structure_id == 0)
{
	// Присваиваем значение по умолчанию
	$value = 0;
}
else // Редактирование узла структуры
{
	if ($documents_id)
	{
		// Получаем данные о разделе документов для данного документа
		$document_row = $documents->GetDocument($documents_id);

		$value = $document_row['documents_dir_id'];
	}
	else // Для узла структуры не задан документ
	{
		$value = 0;
	}
}

$param['value'] = $value;

$items = array();
$mas_groups = array();
$groups = '0';
$documents->separator = '&nbsp;&nbsp;&nbsp;';
$mas_groups = $documents->get_documents_dir(0, "&nbsp;&nbsp;&nbsp;");
$mas_groups_count = count($mas_groups);

$items[0] = '..';

for ($j = 0; $j < $mas_groups_count; $j++)
{
	$items[$mas_groups[$j]['documents_dir_id']] = $mas_groups[$j]['documents_dir_with_separator'];
	$groups .= "," . ($j+1);
}

$param['items'] = $items;

$admin_forms_fields->AddField($param);

// Список документов
$param = array();
$param['tab_id'] = $tab_id;
$param['div_id'] = 'documents_list_id';
$param['name'] = 'documents_id';
$param['caption'] = $GLOBALS['MSG_structure']['structure_add_form_document_document_for_dir'];
$param['type'] = 2; // Выпадающий список.
$param['value'] = $documents_id;
$param['div_attributes']['style'] = '';
$param['attributes']['style'] = 'margin-right: 10px; float: left; width: 500px';
$param['attributes']['onchange'] = "ChangeDocumentImageLink(this.value)";

$items = array();
$items[0] = 'None';
$param['items'] = $items;
$admin_forms_fields->AddField($param);

$html .= '<script type="text/javascript">' . "\n" .
'var ItemsListDocuments = new Array(' . $groups . ');' . "\n";

$html .= 'var ItemsListValueDocuments = new Array(' . $groups.');' . "\n";

// Заполняем для корня
$items_list = '".."';
$items_list_value = '"0"';
$current_items_id = -1;

// Выводим элементы
$result1 = $documents->GetDocumentsFromDir(0);

$documents_count = mysql_num_rows($result1);

for ($k = 0; $k < $documents_count; $k++)
{
	$row1 = mysql_fetch_assoc($result1);

	if ($documents_id == $row1['documents_id'])
	{
		$current_items_id = $k+1; // +1, т.к. нулевой = "..". Запоминаем текущий порядковый номер элемента
	}

	// Warning: Слэши необходимо добавлять для экранирвоания кавычек в параметрах
	$items_list .= ',"' . addslashes(str_replace(array("\r", "\n"), '', $row1["documents_name"])) . '"';
	$items_list_value .= ',"' . addslashes($row1["documents_id"]) . '"';
}

// 0 - т.к. заполняем для корня
$html.= "ItemsListDocuments[0]= new Array(" . $items_list . ");\n";

// 0 - т.к. заполняем для корня
$html .= "ItemsListValueDocuments[0]= new Array(" . $items_list_value . ");\n";

// Заполняем для групп
for ($j = 0; $j < $mas_groups_count; $j++)
{
	// Получаем список документов по каждому разделу
	$result1 = $documents->GetDocumentsFromDir($mas_groups[$j]['documents_dir_id']);

	$count_documents = mysql_num_rows($result1);

	$items_list = '';
	$items_list_value = '';

	for ($k = 0; $k < $count_documents; $k++)
	{
		$row1 = mysql_fetch_assoc($result1);

		// Warning: Слэши необходимо добавлять для экранирования кавычек в параметрах
		$items_list .= '"' . addslashes(str_replace(array("\r", "\n"), '', $row1["documents_name"])) . '"';
		$items_list_value .= '"' . addslashes($row1["documents_id"]) . '"';


		if ($documents_id == $row1["documents_id"])
		{
			// Запоминаем текущий порядковый номер элемента
			$current_items_id = $k;
		}

		if ($k < ($count_documents-1))
		{
			$items_list .= ',';
			$items_list_value .= ',';
		}
	}

	// j+1, т.к. для 0-го заполняется отдельно
	$html.= "ItemsListDocuments[" . ($j+1) . "]= new Array(" . $items_list . ");\n";

	// j+1, т.к. для 0-го заполняется отдельно
	$html.= "ItemsListValueDocuments[" . ($j+1) . "]= new Array(" . $items_list_value . ");\n";
}

$html .= 'function FillDocumentsStructure(index)
{
	var CurrentOptionListDocuments = ItemsListDocuments[index];
	var CurrentOptionListValueDocuments = ItemsListValueDocuments[index];
	var CurrentValuesCountDocuments = CurrentOptionListDocuments.length;
	var ItemsListItemsDocuments = document.forms["EditAddNode"].elements["documents_id"];

	ItemsListItemsDocuments.length = 0;
	for (i = 0; i < CurrentValuesCountDocuments; i++)
	{
		if (document.createElement){
			var ItemsOptionDocuments = document.createElement("OPTION");
			ItemsOptionDocuments.text = CurrentOptionListDocuments[i];
			ItemsOptionDocuments.value = CurrentOptionListValueDocuments[i];
			(ItemsListItemsDocuments.options.add) ? ItemsListItemsDocuments.options.add(ItemsOptionDocuments) : ItemsListItemsDocuments.add(ItemsOptionDocuments, null);
		}
		else
		{
			ItemsListItemsDocuments.options[i] = new Option(CurrentOptionListDocuments[i], CurrentOptionListDocuments[i], false, false);
		}
	}

	ChangeDocumentImageLink(CurrentOptionListValueDocuments[0]);
}

function ChangeDocumentImageLink(document_id)
{
  	if (document_id > 0)
	{
		link_path = "/admin/documents/documents.php?admin_forms_id=9&operation=edit_document&check_1_" + document_id+ "=1";
 		document.getElementById(\'document_link_image_id\').setAttribute(\'href\', link_path);
 		//document.getElementById(\'documents_list_image_id\').style.display = "";
 	}
 	else
 	{
 		document.getElementById(\'document_link_image_id\').setAttribute(\'href\', \'javascript:void(0)\');
 		//document.getElementById(\'documents_list_image_id\').style.display = "none";
 	}
}
';

$html .= 'FillDocumentsStructure(document.forms["EditAddNode"].elements["documents_dir"].selectedIndex);';

// Если есть элемент
if ($current_items_id != -1)
{
	// Выбираем элемент
	$html .= 'document.forms["EditAddNode"].elements["documents_id"].options[' . $current_items_id . '].selected=1;';
}

if ($documents_id > 0/* && $structure_type == 0*/)
{
	$html .= 'ChangeDocumentImageLink('.$documents_id.');';
}

$html .= '</script>';

//Изображение со ссылкой
$params = array();
$params['tab_id'] = $tab_id;
$params['div_id'] = 'documents_list_image_id';
$params['name'] = 'document_link_image';
$params['caption'] = '';
$params['type'] = 15;

if ($documents_id > 0 && $structure_type == 0)
{
	$params['div_attributes']['style'] = 'display: block;';
	$link_path = "/admin/documents/documents.php?admin_forms_id=9&operation=edit_document&check_1_$documents_id=1";
}
else
{
	$params['div_attributes']['style'] = 'display: none;';
	$link_path = "javascript:void(0)";
}

$params['value'] = '<a id="document_link_image_id" href="' . $link_path . '" target="_blank"><img src="/admin/images/edit.gif" /></a>';
$admin_forms_fields->AddField($params);

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

// Внешняя ссылка
$params = array();
$params['tab_id'] = $tab_id;
$params['div_id'] = 'structure_external_link_id';
$params['name'] = 'structure_external_link';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_external_link'];
$params['type'] = 0; // Поле ввода.
$params['value'] = $structure_external_link;
$params['format']['maxlen']['value'] = 255;
$params['div_attributes']['style'] = 'width: 500px';
$admin_forms_fields->AddField($params);

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

// Заполняем поля элемента "Типовая динамическая страница (Раздел)"
$arr = array();

$arr[0] = ' ... ';

$row = $lib->GetLibDirTree(0, "&nbsp;&nbsp;");

$count = count($row);

for ($i = 0; $i < $count; $i++)
{
	$arr[$row[$i][0]] = $row[$i][1];
}

// Разделы типовых динамических страниц
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'lib_dir_id';
$params['div_id'] = 'lib_dir_id';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_lib_dir'];
$params['type'] = 2; // Выпадающий список.
$params['items']  = $arr;
$params['value'] = 0;
$params['value'] = $lib_dir_id;
$params['attributes']['onchange'] = 'DoLoadLibs(this.options[this.selectedIndex].value, 0)';
$params['div_attributes']['style'] = 'width: 500px';
$admin_forms_fields->AddField($params);

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

// Список типовых динамических страниц
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'lib_id';
$params['div_id'] = 'lib_id';
$params['html_id'] = 'id_lib_id';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_lib_page'];
$params['type'] = 8; // Текст.
$params['value'] = '';
$admin_forms_fields->AddField($params);

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

// Параметры типовой динамической страницы
$params = array();
$params['tab_id'] = $tab_id;
$params['name'] = 'lib_properties';
$params['div_id'] = 'lib_properties';
$params['html_id'] = 'lib_properties';
$params['caption'] = $GLOBALS['MSG_structure']["structure_add_form_lib_properties"];
$params['type'] = 8; // Текст.
$params['value'] = '';
$admin_forms_fields->AddField($params);

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

// поле "как есть", открытие div-а
/*$param = array();
$param['tab_id'] = $tab_id;
$param['name'] = '';
$param['caption'] = '';
$param['type'] = 15; // как есть
$param['value'] = '</div>';
$admin_forms_fields->AddField($param);*/

$tab2_id = $admin_forms_fields->AddTab($GLOBALS['MSG_menu']['menu_tab_seo_params']);

// Заголовок страницы [Title]
$params = array();
$params['tab_id'] = $tab2_id;
$params['name'] = 'structure_title';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_struc_title'];
$params['type'] = 0; // Поле ввода.
$params['value'] = $structure_title;
$admin_forms_fields->AddField($params);

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

// Описание страницы [Description]
$params = array();
$params['tab_id'] = $tab2_id;
$params['name'] = 'structure_description';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_description'];
$params['type'] = 0; // Поле ввода.
$params['value'] = $structure_description;
$admin_forms_fields->AddField($params);

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

// Ключевые слова [Keywords]
$params = array();
$params['tab_id'] = $tab2_id;
$params['name'] = 'structure_keywords';
$params['caption'] = $GLOBALS['MSG_structure']['structure_add_form_keywords'];
$params['type'] = 0; // Поле ввода.
$params['value'] = $structure_keywords;
$admin_forms_fields->AddField($params);

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

// Вкладка Google Sitemap
$tab4_id = $admin_forms_fields->AddTab($GLOBALS['MSG_menu']['menu_tab_google_sitemap']);

// Частота обновления страницы
$params = array();
$params['tab_id'] = $tab4_id;
$params['name'] = 'structure_change_frequency';
$params['caption'] = $GLOBALS['MSG_structure']['google_sitemaps_refrashrate'];
$params['type'] = 2; // Выпадающий список
$params['items'] =
array(
0 => $GLOBALS['MSG_structure']['google_sitemaps_refrashrate_always'],
1 => $GLOBALS['MSG_structure']['google_sitemaps_refrashrate_hourly'],
2 => $GLOBALS['MSG_structure']['google_sitemaps_refrashrate_daily'],
3 => $GLOBALS['MSG_structure']['google_sitemaps_refrashrate_weekly'],
4 => $GLOBALS['MSG_structure']['google_sitemaps_refrashrate_monthly'],
5 => $GLOBALS['MSG_structure']['google_sitemaps_refrashrate_yearly'],
6 => $GLOBALS['MSG_structure']['google_sitemaps_refrashrate_never']);
$params['value'] = $structure_change_frequency;
$admin_forms_fields->AddField($params);

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

// Приоритет страницы
$params = array();
$params['tab_id'] = $tab4_id;
$params['name'] = 'structure_priority';
$params['caption'] = $GLOBALS['MSG_structure']['google_sitemaps_priority'];
$params['type'] = 2; // Выпадающий список
$params['items'] =
array(
'0' => $GLOBALS['MSG_structure']['google_sitemaps_priority_small'],
'0.1' => $GLOBALS['MSG_structure']['google_sitemaps_priority_0_1'],
'0.2' => $GLOBALS['MSG_structure']['google_sitemaps_priority_0_2'],
'0.3' => $GLOBALS['MSG_structure']['google_sitemaps_priority_0_3'],
'0.4' => $GLOBALS['MSG_structure']['google_sitemaps_priority_0_4'],
'0.5' => $GLOBALS['MSG_structure']['google_sitemaps_priority_normal'],
'0.6' => $GLOBALS['MSG_structure']['google_sitemaps_priority_0_6'],
'0.7' => $GLOBALS['MSG_structure']['google_sitemaps_priority_0_7'],
'0.8' => $GLOBALS['MSG_structure']['google_sitemaps_priority_0_8'],
'0.9' => $GLOBALS['MSG_structure']['google_sitemaps_priority_0_9'],
'1' => $GLOBALS['MSG_structure']['google_sitemaps_priority_above_normal']);

$params['value'] = $structure_priority;
$admin_forms_fields->AddField($params);

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

// Получаем данные о дополнительных свойствах узлов структуры сайта
$query = "SELECT structure_propertys_table.*, structure_propertys_values_table.structure_id,
structure_propertys_values_table.structure_propertys_values_id,
structure_propertys_values_table.structure_propertys_values_value,
structure_propertys_values_table.structure_propertys_values_file,
structure_propertys_values_table.structure_propertys_values_value_small,
structure_propertys_values_table.structure_propertys_values_file_small
FROM structure_propertys_table LEFT JOIN  structure_propertys_values_table
 ON
 (
     structure_propertys_values_table.structure_propertys_id=structure_propertys_table.structure_propertys_id
     AND
      (
          (structure_propertys_values_table.structure_id='" . $structure_id . "')
          OR
          (structure_propertys_values_table.structure_id IS NULL)
     )
 ) WHERE
 structure_propertys_table.site_id='" . (int)CURRENT_SITE . "' ORDER BY structure_propertys_table.structure_propertys_order";

$DataBase->select($query);
$result = $DataBase->result;
$count = $DataBase->get_count_row();

if($count > 0)
{
	// Вкладка с дополнительными параметрами узла структуры
	$tab3_id = $admin_forms_fields->AddTab($GLOBALS['MSG_menu']['menu_tab_additional_params']);
	// Цикл по дополнительным свойствам узла структуры
	for ($i = 0; $i < $count; $i++)
	{
		$row = mysql_fetch_assoc($result);

		$structure_propertys_values_id = to_int($row['structure_propertys_id']);

		$param = array();
		$param['tab_id'] = $tab3_id;
		$param['caption'] = $row['structure_propertys_name'];
		$param['name'] = 'propertys' . $structure_propertys_values_id;

		// Определяем тип свойства
		switch ($row['structure_propertys_type'])
		{
			// Тип свойства - файл
			case 2:
				{
					$param['type'] = 9; // Поле загрузки файла.

					$param['value'] = '';

					$param['options'] = array();
					$param['options']['make_small_image_from_big_show'] = 1; // отображать ли checkbox с подписью "Создать малое изображение из большого" (1 -  отображать (по умолчанию), 0 - не отображать);
					$param['options']['make_small_image_from_big_checked'] = 1; // вид ображения checkbox'а с подписью "Создать малое изображение из большого" выбранным (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
					$param['options']['used_watermark_big_image_checked'] = 1; // вид ображения checkbox'а с подписью "Наложить водяной знак на большое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
					$param['options']['used_watermark_small_image_checked'] = 1; // вид ображения checkbox'а с подписью "Наложить водяной знак на малое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
					$param['options']['load_small_image_show'] = 1; // отображать ли поле загрузки малого изображения (1 -  отображать (по умолчанию), 0 - не отображать);
					if (defined('MAX_WIDTH_IMAGE_STRUCTURE'))
					{
						$param['options']['image_big_max_width'] = MAX_WIDTH_IMAGE_STRUCTURE;
					}
					else
					{
						$param['options']['image_big_max_width'] = 1000;
					}

					if (defined('MAX_HEIGHT_IMAGE_STRUCTURE'))
					{
						$param['options']['image_big_max_height'] = MAX_HEIGHT_IMAGE_STRUCTURE;
					}
					else
					{
						$param['options']['image_big_max_height'] = 1000;
					}

					if (defined('MAX_WIDTH_SMALL_IMAGE_STRUCTURE'))
					{
						$param['options']['image_small_max_width'] = MAX_WIDTH_SMALL_IMAGE_STRUCTURE;
					}
					else
					{
						$param['options']['image_small_max_width'] = 100;
					}

					if (defined('MAX_HEIGHT_SMALL_IMAGE_STRUCTURE'))
					{
						$param['options']['image_small_max_height'] = MAX_HEIGHT_SMALL_IMAGE_STRUCTURE;
					}
					else
					{
						$param['options']['image_small_max_height'] = 100;
					}

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

					$structure_dir = $structure->GetStructureItemDir($structure_id);

					// Задано значение - файл свойства для данного узла структуры
					if ($row['structure_propertys_values_file'] != '' )#свойство существует
					{
						$param['options']['big_image_path'] = '/' . $structure_dir . rawurlencode($row['structure_propertys_values_file']);
						// Ссылка для href
						$param['options']['href_delete_big_image'] = "javascript:void(0)";
						// Значение для onclick
						$param['options']['onclick_delete_big_image'] = "sendRequest('/admin/structure/structure.php?structure_property_id={$row['structure_propertys_id']}&delete_structure_property_big_image={$row['structure_propertys_values_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 ($row['structure_propertys_values_file_small'] != '' )#свойство существует
					{
						// Проверяем существует ли файл
						$param['options']['small_image_path'] = '/' . $structure_dir . rawurlencode($row['structure_propertys_values_file_small']);

						// Ссылка для href
						$param['options']['href_delete_small_image'] = "javascript:void(0)";
						// Значение для onclick
						$param['options']['onclick_delete_small_image'] = "sendRequest('/admin/structure/structure.php?structure_property_id={$row['structure_propertys_id']}&delete_structure_property_small_image={$row['structure_propertys_values_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);

					break;
				}
				// Тип свойства - список
			case 3:
				{
					if (class_exists('lists'))
					{
						$lists_id = $row['structure_propertys_lists_id'];

						$list = new lists();

						// Отображаем содержимое списка
						$result_list = $list->SelectListsItems($lists_id);

						$count_list_items = mysql_num_rows($result_list);

						$items = array();

						$items[0] = '..';

						for($j = 0; $j < $count_list_items; $j++)
						{
							$row1 = mysql_fetch_assoc($result_list);

							$items[$row1['lists_items_id']] = htmlspecialchars($row1['lists_items_value']);
						}

						// Возникала ошибка при добавлении/редактировании узла структуры,
						// присваиваем веденное ранее значение
						if (isset($_REQUEST['propertys' . $structure_propertys_values_id]))
						{
							$value = to_int($_REQUEST['propertys' . $structure_propertys_values_id]);
						}
						else
						{
							// Добавление узла структуры
							if ($structure_id == 0)
							{
								$value = 0;
							}
							else // Редактирование узла структуры
							{
								$value = to_int($row['structure_propertys_values_value']);
							}
						}
						$param['type'] = 2; // Выпадающий список.
						$param['items']  = $items;
						$param['value'] = $value;
						$admin_forms_fields->AddField($param);

						break;
					}
				}
				// Тип свойства - большое текстовое поле
			case 4:
				{
					$param['type'] = 5; // textarea
					$param['attributes'] = array();
					$param['attributes']['rows'] = 10;
					$param['attributes']['style'] = 'width: 100%;';

					// Возникала ошибка при добавлении/редактировании узла структуры
					// присваиваем веденное ранее значение
					if (isset($_REQUEST['propertys' . $structure_propertys_values_id]))
					{
						$value = to_str($_REQUEST['propertys' . $structure_propertys_values_id]);
					}
					else
					{
						// Добавление узла структуры
						if ($structure_id == 0)
						{
							// Присваиваем значение по умолчанию
							$value = $row['structure_propertys_define_value'];
						}
						else // Редактирование узла структуры
						{
							$value = to_str($row['structure_propertys_values_value']);
						}
					}

					$param['value'] = $value;
					$admin_forms_fields->AddSeparator($tab3_id);
					$admin_forms_fields->AddField($param);

					break;
				}

				// Тип свойства - информационная система
			case 5:
				{
					if (class_exists('InformationSystem'))
					{
						$InformationSystem = & singleton('InformationSystem');
						$param = array();
						$param['tab_id'] = $tab3_id;
						$param['div_id'] = 'list_id';
						$param['name'] = 'information_groups_id' . $structure_propertys_values_id;
						$param['caption'] = $row['structure_propertys_name'] . ' - ' . $GLOBALS['MSG_structure']['informational_group'];
						$param['div_id'] = 'list_id';
						$param['type'] = 2; // Выпадающий список.
						$param['attributes']['onchange'] = "FillDocuments$structure_propertys_values_id(this.selectedIndex)";

						// Возникала ошибка при добавлении/редактировании узла структуры
						// присваиваем веденное ранее значение
						if (isset($_REQUEST['propertys' . $structure_propertys_values_id]))
						{
							$value = to_int($_REQUEST['propertys' . $structure_propertys_values_id]);
						}
						else
						{
							// Добавление узла структуры
							if ($structure_id == 0)
							{
								// Присваиваем значение по умолчанию
								$value = $row['structure_propertys_define_value'];
							}
							else // Редактирование узла структуры
							{
								$value = to_int($row['structure_propertys_values_value']);
							}
						}

						$structure_property_id = 0;

						if ($value)
						{
							$row_information_system = $InformationSystem->GetInformationSystemItem($value);
							$param['value'] = $row_information_system['information_groups_id'];
						}
						else
						{
							$param['value'] = 0;
						}

						$items = array();

						$mas_groups = array();

						// получаем дерево групп информационной системы, являющейся дополнительным свойством
						$information_system_property_id = $row['structure_propertys_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'] = $tab3_id;
						$param['name'] = 'propertys' . $structure_propertys_values_id;
						$param['caption'] = $row['structure_propertys_name'] . ' - ' . $GLOBALS['MSG_structure']['informational_element'];
						$param['type'] = 2; // Выпадающий список.
						$param['value'] = 0;

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

						$admin_forms_fields->AddField($param);

						$html .= '<script type="text/javascript">' . "\n" . '
				               var ItemsList' . $structure_propertys_values_id . ' = new Array(' . $groups . ');' . "\n";

						$html .= 'var ItemsListValue' . $structure_propertys_values_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_property = mysql_num_rows($result1);

						$structure_propertys_information_systems_id = $value;

						for ($k = 0; $k < $count_items_property; $k++)
						{
							$row1 = mysql_fetch_assoc($result1);

							if ($structure_propertys_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" . $structure_propertys_values_id . "[0]= new Array(" . $items_list . ");\n";

						// 0 - т.к. заполняем для корня
						$html .= "ItemsListValue" . $structure_propertys_values_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_property = mysql_num_rows($result1);

							$items_list = '';
							$items_list_value = '';

							for ($k = 0; $k < $count_items_property; $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" . $structure_propertys_values_id . "[" . ($j+1) . "]= new Array(" . $items_list . ");\n";

							// j+1, т.к. для 0-го заполняется отдельно
							$html .= "ItemsListValue" . $structure_propertys_values_id . "[". ($j+1) . "]= new Array(" . $items_list_value . ");\n";
						}

						$html .= 'function FillDocuments' . $structure_propertys_values_id . '(index)
							{
								var CurrentOptionList' . $structure_propertys_values_id . ' = ItemsList' . $structure_propertys_values_id . '[index];
								var CurrentOptionListValue' . $structure_propertys_values_id . ' = ItemsListValue' . $structure_propertys_values_id . '[index];
								var CurrentValuesCount' . $structure_propertys_values_id . ' = CurrentOptionList' . $structure_propertys_values_id . '.length;
								var ItemsListItems' . $structure_propertys_values_id . ' = document.forms["EditAddNode"].elements["propertys' . $structure_propertys_values_id . '"];

								ItemsListItems' . $structure_propertys_values_id . '.length = 0;
								for (i = 0; i < CurrentValuesCount' . $structure_propertys_values_id . '; i++)
								{
									if (document.createElement){
										var ItemsOption' . $structure_propertys_values_id . ' = document.createElement("OPTION");
										ItemsOption' . $structure_propertys_values_id . '.text = CurrentOptionList' . $structure_propertys_values_id . '[i];
										ItemsOption' . $structure_propertys_values_id . '.value = CurrentOptionListValue' . $structure_propertys_values_id . '[i];
										(ItemsListItems' . $structure_propertys_values_id . '.options.add) ? ItemsListItems' . $structure_propertys_values_id . '.options.add(ItemsOption' . $structure_propertys_values_id . ') : ItemsListItems' . $structure_propertys_values_id . '.add(ItemsOption' . $structure_propertys_values_id . ', null);
									}
									else
									{
										ItemsListItems' . $structure_propertys_values_id . '.options[i] = new Option(CurrentOptionList' . $structure_propertys_values_id . '[i], CurrentOptionList' . $structure_propertys_values_id . '[i], false, false);
									}
								}
							}';

						$html .= 'FillDocuments' . $structure_propertys_values_id . '(document.forms["EditAddNode"].elements["information_groups_id' . $structure_propertys_values_id . '"].selectedIndex);';

						// Если есть элемент
						if ($current_items_id != -1)
						{
							// Выбираем элемент
							$html .= 'document.forms["EditAddNode"].elements["propertys' . $structure_propertys_values_id . '"].options[' . $current_items_id . '].selected=1;';
						}
						$html .= '</script>';
					}
					break;
				}
				// Тип свойства - визуальный редактор
			case 6:
				{
					// Описание информационной группы.
					$param['tab_id'] = $tab3_id;

					// Редактирование узла структуры
					if ($structure_id)
					{
						// Тип узла структуры - динамическая или типовая динамическая страница (недокумент)
						if ($structure_type)
						{
							// Используем идентификатор макета из таблицы узла структуры
							$template_id = $templates_id;
						}
						else // Тип узла структуры - документ
						{
							$document = new documents();

							// Получаем данные о версии документа
							if ($document_version_row = $document->GetCurrentDocumentVersion($documents_id))
							{
								// Используем идентификатор макета данной версии документа
								$template_id = $document_version_row['templates_id'];
							}
							else
							{
								$template_id = 0;
							}
						}
					}
					else // Добавление узла структуры
					{
						$template_id = 0;
					}

					$param['template'] = $template_id;

					$param['type'] = 7; // Визуальный редактор.

					// Возникала ошибка при добавлении/редактировании узла структуры
					// присваиваем веденное ранее значение
					if (isset($_REQUEST['propertys' . $structure_propertys_values_id]))
					{
						$value = to_str($_REQUEST['propertys' . $structure_propertys_values_id]);
					}
					else
					{
						// Добавление узла структуры
						if ($structure_id == 0)
						{
							// Присваиваем значение по умолчанию
							$value = $row['structure_propertys_define_value'];
						}
						else // Редактирование узла структуры
						{
							$value = to_str($row['structure_propertys_values_value']);
						}
					}

					$param['value'] = $value;

					$admin_forms_fields->AddField($param);

					// Добавляем флажки типографики для СВОЙСТВ.
					if (class_exists("typograph"))
					{
						// Оптическое выравнивание
						$param = array();
						$param['tab_id'] = $tab3_id;
						$param['type'] = 1;
						$param['name'] = 'exec_typograph_for_prop' . $structure_propertys_values_id;
						$param['html_id'] = 'id_exec_typograph_for_prop';
						$param['caption'] = $GLOBALS['MSG_menu']['exec_typograph_for_prop'];
						$param['value'] = 1;
						$param['div_attributes']['style'] = 'float: left;';
						$admin_forms_fields->AddField($param);

						// Висячая пунктуация
						$param = array();
						$param['tab_id'] = $tab3_id;
						$param['type'] = 1;
						$param['name'] = 'trailing_punctuation_for_prop' . $structure_propertys_values_id;
						$param['html_id'] = 'id_trailing_punctuation_for_prop';
						$param['caption'] = $GLOBALS['MSG_menu']['use_trailing_punctuation_for_prop'];
						$param['value'] = 1;
						$param['div_attributes']['style'] = 'float: left;';
						$admin_forms_fields->AddField($param);

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

			case 7: // Флажок
			{
				$param['type'] = 1; // Поле ввода.
				$param['html_id'] = 'id_define_checked_value'.$structure_propertys_values_id;
				// Возникала ошибка при добавлении/редактировании узла структуры
				// присваиваем веденное ранее значение
				if (isset($_REQUEST['propertys'.$structure_propertys_values_id]) )
				{
					$value = 1;
				}
				else // Первоначальное отображение формы или не было ошибок при добавлении
				{
					// Добавление узла структуры
					if ($structure_id == 0)
					{
						// Присваиваем значение по умолчанию
						$value = $row['structure_propertys_define_value'];
					}
					else // Редактирование узла структуры
					{
						if ($row['structure_propertys_values_value'] != '')
						{
							$value = $row['structure_propertys_values_value'];
						}
						else
						{
							$value = 0; //$row['structure_propertys_define_value'];
						}
					}
				}

				$param['value'] = $value;

				$admin_forms_fields->AddField($param);
				break;
			}

			case 8: // Дата
			{
				$param['type'] = 10; // Поле ввода даты.

				// Возникала ошибка при добавлении/редактировании узла структуры
				// присваиваем веденное ранее значение
				if (isset($_REQUEST['propertys' . $structure_propertys_values_id]))
				{
					$value = to_str($_REQUEST['propertys' . $structure_propertys_values_id]);
				}
				else
				{
					// Добавление узла структуры
					if ($structure_id == 0)
					{
						// Присваиваем значение по умолчанию
						$value = $row['structure_propertys_define_value'];
					}
					else // Редактирование узла структуры
					{
						// Для дополнительного свойства задано значение
						if ($row['structure_propertys_values_value'] != '')
						{
							$value = $row['structure_propertys_values_value'];
						}
						// Для дополнительного свойства не задано значение - присваиваем пустое значение
						else
						{
							$value = '';
						}
					}
				}
				$param['value'] = $value;
				$param['attributes'] = array();
				$param['attributes']['size'] = 10;

				$admin_forms_fields->AddField($param);
				break;
			}
			case 9: // Дата-время
			{
				$param['type'] = 11; // Поле ввода датывремени.

				// Возникала ошибка при добавлении/редактировании узла структуры
				// присваиваем веденное ранее значение
				if (isset($_REQUEST['propertys' . $structure_propertys_values_id]))
				{
					$value = to_str($_REQUEST['propertys' . $structure_propertys_values_id]);
				}
				else
				{
					// Добавление узла структуры
					if ($structure_id == 0)
					{
						// Присваиваем значение по умолчанию
						$value = $row['structure_propertys_define_value'];
					}
					else // Редактирование узла структуры
					{
						// Для дополнительного свойства задано значение
						if ($row['structure_propertys_values_value'] != '')
						{
							$value = $row['structure_propertys_values_value'];
						}
						// Для дополнительного свойства не задано значение - присваиваем пустое значение
						else
						{
							$value = '';
						}
					}
				}

				$param['value'] = $value;

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

				$admin_forms_fields->AddField($param);
				break;
			}


			// Тип свойства - число или строка
			default:
				{
					//$param['tab_id'] = $tab3_id;
					$param['type'] = 0; // Поле ввода.

					// Возникала ошибка при добавлении/редактировании узла структуры
					// присваиваем введенное ранее значение
					if (isset($_REQUEST['propertys' . $structure_propertys_values_id]))
					{
						$value = to_str($_REQUEST['propertys' . $structure_propertys_values_id]);
					}
					else
					{
						// Добавление узла структуры
						if ($structure_id == 0)
						{
							// Присваиваем значение по умолчанию
							$value = $row['structure_propertys_define_value'];
						}
						else // Редактирование узла структуры
						{
							// Для дополнительного свойства задано значение
							if ($row['structure_propertys_values_value'] != '')
							{
								$value = $row['structure_propertys_values_value'];
							}
							// Для дополнительного свойства не задано значение - присваиваем пустое значение
							else
							{
								$value = '';//$row['structure_propertys_define_value'];
							}
						}
					}

					$param['value'] = $value;

					$admin_forms_fields->AddField($param);

					break;
				}
		}
	}
}

// Объявление массива, который загружается через AJAX для редактирования списков XSL
$html .= '<script language="JavaScript">var XslLib = new Array();</script>';

$admin_forms_fields->AddExternalHtml($html);

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

// Добавляем скрытое поле с идентификатором текущего родительского узла структуры
if ($structure_id)
{
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'structure_parent_id';
	$param['caption'] = '';
	$param['type'] = 4; // hidden.
	$param['value'] = $current_structure_parent_id;
	$admin_forms_fields->AddField($param);
}

// Кнопка "Сохранить".
$params = array();
$params['name'] = 'save_structure';
$params['caption'] = $GLOBALS['MSG_structure']['save'];
$params['image'] = '/admin/images/add.gif';
//$params['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']).")";
$params['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']).")";
$params['attributes']['type'] = 'button';
$admin_forms_fields->AddButton($params);

// Кнопка "Применить".
$params = array();
$params['name'] = 'add_structure';
$params['caption'] = $GLOBALS['MSG_structure']['apply'];
$params['image'] = '/admin/images/add.gif';
//$params['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']).")";
$params['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']).")";
$params['attributes']['type'] = 'submit';
$admin_forms_fields->AddButton($params);

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