<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

require_once 'includes/db.php';
require_once 'includes/functions.php';

$pageTitle = 'Browse Jobs';
$pageDescription = 'Browse and search through our comprehensive job listings. Filter by category, location, job type, and salary range to find the perfect opportunity for your career.';
$pageKeywords = 'browse jobs, job listings, job search, career opportunities, vacancies, employment';

$keyword = $_GET['keyword'] ?? '';
$categoryId = $_GET['category'] ?? '';
$country = $_GET['country'] ?? '';
$locationId = $_GET['location'] ?? '';
$jobType = $_GET['job_type'] ?? '';
$experience = $_GET['experience'] ?? '';
$salaryMin = $_GET['salary_min'] ?? '';
$salaryRange = $_GET['salary_range'] ?? '';
$sector = $_GET['sector'] ?? '';
$educationLevel = $_GET['education'] ?? '';
$sort = $_GET['sort'] ?? 'newest';
$page = max(1, intval($_GET['page'] ?? 1));
$perPage = 12;
$offset = ($page - 1) * $perPage;

/*
|--------------------------------------------------------------------------
| Main filter
|--------------------------------------------------------------------------
| 
| - approved 正常显示
| - status 为空的导入职位也显示
|--------------------------------------------------------------------------
*/
$where = ["(j.status = 'approved' OR j.status IS NULL OR j.status = '')"];
$params = [];

if (!empty($keyword)) {
    $where[] = "(j.title LIKE ? OR j.description LIKE ? OR COALESCE(u.company_name, '') LIKE ?)";
    $params[] = "%$keyword%";
    $params[] = "%$keyword%";
    $params[] = "%$keyword%";
}

if (!empty($categoryId)) {
    $where[] = "j.category_id = ?";
    $params[] = $categoryId;
}

if (!empty($locationId)) {
    $where[] = "j.location_id = ?";
    $params[] = $locationId;
}

if (!empty($jobType)) {
    $where[] = "j.job_type = ?";
    $params[] = $jobType;
}

if (!empty($experience)) {
    $where[] = "j.experience_level = ?";
    $params[] = $experience;
}

if (!empty($salaryMin)) {
    $where[] = "j.salary_min >= ?";
    $params[] = $salaryMin;
}

if (!empty($salaryRange)) {
    switch ($salaryRange) {
        case 'under30':
            $where[] = "(j.salary_max < 30000 OR (j.salary_max IS NULL AND j.salary_min < 30000))";
            break;
        case '30-50':
            $where[] = "((j.salary_min >= 30000 AND j.salary_min < 50000) OR (j.salary_max >= 30000 AND j.salary_max < 50000))";
            break;
        case '50-80':
            $where[] = "((j.salary_min >= 50000 AND j.salary_min < 80000) OR (j.salary_max >= 50000 AND j.salary_max < 80000))";
            break;
        case '80-120':
            $where[] = "((j.salary_min >= 80000 AND j.salary_min < 120000) OR (j.salary_max >= 80000 AND j.salary_max < 120000))";
            break;
        case '120plus':
            $where[] = "(j.salary_min >= 120000 OR j.salary_max >= 120000)";
            break;
    }
}

if (!empty($sector)) {
    $where[] = "j.job_sector = ?";
    $params[] = $sector;
}

if (!empty($educationLevel)) {
    $where[] = "j.education_level = ?";
    $params[] = $educationLevel;
}

$whereClause = implode(' AND ', $where);

$orderBy = match ($sort) {
    'salary_high' => 'CASE WHEN j.salary_max IS NULL THEN 1 ELSE 0 END, j.salary_max DESC',
    'salary_low'  => 'CASE WHEN j.salary_min IS NULL THEN 1 ELSE 0 END, j.salary_min ASC',
    'oldest'      => 'j.created_at ASC',
    default       => 'j.is_featured DESC, j.created_at DESC'
};

/*
|--------------------------------------------------------------------------
| Count
|--------------------------------------------------------------------------
*/
$countSql = "
    SELECT COUNT(*)
    FROM jobs j
    LEFT JOIN users u ON j.employer_id = u.id
    WHERE $whereClause
";
$countStmt = $pdo->prepare($countSql);
$countStmt->execute($params);
$totalJobs = (int)$countStmt->fetchColumn();
$totalPages = max(1, (int)ceil($totalJobs / $perPage));

