document.addEventListener("DOMContentLoaded", () => {
	const header = document.getElementById("header");
	const footer = document.getElementById("footer");
	const container = document.getElementById("container");

	if (!header || !footer || !container) return;

	function updateLayout() {
		const headerHeight = header.getBoundingClientRect().height;
		const footerHeight = footer.getBoundingClientRect().height;
		const viewportHeight = window.innerHeight;

		// 👉 vì header fixed nên KHÔNG trừ header
		const minHeight = viewportHeight - footerHeight;

		container.style.minHeight = `${minHeight}px`;

		// 👉 đẩy nội dung xuống tránh bị header đè
		//container.style.paddingTop = `${headerHeight}px`;
	}

	// debounce resize
	let resizeTimeout;
	window.addEventListener("resize", () => {
		clearTimeout(resizeTimeout);
		resizeTimeout = setTimeout(updateLayout, 100);
	});

	updateLayout();
	window.addEventListener("load", updateLayout);
});

/***********************************************************************************/

$(document).ready(function(){

	AOS.init({
		duration: 1000,
		once: true
	});

	Fancybox.bind('[data-fancybox=""]', {
		//
	});

	Fancybox.bind('[data-fancybox="gallery"]', {
		//
	});

	Fancybox.bind('[data-fancybox="ajax"]', {
		mainClass: 'fcb_ajax'
	});	

	if($(".click_s").length){
		$(".click_s, .click_s_rwd").click(function() {
			$(".form_s").addClass("active");
			$('body').addClass('fixbody');
		});	
		$(".close_form_s").click(function() {
			$(".form_s").removeClass("active");
			$('body').removeClass('fixbody');
		});	
	}

	if($(".sticky").length){
		var sticky = new Sticky('.sticky');
		sticky.update();
	}

	if($(".link_scroll").length){
		$('.link_scroll').click(function(e) {
			e.preventDefault();
			$('html, body').animate({
				scrollTop: $('#neo_form_tuva').offset().top
			}, 500);
		});
	}

	$(".but_bldn_res").click(function(e) {
		$val=$(".but_bldn_res").attr("val");
		if($val==0){
			$(".bl_dn").attr("style","display: flex;");
			$(this).attr("val",1).addClass("active");
		}
		else {
			$(".bl_dn").attr("style","display: none;");
			$(this).attr("val",0).removeClass("active");
		}
	});

	$(".but_show_filter_rwd").click(function() {		
		$(this).toggleClass("active");
		$(".dm_ct_f_tt").toggleClass("active");
	});

	/***********************************************************************************/
	
	if($(".img_Parallax").length){
		const items = document.querySelectorAll(".img_Parallax");

		let mouseX = 0;
		let mouseY = 0;

		let currentX = 0;
		let currentY = 0;

		window.addEventListener("mousemove", (e) => {
			mouseX = e.clientX;
			mouseY = e.clientY;
		});

		function animate() {
			const centerX = window.innerWidth / 2;
			const centerY = window.innerHeight / 2;

			// Smooth motion
			currentX += (mouseX - currentX) * 0.08;
			currentY += (mouseY - currentY) * 0.08;

			items.forEach((item) => {
				const speed = parseFloat(item.dataset.speed) || 0.03;

				let x = (currentX - centerX) * speed;
				let y = (currentY - centerY) * speed;

				x = Math.max(-10, Math.min(10, x));
				y = Math.max(-10, Math.min(10, y));

				item.style.transform =
					`translate3d(${x}px, ${y}px, 0)`;
			});

			requestAnimationFrame(animate);
		}

		animate();
	}

	/***********************************************************************************/

	if($(".swiper2").length){
		const swiper2 = new Swiper('.swiper2', {
			watchOverflow: true,
			preloadImages: false,
			lazy: {
				loadPrevNext: true,					
			},
			autoplay: {
				delay: 2000,
			},
			speed: 500,
			spaceBetween: 24,
			breakpoints: {				
				1024: {
					slidesPerView: 6,
				},
				768: {
					slidesPerView: 4,
				},
				640: {
					slidesPerView: 3,
				},
				320: {
					slidesPerView: 2,
				}
			}
		});
	}

	if($(".swiper3").length){
		const swiper3 = new Swiper('.swiper3', {
			watchOverflow: true,
			preloadImages: false,
			lazy: {
				loadPrevNext: true,					
			},
			navigation: {
				nextEl: '.swiper-button-next-3',
				prevEl: '.swiper-button-prev-3',
			},
			slidesPerView: "auto",
			spaceBetween: 16,		
		});
	}

	if($(".gallery-thumbs3").length){
		var galleryThumbs3 = new Swiper('.gallery-thumbs3', {
			direction: 'horizontal',
			spaceBetween: 8,
			slidesPerView: "5",
			watchSlidesProgress: true,
			watchSlidesVisibility: true,
			centerInsufficientSlides: true			
		});
		var galleryTop3 = new Swiper('.gallery-top3', {
			autoplay: {
				delay: 4000
			},
			spaceBetween: 8,
			slidesPerView: 1,
			thumbs: {
				swiper: galleryThumbs3
			},
			navigation: {
				nextEl: '.swiper-button-next-3-plus',
				prevEl: '.swiper-button-prev-3-plus',
			}
		});
	}
	
	/***********************************************************************************/

	$(".icon_menu_mobile").click(function(e) {
		$val=$(".icon_menu_mobile").attr("val");
		if($val==0){
			$(".menu_mobile").attr("style","visibility: visible;");
			$(this).attr("val",1);
			$('body').addClass("show_menu_mobile");
		}
	});
	
	$(".close_menu_mobile").click(function() {
		$(".menu_mobile").removeAttr("style");
		$(".icon_menu_mobile").attr("val",0);
		$('body').removeClass("show_menu_mobile");
	});
	
	$(".arrown_menu_accordion").click(function(){
		//$(".ul_ma_1 li").removeClass("active");
		$(this).parent().toggleClass('active');
	});    
});

/***********************************************************************************/

document.addEventListener("DOMContentLoaded", function () {

  const imgs = document.querySelectorAll('.sk-img[data-skeleton]');

  const observer = new IntersectionObserver(entries => {
    entries.forEach(entry => {
      if (!entry.isIntersecting) return;

      const wrap = entry.target;
      const img = wrap.querySelector('img[data-src]');

      if (img) {
        img.src = img.dataset.src;
        img.onload = () => {
          setTimeout(() => wrap.classList.add('loaded'), 100);
        };
        img.removeAttribute('data-src');
      }

      observer.unobserve(wrap);
    });
  }, {
    rootMargin: '0px',
    threshold: 0
  });

  imgs.forEach(el => observer.observe(el));

});