<?php include "head.php"; ?>
<?php
$wikiDir = './mediawiki/wiki_pages';
$wikiFiles = scandir($wikiDir);

$db = new PDO('sqlite:lawsite.db');

$search = isset($_GET['search']) ? trim($_GET['search']) : '';
$statusFilter = isset($_GET['status']) ? trim($_GET['status']) : '';

// Fetch laws from DB
$query = "SELECT * FROM laws WHERE 1=1";
$params = [];

if ($search !== '') {
    $query .= " AND (title LIKE :search OR summary LIKE :search OR proposer LIKE :search)";
    $params[':search'] = "%$search%";
}

if ($statusFilter !== '' && in_array($statusFilter, ['Passed','Failed','Pending','Unsure','NoInfo'])) {
    $query .= " AND status = :status";
    $params[':status'] = $statusFilter;
}

$query .= " ORDER BY created_at DESC";
$stmt = $db->prepare($query);
$stmt->execute($params);
$laws = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Merge laws and wiki results for display
$results = [];

// Add filtered laws
foreach ($laws as $law) {
    if ($statusFilter === '' || ($statusFilter !== 'Wiki' && $law['status'] === $statusFilter)) {
        $results[] = [
            'type' => 'law',
            'title' => $law['title'],
            'summary' => $law['summary'],
            'link' => 'view.php?id=' . $law['id'],
            'og' => $law['og'] ?? '',
            'status' => $law['status'] ?? 'NoInfo',
        ];
    }
}

// Filter and add wiki files
foreach ($wikiFiles as $file) {
    if (in_array($file, ['.', '..'])) continue;
    $title = pathinfo($file, PATHINFO_FILENAME);

    if ($search !== '' && stripos($title, $search) === false) continue;
    if ($statusFilter === '' || $statusFilter === 'Wiki') {
        $results[] = [
            'type' => 'wiki',
            'title' => $title,
            'summary' => '',
            'link' => 'wiki.php?file=' . urlencode($file),
            'status' => '',
            'og' => ''
        ];
    }
}

// Optional: sort merged results by title
usort($results, function($a, $b) {
    return strcasecmp($a['title'], $b['title']);
});
?>
<div class="search">
<form method="get" style="margin-bottom:20px;">
    <input type="text" name="search" placeholder="Search..." value="<?= htmlspecialchars($search) ?>"><select name="status">
        <option value="">All</option>
        <option value="Wiki" <?= $statusFilter=='Wiki'?'selected':'' ?>>Wiki</option>
        <option value="Passed" <?= $statusFilter=='Passed'?'selected':'' ?>>Passed</option>
        <option value="Failed" <?= $statusFilter=='Failed'?'selected':'' ?>>Failed</option>
        <option value="Pending" <?= $statusFilter=='Pending'?'selected':'' ?>>Pending</option>
        <option value="Unsure" <?= $statusFilter=='Unsure'?'selected':'' ?>>Unsure</option>
        <option value="NoInfo" <?= $statusFilter=='NoInfo'?'selected':'' ?>>No Info</option>
    </select><button type="submit">Filter</button>
</form>
</div>

<?php
foreach ($results as $item) {
    if ($item['type'] === 'law') {
        $statusClass = strtolower($item['status']);
        echo "<div class='law'>
            <h3><a href='{$item['link']}'>" . htmlspecialchars($item['title']) . "</a> <a title='Original Reddit link/post' href='" . htmlspecialchars($item['og']) . "'><img height='16px' src='/reddit.png'></a></h3>
            <p>" . htmlspecialchars($item['summary']) . "</p>
            <p>Status: <span class='status $statusClass'>" . htmlspecialchars($item['status']) . "</span></p>
        </div>";
    } elseif ($item['type'] === 'wiki') {
        echo "<div class='wiki'>
            <h3><a href='{$item['link']}'>" . htmlspecialchars($item['title']) . "</a> (WIKI)</h3>
        </div>";
    }
}
?>
<?php include "foot.php"; ?>
