export const ModalManager = {
    displayModal: displayModal,
    dispelModal: dispelModal
};

function displayModal (modalId, backgroundId, closeButtonId) {
    const modal = document.getElementById(modalId);
    const modalOverlay = document.getElementById(backgroundId);
    const closeBtn = document.getElementById(closeButtonId);
    let closeModalHandler;
    if (modal && modalOverlay && closeBtn) {
        modal.style.display = 'flex';
        modalOverlay.style.display = 'flex';
        modalOverlay.removeEventListener('click', closeModalHandler);
        modalOverlay.addEventListener('click', closeModalHandler = function (e) {
            e.preventDefault();
            dispelModal(modalId, backgroundId);
        });
        closeBtn.removeEventListener('click', closeModalHandler);
        closeBtn.addEventListener('click', closeModalHandler);
    } else {
        throw new Error('One or more of the ids supplied to ModalManager.displayModal is invalid.');
    }
    modal.focus();
}

function dispelModal (modalId, backgroundId) {
    const modal = document.getElementById(modalId);
    const modalOverlay = document.getElementById(backgroundId);
    if (modal && modalOverlay) {
        modal.style.display = 'none';
        modalOverlay.style.display = 'none';
    }
}
