ClickCease
Ontario homeowner who stopped a power of sale, standing in front of their home
Helping Homeowners Since 2015

Facing a Power of Sale in Ontario? You Can Still Stop It.

Served a Notice of Sale? You have a redemption window to reinstate or pay out your mortgage and keep your home. We approve on equity and fund in as little as 24โ€“72 hours.

๐Ÿ›‘ Stop the Saleโšก Funded in 24โ€“72 hrs๐Ÿ  Up to 80% LTVโœ… Any Credit Score๐Ÿ† BBB Accreditedโ˜…โ˜…โ˜…โ˜…โ˜… 5.0
โšก 100% Digital ยท No Branch Visits

๐Ÿ  How much can you access to clear arrears?

$750,000
$450,000
Equity available (up to 80% LTV)
$150,000
Get Pre-Approved Now
Estimate only. Actual amount depends on appraisal, lender & province.
100% DigitalApply from home
24โ€“72 hrsEmergency funding
50+Lenders shopped for you
ON ยท AB ยท SKLicensed & serving
$250M+Funded for homeowners

Served a Notice of Sale? You still have a window to act.

In Ontario, lenders almost always enforce a defaulted mortgage through power of sale under the Mortgages Act โ€” not foreclosure. The important part for you: there is a statutory redemption period during which you can bring the mortgage back into good standing and stop the sale. If you have equity, we can refinance or arrange a new loan to do exactly that, fast.

The Ontario power of sale timeline

From the documents you receive to the sale itself โ€” and exactly where the redemption window sits.

1

Default (โ‰ˆ15 days)

After about 15 days of missed payments, the lender can begin enforcement.

2

Notice of Sale

The lender serves a formal Notice of Sale Under Mortgage on you and other registered parties.

3

35-Day Redemption

A minimum 35-day window to pay the arrears plus costs (reinstate) or the full balance (redeem) and stop the sale.

4

Listing & Sale

If unresolved, the lender can list and sell the property to recover what’s owed.

5

Surplus to You

Any sale proceeds beyond the debt and costs are returned to you โ€” unlike foreclosure.

General information only, not legal advice. The redemption period and process are set by Ontario’s Mortgages Act; consult a lawyer about your specific notice.

Reinstate or redeem โ€” we move at notice speed

You can usually stop a power of sale two ways: reinstate the mortgage by paying the arrears plus the lender’s legal costs, or redeem it by paying the full balance. Either way, time is everything โ€” the 35-day clock is short. We arrange second mortgages, refinances, and private financing built for exactly this, approving on your equity and funding in days. Just received your notice? Don’t sign anything with a stranger who contacts you first โ€” apply with a licensed broker.

Serving homeowners across Ontario, Alberta & Saskatchewan โ€” including Toronto Mississauga Brampton Hamilton London Ottawa and many more.

How to Stop a Power of Sale in Ontario

Whether your home is already being sold under power of sale or the first Notice of Sale just arrived, stopping it comes down to one move: pay out the defaulted lender โ€” arrears, costs, and balance โ€” before the sale completes. That is what we arrange: a replacement first or second mortgage approved on your equity, not your credit. In Ontario, lenders use power of sale rather than foreclosure โ€” if someone told you your home faces foreclosure, it is the same emergency and the same fix. As of August 2026 we place these files in days: private funding can close in 3โ€“5 business days once the appraisal is in.

Facing a Power of Sale? Start Here

Pick your city to see how we stop a sale locally — or skip it and call. The clock runs from the day the notice was served, so a phone call is faster than reading.

Not on the list? We act on files in Ajax, Bradford, Burlington, Caledon, Cambridge, Clarington, Etobicoke, Markham, Norfolk County, Oakville, Peterborough, Pickering, Scarborough, St. Thomas and Whitby as well — and everywhere else in Ontario. The lenders and the timeline are the same wherever your property sits.

Call 1-866-329-8801 now Start online →

Can your equity clear your arrears?

Move the sliders to see how much you could access โ€” and whether it covers what you’re behind.

Include missed mortgage payments, property tax arrears, CRA debt, and any other amounts you need to catch up.

โœ… You likely have enough equity
Available at 80% LTV$140,000
Arrears to clear$45,000

Remaining after clearing$95,000
See My Real Numbers โ†’
Estimate only. Private lenders may exceed 80% in some cases. Actual approval depends on appraisal, lender & province.

Your options compared

