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

// Обновление информационной группы
if (isset ($_POST['information_group_id']))
{
	$type = 1;
	$information_group_id = to_int($_POST['information_group_id']);
}
else
{
	$type = 0;
	$information_group_id = 0;
}

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

// В группе уже существует информационная подгруппа с таким URL как и
// добавляемой/редактируемой группы
if ($information_system->IssetGroup($_POST['information_group_parent_id'], $information_system_id, $_POST['information_group_path'], $type, $information_group_id))
{
	$error_information_group = 1;
	show_error_message($GLOBALS['MSG_information_systems']['error_URL_information_group']);
	return ;
}

// В группе существует информационный элемент с названием в URL, совпадающим с URL добавляемой/редактируемой подгруппы
if ($information_system->IssetItemGroupInsertUpdate($_POST['information_group_parent_id'], $information_system_id, $_POST['information_group_path']))
{
	$error_information_group = 1;
	show_error_message($GLOBALS['MSG_information_systems']['error_information_group_URL_add_edit_URL']);
	return ;
}

// Получаем информацию об информационной системе
$information_system_info = $information_system->GetInformationSystem($information_system_id);

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

//$param['information_groups_small_image'] = $information_group_small_image;

if (isset ($_POST['information_group_create_url_type']))
{
	$param['information_groups_create_url_type'] = to_int($_POST['information_group_create_url_type']);
}
else
{
	$param['information_groups_create_url_type'] = 0;
}

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

$param['information_groups_activity'] = to_int($_POST['information_group_activity']);

// Проверяем подключен ли модуль типографики.
if (class_exists("typograph"))
{
	// Модуль типографики подключен, проверяем, нужно ли применять типографику описания.
	if (isset ($_POST['use_typograph_for_description']))
	{
		// Создаем объект типографа и типографируем текст.
		$typograph = new typograph();

		$information_group_description = $typograph->ProcessTypographic($information_group_description, isset ($_POST['trailing_punctuation_for_description']));
	}
} // END типографики.

$information_group_seo_keywords = trim(to_str($_POST['information_group_seo_keywords']));

// Обработка ключевых слов группы //
if ($information_group_seo_keywords == '')
{
	if (class_exists('Tag'))
	{
		$Tag = & singleton('Tag');

		// Вставка тэгов автоматически разрешена
		if ($information_system_info && $information_system_info['information_systems_apply_keywords_automatic'] == 1)
		{
			// получаем хэш названия и описания группы
			$array_text = $kernel->ClearHtml(to_str($_POST['information_group_name']) . " " . $information_group_description, array (
				'hash_function' => 'crc32'
			));

			$array_text = array_unique($array_text);
					
			// Получаем список меток
			$tags_result = $Tag->GetAllTags();

			// Есть хотя бы одна метка
			if (mysql_num_rows($tags_result))
			{
				$coeff_intersect = array ();

				while ($tag_row = mysql_fetch_assoc($tags_result))
				{
					// получаем хэш тэга
					$array_tags = $kernel->ClearHtml($tag_row['tag_name'], array (
					'hash_function' => 'crc32'
					));

					// получаем коэффициент схожести текста каталога с тэгом
					$array_tags = array_unique($array_tags);

					// Текст метки меньше текста товара, т.к. должна входить метка в текст товара, а не наоборот
					if (count($array_text) >= count($array_tags))
					{
						// Расчитываем пересечение
						$intersect = count(array_intersect($array_text, $array_tags));

						if (count($array_tags) != 0)
						{
							$coefficient = $intersect / count($array_tags);
						}
						else
						{
							$coefficient = 0;
						}

						// Найдено полное вхождение
						if ($coefficient == 1)
						{
							// Если тэг еще не учтен
							if (!in_array($tag_row['tag_name'], $coeff_intersect))
							{
								// Добавляем в массив
								$coeff_intersect[] = $tag_row['tag_name'];
							}
						}
					}
				}

				// Найдено соответствие с тэгами
				if (count($coeff_intersect) > 0)
				{
					$information_group_seo_keywords = implode(", ", $coeff_intersect);
				}
			}
		}
	}
}

$param['site_users_id'] = to_int($_POST['site_users_id']);
$param['sns_type_id'] = to_int($_POST['sns_type_id']);

