Pickup & Delivery Available SCHEDULE
Contact WaveMAX Laundry
Get in Touch

Have Questions?
We're Here to Help

Whether you're finding a location or exploring franchise ownership, our team is ready.

Open 7am to 10pm Daily
75+ Locations Nationwide
#1 Laundromat Franchise
How Can We Help?

Contact WaveMAX

Choose what you are looking for and we will connect you with the right resource.

We will find the nearest WaveMAX location to you, or enter your city or zip code below.

or
1
2
3
4
5
Cash available for investment

Our minimum liquidity requirement is $500k.

Current net worth

Our minimum net worth requirement is $1M.

Level of interest

Please tell us what stage you are in.

How did you hear about us?

We love to know how you found WaveMAX!

' : ''; card.innerHTML = '
📍
' +'
' +'
'+loc.n+'
' +'
'+loc.a+'
' +phoneHtml +'
'+item.dist.toFixed(1)+' mi away
' +'
' +'
' +'Directions' +(loc.c ? 'Contact' : '') +(loc.u ? 'Location' : '') +'
'; results.appendChild(card); }); var all = document.createElement('div'); all.className = 'wmc-loc-all'; all.innerHTML = 'View all '+WMC_LOC.length+' WaveMAX locations →'; results.appendChild(all); } function wmcGeo() { var btn = document.getElementById('wmc-geo-btn'); var lbl = btn.querySelector('.wmc-geo-btn__lbl'); var status = document.getElementById('wmc-loc-status'); if (!navigator.geolocation) { status.textContent = 'Geolocation is not supported by your browser.'; status.style.display = 'block'; return; } btn.classList.add('loading'); btn.disabled = true; lbl.textContent = 'Detecting location...'; status.textContent = 'Finding nearest WaveMAX locations...'; status.style.display = 'block'; document.getElementById('wmc-loc-results').innerHTML = ''; navigator.geolocation.getCurrentPosition( function(pos) { btn.classList.remove('loading'); btn.disabled = false; lbl.textContent = 'Use My Current Location'; wmcShowLocs(pos.coords.latitude, pos.coords.longitude, 'your location'); }, function(err) { btn.classList.remove('loading'); btn.disabled = false; lbl.textContent = 'Use My Current Location'; status.textContent = err.code === 1 ? 'Location access was denied. Enter your city or zip below.' : 'Could not get your location. Enter your city or zip below.'; status.style.display = 'block'; }, {timeout:10000, maximumAge:300000} ); } function wmcZipSearch() { var query = document.getElementById('wmc-zip').value.trim(); var status = document.getElementById('wmc-loc-status'); if (!query) return; status.textContent = 'Searching for "'+query+'"...'; status.style.display = 'block'; document.getElementById('wmc-loc-results').innerHTML = ''; fetch('https://nominatim.openstreetmap.org/search?format=json&limit=1&countrycodes=us&q='+encodeURIComponent(query), {headers:{'Accept-Language':'en'}}) .then(function(r){ return r.json(); }) .then(function(data) { if (data && data.length > 0) { var lat = parseFloat(data[0].lat); var lng = parseFloat(data[0].lon); var name = data[0].display_name.split(',').slice(0,2).join(',').trim(); wmcShowLocs(lat, lng, name); } else { status.textContent = 'No results for "'+query+'". Try a different city or zip.'; status.style.display = 'block'; } }) .catch(function() { // Fallback: match in our own data var q = query.toLowerCase(); var match = WMC_LOC.find(function(l){ return l.a.toLowerCase().indexOf(q) > -1; }); if (match) { wmcShowLocs(match.lat, match.lng, query); } else { status.textContent = 'Search unavailable. Try the locations page.'; status.style.display = 'block'; document.getElementById('wmc-loc-results').innerHTML = ''; } }); } // ============================================================ // FORM: sync wizard data into hidden fields before submit // ============================================================ var wfEl = document.getElementById('wmc-franchise-form'); if (wfEl) { wfEl.addEventListener('submit', function() { var notes = []; if (WMC.liq) { notes.push('Cash: '+WMC.liq); document.getElementById('wmc-liq').value = WMC.liq; } if (WMC.nw) { notes.push('Net Worth: '+WMC.nw); document.getElementById('wmc-nw').value = WMC.nw; } if (WMC.int) { notes.push('Interest: '+WMC.int); document.getElementById('wmc-int').value = WMC.int; } if (WMC.src) { notes.push('Source: '+WMC.src); document.getElementById('wmc-src').value = WMC.src; } document.getElementById('wmc-desc').value = notes.join(' | '); }); }