// Funzione goBack
window.goBack = function () {
    console.log("goBack");
    history.back();
};

// Funzione per aggiungere tabindex ai bottoni
function addTabindexToButtons() {
    document.querySelectorAll('button.custom-plus-button').forEach(btn => {
        if (!btn.hasAttribute('tabindex')) {
            btn.setAttribute('tabindex', '0');
        }
    });
}

// Funzione per monitorare la classe expanded e aggiungere ah-calendar-m
function monitorExpandedClass(mutations) {
    mutations.forEach(function (mutation) {
        if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
            const target = mutation.target;

            if (target.classList.contains('week-slider') && target.classList.contains('expanded')) {
                const appointments = document.querySelector('.appointments');
                if (appointments) {
                    appointments.classList.add('ah-calendar-m');
                    console.log('Classe "ah-calendar-m" aggiunta a .appointments');
                }
            }
            // Rimuovi la classe quando expanded viene rimossa
            else if (target.classList.contains('week-slider') && !target.classList.contains('expanded')) {
                const appointments = document.querySelector('.appointments');
                if (appointments) {
                    appointments.classList.remove('ah-calendar-m');
                    console.log('Classe "ah-calendar-m" rimossa da .appointments');
                }
            }
        }
    });
}

// Funzione per monitorare bottom-sheet-container e gestire la navbar
function monitorBottomSheetClass(mutations) {
    const bottomSheet = document.querySelector(".bottom-sheet-container");
    const navbar = document.querySelector(".animated-navbar");

    if (!bottomSheet || !navbar) return;

    mutations.forEach(function (mutation) {
        if (mutation.type === 'attributes' && mutation.attributeName === 'class' && mutation.target === bottomSheet) {
            if (bottomSheet.classList.contains("show")) {
                navbar.classList.remove("show-nav");
                navbar.classList.add("hide-nav");
                console.log("Navbar nascosta (hide-nav)");
            } else {
                navbar.classList.remove("hide-nav");
                navbar.classList.add("show-nav");
                console.log("Navbar mostrata (show-nav)");
            }
        }
    });
}

// Esegui la funzione tabindex inizialmente
addTabindexToButtons();

// Observer combinato per tutte le funzionalità
const observer = new MutationObserver((mutations) => {
    // Aggiungi tabindex ai nuovi bottoni
    addTabindexToButtons();

    // Monitora le classi expanded
    monitorExpandedClass(mutations);

    // Monitora bottom-sheet-container
    monitorBottomSheetClass(mutations);
});

// Osserva sia i cambiamenti nel DOM che gli attributi
observer.observe(document.body, {
    childList: true,
    subtree: true,
    attributes: true,
    attributeFilter: ['class']
});

// Sync iniziale per la navbar (nel caso la pagina parte già con .show)
document.addEventListener("DOMContentLoaded", () => {
    const bottomSheet = document.querySelector(".bottom-sheet-container");
    const navbar = document.querySelector(".animated-navbar");

    if (bottomSheet && navbar) {
        if (bottomSheet.classList.contains("show")) {
            navbar.classList.remove("show-nav");
            navbar.classList.add("hide-nav");
        } else {
            navbar.classList.remove("hide-nav");
            navbar.classList.add("show-nav");
        }
    }
});
