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="cwfi2aadbdf9b94836dd29ef458e4025d204"]'); let companyField = formbox.querySelector('[name="cwfi1af8925c39d8f3ea374b1d393042fa3a"]'); let emailField = formbox.querySelector('[name="cwfi7bd9c7ae410e1d547a6d7c6b05e6db10"]'); let telField = formbox.querySelector('[name="cwfif33c24af6c5e237e03ff8b26632d2107"]'); let mssgField = formbox.querySelector('[name="cwfie816c6019c0492c26b47df195bd11f83"]'); //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'); } }); }