// COOKIE BANNER function hideCookieBanner() { document.getElementById('cookieConsent').style.display = 'none'; // Set cookie here if needed document.cookie = "cookieConsent=true; expires=Fri, 31 Dec 9999 23:59:59 GMT"; showYTContent(); } // Check if cookie is set if (document.cookie.includes("cookieConsent=true")) { hideCookieBanner(); console.log(document.cookie); showYTContent(); } function showYTContent() { console.log('showYTContent'); // selector selecting all iframe with attribute src_youtube document.querySelectorAll('iframe[src_youtube]').forEach(function (iframe) { console.log(iframe.getAttribute('src_youtube')); // set the src attribute to the value of the src_youtube attribute iframe.setAttribute('src', iframe.getAttribute('src_youtube')); }); } // DEFAULT DISABLED FORM BUTTON // Select the button var button = document.querySelector('.custom_submit-button'); console.log(button); // Check if JavaScript is turned on from client document.addEventListener('DOMContentLoaded', function () { // Select the button again var button = document.querySelector('.custom_submit-button'); // Disable the button if JavaScript is active // button.disabled = true; }); // Validate Form // Function for validating the form function validateForm() { var imageInput = document.getElementById('formFile'); var emailInput = document.getElementById('exampleFormControlInput1'); var content = document.querySelectorAll('input[name="content[]"]'); var direction = document.querySelectorAll('input[name="direction[]"]'); // Check if at least one option is selected -> some var atLeastOneContentChecked = Array.from(content).some(content => content.checked); // Check if at least one direction is selected var atLeastOneDirectionChecked = Array.from(direction).some(direction => direction.checked); // Check if the email field is filled out, use trim for making sure to delete whitespaces from the mail var emailValid = emailInput.value.trim() !== ''; // Check if the image field is filled out var imageValid = imageInput.files.length > 0; // Select the button again var button = document.querySelector('.custom_submit-button'); // Check if all conditions are met to enable the button if (atLeastOneContentChecked && atLeastOneDirectionChecked && emailValid && imageValid) { button.disabled = false; // Enable the button } else { button.disabled = true; // Disable the button } } // Add an event listener to trigger the validation function when there are changes in the form fields document.addEventListener('DOMContentLoaded', function () { // Select form fields var formFields = document.querySelectorAll('input[type="file"], input[type="email"], input[name="content[]"], input[name="direction[]"]'); // Add event listener to trigger the validation function when there are changes in the form fields // formFields.forEach(field => { // field.addEventListener('change', validateForm); // }); }); // WHEN UPLOAD ERROR, SCROLL TO ERROR MESSAGE // Function to scroll to id 'form' function scrollToForm() { var uploadElement = document.getElementById('form'); if (uploadElement) { uploadElement.scrollIntoView({ behavior: 'smooth' }); } else { console.error('Das Element mit der ID "form" wurde nicht gefunden.'); } } // Executing function only when error message is displayed document.addEventListener("DOMContentLoaded", function () { var error = document.getElementById("errorMessage"); if (error) { scrollToForm() } }); // ONLY ALLWOING ONE CHECKED CHECKBOX // On load get checkboxes document.addEventListener("DOMContentLoaded", function () { var leftCheckbox = document.getElementById("inlineCheckbox1"); var rightCheckbox = document.getElementById("inlineCheckbox2"); // if left checkbox is checked, right is not leftCheckbox.addEventListener("change", function () { if (this.checked) { rightCheckbox.checked = false; } }); // if right checkbox is checked, left is not rightCheckbox.addEventListener("change", function () { if (this.checked) { leftCheckbox.checked = false; } }); }); // SHOWING ERROR MESSAGE WHEN WRONG FILE TYPE IS UPLOADED // document.addEventListener("DOMContentLoaded", function () { // var formFile = document.getElementById("formFile"); // var errorMessage = document.getElementById("errorMessage"); // formFile.addEventListener("change", function () { // var allowedTypes = ['image/jpeg', 'image/png', 'image/tiff', 'image/heic']; // var file = formFile.files[0]; // console.log(file); // if (file) { // if (allowedTypes.includes(file.type)) { // errorMessage.style.display = 'none'; // Hide error message if file type is allowed // } else { // errorMessage.style.display = 'block'; // Show error message if file type is not allowed // formFile.value = ''; // Clear the file input // } // } // }); // }); function validateCheckboxes() { let checked = false; let boxes = document.querySelectorAll(".custom_upload_checkboxes input"); let box = document.querySelector(".custom_upload_checkboxes"); let message = box.querySelector(".invalid-feedback"); boxes.forEach(function (element) { if (element.checked) { checked = true; } }) if (!checked) { boxes.forEach(function (element) { element.addEventListener("click", checkboxValidated); }); box.style.border = "solid 1px var(--bs-form-invalid-color)"; message.style.display = "block"; } } function checkboxValidated() { let box = document.querySelector(".custom_upload_checkboxes"); let message = box.querySelector(".invalid-feedback"); box.style.borderColor = "var(--bs-form-valid-color)"; message.style.display = "none"; } function checkImageType() { let fileInput = document.querySelector("#formFile"); let files = fileInput.files; if (files.length > 0) { let filetype = files[0].type; // Überprüfen, ob der Dateityp nicht einem der erlaubten Bildtypen entspricht if (filetype !== 'image/jpeg' && filetype !== 'image/png' && filetype !== 'image/tiff') { let box = fileInput.parentElement; let message = box.querySelector(".invalid-feedback"); fileInput.classList.remove("is-valid"); fileInput.classList.add("wrongData"); message.textContent = "Falscher Bildtyp"; message.style.display = "block"; return false; } else { return true; } } } // Example starter JavaScript for disabling form submissions if there are invalid fields (function () { 'use strict' // Fetch all the forms we want to apply custom Bootstrap validation styles to var forms = document.querySelectorAll('.needs-validation') // Loop over them and prevent submission Array.prototype.slice.call(forms) .forEach(function (form) { form.addEventListener('submit', function (event) { validateCheckboxes(); if (!form.checkValidity() && !checkImageType()) { event.preventDefault() event.stopPropagation() } form.classList.add('was-validated') }, false) }) })()