<?php


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

// Переменная для хранения дополнительного html-текста к форме добавления/редактировния инфоэлемента
$html = '';

$current_group_id = to_int($_REQUEST["information_groups_parent_id"]);

// Не возникало ошибок при добавлении/редактировании информационного элемента
if (!isset ($error_information_item))
{
    // Размеры изображений.
    $info_sys_row = $information_system->GetInformationSystem($information_system_id);

    if ($info_sys_row)
    {
        $information_item_big_image_max_width = $info_sys_row['information_systems_image_big_max_width'];
        $information_item_big_image_max_height = $info_sys_row['information_systems_image_big_max_height'];
        $information_item_small_image_max_width = $info_sys_row['information_systems_image_small_max_width'];
        $information_item_small_image_max_height = $info_sys_row['information_systems_image_small_max_height'];

        $information_systems_typograph_item = $info_sys_row['information_systems_typograph_item'];

        // 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_item_big_image_max_width = MAX_SIZE_LOAD_IMAGE_BIG;
        $information_item_big_image_max_height = MAX_SIZE_LOAD_IMAGE_BIG;
        $information_item_small_image_max_width = MAX_SIZE_LOAD_IMAGE;
        $information_item_small_image_max_height = MAX_SIZE_LOAD_IMAGE;

        $information_systems_typograph_item = 1;

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

    // Редактирование информационного элемента
    if ($information_item_id != 0)
    {
        $row = $information_system->GetInformationSystemItem($information_item_id);

        $information_groups_id = $row['information_groups_id'];

        $date = explode(' ', $row['information_items_date']);
        $information_item_date = $date[1];
        $date = explode('-', $date[0]);
        $information_item_date = $date[2].'.'.$date[1].'.'.$date[0].' '.$information_item_date;

        $date = explode(' ', $row['information_items_putoff_date']);
        $information_item_putoff_date = $date[1];
        $date = explode('-', $date[0]);
        $information_item_putoff_date = $date[2].'.'.$date[1].'.'.$date[0].' '.$information_item_putoff_date;

        if ($row['information_items_putend_date'] != '0000-00-00 00:00:00')
        {
            $date = explode(' ', $row['information_items_putend_date']);
            $information_item_putend_date = $date[1];
            $date = explode('-', $date[0]);
            $information_item_putend_date = $date[2].'.'.$date[1].'.'.$date[0].' '.$information_item_putend_date;
        }
        else
        {
            $information_item_putend_date = $GLOBALS['MSG_information_systems']['information_no_initialisation'];
        }

        $information_item_name = $row['information_items_name'];
        $information_item_description = $row["information_items_description"];
        $information_item_status = $row["information_items_status"];
        $information_item_order = to_int($row['information_items_order']);
        $information_item_ip = $row['information_items_ip'];
        $information_item_url = $row['information_items_url'];
        $information_item_text = $row['information_items_text'];
        $information_item_show_count = $row['information_items_show_count'];
        $information_item_image = $row['information_items_image'];
        $information_item_small_image = $row['information_items_small_image'];
        $information_item_allow_indexation = $row["information_items_allow_indexation"];
        $information_item_seo_description = $row['information_items_seo_description'];
        $information_item_seo_title = $row['information_items_seo_title'];
        $information_item_seo_keywords = $row['information_items_seo_keywords'];
        $information_item_access = $row['information_items_access'];

        $site_users_id = $row['site_users_id'];
        $information_item_blog_accessibility = $row['information_items_blog_accessibility'];
        $information_item_blog_show_comments_mode = $row['information_items_blog_show_comments_mode'];
        $information_item_blog_add_comments_mode = $row['information_items_blog_add_comments_mode'];

    }
    else // Добавление информационного элемента
        {
        $information_item_date = date('d.m.Y H:i:s');

        $information_groups_id = $current_group_id;

        $information_item_putoff_date = date('d.m.Y H:i:s');

        $information_item_putend_date = 'Не определена';

        $information_item_name = '';
        $information_item_description = '';
        $information_item_status = 1;
        $information_item_order = 0;
        $information_item_ip = to_str($_SERVER['REMOTE_ADDR']);
        $information_item_text = '';
        $information_item_show_count = 0;
        $information_item_image = '';
        $information_item_small_image = '';
        $information_item_url = '';
        $information_item_allow_indexation = 1;
        $information_item_seo_description = '';
        $information_item_seo_title = '';
        $information_item_seo_keywords = '';
        $information_item_access = -1;

        $site_users_id = 0;

        // Определяем доступность по-умолчанию
        if ($information_groups_id)
        {
            $information_group_info = $information_system->GetInformationGroup($information_groups_id);

            $information_item_blog_accessibility = $information_group_info['information_groups_blog_item_default_accessibility'];

            $information_item_blog_show_comments_mode = $information_group_info['information_groups_blog_item_default_show_comments_mode'];
            $information_item_blog_add_comments_mode = $information_group_info['information_groups_blog_item_default_add_comments_mode'];
        }
        else
        {
            $information_item_blog_accessibility = 0;
            $information_item_blog_show_comments_mode = 0;
            $information_item_blog_add_comments_mode = 0;
        }
    }
} // Произошла ошибка при добавлении/редактировании информационного элемента
else
{
    // Указываем заданные значения
    $information_item_date = to_str($_POST['information_item_date']);
    $information_item_putoff_date = to_str($_POST['information_item_putoff_date']);
    $information_item_putend_date = to_str($_POST['information_item_putend_date']);

    $information_item_name = to_str($_POST['information_item_name']);
    $information_item_description = to_str($_POST['information_item_description']);
    $information_item_status = to_int($_POST['information_item_status']);
    $information_item_order = to_int($_POST['information_item_order']);
    $information_item_ip = to_str($_POST['information_item_ip']);
    $information_item_text = to_str($_POST['information_item_text']);
    $information_item_show_count = to_int($_POST['information_item_show_count']);

    // Watermark
    $information_systems_watermark_default_position_x = to_str($_POST['image_watermark_position_x_information_item_image']);
    $information_systems_watermark_default_position_y = to_str($_POST['image_watermark_position_y_information_item_image']);

    if ($information_item_id != 0)
    {
        $row = $information_system->GetInformationSystemItem($information_item_id);

        $information_item_image = to_str($row['information_items_image']);
        $information_item_small_image = to_str($row['information_items_small_image']);
    }
    else
    {
        $information_item_image = '';
        $information_item_small_image = '';
    }

    $information_item_url = to_str($_POST['information_item_url']);
    $information_item_seo_description = to_str($_POST['information_item_seo_description']);
    $information_item_seo_title = to_str($_POST['information_item_seo_title']);
    $information_item_seo_keywords = to_str($_POST['information_item_seo_keywords']);

    if (isset ($_POST['information_item_allow_indexation']))
    {
        $information_item_allow_indexation = 1;
    }
    else
    {
        $information_item_allow_indexation = 0;
    }

    $information_item_access = intval($_POST['information_item_access']);
    $information_item_big_image_max_width = to_int($_POST['big_image_max_width_information_item_image']);
    $information_item_big_image_max_height = to_int($_POST['big_image_max_height_information_item_image']);
    $information_item_small_image_max_width = to_int($_POST['small_image_max_width_information_item_image']);
    $information_item_small_image_max_height = to_int($_POST['small_image_max_height_information_item_image']);

    $site_users_id = to_int($_POST['site_users_id']);
    $information_item_blog_accessibility = to_int($_POST['information_items_blog_accessibility']);
    $information_item_blog_show_comments_mode = to_int($_POST['information_items_blog_show_comments_mode']);
    $information_item_blog_add_comments_mode = to_int($_POST['information_items_blog_add_comments_mode']);
}

$form_params = array ();

$form_params['title'] = $information_item_id == 0 ? $GLOBALS['MSG_information_systems']['information_items_add_form_title'] : $GLOBALS['MSG_information_systems']['information_items_edit_form_title'];

$form_params['form_attribs']['method'] = 'post';
$form_params['form_attribs']['action'] = '/admin/InformationSystems/InformationSystems.php';
$form_params['form_attribs']['name'] = 'EditAddInformationItem';
$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']
);

