document.addEventListener('DOMContentLoaded', function () {
    console.log('tasks.js wurde geladen.');

    // Funktion zum Anzeigen des Toasts
    function showToast(message, type = 'success') {
        const toastsContainer = document.getElementById('toasts');

        // Erstellen eines neuen Toast-Elements
        const toast = document.createElement('div');
        toast.classList.add('toast-content', `toast-${type}`);

        // Erstellen des Icons
        const icon = document.createElement('i');
        icon.classList.add('fa-solid');
        switch (type) {
            case 'success':
                icon.classList.add('fa-check');
                break;
            case 'error':
                icon.classList.add('fa-times');
                break;
            case 'info':
                icon.classList.add('fa-info-circle');
                break;
            default:
                icon.classList.add('fa-check');
        }
        icon.classList.add('toast-icon'); // Hinzufügen der CSS-Klasse für das Icon

        // Erstellen des Nachrichten-Elements
        const toastMessage = document.createElement('span');
        toastMessage.textContent = message;
        toastMessage.classList.add('toast-message'); // Hinzufügen der CSS-Klasse für den Text

        // Fügen Sie Icon und Nachricht zum Toast hinzu
        toast.appendChild(icon);
        toast.appendChild(toastMessage);

        // Fügen Sie den Toast zum Container hinzu
        toastsContainer.appendChild(toast);

        // Anzeigen des Toasts mit Animation
        requestAnimationFrame(() => {
            toast.classList.add('show');
        });

        // Automatisches Ausblenden nach 3 Sekunden
        setTimeout(() => {
            toast.classList.remove('show');
            // Entfernen des Toasts nach der Animation
            setTimeout(() => {
                toast.remove();
            }, 500); // Muss mit der CSS-Transition übereinstimmen
        }, 3000);
    }

    // Event-Delegation für "Antwort prüfen" Buttons
    document.querySelectorAll('.check-answer').forEach(function (button, index) {
        button.addEventListener('click', function () {
            console.log(`Antwort prüfen Button geklickt. Button Index: ${index}`);
            const variableContainer = this.closest('.variable-container');
            if (!variableContainer) {
                console.error('Variable Container nicht gefunden für Button:', this);
                showToast('Interner Fehler: Container nicht gefunden.', 'error');
                return;
            }
            const input = variableContainer.querySelector('input');
            if (!input) {
                console.error('Input Feld nicht gefunden in Variable Container:', variableContainer);
                showToast('Interner Fehler: Eingabefeld nicht gefunden.', 'error');
                return;
            }
            const userAnswer = input.value.trim();
            const correctAnswer = input.getAttribute('data-correct-answer');
            if (!correctAnswer) {
                console.error('Data-Correct-Answer Attribut fehlt im Input:', input);
                showToast('Interner Fehler: Richtige Antwort nicht verfügbar.', 'error');
                return;
            }

            console.log(`Benutzerantwort: "${userAnswer}", Richtige Antwort: "${correctAnswer}"`);

            if (userAnswer.toLowerCase() === correctAnswer.trim().toLowerCase()) {
                showToast('Richtig!', 'success');
            } else {
                showToast('Falsch.', 'error');
            }
        });
    });

    // Event-Delegation für "Antwort anzeigen" Buttons
    document.querySelectorAll('.show-answer').forEach(function (button, index) {
        button.addEventListener('click', function () {
            console.log(`Antwort anzeigen Button geklickt. Button Index: ${index}`);
            const variableContainer = this.closest('.variable-container');
            if (!variableContainer) {
                console.error('Variable Container nicht gefunden für Button:', this);
                showToast('Interner Fehler: Container nicht gefunden.', 'error');
                return;
            }
            const input = variableContainer.querySelector('input');
            if (!input) {
                console.error('Input Feld nicht gefunden in Variable Container:', variableContainer);
                showToast('Interner Fehler: Eingabefeld nicht gefunden.', 'error');
                return;
            }
            const correctAnswer = input.getAttribute('data-correct-answer');
            if (!correctAnswer) {
                console.error('Data-Correct-Answer Attribut fehlt im Input:', input);
                showToast('Interner Fehler: Richtige Antwort nicht verfügbar.', 'error');
                return;
            }

            console.log(`Richtige Antwort: "${correctAnswer}"`);
            showToast(`Richtige Antwort: ${correctAnswer}`, 'info');
        });
    });
});
