document.addEventListener('DOMContentLoaded', function() { var resultEl = document.getElementById('contact_result'); function showResult( type, message ){ if ( !resultEl ) return; resultEl.classList.remove('success', 'error'); resultEl.classList.add(type); resultEl.innerHTML = message; resultEl.style.display = ''; } function setSubmitting( isSubmitting ){ var btn = document.getElementById('contact_submit'); if ( !btn ) return; if ( isSubmitting ){ btn.style.pointerEvents = 'none'; btn.style.opacity = '0.6'; btn.innerHTML = ' Sender...'; } else { btn.style.pointerEvents = ''; btn.style.opacity = ''; btn.innerHTML = 'Send forespørsel '; } } function isEmail( s ){ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test( s ); } function fieldVal( id ){ var el = document.getElementById( id ); return el ? ( el.value || '' ) : ''; } var submitBtn = document.getElementById('contact_submit'); if ( submitBtn ){ submitBtn.addEventListener('click', function(){ var form = document.getElementById('contact_form'); var honeypot = form ? form.querySelector('input[name="website"]') : null; var payload = { firstName: fieldVal('contact_firstname').trim(), lastName: fieldVal('contact_lastname').trim(), email: fieldVal('contact_email').trim(), phone: fieldVal('contact_phone').trim(), message: fieldVal('contact_message').trim(), website: ( honeypot ? honeypot.value : '' ) || '' // honeypot }; // Klient-side validering if ( !payload.email || !isEmail( payload.email ) ){ showResult('error', 'Skriv inn en gyldig e-postadresse.'); var emailEl = document.getElementById('contact_email'); if ( emailEl ) emailEl.focus(); return; } if ( !payload.message ){ showResult('error', 'Skriv en melding før du sender.'); var msgEl = document.getElementById('contact_message'); if ( msgEl ) msgEl.focus(); return; } setSubmitting(true); if ( resultEl ) resultEl.style.display = 'none'; ajaxCall( root_url + '/api/v1/contact', 'POST', JSON.stringify(payload), function( data ){ setSubmitting(false); if ( data.status && data.status.code === 200 ){ showResult('success', 'Takk! Vi har mottatt henvendelsen din og svarer så raskt vi kan på e-post.'); if ( form ){ form.querySelectorAll('input, textarea').forEach(function( el ){ el.value = ''; }); } } else { var msg = (data.status && data.status.message) || 'Kunne ikke sende henvendelsen. Prøv igjen senere.'; showResult('error', msg); } }); }); } });