<?php
/**
 * Система управления сайтом HostCMS v. 5.xx
 * Copyright © 2005-2010 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 *
 * Обработчик добавления/редактирования группы.
 *
 * Файл: /admin/shop/action/add_groups.php
 *
 * @author Hostmake LLC
 * @version 5.x
 */

$param = array ();

$shop = new shop();

$shop_shops_id = to_int($_REQUEST['shop_shops_id']);

$Image = & singleton('Image');
$kernel = & singleton('kernel');
$site = & singleton('site');

// получаем информацию о магазине
$shop_row = $shop->GetShop($shop_shops_id);

$param['shop_groups_name'] = to_str($_REQUEST['groups_name']);
$param['shop_groups_description'] = to_str($_REQUEST['groups_description']);
$param['shop_shops_id'] = $shop_shops_id;

$param['shop_groups_path'] = quote_smart(to_str($_REQUEST['groups_path']));
$param['shop_groups_parent_id'] = to_int($_REQUEST['shop_groups_parent_id2']);
$param['shop_groups_seo_title'] = to_str($_REQUEST['groups_seo_title']);
$param['shop_groups_seo_description'] = to_str($_REQUEST['groups_seo_description']);
$param['shop_groups_order'] = to_int($_REQUEST['groups_order']);
$param['shop_groups_cml_id'] = to_str($_REQUEST['shop_groups_cml_id']);

/* Проверяем подключен ли модуль типографики */
if (class_exists("typograph"))
{
	/* Модуль типографики подключен, проверяем, нужно ли применять типографику описания */
	if (isset ($_REQUEST['use_typograph_for_desc']))
	{
		/* Создаем объект типографа и типографируем текст */
		$typograph = & singleton('typograph');
		$param['shop_groups_description'] = $typograph->ProcessTypographic($param['shop_groups_description'], isset ($_REQUEST['trailing_punctuation_for_desc']));
	}
}

// Проверка наличия групп и товаров с аналогичными путями
$DataBase = & singleton('DataBase');

// получаем список групп данной подгруппы
$query = "SELECT * FROM `shop_groups_table`
WHERE `shop_shops_id` = '$shop_shops_id'
AND `shop_groups_parent_id` = '{$param['shop_groups_parent_id']}'
AND LOWER(TRIM(`shop_groups_path`)) = '".mb_strtolower(trim($param['shop_groups_path']))."' 
AND `shop_groups_id` != '".to_int($_REQUEST['edit_groups'])."'
LIMIT 0, 1";
			
$DataBase->select($query);

// В группе уже существует информационная подгруппа с таким URL как и
// добавляемой/редактируемой группы
if ($DataBase->get_count_row() == 1)
{
	$error_group = 1;
	show_error_message($GLOBALS['MSG_shops']['error_group_URL']);
	return;
}

// получаем список товаров данной подгруппы с таким же путем
$query = "SELECT * FROM `shop_items_catalog_table`
WHERE `shop_shops_id` = '$shop_shops_id'
AND LOWER(TRIM(`shop_items_catalog_path`)) = '".mb_strtolower(trim($param['shop_groups_path']))."' 
AND `shop_groups_id` = '".to_int($_REQUEST['shop_groups_parent_id'])."'
LIMIT 0, 1";
			
$DataBase->select($query);

// В группе существует товар с названием в URL, совпадающим с URL добавляемой/редактируемой подгруппы
if ($DataBase->get_count_row() == 1)
{
	$error_group = 1;
	show_error_message($GLOBALS['MSG_shops']['error_item_group_URL']);
	return;
}

$param['shop_groups_seo_keywords'] = trim(to_str($_REQUEST['groups_seo_keywords']));

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

		// Вставка тэгов автоматически разрешена
		if ($shop_row && $shop_row['shop_shops_apply_keywords_automatic'] == 1)
		{
			// получаем хэш названия и описания группы
			$array_text = $kernel->ClearHtml(to_str($_REQUEST['groups_name']) . " " . $param['shop_groups_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)
				{
					$param['shop_groups_seo_keywords'] = implode(", ", $coeff_intersect);
				}
			}
		}
	}
}

if (isset ($_REQUEST['groups_indexation']))
{
	$param['shop_groups_indexation'] = 1;
}
else
{
	$param['shop_groups_indexation'] = 0;
}