if ($group_id = $information_system->InsertInformationGroups($type, $information_group_id, $information_system_id, $_POST['information_group_parent_id'], $_POST['information_group_name'], $information_group_description, $_POST['information_group_order'], $_POST['information_group_path'], '', $information_group_allow_indexation, $_POST['information_group_seo_title'], $_POST['information_group_seo_description'], $information_group_seo_keywords, $_POST['information_group_access'], false, $param))
{
	$param = array();

	// Формируем путь к папке информационной группы
	$group_dir = $information_system->GetInformationGroupDir($group_id);

	// Формируем путь к папке информационной группы
	$uploaddir = CMS_FOLDER . $group_dir;

	$information_group_image = '';
	$information_group_small_image = '';

	if (isset ($_FILES['information_group_image']['tmp_name']) && $_FILES['information_group_image']['size'])
	{
		$kernel->PathMkdir($group_dir);

		$file_name = $file->PathCorrection($_FILES['information_group_image']['name']);

		// Не преобразовываем название загружаемого файла
		if ($information_system_info['information_systems_file_name_conversion'] == 0)
		{
			$information_group_image = $uploaddir . $file_name;

			if (isset ($_POST['used_big_image_information_group_image']))
			{
				$information_group_small_image = $uploaddir . 'small_' . $file_name;
			}
		}
		else
		{
			// Определяем расширение файла
			$exp = mb_strtolower($kernel->GetExtension($_FILES['information_group_image']['name']));

			$information_group_image = $uploaddir . 'information_groups_' . $group_id . '.' . $exp;
			$information_group_small_image = $uploaddir . 'small_information_groups_' . $group_id . '.' . $exp;
		}
	}

	// Задано малое изображение и при этом не задано создание малого изображения
	// из большого или задано создание малого изображения из большого и
	// при этом не задано большое изображение.
	if (isset ($_FILES['information_group_image_small']['tmp_name'])
	&& $_FILES['information_group_image_small']['size']
	&& (isset ($_POST['used_big_image_information_group_image'])
	&& !(isset ($_FILES['information_group_image']['tmp_name'])
	&& $_FILES['information_group_image']['size'])
	|| !isset ($_POST['used_big_image_id_information_group_image'])))
	{
		$kernel->PathMkdir($group_dir);
		// Определяем расширение файла.
		$exp = mb_strtolower($kernel->GetExtension($_FILES['information_group_image_small']['name']));

		// Определяем создавать ли большое изображение из малого
		// тип загружаемого файла является допустимым для загрузки файла.
		if (in_array(mb_strtoupper($exp), $kernel->available_extantions))
		{
			// Добавление новой записи
			if ($type == 0)
			{
				// Не задано большое изображение, создаем бальшое изображение из малого
				if (!(isset ($_FILES['information_group_image']['tmp_name']) && $_FILES['information_group_image']['size']))
				{
					$create_big_image = true;
				}
				// Задано большое изображение
				else
				{
					$create_big_image = false;
				}
			}
			// Редактирование записи
			else
			{
				// Определяем существует ли большое изображение для данной инфогруппы
				$mas_information_group = $information_system->GetInformationGroup($information_group_id);

				// Для инфогруппы ранее задано изображение
				if ($mas_information_group['information_groups_image'] != '')
				{
					// Существует ли большое изображение (true - существует, false - не существует (по умолчанию))
					$param['isset_big_image'] = true;
					$create_big_image = false;
				}
				else // Для информационной группы ранее не задано большое изображение
				{
					if (empty ($information_group_image))
					{
						$create_big_image = true;
					}
					else
					{
						$create_big_image = false;
					}
				}
			}
		}
		// Тип загружаемого файла является недопустимым для загрузки файла
		else
		{
			$create_big_image = false;
		}

		$file_name = $file->PathCorrection($_FILES['information_group_image_small']['name']);

		if (in_array(mb_strtoupper($exp), $kernel->available_extantions))
		{
			// Не преобразовываем название загружаемого файла
			if ($information_system_info['information_systems_file_name_conversion'] == 0)
			{
				if ($create_big_image)
				{
					$information_group_image = $uploaddir . $file_name;
					$information_group_small_image = $uploaddir . 'small_' . $file_name;
				}
				else
				{
					$information_group_small_image = $uploaddir . $file_name;
				}
			}
			else
			{
				$information_group_small_image = $uploaddir . 'small_information_groups_' . $group_id . '.' . $exp;

				if ($create_big_image)
				{
					$information_group_image = $uploaddir . 'information_groups_' . $group_id . '.' . $exp;
				}
			}
		}
		else
		{
			if ($create_big_image)
			{
				$information_group_image = '';
			}

			// Не преобразовываем название загружаемого файла
			if ($information_system_info['information_systems_file_name_conversion'] == 0)
			{
				$information_group_small_image = $uploaddir . $file_name;
			}
			else
			{
				$information_group_small_image = $uploaddir . 'small_information_groups_' . $group_id . '.' . $exp;
			}
		}
	}

	// Путь к файлу-источнику большого изображения;
	$param['path_source_big_image'] = to_str($_FILES['information_group_image']['tmp_name']);

	// Путь к файлу-источнику малого изображения;
	$param['path_source_small_image'] = to_str($_FILES['information_group_image_small']['tmp_name']);

	// Оригинальное имя файла большого изображения
	$param['original_file_name_big_image'] = to_str($_FILES['information_group_image']['name']);
	// Путь к создаваемому файлу большого изображения;
	$param['path_target_big_image'] = $information_group_image;

	// Путь к создаваемому файлу малого изображения;
	$param['path_target_small_image'] = $information_group_small_image;

	// Оригинальное имя файла малого изображения
	$param['original_file_name_small_image'] = to_str($_FILES['information_group_image_small']['name']);
	// Использовать большое изображение для создания малого (true - использовать (по умолчанию), false - не использовать)
	$param['use_big_image'] = isset ($_POST['used_big_image_information_group_image']);

	// Значение максимальной ширины большого изображения
	$param['max_width_big_image'] = to_int($_POST['big_image_max_width_information_group_image']);

	// Значение максимальной высоты большого изображения
	$param['max_height_big_image'] = to_int($_POST['big_image_max_height_information_group_image']);

	// Значение максимальной ширины малого изображения;
	$param['max_width_small_image'] = to_int($_POST['small_image_max_width_information_group_image']);

	// Значение максимальной высоты малого изображения;
	$param['max_height_small_image'] = to_int($_POST['small_image_max_height_information_group_image']);

	//$InformationSystemRow = $information_system->GetInformationSystem(to_int($_POST['information_system_id']));

	$information_system_dir = CMS_FOLDER . UPLOADDIR . 'information_system_' . $information_system_id . '/';

	if ($information_system_info['information_systems_watermark_file'] != '' && is_file($information_system_dir . $information_system_info['information_systems_watermark_file']))
	{
		$watermark_file = $information_system_dir . $information_system_info['information_systems_watermark_file'];
	}
	else
	{
		$watermark_file = '';
	}

	// Путь к файлу с "водяным знаком"
	$param['watermark_file_path'] = $watermark_file;

	// Позиция "водяного знака" по оси X
	$param['watermark_position_x'] = to_str($_POST['image_watermark_position_x_information_group_image']);

	// Позиция "водяного знака" по оси Y
	$param['watermark_position_y'] = to_str($_POST['image_watermark_position_y_information_group_image']);

	// Наложить "водяной знак" на большое изображение (true - наложить (по умолчанию), false - не наложить);
	$param['used_watermark_big_image'] = isset ($_POST['big_image_is_use_watermark_information_group_image']);

	// Наложить "водяной знак" на малое изображение (true - наложить (по умолчанию), false - не наложить);
	$param['used_watermark_small_image'] = isset ($_POST['small_image_is_use_watermark_information_group_image']);

	// Сохранять пропорции изображения для большого изображения
	$param['preserve_aspect_ratio_for_big_image'] = isset ($_POST['big_image_preserve_aspect_ratio_information_group_image']);

	// Сохранять пропорции изображения для малого изображения
	$param['preserve_aspect_ratio_for_small_image'] = isset ($_POST['small_image_preserve_aspect_ratio_information_group_image']);
	
	$result = $kernel->AdminLoadFiles($param);

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

	if ($result['small_image'])
	{
		$information_group_small_image = basename($param['path_target_small_image']);
	}
	else
	{
		$information_group_small_image = '';
	}
	//}
	/*else
	 {
	 $information_group_image = '';
	 $information_group_small_image = '';
	 }
	 */
	// Обновляем информацию о информационной группе после создания изображений
	$param_group = array();

	$param_group['information_groups_id'] = $group_id;
	$param_group['information_groups_image'] = $information_group_image;
	$param_group['information_groups_small_image'] = $information_group_small_image;

	$group_id = $information_system->InsertInformationGroup($param_group);

	// Информация о группе отредактирована
	if ($type)
	{
		show_message($GLOBALS['MSG_information_systems']['edit_information_groups_success']);
	}
	else // Информационная группа добавлена
	{
		show_message($GLOBALS['MSG_information_systems']['add_information_groups_success']);
	}

	// Добавляем/обновляем информационные группы
	// Определяем число свойств
	$result_propertys = $information_system->GetAllInformationGroupsPropertys($information_system_id);

	// Число свойств
	$count = mysql_num_rows($result_propertys);

	// Вставляем свойства для группы в таблицу связи
	if ($type == 0)
	{
		// ID последней только что вставленной записи
		$information_group_id = $group_id;

		// Цикл по всем свойствам
		for ($i = 0; $i < $count; $i++)
		{
			$row_propertys = mysql_fetch_assoc($result_propertys);

			$information_propertys_group_id = $row_propertys['information_propertys_groups_id'];
			$information_propertys_group_value_value = '';
			$information_propertys_group_value_value_small = '';

			// Свойство - файл
			if ($row_propertys['information_propertys_groups_type'] == 2)
			{
				if (isset ($_FILES['property' . $information_propertys_group_id]['name']) && $_FILES['property' . $information_propertys_group_id]['name'] != '')
				{
					$information_propertys_group_value_value = $_FILES['property' . $information_propertys_group_id]['name'];
				}

				// Загрузили только малое изображение
				if (isset ($_FILES['property' . $information_propertys_group_id . '_small']['name']) && $_FILES['property' . $information_propertys_group_id . '_small']['name'] != '')
				{
					$information_propertys_group_value_value_small = $_FILES['property' . $information_propertys_group_id . '_small']['name'];
				}
				else
				{
					$information_propertys_group_value_value_small = $information_propertys_group_value_value;
				}
			}
			else // Свойство - не файл
			{
				// Свойство - нефлажок
				if ($row_propertys['information_propertys_groups_type'] != 7)
				{
					// Свойство - список и задано нулевое (пустое) значение списка
					if ($row_propertys['information_propertys_groups_type'] == 3 && isset ($_REQUEST['property' . $information_propertys_group_id]) && $_REQUEST['property' . $information_propertys_group_id] == 0)
					{
						continue;
					}

					if (!isset ($_REQUEST['property' . $information_propertys_group_id]))
					{
						$_REQUEST['property' . $information_propertys_group_id] = '';
					}

					$information_propertys_group_value_value = to_str($_REQUEST['property' . $information_propertys_group_id]);
				}
				else // Свойство - флажок
				{
					$information_propertys_group_value_value = isset ($_REQUEST['property' . $information_propertys_group_id]) ? 1 : 0;
				}

				// Типограф.
				// Проверяем подключен ли модуль типографики.
				if (class_exists("typograph"))
				{
					// Модуль типографики подключен, проверяем, нужно ли применять типографику
					//для текущего свойства.
					if (isset ($_REQUEST['exec_typograph_for_prop' . $information_propertys_group_id]))
					{
						// Создаем объект типографа и типографируем текст.
						$typograph = new typograph();
						$information_propertys_group_value_value = $typograph->ProcessTypographic($information_propertys_group_value_value, isset ($_POST['trailing_punctuation_for_prop' . $information_propertys_group_id]));
					}
				} // END типографика.
			}

			// Вставляем свойства группы в таблицу связи
			$information_propertys_group_value_id = $information_system->InsertInformationPropertysGroupsValue(0, 0, $information_group_id, $information_propertys_group_id, $information_propertys_group_value_value, '', true, $information_propertys_group_value_value_small, '');

			// Загружаем файл
			// Тип свойства - файл
			if ($row_propertys['information_propertys_groups_type'] == 2)
			{
				// Параметры картинок для доп. свойства.
				$property_image_big_max_width = to_int($_POST['big_image_max_width_property' . $information_propertys_group_id]);
				$property_image_big_max_height = to_int($_POST['big_image_max_height_property' . $information_propertys_group_id]);
				$property_image_small_max_width = to_int($_POST['small_image_max_width_property' . $information_propertys_group_id]);
				$property_image_small_max_height = to_int($_POST['small_image_max_height_property' . $information_propertys_group_id]);

				//$uploaddir = CMS_FOLDER . UPLOADDIR . 'private/';
					
				if ($kernel->PathMkdir($group_dir))
				{
					$information_property_image = '';
					$information_property_small_image = '';

					if (isset($_FILES['property' . $information_propertys_group_id]['tmp_name']) && $_FILES['property' . $information_propertys_group_id]['size'])
					{
						// Не преобразовываем название загружаемого файла
						if ($information_system_info['information_systems_file_name_conversion'] == 0)
						{
							$file_name = $file->PathCorrection($_FILES['property' . $information_propertys_group_id]['name']);

							$information_property_image = $uploaddir . $file_name;

							if (isset ($_POST['used_big_image_id_property' . $information_propertys_group_id]))
							{
								$information_property_small_image = $uploaddir . 'small_' . $file_name;
							}
						}
						else
						{
							// Определяем расширение файла
							$exp = mb_strtolower($kernel->GetExtension($_FILES['property' . $information_propertys_group_id]['name']));

							$information_property_image = $uploaddir . 'information_groups_property_' . $information_propertys_group_value_id . '.' . $exp;
							$information_property_small_image = $uploaddir . 'small_information_groups_property_' . $information_propertys_group_value_id . '.' . $exp;
						}
					}

					// Задано малое изображение и при этом не задано создание малого изображения
					// из большого или задано создание малого изображения из большого и
					// при этом не задано большое изображение.

					if (isset ($_FILES['property' . $information_propertys_group_id . '_small']['tmp_name']) && $_FILES['property' . $information_propertys_group_id . '_small']['size'] && (isset ($_POST['used_big_image_property' . $information_propertys_group_id]) && !(isset ($_FILES['property' . $information_propertys_group_id]['tmp_name']) && $_FILES['property' . $information_propertys_group_id]['size']) || !isset ($_POST['used_big_image_id_property' . $information_propertys_group_id])))
					{
						// Определяем расширение файла.
						$exp = mb_strtolower($kernel->GetExtension($_FILES['property' . $information_propertys_group_id . '_small']['name']));

						// Определяем создавать ли большое изображение из малого
						// тип загружаемого файла является допустимым для загрузки файла.
						if (in_array(mb_strtoupper($exp), $kernel->available_extantions))
						{
							// Не задано большое изображение, создаем бальшое изображение из малого
							if (!(isset($_FILES['property' . $information_propertys_group_id]['tmp_name']) && $_FILES['property' . $information_propertys_group_id]['tmp_name'] != ''))
							{
								$create_big_image = true;
							}
							// Задано большое изображение
							else
							{
								$create_big_image = false;
							}
						}
						else
						{
							$create_big_image = false;
						}

						$file_name = $file->PathCorrection($_FILES['property' . $information_propertys_group_id . '_small']['name']);

						if ($information_system_info['information_systems_file_name_conversion'] == 0)
						{
							if (!$create_big_image || !(in_array(mb_strtoupper($exp), $kernel->available_extantions)))
							{
								$information_property_small_image = $uploaddir . $file_name;
							}
							else
							{
								$information_property_small_image = $uploaddir . 'small_' . $file_name;
							}
						}
						else
						{
							$information_property_small_image = $uploaddir . 'small_information_groups_property_' . $information_propertys_group_value_id . '.' . $exp;
						}

						if (in_array(mb_strtoupper($exp), $kernel->available_extantions))
						{
							// Создать большое изображение из малого
							if ($create_big_image)
							{
								if ($information_system_info['information_systems_file_name_conversion'] == 0)
								{
									$information_property_image = $uploaddir . $file_name;
								}
								else
								{
									$information_property_image = $uploaddir . 'information_groups_property_' . $information_propertys_group_value_id . '.' . $exp;
								}

							}
						}
						else
						{
							if ($create_big_image)
							{
								$information_property_image = '';
							}
						}
					}

					// Путь к файлу-источнику большого изображения;
					$param['path_source_big_image'] = to_str($_FILES['property' . $information_propertys_group_id]['tmp_name']);

					// Путь к файлу-источнику малого изображения;
					$param['path_source_small_image'] = to_str($_FILES['property' . $information_propertys_group_id . '_small']['tmp_name']);

					// Оригинальное имя файла большого изображения
					$param['original_file_name_big_image'] = to_str($_FILES['property' . $information_propertys_group_id]['name']);

					// Путь к создаваемому файлу большого изображения;
					$param['path_target_big_image'] = $information_property_image;

					// Путь к создаваемому файлу малого изображения;
					$param['path_target_small_image'] = $information_property_small_image;

					// Оригинальное имя файла малого изображения
					$param['original_file_name_small_image'] = to_str($_FILES['property' . $information_propertys_group_id . '_small']['name']);

					// Использовать большое изображение для создания малого (true - использовать (по умолчанию), false - не использовать)
					$param['use_big_image'] = isset ($_POST['used_big_image_property' . $information_propertys_group_id]);

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

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

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

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

					//$InformationSystemRow = $information_system->GetInformationSystem(to_int($_POST['information_system_id']));

					if (is_file($information_system_dir . $information_system_info['information_systems_watermark_file']))
					{
						$watermark_file = $information_system_dir . $information_system_info['information_systems_watermark_file'];
					}
					else
					{
						$watermark_file = '';
					}

					// Путь к файлу с "водяным знаком"
					$param['watermark_file_path'] = $watermark_file;

					// Позиция "водяного знака" по оси X
					$param['watermark_position_x'] = to_str($_POST['image_watermark_position_x_information_group_image']);

					// Позиция "водяного знака" по оси Y
					$param['watermark_position_y'] = to_str($_POST['image_watermark_position_y_information_group_image']);

					// Наложить "водяной знак" на большое изображение (true - наложить (по умолчанию), false - не наложить);
					$param['used_watermark_big_image'] = isset ($_POST['big_image_is_use_watermark_property' . $information_propertys_group_id]);

					// Наложить "водяной знак" на малое изображение (true - наложить (по умолчанию), false - не наложить);
					$param['used_watermark_small_image'] = isset ($_POST['small_image_is_use_watermark_property' . $information_propertys_group_id]);

					// Сохранять пропорции изображения для большого изображения
					$param['preserve_aspect_ratio_for_big_image'] = isset ($_POST['big_image_preserve_aspect_ratio_property' . $information_propertys_group_id]);

					// Сохранять пропорции изображения для малого изображения
					$param['preserve_aspect_ratio_for_small_image'] = isset ($_POST['small_image_preserve_aspect_ratio_property' . $information_propertys_group_id]);
					
					// Большое изображение не существует (true - существует, false - не существует (по умолчанию))
					$param['isset_big_image'] = false;

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

					if ($result['big_image'])
					{
						$information_property_image = quote_smart(basename($param['path_target_big_image']));

						$query = "UPDATE `information_propertys_groups_value_table` SET `information_propertys_groups_value_file` = '$information_property_image' WHERE `information_propertys_groups_value_id` = '$information_propertys_group_value_id'";

						$DataBase->query($query);
					}

					if ($result['small_image'])
					{
						$information_property_small_image = quote_smart(basename($param['path_target_small_image']));

						$query = "UPDATE `information_propertys_groups_value_table` SET `information_propertys_groups_value_file_small` = '$information_property_small_image' WHERE `information_propertys_groups_value_id` = '$information_propertys_group_value_id'";

						$DataBase->query($query);
					}
				}
			}
		}
	}
	else // Обновление свойств групп инфосистемы
	{
		// Обновляем старые свойства группы в таблице связи
		for ($i = 0; $i < $count; $i++)
		{
			//$row_propertys = mysql_fetch_assoc($propertys_result);

			$row_propertys = mysql_fetch_assoc($result_propertys);

			$information_propertys_group_id = $row_propertys['information_propertys_groups_id'];

			$information_propertys_group_id = $row_propertys['information_propertys_groups_id'];
			// Тип свойства - файл

			// Проверяем, есть ли уже значение для данного свойства
			$query = "SELECT information_propertys_groups_value_id, information_propertys_groups_value_file,  information_propertys_groups_value_file_small, information_propertys_groups_value_value, information_propertys_groups_value_value_small
								FROM information_propertys_groups_value_table
								WHERE information_groups_id='$information_group_id' and
								information_propertys_groups_id='" . $row_propertys['information_propertys_groups_id'] . "'";

			$DataBase->select($query);

			$count_row = $DataBase->get_count_row();

			if ($count_row == 0)
			{
				// Вставка
				$type_insert = 0;

				$information_propertys_group_value_id = 0;
				$information_propertys_group_value_value = '';
				$information_propertys_group_value_value_small = '';

				// Свойство - список и задано нулевое (пустое) значение списка
				if ($row_propertys['information_propertys_groups_type'] == 3 && isset ($_POST['property' . $information_propertys_group_id]) && $_POST['property' . $information_propertys_group_id] == 0)
				{
					continue;
				}
			}
			else
			{
				$type_insert = 1; // Обновление

				$row_propertys_group = mysql_fetch_assoc($DataBase->result);

				$information_propertys_group_value_id = $row_propertys_group['information_propertys_groups_value_id'];

				// Свойство - список и задано нулевое (пустое) значение списка
				if ($row_propertys['information_propertys_groups_type'] == 3 && isset ($_POST['property' . $information_propertys_group_id]) && $_POST['property' . $information_propertys_group_id] == 0)
				{
					$query = "DELETE FROM information_propertys_groups_value_table
												WHERE `information_propertys_groups_value_id` = $information_propertys_group_value_id";
					$DataBase->query($query);

					continue;
				}

				$information_propertys_group_value_value = $row_propertys_group['information_propertys_groups_value_value'];
				$information_propertys_group_value_value_small = $row_propertys_group['information_propertys_groups_value_value_small'];

			}

			if ($row_propertys['information_propertys_groups_type'] == 2)
			{
				// Загрузили файл для большого изображения
				if (isset ($_FILES['property' . $information_propertys_group_id]) && $_FILES['property' . $information_propertys_group_id]['size'] > 0)
				{
					$information_propertys_group_value_value = $_FILES['property' . $information_propertys_group_id]['name'];
				}

				// Загрузили файл для малого изображения
				if (isset ($_FILES['property' . $information_propertys_group_id . '_small']) && $_FILES['property' . $information_propertys_group_id . '_small']['size'] > 0)
				{
					$information_propertys_group_value_value_small = $_FILES['property' . $information_propertys_group_id . '_small']['name'];
				}
				elseif ($information_propertys_group_value_value_small == '' && isset ($_FILES['property' . $information_propertys_group_id]) && $_FILES['property' . $information_propertys_group_id]['size'] > 0)
				{
					$information_propertys_group_value_value_small = $information_propertys_group_value_value;
				}

			}
			elseif ($row_propertys['information_propertys_groups_type'] == 7) // Флажок
			{
				if (isset ($_POST['property' . $information_propertys_group_id]))
				{
					$information_propertys_group_value_value = 1;
				}
				else
				{
					$information_propertys_group_value_value = 0;
				}
			}
			else
			{
				$information_propertys_group_value_value = to_str($_POST['property' . $information_propertys_group_id]);
			}

			// Тип свойства - файл
			if ($row_propertys['information_propertys_groups_type'] == 2)
			{

				// Дополнительное свойство было создано до создания информационной группы
				if ($type_insert)
				{
					// Файл задан
					if (isset($_FILES['property' . $information_propertys_group_id]['tmp_name']) && $_FILES['property' . $information_propertys_group_id]['tmp_name'] != '')
					{
						// Удаляем прежднее значение большого изображения из базы
						// и файл  большого изображения с сервера
						$information_system->DelInformationGroupPropertyValue($information_propertys_group_value_id, array (
					'del_big_image' => true,
					'del_small_image' => false
						));

						$information_propertys_group_value_id = $information_system->InsertInformationPropertysGroupsValue($type_insert, $information_propertys_group_value_id, $information_group_id, $information_propertys_group_id, $information_propertys_group_value_value, '', true, $information_propertys_group_value_value_small, $row_propertys_group['information_propertys_groups_value_file_small']);
					}
					elseif (isset($_FILES['property' . $information_propertys_group_id . '_small']['tmp_name']) && $_FILES['property' . $information_propertys_group_id . '_small']['tmp_name'] != '')
					{
						// Удаляем прежднее значение малого изображения из базы
						// и файл малого изображения с сервера
						$information_system->DelInformationGroupPropertyValue($information_propertys_group_value_id, array (
					'del_big_image' => false,
					'del_small_image' => true
						));

						$information_propertys_group_value_id = $information_system->InsertInformationPropertysGroupsValue($type_insert, $information_propertys_group_value_id, $information_group_id, $information_propertys_group_id, $information_propertys_group_value_value, $row_propertys_group['information_propertys_groups_value_file'], true, $information_propertys_group_value_value_small, '');
					}
				}
				// Свойство было создано после создания информационной группы
				else
				{
					$information_propertys_group_value_id = $information_system->InsertInformationPropertysGroupsValue(0, 0, $information_group_id, $information_propertys_group_id, $information_propertys_group_value_value, '', true, $information_propertys_group_value_value_small, '');
				}
			}
			else
			{
				$information_propertys_group_value_id = $information_system->InsertInformationPropertysGroupsValue($type_insert, $information_propertys_group_value_id, $information_group_id, $information_propertys_group_id, $information_propertys_group_value_value);
			}

			// Загружаем файл
			// Тип свойства - файл
			if ($row_propertys['information_propertys_groups_type'] == 2)
			{
				// Параметры картинок для доп. свойства.
				$property_image_big_max_width = to_int($_POST['big_image_max_width_property' . $information_propertys_group_id]);
				$property_image_big_max_height = to_int($_POST['big_image_max_height_property' . $information_propertys_group_id]);
				$property_image_small_max_width = to_int($_POST['small_image_max_width_property' . $information_propertys_group_id]);
				$property_image_small_max_height = to_int($_POST['small_image_max_height_property' . $information_propertys_group_id]);

				//$uploaddir = CMS_FOLDER . UPLOADDIR . 'private/';

				// Путь к создаваемому файлу большого изображения;
				$information_property_image = '';

				//Путь к создаваемому файлу малого изображения;
				$information_property_small_image = '';

				// Передан файл - загружаем его
				if ($kernel->PathMkdir($group_dir))
				{
					if (isset($_FILES['property' . $information_propertys_group_id]['tmp_name']) && $_FILES['property' . $information_propertys_group_id]['size'])
					{
						$file_name = $file->PathCorrection($_FILES['property' . $information_propertys_group_id]['name']);

						if ($information_system_info['information_systems_file_name_conversion'] == 0)
						{
							$information_property_image = $uploaddir . $file_name;

							if (isset ($_POST['used_big_image_property' . $information_propertys_group_id]))
							{
								$information_property_small_image = $uploaddir . 'small_' . $file_name;
							}
						}
						else
						{
							// Определяем расширение файла
							$exp = mb_strtolower($kernel->GetExtension($_FILES['property' . $information_propertys_group_id]['name']));

							$information_property_image = $uploaddir . 'information_groups_property_' . $information_propertys_group_value_id . '.' . $exp;

							$information_property_small_image = $uploaddir . 'small_information_groups_property_' . $information_propertys_group_value_id . '.' . $exp;
						}
					}

					// Задано малое изображение и при этом не задано создание малого изображения
					// из большого или задано создание малого изображения из большого и
					// при этом не задано большое изображение.

					if (isset ($_FILES['property' . $information_propertys_group_id . '_small']['tmp_name']) && $_FILES['property' . $information_propertys_group_id . '_small']['size'] && (isset ($_POST['used_big_image_property' . $information_propertys_group_id]) && !(isset ($_FILES['property' . $information_propertys_group_id]['tmp_name']) && $_FILES['property' . $information_propertys_group_id]['size']) || !isset ($_POST['used_big_image_id_property' . $information_propertys_group_id])))
					{
						// Определяем расширение файла.
						$exp = mb_strtolower($kernel->GetExtension($_FILES['property' . $information_propertys_group_id . '_small']['name']));

						// Определяем создавать ли большое изображение из малого
						// тип загружаемого файла является допустимым для загрузки файла.
						if (in_array(mb_strtoupper($exp), $kernel->available_extantions))
						{
							// Добавление новой записи
							// Дополнительное свойство было создано до создания информационной группы
							if ($type_insert)
							{
								// Уже задано большое изображение - не создаем его
								if ($row_propertys_group['information_propertys_groups_value_file'] != '')
								{
									$create_big_image = false;
									$param['isset_big_image'] = true;
								}
								else // Большое изображение не задано - создаем его
								{
									$create_big_image = true;
								}
							}
							else // Дополнительное свойство было создано после создания информационной группы
							{
								$create_big_image = empty($information_property_image);
							}
						}

						$file_name = $file->PathCorrection($_FILES['property' . $information_propertys_group_id . '_small']['name']);

						if (in_array(mb_strtoupper($exp), $kernel->available_extantions))
						{
							if ($information_system_info['information_systems_file_name_conversion'] == 0)
							{
								// Создать большое изображение из малого
								if ($create_big_image)
								{
									$information_property_small_image = $uploaddir . 'small_' . $file_name;
									$information_property_image = $uploaddir . $file_name;
								}
								else
								{
									$information_property_small_image = $uploaddir . $file_name;
								}
							}
							else
							{
								$information_property_small_image = $uploaddir . 'small_information_groups_property_' . $information_propertys_group_value_id . '.' . $exp;

								// Создать большое изображение из малого
								if ($create_big_image)
								{
									$information_property_image = $uploaddir . 'information_groups_property_' . $information_propertys_group_value_id . '.' . $exp;

								}
							}
						}
						else
						{
							if ($information_system_info['information_systems_file_name_conversion'] == 0)
							{
								$information_property_small_image = $uploaddir . $file_name;

							}
							else
							{
								$information_property_small_image = $uploaddir . 'small_information_groups_property_' . $information_propertys_group_value_id . '.' . $exp;
							}
						}
					}

					// Путь к файлу-источнику большого изображения;
					$param['path_source_big_image'] = to_str($_FILES['property' . $information_propertys_group_id]['tmp_name']);

					// Путь к файлу-источнику малого изображения;
					$param['path_source_small_image'] = to_str($_FILES['property' . $information_propertys_group_id . '_small']['tmp_name']);

					// Оригинальное имя файла большого изображения
					$param['original_file_name_big_image'] = to_str($_FILES['property' . $information_propertys_group_id]['name']);

					// Путь к создаваемому файлу большого изображения;
					$param['path_target_big_image'] = $information_property_image;

					// Путь к создаваемому файлу малого изображения;
					$param['path_target_small_image'] = $information_property_small_image;

					// Оригинальное имя файла малого изображения
					$param['original_file_name_small_image'] = to_str($_FILES['property' . $information_propertys_group_id . '_small']['name']);

					// Использовать большое изображение для создания малого (true - использовать (по умолчанию), false - не использовать)
					$param['use_big_image'] = isset ($_POST['used_big_image_property' . $information_propertys_group_id]);

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

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

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

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

					//$InformationSystemRow = $information_system->GetInformationSystem(to_int($_POST['information_system_id']));


					if (is_file($information_system_dir . $information_system_info['information_systems_watermark_file']))
					{
						$watermark_file = $information_system_dir . $information_system_info['information_systems_watermark_file'];
					}
					else
					{
						$watermark_file = '';
					}

					// Путь к файлу с "водяным знаком"
					$param['watermark_file_path'] = $watermark_file;

					// Позиция "водяного знака" по оси X
					$param['watermark_position_x'] = to_str($_POST['image_watermark_position_x_information_group_image']);

					// Позиция "водяного знака" по оси Y
					$param['watermark_position_y'] = to_str($_POST['image_watermark_position_y_information_group_image']);

					// Наложить "водяной знак" на большое изображение (true - наложить (по умолчанию), false - не наложить);
					$param['used_watermark_big_image'] = isset ($_POST['big_image_is_use_watermark_property' . $information_propertys_group_id]);

					// Наложить "водяной знак" на малое изображение (true - наложить (по умолчанию), false - не наложить);
					$param['used_watermark_small_image'] = isset ($_POST['small_image_is_use_watermark_property' . $information_propertys_group_id]);

					// Сохранять пропорции изображения для большого изображения
					$param['preserve_aspect_ratio_for_big_image'] = isset ($_POST['big_image_preserve_aspect_ratio_property' . $information_propertys_group_id]);

					// Сохранять пропорции изображения для малого изображения
					$param['preserve_aspect_ratio_for_small_image'] = isset ($_POST['small_image_preserve_aspect_ratio_property' . $information_propertys_group_id]);

					
					// Обновление значение свойства

					if ($type_insert && $information_propertys_group_value_id)
					{
						// Определяем существует ли большое изображение для данного свойства инфогруппы
						$mas_information_groups_property = $information_system->GetInformationGroupsPropertyValue($information_propertys_group_value_id);

						// Для инфогруппы ранее задано изображение
						if ($mas_information_groups_property['information_propertys_groups_value_file'] != '')
						{
							// Существует ли большое изображение (true - существует, false - не существует (по умолчанию))
							$param['isset_big_image'] = true;
						}
					}

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

					if ($result['big_image'])
					{
						$information_property_image = quote_smart(basename($param['path_target_big_image']));

						$query = "UPDATE `information_propertys_groups_value_table` SET `information_propertys_groups_value_file` = '$information_property_image' WHERE `information_propertys_groups_value_id` = '$information_propertys_group_value_id'";

						$DataBase->query($query);
					}
					else
					{
						$information_property_image = '';
					}

					if ($result['small_image'])
					{
						$information_property_small_image = quote_smart(basename($param['path_target_small_image']));

						$query = "UPDATE `information_propertys_groups_value_table` SET `information_propertys_groups_value_file_small` = '$information_property_small_image' WHERE `information_propertys_groups_value_id` = '$information_propertys_group_value_id'";

						$DataBase->query($query);
					}
					else
					{
						$information_property_small_image = '';
					}
				}
			}
		}
	}
	
	$admin_forms = new admin_forms();
	$window_id = $admin_forms->GetWindowId();
	?><script type="text/javascript">
	$.appendInput('<?php echo $window_id?>', 'EditAddInformationGroup', 'information_group_id', '<?php echo $group_id?>');
	</script><?php
}
else
{
	// Ошибка редактирования информационной группы
	if ($type)
	{
		show_error_message($GLOBALS['MSG_information_systems']['edit_information_groups_error']);
	}
	else // Ошибка добавления информационной группы
		{
		show_error_message($GLOBALS['MSG_information_systems']['add_information_groups_error']);
	}
}

?>