{"id":2097,"date":"2026-02-05T10:39:23","date_gmt":"2026-02-05T15:39:23","guid":{"rendered":"https:\/\/infiniteleasing.ca\/?page_id=2097"},"modified":"2026-02-05T12:01:59","modified_gmt":"2026-02-05T17:01:59","slug":"lease-calculator","status":"publish","type":"page","link":"https:\/\/infiniteleasing.ca\/fr\/lease-calculator\/","title":{"rendered":"Lease Calculator"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"2097\" class=\"elementor elementor-2097\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-33659a68 e-con-full e-flex e-con e-parent\" data-id=\"33659a68\" data-element_type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ded8ce4 elementor-widget elementor-widget-renax-banner-simple\" data-id=\"6ded8ce4\" data-element_type=\"widget\" data-widget_type=\"renax-banner-simple.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<section class=\"banner-header section-padding bg-img-c bg-img\" data-overlay-dark=\"5\" data-background=\"https:\/\/infiniteleasing.ca\/wp-content\/uploads\/2026\/01\/DSC06362-scaled.jpg\" data-position=\"\">\n        <div class=\"v-middle\">\n            <div class=\"container\">\n                <div class=\"row\">\n                    <div class=\"col-md-12 offset-md-0 text-center\">\n                                                \t\t\t\t\t\t<h1 class=\"rx-df-page-banner-title\">\n\t\t\t\t\t\tLease <span>Calculator<\/span>\t\t\t\t\t\t<\/h1>\n\t\t\t\t\t\t\t\t\t\t\t\t                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\t\t<\/section>\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0636bc1 e-con-full e-flex e-con e-parent\" data-id=\"0636bc1\" data-element_type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a19472 elementor-widget elementor-widget-renax-vertical\" data-id=\"3a19472\" data-element_type=\"widget\" data-widget_type=\"renax-vertical.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\n\t\t<!-- hr -->\n        <hr class=\"line-vr-section\">\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-76ce3e9 e-flex e-con-boxed e-con e-parent\" data-id=\"76ce3e9\" data-element_type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d753573 elementor-widget elementor-widget-html\" data-id=\"d753573\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" \/>\n  <style>\n    :root{\n      --bg:#0b0b0f;\n      --card:#0f1014;\n      --panel:#0b0b0f;\n      --line:#1a1b22;\n      --text:#f5f5f7;\n      --muted:#a9a9b0;\n      --muted2:#7f8088;\n      --accent:#caa58a;\n      --accentSoft:rgba(202,165,138,.15);\n      --shadow:0 18px 60px rgba(0,0,0,.35);\n      --radius:18px;\n    }\n    *{box-sizing:border-box}\n    body{\n      margin:0;\n      background:radial-gradient(1200px 600px at 20% -10%, rgba(202,165,138,.10), transparent 60%),\n                 radial-gradient(900px 500px at 90% 10%, rgba(255,255,255,.06), transparent 55%),\n                 var(--bg);\n      color:var(--text);\n      font-family: Montserrat, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;\n      padding:24px 14px;\n    }\n    .wrap{max-width:980px;margin:0 auto;}\n\n    \/* ALWAYS-VISIBLE TOP BAR (language toggle) *\/\n    .topbar{\n      display:flex; align-items:center; justify-content:space-between; gap:12px;\n      margin-bottom:14px;\n    }\n    .brand{\n      display:flex; align-items:center; gap:10px;\n      color:var(--text);\n      font-weight:950;\n      letter-spacing:.2px;\n      font-size:14px;\n      opacity:.95;\n    }\n    .chips{display:flex; gap:8px; flex-wrap:wrap;}\n    .chip{\n      border:1px solid var(--line);\n      background:var(--panel);\n      color:var(--text);\n      padding:8px 12px;\n      border-radius:999px;\n      font-weight:950;\n      font-size:12px;\n      cursor:pointer;\n    }\n    .chip.active{\n      border-color:rgba(202,165,138,.65);\n      box-shadow:0 0 0 2px var(--accentSoft) inset;\n    }\n\n    .card{\n      background:var(--card);\n      border:1px solid var(--line);\n      border-radius:var(--radius);\n      box-shadow:var(--shadow);\n      overflow:hidden;\n    }\n    .head{\n      display:flex; align-items:center; justify-content:space-between; gap:10px;\n      padding:18px 18px 14px;\n    }\n    .title{font-size:18px; font-weight:950; margin:0;}\n    .sub{padding:0 18px 16px;color:var(--muted); font-size:13px; line-height:18px;}\n    .divider{height:1px;background:rgba(255,255,255,.06);}\n    .body{padding:18px;}\n\n    .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}\n    label{display:block;font-size:12px;color:var(--muted);margin:0 0 6px;}\n    input, select{\n      width:100%;\n      padding:12px;\n      border-radius:12px;\n      background:var(--panel);\n      border:1px solid var(--line);\n      color:var(--text);\n      outline:none;\n    }\n    input:focus, select:focus{\n      border-color:rgba(202,165,138,.75);\n      box-shadow:0 0 0 3px rgba(202,165,138,.10);\n    }\n\n    .row{display:flex; gap:10px; flex-wrap:wrap; align-items:center;}\n    .btn{\n      padding:12px 16px;\n      border-radius:999px;\n      border:1px solid rgba(202,165,138,.55);\n      background:transparent;\n      color:var(--text);\n      font-weight:950;\n      cursor:pointer;\n    }\n    .btn.primary{\n      background:var(--accent);\n      color:#141414;\n      border-color:rgba(0,0,0,.08);\n    }\n    .btn:disabled{opacity:.5; cursor:not-allowed;}\n\n    .note{color:var(--muted2);font-size:11px;line-height:16px;margin-top:10px;}\n    .err{display:none;color:#ffb4b4;font-size:12px;margin-top:10px;}\n\n    .calcWrap{display:grid; grid-template-columns: 1.25fr .75fr; gap:14px;}\n    .panel{\n      background:var(--panel);\n      border:1px solid var(--line);\n      border-radius:16px;\n      padding:14px;\n    }\n\n    .fixedBox{\n      display:grid;\n      grid-template-columns:1fr 1fr;\n      gap:12px;\n      padding:12px;\n      border-radius:14px;\n      background:#0a0a0e;\n      border:1px solid rgba(255,255,255,.06);\n    }\n    .kv .k{color:var(--muted);font-size:12px;margin-bottom:6px;}\n    .kv .v{font-weight:950;}\n\n    .outRow{\n      display:flex; justify-content:space-between; gap:14px;\n      padding:10px 0;\n    }\n    .outRow + .outRow{border-top:1px solid rgba(255,255,255,.06);}\n    .outK{color:var(--muted);font-size:13px;}\n    .outV{font-weight:950;font-size:15px;text-align:right;}\n    .big{font-size:22px;letter-spacing:.2px;font-weight:950;}\n\n    .pillRow{display:flex; gap:10px; flex-wrap:wrap; padding-top:10px; margin-top:10px; border-top:1px solid rgba(255,255,255,.06);}\n    .pill{\n      border:1px solid rgba(255,255,255,.06);\n      background:rgba(255,255,255,.03);\n      border-radius:999px;\n      padding:8px 10px;\n      color:var(--muted);\n      font-size:12px;\n    }\n\n    .fine{\n      margin-top:10px;\n      font-size:11px;\n      color:var(--muted2);\n      line-height:16px;\n    }\n\n    [hidden]{display:none !important;}\n\n    @media (max-width:900px){\n      .calcWrap{grid-template-columns:1fr;}\n    }\n    @media (max-width:640px){\n      .grid{grid-template-columns:1fr;}\n      .fixedBox{grid-template-columns:1fr;}\n      .outV{text-align:left;}\n      .outRow{flex-direction:column; align-items:flex-start;}\n      .topbar{flex-direction:column; align-items:flex-start;}\n    }\n  <\/style>\n<\/head>\n\n<body>\n  <div class=\"wrap\">\n\n    <!-- ALWAYS-VISIBLE LANGUAGE TOGGLE -->\n    <div class=\"topbar\">\n      <div class=\"brand\" id=\"top_brand\">Infinite Leasing \u2014 Calculator<\/div>\n      <div class=\"chips\" aria-label=\"Language\">\n        <button class=\"chip active\" id=\"langEN\" type=\"button\">EN<\/button>\n        <button class=\"chip\" id=\"langFR\" type=\"button\">FR<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- ===== LEAD GATE ===== -->\n    <section id=\"leadGate\" class=\"card\">\n      <div class=\"head\">\n        <h1 class=\"title\" id=\"lg_title\">Access the Lease Calculator<\/h1>\n      <\/div>\n      <div class=\"sub\" id=\"lg_sub\">Enter your details to unlock your estimate.<\/div>\n      <div class=\"divider\"><\/div>\n      <div class=\"body\">\n        <div class=\"grid\">\n          <div>\n            <label id=\"lg_l_name\">Full name *<\/label>\n            <input id=\"lg_name\" placeholder=\"Your name\" \/>\n          <\/div>\n          <div>\n            <label id=\"lg_l_email\">Email *<\/label>\n            <input id=\"lg_email\" type=\"email\" placeholder=\"you@email.com\" \/>\n          <\/div>\n          <div>\n            <label id=\"lg_l_phone\">Phone *<\/label>\n            <input id=\"lg_phone\" placeholder=\"(514) 000-0000\" \/>\n          <\/div>\n          <div>\n            <label id=\"lg_l_city\">City<\/label>\n            <input id=\"lg_city\" placeholder=\"Montreal \/ Laval \/ etc.\" \/>\n          <\/div>\n        <\/div>\n\n        <div class=\"row\" style=\"margin-top:12px;\">\n          <button class=\"btn primary\" id=\"lg_continue\" type=\"button\" style=\"width:100%;\">Continue<\/button>\n        <\/div>\n\n        <div class=\"err\" id=\"lg_err\">Please enter your name, email, and phone.<\/div>\n        <div class=\"note\" id=\"lg_note\">By continuing, you agree we may contact you about your lease estimate.<\/div>\n      <\/div>\n    <\/section>\n\n    <div style=\"height:14px;\"><\/div>\n\n    <!-- ===== CALCULATOR ===== -->\n    <section id=\"calcSection\" class=\"card\" hidden>\n      <div class=\"head\">\n        <h2 class=\"title\" id=\"c_title\">Lease Calculator<\/h2>\n        <div class=\"chips\" aria-label=\"Option\">\n          <button class=\"chip active\" id=\"optInv\" type=\"button\">Lease car in our inventory<\/button>\n          <button class=\"chip\" id=\"optMyCar\" type=\"button\">Lease my car<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"sub\" id=\"c_sub\">Choose an option. All examples are estimates only.<\/div>\n      <div class=\"divider\"><\/div>\n\n      <div class=\"body\">\n        <div class=\"calcWrap\">\n\n          <!-- Inputs -->\n          <div class=\"panel\">\n            <div class=\"grid\">\n              <div>\n                <label id=\"l_price\">Vehicle net cost (before tax)<\/label>\n                <input id=\"c_price\" type=\"number\" min=\"0\" step=\"100\" value=\"150000\" \/>\n              <\/div>\n              <div>\n                <label id=\"l_down\">Deposit \/ down payment<\/label>\n                <input id=\"c_down\" type=\"number\" min=\"0\" step=\"100\" value=\"15000\" \/>\n              <\/div>\n\n              <div>\n                <label id=\"l_term\">Term (months)<\/label>\n                <select id=\"c_term\">\n                  <option value=\"12\">12<\/option>\n                  <option value=\"24\">24<\/option>\n                  <option value=\"36\" selected>36<\/option>\n                  <option value=\"48\">48<\/option>\n                  <option value=\"60\">60<\/option>\n                  <option value=\"72\">72<\/option>\n                  <option value=\"84\">84<\/option>\n                <\/select>\n              <\/div>\n\n              <div>\n                <label id=\"l_rates\">Rates (fixed)<\/label>\n                <div class=\"fixedBox\" aria-label=\"Fixed rates\">\n                  <div class=\"kv\">\n                    <div class=\"k\" id=\"k_apr\">Interest (APR)<\/div>\n                    <div class=\"v\"><span id=\"f_apr\">6.99<\/span>%<\/div>\n                  <\/div>\n                  <div class=\"kv\">\n                    <div class=\"k\" id=\"k_tax\">Tax<\/div>\n                    <div class=\"v\"><span id=\"f_tax\">14.975<\/span>%<\/div>\n                  <\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n\n            <!-- Lease My Car fields -->\n            <div id=\"myCarFields\" hidden style=\"margin-top:14px;\">\n              <div class=\"divider\" style=\"margin:14px 0;\"><\/div>\n              <div class=\"sub\" style=\"padding:0; margin:0 0 12px;\" id=\"mc_sub\">\n                Lease my car: we apply a one-time program fee of 3% capped at $5,000 on top of the vehicle price (estimate).\n              <\/div>\n\n              <div class=\"grid\">\n                <div>\n                  <label id=\"mc_l_make\">Make *<\/label>\n                  <input id=\"mc_make\" placeholder=\"e.g., Porsche\" \/>\n                <\/div>\n                <div>\n                  <label id=\"mc_l_model\">Model *<\/label>\n                  <input id=\"mc_model\" placeholder=\"e.g., 911 Carrera\" \/>\n                <\/div>\n                <div>\n                  <label id=\"mc_l_year\">Year *<\/label>\n                  <input id=\"mc_year\" type=\"number\" min=\"1900\" max=\"2100\" placeholder=\"2023\" \/>\n                <\/div>\n                <div>\n                  <label id=\"mc_l_mileage\">Mileage (km) *<\/label>\n                  <input id=\"mc_mileage\" type=\"number\" min=\"0\" step=\"100\" placeholder=\"45000\" \/>\n                <\/div>\n                <div style=\"grid-column:1\/-1;\">\n                  <label id=\"mc_l_vin\">VIN *<\/label>\n                  <input id=\"mc_vin\" placeholder=\"17-character VIN\" maxlength=\"17\" \/>\n                <\/div>\n              <\/div>\n\n              <div class=\"err\" id=\"mc_err\" style=\"margin-top:10px;\">Please complete all vehicle fields for \u201cLease my car\u201d.<\/div>\n            <\/div>\n\n            <div class=\"row\" style=\"margin-top:14px;\">\n              <button class=\"btn primary\" id=\"btnCalc\" type=\"button\">Calculate<\/button>\n              <button class=\"btn\" id=\"btnCopy\" type=\"button\">Copy Quote<\/button>\n              <button class=\"btn\" id=\"btnEmail\" type=\"button\">Submit \/ I\u2019m interested<\/button>\n              <button class=\"btn\" id=\"btnReset\" type=\"button\">Reset<\/button>\n            <\/div>\n\n            <div class=\"fine\" id=\"fine_print\">\n              Examples are estimates only. Payments may vary based on approval, lender programs, residual value, and fees. Fees, licensing, and taxes extra.\n            <\/div>\n          <\/div>\n\n          <!-- Outputs -->\n          <div class=\"panel\">\n            <div class=\"outRow\">\n              <div class=\"outK\" id=\"o_k_term\">Term<\/div>\n              <div class=\"outV\"><span id=\"o_term\" class=\"big\">\u2014<\/span> <span id=\"o_term_unit\">months<\/span><\/div>\n            <\/div>\n\n            <div class=\"outRow\">\n              <div class=\"outK\" id=\"o_k_monthly\">Monthly payment (before tax)<\/div>\n              <div class=\"outV\"><span id=\"o_monthly\" class=\"big\">$\u2014<\/span><\/div>\n            <\/div>\n\n            <div class=\"outRow\">\n              <div class=\"outK\" id=\"o_k_residual\">Client residual<\/div>\n              <div class=\"outV\"><span id=\"o_residual\" class=\"big\">$\u2014<\/span><\/div>\n            <\/div>\n\n            <div class=\"pillRow\">\n              <div class=\"pill\"><span id=\"pill_interest\">Interest<\/span>: <strong>6.99%<\/strong><\/div>\n              <div class=\"pill\"><span id=\"pill_tax\">Tax<\/span>: <strong>14.975%<\/strong><\/div>\n            <\/div>\n\n            <div class=\"note\" id=\"o_note\">\n              Note: This is an estimate. Final approval, lender programs, and fees may vary.\n            <\/div>\n          <\/div>\n\n        <\/div>\n      <\/div>\n    <\/section>\n\n  <\/div>\n\n  <script>\n    (function(){\n      const $ = (id)=>document.getElementById(id);\n\n      \/\/ Fixed values (not editable)\n      const FIXED_APR = 6.99;          \/\/ %\n      const FIXED_TAX = 14.975;        \/\/ %\n      const RESIDUAL_PROFIT_PCT = 0.10; \/\/ internal calc (NOT shown anywhere)\n\n      \/\/ Hidden admin math (included in monthly payment but never shown)\n      const ADMIN_PCT = 0.03;          \/\/ monthly admin = 3% \/ term (hidden)\n\n      \/\/ Lease My Car: one-time fee added on top of price for estimate\n      const MYCAR_UPFRONT_PCT = 0.03;\n      const MYCAR_UPFRONT_CAP = 5000;\n\n      let lang = \"en\";\n      let option = \"inventory\"; \/\/ inventory | mycar\n\n      function money(n){\n        if (!isFinite(n)) return \"\u2014\";\n        return n.toLocaleString(undefined, { style:\"currency\", currency:\"CAD\", maximumFractionDigits:2 });\n      }\n\n      function amortPct(term){\n        term = Number(term);\n        if (term <= 12) return 0.0250;\n        if (term <= 24) return 0.0225;\n        if (term <= 36) return 0.0165;\n        if (term <= 48) return 0.0140;\n        if (term <= 60) return 0.0125;\n        if (term <= 72) return 0.0110;\n        return 0.0100;\n      }\n\n      function saveLead(lead){ localStorage.setItem(\"infLead\", JSON.stringify(lead)); }\n      function getLead(){ try { return JSON.parse(localStorage.getItem(\"infLead\") || \"null\"); } catch(e){ return null; } }\n\n      function lockUI(){\n        const lead = getLead();\n        if (lead && lead.name && lead.email && lead.phone){\n          $(\"leadGate\").hidden = true;\n          $(\"calcSection\").hidden = false;\n          setTimeout(calc, 30);\n        } else {\n          $(\"calcSection\").hidden = true;\n          $(\"leadGate\").hidden = false;\n        }\n      }\n\n      function setOption(next){\n        option = next;\n        $(\"optInv\").classList.toggle(\"active\", option===\"inventory\");\n        $(\"optMyCar\").classList.toggle(\"active\", option===\"mycar\");\n        $(\"myCarFields\").hidden = (option !== \"mycar\");\n        $(\"mc_err\").style.display = \"none\";\n        calc();\n      }\n\n      function validateMyCarFields(){\n        if (option !== \"mycar\") return true;\n        const make = ($(\"mc_make\").value || \"\").trim();\n        const model = ($(\"mc_model\").value || \"\").trim();\n        const year = ($(\"mc_year\").value || \"\").trim();\n        const mileage = ($(\"mc_mileage\").value || \"\").trim();\n        const vin = ($(\"mc_vin\").value || \"\").trim();\n        const ok = make && model && year && mileage && vin && vin.length >= 11;\n        $(\"mc_err\").style.display = ok ? \"none\" : \"block\";\n        return ok;\n      }\n\n      function effectiveVehicleCost(C){\n        if (option !== \"mycar\") return C;\n        const add = Math.min(C * MYCAR_UPFRONT_PCT, MYCAR_UPFRONT_CAP);\n        return C + add;\n      }\n\n      function calc(){\n        const C_input = Number($(\"c_price\").value || 0);\n        const D = Number($(\"c_down\").value || 0);\n        const N = Number($(\"c_term\").value || 0);\n\n        const C = effectiveVehicleCost(C_input);\n\n        const apr = FIXED_APR \/ 100;\n\n        \/\/ Net advanced\n        const F = Math.max(0, C - D);\n\n        \/\/ Hidden monthly admin (included, not displayed)\n        const adminMonthlyHidden = (C * ADMIN_PCT) \/ Math.max(1, N);\n\n        \/\/ Minimum amortization\n        const p = amortPct(N);\n        const monthlyCapital = F * p;\n\n        \/\/ Residual (internal uplift not disclosed)\n        const depreciation = monthlyCapital * N;\n        const rbcResidual = F - depreciation;\n        const clientResidual = rbcResidual + (C * RESIDUAL_PROFIT_PCT);\n\n        \/\/ Monthly interest (simple monthly interest on net advanced)\n        const monthlyInterest = F * (apr \/ 12);\n\n        \/\/ Monthly BEFORE tax (includes hidden admin)\n        const monthlyBeforeTax = monthlyCapital + monthlyInterest + adminMonthlyHidden;\n\n        \/\/ Outputs\n        $(\"o_term\").textContent = String(N);\n        $(\"o_monthly\").textContent = money(monthlyBeforeTax);\n        $(\"o_residual\").textContent = money(clientResidual);\n\n        return {\n          lang, option,\n          vehicleCostEntered:C_input,\n          vehicleCostUsed:C,\n          deposit:D, term:N,\n          monthlyBeforeTax, clientResidual,\n          apr:FIXED_APR, tax:FIXED_TAX\n        };\n      }\n\n      function buildLeadBlock(){\n        const lead = getLead() || {};\n        if (lang===\"fr\"){\n          return `CLIENT\\nNom: ${lead.name||\"\"}\\nCourriel: ${lead.email||\"\"}\\nT\u00e9l\u00e9phone: ${lead.phone||\"\"}\\nVille: ${lead.city||\"\"}\\n\\n`;\n        }\n        return `CLIENT\\nName: ${lead.name||\"\"}\\nEmail: ${lead.email||\"\"}\\nPhone: ${lead.phone||\"\"}\\nCity: ${lead.city||\"\"}\\n\\n`;\n      }\n\n      function buildMyCarBlock(){\n        if (option !== \"mycar\") return \"\";\n        const make = ($(\"mc_make\").value||\"\").trim();\n        const model = ($(\"mc_model\").value||\"\").trim();\n        const year = ($(\"mc_year\").value||\"\").trim();\n        const mileage = ($(\"mc_mileage\").value||\"\").trim();\n        const vin = ($(\"mc_vin\").value||\"\").trim();\n\n        if (lang===\"fr\"){\n          return `V\u00c9HICULE DU CLIENT (\u00c0 LOUER)\\nMarque: ${make}\\nMod\u00e8le: ${model}\\nAnn\u00e9e: ${year}\\nKilom\u00e9trage: ${mileage} km\\nVIN: ${vin}\\n\\n`;\n        }\n        return `CLIENT VEHICLE (TO LEASE)\\nMake: ${make}\\nModel: ${model}\\nYear: ${year}\\nMileage: ${mileage} km\\nVIN: ${vin}\\n\\n`;\n      }\n\n      \/\/ IMPORTANT: no admin mention in quote\/email (per your request)\n      function buildQuoteBlock(data){\n        const optEN = data.option===\"mycar\" ? \"Lease my car\" : \"Lease car in our inventory\";\n        const optFR = data.option===\"mycar\" ? \"Louer mon v\u00e9hicule\" : \"Louer un v\u00e9hicule de notre inventaire\";\n\n        if (lang===\"fr\"){\n          return [\n            \"ESTIMATION \u2014 INFINITE LEASING\",\n            \"\",\n            \"Option: \" + optFR,\n            \"Co\u00fbt net saisi (avant taxes): \" + money(data.vehicleCostEntered),\n            \"Co\u00fbt utilis\u00e9 pour l'estimation: \" + money(data.vehicleCostUsed),\n            \"D\u00e9p\u00f4t \/ mise de fonds: \" + money(data.deposit),\n            \"Terme: \" + data.term + \" mois\",\n            \"\",\n            \"Paiement mensuel (avant taxes): \" + money(data.monthlyBeforeTax),\n            \"R\u00e9siduel client: \" + money(data.clientResidual),\n            \"\",\n            \"Taux d'int\u00e9r\u00eat (fixe): \" + data.apr.toFixed(2) + \"%\",\n            \"Taxes (fixes, affich\u00e9es): \" + data.tax.toFixed(3) + \"%\"\n          ].join(\"\\n\");\n        }\n\n        return [\n          \"ESTIMATE \u2014 INFINITE LEASING\",\n          \"\",\n          \"Option: \" + optEN,\n          \"Vehicle net cost entered (before tax): \" + money(data.vehicleCostEntered),\n          \"Cost used for estimate: \" + money(data.vehicleCostUsed),\n          \"Deposit \/ down payment: \" + money(data.deposit),\n          \"Term: \" + data.term + \" months\",\n          \"\",\n          \"Monthly payment (before tax): \" + money(data.monthlyBeforeTax),\n          \"Client residual: \" + money(data.clientResidual),\n          \"\",\n          \"Interest rate (fixed): \" + data.apr.toFixed(2) + \"%\",\n          \"Tax (fixed, shown): \" + data.tax.toFixed(3) + \"%\"\n        ].join(\"\\n\");\n      }\n\n      function copyQuote(){\n        const data = calc();\n        if (!validateMyCarFields()) return;\n\n        const text =\n          buildLeadBlock() +\n          buildMyCarBlock() +\n          buildQuoteBlock(data) + \"\\n\\n\" +\n          (lang===\"fr\"\n            ? \"NOTE: Estimation seulement. L\u2019approbation, les programmes pr\u00eateurs, et les frais peuvent varier.\"\n            : \"NOTE: Estimate only. Approval, lender programs, and fees may vary.\");\n\n        if (navigator.clipboard?.writeText) navigator.clipboard.writeText(text);\n        $(\"btnCopy\").textContent = (lang===\"fr\") ? \"Copi\u00e9 \u2713\" : \"Copied \u2713\";\n        setTimeout(()=> $(\"btnCopy\").textContent = (lang===\"fr\") ? \"Copier la soumission\" : \"Copy Quote\", 1200);\n      }\n\n      function openEmail(){\n        const data = calc();\n        if (!validateMyCarFields()) return;\n\n        const subject =\n          (lang===\"fr\")\n            ? (data.option===\"mycar\" ? \"Demande \u2014 Louer mon v\u00e9hicule (calculateur)\" : \"Demande \u2014 Louer un v\u00e9hicule (inventaire)\")\n            : (data.option===\"mycar\" ? \"Inquiry \u2014 Lease my car (calculator)\" : \"Inquiry \u2014 Lease vehicle (inventory)\");\n\n        const body =\n          buildLeadBlock() +\n          buildMyCarBlock() +\n          buildQuoteBlock(data) + \"\\n\\n\" +\n          (lang===\"fr\"\n            ? \"Merci d\u2019ajouter toute information suppl\u00e9mentaire:\\nKilom\u00e9trage annuel estim\u00e9:\\nCommentaires:\\n\"\n            : \"Please add any additional info:\\nEstimated annual km:\\nNotes:\\n\");\n\n        window.location.href =\n          \"mailto:info@infiniteleasing.ca?subject=\" + encodeURIComponent(subject) +\n          \"&body=\" + encodeURIComponent(body);\n      }\n\n      function setLang(next){\n        lang = next;\n        $(\"langEN\").classList.toggle(\"active\", lang===\"en\");\n        $(\"langFR\").classList.toggle(\"active\", lang===\"fr\");\n\n        $(\"top_brand\").textContent = (lang===\"fr\")\n          ? \"Infinite Leasing \u2014 Calculateur\"\n          : \"Infinite Leasing \u2014 Calculator\";\n\n        \/\/ Gate\n        $(\"lg_title\").textContent = (lang===\"fr\") ? \"Acc\u00e9der au calculateur de leasing\" : \"Access the Lease Calculator\";\n        $(\"lg_sub\").textContent = (lang===\"fr\")\n          ? \"Entrez vos informations pour d\u00e9bloquer votre estimation.\"\n          : \"Enter your details to unlock your estimate.\";\n        $(\"lg_l_name\").textContent  = (lang===\"fr\") ? \"Nom complet *\" : \"Full name *\";\n        $(\"lg_l_email\").textContent = (lang===\"fr\") ? \"Courriel *\" : \"Email *\";\n        $(\"lg_l_phone\").textContent = (lang===\"fr\") ? \"T\u00e9l\u00e9phone *\" : \"Phone *\";\n        $(\"lg_l_city\").textContent  = (lang===\"fr\") ? \"Ville\" : \"City\";\n        $(\"lg_continue\").textContent= (lang===\"fr\") ? \"Continuer\" : \"Continue\";\n        $(\"lg_note\").textContent    = (lang===\"fr\")\n          ? \"En continuant, vous acceptez que nous puissions vous contacter au sujet de votre estimation.\"\n          : \"By continuing, you agree we may contact you about your lease estimate.\";\n        $(\"lg_err\").textContent     = (lang===\"fr\")\n          ? \"Veuillez entrer votre nom, courriel et t\u00e9l\u00e9phone.\"\n          : \"Please enter your name, email, and phone.\";\n\n        \/\/ Calculator\n        $(\"c_title\").textContent = (lang===\"fr\") ? \"Calculateur de leasing\" : \"Lease Calculator\";\n        $(\"c_sub\").textContent   = (lang===\"fr\")\n          ? \"Choisissez une option. Tous les exemples sont des estimations seulement.\"\n          : \"Choose an option. All examples are estimates only.\";\n\n        $(\"optInv\").textContent  = (lang===\"fr\") ? \"Louer un v\u00e9hicule de notre inventaire\" : \"Lease car in our inventory\";\n        $(\"optMyCar\").textContent= (lang===\"fr\") ? \"Louer mon v\u00e9hicule\" : \"Lease my car\";\n\n        $(\"l_price\").textContent = (lang===\"fr\") ? \"Co\u00fbt net du v\u00e9hicule (avant taxes)\" : \"Vehicle net cost (before tax)\";\n        $(\"l_down\").textContent  = (lang===\"fr\") ? \"D\u00e9p\u00f4t \/ mise de fonds\" : \"Deposit \/ down payment\";\n        $(\"l_term\").textContent  = (lang===\"fr\") ? \"Terme (mois)\" : \"Term (months)\";\n        $(\"l_rates\").textContent = (lang===\"fr\") ? \"Taux (fixes)\" : \"Rates (fixed)\";\n        $(\"k_apr\").textContent   = (lang===\"fr\") ? \"Int\u00e9r\u00eat (APR)\" : \"Interest (APR)\";\n        $(\"k_tax\").textContent   = (lang===\"fr\") ? \"Taxes\" : \"Tax\";\n\n        $(\"mc_sub\").textContent = (lang===\"fr\")\n          ? \"Louer mon v\u00e9hicule : des frais de programme uniques de 3% (plafond 5 000$) sont ajout\u00e9s au prix pour l\u2019estimation.\"\n          : \"Lease my car: we apply a one-time program fee of 3% capped at $5,000 on top of the vehicle price (estimate).\";\n        $(\"mc_l_make\").textContent    = (lang===\"fr\") ? \"Marque *\" : \"Make *\";\n        $(\"mc_l_model\").textContent   = (lang===\"fr\") ? \"Mod\u00e8le *\" : \"Model *\";\n        $(\"mc_l_year\").textContent    = (lang===\"fr\") ? \"Ann\u00e9e *\" : \"Year *\";\n        $(\"mc_l_mileage\").textContent = (lang===\"fr\") ? \"Kilom\u00e9trage (km) *\" : \"Mileage (km) *\";\n        $(\"mc_l_vin\").textContent     = (lang===\"fr\") ? \"VIN *\" : \"VIN *\";\n        $(\"mc_err\").textContent       = (lang===\"fr\")\n          ? \"Veuillez compl\u00e9ter tous les champs du v\u00e9hicule pour \u00ab Louer mon v\u00e9hicule \u00bb.\"\n          : \"Please complete all vehicle fields for \u201cLease my car\u201d.\";\n\n        $(\"btnCalc\").textContent  = (lang===\"fr\") ? \"Calculer\" : \"Calculate\";\n        $(\"btnCopy\").textContent  = (lang===\"fr\") ? \"Copier la soumission\" : \"Copy Quote\";\n        $(\"btnEmail\").textContent = (lang===\"fr\") ? \"Soumettre \/ Je suis int\u00e9ress\u00e9(e)\" : \"Submit \/ I\u2019m interested\";\n        $(\"btnReset\").textContent = (lang===\"fr\") ? \"R\u00e9initialiser\" : \"Reset\";\n\n        $(\"o_k_term\").textContent     = (lang===\"fr\") ? \"Terme\" : \"Term\";\n        $(\"o_term_unit\").textContent  = (lang===\"fr\") ? \"mois\" : \"months\";\n        $(\"o_k_monthly\").textContent  = (lang===\"fr\") ? \"Paiement mensuel (avant taxes)\" : \"Monthly payment (before tax)\";\n        $(\"o_k_residual\").textContent = (lang===\"fr\") ? \"R\u00e9siduel client\" : \"Client residual\";\n\n        $(\"pill_interest\").textContent = (lang===\"fr\") ? \"Int\u00e9r\u00eat\" : \"Interest\";\n        $(\"pill_tax\").textContent      = (lang===\"fr\") ? \"Taxes\" : \"Tax\";\n\n        $(\"o_note\").textContent = (lang===\"fr\")\n          ? \"Note : Ceci est une estimation. L\u2019approbation finale, les programmes et les frais peuvent varier.\"\n          : \"Note: This is an estimate. Final approval, lender programs, and fees may vary.\";\n\n        $(\"fine_print\").textContent = (lang===\"fr\")\n          ? \"Estimations seulement. Les paiements peuvent varier selon l\u2019approbation, les programmes pr\u00eateurs, la valeur r\u00e9siduelle et les frais. Frais, immatriculation et taxes en sus.\"\n          : \"Estimates only. Payments may vary based on approval, lender programs, residual value, and fees. Fees, licensing, and taxes extra.\";\n\n        calc();\n      }\n\n      \/\/ Lead submit\n      $(\"lg_continue\").addEventListener(\"click\", ()=>{\n        const name  = ($(\"lg_name\").value || \"\").trim();\n        const email = ($(\"lg_email\").value || \"\").trim();\n        const phone = ($(\"lg_phone\").value || \"\").trim();\n        const city  = ($(\"lg_city\").value || \"\").trim();\n\n        if (!name || !email || !phone){\n          $(\"lg_err\").style.display = \"block\";\n          return;\n        }\n        $(\"lg_err\").style.display = \"none\";\n        saveLead({ name, email, phone, city, ts: new Date().toISOString(), lang });\n        lockUI();\n        setTimeout(()=> $(\"calcSection\").scrollIntoView({behavior:\"smooth\", block:\"start\"}), 50);\n      });\n\n      \/\/ Events\n      $(\"langEN\").addEventListener(\"click\", ()=>setLang(\"en\"));\n      $(\"langFR\").addEventListener(\"click\", ()=>setLang(\"fr\"));\n      $(\"optInv\").addEventListener(\"click\", ()=>setOption(\"inventory\"));\n      $(\"optMyCar\").addEventListener(\"click\", ()=>setOption(\"mycar\"));\n\n      $(\"btnCalc\").addEventListener(\"click\", ()=>{\n        if (!validateMyCarFields()) return;\n        calc();\n      });\n      $(\"btnCopy\").addEventListener(\"click\", copyQuote);\n      $(\"btnEmail\").addEventListener(\"click\", openEmail);\n\n      $(\"btnReset\").addEventListener(\"click\", ()=>{\n        $(\"c_price\").value = 150000;\n        $(\"c_down\").value = 15000;\n        $(\"c_term\").value = 36;\n        [\"mc_make\",\"mc_model\",\"mc_year\",\"mc_mileage\",\"mc_vin\"].forEach(id=>{\n          if ($(id)) $(id).value = \"\";\n        });\n        $(\"mc_err\").style.display = \"none\";\n        calc();\n      });\n\n      [\"c_price\",\"c_down\",\"c_term\",\"mc_make\",\"mc_model\",\"mc_year\",\"mc_mileage\",\"mc_vin\"].forEach(id=>{\n        const el = $(id);\n        if (!el) return;\n        el.addEventListener(\"input\", calc);\n        el.addEventListener(\"change\", calc);\n      });\n\n      \/\/ Init\n      $(\"f_apr\").textContent = FIXED_APR.toFixed(2);\n      $(\"f_tax\").textContent = FIXED_TAX.toFixed(3);\n      setLang(\"en\");\n      setOption(\"inventory\");\n      lockUI();\n    })();\n  <\/script>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c586357 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"c586357\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c85bb9 elementor-widget elementor-widget-renax-button\" data-id=\"1c85bb9\" data-element_type=\"widget\" data-widget_type=\"renax-button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        \t\t<div class=\"sec-button float-left clear\">\t\t\t\n\t\t\t<a class=\"button-1\"\n\t\t\t\t\t\t\n\t\t\thref=\"https:\/\/infiniteleasing.ca\/fr\/contact\/\" \n\t\t\t\t\t\ttarget=\"_self\" rel=\"noopener noreferrer\">\n\t\t\t\t\t\tLouer Maintenant \n\t\t\t\t\t\t\n\t\t\t\t<span class=\"ti-arrow-top-right\"><\/span>\n\t\t\t\t\n\t\t\t\t\t\t<\/a>\t\n\t\t<\/div>\t\t\n        \t\n\t\t\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<div class=\"elementor-element elementor-element-512e9e4 e-flex e-con-boxed e-con e-parent\" data-id=\"512e9e4\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d32327b elementor-widget elementor-widget-renax-clients\" data-id=\"d32327b\" data-element_type=\"widget\" data-widget_type=\"renax-clients.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<div class=\"clients clear\">\n\t\t\t<div class=\"owl-carousel owl-theme\" data-carousel-autoplay=\"true\" data-carousel-speed=\"1000\" data-carousel-timeout=\"5000\" data-carousel-nav=\"false\" data-rtl=\"false\" data-carousel-dots-mobile=\"false\" data-carousel-dots=\"false\" data-carousel-columns=\"6\">\n\t\t\t\t\t\t\t\t<div class=\"clients-logo\">\n\t\t\t\t    \t\t\t\t\t<a href=\"#\" target=\"_self\" rel=\"noopener noreferrer\">\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/webredox.net\/demo\/wp\/renax\/wp-content\/uploads\/2024\/04\/5.png\" alt=\"\">\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\t\n\t\t\t\t\t\t\t\t<div class=\"clients-logo\">\n\t\t\t\t    \t\t\t\t\t<a href=\"#\" target=\"_self\" rel=\"noopener noreferrer\">\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/webredox.net\/demo\/wp\/renax\/wp-content\/uploads\/2024\/04\/1.png\" alt=\"\">\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\t\n\t\t\t\t\t\t\t\t<div class=\"clients-logo\">\n\t\t\t\t    \t\t\t\t\t<a href=\"#\" target=\"_self\" rel=\"noopener noreferrer\">\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/webredox.net\/demo\/wp\/renax\/wp-content\/uploads\/2024\/04\/2.png\" alt=\"\">\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\t\n\t\t\t\t\t\t\t\t<div class=\"clients-logo\">\n\t\t\t\t    \t\t\t\t\t<a href=\"#\" target=\"_self\" rel=\"noopener noreferrer\">\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/webredox.net\/demo\/wp\/renax\/wp-content\/uploads\/2024\/04\/3.png\" alt=\"\">\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\t\n\t\t\t\t\t\t\t\t<div class=\"clients-logo\">\n\t\t\t\t    \t\t\t\t\t<a href=\"#\" target=\"_self\" rel=\"noopener noreferrer\">\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/webredox.net\/demo\/wp\/renax\/wp-content\/uploads\/2024\/04\/4.png\" alt=\"\">\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\t\n\t\t\t\t\t\t\t\t<div class=\"clients-logo\">\n\t\t\t\t    \t\t\t\t\t<a href=\"#\" target=\"_self\" rel=\"noopener noreferrer\">\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/webredox.net\/demo\/wp\/renax\/wp-content\/uploads\/2024\/04\/6.png\" alt=\"\">\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\t\n\t\t\t\t\t\t\t\t<div class=\"clients-logo\">\n\t\t\t\t    \t\t\t\t\t<a href=\"#\" target=\"_self\" rel=\"noopener noreferrer\">\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/webredox.net\/demo\/wp\/renax\/wp-content\/uploads\/2024\/04\/7.png\" alt=\"\">\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\t\n\t\t\t\t\t\t\t<\/div>\t\t\n\t\t<\/div>\t\t\n\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>Lease Calculator Infinite Leasing \u2014 Calculator EN FR Access the Lease Calculator Enter your details to unlock your estimate. Full name * Email * Phone * City Continue Please enter your name, email, and phone. By continuing, you agree we may contact you about&#8230;<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2097","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/infiniteleasing.ca\/fr\/wp-json\/wp\/v2\/pages\/2097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infiniteleasing.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/infiniteleasing.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/infiniteleasing.ca\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/infiniteleasing.ca\/fr\/wp-json\/wp\/v2\/comments?post=2097"}],"version-history":[{"count":13,"href":"https:\/\/infiniteleasing.ca\/fr\/wp-json\/wp\/v2\/pages\/2097\/revisions"}],"predecessor-version":[{"id":2117,"href":"https:\/\/infiniteleasing.ca\/fr\/wp-json\/wp\/v2\/pages\/2097\/revisions\/2117"}],"wp:attachment":[{"href":"https:\/\/infiniteleasing.ca\/fr\/wp-json\/wp\/v2\/media?parent=2097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}