<?php
/**
 * Система управления сайтом HostCMS v. 5.xx
 * Copyright © 2005-2010 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 *
 * Форма добаления/редактирования групп товаров.
 *
 * Файл: /admin/shop/action/form_edit_add_groups.php
 *
 * @author Hostmake LLC
 * @version 5.x
 */
if (isset($id))
{
	$edit_groups_id = to_int($id);
}
else
{
	$edit_groups_id = 0;
}

$form_params = array();
$form_params['title'] = $edit_groups_id==0 ? $GLOBALS['MSG_shops']['groups_add_form_title'] : $GLOBALS['MSG_shops']['groups_edit_form_title'];
$form_params['form_attribs']['method'] = 'post';
$form_params['form_attribs']['action'] = '/admin/shop/shop.php';
$form_params['form_attribs']['ENCTYPE'] = 'multipart/form-data';
$form_params['form_attribs']['name'] = 'EditAddCatalog';

$DataBase = & singleton('DataBase');

$admin_forms_fields = new admin_forms_fields();

$shop = & singleton('shop');

$kernel = & singleton('kernel');

$DataTime = & singleton('DateClass');

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

if ($shop_shops_id)
{
	$shop_groups_parent_id = to_int($_REQUEST['shop_groups_parent_id']);

	$shop_data_row = $shop->GetShop($shop_shops_id, array('cache_off'=>true));

	// Определим ID макета по структуре
	$structure = & singleton('Structure');
	$structure_row = $structure->GetStructureItem(to_int($shop_data_row['structure_id']));
	$template_id = to_int($structure_row['templates_id']);

	// Хлебные крошки
	$path_array = $shop->GetShopPathArray($shop_groups_parent_id, false);

	// Преобразуем идентификаторы групп в ссылки на группы.
	$new_path_array = array();

	$new_path_array[0]['name'] = $GLOBALS['MSG_shops']['header_admin__list_forms'];
	$new_path_array[0]['link'] = $admin_forms_fields->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', '', 54, 'load_data');
	$new_path_array[0]['onclick'] = $admin_forms_fields->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', '', 54, 'load_data');

	$new_path_array[1]['name'] = $shop_data_row['shop_shops_name'];
	$new_path_array[1]['link'] = $admin_forms_fields->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_groups_parent_id=0&shop_shops_id=$shop_shops_id", 65, 'load_data');
	$new_path_array[1]['onclick'] = $admin_forms_fields->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_groups_parent_id=0&shop_shops_id=$shop_shops_id", 65, 'load_data');

	if ($path_array)
	{
		foreach ($path_array as $key => $value)
		{
			$new_path_array[] = array (
			'link' => $admin_forms_fields->GetHtmlCallDoLoadAjax('/admin/shop/shop.php', "&shop_groups_parent_id=$key&shop_shops_id=$shop_shops_id", 65, 'load_data'),
			'onclick' => $admin_forms_fields->GetOnClickCallDoLoadAjax('/admin/shop/shop.php', "&shop_groups_parent_id=$key&shop_shops_id=$shop_shops_id", 65, 'load_data'),
			'name' => $value);
		}
	}

	$form_params['path_array'] = $new_path_array;

	$admin_forms_fields->admin_forms_fields($form_params);

	// Редактирование группы товаров
	if ($edit_groups_id)
	{
		$shop_image_small_max_width = $shop_data_row['shop_image_small_max_width'];
		$shop_image_small_max_height = $shop_data_row['shop_image_small_max_height'];
		$shop_image_big_max_width = $shop_data_row['shop_image_big_max_width'];
		$shop_image_big_max_height = $shop_data_row['shop_image_big_max_height'];
	}

	// Редактирование каталога
	if ($edit_groups_id)
	{
		$type = 1;
		$param = array();
		$param['cache_off'] = true;
		$result = $shop->GetGroup($edit_groups_id, $param);
		$shop_groups_id = $result['shop_groups_id'];
		$shop_groups_name = $result['shop_groups_name'];
		$shop_groups_description = $result['shop_groups_description'];
		$shop_groups_image = $result['shop_groups_image'];
		$shop_groups_order = $result['shop_groups_order'];
		$shop_groups_indexation = $result['shop_groups_indexation'];
		$shop_groups_activity = $result['shop_groups_activity'];
		$shop_groups_access = $result['shop_groups_access'];
		$shop_groups_path = $result['shop_groups_path'];
		$shop_groups_seo_title = $result['shop_groups_seo_title'];
		$shop_groups_seo_description = $result['shop_groups_seo_description'];
		$shop_groups_seo_keywords = $result['shop_groups_seo_keywords'];
		$users_id = $result['users_id'];
		$image_watermark_position_x_groups_image = to_str($shop_data_row['shop_watermark_default_position_x']);
		$image_watermark_position_y_groups_image = to_str($shop_data_row['shop_watermark_default_position_y']);
		$shop_groups_small_image = $result['shop_groups_small_image'];
		$shop_groups_cml_id = $result['shop_groups_cml_id'];
	}
	// Добавление каталога
	else
	{
		$shop_groups_id = 0;
		$shop_groups_name = '';
		$shop_groups_description = '';
		$shop_groups_image = '';
		$shop_groups_small_image = '';
		$shop_groups_order = 0;
		$shop_groups_indexation = 1;
		$shop_groups_activity = 1;
		$shop_groups_access = -1;
		$shop_groups_path = '';
		$shop_groups_seo_title = '';
		$shop_groups_seo_description = '';
		$shop_groups_seo_keywords = '';
		$image_watermark_position_x_groups_image = to_int($shop_data_row['shop_watermark_default_position_x']);
		$image_watermark_position_y_groups_image = to_int($shop_data_row['shop_watermark_default_position_y']);
		$shop_groups_cml_id = $kernel->Guid();
	}

	// Параметры максимальных изоражений берутся ВСЕГДА из атрибутов магазина, а не размера предыдущего загруженного изображения
	$shop_image_small_max_width = to_int($shop_data_row['shop_image_small_max_width_group']);
	$shop_image_small_max_height = to_int($shop_data_row['shop_image_small_max_height_group']);
	$shop_image_big_max_width = to_int($shop_data_row['shop_image_big_max_width_group']);
	$shop_image_big_max_height = to_int($shop_data_row['shop_image_big_max_height_group']);

	// Параметры.
	$tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_shops']['tab_group']);

	// Название
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'groups_name';
	$param['caption'] = $GLOBALS['MSG_shops']['groups_add_form_name'];
	$param['type'] = 0; // textbox
	$param['value'] = $shop_groups_name;
	$param['attributes']['class'] = 'large';
	$param['format']['minlen']['value'] = 1;
	$param['format']['maxlen']['value'] = 255;
	$admin_forms_fields->AddField($param);

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

	// Получаем содержимое выпадающего списка
	/*$array = array();

	$array[0] = ' .. ';

	$shop->mas_groups = array();
	$mas = $shop->GetDelimitedGroups(0, $shop_shops_id, "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");

	$shop->CacheGoupsIdTree = array();
	$shop->mas_groups = array();
	
	$mas_count = count($mas);

	for ($i = 0; $i < $mas_count; $i++)
	{
		if ($edit_groups_id != $mas[$i]['shop_groups_id'])
		{
			$array[$mas[$i]['shop_groups_id']] = $mas[$i]['separator'].$mas[$i]['shop_groups_name'];
		}
	}*/

	$mas_groups = $shop->GetAllGroups($shop_shops_id, array(
		'select_fields' => array('shop_groups_id', 'shop_groups_parent_id', 'shop_groups_name'),
	));

	$aGroupsTree = array();
	foreach ($mas_groups as $key => $row)
	{
		$aGroupsTree[$row['shop_groups_parent_id']][] = $row;
	}

	// Группа
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'shop_groups_parent_id2';
	$param['caption'] = $GLOBALS['MSG_shops']['items_catalog_add_form_group'];
	$param['type'] = 2; // выпадающий список
	$param['items'] = array ('...') + GetDelimitedGroups(0, $aGroupsTree, '', $shop_groups_id);
	$param['value'] = $shop_groups_parent_id;

	$param['div_attributes']['style'] = '';
	$param['attributes']['style'] = 'width: 320px; float: left;';
	$param['apply_filter'] = true;
	$admin_forms_fields->AddField($param);

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

	// Изображение группы
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'groups_image';
	$param['caption'] = $GLOBALS['MSG_shops']['groups_image'];
	$param['type'] = 9; // checkbox
	$param['options'] = array();
	$param['options']['make_small_image_from_big_show'] = 1; // отображать ли checkbox с подписью "Создать малое изображение из большого" (1 -  отображать (по умолчанию), 0 - не отображать);
	
	$uploaddir = $shop->GetGroupDir($edit_groups_id);
	
	// Задано большое изображение
	if ($shop_groups_image != '')
	{
	
		$param['options']['big_image_path'] = '/'.$uploaddir.rawurlencode($shop_groups_image); // адрес большого загруженного изображения
		$param['options']['href_delete_big_image'] = "";
	}
	else
	{
		$param['options']['big_image_path'] = '';
		$param['options']['href_delete_big_image'] = '';
	}

	// Параметры
	$param['options']['make_small_image_from_big_show'] = 1; // отображать ли checkbox с подписью "Создать малое изображение из большого" (1 -  отображать (по умолчанию), 0 - не отображать);
	$param['options']['make_small_image_from_big_checked'] = 1; // вид отображения checkbox'а с подписью "Создать малое изображение из большого" выбранным (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
	$param['options']['load_small_image_show'] = 1; //- отображать ли поле загрузки малого изображения (1 -  отображать (по умолчанию), 0 - не отображать);
	$param['options']['load_small_image_caption'] = $GLOBALS['MSG_shops']['shop_groups_add_form_small_image']; // Заголовок поля загрузки малого изображения
	$param['options']['image_big_max_width'] = $shop_image_big_max_width; // значение максимальной ширины большого изображения;
	$param['options']['image_big_max_height'] = $shop_image_big_max_height; // значение максимальной высоты большого изображения;
	$param['options']['image_small_max_width'] = $shop_image_small_max_width; // значение максимальной ширины малого изображения;
	$param['options']['image_small_max_height'] = $shop_image_small_max_height; // значение максимальной высоты малого изображения;
	$param['options']['used_watermark_big_image_show'] = 1; // отображать ли checkbox с подписью "Наложить водяной знак на большое изображение" (1 -  отображать (по умолчанию), 0 - не отображать);
	$param['options']['used_watermark_big_image_checked'] = to_int($shop_data_row['shop_watermark_default_use_big']); // вид ображения checkbox'а с подписью "Наложить водяной знак на большое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
	$param['options']['watermark_position_x'] = $image_watermark_position_x_groups_image; //значение поля ввода с подписью "По оси X"
	$param['options']['watermark_position_y'] = $image_watermark_position_y_groups_image; // значение поля ввода с подписью "По оси Y"
	$param['options']['used_watermark_small_image_show'] = 1; //  отображать ли checkbox с подписью "Наложить водяной знак на малое изображение" (1 -  отображать (по умолчанию), 0 - не отображать);
	$param['options']['used_watermark_small_image_checked'] = to_int($shop_data_row['shop_watermark_default_use_small']); // вид ображения checkbox'а с подписью "Наложить водяной знак на малое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
$param['options']['used_big_image_preserve_aspect_ratio_checked'] = to_int($shop_data_row['shop_shops_default_save_proportions']);
							
$param['options']['used_small_image_preserve_aspect_ratio_checked'] = to_int($shop_data_row['shop_shops_default_save_proportions']);
	if (isset($shop_groups_image) && $shop_groups_image != '')
	{
		$param['options']['big_image_path'] = '/' . $uploaddir.rawurlencode($shop_groups_image); // адрес большого загруженного изображения

		$param['options']['href_delete_big_image'] = "javascript:void(0)";
		// Значение для onclick
		$param['options']['onclick_delete_big_image'] = "sendRequest('/admin/shop/shop.php?action=shop_group_big_image&item_id=$edit_groups_id&shop_shops_id=$shop_shops_id', 'get', callback_function_exec_from_return); return false;";
	}
	else
	{
		$param['options']['big_image_path'] = '';
	}


	if (isset($shop_groups_small_image) && $shop_groups_small_image != '')
	{
		$param['options']['small_image_path'] = '/'.$uploaddir.rawurlencode($shop_groups_small_image); // адрес малого загруженного изображения
		// Ссылка для href
		$param['options']['href_delete_small_image'] = "javascript:void(0)";
		// Значение для onclick
		$param['options']['onclick_delete_small_image'] = "sendRequest('/admin/shop/shop.php?action=shop_group_small_image&item_id=$edit_groups_id&shop_shops_id=$shop_shops_id', 'get', callback_function_exec_from_return); return false;";

	}
	else
	{
		$param['options']['small_image_path'] = '';
	}

	$admin_forms_fields->AddField($param);

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

	// Порядок сортировки
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'groups_order';
	$param['caption'] = $GLOBALS['MSG_shops']['groups_add_form_order'];
	$param['type'] = 0; // textbox
	$param['value'] = $shop_groups_order;
	$param['format']['lib']['value'] = 'integer';
	$param['format']['lib']['message'] = $GLOBALS['MSG_shops']['show_invalid_characters_integer'];
	$param['format']['minlen']['value'] = 1;
	$param['format']['maxlen']['value'] = 11;
	$admin_forms_fields->AddField($param);

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

	// Индексировать группу
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'groups_indexation';
	$param['caption'] = $GLOBALS['MSG_shops']['groups_add_form_indexation'];
	$param['type'] = 1; // checkbox
	$param['value'] = $shop_groups_indexation;

	$admin_forms_fields->AddField($param);

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

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

	$items = array();

	$items[0] = $GLOBALS['MSG_shops']['groups_add_form_activity_false'];
	$items[1] = $GLOBALS['MSG_shops']['groups_add_form_activity_true'];


	$param['items'] = $items;

	$admin_forms_fields->AddField($param);

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

	// Группа доступа
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'shop_groups_access';
	$param['caption'] = $GLOBALS['MSG_shops']['groups_add_form_access'];
	$param['type'] = 2; // Выпадающий список.

	$value = $shop_groups_access;

	$param['value'] = $value;

	$items = array();

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

		$result = $site_users->SelectSiteUsersGroups();

		$count_site_users_groups = mysql_num_rows($result);
	}
	else
	{
		$count_site_users_groups = 0;
	}

	for ($i = -2; $i < $count_site_users_groups; $i++)
	{
		switch ($i)
		{
			case -2:
				$option_text = $GLOBALS['MSG_shops']['shop_users_group_all'];
				$option_value = 0;
				break;
			case -1:
				$option_text = $GLOBALS['MSG_shops']['shop_users_group_parrent'];
				$option_value = -1;
				break;
			default:
				$row = mysql_fetch_assoc($result);
				$option_text = $row["site_users_group_name"];
				$option_value = $row["site_users_group_id"];
		}

		$items[$option_value] = $option_text;
	}

	$param['items'] = $items;
	$param['attributes']['style'] = 'width: 300px;';
	$param['div_attributes']['style'] = 'float: left;';
	$admin_forms_fields->AddField($param);

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

	// Путь
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'groups_path';
	$param['caption'] = $GLOBALS['MSG_shops']['items_catalog_add_form_path'];
	$param['type'] = 0; // textbox
	$param['value'] = $shop_groups_path;
	$param['format']['lib']['value'] = 'path';
	$param['format']['lib']['message'] = $GLOBALS['MSG_shops']['show_invalid_characters_path'];
	$param['format']['maxlen']['value'] = 255;
	$param['attributes']['style'] = 'font-weight: bold; width: 100%';
	$admin_forms_fields->AddField($param);

	$tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_shops']['tab_group_description']);

	// Описание
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'groups_description';
	$param['caption'] = $GLOBALS['MSG_shops']['groups_add_form_description'];
	$param['template'] = $template_id; // ID шаблона
	$param['type'] = 7; // Визуальный редактор
	$param['value'] = $shop_groups_description;
	$admin_forms_fields->AddField($param);

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

	if (class_exists('typograph'))
	{
		// Типографировать описание
		$param = array();
		$param['tab_id'] = $tab_id;
		$param['name'] = 'use_typograph_for_desc';
		$param['caption'] = $GLOBALS['MSG_shops']['exec_typograph_for_description'];
		$param['type'] = 1; // checkbox
		$param['value'] = $shop_data_row['shop_typograph_group_by_default'];
		$param['div_attributes']['style'] = 'float: left;';
		$admin_forms_fields->AddField($param);

		// Оптическое выравнивание
		$param = array();
		$param['tab_id'] = $tab_id;
		$param['name'] = 'trailing_punctuation_for_desc';
		$param['caption'] = $GLOBALS['MSG_shops']['use_trailing_punctuation_for_text'];
		$param['type'] = 1; // checkbox
		$param['value'] = 1;
		$param['div_attributes']['style'] = 'float: left;';
		$admin_forms_fields->AddField($param);
	}

	// SEO
	$tab_id = $admin_forms_fields->AddTab($GLOBALS['MSG_shops']['tab_group_seo']);

	// Заголовок
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'groups_seo_title';
	$param['caption'] = $GLOBALS['MSG_shops']['groups_add_form_seo_title'];
	$param['type'] = 0; // textbox
	$param['value'] = $shop_groups_seo_title;
	$param['format']['maxlen']['value'] = 65535;
	$admin_forms_fields->AddField($param);

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

	$tab_1id = $admin_forms_fields->AddTab($GLOBALS['MSG_shops']['tab_yandex_market']);

	// Идентификатор группы товаров для CommerceML
	$param = array();
	$param['tab_id'] = $tab_1id;
	$param['name'] = 'shop_groups_cml_id';
	$param['caption'] = $GLOBALS['MSG_shops']['1c_commerce_ml_group'];
	$param['type'] = 0; // textbox
	$param['value'] = $shop_groups_cml_id;
	$param['format']['maxlen']['value'] = 100;
	$admin_forms_fields->AddField($param);

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


	// Описание
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'groups_seo_description';
	$param['caption'] = $GLOBALS['MSG_shops']['groups_add_form_seo_description'];
	$param['type'] = 0; // textbox
	$param['value'] = $shop_groups_seo_description;
	$param['format']['maxlen']['value'] = 65535;
	$admin_forms_fields->AddField($param);

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

	// Ключевые слова
	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'groups_seo_keywords';
	$param['caption'] = $GLOBALS['MSG_shops']['groups_add_form_seo_keywords'];
	$param['type'] = 0; // textbox
	$param['value'] = $shop_groups_seo_keywords;
	$param['format']['maxlen']['value'] = 65535;
	$admin_forms_fields->AddField($param);

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

	// передеам скрытое поле с идентификатором каталога если он есть
	if ($edit_groups_id)
	{
		$param = array();
		$param['tab_id'] = $tab_id;
		$param['name'] = 'edit_groups';
		$param['caption'] = '';
		$param['type'] = 4; // hidden.
		$param['value'] = $edit_groups_id;

		$admin_forms_fields->AddField($param);
	}

	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'action';
	$param['caption'] = '';
	$param['type'] = 4; // hidden.
	$param['value'] = 'show_groups';
	$admin_forms_fields->AddField($param);

	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'shop_shops_id';
	$param['caption'] = '';
	$param['type'] = 4; // hidden.
	$param['value'] = $shop_shops_id;
	$admin_forms_fields->AddField($param);

	$param = array();
	$param['tab_id'] = $tab_id;
	$param['name'] = 'shop_groups_parent_id';
	$param['caption'] = '';
	$param['type'] = 4; // hidden.
	$param['value'] = $shop_groups_parent_id;
	$admin_forms_fields->AddField($param);

	// Кнопка "Сохранить".
	$param = array();
	$param['name'] = 'save_groups';
	$param['caption'] = $GLOBALS['MSG_shops']['save'];
	$param['attributes']['onclick'] = "return SendForm('{$admin_forms_fields->GetWindowId()}', '{$admin_forms_fields->AAction}', '{$admin_forms_fields->AAdditionalParams}', this, ".to_int($_REQUEST['admin_forms_id']).", 'load_data', " . to_int($admin_forms_fields->form_params['current_page']) . ", " . to_int($admin_forms_fields->form_params['on_page']) . " )";
	$param['attributes']['type'] = 'button';
	$admin_forms_fields->AddButton($param);

	// Кнопка "Применить".
	$param = array();
	$param['name'] = 'add_groups';
	$param['caption'] = $GLOBALS['MSG_shops']['apply'];
	$param['image'] = '/admin/images/add.gif';
	$param['attributes']['onclick'] = "return SendForm('{$admin_forms_fields->GetWindowId()}', '{$admin_forms_fields->AAction}', '{$admin_forms_fields->AAdditionalParams}', this, ".to_int($_REQUEST['admin_forms_id']).", 'load_data', " . to_int($admin_forms_fields->form_params['current_page']) . ", " . to_int($admin_forms_fields->form_params['on_page']) . " )";
	$param['attributes']['type'] = 'submit';
	$admin_forms_fields->AddButton($param);

	// Обрабатываем дополнительные свойства групп товаров
	if($edit_groups_id > 0)
	{

		// Если редактирование
		$query = "SELECT shop_properties_group_table.*,
		shop_properties_group_value_table.shop_properties_group_value_id,	
		shop_properties_group_value_table.shop_properties_group_value_value,	
		shop_properties_group_value_table.shop_properties_group_value_file, 	
		shop_properties_group_value_table.shop_properties_group_value_file_small,	
		shop_properties_group_value_table.shop_groups_id 
		FROM shop_properties_group_table 
		LEFT JOIN 	
		shop_properties_group_value_table 
		ON ( shop_properties_group_value_table.shop_properties_group_id	
		=shop_properties_group_table .shop_properties_group_id 
		AND ( (
		shop_properties_group_value_table.shop_groups_id='$edit_groups_id') 
		OR (shop_properties_group_value_table.shop_groups_id is null))) 
		WHERE shop_properties_group_table.shop_shops_id='$shop_shops_id' 
		ORDER BY shop_properties_group_table.shop_properties_group_order";

		$res = $DataBase->query($query);
	}
	else
	{
		// Иначе, если добавление, берем все допсвойства со значениями по умолчанию
		$res = $shop->GetAllPropretyOfGroup($shop_shops_id);
	}

	$count_rows = mysql_num_rows($res);


	// Функция получения информации о дереве групп доп. свойств групп товаров
	function get_mas_properties_groups_dir($shop_id, $parent_properties_groups_dir_id, $mas_dir)
	{
		$shop = & singleton('shop');

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

		$shop = new shop();

		$dir_resource = $shop->GetAllPropertiesGroupsDirForShop($shop_id, $param);

		if ($dir_resource)
		{
			while ($dir_row = mysql_fetch_assoc($dir_resource))
			{
				$mas_dir[] = $dir_row;
					
				$mas_dir = get_mas_properties_groups_dir($shop_id, $dir_row['shop_properties_groups_dir_id'], $mas_dir);
			}
		}

		return $mas_dir;
	}

	if ($count_rows > 0)
	{
		// Вкладка для дополнительных свойств
		$tab2_id = $admin_forms_fields->AddTab($GLOBALS['MSG_shops']['items_catalog_add_form_additional_titleform']);

		// Массив дополнительных свойств групр товаров
		$shop_groups_propertys_mas = array();

		// Цикл по дополнительным свойствам товаров
		while($row = mysql_fetch_assoc($res))
		{
			// Заполняем массив дополнительных свойств товаров по группам
			$shop_groups_propertys_mas[$row['shop_properties_groups_dir_id']][] = $row;
		}

		// Выбираем группы дополнительных свойств групп товаров
		//$result_propertys_groups = $shop->GetAllPropertiesGroupsDirForShop($shop_shops_id);

		//$row_propertys_groups = array();

		// Элемент массива, моделирующий кореневую группу доп. свойств товаров
		//$row_propertys_groups['shop_properties_groups_dir_id'] = 0;

		$mas_propertys_groups_dir = array(array('shop_properties_groups_dir_id' => 0));

		$mas_propertys_groups_dir = get_mas_properties_groups_dir($shop_shops_id, 0, $mas_propertys_groups_dir);

		// Стек
		$stack_array = array();

		$i = 0;

		// Начинаем обработку данных из БД
		//do
		foreach ($mas_propertys_groups_dir as $row_propertys_groups)
		{
			$margin_left = 0;

			if (isset($row_propertys_groups['shop_properties_groups_dir_parent_id']))
			{
				// Стек пуст
				if (count($stack_array) == 0)
				{
					$stack_array[] = $row_propertys_groups;

				}
				else // В стеке есть элементы
				{
					// Верхний элемент стека
					$end_stack_item = end($stack_array);

					// Текущий элемент является дочерним по отношению к верхнему элементу стека
					if ($end_stack_item['shop_properties_groups_dir_id'] == $row_propertys_groups['shop_properties_groups_dir_parent_id'])
					{
						$i++;

						// Добавляем элемент в стек
						$stack_array[] = $row_propertys_groups;
					}
					// Текущий элемент находится на одном уровне с верхним элементом стека
					elseif ($end_stack_item['shop_properties_groups_dir_parent_id'] == $row_propertys_groups['shop_properties_groups_dir_parent_id'])
					{
						$item_stack_key = key($stack_array);

						// Заменяем верхний элемент стека
						$stack_array[$item_stack_key] = $row_propertys_groups;

						//print_r($stack_array);
					}
					else // Текущий элемент находится на одном уровне с родителем верхнего элемента стека
					{
						$count_stack_items = count($stack_array);
							
						for ($k = 0; $k < $count_stack_items; $k++)
						{
							$item_stack_key = key($stack_array);

							unset($stack_array[$item_stack_key]);

							$end_stack_item = end($stack_array);

							$i--;

							if ($end_stack_item['shop_properties_groups_dir_parent_id'] == $row_propertys_groups['shop_properties_groups_dir_parent_id'])
							{
								// Заменяем верхний элемент стека
								$stack_array[] = $row_propertys_groups;
								break;
							}
						}
					}

					$margin_left = $i * 15;
				}
			}

			if ($row_propertys_groups['shop_properties_groups_dir_id'])
			{
				$param = array ();
				$param['tab_id'] = $tab2_id;
				$param['type'] = 8; // Название группы
				$param['value'] = '<strong>' . $row_propertys_groups['shop_properties_groups_dir_name'] . '</strong>';
				$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
				$admin_forms_fields->AddField($param);
			}
			$admin_forms_fields->AddSeparator($tab2_id);

			if (isset($shop_groups_propertys_mas[$row_propertys_groups['shop_properties_groups_dir_id']]))
			{
				// Начинаем обработку данных из БД
				foreach ($shop_groups_propertys_mas[$row_propertys_groups['shop_properties_groups_dir_id']] as $key => $resource)
				{
					//$resource = mysql_fetch_assoc($res);

					// Текущая строка таблицы
					switch (to_int($resource['shop_properties_group_type']))
					{
						case 0:// Файл - строка
							{
								if ($edit_groups_id > 0)
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 0; // Текстбокс
									$param['value'] = $resource['shop_properties_group_value_value'];
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$param['format']['maxlen']['value'] = 255;
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
								else
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 0; // Текстбокс
									$param['value'] = $resource['shop_properties_group_default_value'];
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$param['format']['maxlen']['value'] = 255;
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
								break;
							}
						case 1:// Список - файл
							{
								// Дополнительное поле
								$param = array();
								$param['tab_id'] = $tab2_id;
								$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
								$param['caption'] = $resource['shop_properties_group_name'];
								$param['type'] = 9; // file
								$param['options']['load_small_image_caption'] = $resource['shop_properties_group_name'] . ' ' . $GLOBALS['MSG_shops']['show_small_image'];
								// Параметры
								$param['options']['make_small_image_from_big_show'] = 1; // отображать ли checkbox с подписью "Создать малое изображение из большого" (1 -  отображать (по умолчанию), 0 - не отображать);
								$param['options']['make_small_image_from_big_checked'] = 1; // вид отображения checkbox'а с подписью "Создать малое изображение из большого" выбранным (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
									
								$param['options']['load_small_image_show'] = 1; //- отображать ли поле загрузки малого изображения (1 -  отображать (по умолчанию), 0 - не отображать);
									
									
									
								$param['options']['image_big_max_width'] = $resource['shop_properties_group_default_big_width']; // значение максимальной ширины большого изображения;
								$param['options']['image_big_max_height'] = $resource['shop_properties_group_default_big_height']; // значение максимальной высоты большого изображения;
									
								$param['options']['image_small_max_width'] = $resource['shop_properties_group_default_small_width']; // значение максимальной ширины малого изображения;
								$param['options']['image_small_max_height'] = $resource['shop_properties_group_default_small_height']; // значение максимальной высоты малого изображения;
									
								$param['options']['used_watermark_big_image_show'] = 1; // отображать ли checkbox с подписью "Наложить водяной знак на большое изображение" (1 -  отображать (по умолчанию), 0 - не отображать);
								$param['options']['used_watermark_big_image_checked'] = $shop_data_row['shop_watermark_default_use_big']; // вид ображения checkbox'а с подписью "Наложить водяной знак на большое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
									
								$param['options']['watermark_position_x'] = $image_watermark_position_x_groups_image; //значение поля ввода с подписью "По оси X"
								$param['options']['watermark_position_y'] = $image_watermark_position_y_groups_image; // значение поля ввода с подписью "По оси Y"
									
								$param['options']['used_watermark_small_image_show'] = 1; //  отображать ли checkbox с подписью "Наложить водяной знак на малое изображение" (1 -  отображать (по умолчанию), 0 - не отображать);
								$param['options']['used_watermark_small_image_checked'] = to_int($shop_data_row['shop_watermark_default_use_small']); // вид ображения checkbox'а с подписью "Наложить водяной знак на малое изображение" (1 -  отображать выбранным (по умолчанию), 0 - невыбранным);
								$param['options']['used_big_image_preserve_aspect_ratio_checked'] = to_int($shop_data_row['shop_shops_default_save_proportions']);
							
								$param['options']['used_small_image_preserve_aspect_ratio_checked'] = to_int($shop_data_row['shop_shops_default_save_proportions']);
								if ($edit_groups_id)
								{
									$items_catalog_image_ext = $resource['shop_properties_group_value_file'];

									$items_catalog_image_advanced_ext = $resource['shop_properties_group_value_file_small'];
								}
								else
								{
									$items_catalog_image_ext = '';


									$items_catalog_image_advanced_ext = '';
								}
									
									
								if (isset($items_catalog_image_ext) && $items_catalog_image_ext != '')
								{
									//$param['options']['big_image_path'] = '/'.UPLOADDIR.'shop_'.$shop_shops_id.'/shop_group_'.$edit_groups_id.'/'.rawurlencode($items_catalog_image_ext); // адрес большого загруженного изображения
									$param['options']['big_image_path'] = '/'.$uploaddir.rawurlencode($items_catalog_image_ext); // адрес большого загруженного изображения

									$param['options']['href_delete_big_image'] = "javascript:void(0)";

									$property_id = $resource['shop_properties_group_id'];

									// Значение для onclick
									$param['options']['onclick_delete_big_image'] = "sendRequest('/admin/shop/shop.php?action=group_big_image&property_id=$property_id&shop_shops_id=$shop_shops_id&group_id=$edit_groups_id', 'get', callback_function_exec_from_return); return false;";
								}
								else
								{
									$param['options']['big_image_path'] = '';
								}
									
								if (isset($items_catalog_image_advanced_ext) && $items_catalog_image_advanced_ext != '')
								{
									//$param['options']['small_image_path'] = '/' . UPLOADDIR . 'shop_' . $shop_shops_id . '/shop_group_' . $edit_groups_id . '/' . rawurlencode($items_catalog_image_advanced_ext); // адрес малого загруженного изображения
									$param['options']['small_image_path'] = '/' . $uploaddir . rawurlencode($items_catalog_image_advanced_ext); // адрес малого загруженного изображения

									$property_id = $resource['shop_properties_group_id'];

									$param['options']['href_delete_small_image'] = "javascript:void(0)";
									// Значение для onclick
									$param['options']['onclick_delete_small_image'] = "sendRequest('/admin/shop/shop.php?action=group_small_image&property_id=$property_id&shop_shops_id=$shop_shops_id&group_id=$edit_groups_id', 'get', callback_function_exec_from_return); return false;";
								}
								else
								{
									$param['options']['small_image_path'] = '';
								}
									
								$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
								$admin_forms_fields->AddField($param);
									
								// Разделитель.
								$admin_forms_fields->AddSeparator($tab_id);
								break;
							}
						case 2:// Список
							{
								if (class_exists('lists'))
								{
									$list = & singleton('lists');

									$resourceg[$i] = array();

									$resourceg[$i][0] = ' ... ';

									// Заполняем список данными из БД
									$res_x = $list->GetListItemsValuesById($resource['lists_id']);

									while ($row = mysql_fetch_assoc($res_x))
									{
										$resourceg[$i][$row['lists_items_id']] = $row['lists_items_value'];
									}

									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 2; // Выпадающий список
									$param['value'] = ($edit_groups_id > 0)?$resource['shop_properties_group_value_value']:$resource['shop_properties_group_default_value'];
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$param['items'] = $resourceg[$i];
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
								break;
									
							}
						case 3:// Визуальный редактор - большое текстовое поле
							{
								if ($edit_groups_id > 0)
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 5; // Текстовое поле
									$param['value'] = ($edit_groups_id > 0)?$resource['shop_properties_group_value_value']:$resource['shop_properties_group_default_value'];;
									$param['attributes']['rows'] = 10;
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
								else
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 5; // Текстовое поле
									$param['value'] = $resource['shop_properties_group_default_value'];
									$param['attributes']['rows'] = 10;
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
									
								break;
							}
						case 4:// Строка - визуальный редактор
							{
								if ($edit_groups_id > 0)
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['template'] = $template_id; // ID шаблона
									$param['type'] = 7; // Визуальный редактор
									$param['value'] = $resource['shop_properties_group_value_value'];
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
								else
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['template'] = $template_id; // ID шаблона
									$param['type'] = 7; // Визуальный редактор
									$param['value'] = $resource['shop_properties_group_default_value'];
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
									
								break;
							}
						case 5:
							{
								if ($edit_groups_id > 0)
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 10; // Дата
									$param['value'] = $DataTime->date_format($resource['shop_properties_group_value_value']);
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
								else
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 10; // Дата
									$param['value'] = $DataTime->date_format($resource['shop_properties_group_default_value']);
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
									
								break;
							}
						case 6:
							{
								if ($edit_groups_id > 0)
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 11; // Датавремя
									$param['value'] = $DataTime->datetime_format($resource['shop_properties_group_value_value']);
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
								else
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 11; // Датавремя
									$param['value'] = $DataTime->datetime_format($resource['shop_properties_group_default_value']);
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
									
								break;
							}
						case 7:
							{
								if ($edit_groups_id > 0)
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 1; // Флажок
									$param['value'] = $resource['shop_properties_group_value_value'];
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$admin_forms_fields->AddField($param);

									// Разделитель.
									$admin_forms_fields->AddSeparator($tab_id);
								}
								else
								{
									// Дополнительное поле
									$param = array();
									$param['tab_id'] = $tab2_id;
									$param['name'] = 'add_value_'.$resource['shop_properties_group_id'];
									$param['caption'] = $resource['shop_properties_group_name'];
									$param['type'] = 1; // Флажок
									$param['value'] = $resource['shop_properties_group_default_value'];
									$param['div_attributes']['style'] = 'margin-left: ' . $margin_left . 'px';
									$admin_forms_fields->AddField($param);

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

// Отображение формы.
$admin_forms_fields->ShowForm();

?>