<?php
// Defaults
$default_sname = "Guam_Agat";
$default_year = 2020;

// Whitelist of allowed station names
$allowed_snames = [
    "Guam_Agat","Guam_Hagatna","Guam_Pier","Guam_Pirate",
    "ValverdeUno","ValverdeDos","ValverdeTres",
    "LaReunion_BoisRouge","LaReunion_CapChevron","LaReunion_Est","LaReunion_Malize","LaReunion_Port","LaReunion_Sud"
];

// Validate sname
$sname = isset($_GET['sname']) && in_array($_GET['sname'], $allowed_snames) ? $_GET['sname'] : $default_sname;

// Validate year (must be between 2000 and next year)
$current_year = intval(date("Y")) + 1;
$year = isset($_GET['year']) ? intval($_GET['year']) : $default_year;
if ($year < 2019 || $year > 2021) {
    $year = $default_year;
}
$syear = strval($year);

// Assign writing name using switch
switch ($sname) {
    case "ValverdeUno":
        $wsname = "Valverde Uno";
        break;
    case "ValverdeDos":
        $wsname = "Valverde Dos";
        break;
    case "ValverdeTres":
        $wsname = "Valverde Tres";
        break;
    case "LaReunion_BoisRouge":
        $wsname = "La Réunion Bois-Rouge";
        break;
    case "LaReunion_CapChevron":
        $wsname = "La Réunion Cap-Chevron";
        break;
    case "LaReunion_Est":
        $wsname = "La Réunion Est";
        break;
    case "LaReunion_Malize":
        $wsname = "La Réunion Malize";
        break;
    case "LaReunion_Port":
        $wsname = "La Réunion Port";
        break;
    case "LaReunion_Sud":
        $wsname = "La Réunion Sud";
        break;
    default:
        $wsname = str_replace("_", " ", $sname);
        break;
}

// Build paths
$BASEall = "../qlooks/Pacific_NW/$sname/QL_Reports/$syear";
?>

<!DOCTYPE html>
<html>
<head>
    <title><?php echo htmlspecialchars($wsname); ?> ECMWF | Archives " <?php echo htmlspecialchars($syear); ?></title>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="Site.css">
    <style>
       body {
          margin: 0;
          padding: 0;
       }
     </style>

</head>

<body>

<h1 style=padding-bottom:2vw>
Available forecast bulletin for <?php echo htmlspecialchars($wsname); ?> | ECMWF | <?php echo htmlspecialchars($syear); ?>
</h1>

<table class="table" width="100%">
<tbody>
<tr>
<?php
// Check if base directory exists
if (is_dir($BASEall)) {
  $subDirectories = array_filter(scandir($BASEall), function ($dir) use ($BASEall) {
  return $dir !== '.' && $dir !== '..' && is_dir("$BASEall/$dir");
  });

  foreach ($subDirectories as $subDirectory) { 
    $monthCode = substr($subDirectory, -2); // e.g., "01" for January

    echo "<td style=\"vertical-align:top; text-align:center; width:2vw;\">";
    echo "<h2>" . htmlspecialchars($monthCode) . "</h2>";

    $files = glob("$BASEall/$subDirectory/*");

    if ($files) {
      foreach ($files as $file) {
        $basenamefile = basename($file);
        $basenamefilePlot = substr($basenamefile, -9, -4); // assumes format like *_YYYYMMDD.pdf

        echo "<a href=\"$file\" target=\"_blank\">" . htmlspecialchars($basenamefilePlot) . "</a><br />";
      }
    } else {
      echo "<p>No files.</p>";
    }

    echo "</td>";
  }
} else {
  echo "<p>No data available for this station/year combination.</p>";
}
?>
</tr>
</tbody>
</table> 

</body>
</html>
