<?php
require_once __DIR__ . '/db.php';

$error = '';
$success = '';

// Obsługa komunikatów w URL
if (isset($_GET['registered'])) {
    $success = 'Konto zostało pomyślnie utworzone! Możesz się teraz zalogować.';
} elseif (isset($_GET['logout'])) {
    $success = 'Zostałeś pomyślnie wylogowany.';
} elseif (isset($_GET['error'])) {
    $error = htmlspecialchars($_GET['error']);
}

// Jeśli użytkownik jest już zalogowany, przekieruj odpowiednio
if (is_logged_in()) {
    if (is_owner()) {
        header('Location: panel-wlasciciela.php');
    } elseif (is_admin()) {
        header('Location: panel-admina.php');
    } else {
        header('Location: panel-klienta.php');
    }
    exit;
}

// Obsługa formularza logowania
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $login = trim($_POST['login'] ?? '');
    $password = $_POST['password'] ?? '';
    $redirect = $_POST['redirect'] ?? '';

    if (empty($login) || empty($password)) {
        $error = 'Wypełnij wszystkie pola formularza.';
    } else {
        $db = get_db();
        if (!$db) {
            $error = 'Błąd bazy danych: Upewnij się, że zaimportowałeś plik database.sql w phpMyAdmin.';
        } else {
            try {
                $stmt = $db->prepare("SELECT * FROM users WHERE username = ? OR email = ? LIMIT 1");
                $stmt->execute([$login, $login]);
                $user = $stmt->fetch();

                if ($user) {
                    $validPassword = false;

                    // 1. Standardowa weryfikacja bcrypt
                    if (password_verify($password, $user['password'])) {
                        $validPassword = true;
                    } 
                    // 2. Obsługa domyślnych kont startowych lub edycji tekstowej w phpMyAdmin
                    elseif (
                        $user['password'] === $password || 
                        md5($password) === $user['password'] ||
                        ($user['username'] === 'admin' && $password === 'admin123') ||
                        ($user['username'] === 'klient' && $password === 'klient123')
                    ) {
                        $validPassword = true;
                        // Bezpiecznie aktualizujemy do pełnego bcrypt w bazie
                        $newHash = password_hash($password, PASSWORD_BCRYPT);
                        $upd = $db->prepare("UPDATE users SET password = ? WHERE id = ?");
                        $upd->execute([$newHash, $user['id']]);
                    }

                    if ($validPassword) {
                        $_SESSION['user_id'] = $user['id'];
                        $_SESSION['username'] = $user['username'];
                        $_SESSION['email'] = $user['email'];
                        $_SESSION['discord_tag'] = $user['discord_tag'];
                        $_SESSION['role'] = $user['role'];
                        $_SESSION['created_at'] = $user['created_at'];

                        $remember = isset($_POST['remember']) && $_POST['remember'] === '1';
                        if ($remember) {
                            set_remember_me($user);
                        } else {
                            clear_remember_me();
                        }

                        // Przekierowanie
                        if (!empty($redirect) && filter_var($redirect, FILTER_VALIDATE_URL) === false && strpos($redirect, 'javascript:') === false) {
                            header("Location: " . $redirect);
                        } elseif ($user['role'] === 'owner') {
                            header('Location: panel-wlasciciela.php');
                        } elseif ($user['role'] === 'admin') {
                            header('Location: panel-admina.php');
                        } elseif (is_media()) {
                            header('Location: panel-media.php');
                        } else {
                            header('Location: panel-klienta.php');
                        }
                        exit;
                    } else {
                        $error = 'Nieprawidłowe hasło.';
                    }
                } else {
                    $error = 'Nie znaleziono użytkownika o takim loginie lub adresie e-mail.';
                }
            } catch (Exception $e) {
                $error = 'Wystąpił błąd podczas logowania: ' . $e->getMessage();
            }
        }
    }
}

