Your IP : 172.28.240.42


Current Path : /var/www/html/clients/wodo.e-nk.ru/bitrix/wizards/bitrix/store.catalog/
Upload File :
Current File : /var/www/html/clients/wodo.e-nk.ru/bitrix/wizards/bitrix/store.catalog/wizard.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

function __WGetPROPSHiddens($PROPS, $p = '')
{
	$s = '';
	if(trim($_REQUEST['site_id'])!='')
		$s .= '<input type="hidden" name="site_id" value="'.htmlspecialchars($_REQUEST['site_id']).'">';

	if(!is_array($PROPS))
		return $s;

	foreach($PROPS as $k=>$v)
	{
		if(is_array($v))
			$s .= __WGetPROPSHiddens($v, $p.'['.htmlspecialchars($k).']');
		else
			$s .= '<input type="hidden" name="PROPS'.$p.'['.htmlspecialchars($k).']" value="'.htmlspecialchars($v).'">';
	}

	return $s;
}

class StepDescription extends CWizardStep
{
	function InitStep()
	{
		$this->SetTitle(GetMessage('CATWIZ_STEP_DESCRIPTION_TITLE'));
		$this->SetNextStep("step_settings");
		$this->SetStepID("step_description");
		$this->SetCancelStep("cancel");
		if(!CModule::IncludeModule('catalog'))
			$this->SetError(GetMessage('CATWIZ_NO_MODULE_ERROR'));
	}

	function OnPostForm()
	{
		$wizard = &$this->GetWizard();

		$PARAM = $wizard->GetVar("PARAM");
		if($PARAM['catalogId'] != $PARAM['oldcatalogId'])
			unset($_POST['PROPS']);
	}

	function ShowStep()
	{
		$wizard = &$this->GetWizard();

		if(isset($_GET['IBLOCK_ID'])){
			$wizard->SetDefaultVars(array(
			'PARAM' => array(
				'catalogId' => $_GET['IBLOCK_ID'],
			)));
		}
		
		$PARAM = $wizard->GetVar("PARAM");
		
		if(isset($_GET['editCBlock']) || ( isset($PARAM['catalogId']) && $PARAM['catalogId'] != 'new')){
			$this->content = GetMessage('CATWIZ_STEP_DESCRIPTION_CONTENT_EDIT');
		} else {
			$this->content = GetMessage('CATWIZ_STEP_DESCRIPTION_CONTENT');
		}
		$this->content .= __WGetPROPSHiddens($_POST["PROPS"]);
		
		if(trim($_REQUEST['site_id'])=='')
		{
			$dbsite = CSite::GetList($by="SORT", $order="ASC", Array("ACTIVE"=>"Y"));
			$arSites = Array();
			while($arsite = $dbsite->GetNext())
			{
				$arSites[] = $arsite;
			}
			
			if(count($arSites)==1)
				$this->content .= '<input type="hidden" name="site_id" value="'.$arSites[0]['ID'].'">';
			else
			{
				$this->content .= '<br><br>'.GetMessage("CATWIZ_STEP_SITE_SELECT").' ';
				$this->content .= '<select name="site_id">';
				foreach($arSites as $arSite)
					$this->content .= '<option value="'.$arSite['ID'].'">'.$arSite['NAME'].'</option>';
				$this->content .= '</select>';
			}
		}

		if($_GET['editCBlock'] == 'Y'){
			$dbIBlock = CIBlock::GetList(array('SORT' => 'ASC', 'ID' => 'DESC'), array("TYPE" => 'catalog',	"SITE_ID" => $_REQUEST['site_id']));
			$dbIBlock = new CIBlockResult($dbIBlock);

			while($arIBlock = $dbIBlock->Fetch())
			{
				$arIBlockSelect[$arIBlock['ID']] = $arIBlock['NAME'].' [' . $arIBlock['CODE'] .  ']';
			}
			if(count($arIBlockSelect) > 0){
				$this->content .= '<div class="wizard-input-form-block">
					<h4>'.GetMessage("CATWIZ_STEP_CATALOG_EDIT").'</h4>
					<div class="wizard-input-form-block-content">
						<div class="wizard-input-form-field wizard-input-form-field-text">'.$this->ShowSelectField("PARAM[catalogId]", $arIBlockSelect).'</div>
					</div>
				</div>';
				
				if($PARAM['catalogId'])
					$this->content .= $this->ShowHiddenField("PARAM[oldcatalogId]", $PARAM['catalogId']);
			} else {
				$this->content .= '<br><br>'.GetMessage("CATWIZ_NO_CATALOG").' ';
				$this->content .= $this->ShowHiddenField('PARAM[catalogId]', 'new');
			}

		} else {
			$this->content .= $this->ShowHiddenField('PARAM[catalogId]', 'new');
		}
	}
}

class StepSettings extends CWizardStep
{
	function InitStep()
	{
		$this->SetTitle(GetMessage('CATWIZ_STEP_SETTINGS_TITLE'));
		$this->SetNextStep("step_props");
		$this->SetPrevStep("step_description");
		$this->SetStepID("step_settings");
		$this->SetCancelStep("cancel");
	}
	
	function OnPostForm()
	{
		$wizard = &$this->GetWizard();
		$PARAM = $wizard->GetVar("PARAM");

		if (strlen($PARAM['NAME']) <= 0)
			$this->SetError(GetMessage('CATWIZ_ERROR_NO_CAT_NAME'));
		elseif($PARAM["catalogId"] == 'new'){
			if (strlen($PARAM['CODE']) <= 0)
				$this->SetError(GetMessage('CATWIZ_ERROR_NO_CAT_CODE'));
			elseif (preg_match('/[^a-zA-Z0-9_\-]/', $PARAM['CODE']))
				$this->SetError(GetMessage('CATWIZ_ERROR_WRONG_CAT_CODE'));
			else
			{
				$dbr = CIBlock::GetList(Array(), Array("SITE_ID"=>$_REQUEST['site_id'], "CODE"=>$PARAM["CODE"]));
				if($dbr->Fetch())
					$this->SetError(str_replace("#IBLOCK_CODE#", htmlspecialchars($PARAM['CODE']), GetMessage("CATWIZ_ERROR_CODE_EXISTS")));
			}
		}
		
		$res = $this->SaveFile("catalogImg", Array("extensions" => "gif,jpg,jpeg,png", "max_height" => 100, "max_width" => 100, "make_preview" => "Y"));
	}
	
	function ShowStep()
	{

		$this->content = CUtil::InitJSCore(array('translit'), true);
	
		$wizard =& $this->GetWizard();
		$PARAM = $wizard->GetVar("PARAM");

		$res = CIBlock::GetByID($PARAM["catalogId"]);
		$arCatalogBlock = $res->Fetch();
		
		$CatWizRecommend = GetMessage("CATWIZ_PROP_RECOMMEND");
		
		if($PARAM["catalogId"] != 'new'){
			$properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$PARAM["catalogId"], 'CODE'=>'RECOMMEND'));
			if ($prop_fields = $properties->GetNext()){
				$CatWizRecommend = $prop_fields['NAME'];	
			}
		}
		
		$on_offers = '';
		if($PARAM["catalogId"] != 'new'){
			$arCatalog = CCatalog::GetByIDExt($PARAM["catalogId"]); 
			if (is_array($arCatalog) && (in_array($arCatalog['CATALOG_TYPE'],array('P','X'))) == true) 
			{
				$on_offers = 'Y';
			}
		}
		
		$wizard->SetDefaultVars(array(
			'PARAM' => array(
				'NAME' => ($PARAM["catalogId"]=='new'?GetMessage("CATWIZ_DEFAULT_NAME"):$arCatalogBlock['NAME']),
				'DESCRIPTION' => ($PARAM["catalogId"]=='new'?'':$arCatalogBlock['DESCRIPTION']),
				'RECOMMEND' => $CatWizRecommend,
				'catalogImg' => $arCatalogBlock['PICTURE'],
				'CODE' => 'products',
			),
			'filter_table'=>'Y',
			'compare_table'=>'Y',
			'on_offers' => $on_offers,
		));

		
	
		$this->content .= '<div class="wizard-input-form">
		<div class="wizard-input-form-block">
			<h4>'.GetMessage("CATWIZ_CAT_NAME").'</h4>
			<div class="wizard-input-form-block-content">
				<div class="wizard-input-form-field wizard-input-form-field-text">'.$this->ShowInputField('text', 'PARAM[NAME]', array("size" => "20")).'</div>
			</div>
		</div>';
		
		if($PARAM["catalogId"] == 'new'){
			$wizard->SetDefaultVar("PARAM[CODE]", 'products');
		
			$this->content .= '<div class="wizard-input-form-block">
				<h4>'.GetMessage("CATWIZ_CAT_CODE").'</h4>
				<div class="wizard-input-form-block-content">
					<div class="wizard-input-form-field wizard-input-form-field-text">'.$this->ShowInputField('text', 'PARAM[CODE]', array("size" => "20")).'</div>
					<div class="wizard-input-form-field-desc">&mdash; '.GetMessage('CATWIZ_CODE_DESC').'</div>			
				</div>
			</div>';
		}
		
		$this->content .= '<div class="wizard-input-form-block">
			<h4>'.GetMessage("CATWIZ_CAT_DESCRIPTION").'</h4>
			<div class="wizard-input-form-block-content">
				<div class="wizard-input-form-field wizard-input-form-field-textarea">'.$this->ShowInputField('textarea', 'PARAM[DESCRIPTION]', array("rows"=>"3")).'</div>
				<div class="wizard-input-form-field-desc"></div>			
			</div>
		</div>';
		
		$this->content .= '<div class="wizard-input-form-block">
			<h4><label for="catalogImg">'.GetMessage("CATWIZ_CAT_IMG").'</label></h4>
			<div class="wizard-input-form-block-content">
				<div class="wizard-input-form-field wizard-input-form-field-text">'.
					$this->ShowFileField("catalogImg", 
						Array(
							"show_file_info"=> "N", 
							"id" => "catalogImg", )). '<br />'. 
					CFile::ShowImage($arCatalogBlock['PICTURE'], 100, 100, "border=0 vspace=5").'</div>
			</div>
		</div>';
					
		$this->content .= '<div class="wizard-input-form-block">
			<h4>'.GetMessage("CATWIZ_CAT_RECOMMEND").'</h4>
			<div class="wizard-input-form-block-content">
				<div class="wizard-input-form-field wizard-input-form-field-text">'.$this->ShowInputField('text', 'PARAM[RECOMMEND]', array("size" => "20")).'</div>
				<div class="wizard-input-form-field-desc"></div>			
			</div>
		</div>';
			
		$this->content .= '<div class="wizard-input-form-block">
			<h4>'.GetMessage("CATWIZ_CAT_EXT").'</h4>
			<div class="wizard-input-form-block-content">
				<div class="wizard-input-form-field wizard-input-form-field-checkbox">'.$this->ShowCheckBoxField("on_offers", 'Y', array('id'=>'on_offers', 'checked'.($wizard->GetVar('on_offers')=='Y'?'':'_no')=>'Y')).'<label for="on_offers"> '.GetMessage("CATWIZ_CAT_SKU").'</label></div>
				<div class="wizard-input-form-field wizard-input-form-field-checkbox">'.$this->ShowCheckBoxField("filter_table", 'Y', array('id'=>'filter_table', 'checked'.($wizard->GetVar('filter_table')=='Y'?'':'_no')=>'Y')).'<label for="filter_table"> '.GetMessage("CATWIZ_CAT_FILT").'</label></div>
				<div class="wizard-input-form-field wizard-input-form-field-checkbox">'.$this->ShowCheckBoxField("compare_table", 'Y', array('id'=>'compare_table', 'checked'.($wizard->GetVar('compare_table')=='Y'?'':'_no')=>'Y')).'<label for="compare_table"> '.GetMessage("CATWIZ_CAT_COMP").'</label></div>
			</div>
		</div>';
	
		$this->content .= '</div>';
		$this->content .= __WGetPROPSHiddens($_POST["PROPS"]);
	}
}


