Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/modules/webdebug.excel/modes/
Upload File :
Current File : /var/www/homesaver/www/bitrix/modules/webdebug.excel/modes/levels.php

<?
// ���������� ������� ����� ��������, ���� ������ ���� ������� ������������
$WDMESS = array();
$WDMESS['WEBDEBUG_EXCEL_MAX_DEPTH'] = '���-�� ������� ��������:';
	$WDMESS['WEBDEBUG_EXCEL_MAX_DEPTH_HINT'] = '���� ��������� ������ ������ �����������.';
$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS'] = '����� ������� �������:';
	$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_NAME'] = '������� �� �������';
	$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_UNIQ'] = '������� �� ���������� ����';
	$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_HINT'] = '�� ����� ������ ������� ������� ������� ��, ��� ����� ����������� ����� �� ����� � ����� � ����� ��������.';
$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS'] = '����� ������� ��������:';
	$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS_NAME'] = '������� �� �������';
	$WDMESS['WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS_HINT'] = '�� ������� ������ �������� �������� ����� ������� ������� �� �������.';
$WDMESS['WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD'] = '���� �������� � �������� �����:';
	$WDMESS['WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_HINT'] = '� ����� ������������ ������� �� ���������� ����, ���� �������� ��� ����� ������� � ����� �� ����� ������ ��� � �������� ������. <br/><br/><b>��������!</b> � ����� ������� �� �������� ��������� (����, �������� �������� � ����� �CML2_ARTICLE� ��� �Articul�), ������� � ������ ������� �������, � � ��������� ���� (��� �������) ������� ��� �������� (������ ������� ��������) � ��������� �PROPERTY_�, ��������: �PROPERTY_CML2_ARTICLE� ��� �PROPERTY_Articul�.';
	$WDMESS['WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_EXTERNAL'] = '������ ���';
	$WDMESS['WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_CODE'] = '�������� ���';
	$WDMESS['WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_OTHER'] = '������';
	
$WDMESS['WEBDEBUG_EXCEL_SHEET_MATCHES_ELEMENTS'] = '������ ������������ (�����)';

$WDMESS['WEBDEBUG_EXCEL_MATCHES_COLUMN'] = '�������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_MATCH'] = '������������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE'] = '��� ������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_SEPARATOR'] = '����������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_COLUMNS_COUNT'] = '����� �������: ';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_RESET'] = '������ ��� ���';

$WDMESS['WEBDEBUG_EXCEL_MATCHES_COLUMN_HEADER_EMPTY'] = '---';

$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_EMPTY'] = '--- �� �������� ����� �� ������� ---';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_LOGIC'] = '�������� �����';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_ELEMENT_SKIP_FLAG'] = '���� �������� ���������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_SECTION_SKIP_FLAG'] = '���� �������� �������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_SECTION_LEVELS'] = '������ ��������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_SECTION_LEVEL_I'] = '%s� ������';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELDS'] = '��� ��������� ���������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_NAME'] = '��������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_ACTIVE'] = '���������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_CODE'] = '�������� ���';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_SORT'] = '����������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PTEXT'] = '�������� (�����)';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PTEXT_TYPE'] = '��� ������� (�����)';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DTEXT'] = '�������� (��������)';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DTEXT_TYPE'] = '��� ������� (��������)';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PPICTURE'] = '�������� (�����)';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DPICTURE'] = '�������� (��������)';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_TAGS'] = '����';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELDS'] = '��� �������� ���������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_NAME'] = '��������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_CODE'] = '�������� ���';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_SORT'] = '����������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_DESCRIPTION'] = '��������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_DESCR_TYPE'] = '��� �������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_PREVIEW_PICTURE'] = '�������� (�����)';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_FIELD_DETAIL_PICTURE'] = '�������� (��������)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG'] = '�������� ��������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PRICE'] = '��� ��� �%s�';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_CURRENCY'] = '�����';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_QUANTITY'] = '������� (����)';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_WEIGHT'] = '���';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_LENGTH'] = '�����';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_WIDTH'] = '������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_HEIGHT'] = '�����';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_MEASURE_UNIT'] = '������ ��������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_MEASURE_RATIO'] = '��������� ����� ��������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PURCHASING_PRICE'] = '�������� ����';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PURCHASING_CURRENCY'] = '����� ��������� ���';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_QUANTITY_TRACE'] = '������������ ���';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_VAT'] = '������ ���, %';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_VAT_INCLUDED'] = '���� ������ ��� � ��������';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_STORE'] = '������� �� ������ �%s�';
	$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_STORE_NOT_ACTIVE'] = ' (�� �������)';
$WDMESS['WEBDEBUG_EXCEL_FIELD_ACTION_GROUP_SEO_E'] = 'SEO';
	$WDMESS['WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_TITLE'] = 'META TITLE (��������� ���� ��������)';
	$WDMESS['WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_KEYWORDS'] = 'META KEYWORDS (����� �����)';
	$WDMESS['WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_DESCRIPTION'] = 'META DESCRIPTION (�������� ������)';
	$WDMESS['WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_PAGE_TITLE'] = '��������� (��������� H1)';
$WDMESS['WEBDEBUG_EXCEL_MATCHES_TYPE_S_PROPS'] = '�������� ��������';

$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_EMPTY'] = '--- �� ������� ---';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_NEWLINE'] = '[\n] ������ ����� ������';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_TAB'] = '[\t] ������';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_COMMA'] = '[,] �����';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_SEMICOLON'] = '[;] ���� � ������';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_DASH'] = '[-] ����';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_DOT'] = '[.] ����';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_SPACE'] = '[ ] ������';
$WDMESS['WEBDEBUG_EXCEL_SEPARATOR_OTHER'] = '--- ������ ---';

$WDMESS['WEBDEBUG_EXCEL_ERROR_IBLOCK_IS_EMPTY'] = '�� ������ ID ���������.';
$WDMESS['WEBDEBUG_EXCEL_ERROR_NAME_IS_EMPTY'] = '������ �%s � ����� ��������� ��������.';



