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

// Whitelist of allowed station names
$allowed_snames = [
    "Guam_Agat","Guam_Hagatna","Guam_Pier","Guam_Pirate","Guam_Ritidian","Minamidaito","Philippines_Sea","Okinawa_South",
    "CapVert","ElHierro","LaPalma",
    "DiegoGarcia","LaReunion_SaintDenis","Mahe","Rodrigues"
];

$sPNW = ["Guam_Agat","Guam_Hagatna","Guam_Pier","Guam_Pirate","Guam_Ritidian","Minamidaito","Philippines_Sea","Okinawa_South"];
$sISW = ["DiegoGarcia","LaReunion_SaintDenis","Mahe","Rodrigues"];
$sSENA = ["CapVert","ElHierro","LaPalma"];

// 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 < 2022 || $year > $current_year) {
    $year = $default_year;
}
$syear = strval($year);

// Assign writing name using switch
switch ($sname) {
    case "CapVert":
        $wsname = "Cap Vert";
        break;
    case "ElHierro":
        $wsname = "El Hierro";
        break;
    case "LaPalma":
        $wsname = "La Palma";
        break;
    case "DiegoGarcia":
        $wsname = "Diego Garcia";
        break;
    case "LaReunion_SaintDenis":
        $wsname = "La Réunion Saint-Denis";
        break;
    default:
        $wsname = str_replace("_", " ", $sname);
        break;
}

switch (true) {
    case in_array($sname, $sPNW):
        $site="PNW";
        break;
    case in_array($sname, $sISW):
        $site="ISW";
        break;
    case in_array($sname, $sSENA):
        $site="SENA";
        break;
}

// Build paths
$BASEall = "../../../../www-mica/web/GFS/$site/$sname/$syear";
$toPlotDir = substr($BASEall, 16); // Get mica/web/$site/...
$toPlotDir = "https://observations.ipsl.fr/aeris/$toPlotDir/";
$anaFigDir = "ANAFIG";
?>

<!DOCTYPE html>
<html>
<head>
    <title><?php echo htmlspecialchars($wsname); ?> GFS | 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 analysis figures for <?php echo htmlspecialchars($wsname); ?> | GFS | <?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) { 
    echo "<td style=\"vertical-align:top; text-align:center; width:1vw;\">";
    echo "<h2>" . htmlspecialchars($subDirectory) . "</h2>";

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

    if ($files) {
      foreach ($files as $file) {
        $basenamefile = basename($file);
        $basenamefilePlot = substr($basenamefile, -8, 4);
        $fileUrl = htmlspecialchars($toPlotDir . rawurlencode($subDirectory) . '/' . $anaFigDir . '/' . rawurlencode($basenamefile));

        echo "<a href=\"$fileUrl\" 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>
