function waitForElementToDisplay(selector, callback, checkFrequencyInMs, timeoutInMs) {
  var startTimeInMs = Date.now();
  (function loopSearch() {
    if (document.querySelector(selector) != null) {
      callback();
      return;
    } else {
      setTimeout(function() {
        if (timeoutInMs && Date.now() - startTimeInMs > timeoutInMs) return;
        loopSearch();
      }, checkFrequencyInMs);
    }
  })();
}

var waitForItAddressEntryHeaderDesktop = setInterval(function() {
  if (document.querySelectorAll("#webform-submission-find-offers-block-content-51-add-form [data-drupal-selector*='edit-actions-submit']").length > 0) {
    //Change value of button if user entered info into address/zip field
    var button = document.querySelector("#webform-submission-find-offers-block-content-51-add-form [data-drupal-selector*='edit-actions-submit']");
    button.addEventListener("click", function(evnt) {
      if (document.querySelector("#webform-submission-find-offers-block-content-51-add-form [data-drupal-selector*='edit-add1']").value != "" && document.querySelector("#webform-submission-find-offers-block-content-51-add-form [data-drupal-selector*='edit-zip']").value != "") {
        button.setAttribute("value", "Loading..");
        if (evnt.ctrlKey || evnt.shiftKey || evnt.metaKey || (evnt.button && evnt.button == 1)) {
          setTimeout(function() {
            button.setAttribute("value", "Check availability");
          }, 10000);
        }
      }
    });
    // Reset field is user clicks the back button from buyflow
    window.onpagehide = function(event) {
      button.setAttribute("value", "Check availability");
    }
    clearInterval(waitForItAddressEntryHeaderDesktop)
  }
}, 400)

var waitForItAddressEntryHeaderMobile = setInterval(function() {
  if (document.querySelectorAll("#webform-submission-find-offers-block-content-10-add-form [data-drupal-selector*='edit-actions-submit']").length > 0) {
    //Change value of button if user entered info into address/zip field
    var button = document.querySelector("#webform-submission-find-offers-block-content-10-add-form [data-drupal-selector*='edit-actions-submit']");
    button.addEventListener("click", function(evnt) {
      if (document.querySelector("#webform-submission-find-offers-block-content-10-add-form [data-drupal-selector*='edit-add1']").value != "" && document.querySelector("#webform-submission-find-offers-block-content-10-add-form [data-drupal-selector*='edit-zip']").value != "") {
        button.setAttribute("value", "Loading..");
        if (evnt.ctrlKey || evnt.shiftKey || evnt.metaKey || (evnt.button && evnt.button == 1)) {
          setTimeout(function() {
            button.setAttribute("value", "Check availability");
          }, 10000);
        }
      }
    });
    // Reset field is user clicks the back button from buyflow
    window.onpagehide = function(event) {
      button.setAttribute("value", "Check availability");
    }
    clearInterval(waitForItAddressEntryHeaderMobile)
  }
}, 400)

var waitForItAddressEntryDesktop = setInterval(function() {
  if (document.querySelectorAll("#homepage-address-entry-block .webform-submission-find-offers-50-50-banner--form [data-drupal-selector*='edit-actions-submit']").length > 0) {
    //Change value of button if user entered info into address/zip field 
    var button = document.querySelector("#homepage-address-entry-block .webform-submission-find-offers-50-50-banner--form [data-drupal-selector*='edit-actions-submit']");
    button.addEventListener("click", function(evnt) {
      if (document.querySelector("#homepage-address-entry-block .webform-submission-find-offers-50-50-banner--form [data-drupal-selector*='edit-add1']").value != "" && document.querySelector("#homepage-address-entry-block .webform-submission-find-offers-50-50-banner--form [data-drupal-selector*='edit-zip']").value != "") {
        button.setAttribute("value", "Loading..");
        if (evnt.ctrlKey || evnt.shiftKey || evnt.metaKey || (evnt.button && evnt.button == 1)) {
          setTimeout(function() {
            button.setAttribute("value", "Check availability");
          }, 10000);
        }
      }
    });
    // Reset field is user clicks the back button from buyflow
    window.onpagehide = function(event) {
      button.setAttribute("value", "Check availability");
    }
    clearInterval(waitForItAddressEntryDesktop)
  }
}, 400)

