
$(function () {



  // Modals 

  // modal registration

  $('.modal-btn').on('click', function () {
    $('body').addClass('body--noscroll');
    $('.modal').addClass('show');
  });

  $('.modal-close').on('click', function () {
    $('body').removeClass('body--noscroll');
    $('.modal').removeClass('show');
  });


  // --- Мобильный поиск ---
  $('.mob-search-btn').on('click', function () {
    $('.h-search__form').addClass('active');
    $('body').addClass('body--noscroll');
  });
  $('.h-search__mobileclose').on('click', function () {
    $('.h-search__form').removeClass('active');
    $('body').removeClass('body--noscroll');
  });

  // --- Поиск ---

  $('.h-search__input').on('input', function () {
    const value = $(this).val().trim();

    if (value.length > 0) {
      $('.h-result').fadeIn(200);
    } else {
      $('.h-result').fadeOut(200);
    }
  });


  // --- Куки-баннер ---
  (function () {
    var cookiesBlock = document.querySelector('.cookies');
    var cookiesBtn = document.querySelector('.cookies .btn-dark');
    var cookiesKey = 'cookiesAccepted';
    if (localStorage.getItem(cookiesKey) === 'true') {
      if (cookiesBlock) cookiesBlock.style.display = 'none';
    } else {
      if (cookiesBlock) cookiesBlock.style.display = '';
    }
    if (cookiesBtn) {
      cookiesBtn.addEventListener('click', function () {
        localStorage.setItem(cookiesKey, 'true');
        if (cookiesBlock) {
          cookiesBlock.style.opacity = '1';
          cookiesBlock.style.transition = 'opacity 0.3s';
          cookiesBlock.style.opacity = '0';
          setTimeout(function () {
            cookiesBlock.style.display = 'none';
          }, 300);
        }
      });
    }
  })();

  // --- Header padding ---
  if ($('.header').length && $('.page').length) {
    const headerHeight = $('.header').outerHeight() + 20;
    $('.page').css('padding-top', headerHeight);
  }

  // --- Мобильные/десктопные дропдауны ---
  (function () {
    const dropdowns = [];
    function initDropdown(toggleSelector, boxSelector, closeSelector) {
      const toggle = document.querySelector(toggleSelector);
      const box = document.querySelector(boxSelector);
      const close = document.querySelector(closeSelector);
      if (!toggle || !box) return;
      const dropdown = { toggle, box };
      dropdowns.push(dropdown);
      toggle.addEventListener('click', (e) => {
        e.stopPropagation();
        const isOpening = !toggle.classList.contains('active');
        dropdowns.forEach(d => {
          d.toggle.classList.remove('active');
          d.box.classList.remove('active');
        });
        if (isOpening) {
          toggle.classList.add('active');
          box.classList.add('active');
        }
        updateBodyScroll();
      });
      close?.addEventListener('click', (e) => {
        e.stopPropagation();
        toggle.classList.remove('active');
        box.classList.remove('active');
        updateBodyScroll();
      });
      box.addEventListener('click', (e) => e.stopPropagation());
      document.addEventListener('click', () => {
        dropdowns.forEach(d => {
          d.toggle.classList.remove('active');
          d.box.classList.remove('active');
        });
        updateBodyScroll();
      });
    }
    function updateBodyScroll() {
      const anyOpen = dropdowns.some(d =>
        d.toggle.classList.contains('active') &&
        d.box.classList.contains('active')
      ) || $('.h-search__form').hasClass('active');
      document.body.classList.toggle('body--noscroll', anyOpen);
    }
    initDropdown('.mobile-menu-btn', '.header-menu', '.header-menu__close');
    initDropdown('.h-katalog', '.h-katalog__box', '.h-katalog__close');
    initDropdown('.h-marki', '.h-marki__box', '.h-marki__close');
    initDropdown('.header-cart', '.h-cart', '.h-cart__close');
  })();

  // --- Фильтры каталога ---
  document.querySelectorAll('.filter-group').forEach(group => {
    const filterList = group.querySelector('.filter-list');
    const toggleBtn = group.querySelector('.filter-more');
    if (!filterList || !toggleBtn) return;
    filterList.classList.add('collapsed');
    toggleBtn.addEventListener('click', () => {
      const isCollapsed = filterList.classList.toggle('collapsed');
      toggleBtn.classList.toggle('active', !isCollapsed);
      toggleBtn.textContent = isCollapsed ? 'Więcej' : 'Mniej';
    });
  });

  // --- Лайк на товаре ---
  $('.prod-label--like').on('click', function () {
    $(this).toggleClass('active');
  });

  // --- Табы ---
  document.querySelectorAll('.tabs').forEach(tabs => {
    const buttons = tabs.querySelectorAll('.tab-buttons button');
    const panes = tabs.querySelectorAll('.tab-content .tab-pane');
    const content = tabs.querySelector('.tab-content');
    const header = document.querySelector('.header');
    if (!buttons.length || !panes.length || !content) return;
    buttons.forEach((button, index) => {
      button.addEventListener('click', () => {
        buttons.forEach(btn => btn.classList.remove('active'));
        panes.forEach(pane => pane.classList.remove('active'));
        button.classList.add('active');
        panes[index].classList.add('active');
        const headerHeight = header ? header.offsetHeight : 0;
        const offsetTop = content.getBoundingClientRect().top + window.pageYOffset - headerHeight;
        window.scrollTo({ top: offsetTop, behavior: 'smooth' });
      });
    });
  });

  // --- Открытие/закрытие фильтра на мобилке ---
  $('.btn-filters').on('click', function () {
    $('body').addClass('body--noscroll');
    $('.catalog-sidebar').addClass('active');
    $('body').addClass('body--noscroll');
  });
  $('.catalog-sidebar__close, .btn-apply-catfilter').on('click', function () {
    $('body').removeClass('body--noscroll');
    $('.catalog-sidebar').removeClass('active');
    $('body').removeClass('body--noscroll');
  });

});