$param['shop_groups_activity'] = to_int($_REQUEST['shop_groups_activity']);

$param['shop_groups_access'] = to_int($_REQUEST['shop_groups_access']);

$param['parent_id'] = to_int($_REQUEST['shop_groups_parent_id']);



if (isset ($_REQUEST['edit_groups']))
{
	$param['group_id'] = to_int($_REQUEST['edit_groups']);
	$group_id = to_int($_REQUEST['edit_groups']);

	/* Само обновление ниже (т.к. нужно еще картинки изменить). */
	$group_id = $shop->InsertGroup($param);
}
else
{
	$group_id = $shop->InsertGroup($param);
}

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

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

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

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

if (isset ($_REQUEST['edit_groups']))
{
	show_message($GLOBALS['MSG_shops']['success_edit_group']);
}
else
{
	$admin_forms = new admin_forms();
	$window_id = $admin_forms->GetWindowId();
	?><script type="text/javascript">
	$.appendInput('<?php echo $window_id?>', 'EditAddCatalog', 'edit_groups', '<?php echo $group_id?>');
	</script><?php

	show_message($GLOBALS['MSG_shops']['success_add_group']);
}

//$param = array ();

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

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

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

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

$shop_item_catalog_image = '';

$shop_item_catalog_small_image = '';

$uploaddir = $shop->GetGroupDir($group_id);

$kernel->PathMkdir($uploaddir);

$uploaddir_root_directory = '';

// Константа UPLOADDIR не определена
if (!defined('UPLOADDIR'))
{
	// Получаем информацию о информационной системе
	$shop_row = $shop->GetShop($shop_shops_id);
		
	$site_row = $site->GetSite($shop_row['site_id']);

	$uploaddir_root_directory = $site_row['site_uploaddir'];
}
else
{
	$uploaddir_root_directory = UPLOADDIR;
}

// Получаем путь к файлу ватермарка
$watermark_file_path = CMS_FOLDER . $uploaddir_root_directory . 'shop_' . $shop_shops_id . '/watermarks/' .$shop_row['shop_watermark_file'];

$big_image_watermark_x_position = to_str($_REQUEST['image_watermark_position_x_groups_image']);
$big_image_watermark_y_position = to_str($_REQUEST['image_watermark_position_y_groups_image']);

$small_image_watermark_x_position = $big_image_watermark_x_position;

$small_image_watermark_y_position = $big_image_watermark_y_position;

