{"id":2391,"date":"2025-08-12T12:59:26","date_gmt":"2025-08-12T16:59:26","guid":{"rendered":"https:\/\/sanimortgage.com\/?page_id=2391"},"modified":"2025-08-12T13:42:57","modified_gmt":"2025-08-12T17:42:57","slug":"first-time-buyer-2","status":"publish","type":"page","link":"https:\/\/sanimortgage.com\/fa\/first-time-buyer-2\/","title":{"rendered":"\u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u067e\u0631\u062f\u0627\u062e\u062a \u0648\u0627\u0645 \u0645\u0633\u06a9\u0646"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"2391\" class=\"elementor elementor-2391\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-336248c e-flex e-con-boxed e-con e-parent\" data-id=\"336248c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-114ac67 elementor-widget elementor-widget-html\" data-id=\"114ac67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n  .my-mortgage-calculator {\n    display: flex;\n    gap: 40px;\n    width: 100%;       \/* full width *\/\n    box-sizing: border-box;\n    padding: 20px 0;\n  }\n\n  \/* Left column: Calculator *\/\n  .calculator {\n    flex: 1 1 50%;\n    background: #fff;\n    border-radius: 10px;\n    padding: 30px 35px;\n    box-shadow: 0 10px 30px rgba(0,0,0,0.1);\n    box-sizing: border-box;\n    min-width: 0; \/* important for flexbox *\/\n  }\n  .calculator h2 {\n    font-weight: 700;\n    margin-bottom: 25px;\n    color: #007a3e;\n    text-align: center;\n    font-size: 28px;\n  }\n  .calculator label {\n    font-weight: 600;\n    margin-top: 18px;\n    display: block;\n    margin-bottom: 6px;\n    color: #333;\n    font-size: 15px;\n  }\n  .calculator input[type=\"number\"],\n  .calculator select {\n    width: 100%;\n    padding: 11px 14px;\n    font-size: 16px;\n    border: 1.8px solid #ccc;\n    border-radius: 6px;\n    transition: border-color 0.3s ease;\n    box-sizing: border-box;\n  }\n  .calculator input[type=\"number\"]:focus,\n  .calculator select:focus {\n    border-color: #007a3e;\n    outline: none;\n  }\n  .calculator .row {\n    display: flex;\n    gap: 20px;\n    margin-top: 12px;\n    flex-wrap: wrap;\n  }\n  .calculator .row > div {\n    flex: 1 1 200px;\n    min-width: 140px;\n  }\n  .calculator button {\n    margin-top: 30px;\n    width: 100%;\n    padding: 14px;\n    font-size: 18px;\n    font-weight: 700;\n    color: white;\n    background-color: #007a3e;\n    border: none;\n    border-radius: 7px;\n    cursor: pointer;\n    transition: background-color 0.3s ease;\n  }\n  .calculator button:hover {\n    background-color: #005b28;\n  }\n\n  \/* Right column: Results *\/\n  .results {\n    flex: 1 1 50%;\n    background-color: #e6f4ea;\n    border-radius: 10px;\n    padding: 30px 35px;\n    box-sizing: border-box;\n    color: #005b28;\n    font-weight: 700;\n    font-size: 18px;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-start;\n    gap: 20px;\n    min-width: 0; \/* important *\/\n  }\n  .results p {\n    margin: 0;\n  }\n\n  \/* Large monthly payment at top center *\/\n  .monthly-payment-large {\n    font-size: 60px;\n    text-align: center;\n    font-weight: 900;\n    color: #004b1a;\n  }\n\n  \/* Label + value row *\/\n  .result-row {\n    display: flex;\n    justify-content: space-between;\n    font-size: 20px;\n    padding: 6px 0;\n    border-bottom: 1px solid #b5d6b4;\n  }\n\n  \/* Responsive for mobile *\/\n  @media (max-width: 760px) {\n    .my-mortgage-calculator {\n      flex-direction: column;\n      gap: 25px;\n    }\n    .calculator, .results {\n      flex: none;\n      width: 100%;\n      min-width: auto;\n    }\n    .monthly-payment-large {\n      font-size: 60px;\n    }\n  }\n<\/style>\n\n<div class=\"my-mortgage-calculator\" role=\"main\" aria-label=\"\u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0648\u0627\u0645 \u0645\u0633\u06a9\u0646 \u0648 \u0646\u062a\u0627\u06cc\u062c\">\n  <form class=\"calculator\" role=\"form\" aria-label=\"\u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u067e\u0631\u062f\u0627\u062e\u062a \u0648\u0627\u0645 \u0645\u0633\u06a9\u0646\" onsubmit=\"return false;\" action=\"\">\n    <h2>\u0645\u0627\u0634\u06cc\u0646 \u062d\u0633\u0627\u0628 \u067e\u0631\u062f\u0627\u062e\u062a \u0648\u0627\u0645 \u0645\u0633\u06a9\u0646<\/h2>\n\n    <label for=\"purchase-price\">\u0642\u06cc\u0645\u062a \u062e\u0631\u06cc\u062f (\u062f\u0644\u0627\u0631)<\/label>\n    <input type=\"number\" id=\"purchase-price\" min=\"0\" step=\"0.01\" value=\"1000000\" required aria-required=\"true\" \/>\n\n    <label for=\"down-payment\">\u067e\u06cc\u0634\u200c\u067e\u0631\u062f\u0627\u062e\u062a (\u062f\u0644\u0627\u0631)<\/label>\n    <input type=\"number\" id=\"down-payment\" min=\"0\" step=\"0.01\" value=\"100000\" required aria-required=\"true\" \/>\n\n    <div class=\"row\">\n      <div>\n        <label for=\"mortgage-term\">\u0645\u062f\u062a \u0648\u0627\u0645 \u0645\u0633\u06a9\u0646 (\u0633\u0627\u0644)<\/label>\n        <select id=\"mortgage-term\" aria-required=\"true\">\n          <option value=\"1\">\u06f1 \u0633\u0627\u0644<\/option>\n          <option value=\"2\">\u06f2 \u0633\u0627\u0644<\/option>\n          <option value=\"3\">\u06f3 \u0633\u0627\u0644<\/option>\n          <option value=\"4\">\u06f4 \u0633\u0627\u0644<\/option>\n          <option value=\"5\" selected>\u06f5 \u0633\u0627\u0644<\/option>\n          <option value=\"6\">\u06f6 \u0633\u0627\u0644<\/option>\n          <option value=\"7\">\u06f7 \u0633\u0627\u0644<\/option>\n          <option value=\"8\">\u06f8 \u0633\u0627\u0644<\/option>\n          <option value=\"9\">\u06f9 \u0633\u0627\u0644<\/option>\n          <option value=\"10\">\u06f1\u06f0 \u0633\u0627\u0644<\/option>\n        <\/select>\n      <\/div>\n\n      <div>\n        <label for=\"mortgage-rate\">\u0646\u0631\u062e \u0648\u0627\u0645 \u0645\u0633\u06a9\u0646 (%)<\/label>\n        <select id=\"mortgage-rate\" aria-required=\"true\">\n          <option value=\"5.50\">5.50%<\/option>\n          <option value=\"5.25\">5.25%<\/option>\n          <option value=\"5.00\" selected>5.00%<\/option>\n          <option value=\"4.75\">4.75%<\/option>\n          <option value=\"4.50\">4.50%<\/option>\n          <option value=\"4.25\">4.25%<\/option>\n          <option value=\"4.00\">4.00%<\/option>\n          <option value=\"3.75\">3.75%<\/option>\n          <option value=\"3.50\">3.50%<\/option>\n          <option value=\"3.25\">3.25%<\/option>\n          <option value=\"3.00\">3.00%<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n\n    <div class=\"row\">\n      <div>\n        <label for=\"payment-frequency\">\u0641\u0631\u06a9\u0627\u0646\u0633 \u067e\u0631\u062f\u0627\u062e\u062a<\/label>\n        <select id=\"payment-frequency\" aria-required=\"true\">\n          <option value=\"monthly\" selected>\u0645\u0627\u0647\u0627\u0646\u0647<\/option>\n          <option value=\"biweekly\">\u062f\u0648\u0647\u0641\u062a\u0647\u200c\u0646\u0627\u0645\u0647<\/option>\n          <option value=\"weekly\">\u0647\u0641\u062a\u06af\u06cc<\/option>\n        <\/select>\n      <\/div>\n\n      <div>\n        <label for=\"amortization\">\u062f\u0648\u0631\u0647 \u0627\u0633\u062a\u0647\u0644\u0627\u06a9 (\u0633\u0627\u0644)<\/label>\n        <select id=\"amortization\" aria-required=\"true\">\n          <option value=\"5\">\u06f5 \u0633\u0627\u0644<\/option>\n          <option value=\"10\">\u06f1\u06f0 \u0633\u0627\u0644<\/option>\n          <option value=\"15\">\u06f1\u06f5 \u0633\u0627\u0644<\/option>\n          <option value=\"20\">\u06f2\u06f0 \u0633\u0627\u0644<\/option>\n          <option value=\"25\">\u06f2\u06f5 \u0633\u0627\u0644<\/option>\n          <option value=\"30\" selected>\u06f3\u06f0 \u0633\u0627\u0644<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n\n    <button id=\"calculate-btn\" type=\"button\" aria-label=\"\u0645\u062d\u0627\u0633\u0628\u0647 \u0648\u0627\u0645 \u0645\u0633\u06a9\u0646\">\u0645\u062d\u0627\u0633\u0628\u0647 \u06a9\u0646\u06cc\u062f<\/button>\n  <input type=\"hidden\" name=\"trp-form-language\" value=\"fa\"\/><\/form>\n\n  <section class=\"results\" aria-live=\"polite\" aria-atomic=\"true\" aria-label=\"\u0646\u062a\u0627\u06cc\u062c \u0645\u062d\u0627\u0633\u0628\u0647 \u0648\u0627\u0645 \u0645\u0633\u06a9\u0646\">\n    <div class=\"monthly-payment-large\" id=\"monthly-payment-large\">$0<\/div>\n    <div class=\"result-row\">\n      <div>\u067e\u0631\u062f\u0627\u062e\u062a\u200c\u0647\u0627\u06cc <span id=\"payment-frequency-text\">\u0645\u0627\u0647\u0627\u0646\u0647<\/span><\/div>\n      <div id=\"monthly-payment\">$0<\/div>\n    <\/div>\n    <div class=\"result-row\">\n      <div>\u0628\u06cc\u0645\u0647 \u0648\u0627\u0645 \u0645\u0633\u06a9\u0646 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632<\/div>\n      <div id=\"mortgage-insurance\">$0<\/div>\n    <\/div>\n    <div class=\"result-row\">\n      <div>\u06a9\u0644 \u0648\u0627\u0645 \u0645\u0633\u06a9\u0646 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632<\/div>\n      <div id=\"total-mortgage\">$0<\/div>\n    <\/div>\n    <div class=\"result-row\">\n      <div>\u0633\u0648\u062f \u067e\u0631\u062f\u0627\u062e\u062a \u0634\u062f\u0647 \u062f\u0631 \u0637\u0648\u0644 \u0645\u062f\u062a<\/div>\n      <div id=\"interest-over-term\">$0<\/div>\n    <\/div>\n    <div class=\"result-row\">\n      <div>\u0627\u0635\u0644 \u067e\u0648\u0644 \u062f\u0631 \u0637\u0648\u0644 \u0645\u062f\u062a \u067e\u0631\u062f\u0627\u062e\u062a \u0634\u062f\u0647 \u0627\u0633\u062a<\/div>\n      <div id=\"principal-over-term\">$0<\/div>\n    <\/div>\n    <div class=\"result-row\">\n      <div>\u0645\u0627\u0646\u062f\u0647 \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u062f\u0648\u0631\u0647<\/div>\n      <div id=\"balance-end-term\">$0<\/div>\n    <\/div>\n  <\/section>\n<\/div>\n\n<script>\n  const purchasePriceInput = document.getElementById('purchase-price');\n  const downPaymentInput = document.getElementById('down-payment');\n  const mortgageTermSelect = document.getElementById('mortgage-term');\n  const mortgageRateSelect = document.getElementById('mortgage-rate');\n  const paymentFrequencySelect = document.getElementById('payment-frequency');\n  const amortizationSelect = document.getElementById('amortization');\n  const calculateBtn = document.getElementById('calculate-btn');\n\n  const mortgageInsuranceSpan = document.getElementById('mortgage-insurance');\n  const totalMortgageSpan = document.getElementById('total-mortgage');\n  const interestOverTermSpan = document.getElementById('interest-over-term');\n  const principalOverTermSpan = document.getElementById('principal-over-term');\n  const balanceEndTermSpan = document.getElementById('balance-end-term');\n  const monthlyPaymentSpan = document.getElementById('monthly-payment');\n  const paymentFrequencyTextSpan = document.getElementById('payment-frequency-text');\n  const monthlyPaymentLarge = document.getElementById('monthly-payment-large');\n\n  function formatCurrency(num) {\n    return num.toLocaleString('en-CA', { style: 'currency', currency: 'CAD', minimumFractionDigits: 0, maximumFractionDigits: 0 });\n  }\n\n  function getMortgageInsuranceRate(dpPercent) {\n    if (dpPercent < 5) {\n      return -1;\n    } else if (dpPercent < 10) {\n      return 0.029;\n    } else if (dpPercent < 15) {\n      return 0.024;\n    } else if (dpPercent < 20) {\n      return 0.021;\n    } else {\n      return 0;\n    }\n  }\n\n  function validateInputs() {\n    const purchasePrice = parseFloat(purchasePriceInput.value);\n    const downPayment = parseFloat(downPaymentInput.value);\n\n    if (isNaN(purchasePrice) || purchasePrice <= 0) {\n      alert(\"Please enter a valid Purchase Price greater than 0.\");\n      return false;\n    }\n    if (isNaN(downPayment) || downPayment < 0) {\n      alert(\"Please enter a valid Down Payment.\");\n      return false;\n    }\n    if (downPayment > purchasePrice) {\n      alert(\"Down Payment cannot be greater than Purchase Price.\");\n      return false;\n    }\n    const dpPercent = (downPayment \/ purchasePrice) * 100;\n    if (dpPercent < 5) {\n      alert(\"Down Payment must be at least 5% of Purchase Price.\");\n      return false;\n    }\n    return true;\n  }\n\n  function calculateMortgage() {\n    if (!validateInputs()) return;\n\n    const purchasePrice = parseFloat(purchasePriceInput.value);\n    const downPayment = parseFloat(downPaymentInput.value);\n    const dpPercent = (downPayment \/ purchasePrice) * 100;\n    const mortgageTerm = parseInt(mortgageTermSelect.value);\n    const mortgageRate = parseFloat(mortgageRateSelect.value) \/ 100;\n    const paymentFrequency = paymentFrequencySelect.value;\n    const amortizationYears = parseInt(amortizationSelect.value);\n\n    const loanAmount = purchasePrice - downPayment;\n    const baseInsuranceRate = getMortgageInsuranceRate(dpPercent);\n\n    if (baseInsuranceRate === -1) {\n      alert(\"Down Payment must be at least 5% of Purchase Price.\");\n      return;\n    }\n\n    const mortgageInsurance = baseInsuranceRate > 0 ? (baseInsuranceRate * loanAmount) \/ (1 - baseInsuranceRate) : 0;\n    const totalMortgageRequired = loanAmount + mortgageInsurance;\n\n    let paymentsPerYear;\n    switch(paymentFrequency) {\n      case 'monthly': paymentsPerYear = 12; break;\n      case 'biweekly': paymentsPerYear = 26; break;\n      case 'weekly': paymentsPerYear = 52; break;\n      default: paymentsPerYear = 12;\n    }\n\n    const totalPayments = paymentsPerYear * amortizationYears;\n    const ratePerPeriod = mortgageRate \/ paymentsPerYear;\n\n    let paymentAmount;\n    if (mortgageRate === 0) {\n      paymentAmount = totalMortgageRequired \/ totalPayments;\n    } else {\n      paymentAmount = (totalMortgageRequired * ratePerPeriod) \/ (1 - Math.pow(1 + ratePerPeriod, -totalPayments));\n    }\n\n    const paymentsInTerm = paymentsPerYear * mortgageTerm;\n\n    let balanceEndTerm;\n    if (mortgageRate === 0) {\n      balanceEndTerm = totalMortgageRequired - (paymentAmount * paymentsInTerm);\n    } else {\n      balanceEndTerm = totalMortgageRequired * Math.pow(1 + ratePerPeriod, paymentsInTerm) - paymentAmount * ( (Math.pow(1 + ratePerPeriod, paymentsInTerm) - 1) \/ ratePerPeriod );\n    }\n\n    const principalPaidOverTerm = totalMortgageRequired - balanceEndTerm;\n    const interestPaidOverTerm = (paymentAmount * paymentsInTerm) - principalPaidOverTerm;\n\n    let freqText = '';\n    switch(paymentFrequency) {\n      case 'monthly': freqText = 'Monthly'; break;\n      case 'biweekly': freqText = 'Biweekly'; break;\n      case 'weekly': freqText = 'Weekly'; break;\n    }\n\n    monthlyPaymentLarge.textContent = formatCurrency(paymentAmount);\n    monthlyPaymentSpan.textContent = formatCurrency(paymentAmount);\n    paymentFrequencyTextSpan.textContent = freqText;\n\n    mortgageInsuranceSpan.textContent = formatCurrency(mortgageInsurance);\n    totalMortgageSpan.textContent = formatCurrency(totalMortgageRequired);\n    interestOverTermSpan.textContent = formatCurrency(interestPaidOverTerm);\n    principalOverTermSpan.textContent = formatCurrency(principalPaidOverTerm);\n    balanceEndTermSpan.textContent = formatCurrency(balanceEndTerm >= 0 ? balanceEndTerm : 0);\n  }\n\n  calculateBtn.addEventListener('click', calculateMortgage);\n\n  \/\/ Calculate once on page load with default values\n  window.addEventListener('DOMContentLoaded', calculateMortgage);\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Mortgage Payment Calculator Purchase Price ($) Down Payment ($) Mortgage Term (years) 1 Year2 Years3 Years4 Years5 Years6 Years7 Years8 Years9 Years10 Years Mortgage Rate (%) 5.50%5.25%5.00%4.75%4.50%4.25%4.00%3.75%3.50%3.25%3.00% Payment Frequency MonthlyBiweeklyWeekly Amortization Period (years) 5 Years10 Years15 Years20 Years25 Years30 Years Calculate $0 Payments of Monthly $0 Required Mortgage Insurance $0 Total Mortgage Required $0 Interest [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2391","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sanimortgage.com\/fa\/wp-json\/wp\/v2\/pages\/2391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sanimortgage.com\/fa\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sanimortgage.com\/fa\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sanimortgage.com\/fa\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sanimortgage.com\/fa\/wp-json\/wp\/v2\/comments?post=2391"}],"version-history":[{"count":43,"href":"https:\/\/sanimortgage.com\/fa\/wp-json\/wp\/v2\/pages\/2391\/revisions"}],"predecessor-version":[{"id":2436,"href":"https:\/\/sanimortgage.com\/fa\/wp-json\/wp\/v2\/pages\/2391\/revisions\/2436"}],"wp:attachment":[{"href":"https:\/\/sanimortgage.com\/fa\/wp-json\/wp\/v2\/media?parent=2391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}