-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathscript.js
More file actions
1 lines (1 loc) · 5.01 KB
/
script.js
File metadata and controls
1 lines (1 loc) · 5.01 KB
1
const slides=document.querySelector(".js-slides"),slideItems=document.querySelectorAll(".js-slide"),btnLeft=document.querySelector(".js-prev"),btnRight=document.querySelector(".js-next");let currentIndex=0;function getVisibleSlides(){return window.innerWidth<768?1:4}function updateSlider(){var e=-100/getVisibleSlides()*currentIndex;slides.style.transform=`translateX(${e}%)`}btnRight.addEventListener("click",(()=>{currentIndex<slideItems.length-getVisibleSlides()&&(currentIndex++,updateSlider())})),btnLeft.addEventListener("click",(()=>{0<currentIndex&&(currentIndex--,updateSlider())})),window.addEventListener("resize",updateSlider);const surveyData={full_name:"",phone:"",tg:"",agreement:"",experience:"",role:"",has_attended:"",how_ready:"",course:""},$=(e,t=document)=>t.querySelector(e),getCheckedVal=e=>(e=document.querySelector(`input[name="${e}"]:checked`))?e.value:"",show=e=>e.style.display="",hide=e=>e.style.display="none",modal=$(".modal"),step1=$("#survey-form-step-1"),step2=$("#survey-form-step-2"),step3=$("#survey-form-step-3"),closeBtn=$(".modal-close"),backBtns=document.querySelectorAll(".survey-back"),surveyForm=$("#survey-form");window.openSuvey=function(){const e=$("#full_name")?.value.trim(),t=$("#phone")?.value.trim(),tg=$("#telegram")?.value.trim(),c=$("#course")?.value.trim(),agr=!0===$("#agreement")?.checked;e&&t&&agr?(surveyData.full_name=e,surveyData.phone=t,surveyData.tg=tg||"",surveyData.course=c||"",surveyData.agreement=agr?"yes":"no",show(step1),hide(step2),hide(step3),modal.classList.add("is-open")):alert("Please fill all required fields.")},window.goToStep2=function(){var e=getCheckedVal("experience"),t=getCheckedVal("role");e&&t?(surveyData.experience=e,surveyData.role=t,hide(step1),show(step2)):alert("Please select experience and role")},window.goToStep1=function(){hide(step2),show(step1)},window.closeSurveyModal=function(){modal.classList.remove("is-open"),step1.style.display="none",step2.style.display="none",step3.style.display="none"},closeBtn?.addEventListener("click",(()=>{modal.classList.remove("is-open")})),backBtns.forEach((e=>{e.addEventListener("click",(()=>{"none"!==step2.style.display?goToStep1():modal.classList.remove("is-open")}))})),surveyForm.addEventListener("submit",(async e=>{e.preventDefault(),e=getCheckedVal("has_attended");var t=getCheckedVal("how_ready");if(e&&t){surveyData.has_attended=e,surveyData.how_ready=t,e={...surveyData,submittedAt:(new Date).toISOString()},console.log("PAYLOAD to send:",e);try{var s=await fetch("https://pattern-960410420882.europe-central2.run.app",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)}),n=await s.text();if(s.ok){try{JSON.parse(n)}catch{}hide(step1),hide(step2),show(step3)}else console.error("HTTP status:",s.status),console.error("Response body:",n),alert("The server rejected the request. (HTTP "+s.status+"). Details in the console.")}catch(e){alert("A network error has occurred. Check the console.")}}else alert("Please answer both questions.")}));const countDownDate=new Date("Dec 8, 2025 00:00:00").getTime(),countdownElement=document.getElementById("countdown"),interval=setInterval((function(){const now=(new Date).getTime(),distance=countDownDate-now,days=Math.floor(distance/864e5),hours=Math.floor(distance%864e5/36e5),minutes=Math.floor(distance%36e5/6e4);countdownElement.innerHTML=days+" д "+hours+" г "+minutes+" хв ",distance<0&&(clearInterval(interval),countdownElement.innerHTML="Time is up!")}),1e3);document.addEventListener("DOMContentLoaded",(function(){const tariffSelect=document.getElementById("tariff-selection"),purchaseButton=document.querySelector(".tariff-purchase-button"),allPrices=document.querySelectorAll(".tariffs-selection-price .price"),allFeatures=document.querySelectorAll(".tariff-features .list");function updateTariffDisplay(){const selectedOption=tariffSelect.options[tariffSelect.selectedIndex],tariffName=selectedOption.text.trim().toLowerCase(),tariffLink=selectedOption.value;allPrices.forEach((price=>price.style.display="none")),allFeatures.forEach((feature=>feature.style.display="none"));const currentPrice=document.getElementById(`tariff-price-${tariffName}`),currentFeatures=document.getElementById(`tariff-${tariffName}`);currentPrice&&(currentPrice.style.display="block"),currentFeatures&&(currentFeatures.style.display="block"),purchaseButton&&(purchaseButton.href=tariffLink)}updateTariffDisplay(),tariffSelect.addEventListener("change",updateTariffDisplay)})),document.addEventListener("DOMContentLoaded",(()=>{let expandText,collapseText;"ru"===document.documentElement.lang?(expandText="Развернуть",collapseText="Свернуть"):(expandText="Розгорнути",collapseText="Згорнути"),document.querySelectorAll(".review-toggle").forEach((button=>{button.textContent=expandText,button.addEventListener("click",(()=>{const reviewBody=button.closest(".review").querySelector(".review-body");reviewBody.classList.toggle("is-opened"),reviewBody.classList.contains("is-opened")?button.textContent=collapseText:button.textContent=expandText}))}))}));