403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/catalog/admin/templates/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/catalog/admin/templates/subproduct_edit.php
<?php
/** @global CUser $USER */
/** @global CMain $APPLICATION */
/** @var bool $bSubCopy */
/** @var bool $bVarsFromForm */
/** @var int $IBLOCK_ID */
/** @var int $ID */

use Bitrix\Main;
use Bitrix\Main\Loader;
use Bitrix\Currency;
use Bitrix\Catalog;
use Bitrix\Catalog\Access\AccessController;
use Bitrix\Catalog\Access\ActionDictionary;

/** @global CAdminPage $adminPage */
global $adminPage;
/** @global CAdminSidePanelHelper $adminSidePanelHelper */
global $adminSidePanelHelper;

if (
	isset($urlBuilderId)
	&& in_array(
		$urlBuilderId,
		[
			'SHOP',
			'INVENTORY',
			'CRM',
		]
	)
)
{
	$selfFolderUrl = '/shop/settings/';
	$publicMode = true;
	$adminSidePanelHelper->setPublicPageProcessMode(true);
}
else
{
	$selfFolderUrl = (defined("SELF_FOLDER_URL") ? SELF_FOLDER_URL : "/bitrix/admin/");
	$publicMode = defined("SELF_FOLDER_URL");
}

$isCloud = Loader::includeModule('bitrix24');

$PRODUCT_ID = (0 < $ID ? CIBlockElement::GetRealElement($ID) : 0);

$accessController = AccessController::getCurrent();

$iblockEditProduct = $PRODUCT_ID > 0 && !$bSubCopy
	? CIBlockElementRights::UserHasRightTo($IBLOCK_ID, $PRODUCT_ID, 'element_edit_price')
	: CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, 'element_edit_price')
;

$allowEdit = false;
if ($iblockEditProduct)
{
	$allowEdit = $PRODUCT_ID > 0 && !$bSubCopy
		? $accessController->check(ActionDictionary::ACTION_PRODUCT_EDIT)
		: $accessController->check(ActionDictionary::ACTION_PRODUCT_ADD);
}
$allowEditPrices = $allowEdit
	&& $accessController->check(ActionDictionary::ACTION_PRICE_EDIT)
;
$allowView = $allowEdit
	|| $accessController->check(ActionDictionary::ACTION_CATALOG_READ)
	|| $accessController->check(ActionDictionary::ACTION_CATALOG_VIEW)
;

if (!$allowView)
{
	return;
}

$disableFieldAttributes = ' disabled readonly';
$disableProduct = $allowEdit
	? ''
	: $disableFieldAttributes
;
$disablePrice = $allowEditPrices
	? ''
	: $disableFieldAttributes
;

IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/catalog/templates/product_edit.php');

$currencyList = array();
foreach (Currency\CurrencyManager::getCurrencyList() as $currency => $currencyName)
{
	$currencyList[$currency] = array(
		'CURRENCY' => $currency,
		'FULL_NAME' => htmlspecialcharsbx($currencyName)
	);
	$currencyList[$currency]['FULL_NAME_JS'] = CUtil::JSEscape($currencyList[$currency]['FULL_NAME']);
}
unset($currency, $currencyName);

$bDiscount = $accessController->check(ActionDictionary::ACTION_PRODUCT_DISCOUNT_SET);
$bStore = $accessController->check(ActionDictionary::ACTION_STORE_VIEW);
$bUseStoreControl = Catalog\Config\State::isUsedInventoryManagement();
$bEnableReservation = (COption::GetOptionString('catalog', 'enable_reservation') !== 'N');
$allowedShowQuantity = \CCatalogAdminTools::allowedShowQuantityFields();
$enableQuantityRanges = Catalog\Config\Feature::isPriceQuantityRangesEnabled();
$quantityRangesHelpLink = null;
if (!$enableQuantityRanges)
{
	$quantityRangesHelpLink = Catalog\Config\Feature::getPriceQuantityRangesHelpLink();
}

$availQuantityTrace = COption::GetOptionString("catalog", "default_quantity_trace");
$availCanBuyZero = COption::GetOptionString("catalog", "default_can_buy_zero");
$strGlobalSubscribe = COption::GetOptionString("catalog", "default_subscribe");

$arCatalog = CCatalog::GetByID($IBLOCK_ID);
$vatInclude = (Main\Config\Option::get('catalog', 'default_product_vat_included') === 'Y' ? 'Y' : 'N');

$arBaseProduct = null;
$periodTimeTypes = [];
if ($arCatalog['SUBSCRIPTION'] == 'Y')
{
	$defaultProduct = [
		'QUANTITY' => '',
		'QUANTITY_RESERVED' => '',
		'VAT_ID' => 0,
		'VAT_INCLUDED' => $vatInclude,
		'QUANTITY_TRACE_ORIG' => Catalog\ProductTable::STATUS_NO,
		'CAN_BUY_ZERO_ORIG' => Catalog\ProductTable::STATUS_NO,
		'SUBSCRIBE_ORIG' => Catalog\ProductTable::STATUS_DEFAULT,
		'SUBSCRIBE' => $strGlobalSubscribe,
		'PURCHASING_PRICE' => '',
		'PURCHASING_CURRENCY' => '',
		'BARCODE_MULTI' => '',
		'PRICE_TYPE' => '',
		'RECUR_SCHEME_TYPE' => '',
		'RECUR_SCHEME_LENGTH' => '',
		'TRIAL_PRICE_ID' => '',
		'WITHOUT_ORDER' => '',
	];
	$periodTimeTypes = Catalog\ProductTable::getPaymentPeriods(true);
}
else
{
	$defaultProduct = [
		'QUANTITY' => '',
		'QUANTITY_RESERVED' => '',
		'VAT_ID' => 0,
		'VAT_INCLUDED' => $vatInclude,
		'QUANTITY_TRACE_ORIG' => Catalog\ProductTable::STATUS_DEFAULT,
		'CAN_BUY_ZERO_ORIG' => Catalog\ProductTable::STATUS_DEFAULT,
		'SUBSCRIBE_ORIG' => Catalog\ProductTable::STATUS_DEFAULT,
		'SUBSCRIBE' => $strGlobalSubscribe,
		'PURCHASING_PRICE' => '',
		'PURCHASING_CURRENCY' => '',
		'WEIGHT' => '',
		'WIDTH' => '',
		'LENGTH' => '',
		'HEIGHT' => '',
		'MEASURE' => '',
		'BARCODE_MULTI' => ''
	];
}
if ($PRODUCT_ID > 0)
{
	$iterator = Catalog\ProductTable::getList([
		'select' => array_merge(
			[
				'ID',
				'TYPE',
			],
			array_keys($defaultProduct)
		),
		'filter' => [
			'=ID' => $PRODUCT_ID,
		]
	]);
	$arBaseProduct = $iterator->fetch();
	unset($iterator);
	if (!empty($arBaseProduct))
	{
		if ($bSubCopy)
		{
			$arBaseProduct['QUANTITY'] = '';
			$arBaseProduct['QUANTITY_RESERVED'] = '';
		}
		if ($arCatalog['SUBSCRIPTION'] == 'Y')
		{
			$arBaseProduct['QUANTITY_TRACE_ORIG'] = Catalog\ProductTable::STATUS_NO;
			$arBaseProduct['CAN_BUY_ZERO_ORIG'] = Catalog\ProductTable::STATUS_NO;
		}
	}
}

if ($arBaseProduct === null)
{
	$arBaseProduct = $defaultProduct;
	$arBaseProduct['TYPE'] = Catalog\ProductTable::TYPE_OFFER;
}

$disableQuantityFields = !$allowEdit || $bUseStoreControl
	? $disableFieldAttributes
	: ''
;

$subscribeEnabled = $arBaseProduct["SUBSCRIBE"] == 'Y';
$activitySubscribeTab = $PRODUCT_ID > 0 && !$bSubCopy && $subscribeEnabled;

$arExtraList = array();
$l = CExtra::GetList(array("NAME" => "ASC"));
while ($l_res = $l->Fetch())
{
	$arExtraList[] = $l_res;
}
?>
<tr class="heading">
<td colspan="2"><?php
	echo GetMessage("IBLOCK_TCATALOG");
	if (!$allowEdit)
	{
		echo ' ' . GetMessage("IBLOCK_TREADONLY");
	}
	?>
<script>
var allowSubPriceEdit = <?= ($allowEditPrices ? 'true' : 'false'); ?>;
var allowSubEdit = <?= ($allowEdit ? 'true' : 'false'); ?>;

function getElementSubForm()
{
	for(var i = 0; i < document.forms.length; i++)
	{
		var check = document.forms[i].name.substring(0, 10).toUpperCase();
		if(check == 'FORM_ELEME' || check == 'TABCONTROL')
			return document.forms[i];
	}
}
function getElementSubFormName()
{
	var form = getElementSubForm();
	if (form)
		return form.name;
	else
		return '';
}
function checkSubForm(e)
{
	if (window.BX_CANCEL)
		return true;

	if (!e)
		e = window.event;

	var bReturn = true;

	if (BX('SUBCAT_ROW_COUNTER').value > 0 && !!BX('subprice_useextform') && !BX('subprice_useextform').checked)
	{
		bReturn = confirm('<?=CUtil::JSEscape(GetMessage("CAT_E_PRICE_EXT"))?>');
	}
	if (!bReturn)
	{
		if (e.preventDefault)
			e.preventDefault();

		return false;
	}

	return true;
}

jsUtils.addEvent(window, 'load', function () {
	var obForm = getElementSubForm();
	jsUtils.addEvent(obForm, 'submit', checkSubForm);
	jsUtils.addEvent(obForm.dontsave, 'click', function() {window.BX_CANCEL = true; setTimeout('window.BX_CANCEL = false', 10);});
});

function checkSubBarCode()
{
	var obTrSubBarCode = BX('tr_SUB_CAT_BARCODE');
	var obTrSubBarCodeEdit = BX('tr_SUBCAT_BARCODE_EDIT');

	if(BX('SUBCAT_BARCODE_MULTIPLY').checked)
	{
		if (!!obTrSubBarCode)
		{
			obTrSubBarCode.disabled = true;
			obTrSubBarCode.style.display = 'none';
		}
		if (!!obTrSubBarCodeEdit)
		{
			obTrSubBarCodeEdit.disabled = true;
			obTrSubBarCodeEdit.style.display = 'none';
		}
	}
	else
	{
		if (!!obTrSubBarCode)
		{
			obTrSubBarCode.disabled = false;
			obTrSubBarCode.style.display = 'table-row';
		}
		if (!!obTrSubBarCodeEdit)
		{
			obTrSubBarCodeEdit.disabled = false;
			obTrSubBarCodeEdit.style.display = 'table-row';
		}
	}
}

function editSubBarCode()
{
	var obEditSubBarCode = BX('SUBCAT_BARCODE_EDIT_Y');
	var obSubBarCode = BX('SUBCAT_BARCODE');
	if (allowSubEdit && !!obEditSubBarCode && !!obSubBarCode)
	{
		if (obEditSubBarCode.checked)
		{
			if (confirm('<?= GetMessageJS("CAT_BARCODE_EDIT_CONFIRM"); ?>'))
			{
				obSubBarCode.disabled = false;
			}
			else
			{
				obEditSubBarCode.checked = false;
				obSubBarCode.disabled = true;
			}
		}
		else
		{
			obSubBarCode.disabled = true;
		}
	}
}

function SetSubFieldsStyle(table_id)
{
	var tbl = BX(table_id);
	var n = tbl.rows.length;
	for(var i=0; i<n; i++)
	{
		if (tbl.rows[i].cells[0].colSpan == 1)
		{
			tbl.rows[i].cells[0].classList.add('field-name');
		}
	}
}

function toggleSubPriceType()
{
	var obSubPriceSimple = BX('subprices_simple');
	var obSubPriceExt = BX('subprices_ext');
	var obSubBasePrice = BX('tr_SUB_BASE_PRICE');
	var obSubBaseCurrency = BX('tr_SUB_BASE_CURRENCY');

	if (obSubPriceSimple.style.display == 'block')
	{
		obSubPriceSimple.style.display = 'none';
		obSubPriceExt.style.display = 'block';
		if (!!obSubBasePrice)
			BX.style(obSubBasePrice, 'display', 'none');
		if (!!obSubBaseCurrency)
			BX.style(obSubBaseCurrency, 'display', 'none');
	}
	else
	{
		obSubPriceSimple.style.display = 'block';
		obSubPriceExt.style.display = 'none';
		if (!!obSubBasePrice)
			BX.style(obSubBasePrice, 'display', 'table-row');
		if (!!obSubBaseCurrency)
			BX.style(obSubBaseCurrency, 'display', 'table-row');
	}
}
</script>
	</td>
