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

use Bitrix\Main\PhoneNumber\Format;
use Bitrix\Main\PhoneNumber\Parser;
$obParser = new CTextParser;
if($arResult['PROPERTIES']['FILIAL']['VALUE']){
    $curFilialDb=CIBlockElement::GetList([],[
            'IBLOCK_ID'=>$arResult['PROPERTIES']['FILIAL']['LINK_IBLOCK_ID'],
            'ID'=>$arResult['PROPERTIES']['FILIAL']['VALUE'],
        ],
        false,
        false,
    );
    if($curFilialObj=$curFilialDb->GetNextElement()){
        $curFilial=$curFilialObj->GetFields();
        $curFilial['PROPERTIES']=$curFilialObj->GetProperties();
        $parsedPhone = Parser::getInstance()->parse($curFilial['PROPERTIES']['PHONE']['VALUE']);
        $curFilial['PROPERTIES']['PHONE']['FORMATED_VALUE']=$parsedPhone->format(Format::E164);
        $curFilial['PROPERTIES']["LOCATION_MAP"]["FORMATED_VALUE"]=explode(',', $curFilial["PROPERTIES"]["LOCATION_MAP"]['VALUE']);
    }

    $relatedMetroDb=CIBlockElement::GetList([],[
        'IBLOCK_ID'=>$arResult['IBLOCK_ID'],
        'PROPERTY_FILIAL'=>$arResult['PROPERTIES']['FILIAL']['VALUE'],
        '!ID'=>$arResult['ID'],
    ],
        false,
        false,
    );
    $metroStations=[];
    while ($relatedMetro=$relatedMetroDb->GetNextElement()){
        $tempArr=$relatedMetro->GetFields();
        $tempArr['PROPERTIES']=$relatedMetro->GetProperties();
        $metroStations[]=$tempArr;
    }
    $arResult['METRO_STATIONS']=array_merge([$arResult],$metroStations);
    $arResult['CURRENT_FILIAL']=$curFilial;

    $el = new CIBlockElement;
    $srSp=5.5;//6км в час
    $srSpOnMin=$srSp*1000/60;//средняя скорость в минуту
    foreach($arResult['METRO_STATIONS'] as &$arItem){
        preg_match('/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/ ]{11})/', $arItem['PROPERTIES']['VIDEO_LINK']['VALUE'], $vids);
        $arItem['VIDEOID']=$vids[1];
        $arItem['PROPERTIES']['HOWTOGET_METRO']['~VALUE']['TEXT'] = $obParser->html_cut($arItem['PROPERTIES']['HOWTOGET_METRO']['~VALUE']['TEXT'], 400);
        preg_match('/\d+/', $arItem['PROPERTIES']['WOLK_TIME']['VALUE'], $walkSizeArr);
        $arItem['WALK_SIZE']=round(($walkSizeArr[0] ?: 5)*$srSpOnMin, 0);
        if(!$arItem['PREVIEW_PICTURE']){
            $arFile = CFile::MakeFileArray('https://img.youtube.com/vi/'.$arItem['VIDEOID'].'/hqdefault.jpg');
            if ($arFile['type'] != 'unknown'){
                $res = $el->Update($arItem['ID'], ['PREVIEW_PICTURE'=>$arFile]);
                $arItem['PREVIEW_PICTURE']=$arFile;
            }
        }
    }
}