(function() {
// Read data injected from template
var dataEl = document.getElementById('data-hosted-form');
var submitText = dataEl ? JSON.parse(dataEl.textContent).submitText : 'Submit';
})();
// Client-side conditional field logic (enhancement — form works without this)
document.addEventListener('change', function(e) {
document.querySelectorAll('.field-group[data-condition]').forEach(function(group) {
var cond = JSON.parse(group.getAttribute('data-condition'));
var show = true;
if (cond.show === undefined) {
show = true;
} else if (cond.show === true) {
show = true;
} else if (cond.show === false) {
show = false;
} else if (cond.field && cond.value !== undefined) {
var triggerInput = document.querySelector('[name="' + cond.field + '"]');
if (triggerInput) {
var val = triggerInput.type === 'checkbox' ? triggerInput.checked : triggerInput.value;
show = String(val) === String(cond.value);
}
}
group.style.display = show ? '' : 'none';
});
});
(function() {
var dataEl = document.getElementById('data-hosted-form');
var submitText = dataEl ? JSON.parse(dataEl.textContent).submitText : 'Submit';
var form = document.querySelector('form');
if (!form) return;
form.addEventListener('submit', function(e) {
e.preventDefault();
var btn = document.querySelector('.submit-btn');
btn.disabled = true;
btn.textContent = 'Submitting…';
btn.style.opacity = '0.6';
var fd = new FormData(form);
var action = form.getAttribute('action');
fetch(action, {
method: 'POST',
body: fd,
headers: { 'X-Requested-With': 'XMLHttpRequest' }
})
.then(function(r) { return r.json(); })
.then(function(data) {
if (data.success || data.submission_id) {
document.querySelector('.form-container').innerHTML =
'<div style="text-align:center;padding:60px 32px;">' +
'<div style="font-size:48px;margin-bottom:16px;">✓</div>' +
'<h2 style="font-size:20px;margin-bottom:8px;color:#1a1a2e;">Thank You!</h2>' +
'<p style="color:#666;font-size:14px;">Your response has been submitted successfully.</p>' +
'</div>';
} else if (data.error) {
btn.disabled = false;
btn.textContent = submitText;
btn.style.opacity = '1';
alert('Error: ' + data.error);
}
})
.catch(function(err) {
btn.disabled = false;
btn.textContent = submitText;
btn.style.opacity = '1';
alert('Submission failed. Please try again.');
});
});
})();