When you’re in arrears, doing nothing is the most expensive choice.

Do nothing

  • Penalties & interest keep growing
  • Legal action proceeds
  • Risk of losing the home
  • Major credit damage

Sell the home

  • You lose your home
  • Rushed sale = lower price
  • Moving costs & disruption
  • May still owe a shortfall

Bankruptcy / proposal

  • Severe credit damage (up to 7 yrs)
  • Trustee involvement
  • Doesn’t always save the home
  • Last resort if no equity
โœ… RECOMMENDED

Equity solution

  • Keep your home
  • Arrears paid, sale stopped
  • Funded in days, fully digital
  • Credit can start to recover

The solutions we use to clear arrears

The right fit depends on your equity, your existing mortgage, and how fast you need to move.

โœ… Keep your first mortgage

Second Mortgage

Pay the arrears without disturbing a good first-mortgage rate. Fast, equity-based approval.

โœ… Lump sum, any credit

Home Equity Loan

Clear arrears and consolidate other debt in one shot, secured by your equity.

โœ… One restructured payment

Refinance

Roll the arrears into a new mortgage and reset your payments around your situation.

โœ… Fastest funding

Private Mortgage

When time is critical, private lenders approve almost entirely on equity โ€” often in days.

Second Mortgage Home Equity Loan Refinance Private Mortgage

Trusted by homeowners across Ontario, Alberta & Saskatchewan

โ˜…โ˜…โ˜…โ˜…โ˜… 5.0 average โ€” real Google reviews from CreditReboot clients

โ˜…โ˜…โ˜…โ˜…โ˜…

“We were hit with an unexpected financial rough patch and our regular bank wasn’t wanting to help us. One quick email to CreditReboot resulted in an immediate response with options available to us. Parm quickly set us on the right path.”

Amanda C.Google Review
โ˜…โ˜…โ˜…โ˜…โ˜…

“Among all the brokers I’ve worked with over the years, Parm at CreditReboot is at the top. I was put into a tricky situation and other brokers had failed to deliver, but Parm helped me out of it and got me a better deal at every turn.”

Molly D.Google Review
โ˜…โ˜…โ˜…โ˜…โ˜…

“Parm was super knowledgeable and really helped us when we were in a pinch and needed a quick close. He made our stressful situation much more manageable. Would highly recommend!”

Elaiza I.Google Review
โ˜…โ˜…โ˜…โ˜…โ˜…

“I was in a total bind looking to get a home equity loan against my property in Alberta, even after letdowns from a couple of lenders and the banks. Parm worked tirelessly to find me a lender tailored to my needs โ€” by far the best I’ve worked with in a difficult situation.”

Harman J.Google Review ยท Alberta
โ˜…โ˜…โ˜…โ˜…โ˜…

“This review is way overdue. You will not be disappointed with Parm โ€” extremely friendly, very knowledgeable, always answering any questions or concerns. You’re always kept in the loop. I’d definitely work with him again.”

StephanieGoogle Review
โ˜…โ˜…โ˜…โ˜…โ˜…

“We value the quality of Parm’s service. He was very approachable, knowledgeable and professional. It was almost hard to believe it all went this smoothly. He was quick to respond when needed. We recommend him to everyone.”

CarmenGoogle Review

Honest guidance, not just a transaction

We arrange financing up to 80% loan-to-value and leave meaningful equity in place as a buffer. Every cost โ€” interest rate, lender fee, broker fee, legal and appraisal โ€” is disclosed in writing before you commit. And if a loan isn’t the right answer, we’ll tell you. Sometimes a payment arrangement with your lender or municipality serves you better.

From crisis to recovery

Right now
In arrears

Missed payments, mounting penalties, legal action looming.

Month 1
Stabilized

Arrears paid, sale stopped, one manageable payment. Credit starts to recover.

12โ€“24 months
~4โ€“5%

Back on track and eligible to refinance to prime A-lender rates.

The 35-day clock is ticking. Let’s stop the sale.

Apply online and we’ll review your equity and arrange financing to reinstate or pay out your mortgage โ€” often approved in as little as 24 hours. No obligation, no upfront fees.

Get Emergency Help Now โ†’

Related reading

Frequently Asked Questions

