/* Metro Filter v4 (indexOf-based, no regex) */
window.__metroFilter = window.__metroFilter || {init: Date.now(), runs: 0, hidden: 0};
(function() {
  var BL = {
    'los-angeles': ['San Diego','Chula Vista','Oceanside','Carlsbad','Poway','Escondido','San Marcos','El Cajon','Vista','La Mesa','National City','San Francisco','Oakland','San Jose','Berkeley','San Mateo','Fremont','Hayward','San Leandro','Daly City','Concord','Walnut Creek','Sunnyvale','Santa Clara','Mountain View','Palo Alto','Redwood City','Sacramento','West Sacramento','Stockton','Modesto','Fresno','Bakersfield','Visalia','Roseville','Elk Grove','Vallejo','Eureka','Redding'],
    'san-francisco': ['Los Angeles','Long Beach','Anaheim','Irvine','Santa Ana','Riverside','San Bernardino','Ontario','Fontana','San Diego','Chula Vista','Oceanside','Sacramento','West Sacramento','Stockton','Fresno','Bakersfield'],
    'chicago': ['Peoria','Rockford','Springfield','Champaign','Bloomington','Decatur'],
    'denver': ['Colorado Springs','Pueblo','Grand Junction','Fort Collins','Greeley'],
    'detroit': ['Grand Rapids','Lansing','Flint','Ann Arbor','Kalamazoo','Saginaw','Battle Creek'],
    'charlotte': ['Raleigh','Greensboro','Durham','Winston-Salem','Asheville','Wilmington','Fayetteville'],
    'tampa': ['Miami','Jacksonville','Orlando','Fort Lauderdale','West Palm Beach','Tallahassee','Pensacola'],
    'minneapolis': ['Duluth','Rochester','Mankato','Saint Cloud'],
    'indianapolis': ['Fort Wayne','Evansville','South Bend','Bloomington','Lafayette','Terre Haute'],
    'salt-lake-city': ['Provo','Ogden','St George'],
    'memphis': ['Nashville','Knoxville','Chattanooga'],
    'kansas-city': ['St Louis','Saint Louis','Springfield','Columbia'],
    'nashville': ['Memphis','Knoxville','Chattanooga'],
    'new-york': ['Buffalo','Rochester','Syracuse','Albany'],
    'atlanta': ['Augusta','Columbus','Macon','Savannah'],
    'dallas': ['Houston','San Antonio','Austin','El Paso','Fort Worth'],
    'houston': ['Dallas','San Antonio','Austin','El Paso','Fort Worth'],
    'phoenix': ['Tucson','Flagstaff','Mesa'],
    'seattle': ['Spokane'],
    'miami': ['Tampa','Jacksonville','Orlando','Pensacola','Tallahassee'],
    'boston': ['Worcester','Springfield'],
    'philadelphia': ['Pittsburgh','Harrisburg','Allentown','Scranton','Erie']
  };
  var STATES = ['California','Illinois','Colorado','Michigan','North Carolina','Florida','Minnesota','Indiana','Utah','Tennessee','Missouri','New York','Georgia','Texas','Arizona','Washington','Massachusetts','Pennsylvania'];

  var p = location.pathname.split('/').filter(Boolean);
  var metro = p[p.length - 1];
  var cities = BL[metro];
  window.__metroFilter.metro = metro;
  window.__metroFilter.citiesCount = cities ? cities.length : 0;
  if (!cities) return;

  // Pre-compute haystack needles
  var needles = [];
  for (var ci = 0; ci < cities.length; ci++) {
    for (var si = 0; si < STATES.length; si++) {
      needles.push(cities[ci] + ', ' + STATES[si]);
      needles.push(cities[ci] + ',' + STATES[si]);
    }
  }
  window.__metroFilter.needles = needles.length;

  function runFilter() {
    window.__metroFilter.runs++;
    var sliders = document.querySelectorAll('.region-slider-widget, .owl-carousel, [class*="slider"]');
    if (!sliders.length) return false;
    var totalHidden = 0;
    Array.prototype.forEach.call(sliders, function(slider) {
      var cards = slider.querySelectorAll('.owl-item, .item, [class*="member"], [class*="provider"]');
      Array.prototype.forEach.call(cards, function(card) {
        if (card.dataset.mf === '1') return;
        var t = card.textContent || '';
        if (t.length < 5) return;
        for (var i = 0; i < needles.length; i++) {
          if (t.indexOf(needles[i]) !== -1) {
            card.style.display = 'none';
            card.dataset.mf = '1';
            totalHidden++;
            window.__metroFilter.hidden++;
            break;
          }
        }
      });
    });
    return totalHidden;
  }

  if (window.jQuery) {
    try { jQuery(document).ready(runFilter); } catch(e) {}
    try { jQuery(window).on('load', runFilter); } catch(e) {}
  }
  try { document.addEventListener('DOMContentLoaded', runFilter); } catch(e) {}
  try { window.addEventListener('load', runFilter); } catch(e) {}

  var fast = 0;
  var fastInt = setInterval(function() {
    runFilter();
    fast++;
    if (fast > 120) clearInterval(fastInt);
  }, 500);
  setInterval(runFilter, 3000);
})();