class StepProps extends CWizardStep
{
	function InitStep()
	{

		$wizard = &$this->GetWizard();
		
		$this->SetTitle(GetMessage("CATWIZ_CAT_PROPS"));
		
		if($wizard->GetVar('on_offers') == 'Y') $this->SetNextStep("step_offers");
		else $this->SetNextStep("step_run");
		
		$this->SetPrevStep("step_settings");
		$this->SetStepID("step_props");
		$this->SetCancelStep("cancel");
	}
	
	function OnPostForm()
	{
		$wizard = &$this->GetWizard();
		$PARAM = $wizard->GetVar("PARAM");

		if (strlen($PARAM['NAME']) <= 0)
			$this->SetError(GetMessage('CATWIZ_ERROR_NO_CAT_NAME'));
		elseif($PARAM["catalogId"] == 'new'){
			if (strlen($PARAM['CODE']) <= 0)
				$this->SetError(GetMessage('CATWIZ_ERROR_NO_CAT_CODE'));
			elseif (preg_match('/[^a-zA-Z0-9_\-]/', $PARAM['CODE']))
				$this->SetError(GetMessage('CATWIZ_ERROR_WRONG_CAT_CODE'));
			else
			{
				$dbr = CIBlock::GetList(Array(), Array("SITE_ID"=>$_REQUEST['site_id'], "CODE"=>$PARAM["CODE"]));
				if($dbr->Fetch())
					$this->SetError(str_replace("#IBLOCK_CODE#", htmlspecialchars($PARAM['CODE']), GetMessage("CATWIZ_ERROR_CODE_EXISTS")));
			}
		}
	}
	