</tr>
<tr>
	<td valign="top" colspan="2">
		<?php
		$aTabs1 = array();
		$aTabs1[] = array("DIV" => "subcat_edit1", "TAB" => GetMessage("C2IT_PRICES"), "TITLE" => GetMessage("C2IT_PRICES_D"));

		$aTabs1[] = array("DIV" => "subcat_edit3", "TAB" => GetMessage("C2IT_PARAMS"), "TITLE" => GetMessage("C2IT_PARAMS_D"));
		if($arCatalog["SUBSCRIPTION"] == "Y")
			$aTabs1[] = array("DIV" => "subcat_edit4", "TAB" => GetMessage("C2IT_GROUPS"), "TITLE" => GetMessage("C2IT_GROUPS_D"));
		$aTabs1[] = array("DIV" => "subcat_edit6", "TAB" => GetMessage("C2IT_DISCOUNTS"), "TITLE" => GetMessage("C2IT_DISCOUNTS_D"));
		if ($allowedShowQuantity)
		{
			$aTabs1[] = [
				"DIV" => "subcat_edit5",
				"TAB" => GetMessage("C2IT_STORE"),
				"TITLE" => GetMessage("C2IT_STORE_D")
			];

			if ($bUseStoreControl)
			{
				$aTabs1[] = [
					"DIV" => "subcat_edit7",
					"TAB" => GetMessage("C2IT_BAR_CODE"),
					"TITLE" => GetMessage("C2IT_BAR_CODE_D")
				];
			}
		}
		if($activitySubscribeTab)
		{
			$aTabs1[] = array(
				"DIV" => "subcat_edit8",
				"TAB" => GetMessage("C2IT_SUBSCRIBE_TAB"),
				"TITLE" => GetMessage("C2IT_SUBSCRIBE_TAB_TITLE"),
				"ONSELECT" => "getDataSubscriptions();"
			);
		}

		$subtabControl1 = new CAdminViewTabControl("subtabControl1", $aTabs1);
		$subtabControl1->Begin();

		// Define boundaries
		$usedRanges = false;
		$arProductFilter = array("PRODUCT_ID" => $PRODUCT_ID);
		if (!Catalog\Config\Feature::isMultiPriceTypesEnabled())
		{
			$arProductFilter['BASE'] = 'Y';
		}
		$arPriceBoundariesError = array();
		$arPriceBoundaries = array();
		$dbPrice = CPrice::GetList(
				array("BASE" => "DESC", "CATALOG_GROUP_ID" => "ASC", "QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC"),
				$arProductFilter
			);
		while ($arPrice = $dbPrice->Fetch())
		{
			$arPrice['RAW_QUANTITY_FROM'] = $arPrice['QUANTITY_FROM'];
			$arPrice['RAW_QUANTITY_TO'] = $arPrice['QUANTITY_TO'];
			$arPrice['QUANTITY_FROM'] = (int)$arPrice['QUANTITY_FROM'];
			$arPrice['QUANTITY_TO'] = (int)$arPrice['QUANTITY_TO'];
			if ($arPrice['RAW_QUANTITY_FROM'] !== null && $arPrice['QUANTITY_FROM'] > 0)
				$usedRanges = true;
			if ($arPrice['RAW_QUANTITY_TO'] !== null && $arPrice['QUANTITY_TO'] > 0)
				$usedRanges = true;
			if ($arPrice["BASE"] == "Y")
			{
				$arPriceBoundaries[] = array(
						"FROM" => $arPrice["QUANTITY_FROM"],
						"TO" => $arPrice["QUANTITY_TO"]
					);
				if ($arPrice["QUANTITY_FROM"] > $arPrice["QUANTITY_TO"]
					&& $arPrice["QUANTITY_TO"] != 0)
				{
					$arPriceBoundariesError[] = str_replace("#RIGHT#", $arPrice["QUANTITY_TO"], str_replace("#LEFT#", $arPrice["QUANTITY_FROM"], GetMessage("C2IT_BOUND_LR")));
				}
			}
			else
			{
				if ($arPrice["QUANTITY_FROM"] > $arPrice["QUANTITY_TO"]
					&& $arPrice["QUANTITY_TO"] != 0)
				{
					$arPriceBoundariesError[] = str_replace("#TYPE#", $arPrice["CATALOG_GROUP_NAME"], str_replace("#RIGHT#", $arPrice["QUANTITY_TO"], str_replace("#LEFT#", $arPrice["QUANTITY_FROM"], GetMessage("C2IT_BOUND_LR1"))));
				}
				else
				{
					$bNewSegment = true;
					$intCount = count($arPriceBoundaries);
					for ($i = 0; $i < $intCount; $i++)
					{
						if ($arPriceBoundaries[$i]["FROM"] == $arPrice["QUANTITY_FROM"])
						{
							if ($arPriceBoundaries[$i]["TO"] != $arPrice["QUANTITY_TO"])
							{
								$arPriceBoundariesError[] = str_replace("#TYPE#", $arPrice["CATALOG_GROUP_NAME"], str_replace("#RIGHT#", $arPrice["QUANTITY_TO"], str_replace("#LEFT#", $arPrice["QUANTITY_FROM"], GetMessage("C2IT_BOUND_DIAP"))));
							}
							$bNewSegment = false;
							break;
						}
						else
						{
							if ($arPriceBoundaries[$i]["FROM"] < $arPrice["QUANTITY_FROM"]
								&& $arPriceBoundaries[$i]["TO"] >= $arPrice["QUANTITY_TO"]
								&& $arPrice["QUANTITY_TO"] != 0)
							{
								$arPriceBoundariesError[] = str_replace("#TYPE#", $arPrice["CATALOG_GROUP_NAME"], str_replace("#RIGHT#", $arPrice["QUANTITY_TO"], str_replace("#LEFT#", $arPrice["QUANTITY_FROM"], GetMessage("C2IT_BOUND_DIAP"))));
								$bNewSegment = false;
								break;
							}
						}
					}
					if ($bNewSegment)
					{
						$arPriceBoundaries[] = array("FROM" => $arPrice["QUANTITY_FROM"], "TO" => $arPrice["QUANTITY_TO"]);
					}
				}
			}
		}

		if (!empty($arPriceBoundaries))
		{
			if (count($arPriceBoundaries) > 1)
			{
				Main\Type\Collection::sortByColumn($arPriceBoundaries, array('FROM' => SORT_ASC));
			}
			elseif (!$usedRanges)
			{
				$arPriceBoundaries[0]['FROM'] = false;
				$arPriceBoundaries[0]['TO'] = false;
			}
		}
		else
		{
			$arPriceBoundaries[] = [
				'FROM' => false,
				'TO' => false
			];
		}

// prices tab
		$subtabControl1->BeginNextTab();
$arCatPricesExist = array(); // attr for exist prices for range
if ($enableQuantityRanges)
	$bUseExtendedPrice = $bVarsFromForm ? $subprice_useextform == 'Y' : $usedRanges;
else
	$bUseExtendedPrice = false;
if ($isCloud)
{
	$str_CAT_VAT_ID = (int)($bVarsFromForm
		? $SUBCAT_VAT_ID
		: ($arBaseProduct['VAT_ID'] == 0 ? $arCatalog['VAT_ID'] : $arBaseProduct['VAT_ID'])
	);
}
else
{
	$str_CAT_VAT_ID = (int)($bVarsFromForm ? $SUBCAT_VAT_ID : $arBaseProduct['VAT_ID']);
}
$vatList = [];
$iterator = Catalog\VatTable::getList([
	'select' => [
		'ID',
		'NAME',
		'SORT',
	],
	'filter' => [
		'=ACTIVE' => 'Y',
	],
	'order' => [
		'SORT' => 'ASC',
		'NAME' => 'ASC',
	]
]);
while ($row = $iterator->fetch())
{
	$vatList[$row['ID']] = $row['NAME'];
}
unset($row, $iterator);
if (!isset($vatList[$arCatalog['VAT_ID']]))
{
	$arCatalog['VAT_ID'] = 0;
}
if (!isset($vatList[$str_CAT_VAT_ID]))
{
	$str_CAT_VAT_ID = 0;
}
$str_CAT_VAT_INCLUDED = (string)($bVarsFromForm ? $SUBCAT_VAT_INCLUDED : $arBaseProduct['VAT_INCLUDED']);
if ($str_CAT_VAT_INCLUDED != 'Y' && $str_CAT_VAT_INCLUDED != 'N')
	$str_CAT_VAT_INCLUDED = (Main\Config\Option::get('catalog', 'default_product_vat_included') === 'Y' ? 'Y' : 'N');
		?>
<input type="hidden" name="subprice_useextform" id="subprice_useextform_N" value="N" />
<table border="0" cellspacing="0" cellpadding="0" width="100%" class="edit-table" id="subcatalog_vat_table">
<?php
if ($enableQuantityRanges || !empty($quantityRangesHelpLink))
{
	?>
	<tr>
		<td width="40%"><label for="subprice_useextform"><?= GetMessage('C2IT_PRICES_USEEXT'); ?>:</label></td>
		<td width="60%"><?php
		if ($enableQuantityRanges)
		{
			?><input type="checkbox" name="subprice_useextform" id="subprice_useextform" value="Y" onclick="toggleSubPriceType()" <?= $bUseExtendedPrice ? 'checked="checked"' : '' ?><?= $disablePrice; ?> /><?php
		}
		else
		{
			?><input type="hidden" name="subprice_useextform" value="N"><?php
			if ($quantityRangesHelpLink['TYPE'] == 'ONCLICK')
			{
				?><a href="#" onclick="<?=$quantityRangesHelpLink['LINK']; ?>"><?=GetMessage('C2IT_PRICES_EXT_TARIFF_ENABLE'); ?></a><?php
				Catalog\Config\Feature::initUiHelpScope();
			}
		}
		?></td>
	</tr>
	<?php
}
else
{
	?><input type="hidden" name="subprice_useextform" value="N"><?php
}
?>
	<tr>
		<td width="40%">
			<?php
			if (!$isCloud && (int)$arCatalog['VAT_ID'] !== 0)
			{
				$hintMessage = GetMessage(
					'CAT_VAT_ID_CATALOG_HINT',
					[
					'#VAT_NAME#' => $vatList[$arCatalog['VAT_ID']],
					]
				);
				?>
				<span id="hint_SUBCAT_VAT_ID"></span>
				<script>
					BX.hint_replace(BX('hint_SUBCAT_VAT_ID'), '<?=\CUtil::JSEscape($hintMessage); ?>');
				</script>&nbsp;<?php
			}
			echo GetMessage("CAT_VAT")?>:
		</td>
		<td width="60%">
			<select name="SUBCAT_VAT_ID" id="SUBCAT_VAT_ID" <?= $disableProduct; ?>>
				<?php
				if (!$isCloud)
				{
				$vatSelected = ($str_CAT_VAT_ID === 0 ? ' selected' : '');
				?>
				<option value="0"<?=$vatSelected; ?>><?=htmlspecialcharsbx(GetMessage('CAT_VAT_ID_EMPTY')); ?></option>
				<?php
				}
				foreach ($vatList as $vatId => $vatName)
				{
					$vatSelected = ($str_CAT_VAT_ID === $vatId ? ' selected' : '');
					?><option value="<?=htmlspecialcharsbx($vatId); ?>"<?=$vatSelected; ?>><?=htmlspecialcharsbx($vatName); ?></option><?php
				}
				unset($vatList);
				?>
			</select>
		</td>
	</tr>
	<tr>
		<td width="40%"><label for="SUBCAT_VAT_INCLUDED"><?= GetMessage("CAT_VAT_INCLUDED");?></label>:</td>
		<td width="60%">
			<input type="hidden" name="SUBCAT_VAT_INCLUDED" id="SUBCAT_VAT_INCLUDED_N" value="N">
			<input type="checkbox" name="SUBCAT_VAT_INCLUDED" id="SUBCAT_VAT_INCLUDED" value="Y" <?=$str_CAT_VAT_INCLUDED == 'Y' ? 'checked="checked"' : ''?><?= $disableProduct; ?> />
		</td>
	</tr>

	<?php
	if ($accessController->check(ActionDictionary::ACTION_PRODUCT_PURCHASE_INFO_VIEW)):?>
		<tr id="tr_SUB_PURCHASING_PRICE">
			<?php
			$str_CAT_PURCHASING_PRICE = $bVarsFromForm ? $SUBCAT_PURCHASING_PRICE : $arBaseProduct['PURCHASING_PRICE'];
			?>
			<td width="40%"><?= GetMessage("C2IT_COST_PRICE_EXT")?></td>
			<td width="60%"><?php
				$isDisabled = (!$allowEdit || $bUseStoreControl)
					? ' disabled'
					: ''
				;
				?>
				<input type="hidden" id="SUBCAT_PURCHASING_PRICE_hidden" name="SUBCAT_PURCHASING_PRICE" value="<?= htmlspecialcharsbx($str_CAT_PURCHASING_PRICE) ?>">
				<input type="text"<?= $isDisabled; ?> id="SUBCAT_PURCHASING_PRICE" name="SUBCAT_PURCHASING_PRICE" value="<?= htmlspecialcharsbx($str_CAT_PURCHASING_PRICE) ?>" size="30">
				<input type="hidden" id="SUBCAT_PURCHASING_CURRENCY_hidden" name="SUBCAT_PURCHASING_CURRENCY" value="<?= htmlspecialcharsbx($arBaseProduct['PURCHASING_CURRENCY']) ?>"><?php
				echo CCurrency::SelectBox("SUBCAT_PURCHASING_CURRENCY", $arBaseProduct['PURCHASING_CURRENCY'], "", true, "", "id='SUBCAT_PURCHASING_CURRENCY' $isDisabled");?>
			</td>
		</tr>
	<?php
	endif;?>
	<tr id="tr_SUB_BASE_PRICE" style="display: <?= ($bUseExtendedPrice ? 'none' : 'table-row'); ?>;">
		<td width="40%">
			<?php
			$arBaseGroup = Catalog\GroupTable::getBasePriceType();
			$arBasePrice = CPrice::GetBasePrice(
				$PRODUCT_ID,
				$arPriceBoundaries[0]["FROM"],
				$arPriceBoundaries[0]["TO"],
				false
			);
			echo GetMessage("BASE_PRICE")?> (<?= GetMessage('C2IT_PRICE_TYPE'); ?> "<?= htmlspecialcharsbx(!empty($arBaseGroup['NAME_LANG']) ? $arBaseGroup['NAME_LANG'] : $arBaseGroup["NAME"]); ?>"):
		</td>
		<td width="60%">
			<script>
				var arExtra = [];
				var arExtraPrc = [];
				<?php
				$db_extras = CExtra::GetList(($by3="NAME"), ($order3="ASC"));
				$i = 0;
				while ($extras = $db_extras->Fetch())
				{
					echo "arExtra[".$i."]=".$extras["ID"].";";
					echo "arExtraPrc[".$i."]=".$extras["PERCENTAGE"].";";
					$i++;
				}
				?>

				function OnChangeSubExtra(priceType)
				{
					if (!allowSubPriceEdit)
						return;

					var e_base_price = BX('SUBCAT_BASE_PRICE');
					var e_extra = BX('SUBCAT_EXTRA_' + priceType);
					var e_price = BX('SUBCAT_PRICE_' + priceType);
					var e_currency = BX('SUBCAT_CURRENCY_' + priceType);

					if (isNaN(e_base_price.value) || e_base_price.value <= 0)
					{
						e_currency.disabled = false;
						e_price.disabled = false;
						return;
					}

					var i, esum, eps;
					if (parseInt(e_extra.selectedIndex)==0)
					{
						e_currency.disabled = false;
						e_price.disabled = false;
					}
					else
					{
						e_currency.selectedIndex = 0;
						e_currency.disabled = true;
						e_price.disabled = true;
						for (i = 0; i < arExtra.length; i++)
						{
							if (parseInt(e_extra.options[e_extra.selectedIndex].value) == parseInt(arExtra[i]))
							{
								esum = parseFloat(e_base_price.value) * (1 + arExtraPrc[i] / 100);
								eps = 1.00/Math.pow(10, 6);
								e_price.value = Math.round((esum+eps)*100)/100;
								break;
							}
						}
					}
				}

				function OnChangeSubExtraEx(e)
				{
					if (!allowSubPriceEdit)
						return;

					var thename = e.name;

					var pos = thename.lastIndexOf("_");
					var ind = thename.substr(pos + 1);
					thename = thename.substr(0, pos);
					pos = thename.lastIndexOf("_");
					var ptype = thename.substr(pos + 1);

					var e_ext = BX('SUBCAT_EXTRA_'+ptype+"_"+ind);
					var e_price = BX('SUBCAT_PRICE_'+ptype+"_"+ind);
					var e_currency = BX('SUBCAT_CURRENCY_'+ptype+"_"+ind);

					var e_base_price = BX('SUBCAT_BASE_PRICE_'+ind);

					if (isNaN(e_base_price.value) || e_base_price.value <= 0)
					{
						e_price.disabled = false;
						e_currency.disabled = false;
						return;
					}

					var i, esum;
					if (parseInt(e_ext.selectedIndex)==0)
					{
						e_price.disabled = false;
						e_currency.disabled = false;
					}
					else
					{
						e_currency.selectedIndex = 0;
						e_currency.disabled = true;
						e_price.disabled = true;
						for (i = 0; i < arExtra.length; i++)
						{
							if (parseInt(e_ext.options[e_ext.selectedIndex].value) == parseInt(arExtra[i]))
							{
								esum = parseFloat(e_base_price.value) * (1 + arExtraPrc[i] / 100);
								eps = 1.00/Math.pow(10, 6);
								e_price.value = Math.round((esum+eps)*100)/100;
								break;
							}
						}
					}
				}

				function ChangeSubExtra(codID)
				{
					if (!allowSubPriceEdit)
						return;

					OnChangeSubExtra(codID);

					var e_extra = BX('SUBCAT_EXTRA_' + codID + '_0');
					if (e_extra)
					{
						var e_extra_s = BX('SUBCAT_EXTRA_' + codID);
						e_extra.selectedIndex = e_extra_s.selectedIndex;
						OnChangeSubExtraEx(e_extra);
					}
				}

				function OnChangeSubBasePrice()
				{
					if (!allowSubPriceEdit)
						return;

					var e_base_price = BX('SUBCAT_BASE_PRICE');

					if (isNaN(e_base_price.value) || e_base_price.value <= 0)
					{
						var k;
						for (k = 0; k < arCatalogGroups.length; k++)
						{
							e_price = BX('SUBCAT_PRICE_' + arCatalogGroups[k]);
							e_price.disabled = false;
							e_currency = BX('SUBCAT_CURRENCY_' + arCatalogGroups[k]);
							e_currency.disabled = false;
						}
						OnChangeSubPriceExist();
						return;
					}

					var i, j, esum, eps;
					var e_price;
					for (i = 0; i < arCatalogGroups.length; i++)
					{
						e_extra = BX('SUBCAT_EXTRA_' + arCatalogGroups[i]);
						if (e_extra.selectedIndex > 0)
						{
							e_price = BX('SUBCAT_PRICE_' + arCatalogGroups[i]);
							e_currency = BX('SUBCAT_CURRENCY_' + arCatalogGroups[i]);

							for (j = 0; j < arExtra.length; j++)
							{
								if (parseInt(e_extra.options[e_extra.selectedIndex].value) == parseInt(arExtra[j]))
								{
									esum = parseFloat(e_base_price.value) * (1 + arExtraPrc[j] / 100);
									eps = 1.00/Math.pow(10, 6);
									e_price.value = Math.round((esum+eps)*100)/100;
									e_currency.selectedIndex = 0;
									e_currency.disabled = true;
									e_price.disabled = true;
									break;
								}
							}
						}
					}
					OnChangeSubPriceExist();
				}

				function ChangeSubBasePrice(e)
				{
					if (!allowSubPriceEdit)
						return;

					if (e.value != '' && (isNaN(e.value) || e.value <= 0))
					{
					}
					else
					{
						e.className = '';
					}

					OnChangeSubBasePrice();

					var e_base_price = BX('SUBCAT_BASE_PRICE_0');
					e_base_price.value = BX('SUBCAT_BASE_PRICE').value;
					OnChangeSubBasePriceEx(e_base_price);
					OnChangeSubPriceExistEx(e_base_price);
				}

				function ChangeSubBaseCurrency()
				{
					if (!allowSubPriceEdit)
						return;

					BX('SUBCAT_BASE_CURRENCY_0').selectedIndex = BX('SUBCAT_BASE_CURRENCY').selectedIndex;
				}

				function ChangeSubPrice(codID)
				{
					if (!allowSubPriceEdit)
						return;

					var e_price = BX('SUBCAT_PRICE_' + codID + '_0');
					e_price.value = BX('SUBCAT_PRICE_' + codID).value;
					OnChangeSubPriceExist();
					OnChangeSubPriceExistEx(e_price);
				}

				function ChangeSubCurrency(codID)
				{
					if (!allowSubPriceEdit)
						return;

					var e_currency = BX('SUBCAT_CURRENCY_' + codID + "_0");
					e_currency.selectedIndex = BX('SUBCAT_CURRENCY_' + codID).selectedIndex;
				}

				function OnChangeSubPriceExist()
				{
					if (!allowSubPriceEdit)
						return;

					var bExist = 'N';
					var e_price_exist = BX('SUBCAT_PRICE_EXIST');
					var e_ext_price_exist = BX('SUBCAT_PRICE_EXIST_0');
					var e_base_price = BX('SUBCAT_BASE_PRICE');

					if (isNaN(e_base_price.value) || e_base_price.value <= 0)
					{
						var i;
						var e_price;
						for (i = 0; i < arCatalogGroups.length; i++)
						{
							e_price = BX('SUBCAT_PRICE_' + arCatalogGroups[i]);
							if (!(isNaN(e_price.value) || e_price.value <= 0))
							{
								bExist = 'Y';
								break;
							}
						}
					}
					else
					{
						bExist = 'Y';
					}
					e_price_exist.value = bExist;
					e_ext_price_exist.value = bExist;
				}
			</script>
			<?php
			$boolBaseExistPrice = false;
			$str_CAT_BASE_PRICE = "";
			if ($arBasePrice)
				$str_CAT_BASE_PRICE = $arBasePrice["PRICE"];
			if ($bVarsFromForm)
				$str_CAT_BASE_PRICE = $SUBCAT_BASE_PRICE;
			if (trim($str_CAT_BASE_PRICE) != '' && doubleval($str_CAT_BASE_PRICE) >= 0)
				$boolBaseExistPrice = true;
			?>
			<input type="text"<?= $disablePrice; ?> id="SUBCAT_BASE_PRICE" name="SUBCAT_BASE_PRICE" value="<?= htmlspecialcharsbx($str_CAT_BASE_PRICE) ?>" size="30" OnBlur="ChangeSubBasePrice(this)">
		</td>
	</tr>
	<tr id="tr_SUB_BASE_CURRENCY" style="display: <?= ($bUseExtendedPrice ? 'none' : 'table-row'); ?>;">
		<td width="40%">
			<?= GetMessage("BASE_CURRENCY")?>:
		</td>
		<td width="60%">
			<?php
			$str_CAT_BASE_CURRENCY = '';
			if ($arBasePrice)
				$str_CAT_BASE_CURRENCY = $arBasePrice["CURRENCY"];
			if ($bVarsFromForm)
				$str_CAT_BASE_CURRENCY = $SUBCAT_BASE_CURRENCY;

			?>
			<select id="SUBCAT_BASE_CURRENCY" name="SUBCAT_BASE_CURRENCY"<?= $disablePrice; ?> OnChange="ChangeSubBaseCurrency()">
				<?php
				foreach ($currencyList as &$currency)
				{
					?><option value="<?= $currency["CURRENCY"]; ?>"<?= ($currency["CURRENCY"] == $str_CAT_BASE_CURRENCY ? " selected" : '');?>><?= $currency["FULL_NAME"]; ?></option><?php
				}
				unset($currency);
				?>
			</select>
		</td>
	</tr>
