function updateLinkInterval(link, interval) { const currentHref = link.getAttribute("href"); const newHref = currentHref.replace( /default_interval=[om]/, `default_interval=${interval}` ); link.setAttribute("href", newHref); } function updateAmountDisplay(link, amount, interval) { const boldText = link.querySelector(".bold"); if (!boldText) return; const suffix = interval === "m" ? "€/mois" : "€"; boldText.innerHTML = `${amount}${suffix}`; } function switchActiveTab(clickedButton, allButtons) { allButtons.forEach((btn) => btn.classList.remove("is-selected")); clickedButton.classList.add("is-selected"); } function handleDonationIntervalChange(interval) { const donationLinks = document.querySelectorAll(".btn--donation[data-amount]"); const freeAmountLink = document.querySelector(".btn--donation:not([data-amount])"); donationLinks.forEach((link) => { const amount = link.getAttribute("data-amount"); updateLinkInterval(link, interval); updateAmountDisplay(link, amount, interval); }); if (freeAmountLink) { updateLinkInterval(freeAmountLink, interval); } } document.addEventListener("DOMContentLoaded", function () { const tabButtons = document.querySelectorAll(".nav--tabs__btn"); const donationLinks = document.querySelectorAll(".btn--donation[data-amount]"); if (tabButtons.length === 0 || donationLinks.length === 0) return; tabButtons.forEach((button) => { button.addEventListener("click", function () { const interval = this.getAttribute("data-interval"); switchActiveTab(this, tabButtons); handleDonationIntervalChange(interval); }); }); });