const tabs = Array.from(document.querySelectorAll('[role="tab"]')); function selectTab(tab) { for (const item of tabs) { const selected = item === tab; item.setAttribute('aria-selected', String(selected)); item.tabIndex = selected ? 0 : -1; const panel = document.getElementById(item.dataset.panel); panel.hidden = !selected; if (!selected) panel.querySelectorAll('video').forEach(video => video.pause()); } } tabs.forEach((tab, index) => { tab.addEventListener('click', () => selectTab(tab)); tab.addEventListener('keydown', event => { let next; if (event.key === 'ArrowRight') next = (index + 1) % tabs.length; if (event.key === 'ArrowLeft') next = (index + tabs.length - 1) % tabs.length; if (event.key === 'Home') next = 0; if (event.key === 'End') next = tabs.length - 1; if (next === undefined) return; event.preventDefault(); selectTab(tabs[next]); tabs[next].focus(); }); }); document.getElementById('copy-citation').addEventListener('click', async () => { const text = document.getElementById('bibtex').textContent; const status = document.getElementById('copy-status'); try { await navigator.clipboard.writeText(text); status.textContent = 'BibTeX copied.'; } catch { const selection = window.getSelection(); const range = document.createRange(); range.selectNodeContents(document.getElementById('bibtex')); selection.removeAllRanges(); selection.addRange(range); status.textContent = 'Citation selected. Use your browser’s Copy command.'; } });