function openDynamicPopup(subitem) { closeAllModals(); const modalTitle = document.getElementById('dynamicModalLabel'); if (subitem.icon && subitem.icon.class) { modalTitle.innerHTML = ` ${subitem.name}`; } else { modalTitle.innerText = subitem.name; } const identifierBox = document.getElementById('dynamicIdentifierBox'); const modalContent = document.getElementById('dynamicModalContent'); if (subitem.identifier) { identifierBox.classList.remove('d-none'); modalContent.value = subitem.identifier; } else { identifierBox.classList.add('d-none'); modalContent.value = ''; } const warningBox = document.getElementById('dynamicModalWarning'); if (subitem.warning) { warningBox.classList.remove('d-none'); document.getElementById('dynamicModalWarningText').innerHTML = marked.parse(subitem.warning); } else { warningBox.classList.add('d-none'); } const infoBox = document.getElementById('dynamicModalInfo'); if (subitem.info) { infoBox.classList.remove('d-none'); document.getElementById('dynamicModalInfoText').innerHTML = marked.parse(subitem.info); } else { infoBox.classList.add('d-none'); } const descriptionText = document.getElementById('dynamicDescriptionText'); if (!subitem.url && subitem.description) { descriptionText.classList.remove('d-none'); descriptionText.innerText = subitem.description; } else { descriptionText.classList.add('d-none'); descriptionText.innerText = ''; } const linkBox = document.getElementById('dynamicModalLink'); const linkHref = document.getElementById('dynamicModalLinkHref'); if (subitem.url) { linkBox.classList.remove('d-none'); linkHref.href = subitem.url; linkHref.innerText = subitem.description || "Open Link"; } else { linkBox.classList.add('d-none'); linkHref.href = '#'; } const alternativesSection = document.getElementById('dynamicAlternativesSection'); const alternativesList = document.getElementById('dynamicAlternativesList'); alternativesList.innerHTML = ''; if (subitem.alternatives && subitem.alternatives.length > 0) { alternativesSection.classList.remove('d-none'); subitem.alternatives.forEach(alt => { const listItem = document.createElement('li'); listItem.classList.add('list-group-item', 'd-flex', 'justify-content-between', 'align-items-center'); listItem.innerHTML = ` ${alt.name} `; listItem.querySelector('button').addEventListener('click', () => openDynamicPopup(alt)); alternativesList.appendChild(listItem); }); } else { alternativesSection.classList.add('d-none'); } const childrenSection = document.createElement('div'); childrenSection.classList.add('mt-4'); childrenSection.innerHTML = `