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

$DataBase = & singleton('DataBase');

// Идентификатор типовой динамической страницы
$lib_id = to_int($_POST['lib_id']);

// ID родительского раздела
$structure_parent_id = to_int($_POST["insert_structure_parent_id"]);

$menu_id = to_int($_POST["menu_id"]); // меню

// Видимость узла структуры
if (isset($_POST["structure_show"]))
{
	$structure_show = 1;
}
else
{
	$structure_show = 0;
}

// Активность страницы
if (isset($_POST["structure_activity"]))
{
	$structure_activity = 1;
}
else
{
	$structure_activity = 0;
}

// Индексация страницы
if (isset($_POST["structure_allow_indexation"]))
{
	$structure_allow_indexation = 1;
}
else
{
	$structure_allow_indexation = 0;
}

// Тип, загловок, описание, ключевые слова
$structure_type = to_int($_POST["structure_type"]);
$structure_title = to_str($_POST["structure_title"]);
$structure_description = to_str($_POST["structure_description"]);
$structure_keywords = to_str($_POST["structure_keywords"]);


// Доступность страницы
$structure_access = to_str($_POST["structure_access"]);

$structure_access_protocol = to_int($_POST['structure_access_protocol']);

// Определяем внешнюю ссылку
$structure_external_link = to_str($_POST["structure_external_link"]);

// Сортировка и наименования (в меню и путь)
$structure_order = to_int($_POST["structure_order"]);
$structure_path_name = to_str($_POST["structure_path_name"]);

// Если не корень, то убираем все лишнее слеши
if ((trim($structure_path_name) != '/'))
{
	// Только латинские буквы и цифры
	$structure_path_name = preg_replace('/[^a-zA-Z0-9.\-_]/', '', $structure_path_name);
}

$structure_menu_name = to_str($_POST["structure_menu_name"]);

// Макет, шаблон страницы, сайт, документ
$templates_id = to_int($_POST["templates_id"]);
$data_templates_id = to_int($_POST["data_templates_id"]);

if (isset($_POST["site_id"]))
{
	$site_id = to_int($_POST["site_id"]);
}
else
{
	$site_id = CURRENT_SITE;
}

$documents_id = to_int($_POST["documents_id"]);
$module = to_str($_POST["module"]);
$module_config = to_str($_POST["module_config"]);

if (trim($structure_path_name) == '')
{
	$url = new url();
	$structure_path_name = $url->translit_lower($structure_menu_name);
}


$query_select_mirror = "SELECT * FROM structure_table
							WHERE structure_path_name='" . quote_smart($structure_path_name) . "'
							AND structure_parent_id='" . to_int($structure_parent_id) . "' 
							AND site_id='" . to_int($site_id) . "';";

// Если это главная страница
if ((trim($structure_path_name) == '/' || trim($structure_path_name) == 'index') && $structure_parent_id == 0)
{
	// Выбираем главные страницы (у них два разных имени м. быть)
	$query_select_mirror = "SELECT * FROM structure_table
								WHERE (structure_path_name='index' OR structure_path_name='/')
								AND structure_parent_id='" . to_int($structure_parent_id) . "' 
								AND site_id='" . to_int($site_id) . "';";
}
else
{
	$query_select_mirror = "SELECT * FROM structure_table
								WHERE structure_path_name='" . quote_smart($structure_path_name) . "'
								AND structure_parent_id='" . to_int($structure_parent_id) . "' 
								AND site_id='" . to_int($site_id) . "';";
}

// Проверяем существование страницы с аналогичным именем у данного родителя
$DataBase->select($query_select_mirror);

// Идет редактирование узла структуры
if (isset($_POST["structure_id"]))
{
	$type = 1;
	$structure_id = to_int($_POST["structure_id"]);
}
else
{
	$type = 0;
	$structure_id = 0;
}

if ($structure_id != 0 && ($structure_allow_indexation == 0 || $structure_activity == 0)
&& class_exists('Search'))
{
	$result = $structure->IndexationStructure(0, 1, array('structure_id'=>$structure_id));

	if (count($result) != 0)
	{
		$Search = new Search();
		$line = each($result);

		if (isset($line['value'][1]))
		{
			$Search->Delete_search_words($line['value'][1]);
		}
	}
}