$InformationSystem = & singleton('InformationSystem');

$path_array = $InformationSystem->GetInformationGroupsPathArray($information_groups_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_system_id={$information_system_id}", 12, 'load_data'),
                'onclick' => $admin_forms_fields->GetOnClickCallDoLoadAjax('/admin/InformationSystems/InformationSystems.php', "&information_groups_parent_id={$key}&information_system_id={$information_system_id}", 12, 'load_data'),
                'name' => $value['information_groups_name']
            );
        }
    }
}

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

$admin_forms_fields->admin_forms_fields($form_params);
$DataBase = & singleton('DataBase');

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

// Получаем данные об информационной системе, группу которой сейчас добавляем/редактируем
$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']);

// Название информационного элемента.
$param = array ();

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

// Список информационных систем
$param = array ();
$param['tab_id'] = $tab_id;
$param['name'] = 'new_information_systems_id';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_information_system'];
$param['type'] = 2; // Выпадающий список
$value = $information_system_id;
$param['value'] = $value;

$items = array ();
$mas_information_systems = array ();

$information_system = new InformationSystem();
$result_information_systems = $information_system->GetAllInformationSystems(CURRENT_SITE);

//$count_information_systems = count($mas_information_systems);

while ($row_information_system = mysql_fetch_assoc($result_information_systems))
{
    $items[$row_information_system['information_systems_id']] = $row_information_system['information_systems_name'];
}
/*
for ($i = 0; $i < $count_information_systems; $i++)
{
$items[$count_information_systems[$i]['information_groups_id']] = $count_information_systems[$i]['separator'].$mas[$i]['information_groups_name'];
}
*/

$param['items'] = $items;

$admin_forms_fields->AddField($param);

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

$items = array ();
$mas = array ();

$mas = $information_system->GetGroupsInformationSystem(0, $information_system_id, "&nbsp;", false, array (
    'cache' => false
));

$items[0] = '..';
$count_groups = count($mas);

for ($i = 0; $i < $count_groups; $i++)
{
    $items[$mas[$i]['information_groups_id']] = $mas[$i]['separator'].$mas[$i]['information_groups_name'];
}

$param['items'] = $items;

$admin_forms_fields->AddField($param);

// Дата добавления/редактирования информационного элемента
$param = array ();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_item_date';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_date'];
$param['type'] = 11; // Дата-время.
$param['value'] = $information_item_date;
$param['attributes'] = array ();
$param['attributes']['size'] = 25;
$param['div_attributes']['style'] = 'float: left; margin-top: 5px';
$admin_forms_fields->AddField($param);

// Дата публикации информационного элемента
$param = array ();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_item_putoff_date';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_putoff_date'];
$param['type'] = 11; // Дата-время.
$param['value'] = $information_item_putoff_date;
$param['attributes'] = array ();
$param['attributes']['size'] = 25;
$param['div_attributes']['style'] = 'float: left; margin-top: 5px';
$admin_forms_fields->AddField($param);

// Дата завершения публикации информационного элемента
$param = array ();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_item_putend_date';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_putend_date'];
$param['type'] = 11; // Дата-время.
$param['value'] = $information_item_putend_date;
$param['attributes'] = array ();
$param['attributes']['size'] = 25;
$param['div_attributes']['style'] = 'float: left; margin-top: 5px';
$admin_forms_fields->AddField($param);

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

// Описание информационного элемента.
$param = array ();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_item_description';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_description'];

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

