(form, text) { var result = form.querySelector('.gel-message-result'); if (!result) { result = document.createElement('div'); result.className = 'gel-message-result'; var button = form.querySelector('button[type="submit"], input[type="submit"]'); if (button && button.parentNode) { button.parentNode.insertBefore(result, button); } else { form.appendChild(result); } } result.className = 'gel-message-result error'; result.innerHTML = text; } function addHoneypot(form) { if (form.querySelector('[name="company_website"]')) { return; } var wrap = document.createElement('div'); wrap.className = 'gel-honeypot-field'; wrap.setAttribute('aria-hidden', 'true'); var input = document.createElement('input'); input.type = 'text'; input.name = 'company_website'; input.value = ''; input.autocomplete = 'off'; input.tabIndex = -1; wrap.appendChild(input); form.appendChild(wrap); } function prepareForm(form) { if (form.getAttribute('data-anti-spam-ready') === '1') { return; } form.setAttribute('data-anti-spam-ready', '1'); form.setAttribute('data-form-start-time', String(Date.now())); addHoneypot(form); } function isBlockedEmail(email) { email = String(email || '').toLowerCase(); for (var i = 0; i < blockedEmailDomains.length; i++) { var domain = blockedEmailDomains[i].toLowerCase(); if (email.indexOf('@' + domain) !== -1) { return true; } } return false; } function hasBlockedWords(text) { text = String(text || '').toLowerCase(); for (var i = 0; i < blockedWords.length; i++) { if (text.indexOf(blockedWords[i]) !== -1) { return true; } } return false; } function blockSubmit(e, form, text) { e.preventDefault(); e.stopPropagation(); if (typeof e.stopImmediatePropagation === 'function') { e.stopImmediatePropagation(); } showFormError(form, text); return false; } document.addEventListener('DOMContentLoaded', function () { var forms = document.querySelectorAll('.gel-message-form'); for (var i = 0; i < forms.length; i++) { prepareForm(forms[i]); } }); document.addEventListener('submit', function (e) { var form = e.target; if (!form || !form.classList || !form.classList.contains('gel-message-form')) { return; } prepareForm(form); var startTime = parseInt(form.getAttribute('data-form-start-time'), 10) || Date.now(); var usedTime = Date.now() - startTime; var honeypot = getFieldValue(form, 'company_website'); var contacts = getFieldValue(form, 'contacts'); var mobile = getFieldValue(form, 'mobile'); var email = getFieldValue(form, 'email'); var content = getFieldValue(form, 'content'); var allText = contacts + ' ' + mobile + ' ' + email + ' ' + content; if (honeypot !== '') { return blockSubmit(e, form, 'Submission failed. Please contact us by email.'); } if (usedTime < minSubmitTime) { return blockSubmit(e, form, 'Please check your information and submit again.'); } if (isBlockedEmail(email)) { return blockSubmit(e, form, 'Submission failed. Please contact us by email.'); } if (hasBlockedWords(allText)) { return blockSubmit(e, form, 'Submission failed. Please contact us by email.'); } }, true); })();