var waitForItAddressEntryMobile = setInterval(function() {
  if (document.querySelectorAll(".footprint-dynamic-loaded #homepage-address-entry-block .webform-submission-find-offers-50-50-banner--form [data-drupal-selector*='edit-actions-submit']").length > 0) {
    //Change value of button if user entered info into address/zip field 
    var button = document.querySelector("#homepage-address-entry-block .webform-submission-find-offers-50-50-banner--form [data-drupal-selector*='edit-actions-submit']");
    button.addEventListener("click", function(evnt) {
      if (document.querySelector("#homepage-address-entry-block .webform-submission-find-offers-50-50-banner--form [data-drupal-selector*='edit-add1']").value != "" && document.querySelector("#homepage-address-entry-block .webform-submission-find-offers-50-50-banner--form [data-drupal-selector*='edit-zip']").value != "") {
        button.setAttribute("value", "Loading..");
        if (evnt.ctrlKey || evnt.shiftKey || evnt.metaKey || (evnt.button && evnt.button == 1)) {
          setTimeout(function() {
            button.setAttribute("value", "Check availability");
          }, 10000);
        }
      }
    });
    // Reset field is user clicks the back button from buyflow
    window.onpagehide = function(event) {
      button.setAttribute("value", "Check availability");
    }
    clearInterval(waitForItAddressEntryMobile)
  }
}, 400)

function swapDivs(selector1, selector2) {
  var div1 = document.querySelector(selector1);
  var div2 = document.querySelector(selector2);
  if (!div1 || !div2) {
    console.error('One or both elements not found');
    return;
  }
  var placeholder = document.createElement("div");
  div1.parentNode.insertBefore(placeholder, div1);
  div2.parentNode.insertBefore(div1, div2);
  placeholder.parentNode.insertBefore(div2, placeholder);
  placeholder.parentNode.removeChild(placeholder);
}

var scrollThresholdDesktop = 450; 
var scrollThresholdMobile = 530;  

function getCurrentThreshold() {
  return window.innerWidth >= 1200 ? scrollThresholdDesktop : scrollThresholdMobile;
}

function toggleHeaderClass() {
  let currentThreshold = getCurrentThreshold();
  if (window.scrollY > currentThreshold) {
    document.body.classList.remove('hiding-header-form');
  } else {
    document.body.classList.add('hiding-header-form');
  }
}

toggleHeaderClass();
window.addEventListener('scroll', toggleHeaderClass);

window.addEventListener('resize', function() {
  toggleHeaderClass(); 
});

waitForElementToDisplay("#homepage-address-entry-block", function() {  if (OptimumDynamicCookieManager.getCookie('opt_footprint') == 'opt' || OptimumDynamicCookieManager.getCookie('opt_footprint') == 'unknown') {
    toggleHeaderClass();
    if (window.innerWidth > 1200) {
      swapDivs('.header-shop-now', '.store-locator-two')
    } 
  }
}, 100, 9000);
waitForElementToDisplay(".footprint-dynamic-loaded #homepage-address-entry-block", function() {
  if (OptimumDynamicCookieManager.getCookie('opt_footprint') == 'sdl') {
    toggleHeaderClass();
    if (window.innerWidth > 1200) {
      swapDivs('.header-shop-now', '.store-locator-two')
    }
  }
}, 100, 9000);

waitForElementToDisplay("body.toggle-form-style .header .header-inner .header-get-offer-form", function() {
  if (window.innerWidth > 1200) {
    var element = document.querySelector('body.toggle-form-style .header .header-inner .header-get-offer-form');
    if (element) {
      element.style.display = 'block'; 
    }
  }
}, 100, 9000);
waitForElementToDisplay("body.toggle-form-style .sticky-form-offers", function() {
  if (window.innerWidth < 1200) {
    var element = document.querySelector('body.toggle-form-style .sticky-form-offers');
    if (element) {
      element.style.display = 'block'; 
    }
  }
}, 100, 9000);