// Aktuelles Jahr im Footer setzen document.getElementById('year').textContent = new Date().getFullYear(); // URL-Parameter für Erfolgs-/Fehlermeldungen prüfen (Kontaktformular) document.addEventListener('DOMContentLoaded', () => { const urlParams = new URLSearchParams(window.location.search); // Erfolgsmeldung anzeigen if (urlParams.get('success') === '1') { const successAlert = document.getElementById('alertSuccess'); if (successAlert) { successAlert.classList.remove('d-none'); // Formular leeren const form = document.getElementById('contactForm'); if (form) form.reset(); // Nach oben scrollen window.scrollTo({ top: 0, behavior: 'smooth' }); } } // Fehlermeldung anzeigen if (urlParams.get('error') === '1') { const errorAlert = document.getElementById('alertError'); if (errorAlert) { errorAlert.classList.remove('d-none'); const reason = urlParams.get('reason'); if (reason === 'rate_limit') { errorAlert.innerHTML = ' Zu viele Anfragen! Bitte warten Sie einen Moment, bevor Sie erneut versuchen.'; } // Nach oben scrollen window.scrollTo({ top: 0, behavior: 'smooth' }); } } // Kontaktformular: Maschine aus URL Parameter vorausfüllen const maschine = urlParams.get('maschine'); const maschineInput = document.getElementById('maschine'); if (maschine && maschineInput) { maschineInput.value = decodeURIComponent(maschine); } // Submit-Button Feedback const contactForm = document.getElementById('contactForm'); if (contactForm) { contactForm.addEventListener('submit', function() { const submitBtn = document.getElementById('submitBtn'); if (submitBtn) { submitBtn.disabled = true; submitBtn.innerHTML = 'Wird gesendet...'; } }); } // Maschinen laden loadMaschinen(); }); // Maschinen laden und anzeigen async function loadMaschinen() { try { const response = await fetch('data/maschinen.json'); const data = await response.json(); // Baumaschinen anzeigen displayMaschinen(data.baumaschinen, 'baumaschinen-container'); // Gartengeräte anzeigen displayMaschinen(data.gartengeraete, 'gartengeraete-container'); } catch (error) { console.error('Fehler beim Laden der Maschinen:', error); } } // Maschinen-Karten erstellen und anzeigen function displayMaschinen(maschinen, containerId) { const container = document.getElementById(containerId); if (!container) return; container.innerHTML = ''; maschinen.forEach(maschine => { const card = createMaschinenCard(maschine); container.appendChild(card); }); } // Einzelne Maschinen-Karte erstellen function createMaschinenCard(maschine) { const col = document.createElement('div'); col.className = 'col-md-6 col-lg-4'; // Besonderheiten als Liste let besonderheitenHTML = ''; if (maschine.besonderheiten && maschine.besonderheiten.length > 0) { besonderheitenHTML = ''; } // Spezifikationen let specsHTML = '
'; if (maschine.gewicht) { specsHTML += ` ${maschine.gewicht}`; } if (maschine.leistung) { specsHTML += ` ${maschine.leistung}`; } if (maschine.arbeitsbreite) { specsHTML += ` ${maschine.arbeitsbreite}`; } specsHTML += '
'; // Lieferung Info let lieferungHTML = ''; if (maschine.lieferung) { lieferungHTML = `
Lieferung: ${maschine.lieferung}
`; } // Mehrtagiger Preis let mehrtagigHTML = ''; if (maschine.preisMehrtagig) { mehrtagigHTML = `

${maschine.preisMehrtagig}

`; } // Bild HTML let imageHTML = ''; if (maschine.image) { imageHTML = `${maschine.title}`; } col.innerHTML = `
${imageHTML}
${maschine.title}

${maschine.beschreibung}

${specsHTML} ${besonderheitenHTML}
Preis: ${maschine.preis}
${mehrtagigHTML}
${lieferungHTML}
`; return col; } // Beim Laden der Seite document.addEventListener('DOMContentLoaded', () => { loadMaschinen(); // Kontaktformular: Maschine aus URL Parameter vorausfüllen const urlParams = new URLSearchParams(window.location.search); const maschine = urlParams.get('maschine'); const maschineInput = document.getElementById('maschine'); if (maschine && maschineInput) { maschineInput.value = decodeURIComponent(maschine); } }); // Smooth Scroll für Anker-Links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector(this.getAttribute('href')); if (target) { target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); // Back to Top Button document.addEventListener('DOMContentLoaded', () => { const backToTopButton = document.getElementById('back-to-top'); if (backToTopButton) { // Button bei Scroll anzeigen/verstecken window.addEventListener('scroll', () => { if (window.pageYOffset > 300) { backToTopButton.classList.add('show'); } else { backToTopButton.classList.remove('show'); } }); // Button Klick-Event backToTopButton.addEventListener('click', (e) => { e.preventDefault(); window.scrollTo({ top: 0, behavior: 'smooth' }); }); } });