<?php
require_once 'config.php';

$selected_project_id = isset($_GET['project']) ? (int)$_GET['project'] : 0;
$projects = getAllProjects($pdo);

$error = '';
$success = '';
$selected_project = null;

if($selected_project_id > 0) {
    foreach($projects as $p) {
        if($p['id'] == $selected_project_id) {
            $selected_project = $p;
            break;
        }
    }
}

// Предустановленные суммы для пожертвований
$preset_amounts = [500, 1000, 2000, 5000, 10000];

if($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['submit_donation'])) {
    if(!isLoggedIn()) {
        $error = "Для совершения пожертвования необходимо войти или зарегистрироваться";
    } else {
        $project_id = (int)$_POST['project_id'];
        $amount = (float)$_POST['amount'];
        $is_anonymous = isset($_POST['is_anonymous']) ? 1 : 0;
        $comment = trim($_POST['comment'] ?? '');
        
        // Находим проект
        $selected_proj = null;
        foreach($projects as $p) {
            if($p['id'] == $project_id) {
                $selected_proj = $p;
                break;
            }
        }
        
        if(empty($project_id) || !$selected_proj) {
            $error = "Пожалуйста, выберите проект";
        } elseif($amount <= 0) {
            $error = "Сумма пожертвования должна быть больше 0";
        } elseif($amount < 50) {
            $error = "Минимальная сумма пожертвования - 50 рублей";
        } elseif($amount > 1000000) {
            $error = "Максимальная сумма пожертвования - 1 000 000 рублей";
        } else {
            // Сохраняем пожертвование
            $stmt = $pdo->prepare("INSERT INTO donations (user_id, project_id, amount, is_anonymous, comment, status) VALUES (?, ?, ?, ?, ?, 'completed')");
            $stmt->execute([$_SESSION['user_id'], $project_id, $amount, $is_anonymous, $comment]);
            
            // Обновляем сумму сбора проекта
            $updateStmt = $pdo->prepare("UPDATE projects SET current_amount = current_amount + ? WHERE id = ?");
            $updateStmt->execute([$amount, $project_id]);
            
            $success = "✅ Спасибо за ваше пожертвование! Ваша помощь очень важна. <a href='my_donations.php'>Посмотреть мои пожертвования</a>";
            
            // Обновляем данные проекта
            $selected_proj['current_amount'] += $amount;
        }
    }
}