// --- Scroll header ---
window.addEventListener('scroll', () => {
  const header = document.querySelector('.header');
  if (!header) return;
  if (window.scrollY > 300) {
    header.classList.add('scrolled');
  } else {
    header.classList.remove('scrolled');
  }
});
  


//  cart 

$('.order-option input[type="radio"]').on('change', function () {
  // Скрываем все блоки деталей
  $('.order-option__details').slideUp(200);

  // Показываем только для выбранной опции
  if ($(this).is(':checked')) {
    $(this).closest('.order-option').find('.order-option__details').slideDown(200);
  }
});



$(document).ready(function () {
  function validateStep($step) {
    let isValid = true;
    $step.find('input[required], select[required], textarea[required]').each(function () {
      // Проверяем только обязательные поля!
      if ($(this).is(':invalid') || !$(this).val()) {
        isValid = false;
        $(this).addClass('input-error');
      } else {
        $(this).removeClass('input-error');
      }
    });
    return isValid;
  }

  $('.form-btn').on('click', function (e) {
    e.preventDefault();

    let $steps = $('.cart-step');
    let $currentStep = $steps.filter('.active');
    let currentIndex = $steps.index($currentStep);

    // Проверяем только обязательные поля
    if (!validateStep($currentStep)) {
      return;
    }

    if (currentIndex < $steps.length - 1) {
      $currentStep.removeClass('active').hide();
      let $nextStep = $steps.eq(currentIndex + 1);
      $nextStep.addClass('active').show();

      let $stepsList = $('.cart-steps-item');
      $stepsList.eq(currentIndex).addClass('completed active');
      $stepsList.eq(currentIndex + 1).addClass('active');

      $('html, body').animate({
        scrollTop: $('.cart-page').offset().top
      }, 600);
    }
  });

  $('.cart-step').hide().first().show();
});



// faq 

$(document).ready(function() {
  // изначально скрываем все, кроме активного
  $('.faq-item').each(function() {
    if (!$(this).hasClass('active')) {
      $(this).find('.faq-item__content').hide();
    }
  });

  $('.faq-item__top').on('click', function() {
    const $item = $(this).closest('.faq-item');
    const $content = $item.find('.faq-item__content');

    // если уже открыт — закрываем
    if ($item.hasClass('active')) {
      $item.removeClass('active');
      $content.slideUp();
    } else {
      // закрыть другие
      $('.faq-item').removeClass('active').find('.faq-item__content').slideUp();

      // открыть текущий
      $item.addClass('active');
      $content.slideDown();
    }
  });
});


