- Locations
- Appointments
- Tires
- Specials
Menu
Locations>
- Make Appointment
Our Services>
Special Offers>
- Careers
Contact>
Find A Location
View All Locations
Alabama
Arizona
Arkansas
Florida
Georgia
Illinois
Indiana
Kansas
Louisiana
Mississippi
North Carolina
Ohio
Oklahoma
South Carolina
Tennessee
Texas
Utah
Virginia
West Virginia
Or
Our Services
View All Services
Air Conditioning
Air Filter
Alignment
Batteries
Belts + Hoses
Brake Pads
Brake Rotors
Car Diagnostic
Cooling System
Drivetrain
Exhaust + Muffler
Fuel System Cleaning
Headlights
Oil Change
Radiator
Scheduled Maintenance
Shocks + Struts
Starter + Alternator
State Inspection
Steering + Suspension
Tire Repair
Tire Rotation + Balance
Transmission Flush
Tune-Up
Windshield Wipers
Contact
About Us
Contact Us
Fleet Services
Real Estate Development
Sponsorships
Our Guarantees
Michelin Promise
Service Warranty
Tire Warranty
Special Offers
Current Deals
Financing
'; else i += '
'; i += '
'; i += '
' + r.name + ''; if (r.distance.length > 0) { i += '
' + r.distance; if (r.distance != 'nearby') i += ' away'; i += '
'; } i += '
' + r.addr1 + '
'; i += '
' + r.city + ', ' + r.state + ' ' + r.zip + '
'; i += '
Location Hours:
'; i += '
' if (r.hours.IsWeekdaySame) { i += 'M-F: ' + r.hours.Mon.toLowerCase() + '
'; i += 'Sat: ' + r.hours.Sat.toLowerCase() + '
'; i += 'Sun: ' + r.hours.Sun + '
'; } else { i += 'Mon: ' + r.hours.Mon.toLowerCase() + '
'; i += 'Tue: ' + r.hours.Tue.toLowerCase() + '
'; i += 'Wed: ' + r.hours.Wed.toLowerCase() + '
'; i += 'Thu: ' + r.hours.Thu.toLowerCase() + '
'; i += 'Fri: ' + r.hours.Fri.toLowerCase() + '
'; i += 'Sat: ' + r.hours.Sat.toLowerCase() + '
'; i += 'Sun: ' + r.hours.Sun + '
'; } if (r.holidaystext.length > 0) { i += '' + r.holidaystext + ''; } i += '
' i += '
'; if (m247tiresspage) { if (r.url.length > 0) { i += '
'; } else { if (r.name.indexOf('Coming Soon') == -1) { i += '
'; } } } else { if (r.url.length > 0) { i += '
'; i += '
'; } else { if (r.name.indexOf('Coming Soon') == -1) { i += '
Schedule Appointment
'; } i += '
Location Info
'; } } i += '
'; i += '
'; var li = document.createElement('li'); li.className = 'loc-' + ind; li.innerHTML = i; return li; } function m247_SetStoreTires(location) { $("#m159_LoadingImage").addClass('show'); $.ajax({ type: "POST", cache: false, url: "/App_Services/Locations.ashx?method=store&retailerid=" + location, success: function () { $('#m247Form').submit(); }, error: function (err) { console.log('m247_SetStoreTires: ' + err); $("#m159_LoadingImage").removeClass('show'); } }); } function m247_FilterRetailers(resp) { var data = JSON.parse(resp); var showAll = false; if (data.retailers) { var r = []; var maxLength = data.retailers.length > 10 ? 10 : data.retailers.length; for (var i = 0; i < maxLength; i++) { var id = data.retailers[i].id; var distance = data.retailers[i].distance; for (var j = 0; j < m247Retailers.length; j++) { if (m247Retailers[j].location == id) { m247Retailers[j].distance = distance; r.push(m247Retailers[j]) } } } if (r.length > 0) { m247_InitMap(r); m247_DisplayRetailerList(r); m247_ScrollToMap(); } else { m247_ShowError("We're sorry - there are no locations within your zip code. Please retry your search."); showAll = true; } } else { m247_ShowError("We're sorry - there are no locations within your zip code. Please retry your search."); showAll = true; } if (showAll) { m247_InitMap(m247Retailers); m247_DisplayRetailerList(m247Retailers); } } function m247_ScrollToMap() { var isMobile = GlobalIsMobile.any(); var speed = isMobile ? 500 : 1000; var offsetTop = isMobile ? 90 : 40; if ($('div#m247-store-list')) { try { var t = $('div#m247-store-list').offset().top; if (t) { $('html, body').animate({ scrollTop: t - offsetTop }, speed); } } catch (e) { console.log('m247_ScrollToMap: ' + e); } } } function m247_SearchZip(resetSearch) { var zip = document.getElementById("m247-zip").value; if (zip && zip.length > 0) { if (resetSearch) m247_ResetForZipSearch(false); m247_DetermineRetailers(zip, 20); var l = window.location.href.replace(window.location.search, ''); var n = l + "?zip=" + encodeURIComponent(zip); history.pushState(null, null, n); $('.location-map h1').text('Find A Location Near ' + zip); } } function m247_DetermineRetailers(zip, radius) { var r = radius || 20; try { $.ajax({ type: 'GET', url: '/App_Services/Retailers.ashx?method=retailers&zip=' + zip + '&radius=' + r, success: m247_FilterRetailers, error: function (err) { console.error('getNearestRetailerByZip', err); } }); } catch (err) { console.error('getNearestRetailerByZip', err); } } function m247_UseMyLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (position) { var lat = position.coords.latitude; var lng = position.coords.longitude; var geoZip = ''; var geoCountry = ''; var latlng = new google.maps.LatLng(lat, lng); var geocoder = new google.maps.Geocoder(); var error = ''; geocoder.geocode({ 'latLng': latlng }, function (results, status) { if (status === google.maps.GeocoderStatus.OK) { if (results) { var arrAddress = results[0].address_components; arrAddress.forEach(function (address_component) { if (address_component.types[0] === "postal_code") { geoZip = address_component.long_name; } else if (address_component.types[0] === "country") { geoCountry = address_component.short_name; } }); } if (geoZip) { if (geoCountry == 'US') { m247_ResetForZipSearch(true); m247_DetermineRetailers(geoZip, 20); var l = window.location.href.replace(window.location.search, ''); var n = l + "?usemylocation=" + geoZip; history.pushState(null, null, n); $('.location-map h1').text('Find A Location Near ' + geoZip); } else { error = 'Location outside of the US'; } } else { error = 'Cannot find location'; } } else { error = 'Geocoder failed due to: ' + status; } if (error) { m247_ShowError(error); } }); }, m247_GeoLocateErr); } else { m247_ShowError('Please enable device to detect your location'); } } function m247_GeoLocateErr(err) { if (err.code === 1) { m247_ShowError('Please enable device to detect your location'); } else { m247_ShowError('Geolcoation Error (' + err.code + '): ' + err.message); } } function m247_ShowError(err) { $('#m247-map-err').empty().text(err); } function m247_ClearError() { $('#m247-map-err').empty(); } function m247_LoadStates() { var states = []; for (var i = 0; i < m247Retailers.length; i++) { var r = m247Retailers[i]; var has = false; for (var j = 0; j < states.length; j++) { if (r.state === states[j].Abbr) { has = true; break; } } if (has === false) { states.push({ Full: r.statefull, Abbr: r.state }); } } var sortedStates = states.sort(m247_Sort("Full")); $.each(sortedStates, function (index, value) { $('#m247-storestates').append($('
', { value: value.Abbr, text: value.Full })); }); var paramS = m247_GetParam("state"); if (paramS.length > 0) { paramS = decodeURI(paramS.split('+').join(' ')).toUpperCase(); $("#m247-storestates option").filter(function () { return $(this).text().toUpperCase() === paramS; }).prop('selected', true); m247_LoadCities(paramS); } } function m247_LoadCities(sel) { var cities = []; var selectedState = sel || ''; if (selectedState.length > 0) { for (var i = 0; i < m247Retailers.length; i++) { var r = m247Retailers[i]; var has = false; for (var j = 0; j < cities.length; j++) { if (r.city === cities[j].City) { has = true; break; } } if (has === false) { if (selectedState.length > 0) { if (r.state.toUpperCase() === selectedState.toUpperCase() || r.statefull.toUpperCase() == selectedState.toUpperCase()) { cities.push({ City: r.city, State: r.State }); } } else { cities.push({ City: r.city, State: r.State }); } } } var sortedCities = cities.sort(m247_Sort("City")); $('#m247-storecities').empty().append('
'); if (sortedCities.length > 0) { $.each(sortedCities, function (index, value) { var op = new Option(value.City, value.City, false, false); $('#m247-storecities').append(op) }); } else { $('#m247-storecities').append('
'); } var paramC = decodeURIComponent(m247_GetParam("city").split('+').join(' ')); if (paramC.length > 0) { var matchingValue = $('#m247-storecities option').filter(function () { return this.value.toLowerCase() === paramC; }).attr('value'); $('#m247-storecities').val(matchingValue).trigger('change'); } } else { $('#m247-storecities').empty().append('
'); } } function m247_ChangeStates() { var s = document.getElementById("m247-storestates"); var l = window.location.href.replace(window.location.search, ''); var i = s.selectedIndex; if (i > 0) { m247UseGeo = false; m247UseZip = false; var t = s.options[i].text; var v = s.options[i].value; var n = l + "?state=" + encodeURI(t.toLowerCase().split(' ').join('+')); history.pushState(null, null, n); m247_LoadCities(v); var r = m247_FilterByStateCity(); m247_InitMap(r); m247_DisplayRetailerList(r); $('.location-map h1').text('Find A Location in ' + t); //m247_ScrollToMap(); $('#m247-storecities').select2('open'); } } function m247_ChangeCities() { var l = window.location.href.replace(window.location.search, ''); var n = ''; var started = false; var s = document.getElementById("m247-storestates"); var i = s.selectedIndex; var state = ''; var city = ''; if (i > 0) { m247UseGeo = false; m247UseZip = false; state = s.options[i].text; var p = encodeURI(state.toLowerCase().split(' ').join('+')); var n = l + "?state=" + p; started = true; } var c = document.getElementById("m247-storecities"); i = c.selectedIndex; if (i > 0) { city = c.options[i].text; var p = encodeURI(city.toLowerCase().split(' ').join('+')); if (started) n += "&city=" + p; else n = l + "?city=" + p; } history.pushState(null, null, n); var r = m247_FilterByStateCity(); m247_InitMap(r); m247_DisplayRetailerList(r); m247_ScrollToMap(); $('.location-map h1').text('Find A Location in ' + city + ', ' + state); } function m247_Reset() { var l = window.location.href.replace(window.location.search, ''); history.pushState(null, null, l); $("#m247-storestates").val("State"); $('#m247-storestates').trigger('change'); var z = document.getElementById("m247-zip"); if (z) z.value = ''; for (var i = 0; i < m247Retailers.length; i++) { var r = m247Retailers[i]; r.distance = ''; } m247UseGeo = false; m247UseZip = false; m247_LoadCities(); m247_InitMap(m247Retailers); m247_DisplayRetailerList(m247Retailers); $('.location-map h1').text('Find a Location Near You'); } function m247_ResetForZipSearch(fromUseMyLoc) { var l = window.location.href.replace(window.location.search, ''); history.pushState(null, null, l); $("#m247-storestates").val("State"); $('#m247-storestates').trigger('change'); if (fromUseMyLoc) { var z = document.getElementById("m247-zip"); if (z) z.value = ''; } m247_LoadCities(); } function m247_Sort(prop) { return function (a, b) { if (a[prop] > b[prop]) return 1; else if (a[prop] < b[prop]) return -1; return 0; } } function m247_GetParam(name) { return decodeURIComponent((location.search.split(name + '=')[1] || '').split('&')[0]); } var resetBtn = document.getElementById('m247-reset'); if (resetBtn) { resetBtn.addEventListener("click", function () { m247_ClearError(); m247_Reset(); }); } var sbtn = document.getElementById("m247-search-btn"); if (sbtn) sbtn.addEventListener("click", function () { m247_ClearError(); m247UseGeo = false; m247UseZip = true; m247_SearchZip(true); }); var hbtn = document.getElementById('m247-use-home-btn'); if (hbtn) hbtn.addEventListener("click", function () { window.location = '/stores/?usemylocation'; }); var ubtn = document.getElementById("m247-use-btn"); if (ubtn) ubtn.addEventListener("click", function () { m247_ClearError(); m247UseGeo = true; m247UseZip = false; m247_UseMyLocation(); }); $(document).ready(function () { $(document).on('keypress', function (e) { if (e.which == 13) { m247_ClearError(); m247UseGeo = false; m247UseZip = true; m247_SearchZip(true); } }); if (jQuery().select2) { $('#m247-storestates').select2(); $('#m247-storestates').on('select2:select', function (e) { if ($(this)[0].selectedIndex > 0) { m247GeoLatLng = null; m247_ClearError(); m247_ChangeStates(); } }); $('#m247-storecities').select2(); $('#m247-storecities').on('select2:select', function (e) { m247_ChangeCities(); }); $(document).on('select2:open', () => { document.querySelector('.select2-search__field').focus(); }); } else { var statesdd = document.getElementById("m247-storestates"); if (statesdd) { statesdd.addEventListener("change", function () { m247_ClearError(); m247_ChangeStates(); }); } } })