// Обработка основного свойства типа "Изображение"
if(isset($_FILES['groups_image']) && isset($_FILES['groups_image']['tmp_name']) && $_FILES['groups_image']['tmp_name'] != '')
{
	// Нам передали файл большого изображения, получаем настройки размера изображения и водяного знака
	$maximal_width_big_image = $param['shop_groups_big_image_width'];
	$maximal_height_big_image = $param['shop_groups_big_image_height'];
	
	// Проверяем, задано ли малое изображение
	if(isset($_FILES['groups_image_small']) && isset($_FILES['groups_image_small']['tmp_name']) && $_FILES['groups_image_small']['tmp_name'] != '')
	{
		$create_small_image_from_big_image = false;
		$small_image_is_defined = true;
	}
	else
	{
		// Если малое изображение не задано, проверяем, указано ли создавать малое изображение из большого
		$create_small_image_from_big_image = ((isset($_REQUEST['used_big_image_groups_image'])?true:false));
		
		$small_image_is_defined = false;
	}
	
	if($create_small_image_from_big_image || $small_image_is_defined)
	{
		// Если указано создавать малое изображение из большого, либо малое изображение передано, получаем его настройки
		$maximal_width_small_image = $param['shop_groups_small_image_width'];
		$maximal_height_small_image = $param['shop_groups_small_image_height'];
		
		// Генерируем путь для малой картинки. Если в настройках магазина указано "Изменять названия загружаемых файлов", название генерируем согласно стандарту
		if ($shop_row['shop_shops_file_name_conversion'] == 1)
		{
			// Определяем расширение файла
			$ext = mb_strtolower($kernel->GetExtension($_FILES['groups_image']['name']));
			
			$small_image_path = CMS_FOLDER . $uploaddir . 'small_shop_group_image' . $group_id . '.' . $ext;
			
			$small_image_name = 'small_shop_group_image' . $group_id . '.' . $ext;
		}
		else
		{
			if($small_image_is_defined)
			{
				// Иначе оставляем оригинальное название
				$small_image_path = CMS_FOLDER . $uploaddir . 'small_'. $_FILES['groups_image_small']['name'];
				$small_image_name = 'small_'. $_FILES['groups_image_small']['name'];
			}
			else
			{
				// Иначе оставляем оригинальное название
				$small_image_path = CMS_FOLDER . $uploaddir . 'small_'. $_FILES['groups_image']['name'];
				$small_image_name = 'small_'. $_FILES['groups_image']['name'];
			}
		}
		
		$small_image_source_file = to_str($_FILES['groups_image_small']['tmp_name']);
	}
	else
	{
		// Малая картинка не задана
		$small_image_path = '';
		$small_image_source_file = '';
		$create_small_image_from_big_image = false;
	}
	
	// Генерируем путь для большой картинки. Если в настройках магазина указано "Изменять названия загружаемых файлов", название генерируем согласно стандарту
	if ($shop_row['shop_shops_file_name_conversion'] == 1)
	{
		// Определяем расширение файла
		$ext = mb_strtolower($kernel->GetExtension($_FILES['groups_image']['name']));
		
		$big_image_path = CMS_FOLDER . $uploaddir . 'shop_group_image' . $group_id . '.' . $ext;
		$big_image_name = 'shop_group_image' . $group_id . '.' . $ext;
	}
	else
	{
		// Иначе оставляем оригинальное название
		$big_image_path = CMS_FOLDER . $uploaddir . $_FILES['groups_image']['name'];
		$big_image_name = $_FILES['groups_image']['name'];
	}
	
	// Заполняем массив настроек метода AdminLoadFiles
	$param_download_files = array();
	
	$param_download_files['max_width_big_image'] = $maximal_width_big_image;
	
	$param_download_files['max_height_big_image'] = $maximal_height_big_image;
	
	if($small_image_path == '')
	{
		$param_download_files['max_width_small_image'] = 0;

		$param_download_files['max_height_small_image'] = 0;
	}
	else
	{
		$param_download_files['max_width_small_image'] = $maximal_width_small_image;

		$param_download_files['max_height_small_image'] = $maximal_height_small_image;
	}
	
	$param_download_files['isset_big_image'] = true;
	
	$param_download_files['path_source_big_image'] = to_str($_FILES['groups_image']['tmp_name']);
	
	if($small_image_source_file != '')
	{
		$param_download_files['path_source_small_image'] = $small_image_source_file;
	}

	$param_download_files['original_file_name_big_image'] = to_str($_FILES['groups_image']['name']);
	
	$param_download_files['path_target_big_image'] = $big_image_path;
	
	$param_download_files['path_target_small_image'] = $small_image_path;

	$param_download_files['original_file_name_small_image'] = to_str($_FILES['groups_image_small']['name']);
	
	$param_download_files['use_big_image'] = $create_small_image_from_big_image;
	
	$param_download_files['watermark_file_path'] = $watermark_file_path;
	
	$param_download_files['watermark_position_x'] = $big_image_watermark_x_position;

	$param_download_files['watermark_position_y'] = $big_image_watermark_y_position;

	$param_download_files['used_watermark_big_image'] = isset($_REQUEST['big_image_is_use_watermark_groups_image']) ? 1 : 0;
	$param_download_files['used_watermark_small_image'] = isset($_REQUEST['small_image_is_use_watermark_groups_image']) ? 1 : 0;

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

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

	// Проверяем, есть ли у данной группы старые файлы
	$group_row = $shop->GetGroup($group_id);

	if($group_row)
	{
		$old_big_file_path = CMS_FOLDER . $uploaddir . $group_row['shop_groups_image'];
		
		$old_small_file_path = CMS_FOLDER . $uploaddir . $group_row['shop_groups_small_image'];

		if(is_file($old_big_file_path))
		{
			@unlink($old_big_file_path);
		}
		
		if(is_file($old_small_file_path) && ($create_small_image_from_big_image || $small_image_is_defined))
		{
			@unlink($old_small_file_path);
		}
	}

	$result_download_files = $kernel->AdminLoadFiles($param_download_files);
	
	if ($result_download_files['big_image'])
	{
		if(is_file($big_image_path))
		{
			// Необходимо получить размеры конечного изображения
			$big_image_sizes = getimagesize($big_image_path);
			
			$big_image_width = to_int($big_image_sizes[0]);
			
			$big_image_height = to_int($big_image_sizes[1]);
		}
	
		// Операции с файлами успешно завершены, необходимо обновить данные в базе
		$query = "UPDATE `shop_groups_table` SET `shop_groups_image`='$big_image_name', `shop_groups_big_image_width`='$big_image_width', `shop_groups_big_image_height`='$big_image_height'  WHERE `shop_groups_id`='$group_id'";
		
		$DataBase->query($query);
	}
	
	if ($result_download_files['small_image'])
	{
		if(is_file($small_image_path))
		{
			// Необходимо получить размеры конечного изображения
			$small_image_sizes = getimagesize($small_image_path);
			
			$small_image_width = to_int($small_image_sizes[0]);
			
			$small_image_height = to_int($small_image_sizes[1]);
		}

		// Операции с файлами успешно завершены, необходимо обновить данные в базе
		$query = "UPDATE `shop_groups_table` SET `shop_groups_small_image`='$small_image_name', `shop_groups_small_image_width`='$small_image_width', `shop_groups_small_image_height`='$small_image_height' WHERE `shop_groups_id`='$group_id'";
		
		$DataBase->query($query);
	}
}
else
{
	$small_image_path = '';
}

