Warning: Undefined array key "बहिः गच्छतु" in
/home/httpd/vhosts/puntogroup.ru/httpdocs/collections/plint/index.php(1) : eval()'d code on line
136
Warning: Undefined array key "aksi" in
/home/httpd/vhosts/puntogroup.ru/httpdocs/collections/plint/index.php(1) : eval()'d code on line
140
Warning: Undefined array key "नामपत्र" in
/home/httpd/vhosts/puntogroup.ru/httpdocs/collections/plint/index.php(1) : eval()'d code on line
159
Warning: Undefined array key "नामपत्र" in
/home/httpd/vhosts/puntogroup.ru/httpdocs/collections/plint/index.php(1) : eval()'d code on line
181
Current File : /home/httpd/vhosts/puntogroup.ru/httpdocs/ajax/_js_item_detail.php.back1.4.1 |
<?define("STATISTIC_SKIP_ACTIVITY_CHECK", "true");?>
<?define('STOP_STATISTICS', true);
define('PUBLIC_AJAX_MODE', true);?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");?>
<?
$context = \Bitrix\Main\Application::getInstance()->getContext();
$request = $context->getRequest();
$arPost = $request->getPostList()->toArray();
global $APPLICATION;
$arPost = $APPLICATION->ConvertCharsetArray($arPost, 'UTF-8', LANG_CHARSET);
if(!$arPost['CLASS'])
$arPost['CLASS'] = "inner_content";
?>
<?if($arPost["PARAMS"]):?>
<?
$arPost["PARAMS"]["SHOW_ABSENT"] = true; // set true for opacity 0.4 unable item
\Bitrix\Main\Loader::includeModule("sale");
\Bitrix\Main\Loader::includeModule("catalog");
$arPropsTmp = array();
foreach($arPost as $key => $value)
{
if(strpos($key, 'PROP_') !== false)
{
$arPropsTmp[$key] = $value;
}
}
$arSelectedProps = json_encode($arPropsTmp);
$arFilter = array("IBLOCK_ID" => $arPost["IBLOCK_ID"], "PROPERTY_CML2_LINK" => $arPost["LINK_ID"], "ACTIVE" => "Y");
if($arPost["PARAMS"]["HIDE_NOT_AVAILABLE_OFFERS"] == "Y")
$arFilter["CATALOG_AVAILABLE"] = "Y";
$arSelect = array("ID", "IBLOCK_ID", "NAME", "DETAIL_PAGE_URL", "PREVIEW_PICTURE", "DETAIL_PICTURE", "PROPERTY_*");
/* select prices */
if($arPost["PARAMS"]["PRICE_CODE"])
{
$arPricesIDs = \Aspro\Functions\CAsproNext::getPricesID($arPost["PARAMS"]["PRICE_CODE"], true);
if($arPricesIDs)
{
foreach($arPricesIDs as $priceID)
$arSelect[] = "CATALOG_GROUP_".$priceID;
}
}
/**/
/* get sku props*/
$arSKU = array("IBLOCK_ID" => $arPost["IBLOCK_ID"], "SKU_PROPERTY_ID" => $arPost["PROPERTY_ID"], "VERSION" => 1);
$arSKUPropList = CIBlockPriceTools::getTreeProperties(
$arSKU,
$arPost["PARAMS"]["OFFER_TREE_PROPS"],
array(
//'PICT' => $arEmptyPreview,
'NAME' => '-'
)
);
$arNeedValues = array();
CIBlockPriceTools::getTreePropertyValues($arSKUPropList, $arNeedValues);
$arSKUPropIDs = array_keys($arSKUPropList);
if ($arSKUPropIDs)
$arSKUPropKeys = array_fill_keys($arSKUPropIDs, false);
/**/
global $USER;
$USER_ID = $USER->GetID();
$arUserGroups = $USER->GetUserGroupArray();
$obCache = new CPHPCache();
$cacheTag = "element_".$arPost['LINK_ID'];
$cacheTag = "elements_by_offer";
$cacheID = "getSKUjs".$cacheTag.md5(serialize(array_merge((array)($arPost["PARAMS"]["CACHE_GROUPS"]==="N"? false: $USER->GetGroups()), $arFilter, (array)$arSelect)));
$cachePath = "/CNextCache/iblock/getSKUjs/".$cacheTag."/";
$cacheTime = $arPost["PARAMS"]["CACHE_TIME"];
// $cacheTime = 0;
if(isset($arPost["clear_cache"]) && $arPost["clear_cache"] == "y")
\CNextCache::ClearCacheByTag($cacheTag);
/*get currency for convert*/
$arCurrencyParams = array();
if ("Y" == $arPost["PARAMS"]["CONVERT_CURRENCY"])
{
if(CModule::IncludeModule("currency"))
{
$arCurrencyInfo = CCurrency::GetByID($arPost["PARAMS"]["CURRENCY_ID"]);
if (is_array($arCurrencyInfo) && !empty($arCurrencyInfo))
{
$arCurrencyParams["CURRENCY_ID"] = $arCurrencyInfo["CURRENCY"];
}
}
}
/**/
if(!$arPost["PARAMS"]["LIST_OFFERS_LIMIT"])
$arPost["PARAMS"]["LIST_OFFERS_LIMIT"] = 9999;
if($obCache->InitCache($cacheTime, $cacheID, $cachePath))
{
$res = $obCache->GetVars();
$arItems = $res["arItems"];
}
else
{
$arElements = array();
/* get sku by link item*/
$rsElements = CIBLockElement::GetList(array($arPost["PARAMS"]["OFFERS_SORT_FIELD"] => $arPost["PARAMS"]["OFFERS_SORT_ORDER"], $arPost["PARAMS"]["OFFERS_SORT_FIELD2"] => $arPost["PARAMS"]["OFFERS_SORT_ORDER2"]), $arFilter, false, array("nTopCount" => $arPost["PARAMS"]["LIST_OFFERS_LIMIT"]), $arSelect);
while($obElement = $rsElements->GetNextElement())
{
$arItem = $obElement->GetFields();
$arItem["FIELDS"] = array();
$arItem["PROPERTIES"] = $obElement->GetProperties();
$arItem["DISPLAY_PROPERTIES"]=array();
foreach($arPost["PARAMS"]["LIST_OFFERS_PROPERTY_CODE"] as $pid)
{
$prop = &$arItem["PROPERTIES"][$pid];
if(
(is_array($prop["VALUE"]) && count($prop["VALUE"])>0)
|| (!is_array($prop["VALUE"]) && strlen($prop["VALUE"])>0)
)
{
$arItem["DISPLAY_PROPERTIES"][$pid] = CIBlockFormatProperties::GetDisplayValue($arItem, $prop, "news_out");
}
}
$arElements[$arItem["ID"]] = $arItem;
}
/**/
/* get tree props */
$arMatrixFields = $arSKUPropKeys;
$arMatrix = $arMeasureMap = array();
$arResult = $arDouble = array();
$arDefaultMeasure = CCatalogMeasure::getDefaultMeasure(true, true);
foreach ($arElements as $keyOffer => $arOffer)
{
$arOffer['ID'] = intval($arOffer['ID']);
if (isset($arDouble[$arOffer['ID']]))
continue;
$arRow = array();
foreach ($arSKUPropIDs as $propkey => $strOneCode)
{
$arCell = array(
'VALUE' => 0,
'SORT' => PHP_INT_MAX,
'NA' => true
);
if (isset($arOffer['DISPLAY_PROPERTIES'][$strOneCode]))
{
$arMatrixFields[$strOneCode] = true;
$arCell['NA'] = false;
if ('directory' == $arSKUPropList[$strOneCode]['USER_TYPE'])
{
$intValue = $arSKUPropList[$strOneCode]['XML_MAP'][$arOffer['DISPLAY_PROPERTIES'][$strOneCode]['VALUE']];
$arCell['VALUE'] = $intValue;
}
elseif ('L' == $arSKUPropList[$strOneCode]['PROPERTY_TYPE'])
{
$arCell['VALUE'] = intval($arOffer['DISPLAY_PROPERTIES'][$strOneCode]['VALUE_ENUM_ID']);
}
elseif ('E' == $arSKUPropList[$strOneCode]['PROPERTY_TYPE'])
{
$arCell['VALUE'] = intval($arOffer['DISPLAY_PROPERTIES'][$strOneCode]['VALUE']);
}
$arCell['SORT'] = $arSKUPropList[$strOneCode]['VALUES'][$arCell['VALUE']]['SORT'];
}
$arRow[$strOneCode] = $arCell;
}
$arMatrix[$keyOffer] = $arRow;
CIBlockPriceTools::clearProperties($arOffer['DISPLAY_PROPERTIES'], $arPost["PARAMS"]['OFFER_TREE_PROPS']);
$arOffer['PRICES_TYPE'] = \CIBlockPriceTools::GetCatalogPrices(false, $arPost["PARAMS"]['PRICE_CODE']);
$arOffer['PRICES_ALLOW'] = \CIBlockPriceTools::GetAllowCatalogPrices($arOffer['PRICES_TYPE']);
// CIBlockPriceTools::setRatioMinPrice($arOffer, false);
$offerPictures = CIBlockPriceTools::getDoublePicturesForItem($arOffer, $arPost["PARAMS"]['OFFER_ADD_PICT_PROP']);
$arOffer['OWNER_PICT'] = empty($offerPictures['PICT']);
$arOffer['PREVIEW_PICTURE'] = false;
$arOffer['PREVIEW_PICTURE_SECOND'] = false;
$arOffer['SECOND_PICT'] = true;
if (!$arOffer['OWNER_PICT'])
{
if (empty($offerPictures['SECOND_PICT']))
$offerPictures['SECOND_PICT'] = $offerPictures['PICT'];
$arOffer['PREVIEW_PICTURE'] = $offerPictures['PICT'];
$arOffer['PREVIEW_PICTURE_SECOND'] = $offerPictures['SECOND_PICT'];
}
if($arOffer["DISPLAY_PROPERTIES"]["ARTICLE"]["VALUE"])
{
$arOffer["ARTICLE"] = $arOffer["DISPLAY_PROPERTIES"]["ARTICLE"]["NAME"].": ".(is_array($arOffer["DISPLAY_PROPERTIES"]["ARTICLE"]["VALUE"]) ? reset($arOffer["DISPLAY_PROPERTIES"]["ARTICLE"]["VALUE"]) : $arOffer["DISPLAY_PROPERTIES"]["ARTICLE"]["VALUE"]);
unset($arOffer["DISPLAY_PROPERTIES"]["ARTICLE"]);
}
$arDouble[$arOffer['ID']] = true;
$arOffer['CATALOG_MEASURE_NAME'] = $arDefaultMeasure['SYMBOL_RUS'];
$arOffer['~CATALOG_MEASURE_NAME'] = $arDefaultMeasure['SYMBOL_RUS'];
$arOffer["CATALOG_MEASURE_RATIO"] = 1;
if (!isset($arOffer['CATALOG_MEASURE']))
$arOffer['CATALOG_MEASURE'] = 0;
$arOffer['CATALOG_MEASURE'] = (int)$arOffer['CATALOG_MEASURE'];
if (0 > $arOffer['CATALOG_MEASURE'])
$arOffer['CATALOG_MEASURE'] = 0;
if (0 < $arOffer['CATALOG_MEASURE'])
{
if (!isset($arMeasureMap[$arOffer['CATALOG_MEASURE']]))
$arMeasureMap[$arOffer['CATALOG_MEASURE']] = array();
$arMeasureMap[$arOffer['CATALOG_MEASURE']][] = $keyOffer;
}
if($arPost["PARAMS"]["SHOW_DISCOUNT_TIME"] == "Y" && $arPost["PARAMS"]["SHOW_COUNTER_LIST"] != "N")
{
$active_to = '';
$arDiscounts = CCatalogDiscount::GetDiscountByProduct($arOffer['ID'], $arUserGroups, "N", array(), SITE_ID );
if($arDiscounts)
{
foreach($arDiscounts as $arDiscountOffer)
{
if($arDiscountOffer['ACTIVE_TO'])
{
$active_to = $arDiscountOffer['ACTIVE_TO'];
break;
}
}
}
$arOffer['DISCOUNT_ACTIVE'] = $active_to;
}
$arResult["ITEMS"][$keyOffer] = $arOffer;
}
unset($arElements);
/*get measure ratio*/
$rsRatios = CCatalogMeasureRatio::getList(
array(),
array('@PRODUCT_ID' => array_keys($arResult["ITEMS"])),
false,
false,
array('PRODUCT_ID', 'RATIO')
);
while ($arRatio = $rsRatios->Fetch())
{
$arRatio['PRODUCT_ID'] = (int)$arRatio['PRODUCT_ID'];
if (isset($arResult["ITEMS"][$arRatio['PRODUCT_ID']]))
{
$intRatio = (int)$arRatio['RATIO'];
$dblRatio = (float)$arRatio['RATIO'];
$mxRatio = ($dblRatio > $intRatio ? $dblRatio : $intRatio);
if (CATALOG_VALUE_EPSILON > abs($mxRatio))
$mxRatio = 1;
elseif (0 > $mxRatio)
$mxRatio = 1;
$arResult["ITEMS"][$arRatio['PRODUCT_ID']]['CATALOG_MEASURE_RATIO'] = $mxRatio;
$arResult["ITEMS"][$arRatio['PRODUCT_ID']]['STEP_QUANTITY'] = $mxRatio;
}
}
/**/
/*get item prices*/
foreach($arResult["ITEMS"] as $key => $arOffer)
{
$arResult["ITEMS"][$key]['CATALOG_QUANTITY'] = (
0 < $arOffer['CATALOG_QUANTITY'] && is_float($arOffer['CATALOG_MEASURE_RATIO'])
? (float)$arOffer['CATALOG_QUANTITY']
: (int)$arOffer['CATALOG_QUANTITY']
);
$arOffer["PRICES"] = CIBlockPriceTools::GetItemPrices($arOffer["IBLOCK_ID"], $arOffer["PRICES_TYPE"], $arOffer, $arPost["PARAMS"]["PRICE_VAT_INCLUDE"], $arCurrencyParams, $USER_ID, $arPost["SITE_ID"]);
$arResult["ITEMS"][$key]["PRICES"] = $arOffer["PRICES"];
if($arOffer['PRICES'])
{
$arPriceTypeID = array();
foreach($arOffer['PRICES'] as $priceKey => $arOfferPrice)
{
if($arOffer['CATALOG_GROUP_NAME_'.$arOfferPrice['PRICE_ID']])
{
$arPriceTypeID[] = $arOfferPrice['PRICE_ID'];
$arResult["ITEMS"][$key]['PRICES'][$priceKey]['GROUP_NAME'] = $arOffer['CATALOG_GROUP_NAME_'.$arOfferPrice['PRICE_ID']];
}
}
$arResult["ITEMS"][$key]['PRICE_MATRIX'] = '';
if($arPost["PARAMS"]["USE_PRICE_COUNT"] == "Y")
{
if(function_exists('CatalogGetPriceTableEx'))
{
$arResult["ITEMS"][$key]["PRICE_MATRIX"] = CatalogGetPriceTableEx($arOffer["ID"], 0, $arPriceTypeID, 'Y', $arConvertParams);
if(count($arResult["ITEMS"][$key]['PRICE_MATRIX']['ROWS']) <= 1)
{
$arResult["ITEMS"][$key]['PRICE_MATRIX'] = '';
}
else
{
$arOffer = array_merge($arResult["ITEMS"][$key], CNext::formatPriceMatrix($arResult["ITEMS"][$key]));
$arResult["ITEMS"][$key] = $arOffer;
}
}
}
}
$arResult["ITEMS"][$key]["CAN_BUY"] = CIBlockPriceTools::CanBuy($arOffer["IBLOCK_ID"], $arOffer["PRICES_TYPE"], $arOffer);
}
/**/
if (isset($arOffer))
unset($arOffer);
/*get measure*/
if(!empty($arMeasureMap))
{
$rsMeasures = CCatalogMeasure::getList(
array(),
array('@ID' => array_keys($arMeasureMap)),
false,
false,
array('ID', 'SYMBOL_RUS')
);
while ($arMeasure = $rsMeasures->GetNext())
{
$arMeasure['ID'] = (int)$arMeasure['ID'];
if (isset($arMeasureMap[$arMeasure['ID']]) && !empty($arMeasureMap[$arMeasure['ID']]))
{
foreach ($arMeasureMap[$arMeasure['ID']] as $intOneKey)
{
$arResult[$intOneKey]['CATALOG_MEASURE_NAME'] = $arMeasure['SYMBOL_RUS'];
$arResult[$intOneKey]['~CATALOG_MEASURE_NAME'] = $arMeasure['~SYMBOL_RUS'];
}
unset($intOneKey);
}
}
}
/**/
/*format tree props*/
$arPropSKU = array();
foreach ($arSKUPropIDs as $propkey => $strOneCode)
{
$boolExist = $arMatrixFields[$strOneCode];
foreach ($arMatrix as $keyOffer => $arRow)
{
if ($boolExist)
{
if (!isset($arResult["ITEMS"][$keyOffer]['TREE']))
$arResult["ITEMS"][$keyOffer]['TREE'] = array();
$arResult["ITEMS"][$keyOffer]['TREE']['PROP_'.$arSKUPropList[$strOneCode]['ID']] = $arMatrix[$keyOffer][$strOneCode]['VALUE'];
$arResult["ITEMS"][$keyOffer]['SKU_SORT_'.$strOneCode] = $arMatrix[$keyOffer][$strOneCode]['SORT'];
$arUsedFields[$strOneCode] = true;
$arSortFields['SKU_SORT_'.$strOneCode] = SORT_NUMERIC;
$arPropSKU[$strOneCode][$arMatrix[$keyOffer][$strOneCode]["VALUE"]] = $arSKUPropList[$strOneCode]["VALUES"][$arMatrix[$keyOffer][$strOneCode]["VALUE"]];
}
else
{
unset($arMatrix[$keyOffer][$strOneCode]);
}
}
}
\Bitrix\Main\Type\Collection::sortByColumn($arResult["ITEMS"], $arSortFields);
/**/
/* save cache */
$arItems = array();
foreach($arResult["ITEMS"] as $key => $arItem)
{
$arItems["ITEMS"][$key] = array(
"ID" => $arItem["ID"],
"NAME" => $arItem["NAME"],
"PICTURE" => ($arItem["PREVIEW_PICTURE"] ? $arItem["PREVIEW_PICTURE"]["SRC"] : ($arItem["DETAIL_PICTURE"] ? $arItem["DETAIL_PICTURE"]["SRC"] : ($arPost["PICTURE"] ? $arPost["PICTURE"] : ''))),
"TREE" => $arItem["TREE"],
"CAN_BUY" => $arItem["CAN_BUY"],
"MEASURE" => $arItem["CATALOG_MEASURE_NAME"],
"CATALOG_MEASURE_RATIO" => $arItem["CATALOG_MEASURE_RATIO"],
"CATALOG_QUANTITY_TRACE" => $arItem["CATALOG_QUANTITY_TRACE"],
"CATALOG_CAN_BUY_ZERO" => $arItem["CATALOG_CAN_BUY_ZERO"],
"DISCOUNT_ACTIVE" => $arItem["DISCOUNT_ACTIVE"],
"ARTICLE" => $arItem["ARTICLE"],
"PRICES" => $arItem["PRICES"],
"PRICE_MATRIX" => $arItem["PRICE_MATRIX"],
"URL" => $arItem["DETAIL_PAGE_URL"],
"TOTAL_COUNT" => CNext::GetTotalCount($arItem, $arPost["PARAMS"])
);
}
if(\Bitrix\Main\Config\Option::get("main", "component_cache_on", "Y") != "N")
{
$obCache->StartDataCache($cacheTime, $cacheID, $cachePath);
if(strlen($cacheTag)){
global $CACHE_MANAGER;
$CACHE_MANAGER->StartTagCache($cachePath);
$CACHE_MANAGER->RegisterTag($cacheTag);
$CACHE_MANAGER->EndTagCache();
}
$obCache->EndDataCache(array("arItems" => $arItems));
}
/**/
}
/*format items*/
if($arItems)
{
foreach($arItems["ITEMS"] as $key => $arItem)
{
$arItems["ITEMS"][$key]["MIN_PRICE"] = false;
if(!empty($arItem["PRICES"]))
{
foreach ($arItem['PRICES'] as &$arOnePrice)
{
if ($arOnePrice['MIN_PRICE'] == 'Y')
{
$arItems["ITEMS"][$key]["MIN_PRICE"] = $arOnePrice;
$arItem["MIN_PRICE"] = $arOnePrice;
break;
}
}
unset($arOnePrice);
}
$arAddToBasketData = CNext::GetAddToBasketArray($arItem, $arItem["TOTAL_COUNT"], $arPost["PARAMS"]["DEFAULT_COUNT"], $arPost["PARAMS"]["BASKET_URL"], false, array(), 'small read_more1', $arPost["PARAMS"]);
$arAddToBasketData["HTML"] = str_replace('data-item', 'data-props="'.implode(';', $arPost["PARAMS"]['OFFERS_CART_PROPERTIES']).'" data-item', $arAddToBasketData["HTML"]);
$arItems["ITEMS"][$key]["MAX_QUANTITY"] = $arItem["TOTAL_COUNT"];
$arItems["ITEMS"][$key]["STEP_QUANTITY"] = $arItem["CATALOG_MEASURE_RATIO"];
$arItems["ITEMS"][$key]["QUANTITY_FLOAT"] = is_double($arItem["CATALOG_MEASURE_RATIO"]);
$arItems["ITEMS"][$key]["AVAILIABLE"] = CNext::GetQuantityArray($arItem["TOTAL_COUNT"]);
$arItems["ITEMS"][$key]["CONFIG"] = $arAddToBasketData;
$arItems["ITEMS"][$key]["HTML"] = $arAddToBasketData["HTML"];
$arItems["ITEMS"][$key]["SHOW_ONE_CLICK_BUY"] = "N";
$arItems["ITEMS"][$key]["CAN_BUY"] = ($arPost["PARAMS"]['USE_REGION'] == "Y" ? $arAddToBasketData["CAN_BUY"] : $arItem["CAN_BUY"]);
$arItem['ITEM_PRICES'] = array();
if($arItem["PRICE_MATRIX"])
{
$arItems["ITEMS"][$key]["PRICE_MATRIX_HTML"] = CNext::showPriceMatrix($arItem, $arPost["PARAMS"], $arItem['MEASURE']);
foreach($arItem['PRICE_MATRIX']['ROWS'] as $range => $arInterval)
{
$minimalPrice = null;
foreach($arItem['PRICE_MATRIX']['MATRIX'] as $arPrice)
{
if($arPrice[$range])
{
if($minimalPrice === null || $minimalPrice['DISCOUNT_PRICE'] > $arPrice[$range]['DISCOUNT_PRICE'])
{
if($arPrice[$range]['PRICE'] > $arPrice[$range]['DISCOUNT_PRICE'])
{
$arPrice[$range]['PERCENT'] = round((($arPrice[$range]['PRICE']-$arPrice[$range]['DISCOUNT_PRICE'])/$arPrice[$range]['PRICE'])*100);
$arPrice[$range]['DIFF'] = ($arPrice[$range]['PRICE']-$arPrice[$range]['DISCOUNT_PRICE']);
$arPrice[$range]['PRINT_DIFF'] = CCurrencyLang::CurrencyFormat($arPrice[$range]['PRICE']-$arPrice[$range]['DISCOUNT_PRICE'], $arPrice[$range]['CURRENCY'], true);
}
$minimalPrice = $arPrice[$range];
}
}
}
$arItem['ITEM_PRICES'][$range] = $minimalPrice;
}
}
$arItems["ITEMS"][$key]["ITEM_PRICES"] = $arItem['ITEM_PRICES'];
$arItems["ITEMS"][$key]["SHOW_OLD_PRICE"] = ($arPost["PARAMS"]['SHOW_OLD_PRICE'] == 'Y');
$arItems["ITEMS"][$key]["PRODUCT_QUANTITY_VARIABLE"] = $arPost["PARAMS"]['PRODUCT_QUANTITY_VARIABLE'];
$arItems["ITEMS"][$key]["SHOW_DISCOUNT_PERCENT"] = ($arPost["PARAMS"]['SHOW_DISCOUNT_PERCENT'] == 'Y');
$arItems["ITEMS"][$key]["SHOW_SKU_PROPS"] = $arPost["PARAMS"]['SHOW_SKU_PROPS'];
$arItems["ITEMS"][$key]["SHOW_DISCOUNT_TIME_EACH_SKU"] = $arPost["PARAMS"]['SHOW_DISCOUNT_TIME_EACH_SKU'];
$arItems["ITEMS"][$key]["SHOW_MEASURE"] = ($arPost["PARAMS"]['SHOW_MEASURE'] == "Y" ? "Y" : "N");
$arItems["ITEMS"][$key]["USE_PRICE_COUNT"] = $arPost["PARAMS"]['USE_PRICE_COUNT'];
$arItems["ITEMS"][$key]["SHOW_DISCOUNT_PERCENT_NUMBER"] = ($arPost["PARAMS"]['SHOW_DISCOUNT_PERCENT_NUMBER'] == 'Y');
$arItems["ITEMS"][$key]["SHOW_ARTICLE_SKU"] = $arPost["PARAMS"]['SHOW_ARTICLE_SKU'];
$arItems["ITEMS"][$key]["ARTICLE_SKU"] = ($arPost["PARAMS"]['SHOW_ARTICLE_SKU'] == 'Y' ? (isset($arPost['ARTICLE_VALUE']) && $arPost['ARTICLE_VALUE'] ? $arPost['ARTICLE_NAME'].': '.$arPost['ARTICLE_VALUE'] : '') : '');
}
unset($arItem);
}
/**/
?>
<script>
/* functions */
GetRowValues = function(arFilter, index)
{
var i = 0,
j,
arValues = [],
boolSearch = false,
boolOneSearch = true;
if (0 === arFilter.length)
{
for (i = 0; i < obOffers.length; i++)
{
if (!BX.util.in_array(obOffers[i].TREE[index], arValues))
arValues[arValues.length] = obOffers[i].TREE[index];
}
boolSearch = true;
}
else
{
for (i = 0; i < obOffers.length; i++)
{
boolOneSearch = true;
for (j in arFilter)
{
if (arFilter[j])
{
if (arFilter[j].toString() !== obOffers[i].TREE[j])
{
boolOneSearch = false;
break;
}
}
}
if (boolOneSearch)
{
if (!BX.util.in_array(obOffers[i].TREE[index], arValues))
arValues[arValues.length] = obOffers[i].TREE[index];
boolSearch = true;
}
}
}
return (boolSearch ? arValues : false);
};
GetCanBuy = function(arFilter)
{
var i = 0,
j,
boolSearch = false,
boolOneSearch = true;
for (i = 0; i < obOffers.length; i++)
{
boolOneSearch = true;
for (j in arFilter)
{
if (arFilter[j] !== obOffers[i].TREE[j])
{
boolOneSearch = false;
break;
}
}
if (boolOneSearch)
{
if (obOffers[i].CAN_BUY)
{
boolSearch = true;
break;
}
}
}
return boolSearch;
};
checkPriceRange = function(quantity, obj)
{
if (typeof quantity === 'undefined'|| !obj.PRICE_MATRIX)
return;
var range, found = false, rangeSelected = '';
for(var i in obj.PRICE_MATRIX.ROWS)
{
if(obj.PRICE_MATRIX.ROWS.hasOwnProperty(i))
{
range = obj.PRICE_MATRIX.ROWS[i];
if(
parseInt(quantity) >= parseInt(range.QUANTITY_FROM)
&& (
range.QUANTITY_TO == '0'
|| parseInt(quantity) <= parseInt(range.QUANTITY_TO)
)
)
{
found = true;
return i;
break;
}
}
}
if(!found && (range = getMinPriceRange(obj)))
{
rangeSelected = range;
return rangeSelected;
}
for(var k in obj.ITEM_PRICES)
{
if(obj.ITEM_PRICES.hasOwnProperty(k))
{
if(k == rangeSelected)
{
return k;
break;
}
}
}
};
getMinPriceRange = function(obj)
{
var range, found = '';
for(var i in obj.PRICE_MATRIX.ROWS)
{
if(obj.PRICE_MATRIX.ROWS.hasOwnProperty(i))
{
if(
!range
|| parseInt(obj.PRICE_MATRIX.ROWS[i].QUANTITY_FROM) < parseInt(range.QUANTITY_FROM)
)
{
range = obj.PRICE_MATRIX.ROWS[i];
found = i;
}
}
}
return i;
}
/*set blocks*/
setActualDataBlock = function(th, obj)
{
/*wish|like*/
setLikeBlock(th, '.like_icons .wish_item_button', obj, 'DELAY');
setLikeBlock(th, '.like_icons .compare_item_button',obj, 'COMPARE');
/**/
/*buy*/
setBuyBlock(th, obj);
/**/
}
/**/
/*set compare/wish*/
setLikeBlock = function(th, className, obj, type)
{
var block=th;
if(type=="DELAY")
{
if(obj.CAN_BUY)
block.find(className).show();
else
block.find(className).hide();
}
block.find(className).attr('data-item', obj.ID);
block.find(className).find('span').attr('data-item', obj.ID);
if(arBasketAspro[type])
{
block.find(className).find('.to').removeClass('added').css('display','block');
block.find(className).find('.in').hide();
if(arBasketAspro[type][obj.ID]!==undefined)
{
block.find(className).find('.to').hide();
block.find(className).find('.in').addClass('added').css('display','block');
}
}
}
/**/
/*set buy*/
setBuyBlock = function(th, obj, index)
{
var buyBlock=th.find('.offer_buy_block'),
input_value = obj.CONFIG.MIN_QUANTITY_BUY;
if(buyBlock.find('.counter_wrapp .counter_block').length)
buyBlock.find('.counter_wrapp .counter_block').attr('data-item', obj.ID);
if(typeof window["obSkuQuantys"][obj.ID] != "undefined")
input_value = window["obSkuQuantys"][obj.ID];
if((obj.CONFIG.OPTIONS.USE_PRODUCT_QUANTITY_LIST && obj.CONFIG.ACTION == "ADD") && obj.CAN_BUY)
{
var max=(obj.CONFIG.MAX_QUANTITY_BUY>0 ? "data-max='"+obj.CONFIG.MAX_QUANTITY_BUY+"'" : ""),
counterHtml='<span class="minus">-</span>'+
'<input type="text" class="text" name="'+obj.PRODUCT_QUANTITY_VARIABLE+'" value="'+input_value+'" />'+
'<span class="plus" '+max+'>+</span>';
if(arBasketAspro["BASKET"] && arBasketAspro["BASKET"][obj.ID]!==undefined)
{
if(buyBlock.find('.counter_wrapp .counter_block').length)
{
buyBlock.find('.counter_wrapp .counter_block').hide();
}
else
{
buyBlock.find('.counter_wrapp').prepend('<div class="counter_block" data-item="'+obj.ID+'"></div>');
buyBlock.find('.counter_wrapp .counter_block').html(counterHtml).hide();
}
}
else
{
if(buyBlock.find('.counter_wrapp .counter_block').length)
{
buyBlock.find('.counter_wrapp .counter_block').html(counterHtml).show();
}
else
{
buyBlock.find('.counter_wrapp').prepend('<div class="counter_block" data-item="'+obj.ID+'"></div>');
buyBlock.find('.counter_wrapp .counter_block').html(counterHtml);
}
}
}
else
{
if(buyBlock.find('.counter_wrapp .counter_block').length)
buyBlock.find('.counter_wrapp .counter_block').hide();
}
var className=((obj.CONFIG.ACTION == "ORDER") || !obj.CAN_BUY || !obj.CONFIG.OPTIONS.USE_PRODUCT_QUANTITY_LIST || (obj.CONFIG.ACTION == "SUBSCRIBE" && obj.CATALOG_SUBSCRIBE == "Y") ? "wide" : "" ),
buyBlockBtn=$('<div class="button_block"></div>');
if(buyBlock.find('.counter_wrapp').find('.button_block').length)
{
if(arBasketAspro["BASKET"] && arBasketAspro["BASKET"][obj.ID]!==undefined)
{
buyBlock.find('.counter_wrapp').find('.button_block').addClass('wide').html(obj.HTML);
markProductAddBasket(obj.ID);
}
else
{
if(className)
{
buyBlock.find('.counter_wrapp').find('.button_block').addClass('wide').html(obj.HTML);
if(arBasketAspro["SUBSCRIBE"] && arBasketAspro["SUBSCRIBE"][obj.ID]!==undefined)
markProductSubscribe(obj.ID);
}
else
{
buyBlock.find('.counter_wrapp').find('.button_block').removeClass('wide').html(obj.HTML);
}
}
}
else
{
buyBlock.find('.counter_wrapp').append('<div class="button_block '+className+'">'+obj.HTML+'</div>');
if(arBasketAspro["BASKET"] && arBasketAspro["BASKET"][obj.ID]!==undefined)
markProductAddBasket(obj.ID);
if(arBasketAspro["SUBSCRIBE"] && arBasketAspro["SUBSCRIBE"][obj.ID]!==undefined)
markProductSubscribe(obj.ID);
}
if(obj.CONFIG.ACTION !== "NOTHING")
{
if(obj.CONFIG.ACTION == "ADD" && obj.CAN_BUY && obj.SHOW_ONE_CLICK_BUY!="N")
{
var ocb='<span class="transparent big_btn type_block button one_click" data-offers="Y" data-item="'+obj.ID+'" data-iblockID="'+obj.IBLOCK_ID+'" data-quantity="'+obj.CONFIG.MIN_QUANTITY_BUY+'" data-props="'+obj.OFFER_PROPS+'" onclick="oneClickBuy('+obj.ID+', '+obj.IBLOCK_ID+', this)">'+
'<span>'+obj.ONE_CLICK_BUY+'</span>'+
'</span>';
if(buyBlock.find('.wrapp_one_click').length)
buyBlock.find('.wrapp_one_click').html(ocb);
else
buyBlock.append('<div class="wrapp_one_click">'+ocb+'</div>');
}
else
{
if(buyBlock.find('.wrapp_one_click').length)
buyBlock.find('.wrapp_one_click').remove();
}
}
else
{
if(buyBlock.find('.wrapp_one_click').length)
buyBlock.find('.wrapp_one_click').remove();
}
buyBlock.fadeIn();
buyBlock.find('.counter_wrapp .counter_block input').data('product', 'obOffers');
setPriceAction(obj, 'Y', '');
setTimeout(function(){
$('.catalog_block .catalog_item_wrapp .catalog_item .item-title').sliceHeight({resize: false, mobile: true});
$('.catalog_block .catalog_item_wrapp .catalog_item .cost').sliceHeight({resize: false, mobile: true});
$('.catalog_block .catalog_item_wrapp .item_info').sliceHeight({resize: false, mobile: true});
$('.catalog_block .catalog_item_wrapp').sliceHeight({classNull: '.footer_button', resize: false, mobile: true});
}, 100);
}
/**/
setPriceAction = function(obj, sku, change)
{
if(obj == "" || typeof obj === "undefined")
obj = obOffers[wrapper.find('.counter_wrapp').data('index')];
var measure = obj.MEASURE && obj.SHOW_MEASURE=="Y" ? obj.MEASURE : '';
var check_quantity = '',
currentPriceSelected = '',
is_sku = (typeof sku !== 'undefined' && sku == 'Y');
window["obSkuQuantys"][obj.ID] = obj.CONFIG.MIN_QUANTITY_BUY;
if(wrapper.find('input[name=quantity]').length)
window["obSkuQuantys"][obj.ID] = wrapper.find('input[name=quantity]').val();
if(obj.USE_PRICE_COUNT && obj.PRICE_MATRIX)
{
currentPriceSelected = checkPriceRange(window["obSkuQuantys"][obj.ID], obj);
setPriceMatrix(obj.PRICE_MATRIX_HTML, obj, currentPriceSelected);
}
else
{
if('PRICES' in obj && obj.PRICES)
setPrice(obj.PRICES, measure, obj);
}
if(arNextOptions['THEME']['SHOW_TOTAL_SUMM'] == 'Y')
{
if(obj.check_quantity)
check_quantity = 'Y';
else
{
var check_quantity = ((typeof change !== 'undefined' && change == 'Y') ? change : '');
if(check_quantity)
obj.check_quantity = true;
}
// if(arNextOptions["THEME"]["SHOW_TOTAL_SUMM_TYPE"] == "ALWAYS")
check_quantity = is_sku = '';
if(typeof obj.ITEM_PRICES[currentPriceSelected] !== 'undefined')
{
setPriceItem(wrapper, window["obSkuQuantys"][obj.ID], obj.ITEM_PRICES[currentPriceSelected].DISCOUNT_PRICE, check_quantity, is_sku);
}
else
{
setPriceItem(wrapper, window["obSkuQuantys"][obj.ID], obj.MIN_PRICE.DISCOUNT_VALUE, check_quantity, is_sku);
}
}
}
setPriceMatrix = function(sPriceMatrix, obj, currentPriceSelected)
{
var prices = '';
if (wrapper.find('.cost > .price:not(.discount)').length)
{
var measure = obj.MEASURE && obj.SHOW_MEASURE=="Y" ? obj.MEASURE : '',
strPrice = '';
strPrice = getCurrentPrice(obj.ITEM_PRICES[currentPriceSelected].DISCOUNT_PRICE, obj.ITEM_PRICES[currentPriceSelected].CURRENCY, obj.ITEM_PRICES[currentPriceSelected].PRINT_DISCOUNT_PRICE);
if(measure)
strPrice += '<span class="price_measure">/'+measure+'</span>';
wrapper.find('.not_matrix').hide();
wrapper.find('.with_matrix .price_value_block').html(strPrice);
if(obj.SHOW_OLD_PRICE)
{
if(parseFloat(obj.ITEM_PRICES[currentPriceSelected].PRICE) > parseFloat(obj.ITEM_PRICES[currentPriceSelected].DISCOUNT_PRICE))
{
wrapper.find('.with_matrix .discount').html(getCurrentPrice(obj.ITEM_PRICES[currentPriceSelected].PRICE, obj.ITEM_PRICES[currentPriceSelected].CURRENCY, obj.ITEM_PRICES[currentPriceSelected].PRINT_PRICE));
wrapper.find('.with_matrix .discount').css('display', 'inline-block');
}
else
{
wrapper.find('.with_matrix .discount').html('');
wrapper.find('.with_matrix .discount').css('display', 'none');
}
}
else
{
wrapper.find('.with_matrix .discount').html('');
wrapper.find('.with_matrix .discount').css('display', 'none');
}
if(obj.ITEM_PRICES[currentPriceSelected].PERCENT > 0)
{
if(obj.SHOW_DISCOUNT_PERCENT_NUMBER)
{
if(obj.ITEM_PRICES[currentPriceSelected].PERCENT > 0 && obj.ITEM_PRICES[currentPriceSelected].PERCENT < 100)
{
if(!wrapper.find('.with_matrix .sale_block .sale_wrapper .value').length)
$('<div class="value"></div>').insertBefore(wrapper.find('.with_matrix .sale_block .sale_wrapper .text'));
wrapper.find('.with_matrix .sale_block .sale_wrapper .value').html('-<span>'+obj.ITEM_PRICES[currentPriceSelected].PERCENT+'</span>%');
}
else
{
if(wrapper.find('.with_matrix .sale_block .sale_wrapper .value').length)
wrapper.find('.with_matrix .sale_block .sale_wrapper .value').remove();
}
}
wrapper.find('.with_matrix .sale_block .text .values_wrapper').html(getCurrentPrice(obj.ITEM_PRICES[currentPriceSelected].DIFF, obj.ITEM_PRICES[currentPriceSelected].CURRENCY, obj.ITEM_PRICES[currentPriceSelected].PRINT_DIFF));
wrapper.find('.with_matrix .sale_block').show();
}
else
{
wrapper.find('.with_matrix .sale_block').hide();
}
wrapper.find('.sale_block.normal').hide();
wrapper.find('.with_matrix').show();
if(obj.SHOW_DISCOUNT_PERCENT)
{
wrapper.find('.cost > .price:not(.discount)').closest('.cost').find('.sale_block:not(.matrix)').hide();
wrapper.find('.cost > .price:not(.discount)').closest('.cost').find('.sale_block:not(.matrix) .text span').html('');
}
/*if(obj.SHOW_OLD_PRICE)
{
wrapper.find('.cost > .price:not(.discount)').closest('.cost').find('.price.discount').hide();
}*/
BX.adjust(wrapper.find('.cost .js_price_wrapper')[0], {html: sPriceMatrix});
var eventdata = {product: wrapper, measure: measure, config: this.config, offer: obj, obPrice: obj.ITEM_PRICES[currentPriceSelected]};
BX.onCustomEvent('onAsproSkuSetPriceMatrix', [eventdata])
}
}
setPrice = function(obPrices, measure, obj)
{
var strPrice,
obData;
if (wrapper.find('.cost.prices').length){
var measure = obj.MEASURE && obj.SHOW_MEASURE=="Y" ? obj.MEASURE : '',
product = wrapper,
obPrices = obj.PRICES;
if(typeof(obPrices) == 'object')
{
var strPrice = '',
count = Object.keys(obPrices).length,
arStikePrices = [];
if(arNextOptions['THEME']['DISCOUNT_PRICE'])
{
arStikePrices = arNextOptions['THEME']['DISCOUNT_PRICE'].split(',');
}
strPrice = '<div class="offers_price_wrapper">';
wrapper.find('.with_matrix').hide();
wrapper.find('.not_matrix').show();
for(var j in obPrices)
{
if(obPrices[j] && obPrices[j].VALUE > 0)
{
if('GROUP_NAME' in obPrices[j])
{
if(count > 1)
{
strPrice += '<div class="offers_price_title">';
strPrice += obPrices[j].GROUP_NAME;
strPrice += '</div>';
}
}
strPrice += '<div class="offers_price'+(arStikePrices ? (BX.util.in_array(obPrices[j].PRICE_ID, arStikePrices) ? ' strike_block' : '') : '')+'">';
strPrice += '<span class="values_wrapper">'+getCurrentPrice(obPrices[j].DISCOUNT_VALUE, obPrices[j].CURRENCY, obPrices[j].PRINT_DISCOUNT_VALUE)+'</span>';
if(measure)
strPrice += '<span class="price_measure">/'+measure+'</span>';
strPrice += '</div>';
if (obPrices[j].DISCOUNT_VALUE !== obPrices[j].VALUE)
{
if(obj.SHOW_OLD_PRICE)
{
strPrice += '<div class="offers_price_old">';
strPrice += '<span class="values_wrapper">'+getCurrentPrice(obPrices[j].VALUE, obPrices[j].CURRENCY, obPrices[j].PRINT_VALUE)+'</span>';
strPrice += '</div>';
}
if(obj.SHOW_DISCOUNT_PERCENT)
{
if(!obj.SHOW_DISCOUNT_PERCENT_NUMBER || (obj.SHOW_DISCOUNT_PERCENT_NUMBER && (obPrices[j].DISCOUNT_DIFF_PERCENT <= 0 && obPrices[j].DISCOUNT_DIFF_PERCENT >= 100)))
{
strPrice += '<div class="sale_block matrix"><div class="sale_wrapper">';
strPrice += '<span class="title">'+BX.message('ITEM_ECONOMY')+'</span>';
strPrice += '<div class="text">';
strPrice += '<span class="values_wrapper">'+getCurrentPrice(obPrices[j].DISCOUNT_DIFF, obPrices[j].CURRENCY, obPrices[j].PRINT_DISCOUNT_DIFF)+'</span>';
strPrice += '</div>';
strPrice += '<div class="clearfix"></div></div></div>';
}
else
{
strPrice += '<div class="sale_block matrix"><div class="sale_wrapper">';
strPrice += '<div class="value">-<span>'+obPrices[j].DISCOUNT_DIFF_PERCENT+'</span>%</div>';
strPrice += '<div class="text">';
strPrice += '<span class="title">'+BX.message('ITEM_ECONOMY')+'</span> ';
strPrice += '<span class="values_wrapper">'+getCurrentPrice(obPrices[j].DISCOUNT_DIFF, obPrices[j].CURRENCY, obPrices[j].PRINT_DISCOUNT_DIFF)+'</span>';
strPrice += '</div>';
strPrice += '<div class="clearfix"></div></div></div>';
}
}
}
}
else
{
$('.prices_block .cost.prices').hide();
}
}
if(obj.SHOW_DISCOUNT_PERCENT)
{
wrapper.find('.cost').find('.sale_block:not(.matrix)').hide();
wrapper.find('.cost').find('.sale_block:not(.matrix) .text span').html('');
}
if(obj.SHOW_OLD_PRICE)
{
wrapper.find('.cost').find('.price.discount').hide();
}
strPrice += '</div>';
wrapper.find('.cost .js_price_wrapper').html(strPrice);
var eventdata = {product: product, measure: measure, config: this.config, offer: obj, obPrices: obPrices};
BX.onCustomEvent('onAsproSkuSetPrice', [eventdata])
}
}
};
/*set store quantity*/
setQuantityStore = function(quantity, text)
{
if(parseFloat(quantity)>0)
wrapper.find('.item-stock .icon').removeClass('order').addClass('stock');
else
wrapper.find('.item-stock .icon').removeClass('stock').addClass('order');
wrapper.find('.item-stock .icon + span').html(text);
}
ChangeInfo = function()
{
var i = 0,
j,
index = -1,
compareParams,
selectedValues = {},
boolOneSearch = true;
if($('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu').data('selected'))
selectedValues = $('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu').data('selected');
for (i = 0; i < obOffers.length; i++)
{
boolOneSearch = true;
for (j in selectedValues)
{
if (selectedValues[j])
{
if (selectedValues[j].toString() !== obOffers[i].TREE[j])
{
boolOneSearch = false;
break;
}
}
}
if (boolOneSearch)
{
index = i;
break;
}
}
if(-1 < index)
{
// console.log(obOffers[index]);
wrapper.find('.counter_wrapp').data('index', index); // set current sku
if(!!obOffers[index].PICTURE)
wrapper.find('.thumb img').attr('src', obOffers[index].PICTURE)
if(arNextOptions["THEME"]["CHANGE_TITLE_ITEM"] != "N")
wrapper.find('.item-title span').text(obOffers[index].NAME)
if(!!obOffers[index].URL)
{
var arUrl = obOffers[index].URL.split("?");
if(arUrl.length > 1)
{
var arUrl2 = wrapper.find('.item-title > a').attr('href').split("?");
if(arUrl2.length > 1)
{
wrapper.find('.item-title > a').attr('href', wrapper.find('.item-title > a').attr('href').replace(arUrl2[1], arUrl[1]));
wrapper.find('.thumb.shine').attr('href', wrapper.find('.thumb.shine').attr('href').replace(arUrl2[1], arUrl[1]));
}
}
}
if(wrapper.find('.total_summ').length)
wrapper.find('.total_summ').slideUp();
setActualDataBlock(wrapper, obOffers[index]);
wrapper.find('.counter_wrapp .to-cart').data("item", obOffers[index].ID);
setQuantityStore(obOffers[index].MAX_QUANTITY, obOffers[index].AVAILIABLE.TEXT);
if(wrapper.find('.article_block'))
{
var article_text = (obOffers[index].ARTICLE ? obOffers[index].ARTICLE : '');
if(!article_text && obOffers[index].SHOW_ARTICLE_SKU == 'Y' && obOffers[index].ARTICLE_SKU)
article_text = obOffers[index].ARTICLE_SKU;
wrapper.find('.article_block').text(article_text);
}
if(wrapper.find('.quantity_block .values').length)
wrapper.find('.quantity_block .values .item span.value').text(obOffers[index].MAX_QUANTITY).css({'opacity':'1'});
/*set discount*/
if(obOffers[index].SHOW_DISCOUNT_TIME_EACH_SKU == 'Y')
initCountdownTime(wrapper, obOffers[index].DISCOUNT_ACTIVE);
/**/
}
};
UpdateRow = function(intNumber, activeID, showID, canBuyID)
{
var i = 0,
showI = 0,
value = '',
countShow = 0,
strNewLen = '',
obData = {},
obDataCont = {},
pictMode = false,
extShowMode = false,
isCurrent = false,
selectIndex = 0,
obLeft = this.treeEnableArrow,
obRight = this.treeEnableArrow,
currentShowStart = 0,
RowItems = null;
if (-1 < intNumber && intNumber < $('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu .item_wrapper').length){
propMode = $('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu .item_wrapper:eq('+intNumber+') > div').data('display_type');
selectMode = ('SELECT' === propMode);
var tag = (selectMode ? 'option' : 'li'),
hideClass = (selectMode ? 'hidden' : 'missing');
RowItems = BX.findChildren($('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu .item_wrapper:eq('+intNumber+') .list_values_wrapper')[0], {tagName: tag}, false);
if (!!RowItems && 0 < RowItems.length){
countShow = showID.length;
obData = {
style: {},
props: {
disabled: '',
selected: '',
},
};
obDataCont = {
style: {},
};
for (i = 0; i < RowItems.length; i++){
value = RowItems[i].getAttribute('data-onevalue');
isCurrent = (value === activeID && value !=0);
if (BX.util.in_array(value, canBuyID)){
obData.props.className = (isCurrent ? 'active' : '');
}else{
obData.props.className = (isCurrent ? 'active'+' '+hideClass : hideClass);
}
if(selectMode){
obData.props.disabled = 'disabled';
obData.props.selected = (isCurrent ? 'selected' : '');
}else{
obData.style.display = 'none';
obData.props.className += ' item';
}
if (BX.util.in_array(value, showID)){
if(selectMode){
obData.props.disabled = '';
}else{
obData.style.display = '';
}
if (isCurrent){
selectIndex = showI;
}
showI++;
}
BX.adjust(RowItems[i], obData);
}
if(!showI)
obDataCont.style.display = 'none';
else
obDataCont.style.display = '';
BX.adjust($('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu .item_wrapper:eq('+intNumber+') > div')[0], obDataCont);
if(selectMode){
if($('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu .item_wrapper:eq('+intNumber+') .list_values_wrapper').parent().hasClass('ik_select'))
$('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu .item_wrapper:eq('+intNumber+') .list_values_wrapper').ikSelect('reset');
}
}
}
};
/**/
var strName = '',
arShowValues = false,
i, j,
arCanBuyValues = [],
selectedValues = JSON.parse('<?=$arSelectedProps?>'),
obOffers = <?=CUtil::PhpToJSObject($arItems["ITEMS"], false, true)?>,
allValues = [],
strPropValue = '<?=$arPost['VALUE'];?>',
depth = '<?=$arPost['DEPTH'];?>',
wrapper = $('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?>').closest('.item'),
arFilter = [],
tmpFilter = [];
if(typeof window["obSkuQuantys"] == "undefined")
window["obSkuQuantys"] = {};
for (i = 0; i < depth; i++)
{
strName = 'PROP_'+$('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu .item_wrapper:eq('+i+') > div').data('id');
arFilter[strName] = selectedValues[strName].toString();
}
strName = 'PROP_'+$('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu .item_wrapper:eq('+depth+') > div').data('id');
arShowValues = GetRowValues(arFilter, strName);
if(arShowValues && BX.util.in_array(strPropValue, arShowValues))
{
if($('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu').data('selected'))
selectedValues = $('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu').data('selected');
arFilter[strName] = strPropValue;
for (i = ++depth; i < $('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu .item_wrapper').length; i++)
{
strName = 'PROP_'+$('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu .item_wrapper:eq('+i+') > div').data('id');
arShowValues = GetRowValues(arFilter, strName);
if (!arShowValues)
break;
allValues = [];
<?if($arPost["PARAMS"]["SHOW_ABSENT"]):?>
arCanBuyValues = [];
tmpFilter = [];
// tmpFilter = BX.clone(arFilter, true);
tmpFilter = arFilter;
for (j = 0; j < arShowValues.length; j++)
{
tmpFilter[strName] = arShowValues[j];
allValues[allValues.length] = arShowValues[j];
if (GetCanBuy(tmpFilter))
{
arCanBuyValues[arCanBuyValues.length] = arShowValues[j];
}
}
<?else:?>
arCanBuyValues = arShowValues;
<?endif;?>
if (selectedValues[strName] && BX.util.in_array(selectedValues[strName], arCanBuyValues))
{
arFilter[strName] = selectedValues[strName].toString();
}
else
{
<?if($arPost["PARAMS"]["SHOW_ABSENT"]):?>
arFilter[strName] = (arCanBuyValues.length ? arCanBuyValues[0] : allValues[0]);
<?else:?>
arFilter[strName] = arCanBuyValues[0];
<?endif;?>
}
UpdateRow(i, arFilter[strName], arShowValues, arCanBuyValues);
}
$('.<?=$arPost["CLASS"]?>.js_offers__<?=$arPost["LINK_ID"]?> .bx_catalog_item_scu').data('selected', arFilter);
ChangeInfo();
}
</script>
<?endif;?>