// ===== Replace {svg:*} placeholders with <svg><use/></svg>
function injectSVG() {
  document.querySelectorAll('a,div,.card-header,button').forEach(el => {
    el.innerHTML = el.innerHTML.replace(/\{svg:([a-z]+)\}/g, (m, id) => `<svg aria-hidden="true"><use href="#i-${id}"></use></svg>`);
  });
}

// ===== Slider =====
function initSlider() {
  const slider = document.getElementById('slider');
  if (!slider) return; // スライダーがないページでは何もしない

  const slidesEl = slider.querySelector('.slides');
  const slides = Array.from(slider.querySelectorAll('.slide'));
  let idx = 0;

  function go(i) {
    idx = (i + slides.length) % slides.length;
    slidesEl.style.transform = `translateX(-${idx * 100}%)`;
  }

  const prevBtn = document.getElementById('prev');
  const nextBtn = document.getElementById('next');

  if (prevBtn) prevBtn.addEventListener('click', () => go(idx - 1));
  if (nextBtn) nextBtn.addEventListener('click', () => go(idx + 1));

  let auto = setInterval(() => go(idx + 1), 6000);
  slider.addEventListener('mouseenter', () => clearInterval(auto));
  slider.addEventListener('mouseleave', () => auto = setInterval(() => go(idx + 1), 6000));
}

// ===== Drawer (ハンバーガーメニュー) =====
function initDrawer() {
  const ham = document.getElementById('hamburger');
  const drawer = document.getElementById('drawer');
  const closeBtn = document.getElementById('drawerClose');

  console.log('Initializing drawer...');
  console.log('Hamburger element:', ham);
  console.log('Drawer element:', drawer);
  console.log('Close button element:', closeBtn);

  const openDrawer = () => {
    console.log('Opening drawer');
    if (drawer) {
      drawer.classList.add('open');
      drawer.setAttribute('aria-hidden', 'false');
    }
  };

  const closeDrawer = () => {
    console.log('Closing drawer');
    if (drawer) {
      drawer.classList.remove('open');
      drawer.setAttribute('aria-hidden', 'true');
    }
  };

  if (ham) {
    ham.addEventListener('click', openDrawer);
    console.log('Hamburger menu event listener added');
  } else {
    console.error('Hamburger element not found!');
  }

  if (closeBtn) {
    closeBtn.addEventListener('click', closeDrawer);
    console.log('Close button event listener added');
  } else {
    console.error('Close button element not found!');
  }

  if (drawer) {
    drawer.addEventListener('click', (e) => {
      if (e.target === drawer) closeDrawer();
    });
    console.log('Drawer background click event listener added');
  } else {
    console.error('Drawer element not found!');
  }
}

// ===== Footer accordion on mobile =====
function initFooterAccordion() {
  if (window.matchMedia('(max-width: 720px)').matches) {
    document.querySelectorAll('.footer-nav h4').forEach(h => {
      if (h.dataset.bound) return;
      h.dataset.bound = true;
      h.addEventListener('click', () => {
        const ul = h.nextElementSibling;
        if (!ul) return;
        ul.style.display = ul.style.display === 'block' ? 'none' : 'block';
      });
    });
  }
}

// ===== 新着情報ページング =====
function initNewsPagination() {
  const newsList = document.getElementById('new');
  const prevBtn = document.getElementById('prevPage');
  const nextBtn = document.getElementById('nextPage');
  const pageInfo = document.getElementById('pageInfo');
  const paginationContainer = document.getElementById('pagination');

  if (!newsList || !prevBtn || !nextBtn || !pageInfo || !paginationContainer) {
    console.log('Pagination elements not found');
    return;
  }

  const items = Array.from(newsList.querySelectorAll('li'));
  const itemsPerPage = 5;
  let currentPage = 0;
  const totalPages = Math.ceil(items.length / itemsPerPage);

  // ページングコンテナを表示
  paginationContainer.style.display = 'flex';

  function showPage(page) {
    const start = page * itemsPerPage;
    const end = start + itemsPerPage;

    items.forEach((item, index) => {
      if (index >= start && index < end) {
        item.style.display = 'block';
      } else {
        item.style.display = 'none';
      }
    });

    // ボタンの有効/無効状態を更新
    prevBtn.disabled = page === 0;
    nextBtn.disabled = page === totalPages - 1;

    // ページネーション情報を更新
    const startItem = start + 1;
    const endItem = Math.min(end, items.length);
    pageInfo.textContent = `${startItem}-${endItem}件目`;
  }

  prevBtn.addEventListener('click', () => {
    if (currentPage > 0) {
      currentPage--;
      showPage(currentPage);
    }
  });

  nextBtn.addEventListener('click', () => {
    if (currentPage < totalPages - 1) {
      currentPage++;
      showPage(currentPage);
    }
  });

  // 初期表示
  showPage(0);
}

// ===== 初期化 =====
document.addEventListener('DOMContentLoaded', () => {
  console.log('DOM loaded, initializing...');
  injectSVG();
  initSlider();
  initDrawer();
  initFooterAccordion();
  initNewsPagination();
});

window.addEventListener('resize', initFooterAccordion);

// DOMが読み込まれた後に実行
document.addEventListener("DOMContentLoaded", function () {
  const backToTopButton = document.getElementById("backToTop");

  // スクロール位置を監視
  window.addEventListener("scroll", function () {
    if (window.pageYOffset > 300) {
      backToTopButton.style.display = "block";
    } else {
      backToTopButton.style.display = "none";
    }
  });

  // ボタンクリックでトップへスムーズスクロール
  backToTopButton.addEventListener("click", function () {
    window.scrollTo({
      top: 0,
      behavior: "smooth"
    });
  });
});