// Обработка основного свойства типа "Изображение"
if(isset($_FILES['groups_image_small']) && isset($_FILES['groups_image_small']['tmp_name']) && $_FILES['groups_image_small']['tmp_name'] != '' && $small_image_path == '')
{
	// Нам передали файл малого изображения, получаем настройки размера изображения и водяного знака
	$maximal_width_small_image = $param['shop_groups_small_image_width'];
	$maximal_height_small_image = $param['shop_groups_small_image_height'];
	
	if ($shop_row['shop_shops_file_name_conversion'] == 1)
	{
		// Определяем расширение файла
		$ext = mb_strtolower($kernel->GetExtension($_FILES['groups_image_small']['name']));
		
		$small_image_path = CMS_FOLDER . $uploaddir . 'small_shop_group_image' . $group_id . '.' . $ext;
		$small_image_name = 'small_shop_group_image' . $group_id . '.' . $ext;
	}
	else
	{
		// Иначе оставляем оригинальное название
		$small_image_path = CMS_FOLDER . $uploaddir . 'small_' . $_FILES['groups_image_small']['name'];
		$small_image_name = 'small_' . $_FILES['groups_image_small']['name'];
	}
	
	// Заполняем массив настроек метода AdminLoadFiles
	$param_download_files = array();
	
	$param_download_files['max_width_big_image'] = 0;
	
	$param_download_files['max_height_big_image'] = 0;
	
	$param_download_files['max_width_small_image'] = $maximal_width_small_image;

	$param_download_files['max_height_small_image'] = $maximal_height_small_image;

	$param_download_files['isset_big_image'] = false;
	
	//$param_download_files['path_source_big_image'] = to_str($_FILES['groups_image']['tmp_name']);
	
	$param_download_files['path_source_small_image'] = to_str($_FILES['groups_image_small']['tmp_name']);
	
	$param_download_files['path_target_small_image'] = $small_image_path;
	
	$param_download_files['original_file_name_small_image'] = to_str($_FILES['groups_image_small']['name']);
	
	$param_download_files['use_big_image'] = false;
	
	$param_download_files['watermark_file_path'] = $watermark_file_path;
	
	$param_download_files['watermark_position_x'] = $small_image_watermark_x_position;

	$param_download_files['watermark_position_y'] = $small_image_watermark_y_position;

	$param_download_files['used_watermark_big_image'] = isset($_REQUEST['big_image_is_use_watermark_groups_image']) ? 1 : 0;
	$param_download_files['used_watermark_small_image'] = isset($_REQUEST['small_image_is_use_watermark_groups_image']) ? 1 : 0;

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

	// Сохранять пропорции изображения для малого изображения
	$param_download_files['preserve_aspect_ratio_for_small_image'] = isset ($_POST['small_image_preserve_aspect_ratio_groups_image']);
	
	// Проверяем, есть ли у данной группы старые файлы
	$group_row = $shop->GetGroup($group_id);
	
	if($group_row)
	{
		$old_small_file_path = CMS_FOLDER . $uploaddir . $group_row['shop_groups_small_image'];
		
		if(is_file($old_small_file_path))
		{
			@unlink($old_small_file_path);
		}
	}

	$result_download_files = $kernel->AdminLoadFiles($param_download_files);
	
	if ($result_download_files['small_image'])
	{
		if(is_file($small_image_path))
		{
			// Необходимо получить размеры конечного изображения
			$small_image_sizes = getimagesize($small_image_path);
			
			$small_image_width = to_int($small_image_sizes[0]);
			
			$small_image_height = to_int($small_image_sizes[1]);
		}

		// Операции с файлами успешно завершены, необходимо обновить данные в базе
		$query = "UPDATE `shop_groups_table` SET `shop_groups_small_image`='$small_image_name', `shop_groups_small_image_width`='$small_image_width', `shop_groups_small_image_height`='$small_image_height' WHERE `shop_groups_id`='$group_id'";
		
		$DataBase->query($query);
	}
}

