85 lines
3.4 KiB
JavaScript
85 lines
3.4 KiB
JavaScript
// Scroll Listener
|
|
if (document.body.classList.contains("hero")) {
|
|
window.addEventListener("scroll", function () {
|
|
if (window.scrollY > 10)
|
|
document.body.classList.add("scroll");
|
|
else
|
|
document.body.classList.remove("scroll");
|
|
});
|
|
}
|
|
function testFoodRelatedInputs() {
|
|
var freitagElement = document.getElementById('abendFreitag');
|
|
var freitagChecked = freitagElement.checked;
|
|
var samstagElement = document.getElementById('abendSamstag');
|
|
var samstagChecked = samstagElement.checked;
|
|
var ernaehrungElement = document.getElementById('ernaehrung');
|
|
var allergien = document.getElementById('allergien');
|
|
ernaehrungElement.disabled = !freitagChecked && !samstagChecked;
|
|
allergien.disabled = !freitagChecked && !samstagChecked;
|
|
}
|
|
window.onload = function () {
|
|
// Sidebar toggle
|
|
var sidebarToggleElement = document.querySelector('[data-action="toggle-sidebar"]');
|
|
if (sidebarToggleElement) {
|
|
sidebarToggleElement.addEventListener("click", function () {
|
|
document.body.classList.toggle("sidebar");
|
|
});
|
|
}
|
|
var freitagAbendElement = document.getElementById('abendFreitag');
|
|
if (freitagAbendElement) {
|
|
freitagAbendElement.addEventListener('change', function (event) { testFoodRelatedInputs(); });
|
|
}
|
|
var samstagAbendElement = document.getElementById('abendSamstag');
|
|
if (samstagAbendElement) {
|
|
samstagAbendElement.addEventListener('change', function (event) { testFoodRelatedInputs(); });
|
|
}
|
|
// Form silent submit
|
|
var formElement = document.querySelector('form');
|
|
if (formElement) {
|
|
formElement.addEventListener('submit', function (e) {
|
|
var targetUrl = e.target.action;
|
|
// Load form data
|
|
var formParameter = GetFormParameter(e.target);
|
|
// Build url
|
|
var queryString = Object.keys(formParameter).map(function (k) { return encodeURIComponent(k) + "=" + encodeURIComponent(formParameter[k]); }).join("&");
|
|
var getUrl = targetUrl + "?" + queryString;
|
|
// Perform get request
|
|
var xmlHttp = new XMLHttpRequest();
|
|
xmlHttp.open("GET", getUrl);
|
|
xmlHttp.send();
|
|
// Cleanup
|
|
e.target.reset();
|
|
alert("Anmeldung abgeschickt");
|
|
e.preventDefault();
|
|
});
|
|
}
|
|
};
|
|
function GetFormParameter(form) {
|
|
var params = new Array();
|
|
var length = form.elements.length;
|
|
for (var i = 0; i < length; i++) {
|
|
var element = form.elements[i];
|
|
if (element.tagName == 'TEXTAREA' || element.tagName == 'SELECT') {
|
|
params[element.name] = element.value;
|
|
}
|
|
else if (element.tagName == 'INPUT') {
|
|
if (element.type == 'text' || element.type == 'email' || element.type == 'hidden' || element.type == 'password') {
|
|
params[element.name] = element.value;
|
|
}
|
|
else if (element.type == 'radio' && element.checked) {
|
|
if (!element.value)
|
|
params[element.name] = "on";
|
|
else
|
|
params[element.name] = element.value;
|
|
}
|
|
else if (element.type == 'checkbox' && element.checked) {
|
|
if (!element.value)
|
|
params[element.name] = "on";
|
|
else
|
|
params[element.name] = element.value;
|
|
}
|
|
}
|
|
}
|
|
return params;
|
|
}
|