How do I stop a power of sale in Ontario?
You stop it by reinstating โ€” paying the arrears plus the lender's costs โ€” or by redeeming the full balance before the redemption period ends, or by refinancing to do so. With equity, we can fund the amount needed in time.
What is the redemption period for a power of sale?
In Ontario the Notice of Sale gives a statutory minimum of 35 days, or 40 days for married couples, to bring the mortgage current before the lender can proceed. That window is your opportunity to act, and we work within it.
What is the difference between power of sale and foreclosure?
Power of sale, Ontario's usual route, lets the lender sell the home after a notice period and return any surplus to you without taking title. Foreclosure is a longer court process that transfers ownership to the lender. Both can be stopped before the deadline.
Can I still save my home after a Notice of Sale?
Yes. A Notice of Sale starts the redemption period, not the end โ€” if you pay the arrears or refinance before it expires, the sale is cancelled and you keep your home. The key is acting fast.
What is a Notice of Sale Under Mortgage?
It is the formal demand the lender serves, by registered mail, after default โ€” stating the amount owed and warning the property will be sold if it is not paid within the redemption period. Receiving one starts the clock.
How long does the power of sale process take in Ontario?
After the 35-day, or 40-day, redemption period, the lender can begin court steps to take possession and sell, which can add weeks to months. The early redemption window is where you have the most control.
How many missed payments trigger a power of sale?
A lender can technically begin after as little as 15 days in arrears, though most start after a few missed payments. Do not wait for the notice โ€” earlier action means more options.
Can I reinstate my mortgage during a power of sale?
Yes โ€” during the redemption period you can usually reinstate by paying just the arrears plus the lender's legal costs, rather than the entire balance. We can fund that amount to bring you current.
Can I refinance to stop a power of sale with bad credit?
Yes. Our private and alternative lenders approve on equity, not credit, so they can refinance and pay out the lender even with bruised credit or active arrears.
Can a second mortgage stop a power of sale?
Yes โ€” a second mortgage can provide the lump sum to clear the arrears and halt the sale without disturbing your existing first mortgage. It is often the fastest route.
What happens if I miss the redemption period?
If the period lapses, the lender can seek a court order for possession and sell the property, and you risk losing the home and your equity. That is why we prioritize funding before the deadline.
Will a power of sale affect my credit?
Yes โ€” the missed payments and proceedings damage your credit, but resolving the arrears stops further harm and lets your score begin to recover. Keeping the home and getting current is the best outcome for your credit.

Stop Power of Sale by City

Ontario power of sale moves on statutory timelines. Each page covers the local process and how quickly financing can be arranged.

Ontario

