window.addEventListener('DOMContentLoaded',function(e){ initFAQ(); initForminquiry(); initVideos(); initMobileMenu(); }); function initVideos(){ let videoBoxs = document.querySelectorAll('.deal__video'); videoBoxs.forEach(box => { let video = box.querySelector('video'); box.addEventListener('mouseenter', () => { video.play(); }); box.addEventListener('mouseleave', () =>{ video.pause(); }); }); } function initFAQ(){ document.querySelectorAll('div#faq div.faq__item').forEach(function(item){ item.addEventListener('click', function(e){ if(this.classList.contains('faq__item--open')) closeAllFAQ(); else openFAQ(this); }); }); } function initForminquiry(){ let forminquiry = document.getElementById('forminquiry'); if(!forminquiry) return; forminquiry.addEventListener('submit', function(e){ e.preventDefault(); // loading let loading = false; // box let formbox = document.querySelector('.contactform'); // inputs let nameField = formbox.querySelector('[name="cwfi8cc3f95cda195e16c1e91da50def4a06"]'); let companyField = formbox.querySelector('[name="cwfi42edcbd437e60669dfd618fb19342147"]'); let emailField = formbox.querySelector('[name="cwfiba3d6fe05d6371efbc011661e94186e1"]'); let telField = formbox.querySelector('[name="cwfi4eca9699cac5f77aa91967ed85933cad"]'); let mssgField = formbox.querySelector('[name="cwfiacef407e630fe685028dd3f31214621a"]'); //error let errorEle = formbox.querySelector('.contactform__error'); // reset nameField.classList.remove('contactform__field--error'); emailField.classList.remove('contactform__field--error'); errorEle.innerHTML = ''; // values let nameValue = nameField.value.trim(); let emailValue = emailField.value.trim(); let valid = true; // test if(nameValue == ""){ valid = false; nameField.classList.add('contactform__field--error'); } if(!/\S+@\S+/.test(emailValue)){ valid = false; emailField.classList.add('contactform__field--error'); } if(!valid){ errorEle.innerHTML = "Please fill in the required information in the correct form."; return; } // create formdata let formData = new FormData(this); // create xhr let xhr = new XMLHttpRequest(); // add loadstart event xhr.addEventListener('loadstart', function(){ // add loading loading = document.createElement('div'); loading.className = 'contactform__overflow contactform__overflow--semi'; loading.innerHTML = '
Loading...
'; formbox.appendChild(loading); }); // add loadend event xhr.addEventListener('loadend', function(){ setTimeout(function(){ // remove loading if(loading){ loading.parentNode.removeChild(loading); loading = null; } // server problem if(xhr.readyState !== 4 || xhr.status !== 200 || xhr.response === null || xhr.response.status === 'fail'){ errorEle.innerHTML = "Transmission error. Please try again."; return; } // reset hodnot nameField.value = ''; companyField.value = ''; emailField.value = ''; telField.value = ''; mssgField.value = ''; // add success let success = document.createElement('div'); success.className = 'contactform__overflow'; // add headline success let headlinesuccess = document.createElement('div'); headlinesuccess.className = 'contactform__headline'; headlinesuccess.innerHTML = "We will process your request immediately and send you more detailed information. We are happy for your interest! "; success.appendChild(headlinesuccess); formbox.appendChild(success); }, 500); }); // set POST params xhr.open('POST', 'https://www.orcave.com/academy/ajax/inquiry'); // set JSON xhr.responseType = 'json'; // send xhr.send(formData); }); } function openFAQ(element){ closeAllFAQ(); element.classList.add('faq__item--open'); } function closeAllFAQ(){ document.querySelectorAll('div#faq div.faq__item--open').forEach(function(item){ item.classList.remove('faq__item--open'); }); } function toggleDealPopup(state, id){ let deal = document.querySelector('[a-deal="'+id+'"]') if(!deal) return; let popup = deal.querySelector('.deal__popup'); if(!popup) return; if(state === 'open') popup.classList.add('deal__popup--open'); else popup.classList.remove('deal__popup--open'); } function initMobileMenu(){ let open = false; let btn = document.querySelector('#mobilemenubtn'); if(!btn) return; btn.addEventListener('click', () => { if(open){ open = false; document.body.classList.remove('opemobilemenu'); } else { open = true; document.body.classList.add('opemobilemenu'); } }); }