$param['structure_id'] = $structure_id;
$param['menu_id'] = $menu_id;
$param['templates_id'] = $templates_id;
$param['data_templates_id'] = $data_templates_id;
$param['site_id'] = $site_id;
$param['documents_id'] = $documents_id;
$param['structure_parent_id'] = $structure_parent_id;
$param['structure_show'] = $structure_show;
$param['structure_menu_name'] = $structure_menu_name;
$param['structure_title'] = $structure_title;
$param['structure_description'] = $structure_description;
$param['structure_keywords'] = $structure_keywords;
$param['structure_external_link'] = $structure_external_link;
$param['structure_order'] = $structure_order;
$param['structure_path_name'] = $structure_path_name;
$param['structure_type'] = $structure_type;
$param['module'] = $module;
$param['module_config'] = $module_config;
$param['structure_access'] = $structure_access;
$param['structure_access_protocol'] = $structure_access_protocol;
$param['structure_activity'] = $structure_activity;
$param['structure_allow_indexation'] = $structure_allow_indexation;
$param['lib_id'] = to_int($lib_id);
$param['structure_change_frequency'] = to_int($_REQUEST['structure_change_frequency']);
$param['structure_priority'] = to_float($_REQUEST['structure_priority']);

$structure = new Structure();

$insert_structure_id = $structure->InsertStructure($param);