$user_name = isLoggedIn() ? $_SESSION['full_name'] : '';
$user_email = isLoggedIn() ? ($_SESSION['email'] ?? '') : '';
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Пожертвование - поддержите проект</title>
    <meta name="description" content="Сделайте пожертвование на выбранный проект. Ваша помощь изменит жизнь.">
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: 'Segoe UI', Arial, sans-serif; background: #f0fdf4; }
        header, footer { background: #0f172a; color: #f8fafc; padding: 1rem; text-align: center; }
        nav a { color: #f8fafc; margin: 0 15px; text-decoration: none; }
        nav a:hover { color: #14b8a6; }
        main { max-width: 1300px; margin: 30px auto; padding: 0 20px; min-height: 60vh; }
        .donate-container { display: flex; gap: 40px; flex-wrap: wrap; }
        .donate-form { flex: 1.2; background: #fff; border-radius: 24px; padding: 35px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); }
        .projects-sidebar { flex: 0.8; background: #fff; border-radius: 24px; padding: 25px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); height: fit-content; position: sticky; top: 20px; }
        h1 { text-align: center; color: #0f172a; margin-bottom: 10px; }
        .subtitle { text-align: center; color: #475569; margin-bottom: 30px; }
        .form-group { margin-bottom: 25px; }
        label { display: block; font-weight: bold; margin-bottom: 8px; color: #0f172a; }
        label .required { color: #e74c3c; }
        select, input, textarea { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 10px; font-size: 16px; transition: 0.3s; }
        select:focus, input:focus, textarea:focus { outline: none; border-color: #0f766e; }
        textarea { resize: vertical; min-height: 80px; }
        .preset-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
        .preset-btn { background: #e2e8f0; border: none; padding: 10px 20px; border-radius: 40px; cursor: pointer; transition: 0.3s; font-weight: bold; }
        .preset-btn:hover { background: #cbd5e1; }
        .preset-btn.active { background: #0f766e; color: #fff; }
        .checkbox-group { display: flex; align-items: center; gap: 10px; }
        .checkbox-group input { width: auto; }
        .btn-submit { width: 100%; background: #0f766e; color: #fff; border: none; padding: 14px; font-size: 18px; border-radius: 12px; cursor: pointer; font-weight: bold; transition: 0.3s; margin-top: 20px; }
        .btn-submit:hover { background: #0d5c56; }
        .btn-submit:disabled { background: #94a3b8; cursor: not-allowed; }
        .btn-back { display: inline-block; background: #64748b; color: #fff; padding: 10px 20px; text-decoration: none; border-radius: 8px; margin-top: 20px; }
        .error { background: #fdecea; color: #e74c3c; padding: 12px; border-radius: 8px; margin-bottom: 20px; border-left: 4px solid #e74c3c; }
        .success { background: #e8f5e9; color: #27ae60; padding: 12px; border-radius: 8px; margin-bottom: 20px; border-left: 4px solid #27ae60; }
        .auth-warning { background: #fff3e0; padding: 15px; border-radius: 8px; margin-bottom: 20px; border-left: 4px solid #f39c12; }
        .project-item { padding: 12px; margin-bottom: 10px; border-radius: 12px; cursor: pointer; transition: 0.3s; background: #f8fafc; }
        .project-item:hover { background: #e2e8f0; transform: translateX(5px); }
        .project-item.active { background: #0f766e; color: #fff; }
        .project-item.active .project-item-need { color: #bfdbfe; }
        .project-item-title { font-weight: bold; margin-bottom: 5px; }
        .project-item-need { font-size: 0.75rem; color: #64748b; }
        .project-info-card { background: #f8fafc; padding: 20px; border-radius: 16px; margin-bottom: 25px; }
        .project-name { font-size: 1.2rem; font-weight: bold; color: #0f172a; margin-bottom: 8px; }
        .project-progress { margin-top: 10px; }
        .progress-bar-small { background: #e2e8f0; border-radius: 20px; height: 8px; overflow: hidden; }
        .progress-fill-small { background: linear-gradient(90deg, #0f766e, #14b8a6); width: 0%; height: 100%; }
        .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
        @media (max-width: 768px) { .donate-container { flex-direction: column; } .projects-sidebar { position: static; } .form-row { grid-template-columns: 1fr; } }
    </style>
</head>
<body>
<header>
    <div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;">
        <h1 style="margin: 0;">🤝 Благотворительный фонд "Вместе"</h1>
        <nav>
            <a href="index.php">🏠 Проекты</a>
            <a href="donate.php">💝 Пожертвовать</a>
            <a href="my_donations.php">📋 Мои пожертвования</a>
            <?php if(isLoggedIn()): ?>
                <a href="logout.php">🚪 Выйти (<?= h($_SESSION['username']) ?>)</a>
            <?php else: ?>
                <a href="login.php">🔐 Вход</a>
                <a href="register.php">📝 Регистрация</a>
            <?php endif; ?>
        </nav>
    </div>
</header>

<main>
    <a href="index.php" class="btn-back">← Назад к проектам</a>
    
    <h1>💝 Сделайте пожертвование</h1>
    <p class="subtitle">Ваша помощь изменит жизнь к лучшему</p>
    
    <div class="donate-container">
        <div class="projects-sidebar">
            <h3 style="margin-bottom: 15px;">Выберите проект</h3>
            <?php foreach($projects as $p): 
                $need = $p['goal_amount'] - $p['current_amount'];
            ?>
                <div class="project-item <?= ($selected_project_id == $p['id']) ? 'active' : '' ?>" data-id="<?= $p['id'] ?>" data-name="<?= h($p['title']) ?>">
                    <div class="project-item-title"><?= h($p['title']) ?></div>
                    <div class="project-item-need">Нужно ещё: <?= number_format($need, 0) ?> ₽</div>
                </div>
            <?php endforeach; ?>
        </div>
        
        <div class="donate-form">
            <?php if($error): ?>
                <div class="error"><?= $error ?></div>
            <?php endif; ?>
            
            <?php if($success): ?>
                <div class="success"><?= $success ?></div>
            <?php endif; ?>
            
            <?php if(!isLoggedIn() && !$success): ?>
                <div class="auth-warning">
                    🔒 <strong>Для совершения пожертвования необходимо авторизоваться.</strong><br>
                    <a href="login.php">Войти</a> или <a href="register.php">Зарегистрироваться</a>
                </div>
            <?php endif; ?>
            
            <?php if($selected_project && !$success): ?>
                <div class="project-info-card">
                    <div class="project-name"><?= h($selected_project['title']) ?></div>
                    <div class="project-progress">
                        <div>Собрано: <?= number_format($selected_project['current_amount'], 0) ?> / <?= number_format($selected_project['goal_amount'], 0) ?> ₽</div>
                        <div class="progress-bar-small" style="margin-top: 5px;">
                            <div class="progress-fill-small" style="width: <?= getProgressPercent($selected_project['current_amount'], $selected_project['goal_amount']) ?>%;"></div>
                        </div>
                    </div>
                </div>
            <?php endif; ?>
            
            <form method="POST" id="donateForm">
                <input type="hidden" name="project_id" id="project_id" value="<?= $selected_project_id ?>">
                
                <div class="form-group">
                    <label>Сумма пожертвования (₽) <span class="required">*</span></label>
                    <input type="number" name="amount" id="amount" step="10" min="50" max="1000000" placeholder="Введите сумму" required>
                    <div class="preset-buttons">
                        <?php foreach($preset_amounts as $preset): ?>
                            <button type="button" class="preset-btn" data-amount="<?= $preset ?>"><?= number_format($preset, 0) ?> ₽</button>
                        <?php endforeach; ?>
                    </div>
                </div>
                
                <div class="form-group">
                    <div class="checkbox-group">
                        <input type="checkbox" name="is_anonymous" id="is_anonymous">
                        <label for="is_anonymous" style="margin-bottom: 0;">🙈 Сделать пожертвование анонимным</label>
                    </div>
                </div>
                
                <div class="form-group">
                    <label>Комментарий (пожелания)</label>
                    <textarea name="comment" placeholder="Напишите слова поддержки или укажите, куда направить средства..."></textarea>
                </div>
                
                <div class="form-group">
                    <label>Ваше имя</label>
                    <input type="text" name="client_name" value="<?= h($user_name) ?>" readonly style="background: #f1f5f9;">
                </div>
                
                <button type="submit" name="submit_donation" class="btn-submit" <?= !isLoggedIn() ? 'disabled' : '' ?>>💝 Пожертвовать</button>
            </form>
        </div>
    </div>
</main>

<script>
    const projectItems = document.querySelectorAll('.project-item');
    const projectIdInput = document.getElementById('project_id');
    const amountInput = document.getElementById('amount');
    const presetBtns = document.querySelectorAll('.preset-btn');
    const donateForm = document.getElementById('donateForm');
    
    function selectProject(element) {
        const id = parseInt(element.dataset.id);
        const name = element.dataset.name;
        projectIdInput.value = id;
        
        projectItems.forEach(item => item.classList.remove('active'));
        element.classList.add('active');
        
        // Обновляем отображение информации о проекте
        window.location.href = `donate.php?project=${id}`;
    }
    
    presetBtns.forEach(btn => {
        btn.addEventListener('click', function(e) {
            e.preventDefault();
            const amount = parseInt(this.dataset.amount);
            amountInput.value = amount;
            amountInput.dispatchEvent(new Event('input'));
        });
    });
    
    projectItems.forEach(item => {
        item.addEventListener('click', () => selectProject(item));
    });
</script>

<footer>
    <p>&copy; 2025 Благотворительный фонд "Вместе". Вместе мы сила!</p>
</footer>
</body>
</html>