// Обрабатываем дополнительные свойства
$group_properties_res = $shop->GetAllPropretyOfGroup($shop_shops_id);

while ($group_properties_row = mysql_fetch_assoc($group_properties_res))
{
	if (isset ($_REQUEST['add_value_' . $group_properties_row['shop_properties_group_id']])
	|| isset ($_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]))
	{
		$id = to_int($group_properties_row['shop_properties_group_id']);
		// Если обнаружили в параметрах поле с данными о значении дополнительного свойства, получаем эти данные
		switch ($group_properties_row['shop_properties_group_type'])
		{
			// Строка
			case 0 :
				{
					// Обработка данных
					if (!$shop->InsertPropertiesGroupValue(array (
							'shop_properties_group_value_value' => $_REQUEST['add_value_' . $group_properties_row['shop_properties_group_id']],
							'shop_properties_group_id' => $group_properties_row['shop_properties_group_id'],
							'shop_groups_id' => $group_id
					)))
					{
						// Ошибка! Допсвойство не вставлено/обновлено!
					}
					break;
				}
				// Файл
			case 1 :
				{
					// Обработка дополнительного свойства типа "Изображение"
					if(to_str($_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]['tmp_name']) != '' && to_int($_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]['size']) > 0)
					{
						// Нам передали файл большого изображения, получаем настройки размера изображения и водяного знака
						$maximal_width_big_image = to_int($_REQUEST['big_image_max_width_add_value_'.$group_properties_row['shop_properties_group_id']]);
						$maximal_height_big_image = to_int($_REQUEST['big_image_max_height_add_value_'.$group_properties_row['shop_properties_group_id']]);
						
						// Проверяем, задано ли малое изображение
						if(to_str($_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['tmp_name']) != '' && to_int($_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['size']) > 0)
						{
							$create_small_image_from_big_image = false;
							
							$small_image_is_defined = true;
						}
						else
						{
							// Если малое изображение не задано, проверяем, указано ли создавать малое изображение из большого
							$create_small_image_from_big_image = ((isset($_REQUEST['used_big_image_add_value_'.$group_properties_row['shop_properties_group_id']])?true:false));
							$small_image_is_defined = false;
						}
						
						if($create_small_image_from_big_image || $small_image_is_defined)
						{
							// Если указано создавать малое изображение из большого, либо малое изображение передано, получаем его настройки
							$maximal_width_small_image = to_int($_REQUEST['small_image_max_width_add_value_'. $group_properties_row['shop_properties_group_id']]);
							$maximal_height_small_image = to_int($_REQUEST['small_image_max_height_add_value_'.$group_properties_row['shop_properties_group_id']]);
							
							// Генерируем путь для малой картинки. Если в настройках магазина указано "Изменять названия загружаемых файлов", название генерируем согласно стандарту
							if ($shop_row['shop_shops_file_name_conversion'] == 1)
							{
								// Определяем расширение файла
								$ext = mb_strtolower($kernel->GetExtension($_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]['name']));
								
								$small_image_path = CMS_FOLDER . $uploaddir . 'small_shop_property_file_' . $group_id . '_' . $id . '.' . $ext; 
								
								$small_image_name = 'small_shop_property_file_' . $group_id . '_' . $id . '.' . $ext;
							}
							else
							{
								if($small_image_is_defined)
								{
									// Иначе оставляем оригинальное название
									$small_image_path = CMS_FOLDER . $uploaddir . 'small_'. $_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['name'];
									
									$small_image_name = 'small_'. $_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['name'];
								}
								else
								{
									// Иначе оставляем оригинальное название
									$small_image_path = CMS_FOLDER . $uploaddir . 'small_'. $_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]['name'];
									
									$small_image_name = 'small_'. $_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]['name'];
								}
							}
							
							$small_image_source_file = to_str($_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['tmp_name']);
						}
						else
						{
							// Малая картинка не задана
							$small_image_path = '';
							$small_image_source_file = '';
							$create_small_image_from_big_image = false;
						}
						
						// Генерируем путь для большой картинки. Если в настройках магазина указано "Изменять названия загружаемых файлов", название генерируем согласно стандарту
						if ($shop_row['shop_shops_file_name_conversion'] == 1)
						{
							// Определяем расширение файла
							$ext = mb_strtolower($kernel->GetExtension($_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]['name']));
								
							$big_image_path = CMS_FOLDER . $uploaddir . 'shop_property_file_' . $group_id . '_' . $id . '.' . $ext;
							$big_image_name = 'shop_property_file_' . $group_id . '_' . $id . '.' . $ext;
						}
						else
						{
							// Иначе оставляем оригинальное название
							$big_image_path = CMS_FOLDER . $uploaddir . $_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]['name'];
							$big_image_name = $_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]['name'];
						}
						
						// Заполняем массив настроек метода AdminLoadFiles
						$param_download_files = array();
						
						$param_download_files['max_width_big_image'] = $maximal_width_big_image;
						
						$param_download_files['max_height_big_image'] = $maximal_height_big_image;
						
						if($small_image_path == '')
						{
							$param_download_files['max_width_small_image'] = 0;

							$param_download_files['max_height_small_image'] = 0;
						}
						else
						{
							$param_download_files['max_width_small_image'] = $maximal_width_small_image;

							$param_download_files['max_height_small_image'] = $maximal_height_small_image;
						}
						
						$param_download_files['isset_big_image'] = true;
					
						$param_download_files['path_source_big_image'] = to_str($_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]['tmp_name']);
						
						if($small_image_source_file != '')
						{
							$param_download_files['path_source_small_image'] = $small_image_source_file;
						}
						
						$param_download_files['original_file_name_big_image'] = to_str($_FILES['add_value_' . $group_properties_row['shop_properties_group_id']]['name']);
						
						$param_download_files['path_target_big_image'] = $big_image_path;
						
						$param_download_files['path_target_small_image'] = $small_image_path;
			
						if(($value = to_str($_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['name'])) != '')
						{
							$param_download_files['original_file_name_small_image'] = $value;
						}
						
						$param_download_files['use_big_image'] = $create_small_image_from_big_image;
						
						$param_download_files['watermark_file_path'] = $watermark_file_path;
						
						$param_download_files['watermark_position_x'] = $big_image_watermark_x_position;

						$param_download_files['watermark_position_y'] = $big_image_watermark_y_position;

						$param_download_files['used_watermark_big_image'] = isset($_REQUEST['big_image_is_use_watermark_add_value_'.$group_properties_row['shop_properties_group_id']]) ? 1 : 0;
						$param_download_files['used_watermark_small_image'] = isset($_REQUEST['small_image_is_use_watermark_add_value_'.$group_properties_row['shop_properties_group_id']]) ? 1 : 0;

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

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

						
						// Проверяем, есть ли у данного свойства данной группы старые файлы
						$group_property_row = $shop->GetPropertiesGroupValue(array('shop_groups_id' => $group_id, 'shop_properties_group_id' => $id));
						
						if($group_property_row)
						{
							$old_big_file_path = CMS_FOLDER . $uploaddir . $group_property_row['shop_properties_group_value_file'];
							
							$old_small_file_path = CMS_FOLDER . $uploaddir . $group_property_row['shop_properties_group_value_file_small'];

							if(is_file($old_big_file_path))
							{
								@unlink($old_big_file_path);
							}
							
							if(is_file($old_small_file_path) && ($create_small_image_from_big_image || $small_image_is_defined))
							{
								@unlink($old_small_file_path);
							}
						}
		
						$result_download_files = $kernel->AdminLoadFiles($param_download_files);
						
						if ($result_download_files['big_image'])
						{
							$shop->InsertPropertiesGroupValue(array (
							'shop_properties_group_value_value' => $big_image_name,
							'shop_properties_group_value_file' => $big_image_name,
							'shop_properties_group_id' => $id,
							'shop_groups_id' => $group_id
							));
						}
						
						if ($result_download_files['small_image'])
						{
							$shop->InsertPropertiesGroupValue(array (
							'shop_properties_group_value_value_small' => $small_image_name,
							'shop_properties_group_value_file_small' => $small_image_name,
							'shop_properties_group_id' => $id,
							'shop_groups_id' => $group_id
						));
						}
					}
					else
					{
						$small_image_path = '';
					}

					// Обработка основного свойства типа "Изображение"
					if(to_str($_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['tmp_name']) != '' && to_int($_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['size']) > 0 && $small_image_path == '')
					{
						// Нам передали файл малого изображения, получаем настройки размера изображения и водяного знака
						$maximal_width_small_image = to_int($_REQUEST['small_image_max_width_add_value_'. $group_properties_row['shop_properties_group_id']]);
						$maximal_height_small_image = to_int($_REQUEST['small_image_max_height_add_value_'.$group_properties_row['shop_properties_group_id']]);
						
						// Генерируем путь для малой картинки. Если в настройках магазина указано "Изменять названия загружаемых файлов", название генерируем согласно стандарту
						if ($shop_row['shop_shops_file_name_conversion'] == 1)
						{
							// Определяем расширение файла
							$ext = mb_strtolower($kernel->GetExtension($_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['name']));
							
							$small_image_path = CMS_FOLDER . $uploaddir . 'small_shop_property_file_' . $group_id . '_' . $id . '.' . $ext; 
							
							$small_image_name = 'small_shop_property_file_' . $group_id . '_' . $id . '.' . $ext;
						}
						else
						{
							// Иначе оставляем оригинальное название
							$small_image_path = CMS_FOLDER . $uploaddir . 'small_'. $_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['name'];
							
							$small_image_name = 'small_'. $_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['name'];
						}
						
						// Заполняем массив настроек метода AdminLoadFiles
						$param_download_files = array();
						$param_download_files['max_width_big_image'] = 0;
						$param_download_files['max_height_big_image'] = 0;
						$param_download_files['max_width_small_image'] = $maximal_width_small_image;
						$param_download_files['max_height_small_image'] = $maximal_height_small_image;
						$param_download_files['isset_big_image'] = false;
						$param_download_files['path_source_small_image'] = to_str($_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['tmp_name']);
						$param_download_files['path_target_small_image'] = $small_image_path;
						$param_download_files['original_file_name_small_image'] = to_str($_FILES['add_value_' . $group_properties_row['shop_properties_group_id'] . '_small']['name']);
						$param_download_files['use_big_image'] = false;
						$param_download_files['watermark_file_path'] = $watermark_file_path;
						$param_download_files['watermark_position_x'] = $small_image_watermark_x_position;
						$param_download_files['watermark_position_y'] = $small_image_watermark_y_position;

						$param_download_files['used_watermark_big_image'] = isset($_REQUEST['big_image_is_use_watermark_add_value_'.$group_properties_row['shop_properties_group_id']])?1:0;
						$param_download_files['used_watermark_small_image'] = isset($_REQUEST['small_image_is_use_watermark_add_value_'.$group_properties_row['shop_properties_group_id']])?1:0;

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

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

						// Проверяем, есть ли у данного свойства данной группы старые файлы
						$group_property_row = $shop->GetPropertiesGroupValue(array('shop_groups_id' => $group_id, 'shop_properties_group_id' => $id));
						
						if($group_property_row)
						{
							$old_small_file_path = CMS_FOLDER . $uploaddir . $group_property_row['shop_properties_group_value_file_small'];
							
							if(is_file($old_small_file_path))
							{
								@unlink($old_small_file_path);
							}
						}

						$result_download_files = $kernel->AdminLoadFiles($param_download_files);
						
						if ($result_download_files['small_image'])
						{
							$shop->InsertPropertiesGroupValue(array (
							'shop_properties_group_value_value_small' => $small_image_name,
							'shop_properties_group_value_file_small' => $small_image_name,
							'shop_properties_group_id' => $id,
							'shop_groups_id' => $group_id
						));
						}
					}
					break;
				}
				// Список
			case 2 :
				{
					// Необходимо проверить, существует ли класс "Списки"
					if (!class_exists('lists'))
					{
						break;
					}

					// Передали пустое значение свойства
					if (!$_REQUEST['add_value_' . $group_properties_row['shop_properties_group_id']])
					{
						$param_delete_property_value['shop_groups_id'] = $group_id;
						$param_delete_property_value['shop_properties_group_id'] = $group_properties_row['shop_properties_group_id'];

						$shop->DeletePropertiesGroupValue($param_delete_property_value);

						break;
					}

					if (!$shop->InsertPropertiesGroupValue(array (
							'shop_properties_group_value_value' => $_REQUEST['add_value_' . $group_properties_row['shop_properties_group_id']],
							'shop_properties_group_id' => $group_properties_row['shop_properties_group_id'],
							'shop_groups_id' => $group_id
					)))
					{
						// Ошибка! Допсвойство не вставлено/обновлено!
					}
					break;
				}
				// Большое текстовое поле
			case 3 :
				{
					if (!$shop->InsertPropertiesGroupValue(array (
							'shop_properties_group_value_value' => $_REQUEST['add_value_' . $group_properties_row['shop_properties_group_id']],
							'shop_properties_group_id' => $group_properties_row['shop_properties_group_id'],
							'shop_groups_id' => $group_id
					)))
					{
						// Ошибка! Допсвойство не вставлено/обновлено!
					}
					break;
				}
				// Визуальный редактор
			case 4 :
				{
					if (!$shop->InsertPropertiesGroupValue(array (
							'shop_properties_group_value_value' => $_REQUEST['add_value_' . $group_properties_row['shop_properties_group_id']],
							'shop_properties_group_id' => $group_properties_row['shop_properties_group_id'],
							'shop_groups_id' => $group_id
					)))
					{
						// Ошибка! Допсвойство не вставлено/обновлено!
					}
					break;
				}
				// Дата
			case 5 :
				{
					$DateTime = & singleton('DateClass');
					if (!$shop->InsertPropertiesGroupValue(array (
							'shop_properties_group_value_value' => $DateTime->date_format_sql($_REQUEST['add_value_' . $group_properties_row['shop_properties_group_id']]),
							'shop_properties_group_id' => $group_properties_row['shop_properties_group_id'],
							'shop_groups_id' => $group_id
					)))
					{
						// Ошибка! Допсвойство не вставлено/обновлено!
					}
					break;
				}
				// ДатаВремя
			case 6 :
				{
					$DateTime = & singleton('DateClass');
					if (!$shop->InsertPropertiesGroupValue(array (
							'shop_properties_group_value_value' => $DateTime->datetime_format_sql($_REQUEST['add_value_' . $group_properties_row['shop_properties_group_id']]),
							'shop_properties_group_id' => $group_properties_row['shop_properties_group_id'],
							'shop_groups_id' => $group_id
					)))
					{
						// Ошибка! Допсвойство не вставлено/обновлено!
					}
					break;
				}
		}
	}
	if ($group_properties_row['shop_properties_group_type'] == 7)
	{
		if (!$shop->InsertPropertiesGroupValue(array (
				'shop_properties_group_value_value' => (isset ($_REQUEST['add_value_' . $group_properties_row['shop_properties_group_id']])) ? 1 : 0,
				'shop_properties_group_id' => $group_properties_row['shop_properties_group_id'],
				'shop_groups_id' => $group_id
		)))
		{
			// Ошибка! Допсвойство не вставлено/обновлено!
		}
	}
}
?>