</table>
<script>
SetSubFieldsStyle('subcatalog_vat_table');
</script>
<?php
// simple price form
?>
<div id="subprices_simple" style="display: <?=$bUseExtendedPrice ? 'none' : 'block'?>;">
		<?php
		$intCount = count($arPriceBoundariesError);
		if ($intCount > 0)
		{
			?>
			<font class="errortext">
			<?= GetMessage("C2IT_BOUND_WRONG")?><br>
			<?php
			for ($i = 0; $i < $intCount; $i++)
			{
				echo $arPriceBoundariesError[$i]."<br>";
			}
			?>
			<?= GetMessage("C2IT_BOUND_RECOUNT")?>
			</font>
			<?php
		}

	if (Catalog\Config\Feature::isMultiPriceTypesEnabled())
	{
		$bFirst = true;
		$dbCatalogGroups = CCatalogGroup::GetList(
				array("SORT" => "ASC","NAME" => "ASC","ID" => "ASC"),
				array("!BASE" => "Y")
			);

		while ($arCatalogGroup = $dbCatalogGroups->Fetch())
		{
			if($bFirst)
			{
				?>
			<br>
			<table border="0" cellspacing="0" cellpadding="0" width="100%" class="internal">
				<tr class="heading">
					<td><?= GetMessage("PRICE_TYPE"); ?></td>
					<td><?= GetMessage("PRICE_EXTRA"); ?></td>
					<td><?= GetMessage("PRICE_SUM"); ?></td>
					<td><?= GetMessage("PRICE_CURRENCY"); ?></td>
				</tr>
				<?php
				$bFirst = false;
			}
			$str_CAT_EXTRA = 0;
			$str_CAT_PRICE = "";
			$str_CAT_CURRENCY = "";

			$dbPriceList = CPrice::GetList(
				array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC"),
				array(
					"PRODUCT_ID" => $PRODUCT_ID,
					"CATALOG_GROUP_ID" => $arCatalogGroup["ID"],
					"QUANTITY_FROM" => $arPriceBoundaries[0]["FROM"],
					"QUANTITY_TO" => $arPriceBoundaries[0]["TO"]
				)
			);
			if ($arPrice = $dbPriceList->Fetch())
			{
				$str_CAT_EXTRA = $arPrice["EXTRA_ID"];
				$str_CAT_PRICE = $arPrice["PRICE"];
				$str_CAT_CURRENCY = $arPrice["CURRENCY"];
			}
			if ($bVarsFromForm)
			{
				$str_CAT_EXTRA = ${"SUBCAT_EXTRA_".$arCatalogGroup["ID"]};
				$str_CAT_PRICE = ${"SUBCAT_PRICE_".$arCatalogGroup["ID"]};
				$str_CAT_CURRENCY = ${"SUBCAT_CURRENCY_".$arCatalogGroup["ID"]};
			}
			if (trim($str_CAT_PRICE) != '' && doubleval($str_CAT_PRICE) >= 0)
				$boolBaseExistPrice = true;
			?>
			<tr>
				<td valign="top" align="left">
					<?= htmlspecialcharsbx(!empty($arCatalogGroup["NAME_LANG"]) ? $arCatalogGroup["NAME_LANG"] : $arCatalogGroup["NAME"]); ?>
					<?php
					if ($arPrice):
					?>
					<input type="hidden" name="SUBCAT_ID_<?= $arCatalogGroup["ID"] ?>" value="<?= $arPrice["ID"] ?>">
					<?php
					endif;
					?>
				</td>
				<td valign="top" align="center">
					<?php
					echo CExtra::SelectBox("SUBCAT_EXTRA_".$arCatalogGroup["ID"], $str_CAT_EXTRA, GetMessage("VAL_NOT_SET"), "ChangeSubExtra(".$arCatalogGroup["ID"].")", $disablePrice.' id="'."SUBCAT_EXTRA_".$arCatalogGroup["ID"].'" ');
					?>
				</td>
				<td valign="top" align="center">
					<input type="text"<?= $disablePrice; ?> id="SUBCAT_PRICE_<?= $arCatalogGroup["ID"] ?>" name="SUBCAT_PRICE_<?= $arCatalogGroup["ID"] ?>" value="<?= htmlspecialcharsbx($str_CAT_PRICE) ?>" size="8" OnChange="ChangeSubPrice(<?= $arCatalogGroup["ID"] ?>)">
				</td>
				<td valign="top" align="center">
					<?php
					echo CCurrency::SelectBox("SUBCAT_CURRENCY_".$arCatalogGroup["ID"], $str_CAT_CURRENCY, GetMessage("VAL_BASE"), true, "ChangeSubCurrency(".$arCatalogGroup["ID"].")", $disablePrice.' id="'."SUBCAT_CURRENCY_".$arCatalogGroup["ID"].'" ')
					?>
					<script>
						ChangeSubExtra(<?= $arCatalogGroup["ID"] ?>);
					</script>
				</td>
			</tr>
			<?php
		}// endwhile
		if (!$bFirst) echo "</table>";
	}
		?><input type="hidden" name="SUBCAT_PRICE_EXIST" id="SUBCAT_PRICE_EXIST" value="<?= ($boolBaseExistPrice == true ? 'Y' : 'N'); ?>">
</div>
		<?php
		//$subtabControl1->BeginNextTab();
// extended price form
		?>
<div id="subprices_ext" style="display: <?=$bUseExtendedPrice ? 'block' : 'none'?>;">
<script>
function CloneSubBasePriceGroup()
{
	if (!allowSubPriceEdit)
		return;

	var oTbl = BX("SUBBASE_PRICE_GROUP_TABLE");
	if (!oTbl)
		return;

	var oCntr = BX("SUBCAT_ROW_COUNTER");
	var cnt = parseInt(oCntr.value);
	cnt = cnt + 1;

	var oRow = oTbl.insertRow(-1);
	var oCell = oRow.insertCell(-1);
	oCell.valign = "top";
	oCell.align = "center";
	oCell.innerHTML = '<input type="text" <?= $disablePrice; ?> name="SUBCAT_BASE_QUANTITY_FROM_'+cnt+'" value="" size="3" OnChange="ChangeSubBaseQuantityEx(this)">';

	var oCell = oRow.insertCell(-1);
	oCell.valign = "top";
	oCell.align = "center";
	oCell.innerHTML = '<input type="text" <?= $disablePrice; ?> name="SUBCAT_BASE_QUANTITY_TO_'+cnt+'" value="" size="3" OnChange="ChangeSubBaseQuantityEx(this)">';

	var oCell = oRow.insertCell(-1);
	oCell.valign = "top";
	oCell.align = "center";
	oCell.innerHTML = '<input type="text" <?= $disablePrice; ?> id="SUBCAT_BASE_PRICE_'+cnt+'" name="SUBCAT_BASE_PRICE_'+cnt+'" value="" size="15" OnBlur="ChangeSubBasePriceEx(this)">';

	var oCell = oRow.insertCell(-1);
	oCell.valign = "top";
	oCell.align = "center";
	var str = '<select id="SUBCAT_BASE_CURRENCY_'+cnt+'" name="SUBCAT_BASE_CURRENCY_'+cnt+'" <?= $disablePrice; ?> OnChange="ChangeSubBaseCurrencyEx(this)">';
	<?php
	foreach ($currencyList as &$currency)
	{
		?>str += '<option value="<?= $currency["CURRENCY"] ?>"><?= $currency["FULL_NAME_JS"]; ?></option>';<?php
	}
	unset($currency);
	?>
	str += '</select>';
	oCell.innerHTML = str;

	var div_ext_price_exist = BX('ext_subprice_exist');
	var new_price_exist = BX.create('input',
									{'attrs': {
										'type': 'hidden',
										'name': 'SUBCAT_PRICE_EXIST_'+cnt,
										'value': 'N'
										}
									});
	new_price_exist.id = 'SUBCAT_PRICE_EXIST_'+cnt,
	div_ext_price_exist.appendChild(new_price_exist);
	oCntr.value = cnt;
}

