'use strict';var form_class = 'nmsLeadsForm';var form_action = 'https://panel.impact-partner.pl/api/store-leads';var lang = 'en';var redirect_on_success = 'https://impact-partner.pl/en/thanks/';var forms = document.querySelectorAll('.' + form_class); for (var i = 0; i < forms.length; i++) { var fEl = forms[i]; var inp = document.createElement('input'); inp.type = 'hidden'; inp.name = '_method'; inp.value = 'POST'; fEl.appendChild(inp); var inp2 = document.createElement('input'); inp2.type = 'hidden'; inp2.name = 'lang'; inp2.value = lang; fEl.appendChild(inp2); } document.addEventListener('submit', function (e) { var form = e.target; if (form.classList.contains(form_class)) { e.preventDefault(); } else { return; } var ajax = function (options) { const xhr = new XMLHttpRequest(); if (options.method == 'GET') { xhr.open('GET', options.url); options.send = null; } else { xhr.open('POST', options.url); if (typeof options.send == 'string') { xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); } } xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.status == 200) { if (options.success) options.success(xhr.response); } else if (xhr.status != 200) { if (options.error) options.error(xhr.response); } } } xhr.send(options.send); } // reset errors messages const errorElems = form.querySelectorAll('.js-field-error'); if (errorElems.length) { for (const errEl of errorElems) { errEl.innerHTML = ''; errEl.style.display = 'none'; } } // send request ajax({ url: form_action, send: new FormData(form), success: function (response) { try { response = JSON.parse(response); if (response.success && redirect_on_success) { location.href = decodeURIComponent(redirect_on_success); } } catch (error) { console.error(error); } }, error: function (response) { try { response = JSON.parse(response); if (response.error && response.error.messages) { for (const key in response.error.messages) { if (Object.hasOwnProperty.call(response.error.messages, key)) { const msg = response.error.messages[key][0]; const fieldEl = document.querySelector('input[name="' + key + '"]'); if (fieldEl) { const errorEl = fieldEl.parentElement.querySelector('.js-field-error'); if (errorEl) { errorEl.innerHTML = msg; errorEl.style.display = 'block'; } } } } } } catch (error) { console.error(error); } } }); });