Let’s try this:

Monthly Home Cost Estimator

Estimated P&I: $0
Estimated total monthly: $0
Estimates only. Taxes and insurance vary by property and lender. Ask me for a property-specific breakdown.
(function() { function fmt(n) { if (!isFinite(n)) return “$0”; return n.toLocaleString(undefined, { style: “currency”, currency: “USD”, maximumFractionDigits: 0 }); } function monthlyPayment(loanAmount, annualRatePct, years) { var r = (annualRatePct / 100) / 12; var n = years * 12; if (r === 0) return loanAmount / n; return loanAmount * (r * Math.pow(1 + r, n)) / (Math.pow(1 + r, n) – 1); } function calc() { var price = Number(document.getElementById(“hp_price”).value || 0); var downPct = Number(document.getElementById(“hp_downPct”).value || 0); var rate = Number(document.getElementById(“hp_rate”).value || 0); var term = Number(document.getElementById(“hp_term”).value || 30); var tax = Number(document.getElementById(“hp_tax”).value || 0); var ins = Number(document.getElementById(“hp_ins”).value || 0); var hoa = Number(document.getElementById(“hp_hoa”).value || 0); var down = price * (downPct / 100); var loan = Math.max(price – down, 0); var pi = monthlyPayment(loan, rate, term); var total = pi + tax + ins + hoa; document.getElementById(“hp_pi”).textContent = fmt(pi); document.getElementById(“hp_total”).textContent = fmt(total); } function init() { var btn = document.getElementById(“hp_calcBtn”); if (!btn) return; btn.addEventListener(“click”, calc); calc(); } if (document.readyState === “loading”) { document.addEventListener(“DOMContentLoaded”, init); } else { init(); } })();