function CloneSubOtherPriceGroup(ind)
{
	if (!allowSubPriceEdit)
		return;

	var oTbl = BX("SUBOTHER_PRICE_GROUP_TABLE_"+ind);
	if (!oTbl)
		return;

	var oCntr = BX("SUBCAT_ROW_COUNTER_"+ind);
	var cnt = parseInt(oCntr.value);
	cnt = cnt + 1;

	var oRow = oTbl.insertRow(-1);
	var oCell = oRow.insertCell(-1);
	oCell.valign = "top";
	oCell.align = "center";
	oCell.innerHTML = '<input type="text" disabled readonly id="SUBCAT_QUANTITY_FROM_'+ind+'_'+cnt+'" name="SUBCAT_QUANTITY_FROM_'+ind+'_'+cnt+'" value="" size="3">';

	var oCell = oRow.insertCell(-1);
	oCell.valign = "top";
	oCell.align = "center";
	oCell.innerHTML = '<input type="text" disabled readonly id="SUBCAT_QUANTITY_TO_'+ind+'_'+cnt+'" name="SUBCAT_QUANTITY_TO_'+ind+'_'+cnt+'" value="" size="3">';

	var oCell = oRow.insertCell(-1);
	oCell.valign = "top";
	oCell.align = "center";

	var str = '';
	oCell.valign = "top";
	oCell.align = "center";
	//oCell.className = "tablebody";
	str += '<select id="SUBCAT_EXTRA_'+ind+'_'+cnt+'" name="SUBCAT_EXTRA_'+ind+'_'+cnt+'" OnChange="ChangeSubExtraEx(this)" <?= $disablePrice; ?>>';
	str += '<option value=""><?= GetMessage("VAL_NOT_SET") ?></option>';
	<?php
	foreach ($arExtraList as $arOneExtra)
	{
		?>
		str += '<option value="<?= $arOneExtra["ID"] ?>"><?= CUtil::JSEscape(htmlspecialcharsbx($arOneExtra["NAME"]))." (".htmlspecialcharsbx($arOneExtra["PERCENTAGE"])."%)" ?></option>';
		<?php
	}
	?>
	str += '</select>';
	oCell.innerHTML = str;

	var oCell = oRow.insertCell(-1);
	oCell.valign = "top";
	oCell.align = "center";
	oCell.innerHTML = '<input type="text" <?= $disablePrice; ?> id="SUBCAT_PRICE_'+ind+'_'+cnt+'" name="SUBCAT_PRICE_'+ind+'_'+cnt+'" value="" size="10" OnChange="ptSubPriceChangeEx(this)">';

	var oCell = oRow.insertCell(-1);
	oCell.valign = "top";
	oCell.align = "center";
	var str = '<select id="SUBCAT_CURRENCY_'+ind+'_'+cnt+'" name="SUBCAT_CURRENCY_'+ind+'_'+cnt+'" OnChange="ChangeSubCurrencyEx(this)" <?= $disablePrice; ?>>';
	str += '<option value=""><?= GetMessage("VAL_BASE") ?></option>';
	<?php
	foreach ($currencyList as &$currency)
	{
		?>str += '<option value="<?= $currency["CURRENCY"] ?>"><?= $currency["FULL_NAME_JS"]; ?></option>';<?php
	}
	unset($currency);
	?>
	str += '</select>';
	oCell.innerHTML = str;

	oCntr.value = cnt;
}

function CloneSubPriceSections()
{
	if (!allowSubPriceEdit)
		return;

	CloneSubBasePriceGroup();

	var i, n;
	for (i = 0; i < arCatalogGroups.length; i++)
	{
		CloneSubOtherPriceGroup(arCatalogGroups[i]);

		n = BX('SUBCAT_ROW_COUNTER_'+arCatalogGroups[i]).value;
		ChangeSubExtraEx(BX('SUBCAT_EXTRA_'+arCatalogGroups[i]+"_"+n));
	}
}

function ChangeSubBaseQuantityEx(e)
{
	if (!allowSubPriceEdit)
		return;

	var thename = e.name;

	var pos = thename.lastIndexOf("_");
	var ind = thename.substr(pos + 1);

	var type;
	if (thename.substring(0, "SUBCAT_BASE_QUANTITY_FROM_".length) == "SUBCAT_BASE_QUANTITY_FROM_")
	{
		type = "FROM";
	}
	else
	{
		type = "TO";
	}

	var i;
	var quantity;

	for (i = 0; i < arCatalogGroups.length; i++)
	{
		quantity = BX('SUBCAT_QUANTITY_'+type+"_"+arCatalogGroups[i]+"_"+ind);
		quantity.value = e.value;
	}
}

function OnChangeSubBasePriceEx(e)
{
	if (!allowSubPriceEdit)
		return;

	var thename = e.name;

	var pos = thename.lastIndexOf("_");
	var ind = thename.substr(pos + 1);

	if (isNaN(e.value) || e.value <= 0)
	{
		for (i = 0; i < arCatalogGroups.length; i++)
		{
			e_price = document.getElementById('SUBCAT_PRICE_'+arCatalogGroups[i]+"_"+ind);
			e_price.disabled = false;
			e_cur = document.getElementById('SUBCAT_CURRENCY_'+arCatalogGroups[i]+"_"+ind);
			e_cur.disabled = false;
		}
		OnChangeSubPriceExistEx(e);
		return;
	}

	var i;
	var e_price, e_ext;

	for (i = 0; i < arCatalogGroups.length; i++)
	{
		e_price = BX('SUBCAT_PRICE_'+arCatalogGroups[i]+"_"+ind);
		e_cur = BX('SUBCAT_CURRENCY_'+arCatalogGroups[i]+"_"+ind);
		e_ext = BX('SUBCAT_EXTRA_'+arCatalogGroups[i]+"_"+ind);

		if (!e_ext)
			continue;

		for (j = 0; j < arExtra.length; j++)
		{
			if (parseInt(e_ext.options[e_ext.selectedIndex].value) == parseInt(arExtra[j]))
			{
				esum = parseFloat(e.value) * (1 + arExtraPrc[j] / 100);
				eps = 1.00/Math.pow(10, 6);
				e_price.value = Math.round((esum+eps)*100)/100;
				e_price.disabled = true;
				e_cur.selectedIndex = 0;
				e_cur.disabled = true;
				break;
			}
		}
	}
	OnChangeSubPriceExistEx(e);
}

function ChangeSubBasePriceEx(e)
{
	if (!allowSubPriceEdit)
		return;

	if (isNaN(e.value) || e.value <= 0)
	{
	}
	else
	{
		e.className = '';
	}

	OnChangeSubBasePriceEx(e);

	var thename = e.name;
	var pos = thename.lastIndexOf("_");
	var ind = thename.substr(pos + 1);

	if (parseInt(ind) == 0)
	{
		BX('SUBCAT_BASE_PRICE').value = e.value;
		OnChangeSubBasePrice();
		OnChangeSubPriceExist();
	}
}

function ChangeSubExtraEx(e)
{
	if (!allowSubPriceEdit)
		return;

	if (null == e)
		return;

	OnChangeSubExtraEx(e);
	var thename = e.name;

	var pos = thename.lastIndexOf("_");
	var ind = thename.substr(pos + 1);
	thename = thename.substr(0, pos);
	pos = thename.lastIndexOf("_");
	var ptype = thename.substr(pos + 1);

	if (parseInt(ind) == 0)
	{
		BX('SUBCAT_EXTRA_'+ptype).selectedIndex = e.selectedIndex;
		OnChangeSubExtra(ptype);
	}
}

function ChangeSubBaseCurrencyEx(e)
{
	if (!allowSubPriceEdit)
		return;

	var thename = e.name;

	var pos = thename.lastIndexOf("_");
	var ind = thename.substr(pos + 1);

	if (parseInt(ind) == 0)
	{
		BX('SUBCAT_BASE_CURRENCY').selectedIndex = e.selectedIndex;
	}
}

function ptSubPriceChangeEx(e)
{
	if (!allowSubPriceEdit)
		return;

	var thename = e.name;

	var pos = thename.lastIndexOf("_");
	var ind = thename.substr(pos + 1);

	if (parseInt(ind) == 0)
	{
		thename = thename.substr(0, pos);
		pos = thename.lastIndexOf("_");
		var ptype = thename.substr(pos + 1);

		BX('SUBCAT_PRICE_'+ptype).value = e.value;
		OnChangeSubPriceExist();
	}
	OnChangeSubPriceExistEx(e);
}

function ChangeSubCurrencyEx(e)
{
	if (!allowSubPriceEdit)
		return;

	var thename = e.name;

	var pos = thename.lastIndexOf("_");
	var ind = thename.substr(pos + 1);

	if (parseInt(ind) == 0)
	{
		thename = thename.substr(0, pos);
		pos = thename.lastIndexOf("_");
		var ptype = thename.substr(pos + 1);

		BX('SUBCAT_CURRENCY_'+ptype).selectedIndex = e.selectedIndex;
	}
}

function OnChangeSubPriceExistEx(e)
{
	if (!allowSubPriceEdit)
		return;

	var thename = e.name;

	var pos = thename.lastIndexOf("_");
	var ind = thename.substr(pos + 1);

	if (!(isNaN(ind) || parseInt(ind) < 0))
	{
		var price_ext = BX('SUBCAT_PRICE_EXIST_'+ind);
		if (!price_ext)
			return;

		var i;
		var e_price;
		bExist = 'N';
		e_price = BX('SUBCAT_BASE_PRICE_'+ind);
		if (!e_price)
			return;

		if (isNaN(e_price.value) || e_price.value <= 0)
		{
			for (i = 0; i < arCatalogGroups.length; i++)
			{
				e_price = document.getElementById('SUBCAT_PRICE_'+arCatalogGroups[i]+"_"+ind);
				if (!(isNaN(e_price.value) || e_price.value <= 0))
				{
					bExist = 'Y';
					break;
				}
			}
		}
		else
		{
			bExist = 'Y';
		}
		price_ext.value = bExist;
	}
}

