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

use Bitrix\Main\Localization\Loc;
use intec\core\helpers\Html;
use intec\core\helpers\JavaScript;

/**
 * @var array $data
 */

$ajaxUrl = SITE_TEMPLATE_PATH . '/components/bitrix/subscribe.edit/personal/ajax.php';

?>
<div class="subscribe-edit-inputs">
    <?= Html::hiddenInput('EMAIL', $data['EMAIL']) ?>
    <?= Html::hiddenInput('FORMAT', $data['FORMAT']) ?>
    <?php if (!empty($data['RUBRICS']['ACTIVE'])) { ?>
        <?php foreach ($data['RUBRICS']['ACTIVE'] as $rubric) { ?>
            <?= Html::hiddenInput('RUB_ID[]', $rubric['ID']) ?>
        <?php } ?>
    <?php } ?>
    <div class="subscribe-confirm-header ui-h1">
        <?= Loc::getMessage('C_SUBSCRIBE_EDIT_STANDARD_TEMP_CONFIRM_HEADER') ?>
    </div>
    <div class="subscribe-confirm-info">
        <?= $visual['CONFIRM']['INFORMATION'] ?>
    </div>
    <div class="subscribe-edit-input subscribe-confirm-input">
        <div class="subscribe-edit-input-text ui-input">
            <?= Html::textInput('CONFIRM_CODE', null, [
                'class' => [
                    'subscribe-confirm-input-code',
                    'ui-input-text',
                ],
                'placeholder' => Loc::getMessage('C_SUBSCRIBE_EDIT_STANDARD_TEMP_CONFIRM_LABEL')
            ]) ?>
        </div>
        <div class="subscribe-confirm-resend">
            <?= Loc::getMessage('C_SUBSCRIBE_EDIT_STANDARD_TEMP_CONFIRM_RESEND') ?>
        </div>
    </div>
    <div class="subscribe-edit-input">
        <div class="subscribe-edit-input-button">
            <?= Html::submitButton(Loc::getMessage('C_SUBSCRIBE_EDIT_STANDARD_TEMP_SUBMIT_CONFIRM'), [
                'class' => [
                    'ui' => [
                        'btn' => [
                            '',
                            'prm',
                        ],
                    ]
                ]
            ]) ?>
        </div>
    </div>
</div>
<script>
    application.load(function (loader) {
        const templateContainer = loader.nodes[0];
        if (!templateContainer) return;

        const resendBtn = templateContainer.querySelector('[data-action="resend-code"]');
        if (!resendBtn) return;

        const form = templateContainer.closest('form') || templateContainer.parentElement.querySelector('form');

        resendBtn.addEventListener('click', function(e) {
            e.preventDefault();

            const button = this;
            const email = form ? form.querySelector('input[name="EMAIL"]') : null;

            if (!email || !email.value) {
                alert('Email не найден');
                return;
            }

            // Отключаем кнопку и добавляем состояние загрузки
            button.disabled = true;
            button.classList.add('loading');
            const originalText = button.textContent;

            // Используем BX.ajax для отправки запроса на повторную отправку кода
            if (typeof BX !== 'undefined' && BX.ajax) {
                BX.ajax({
                    url: '<?= $ajaxUrl ?>',
                    method: 'POST',
                    dataType: 'json',
                    data: {
                        sessid: BX.bitrix_sessid(),
                        email: email.value
                    },
                    onsuccess: function(result) {
                        // Показываем сообщение об успехе
                        const messageContainer = templateContainer.querySelector('.ui-note.ui-note-success') || 
                                            document.createElement('div');
                        
                        if (!messageContainer.parentElement) {
                            messageContainer.className = 'ui-note ui-note-success';
                            const bodyContainer = templateContainer.querySelector('.subscribe-edit-body');
                            if (bodyContainer) {
                                bodyContainer.insertBefore(messageContainer, bodyContainer.firstChild);
                            }
                        }

                        messageContainer.innerHTML = '<span class="ui-note-text">Код подтверждения отправлен повторно на вашу почту</span>';
                        messageContainer.style.display = 'block';

                        // Скрываем сообщение через 5 секунд
                        setTimeout(() => {
                            messageContainer.style.display = 'none';
                        }, 5000);

                        button.disabled = false;
                        button.classList.remove('loading');
                        button.textContent = originalText;
                    },
                    onfailure: function(result) {
                        alert('Ошибка при отправке кода. Пожалуйста, попробуйте позже.');
                        button.disabled = false;
                        button.classList.remove('loading');
                        button.textContent = originalText;
                    }
                });
            } else {
                alert('Функция не доступна. Пожалуйста, попробуйте позже.');
                button.disabled = false;
                button.classList.remove('loading');
                button.textContent = originalText;
            }
        });
    }, {
        'name': '[Component] bitrix:subscribe.edit (personal)',
        'options': {
            'nodes': <?= JavaScript::toObject('#'.$templateId) ?>
        }
    });
</script>