<?
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
if ($USER->IsAuthorized()) {
    LocalRedirect('/personal/');
    exit();
}

use \Bitrix\Main\Loader;
use \Bitrix\Sale\Location;

Loader::includeModule('sale');


$arResult['CITIES'] = Location\LocationTable::getList(array(
    'filter' => array(
        '=NAME.LANGUAGE_ID' => LANGUAGE_ID,
        'TYPE_CODE' => 'CITY'
    ),
    'select' => array(
        'NAME_RU' => 'NAME.NAME',
        'TYPE_CODE' => 'TYPE.CODE'
    )
))->fetchAll();


function formatPhoneNumber($phone)
{
    // Удаляем все символы, кроме цифр
    $phone = preg_replace('/\D/', '', $phone);
    // Если номер начинается с 8, заменяем 8 на 7
    if (strlen($phone) === 11 && $phone[0] === '8') {
        $phone[0] = '7';
    }
    // Если номер начинается с 7, возвращаем его
    if (strlen($phone) === 10 && $phone[0] === '7') {
        return '7' . $phone;
    }
    // Если номер начинается с 7 и имеет 11 цифр, возвращаем его
    if (strlen($phone) === 11 && $phone[0] === '7') {
        return $phone;
    }
    return null;
}


if (
    (check_bitrix_sessid()) and
    (!empty($_POST['EMAIL'])) and
    (!empty($_POST['PASSWORD']))
) {

    $phoneNumber = formatPhoneNumber($_POST['PERSONAL_MOBILE']);
    $user = new CUser;

    $arFields = array(
        'NAME' => htmlspecialchars(strip_tags($_POST['NAME']), ENT_QUOTES, 'UTF-8'),
        'LAST_NAME' => htmlspecialchars(strip_tags($_POST['LAST_NAME']), ENT_QUOTES, 'UTF-8'),
        'EMAIL' => htmlspecialchars(strip_tags($_POST['EMAIL']), ENT_QUOTES, 'UTF-8'),
        'LOGIN' => htmlspecialchars(strip_tags($_POST['EMAIL']), ENT_QUOTES, 'UTF-8'),
        'LID' => "s2",
        'ACTIVE' => "Y",
        'GROUP_ID' => array(6),
        'PERSONAL_CITY' => htmlspecialchars(strip_tags($_POST['PERSONAL_CITY']), ENT_QUOTES, 'UTF-8'),
        'PASSWORD' => htmlspecialchars(strip_tags($_POST['PASSWORD']), ENT_QUOTES, 'UTF-8'),

        'PERSONAL_MOBILE' => trim($phoneNumber),
        'PHONE_NUMBER' => trim($phoneNumber),
        'PERSONAL_PHONE' => trim($phoneNumber),
        'WORK_PHONE' => trim($phoneNumber)
    );

    $ID = $user->Add($arFields);
    if (intval($ID) > 0) {
        $USER->Authorize($ID);
        LocalRedirect('/personal/');
        exit();
    } else {
        $arResult['ERRORS'][] = $user->LAST_ERROR;
    }

    /*
    $arResult = $USER->Register(
        $_POST['EMAIL'],
        $_POST['NAME'],
        $_POST['LAST_NAME'],
        $_POST['PASSWORD'],
        $_POST['PASSWORD'],
        $_POST['EMAIL']
    );
    if ($arResult['TYPE'] === 'ERROR') {
        ShowMessage($arResult); // выводим результат в виде сообщения
        unset($_POST);
    } else {
        $user = new CUser;
        if(substr($_POST['PERSONAL_MOBILE'], 0, 1) === '8') {
            // Заменяем '8' на '7'
            $phoneNumber = '7' . substr($_POST['PERSONAL_MOBILE'], 1);
        }

        $fields = array(
            'PERSONAL_CITY' => $_POST['PERSONAL_CITY'],
            'PERSONAL_MOBILE' => $phoneNumber,
            'PHONE_NUMBER'  => $phoneNumber,
        );
        $user->Update($USER->GetID(), $fields);
        //$strError .= $user->LAST_ERROR;
        // echo $USER->GetID(); // ID нового пользователя
        $USER->Authorize($USER->GetID());
        LocalRedirect('/personal/');
    }
    */
}
$this->includeComponentTemplate();