$param['value'] = $information_item_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_prop'];
    $param['lable'] = $GLOBALS['MSG_information_systems']["yes"];
    $param['div_attributes']['style'] = 'float: left; margin-top: 5px';
    if (isset ($_POST['use_typograph_for_description']))
    {
        $param['value'] = 1;
    }
    else
    {
        $param['value'] = to_int($information_systems_typograph_item);
    }
    $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['lable'] = $GLOBALS['MSG_information_systems']["yes"];
    $param['div_attributes']['style'] = 'float: left; margin-top: 5px';
    if (isset ($_POST['use_typograph_for_description']) && isset ($_POST['trailing_punctuation_for_description']))
    {
        $param['value'] = 1;
    }
    else
    {
        $param['value'] = to_int($information_systems_typograph_item);
    }
    $admin_forms_fields->AddField($param);
}

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

// Статус активности информационного элемента

$param = array ();

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

$items[0] = $GLOBALS['MSG_information_systems']['information_items_add_form_status_false'];
$items[1] = $GLOBALS['MSG_information_systems']['information_items_add_form_status_true'];

$param['items'] = $items;

$admin_forms_fields->AddField($param);

// Порядок сортировки информационного элемента
$param = array ();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_item_order';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_order'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $information_item_order;
$param['format']['lib']['value'] = 'integer';
$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_item_ip';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_ip'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $information_item_ip;
$param['format']['lib']['value'] = 'ip';
$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_item_show_count';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_show_count'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $information_item_show_count;
$param['attributes'] = array ();
$param['attributes']['style'] = 'width: 110px;';
$param['div_attributes']['style'] = 'float: left;';
$admin_forms_fields->AddField($param);

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

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

// Изображение информационного элемента.
$param = array ();

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

$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_items_add_form_small_image']; // Заголовок поля загрузки малого изображения

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

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

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

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

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

if (isset ($error_information_item))
{
    // Вид ображения checkbox'а с подписью "Наложить водяной знак на большое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
    $param['options']['used_watermark_big_image_checked'] = isset ($_POST['big_image_is_use_watermark_information_item_image']) ? 1 : 0;
}
else
{
    // Вид ображения checkbox'а с подписью "Наложить водяной знак на большое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
    $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;

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

// Задано большое изображение
if ($information_item_image != '')
{
	// Адрес большого загруженного изображения
    $param['options']['big_image_path'] = '/'.UPLOADDIR.urlencode($information_item_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_item_big_image={$information_item_id}', 'get', callback_function_exec_from_return); return false;";
}
else
{
    $param['options']['big_image_path'] = '';
    $param['options']['href_delete_big_image'] = '';
    $param['options']['onclick_delete_big_image'] = '';
}

// Задано малое изображение
if ($information_item_small_image != '')
{
    // Адрес малого загруженного изображения
    $param['options']['small_image_path'] = '/'.UPLOADDIR.urlencode($information_item_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_item_small_image={$information_item_id}', 'get', callback_function_exec_from_return); return false;";
}
else
{
    $param['options']['small_image_path'] = '';
    $param['options']['href_delete_small_image'] = '';
    $param['options']['onclick_delete_small_image'] = '';
}

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

    // Вид ображения checkbox'а с подписью "Создать малое изображение из большого" выбранным (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
    $param['options']['make_small_image_from_big_checked'] = $param['options']['small_image_path'] == '' ? 1 : 0;

}

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

// Название элемента в URL
$param = array ();

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

$admin_forms_fields->AddField($param);

// Список рассылок
if (class_exists('Maillist'))
{
    $lists = & singleton('lists');

    $param = array ();
    $param['tab_id'] = $tab_id;
    $param['name'] = 'maillist_id';
    $param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_item_in_maillist'];
    $param['attributes']['onchange'] = 'javascript:ChengeMaillist(this.options[this.selectedIndex].value)';
    $param['type'] = 2; // Выпадающий список.
    $param['value'] = to_int($_POST['maillist_id']);

    $items = array ();

    $maillist = & singleton('Maillist');

    // Получаем список рассылок
    $result_maillists = $maillist->SelectMaillist(-1);

    $items[0] = $GLOBALS['MSG_information_systems']['information_items_add_form_maillist_default_value'];

    $param['hide_divs'][0] = 'checkbox';

    // Список слоев, которые необходимо отобразить при показе данного элемента списка
    $param['show_divs'][0] = '';

    $count_maillists = $DataBase->get_count_row();

    for ($i = 0; $i < $count_maillists; $i++)
    {
        $row_maillist = mysql_fetch_assoc($result_maillists);

        $items[$row_maillist['maillist_id']] = htmlspecialchars($row_maillist['maillist_name']);

        $param['hide_divs'][$row_maillist['maillist_id']] = '';

        // Список слоев, которые необходимо отобразить при показе данного элемента списка
        $param['show_divs'][$row_maillist['maillist_id']] = 'checkbox';
    }

    $param['items'] = $items;

    $admin_forms_fields->AddField($param);

    $html = '<script type="text/javascript">
        		function ChengeMaillist(visible)
        		{
        			if (visible==0)
        			{
        				document.getElementById("checkbox").style.display = "none";
        			}
        			else
        			{
        				document.getElementById("checkbox").style.display = "";
        			}
        		}
        		ChengeMaillist('.to_int($_POST['maillist_id']).')
        		</script>';

}

// Флажок, определяющий отправить информационный элемент рассылкой
$param = array ();

$param['tab_id'] = $tab_id;
$param['name'] = 'send_as_fascicle';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_send_as_fascicle'];
$param['type'] = 1; // Флажок.
$param['div_id'] = 'checkbox';
$param['lable'] = $GLOBALS['MSG_information_systems']['yes'];
$param['value'] = isset ($_POST['send_as_fascicle']) ? 1 : 0;

$admin_forms_fields->AddField($param);

// Флажок, определяющий индексировать информационный элемент или нет
$param = array ();

$param['tab_id'] = $tab_id;
$param['name'] = 'information_item_allow_indexation';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_indexation'];
$param['type'] = 1; // Флажок.
$param['lable'] = $GLOBALS['MSG_information_systems']['yes'];
$param['value'] = $information_item_allow_indexation;

$admin_forms_fields->AddField($param);

// Группа доступа пользователей к информационному элементу
$param = array ();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_item_access';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_access'];
$param['type'] = 2; // Выпадающий список.

$param['value'] = $information_item_access;

$items = array ();

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

    $param_site_users['order_field'] = 'site_users_group_name';

    $result = $site_users->SelectSiteUsersGroups($param_site_users);

    $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;

$admin_forms_fields->AddField($param);

// Текст информационного элемента.
$param = array ();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_item_text';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_text'];

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