	function ShowStep()
	{
		$wizard =& $this->GetWizard();
		$PARAM = $wizard->GetVar("PARAM");
		
		if($PARAM["catalogId"] != 'new'){
			$properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$PARAM["catalogId"]));
			while ($prop_fields = $properties->Fetch())
			{
				if($prop_fields['CODE'] != 'MORE_PHOTO' && $prop_fields['CODE'] != 'RECOMMEND' && $prop_fields["CODE"] != 'MINIMUM_PRICE' && $prop_fields["CODE"] != 'MAXIMUM_PRICE'){
					$PropsBlock[$prop_fields['CODE']]['NAME']          = $prop_fields['NAME'];
					$PropsBlock[$prop_fields['CODE']]['ID']            = $prop_fields['ID'];
					$PropsBlock[$prop_fields['CODE']]['PROPERTY_TYPE'] = $prop_fields['PROPERTY_TYPE'];
					$PropsBlock[$prop_fields['CODE']]['LIST_TYPE']     = $prop_fields['LIST_TYPE'];
					$PropsBlock[$prop_fields['CODE']]['CODE']          = $prop_fields['CODE'];
					
					$db_enum_list = CIBlockProperty::GetPropertyEnum($prop_fields['CODE'], Array(), Array("IBLOCK_ID"=>$PARAM["catalogId"]));
					while($ar_enum_list = $db_enum_list->GetNext())
					{
						$PropsBlock[$prop_fields['CODE']]['VALUES'][$ar_enum_list['ID']] =   $ar_enum_list['VALUE'];
					}
				}
			}
		}

		$this->content .= GetMessage("CATWIZ_HELP_PROPS");

		$this->content .= '<div class="wizard-input-form-block">
			<h4>'.GetMessage("CATWIZ_PROP_STEP_TITLE").'</h4>
		</div>';
		$this->content .= '<scr'.'ipt>
		function __DelRow(id)
		{
			var row = document.getElementById("r"+id);
			var c = "";
			c += "<input type=\"hidden\" name=\"PROPS["+id+"][DEL]\" value=\"Y\">";
			row.innerHTML = c;
		}

		function __AddRow()
		{
			var rnew = document.getElementById("rnew");
			var row = rnew.parentNode.insertBefore(document.createElement("TR"), rnew);
			var rnd = Math.random();
			row.className = "propsrow";
			row.id = "r"+ rnd;
			var c = "";
			row.insertCell(-1).innerHTML = "<input type=\"text\" size=\"20\" name=\"PROPS["+rnd+"][NAME]\" id=\"PROPS["+rnd+"][NAME]\" value=\"\">";
			var r = row.insertCell(-1);
			r.noWrap = true;
			c += "<input type=\"radio\" name=\"PROPS["+rnd+"][TYPE]\" id=\"PROPS["+rnd+"][TYPE]_str\" value=\"str\" checked onclick=\"__TypeChanged(this, "+rnd+")\"><label for=\"PROPS["+rnd+"][TYPE]_str\">'.GetMessage("CATWIZ_PROP_STR").'</label><br>";
			c += "<input type=\"radio\" name=\"PROPS["+rnd+"][TYPE]\" id=\"PROPS["+rnd+"][TYPE]_lst\" value=\"lst\" onclick=\"__TypeChanged(this, "+rnd+")\"><label for=\"PROPS["+rnd+"][TYPE]_lst\">'.GetMessage("CATWIZ_PROP_LST").'</label><br>";
			c += "<input type=\"radio\" name=\"PROPS["+rnd+"][TYPE]\" id=\"PROPS["+rnd+"][TYPE]_chk\" value=\"chk\" onclick=\"__TypeChanged(this, "+rnd+")\"><label for=\"PROPS["+rnd+"][TYPE]_chk\">'.GetMessage("CATWIZ_PROP_CHK").'</label>";
			r.innerHTML = c;
			row.insertCell(-1).innerHTML = "<span id=\"d"+rnd+"\" style=\"display:none;\"><input type=\"text\" size=\"20\" name=\"PROPS["+rnd+"][VALUES][]\"><br><a href=\"javascript:void(0);\" onclick=\"__AddVal(this, "+rnd+")\">'.GetMessage("CATWIZ_PROP_MORE").'</a></span>&nbsp;";
			row.insertCell(-1).innerHTML = "<a href=\"javascript:__DelRow("+rnd+");\"><img src=\"/bitrix/wizards/bitrix/store.catalog/images/delete.gif\" border=\"0\" title=\"'.GetMessage("CATWIZ_PROP_DEL").'\"></a>";
			document.getElementById("PROPS["+rnd+"][NAME]").focus();
		}
		function __TypeChanged(ob, id)
		{
			if(ob.value == "str")
				document.getElementById("d"+id).style.display = "none";
			else
				document.getElementById("d"+id).style.display = "inline";
		}
		
		function __AddVal(ob, id)
		{
			var sp = document.createElement("SPAN");
			var rnd = Math.random();
			sp.innerHTML = "<input type=\"text\" size=\"20\" name=\"PROPS["+id+"][VALUES][]\" id=\"in"+rnd+"\"><br>";
			ob.parentNode.insertBefore(sp, ob);
			document.getElementById("in"+rnd).focus();
		}
		</scri'.'pt>';

		$this->content .= '<table style="width: 100%;" class="propstable" id="propstable" cellspacing="0" cellpadding="0" border="0">';
		$this->content .= '<tr style="background-color:#F0F0F0; font-weight: bold;"><td>'.GetMessage("CATWIZ_PROP_NAME").'</td><td>'.GetMessage("CATWIZ_PROP_TYPE").'</td><td width="200">'.GetMessage("CATWIZ_PROP_VAL").'</td><td>&nbsp;</td></tr>';

		if(count($_POST['PROPS']) > 0){
			$PROPS = $_POST['PROPS'];
		} elseif($PARAM["catalogId"] != 'new'){
			$PROPS = $PropsBlock;
		}
		$PROPS['new'] = Array('TYPE'=>'str');

		foreach($PROPS as $rnd=>$prop)
		{
			if($rnd=='new')
				$rnd = rand();
			
			else if($prop['NAME']=='')
				continue;
			
			if($PARAM["catalogId"] != 'new'){
				$this->content .= '<input type="hidden" name="PROPS['.$rnd.'][CODE]" value="'.$rnd.'">';
				$this->content .= '<input type="hidden" name="PROPS['.$rnd.'][ID]" value="'.$prop['ID'].'">';

				if($prop['PROPERTY_TYPE'] == 'S') $prop['TYPE']='str';
				else if($prop['PROPERTY_TYPE'] == 'L' && $prop['LIST_TYPE'] == 'L') $prop['TYPE'] = 'lst';
				else if($prop['PROPERTY_TYPE'] == 'L' && $prop['LIST_TYPE'] == 'C') $prop['TYPE'] = 'chk';
			}	
						
			if(!is_array($prop['VALUES']) || count($prop['VALUES'])<1)
				$prop['VALUES'] = Array('');
			
			$this->content .= '<tr class="propsrow" id="r'.$rnd.'">';
			$this->content .= '<td><input type="text" size="20" name="PROPS['.$rnd.'][NAME]" id="PROPS['.$rnd.'][NAME]" value="'.htmlspecialchars($prop['NAME']).'"></td>';
			$this->content .= '<td nowrap="nowrap">';
			$this->content .= '<input type="radio" name="PROPS['.$rnd.'][TYPE]" id="PROPS['.$rnd.'][TYPE]_str" value="str" onclick="__TypeChanged(this, \''.$rnd.'\')"'.($prop['TYPE']=='str'?' checked':'').'><label for="PROPS['.$rnd.'][TYPE]_str">'.GetMessage("CATWIZ_PROP_STR").'</label><br>';
			$this->content .= '<input type="radio" name="PROPS['.$rnd.'][TYPE]" id="PROPS['.$rnd.'][TYPE]_lst" value="lst" onclick="__TypeChanged(this, \''.$rnd.'\')"'.($prop['TYPE']=='lst'?' checked':'').'><label for="PROPS['.$rnd.'][TYPE]_lst">'.GetMessage("CATWIZ_PROP_LST").'</label><br>';
			$this->content .= '<input type="radio" name="PROPS['.$rnd.'][TYPE]" id="PROPS['.$rnd.'][TYPE]_chk" value="chk" onclick="__TypeChanged(this, \''.$rnd.'\')"'.($prop['TYPE']=='chk'?' checked':'').'><label for="PROPS['.$rnd.'][TYPE]_chk">'.GetMessage("CATWIZ_PROP_CHK").'</label>';
			$this->content .= '</td>';
			$this->content .= '<td><span id="d'.$rnd.'"'.($prop['TYPE']=='str'?' style="display:none;"':'').'>';
			
			foreach($prop['VALUES'] as $key => $vv)
				$this->content .= '<input type="text" size="20" name="PROPS['.$rnd.'][VALUES]['.$key.']" value="'.htmlspecialchars($vv).'"><br>';

			$this->content .= '<a href="javascript:void(0);" onclick="__AddVal(this, \''.$rnd.'\')">'.GetMessage("CATWIZ_PROP_MORE").'</a></span>&nbsp;</td>';
			$this->content .= '<td><a href="javascript:__DelRow(\''.$rnd.'\');"><img src="/bitrix/wizards/bitrix/store.catalog/images/delete.gif" border="0" title="'.GetMessage("CATWIZ_PROP_DEL").'"></a></td>';
			$this->content .= '</tr>';
		}

		$this->content .= '<tr id="rnew"><td colspan="4"><a href="javascript:__AddRow();"><b>'.GetMessage("CATWIZ_PROP_ADD").'</b></a></td></tr>';

		$this->content .= '</table>';
	
		$this->content .= '<input type="hidden" name="site_id" value="'.htmlspecialchars($_REQUEST['site_id']).'">';
	}
}

class StepOffers extends CWizardStep
{
	function InitStep()
	{
		$this->SetTitle(GetMessage("CATWIZ_CAT_OFFERS_PROPS"));
		$this->SetNextStep("step_run");
		$this->SetPrevStep("step_props");
		$this->SetStepID("step_offers");
		$this->SetCancelStep("cancel");
	}
	
	function OnPostForm()
	{
		$wizard = &$this->GetWizard();
		$PARAM = $wizard->GetVar("PARAM");

		if (strlen($PARAM['NAME']) <= 0)
			$this->SetError(GetMessage('CATWIZ_ERROR_NO_CAT_NAME'));
		elseif($PARAM["catalogId"] == 'new'){
			if (strlen($PARAM['CODE']) <= 0)
				$this->SetError(GetMessage('CATWIZ_ERROR_NO_CAT_CODE'));
			elseif (preg_match('/[^a-zA-Z0-9_\-]/', $PARAM['CODE']))
				$this->SetError(GetMessage('CATWIZ_ERROR_WRONG_CAT_CODE'));
			else
			{
				$dbr = CIBlock::GetList(Array(), Array("SITE_ID"=>$_REQUEST['site_id'], "CODE"=>$PARAM["CODE"]));
				if($dbr->Fetch())
					$this->SetError(str_replace("#IBLOCK_CODE#", htmlspecialchars($PARAM['CODE']), GetMessage("CATWIZ_ERROR_CODE_EXISTS")));
			}
		}
	}
	
