<?php
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

$all_results = $_SESSION["search_results"] ?? [];
$query = $_SESSION["search_query"] ?? "";
$totalResultsCount = count($all_results);

$limit = isset($_GET['limit']) ? (int)$_GET['limit'] : 10;
if (!in_array($limit, [10, 20, 50, 100])) {
    $limit = 10;
}

// Gesamtseitenzahl
$totalPages = max(1, ceil($totalResultsCount / $limit));

// Aktuelle Seite auslesen und validieren
$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($currentPage < 1) {
    $currentPage = 1;
} elseif ($currentPage > $totalPages) {
    $currentPage = $totalPages;
}

// Startpunkt im Array berechnen (Offset)
$offset = ($currentPage - 1) * $limit;

// Nur die Ergebnisse für die aktuelle Seite ausschneiden
//$results = array_slice($all_results, $offset, $limit);
$results = $all_results;
$resultCount = count($results);

?>
<noscript>
    Bitte JavaScript aktivieren!
</noscript>
<!--
    Seite: Suchergebnisse
    Inhalt: Zeigt die Ergebnisse einer Suche an
-->
<div class="s-res-layout-grid">
    <?php include_once "includes/alertMessages.php"?>

    <!-- Links: Seitenleiste für Filter und Suche -->
    <aside class="s-res-sidebar">

        <form action="php/controller/search-results-controller.php" method="GET" id="search-form-id" class="s-res-sidebar-form">
            
            <input type="hidden" id="s-res-page-input" name="page" value="<?php echo $_GET['page'] ?? 1; ?>">

            <div class="s-res-sidebar-box">
                <h3 class="s-res-sidebar-title">Suche anpassen</h3>
                <input type="search" id="site-search" name="q" placeholder="Suchen..." class="nav__search" value="<?php echo htmlspecialchars($query); ?>" maxlength="50" required>
                <button type="submit" class="nav__search-button">Suchen</button>
            </div>

            <div class="s-res-sidebar-box">
                <h3 class="s-res-sidebar-title">Sortierung</h3>
                <?php $currentSort = $_SESSION['search_sort'] ?? 'alphabet'; ?>
                <div class="s-res-filter-group">
                    <label class="s-res-filter-option">
                        <input type="radio" name="sort" value="alphabet" class="sort-radio" <?php echo $currentSort === 'alphabet' ? 'checked' : ''; ?>>
                        <span>Alphabetisch</span>
                    </label>
                    <label class="s-res-filter-option">
                        <input type="radio" name="sort" value="likes" class="sort-radio" <?php echo $currentSort === 'likes' ? 'checked' : ''; ?>>
                        <span>Beliebtheit (Likes)</span>
                    </label>
                    <label class="s-res-filter-option">
                        <input type="radio" name="sort" value="newest" class="sort-radio" <?php echo $currentSort === 'newest' ? 'checked' : ''; ?>>
                        <span>Neueste Beiträge</span>
                    </label>
                    <label class="s-res-filter-option">
                        <input type="radio" name="sort" value="oldest" class="sort-radio" <?php echo $currentSort === 'oldest' ? 'checked' : ''; ?>>
                        <span>Älteste Beiträge</span>
                    </label>
                </div>
            </div>

            <div class="s-res-sidebar-box">
                <h3 class="s-res-sidebar-title">Kategorie filtern</h3>
                <select id="category-filter" class="s-res-limit-select" style="width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1;">
                    <option value="all">Alle Kategorien</option>
                    <option value="Deutsch">Deutsch</option>
                    <option value="Englisch">Englisch</option>
                    <option value="Franzoesisch">Französisch</option>
                    <option value="Latein">Latein</option>
                    <option value="Literatur">Literatur</option>
                    <option value="Mathematik">Mathematik</option>
                    <option value="Biologie">Biologie</option>
                    <option value="Informatik">Informatik</option>
                    <option value="Chemie">Chemie</option>
                    <option value="Physik">Physik</option>
                    <option value="Astronomie">Astronomie</option>
                    <option value="Geschichte">Geschichte</option>
                    <option value="Erdkunde">Erdkunde</option>
                    <option value="Sozialkunde">Sozialkunde</option>
                    <option value="Wirtschaftskunde">Wirtschaftskunde</option>
                    <option value="Religion">Religion</option>
                    <option value="Ethikunterricht">Ethikunterricht</option>
                    <option value="Philosophie">Philosophie</option>
                    <option value="Psychologie">Psychologie</option>
                    <option value="Kunst">Kunst</option>
                    <option value="Musik">Musik</option>
                    <option value="Theater">Theater</option>
                    <option value="Technik">Technik</option>
                    <option value="Werken">Werken</option>
                    <option value="Hauswirtschaft">Hauswirtschaft</option>
                    <option value="Sport">Sport</option>
                </select>
            </div>

        </form>

    </aside>

    <main class="s-res-main-content">

        <div class="s-res-header">
            <h1 class="s-res-main-title">Suchergebnisse</h1>
            <p class="s-res-meta"><?php echo $totalResultsCount; ?> Treffer für Ihre Suchanfrage "<?php echo htmlspecialchars($query); ?>"</p>
        </div>

        <!-- Ergebnisliste -->
        <div class="s-res-list">
            <?php 
            if (!empty($results)): ?>
    
                <?php foreach ($results as $item): ?>
                    <div class="s-res-item" data-likes="<?php echo $item['likes'] ?? 0; ?>" data-category="<?php echo strtolower($item['category'] ?? ''); ?>">
                        <div class="s-res-content">
                            <h2 class="s-res-item-title">
                                <a href="index.php?pfad=showArticle&id=<?php echo $item['id']; ?>" class="s-res-link">
                                    <?php echo htmlspecialchars($item['title']); ?>
                                </a>
                            </h2>
                            <div class="s-res-meta-row">
                                <p class="s-res-author">Von: <span class="s-res-author-name"><?php echo htmlspecialchars($item['author']); ?></span></p>

                                <span class="s-res-likes">
                                    ❤️ <?php echo isset($item['likes']) && is_array($item['likes']) ? count($item['likes']) : 0; ?>
                                </span>
                            </div>

                        </div>
                        <div class="s-res-arrow">&rarr;</div>
                    </div>
                <?php endforeach; ?>

            <?php 
            elseif (isset($_SESSION["search_query"]) && $_SESSION["search_query"] !== "" && $resultCount === 0): ?>
                <p>Keine Beiträge zu diesem Suchbegriff gefunden.</p>  
            <?php 
            elseif (isset($_SESSION["message"]) && $_SESSION["message"] == "invalid_search_query"): ?>
                <p>Unzulässige Suchanfrage</p>
                
            <?php endif; ?>
            <?php
            unset($_SESSION["message"]);
            ?>

        </div>
        <div class="s-res-pagination-footer">

            <!-- Auswahl der Ergebnisse pro Seite -->
            <div class="s-res-limit-selector">
                <label for="s-res-per-page" class="s-res-limit-label">Ergebnisse pro Seite:</label>
                <select id="s-res-per-page" name="limit" class="s-res-limit-select" form="search-form-id" onchange="this.form.submit()">
                    <option value="10" <?php echo $limit === 10 ? 'selected' : ''; ?>>10</option>
                    <option value="20" <?php echo $limit === 20 ? 'selected' : ''; ?>>20</option>
                    <option value="50" <?php echo $limit === 50 ? 'selected' : ''; ?>>50</option>
                    <option value="100" <?php echo $limit === 100 ? 'selected' : ''; ?>>100</option>
                </select>
            </div>

            <div class="s-res-page-navigation">
                <button type="button" class="s-res-page-btn" id="prev-page-btn" data-page="0">«</button>
                
                <span id="dynamic-page-numbers"></span>
                
                <button type="button" class="s-res-page-btn" id="next-page-btn" data-page="2">»</button>
            </div>

        </div>
    </main>

</div>
