<?php

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

$file = & singleton('File');

$Image = & singleton('Image');

// Обновление информационной группы
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']);

// Путь для группы не задан
/*
if (to_str($_POST['information_group_path']) == '')
{
	$url = new url();
	$_POST['information_group_path'] = $url->translit_lower(to_str($_POST['information_group_name']));
}
*/

// Не задан URL для группы
/*
if (trim($_POST['information_group_path']) == '')
{
	$error_information_group = 1;
	show_error_message($GLOBALS['MSG_information_systems']['error_path_information_group']);
}
*/
// В группе уже существует информационная подгруппа с таким 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']);
}

// В группе существует информационный элемент с названием в 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']);
}

// Не было ошибок при добавлении/редактировании информационной группы
if (!isset ($error_information_group))
{
	$available_extantions = array (
				'JPG',
				'JPEG',
				'PNG',
				'GIF'
			);
			
	// Получаем информацию об информационной системе						
	$information_system_info = $information_system->GetInformationSystem($information_system_id);

	$uploaddir = CMS_FOLDER . UPLOADDIR;

	// Если передан файл - загружаем его
	if (is_dir($uploaddir))
	{
		$information_group_image = '';
		$information_group_small_image = '';

		if (isset ($_FILES['information_group_image']['tmp_name']) && $_FILES['information_group_image']['size'])
		{
			$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 = strtolower($kernel->GetExtension($_FILES['information_group_image']['name']));

				$information_group_image = $uploaddir . 'information_groups_' . date("U") . '.' . $exp;
				$information_group_small_image = $uploaddir . 'small_information_groups_' . date("U") . '.' . $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'])))
		{
			// Определяем расширение файла.
			$exp = strtolower($kernel->GetExtension($_FILES['information_group_image_small']['name']));

			// Определяем создавать ли большое изображение из малого
			// тип загружаемого файла является допустимым для загрузки файла.
			if (in_array(strtoupper($exp), $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(strtoupper($exp), $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_' . date("U") . '.' . $exp;

					if ($create_big_image)
					{
						$information_group_image = $uploaddir . 'information_groups_' . date("U") . '.' . $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_' . date("U") . '.' . $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'] = $_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']));

		if ($information_system_info['information_systems_watermark_file'] != '' && is_file(CMS_FOLDER . UPLOADDIR . $information_system_info['information_systems_watermark_file']))
		{
			$watermark_file = CMS_FOLDER . UPLOADDIR . $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']);

		$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 = '';
	}

	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']);
	$param['information_groups_blog_type'] = to_int($_POST['information_group_blog_type']);
	$param['information_groups_blog_item_default_accessibility'] = to_int($_POST['information_group_blog_item_default_accessibility']);
	$param['information_groups_blog_item_default_show_comments_mode'] = to_int($_POST['information_group_blog_item_default_show_comments_mode']);
	$param['information_groups_blog_item_default_add_comments_mode'] = to_int($_POST['information_group_blog_item_default_add_comments_mode']);

	// Проверяем подключен ли модуль типографики.
	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');
			$kernel = & singleton('kernel');

			// Вставка тэгов автоматически разрешена
			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'
				));

				// Получаем список меток
				$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_text = array_unique($array_text);
						$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']);

	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_image, $information_group_allow_indexation, $_POST['information_group_seo_title'], $_POST['information_group_seo_description'], $information_group_seo_keywords, $_POST['information_group_access'], false, $param))
	{
		// Информация о группе отредактирована
		if ($type)
		{
			show_message($GLOBALS['MSG_information_systems']['edit_information_groups_success']);
		}
		else // Информационная группа добавлена
			{
			show_message($GLOBALS['MSG_information_systems']['add_information_groups_success']);
		}

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

		$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 (is_dir($uploaddir))
					{
						$information_property_image = '';
						$information_property_small_image = '';

						if ($_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 = 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 = strtolower($kernel->GetExtension($_FILES['property' . $information_propertys_group_id . '_small']['name']));

							// Определяем создавать ли большое изображение из малого
							// тип загружаемого файла является допустимым для загрузки файла.
							if (in_array(strtoupper($exp), $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(strtoupper($exp), $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(strtoupper($exp), $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'] = $_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(CMS_FOLDER . UPLOADDIR . $information_system_info['information_systems_watermark_file']))
						{
							$watermark_file = CMS_FOLDER . UPLOADDIR . $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]);

						// Большое изображение не существует (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 ($_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 ($_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 (is_dir($uploaddir))
					{
						if ($_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 = 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 = strtolower($kernel->GetExtension($_FILES['property' . $information_propertys_group_id . '_small']['name']));

							// Определяем создавать ли большое изображение из малого
							// тип загружаемого файла является допустимым для загрузки файла.
							if (in_array(strtoupper($exp), $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(strtoupper($exp), $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'] = $_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(CMS_FOLDER . UPLOADDIR . $information_system_info['information_systems_watermark_file']))
						{
							$watermark_file = CMS_FOLDER . UPLOADDIR . $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]);

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

						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 = '';
						}
					}
				}
			}
		}
?>
	<script>
	var ElementInput = document.createElement("input");
	ElementInput.setAttribute("type", "hidden");
	ElementInput.setAttribute("name", "information_group_id");
	ElementInput.setAttribute("value", "<?php echo $group_id?>");

	document.getElementById('EditAddInformationGroup').appendChild(ElementInput);
	</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']);
		}
	}
}
?>