if ($insert_structure_id)
{
	// Обрабатываем настройки типовой динамической страницы
	if ($structure_type == 2 && $lib_id)
	{
		$LA = array();
		$lib = new lib();

		// Извлекаем все параметры данной страницы
		$property_resource = $lib->GetAllLibProperties($lib_id);

		if ($property_resource && mysql_num_rows($property_resource) > 0)
		{
			while ($row = mysql_fetch_assoc($property_resource))
			{
				$param_name = 'lib_property_id_' . to_int($row['lib_property_id']);

				if (isset($_REQUEST[$param_name]))
				{
					// Добавляем в массив для сериализации
					switch (to_int($row['lib_property_type']))
					{
						case 1: // Флажок
						{
							$LA[to_str($row['lib_property_varible_name'])] = true;
							break;
						}
						case 0: // Поле ввода
						case 2: // XSL шаблон
						case 3: // Список
						case 4: // SQL-запрос
						default:
							{
								$LA[to_str($row['lib_property_varible_name'])] = to_str($_REQUEST[$param_name]);
								break;
							}
					}

				}
				else
				{
					// Если не передано
					switch (to_int($row['lib_property_type']))
					{
						case 0: // Поле ввода
						{
							$LA[to_str($row['lib_property_varible_name'])] = '';
							break;
						}
						case 1: // Флажок
						{
							$LA[to_str($row['lib_property_varible_name'])] = false;
							break;
						}
						case 2: // XSL шаблон
						{
							$LA[to_str($row['lib_property_varible_name'])] = '';
							break;
						}
						case 3: // Список
						{
							$LA[to_str($row['lib_property_varible_name'])] = '';
							break;
						}
						case 4: // SQL-запрос
						{
							$LA[to_str($row['lib_property_varible_name'])] = '';
							break;
						}
					}
				}
			}

			// Сохраняем настройки
			if (count($LA) > 0)
			{
				if (!$lib->SaveLibPropertiesValue($lib_id, $insert_structure_id, $LA))
				{
					// Ошибка сохранения
					show_error_message($GLOBALS['MSG_structure']['error_add_edit_lib_file']);
				}
			}
		}
	}

	// определяем число свойств
	$result_propertys = $structure->GetAllStructureProperties($site_id);
	
	$count = mysql_num_rows($result_propertys);
		
	// Добавление узла структуры
	if ($structure_id == 0)
	{
		// Цикл по всем свойствам
		for ($i = 0; $i < $count; $i++)
		{
			$row_propertys = mysql_fetch_assoc($result_propertys);

			$structure_propertys_id = $row_propertys['structure_propertys_id'];

			$structure_propertys_values_file = '';
			$structure_propertys_values_value_small = '';
			$structure_propertys_values_file_small = '';

			$flag_insert_structure_property_value = false;

			switch ($row_propertys['structure_propertys_type'])
			{
				case 0: // Число
				case 3: // Список
				{
					// Пустое значение списка
					if (!isset($_REQUEST['propertys'. $structure_propertys_id])
					|| strlen($_REQUEST['propertys'. $structure_propertys_id]) == 0)
					{
						break;
					}
				}
				case 5: // Информационная система
				{					
					// Задано непустое значение
					if (to_str($_REQUEST['propertys'. $structure_propertys_id]) != '')
					{
						$structure_propertys_values_value = to_int($_REQUEST['propertys' . $structure_propertys_id]);
						$flag_insert_structure_property_value = true;
					}
					break;
				}

				case 2: // Файл
				{
					// Загружены файлы
					if (isset($_FILES['propertys' . $structure_propertys_id]['name']) && $_FILES['propertys' . $structure_propertys_id]['size'] > 0
					|| isset($_FILES['propertys' . $structure_propertys_id . '_small']['name']) && $_FILES['propertys' . $structure_propertys_id . '_small']['size'] > 0)
					{
						$flag_insert_structure_property_value = true;
						$structure_propertys_values_value = '';
					}

					break;
				}
				case 6 : // Визуальный редактор
				{
					// Задано непустое значение
					if (to_str($_REQUEST['propertys'. $structure_propertys_id]) != '')
					{
						// Тип дополнительного свойства - визуальный редактор и использовать типографироавние
						if (isset($_REQUEST['exec_typograph_for_prop' . $structure_propertys_id]) && class_exists('typograph'))
						{
							$typograph = new typograph();
							$structure_propertys_values_value = $typograph->ProcessTypographic(to_str($_REQUEST['propertys' . $structure_propertys_id]), isset($_REQUEST['trailing_punctuation_for_prop' . $structure_propertys_id]));
						}
						else
						{
							$structure_propertys_values_value = to_str($_REQUEST['propertys' . $structure_propertys_id]);
						}

						$flag_insert_structure_property_value = true;
					}

					break;

				}
				case 7 : // Флажок
				{
					if (isset($_REQUEST['propertys' . $structure_propertys_id]))
					{
						$structure_propertys_values_value = 1;
					}
					else
					{
						$structure_propertys_values_value = 0;
					}
					$flag_insert_structure_property_value = true;

					break;
				}

				// Строка
				// Большое текстовое поле
				// Дата
				// ДатаВремя
				default:
					{
						// Задано непустое значение
						if (to_str($_REQUEST['propertys' . $structure_propertys_id]) != '')
						{
							$structure_propertys_values_value = to_str($_REQUEST['propertys' . $structure_propertys_id]);

							$flag_insert_structure_property_value = true;
						}
						break;
					}
			}

			// Передена непустое значение дополнительного свойства - добавляем его в таблицу значений дополнительных свойств
			if ($flag_insert_structure_property_value)
			{
				// Вставляем свойства раздела сайта в таблицу связи
				$structure_propertys_values_id = $structure->InsertStructurePropertysValue(0, 0, $insert_structure_id,
				$structure_propertys_id, $structure_propertys_values_value,
				$structure_propertys_values_file, $structure_propertys_values_value_small,
				$structure_propertys_values_file_small);

				// Тип свойства - файл
				// Загружаем файлы на сервер
				if ($row_propertys['structure_propertys_type'] == 2 && $structure_propertys_values_id)
				{
					// Передан файл большого изображения
					if (isset($_FILES['propertys' . $structure_propertys_id]['name']) && $_FILES['propertys' . $structure_propertys_id]['size'] > 0)
					{
						$structure_propertys_values_value = $_FILES['propertys'. $structure_propertys_id]['name'];
					}
					
					// Передан файл малого изображения
					if (isset($_FILES['propertys' . $structure_propertys_id . '_small']['name']) && $_FILES['propertys' . $structure_propertys_id . '_small']['size'] > 0)
					{
						$structure_propertys_values_value_small = $_FILES['propertys' . $structure_propertys_id . '_small']['name'];
					}
					elseif ($structure_propertys_values_value != '')
					{
						$structure_propertys_values_value_small = $structure_propertys_values_value;
					}


					if ($structure_propertys_values_value != '')
					{
						// Определяем расширение загружаемого файла большго изображения
						$exp = $kernel->GetExtension($structure_propertys_values_value);

						if ($exp != '')
						{
							$exp = '.' . $exp;
						}
					}
					else
					{
						$exp = '';
					}

					if ($structure_propertys_values_value_small != '')
					{
						// Определяем расширение загружаемого файла малого изображения
						$exp_small = $kernel->GetExtension($structure_propertys_values_value_small);

						if ($exp_small != '')
						{
							$exp_small = '.' . $exp_small;
						}
					}
					else
					{
						$exp_small = '';
					}

					// Проверяем существует ли директория, в которую загружаем файл
					if (is_dir(CMS_FOLDER . UPLOADDIR . 'private/'))
					{
						$fname_big = CMS_FOLDER.UPLOADDIR . 'private/structure_propertys_image_' . $structure_propertys_values_id . $exp;
						$fname_small = CMS_FOLDER.UPLOADDIR . 'private/structure_propertys_small_image_' . $structure_propertys_values_id . $exp_small;

						$param['path_source_big_image'] =  to_str($_FILES['propertys' . $structure_propertys_id]['tmp_name']); //путь к файлу-источнику большого изображения;
						$param['path_source_small_image'] = to_str($_FILES['propertys' . $structure_propertys_id . '_small']['tmp_name']);  //путь к файлу-источнику малого изображения;
						$param['original_file_name_big_image'] = to_str($_FILES['propertys' . $structure_propertys_id]['name']); //оригинальное имя файла большого изображения
						$param['path_target_big_image'] =  $fname_big;//путь к создаваемому файлу большого изображения;
						$param['path_target_small_image'] = $fname_small; //путь к создаваемому файлу малого изображения;
						$param['original_file_name_small_image'] = $_FILES['propertys'. $structure_propertys_id . '_small']['name']; //оригинальное имя файла малого изображения
						$param['use_big_image'] = isset($_REQUEST['used_big_image_propertys' . $structure_propertys_id]); //использовать большое изображение для создания малого (true - использовать (по умолчанию), false - не использовать)

						$param['max_width_big_image'] = to_int($_REQUEST['big_image_max_width_propertys' . $structure_propertys_id]);//значение максимальной ширины большого изображения
						$param['max_height_big_image'] = to_int($_REQUEST['big_image_max_height_propertys'. $structure_propertys_id]);//значение максимальной высоты большого изображения
						$param['max_width_small_image'] = to_int($_REQUEST['small_image_max_width_propertys' . $structure_propertys_id]);//значение максимальной ширины малого изображения;
						$param['max_height_small_image'] = to_int($_REQUEST['small_image_max_height_propertys'. $structure_propertys_id]); //значение максимальной высоты малого изображения;

						$param['isset_big_image'] = false; //существует ли большое изображение (true - существует, false - не существует (по умолчанию))

						$result = $kernel->AdminLoadFiles($param);

						if ($result['big_image'])
						{
							$structure_propertys_values_file = basename($param['path_target_big_image']);
						}
						else
						{
							$structure_propertys_values_value = '';
						}


						if ($result['small_image'])
						{
							$structure_propertys_values_file_small = basename($param['path_target_small_image']);
						}
						else
						{
							$structure_propertys_values_value_small = '';
						}
					}

					$structure->InsertStructurePropertysValue(1, $structure_propertys_values_id, $insert_structure_id,
					$structure_propertys_id, $structure_propertys_values_value,
					$structure_propertys_values_file, $structure_propertys_values_value_small,
					$structure_propertys_values_file_small);

				}
			}

		}
	}

	else // Обновление свойств узла структуры
	{		
		// обновляем старые свойства элемента в таблице связи
		for ($i = 0; $i < $count; $i++)
		{
			$row_propertys = mysql_fetch_assoc($result_propertys);

			$structure_propertys_id = $row_propertys['structure_propertys_id'];

			//$structure_propertys_small_image = '';

			$structure_propertys_values_file = '';
			$structure_propertys_values_value_small = '';
			$structure_propertys_values_file_small = '';

			$flag_load_file = false;

			switch ($row_propertys['structure_propertys_type'])
			{
				case 0: // Число
				case 3: // Список	
				case 5: // Информационная система
				{
					$structure_propertys_values_value = to_int($_REQUEST['propertys'. $structure_propertys_id]);

					break;
				}

				case 2: // Файл
				{
					$mas_propertys_value = $structure->GetStructureProperty(array(0=>$insert_structure_id));

					$structure_propertys_values_value = to_str($mas_propertys_value[$insert_structure_id][$structure_propertys_id]['structure_propertys_values_value']);
					$structure_propertys_values_file = to_str($mas_propertys_value[$insert_structure_id][$structure_propertys_id]['structure_propertys_values_file']);

					if ($structure_propertys_values_value != '')
					{
						$isset_big_image = true;
					}
					else
					{
						$isset_big_image = false;
					}


					$structure_propertys_values_value_small = to_str($mas_propertys_value[$insert_structure_id][$structure_propertys_id]['structure_propertys_values_value_small']);
					$structure_propertys_values_file_small = to_str($mas_propertys_value[$insert_structure_id][$structure_propertys_id]['structure_propertys_values_file_small']);

					if ($structure_propertys_values_value_small != '')
					{
						$isset_small_image = true;
					}
					else
					{
						$isset_small_image = false;
					}

					if (isset($_FILES['propertys'. $structure_propertys_id]['name']) && $_FILES['propertys'. $structure_propertys_id]['size'] > 0
					|| isset($_FILES['propertys' . $structure_propertys_id . '_small']['name']) && $_FILES['propertys' . $structure_propertys_id . '_small']['size'] > 0)
					{
						$flag_load_file = true; // Флаг, определяющий загружать файлы
						// для дополнительного свойства или нет
					}
					else
					{
						$flag_load_file = false;
					}


					break;
				}

				case 6 : // Визуальный редактор
				{

					// Тип дополнительного свойства - визуальный редактор и использовать типографироавние
					if (isset($_REQUEST['exec_typograph_for_prop'.$structure_propertys_id]) && class_exists('typograph'))
					{
						$typograph = new typograph();
						
						$structure_propertys_values_value = $typograph->ProcessTypographic(to_str($_REQUEST['propertys'. $structure_propertys_id]), isset($_REQUEST['trailing_punctuation_for_prop'.$structure_propertys_id]));
					}
					else
					{
						$structure_propertys_values_value = to_str($_REQUEST['propertys'. $structure_propertys_id]);
					}


					break;

				}

				case 7 : // Флажок
				{
					if (isset($_REQUEST['propertys'. $structure_propertys_id]))
					{
						$structure_propertys_values_value = 1;
					}
					else
					{
						$structure_propertys_values_value = 0;
					}
					break;
				}

				// Строка
				// Большое текстовое поле

				// Дата
				// ДатаВремя
				default:
					{
						$structure_propertys_values_value = to_str($_REQUEST['propertys'. $structure_propertys_id]);
						break;
					}
			}
			
			// Проверяем, есть ли уже значение для текущего дополнительного свойства
			
			// Получаем информацию о значении дополнительного совйства узла структуры
			$row_propertys_items = $structure->GetStructurePropertyValue($insert_structure_id, $structure_propertys_id);
			
			// Для узла структуры задано значение текущего доп. свойства
			if ($row_propertys_items)
			{
			 	$count_row = 1;
			}
			else 
			{
				$count_row = 0;
			}
						
			// Идентификатор значения дополнительного свойства
			$structure_propertys_values_id = to_int($row_propertys_items['structure_propertys_values_id']);

			// Для дополнительного свойства задано значение или свойство является флажком, т.к.
			if ($structure_propertys_values_value !== ''
			|| $structure_propertys_values_value_small != ''
			|| $row_propertys['structure_propertys_type'] == 7
			|| $flag_load_file)
			{
				if ($count_row == 0)
				{
					// Передано пустое значение элемента списка	
					if ($row_propertys['structure_propertys_type'] == 3 && $structure_propertys_values_value == 0)
					{
						continue;
					}
					
					$type_insert = 0; // Вставка					
				}
				else
				{
					// Передано пустое значение элемента списка	
					if ($row_propertys['structure_propertys_type'] == 3 && $structure_propertys_values_value == 0)
					{												
						$structure->DeletePropertyValue($structure_propertys_values_id);
						
						continue;
					}
					
					$type_insert = 1; // Обновление
				}


				$structure_propertys_values_id = $structure->InsertStructurePropertysValue($type_insert,
				$structure_propertys_values_id, $insert_structure_id, $structure_propertys_id,
				$structure_propertys_values_value,  $structure_propertys_values_file,
				$structure_propertys_values_value_small, $structure_propertys_values_file_small);


				// Загружаем файлы для дополнительного свойства типа "Файл"
				if ($structure_propertys_values_id && $row_propertys['structure_propertys_type'] == 2 && $flag_load_file)
				{
					// Передан файл большого изображения - переопределяем значение из БД
					if (isset($_FILES['propertys' . $structure_propertys_id]['name']) && $_FILES['propertys' . $structure_propertys_id]['size'] > 0)
					{
						$structure_propertys_values_value = $_FILES['propertys'. $structure_propertys_id]['name'];
					}


					// Передан файл малого изображения - переопределяем значение из БД
					if (isset($_FILES['propertys' . $structure_propertys_id . '_small']['name']) && $_FILES['propertys' . $structure_propertys_id . '_small']['size'] > 0)
					{
						$structure_propertys_values_value_small = $_FILES['propertys' . $structure_propertys_id . '_small']['name'];
					}

					elseif ($structure_propertys_values_value_small == '')
					{
						$structure_propertys_values_value_small = $structure_propertys_values_value;
					}


					// Ранее не был загружен файл и сейчас не задали файл для загрузки
					if ($structure_propertys_values_value == '')
					{
						$structure_propertys_values_value = $structure_propertys_values_value_small;
					}

					if ($structure_propertys_values_value != '')
					{
						#определяем расширение загружаемого файла
						$exp = $kernel->GetExtension($structure_propertys_values_value);

						if ($exp != '')
						{
							$exp = '.'. $exp;
						}
					}
					else
					{
						$exp = '';
					}

					if ($structure_propertys_values_value_small != '')
					{
						// Определяем расширение загружаемого файла малого изображения
						$exp_small = $kernel->GetExtension($structure_propertys_values_value_small);

						if ($exp_small != '')
						{
							$exp_small = '.' . $exp_small;
						}
					}
					else
					{
						$exp_small = '';
					}

					// проверяем существует ли директория, в которую загружаем файл
					if (is_dir(CMS_FOLDER . UPLOADDIR . 'private/'))
					{

						$fname_big = CMS_FOLDER.UPLOADDIR . 'private/structure_propertys_image_' . $structure_propertys_values_id . $exp;
						$fname_small = CMS_FOLDER.UPLOADDIR . 'private/structure_propertys_small_image_' . $structure_propertys_values_id . $exp_small;

						$param = array();
						$param['path_source_big_image'] =  to_str($_FILES['propertys' . $structure_propertys_id]['tmp_name']); //путь к файлу-источнику большого изображения;
						$param['path_source_small_image'] = to_str($_FILES['propertys' . $structure_propertys_id . '_small']['tmp_name']);  //путь к файлу-источнику малого изображения;
						$param['original_file_name_big_image'] = to_str($_FILES['propertys' . $structure_propertys_id]['name']); //оригинальное имя файла большого изображения
						$param['path_target_big_image'] =  $fname_big;//путь к создаваемому файлу большого изображения;

						$param['path_target_small_image'] = $fname_small; //путь к создаваемому файлу малого изображения;
						$param['original_file_name_small_image'] = $_FILES['propertys'. $structure_propertys_id . '_small']['name']; //оригинальное имя файла малого изображения
						$param['use_big_image'] = isset($_REQUEST['used_big_image_propertys' . $structure_propertys_id]); //использовать большое изображение для создания малого (true - использовать (по умолчанию), false - не использовать)

						$param['max_width_big_image'] = to_int($_REQUEST['big_image_max_width_propertys' . $structure_propertys_id]);//значение максимальной ширины большого изображения
						$param['max_height_big_image'] = to_int($_REQUEST['big_image_max_height_propertys'. $structure_propertys_id]);//значение максимальной высоты большого изображения
						$param['max_width_small_image'] = to_int($_REQUEST['small_image_max_width_propertys' . $structure_propertys_id]);//значение максимальной ширины малого изображения;
						$param['max_height_small_image'] = to_int($_REQUEST['small_image_max_height_propertys'. $structure_propertys_id]); //значение максимальной высоты малого изображения;

						$param['isset_big_image'] = $isset_big_image; //существует ли большое изображение (true - существует, false - не существует (по умолчанию))

						// Ранее задано большое изображение и загружаем новое
						if ($isset_big_image && $param['path_source_big_image'])
						{
							$param_delete_value['del_big_image'] = true;
							$param_delete_value['del_small_image'] =  false;

							// Флаг, определяющий создавать большое изображение или нет
							$create_big_image = true;

							$structure->DeletePropertyValue($structure_propertys_values_id, $param_delete_value);
						}
						else
						{
							$create_big_image = false;
						}

						// Ранее задано малое изображение и загружаем новое или создаем его
						//из большого и при этом источник большого изображения задан
						if ($isset_small_image && ($param['path_source_small_image'] || $param['use_big_image'] && $param['path_source_big_image']))
						{
							$param_delete_value['del_big_image'] = false;
							$param_delete_value['del_small_image'] =  true;

							// Флаг, определяющий создавать малое изображение или нет
							$create_small_image = true;

							$structure->DeletePropertyValue($structure_propertys_values_id, $param_delete_value);
						}
						else
						{
							$create_small_image = false;
						}

						$result = $kernel->AdminLoadFiles($param);

						if ($result['big_image'])
						{
							$structure_propertys_values_file = basename($param['path_target_big_image']);
						}
						elseif ($create_big_image)
						{
							// Задан флаг создания большого изображения, но оно не создалось
							// Задаем пустые значения для большого изображения
							$structure_propertys_values_value = '';
							$structure_propertys_values_file = '';
						}

						if ($result['small_image'])
						{
							$structure_propertys_values_file_small = basename($param['path_target_small_image']);
						}
						elseif ($create_small_image)
						{
							// Задан флаг создания малого изображения, но оно не создалось
							// Задаем пустые значения для малого изображения
							$structure_propertys_values_value_small = '';
							$structure_propertys_values_file_small = '';
						}

					}

					$structure->InsertStructurePropertysValue(1, $structure_propertys_values_id, $insert_structure_id,
					$structure_propertys_id, $structure_propertys_values_value,  $structure_propertys_values_file,
					$structure_propertys_values_value_small, $structure_propertys_values_file_small);

				}

			}
			else // Не задано значение дополнительного свойства
			{
				// Для дополнительного свойства ранее загружено значение и
				// дополнительное свойство - файл и не задано малое изображение или нефайл
				if ($count_row && ($row_propertys['structure_propertys_type'] == 2 && $structure_propertys_values_file_small == '' || $row_propertys['structure_propertys_type'] != 2))
				{
					// Удаляем значение дополнительного свойства
					$structure->DeletePropertyValue($structure_propertys_values_id);
				}
			}
		}
	}

	// Событийная индексация, остается здесь, т.к. св-ва можно переиндексирвоать только после добавления самой структуры
	if (class_exists('Search'))
	{
		$result = $structure->IndexationStructure(0, 1, array('structure_id'=>$insert_structure_id));
		if (count($result) != 0)
		{
			$Search = new Search();
			$line = each($result);

			if (isset($line['value'][1]))
			{
				$Search->Delete_search_words($line['value'][1]);
				$Search->Insert_search_word($result);
			}
		}
	}

	?>
	<script>
	var ElementInput = document.createElement("input");
	ElementInput.setAttribute("type", "hidden");
	ElementInput.setAttribute("name", "structure_id");
	ElementInput.setAttribute("value", "<?php echo $insert_structure_id?>");

	document.getElementById('EditAddNode').appendChild(ElementInput);
	</script>
	<?php 
	if ($structure_id)
	{
		show_message($GLOBALS['MSG_structure']['structure_edit_success']);
	}
	else
	{
		show_message($GLOBALS['MSG_structure']['structure_add_success']);
	}
}
else
{
	if ($structure_id)
	{
		show_error_message($GLOBALS['MSG_structure']['structure_edit_error']);
	}
	else
	{
		show_error_message($GLOBALS['MSG_structure']['structure_add_error']);
	}
}

?>
