<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Consultation Bulletin</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      background-color: #f4f4f9;
      margin: 0;
      padding: 0;
    }
    .container {
      width: 90%;
      max-width: 780px;
      margin: 20px auto;
      padding: 20px;
      background: #ffffff;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
      border-radius: 8px;
    }
    h3 {
      text-align: center;
      color: #0db86c;
    }
    form {
      display: flex;
      flex-direction: column;
      align-items: center;
      margin-top: 20px;
    }
    label {
      font-size: 14px;
      margin-bottom: 10px;
      color: #ff2b3a;
    }
    input[type="text"] {
      padding: 10px;
      width: 100%;
      max-width: 300px;
      border: 1px solid #ccc;
      border-radius: 4px;
      font-size: 16px;
      background-color: #f5fdf9;
      color: #119c53;
      text-align: center;
    }
    button {
      margin-top: 15px;
      padding: 10px 20px;
      background: #119c53;
      color: #fff;
      border: none;
      border-radius: 4px;
      cursor: pointer;
      font-size: 16px;
    }
    button:hover {
      background: #0db86c;
      font-weight: bold;
    }
    .error {
      color: red;
      text-align: center;
      margin-top: 12px;
      font-weight: bold;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      margin-top: 20px;
    }
    th, td {
      padding: 10px;
      border: 1px solid #ddd;
      text-align: center;
    }
    th {
      background: #f0f0f0;
    }
    tr:nth-child(even) {
      background: #f9f9f9;
    }
    object {
      border: 1px solid #ddd;
      border-radius: 5px;
    }
  </style>
    <script language="javascript">
           var message="La fonction clique droit n'est pas autorisée ici!";
           function clickIE4(){
                 if (event.button==2){
                     alert(message);
                     return false;
                 }
           }
           function clickNS4(e){
                if (document.layers||document.getElementById&&!document.all){
                        if (e.which==2||e.which==3){
                                  alert(message);
                                  return false;
                        }
                }
           }
           if (document.layers){
                 document.captureEvents(Event.MOUSEDOWN);
                 document.onmousedown=clickNS4;
           }
           else if (document.all&&!document.getElementById){
                 document.onmousedown=clickIE4;
           }
           document.oncontextmenu=new Function("alert(message);return false;")
</script>
</head>
<body>
  <div class="container">
    <h3>
      <img src="https://eduslg.com/pluginfile.php/1/core_admin/logocompact/300x300/1732758582/logo-eduslg1%20%281%29.png" width="45px" alt="Logo">
      <br>Consultation de notes Mi-Étape 1
    </h3>
    <form id="loginForm">
      <label for="identifiant">Retrouve ton CODE dans la section profil utilisateur de ton compte</label>
      <input type="text" id="identifiant" placeholder="Tape ton CODE d'accès ici" required>
      <button type="submit">Consulter</button>
    </form>
    <div id="message" class="error"></div>


    <div id="results">
      <center>
        <object 
          width="100%"   
          height="950px" 
          type="application/pdf" 
          data="d7MiE1-Palm.pdf?#zoom=85&scrollbar=0&toolbar=0&navpanes=0">
          <p>Affichage des performances de toutes les classes... (votre navigateur doit supporter les PDF).</p>
        </object>
        <!-- <embed src="d7MiE1-Palm.pdf" width="100%" height="950" frameborder="0" allowfullscreen> -->
          <!-- <iframe src="d7MiE1-Palm.pdf" style="width: 100%; height:800px;" frameborder="0" allowfullscreen></iframe> -->


      </center>
    </div>
  </div>
  <script>
  document.getElementById('loginForm').addEventListener('submit', async function (event) {
    event.preventDefault();

    // const identifiant = document.getElementById('identifiant').value.trim();
    const identifiant = document.getElementById('identifiant').value.trim().toUpperCase();
    const messageDiv = document.getElementById('message');
    const resultsDiv = document.getElementById('results');

    messageDiv.textContent = ''; // Réinitialise les messages
    resultsDiv.innerHTML = ''; // Réinitialise les résultats

    if (!identifiant) {
      messageDiv.textContent = '⚠ Merci d’entrer un identifiant.';
      return;
    }

    // Chemin vers le fichier texte encodé en Base64
    const textFilePath = '../datasam_/d7mie1a-enc.txt';

    // Classes et lignes correspondantes pour les barèmes
    const classesLignes = {
      '7B': 1,
      '7J': 46,
      '7M': 144,
      '7R': 217,
      '7V': 289
    };

    try {
      // Charger le fichier texte
      const response = await fetch(textFilePath);
      if (!response.ok) throw new Error('⚠ Impossible de charger la base de données!');

      const base64Text = await response.text();

      // Décoder le texte encodé en Base64
      const decodedText = atob(base64Text);

      // Convertir les données décodées en tableau (comme un CSV)
      const rows = decodedText.split('\n').map(row => row.split(','));
      const headers = rows[0]; // La première ligne contient les en-têtes

      // Recherche de l'identifiant dans la colonne A
      const row = rows.find(row => row[0] === identifiant);

      if (!row) {
        messageDiv.textContent = '⚠ Identifiant introuvable.';
        return;
      }

      // Vérifier si l'accès est autorisé (colonne AA)
      const accessGranted = row[row.length - 1].trim().toUpperCase() === 'TRUE';
      const accessShow = row[row.length - 2].trim().toUpperCase() === 'TRUE';

      if (!accessShow) {
            messageDiv.textContent = '⚠ Le bulletin pour cette période n\'est pas encore disponible pour consultation en ligne. Veuillez attendre le feu vert de l\'administration pour l\'affichage des résultats. Merci et à très bientôt!';
        return;
      }

      if (accessGranted) {
        messageDiv.textContent = '⚠ Vous n\'êtes pas en règle pour recevoir ce bulletin. Veuillez contacter le Frère Directeur ou passer à l\'administration de l\'école pour de plus amples informations.';
        return; 

      }

      // Identifier la classe de l'élève
      const classeEleve = row[1].trim();

      if (!classesLignes.hasOwnProperty(classeEleve)) {
        messageDiv.textContent = '⚠ Classe non reconnue.';
        return;
      }

      // Ligne des barèmes correspondant à la classe
      const ligneBaremes = classesLignes[classeEleve];
      const baremes = rows[ligneBaremes].slice(5, -2); // Barèmes pour la classe

      // Données pour l'élève
      const matieres = headers.slice(5, -2); // Matières (F1:Z1)
      const notes = row.slice(5, -2); // Notes de l'élève
      const infosEleve = row.slice(0, -2);

      // Générer un tableau HTML pour afficher les données
      let tableHTML = `
        <h3>Bulletin de l'élève ${infosEleve[3]} ${infosEleve[4]} - No${infosEleve[2]}</h3>
        <h3>Classe de ${infosEleve[1]} - 2024-2025</h3>
        <table>
          <thead>
            <tr>
              <th>Matière</th>
              <th>Barème</th>
              <th>Note</th>
            </tr>
          </thead>
          <tbody>
      `;

      matieres.forEach((matiere, index) => {
        tableHTML += `
          <tr>
            <td>${matiere}</td>
            <td>${baremes[index]}</td>
            <td>${notes[index]}</td>
          </tr>
        `;
      });

      tableHTML += `
          </tbody>
        </table>
      `;

      resultsDiv.innerHTML = tableHTML;
    } catch (error) {
      messageDiv.textContent = `Erreur : ${error.message}`;
    }
  });
</script>

</body>
</html>
