(() => {
    let timer = null;

    document.querySelector('.plugin_fulldisplay').addEventListener('click', (e) => {
        e.preventDefault();
        e.stopPropagation();
        const page = document.querySelector(JSINFO.fulldisplay.pageSelector);
        page.requestFullscreen();
        page.classList.add('fulldisplay');
        page.style.zoom = JSINFO.fulldisplay.zoom;

        if (JSINFO.fulldisplay.refresh) {
            timer = window.setInterval(async () => {
                const result = await fetch(window.location.href);
                if (result.ok) {
                    const text = await result.text();
                    const parser = new DOMParser();
                    const doc = parser.parseFromString(text, 'text/html');
                    page.innerHTML = doc.querySelector(JSINFO.fulldisplay.pageSelector).innerHTML;
                }
            }, JSINFO.fulldisplay.refresh * 1000);
        }
    });

    document.addEventListener('fullscreenchange', (e) => {
        if (document.fullscreenElement) return;

        const page = document.querySelector(JSINFO.fulldisplay.pageSelector);
        page.classList.remove('fulldisplay');
        page.style.zoom = '';

        if (timer) {
            window.clearInterval(timer);
            timer = null;
        }
    });

})();