+ id_icon.hidden = false
+ id_tick.hidden = true
+ id_cross.hidden = true
+ id_spinner.hidden = true
+ // the below causes an ugly flicker, so just keep the message
+ //id_message.hidden = true
+
+ if (!id_form.checkValidity()) {
+ id_form.classList.add('was-validated');
+
+ id_icon.hidden = true
+ id_cross.hidden = false
+ return
+ }
+ id_form.classList.remove('was-validated');
+
+ let details = {
+ given_names: id_given_names.value.slice(0, 256),
+ family_name: id_family_name.value.slice(0, 256),
+ company: id_company.value.slice(0, 256),
+ email: id_email.value.slice(0, 256).toLowerCase(),
+ message: id_message1.value.slice(0, 65536)
+ }
+
+ id_icon.hidden = true
+ id_spinner.hidden = false
+ try {
+ await api_call(
+ '/api/contact/send_enquiry.json',
+ details
+ )
+ }
+ catch (error) {
+ let problem = Problem.from(error)
+
+ id_cross.hidden = false
+ id_spinner.hidden = true
+
+ id_message.textContent = problem.detail
+ //id_message.classList.remove('text-success')
+ id_message.classList.add('text-danger')
+ id_message.hidden = false
+ return
+ }
+ id_tick.hidden = false
+ id_spinner.hidden = true
+ id_message.textContent = 'We have received your enquiry. We will be in touch as soon as possible.'
+ //id_message.classList.add('text-success')
+ id_message.classList.remove('text-danger')
+ id_message.hidden = false