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);
}
});
});
}
});