$param['value'] = $information_item_text;

$admin_forms_fields->AddField($param);

$param = array ();

// Добавляем чекбоксы типографики для описания.
if (class_exists("typograph"))
{
    // Оптическое выравнивание
    $param = array ();
    $param['tab_id'] = $tab_id;
    $param['type'] = 1;
    $param['name'] = 'use_typograph_for_item_text';
    $param['html_id'] = 'id_exec_typograph_for_item_text';
    $param['caption'] = $GLOBALS['MSG_information_systems']['exec_typograph_for_text'];
    $param['lable'] = $GLOBALS['MSG_information_systems']["yes"];
    $param['div_attributes']['style'] = 'float: left; margin-top: 5px';
    if (isset ($_POST['use_typograph_for_item_text']))
    {
        $param['value'] = 1;
    }
    else
    {
        $param['value'] = to_int($information_systems_typograph_item);
    }

    $admin_forms_fields->AddField($param);

    // Висячая пунктуация
    $param = array ();
    $param['tab_id'] = $tab_id;
    $param['type'] = 1;
    $param['name'] = 'trailing_punctuation_for_item_text';
    $param['html_id'] = 'id_trailing_punctuation_for_item_text';
    $param['caption'] = $GLOBALS['MSG_information_systems']['use_trailing_punctuation_for_text'];
    $param['lable'] = $GLOBALS['MSG_information_systems']["yes"];
    $param['div_attributes']['style'] = 'float: left; margin-top: 5px';
    if (isset ($_POST['use_typograph_for_item_text']) && isset ($_POST['trailing_punctuation_for_item_text']))
    {
        $param['value'] = 1;
    }
    else
    {
        $param['value'] = to_int($information_systems_typograph_item);
    }
    $admin_forms_fields->AddField($param);
}

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

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

$param['tab_id'] = $tab_id;
$param['name'] = 'information_item_seo_title';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_seo_title'];
$param['type'] = 0; // Поле ввода.
$param['value'] = $information_item_seo_title;
$param['attributes'] = array ();

$admin_forms_fields->AddField($param);

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

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

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

$admin_forms_fields->AddField($param);

// Значение мета-тега <keywords> для информационного элемента
$param = array ();

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

$admin_forms_fields->AddField($param);

// Метки
$tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_information_systems']['information_items_form_tab_4']);

// Метки (тэги)
$param = array ();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_item_tags';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_tags'];
$param['type'] = 0; // Поле ввода.

// Если редактируем
if ($information_item_id)
{
    if (class_exists('Tag'))
    {
        $oTag = & singleton('Tag');

        $tags_array = $oTag->GetTagRelation(array (
            'information_items_id' => $information_item_id
        ));

        $mytags = array ();

        if ($tags_array)
        {
            foreach ($tags_array as $tag)
            {
                $mytags[] = $tag['tag_name'];
            }
        }

        $information_item_tags = implode(', ', $mytags);
    }
    else
    {
        $information_item_tags = '';
    }
}
else
{
    $information_item_tags = '';
}

$param['value'] = $information_item_tags;

$admin_forms_fields->AddField($param);

// Редактирование информационного элемента
if ($information_item_id)
{
    // Добавляем скрытое поле с идентификатором информационного элемента
    $param = array ();
    $param['tab_id'] = $tab_id;
    $param['name'] = 'information_item_id';
    $param['type'] = 4; // Скрытое поле.
    $param['value'] = $information_item_id;

    $admin_forms_fields->AddField($param);
}

// Добавляем скрытое поле с идентификатором текущей группы

$param = array ();
$param['tab_id'] = $tab_id;
$param['name'] = 'information_groups_parent_id';
$param['type'] = 4; // Скрытое поле.
$param['value'] = $current_group_id;
$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);

