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

$pageTitle = 'Company Directory';
$pageDescription = 'Explore top employers and companies hiring now. Browse company profiles, reviews, and job opportunities from leading organizations across all industries.';

$letter = isset($_GET['letter']) ? strtoupper($_GET['letter']) : '';
$search = isset($_GET['search']) ? trim($_GET['search']) : '';

$where = "WHERE u.role = 'employer'";
$params = [];

if (!empty($letter) && strlen($letter) === 1 && ctype_alpha($letter)) {
    $where .= " AND UPPER(LEFT(COALESCE(u.company_name, u.name), 1)) = ?";
    $params[] = $letter;
}

if (!empty($search)) {
    $where .= " AND (u.company_name LIKE ? OR u.name LIKE ?)";
    $params[] = "%$search%";
    $params[] = "%$search%";
}

$stmt = $pdo->prepare("
    SELECT u.id, u.name, u.company_name, u.company_logo, u.profile_image, 
           u.company_description, u.created_at,
           COUNT(CASE WHEN j.status = 'approved' THEN j.id END) as job_count
    FROM users u
    LEFT JOIN jobs j ON u.id = j.employer_id
    $where
    GROUP BY u.id, u.name, u.company_name, u.company_logo, u.profile_image, 
             u.company_description, u.created_at
    ORDER BY 
        CASE WHEN COUNT(CASE WHEN j.status = 'approved' THEN j.id END) > 0 THEN 0 ELSE 1 END,
        COALESCE(u.company_name, u.name) ASC
");
$stmt->execute($params);
$companies = $stmt->fetchAll();

$alphabetStmt = $pdo->query("
    SELECT DISTINCT UPPER(LEFT(COALESCE(company_name, name), 1)) as letter 
    FROM users 
    WHERE role = 'employer' 
    ORDER BY letter
");
$availableLetters = $alphabetStmt->fetchAll(PDO::FETCH_COLUMN);

$totalCompanies = count($companies);
$companiesWithJobs = count(array_filter($companies, fn($c) => $c['job_count'] > 0));

require_once 'includes/header.php';
?>

<div class="companies-page">
    <div class="container">
        <div class="companies-header">
            <h1>Company Directory</h1>
            <p>Explore top employers and their job opportunities</p>
        </div>

        <div class="companies-search-box">
            <form method="GET" action="" class="company-search-form">
                <div class="search-input-wrapper">
                    <i class="fas fa-search"></i>
                    <input type="text" name="search" placeholder="Search companies by name..." 
                           value="<?php echo sanitize($search); ?>" autocomplete="off">
                    <?php if (!empty($search)): ?>
                        <a href="companies.php" class="search-clear"><i class="fas fa-times"></i></a>
                    <?php endif; ?>
                </div>
                <button type="submit" class="btn btn-primary">Search</button>
            </form>
        </div>

        <div class="alphabet-filter">
            <a href="companies.php<?php echo !empty($search) ? '?search=' . urlencode($search) : ''; ?>" 
               class="alphabet-btn <?php echo empty($letter) ? 'active' : ''; ?>">ALL</a>
            <?php
            $alphabet = range('A', 'Z');
            foreach ($alphabet as $char):
                $isAvailable = in_array($char, $availableLetters);
                $isActive = $letter === $char;
                $queryString = !empty($search) ? '&search=' . urlencode($search) : '';
            ?>
                <?php if ($isAvailable): ?>
                    <a href="companies.php?letter=<?php echo $char . $queryString; ?>" 
                       class="alphabet-btn <?php echo $isActive ? 'active' : ''; ?>">
                        <?php echo $char; ?>
                    </a>
                <?php else: ?>
                    <span class="alphabet-btn disabled"><?php echo $char; ?></span>
                <?php endif; ?>
            <?php endforeach; ?>
        </div>

        <div class="companies-count">
            <i class="fas fa-building"></i>
            <span><?php echo $totalCompanies; ?> compan<?php echo $totalCompanies !== 1 ? 'ies' : 'y'; ?> found</span>
            <?php if (!empty($letter)): ?>
                <span class="filter-label">starting with "<?php echo $letter; ?>"</span>
            <?php endif; ?>
            <?php if (!empty($search)): ?>
                <span class="filter-label">matching "<?php echo sanitize($search); ?>"</span>
            <?php endif; ?>
            <span class="companies-with-jobs">(<?php echo $companiesWithJobs; ?> with active jobs)</span>
        </div>

        <div class="companies-grid">
            <?php if (empty($companies)): ?>
                <div class="no-results">
                    <i class="fas fa-building"></i>
                    <h3>No companies found</h3>
                    <p>
                        <?php if (!empty($letter)): ?>
                            No companies starting with "<?php echo sanitize($letter); ?>" were found.
                        <?php elseif (!empty($search)): ?>
                            No companies matching "<?php echo sanitize($search); ?>" were found.
                        <?php else: ?>
                            No companies are registered yet.
                        <?php endif; ?>
                    </p>
                    <a href="companies.php" class="btn btn-primary">View All Companies</a>
                </div>
            <?php else: ?>
                <?php foreach ($companies as $company): 
                    $companyName = $company['company_name'] ?: $company['name'];
                    $description = $company['company_description'] ? 
                        (strlen($company['company_description']) > 100 ? 
                            substr($company['company_description'], 0, 100) . '...' : 
                            $company['company_description']) : '';
                ?>
                    <div class="company-card <?php echo $company['job_count'] > 0 ? 'has-jobs' : ''; ?>">
                        <a href="<?php echo SITE_URL; ?>/company/<?php echo generateSlug($companyName); ?>" class="company-card-link">
                            <div class="company-card-logo">
                                <?php if ($company['company_logo']): ?>
                                    <img src="<?php echo SITE_URL . '/' . $company['company_logo']; ?>" 
                                         alt="<?php echo sanitize($companyName); ?>">
                                <?php elseif ($company['profile_image']): ?>
                                    <img src="<?php echo SITE_URL . '/' . $company['profile_image']; ?>" 
                                         alt="<?php echo sanitize($companyName); ?>">
                                <?php else: ?>
                                    <span class="company-initials-large"><?php echo getCompanyInitials($companyName); ?></span>
                                <?php endif; ?>
                            </div>
                            <h3 class="company-card-name"><?php echo sanitize($companyName); ?></h3>
                            <?php if ($company['job_count'] > 0): ?>
                                <span class="company-job-badge">
                                    <i class="fas fa-briefcase"></i> 
                                    <?php echo $company['job_count']; ?> Job<?php echo $company['job_count'] !== 1 ? 's' : ''; ?>
                                </span>
                            <?php else: ?>
                                <span class="company-job-badge no-jobs">
                                    <i class="fas fa-briefcase"></i> No Active Jobs
                                </span>
                            <?php endif; ?>
                            <?php if ($description): ?>
                                <p class="company-card-desc"><?php echo sanitize($description); ?></p>
                            <?php endif; ?>
                        </a>
                        <div class="company-card-actions">
                            <?php if ($company['job_count'] > 0): ?>
                                <a href="jobs.php?keyword=<?php echo urlencode($companyName); ?>" class="btn btn-primary btn-sm">
                                    <i class="fas fa-briefcase"></i> View Jobs
                                </a>
                            <?php endif; ?>
                            <a href="<?php echo SITE_URL; ?>/company/<?php echo generateSlug($companyName); ?>" class="btn btn-outline btn-sm">
                                <i class="fas fa-building"></i> View Profile
                            </a>
                        </div>
                    </div>
                <?php endforeach; ?>
            <?php endif; ?>
        </div>
    </div>
</div>

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