function ShowNotice()
{
	BX('CAT_QUANTITY_RESERVED_DIV').style.display = 'inline-block';
}
function HideNotice()
{
	BX('CAT_QUANTITY_RESERVED_DIV').style.display = 'none';
}
</script>
		<?php
		$intCount = count($arPriceBoundariesError);
		if ($intCount > 0)
		{
			?>
			<font class="errortext">
			<?= GetMessage("C2IT_BOUND_WRONG")?><br>
			<?php
			for ($i = 0; $i < $intCount; $i++)
			{
				echo $arPriceBoundariesError[$i]."<br>";
			}
			?>
			<?= GetMessage("C2IT_BOUND_RECOUNT")?>
			</font>
			<?php
		}
		$boolExistPrice = false;
		?>
		<table border="0" cellspacing="0" cellpadding="0" width="100%" class="internal">
			<tr>
				<td valign="top" align="right">
				<?php
					echo GetMessage("BASE_PRICE")?> (<?= GetMessage('C2IT_PRICE_TYPE'); ?> "<?= htmlspecialcharsbx(!empty($arBaseGroup['NAME_LANG']) ? $arBaseGroup['NAME_LANG'] : $arBaseGroup["NAME"]); ?>"):
				</td>
				<td valign="top" align="left">
					<table border="0" cellspacing="1" cellpadding="3" id="SUBBASE_PRICE_GROUP_TABLE">
						<thead>
						<tr>
							<td align="center"><?= GetMessage("C2IT_FROM")?></td>
							<td align="center"><?= GetMessage("C2IT_TO")?></td>
							<td align="center"><?= GetMessage("C2IT_PRICE")?></td>
							<td align="center"><?= GetMessage("C2IT_CURRENCY")?></td>
						</tr>
						</thead>
						<tbody id="subcontainer3">
							<?php
							$ind = -1;
							$dbBasePrice = CPrice::GetList(
									array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC"),
									array("BASE" => "Y", "PRODUCT_ID" => $PRODUCT_ID)
								);
							$arBasePrice = $dbBasePrice->Fetch();

							$intCount = count($arPriceBoundaries);
							for ($i = 0; $i < $intCount; $i++)
							{
								$boolExistPrice = false;
								$ind++;
								$str_CAT_BASE_QUANTITY_FROM = $arPriceBoundaries[$i]["FROM"];
								$str_CAT_BASE_QUANTITY_TO = $arPriceBoundaries[$i]["TO"];

								if ($arBasePrice
									&& intval($arBasePrice["QUANTITY_FROM"]) == $arPriceBoundaries[$i]["FROM"])
								{
									$str_CAT_BASE_ID = $arBasePrice["ID"];
									$str_CAT_BASE_PRICE = $arBasePrice["PRICE"];
									$str_CAT_BASE_CURRENCY = $arBasePrice["CURRENCY"];

									$arBasePrice = $dbBasePrice->Fetch();
								}
								else
								{
									$str_CAT_BASE_ID = 0;
									$str_CAT_BASE_PRICE = "";
									$str_CAT_BASE_CURRENCY = "";
								}

								if ($bVarsFromForm)
								{
									$str_CAT_BASE_QUANTITY_FROM = ${"SUBCAT_BASE_QUANTITY_FROM_".$ind};
									$str_CAT_BASE_QUANTITY_TO = ${"SUBCAT_BASE_QUANTITY_TO_".$ind};
									$str_CAT_BASE_PRICE = ${"SUBCAT_BASE_PRICE_".$ind};
									$str_CAT_BASE_CURRENCY = ${"SUBCAT_BASE_CURRENCY_".$ind};
								}
								if (trim($str_CAT_BASE_PRICE) != '' && doubleval($str_CAT_BASE_PRICE) >= 0)
									$boolExistPrice = true;
								$arCatPricesExist[$ind][$arBaseGroup['ID']] = ($boolExistPrice == true ? 'Y' : 'N');
								?>
								<tr id="submodel3">
									<td valign="top" align="center">
										<input type="text" <?= $allowEditPrices; ?> name="SUBCAT_BASE_QUANTITY_FROM_<?= $ind ?>" value="<?= ($str_CAT_BASE_QUANTITY_FROM != 0 ? htmlspecialcharsbx($str_CAT_BASE_QUANTITY_FROM) : "") ?>" size="3" OnChange="ChangeSubBaseQuantityEx(this)">
										<input type="hidden" name="SUBCAT_BASE_ID[<?= $ind ?>]" value="<?= htmlspecialcharsbx($str_CAT_BASE_ID) ?>">
									</td>
									<td valign="top" align="center">
										<input type="text" <?= $allowEditPrices; ?> name="SUBCAT_BASE_QUANTITY_TO_<?= $ind ?>" value="<?= ($str_CAT_BASE_QUANTITY_TO != 0 ? htmlspecialcharsbx($str_CAT_BASE_QUANTITY_TO) : "") ?>" size="3" OnChange="ChangeSubBaseQuantityEx(this)">
									</td>
									<td valign="top" align="center">
										<input type="text" <?= $allowEditPrices; ?> id="SUBCAT_BASE_PRICE_<?= $ind ?>" name="SUBCAT_BASE_PRICE_<?= $ind ?>" value="<?= htmlspecialcharsbx($str_CAT_BASE_PRICE) ?>" size="15" OnBlur="ChangeSubBasePriceEx(this)">
									</td>
									<td valign="top" align="center">
										<select id="SUBCAT_BASE_CURRENCY_<?= $ind ?>" name="SUBCAT_BASE_CURRENCY_<?= $ind ?>" <?= $allowEditPrices; ?> OnChange="ChangeSubBaseCurrencyEx(this)">
											<?php
											foreach ($currencyList as &$currency)
											{
												?><option value="<?= $currency["CURRENCY"]; ?>"<?= ($currency["CURRENCY"] == $str_CAT_BASE_CURRENCY ? " selected" : '');?>><?= $currency["FULL_NAME"];?></option><?php
											}
											unset($currency);
											?>
										</select>
									</td>
								</tr>
								<?php
							}

							if ($bVarsFromForm && $ind < intval($SUBCAT_ROW_COUNTER))
							{
								for ($i = $ind + 1; $i <= intval($SUBCAT_ROW_COUNTER); $i++)
								{
									$boolExistPrice = false;
									$ind++;
									$str_CAT_BASE_QUANTITY_FROM = ${"SUBCAT_BASE_QUANTITY_FROM_".$ind};
									$str_CAT_BASE_QUANTITY_TO = ${"SUBCAT_BASE_QUANTITY_TO_".$ind};
									$str_CAT_BASE_PRICE = ${"SUBCAT_BASE_PRICE_".$ind};
									$str_CAT_BASE_CURRENCY = ${"SUBCAT_BASE_CURRENCY_".$ind};
									if (trim($str_CAT_BASE_PRICE) != '' && doubleval($str_CAT_BASE_PRICE) >= 0)
										$boolExistPrice = true;
									$arCatPricesExist[$ind][$arBaseGroup['ID']] = ($boolExistPrice == true ? 'Y' : 'N');
									?>
									<tr id="submodel3">
										<td valign="top" align="center">
											<input type="text" <?= $allowEditPrices; ?> name="SUBCAT_BASE_QUANTITY_FROM_<?= $ind ?>" value="<?= ($str_CAT_BASE_QUANTITY_FROM != 0 ? htmlspecialcharsbx($str_CAT_BASE_QUANTITY_FROM) : "") ?>" size="3" OnChange="ChangeSubBaseQuantityEx(this)">
											<input type="hidden" name="SUBCAT_BASE_ID[<?= $ind ?>]" value="<?= 0 ?>">
										</td>
										<td valign="top" align="center">
											<input type="text" <?= $allowEditPrices; ?> name="SUBCAT_BASE_QUANTITY_TO_<?= $ind ?>" value="<?= ($str_CAT_BASE_QUANTITY_TO != 0 ? htmlspecialcharsbx($str_CAT_BASE_QUANTITY_TO) : "") ?>" size="3" OnChange="ChangeSubBaseQuantityEx(this)">
										</td>
										<td valign="top" align="center">
											<input type="text" <?= $allowEditPrices; ?> id="SUBCAT_BASE_PRICE_<?= $ind ?>" name="SUBCAT_BASE_PRICE_<?= $ind ?>" value="<?= htmlspecialcharsbx($str_CAT_BASE_PRICE) ?>" size="15" OnBlur="ChangeSubBasePriceEx(this)">
										</td>
										<td valign="top" align="center">
											<select id="SUBCAT_BASE_CURRENCY_<?= $ind ?>" name="SUBCAT_BASE_CURRENCY_<?= $ind ?>" <?= $allowEditPrices; ?> OnChange="ChangeSubBaseCurrencyEx(this)">
												<?php
												foreach ($currencyList as &$currency)
												{
													?><option value="<?= $currency["CURRENCY"]; ?>"<?= ($currency["CURRENCY"] == $str_CAT_BASE_CURRENCY ? " selected" : '');?>><?= $currency["FULL_NAME"];?></option><?php
												}
												unset($currency);
												?>
											</select>
										</td>
									</tr>
									<?php
								}
							}
							if ($ind == -1)
							{
								$ind++;
								?>
								<tr id="submodel3">
									<td valign="top" align="center">
										<input type="text" <?= $allowEditPrices; ?> name="SUBCAT_BASE_QUANTITY_FROM_<?= $ind ?>" value="" size="3" OnChange="ChangeSubBaseQuantityEx(this)">
									</td>
									<td valign="top" align="center">
										<input type="text" <?= $allowEditPrices; ?> name="SUBCAT_BASE_QUANTITY_TO_<?= $ind ?>" value="" size="3" OnChange="ChangeSubBaseQuantityEx(this)">
									</td>
									<td valign="top" align="center">
										<input type="text" <?= $allowEditPrices; ?> id="SUBCAT_BASE_PRICE_<?= $ind ?>" name="SUBCAT_BASE_PRICE_<?= $ind ?>" value="" size="15" OnBlur="ChangeSubBasePriceEx(this)">
									</td>
									<td valign="top" align="center">
										<select id="SUBCAT_BASE_CURRENCY_<?= $ind ?>" name="SUBCAT_BASE_CURRENCY_<?= $ind ?>" <?= $allowEditPrices; ?> OnChange="ChangeSubBaseCurrencyEx(this)">
											<?php
											foreach ($currencyList as &$currency)
											{
												?><option value="<?= $currency["CURRENCY"]; ?>"><?= $currency["FULL_NAME"];?></option><?php
											}
											unset($currency);
											?>
										</select>
									</td>
								</tr>
								<?php
								$arCatPricesExist[$ind][$arBaseGroup['ID']] = 'N';
							}
							?>
						</tbody>
					</table>
					<input type="hidden" name="SUBCAT_ROW_COUNTER" id="SUBCAT_ROW_COUNTER" value="<?= $ind ?>">
					<input type="button" value="<?= GetMessage("C2IT_MORE")?>" OnClick="CloneSubPriceSections()">
				</td>
			</tr>
			<script>
			arCatalogGroups = new Array();
			catalogGroupsInd = 0;
			</script>
			<?php
	if (Catalog\Config\Feature::isMultiPriceTypesEnabled())
	{

			$dbCatalogGroups = CCatalogGroup::GetList(
					array("SORT" => "ASC","NAME" => "ASC","ID" => "ASC"),
					array("!BASE" => "Y")
				);
			while ($arCatalogGroup = $dbCatalogGroups->Fetch())
			{
				?>
				<script>
				arCatalogGroups[catalogGroupsInd] = <?= $arCatalogGroup["ID"] ?>;
				catalogGroupsInd++;
				</script>
				<tr>
					<td valign="top" align="right">
						<?= GetMessage("C2IT_PRICE_TYPE")?> "<?= htmlspecialcharsbx(!empty($arCatalogGroup["NAME_LANG"]) ? $arCatalogGroup["NAME_LANG"] : $arCatalogGroup["NAME"]); ?>":
					</td>
					<td valign="top" align="left">
						<table border="0" cellspacing="1" cellpadding="3" id="SUBOTHER_PRICE_GROUP_TABLE_<?= $arCatalogGroup["ID"] ?>">
							<thead>
							<tr>
							<td align="center"><?= GetMessage("C2IT_FROM")?></td>
							<td align="center"><?= GetMessage("C2IT_TO")?></td>
							<td align="center"><?= GetMessage("C2IT_NAC_TYPE")?></td>
							<td align="center"><?= GetMessage("C2IT_PRICE")?></td>
							<td align="center"><?= GetMessage("C2IT_CURRENCY")?></td>
							</tr>
							</thead>
							<tbody id="subcontainer3_<?= $arCatalogGroup["ID"] ?>">
							<?php
							$ind = -1;
							$dbPriceList = CPrice::GetList(
									array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC"),
									array("PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $arCatalogGroup["ID"])
								);
							$arPrice = $dbPriceList->Fetch();
							$intCount = count($arPriceBoundaries);
							for ($i = 0; $i < $intCount; $i++)
							{
								$boolExistPrice = false;
								$ind++;
								$str_CAT_QUANTITY_FROM = $arPriceBoundaries[$i]["FROM"];
								$str_CAT_QUANTITY_TO = $arPriceBoundaries[$i]["TO"];

								if ($arPrice
									&& intval($arPrice["QUANTITY_FROM"]) == $arPriceBoundaries[$i]["FROM"])
								{
									$str_CAT_ID = $arPrice["ID"];
									$str_CAT_EXTRA = $arPrice["EXTRA_ID"];
									$str_CAT_PRICE = $arPrice["PRICE"];
									$str_CAT_CURRENCY = $arPrice["CURRENCY"];

									$arPrice = $dbPriceList->Fetch();
								}
								else
								{
									$str_CAT_ID = 0;
									$str_CAT_EXTRA = 0;
									$str_CAT_PRICE = "";
									$str_CAT_CURRENCY = "";
								}

								if ($bVarsFromForm)
								{
									$str_CAT_EXTRA = ${"SUBCAT_EXTRA_".$arCatalogGroup["ID"]."_".$ind};
									$str_CAT_PRICE = ${"SUBCAT_PRICE_".$arCatalogGroup["ID"]."_".$ind};
									$str_CAT_CURRENCY = ${"SUBCAT_CURRENCY_".$arCatalogGroup["ID"]."_".$ind};
									$str_CAT_QUANTITY_FROM = ${"SUBCAT_BASE_QUANTITY_FROM_".$ind};
									$str_CAT_QUANTITY_TO = ${"SUBCAT_BASE_QUANTITY_TO_".$ind};
								}
								if (trim($str_CAT_PRICE) != '' && doubleval($str_CAT_PRICE) >= 0)
									$boolExistPrice = true;
								$arCatPricesExist[$ind][$arCatalogGroup['ID']] = ($boolExistPrice == true ? 'Y' : 'N');
								?>
								<tr id="submodel3_<?= $arCatalogGroup["ID"] ?>">
									<td valign="top" align="center">
										<input type="text" disabled readonly id="SUBCAT_QUANTITY_FROM_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" name="SUBCAT_QUANTITY_FROM_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" value="<?= ($str_CAT_QUANTITY_FROM != 0 ? htmlspecialcharsbx($str_CAT_QUANTITY_FROM) : "") ?>" size="3">
										<input type="hidden" name="SUBCAT_ID_<?= $arCatalogGroup["ID"] ?>[<?= $ind ?>]" value="<?= htmlspecialcharsbx($str_CAT_ID) ?>">
									</td>
									<td valign="top" align="center">
										<input type="text" disabled readonly id="SUBCAT_QUANTITY_TO_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" name="SUBCAT_QUANTITY_TO_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" value="<?= ($str_CAT_QUANTITY_TO != 0 ? htmlspecialcharsbx($str_CAT_QUANTITY_TO) : "") ?>" size="3">

									</td>
									<td valign="top" align="center">
										<?php
										echo CExtra::SelectBox("SUBCAT_EXTRA_".$arCatalogGroup["ID"]."_".$ind, $str_CAT_EXTRA, GetMessage("VAL_NOT_SET"), "ChangeSubExtraEx(this)", $allowEditPrices.' id="'."SUBCAT_EXTRA_".$arCatalogGroup["ID"]."_".$ind.'" ');
										?>

									</td>
									<td valign="top" align="center">
										<input type="text" <?= $allowEditPrices; ?> id="SUBCAT_PRICE_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" name="SUBCAT_PRICE_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" value="<?= htmlspecialcharsbx($str_CAT_PRICE) ?>" size="10" OnChange="ptSubPriceChangeEx(this)">

									</td>
									<td valign="top" align="center">

											<?= CCurrency::SelectBox("SUBCAT_CURRENCY_".$arCatalogGroup["ID"]."_".$ind, $str_CAT_CURRENCY, GetMessage("VAL_BASE"), true, "ChangeSubCurrencyEx(this)", $allowEditPrices.' id="'."SUBCAT_CURRENCY_".$arCatalogGroup["ID"]."_".$ind.'" ') ?>
											<script>
												jsUtils.addEvent(window, 'load', function() {ChangeSubExtraEx(BX('SUBCAT_EXTRA_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>'));});
											</script>

									</td>
								</tr>
								<?php
							}

							if ($bVarsFromForm && $ind < intval(${"SUBCAT_ROW_COUNTER_".$arCatalogGroup["ID"]}))
							{
								for ($i = $ind + 1; $i <= intval(${"SUBCAT_ROW_COUNTER_".$arCatalogGroup["ID"]}); $i++)
								{
									$boolExistPrice = false;
									$ind++;
									$str_CAT_QUANTITY_FROM = ${"SUBCAT_BASE_QUANTITY_FROM_".$ind};
									$str_CAT_QUANTITY_TO = ${"SUBCAT_BASE_QUANTITY_TO_".$ind};
									$str_CAT_EXTRA = ${"SUBCAT_EXTRA_".$arCatalogGroup["ID"]."_".$ind};
									$str_CAT_PRICE = ${"SUBCAT_PRICE_".$arCatalogGroup["ID"]."_".$ind};
									$str_CAT_CURRENCY = ${"SUBCAT_CURRENCY_".$arCatalogGroup["ID"]."_".$ind};
									if (trim($str_CAT_PRICE) != '' && doubleval($str_CAT_PRICE) >= 0)
										$boolExistPrice = true;
									$arCatPricesExist[$ind][$arCatalogGroup['ID']] = ($boolExistPrice == true ? 'Y' : 'N');
									?>
									<tr id="submodel3_<?= $arCatalogGroup["ID"] ?>">
										<td valign="top" align="center">
											<input type="text" disabled readonly id="SUBCAT_QUANTITY_FROM_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" name="SUBCAT_QUANTITY_FROM_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" value="<?= ($str_CAT_QUANTITY_FROM != 0 ? htmlspecialcharsbx($str_CAT_QUANTITY_FROM) : "") ?>" size="3">
											<input type="hidden" name="SUBCAT_ID_<?= $arCatalogGroup["ID"] ?>[<?= $ind ?>]" value="<?= 0 ?>">
										</td>
										<td valign="top" align="center">
											<input type="text" disabled readonly id="SUBCAT_QUANTITY_TO_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" name="SUBCAT_QUANTITY_TO_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" value="<?= ($str_CAT_QUANTITY_TO != 0 ? htmlspecialcharsbx($str_CAT_QUANTITY_TO) : "") ?>" size="3">

										</td>
										<td valign="top" align="center">
											<?php
											echo CExtra::SelectBox("SUBCAT_EXTRA_".$arCatalogGroup["ID"]."_".$ind, $str_CAT_EXTRA, GetMessage("VAL_NOT_SET"), "ChangeSubExtraEx(this)", $allowEditPrices.' id="'."SUBCAT_EXTRA_".$arCatalogGroup["ID"]."_".$ind.'" ');
											?>

										</td>
										<td valign="top" align="center">
											<input type="text" <?= $allowEditPrices; ?> id="SUBCAT_PRICE_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" name="SUBCAT_PRICE_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" value="<?= htmlspecialcharsbx($str_CAT_PRICE) ?>" size="10" OnChange="ptSubPriceChangeEx(this)">

										</td>
										<td valign="top" align="center">

												<?= CCurrency::SelectBox("SUBCAT_CURRENCY_".$arCatalogGroup["ID"]."_".$ind, $str_CAT_CURRENCY, GetMessage("VAL_BASE"), true, "ChangeSubCurrencyEx(this)", $allowEditPrices.' id="'."SUBCAT_CURRENCY_".$arCatalogGroup["ID"]."_".$ind.'" ') ?>
												<script>
													jsUtils.addEvent(window, 'load', function () {ChangeSubExtraEx(BX('SUBCAT_EXTRA_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>'));});
												</script>

										</td>
									</tr>
									<?php
								}
							}
							if ($ind == -1)
							{
								$ind++;
								?>
								<tr id="submodel3_<?= $arCatalogGroup["ID"] ?>">
									<td valign="top" align="center">
										<input type="text" disabled readonly id="SUBCAT_QUANTITY_FROM_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" name="SUBCAT_QUANTITY_FROM_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" value="" size="3">
									</td>
									<td valign="top" align="center">
										<input type="text" disabled readonly id="SUBCAT_QUANTITY_TO_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" name="SUBCAT_QUANTITY_TO_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" value="" size="3">

									</td>
									<td valign="top" align="center">
										<?php
										echo CExtra::SelectBox("SUBCAT_EXTRA_".$arCatalogGroup["ID"]."_".$ind, "", GetMessage("VAL_NOT_SET"), "ChangeSubExtraEx(this)", $allowEditPrices.' id="'."SUBCAT_EXTRA_".$arCatalogGroup["ID"]."_".$ind.'" ');
										?>

									</td>
									<td valign="top" align="center">
										<input type="text" <?= $allowEditPrices; ?> id="SUBCAT_PRICE_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" name="SUBCAT_PRICE_<?= $arCatalogGroup["ID"] ?>_<?= $ind ?>" value="" size="10" OnChange="ptSubPriceChangeEx(this)">

									</td>
									<td valign="top" align="center">

											<?= CCurrency::SelectBox("SUBCAT_CURRENCY_".$arCatalogGroup["ID"]."_".$ind, "", GetMessage("VAL_BASE"), true, "ChangeSubCurrencyEx(this)", $allowEditPrices.' id="'."SUBCAT_CURRENCY_".$arCatalogGroup["ID"]."_".$ind.'" ') ?>

									</td>
								</tr>
								<?php
								$arCatPricesExist[$ind][$arCatalogGroup['ID']] = 'N';
							}
							?>
							</tbody>
						</table>
						<input type="hidden" name="SUBCAT_ROW_COUNTER_<?= $arCatalogGroup["ID"] ?>" id="SUBCAT_ROW_COUNTER_<?= $arCatalogGroup["ID"] ?>" value="<?= $ind ?>">
					</td>
				</tr>
				<?php
			}
	}
			?>
		</table>
		<div id="ext_subprice_exist">
		<?php
		foreach ($arCatPricesExist as $ind => $arPriceExist)
		{
			$strExist = (in_array('Y',$arPriceExist) ? 'Y' : 'N');
			?>
			<input type="hidden" name="SUBCAT_PRICE_EXIST_<?= $ind; ?>" id="SUBCAT_PRICE_EXIST_<?= $ind; ?>" value="<?= $strExist; ?>"><?php
		}
		?>
		</div>
</div>
		<?php
		$subtabControl1->BeginNextTab();
		?>

		<table border="0" cellspacing="0" cellpadding="0" width="100%" class="edit-table" id="subcatalog_properties_table"><?php
			if ($allowedShowQuantity)
			{
				$currentQuantity = [
					'QUANTITY' => $arBaseProduct['QUANTITY'],
					'QUANTITY_RESERVED' => $arBaseProduct['QUANTITY_RESERVED'],
				];
				if (\CCatalogAdminTools::needSummaryStoreAmountByPermissions())
				{
					$storeQuantity = \CCatalogAdminTools::getSummaryStoreAmountByPermissions([$PRODUCT_ID]);
					$currentQuantity = $storeQuantity[$PRODUCT_ID] ?? [
							'QUANTITY' => '',
							'QUANTITY_RESERVED' => '',
						];
					unset($storeQuantity);
				}
				else
				{
					if (!$bUseStoreControl && $bVarsFromForm)
					{
						if (isset($_POST['SUBCAT_BASE_QUANTITY']) && is_string($_POST['SUBCAT_BASE_QUANTITY']))
						{
							$currentQuantity['QUANTITY'] = $_POST['SUBCAT_BASE_QUANTITY'];
						}
						if (isset($_POST['SUBCAT_BASE_QUANTITY_RESERVED']) && is_string($_POST['SUBCAT_BASE_QUANTITY_RESERVED']))
						{
							$currentQuantity['QUANTITY_RESERVED'] = $_POST['SUBCAT_BASE_QUANTITY_RESERVED'];
						}
					}
				}
				?>
				<tr>
				<td width="40%">
					<?= GetMessage("FULL_QUANTITY")?>:
				</td>
				<td width="60%">
					<input type="text" name="SUBCAT_BASE_QUANTITY" <?= $disableQuantityFields; ?> value="<?= htmlspecialcharsbx($currentQuantity['QUANTITY']); ?>" size="30">
				</td>
				</tr><?php
				if ($bEnableReservation)
				{
					?>
					<tr id="SUBCAT_BASE_QUANTITY_RESERV">
						<td width="40%">
							<?= GetMessage("BASE_QUANTITY_RESERVED")?>:
						</td>
						<td width="60%">
							<input type="text" id="SUBCAT_BASE_QUANTITY_RESERVED" name="SUBCAT_BASE_QUANTITY_RESERVED" <?= $disableQuantityFields; ?>  onfocus="ShowNotice()" onblur="HideNotice()" value="<?= htmlspecialcharsbx($currentQuantity['QUANTITY_RESERVED']); ?>" size="30">
							<span id="CAT_QUANTITY_RESERVED_DIV" style="color: #af2d49; margin-left: 10px; display: none;">	<?= GetMessage("QUANTITY_RESERVED_NOTICE")?></span>
						</td>
					</tr><?php
				}
				unset($currentQuantity);
			}
			?>
			<tr>
				<td width="40%">
					<?= GetMessage("C2IT_MEASURE")?>:
				</td>
				<td width="60%">
					<?php
					$arAllMeasure = array();
					$dbResultList = CCatalogMeasure::getList(
						array(),
						array(),
						false,
						false,
						array("ID", "CODE", "MEASURE_TITLE", "SYMBOL_INTL", "IS_DEFAULT")
					);
					while($arMeasure = $dbResultList->Fetch())
					{
						$arAllMeasure[] = $arMeasure;
					}
					$str_CAT_MEASURE = $arBaseProduct["MEASURE"];
					if ($bVarsFromForm)
						$str_CAT_MEASURE = $SUBCAT_MEASURE;
					?>
					<?php
					if(!empty($arAllMeasure)):
					?>
						<select style="max-width:220px" id="SUBCAT_MEASURE" name="SUBCAT_MEASURE"<?= $disableProduct; ?>>
							<?php
							foreach($arAllMeasure as $arMeasure):
							?>
								<option <?= ($str_CAT_MEASURE == $arMeasure["ID"] || ($str_CAT_MEASURE == '' && $arMeasure["IS_DEFAULT"] == 'Y') ? " selected" : '');?> value="<?=$arMeasure["ID"]?>"><?=htmlspecialcharsbx($arMeasure["MEASURE_TITLE"])?></option>
							<?php
							endforeach;
							unset($arMeasure);
							?>
						</select>
					<?php
					else:
						$measureListUrl = $selfFolderUrl.'cat_measure_list.php?lang='.LANGUAGE_ID;
						$measureListUrl = $adminSidePanelHelper->editUrlToPublicPage($measureListUrl);
						echo GetMessage("C2IT_MEASURE_NO_MEASURE"); ?> <a target="_top" href="<?=$measureListUrl?>"><?=GetMessage("C2IT_MEASURES"); ?></a><br>
					<?php
					endif;
					?>
				</td>
			</tr>
			<?php
			if(!empty($arAllMeasure)):
			?>
				<tr>
					<td width="40%">
						<?= GetMessage("C2IT_MEASURE_RATIO")?>:
					</td>
					<td width="60%">
						<?php
						$str_CAT_MEASURE_RATIO = null;
						$SUBCAT_MEASURE_RATIO_ID = 0;
						$db_CAT_MEASURE_RATIO = CCatalogMeasureRatio::getList(
							["ID" => "ASC"],
							["PRODUCT_ID" => $PRODUCT_ID],
							false,
							false,
							[]
						);
						while ($ar_CAT_MEASURE_RATIO = $db_CAT_MEASURE_RATIO->Fetch())
						{
							if ($str_CAT_MEASURE_RATIO === null || $ar_CAT_MEASURE_RATIO['IS_DEFAULT'] == 'Y')
							{
								$str_CAT_MEASURE_RATIO = $ar_CAT_MEASURE_RATIO["RATIO"];
								if (!$bSubCopy)
									$SUBCAT_MEASURE_RATIO_ID = $ar_CAT_MEASURE_RATIO["ID"];
								if ($ar_CAT_MEASURE_RATIO['IS_DEFAULT'] == 'Y')
									break;
							}
						}
						unset($db_CAT_MEASURE_RATIO, $ar_CAT_MEASURE_RATIO);
						if ($str_CAT_MEASURE_RATIO === null)
							$str_CAT_MEASURE_RATIO = 1;
						if($bVarsFromForm)
							$str_CAT_MEASURE_RATIO = $SUBCAT_MEASURE_RATIO;
						?>
						<input type="text"<?= $disableProduct; ?> id="SUBCAT_MEASURE_RATIO" name="SUBCAT_MEASURE_RATIO" value="<?= htmlspecialcharsbx($str_CAT_MEASURE_RATIO) ?>" size="30">
						<input type="hidden" id="SUBCAT_MEASURE_RATIO_ID" name="SUBCAT_MEASURE_RATIO_ID" value="<?= htmlspecialcharsbx($SUBCAT_MEASURE_RATIO_ID) ?>">
					</td>
				</tr>
			<?php
			endif;
			?>
			<tr class="heading">
				<td colspan="2">
					<?= GetMessage("C2IT_PARAMS")?>
				</td>
			</tr>
			<tr>
				<td width="40%">
					<?= GetMessage("ENABLE_STORE_TRACE")?>:
				</td>
				<td width="60%">
					<?php
					$str_CAT_BASE_QUANTITY_TRACE = $arBaseProduct["QUANTITY_TRACE_ORIG"];
					if ($bVarsFromForm) $str_CAT_BASE_QUANTITY_TRACE = $SUBCAT_BASE_QUANTITY_TRACE;
					?>
					<select id="SUBCAT_BASE_QUANTITY_TRACE" name="SUBCAT_BASE_QUANTITY_TRACE"<?= $disableProduct; ?>>
						<option value="D" <?= ("D"==$str_CAT_BASE_QUANTITY_TRACE ? " selected" : '');?>><?=GetMessage("C2IT_DEFAULT_NEGATIVE")." ("?><?= $availQuantityTrace=='Y' ? GetMessage("C2IT_YES_NEGATIVE") : GetMessage("C2IT_NO_NEGATIVE")?>) </option>
						<option value="Y" <?= ("Y"==$str_CAT_BASE_QUANTITY_TRACE ? " selected" : '');?>><?=GetMessage("C2IT_YES_NEGATIVE")?></option>
						<option value="N" <?= ("N"==$str_CAT_BASE_QUANTITY_TRACE ? " selected" : '');?>><?=GetMessage("C2IT_NO_NEGATIVE")?></option>
					</select>
				</td>
			</tr>
			<tr>
				<td width="40%">
					<?= GetMessage("C2IT_CAN_BUY_NULL_EXT")?>:
				</td>
				<td width="60%">
					<?php
					$str_CAT_BASE_CAN_BUY_ZERO = $arBaseProduct["CAN_BUY_ZERO_ORIG"];
					if ($bVarsFromForm) $str_CAT_BASE_CAN_BUY_ZERO = $SUBUSE_STORE;
					?>
					<select id="SUBUSE_STORE" name="SUBUSE_STORE" <?= $disableProduct; ?>>
						<option value="D" <?= ("D"==$str_CAT_BASE_CAN_BUY_ZERO ? " selected" : '');?>><?=GetMessage("C2IT_DEFAULT_NEGATIVE")." ("?><?= $availCanBuyZero=='Y' ? GetMessage("C2IT_YES_NEGATIVE") : GetMessage("C2IT_NO_NEGATIVE")?>) </option>
						<option value="Y" <?= ("Y"==$str_CAT_BASE_CAN_BUY_ZERO ? " selected" : '');?>><?=GetMessage("C2IT_YES_NEGATIVE")?></option>
						<option value="N" <?= ("N"==$str_CAT_BASE_CAN_BUY_ZERO ? " selected" : '');?>><?=GetMessage("C2IT_NO_NEGATIVE")?></option>
					</select>
				</td>
			</tr>
			<tr>
				<td width="40%"><?= GetMessage("C2IT_SUBSCRIBE"); ?>:</td>
				<td width="60%">
					<?php
					$str_CAT_SUBSCRIBE = $arBaseProduct["SUBSCRIBE_ORIG"];
					if ($bVarsFromForm) $str_CAT_SUBSCRIBE = $SUBSUBSCRIBE;
					?>
					<select id="SUBSUBSCRIBE" name="SUBSUBSCRIBE"<?= $disableProduct; ?>>
						<option value="D" <?= ("D"==$str_CAT_SUBSCRIBE ? " selected" : '');?>><?=GetMessage("C2IT_DEFAULT_NEGATIVE")." ("?><?= 'Y' == $strGlobalSubscribe ? GetMessage("C2IT_YES_NEGATIVE") : GetMessage("C2IT_NO_NEGATIVE")?>)</option>
						<option value="Y" <?= ("Y"==$str_CAT_SUBSCRIBE ? " selected" : '');?>><?=GetMessage("C2IT_YES_NEGATIVE")?></option>
						<option value="N" <?= ("N"==$str_CAT_SUBSCRIBE ? " selected" : '');?>><?=GetMessage("C2IT_NO_NEGATIVE")?></option>
					</select>
				</td>
			</tr>
			<tr class="heading">
				<td colspan="2">
					<?= GetMessage("C2IT_MEASUREMENTS_EXT")?>
				</td>
			</tr>
			<tr>
				<td>
					<?= GetMessage("BASE_WEIGHT")?>:
				</td>
				<td>
					<?php
					$str_CAT_BASE_WEIGHT = $arBaseProduct["WEIGHT"];
					if ($bVarsFromForm) $str_CAT_BASE_WEIGHT = $SUBCAT_BASE_WEIGHT;
					?>
					<input type="text"<?= $disableProduct; ?> name="SUBCAT_BASE_WEIGHT" value="<?= htmlspecialcharsbx($str_CAT_BASE_WEIGHT) ?>" size="30">

				</td>
			</tr>
			<tr>
				<td width="40%">
					<?= GetMessage("C2IT_BASE_LENGTH")?>:
				</td>
				<td width="60%">
					<?php
					$str_CAT_BASE_LENGTH = $arBaseProduct["LENGTH"];
					if ($bVarsFromForm) $str_CAT_BASE_LENGTH = $SUBCAT_BASE_LENGTH;
					?>
					<input type="text"<?= $disableProduct; ?> id="SUBCAT_BASE_LENGTH" name="SUBCAT_BASE_LENGTH" value="<?= htmlspecialcharsbx($str_CAT_BASE_LENGTH) ?>" size="30">
				</td>
			</tr>

			<tr>
				<td width="40%">
					<?= GetMessage("C2IT_BASE_WIDTH")?>:
				</td>
				<td width="60%">
					<?php
					$str_CAT_BASE_WIDTH = $arBaseProduct["WIDTH"];
					if ($bVarsFromForm) $str_CAT_BASE_WIDTH = $SUBCAT_BASE_WIDTH;
					?>
					<input type="text"<?= $disableProduct; ?> id="SUBCAT_BASE_WIDTH" name="SUBCAT_BASE_WIDTH" value="<?= htmlspecialcharsbx($str_CAT_BASE_WIDTH) ?>" size="30">
				</td>
			</tr>

			<tr>
				<td width="40%">
					<?= GetMessage("C2IT_BASE_HEIGHT")?>:
				</td>
				<td width="60%">
					<?php
					$str_CAT_BASE_HEIGHT = $arBaseProduct["HEIGHT"];
					if ($bVarsFromForm) $str_CAT_BASE_HEIGHT = $SUBCAT_BASE_HEIGHT;
					?>
					<input type="text"<?= $disableProduct; ?> id="SUBCAT_BASE_HEIGHT" name="SUBCAT_BASE_HEIGHT" value="<?= htmlspecialcharsbx($str_CAT_BASE_HEIGHT) ?>" size="30">
				</td>
			</tr>
			<?php
			if ($arCatalog["SUBSCRIPTION"]=="Y")
			{
				?>
				<tr class="heading">
					<td colspan="2"><?= GetMessage("C2IT_SUBSCR_PARAMS")?></td>
				</tr>
				<tr>
					<td>
						<?= GetMessage("C2IT_PAY_TYPE")?>
					</td>
					<td>
						<script>
						function ChangeSubPriceType()
						{
							if (!allowSubPriceEdit)
								return;

							var e_pt = BX('SUBCAT_PRICE_TYPE');

							if (e_pt.options[e_pt.selectedIndex].value == "S")
							{
								BX('SUBCAT_RECUR_SCHEME_TYPE').disabled = true;
								BX('SUBCAT_RECUR_SCHEME_LENGTH').disabled = true;
								BX('SUBCAT_TRIAL_PRICE_ID').disabled = true;
								BX('SUBCAT_TRIAL_PRICE_ID_BUTTON').disabled = true;
							}
							else
							{
								if (e_pt.options[e_pt.selectedIndex].value == "R")
								{
									BX('SUBCAT_RECUR_SCHEME_TYPE').disabled = false;
									BX('SUBCAT_RECUR_SCHEME_LENGTH').disabled = false;
									BX('SUBCAT_TRIAL_PRICE_ID').disabled = true;
									BX('SUBCAT_TRIAL_PRICE_ID_BUTTON').disabled = true;
								}
								else
								{
									BX('SUBCAT_RECUR_SCHEME_TYPE').disabled = false;
									BX('SUBCAT_RECUR_SCHEME_LENGTH').disabled = false;
									BX('SUBCAT_TRIAL_PRICE_ID').disabled = false;
									BX('SUBCAT_TRIAL_PRICE_ID_BUTTON').disabled = false;
								}
							}
						}
						</script>

						<?php
						$str_CAT_PRICE_TYPE = $arBaseProduct["PRICE_TYPE"];
						if ($bVarsFromForm) $str_CAT_PRICE_TYPE = $SUBCAT_PRICE_TYPE;
						?>
						<select id="SUBCAT_PRICE_TYPE" name="SUBCAT_PRICE_TYPE"<?= $disableProduct; ?> OnChange="ChangeSubPriceType()">
							<option value="S"<?= ($str_CAT_PRICE_TYPE=="S" ? " selected" : '');?>><?= GetMessage("C2IT_SINGLE")?></option>
							<option value="R"<?= ($str_CAT_PRICE_TYPE=="R" ? " selected" : '');?>><?= GetMessage("C2IT_REGULAR")?></option>
							<option value="T"<?= ($str_CAT_PRICE_TYPE=="T" ? " selected" : '');?>><?= GetMessage("C2IT_TRIAL")?></option>
						</select>

					</td>
				</tr>
				<tr>
					<td>
						<?= GetMessage("C2IT_PERIOD_LENGTH")?>
					</td>
					<td>

						<?php
						$str_CAT_RECUR_SCHEME_LENGTH = $arBaseProduct["RECUR_SCHEME_LENGTH"];
						if ($bVarsFromForm) $str_CAT_RECUR_SCHEME_LENGTH = $SUBCAT_RECUR_SCHEME_LENGTH;
						?>
						<input type="text"<?= $disableProduct; ?> id="SUBCAT_RECUR_SCHEME_LENGTH" name="SUBCAT_RECUR_SCHEME_LENGTH" value="<?= htmlspecialcharsbx($str_CAT_RECUR_SCHEME_LENGTH) ?>" size="10">

					</td>
				</tr>
				<tr>
					<td>
						<?= GetMessage("C2IT_PERIOD_TIME")?>
					</td>
					<td>
						<?php
						$str_CAT_RECUR_SCHEME_TYPE = $arBaseProduct["RECUR_SCHEME_TYPE"];
						if ($bVarsFromForm) $str_CAT_RECUR_SCHEME_TYPE = $SUBCAT_RECUR_SCHEME_TYPE;
						?>
						<select id="SUBCAT_RECUR_SCHEME_TYPE" name="SUBCAT_RECUR_SCHEME_TYPE"<?= $disableProduct; ?>>
							<?php
							foreach ($periodTimeTypes as $key => $value)
							{
								?><option value="<?= $key ?>"<?= ($str_CAT_RECUR_SCHEME_TYPE==$key ? " selected" : '');?>><?= $value ?></option><?php
							}
							?>
						</select>
					</td>
				</tr>
				<tr>
					<td>
						<?= GetMessage("C2IT_TRIAL_FOR")?>
					</td>
					<td>

						<?php
						$str_CAT_TRIAL_PRICE_ID = $arBaseProduct["TRIAL_PRICE_ID"];
						if ($bVarsFromForm) $str_CAT_TRIAL_PRICE_ID = $SUBCAT_TRIAL_PRICE_ID;
						$catProductName = "";
						if (intval($str_CAT_TRIAL_PRICE_ID) > 0)
						{
							$dbCatElement = CIBlockElement::GetByID(intval($str_CAT_TRIAL_PRICE_ID));
							if ($arCatElement = $dbCatElement->GetNext())
								$catProductName = $arCatElement["NAME"];
						}
						?>
						<input<?= $disableProduct; ?> id="SUBCAT_TRIAL_PRICE_ID" name="SUBCAT_TRIAL_PRICE_ID" value="<?= htmlspecialcharsbx($str_CAT_TRIAL_PRICE_ID) ?>" size="5" type="text"><input type="button"<?= $disableProduct; ?> id="SUBCAT_TRIAL_PRICE_ID_BUTTON" name="SUBCAT_TRIAL_PRICE_ID_BUTTON" value="..." onClick="window.open('cat_product_search.php?IBLOCK_ID=<?= $IBLOCK_ID ?>&amp;field_name=SUBCAT_TRIAL_PRICE_ID&amp;alt_name=subtrial_price_alt&amp;form_name='+getElementSubFormName(), '', 'scrollbars=yes,resizable=yes,width=600,height=500,top='+Math.floor((screen.height - 500)/2-14)+',left='+Math.floor((screen.width - 600)/2-5));">&nbsp;<span id="subtrial_price_alt"><?= $catProductName ?></span>

					</td>
				</tr>
				<tr>
					<td>
						<?= GetMessage("C2IT_WITHOUT_ORDER")?>
					</td>
					<td>
						<?php
						$str_CAT_WITHOUT_ORDER = $arBaseProduct["WITHOUT_ORDER"];
						if ($bVarsFromForm) $str_CAT_WITHOUT_ORDER = $SUBCAT_WITHOUT_ORDER;
						?>
						<input type="checkbox"<?= $disableProduct; ?> name="SUBCAT_WITHOUT_ORDER" value="Y" <?= ($str_CAT_WITHOUT_ORDER=="Y" ?  "checked" : '');?>>

					</td>
				</tr>
				<?php
			}

			$productUserFieldsHtml = \CCatalogAdminTools::getAllProductFieldsHtml(
				[
					'ID' => $ID,
					'PRODUCT_ID' => $PRODUCT_ID,
					'IBLOCK_ID' => $IBLOCK_ID,
					'TYPE' => $arBaseProduct['TYPE'],
				],
				[
					'FROM_FORM' => $bVarsFromForm,
					'ALLOW_EDIT' => $allowEdit,
				]
			);
			if ($productUserFieldsHtml[0] !== '')
			{
				?><tr class="heading">
				<td colspan="2"><?=GetMessage("C2IT_UF_SYSTEM_FIELDS"); ?></td>
				</tr><?php
				echo $productUserFieldsHtml[0];
			}
			if ($productUserFieldsHtml[1] !== '')
			{
				?><tr class="heading">
				<td colspan="2"><?= GetMessage("C2IT_UF_FIELDS")?></td>
				</tr><?php
				echo $productUserFieldsHtml[1];
			}
			unset($productUserFieldsHtml);
			?>
		</table>
