<?php
// Carica i dealer dal JSON
$dealers = json_decode(file_get_contents('dealers.json'), true);

// Parametri GET
$city = $_GET['city'] ?? '';
$categories = $_GET['categories'] ?? [];

// Estrai solo il nome della città
$cityName = '';
if (!empty($city)) {
    // Rimuove eventuale CAP (es. '50100 Firenze' → 'Firenze')
    $parts = explode(',', $city);
    $firstPart = trim($parts[0]);
    
    // Se inizia con un CAP, prendiamo la seconda parola
    if (preg_match('/^\d{5}\s+(.+)$/', $firstPart, $matches)) {
        $cityName = $matches[1];
    } else {
        $cityName = $firstPart;
    }
}

// Filtro
$filteredDealers = array_filter($dealers, function ($dealer) use ($cityName, $categories) {
    $matchCityOrZip = !$cityName || 
        stripos($dealer['city'], $cityName) !== false || 
        stripos($dealer['country'] ?? '', $cityName) !== false ||
        stripos($dealer['cap'] ?? '', $cityName) !== false;

    $matchCategory = empty($categories) || array_intersect($categories, $dealer['categories']);
    return $matchCityOrZip && $matchCategory;
});
?>

<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <title>Dealer Locator</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
<h2>Trova un dealer</h2>

<form method="get" id="searchForm">
    <input type="text" name="city" placeholder="Città o CAP" value="<?= htmlspecialchars($city) ?>">
    
    <fieldset>
        <legend>Categorie</legend>
        <label><input type="checkbox" name="categories[]" value="Vendita" <?= in_array('Vendita', $categories) ? 'checked' : '' ?>> Vendita</label>
        <label><input type="checkbox" name="categories[]" value="Officina" <?= in_array('Officina', $categories) ? 'checked' : '' ?>> Officina</label>
        <label><input type="checkbox" name="categories[]" value="Ricambi" <?= in_array('Ricambi', $categories) ? 'checked' : '' ?>> Ricambi</label>
    </fieldset>
    
    <button type="submit">Cerca</button>
</form>

<button id="toggleSidebar">Mostra/Nascondi Risultati</button>

<div id="sidebar">
    <h3>Risultati trovati: <?= count($filteredDealers) ?></h3>
    <ul>
        <?php foreach ($filteredDealers as $index => $dealer): ?>
            <li data-index="<?= $index ?>">
                <strong><?= htmlspecialchars($dealer['name']) ?></strong><br>
                <?= htmlspecialchars($dealer['address']) ?><br>
                Categorie: <?= implode(', ', $dealer['categories']) ?>
            </li>
        <?php endforeach; ?>
    </ul>
</div>

<div id="map" style="width: 100%; height: 500px; margin-top: 20px;"></div>

<script>
    const dealers = <?= json_encode(array_values($filteredDealers)) ?>;
</script>
<script src="script.js"></script>
<script src="https://cdn.rawgit.com/googlemaps/js-marker-clusterer/gh-pages/src/markerclusterer.js"></script>
<script
    async defer loading="async"
    src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAmOtjRmwVvsRiudCKKiuMlM0-_MhNNh44&libraries=places&callback=initAll">
</script>
</body>
</html>