	function ShowStep()
	{
		$wizard =& $this->GetWizard();
		$PARAM = $wizard->GetVar("PARAM");
		
		if($PARAM["catalogId"] != 'new'){
			$OFFERS_IBLOCK_ID = false;
			
			$arCatalog = CCatalog::GetByIDExt($PARAM["catalogId"]); 
			if (is_array($arCatalog) && (in_array($arCatalog['CATALOG_TYPE'],array('P','X'))) == true) 
			{
				$OFFERS_IBLOCK_ID = $arCatalog['OFFERS_IBLOCK_ID'];
			}
			if(!$OFFERS_IBLOCK_ID){
				$arFilter = array('PROPERTY_TYPE' => 'E','CODE' => 'CML2_LINK','LINK_IBLOCK_ID' => $PARAM["catalogId"],'MULTIPLE' => 'N');
				$rsSKUProps = CIBlockProperty::GetList(array(),$arFilter);
				if ($arSKUProp = $rsSKUProps->Fetch())
				{
					$OFFERS_IBLOCK_ID = $arSKUProp['IBLOCK_ID'];
				}
			}
			if($OFFERS_IBLOCK_ID)
			{
				$properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$OFFERS_IBLOCK_ID));
				while ($prop_fields = $properties->Fetch())
				{
					if($prop_fields['CODE'] != 'CML2_LINK'){
						$PropsBlock[$prop_fields['CODE']]['NAME']          = $prop_fields['NAME'];
						$PropsBlock[$prop_fields['CODE']]['ID']            = $prop_fields['ID'];
						$PropsBlock[$prop_fields['CODE']]['PROPERTY_TYPE'] = $prop_fields['PROPERTY_TYPE'];
						$PropsBlock[$prop_fields['CODE']]['LIST_TYPE']     = $prop_fields['LIST_TYPE'];
						$PropsBlock[$prop_fields['CODE']]['CODE']          = $prop_fields['CODE'];
						
						$db_enum_list = CIBlockProperty::GetPropertyEnum($prop_fields['CODE'], Array(), Array("IBLOCK_ID"=>$OFFERS_IBLOCK_ID));
						while($ar_enum_list = $db_enum_list->GetNext())
						{
							$PropsBlock[$prop_fields['CODE']]['VALUES'][$ar_enum_list['ID']] =   $ar_enum_list['VALUE'];
						}
					}
				}
			}
		}

		$this->content .= GetMessage("CATWIZ_HELP_OFFERS");

		$this->content .= '<div class="wizard-input-form-block">
			<h4>'.GetMessage("CATWIZ_OFFERS_PROPS").'</h4>
		</div>';
		$this->content .= '<scr'.'ipt>
		function __DelRow(id)
		{
			var row = document.getElementById("r"+id);
			var c = "";
			c += "<input type=\"hidden\" name=\"OFFERS["+id+"][DEL]\" value=\"Y\">";
			row.innerHTML = c;
		}

		function __AddRow()
		{
			var rnew = document.getElementById("rnew");
			var row = rnew.parentNode.insertBefore(document.createElement("TR"), rnew);
			var rnd = Math.random();
			row.className = "propsrow";
			row.id = "r"+ rnd;
			var c = "";
			row.insertCell(-1).innerHTML = "<input type=\"text\" size=\"20\" name=\"OFFERS["+rnd+"][NAME]\" id=\"OFFERS["+rnd+"][NAME]\" value=\"\">";
			var r = row.insertCell(-1);
			r.noWrap = true;
			c += "<input type=\"radio\" name=\"OFFERS["+rnd+"][TYPE]\" id=\"OFFERS["+rnd+"][TYPE]_str\" value=\"str\" checked onclick=\"__TypeChanged(this, "+rnd+")\"><label for=\"OFFERS["+rnd+"][TYPE]_str\">'.GetMessage("CATWIZ_PROP_STR").'</label><br>";
			c += "<input type=\"radio\" name=\"OFFERS["+rnd+"][TYPE]\" id=\"OFFERS["+rnd+"][TYPE]_lst\" value=\"lst\" onclick=\"__TypeChanged(this, "+rnd+")\"><label for=\"OFFERS["+rnd+"][TYPE]_lst\">'.GetMessage("CATWIZ_PROP_LST").'</label><br>";
			c += "<input type=\"radio\" name=\"OFFERS["+rnd+"][TYPE]\" id=\"OFFERS["+rnd+"][TYPE]_chk\" value=\"chk\" onclick=\"__TypeChanged(this, "+rnd+")\"><label for=\"OFFERS["+rnd+"][TYPE]_chk\">'.GetMessage("CATWIZ_PROP_CHK").'</label>";
			r.innerHTML = c;
			row.insertCell(-1).innerHTML = "<span id=\"d"+rnd+"\" style=\"display:none;\"><input type=\"text\" size=\"20\" name=\"OFFERS["+rnd+"][VALUES][]\"><br><a href=\"javascript:void(0);\" onclick=\"__AddVal(this, "+rnd+")\">'.GetMessage("CATWIZ_PROP_MORE").'</a></span>&nbsp;";
			row.insertCell(-1).innerHTML = "<a href=\"javascript:__DelRow("+rnd+");\"><img src=\"/bitrix/wizards/bitrix/store.catalog/images/delete.gif\" border=\"0\" title=\"'.GetMessage("CATWIZ_PROP_DEL").'\"></a>";
			document.getElementById("OFFERS["+rnd+"][NAME]").focus();
		}
		function __TypeChanged(ob, id)
		{
			if(ob.value == "str")
				document.getElementById("d"+id).style.display = "none";
			else
				document.getElementById("d"+id).style.display = "inline";
		}
		
		function __AddVal(ob, id)
		{
			var sp = document.createElement("SPAN");
			var rnd = Math.random();
			sp.innerHTML = "<input type=\"text\" size=\"20\" name=\"OFFERS["+id+"][VALUES][]\" id=\"in"+rnd+"\"><br>";
			ob.parentNode.insertBefore(sp, ob);
			document.getElementById("in"+rnd).focus();
		}
		</scri'.'pt>';

		$this->content .= '<table style="width: 100%;" class="propstable" id="propstable" cellspacing="0" cellpadding="0" border="0">';
		$this->content .= '<tr style="background-color:#F0F0F0; font-weight: bold;"><td>'.GetMessage("CATWIZ_PROP_NAME").'</td><td>'.GetMessage("CATWIZ_PROP_TYPE").'</td><td width="200">'.GetMessage("CATWIZ_PROP_VAL").'</td><td>&nbsp;</td></tr>';

		if(count($_POST['OFFERS']) > 0){
			$OFFERS = $_POST['OFFERS'];
		} elseif($PARAM["catalogId"] != 'new'){
			$OFFERS = $PropsBlock;
		}
		$OFFERS['new'] = Array('TYPE'=>'str');

		foreach($OFFERS as $rnd=>$prop)
		{
			if($rnd=='new')
				$rnd = rand();
			
			else if($prop['NAME']=='')
				continue;
			
			if($PARAM["catalogId"] != 'new'){
				$this->content .= '<input type="hidden" name="OFFERS['.$rnd.'][CODE]" value="'.$rnd.'">';
				$this->content .= '<input type="hidden" name="OFFERS['.$rnd.'][ID]" value="'.$prop['ID'].'">';

				if($prop['PROPERTY_TYPE'] == 'S') $prop['TYPE']='str';
				else if($prop['PROPERTY_TYPE'] == 'L' && $prop['LIST_TYPE'] == 'L') $prop['TYPE'] = 'lst';
				else if($prop['PROPERTY_TYPE'] == 'L' && $prop['LIST_TYPE'] == 'C') $prop['TYPE'] = 'chk';
			}	
						
			if(!is_array($prop['VALUES']) || count($prop['VALUES'])<1)
				$prop['VALUES'] = Array('');
			
			$this->content .= '<tr class="propsrow" id="r'.$rnd.'">';
			$this->content .= '<td><input type="text" size="20" name="OFFERS['.$rnd.'][NAME]" id="OFFERS['.$rnd.'][NAME]" value="'.htmlspecialchars($prop['NAME']).'"></td>';
			$this->content .= '<td nowrap="nowrap">';
			$this->content .= '<input type="radio" name="OFFERS['.$rnd.'][TYPE]" id="OFFERS['.$rnd.'][TYPE]_str" value="str" onclick="__TypeChanged(this, \''.$rnd.'\')"'.($prop['TYPE']=='str'?' checked':'').'><label for="OFFERS['.$rnd.'][TYPE]_str">'.GetMessage("CATWIZ_PROP_STR").'</label><br>';
			$this->content .= '<input type="radio" name="OFFERS['.$rnd.'][TYPE]" id="OFFERS['.$rnd.'][TYPE]_lst" value="lst" onclick="__TypeChanged(this, \''.$rnd.'\')"'.($prop['TYPE']=='lst'?' checked':'').'><label for="OFFERS['.$rnd.'][TYPE]_lst">'.GetMessage("CATWIZ_PROP_LST").'</label><br>';
			$this->content .= '<input type="radio" name="OFFERS['.$rnd.'][TYPE]" id="OFFERS['.$rnd.'][TYPE]_chk" value="chk" onclick="__TypeChanged(this, \''.$rnd.'\')"'.($prop['TYPE']=='chk'?' checked':'').'><label for="OFFERS['.$rnd.'][TYPE]_chk">'.GetMessage("CATWIZ_PROP_CHK").'</label>';
			$this->content .= '</td>';
			$this->content .= '<td><span id="d'.$rnd.'"'.($prop['TYPE']=='str'?' style="display:none;"':'').'>';
			
			foreach($prop['VALUES'] as $key => $vv)
				$this->content .= '<input type="text" size="20" name="OFFERS['.$rnd.'][VALUES]['.$key.']" value="'.htmlspecialchars($vv).'"><br>';

			$this->content .= '<a href="javascript:void(0);" onclick="__AddVal(this, \''.$rnd.'\')">'.GetMessage("CATWIZ_PROP_MORE").'</a></span>&nbsp;</td>';
			$this->content .= '<td><a href="javascript:__DelRow(\''.$rnd.'\');"><img src="/bitrix/wizards/bitrix/store.catalog/images/delete.gif" border="0" title="'.GetMessage("CATWIZ_PROP_DEL").'"></a></td>';
			$this->content .= '</tr>';
		}

		$this->content .= '<tr id="rnew"><td colspan="4"><a href="javascript:__AddRow();"><b>'.GetMessage("CATWIZ_PROP_ADD").'</b></a></td></tr>';

		$this->content .= '</table>';
	
		$this->content .= '<input type="hidden" name="site_id" value="'.htmlspecialchars($_REQUEST['site_id']).'">';
		
		$PROPS = $_POST['PROPS'];
		if(is_array($PROPS))
		{
			foreach($PROPS as $key => $prop)
			{
				$this->content .= '<input type="hidden" name="PROPS['.$key.'][NAME]" value="'.$prop['NAME'].'">';
				$this->content .= '<input type="hidden" name="PROPS['.$key.'][ID]" value="'.$prop['ID'].'">';
				$this->content .= '<input type="hidden" name="PROPS['.$key.'][CODE]" value="'.$prop['CODE'].'">';
				if(!empty($prop['TYPE']))
					$this->content .= '<input type="hidden" name="PROPS['.$key.'][TYPE]" value="'.$prop['TYPE'].'">';
				else
					$this->content .= '<input type="hidden" name="PROPS['.$key.'][TYPE]" value="str">';
				if(is_array($prop['VALUES']) )
				{
					foreach($prop['VALUES'] as $value)
					{
						$this->content .= '<input type="hidden" name="PROPS['.$key.'][VALUES][]" value="'.$value.'">';
					}
				}
				
			}
		}
	}
}

