/* Didim Elektrik — front-end interactions */ (function () { "use strict"; /* ---------- 3D Coverflow gallery slider ---------- */ var stage = document.getElementById("stage"); if (stage) { var slides = Array.prototype.slice.call(stage.querySelectorAll(".slide")); var dotsWrap = document.getElementById("dots"); var n = slides.length; var active = 0; // build dots slides.forEach(function (_, i) { var b = document.createElement("button"); b.className = "dot-btn"; b.setAttribute("aria-label", "Görsel " + (i + 1)); b.addEventListener("click", function () { go(i); }); dotsWrap.appendChild(b); }); var dots = Array.prototype.slice.call(dotsWrap.children); function render() { slides.forEach(function (s, i) { var off = i - active; if (off > n / 2) off -= n; if (off < -n / 2) off += n; var abs = Math.abs(off); s.style.transform = "translateX(" + off * 42 + "%) rotateY(" + (-off * 32) + "deg) scale(" + (off === 0 ? 1 : 0.8) + ")"; s.style.opacity = abs > 2 ? "0" : "1"; s.style.zIndex = String(20 - abs); s.style.pointerEvents = abs > 2 ? "none" : "auto"; s.style.boxShadow = off === 0 ? "0 30px 70px rgba(0,0,0,.5)" : "0 16px 40px rgba(0,0,0,.35)"; s.classList.toggle("active", off === 0); }); dots.forEach(function (d, i) { d.classList.toggle("active", i === active); }); } function go(i) { active = ((i % n) + n) % n; render(); } slides.forEach(function (s, i) { s.addEventListener("click", function () { go(i); }); }); document.getElementById("prev").addEventListener("click", function () { go(active - 1); }); document.getElementById("next").addEventListener("click", function () { go(active + 1); }); // keyboard + swipe stage.setAttribute("tabindex", "0"); stage.addEventListener("keydown", function (e) { if (e.key === "ArrowLeft") go(active - 1); if (e.key === "ArrowRight") go(active + 1); }); var startX = null; stage.addEventListener("touchstart", function (e) { startX = e.touches[0].clientX; }, { passive: true }); stage.addEventListener("touchend", function (e) { if (startX === null) return; var dx = e.changedTouches[0].clientX - startX; if (Math.abs(dx) > 40) go(active + (dx < 0 ? 1 : -1)); startX = null; }); // autoplay (pauses on hover) var timer = setInterval(function () { go(active + 1); }, 5000); stage.addEventListener("mouseenter", function () { clearInterval(timer); }); render(); } /* ---------- FAQ accordion ---------- */ var faq = document.getElementById("faq"); if (faq) { faq.querySelectorAll(".faq-q").forEach(function (btn) { btn.addEventListener("click", function () { var item = btn.parentElement; var isOpen = item.classList.contains("open"); faq.querySelectorAll(".faq-item").forEach(function (i) { i.classList.remove("open"); var s = i.querySelector(".sign"); if (s) s.textContent = "+"; }); if (!isOpen) { item.classList.add("open"); var sign = btn.querySelector(".sign"); if (sign) sign.textContent = "+"; } }); }); } })();