import { Plugin } from '../../core/ui/js/Plugin.js';
const PLUGIN_NAME = 'thesauri';

class thesauriPlugin extends Plugin {
    constructor(name) {
        super(name);
        const parser = new DOMParser();

        let node =
            parser.parseFromString(
                '<div id="thesauriPDN" class="fenetreModale" style="display: none;" tabindex="-1" role="dialog">' +
                '<div class="fenetreModale-content">' +
                '<div class="fenetreModale-header" style="text-align:right">' +
                '<span class="close" id="closemodal">X</span>' +
                '</div>' +
                '<div class="fenetreModale-bodySection">' +
                '</div>' +
                '</div>' +
                '</div>',
                "text/html")
                .documentElement.querySelector('#thesauriPDN');

        document.body.append(document.importNode(node, true));
        document.getElementById('thesauriPDN').style.display = 'none';

        let fermer = document.getElementById("closemodal");
        fermer.setAttribute("onclick", "document.getElementById('thesauriPDN').style.display='none'")

    }

    //DEBUT fenêtre modale : pour afficher les notices personnes dans une fenêtre modale
    showInWindow(thesaurus, target, sousLieu) {

        // Get the modal
        var modal = document.getElementById("thesauriPDN");
        // Get the <span> element that closes the modal
        var span = document.getElementsByClassName("close")[0];

        var url = "https://thesauri.unicaen.fr/autorites/" + thesaurus + "/fragment_html/" + target + ".html?wrap=false";
        console.log(url)
        fetch(url, { credentials: "include" }).then(res => res.text()).then(text => {
            document.querySelector(".fenetreModale-bodySection").innerHTML = text;
            modal.style.display = "block";

            var sousLieuStr = String(sousLieu);
       
            // if (modal.querySelector('#' + idSpan))
            if (sousLieuStr.includes("pddn_l"))
            {var sousEntrees = modal.querySelectorAll('.sousEntree');
                sousEntrees.forEach(function(element) {
                if (element.id !== sousLieu) {
                    element.style.display = 'none';
                } else {
                    element.style.display = 'block';
                }
                });
                var divSousEntrees = modal.querySelector(".DivLieux2");
                var pSousEntrees = divSousEntrees.firstChild;
                pSousEntrees.style.display = 'none';
            }

            if (modal.querySelector(".person")) {
                var toggler = modal.getElementsByClassName("togglerInfobulle");
                var i;
                var bdp = document.querySelector(".bas_de_pageModal");
                let cpt = 0;
                for (i = 0; i < toggler.length; i++) {
                    cpt++;
                    let sup = document.createElement("sup");
                    toggler[i].appendChild(sup);
                    sup.innerHTML = cpt;
                    sup.setAttribute("id", "appelNote" + cpt);
                    let content = toggler[i].nextElementSibling.innerHTML;
                    let p = document.createElement("p");
                    bdp.append(p);
                    p.setAttribute("class", "note_bas_de_page");
                    let numnote = document.createElement("span");
                    numnote.setAttribute("class", "num_note");
                    numnote.setAttribute("onclick", "scrollToID('appelNote" + cpt + "');");
                    p.append(numnote);
                    numnote.innerHTML = cpt + ". ";
                    let txtnote = document.createElement("span");
                    txtnote.setAttribute("class", "note_bdp");
                    p.append(txtnote);
                    txtnote.innerHTML = content;
                }
            }

        })

        // When the user clicks on <span> (x), close the modal
        span.onclick = function () {
            modal.style.display = "none";
        }

        // When the user clicks anywhere outside of the modal, close it
        window.onclick = function (event) {
            if (event.target == modal) {
                modal.style.display = "none";
            }
        }

    }
}

// let thesauri = document.getElementById('loadTestJS')
// thesauri.addEventListener('change', function() {
//     var checkbox = this;
//     if (checkbox.checked) {
//         // Charger test.js
//        document.querySelectorAll('.personne').forEach((e) => e.style.color = '#23527c');
//        document.querySelectorAll('.lieu').forEach((e) => e.style.color = '#0f6c41')
//     } else {
//         // Retirer test.js s'il a été chargé
//         document.querySelectorAll('.personne').forEach((e) => e.style.color = 'inherit');
//         document.querySelectorAll('.lieu').forEach((e) => e.style.color = 'inherit')
//     }
// });



MAX.addPlugin(new thesauriPlugin('thesauri'));


//FIN fenêtre modale