class StepRun extends CWizardStep
{
	function InitStep()
	{
		$wizard =& $this->GetWizard();
		$PARAM = $wizard->GetVar('PARAM');
		if($PARAM['catalogId'] == 'new' ){
			$this->SetTitle(GetMessage('CATWIZ_STEP_RUN_TITLE'));
		} else {
			$this->SetTitle(GetMessage('CATWIZ_STEP_RUN_TITLE_EDIT'));
		}
//		$this->SetNextStep("final");
//		$this->SetPrevStep("step_props");
		$this->SetStepID("step_run");
		$this->SetCancelStep("cancel");
	}
	
	function ShowStep()
	{
		$wizard =& $this->GetWizard();
		$PARAM = $wizard->GetVar('PARAM');
		$PROPS = $_POST['PROPS'];
		$OFFERS = $_POST['OFFERS'];
		$ONOFFERS = $wizard->GetVar('on_offers');

		CModule::IncludeModule('catalog');

		if($_REQUEST['site_id']=='')
		{
			$this->SetError(GetMessage("CATWIZ_ERROR_BAD_SITE_ID"));
			return;
		}

		// èíôîáëîê
		$SITE_ID = $_REQUEST['site_id'];

		$dbRes = CSite::GetByID($SITE_ID);
		$arSite = $dbRes->Fetch();
		
		$catalogImg = $wizard->GetVar("catalogImg");
		$arPICTURE = '';
		if($catalogImg > 0)
		{
			$arPICTURE = CFile::MakeFileArray($catalogImg);
			$arPICTURE["del"] = '';
			$arPICTURE["MODULE_ID"] = "iblock";
		}

		$ib = new CIBlock();
		if($PARAM["catalogId"] == 'new')
		{
		
			$IBLOCK_ID = $ib->Add(array(
				'ACTIVE' => 'Y',
				'NAME' => $PARAM['NAME'],
				'CODE' => $PARAM['CODE'],
				'LIST_PAGE_URL' => '#SITE_DIR#/catalog/#IBLOCK_CODE#/',
				'SECTION_PAGE_URL' => '#SITE_DIR#/catalog/#IBLOCK_CODE#/#SECTION_CODE#/',
				'DETAIL_PAGE_URL' => '#SITE_DIR#/catalog/#IBLOCK_CODE#/#SECTION_CODE#/#ELEMENT_CODE#/',
				'SITE_ID' => array($SITE_ID), 
				'INDEX_SECTION' => 'Y',
				'ELEMENTS_NAME' => GetMessage("WZD_ELEMENTS_NAME"),
				'ELEMENT_NAME' => GetMessage("WZD_ELEMENT_NAME"),
				'ELEMENT_ADD' => GetMessage("WZD_ELEMENT_ADD"),
				'ELEMENT_EDIT' => GetMessage("WZD_ELEMENT_EDIT"),
				'ELEMENT_DELETE' => GetMessage("WZD_ELEMENT_DELETE"),
				'SECTIONS_NAME' => GetMessage("WZD_SECTIONS_NAME"),
				'SECTION_NAME' => GetMessage("WZD_SECTION_NAME"),
				'SECTION_ADD' => GetMessage("WZD_SECTION_ADD"),
				'SECTION_EDIT' => GetMessage("WZD_SECTION_EDIT"),
				'SECTION_DELETE' => GetMessage("WZD_SECTION_DELETE"),
				'GROUP_ID' => Array('2' => 'R', '1' => 'X'),
				'FIELDS' => array ( 'IBLOCK_SECTION' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => '', ), 'ACTIVE' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'Y', ), 'ACTIVE_FROM' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'ACTIVE_TO' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'SORT' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'NAME' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => '', ), 'PREVIEW_PICTURE' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array ( 'FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, 'DELETE_WITH_DETAIL' => 'N', 'UPDATE_WITH_DETAIL' => 'N', ), ), 'PREVIEW_TEXT_TYPE' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text', ), 'PREVIEW_TEXT' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'DETAIL_PICTURE' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array ( 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, ), ), 'DETAIL_TEXT_TYPE' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text', ), 'DETAIL_TEXT' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'XML_ID' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'CODE' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => array ( 'UNIQUE' => 'Y', 'TRANSLITERATION' => 'Y', 'TRANS_LEN' => 100, 'TRANS_CASE' => 'L', 'TRANS_SPACE' => '_', 'TRANS_OTHER' => '_', 'TRANS_EAT' => 'Y', 'USE_GOOGLE' => 'Y', ), ), 'TAGS' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'SECTION_NAME' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => '', ), 'SECTION_PICTURE' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array ( 'FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, 'DELETE_WITH_DETAIL' => 'N', 'UPDATE_WITH_DETAIL' => 'N', ), ), 'SECTION_DESCRIPTION_TYPE' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text', ), 'SECTION_DESCRIPTION' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'SECTION_DETAIL_PICTURE' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array ( 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, ), ), 'SECTION_XML_ID' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'SECTION_CODE' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => array ( 'UNIQUE' => 'Y', 'TRANSLITERATION' => 'Y', 'TRANS_LEN' => 100, 'TRANS_CASE' => 'L', 'TRANS_SPACE' => '_', 'TRANS_OTHER' => '_', 'TRANS_EAT' => 'Y', 'USE_GOOGLE' => 'Y', ), ), ), 
				'IBLOCK_TYPE_ID' => 'catalog',
				'DESCRIPTION_TYPE' => 'text',
				'DESCRIPTION' => $PARAM['DESCRIPTION'],
			 	'PICTURE' => $arPICTURE, 
			));
			
			if($ONOFFERS == "Y")
			{
				$IBLOCK_OFFERS_ID = $ib->Add(array(
					'ACTIVE' => 'Y',
					'NAME' => $PARAM['NAME'].GetMessage("WZD_OFFERS_CAT_NAME"),
					'CODE' => $PARAM['CODE'].'_offers',
					'LIST_PAGE_URL' => '#SITE_DIR#/catalog/'.$PARAM['CODE'].'/',
					'SECTION_PAGE_URL' => '#SITE_DIR#/catalog/'.$PARAM['CODE'].'/',
					'DETAIL_PAGE_URL' => '#SITE_DIR#/catalog/'.$PARAM['CODE'].'/',
					'SITE_ID' => array($SITE_ID), 
					'INDEX_SECTION' => 'N',
					'INDEX_ELEMENT' => 'N',
					'ELEMENTS_NAME' => GetMessage("WZD_ELEMENTS_OFFERS_NAME"),
					'ELEMENT_NAME' => GetMessage("WZD_ELEMENT_OFFERS_NAME"),
					'ELEMENT_ADD' => GetMessage("WZD_ELEMENT_OFFERS_ADD"),
					'ELEMENT_EDIT' => GetMessage("WZD_ELEMENT_OFFERS_EDIT"),
					'ELEMENT_DELETE' => GetMessage("WZD_ELEMENT_OFFERS_DELETE"),
					'SECTIONS_NAME' => GetMessage("WZD_SECTIONS_NAME"),
					'SECTION_NAME' => GetMessage("WZD_SECTION_NAME"),
					'SECTION_ADD' => GetMessage("WZD_SECTION_ADD"),
					'SECTION_EDIT' => GetMessage("WZD_SECTION_EDIT"),
					'SECTION_DELETE' => GetMessage("WZD_SECTION_DELETE"),
					'GROUP_ID' => Array('2' => 'R', '1' => 'X'),
					'IBLOCK_TYPE_ID' => 'offers',
					'DESCRIPTION_TYPE' => 'text',
				));
			}
		} 
		else 
		{
		
			$arFields = array(
				'ACTIVE' => 'Y',
				'NAME' => $PARAM['NAME'],
				'SITE_ID' => array($SITE_ID), 
				'DESCRIPTION' => $PARAM['DESCRIPTION'],
			 	'PICTURE' => $arPICTURE, 
			);
			
			if ($PARAM['catalogId'] > 0)
	  			$resUpdate = $ib->Update($PARAM['catalogId'], $arFields);
	  			
	  		if($resUpdate) $IBLOCK_ID = $PARAM['catalogId'];
	  		
	  		$IBLOCK_OFFERS_ID = false;
	  		$arCatalog = CCatalog::GetByIDExt($IBLOCK_ID); 
			if (is_array($arCatalog) && (in_array($arCatalog['CATALOG_TYPE'],array('P','X'))) == true) 
			{
				$IBLOCK_OFFERS_ID = $arCatalog['OFFERS_IBLOCK_ID'];
			}

			if($IBLOCK_OFFERS_ID && $ONOFFERS != "Y" )
			{
				CCatalog::UnLinkSKUIBlock($IBLOCK_ID);
				$IBLOCK_OFFERS_ID = false;
				
				if(!CCatalog::GetByID($IBLOCK_ID))
				{
					CCatalog::Add(array('IBLOCK_ID' => $IBLOCK_ID,  "SUBSCRIPTION" => 'N'));
				}
			}
			if(!$IBLOCK_OFFERS_ID && $ONOFFERS == "Y")
			{
				$arFilter = array('PROPERTY_TYPE' => 'E','CODE' => 'CML2_LINK','LINK_IBLOCK_ID' => $IBLOCK_ID,'MULTIPLE' => 'N');
				$rsSKUProps = CIBlockProperty::GetList(array(),$arFilter);
				if ($arSKUProp = $rsSKUProps->Fetch())
				{
					$IBLOCK_OFFERS_ID = $arSKUProp['IBLOCK_ID'];
					$ID_SKU = CCatalog::LinkSKUIBlock($IBLOCK_ID, $IBLOCK_OFFERS_ID);
					$arCatalog = CCatalog::GetByID($IBLOCK_OFFERS_ID);
					if ($arCatalog)
					{
						CCatalog::Update($IBLOCK_OFFERS_ID,array('PRODUCT_IBLOCK_ID' => $IBLOCK_ID,'SKU_PROPERTY_ID' => $ID_SKU));
					}
					else
					{
						CCatalog::Add(array('IBLOCK_ID' => $IBLOCK_OFFERS_ID, 'PRODUCT_IBLOCK_ID' => $IBLOCK_ID, 'SKU_PROPERTY_ID' => $ID_SKU));
					}
				}
				else 
				{
					$IBLOCK_OFFERS_ID = $ib->Add(array(
						'ACTIVE' => 'Y',
						'NAME' => $PARAM['NAME'].GetMessage("WZD_OFFERS_CAT_NAME"),
						'CODE' => $PARAM['CODE'].'_offers',
						'LIST_PAGE_URL' => '#SITE_DIR#/catalog/'.$PARAM['CODE'].'/',
						'SECTION_PAGE_URL' => '#SITE_DIR#/catalog/'.$PARAM['CODE'].'/',
						'DETAIL_PAGE_URL' => '#SITE_DIR#/catalog/'.$PARAM['CODE'].'/',
						'SITE_ID' => array($SITE_ID), 
						'INDEX_SECTION' => 'N',
						'INDEX_ELEMENT' => 'N',
						'ELEMENTS_NAME' => GetMessage("WZD_ELEMENTS_OFFERS_NAME"),
						'ELEMENT_NAME' => GetMessage("WZD_ELEMENT_OFFERS_NAME"),
						'ELEMENT_ADD' => GetMessage("WZD_ELEMENT_OFFERS_ADD"),
						'ELEMENT_EDIT' => GetMessage("WZD_ELEMENT_OFFERS_EDIT"),
						'ELEMENT_DELETE' => GetMessage("WZD_ELEMENT_OFFERS_DELETE"),
						'SECTIONS_NAME' => GetMessage("WZD_SECTIONS_NAME"),
						'SECTION_NAME' => GetMessage("WZD_SECTION_NAME"),
						'SECTION_ADD' => GetMessage("WZD_SECTION_ADD"),
						'SECTION_EDIT' => GetMessage("WZD_SECTION_EDIT"),
						'SECTION_DELETE' => GetMessage("WZD_SECTION_DELETE"),
						'GROUP_ID' => Array('2' => 'R', '1' => 'X'),
						'IBLOCK_TYPE_ID' => 'offers',
						'DESCRIPTION_TYPE' => 'text',
					));
					$ID_SKU = CCatalog::LinkSKUIBlock($IBLOCK_ID, $IBLOCK_OFFERS_ID);
					CCatalog::Add(array('IBLOCK_ID' => $IBLOCK_OFFERS_ID, 'PRODUCT_IBLOCK_ID' => $IBLOCK_ID, 'SKU_PROPERTY_ID' => $ID_SKU));
				}	
			}
	  			
		}

		if($IBLOCK_ID)
		{
			$fProps = '';
			$arProperty = Array();

			if($PARAM["catalogId"] == 'new')
			{
			
				// äîáàâèì òèïîâûå ñâîéñòâà
				$arProperties = array(
					'SPECIALOFFER' => array(
						'CODE' => 'SPECIALOFFER',
						'IBLOCK_ID' => $IBLOCK_ID,
						'NAME' => GetMessage("CATWIZ_SPEC"),
						'ACTIVE' => 'Y',
						'SORT' => 100,
						'PROPERTY_TYPE' => 'L',
						'MULTIPLE' => 'Y',
						'LIST_TYPE' => 'C',
						'SEARCHABLE' => 'Y',
						'FILTRABLE' => 'Y',
						'VERSION' => 1,
						'VALUES' => array(
							array(
								'XML_ID' => 'Y',
								'VALUE' => GetMessage("CATWIZ_PROP_YES"),
								'DEF' => 'N',
								'SORT' => 100,
							),
						),
					),
					'NEWPRODUCT' => array(
						'CODE' => 'NEWPRODUCT',
						'IBLOCK_ID' => $IBLOCK_ID,
						'NAME' => GetMessage("CATWIZ_PROP_NEW"),
						'ACTIVE' => 'Y',
						'SORT' => 110,
						'PROPERTY_TYPE' => 'L',
						'MULTIPLE' => 'Y',
						'LIST_TYPE' => 'C',
						'SEARCHABLE' => 'Y',
						'FILTRABLE' => 'Y',
						'VERSION' => 1,
						'VALUES' => array(
							array(
								'XML_ID' => 'Y',
								'VALUE' => GetMessage("CATWIZ_PROP_YES"),
								'DEF' => 'N',
								'SORT' => 100,
							),
						),
					),
					'SALELEADER' => array(
						'CODE' => 'SALELEADER',
						'IBLOCK_ID' => $IBLOCK_ID,
						'NAME' => GetMessage("CATWIZ_PROP_SALELEADER"),
						'ACTIVE' => 'Y',
						'SORT' => 120,
						'PROPERTY_TYPE' => 'L',
						'MULTIPLE' => 'Y',
						'LIST_TYPE' => 'C',
						'SEARCHABLE' => 'Y',
						'FILTRABLE' => 'Y',
						'VERSION' => 1,
						'VALUES' => array(
							array(
								'XML_ID' => 'Y',
								'VALUE' => GetMessage("CATWIZ_PROP_YES"),
								'DEF' => 'N',
								'SORT' => 100,
							),
						),
					),
				);	
					
				$ibp = new CIBlockProperty();
	 			foreach ($arProperties as $arProp)
				{
					$pid = $ibp->Add($arProp);
					if($pid>0)
					{
						$fProps .= '--PROPERTY_'.$pid.'--#--'.$arProp['NAME'].'--,';
						$arProperty[$arProp["CODE"]] = $pid;
					}
				}
				
			}
			
			$p = 0;
			// äîáàâèì ïîëüçîâàòåëüñêèå ñâîéñòâà

			if(is_array($PROPS))
			{
				foreach($PROPS as $prop)
				{
					if($prop["DEL"] == 'Y'){	
						$ibp = new CIBlockProperty;
						$ibp->Delete($prop["ID"]);
					} else {
						if(trim($prop["NAME"]) == '')
							continue;
						if($prop["ID"] > 0)
							$arProp['CODE'] = $prop["CODE"];
						else
							$arProp['CODE'] = 'PROP'.($p + 1);
							
						$arProp = array(
							'CODE' => $arProp['CODE'],
							'IBLOCK_ID' => $IBLOCK_ID,
							'NAME' => $prop["NAME"],
							'ACTIVE' => 'Y',
							'SORT' => 200 + $p*10,
							'PROPERTY_TYPE' => ($prop["TYPE"]=='str'?'S':'L'),
							'MULTIPLE' => ($prop["TYPE"]=='chk'?'Y':'N'),
							'SEARCHABLE' => 'Y',
							'LIST_TYPE' => ($prop["TYPE"]=='chk'?'C':'L'),
							'FILTRABLE' => 'Y',
							'VERSION' => 1,
						);
						
						if($prop["ID"] > 0 && ($prop["CODE"] != 'SPECIALOFFER' && $prop["CODE"] != 'NEWPRODUCT' && $prop["CODE"] != 'SALELEADER'))
							$strProps .= $p." => \"".$prop["CODE"]."\", \r\n"; 
						else 
							$strProps .= $p." => \"PROP".($p+1)."\", \r\n"; 
	
						$p++;
	
						if($prop["TYPE"]=='lst' || $prop["TYPE"]=='chk')
						{
							$nn = 0;
							$arProp['VALUES'] = array();
							foreach($prop["VALUES"]  as $key=>$vv)
							{
								if(trim($vv)!='')
									$arProp['VALUES'][$key] = array('VALUE'=>$vv,'DEF' => 'N', 'SORT' => 100 + $nn);
								$nn += 10;
							}
						}
	
						$arProperties[$arProp['CODE']] = $arProp;
						$ibp = new CIBlockProperty;
						if($prop["ID"] > 0){
							$ibp->Update($prop["ID"], $arProp);
							$fProps .= '--PROPERTY_'.$prop["ID"].'--#--'.$arProp['NAME'].'--,';
							$arProperty[$arProp['CODE']] = $prop["ID"];
						}
						else
						{
							$pid = $ibp->Add($arProp);
							if($pid > 0)
							{
								$fProps .= '--PROPERTY_'.$pid.'--#--'.$arProp['NAME'].'--,';
								$arProperty[$arProp["CODE"]] = $pid;
							}
						}
					}
				}
			}

			if($PARAM["catalogId"] == 'new'){
			
				// äîáàâèì òèïîâûå ñâîéñòâà RECOMMEND è MORE_PHOTO, MINIMUM_PRICE, MAXIMUM_PRICE
				$arPropertiesRM = array(
					'RECOMMEND' => array(
							'CODE' => 'RECOMMEND',
							'IBLOCK_ID' => $IBLOCK_ID,
							'NAME' => GetMessage("CATWIZ_PROP_RECOMMEND"),
							'ACTIVE' => 'Y',
							'SORT' => 990,
							'PROPERTY_TYPE' => 'E',
							'LINK_IBLOCK_TYPE_ID' => 'catalog',
							'LINK_IBLOCK_ID' => $IBLOCK_ID,
							'MULTIPLE' => 'Y',
							'SEARCHABLE' => 'N',
							'FILTRABLE' => 'N',
							'MULTIPLE_CNT' => 1,
							'WITH_DESCRIPTION' => 'Y',
							'VERSION' => 1,
					),
					'MORE_PHOTO' => array(
							'CODE' => 'MORE_PHOTO',
							'IBLOCK_ID' => $IBLOCK_ID,
							'NAME' => GetMessage("CATWIZ_PROP_MORE_PHOTO"),
							'ACTIVE' => 'Y',
							'SORT' => 1000,
							'PROPERTY_TYPE' => 'F',
							'FILE_TYPE' => 'jpg,gif,bmp,png,jpeg',
							'MULTIPLE' => 'Y',
							'SEARCHABLE' => 'N',
							'FILTRABLE' => 'N',
							'MULTIPLE_CNT' => 1,
							'WITH_DESCRIPTION' => 'Y',
							'VERSION' => 1,
					),
					'MINIMUM_PRICE' => array(
							'CODE' => 'MINIMUM_PRICE',
							'IBLOCK_ID' => $IBLOCK_ID,
							'NAME' => GetMessage("CATWIZ_PROP_MINIMUM_PRICE"),
							'ACTIVE' => 'Y',
							'SORT' => 1100,
							'PROPERTY_TYPE' => 'N',
							'MULTIPLE' => 'N',
							'SEARCHABLE' => 'N',
							'FILTRABLE' => 'N',
							'MULTIPLE_CNT' => 1,
							'WITH_DESCRIPTION' => 'N',
							'VERSION' => 1,
					),
					'MAXIMUM_PRICE' => array(
							'CODE' => 'MAXIMUM_PRICE',
							'IBLOCK_ID' => $IBLOCK_ID,
							'NAME' => GetMessage("CATWIZ_PROP_MAXIMUM_PRICE"),
							'ACTIVE' => 'Y',
							'SORT' => 1200,
							'PROPERTY_TYPE' => 'N',
							'MULTIPLE' => 'N',
							'SEARCHABLE' => 'N',
							'FILTRABLE' => 'N',
							'MULTIPLE_CNT' => 1,
							'WITH_DESCRIPTION' => 'N',
							'VERSION' => 1,
					)
				);
					
				$ibp = new CIBlockProperty();
	 			foreach ($arPropertiesRM as $arProp)
				{
					$pid = $ibp->Add($arProp);
					if($pid>0 && ($arProp["CODE"] != 'MINIMUM_PRICE' && $arProp["CODE"] != 'MAXIMUM_PRICE'))
					{
						$fProps .= '--PROPERTY_'.$pid.'--#--'.$arProp['NAME'].'--,';
						$arProperty[$arProp["CODE"]] = $pid;
					}
				}

				
				if($ONOFFERS == "Y" && $IBLOCK_OFFERS_ID)
				{
					//	äîáàâèì ñâÿçü ñ òîðãîâûìè ïðåäëîæåíèÿìè
					$ID_SKU = CCatalog::LinkSKUIBlock($IBLOCK_ID, $IBLOCK_OFFERS_ID);
					CCatalog::Add(array('IBLOCK_ID' => $IBLOCK_OFFERS_ID, 'PRODUCT_IBLOCK_ID' => $IBLOCK_ID, 'SKU_PROPERTY_ID' => $ID_SKU));
				}
				else 
				{
					//äîáàâèì òîðãîâûé êàòàëîã
					CCatalog::Add(array('IBLOCK_ID' => $IBLOCK_ID,  "SUBSCRIPTION" => 'N'));
				}
							
			} 
			else 
			{
				$properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$PARAM["catalogId"], 'CODE'=>'RECOMMEND'));
				if ($prop_fields = $properties->GetNext())
				{
					if($prop_fields['NAME'] != $PARAM['RECOMMEND']){
						$prop_fields['NAME'] = $PARAM['RECOMMEND'];
						$ibp = new CIBlockProperty();
						$sss = $ibp->Update($prop_fields["ID"], array('NAME'=>$prop_fields['NAME'] ));
					}
					$fProps .= '--PROPERTY_'.$prop_fields['ID'].'--#--'.$prop_fields['NAME'].'--,';
					$arProperty[$prop_fields['CODE']] = $prop_fields['ID'];

				}

				$properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$PARAM["catalogId"], 'CODE'=>'MORE_PHOTO'));
				if ($prop_fields = $properties->GetNext())
				{
					$fProps .= '--PROPERTY_'.$prop_fields['ID'].'--#--'.$prop_fields['NAME'].'--,';
					$arProperty[$prop_fields['CODE']] = $prop_fields['ID'];
				}
			}
			
			// äîáàâèì ïîëüçîâàòåëüñêèå ñâîéñòâà òîðãîâûõ ïðåäëîæåíèé
			if($ONOFFERS == "Y" && $IBLOCK_OFFERS_ID)
			{
				$fOfferss = '';
				$arOffers = Array();
				$p = 0;
				if(is_array($OFFERS))
				{
					foreach($OFFERS as $prop)
					{
						if($prop["DEL"] == 'Y'){	
							$ibp = new CIBlockProperty;
							$ibp->Delete($prop["ID"]);
						} 
						else 
						{
							if(trim($prop["NAME"]) == '')
								continue;
							if($prop["ID"] > 0)
								$arProp['CODE'] = $prop["CODE"];
							else
								$arProp['CODE'] = 'PROP'.($p + 1);
								
							$arProp = array(
								'CODE' => $arProp['CODE'],
								'IBLOCK_ID' => $IBLOCK_OFFERS_ID,
								'NAME' => $prop["NAME"],
								'ACTIVE' => 'Y',
								'SORT' => 200 + $p*10,
								'PROPERTY_TYPE' => ($prop["TYPE"]=='str'?'S':'L'),
								'MULTIPLE' => ($prop["TYPE"]=='chk'?'Y':'N'),
								'SEARCHABLE' => 'Y',
								'LIST_TYPE' => ($prop["TYPE"]=='chk'?'C':'L'),
								'FILTRABLE' => 'Y',
								'VERSION' => 1,
							);
							
							if($prop["ID"] > 0 && ($prop["CODE"] != 'CML2_LINK'))
								$strOffers .= $p." => \"".$prop["CODE"]."\", \r\n"; 
							else 
								$strOffers .= $p." => \"PROP".($p+1)."\", \r\n"; 
		
							$p++;
		
							if($prop["TYPE"]=='lst' || $prop["TYPE"]=='chk')
							{
								$nn = 0;
								$arProp['VALUES'] = array();
								foreach($prop["VALUES"]  as $key=>$vv)
								{
									if(trim($vv)!='')
										$arProp['VALUES'][$key] = array('VALUE'=>$vv,'DEF' => 'N', 'SORT' => 100 + $nn);
									$nn += 10;
								}
							}
							$arProperties[$arProp['CODE']] = $arProp;
							$ibp = new CIBlockProperty;
							if($prop["ID"] > 0)
							{
								$ibp->Update($prop["ID"], $arProp);
								$fOfferss .= '--PROPERTY_'.$prop["ID"].'--#--'.$arProp['NAME'].'--,';
								$arOffers[$arProp['CODE']] = $prop["ID"];
							}
							else
							{
								$pid = $ibp->Add($arProp);
								if($pid > 0)
								{
									$fOfferss .= '--PROPERTY_'.$pid.'--#--'.$arProp['NAME'].'--,';
									$arOffers[$arProp["CODE"]] = $pid;
								}
							}
						}
					}
				}
			}
			
			// äîáàâèì íàñòðîéêè ôîðì
			$f1 = 'edit1--#--'.GetMessage("WZD_OPTION_CATALOG_1").'--,--ACTIVE--#--'.GetMessage("WZD_OPTION_CATALOG_2").'--,--NAME--#--'.GetMessage("WZD_OPTION_CATALOG_3").'--,--CODE--#--'.GetMessage("WZD_OPTION_CATALOG_4").'--,--DETAIL_PICTURE--#--'.GetMessage("WZD_OPTION_CATALOG_5").'--,';
			$f1 .= $fProps;
			if($ONOFFERS != "Y")
			{
				$f1 .= '--CATALOG--#--'.GetMessage("WZD_OPTION_CATALOG_20").'--;--cedit1--#--'.GetMessage("WZD_OPTION_CATALOG_27").'--,--PREVIEW_TEXT--#--'.GetMessage("WZD_OPTION_CATALOG_6").'--,--DETAIL_TEXT--#--'.GetMessage("WZD_OPTION_CATALOG_7").'--,--cedit1_csection1--#----'.GetMessage("WZD_OPTION_CATALOG_9").'--,--SECTIONS--#--'.GetMessage("WZD_OPTION_CATALOG_30").'--;--';
			}
			else if($ONOFFERS == "Y" && CCatalog::GetByID($IBLOCK_ID) && CCatalog::GetByID($IBLOCK_OFFERS_ID)) 
			{
			
				$f1 .= '--CATALOG--#--'.GetMessage("WZD_OPTION_CATALOG_20").'--;--cedit1--#--'.GetMessage("WZD_OPTION_CATALOG_27").'--,--PREVIEW_TEXT--#--'.GetMessage("WZD_OPTION_CATALOG_6").'--,--DETAIL_TEXT--#--'.GetMessage("WZD_OPTION_CATALOG_7").'--,--cedit1_csection1--#----'.GetMessage("WZD_OPTION_CATALOG_9").'--,--SECTIONS--#--'.GetMessage("WZD_OPTION_CATALOG_30").'--;--';
				$f1 .= 'cedit2--#--'.GetMessage("WZD_OPTION_CATALOG_31").'--,--OFFERS--#--'.GetMessage("WZD_OPTION_CATALOG_31").'--;--';
			}
			else 
			{
				$f1 .= '--OFFERS--#--'.GetMessage("WZD_OPTION_CATALOG_20").'--;--cedit1--#--'.GetMessage("WZD_OPTION_CATALOG_27").'--,--PREVIEW_TEXT--#--'.GetMessage("WZD_OPTION_CATALOG_6").'--,--DETAIL_TEXT--#--'.GetMessage("WZD_OPTION_CATALOG_7").'--,--cedit1_csection1--#----'.GetMessage("WZD_OPTION_CATALOG_9").'--,--SECTIONS--#--'.GetMessage("WZD_OPTION_CATALOG_30").'--;--';			
			}
			CUserOptions::SetOption("form", "form_element_".$IBLOCK_ID, array ( 'tabs' => $f1, ));
			CUserOptions::SetOption("form", "form_section_".$IBLOCK_ID, array ( 'tabs' => 'edit1--#--'.GetMessage("WZD_OPTION_CATALOG_21").'--,--ACTIVE--#--'.GetMessage("WZD_OPTION_CATALOG_22").'--,--IBLOCK_SECTION_ID--#--'.GetMessage("WZD_OPTION_CATALOG_23").'--,--NAME--#--'.GetMessage("WZD_OPTION_CATALOG_24").'--,--CODE--#--'.GetMessage("WZD_OPTION_CATALOG_25").'--,--SORT--#--'.GetMessage("WZD_OPTION_CATALOG_28").'--,--PICTURE--#--'.GetMessage("WZD_OPTION_CATALOG_26").'--,--DESCRIPTION--#--'.GetMessage("WZD_OPTION_CATALOG_27").'--;--', ));
			CUserOptions::SetOption("list", "tbl_iblock_list_".md5("catalog".".".$IBLOCK_ID), array ( 'columns' => 'DETAIL_PICTURE,NAME,CATALOG_GROUP_1,PROPERTY_'.$arProperty["SPECIALOFFER"].',PROPERTY_'.$arProperty["NEWPRODUCT"].',PROPERTY_'.$arProperty["SALELEADER"].'', 'by' => 'timestamp_x', 'order' => 'desc', 'page_size' => '20', ));
				
			if($ONOFFERS == "Y")
			{
				// äîáàâèì íàñòðîéêè ôîðì òîðãîâûõ ïðåäëîæåíèé
				$f2 = 'edit1--#--'.GetMessage("WZD_OPTION_CATALOG_1").'--,--ACTIVE--#--'.GetMessage("WZD_OPTION_CATALOG_2").'--,--NAME--#--'.GetMessage("WZD_OPTION_CATALOG_3").'--,';
				$f2 .= $fOfferss;
				$f2 .= '--CATALOG--#--'.GetMessage("WZD_OPTION_CATALOG_20").'--;--';
				$f3 = 'sub_edit1--#--'.GetMessage("WZD_OPTION_CATALOG_1").'--,--ACTIVE--#--'.GetMessage("WZD_OPTION_CATALOG_2").'--,--NAME--#--'.GetMessage("WZD_OPTION_CATALOG_3").'--,';
				$f3 .= $fOfferss;
				$f3 .= '--CATALOG--#--'.GetMessage("WZD_OPTION_CATALOG_20").'--;--';
			
				CUserOptions::SetOption("form", "form_element_".$IBLOCK_OFFERS_ID, array ( 'tabs' => $f2, ));
				CUserOptions::SetOption("form", "form_subelement_".$IBLOCK_OFFERS_ID, array ( 'tabs' => $f3, ));
			}
			
			if($PARAM["catalogId"] == 'new')
			{
				$CatalogBlockCode = $PARAM['CODE'];
			}
			else
			{
				$res = CIBlock::GetByID($PARAM["catalogId"]);
				$arCatalogBlock = $res->GetNext();
				$CatalogBlockCode = $arCatalogBlock['CODE'];
			}
			
			// ñîçäàäèì/èçìåíèì ôàéë äëÿ îòîáðàæåíèÿ
			$path_from = $_SERVER['DOCUMENT_ROOT'].$wizard->GetPath().'/public/'.LANGUAGE_ID;
			$path_to = $_SERVER['DOCUMENT_ROOT'].$arSite['DIR'].'catalog/'.$CatalogBlockCode;
			
			CheckDirPath($path_to.'/');
			
			$arFiles = array('index.php', '.section.php');
			
			foreach ($arFiles as $file)
			{
				//unlink($path_to.'/'.$file);
				copy($path_from.'/'.$file, $path_to.'/'.$file);
				CWizardUtil::ReplaceMacros(
					$path_to.'/'.$file, 
					array(
						"IBLOCK_ID" => $IBLOCK_ID,
						"IBLOCK_NAME" => addslashes($PARAM['NAME']), 
						"IBLOCK_CODE" => $CatalogBlockCode, 
						"SITE_DIR" => $arSite['DIR'],
						"USE_COMPARE" => ($wizard->GetVar("compare_table")=="Y"?"Y":"N"),
						"USE_FILTER" =>  ($wizard->GetVar("filter_table")=="Y"?"Y":"N"),
						"PROPS" => $strProps,
						"OFFERS" => $strOffers,
						"PROPS_DETAIL" => $strProps.$p." => \"MORE_PHOTO\"\r\n, ".($p+1)." => \"RECOMMEND\"\r\n",
					)
				);
			}
			
			$arFiles = array('m_index.php');
			$siteMobileFolder = COption::GetOptionString("store", "siteMobileFolder", '', $SITE_ID);
			foreach ($arFiles as $file)
			{
				
				if(!empty($siteMobileFolder)){	
					$path_to = $_SERVER['DOCUMENT_ROOT'].$arSite['DIR']. $siteMobileFolder .'/catalog/'.$CatalogBlockCode;
				
					CheckDirPath($path_to.'/');
				
					copy($path_from.'/'.$file, $path_to.'/index.php');
					CWizardUtil::ReplaceMacros(
						$path_to.'/index.php', 
						array(
							"IBLOCK_ID" => $IBLOCK_ID,
							"IBLOCK_CODE" => $CatalogBlockCode, 
							"SITE_DIR" => $arSite['DIR']. $siteMobileFolder .'/',
							"OFFERS" => $strOffers,
							"PROPS_DETAIL" => $strProps.$p." => \"MORE_PHOTO\"\r\n, ".($p+1)." => \"RECOMMEND\"\r\n",
						)
					);
				}
			}


			if($PARAM["catalogId"] == 'new'){
				CUrlRewriter::Add(
					array(
						"SITE_ID" => $SITE_ID,
						"CONDITION" => "#^".$arSite['DIR']."catalog/".$PARAM['CODE']."/#",
						"ID" => 'bitrix:catalog',
						"PATH" => $arSite['DIR'].'catalog/'.$PARAM['CODE'].'/index.php'
					)
				);
				if(!empty($siteMobileFolder)){	
					CUrlRewriter::Add(
						array(
							"SITE_ID" => $SITE_ID,
							"CONDITION" => "#^".$arSite['DIR'] . $siteMobileFolder ."/catalog/".$PARAM['CODE']."/#",
							"ID" => 'bitrix:catalog',
							"PATH" => $arSite['DIR']. $siteMobileFolder .'/catalog/'.$PARAM['CODE'].'/index.php'
						)
					);
				}

				$this->content .= GetMessage("CATWIZ_OK").'<br><br>';
				
			} else {
				
				$this->content .= GetMessage("CATWIZ_OK_EDIT").'<br><br>';
				
			}

			$this->content .= '<a href="'.$arSite['DIR'].'catalog/'.$CatalogBlockCode.'/?clear_cache=Y">'.GetMessage("CATWIZ_GOTO").'</a>';

		}
		else
		{
			$this->content .= $ib->LAST_ERROR;
		}
		
		$this->content .= __WGetPROPSHiddens($_POST["PROPS"]);
		$this->content .= __WGetPROPSHiddens($_POST["OFFERS"]);
	}
}

class StepCancel extends CWizardStep
{
	function InitStep()
	{
		$this->SetTitle(GetMessage('STATWIZ_STEP3_TITLE'));
		$this->SetNextStep("final");
		$this->SetPrevStep("step2");
		$this->SetStepID("step3");
		$this->SetCancelStep("cancel");
	}

	function ShowStep()
	{

	}
}
?>