: Bot protection: honeypot + submits through ActiveCampaign's own embed (reCAPTCHA + all hidden tracking fields). Never posts a naked request. ===================================================================== */ (function () { if (window.__crafLoaded) return; window.__crafLoaded = true; // ---- CONFIG (edit here) ---- var GOALS = [ ['๐Ÿ›‘', 'Stop Power of Sale'], ['โš–๏ธ', 'Stop Foreclosure'], ['๐Ÿ›๏ธ', 'Clear Property Tax Arrears'], ['๐Ÿงพ', 'Pay Off CRA'], ['๐Ÿ’ฐ', 'Catch Up Mortgage Arrears'], ['๐Ÿ“‹', 'Other'] ]; // Submits to CreditReboot's DC lead handler (Code Snippet #135: cr_lead_dc): // emails parmsmehmi@gmail.com + saves a DB backup + relays to ActiveCampaign via the secure proxy (#125). // Bot protection = honeypot field "cr_website" (+ required field[100] on the proxy relay). // To switch to source-accurate-only (no admin email) later, set FORM_ACTION = 'cr_form_submit'. var AJAX_URL = '/wp-admin/admin-ajax.php'; var FORM_ACTION = 'cr_lead_dc'; var PHONE = '1-866-329-8801', PHONE_TEL = '18663298801'; var CSS = '\ .craf-applygrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;align-items:start}\ @media(max-width:880px){.craf-applygrid{grid-template-columns:1fr}}\ .craf-copy h2{text-align:left;color:var(--navy,#0A1628);font-family:Inter,Roboto,sans-serif}\ .craf-copy p{color:var(--muted,#5a6b7e)}\ .craf-list{list-style:none;padding:0;margin:14px 0 18px}\ .craf-list li{padding-left:28px;position:relative;margin-bottom:10px;font-weight:600;color:var(--navy,#0A1628)}\ .craf-list li:before{content:"\\2713";position:absolute;left:0;color:var(--green2,#16A34A);font-weight:800}\ .craf-process{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0 34px}\ @media(max-width:760px){.craf-process{grid-template-columns:1fr}}\ .craf-pc{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:20px;text-align:center}\ .craf-pc .n{width:34px;height:34px;border-radius:50%;background:var(--green,#2D8A4E);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 10px}\ .craf-pc h3{font-size:17px;margin:0 0 4px;color:var(--navy,#0A1628)}.craf-pc p{font-size:13.5px;color:var(--muted,#5a6b7e);margin:0}\ .craf-headline{text-align:center;color:var(--navy,#0A1628);font-family:Inter,Roboto,sans-serif;font-size:clamp(23px,3vw,32px);margin:0 0 6px}\ .craf-wrap{background:var(--navy,#0A1628);border-radius:24px;padding:8px;box-shadow:0 20px 50px rgba(10,22,40,.22)}\ .craf-card{background:#fff;border-radius:18px;padding:32px;font-family:Roboto,sans-serif}\ .craf-kick{text-align:center;color:var(--green2,#16A34A);font-weight:800;font-size:13px;letter-spacing:1px;text-transform:uppercase}\ .craf-card h2{text-align:center;font-size:26px;margin:6px 0 4px;color:var(--navy,#0A1628);font-family:Inter,Roboto,sans-serif}\ .craf-sub{text-align:center;color:var(--muted,#5a6b7e);margin-bottom:18px}\ .craf-progress{height:8px;background:#eef1f4;border-radius:999px;overflow:hidden;margin-bottom:6px}\ .craf-progress>i{display:block;height:100%;background:var(--green,#2D8A4E);width:9%;transition:.3s}\ .craf-pstep{font-size:12px;color:var(--muted,#5a6b7e);text-align:right;margin-bottom:18px}\ .craf-step{display:none}.craf-step.active{display:block}\ .craf-step h3{font-size:21px;text-align:center;margin:0 0 18px;color:var(--navy,#0A1628);font-family:Inter,Roboto,sans-serif}\ .craf-opts{display:grid;gap:12px}.craf-opts.two{grid-template-columns:1fr 1fr}.craf-opts.goals{grid-template-columns:1fr 1fr}\ @media(max-width:520px){.craf-opts.goals,.craf-opts.two{grid-template-columns:1fr}}\ .craf-opt{border:2px solid #e5e7eb;border-radius:12px;padding:16px;font-size:16px;font-weight:600;background:#fff;cursor:pointer;text-align:left;font-family:inherit}\ .craf-opt:hover,.craf-opt.sel{border-color:var(--green,#2D8A4E);background:var(--green-bg2,#F0FDF4)}\ .craf-field{margin-bottom:14px}.craf-field label{font-weight:700;font-size:14px;display:block;margin-bottom:6px;color:var(--navy,#0A1628)}\ .craf-field input{width:100%;padding:13px;border:2px solid #e5e7eb;border-radius:10px;font-size:16px;font-family:inherit}\ .craf-field input:focus{outline:0;border-color:var(--green,#2D8A4E)}\ .craf-num{font-size:30px;font-weight:800;text-align:center;color:var(--navy,#0A1628)}\ .craf-slider{width:100%;accent-color:var(--green,#2D8A4E)}\ .craf-nav{display:flex;justify-content:space-between;margin-top:20px;gap:10px}\ .craf-back{background:none;border:0;color:var(--muted,#5a6b7e);font-weight:600;cursor:pointer;font-size:15px}\ .craf-btn{display:inline-block;background:var(--green,#2D8A4E);color:#fff;font-weight:700;font-family:Inter,sans-serif;border:0;padding:14px 26px;border-radius:10px;font-size:16px;cursor:pointer;text-decoration:none;text-align:center}\ .craf-btn:hover{background:var(--green-d,#247141)}\ .craf-err{color:#dc2626;font-size:13px;font-weight:600;text-align:center;margin-top:10px;min-height:18px}\ .craf-screen{display:none;text-align:center}.craf-screen.show{display:block}\ .craf-qual{font-size:42px;font-weight:800;color:var(--green2,#16A34A);margin:6px 0}\ .craf-trust{text-align:center;font-size:12px;color:var(--muted,#5a6b7e);margin-top:14px}\ .craf-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}\ '; function sliderStep(title, cls, numCls, min, max, step, val) { return '

' + title + '

' + '
$' + (+val).toLocaleString() + '
' + '
' + '
' + '
'; } function yesno(title, key) { return '

' + title + '

' + '' + '
'; } function textStep(title, fields, lastAct) { var f = fields.map(function (x) { return '
' + (x.label ? '' : '') + '
'; }).join(''); return '

' + title + '

' + f + '
' + '
'; } function template() { var goals = GOALS.map(function (g) { return ''; }).join(''); return '' + '

The Digital CreditReboot Process

' + '

No branch visits. No waiting in line. Just a simple digital process.

' + '
' + '
1

Pre-Approval

Fill the form, speak to the broker, get your quote.

' + '
2

Application & Approval

We shop the deal to 50+ lenders, you choose your approval.

' + '
3

Funding

Sign the broker & legal docs, arrears cleared, funds released.

' + '
' + '
' + '
' + '

Stop the sale โ€” start your application

' + '

It takes about 60 seconds. No credit check to begin, no upfront fees, and you\'ll speak with a licensed broker who handles arrears every day.

' + '' + '
In a hurry? Call ' + PHONE + ' โ€” we can often start the same day.
' + '
' + '
' + '
Apply in 60 Seconds ยท 100% Digital
' + '

Pre-Approved in Minutes. Funded in Days.

' + '

Canada\'s trusted digital mortgage broker

' + '
' + '
Step 1 of 11
' + '
' + '' + yesno('Do you currently own the home?', 'own') + sliderStep('What is your home\'s estimated value?', 'craf-hv', 'craf-hvn', 200000, 2000000, 10000, 750000) + sliderStep('What is your current mortgage balance?', 'craf-mb', 'craf-mbn', 0, 1500000, 10000, 450000) + yesno('Do you have a HELOC or 2nd mortgage?', 'heloc') + sliderStep('How much do you need to borrow?', 'craf-la', 'craf-lan', 10000, 500000, 5000, 50000) + '

