<!DOCTYPE html>
<html lang="ru" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Перевод на карту</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
    <style>
        * {
            box-sizing: border-box;
        }

        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            margin: 0;
            padding: 20px;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            color: #333;
        }

        .payment-container {
            background: white;
            border-radius: 24px;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
            width: 100%;
            max-width: 500px;
            overflow: hidden;
            animation: slideUp 0.6s ease-out;
        }

        .header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            text-align: center;
        }

        .header h1 {
            margin: 0 0 10px 0;
            font-size: 28px;
            font-weight: 600;
        }

        .header .subtitle {
            font-size: 16px;
            opacity: 0.9;
        }

        .payment-amount {
            background: #f8f9ff;
            padding: 25px;
            text-align: center;
            border-bottom: 2px solid #e9ecef;
        }

        .amount-label {
            font-size: 16px;
            color: #666;
            margin-bottom: 8px;
            display: block;
        }

        .amount-value {
            font-size: 42px;
            font-weight: 700;
            color: #667eea;
            margin: 0;
        }

        .payment-form {
            padding: 30px;
        }

        .card-info {
            background: #f8f9fa;
            border-radius: 16px;
            padding: 25px;
            margin-bottom: 30px;
            border: 2px solid #e9ecef;
        }

        .card-info h3 {
            color: #333;
            margin-top: 0;
            margin-bottom: 20px;
            font-size: 20px;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .card-number {
            background: white;
            border: 2px solid #667eea;
            border-radius: 12px;
            padding: 20px;
            margin-bottom: 15px;
            text-align: center;
        }

        .card-label {
            font-size: 14px;
            color: #666;
            margin-bottom: 10px;
            display: block;
        }

        .card-value {
            font-family: 'Courier New', monospace;
            font-size: 24px;
            font-weight: 600;
            color: #333;
            letter-spacing: 2px;
            word-break: break-all;
        }

        .comment-section {
            background: linear-gradient(135deg, #00b09b 0%, #96c93d 100%);
            color: white;
            border-radius: 16px;
            padding: 25px;
            margin-bottom: 30px;
            position: relative;
            overflow: hidden;
        }

        .comment-section::before {
            content: '';
            position: absolute;
            top: -50%;
            right: -20%;
            width: 300px;
            height: 300px;
            background: rgba(255, 255, 255, 0.1);
            border-radius: 50%;
        }

        .comment-label {
            font-size: 14px;
            opacity: 0.9;
            margin-bottom: 10px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .comment-value {
            font-family: 'Courier New', monospace;
            font-size: 22px;
            font-weight: 600;
            letter-spacing: 1px;
            margin: 15px 0;
            padding: 20px;
            background: rgba(255, 255, 255, 0.1);
            border-radius: 10px;
            border: 2px dashed rgba(255, 255, 255, 0.3);
            word-break: break-all;
            text-align: center;
        }

        .copy-btn {
            background: white;
            color: #667eea;
            border: none;
            padding: 12px 20px;
            border-radius: 10px;
            cursor: pointer;
            font-size: 16px;
            font-weight: 600;
            transition: all 0.3s;
            display: inline-flex;
            align-items: center;
            gap: 10px;
            width: 100%;
            justify-content: center;
        }

        .copy-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
        }

        .copy-btn.copied {
            background: #28a745;
            color: white;
        }

        .button-group {
            display: flex;
            gap: 15px;
            margin-top: 15px;
        }

        .button-group .copy-btn {
            flex: 1;
        }

        .regenerate-btn {
            background: transparent;
            border: 2px solid white;
            color: white;
            padding: 8px 16px;
            border-radius: 8px;
            cursor: pointer;
            font-size: 14px;
            transition: all 0.3s;
            display: inline-flex;
            align-items: center;
            gap: 5px;
            margin-left: 10px;
        }

        .regenerate-btn:hover {
            background: white;
            color: #00b09b;
        }

        .confirm-btn {
            width: 100%;
            padding: 20px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            border-radius: 12px;
            font-size: 18px;
            font-weight: 600;
            cursor: pointer;
            transition: transform 0.3s, box-shadow 0.3s;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 12px;
            margin-top: 30px;
        }

        .confirm-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 25px rgba(102, 126, 234, 0.4);
        }

        .confirm-btn:active {
            transform: translateY(0);
        }

        .instructions {
            background: #fff8e1;
            border-radius: 12px;
            padding: 25px;
            margin-top: 30px;
            border-left: 4px solid #ffc107;
        }

        .instructions h4 {
            color: #333;
            margin-top: 0;
            margin-bottom: 15px;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .instructions ol {
            margin: 0;
            padding-left: 20px;
        }

        .instructions li {
            margin-bottom: 12px;
            color: #666;
            line-height: 1.5;
        }

        .instructions strong {
            color: #333;
        }

        .warning {
            color: #d35400;
            font-weight: 600;
            margin-top: 15px;
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 15px;
        }

        .system-error {
            background: #fee;
            border: 2px solid #f99;
            border-radius: 12px;
            padding: 20px;
            margin-bottom: 25px;
            text-align: center;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            animation: shake 0.5s;
        }

        .system-error i {
            font-size: 24px;
        }

        @keyframes slideUp {
            from {
                opacity: 0;
                transform: translateY(40px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes shake {
            0%, 100% { transform: translateX(0); }
            10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
            20%, 40%, 60%, 80% { transform: translateX(5px); }
        }

        @keyframes pulse {
            0% { transform: scale(1); }
            50% { transform: scale(1.05); }
            100% { transform: scale(1); }
        }

        @media (max-width: 600px) {
            body {
                padding: 10px;
            }

            .payment-container {
                border-radius: 20px;
            }

            .header {
                padding: 25px 20px;
            }

            .header h1 {
                font-size: 24px;
            }

            .amount-value {
                font-size: 36px;
            }

            .payment-form {
                padding: 20px;
            }

            .card-value {
                font-size: 20px;
                letter-spacing: 1px;
            }

            .comment-value {
                font-size: 18px;
                padding: 15px;
            }

            .button-group {
                flex-direction: column;
            }
        }
    </style>
</head>
<body>
<div class="payment-container">
    <!-- Шапка -->
    <div class="header">
        <h1><i class="fas fa-credit-card"></i> Перевод на карту</h1>
        <div class="subtitle">Используйте реквизиты ниже для перевода</div>
    </div>

    <!-- Сумма перевода -->
    <div class="payment-amount">
        <span class="amount-label">Сумма к переводу</span>
        <h2 class="amount-value" th:text="${post} + '$'">100.00$</h2>
    </div>

    <!-- Основная форма -->
    <div class="payment-form">
        <!-- Сообщение об ошибке -->
        <div th:if="${error != null}" class="system-error">
            <i class="fas fa-exclamation-triangle"></i>
            <span th:text="${error}"></span>
        </div>

        <!-- Номер карты для перевода -->
        <div class="card-info">
            <h3><i class="fas fa-wallet"></i> Номер карты для перевода:</h3>
            <div class="card-number">
                <span class="card-label">Отправьте точную сумму на эту карту:</span>
                <div class="card-value" id="cardNumber">
                    <span th:text="${adressmoney}">
                            5536 9137 2846 1937
                    </span>
                </div>
            </div>
            <button type="button" class="copy-btn" onclick="copyCardNumber()">
                <i class="fas fa-copy"></i> Скопировать номер карты
            </button>
        </div>

        <!-- Комментарий для перевода -->
        <div class="comment-section">
            <div class="comment-label">
                <i class="fas fa-key"></i> КОММЕНТАРИЙ ДЛЯ ПЕРЕВОДА
                <button type="button" class="regenerate-btn" onclick="generateComment()">
                    <i class="fas fa-redo"></i> Новый
                </button>
            </div>
            <div class="comment-value" id="commentDisplay">PAY-XXXX-XXXX</div>
            <div class="button-group">
                <button type="button" class="copy-btn" onclick="copyComment()">
                    <i class="fas fa-copy"></i> Копировать комментарий
                </button>
            </div>
        </div>

        <!-- Форма подтверждения -->
        <form id="payment-form" th:action="@{/checkpay}" method="post" onsubmit="return validateAndSubmit()">
            <input type="hidden" name="comment" id="commentInput">

            <button type="submit" class="confirm-btn" id="submit-btn">
                <i class="fas fa-check-circle"></i>
                <span>Я перевёл средства</span>
            </button>
        </form>

        <!-- Инструкция -->
        <div class="instructions">
            <h4><i class="fas fa-list-ol"></i> Инструкция по переводу:</h4>
            <ol>
                <li><strong>Скопируйте номер карты</strong> из серого блока</li>
                <li><strong>Скопируйте комментарий</strong> из зелёного блока</li>
                <li>Откройте мобильное приложение вашего банка</li>
                <li>Выберите операцию "Перевод на карту"</li>
                <li>Вставьте <strong>номер карты</strong> получателя</li>
                <li>Укажите сумму: <strong th:text="${post} + '$'">100.00$</strong></li>
                <li>В поле "Комментарий", "Назначение платежа" или "Сообщение" вставьте <strong>скопированный комментарий</strong></li>
                <li>Подтвердите перевод в приложении банка</li>
                <li>Вернитесь на эту страницу и нажмите "Я перевёл средства"</li>
            </ol>
            <div class="warning">
                <i class="fas fa-exclamation-circle"></i>
                <strong>Важно:</strong> Без указания комментария платеж не будет идентифицирован!
            </div>
        </div>
    </div>
</div>

<script>
    // Номер карты для перевода (фиксированный)
    const CARD_NUMBER = "5536 9137 2846 1937";

    // DOM элементы
    const cardNumberDisplay = document.getElementById('cardNumber');
    const commentDisplay = document.getElementById('commentDisplay');
    const commentInput = document.getElementById('commentInput');
    const submitBtn = document.getElementById('submit-btn');

    // Генерация случайного комментария
    function generateComment() {
        const chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
        let comment = 'PAY-';

        for (let i = 0; i < 8; i++) {
            if (i === 4) comment += '-';
            comment += chars.charAt(Math.floor(Math.random() * chars.length));
        }

        commentDisplay.textContent = comment;
        commentInput.value = comment;

        // Анимация обновления
        commentDisplay.style.animation = 'pulse 0.5s';
        setTimeout(() => {
            commentDisplay.style.animation = '';
        }, 500);

        showNotification('Новый комментарий сгенерирован!', 'success');

        return comment;
    }

    // Копирование номера карты
    function copyCardNumber() {
        navigator.clipboard.writeText(CARD_NUMBER).then(() => {
            const btn = document.querySelector('.card-info .copy-btn');
            const originalHTML = btn.innerHTML;
            btn.innerHTML = '<i class="fas fa-check"></i> Номер карты скопирован!';
            btn.classList.add('copied');

            // Анимация
            cardNumberDisplay.style.borderColor = '#28a745';
            cardNumberDisplay.style.backgroundColor = '#f0fff4';

            setTimeout(() => {
                btn.innerHTML = originalHTML;
                btn.classList.remove('copied');
                cardNumberDisplay.style.borderColor = '';
                cardNumberDisplay.style.backgroundColor = '';
            }, 2000);

            showNotification('Номер карты скопирован', 'success');
        }).catch(err => {
            showNotification('Не удалось скопировать', 'error');
        });
    }

    // Копирование комментария
    function copyComment() {
        const comment = commentDisplay.textContent;
        if (comment && comment !== 'PAY-XXXX-XXXX') {
            navigator.clipboard.writeText(comment).then(() => {
                const btn = document.querySelector('.comment-section .copy-btn');
                const originalHTML = btn.innerHTML;
                btn.innerHTML = '<i class="fas fa-check"></i> Комментарий скопирован!';
                btn.classList.add('copied');

                // Анимация
                commentDisplay.style.borderColor = '#28a745';
                commentDisplay.style.backgroundColor = 'rgba(40, 167, 69, 0.1)';

                setTimeout(() => {
                    btn.innerHTML = originalHTML;
                    btn.classList.remove('copied');
                    commentDisplay.style.borderColor = '';
                    commentDisplay.style.backgroundColor = '';
                }, 2000);

                showNotification('Комментарий скопирован', 'success');
            }).catch(err => {
                showNotification('Не удалось скопировать', 'error');
            });
        } else {
            showNotification('Сначала сгенерируйте комментарий', 'warning');
        }
    }

    // Уведомления
    function showNotification(message, type) {
        const notification = document.createElement('div');
        notification.style.cssText = `
            position: fixed;
            top: 20px;
            right: 20px;
            background: ${type === 'success' ? '#28a745' : type === 'error' ? '#dc3545' : '#ffc107'};
            color: white;
            padding: 15px 25px;
            border-radius: 10px;
            z-index: 10000;
            animation: slideInRight 0.3s ease-out;
            box-shadow: 0 5px 15px rgba(0,0,0,0.2);
            display: flex;
            align-items: center;
            gap: 10px;
            max-width: 90%;
        `;

        const icon = type === 'success' ? 'fa-check-circle' : type === 'error' ? 'fa-exclamation-circle' : 'fa-exclamation-triangle';
        notification.innerHTML = `<i class="fas ${icon}"></i> ${message}`;

        document.body.appendChild(notification);

        setTimeout(() => {
            notification.style.animation = 'slideOutRight 0.3s ease-in';
            setTimeout(() => notification.remove(), 300);
        }, 3000);
    }

    // Стили для анимации уведомлений
    if (!document.querySelector('#notification-styles')) {
        const style = document.createElement('style');
        style.id = 'notification-styles';
        style.textContent = `
            @keyframes slideInRight {
                from { transform: translateX(100%); opacity: 0; }
                to { transform: translateX(0); opacity: 1; }
            }
            @keyframes slideOutRight {
                from { transform: translateX(0); opacity: 1; }
                to { transform: translateX(100%); opacity: 0; }
            }
        `;
        document.head.appendChild(style);
    }

    // Валидация и отправка формы
    function validateAndSubmit() {
        // Проверка комментария
        const comment = commentInput.value;
        if (!comment || comment === 'PAY-XXXX-XXXX') {
            showNotification('Пожалуйста, сгенерируйте комментарий', 'warning');
            generateComment();
            return false;
        }

        // Блокировка кнопки
        submitBtn.disabled = true;
        const originalText = submitBtn.innerHTML;
        submitBtn.innerHTML = '<i class="fas fa-spinner fa-spin"></i><span>Обработка...</span>';

        // Сохраняем комментарий в сессии (имитация)
        saveCommentToSession();

        // Подтверждение
        setTimeout(() => {
            const confirmed = confirm(
                'Подтверждение перевода:\n\n' +
                'Сумма: ' + document.querySelector('.amount-value').textContent + '\n' +
                'Карта получателя: ' + CARD_NUMBER + '\n' +
                'Комментарий: ' + comment + '\n\n' +
                'Вы перевели средства с указанием этого комментария?\n\n' +
                'Комментарий будет сохранён для идентификации платежа.'
            );

            if (!confirmed) {
                submitBtn.disabled = false;
                submitBtn.innerHTML = originalText;
                return false;
            }

            // Форма отправляется
            return true;
        }, 500);

        return true;
    }

    // Сохранение комментария в сессии
    function saveCommentToSession() {
        const comment = commentInput.value;
        if (comment) {
            // В реальном приложении здесь был бы AJAX запрос
            console.log('Сохранение комментария в сессии:', comment);

            // Для демонстрации сохраняем в localStorage
            localStorage.setItem('card_payment_comment', comment);
            localStorage.setItem('card_payment_time', new Date().toISOString());
        }
    }

    // Инициализация при загрузке
    document.addEventListener('DOMContentLoaded', function() {
        // Генерируем комментарий при загрузке
        generateComment();

        // Устанавливаем номер карты
        cardNumberDisplay.textContent = CARD_NUMBER;

        // Если есть сохранённый комментарий из сервера
        const serverComment = document.querySelector('input[name="comment"]')?.value;
        if (serverComment) {
            commentDisplay.textContent = serverComment;
            commentInput.value = serverComment;
        }
    });
</script>
</body>
</html>