// Редактирование информационного элемента
if ($information_item_id)
{
    // Определяем значения свойств данного информационного элемента
    $query = "SELECT information_propertys_table.*, information_propertys_items_table.information_items_id,
        						information_propertys_items_table.information_propertys_items_id, information_propertys_items_table.information_propertys_items_value,
        						information_propertys_items_table.information_propertys_items_file, information_propertys_items_table.information_propertys_items_value_small,
        						 information_propertys_items_table.information_propertys_items_file_small
        				FROM information_propertys_table LEFT JOIN  information_propertys_items_table
                               ON
                                 (
        	                         information_propertys_items_table.information_propertys_id=information_propertys_table.information_propertys_id
        	                         AND
        	                          (
        		                          (information_propertys_items_table.information_items_id='$information_item_id')
        		                          OR
        		                          (information_propertys_items_table.information_items_id is null)
        	                         )
                                 ) 
                                 WHERE    information_propertys_table.information_systems_id='$information_system_id' 
                                 ORDER BY information_propertys_order";

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

$count_propertys = mysql_num_rows($result);

// Для ифосистемы заданы дополнительные свойства информационных элементов
if ($count_propertys)
{
    // Вкладка для дополнительных свойств
    $tab2_id = $admin_forms_fields->AddTab($GLOBALS['MSG_information_systems']['information_items_form_tab_2']);
}

// Цикл по свойствам информационного элемента
for ($i = 0; $i < $count_propertys; $i++)
{
    $row = mysql_fetch_assoc($result);

    $information_propertys_items_id = to_int($row['information_propertys_id']);

    switch ($row['information_propertys_type'])
    {

        // Тип свойства - файл
        case 2 :
            {
                $InformationSystemRow = $information_system->GetInformationSystem($information_system_id);

                $param = array ();

                $param['tab_id'] = $tab2_id;
                $param['name'] = 'property'.$information_propertys_items_id;
                $param['caption'] = $row['information_propertys_name'];
                $param['type'] = 9; // Поле загрузки файла.
                $param['value'] = $information_item_name;

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

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

                if (!isset ($error_information_item))
                {
                    // Накладываем "водяной знак" на большое изображение по умолчаию
                    if (to_int($InformationSystemRow['information_systems_default_used_watermark']) == 1)
                    {
                        $param['options']['used_watermark_big_image_checked'] = 1; // вид ображения checkbox'а с подписью "Наложить водяной знак на большое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
                    }
                    // Не накладываем "водяной знак" на большое изображение по умолчаию
                    else
                    {
                        $param['options']['used_watermark_big_image_checked'] = 0; // вид ображения checkbox'а с подписью "Наложить водяной знак на большое изображение" (1 -  отображать выбранным (по умолчанию), 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_items_id]) ? 1 : 0;
                    $param['options']['used_watermark_big_image_checked'] = isset ($_POST['big_image_is_use_watermark_property'.$information_propertys_items_id]) ? 1 : 0;
                    $param['options']['used_watermark_small_image_checked'] = isset ($_POST['small_image_is_use_watermark_property'.$information_propertys_items_id]) ? 1 : 0;
                }

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

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

                // Значение максимальной ширины большого изображения;
                $param['options']['image_big_max_width'] = isset ($_POST['big_image_max_width_property'.$information_propertys_items_id]) ? $_POST['big_image_max_width_property'.$information_propertys_items_id] : $information_item_big_image_max_width;

                // Значение максимальной высоты большого изображения;
                $param['options']['image_big_max_height'] = isset ($_POST['big_image_max_height_property'.$information_propertys_items_id]) ? $_POST['big_image_max_height_property'.$information_propertys_items_id] : $information_item_big_image_max_height;

                // Значение максимальной ширины малого изображения;
                $param['options']['image_small_max_width'] = isset ($_POST['small_image_max_width_property'.$information_propertys_items_id]) ? $_POST['small_image_max_width_property'.$information_propertys_items_id] : $information_item_small_image_max_width;

                // Значение максимальной высоты малого изображения;
                $param['options']['image_small_max_height'] = isset ($_POST['small_image_max_height_property'.$information_propertys_items_id]) ? $_POST['small_image_max_height_property'.$information_propertys_items_id] : $information_item_small_image_max_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_items_id]) ? $_POST['image_watermark_position_x_property'.$information_propertys_items_id] : $information_systems_watermark_default_position_x;

                // Значение поля ввода с подписью "По оси Y"
                $param['options']['watermark_position_y'] = isset ($_POST['image_watermark_position_y_property'.$information_propertys_items_id]) ? $_POST['image_watermark_position_y_property'.$information_propertys_items_id] : $information_systems_watermark_default_position_y;

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

                // Редактирование информационного элемента
                if ($information_item_id)
                {
                    $information_item_big_image_property = $row['information_propertys_items_file'];
                    $information_item_small_image_property = $row['information_propertys_items_file_small'];

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

                    if ($information_item_big_image_property != '')
                    {
                    	
                        // Адрес большого загруженного изображения
                        $param['options']['big_image_path'] = '/'.UPLOADDIR.'private/'.urlencode($information_item_big_image_property);

                        // Ссылка для href
                        $param['options']['href_delete_big_image'] = "javascript:void(0)";
                        // Значение для onclick
                        $param['options']['onclick_delete_big_image'] = "sendRequest('/admin/InformationSystems/InformationSystems.php?item_property_id=$information_propertys_items_id&delete_information_item_property_big_image={$row['information_propertys_items_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_item_small_image_property != '')
                    {
                        // Адрес малого загруженного изображения
                        $param['options']['small_image_path'] = '/'.UPLOADDIR.'private/'.urlencode($information_item_small_image_property);

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

                    $param['options']['image_id'] = $row['information_propertys_items_id'];
                }
                else // Добавление информационного элемента
                    {
                    $param['options']['big_image_path'] = '';
                    $param['options']['small_image_path'] = '';
                }

                $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_items_id;
                    $param['caption'] = $row['information_propertys_name'];
                    $param['type'] = 2; // Выпадающий список.

                    // Возникала ошибка при добавлении/редактировании информационного элемента
                    // присваиваем веденное ранее значение
                    if (isset ($_REQUEST['property'.$information_propertys_items_id]))
                    {
                        $value = to_int($_REQUEST['property'.$information_propertys_items_id]);
                    }
                    else
                    {
                        // Добавление информационного элемента
                        if ($information_item_id == 0)
                        {
                            $value = '';
                        }
                        else // Редактирование информационного элемента
                            {
                            $value = $row['information_propertys_items_value'];
                        }
                    }

                    $param['value'] = $value;

                    $items = array ();

                    $lists_id = $row['information_propertys_lists_id']; #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_items_id;
                $param['caption'] = $row['information_propertys_name'];
                $param['type'] = 5; // textarea
                $param['attributes'] = array ();
                $param['attributes']['rows'] = 10;
                $param['attributes']['style'] = 'width: 100%;';

                // Возникала ошибка при добавлении/редактировании информационного элемента
                // присваиваем веденное ранее значение
                if (isset ($_REQUEST['property'.$information_propertys_items_id]))
                {
                    $value = to_str($_REQUEST['property'.$information_propertys_items_id]);
                }
                else
                {
                    // Добавление информационного элемента
                    if ($information_item_id == 0)
                    {
                        // Присваиваем значение по умолчанию
                        $value = $row['information_propertys_define_value'];
                    }
                    else // Редактирование информационного элемента
                        {
                        // Для дополнительного свойства элемента задано значение
                        if ($row['information_propertys_items_value'] != '')
                        {
                            $value = $row['information_propertys_items_value'];
                        }
                        // Для дополнительного свойства задано не значение - присваиваем значение по умолчанию
                        else
                        {
                            $value = $row['information_propertys_define_value'];
                        }
                    }
                }

                $param['value'] = $value;

                $admin_forms_fields->AddSeparator($tab2_id);

                $admin_forms_fields->AddField($param);

                break;
            }

        case 5 : // Информационная система
            {
                // Список групп
                $param = array ();
                $param['tab_id'] = $tab2_id;
                $param['div_id'] = 'list_id';
                $param['name'] = 'information_items_id'.$information_propertys_items_id;
                $param['caption'] = $row['information_propertys_name'].' - '.$GLOBALS['MSG_information_systems']['information_system_top_menu_groups'];
                $param['type'] = 2; // Выпадающий список.
                $param['attributes']['onchange'] = "FillDocuments$information_propertys_items_id(this.selectedIndex)";

                // Возникала ошибка при добавлении/редактировании информационного элемента
                // присваиваем веденное ранее значение

                if (isset ($_REQUEST['property'.$information_propertys_items_id]))
                {
                    $value = to_int($_REQUEST['property'.$information_propertys_items_id]);
                }
                else
                {
                    // Добавление информационного элемента
                    if ($information_item_id == 0)
                    {
                        // Присваиваем значение по умолчанию
                        $value = $row['information_propertys_define_value'];
                    }
                    else // Редактирование информационного элемента
                        {
                        // Для дополнительного свойства инфоэлемента задано значение - информационный элемент
                        if ($row['information_propertys_items_value'] != '')
                        {
                            $value = $row['information_propertys_items_value'];
                        }
                        // Для дополнительного свойства не задано значение - присваиваем значение по умолчанию
                        else
                        {
                            $value = 0;
                        }
                    }
                }

                $information_group_property_id = 0;

                if ($value)
                {
                    $row_information_system = $information_system->GetInformationSystemItem($value);
                    $information_group_property_id = $row_information_system['information_groups_id'];
                }

                $param['value'] = $information_group_property_id;

                // Выбираем информационную систему, заданную для данного свойства данной инфо системы
                if ($value != 0 && $value != '')
                {
                    $row1 = $information_system->GetInformationSystemItem($value);
                }

                $items = array ();

                $mas_groups = array ();

                // Получаем дерево групп информационной системы, являющейся дополнительным свойством
                $information_system_property_id = $row['information_propertys_information_systems_id'];

                $groups = '0';

                $mas_groups = $information_system->GetGroupsInformationSystem(0, $information_system_property_id, "&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_items_id;
                $param['caption'] = $row['information_propertys_name'].' - '.$GLOBALS['MSG_information_systems']['information_system_top_menu_items'];
                $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'.$information_propertys_items_id.' = new Array('.$groups.');'."\n";

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

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

                $information_system_info = $information_system->GetInformationSystem($information_system_property_id);

                $order_field = '';

                /* Определяем поле сортировки информационных элементов */
                switch ($information_system_info['information_systems_items_order_field'])
                {
                    case 0 :
                        {
                            $order_field = ' information_items_date ';
                            break;
                        }
                    case 1 :
                        {
                            $order_field = ' information_items_name ';
                            break;
                        }
                    case 2 :
                        {
                            $order_field = ' information_items_order ';
                            break;
                        }
                    default : /* По-умолчанию */ {
                            $order_field = ' information_items_date ';
                            break;
                        }
                }

                /* Определяем направление сортировки */
                $order_type = '';

                switch ($information_system_info['information_systems_items_order_type'])
                {
                    case 0 :
                        {
                            $order_type = ' asc';
                            break;
                        }
                    case 1 :
                        {
                            $order_type = ' desc';
                            break;
                        }
                    default :
                        {
                            $order_type = ' asc';
                        }
                }

                $param_items['OrderField'] = $order_field;
                $param_items['Order'] = $order_type;

                // Выводим элементы
                $result1 = $information_system->GetInformationItemsFromGroup(0, $information_system_property_id, $param_items);

                $count_items = mysql_num_rows($result1);

                $information_propertys_items_information_systems_id = $value;

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

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

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

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

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

                // Заполняем для групп
                for ($j = 0; $j < $mas_groups_count; $j++)
                {

                    $result1 = $information_system->GetInformationItemsFromGroup($mas_groups[$j]['information_groups_id'], $information_system_property_id, $param_items);

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

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

                $html .= 'function FillDocuments'.$information_propertys_items_id.'(index)
                                						{
                                							var CurrentOptionList'.$information_propertys_items_id.' = ItemsList'.$information_propertys_items_id.'[index];
                                							var CurrentOptionListValue'.$information_propertys_items_id.' = ItemsListValue'.$information_propertys_items_id.'[index];
                                							var CurrentValuesCount'.$information_propertys_items_id.' = CurrentOptionList'.$information_propertys_items_id.'.length;
                                							var ItemsListItems'.$information_propertys_items_id.' = document.forms["EditAddInformationItem"].elements["property'.$information_propertys_items_id.'"];
                                						
                                							ItemsListItems'.$information_propertys_items_id.'.length = 0;
                                							for (i = 0; i < CurrentValuesCount'.$information_propertys_items_id.'; i++)
                                							{
                                								if (document.createElement){
                                									var ItemsOption'.$information_propertys_items_id.' = document.createElement("OPTION");
                                									ItemsOption'.$information_propertys_items_id.'.text = CurrentOptionList'.$information_propertys_items_id.'[i];
                                									ItemsOption'.$information_propertys_items_id.'.value = CurrentOptionListValue'.$information_propertys_items_id.'[i];
                                									(ItemsListItems'.$information_propertys_items_id.'.options.add) ? ItemsListItems'.$information_propertys_items_id.'.options.add(ItemsOption'.$information_propertys_items_id.') : ItemsListItems'.$information_propertys_items_id.'.add(ItemsOption'.$information_propertys_items_id.', null);
                                								}
                                								else
                                								{
                                									ItemsListItems'.$information_propertys_items_id.'.options[i] = new Option(CurrentOptionList'.$information_propertys_items_id.'[i], CurrentOptionList'.$information_propertys_items_id.'[i], false, false);
                                								}
                                							}
                                						}';

                // Выбираем тот подсписок, которорый есть для данной директории
                $html .= 'FillDocuments'.$information_propertys_items_id.'(document.forms["EditAddInformationItem"].elements["information_items_id'.$information_propertys_items_id.'"].selectedIndex);';

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

                $html .= '</script>';

                break;
            }
            // Тип свойства - визуальный редактор
        case 6 :
            {
                $param = array ();
                $param['tab_id'] = $tab2_id;
                $param['name'] = 'property'.$information_propertys_items_id;
                $param['caption'] = $row['information_propertys_name'];
                $param['type'] = 7; // Визуальный редактор.
                $param['template'] = $template_id;

                // Возникала ошибка при добавлении/редактировании информационного элемента
                // присваиваем веденное ранее значение
                if (isset ($_REQUEST['property'.$information_propertys_items_id]))
                {
                    $value = to_str($_REQUEST['property'.$information_propertys_items_id]);
                }
                else
                {
                    // Добавление информационного элемента
                    if ($information_item_id == 0)
                    {
                        // Присваиваем значение по умолчанию
                        $value = $row['information_propertys_define_value'];
                    }
                    else // Редактирование информационного элемента
                        {
                        // Для дополнительного свойства инфоэлемента задано значение
                        if ($row['information_propertys_items_value'] != '')
                        {
                            $value = $row['information_propertys_items_value'];
                        }
                        // Для дополнительного свойства не задано значение - присваиваем значение по умолчанию
                        else
                        {
                            $value = $row['information_propertys_define_value'];
                        }
                    }
                }

                $param['value'] = $value;

                $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_items_id;
                    $param['html_id'] = 'id_exec_typograph_for_prop';
                    $param['caption'] = $GLOBALS['MSG_information_systems']['exec_typograph_for_prop'];
                    $param['lable'] = $GLOBALS['MSG_information_systems']["yes"];
                    $param['div_attributes']['style'] = 'float: left;';
                    if (isset ($_POST['exec_typograph_for_prop'.$information_propertys_items_id]))
                    {
                        $param['value'] = 1;
                    }
                    else
                    {
                        $param['value'] = to_int($information_systems_typograph_item);
                    }

                    $admin_forms_fields->AddField($param);

                    // Висячая пунктуация
                    $param = array ();
                    $param['tab_id'] = $tab2_id;
                    $param['type'] = 1;
                    $param['name'] = 'trailing_punctuation_for_prop'.$information_propertys_items_id;
                    $param['html_id'] = 'id_trailing_punctuation_for_prop';
                    $param['caption'] = $GLOBALS['MSG_information_systems']['use_trailing_punctuation_for_prop'];
                    $param['lable'] = $GLOBALS['MSG_information_systems']["yes"];
                    $param['div_attributes']['style'] = 'float: left;';
                    if (isset ($_POST['exec_typograph_for_prop'.$information_propertys_items_id]) && isset ($_POST['trailing_punctuation_for_prop'.$information_propertys_items_id]))
                    {
                        $param['value'] = 1;
                    }
                    else
                    {
                        $param['value'] = to_int($information_systems_typograph_item);
                    }
                    $admin_forms_fields->AddField($param);

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

        case 7 : // Флажок
            {
                $param = array ();

                $param['tab_id'] = $tab2_id;
                $param['name'] = 'property'.$information_propertys_items_id;
                $param['caption'] = $row['information_propertys_name'];
                $param['type'] = 1; // Поле ввода.
                $param['html_id'] = 'id_define_checked_value'.$information_propertys_items_id;
                $param['lable'] = $GLOBALS['MSG_information_systems']['yes'];

                // Возникала ошибка при добавлении/редактировании информационного элемента
                // присваиваем веденное ранее значение
                if (isset ($error_information_item))
                {
                    if (isset ($_REQUEST['property'.$information_propertys_items_id]))
                    {
                        $value = 1;
                    }
                    else
                    {
                        $value = 0;
                    }
                }
                else // Первоначальное отображение формы или не было ошибок при добавлении
                    {
                    // Добавление информационного элемента
                    if ($information_item_id == 0)
                    {
                        // Присваиваем значение по умолчанию
                        $value = $row['information_propertys_define_value'];
                    }
                    else // Редактирование информационного элемента
                        {
                        if ($row['information_propertys_items_value'] != '')
                        {
                            $value = $row['information_propertys_items_value'];
                        }
                        else
                        {
                            $value = $row['information_propertys_define_value'];
                        }
                    }
                }

                $param['value'] = $value;

                $admin_forms_fields->AddField($param);

                break;
            }

        case 8 : // Дата
            {
                $param = array ();

                $param['tab_id'] = $tab2_id;
                $param['name'] = 'property'.$information_propertys_items_id;
                $param['caption'] = $row['information_propertys_name'];
                $param['type'] = 10; // Поле ввода.

                // Возникала ошибка при добавлении/редактировании информационного элемента
                // присваиваем веденное ранее значение
                if (isset ($_REQUEST['property'.$information_propertys_items_id]))
                {
                    $value = to_str($_REQUEST['property'.$information_propertys_items_id]);
                }
                else
                {
                    // Добавление информационного элемента
                    if ($information_item_id == 0)
                    {
                        // Присваиваем значение по умолчанию
                        $value = $row['information_propertys_define_value'];
                    }
                    else // Редактирование информационного элемента
                        {
                        // Для дополнительного свойства задано значение
                        if ($row['information_propertys_items_value'] != '')
                        {
                            $value = $row['information_propertys_items_value'];
                        }
                        // Для дополнительного свойства не задано значение - присваиваем значение по умолчанию
                        else
                        {
                            $value = $row['information_propertys_define_value'];
                        }
                    }
                }

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

                $admin_forms_fields->AddField($param);
                break;
            }
        case 9 : // Дата-время
            {
                $param = array ();

                $param['tab_id'] = $tab2_id;
                $param['name'] = 'property'.$information_propertys_items_id;
                $param['caption'] = $row['information_propertys_name'];
                $param['type'] = 11; // Поле ввода.

                // Возникала ошибка при добавлении/редактировании информационного элемента
                // присваиваем веденное ранее значение
                if (isset ($_REQUEST['property'.$information_propertys_items_id]))
                {
                    $value = to_str($_REQUEST['property'.$information_propertys_items_id]);
                }
                else
                {
                    // Добавление информационного элемента
                    if ($information_item_id == 0)
                    {
                        // Присваиваем значение по умолчанию
                        $value = $row['information_propertys_define_value'];
                    }
                    else // Редактирование информационного элемента
                        {
                        // Для дополнительного свойства задано значение
                        if ($row['information_propertys_items_value'] != '')
                        {
                            $value = $row['information_propertys_items_value'];
                        }
                        // Для дополнительного свойства не задано значение - присваиваем значение по умолчанию
                        else
                        {
                            $value = $row['information_propertys_define_value'];
                        }
                    }
                }

                $param['value'] = $value;
                $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_items_id;
                $param['caption'] = $row['information_propertys_name'];
                $param['type'] = 0; // Поле ввода.

                // Возникала ошибка при добавлении/редактировании информационного элемента
                // присваиваем веденное ранее значение
                if (isset ($_REQUEST['property'.$information_propertys_items_id]))
                {
                    $value = to_str($_REQUEST['property'.$information_propertys_items_id]);
                }
                else
                {
                    // Добавление информационного элемента
                    if ($information_item_id == 0)
                    {
                        // Присваиваем значение по умолчанию
                        $value = $row['information_propertys_define_value'];
                    }
                    else // Редактирование информационного элемента
                        {
                        // Для дополнительного свойства задано значение
                        if ($row['information_propertys_items_value'] != '')
                        {
                            $value = $row['information_propertys_items_value'];
                        }
                        // Для дополнительного свойства не задано значение - присваиваем значение по умолчанию
                        else
                        {
                            $value = $row['information_propertys_define_value'];
                        }
                    }
                }

                $param['value'] = $value;

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

$admin_forms_fields->SetExternalHtml($html);

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

    $blog_row = $Blog->GetBlogAssociatedInformationSystem($information_system_id);

    if ($blog_row)
    {
        // Блоги
        $tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_information_systems']['information_items_form_tab_5']);

        // Доступность сообщения блога группам пользователей
        $param = array ();
        $param['tab_id'] = $tab_id;
        $param['name'] = 'information_items_blog_accessibility';
        $param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_blog_accessibility'];
        $param['type'] = 2; // Выпадающий список.
        $param['value'] = $information_item_blog_accessibility;

        $items = array ();
        $items[0] = $GLOBALS['MSG_information_systems']['information_groups_add_form_blog_all'];
        $items[1] = $GLOBALS['MSG_information_systems']['information_groups_add_form_blog_friends'];
        $items[2] = $GLOBALS['MSG_information_systems']['information_groups_add_form_blog_privat'];

        $param['items'] = $items;

        $admin_forms_fields->AddField($param);

        // Доступность для просмотра комментариев к сообщению блога группам пользователей
        $param = array ();
        $param['tab_id'] = $tab_id;
        $param['name'] = 'information_items_blog_show_comments_mode';
        $param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_blog_show_comments_mode'];
        $param['type'] = 2; // Выпадающий список.
        $param['value'] = $information_item_blog_show_comments_mode;

        //$items = array('Всем', 'Друзьям', 'Лично');
        $param['items'] = $items;

        $admin_forms_fields->AddField($param);

        // Режим добавления комментариев
        $param = array ();
        $param['tab_id'] = $tab_id;
        $param['name'] = 'information_items_blog_add_comments_mode';
        $param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_blog_add_comments_mode'];
        $param['type'] = 2; // Выпадающий список.
        $param['value'] = $information_item_blog_add_comments_mode;

        //$items = array('Всем', 'Друзьям', 'Лично');
        $param['items'] = $items;

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

// Кнопка "Сохранить".
$param = array ();
$param['name'] = 'save_information_item';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_save_form_button_name'];
$param['image'] = '/admin/images/add.gif';
$param['attributes']['onclick'] = "return doSendForm('{$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_item';
$param['caption'] = $GLOBALS['MSG_information_systems']['information_items_add_form_button_name'];
$param['image'] = '/admin/images/add.gif';
$param['attributes']['onclick'] = "return doSendForm('{$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();
?>