(function () { function formatInr(n) { n = String(Math.round(Number(n) || 0)); if (n.length <= 3) return n; return n.slice(0, -3).replace(/\B(?=(\d{2})+(?!\d))/g, ",") + "," + n.slice(-3); } function lakhLabel(n) { n = Number(n) || 0; if (n < 100000) return ""; var lakh = Math.round(n / 100000); return "₹" + lakh + " Lakh"; } function formatDate(iso) { if (!iso) return ""; var d = new Date(String(iso).replace(" ", "T")); if (isNaN(d.getTime())) return iso; var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; var hh = String(d.getHours()).padStart(2, "0"); var mm = String(d.getMinutes()).padStart(2, "0"); var ss = String(d.getSeconds()).padStart(2, "0"); return d.getDate() + " " + months[d.getMonth()] + " " + d.getFullYear() + " - " + hh + ":" + mm + ":" + ss; } function checkoutIsTest() { var html = document.documentElement.innerHTML || ""; return /key:\s*['"]rzp_test_/.test(html); } function checkoutKey() { var html = document.documentElement.innerHTML || ""; var m = html.match(/key:\s*['"](rzp_[a-z]+_[A-Za-z0-9]+)['"]/); return m ? m[1] : ""; } function isIsolatedPayment(paymentId, testFlag) { var pid = String(paymentId || ""); if (testFlag) return true; if (pid.indexOf("pay_test") === 0 || pid.indexOf("test_") === 0) return true; if (checkoutIsTest()) return true; return false; } function updateDonateLabels(amount) { amount = parseInt(amount, 10) || 0; var label = amount ? "Donate \u20B9 " + formatInr(amount) : "Donate Now"; ["customDonateBtn", "donateBtn", "donate-btn-page2"].forEach(function (id) { var el = document.getElementById(id); if (el) el.textContent = label; }); document.querySelectorAll("#mobileDonateBtn, .mobile-donate-btn").forEach(function (el) { el.textContent = "Donate Now"; }); var others = document.querySelector(".sanatan-others-btn"); if (others) { var presets = [516, 2116, 3116]; others.classList.toggle("active", amount > 0 && presets.indexOf(amount) === -1); } } function resolveDonationAmount(extras) { extras = extras || {}; var explicit = Number(extras.amount); if (explicit >= 1) return Math.round(explicit); if (Number(window.__sanatanAmount) >= 1) return Math.round(window.__sanatanAmount); if (Number(extras.paise) >= 100) { var rupees = Number(extras.paise) / 100; var base = Math.round(rupees / 1.05); if (base >= 1) return base; return Math.round(rupees); } var ids = ["customAmountPage2", "customAmount"]; var i; for (i = 0; i < ids.length; i++) { var el = document.getElementById(ids[i]); var n = el ? parseInt(el.value, 10) : 0; if (n >= 1) return n; } var finalEl = document.getElementById("finalAmount"); if (finalEl) { var shown = parseFloat(String(finalEl.textContent || "").replace(/[^\d.]/g, "")); if (shown >= 1) return Math.round(shown / 1.05); } return 0; } function setDonationAmount(amount) { window.__sanatanFromCart = true; amount = parseInt(amount, 10) || 0; window.__sanatanAmount = amount; window.selectedAmount = amount; ["customAmount", "customAmountPage2"].forEach(function (id) { var el = document.getElementById(id); if (!el) return; el.value = amount; el.dispatchEvent(new Event("input", { bubbles: true })); el.dispatchEvent(new Event("change", { bubbles: true })); }); document.querySelectorAll(".amount-btn, .amount-option").forEach(function (btn) { var match = parseInt(btn.getAttribute("data-amount"), 10) === amount; btn.classList.toggle("active", match); btn.classList.toggle("selected", match); }); var pctEl = document.getElementById("progressText"); var pct = 5; if (pctEl && /(\d+)%/.test(pctEl.textContent || "")) { pct = parseInt(RegExp.$1, 10) || 5; } var tip = amount * (pct / 100); var finalEl = document.getElementById("finalAmount"); if (finalEl) finalEl.textContent = "₹" + (amount + tip).toFixed(2); var prog = document.getElementById("progressText"); if (prog) prog.textContent = pct + "% (₹" + tip.toFixed(2) + ")"; updateDonateLabels(amount); window.__sanatanFromCart = false; } function showCheckoutError(msg) { var box = document.getElementById("errorMessage"); var text = document.getElementById("errorText"); if (text) text.textContent = msg || ""; if (box) box.style.display = msg ? "block" : "none"; var extra = document.querySelector(".sanatan-checkout-error"); if (!extra && msg) { extra = document.createElement("div"); extra.className = "sanatan-checkout-error"; var host = document.getElementById("secondPage") || document.body; host.insertBefore(extra, host.firstChild); } if (extra) { extra.textContent = msg || ""; extra.style.display = msg ? "block" : "none"; } } function isDesktopWidget() { return window.matchMedia("(min-width: 769px)").matches; } function ensureCheckoutPlaceStyle() { if (document.getElementById("sanatan-checkout-place-style")) return; var s = document.createElement("style"); s.id = "sanatan-checkout-place-style"; s.textContent = "@media (min-width:769px){#firstPage.donation-box.sanatan-donate-card.sanatan-hide-for-checkout{display:none!important}.elementor-element.sanatan-checkout-pinned,.elementor-element.sanatan-checkout-pinned .elementor-widget-container{max-height:calc(100vh - 80px)!important;overflow:hidden!important}#secondPage{max-height:calc(100vh - 80px)!important;overflow-y:auto!important}}"; document.head.appendChild(s); } function pinCheckoutHost(on) { var second = document.getElementById("secondPage"); var widget = second && second.closest(".elementor-element"); if (!widget) return; if (on) { widget.classList.add("sanatan-checkout-pinned"); } else { widget.classList.remove("sanatan-checkout-pinned"); widget.style.removeProperty("max-height"); widget.style.removeProperty("overflow"); widget.style.removeProperty("position"); widget.style.removeProperty("top"); } } function showCheckoutInWidget() { ensureCheckoutPlaceStyle(); var first = document.getElementById("firstPage"); var second = document.getElementById("secondPage"); var overlay = document.getElementById("mobilePopupOverlay"); if (!isDesktopWidget()) return false; if (first) first.classList.add("sanatan-hide-for-checkout"); if (second) { second.style.display = "block"; second.style.visibility = "visible"; } pinCheckoutHost(true); if (overlay) overlay.style.display = "none"; document.body.style.overflow = ""; return true; } function hideCheckoutInWidget() { var first = document.getElementById("firstPage"); if (first) first.classList.remove("sanatan-hide-for-checkout"); pinCheckoutHost(false); } function openDonate() { var overlay = document.getElementById("mobilePopupOverlay"); var second = document.getElementById("secondPage"); var first = document.getElementById("firstPage"); if (!showCheckoutInWidget()) { if (overlay) overlay.style.display = "block"; if (second) { second.style.display = "block"; second.style.visibility = "visible"; } if (first) first.style.display = "none"; document.body.style.overflow = "hidden"; if (second && second.scrollIntoView) { second.scrollIntoView({ behavior: "smooth", block: "start" }); } } var page2 = document.getElementById("customAmountPage2"); var page1 = document.getElementById("customAmount"); if (page2 && (!page2.value || Number(page2.value) < 1) && page1 && page1.value) { page2.value = page1.value; page2.dispatchEvent(new Event("input", { bubbles: true })); } showCheckoutError(""); } function productCard(opts) { var pct = opts.goal > 0 ? Math.min(100, (opts.obtained / opts.goal) * 100) : 0; var qty = opts.goal ? '
' + opts.obtained + " of " + opts.goal + " Quantity obtained
" + '
' : ""; var action = opts.price ? '
' + String.fromCharCode(0x20B9) + formatInr(opts.price) + "" + '
' + '' + '
' + '' + '0' + '
' : '
'; return ( '
' + '' + opts.title.replace(/' + '
' + "

" + opts.title + "

" + (opts.desc ? '
' + opts.desc + "
" : "") + qty + action + "
" ); } function isDonorListPage() { return !!(document.querySelector(".sanatan-donorlist-page, #sanatan-donorlist") || /\/donorlist\/?$/.test(location.pathname)); } function cleanDonorListPage() { if (!isDonorListPage()) return; if (!document.getElementById("sanatan-donorlist-clean")) { var s = document.createElement("style"); s.id = "sanatan-donorlist-clean"; s.textContent = "body:has(.sanatan-donorlist-page) #site-header,body:has(.sanatan-donorlist-page) .site-header,body:has(.sanatan-donorlist-page) #site-footer,body:has(.sanatan-donorlist-page) .site-footer,body:has(.sanatan-donorlist-page) .entry-title,body:has(.sanatan-donorlist-page) #updates,body:has(.sanatan-donorlist-page) .sanatan-updates{display:none!important}"; document.head.appendChild(s); } var updates = document.getElementById("updates"); if (updates && updates.parentNode) updates.parentNode.removeChild(updates); } function applyProgress() { document.querySelectorAll(".sanatan-progress").forEach(function (el) { if (el.parentNode) el.parentNode.removeChild(el); }); } function renderSevas(data) { var sevas = document.getElementById("sevas"); if (!sevas) return; var p = data.products || {}; var cards = [ productCard({ product: "sqft", title: "Donate 1 sq.ft", img: "https://drive.google.com/thumbnail?id=1lguWIrgx63_invzNnUb_k7gOeAg9Dyp0&sz=s1600", desc: "The construction of Sri Aadi Varahi Amma and Sri Run Mukteshwar Mahadev temple is currently paused due to insufficient funds. With support from donors, only the foundational structure has been completed. To resume and complete the temple, materials like bricks, cement, iron, sand, paints, and other essentials are urgently needed. You can donate these items directly or contribute funds for specific materials. By supporting this cause, you become a Dharma Palaka and uphold the glory of Sanatana Dharma. During the Pratishta Karyakrama, your Gotra-name will be included in the Sankalpa, and Veda Pandits will pray to the deities for your family's wellbeing and spiritual upliftment.", obtained: (p.sqft && p.sqft.obtained) || 0, goal: (p.sqft && p.sqft.goal) || 5175, price: (p.sqft && p.sqft.price) || 2616, }), productCard({ product: "varahi", title: "Sri Adi Varahi Amma Vigraha and Pooja Samagri", img: "https://drive.google.com/thumbnail?id=1oNDgIM8B0bLl8ASddSmWQekl8h0rxgYC&sz=s1200", desc: "As part of the temple completion, we aim to install the Vigraha (idol) of Sri Aadi Varahi Amma, along with Abharanas, Alankara Samagri, and daily Puja Samagri. Donating towards these sacred items grants you the Punya of serving Veda Mata and ensures your offerings are used in Nitya Puja (daily worship). This divine service blesses your entire Vamsha (family lineage) with Punya, Bhakti, Jnana, Aayu, Aarogya, and Aishwarya. During the Pratishta Karyakrama, your Gotra-name will be chanted in the Sankalpa, and Veda Pandits will invoke blessings from Gayatri Devi on your behalf.", obtained: (p.varahi && p.varahi.obtained) || 0, goal: (p.varahi && p.varahi.goal) || 500, price: (p.varahi && p.varahi.price) || 301, }), productCard({ product: "nandi", title: "Donate to Sri Run Mukteshwar Shivalinga with Nandi", img: "https://drive.google.com/thumbnail?id=1SaODiu3ZF8rzaOOJfqtRea-p3CV8a2Hp&sz=s1200", desc: "Help us install the Vigraha (idol) of Sri Run Mukteshwar Shivalinga with Nandi by donating towards Abharanas, Alankara Samagri, and Puja Samagri. These offerings will be used in the temple's daily worship, bringing continuous Punya and divine grace to your entire Vamsha. Contributing to this cause is an opportunity to participate in the eternal service of the divine and to receive the blessings of Veda Mata. During the Pratishta Karyakrama, your Gotra-name will be chanted in the Sankalpa, and Veda Pandits will offer prayers to Gayatri Devi for your holistic wellbeing.", obtained: (p.nandi && p.nandi.obtained) || 0, goal: (p.nandi && p.nandi.goal) || 500, price: (p.nandi && p.nandi.price) || 1350, }), productCard({ product: "pratishta", title: "Donate to Pratishta Karyakrama", img: "https://sanatanintl.org/wp-content/uploads/2026/09/pratishta-karyakrama.jpg", desc: "The Pratishta Karyakrama is the sacred installation of Sri Aadi Varahi Amma and Sri Run Mukteshwar Mahadev, along with 27 Shivalingas and 27 Homa Kundas. Performed by expert Veda Pandits, the event involves powerful Shanti Homas and rituals as prescribed by the Vedas and Puranas. This divine ceremony incurs a high cost but brings unmatched spiritual rewards. By donating, you become a part of this Daiva Karyakrama and receive the blessings of the deities. Your Gotra-name will be recited during the Sankalpa, and Veda Pandits will seek divine grace for your health, prosperity, and spiritual growth.", obtained: (p.pratishta && p.pratishta.obtained) || 0, goal: (p.pratishta && p.pratishta.goal) || 500, price: (p.pratishta && p.pratishta.price) || 1350, }), ]; sevas.innerHTML = '
' + cards.join("") + "
"; bindSevaAddButtons(); if (!window.__sanatanStepBound) { window.__sanatanStepBound = true; document.addEventListener("click", function (e) { var add = e.target.closest(".sanatan-add-btn"); if (add && add.closest(".sanatan-stepper")) { var wrapAdd = add.closest(".sanatan-stepper"); var countAdd = wrapAdd.querySelector(".sanatan-step-count"); if (countAdd) countAdd.textContent = "1"; wrapAdd.classList.add("has-qty"); syncCartFromSteppers(); return; } var step = e.target.closest(".sanatan-step"); if (step) { var wrap = step.closest(".sanatan-stepper"); var countEl = wrap.querySelector(".sanatan-step-count"); var n = parseInt(countEl.textContent, 10) || 0; if (step.classList.contains("plus")) n += 1; if (step.classList.contains("minus")) n = Math.max(0, n - 1); countEl.textContent = n; wrap.classList.toggle("has-qty", n > 0); syncCartFromSteppers(); } if (e.target.closest(".sanatan-donate-keep")) { openDonate(); } }); } } function bindSevaAddButtons() { document.querySelectorAll(".sanatan-stepper .sanatan-add-btn").forEach(function (add) { if (add.dataset.sanatanBound === "1") return; add.dataset.sanatanBound = "1"; add.addEventListener("click", function (e) { e.preventDefault(); e.stopPropagation(); var wrap = add.closest(".sanatan-stepper"); if (!wrap) return; var countEl = wrap.querySelector(".sanatan-step-count"); if (countEl) countEl.textContent = "1"; wrap.classList.add("has-qty"); syncCartFromSteppers(); }); }); } function resetSteppers() { document.querySelectorAll(".sanatan-stepper").forEach(function (wrap) { var countEl = wrap.querySelector(".sanatan-step-count"); if (countEl) countEl.textContent = "0"; wrap.classList.remove("has-qty"); }); } function cartLines() { var items = []; document.querySelectorAll(".sanatan-stepper").forEach(function (wrap) { var n = parseInt((wrap.querySelector(".sanatan-step-count") || {}).textContent, 10) || 0; var product = wrap.getAttribute("data-product") || ""; var price = parseInt(wrap.getAttribute("data-price"), 10) || 0; if (n > 0 && product) { items.push({ product: product, qty: n, price: price }); } }); return items; } function cartTotal() { var total = 0; document.querySelectorAll(".sanatan-stepper").forEach(function (wrap) { var n = parseInt((wrap.querySelector(".sanatan-step-count") || {}).textContent, 10) || 0; var price = parseInt(wrap.getAttribute("data-price"), 10) || 0; total += n * price; }); return total; } function syncCartFromSteppers() { var total = cartTotal(); setDonationAmount(total > 0 ? total : 2116); } function removeGallery() { var nav = document.getElementById("navMenu"); if (nav) { nav.querySelectorAll('a[href="#gallery"]').forEach(function (a) { var li = a.closest("li"); if (li && li.parentNode) li.parentNode.removeChild(li); }); } var gallery = document.getElementById("gallery"); if (gallery) { gallery.style.display = "none"; gallery.setAttribute("hidden", "hidden"); } } function addUpdatesTab() { var nav = document.getElementById("navMenu"); if (!nav) return; removeGallery(); if (!nav.querySelector('a[href="#updates"]')) { var li = document.createElement("li"); li.innerHTML = 'Updates'; nav.appendChild(li); } } function showCampaignPanel(id) { var sevas = document.getElementById("sevas"); var updates = document.getElementById("updates"); var progress = document.querySelector(".sanatan-progress"); if (sevas) sevas.style.display = ""; if (progress) progress.style.display = ""; if (updates) { updates.style.display = "block"; updates.classList.add("is-visible"); } var nav = document.getElementById("navMenu"); if (nav) { nav.querySelectorAll("a").forEach(function (a) { a.classList.toggle("active", a.getAttribute("href") === "#" + id); }); } var target = document.getElementById(id); if (target && target.scrollIntoView) { target.scrollIntoView({ behavior: "smooth", block: "start" }); } } function wireCampaignTabs() { var nav = document.getElementById("navMenu"); var sevas = document.getElementById("sevas"); var updates = document.getElementById("updates"); if (!nav || nav.dataset.sanatanTabs === "1") return; nav.dataset.sanatanTabs = "1"; placeUpdatesBeforeContact(updates); if (updates) { updates.style.display = "block"; updates.classList.add("is-visible"); } nav.addEventListener("click", function (e) { var a = e.target.closest('a[href="#updates"], a[href="#sevas"]'); if (!a) return; e.preventDefault(); showCampaignPanel(a.getAttribute("href").slice(1)); }); } function updatesInnerHtml(data) { var updates = data.updates || []; var inner = "

Updates

"; if (!updates.length) { return inner + '
Updates will appear here.
'; } inner += '
'; updates.forEach(function (u, i) { var thumbs = (u.thumbs || []) .map(function (src) { return ''; }) .join(""); inner += '
' + '
' + "
" + '

' + (u.date || "") + "

" + "

" + (u.title || "") + "

" + (u.content || "") + (u.image ? '' : "") + (thumbs ? '
' + thumbs + "
" : "") + "
"; }); inner += "
"; if (updates.length > 2) { inner += ''; } return inner; } function placeUpdatesBeforeContact(wrap) { if (!wrap) return; var contact = document.getElementById("temple-contact-container"); if (contact && contact.parentNode) { if (wrap.nextElementSibling !== contact) { contact.parentNode.insertBefore(wrap, contact); } return; } var heading = Array.prototype.find.call(document.querySelectorAll("h1,h2,h3"), function (h) { return /contact us/i.test(h.textContent || ""); }); var host = heading && (heading.closest("#temple-contact-container") || heading.closest(".elementor-element") || heading.parentElement); if (host && host.parentNode && wrap.nextElementSibling !== host) { host.parentNode.insertBefore(wrap, host); } } function renderUpdates(data) { if (isDonorListPage()) return; var wrap = document.getElementById("updates"); if (!wrap) { wrap = document.createElement("div"); wrap.id = "updates"; wrap.className = "sanatan-updates"; } placeUpdatesBeforeContact(wrap); if (!wrap.parentNode) { var sevas = document.getElementById("sevas"); if (sevas && sevas.parentNode) { sevas.parentNode.appendChild(wrap); } else { document.body.appendChild(wrap); } } wrap.classList.add("sanatan-updates", "is-visible"); wrap.style.display = "block"; wrap.innerHTML = updatesInnerHtml(data); var more = wrap.querySelector(".sanatan-show-more"); if (more && !more.dataset.bound) { more.dataset.bound = "1"; more.addEventListener("click", function () { wrap.querySelectorAll(".sanatan-update-item.is-collapsed").forEach(function (item) { item.classList.remove("is-collapsed"); }); more.style.display = "none"; }); } } function donorRows(list, limit) { var rows = Array.isArray(list) ? list.slice() : []; if (limit > 0) rows = rows.slice(0, limit); return rows .map(function (d) { var name = d.anonymous ? "Anonymous" : d.name; return ( '
' + '
' + (name || "A").charAt(0).toUpperCase() + "
" + '
' + name + "" + '
' + formatDate(d.date) + "
" + '
₹' + formatInr(d.amount) + "
" + "
" ); }) .join(""); } function donorListsHtml(data) { var donors = (data.donors || []).slice(); var recent = donors.slice().sort(function (a, b) { return new Date(b.date) - new Date(a.date); }); var generous = donors.slice().sort(function (a, b) { return Number(b.amount) - Number(a.amount); }); return ( "

Donors (" + donors.length + ")

" + '
' + '' + '' + "
" + '
' + donorRows(recent, 5) + "
" + '" + 'View More' ); } function bindDonorTabs(box) { if (box.dataset.sanatanTabs === "1") return; box.dataset.sanatanTabs = "1"; box.addEventListener("click", function (e) { var btn = e.target.closest("[data-tab]"); if (!btn) return; box.querySelectorAll("[data-tab]").forEach(function (b) { b.classList.toggle("active", b === btn); }); box.querySelectorAll(".sanatan-donor-list").forEach(function (list) { list.style.display = list.getAttribute("data-view") === btn.getAttribute("data-tab") ? "block" : "none"; }); }); } function applyDonors(data) { if (isDonorListPage()) return; var box = document.querySelector("#firstPage .sanatan-donors, .sanatan-donors:not(.sanatan-donors-mobile)"); if (box) { box.innerHTML = donorListsHtml(data); bindDonorTabs(box); return; } box = document.createElement("div"); box.className = "sanatan-donors"; box.innerHTML = donorListsHtml(data); bindDonorTabs(box); var first = document.getElementById("firstPage"); if (first) { first.appendChild(box); return; } var inserted = false; document.querySelectorAll("#secondPage p").forEach(function (p) { if (!inserted && /11,000/.test(p.textContent || "")) { p.insertAdjacentElement("afterend", box); inserted = true; } }); if (!inserted) { var second = document.getElementById("secondPage"); if (second) second.appendChild(box); } } function widgetProgressHtml(data) { var count = (data.donors || []).length; return ( '
' + '
' + data.percent + "%
" + '
' + count + " Donation" + (count === 1 ? "" : "s") + "
" + "
" + '
' + '
' + "\u20B9" + data.expenditureFmt + "" + "raised out of \u20B9" + data.estimateFmt + "" + "
" ); } function applyMobileProgress(data) { if (isDonorListPage()) return; var dest = document.querySelector(".sanatan-progress-mobile"); if (!dest) { dest = document.createElement("div"); dest.className = "sanatan-widget-progress sanatan-progress-mobile"; var donorsMobile = document.querySelector(".sanatan-donors-mobile"); var sevas = document.getElementById("sevas"); if (donorsMobile) { donorsMobile.insertAdjacentElement("beforebegin", dest); } else if (sevas) { sevas.insertAdjacentElement("afterend", dest); } else { return; } } dest.innerHTML = widgetProgressHtml(data); } function applyWidgetProgress(data) { var box = document.getElementById("firstPage"); if (!box) return; box.classList.add("sanatan-donate-card"); var html = widgetProgressHtml(data); var header = box.querySelector(".sanatan-widget-progress"); if (header) { header.innerHTML = html; } else { header = document.createElement("div"); header.className = "sanatan-widget-progress"; header.innerHTML = html; box.insertBefore(header, box.firstChild); } applyMobileProgress(data); } function styleDonateWidget(data) { var box = document.getElementById("firstPage"); if (!box) return; applyWidgetProgress(data); document.querySelectorAll(".amount-btn").forEach(function (btn) { var amt = parseInt(btn.getAttribute("data-amount"), 10); if (amt) btn.textContent = "\u20B9" + formatInr(amt); }); var options = box.querySelector(".amount-options"); if (options && !options.querySelector(".sanatan-others-btn")) { var others = document.createElement("div"); others.className = "sanatan-others-btn"; others.textContent = "others"; others.addEventListener("click", function () { resetSteppers(); document.querySelectorAll(".amount-btn").forEach(function (b) { b.classList.remove("active", "selected"); }); others.classList.add("active"); var input = document.getElementById("customAmount"); if (input) { input.focus(); input.select(); } }); options.appendChild(others); } document.querySelectorAll(".amount-btn, .amount-option").forEach(function (btn) { if (btn.dataset.sanatanPreset) return; btn.dataset.sanatanPreset = "1"; btn.addEventListener("click", function () { resetSteppers(); var amt = parseInt(btn.getAttribute("data-amount"), 10) || 0; if (amt) updateDonateLabels(amt); }); }); var custom = document.getElementById("customAmount"); if (custom && !custom.dataset.sanatanBound) { custom.dataset.sanatanBound = "1"; custom.addEventListener("input", function () { if (window.__sanatanFromCart) return; resetSteppers(); updateDonateLabels(custom.value); }); } var donate = document.getElementById("customDonateBtn") || document.getElementById("donateBtn"); if (donate) donate.style.display = "block"; updateDonateLabels((custom && custom.value) || 2116); } function removeTwoPercentTip() { var dropdown = document.getElementById("progress-dropdown"); if (dropdown) { dropdown.querySelectorAll("option").forEach(function (opt) { if (String(opt.value) === "2") { opt.parentNode.removeChild(opt); } }); dropdown.value = "5"; try { dropdown.dispatchEvent(new Event("change", { bubbles: true })); } catch (e) {} } var amount = 2116; var custom = document.getElementById("customAmount"); if (custom && custom.value) amount = parseInt(custom.value, 10) || amount; var tip = amount * 0.05; var prog = document.getElementById("progressText"); if (prog) prog.textContent = "5% (₹" + tip.toFixed(2) + ")"; var finalEl = document.getElementById("finalAmount"); if (finalEl) finalEl.textContent = "₹" + (amount + tip).toFixed(2); } function renameDonateOnce() { document.querySelectorAll(".tab").forEach(function (el) { if ((el.textContent || "").indexOf("Donate Once") !== -1) { el.textContent = "Donate Now"; } }); } function replaceTipCopy() { removeTwoPercentTip(); renameDonateOnce(); var tip = document.getElementById("viewMoreContent"); if (tip && window.SanatanCampaign && SanatanCampaign.tipHtml) { tip.innerHTML = SanatanCampaign.tipHtml; } document.querySelectorAll("#secondPage p").forEach(function (p) { if (/11,000/.test(p.textContent || "")) { p.classList.add("sanatan-nameplate-note"); } }); } function replaceSpellingInDom() { var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null); var node; var nodes = []; while ((node = walker.nextNode())) { if (!node.nodeValue || !/Run Mukteshwar/i.test(node.nodeValue)) continue; if (node.parentElement && node.parentElement.closest(".sanatan-product-card")) continue; nodes.push(node); } nodes.forEach(function (n) { n.nodeValue = n.nodeValue .replace(/Sri Run Mukteshwar/g, "Sri Runamukteshwar") .replace(/Run Mukteshwar/g, "Runamukteshwar") .replace(/sri run mukteshwar/gi, "Sri Runamukteshwar"); }); } function keepDefault2116() { setDonationAmount(2116); document.querySelectorAll('.amount-btn[data-amount="2116"], .amount-option[data-amount="2116"]').forEach(function (btn) { btn.classList.add("most-selected", "active", "selected", "most-selected-page2"); }); } function applyFullDonorList(data) { var full = document.querySelector(".sanatan-donorlist, #sanatan-donorlist, .donor-full-list"); if (!full || !data || !data.donors) return; var rows = data.donors.slice().sort(function (a, b) { return new Date(b.date) - new Date(a.date); }); full.innerHTML = donorRows(rows); } function applyCampaignData(data) { data = data || {}; cleanDonorListPage(); applyProgress(data); applyWidgetProgress(data); applyDonors(data); applyMobileProgress(data); renderUpdates(data); applyFullDonorList(data); if (data.products) { safeCall(renderSevas, data); } } function refetchProduction() { var url = window.SanatanCampaign && SanatanCampaign.rest; if (!url) return Promise.resolve(); return fetch(url, { credentials: "same-origin" }) .then(function (r) { return r.json(); }) .then(applyCampaignData) .catch(function () {}); } function recordDonation(payload) { var cfg = window.SanatanCampaign || {}; if (!cfg.donateRest) return Promise.resolve(null); return fetch(cfg.donateRest, { method: "POST", credentials: "omit", keepalive: true, headers: { "Content-Type": "application/json", "X-WP-Nonce": cfg.nonce || "", }, body: JSON.stringify(payload), }).then(function (r) { return r.json(); }); } function persistCapturedDonation(paymentId, extras) { extras = extras || {}; if (!paymentId) return Promise.resolve(null); var amount = resolveDonationAmount(extras); if (window.__sanatanLastPid === paymentId && window.__sanatanLastAmt >= 1) { return Promise.resolve(null); } if (amount < 1) return Promise.resolve(null); window.__sanatanLastPid = paymentId; window.__sanatanLastAmt = amount; var isolated = isIsolatedPayment(paymentId, extras.test || checkoutIsTest()); var anonEl = document.getElementById("anonymous"); var payload = { name: extras.name || ((document.getElementById("name") || {}).value || ""), amount: amount, anonymous: extras.anonymous != null ? extras.anonymous : !!(anonEl && anonEl.checked), payment_id: paymentId, key: checkoutKey(), test: isolated, items: extras.items || window.__sanatanCartLines || cartLines(), }; return recordDonation(payload) .then(function (res) { if (res && res.persisted && res.campaign && !res.test) { applyCampaignData(res.campaign); } else { return refetchProduction(); } }) .catch(function () { return refetchProduction(); }); } function emailFormSubmitAjax(name, email, mobile, gotra, amount, percentage, finalAmount, isAnonymous, get80GBenefit, paymentId) { var body = new URLSearchParams(); body.set("_subject", "New Donation Received - Payment Successful"); body.set("_template", "table"); body.set("_cc", "sanatanintl@gmail.com"); body.set("name", name || ""); body.set("email", email || ""); body.set("mobile", mobile || ""); body.set("gotra", gotra || "Not provided"); body.set("original_amount", "₹" + amount); body.set("addition_percentage", percentage + "%"); body.set("final_amount", "₹" + (Number(finalAmount) || 0).toFixed(2)); body.set("anonymous_donation", isAnonymous ? "Yes" : "No"); body.set("80G_benefit", get80GBenefit ? "Requested" : "Not requested"); body.set("payment_id", paymentId || "Not available"); body.set("payment_status", "Successful"); body.set("_captcha", "false"); return fetch("https://formsubmit.co/ajax/sanatanintl@gmail.com", { method: "POST", headers: { Accept: "application/json" }, body: body, }).catch(function () {}); } function hookDonationSave() { if (window.__sanatanDonateHooked) return; if (typeof window.saveToFormSubmit !== "function") return; window.__sanatanDonateHooked = true; var original = window.saveToFormSubmit; window.saveToFormSubmit = function (name, email, mobile, gotra, amount, percentage, finalAmount, isAnonymous, get80GBenefit, paymentId) { persistCapturedDonation(paymentId, { name: name, amount: amount, anonymous: !!isAnonymous, test: checkoutIsTest(), items: window.__sanatanCartLines || cartLines(), }) .then(function () { return emailFormSubmitAjax(name, email, mobile, gotra, amount, percentage, finalAmount, isAnonymous, get80GBenefit, paymentId); }) .catch(function () { if (typeof original === "function") { try { original(name, email, mobile, gotra, amount, percentage, finalAmount, isAnonymous, get80GBenefit, paymentId); } catch (e) {} } }); }; } function hookRazorpayPersist() { if (window.__sanatanRzpHooked) return; if (typeof window.Razorpay !== "function") return; window.__sanatanRzpHooked = true; var Orig = window.Razorpay; function Wrapped(opts) { opts = opts || {}; var userHandler = opts.handler; opts.handler = function (response) { var pid = response && response.razorpay_payment_id; persistCapturedDonation(pid, { name: ((document.getElementById("name") || {}).value || ""), paise: opts.amount, items: window.__sanatanCartLines || cartLines(), }); if (typeof userHandler === "function") { return userHandler.apply(this, arguments); } }; return new Orig(opts); } Wrapped.prototype = Orig.prototype; try { Object.keys(Orig).forEach(function (k) { try { Wrapped[k] = Orig[k]; } catch (e) {} }); } catch (e) {} window.Razorpay = Wrapped; } function bindCheckoutGuards() { var page2 = document.getElementById("donate-btn-page2"); if (page2 && page2.dataset.sanatanGuard !== "1") { page2.dataset.sanatanGuard = "1"; page2.addEventListener( "click", function (e) { window.__sanatanCartLines = cartLines(); var name = ((document.getElementById("name") || {}).value || "").trim(); var email = ((document.getElementById("email") || {}).value || "").trim(); var mobile = ((document.getElementById("mobile") || {}).value || "").trim(); if (!name || !email || !mobile) { showCheckoutError("Please enter your name, email, and mobile to continue."); return; } if (typeof window.Razorpay !== "function") { e.preventDefault(); e.stopImmediatePropagation(); showCheckoutError("Payment checkout could not load. Please refresh and try again."); } else { showCheckoutError(""); } }, true ); } ensureCheckoutPlaceStyle(); var donate = document.getElementById("customDonateBtn") || document.getElementById("donateBtn"); if (donate && donate.dataset.sanatanPlace !== "1") { donate.dataset.sanatanPlace = "1"; donate.addEventListener("click", function () { showCheckoutInWidget(); }); } var back = document.getElementById("backButton"); if (back && back.dataset.sanatanPlace !== "1") { back.dataset.sanatanPlace = "1"; back.addEventListener("click", function () { hideCheckoutInWidget(); }); } var mobileBtn = document.getElementById("mobileDonateBtn") || document.querySelector(".mobile-donate-btn"); if (mobileBtn && mobileBtn.dataset.sanatanOpen !== "1") { mobileBtn.dataset.sanatanOpen = "1"; mobileBtn.addEventListener( "click", function (e) { e.preventDefault(); e.stopPropagation(); openDonate(); }, true ); } } function safeCall(fn, arg) { try { fn(arg); } catch (e) {} } function boot(data) { data = data || {}; safeCall(cleanDonorListPage); safeCall(replaceSpellingInDom); safeCall(replaceTipCopy); safeCall(removeGallery); safeCall(addUpdatesTab); safeCall(applyProgress, data); safeCall(renderSevas, data); safeCall(renderUpdates, data); safeCall(wireCampaignTabs); safeCall(styleDonateWidget, data); safeCall(applyDonors, data); safeCall(applyMobileProgress, data); safeCall(applyFullDonorList, data); safeCall(keepDefault2116); safeCall(renameDonateOnce); safeCall(hookDonationSave); safeCall(hookRazorpayPersist); safeCall(bindCheckoutGuards); setTimeout(function () { safeCall(removeGallery); safeCall(addUpdatesTab); safeCall(applyProgress, data); safeCall(renderSevas, data); safeCall(renderUpdates, data); safeCall(wireCampaignTabs); safeCall(renameDonateOnce); safeCall(hookDonationSave); safeCall(hookRazorpayPersist); safeCall(bindCheckoutGuards); safeCall(applyMobileProgress, data); safeCall(applyFullDonorList, data); }, 400); } function start() { var fallback = { estimate: 13537800, estimateFmt: "1,35,37,800", expenditure: 16748, expenditureFmt: "16,748", percent: 0.1, products: { sqft: { obtained: 0, goal: 5175, price: 2616 }, varahi: { obtained: 0, goal: 500, price: 301 }, nandi: { obtained: 0, goal: 500, price: 1350 }, pratishta: { obtained: 0, goal: 500, price: 1350 }, }, donors: [ { name: "Rahul Sharma", amount: 2116, date: "2026-07-21 10:15:00", anonymous: false }, { name: "Priya Patel", amount: 3116, date: "2026-07-20 18:42:00", anonymous: false }, { name: "Anonymous", amount: 516, date: "2026-07-19 09:05:00", anonymous: true }, { name: "Rajesh Kumar", amount: 5000, date: "2026-07-18 14:22:00", anonymous: false }, { name: "Anonymous", amount: 3500, date: "2026-07-17 11:30:00", anonymous: true }, { name: "Sunita Devi", amount: 2500, date: "2026-07-16 16:48:00", anonymous: false }, ], updates: [], }; var url = window.SanatanCampaign && SanatanCampaign.rest; if (!url) { boot(fallback); return; } fetch(url, { credentials: "same-origin" }) .then(function (r) { return r.json(); }) .then(boot) .catch(function () { boot(fallback); }); var tries = 0; var timer = setInterval(function () { hookDonationSave(); hookRazorpayPersist(); bindCheckoutGuards(); tries += 1; if ((window.__sanatanDonateHooked && window.__sanatanRzpHooked) || tries > 20) clearInterval(timer); }, 250); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", start); } else { start(); } })();