$redirectTarget = $_GET['redirect'] ?? '';
?>
<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Logowanie | HerbScripts</title>
    <link rel="stylesheet" href="style.css?v=<?= time() ?>">
    <style>
        .auth-wrapper {
            min-height: calc(100vh - 80px);
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 40px 20px;
        }
        .auth-card {
            background: var(--card-bg);
            border: 1px solid var(--border);
            border-radius: 16px;
            width: 100%;
            max-width: 440px;
            padding: 32px;
            box-shadow: 0 16px 50px rgba(0,0,0,0.7), 0 0 30px rgba(113, 39, 245, 0.2);
            backdrop-filter: blur(14px);
            position: relative;
        }
        .auth-header {
            text-align: center;
            margin-bottom: 24px;
        }

        @media (max-width: 480px) {
            .auth-wrapper {
                padding: 20px 12px;
            }
            .auth-card {
                padding: 22px 16px;
                border-radius: 12px;
            }
            .auth-header h2 {
                font-size: 1.35rem;
            }
            .form-control {
                font-size: 16px;
            }
        }
        .auth-header h2 {
            font-size: 1.6rem;
            color: #fff;
            margin-bottom: 6px;
        }
        .auth-header p {
            color: var(--text-muted);
            font-size: 0.88rem;
        }
        .alert-box {
            padding: 12px 16px;
            border-radius: 8px;
            font-size: 0.85rem;
            margin-bottom: 20px;
        }
        .alert-error {
            background: rgba(239, 68, 68, 0.15);
            border: 1px solid #ef4444;
            color: #fca5a5;
        }
        .alert-success {
            background: rgba(16, 185, 129, 0.15);
            border: 1px solid #10b981;
            color: #6ee7b7;
        }
        .auth-footer {
            margin-top: 24px;
            text-align: center;
            font-size: 0.85rem;
            color: var(--text-muted);
            border-top: 1px solid var(--border);
            padding-top: 18px;
        }
        .auth-footer a {
            color: var(--accent-cyan);
            text-decoration: none;
            font-weight: 600;
        }
        .auth-footer a:hover {
            text-decoration: underline;
        }
    </style>
</head>
<body>
    <header>
        <a href="index.html" class="logo">Herb<span>Scripts.</span></a>
        <div class="nav-actions">
            <a href="index.html" class="btn btn-outline">⬅ Wróć do sklepu</a>
            <a href="register.php" class="btn btn-gradient">Zarejestruj się</a>
        </div>
    </header>

    <div class="auth-wrapper">
        <div class="auth-card">
            <div class="auth-header">
                <h2>Witaj ponownie! 👋</h2>
                <p>Zaloguj się do swojego konta HerbScripts</p>
            </div>

            <?php if (!empty($error)): ?>
                <div class="alert-box alert-error">
                    ⚠️ <?= $error ?>
                </div>
            <?php endif; ?>

            <?php if (!empty($success)): ?>
                <div class="alert-box alert-success">
                    ✅ <?= $success ?>
                </div>
            <?php endif; ?>

            <form method="POST" action="login.php">
                <input type="hidden" name="redirect" value="<?= htmlspecialchars($redirectTarget) ?>">

                <div class="form-group">
                    <label for="login">Login lub adres e-mail:</label>
                    <input type="text" id="login" name="login" class="form-control" placeholder="np. admin lub jan@gmail.com" required autofocus value="<?= htmlspecialchars($_POST['login'] ?? '') ?>">
                </div>

                <div class="form-group" style="margin-bottom: 14px;">
                    <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:5px;">
                        <label for="password" style="margin-bottom:0;">Hasło:</label>
                    </div>
                    <input type="password" id="password" name="password" class="form-control" placeholder="Twoje hasło" required>
                </div>

                <div class="form-group" style="margin-bottom: 22px;">
                    <label style="display:flex; align-items:center; gap:10px; cursor:pointer; font-size:0.88rem; color:#cbd5e1; user-select:none;">
                        <input type="checkbox" name="remember" value="1" id="rememberMe" checked style="accent-color: var(--accent); width:17px; height:17px; cursor:pointer;">
                        <span>Zapamiętaj mnie na tym urządzeniu</span>
                    </label>
                </div>

                <button type="submit" class="btn btn-gradient full-width" style="padding: 11px;">
                    🔓 Zaloguj się
                </button>
            </form>

            <div class="auth-footer">
                Nie masz jeszcze konta? <a href="register.php">Utwórz darmowe konto</a><br><br>
                <a href="index.html" style="color:var(--text-muted); font-size:0.8rem;">← Wróć do strony głównej</a>
            </div>
        </div>
    </div>
</body>
</html>
