(function () {
    "use strict";

    var newSiteUrl = "https://www.ieee802.org/3/dq/new/";
    var storageKey = "ieee802-3dq-new-site-notice-dismissed";
    var dismissalPeriod = 30 * 24 * 60 * 60 * 1000;

    // Prevent accidental display on the new Astro site.
    if (window.location.pathname.indexOf("/3/dq/new/") === 0) {
        return;
    }

    function wasRecentlyDismissed() {
        try {
            var dismissedAt = Number(window.localStorage.getItem(storageKey));
            return dismissedAt && Date.now() - dismissedAt < dismissalPeriod;
        } catch (error) {
            return false;
        }
    }

    if (wasRecentlyDismissed()) {
        return;
    }

    var style = document.createElement("style");
    style.textContent = `
    #dq-migration-notice,
    #dq-migration-notice * {
      box-sizing: border-box;
    }

    #dq-migration-notice {
      position: fixed;
      inset: 0;
      z-index: 2147483647;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1.25rem;
      background: rgba(8, 30, 52, 0.78);
      font-family: Arial, Helvetica, sans-serif;
    }

    #dq-migration-notice[hidden] {
      display: none;
    }

    .dq-migration-dialog {
      width: min(100%, 38rem);
      padding: 2rem;
      border-top: 0.4rem solid #00629b;
      border-radius: 0.35rem;
      background: #fff;
      color: #222;
      box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.35);
    }

    .dq-migration-label {
      margin: 0 0 0.5rem;
      color: #00629b;
      font-size: 0.8rem;
      font-weight: bold;
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }

    .dq-migration-dialog h2 {
      margin: 0 0 1rem;
      color: #222;
      font-size: 1.6rem;
      line-height: 1.25;
    }

    .dq-migration-dialog p {
      margin: 0 0 1rem;
      font-size: 1rem;
      line-height: 1.55;
    }

    .dq-migration-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem;
      margin-top: 1.5rem;
    }

    .dq-migration-primary,
    .dq-migration-secondary {
      display: inline-block;
      padding: 0.7rem 1rem;
      border: 2px solid #00629b;
      border-radius: 0.2rem;
      font: inherit;
      font-weight: bold;
      line-height: 1.2;
      text-decoration: none;
      cursor: pointer;
    }

    .dq-migration-primary {
      background: #00629b;
      color: #fff;
    }

    .dq-migration-secondary {
      background: #fff;
      color: #00629b;
    }

    .dq-migration-primary:focus,
    .dq-migration-secondary:focus {
      outline: 3px solid #f6c343;
      outline-offset: 2px;
    }
  `;

    var notice = document.createElement("div");
    notice.id = "dq-migration-notice";

    notice.innerHTML = `
    <div
      class="dq-migration-dialog"
      role="dialog"
      aria-modal="true"
      aria-labelledby="dq-migration-title"
      aria-describedby="dq-migration-description"
    >
      <p class="dq-migration-label">Website update</p>

      <h2 id="dq-migration-title">
        The IEEE P802.3dq website has moved
      </h2>

      <p id="dq-migration-description">
        You are viewing the legacy IEEE P802.3dq website. A new site is now
        available with updated navigation, meeting materials, and project
        information.
      </p>

      <p>
        This legacy page remains available for historical references and
        existing bookmarks.
      </p>

      <div class="dq-migration-actions">
        <a class="dq-migration-primary" href="${newSiteUrl}">
          Visit the new P802.3dq site
        </a>

        <button class="dq-migration-secondary" type="button">
          Continue to the legacy page
        </button>
      </div>
    </div>
  `;

    document.head.appendChild(style);
    document.body.appendChild(notice);

    var previousOverflow = document.body.style.overflow;
    var previousFocus = document.activeElement;
    var dialog = notice.querySelector(".dq-migration-dialog");
    var primaryLink = notice.querySelector(".dq-migration-primary");
    var dismissButton = notice.querySelector(".dq-migration-secondary");

    document.body.style.overflow = "hidden";
    primaryLink.focus();

    function dismissNotice() {
        notice.hidden = true;
        document.body.style.overflow = previousOverflow;

        try {
            window.localStorage.setItem(storageKey, String(Date.now()));
        } catch (error) {
            // The notice still works when storage is unavailable.
        }

        if (previousFocus && typeof previousFocus.focus === "function") {
            previousFocus.focus();
        }
    }

    dismissButton.addEventListener("click", dismissNotice);

    dialog.addEventListener("keydown", function (event) {
        if (event.key === "Escape") {
            dismissNotice();
            return;
        }

        if (event.key !== "Tab") {
            return;
        }

        var focusable = dialog.querySelectorAll("a[href], button:not([disabled])");
        var first = focusable[0];
        var last = focusable[focusable.length - 1];

        if (event.shiftKey && document.activeElement === first) {
            event.preventDefault();
            last.focus();
        } else if (!event.shiftKey && document.activeElement === last) {
            event.preventDefault();
            first.focus();
        }
    });
})();