/*
|--------------------------------------------------------------------------
| Main query
|--------------------------------------------------------------------------
|--------------------------------------------------------------------------
*/
$listSql = "
    SELECT 
        j.*,
        c.name AS category_name,
        COALESCE(l.name, 'Remote') AS location_name,
        COALESCE(u.company_name, 'Imported Company') AS company_name,
        COALESCE(u.company_logo, u.profile_image) AS company_logo,
        u.profile_image,
        (
            SELECT COUNT(*)
            FROM applications a
            WHERE a.job_id = j.id
        ) AS application_count
    FROM jobs j
    LEFT JOIN categories c ON j.category_id = c.id
    LEFT JOIN locations l ON j.location_id = l.id
    LEFT JOIN users u ON j.employer_id = u.id
    WHERE $whereClause
    ORDER BY $orderBy
    LIMIT $perPage OFFSET $offset
";

$stmt = $pdo->prepare($listSql);
$stmt->execute($params);
$jobs = $stmt->fetchAll(PDO::FETCH_ASSOC);

$categories = getCategories($pdo);
$countries = getCountries($pdo);

require_once 'includes/header.php';
?>

<div class="job-listing-page">
    <div class="container">
        <div class="section-header" style="margin-bottom: 30px;">
            <h2>Find Your Perfect Job</h2>
            <p><?php echo number_format($totalJobs); ?> jobs available</p>
        </div>

        <div class="job-listing-layout">
            <aside class="filter-sidebar">
                <form method="GET" action="">
                    <div class="filter-section search-autocomplete-wrapper">
                        <h4><i class="fas fa-search"></i> Keywords</h4>
                        <input type="text" name="keyword" id="filter-search-input" class="form-control" placeholder="Job title or company" value="<?php echo sanitize($keyword); ?>" autocomplete="off">
                        <div class="search-suggestions" id="filter-search-suggestions"></div>
                    </div>

                    <div class="filter-section">
                        <h4><i class="fas fa-folder"></i> Category</h4>
                        <select name="category" class="form-control">
                            <option value="">All Categories</option>
                            <?php foreach ($categories as $cat): ?>
                                <option value="<?php echo $cat['id']; ?>" <?php echo $categoryId == $cat['id'] ? 'selected' : ''; ?>>
                                    <?php echo sanitize($cat['name']); ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </div>

                    <div class="filter-section">
                        <h4><i class="fas fa-globe"></i> Country</h4>
                        <select name="country" id="jobs-country-select" class="form-control">
                            <option value="">All Countries</option>
                            <?php foreach ($countries as $c): ?>
                                <option value="<?php echo sanitize($c['country']); ?>" <?php echo ($country !== '' && $country === $c['country']) ? 'selected' : ''; ?>>
                                    <?php echo sanitize($c['country']); ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </div>

                    <div class="filter-section">
                        <h4><i class="fas fa-map-marker-alt"></i> Location</h4>
                        <select name="location" id="jobs-location-select" class="form-control" <?php echo empty($country) ? 'disabled' : ''; ?>>
                            <option value="">All Locations</option>
                            <?php
                            if (!empty($country)) {
                                foreach (getLocationsByCountry($pdo, $country) as $loc):
                            ?>
                                <option value="<?php echo (int)$loc['id']; ?>" <?php echo (string)$locationId === (string)$loc['id'] ? 'selected' : ''; ?>>
                                    <?php echo sanitize(formatLocationWithoutCountry($loc['name'])); ?>
                                </option>
                            <?php
                                endforeach;
                            }
                            ?>
                        </select>
                    </div>

                    <div class="filter-section">
                        <h4><i class="fas fa-briefcase"></i> Job Type</h4>
                        <?php 
                        $jobTypes = [
                            'full-time' => 'Full Time',
                            'part-time' => 'Part Time',
                            'contract' => 'Contract',
                            'internship' => 'Internship',
                            'remote' => 'Remote'
                        ];
                        foreach ($jobTypes as $value => $label): 
                        ?>
                            <label class="filter-option">
                                <input type="radio" name="job_type" value="<?php echo $value; ?>" <?php echo $jobType === $value ? 'checked' : ''; ?>>
                                <?php echo $label; ?>
                            </label>
                        <?php endforeach; ?>
                        <label class="filter-option">
                            <input type="radio" name="job_type" value="" <?php echo empty($jobType) ? 'checked' : ''; ?>>
                            All Types
                        </label>
                    </div>

                    <div class="filter-section">
                        <h4><i class="fas fa-chart-line"></i> Experience Level</h4>
                        <?php 
                        $expLevels = [
                            'fresh' => 'Fresh Graduate',
                            'entry' => '1-3 Years',
                            'mid' => '3-5 Years',
                            'senior' => '5+ Years',
                            'executive' => 'Executive'
                        ];
                        foreach ($expLevels as $value => $label): 
                        ?>
                            <label class="filter-option">
                                <input type="radio" name="experience" value="<?php echo $value; ?>" <?php echo $experience === $value ? 'checked' : ''; ?>>
                                <?php echo $label; ?>
                            </label>
                        <?php endforeach; ?>
                        <label class="filter-option">
                            <input type="radio" name="experience" value="" <?php echo empty($experience) ? 'checked' : ''; ?>>
                            All Levels
                        </label>
                    </div>

                    <div class="filter-section">
                        <h4><i class="fas fa-graduation-cap"></i> Education Level</h4>
                        <select name="education" class="form-control">
                            <option value="">All Levels</option>
                            <option value="high_school" <?php echo $educationLevel == 'high_school' ? 'selected' : ''; ?>>High School / Matric</option>
                            <option value="diploma" <?php echo $educationLevel == 'diploma' ? 'selected' : ''; ?>>Diploma / Intermediate</option>
                            <option value="bachelors" <?php echo $educationLevel == 'bachelors' ? 'selected' : ''; ?>>Bachelor's Degree</option>
                            <option value="masters" <?php echo $educationLevel == 'masters' ? 'selected' : ''; ?>>Master's Degree</option>
                            <option value="phd" <?php echo $educationLevel == 'phd' ? 'selected' : ''; ?>>PhD / Doctorate</option>
                        </select>
                    </div>

                    <div class="filter-section">
                        <h4><i class="fas fa-dollar-sign"></i> Salary Range</h4>
                        <select name="salary_range" class="form-control">
                            <option value="">Any Salary</option>
                            <option value="under30" <?php echo $salaryRange == 'under30' ? 'selected' : ''; ?>>Under $30K</option>
                            <option value="30-50" <?php echo $salaryRange == '30-50' ? 'selected' : ''; ?>>$30K - $50K</option>
                            <option value="50-80" <?php echo $salaryRange == '50-80' ? 'selected' : ''; ?>>$50K - $80K</option>
                            <option value="80-120" <?php echo $salaryRange == '80-120' ? 'selected' : ''; ?>>$80K - $120K</option>
                            <option value="120plus" <?php echo $salaryRange == '120plus' ? 'selected' : ''; ?>>$120K+</option>
                        </select>
                    </div>

                    <div class="filter-section">
                        <h4><i class="fas fa-building"></i> Job Sector</h4>
                        <select name="sector" class="form-control">
                            <option value="">All Sectors</option>
                            <option value="government" <?php echo $sector == 'government' ? 'selected' : ''; ?>>Government</option>
                            <option value="private" <?php echo $sector == 'private' ? 'selected' : ''; ?>>Private</option>
                            <option value="semi-government" <?php echo $sector == 'semi-government' ? 'selected' : ''; ?>>Semi-Government</option>
                            <option value="ngo" <?php echo $sector == 'ngo' ? 'selected' : ''; ?>>NGO</option>
                        </select>
                    </div>

                    <button type="submit" class="btn btn-primary" style="width: 100%;">
                        <i class="fas fa-filter"></i> Apply Filters
                    </button>

                    <?php if (!empty($keyword) || !empty($categoryId) || !empty($country) || !empty($locationId) || !empty($jobType) || !empty($experience) || !empty($salaryRange) || !empty($sector) || !empty($educationLevel)): ?>
                        <a href="jobs.php" class="btn btn-outline" style="width: 100%; margin-top: 10px;">
                            <i class="fas fa-times"></i> Clear Filters
                        </a>
                    <?php endif; ?>
                </form>
            </aside>

            <main>
                <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; flex-wrap: wrap; gap: 15px;">
                    <div style="color: var(--gray-600);">
                        Showing <?php echo $totalJobs > 0 ? min(($offset + 1), $totalJobs) : 0; ?> - <?php echo min(($offset + $perPage), $totalJobs); ?> of <?php echo number_format($totalJobs); ?> jobs
                    </div>
                    <div style="display: flex; align-items: center; gap: 15px;">
                        <div class="view-toggle-btns">
                            <button type="button" class="view-toggle-btn active" data-view="card" title="Card View">
                                <i class="fas fa-th-large"></i>
                            </button>
                            <button type="button" class="view-toggle-btn" data-view="table" title="Table View">
                                <i class="fas fa-list"></i>
                            </button>
                        </div>
                        <select onchange="window.location.href = this.value" class="form-control" style="width: auto; display: inline-block;">
                            <?php
                            $sortOptions = [
                                'newest' => 'Newest First',
                                'oldest' => 'Oldest First',
                                'salary_high' => 'Salary: High to Low',
                                'salary_low' => 'Salary: Low to High'
                            ];
                            $currentParams = $_GET;
                            foreach ($sortOptions as $value => $label):
                                $currentParams['sort'] = $value;
                            ?>
                                <option value="?<?php echo http_build_query($currentParams); ?>" <?php echo $sort === $value ? 'selected' : ''; ?>>
                                    <?php echo $label; ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                </div>

                <?php if (empty($jobs)): ?>
                    <div class="empty-state">
                        <i class="fas fa-search"></i>
                        <h3>No jobs found</h3>
                        <p>Try adjusting your search criteria or browse all available jobs.</p>
                        <a href="jobs.php" class="btn btn-primary">View All Jobs</a>
                    </div>
                <?php else: ?>

                    <div class="jobs-card-view" id="jobsCardView">
                        <div class="jobs-grid" style="grid-template-columns: 1fr;" id="jobsContainer">
                            <?php foreach ($jobs as $job): 
                                $deadlineInfo = getDeadlineInfo($job['application_deadline'] ?? null);
                                $isFeatured = !empty($job['is_featured']);

                                $jobUrl = !empty($job['slug'])
                                    ? SITE_URL . '/job/' . $job['slug']
                                    : 'job-details.php?id=' . $job['id'];

                                $applyUrl = !empty($job['external_url'])
                                    ? $job['external_url']
                                    : $jobUrl;
                            ?>
                                <div class="job-card job-card-horizontal <?php echo $isFeatured ? 'featured' : ''; ?>" data-job-id="<?php echo $job['id']; ?>">
                                    <div class="job-card-left">
                                        <div class="company-logo company-logo-round">
                                            <?php if (!empty($job['profile_image'])): ?>
                                                <img src="<?php echo SITE_URL . '/' . ltrim($job['profile_image'], '/'); ?>" alt="<?php echo sanitize($job['company_name'] ?? ''); ?>">
                                            <?php elseif (!empty($job['company_logo'])): ?>
                                                <img src="<?php echo SITE_URL . '/' . ltrim($job['company_logo'], '/'); ?>" alt="<?php echo sanitize($job['company_name'] ?? ''); ?>">
                                            <?php else: ?>
                                                <span class="company-initials"><?php echo getCompanyInitials($job['company_name'] ?? ''); ?></span>
                                            <?php endif; ?>
                                        </div>
                                    </div>

                                    <div class="job-card-content">
                                        <div class="job-header">
                                            <div class="job-info" style="flex: 1;">
                                                <h3><a href="<?php echo $jobUrl; ?>"><?php echo sanitize($job['title']); ?></a></h3>
                                                <a href="<?php echo SITE_URL; ?>/company/<?php echo generateSlug($job['company_name']); ?>" class="company-name">
                                                    <?php echo sanitize($job['company_name']); ?>
                                                </a>
                                            </div>

                                            <div class="job-card-right-badges">
                                                <span class="job-badge job-badge-salary">
                                                    <i class="fas fa-dollar-sign"></i>
                                                    <?php echo formatSalaryRange($job); ?>
                                                </span>
                                                <span class="job-badge job-badge-time">
                                                    <i class="far fa-clock"></i>
                                                    <?php echo timeAgo($job['created_at']); ?>
                                                </span>
                                                <span class="job-badge job-badge-applicants">
                                                    <i class="fas fa-users"></i>
                                                    <?php echo (int)($job['application_count'] ?? 0); ?>
                                                </span>
                                            </div>
                                        </div>

                                        <p style="color: var(--gray-600); margin: 15px 0; line-height: 1.6;">
                                            <?php echo sanitize(mb_substr(strip_tags($job['description'] ?? ''), 0, 150)); ?>...
                                        </p>

                                        <div class="job-badges-row">
                                            <?php
                                            $expLevel = $job['experience_level'] ?? 'entry';
                                            $expBadgeClass = match($expLevel) {
                                                'fresh' => 'exp-badge-fresh',
                                                'entry' => 'exp-badge-entry',
                                                'mid' => 'exp-badge-mid',
                                                'senior' => 'exp-badge-senior',
                                                'executive' => 'exp-badge-executive',
                                                default => 'exp-badge-entry'
                                            };
                                            $expLabel = match($expLevel) {
                                                'fresh' => 'Fresh Graduate',
                                                'entry' => '1-3 Years',
                                                'mid' => '3-5 Years',
                                                'senior' => '5+ Years',
                                                'executive' => 'Executive',
                                                default => ucfirst($expLevel)
                                            };
                                            ?>
                                            <span class="exp-badge <?php echo $expBadgeClass; ?>">
                                                <i class="fas fa-briefcase"></i>
                                                <?php echo $expLabel; ?>
                                            </span>

                                            <?php
                                            $eduLevel = $job['education_level'] ?? 'any';
                                            if ($eduLevel !== 'any'):
                                                $eduLabel = match($eduLevel) {
                                                    'high_school' => 'High School',
                                                    'diploma' => 'Diploma',
                                                    'bachelors' => 'Bachelor\'s',
                                                    'masters' => 'Master\'s',
                                                    'phd' => 'PhD',
                                                    default => ucfirst($eduLevel)
                                                };
                                            ?>
                                            <span class="edu-badge">
                                                <i class="fas fa-graduation-cap"></i>
                                                <?php echo $eduLabel; ?>
                                            </span>
                                            <?php endif; ?>
                                        </div>

                                        <div class="job-meta">
                                            <?php echo function_exists('getSectorBadge') ? getSectorBadge($job['job_sector'] ?? 'private') : ''; ?>
                                            <span><i class="fas fa-map-marker-alt"></i> <?php echo sanitize($job['location_name']); ?></span>
                                            <span><i class="fas fa-briefcase"></i> <?php echo ucfirst(str_replace('-', ' ', $job['job_type'] ?? 'full-time')); ?></span>

                                            <?php if ($deadlineInfo): ?>
                                                <span class="job-deadline <?php echo !empty($deadlineInfo['is_urgent']) ? 'deadline-urgent' : ''; ?> <?php echo !empty($deadlineInfo['is_past']) ? 'deadline-past' : ''; ?>">
                                                    <i class="fas fa-calendar-times"></i>
                                                    <?php if (!empty($deadlineInfo['is_past'])): ?>
                                                        Expired
                                                    <?php else: ?>
                                                        Apply by: <?php echo $deadlineInfo['formatted']; ?>
                                                    <?php endif; ?>
                                                </span>
                                            <?php endif; ?>
                                        </div>

                                        <div class="job-actions">
                                            <a href="<?php echo $jobUrl; ?>" class="btn btn-outline btn-sm">View Details</a>

                                            <?php if (isLoggedIn() && getUserRole() === 'candidate'): ?>
                                                <?php if (hasApplied($pdo, $job['id'], getUserId())): ?>
                                                    <button class="btn btn-success btn-sm" disabled>
                                                        <i class="fas fa-check"></i> Applied
                                                    </button>
                                                <?php else: ?>
                                                    <a href="<?php echo $jobUrl; ?>#apply" class="btn btn-primary btn-sm">Apply Now</a>
                                                <?php endif; ?>
                                            <?php else: ?>
                                                <a href="login.php?redirect=<?php echo urlencode($jobUrl . '#apply'); ?>" class="btn btn-primary btn-sm">Apply Now</a>
                                            <?php endif; ?>
                                        </div>
                                    </div>
                                </div>
                            <?php endforeach; ?>
                        </div>
                    </div>
                    <div class="jobs-table-view" id="jobsTableView" style="display: none;">
                        <div class="jobs-table-wrapper">
                            <table class="jobs-table" id="jobsTable">
                                <thead>
                                    <tr>
                                        <th class="sortable" data-sort="date">Posted <i class="fas fa-sort"></i></th>
                                        <th class="sortable" data-sort="title">Job Title <i class="fas fa-sort"></i></th>
                                        <th class="sortable" data-sort="company">Company <i class="fas fa-sort"></i></th>
                                        <th class="sortable" data-sort="location">Location <i class="fas fa-sort"></i></th>
                                        <th class="sortable" data-sort="salary">Salary <i class="fas fa-sort"></i></th>
                                        <th class="sortable" data-sort="deadline">Last Date <i class="fas fa-sort"></i></th>
                                        <th>Action</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach ($jobs as $job): 
                                        $deadlineInfo = getDeadlineInfo($job['application_deadline'] ?? null);
                                        $salaryDisplay = formatSalaryRange($job);
                                        if ($salaryDisplay === 'Competitive') {
                                            $salaryDisplay = 'Negotiable';
                                        }

                                        $tableJobUrl = !empty($job['slug'])
                                            ? SITE_URL . '/job/' . $job['slug']
                                            : 'job-details.php?id=' . $job['id'];

                                        $tableApplyUrl = !empty($job['external_url'])
                                            ? $job['external_url']
                                            : $tableJobUrl;
                                    ?>
                                        <tr data-job-id="<?php echo $job['id']; ?>"
                                            data-date="<?php echo $job['created_at']; ?>"
                                            data-title="<?php echo sanitize($job['title']); ?>"
                                            data-company="<?php echo sanitize($job['company_name']); ?>"
                                            data-location="<?php echo sanitize($job['location_name']); ?>"
                                            data-salary="<?php echo $job['salary_min'] ?? 0; ?>"
                                            data-deadline="<?php echo $job['application_deadline'] ?? ''; ?>">
                                            <td class="table-date">
                                                <span class="date-badge"><?php echo timeAgo($job['created_at']); ?></span>
                                            </td>

                                            <td class="table-title">
                                                <a href="<?php echo $tableJobUrl; ?>" class="job-title-link">
                                                    <?php echo sanitize($job['title']); ?>
                                                </a>
                                                <div class="job-type-badges">
                                                    <span class="type-badge type-<?php echo $job['job_type']; ?>">
                                                        <?php echo ucfirst(str_replace('-', ' ', $job['job_type'])); ?>
                                                    </span>
                                                    <?php if (!empty($job['is_featured'])): ?>
                                                        <span class="type-badge type-featured">Featured</span>
                                                    <?php endif; ?>
                                                </div>
                                            </td>

                                            <td class="table-company">
                                                <div class="company-cell">
                                                    <div class="company-logo-sm">
                                                        <?php if (!empty($job['profile_image'])): ?>
                                                            <img src="<?php echo SITE_URL . '/' . ltrim($job['profile_image'], '/'); ?>" alt="">
                                                        <?php elseif (!empty($job['company_logo'])): ?>
                                                            <img src="<?php echo SITE_URL . '/' . ltrim($job['company_logo'], '/'); ?>" alt="">
                                                        <?php else: ?>
                                                            <span><?php echo getCompanyInitials($job['company_name']); ?></span>
                                                        <?php endif; ?>
                                                    </div>
                                                    <a href="<?php echo SITE_URL; ?>/company/<?php echo generateSlug($job['company_name']); ?>">
                                                        <?php echo sanitize($job['company_name']); ?>
                                                    </a>
                                                </div>
                                            </td>

                                            <td class="table-location">
                                                <i class="fas fa-map-marker-alt"></i>
                                                <?php echo sanitize($job['location_name']); ?>
                                            </td>

                                            <td class="table-salary">
                                                <?php echo $salaryDisplay; ?>
                                            </td>

                                            <td class="table-deadline">
                                                <?php if ($deadlineInfo): ?>
                                                    <span class="deadline-badge <?php echo !empty($deadlineInfo['is_urgent']) ? 'deadline-urgent' : ''; ?> <?php echo !empty($deadlineInfo['is_past']) ? 'deadline-past' : ''; ?>">
                                                        <?php if (!empty($deadlineInfo['is_past'])): ?>
                                                            <i class="fas fa-times-circle"></i> Expired
                                                        <?php else: ?>
                                                            <?php echo $deadlineInfo['formatted']; ?>
                                                            <?php if (!empty($deadlineInfo['is_urgent'])): ?>
                                                                <span class="days-left">(<?php echo $deadlineInfo['days_left']; ?>d left)</span>
                                                            <?php endif; ?>
                                                        <?php endif; ?>
                                                    </span>
                                                <?php else: ?>
                                                    <span class="no-deadline">Open</span>
                                                <?php endif; ?>
                                            </td>

                                            <td class="table-action">
                                                <?php if (isLoggedIn() && getUserRole() === 'candidate'): ?>
                                                    <?php if (hasApplied($pdo, $job['id'], getUserId())): ?>
                                                        <span class="applied-badge"><i class="fas fa-check"></i> Applied</span>
                                                    <?php else: ?>
                                                        <a href="<?php echo $tableJobUrl; ?>#apply" class="btn btn-primary btn-sm">Apply</a>
                                                    <?php endif; ?>
                                                <?php else: ?>
                                                    <a href="login.php?redirect=<?php echo urlencode($tableJobUrl . '#apply'); ?>" class="btn btn-primary btn-sm">Apply</a>
                                                <?php endif; ?>
                                            </td>
                                        </tr>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                    </div>

                    <?php if ($totalPages > 1): ?>
                        <div class="pagination">
                            <?php
                            $currentParams = $_GET;

                            if ($page > 1):
                                $currentParams['page'] = $page - 1;
                            ?>
                                <a href="?<?php echo http_build_query($currentParams); ?>"><i class="fas fa-chevron-left"></i></a>
                            <?php endif; ?>

                            <?php
                            $start = max(1, $page - 2);
                            $end = min($totalPages, $page + 2);

                            if ($start > 1):
                                $currentParams['page'] = 1;
                            ?>
                                <a href="?<?php echo http_build_query($currentParams); ?>">1</a>
                                <?php if ($start > 2): ?><span>...</span><?php endif; ?>
                            <?php endif; ?>

                            <?php for ($i = $start; $i <= $end; $i++):
                                $currentParams['page'] = $i;
                            ?>
                                <?php if ($i == $page): ?>
                                    <span class="active"><?php echo $i; ?></span>
                                <?php else: ?>
                                    <a href="?<?php echo http_build_query($currentParams); ?>"><?php echo $i; ?></a>
                                <?php endif; ?>
                            <?php endfor; ?>

                            <?php if ($end < $totalPages):
                                $currentParams['page'] = $totalPages;
                            ?>
                                <?php if ($end < $totalPages - 1): ?><span>...</span><?php endif; ?>
                                <a href="?<?php echo http_build_query($currentParams); ?>"><?php echo $totalPages; ?></a>
                            <?php endif; ?>

                            <?php if ($page < $totalPages):
                                $currentParams['page'] = $page + 1;
                            ?>
                                <a href="?<?php echo http_build_query($currentParams); ?>"><i class="fas fa-chevron-right"></i></a>
                            <?php endif; ?>
                        </div>
                    <?php endif; ?>

                <?php endif; ?>
            </main>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function () {
    const countrySelect = document.getElementById('jobs-country-select');
    const locationSelect = document.getElementById('jobs-location-select');
    if (!countrySelect || !locationSelect) {
        return;
    }

    function resetLocations(disable) {
        locationSelect.innerHTML = '<option value="">All Locations</option>';
        locationSelect.disabled = disable;
    }

    if (!countrySelect.value) {
        resetLocations(true);
    }

    countrySelect.addEventListener('change', function () {
        var selectedCountry = this.value;
        resetLocations(true);
        if (!selectedCountry) {
            return;
        }
        fetch('ajax/get-locations-by-country.php?country=' + encodeURIComponent(selectedCountry))
            .then(function (response) { return response.json(); })
            .then(function (data) {
                resetLocations(false);
                data.forEach(function (loc) {
                    var option = document.createElement('option');
                    option.value = loc.id;
                    option.textContent = loc.name;
                    locationSelect.appendChild(option);
                });
            })
            .catch(function () {
                resetLocations(true);
            });
    });
});
</script>

<?php require_once 'includes/footer.php'; ?>