if (defined('BX_UTF') && BX_UTF===true) {
	foreach($WDMESS as $Key => $Value) {
		$WDMESS[$Key] = $APPLICATION->ConvertCharset($Value, 'CP1251', 'UTF-8');
	}
}
$GLOBALS['MESS'] = array_merge($GLOBALS['MESS'], $WDMESS);
?>
<?if($Action=='main_settings'):?>


	<table class="wd_excel2_params wd_excel2_mode_params">
		<tbody>
			<tr>
				<td style="width:50%">
					<div class="label"><?=GetMessage('WEBDEBUG_EXCEL_MAX_DEPTH');?><?WDExcelShowHint(GetMessage('WEBDEBUG_EXCEL_MAX_DEPTH_HINT'));?></div>
					<div>
						<input type="text" name="fields[MAX_DEPTH]" value="<?=$arFields['PARAMS']['MAX_DEPTH']?>" style="box-sizing:border-box; width:100%;" />
					</div>
				</td>
				<td style="width:50%">
				</td>
			</tr>
			<tr>
				<td style="width:50%">
					<div class="label"><?=GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS');?><?WDExcelShowHint(GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS_HINT'));?></div>
					<div>
						<select name="fields[BIND_METHOD_SECTIONS]" id="bind_method_sections_select">
							<option value="by_name"<?if($arFields['PARAMS']['BIND_METHOD_SECTIONS']=='by_name'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_SECTIONS_NAME');?></option>
						</select>
						<script>
						$('#bind_method_sections_select').change(function(){
							if ($(this).val()=='by_uniq') {
								$('#unique_target_sections_cell').show();
							} else {
								$('#unique_target_sections_cell').hide();
							}
						});
						</script>
					</div>
				</td>
				<td style="width:50%">
					<div class="label"><?=GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS');?><?WDExcelShowHint(GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_HINT'));?></div>
					<div>
						<select name="fields[BIND_METHOD_ELEMENTS]" id="bind_method_elements_select">
							<option value="by_name"<?if($arFields['PARAMS']['BIND_METHOD_ELEMENTS']=='by_uniq'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_NAME');?></option>
							<option value="by_uniq"<?if($arFields['PARAMS']['BIND_METHOD_ELEMENTS']=='by_uniq'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_BIND_METHOD_ELEMENTS_UNIQ');?></option>
						</select>
						<script>
						$('#bind_method_elements_select').change(function(){
							if ($(this).val()=='by_uniq') {
								$('#unique_target_elements_cell').show();
							} else {
								$('#unique_target_elements_cell').hide();
							}
						});
						</script>
					</div>
				</td>
			</tr>
			<tr>
				<td style="width:50%">
				</td>
				<td style="width:50%">
					<div id="unique_target_elements_cell"<?if($arFields['PARAMS']['BIND_METHOD_ELEMENTS']!='by_uniq'):?> style="display:none;"<?endif?>>
						<div class="label"><?=GetMessage('WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD');?><?WDExcelShowHint(GetMessage('WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_HINT'));?></div>
						<div>
							<select name="fields[UNIQUE_TARGET_ELEMENTS]" id="unique_target_elements_select">
								<option value="EXTERNAL_ID"<?if($arFields['PARAMS']['UNIQUE_TARGET_ELEMENTS']=='EXTERNAL_ID'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_EXTERNAL');?></option>
								<option value="CODE"<?if($arFields['PARAMS']['UNIQUE_TARGET_ELEMENTS']=='CODE'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_CODE');?></option>
								<option value="other"<?if($arFields['PARAMS']['UNIQUE_TARGET_ELEMENTS']=='other'):?> selected="selected"<?endif?>><?=GetMessage('WEBDEBUG_EXCEL_ELEMENT_UNIQ_FIELD_OTHER');?></option>
							</select>
							<div id="unique_target_elements_other"<?if($arFields['PARAMS']['UNIQUE_TARGET_ELEMENTS']!='other'):?> style="display:none"<?endif?>>
								<br/>
								<input type="text" name="fields[UNIQUE_TARGET_ELEMENTS_OTHER_VALUE]" value="<?=$arFields['PARAMS']['UNIQUE_TARGET_ELEMENTS_OTHER_VALUE']?>" style="box-sizing:border-box; width:100%;" />
							</div>
							<script>
							$('#unique_target_elements_select').change(function(){
								if ($(this).val()=='other') {
									$('#unique_target_elements_other').show();
								} else {
									$('#unique_target_elements_other').hide();
								}
							});
							</script>
						</div>
					</div>
				</td>
			</tr>
		</tbody>
	</table>
	
	
<?elseif($Action=='additional_settings'):?>
	<table class="wd_excel2_params wd_excel2_additional_params">
		<tbody>
			<tr>
				<td width="33%">
					<p><?=GetMessage('WEBDEBUG_EXCEL_OPTION_HEADER_COLUMN')?>:</p>
					<div><input type="text" size="16" name="matches[HEADER_COLUMN_<?=$SheetIndex?>]" value="<?=$arFields["MATCHES"]["HEADER_COLUMN_".$SheetIndex]?>"/></div>
				</td>
				<td width="33%">
					<p><?=GetMessage('WEBDEBUG_EXCEL_OPTION_HEADER_ROW')?>:</p>
					<div><input type="text" size="16" name="matches[HEADER_ROW_<?=$SheetIndex?>]" value="<?=$arFields["MATCHES"]["HEADER_ROW_".$SheetIndex]?>"/></div>
				</td>
				<td width="33%">
					<p><?=GetMessage('WEBDEBUG_EXCEL_OPTION_ELEMENT_ROW')?>:</p>
					<div><input type="text" size="16" name="matches[ELEMENT_ROW_<?=$SheetIndex?>]" value="<?=$arFields["MATCHES"]["ELEMENT_ROW_".$SheetIndex]?>"/></div>
				</td>
			</tr>
			<?if($arFields['PARAMS']['BIND_METHOD_SECTIONS']=='by_uniq'):?>
				<tr>
					<td colspan="3">
						<div>
							<p><?=GetMessage('WEBDEBUG_EXCEL_UNIQ_COLUMN_SECTIONS')?></p>
							<select name="matches[UNIQ_COLUMN_SECTIONS_FOR_SHEET_<?=$SheetIndex?>]">
								<option value=""><?=GetMessage('WEBDEBUG_EXCEL_UNIQ_COLUMN_ANY')?></option>
								<?foreach($arSheetHeaders as $HeaderID => $HeaderName):?>
									<option value="<?=$HeaderID?>"<?WDOptSel($arFields['MATCHES']['UNIQ_COLUMN_SECTIONS_FOR_SHEET_'.$SheetIndex],$HeaderID)?>><?=$HeaderName?></option>
								<?endforeach?>
							</select>
						</div>
					</td>
				</tr>
			<?endif?>
			<tr>
				<td colspan="3">
					<?if($arFields['PARAMS']['BIND_METHOD_ELEMENTS']=='by_uniq'):?>
						<div>
							<p><?=GetMessage('WEBDEBUG_EXCEL_UNIQ_COLUMN_ELEMENTS')?></p>
							<select name="matches[UNIQ_COLUMN_ELEMENTS_FOR_SHEET_<?=$SheetIndex?>]">
								<option value=""><?=GetMessage('WEBDEBUG_EXCEL_UNIQ_COLUMN_ANY')?></option>
								<?foreach($arSheetHeaders as $HeaderID => $HeaderName):?>
									<option value="<?=$HeaderID?>"<?WDOptSel($arFields['MATCHES']['UNIQ_COLUMN_ELEMENTS_FOR_SHEET_'.$SheetIndex],$HeaderID)?>><?=$HeaderName?></option>
								<?endforeach?>
							</select>
						</div>
					<?endif?>
				</td>
			</tr>
		</tbody>
	</table>
<?elseif($Action=='matches'):?>
	<style>
	select.texthtml option, select.texthtml optgroup {display:none;}
	select.texthtml option[value=''],select.texthtml option[value='HTML'] {display:inline;}
	</style>
	<?if (IntVal($arFields['MATCHES']['HEADER_COLUMN_'.$SheetIndex])==0 || IntVal($arFields['MATCHES']['HEADER_ROW_'.$SheetIndex])==0) return false;?>
	<?// START of matches for elements ?>
	<div>
		<br/><table style="width:100%;"><tbody><tr class="heading"><td><?=GetMessage('WEBDEBUG_EXCEL_SHEET_MATCHES_ELEMENTS')?></td></tr></tbody></table>
	</div>
	<div class="adm-list-table-wrap adm-list-table-without-footer">
		<table class="adm-list-table" id="wd_excel2_matches_table_elements">
			<thead>
				<tr class="adm-list-table-header">
					<td class="adm-list-table-cell" style="width:20%">
						<div class="adm-list-table-cell-inner"><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_COLUMN');?></div>
					</td>
					<td class="adm-list-table-cell">
						<div class="adm-list-table-cell-inner"><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_MATCH');?></div>
					</td>
					<td class="adm-list-table-cell" style="width:214px">
						<div class="adm-list-table-cell-inner"><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE');?></div>
					</td>
					<td class="adm-list-table-cell" style="width:160px">
						<div class="adm-list-table-cell-inner"><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_SEPARATOR');?></div>
					</td>
				</tr>
			</thead>
			<tfoot>
				<tr class="adm-list-table-footer">
					<td class="adm-list-table-cell" colspan="2">
						<div class="adm-list-table-cell-inner"><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_COLUMNS_COUNT');?> <?=count($arSheetHeaders)?>.</div>
					</td>
					<td class="adm-list-table-cell" colspan="2" style="text-align:right;">
						<div style="text-align:right;">
							<input type="button" value="<?=GetMessage('WEBDEBUG_EXCEL_MATCHES_RESET');?>" id="webdebug_reset_button_elements" />
							<script>
							$('#webdebug_reset_button_elements').click(function(){
								$('#wd_excel2_matches_table_elements input[type=text]').val('');
								$('#wd_excel2_matches_table_elements select').val('');
								$('#wd_excel2_matches_table_elements select.wd_excel2_select_target').change();
							});
							</script>
						</div>
					</td>
				</tr>
			</tfoot>
			<tbody>
				<?foreach($arSheetHeaders as $HeaderColumnIndex => $HeaderName):?>
					<tr class="adm-list-table-row">
						<td class="adm-list-table-cell"><?=(trim($HeaderName)!=''?$HeaderName:GetMessage('WEBDEBUG_EXCEL_MATCHES_COLUMN_HEADER_EMPTY'));?></td>
						<td class="adm-list-table-cell">
							<?
								$SelectedTargetIsProperty = false;
								$SelectedTargetIsMultiple = false;
							?>
							<?$ParamVal=$arFields['MATCHES']['SHEET'][$SheetIndex][$HeaderColumnIndex]['ELEMENTS']['TARGET']?>
							<select class="wd_excel2_select_target" name="matches[SHEET][<?=$SheetIndex?>][<?=$HeaderColumnIndex?>][ELEMENTS][TARGET]">
								<option value=""><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_EMPTY')?></option>
								<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_LOGIC')?>">
									<option value="SKIP_FLAG"<?WDOptSel($ParamVal,'SKIP_FLAG')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_ELEMENT_SKIP_FLAG')?></option>
								</optgroup>
								<?if(CModule::IncludeModule('iblock')):?>
									<?if($arFields['PARAMS']['MAX_DEPTH']>0):?>
										<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_SECTION_LEVELS')?>">
											<?for($i=1;$i<=$arFields['PARAMS']['MAX_DEPTH'];$i++):?>
												<option value="DEPTH_<?=$i;?>"<?WDOptSel($ParamVal,'DEPTH_'.$i)?>><?=sprintf(GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_SECTION_LEVEL_I'),$i)?></option>
											<?endfor?>
										</optgroup>
									<?endif?>
									<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELDS')?>">
										<option value="NAME"<?WDOptSel($ParamVal,'NAME')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_NAME')?></option>
										<option value="ACTIVE"<?WDOptSel($ParamVal,'ACTIVE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_ACTIVE')?></option>
										<option value="CODE"<?WDOptSel($ParamVal,'CODE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_CODE')?></option>
										<option value="SORT"<?WDOptSel($ParamVal,'SORT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_SORT')?></option>
										<option value="PREVIEW_TEXT" data-property="Y" data-texthtml="Y"<?WDOptSel($ParamVal,'PREVIEW_TEXT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PTEXT')?></option>
										<option value="PREVIEW_TEXT_TYPE"<?WDOptSel($ParamVal,'PREVIEW_TEXT_TYPE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PTEXT_TYPE')?></option>
										<option value="DETAIL_TEXT" data-property="Y" data-texthtml="Y"<?WDOptSel($ParamVal,'DETAIL_TEXT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DTEXT')?></option>
										<option value="DETAIL_TEXT_TYPE"<?WDOptSel($ParamVal,'DETAIL_TEXT_TYPE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DTEXT_TYPE')?></option>
										<option value="PREVIEW_PICTURE"<?WDOptSel($ParamVal,'PREVIEW_PICTURE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_PPICTURE')?></option>
										<option value="DETAIL_PICTURE"<?WDOptSel($ParamVal,'DETAIL_PICTURE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_DPICTURE')?></option>
										<option value="TAGS"<?WDOptSel($ParamVal,'TAGS')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_E_FIELD_TAGS')?></option>
										<?if($ParamVal=='PREVIEW_TEXT'||$ParamVal=='DETAIL_TEXT')$SelectedTargetIsProperty=true;?>
									</optgroup>
								<?endif?>
								<?if($IBlockIsCatalog):?>
									<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG')?>">
										<?foreach($arPrices as $arPrice):?>
											<option value="PRICE_<?=$arPrice['ID']?>"<?WDOptSel($ParamVal,'PRICE_'.$arPrice['ID'])?>><?=sprintf(GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PRICE'),$arPrice['NAME_LANG'])?></option>
										<?endforeach?>
										<option value="CURRENCY"<?WDOptSel($ParamVal,'CURRENCY')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_CURRENCY')?></option>
										<option value="QUANTITY"<?WDOptSel($ParamVal,'QUANTITY')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_QUANTITY')?></option>
										<option value="WEIGHT"<?WDOptSel($ParamVal,'WEIGHT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_WEIGHT')?></option>
										<option value="LENGTH"<?WDOptSel($ParamVal,'LENGTH')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_LENGTH')?></option>
										<option value="WIDTH"<?WDOptSel($ParamVal,'WIDTH')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_WIDTH')?></option>
										<option value="HEIGHT"<?WDOptSel($ParamVal,'HEIGHT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_HEIGHT')?></option>
										<option value="MEASURE_UNIT"<?WDOptSel($ParamVal,'MEASURE_UNIT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_MEASURE_UNIT')?></option>
										<option value="MEASURE_RATIO"<?WDOptSel($ParamVal,'MEASURE_RATIO')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_MEASURE_RATIO')?></option>
										<option value="PURCHASING_PRICE"<?WDOptSel($ParamVal,'PURCHASING_PRICE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PURCHASING_PRICE')?></option>
										<option value="PURCHASING_CURRENCY"<?WDOptSel($ParamVal,'PURCHASING_CURRENCY')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_PURCHASING_CURRENCY')?></option>
										<option value="QUANTITY_TRACE"<?WDOptSel($ParamVal,'QUANTITY_TRACE')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_QUANTITY_TRACE')?></option>
										<option value="VAT"<?WDOptSel($ParamVal,'VAT')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_VAT')?></option>
										<option value="VAT_INCLUDED"<?WDOptSel($ParamVal,'VAT_INCLUDED')?>><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_VAT_INCLUDED')?></option>
										<?foreach($arStores as $arStore):?>
											<option value="STORE_<?=$arStore['ID']?>"<?WDOptSel($ParamVal,'STORE_'.$arStore['ID'])?>><?=sprintf(GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_STORE'),$arStore['TITLE']);?><?if($arStore['ACTIVE']!='Y'):?><?=GetMessage('WEBDEBUG_EXCEL_MATCHES_TYPE_CATALOG_STORE_NOT_ACTIVE')?><?endif?></option>
										<?endforeach?>
									</optgroup>
								<?endif?>
								<?if(!empty($arIBlockProps)):?>
									<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_GROUP_PROPERTIES')?>">
										<?foreach($arIBlockProps as $arProp):?>
											<option value="PROPERTY_<?=$arProp['ID']?>" data-property="Y"<?if($arProp['MULTIPLE']=='Y'):?> data-multiple="Y"<?endif?><?WDOptSel($ParamVal,'PROPERTY_'.$arProp['ID'])?>><?=$arProp['NAME']?> [<?=($arProp['CODE']?$arProp['CODE']:$arProp['ID'])?><?if($ShowPropertyType):?>, <?=$arProp['PROPERTY_TYPE'].(trim($arProp['USER_TYPE'])!=''?':'.$arProp['USER_TYPE']:'');?><?if($arProp['MULTIPLE']=='Y'):?>, M<?endif?><?endif?>]</option>
											<?if($ParamVal=='PROPERTY_'.$arProp['ID']){$SelectedTargetIsProperty=true; if($arProp['MULTIPLE']=='Y') $SelectedTargetIsMultiple=true;}?>
										<?endforeach?>
									</optgroup>
								<?endif?>
								<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_GROUP_SEO_E')?>">
									<option value="SEO_ELEMENT_META_TITLE"<?WDOptSel($ParamVal,'SEO_ELEMENT_META_TITLE')?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_TITLE')?></option>
									<option value="SEO_ELEMENT_META_KEYWORDS"<?WDOptSel($ParamVal,'SEO_ELEMENT_META_KEYWORDS')?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_KEYWORDS')?></option>
									<option value="SEO_ELEMENT_META_DESCRIPTION"<?WDOptSel($ParamVal,'SEO_ELEMENT_META_DESCRIPTION')?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_META_DESCRIPTION')?></option>
									<option value="SEO_ELEMENT_PAGE_TITLE"<?WDOptSel($ParamVal,'SEO_ELEMENT_PAGE_TITLE')?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_ACTION_SEO_E_PAGE_TITLE')?></option>
								</optgroup>
							</select>
						</td>
						<td class="adm-list-table-cell">
							<?$ParamVal=$arFields['MATCHES']['SHEET'][$SheetIndex][$HeaderColumnIndex]['ELEMENTS']['TYPE']?>
							<select class="wd_excel2_select_type" name="matches[SHEET][<?=$SheetIndex?>][<?=$HeaderColumnIndex?>][ELEMENTS][TYPE]" style="<?if(!$SelectedTargetIsProperty):?>display:none;<?endif?> width:100%;">
								<option value=""<?WDOptSel($ParamVal,"")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_DEFAULT')?></option>
								<option value="HTML"<?WDOptSel($ParamVal,"HTML")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_HTML')?></option>
								<option value="INTEGER"<?WDOptSel($ParamVal,"INTEGER")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_INTEGER')?></option>
								<option value="FLOAT"<?WDOptSel($ParamVal,"FLOAT")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_FLOAT')?></option>
								<option value="FLAG"<?WDOptSel($ParamVal,"FLAG")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_FLAG')?></option>
								<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_FIELD_GROUP_LIST')?>">
									<option value="LIST_XML_ID"<?WDOptSel($ParamVal,"LIST_XML_ID")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_LIST_XML_ID')?></option>
									<option value="LIST_VALUE"<?WDOptSel($ParamVal,"LIST_VALUE")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_LIST_VALUE')?></option>
								</optgroup>
								<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_FIELD_GROUP_ELEMENT')?>">
									<option value="ELEMENT_ID"<?WDOptSel($ParamVal,"ELEMENT_ID")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_ELEMENT_ID')?></option>
									<option value="ELEMENT_CODE"<?WDOptSel($ParamVal,"ELEMENT_CODE")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_ELEMENT_CODE')?></option>
									<option value="ELEMENT_NAME"<?WDOptSel($ParamVal,"ELEMENT_NAME")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_ELEMENT_NAME')?></option>
									<option value="ELEMENT_EXTERNAL"<?WDOptSel($ParamVal,"ELEMENT_EXTERNAL")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_ELEMENT_EXTERNAL')?></option>
								</optgroup>
								<optgroup label="<?=GetMessage('WEBDEBUG_EXCEL_FIELD_GROUP_SECTION')?>">
									<option value="SECTION_ID"<?WDOptSel($ParamVal,"SECTION_ID")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_SECTION_ID')?></option>
									<option value="SECTION_CODE"<?WDOptSel($ParamVal,"SECTION_CODE")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_SECTION_CODE')?></option>
									<option value="SECTION_NAME"<?WDOptSel($ParamVal,"SECTION_NAME")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_SECTION_NAME')?></option>
									<option value="SECTION_EXTERNAL"<?WDOptSel($ParamVal,"SECTION_EXTERNAL")?>><?=GetMessage('WEBDEBUG_EXCEL_FIELD_TYPE_SECTION_EXTERNAL')?></option>
								</optgroup>
							</select>
						</td>
						<td class="adm-list-table-cell">
							<?$ParamVal=$arFields['MATCHES']['SHEET'][$SheetIndex][$HeaderColumnIndex]['ELEMENTS']['SEPARATOR']?>
							<div class="wd_excel2_separator"<?if(!$SelectedTargetIsMultiple):?> style="display:none"<?endif?> >
								<div>
									<select class="wd_excel2_select_separator" name="matches[SHEET][<?=$SheetIndex?>][<?=$HeaderColumnIndex?>][ELEMENTS][SEPARATOR]" style="width:100%;">
										<option value=""><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_EMPTY');?></option>
										<option value="new"<?WDOptSel($ParamVal,"new")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_NEWLINE');?></option>
										<option value="tab"<?WDOptSel($ParamVal,"tab")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_TAB');?></option>
										<option value="commas"<?WDOptSel($ParamVal,"commas")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_COMMA');?></option>
										<option value="semicolon"<?WDOptSel($ParamVal,"semicolon")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_SEMICOLON');?></option>
										<option value="dash"<?WDOptSel($ParamVal,"dash")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_DASH');?></option>
										<option value="dot"<?WDOptSel($ParamVal,"dot")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_DOT');?></option>
										<option value="space"<?WDOptSel($ParamVal,"space")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_SPACE');?></option>
										<option value="other"<?WDOptSel($ParamVal,"other")?>><?=GetMessage('WEBDEBUG_EXCEL_SEPARATOR_OTHER');?></option>
									</select>
								</div>
								<div style="display:<?=($ParamVal=='other'?'block':'none')?>">
									<input type="text" name="matches[SHEET][<?=$SheetIndex?>][<?=$HeaderColumnIndex?>][ELEMENTS][SEPARATOR_OTHER]" maxlength="255" value="<?=$arFields['MATCHES']['SHEET'][$SheetIndex][$HeaderColumnIndex]['ELEMENTS']['SEPARATOR_OTHER']?>" style="text-align:center; idth:100%"/>
								</div>
							</div>
						</td>
					</tr>
				<?endforeach?>
			</tbody>
		</table>
		<script>
			$('#wd_excel2_matches_table_elements .wd_excel2_select_separator').unbind('change').change(function(){
				if ($(this).val()=='other') {
					$(this).parent().next().show().width($(this).width());
				} else {
					$(this).parent().next().hide();
				}
			});
			$('#wd_excel2_matches_table_elements .wd_excel2_select_target').unbind('change').change(function(){
				var OptionSelected = $(this).find('option:selected');
				$(this).parent().parent().find('.wd_excel2_select_type').css('display', OptionSelected.attr('data-property')=='Y' ? 'inline-block' : 'none');
				$(this).parent().parent().find('.wd_excel2_separator').css('display', OptionSelected.attr('data-multiple')=='Y' ? 'block' : 'none');
				if (OptionSelected.data('texthtml')=='Y') {
					$(this).parent().parent().find('.wd_excel2_select_type').addClass('texthtml');
				} else {
					$(this).parent().parent().find('.wd_excel2_select_type').removeClass('texthtml');
				}
			});
		</script>
	</div>
	<?// END of matches for elements ?>
	

<?elseif($Action=='next_step'):?>

	<?
	class CWDExcel2_LevelsMode {
		/**
		 *	Build $arFields array for adding section to IBlock
		 */
		function BuildSectionArray($arData) {
			$arData['IS_SECTION'] = true;
			$arMatches = $arData['FIELDS']['MATCHES']['SHEET'][$arData['SHEET']];
			$arSectionFields = array(
				'IBLOCK_ID' => $arData['FIELDS']['MATCHES']['IBLOCK_ID_FOR_SHEET_'.$arData['SHEET']],
			);
			if ($arMatch['TARGET']=='DESCRIPTION') {
				$arElementFields['DESCRIPTION_TYPE'] = $arMatch['TYPE']=='HTML' ? 'html' : 'text';
			}
			// ������ �������� ��� (����� � �����. ������)
			$UniqColumn = IntVal($arData['FIELDS']['MATCHES']['UNIQ_COLUMN_SECTIONS_FOR_SHEET_'.$arData['SHEET']]);
			$UniqValue = $arData['ITEM']['ITEMS'][$UniqColumn]['VALUE'];
			if ($arData['FIELDS']['PARAMS']['BIND_METHOD_SECTIONS']=='by_uniq') {
				switch($arData['FIELDS']['PARAMS']['UNIQUE_TARGET_SECTIONS']) {
					case 'EXTERNAL_ID':
						$arSectionFields['EXTERNAL_ID'] = $UniqValue;
						break;
					case 'CODE':
						$arSectionFields['CODE'] = $UniqValue;
						break;
					case 'other':
						if (trim($arData['FIELDS']['PARAMS']['UNIQUE_TARGET_SECTIONS_OTHER_VALUE'])!='') {
							$arSectionFields[$arData['FIELDS']['PARAMS']['UNIQUE_TARGET_SECTIONS_OTHER_VALUE']] = $UniqValue;
						}
						break;
				}
			}
			// �������� ������������� ������
			$arSectionFields['UF_'.CWebdebugExcel2::ImportIDPropCode] = $arData['STATUS']['ID'];
			return $arSectionFields;
		}
		/**
		 *	Build $arFields array for adding element to IBlock
		 */
		function BuildElementArray($arData) {
			$arData['IS_ELEMENT'] = true;
			$arMatches = $arData['FIELDS']['MATCHES']['SHEET'][$arData['SHEET']];
			$IBlockID = IntVal($arData['FIELDS']['MATCHES']['IBLOCK_ID_FOR_SHEET_'.$arData['SHEET']]);
			$arElementFields = array(
				'IBLOCK_ID' => $IBlockID,
			);
			$arSectionsDepth = array();
			foreach($arData['ITEM']['ITEMS'] as $Column => $arCell) {
				$arMatch = $arMatches[$Column]['ELEMENTS'];
				if (preg_match('#DEPTH_([\d]+)#i',$arMatch['TARGET'],$M)) {
					if (trim($arCell['VALUE'])!='') {
						$arSectionsDepth[$M[1]] = trim($arCell['VALUE']);
					}
					continue;
				}
				if (is_array($arMatch) && trim($arMatch['TARGET'])!='') {
					$arData['HTML'] = $arCell['HTML'];
					$arData['IS_SEO_FIELD'] = stripos($arMatch['TARGET'],'SEO_')===0;
					$arElementFields[$arMatch['TARGET']] = CWebdebugExcel2::ProcessValue($arCell['VALUE'], $arMatch['TARGET'], $arMatch['TYPE'], $arMatch['SEPARATOR'], $arMatch['SEPARATOR_OTHER'], $arData);
					if ($arMatch['TARGET']=='PREVIEW_TEXT') {
						$arElementFields['PREVIEW_TEXT_TYPE'] = $arMatch['TYPE']=='HTML' ? 'html' : 'text';
					}
					if ($arMatch['TARGET']=='DETAIL_TEXT') {
						$arElementFields['DETAIL_TEXT_TYPE'] = $arMatch['TYPE']=='HTML' ? 'html' : 'text';
					}
					if ($arData['IS_SEO_FIELD']) {
						$SeoField = CWebdebugExcel2::SubStr($arMatch['TARGET'],4);
						if (!is_array($arElementFields['IPROPERTY_TEMPLATES'])) $arElementFields['IPROPERTY_TEMPLATES'] = array();
						$arElementFields['IPROPERTY_TEMPLATES'][$SeoField] = $arElementFields[$arMatch['TARGET']];
						unset($arElementFields[$arMatch['TARGET']]);
					}
				}
			}
			if (!isset($arSectionFields['PREVIEW_TEXT'])) unset($arSectionFields['PREVIEW_TEXT_TYPE']);
			if (!isset($arSectionFields['DETAIL_TEXT'])) unset($arSectionFields['DETAIL_TEXT_TYPE']);
			// ������ �������� ��� (����� � �����. ������)
			$UniqColumn = IntVal($arData['FIELDS']['MATCHES']['UNIQ_COLUMN_ELEMENTS_FOR_SHEET_'.$arData['SHEET']]);
			$UniqValue = $arData['ITEM']['ITEMS'][$UniqColumn]['VALUE'];
			if ($arData['FIELDS']['PARAMS']['BIND_METHOD_ELEMENTS']=='by_uniq') {
				switch($arData['FIELDS']['PARAMS']['UNIQUE_TARGET_ELEMENTS']) {
					case 'EXTERNAL_ID':
						$arElementFields['EXTERNAL_ID'] = $UniqValue;
						break;
					case 'CODE':
						$arElementFields['CODE'] = $UniqValue;
						break;
					case 'other':
						if (trim($arData['FIELDS']['PARAMS']['UNIQUE_TARGET_ELEMENTS_OTHER_VALUE'])!='') {
							$arElementFields[$arData['FIELDS']['PARAMS']['UNIQUE_TARGET_ELEMENTS_OTHER_VALUE']] = $UniqValue;
						}
						break;
				}
			}
			// �������� ������������� ������
			$arElementFields['PROPERTY_'.CWebdebugExcel2::GetPropertyIdByCode($IBlockID,CWebdebugExcel2::ImportIDPropCode)] = $arData['STATUS']['ID'];
			$arElementFields['SECTIONS'] = $arSectionsDepth;
			return $arElementFields;
		}
		/**
		 *	Check, if row is marked by skip flag
		 */
		function CheckRowSkip($arData, $IsSection=false) {
			$Skip = false;
			$arMatches = $arData['FIELDS']['MATCHES']['SHEET'][$arData['SHEET']];
			foreach($arData['ITEM']['ITEMS'] as $Column => $arCell) {
				$arMatch = $arMatches[$Column][$IsSection?'SECTIONS':'ELEMENTS'];
				if ($arMatch['TARGET']=='SKIP_FLAG') {
					$arFlags = explode("\n",$arData['FIELDS']['PARAMS']['FLAGS']);
					foreach($arFlags as $Flag) {
						if (ToLower(trim($Flag))==ToLower(trim($arCell['VALUE']))) {
							$Skip = true;
							break 2;
						}
					}
				}
			}
			return $Skip;
		}
		/**
		 *	Function gets ID of section, to which will be loaded new section||element
		 */
		function GetTargetSection($arData) {
			if ($arData['SECTION_LOCAL_DEPTH']==0) {
				// �� ������� ����� - ��������� �����
				if ($arData['PARENT_SECTION']['ID']>0) {
					// ���� �������� � ������ - ID ����� �������
					return $arData['PARENT_SECTION']['ID'];
				} else {
					// ���� - ����� ���������
					return false;
				}
			} elseif ($arData['SECTION_LOCAL_DEPTH']>0) {
				// �� ������ ������� ��������� ������������� �������
				if ($arData['STATUS']['SECTIONS_BY_DEPTH'][$arData['SECTION_LOCAL_DEPTH']-1]) {
					// ID ������� ��������� �����
					return $arData['STATUS']['SECTIONS_BY_DEPTH'][$arData['SECTION_LOCAL_DEPTH']-1];
				} else {
					// � ��� ������ �� ������ ������
					//ToDo: Log();
					return false;
				}
			}
			return false;
		}
		/**
		 *	Full processing element (from building fields array to save it)
		 */
		function ProcessElement($arData) {
			$arResult = array();
			// ������ ��������
			$arResult['ELEMENT_FIELDS'] = $this->BuildElementArray($arData);
			// ��������� �����
			if ($arResult['ELEMENT_FIELDS']['IBLOCK_ID']===0) {
				CWebdebugExcel2::Log(sprintf(GetMessage('WEBDEBUG_EXCEL_ERROR_IBLOCK_IS_EMPTY'),$arData['INDEX']));
				return false;
			}
			if (isset($arResult['ELEMENT_FIELDS']['NAME']) && trim($arResult['ELEMENT_FIELDS']['NAME'])=='') {
				CWebdebugExcel2::Log(sprintf(GetMessage('WEBDEBUG_EXCEL_ERROR_NAME_IS_EMPTY'),$arData['INDEX']));
				return false;
			}
			// ���, ��������� �� ��� ������� �������
			$arResult['ELEMENT_EXISTS'] = CWebdebugExcel2::IsElementExists($arResult['ELEMENT_FIELDS'], $arData);
			// ��� ������
			ksort($arResult['ELEMENT_FIELDS']['SECTIONS']);
			$IBlockSection = new CIBlockSection;
			$LastSectionID = $arData['PARENT_SECTION']['ID'];
			$arData['PARENT_SECTION']['LEFT_MARGIN'] = false;
			$arData['PARENT_SECTION']['RIGHT_MARGIN'] = false;
			if ($arData['FIELDS']['PARAMS']['SKIP_SECTIONS_ALL']!='Y') {
				foreach($arResult['ELEMENT_FIELDS']['SECTIONS'] as $Depth => $SectionName) {
					$arSectionFields = array(
						'IBLOCK_ID' => $arResult['ELEMENT_FIELDS']['IBLOCK_ID'],
						'IBLOCK_SECTION_ID' => $LastSectionID,
						'NAME' => $SectionName,
					);
					$SectionID = CWebdebugExcel2::IsSectionExists($arSectionFields, $arData);
					if ($SectionID) {
						$LastSectionID = $SectionID;
					} else {
						CWebdebugExcel2::CheckCodeField(false,$arSectionFields,$arData,true,true);
						$arSectionFields = CWebdebugExcel2::PreprocessFields($arSectionFields, $arData, 'ADD', 'SECTION');
						$NewSectionID = $IBlockSection->Add($arSectionFields);
						if ($NewSectionID) {
							$LastSectionID = $NewSectionID;
						} else {
							CWebdebugExcel2::ShowError($IBlockSection->LAST_ERROR, $arData);
						}
					}
				}
				if ($LastSectionID>0) {
					$arResult['ELEMENT_FIELDS']['IBLOCK_SECTION_ID'] = $LastSectionID;
				}
			}
			unset($arResult['ELEMENT_FIELDS']['SECTIONS']);
			// ������� ��� ��������:
			$IBlockElement = new CIBlockElement;
			$ElementID = false;
			CWebdebugExcel2::CheckCodeField($SectionID, $arResult['ELEMENT_FIELDS'],$arData,false,!$arResult['ELEMENT_EXISTS']);
			if ($arResult['ELEMENT_EXISTS']) {
				// ���������� ������
				$arResult['IBLOCK_ELEMENT_NAME'] = $arResult['ELEMENT_FIELDS']['NAME'];
				$ElementID = $arResult['ELEMENT_EXISTS'];
				$arResult['ELEMENT_FIELDS'] = CWebdebugExcel2::PreprocessFields($arResult['ELEMENT_FIELDS'], $arData, 'UPDATE', 'ELEMENT', $ElementID);
				$arResult['UPDATE_RESULT'] = $IBlockElement->Update($ElementID, $arResult['ELEMENT_FIELDS']);
				if (!$arResult['UPDATE_RESULT']) {
					CWebdebugExcel2::ShowError(GetMessage('WEBDEBUG_EXCEL_ERROR_UPD_ELEMENT').$IBlockElement->LAST_ERROR, $arData);
				}
			} elseif ($arData['FIELDS']['PARAMS']['UPDATE_ONLY']!='Y') {
				// ���������� ������
				$arResult['ELEMENT_FIELDS'] = CWebdebugExcel2::PreprocessFields($arResult['ELEMENT_FIELDS'], $arData, 'ADD', 'ELEMENT');
				$arResult['ADD_RESULT'] = $IBlockElement->Add($arResult['ELEMENT_FIELDS']);
				$arResult['IBLOCK_ELEMENT_NAME'] = $arResult['ELEMENT_FIELDS']['NAME'];
				$ElementID = $arResult['ADD_RESULT'];
				if (!$arResult['ADD_RESULT']) {
					CWebdebugExcel2::ShowError(GetMessage('WEBDEBUG_EXCEL_ERROR_ADD_ELEMENT').$IBlockElement->LAST_ERROR, $arData);
				}
			}
			foreach($arResult['ELEMENT_FIELDS'] as $Key => $Value) {
				if (preg_match('#PROPERTY_(\d+)$#i',$Key,$M)) {
					$PropertyID = $M[1];
					CIBlockElement::SetPropertyValuesEx($ElementID, $arData['FIELDS']['MATCHES']['IBLOCK_ID_FOR_SHEET_'.$arData['SHEET']], array($PropertyID=>$Value));
				}
			}
			// Set product info
			$arResult['ELEMENT_PRODUCT_FIELDS'] = CWebdebugExcel2::BuildProductArray($arData, 'ELEMENTS');
			CWebdebugExcel2::SetProductData($ElementID, $arResult['ELEMENT_PRODUCT_FIELDS'], $arData);
			$arResult['IBLOCK_ELEMENT_ID'] = $ElementID;
			CWebdebugExcel2::SetProductSaved($ElementID, $arData);
			return $arResult;
		}
		
		/**
		 *	Start processing of row (still unknown: section || element)
		 */
		function ProcessRow($arData) {
			// 1. ��������� ���� ��������
			$Skip = $this->CheckRowSkip($arData, $IsSection);
			// 2. ������� ���������
			if (!$Skip) {
				$X = $this->ProcessElement($arData);
				return $X;
			}
			return false;
		}
	}
	?>
	
	<?
	
	$Done = false;
	$arDepthSections = array();
	CModule::IncludeModule('iblock');
	
	$WDExcel2Mode = new CWDExcel2_LevelsMode();
	
	// Iterate all sheets and items in each sheet
	foreach($File['SHEETS'] as $SheetIndex => $arSheet) {
		$IBlockID = IntVal($arFields['MATCHES']['IBLOCK_ID_FOR_SHEET_'.$SheetIndex]);
		if ($SheetIndex<$arStatus['CURR_SHEET']) continue;
		if (IntVal($arStatus['LAST_ROW'])==0) $arStatus['LAST_ROW'] = IntVal($arFields['MATCHES']['ELEMENT_ROW_'.$SheetIndex]);
		$arTargetSectionID = IntVal($arFields['MATCHES']['SECTION_ID_FOR_SHEET_'.$SheetIndex]);
		$arTargetSectionLMargin = false;
		$arTargetSectionRMargin = false;
		if ($arTargetSectionID>0) {
			$resSection = CIBlockSection::GetList(array(),array('IBLOCK_ID'=>$IBlockID,'ID'=>$arTargetSectionID),false,array('LEFT_MARGIN','RIGHT_MARGIN'));
			if ($arSection = $resSection->GetNext(false,false)) {
				$arTargetSectionLMargin = $arSection['LEFT_MARGIN'];
				$arTargetSectionRMargin = $arSection['RIGHT_MARGIN'];
			}
		}
		
		foreach($arSheet['ITEMS'] as $ItemIndex => $arItem) {
			
			// If last in sheet
			if ($ItemIndex==end(array_keys($arSheet['ITEMS']))) {
				$arStatus['CURR_SHEET'] = IntVal($arStatus['CURR_SHEET'])+1;
				$arStatus['LAST_ROW'] = 0;
				if (!isset($File['SHEETS'][$arStatus['CURR_SHEET']])) {
					$Done = true;
				}
				// For progress indicators
				$arStatus['COUNT'][$SheetIndex]['DONE'] = true;
			}
			
			if ($ItemIndex<$arStatus['LAST_ROW']) continue;
			
			$arResult = $WDExcel2Mode->ProcessRow(array(
				'SHEET' => $SheetIndex,
				'ITEM' => $arItem,
				'INDEX' => $ItemIndex,
				'FIELDS' => $arFields,
				'STATUS' => $arStatus,
				'PARENT_SECTION' => array('ID'=>$arTargetSectionID,'LEFT_MARGIN'=>$arTargetSectionLMargin,'RIGHT_MARGIN'=>$arTargetSectionRMargin),
			));
			
			// ����������� ���������� ������ (������� ID, ������� ��������)
			if (is_array($arResult) && $arResult['IBLOCK_ELEMENT_ID']>0) {
				$arStatus['IBLOCK_ELEMENT_ID_LAST'] = $arResult['IBLOCK_ELEMENT_ID'];
				$arStatus['IBLOCK_ELEMENT_NAME_LAST'] = $arResult['IBLOCK_ELEMENT_NAME'];
			}
			
			$arStatus['LAST_ROW'] = IntVal($arStatus['LAST_ROW'])+1;
			
			// For progress indicators
			$arStatus['COUNT'][$SheetIndex]['CURR'] = $ItemIndex;
			
			// Errors handler
			if ($GLOBALS['WEBDEBUG_EXCEL2_ERRORS_COUNT']>0) {
				$arStatus['ERRORS_COUNT'] = IntVal($arStatus['ERRORS_COUNT']) + $GLOBALS['WEBDEBUG_EXCEL2_ERRORS_COUNT'];
				unset($GLOBALS['WEBDEBUG_EXCEL2_ERRORS_COUNT']);
			}
			
			if (CWebdebugExcel2::CheckTimeIsOver($arFields['STEPTIME'])) {
				break 2;
			}
		}
		
		// ����� �������� ������� ����� ��������� ������ �������� ��������
		unset($arStatus['IBLOCK_ELEMENT_ID_LAST']);
		unset($arStatus['IBLOCK_ELEMENT_NAME_LAST']);
		
	}
	
	// Get status (only for print to user information)
	$arSheets = array();
	foreach($File['SHEETS'] as $SheetIndex => $arSheet) {
		$arSheets[$SheetIndex] = array(
			'NAME' => $arSheet['NAME'],
			'ROWS' => count($arSheet['ITEMS']),
			'LAST' => 0,
			'FIRST' => IntVal($arFields['MATCHES']['ELEMENT_ROW_'.$SheetIndex]),
		);
		if ($SheetIndex<IntVal($arStatus['CURR_SHEET'])) {
			$arSheets[$SheetIndex]['LAST'] = $arSheets[$SheetIndex]['ROWS'];
		} elseif ($SheetIndex==$arStatus['CURR_SHEET']) {
			$arSheets[$SheetIndex]['LAST'] = IntVal($arStatus['LAST_ROW']);
		}
	}
	
	if ($Done) {
		$Next = false;
		unset($arStatus['CURR_SHEET']);
		unset($arStatus['LAST_ROW']);
	} else {
		$Next = true;
	}
	
	?>
<?endif?>