<script>
SetSubFieldsStyle('subcatalog_properties_table');
</script>
		<?php
		if ($arCatalog["SUBSCRIPTION"]=="Y"):?>
			<script>
			ChangeSubPriceType();
			</script>
		<?php
		endif;

		if ($arCatalog["SUBSCRIPTION"]=="Y"):

			$subtabControl1->BeginNextTab();
			?>

			<script>
			function SubCatGroupsActivate(obj, id)
			{
				if (!allowSubEdit)
					return;

				var ed = BX('SUBCAT_ACCESS_LENGTH_' + id);
				var ed1 = BX('SUBCAT_ACCESS_LENGTH_TYPE_' + id);
				ed.disabled = !obj.checked;
				ed.readOnly = !obj.checked;
				ed1.disabled = !obj.checked;
			}
			</script>
			<table border="0" cellspacing="0" cellpadding="0" width="100%" class="internal">
				<tr class="heading">
					<td><?= GetMessage("C2IT_VKL")?></td>
					<td><?= GetMessage("C2IT_USERS_GROUP")?></td>
					<td><?= GetMessage("C2IT_ACTIVE_TIME")?> <sup>1)</sup></td>
				</tr>
				<?php
				$arCurProductGroups = array();

				$dbProductGroups = CCatalogProductGroups::GetList(
						array(),
						array("PRODUCT_ID" => $ID),
						false,
						false,
						array("ID", "GROUP_ID", "ACCESS_LENGTH", "ACCESS_LENGTH_TYPE")
					);
				while ($arProductGroup = $dbProductGroups->Fetch())
				{
					$arCurProductGroups[intval($arProductGroup["GROUP_ID"])] = array(intval($arProductGroup["ACCESS_LENGTH"]), $arProductGroup["ACCESS_LENGTH_TYPE"]);
				}

				$arAvailContentGroups = array();
				$availContentGroups = COption::GetOptionString("catalog", "avail_content_groups");
				if ($availContentGroups <> '')
					$arAvailContentGroups = explode(",", $availContentGroups);

				$bNoAvailGroups = true;

				$dbGroups = CGroup::GetList(
						"c_sort",
						"asc",
						array("ANONYMOUS" => "N")
					);
				while ($arGroup = $dbGroups->Fetch())
				{
					$arGroup["ID"] = intval($arGroup["ID"]);

					if ($arGroup["ID"] == 2
						|| !in_array($arGroup["ID"], $arAvailContentGroups))
						continue;

					if ($bVarsFromForm)
					{
						if (isset(${"SUBCAT_USER_GROUP_ID_".$arGroup["ID"]}) && ${"SUBCAT_USER_GROUP_ID_".$arGroup["ID"]} == "Y")
						{
							$arCurProductGroups[$arGroup["ID"]] = array(intval(${"SUBCAT_ACCESS_LENGTH_".$arGroup["ID"]}), ${"SUBCAT_ACCESS_LENGTH_TYPE_".$arGroup["ID"]});
						}
						elseif (array_key_exists($arGroup["ID"], $arCurProductGroups))
						{
							unset($arCurProductGroups[$arGroup["ID"]]);
						}
					}

					$bNoAvailGroups = false;
					$usedProductGroup = isset($arCurProductGroups[$arGroup['ID']]);
					if ($usedProductGroup)
					{
						$accessLenghtValue = $arCurProductGroups[$arGroup["ID"]][0];
						$accessLenghtType = $arCurProductGroups[$arGroup["ID"]][1];
						$accessLenghtDisable = '';
					}
					else
					{
						$accessLenghtValue = '';
						$accessLenghtType = '';
						$accessLenghtDisable = $disableFieldAttributes;
					}
					if (!$allowEdit)
					{
						$accessLenghtDisable = $disableFieldAttributes;
					}
					?>
					<tr>
						<td align="center">
							<input type="checkbox" name="SUBCAT_USER_GROUP_ID_<?= $arGroup["ID"] ?>" value="Y"<?= ($usedProductGroup ? " checked" : '');?> onclick="SubCatGroupsActivate(this, <?= $arGroup["ID"] ?>)"<?= $disableProduct; ?>>
						</td>
						<td align="left"><?= htmlspecialcharsbx($arGroup["NAME"]); ?></td>
						<td align="center">
							<input type="text" id="SUBCAT_ACCESS_LENGTH_<?= $arGroup["ID"] ?>" name="SUBCAT_ACCESS_LENGTH_<?= $arGroup["ID"] ?>" size="5" <?php
								echo 'value="' . htmlspecialcharsbx($accessLenghtValue) . '" ';
								echo $accessLenghtDisable;
							?>>
							<select id="SUBCAT_ACCESS_LENGTH_TYPE_<?= $arGroup["ID"] ?>" name="SUBCAT_ACCESS_LENGTH_TYPE_<?= $arGroup["ID"] ?>"<?= $accessLenghtDisable;?>>
								<?php
								foreach ($periodTimeTypes as $key => $value)
								{
									?><option value="<?= $key ?>"<?= ($accessLenghtType == $key ?  ' selected' : ''); ?>><?= $value ?></option><?php
								}
								?>
							</select>
						</td>
					</tr>
					<?php
				}

				if ($bNoAvailGroups)
				{
					$textForSettingsNotify = "<a href=\"".$selfFolderUrl."settings.php?mid=catalog&lang=".LANGUAGE_ID."\">".
						GetMessage("C2IT_NO_USER_GROUPS2")."</a>";
					if ($adminSidePanelHelper->isPublicSidePanel())
					{
						$textForSettingsNotify = GetMessage("C2IT_NO_USER_GROUPS2");
					}
					?>
					<tr>
						<td colspan="3"><?=GetMessage("C2IT_NO_USER_GROUPS1")?><?=" ".$textForSettingsNotify?></td>
					</tr>
					<?php
				}
				?>
			</table>
			<br><b>1)</b> <?= GetMessage("C2IT_ZERO_HINT")?>
		<?php
		endif;
		$subtabControl1->BeginNextTab();

		$arParams = array();
		$arSKU = CCatalogSku::GetInfoByOfferIBlock($IBLOCK_ID);
		if (is_array($arSKU))
		{
			$arParams['SKU'] = 'Y';
			$arParams['SKU_PARAMS'] = $arSKU;
		}

		$arDiscountList = CCatalogDiscount::GetDiscountForProduct(array('ID' => $PRODUCT_ID, 'IBLOCK_ID' => $IBLOCK_ID), $arParams);

		if (empty($arDiscountList))
		{
			?><b><?= GetMessage("C2IT_NO_ACTIVE_DISCOUNTS")?></b><br><?php
		}
		else
		{
			$showDiscountUrl = $bDiscount;
			$discountUrl = $selfFolderUrl.'cat_discount_edit.php?ID=';
			if (Main\ModuleManager::isModuleInstalled('sale') && Main\Config\Option::get('sale', 'use_sale_discount_only') == 'Y')
			{
				$showDiscountUrl = ($APPLICATION->GetGroupRight('sale') >= 'W');
				$discountUrl = $selfFolderUrl.'sale_discount_edit.php?ID=';
			}
			?><table border="0" cellspacing="0" cellpadding="0" class="internal" align="center" width="100%">
				<tr class="heading">
					<td>ID</td>
					<td><?= GetMessage("C2IT_SITE")?></td>
					<td><?= GetMessage("C2IT_ACTIVITY")?></td>
					<td><?= GetMessage("C2IT_NAME")?></td>
					<td><?= GetMessage("C2IT_AMOUNT")?></td>
					<?php
					if ($showDiscountUrl)
					{
					?><td><?= GetMessage("C2IT_ACTIONS")?></td><?php
					}
					?>
				</tr><?php
			foreach ($arDiscountList as $arProductDiscounts)
			{
					$boolWork = true;
				?><tr>
						<td style="text-align: right;"><?= $arProductDiscounts["ID"] ?></td>
						<td style="text-align: center;"><?= $arProductDiscounts["SITE_ID"] ?></td>
						<td style="text-align: center;"><?= GetMessage("C2IT_YES")?></td>
						<td style="text-align: left;"><?= htmlspecialcharsbx($arProductDiscounts["NAME"]) ?></td>
						<td style="text-align: right;">
							<?php
							if ($arProductDiscounts["VALUE_TYPE"]=="P")
							{
								echo $arProductDiscounts["VALUE"]."%";
							}
							elseif ($arProductDiscounts["VALUE_TYPE"]=="S")
							{
								?>= <?= CCurrencyLang::CurrencyFormat($arProductDiscounts["VALUE"], $arProductDiscounts["CURRENCY"], true);
							}
							else
							{
								echo CCurrencyLang::CurrencyFormat($arProductDiscounts["VALUE"], $arProductDiscounts["CURRENCY"], true);
							}
							?>
						</td>
						<?php
						if ($showDiscountUrl)
						{
						?>
						<td style="text-align: center;">
							<a href="<?=$discountUrl.$arProductDiscounts["ID"] ?>&lang=<?=LANGUAGE_ID; ?>#tb" target="_blank"><?= GetMessage("C2IT_MODIFY")?></a>
						</td>
						<?php
						}
						?>
					</tr>
					<?php
			}
			?></table><?php
		}
		?>
		<br>
		<?= GetMessage("C2IT_DISCOUNT_HINT");
		if ($allowedShowQuantity)
		{
	$subtabControl1->BeginNextTab();

		$showStoreReserve = Catalog\Config\State::isShowedStoreReserve();
		$stores = array();
		$storeLink = array();
		$storeCount = 0;
		$permissionFilter = [];
		if (Loader::includeModule('crm'))
		{
			$permissionFilter = $accessController->getEntityFilter(
				ActionDictionary::ACTION_STORE_VIEW,
				Catalog\StoreTable::class
			);
		}
		$iterator = Catalog\StoreTable::getList(array(
			'select' => array('ID', 'TITLE', 'ADDRESS', 'SORT'),
			'filter' => array_merge(
				array('=ACTIVE' => 'Y'),
				$permissionFilter
			),
			'order' => array('SORT' => 'ASC', 'ID' => 'ASC'),
		));
		while ($row = $iterator->fetch())
		{
			$row['ID'] = (int)$row['ID'];
			$row['ADDRESS'] = trim($row['ADDRESS']);
			$row['PRODUCT_AMOUNT'] = '';
			$row['QUANTITY_RESERVED'] = '';
			$stores[$storeCount] = $row;
			$storeLink[$row['ID']] = &$stores[$storeCount];
			$storeCount++;
		}
		unset($row, $iterator);
		if ($storeCount > 0)
		{
			$storeIds = array_keys($storeLink);
			if (!$bSubCopy)
			{
				$select = [
					'STORE_ID',
					'AMOUNT'
				];
				if ($showStoreReserve)
				{
					$select[] = 'QUANTITY_RESERVED';
				}
				$iterator = Catalog\StoreProductTable::getList([
					'select' => $select,
					'filter' => [
						'=PRODUCT_ID' => $PRODUCT_ID,
						'@STORE_ID' => $storeIds
					],
				]);
				while ($row = $iterator->fetch())
				{
					$storeId = (int)$row['STORE_ID'];
					$row['AMOUNT'] = (string)$row['AMOUNT'];
					$row['QUANTITY_RESERVED'] = (string)($row['QUANTITY_RESERVED'] ?? '');
					if (
						$row['AMOUNT'] !== '0'
						|| (
							$row['QUANTITY_RESERVED'] !== '0'
							&& $row['QUANTITY_RESERVED'] !== ''
						)
					)
					{
						$storeLink[$storeId]['PRODUCT_AMOUNT'] = $row['AMOUNT'];
					}
					if (
						$showStoreReserve
						&& $row['QUANTITY_RESERVED'] !== '0'
					)
					{
						$storeLink[$storeId]['QUANTITY_RESERVED'] = $row['QUANTITY_RESERVED'];
					}
				}
				unset($row, $iterator);
			}
			if ($bVarsFromForm)
			{
				if ($bStore && !$bUseStoreControl)
				{
					foreach ($storeIds as $store)
					{
						if (isset($_POST['SUBAR_AMOUNT'][$store]) && is_string($_POST['SUBAR_AMOUNT'][$store]))
						{
							$storeLink[$store]['PRODUCT_AMOUNT'] = $_POST['SUBAR_AMOUNT'][$store];
						}
					}
					unset($store);
				}
			}
			unset($storeIds);
		}
		unset($storeLink);
		if ($storeCount > 0)
		{
			?><table border="0" cellspacing="0" cellpadding="0" width="100%" class="internal">
			<tr class="heading">
				<td><?= GetMessage("C2IT_STORE_NUMBER"); ?></td>
				<td><?= GetMessage('C2IT_STORE_ID'); ?></td>
				<td><?= GetMessage("C2IT_NAME"); ?></td>
				<td><?= GetMessage("C2IT_STORE_ADDR"); ?></td>
				<td><?= GetMessage("C2IT_PROD_AMOUNT"); ?></td><?php
				if ($showStoreReserve)
				{
					?><td><?= GetMessage("C2IT_PROD_QUANTITY_RESERVED"); ?></td><?php
				}
				?>
			</tr>
			<?php
			foreach ($stores as $storeIndex => $row)
			{
				$storeId = '';
				$address = '';
				$storeUrl = $storeIndex + 1;
				if ($bStore)
				{
					$storeId = $row['ID'];
					$storeEditUrl = $selfFolderUrl.'cat_store_edit.php?ID='.$row['ID'].'&lang='.LANGUAGE_ID;
					$storeEditUrl = ($publicMode ? str_replace(".php", "/", $storeEditUrl) : $storeEditUrl);
					$address = ('' != $row['ADDRESS'] ? htmlspecialcharsbx($row['ADDRESS']) : '<a href="'.$storeEditUrl.'">'.GetMessage("C2IT_EDIT").'</a>');
					$storeUrl = '<a href="'.$storeEditUrl.'">'.$storeUrl.'</a>';
				}
				?><tr>
				<td style="text-align:center;"><?=$storeUrl; ?></td>
				<td style="text-align:center;"><?=$storeId; ?></td>
				<td style="text-align:center;"><?=htmlspecialcharsbx($row['TITLE']); ?></td>
				<td style="text-align:center;"><?=$address; ?></td>
				<td style="text-align:center;"><input type="text" id="SUBAR_AMOUNT_<?=$row['ID']; ?>" name="SUBAR_AMOUNT[<?=$row['ID']?>]" size="12" value="<?=htmlspecialcharsbx($row['PRODUCT_AMOUNT']); ?>" <?= ((!$bStore || $bUseStoreControl) ? 'disabled readonly' : ''); ?>><?php
				if ($bStore)
				{
					?><input type="hidden" name="SUBAR_STORE_ID[<?=$row['ID']?>]" value="<?=$row['ID']?>"><?php
				}
				?></td><?php
				if ($showStoreReserve)
				{
					?><td><input type="text" size="12" disable readonly value="<?=htmlspecialcharsbx($row['QUANTITY_RESERVED']); ?>"></td><?php
				}
				?></tr><?php
				unset($storeUrl, $address, $storeId);
			}
			unset($storeIndex, $row);
			?></table><?php
		}
		else
		{
			if ($bStore)
			{
				$storeListUrl = $selfFolderUrl.'cat_store_list.php?lang='.LANGUAGE_ID;
				$storeListUrl = $adminSidePanelHelper->editUrlToPublicPage($storeListUrl);
				?><b><?= GetMessage("C2IT_STORE_NO_STORE"); ?> <a target="_top" href="<?=$storeListUrl?>"><?=GetMessage("C2IT_STORE"); ?></a></b><br><?php
			}
		}
		if (!$bUseStoreControl)
			echo "<br>".GetMessage("C2IT_STORE_HINT");
		unset($storeCount, $stores);

		if($bUseStoreControl)
		{
			$subtabControl1->BeginNextTab();
			$barcode = '';
			$bUseMultiplyBarcode = ($arBaseProduct['BARCODE_MULTI'] == "Y");
			if (!$bSubCopy)
			{
				$dbBarcode = CCatalogStoreBarCode::GetList(array(), array("PRODUCT_ID" => $PRODUCT_ID));

				if($arBarcode = $dbBarcode->Fetch())
					$barcode = $arBarcode["BARCODE"];
			}
			?>
			<input type="hidden" name="SUBCAT_BARCODE_MULTIPLY" id="SUBCAT_BARCODE_MULTIPLY_N" value="N" />
			<table border="0" cellspacing="0" cellpadding="0" width="100%" class="edit-table" id="subcatalog_barcode_table">

				<tr>
					<td width="40%"><label for="SUBCAT_BARCODE_MULTIPLY"><?= GetMessage('C2IT_BARCODE_MULTIPLY'); ?>:</label></td>
					<td width="60%">
						<input type="checkbox" name="SUBCAT_BARCODE_MULTIPLY" id="SUBCAT_BARCODE_MULTIPLY" value="Y"<?=$bUseMultiplyBarcode ? ' checked="checked"' : ''?><?= $disableProduct; ?> onclick="checkSubBarCode();">
					</td>
				</tr>

				<tr id="tr_SUB_CAT_BARCODE"<?= ($bUseMultiplyBarcode ? ' style="display: none;"' : ''); ?>>
					<td><?= GetMessage("C2IT_BAR_CODE")?>:</td>
					<td><input type="text" name="SUBCAT_BARCODE" id="SUBCAT_BARCODE" size="30" value="<?= htmlspecialcharsbx($barcode); ?>"<?= $disableProduct; ?>></td>
				</tr><?php
				if (0 < $PRODUCT_ID && '' != $barcode)
				{
				?>
				<tr id="tr_SUBCAT_BARCODE_EDIT"<?= (($bUseMultiplyBarcode) ? ' style="display: none;"' : ''); ?>>
					<td><?= GetMessage("C2IT_BAR_CODE_EDIT")?>:</td>
					<td>
						<input type="hidden" name="SUBCAT_BARCODE_EDIT" id="SUBCAT_BARCODE_EDIT_N" value="N" />
						<input type="checkbox" name="SUBCAT_BARCODE_EDIT" id="SUBCAT_BARCODE_EDIT_Y" size="30" value="Y"<?= $disableProduct; ?> onclick="editSubBarCode();">
					</td>
				</tr><?php
				}
				?>
			</table>
			<?php
		}
		}
		if($activitySubscribeTab)
		{
			$subtabControl1->BeginNextTab();
			?>
			<script>
				function getDataSubscriptions() {
					BX.ajax({
						method: 'POST',
						dataType: 'json',
						url: '/bitrix/tools/catalog/subscription_card_product.php',
						data: {
							sessid: BX.bitrix_sessid(),
							getSubscriptionData: 'Y',
							itemId: '<?=$PRODUCT_ID?>'
						},
						onsuccess: BX.delegate(function (result) {
							if(result.success)
							{
								if(result.hasOwnProperty('data'))
								{
									if(result.data.hasOwnProperty('totalCount'))
										BX('bx-catalog-subscribe-total-count').innerHTML = result.data.totalCount;
									if(result.data.hasOwnProperty('activeCount'))
										BX('bx-catalog-subscribe-active-count').innerHTML = result.data.activeCount;
								}
								BX('subscription-data-table').style.display = '';
								BX('subscription-data-error').innerHTML = '';
							}
							else
							{
								if(result.hasOwnProperty('message'))
								{
									BX('subscription-data-error').innerHTML = result.message;
									BX('subscription-data-table').style.display = 'none';
								}
							}
						}, this)
					});
				}
			</script>
			<div id="subscription-data">
				<span id="subscription-data-error" class="errortext"></span>
				<table border="0" cellspacing="0" cellpadding="5" width="100%" class="edit-table" id="subscription-data-table">
					<tr>
						<td width="40%" style="text-align:right;"><?=GetMessage('C2IT_NUMBER_SUBSCRIPTIONS')?></td>
						<td width="60%" id="bx-catalog-subscribe-total-count"></td>
					</tr>
					<tr>
						<td width="40%" style="text-align:right;"><?=GetMessage('C2IT_NUMBER_ACTIVE_SUBSCRIPTIONS')?></td>
						<td width="60%" id="bx-catalog-subscribe-active-count"></td>
					</tr>
					<tr>
						<td width="40%" style="text-align:right;"><?=GetMessage('C2IT_LIST_SUBSCRIPTIONS')?></td>
						<td width="60%">
							<?php
							$subscriptionUrl = $selfFolderUrl."cat_subscription_list.php?ITEM_ID=".htmlspecialcharsbx($PRODUCT_ID)."&lang=".LANGUAGE_ID;
							$subscriptionUrl = ($publicMode ? str_replace(".php", "/", $subscriptionUrl) : $subscriptionUrl);
							?>
							<a target="_top" href="<?=$subscriptionUrl?>">
								<?=GetMessage('C2IT_LIST_SUBSCRIPTIONS_TEXT')?>
							</a>
						</td>
					</tr>
				</table>
			</div>
			<?php
		}
		$subtabControl1->End();
		?>
	</td>
</tr>

Youez - 2016 - github.com/yon3zu
LinuXploit