blob: 3b68858200147faf9ee041e021a1a6474a8dee56 [file] [log] [blame]
/* global grecaptcha */
(function() {
'use strict';
var http = new XMLHttpRequest(),
xhr = function(method, url, params, success, error, complete) {
http.onreadystatechange = function() {
if (http.readyState === 4 && http.status === 200) {
success(http.responseText);
} else {
error(http.responseText);
}
};
http.open(method, url, true);
if (method === 'POST') {
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
http.send('payload='+params);
}
complete();
};
document.querySelector('.submit').addEventListener('click', function() {
var captchaValue = document.querySelector('#g-recaptcha-response').value;
checkForm().then(function(isFormValid) {
if (isFormValid && !!captchaValue) {
var validFields = [];
setValidationClass('.g-recaptcha', true);
[].slice.call(document.querySelectorAll('#multi-form .validation-field.mf-valid [data-validators]')).forEach(function(field) {
validFields.push({
id: field.getAttribute('id'),
value: field.getAttribute('id') === 'captcha' ? captchaValue : field.value,
placeholder: field.getAttribute('data-placeholder'),
validators: field.getAttribute('data-validators').split(' ')
});
});
xhr('POST', "backend/contact.php?extraParam=contact", JSON.stringify({data: validFields}), function() {
document.querySelector('#responseMessage').innerText = 'Vielen Dank, die E-Mail wurde versandt.';
document.contactForm.reset();
removeClass(document.querySelector('#responseMessage'), 'error');
addClass(document.querySelector('#responseMessage'), 'success');
}, function(res) {
if (res) {
document.querySelector('#responseMessage').innerHTML = res.statusText || "Oops da ist wohl was schiefgelaufen,<br />schreib uns bitte an kontakt@puls-webagentur.de";
removeClass(document.querySelector('#responseMessage'), 'success');
addClass(document.querySelector('#responseMessage'), 'error');
} else {
// console.log('Error: ', res || res.statusText);
}
}, function() {
grecaptcha.reset();
});
} else {
setValidationClass('.g-recaptcha', false);
}
});
}, true);
}());