  let currentUuid = "<?= htmlspecialchars($_SESSION['Create_Riddle_Uuid'] ?? '') ?>"; // Current question UUID
    let userId = "<?= htmlspecialchars($_SESSION['Create_Riddle_User_Id'] ?? '') ?>"; // User ID
    let currentQuestionId = "<?= htmlspecialchars($_SESSION['Create_Riddle_Id'] ?? '') ?>"; // Current question ID
    // Initialize counters for correct and incorrect answers in localStorage
    let correctAnswersCount = parseInt(localStorage.getItem('correctAnswersCount')) || 0;
    let incorrectAnswersCount = parseInt(localStorage.getItem('incorrectAnswersCount')) || 0;
    const savedName = localStorage.getItem('userName');
                                
                                function getRandomEmoji(emojis) {
                                    const randomIndex = Math.floor(Math.random() * emojis.length);
                                    return emojis[randomIndex];
                                }
                                
                                function openApp() {
                                    var appScheme = "riddle://"; // Remplace par ton vrai scheme
                                    var appStoreURL = "https://apps.apple.com/app/id123456789"; // Remplace avec ton vrai lien App Store

                                    var startTime = new Date().getTime();
                                    var appOpened = false;

                                    function checkIfAppOpened() {
                                        var elapsedTime = new Date().getTime() - startTime;
                                        if (!appOpened && elapsedTime < 2000) {
                                            window.location.href = appStoreURL;
                                        }
                                    }

                                    // 📌 Détecter si l'utilisateur quitte la page
                                    window.addEventListener("blur", function() {
                                        appOpened = true;
                                    });

                                    document.addEventListener("visibilitychange", function() {
                                        if (document.hidden) {
                                            appOpened = true;
                                        }
                                    });

                                    // 📌 Correction : Utiliser `replace()` pour éviter un blocage
                                    window.location.replace(appScheme);

                                    setTimeout(checkIfAppOpened, 1500);
                                }



                                // Update emojiDisplay function based on correct answers count
                                function updateEmojiDisplay(correctCount) {
                                
                                if (correctCount >= 10) {
                                        const emojis = ['😘', '❤️', '🎉', '🔥'];
                                        emojiDisplay.textContent = getRandomEmoji(emojis); // Random emoji for more than 10 correct answers
                                    } else if (correctCount >= 5) {
                                        const emojis = ['👏', '🥰', '👍'];
                                        emojiDisplay.textContent = getRandomEmoji(emojis); // Random emoji for 5-9 correct answers
                                    } else if (correctCount >= 2) {
                                        const emojis = ['🙂', '😊', '👌'];
                                        emojiDisplay.textContent = getRandomEmoji(emojis); // Random emoji for 2-4 correct answers
                                    } else if (correctCount >= 1) {
                                        const emojis = ['😌', '🙌', '🤗'];
                                        emojiDisplay.textContent = getRandomEmoji(emojis); // Random emoji for 1 correct answer
                                    }

                              
                                }
                                
                                function updateEmojiDisplay2(incorrectCount) {
                         

                                if (incorrectCount >= 10) {
                                       const emojis = ['🤡', '💀', '😭'];
                                       emojiDisplay.textContent = getRandomEmoji(emojis); // Random emoji for more than 10 incorrect answers
                                   } else if (incorrectCount >= 5) {
                                       const emojis = ['💩', '🙃', '😓'];
                                       emojiDisplay.textContent = getRandomEmoji(emojis); // Random emoji for 5-9 incorrect answers
                                   } else if (incorrectCount >= 2) {
                                       const emojis = ['👎', '😑', '😬'];
                                       emojiDisplay.textContent = getRandomEmoji(emojis); // Random emoji for 2-4 incorrect answers
                                   } else if (incorrectCount >= 1) {
                                       const emojis = ['🤨', '😶', '😕'];
                                       emojiDisplay.textContent = getRandomEmoji(emojis); // Random emoji for 1 incorrect answer
                                   }
                                }
                                
                                
                                function saveChoice(createRiddleUuid, selectedAnswer, savedName, UserId) {
                                    if (!createRiddleUuid || !selectedAnswer || !savedName || !UserId) {
                                        console.error("Missing parameters for saveChoice:", { createRiddleUuid, selectedAnswer, savedName, UserId });
                                        return;
                                    }

                                    fetch('/Ozr/saveChoice.php', {
                                        method: 'POST',
                                        headers: {
                                            'Content-Type': 'application/json'
                                        },
                                        body: JSON.stringify({
                                            uuid: createRiddleUuid,
                                            answer: selectedAnswer,
                                            name: savedName,
                                            user_id: UserId
                                        })
                                    })
                                    .then(response => response.json())
                                    .then(data => {
                                        console.log("Choice saved:", data);
                                    })
                                    .catch(error => {
                                        console.error("Error saving choice:", error);
                                    });
                                }



                                function sendNotification(Token, title, body, UserId) {
                                    // Vérifier si le Token est égal à "0" et le remplacer par "123456"
                                    if (Token === "0") {
                                        Token = "123456";
                                    }

                                    // Vérifier les paramètres manquants
                                    if (!Token || !title || !body || !UserId) {
                                        console.log("Missing parameters for sendNotification:", { Token, title, body, UserId });
                                        return;
                                    }

                                    // Envoyer la requête POST à sendNotification.php
                                    fetch('/Ozr/sendNotification.php', {
                                        method: 'POST',
                                        headers: {
                                            'Content-Type': 'application/json'
                                        },
                                        body: JSON.stringify({
                                            token: Token,
                                            title: title,
                                            body: body,
                                            user_id: UserId
                                        })
                                    })
                                    .then(response => response.json())
                                    .then(data => {
                                        console.log("Notification sent:", data);
                                    })
                                    .catch(error => {
                                        console.error("Error sending notification:", error);
                                    });
                                }

                                
      
                                
                        
                                
                                
    // Function to handle answer click
    const correctAnswer = "<?= htmlspecialchars($_SESSION['Create_Riddle_Answer'] ?? '') ?>";
    const createRiddleUuid = "<?= htmlspecialchars($_SESSION['Create_Riddle_Uuid'] ?? '') ?>";
    const createRiddleToken = "<?= htmlspecialchars($_SESSION['Create_Riddle_Token_id'] ?? '') ?>";
    const createRiddleUser_id = "<?= htmlspecialchars($_SESSION['Create_Riddle_User_Id'] ?? '') ?>";
                                
    const answers = document.querySelectorAll('.answer');
    const notification = document.getElementById('notification'); // Notification element
    const emojiDisplay = document.createElement('div');
    emojiDisplay.style.fontSize = '80px';
    emojiDisplay.style.position = 'absolute';
    emojiDisplay.style.top = '50%';
    emojiDisplay.style.left = '50%';
    emojiDisplay.style.transform = 'translate(-50%, -50%)';
    emojiDisplay.style.display = 'none'; // Hidden by default
    document.body.appendChild(emojiDisplay);

    // Retrieve the list of already answered UUIDs
    let answeredUuids = JSON.parse(localStorage.getItem('answeredUuids')) || [];
    // Check if the current UUID has already been answered
    let alreadyAnswered = answeredUuids.includes(createRiddleUuid);
                                
                                // Déclarer le countdownInterval à un niveau global pour pouvoir l'arrêter plus tard
                                let countdownInterval;

                                // Si la question n'a pas encore été jouée, afficher le timer
                                if (!alreadyAnswered) {
                                    const countdownTimer = document.getElementById('countdownTimer');
                                    countdownTimer.style.display = 'flex';
                                    let timeLeft = 6;

                                    countdownInterval = setInterval(() => {
                                        timeLeft--;
                                        countdownTimer.textContent = timeLeft;

                                        if (timeLeft <= 0) {
                                            clearInterval(countdownInterval); // Stopper le timer
                                            countdownTimer.style.display = 'none';
                                            disableAnswers(); // Désactiver les réponses
                                            showTimeoutNotification(); // Afficher la notification
                                        }
                                    }, 1000);
                                } else {
                                    // Si déjà répondu, masquer le timer
                                    const countdownTimer = document.getElementById('countdownTimer');
                                    countdownTimer.style.display = 'none';
                                }

                                // Fonction pour désactiver les réponses
                                function disableAnswers() {
                                    // Ajouter l'UUID à la liste des réponses déjà faites et l'enregistrer dans localStorage
                                    answeredUuids.push(createRiddleUuid);
                                    localStorage.setItem('answeredUuids', JSON.stringify(answeredUuids));

                                    answers.forEach(answer => {
                                        answer.style.pointerEvents = 'none'; // Désactiver les clics
                                        answer.style.border = '2px solid rgba(211, 211, 211, 0.5)'; // Changer la bordure
//
                                    });
                                }

                                // Fonction pour afficher une notification "Temps écoulé"
                                function showTimeoutNotification() {
                                    notification.classList.remove('correct', 'incorrect', 'anonymous', 'show', 'hide');
                                    notification.classList.add('notification', 'incorrect', 'show');
                                    notification.textContent = "Time's up! ⏳";
                                    
                                    setTimeout(() => {
                                        notification.classList.remove('show');
                                        notification.classList.add('hide');
                                    }, 3000);
                                }
                                
                                answers.forEach(answer => {
                                    answer.addEventListener('click', () => {
                                        if (alreadyAnswered) {
                                            // Si l'utilisateur a déjà répondu, afficher un message et revenir
                                            notification.classList.remove('correct', 'incorrect', 'anonymous', 'show', 'hide');
                                            notification.classList.add('notification', 'incorrect', 'show');
                                            notification.textContent = "Whoops, you've already played for this question! 😇";
                                            scrollToTop();
                                            
                                            // Cacher la notification après 2 secondes
                                            setTimeout(() => {
                                                notification.classList.remove('show');
                                                notification.classList.add('hide');
                                            }, 2100);
                                            return; // Retourne ici sans exécuter le reste du code
                                        }

                                        alreadyAnswered = true;

                                        // Ajouter l'UUID à la liste des réponses et le sauvegarder dans localStorage
                                        answeredUuids.push(createRiddleUuid);
                                        localStorage.setItem('answeredUuids', JSON.stringify(answeredUuids));

                                        const selectedAnswer = answer.getAttribute('data-answer');

                                        // Désactiver toutes les réponses et les griser
                                        answers.forEach(a => {
                                            a.style.pointerEvents = 'none'; // Désactiver les clics
                                            a.style.border = '2px solid rgba(211, 211, 211, 0.5)'; // Bordure gris clair avec opacité
                                        });

                                        // Si l'utilisateur a déjà répondu, afficher un message et revenir
                                        notification.classList.remove('correct', 'incorrect', 'anonymous', 'show', 'hide');
                                        answer.style.border = 'none'; // Enlever la bordure de la réponse choisie pour la rendre visible

                                        // Si une réponse est cliquée avant que le timer arrive à 0, annuler le timer
                                        clearInterval(countdownInterval); // Annuler le timer ici pour éviter toute interaction avec le countdown

                                        // Mettre à jour le countdownTimer avec la valeur restante de timeLeft
                                        const countdownTimer = document.getElementById('countdownTimer');
                                        
                                        countdownTimer.style.display = 'none';
                                        // Vérification de la réponse
                                        if (selectedAnswer === correctAnswer) {
                                            correctAnswersCount++;
                                            localStorage.setItem('correctAnswersCount', correctAnswersCount);
                                            answer.classList.add('correct');
                                            
                                            // Affichage de la notification de réponse correcte
                                            notification.classList.add('notification', 'correct', 'show');
                                            notification.textContent = "True 🎉";
                                            
                                            // Mettre à jour l'affichage des emojis
                                            updateEmojiDisplay(correctAnswersCount);

                                            // Envoyer la notification
                                            sendNotification(createRiddleToken, "Riddle", "New riddle received", createRiddleUser_id);
                                            saveChoice(createRiddleUuid, selectedAnswer, savedName, createRiddleUser_id);
                                        } else {
                                            incorrectAnswersCount++;
                                            localStorage.setItem('incorrectAnswersCount', incorrectAnswersCount);
                                            answer.classList.add('incorrect');
                                            
                                            // Affichage de la notification de réponse incorrecte
                                            notification.classList.add('notification', 'incorrect', 'show');
                                            notification.textContent = "False 💩";
                                            
                                            // Mettre à jour l'affichage des emojis
                                            updateEmojiDisplay2(incorrectAnswersCount);

                                            // Envoyer la notification
                                            sendNotification(createRiddleToken, "Riddle", "New riddle received", createRiddleUser_id);
                                            saveChoice(createRiddleUuid, selectedAnswer, savedName, createRiddleUser_id);
                                        }

                                        // Affichage de l'emoji
                                        emojiDisplay.style.display = 'block';

                                        // Cacher l'emoji après 2 secondes
                                        setTimeout(() => {
                                            emojiDisplay.style.display = 'none';
                                        }, 2100);

                                        // Masquer la notification après 2 secondes
                                        setTimeout(() => {
                                            notification.classList.remove('show');
                                            notification.classList.add('hide');
                                            // Optionnellement appeler fetchNextRiddle après la notification
                                            // fetchNextRiddle();
                                        }, 2100);

                                        // Scroll vers le haut
                                        scrollToTop();

                                        // Désactiver toutes les réponses une fois qu'une a été choisie
                                        answers.forEach(a => a.classList.add('disabled'));
                                    });
                                });



    // Go back function
        function goBack() {
        // Supprime la mémoire de redirection pour éviter la boucle
          sessionStorage.removeItem('isReturning');
          sessionStorage.setItem('lastPage', 'Answer');
          console.log("Referrer:", document.referrer);
          // Vérifie si on peut vraiment revenir en arrière
          if (document.referrer) {
              window.location.href = document.referrer; // Force la redirection vers la page précédente
          } else {
              window.history.back(); // Si aucun referrer, essaie de revenir en arrière
          }

        }

    // Scroll to top function
    function scrollToTop() {
        const scrollY = window.scrollY;
        let currentScroll = scrollY;
        const intervalId = setInterval(() => {
            currentScroll -= 10;
            window.scrollTo(0, currentScroll);
            if (currentScroll <= 0) {
                clearInterval(intervalId);
            }
        }, 10);
    }

    // Counter for riddles created
    const riddleCounterElement = document.getElementById('riddleCounter');
    let currentRiddles = Math.floor(Math.random() * (3100 - 200 + 1)) + 200;

    // Update the riddle label
    function updateRiddleLabel() {
        riddleCounterElement.style.opacity = 0;
        setTimeout(() => {
            riddleCounterElement.innerText = `${currentRiddles} riddles 💌 created!`;
            riddleCounterElement.style.opacity = 1;
        }, 300);
    }

    // Start the riddle counter
    function startRiddleCounter() {
        updateRiddleLabel();
        const interval = setInterval(() => {
            if (currentRiddles >= 100000) {
                clearInterval(interval);
                riddleCounterElement.innerText = "+100000 riddles 💌 created!";
                return;
            }

            const increment = Math.floor(Math.random() * 100);
            currentRiddles = Math.min(currentRiddles + increment, 100000);
            updateRiddleLabel();
        }, 10000);
    }

    document.addEventListener('DOMContentLoaded', startRiddleCounter);