What is your primary goal?

' + goals + '
' + textStep('What city is your property in?', [{ cls: 'craf-city', label: 'City', ph: 'e.g. Toronto, Calgary, Regina' }], 'cont') + textStep('What\'s your name?', [{ cls: 'craf-first', label: 'First name' }, { cls: 'craf-last', label: 'Last name' }], 'cont') + textStep('What\'s your email address?', [{ cls: 'craf-email', type: 'email', label: 'Email address', ph: 'you@email.com' }], 'cont') + textStep('Best phone number to reach you?', [{ cls: 'craf-phone', type: 'tel', label: 'Phone number', ph: '(___) ___-____' }], 'cont') + textStep('Property street address?', [{ cls: 'craf-street', label: 'Street address' }, { cls: 'craf-prov', label: 'Province', ph: 'ON / AB / SK' }, { cls: 'craf-postal', label: 'Postal code' }], 'finish') + '
' + '
' + '
โœ…

Received โ€” thank you.

' + '

You\'ll get a text & email shortly to schedule a time to discuss your options.

' + '
You may qualify for up to
' + '
$0
' + '
Based on 80% LTV โ€” subject to application, property & lender approval.
' + '
๐Ÿ 
' + '

Refi & Equity solutions are for homeowners only.

' + '

If you\'re looking to purchase a home, you can apply using the online application button.

' + 'Online Application' + '
' + '
๐Ÿ”’ No upfront fees ยท No credit check without consent ยท 100% digital & confidential
' + '
' + '
'; } function fmt(n) { return '$' + Math.round(n).toLocaleString(); } function wire(mount, source) { var $ = function (s) { return mount.querySelector(s); }; var steps = mount.querySelectorAll('.craf-step'); var total = steps.length, idx = 0, lead = {}; var bar = $('.craf-bar'), ps = $('.craf-pstep'), err = $('.craf-err'), form = $('.craf-form'); function val(s) { var el = $(s); return el ? (el.value || '').trim() : ''; } function render() { for (var i = 0; i < steps.length; i++) steps[i].classList.toggle('active', i === idx); bar.style.width = ((idx + 1) / total * 100) + '%'; ps.textContent = 'Step ' + (idx + 1) + ' of ' + total; err.textContent = ''; } function go(n) { idx = Math.max(0, Math.min(total - 1, n)); render(); } function showErr(m) { err.textContent = m; } function cont() { if (idx === 1) lead.homeValue = +$('.craf-hv').value; else if (idx === 2) lead.mortgageBalance = +$('.craf-mb').value; else if (idx === 4) lead.loanAmount = +$('.craf-la').value; else if (idx === 6) { if (!val('.craf-city')) return showErr('Please enter your city.'); lead.city = val('.craf-city'); } else if (idx === 7) { if (!val('.craf-first') || !val('.craf-last')) return showErr('Please enter your first and last name.'); lead.first = val('.craf-first'); lead.last = val('.craf-last'); } else if (idx === 8) { if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(val('.craf-email'))) return showErr('Please enter a valid email address.'); lead.email = val('.craf-email'); } else if (idx === 9) { if (val('.craf-phone').replace(/\D/g, '').length < 10) return showErr('Please enter a valid phone number.'); lead.phone = val('.craf-phone'); } go(idx + 1); } function notOwner() { form.style.display = 'none'; ps.style.display = 'none'; $('.craf-notowner').classList.add('show'); } function finish() { if (!val('.craf-street') || !val('.craf-prov') || !val('.craf-postal')) return showErr('Please complete your property address.'); lead.street = val('.craf-street'); lead.prov = val('.craf-prov'); lead.postal = val('.craf-postal'); lead.address = lead.street + ', ' + lead.prov + ' ' + lead.postal; if ($('.craf-hp').value) return; // honeypot tripped -> drop (bot) submitLead(); form.style.display = 'none'; ps.style.display = 'none'; bar.style.width = '100%'; $('.craf-qual').textContent = fmt(Math.max(0, (lead.homeValue || 0) * 0.8 - (lead.mortgageBalance || 0))); $('.craf-success').classList.add('show'); } function submitLead() { // Matches creditreboot.ca DC handler (Snippet #135: cr_lead_dc) โ€” direct keys; it builds the AC field[] map, // emails the admin, saves a DB backup, then relays to the secure proxy (#125) for ActiveCampaign. var fd = new FormData(); fd.append('action', FORM_ACTION); fd.append('fname', lead.first || ''); fd.append('lname', lead.last || ''); fd.append('email', lead.email || ''); fd.append('phone', lead.phone || ''); fd.append('city', lead.city || ''); fd.append('province', lead.prov || ''); fd.append('postal', lead.postal || ''); fd.append('street', lead.street || ''); fd.append('propVal', lead.homeValue || ''); fd.append('mtgBal', lead.mortgageBalance || ''); fd.append('borrowAmt', lead.loanAmount || ''); fd.append('goal', lead.goal || ''); fd.append('lead_source', source); // which page the lead came from (handler uses this) fd.append('field[100]', source); // page source (kept for the cr_form_submit fallback) fd.append('cr_website', ($('.craf-hp') || {}).value || ''); // honeypot try { fetch(AJAX_URL, { method: 'POST', body: fd, credentials: 'same-origin' }); } catch (e) {} } // delegated clicks mount.addEventListener('click', function (e) { var t = e.target.closest('[data-act],[data-key]'); if (!t || !mount.contains(t)) return; if (t.dataset.key) { lead[t.dataset.key] = t.dataset.val; var sib = t.parentNode.querySelectorAll('.craf-opt'); for (var i = 0; i < sib.length; i++) sib[i].classList.remove('sel'); t.classList.add('sel'); if (t.dataset.key === 'own' && t.dataset.val === 'No') { setTimeout(notOwner, 140); return; } setTimeout(function () { go(idx + 1); }, 140); return; } var a = t.dataset.act; if (a === 'back') go(idx - 1); else if (a === 'cont') cont(); else if (a === 'finish') finish(); else if (a === 'goback') { $('.craf-notowner').classList.remove('show'); form.style.display = ''; ps.style.display = ''; idx = 0; render(); } }); // sliders mount.querySelectorAll('.craf-slider').forEach(function (sl) { var num = mount.querySelector('.' + sl.dataset.num); function upd() { num.textContent = fmt(+sl.value); } sl.addEventListener('input', upd); upd(); }); render(); } function init(mount) { mount.innerHTML = template(); wire(mount, mount.getAttribute('data-source') || 'website'); } function boot() { var st = document.createElement('style'); st.textContent = CSS; document.head.appendChild(st); var mounts = document.querySelectorAll('.craf-mount'); for (var i = 0; i < mounts.length; i++) init(mounts[i]); } if (document.readyState !== 'loading') boot(); else document.addEventListener('DOMContentLoaded', boot); })();