`,
'umzugsreinigung': `
Details zur Umzugsreinigung
`,
'gewerbeumzug': `
Details zum Gewerbeumzug
`,
'entsorgung': `
Details zur Entsorgung
`,
'kleintransport': `
Details zum Kleintransport
`
};
// Service-Karten Event Listener
document.querySelectorAll('.uk-service-card').forEach(card => {
card.addEventListener('click', function() {
document.querySelectorAll('.uk-service-card').forEach(c => c.classList.remove('selected'));
this.classList.add('selected');
ukSelectedService = this.dataset.service;
document.getElementById('ukSelectedService').value = ukSelectedService;
document.getElementById('uk-step1-next').disabled = false;
});
});
window.ukNextStep = function() {
if (ukCurrentStep === 1 && !ukSelectedService) {
alert('Bitte wählen Sie einen Service aus.');
return;
}
if (ukCurrentStep === 2) {
ukCalculateFinalPrice();
ukShowSummary();
}
document.getElementById(`uk-step-${ukCurrentStep}`).classList.remove('active');
document.getElementById(`uk-progress-${ukCurrentStep}`).classList.add('completed');
ukCurrentStep++;
document.getElementById(`uk-step-${ukCurrentStep}`).classList.add('active');
document.getElementById(`uk-progress-${ukCurrentStep}`).classList.add('active');
if (ukCurrentStep === 2) {
document.getElementById('uk-service-details-container').innerHTML = serviceDetailsHTML[ukSelectedService];
}
}
window.ukPrevStep = function() {
document.getElementById(`uk-step-${ukCurrentStep}`).classList.remove('active');
document.getElementById(`uk-progress-${ukCurrentStep}`).classList.remove('active');
ukCurrentStep--;
document.getElementById(`uk-step-${ukCurrentStep}`).classList.add('active');
document.getElementById(`uk-progress-${ukCurrentStep}`).classList.remove('completed');
document.getElementById(`uk-progress-${ukCurrentStep}`).classList.add('active');
}
window.ukUpdatePrice = function() {
// Live-Update würde hier stattfinden
}
window.ukCalculateFinalPrice = function() {
ukBasePrice = 0;
ukAdditionalCosts = 0;
switch(ukSelectedService) {
case 'privatumzug':
const wohnungsgroesse = document.querySelector('[name="wohnungsgroesse"]')?.value;
const umzugPreise = {'1': 800, '2': 1200, '3': 1600, '4': 2200, '5': 2800, '6': 3500};
ukBasePrice = umzugPreise[wohnungsgroesse] || 1500;
break;
case 'umzugsreinigung':
const zimmer = document.querySelector('[name="zimmer_reinigung"]')?.value;
const reinigungPreise = {'1': 550, '2': 750, '3': 950, '4': 1200, '5': 1450, '6': 1700};
ukBasePrice = reinigungPreise[zimmer] || 950;
if (document.getElementById('uk-abgabegarantie')?.checked) ukBasePrice *= 1.2;
break;
case 'gewerbeumzug':
const arbeitsplaetze = parseInt(document.querySelector('[name="arbeitsplaetze"]')?.value) || 10;
ukBasePrice = arbeitsplaetze * 250;
break;
case 'entsorgung':
const mengePreise = {'klein': 300, 'mittel': 800, 'gross': 1500};
const menge = document.querySelector('[name="entsorgungsmenge"]')?.value;
ukBasePrice = mengePreise[menge] || 800;
break;
case 'kleintransport':
const anzahl = parseInt(document.querySelector('[name="anzahl_gegenstaende"]')?.value) || 1;
ukBasePrice = 150 + (anzahl - 1) * 50;
break;
}
const total = ukBasePrice + ukAdditionalCosts;
const discountedPrice = total * 0.8;
const savings = total * 0.2;
document.getElementById('ukOriginalPrice').textContent = `CHF ${total.toFixed(2)}`;
document.getElementById('ukFinalPrice').textContent = `CHF ${discountedPrice.toFixed(2)}`;
document.getElementById('ukSavings').textContent = `CHF ${savings.toFixed(2)}`;
}
window.ukShowSummary = function() {
const summaryContent = document.getElementById('uk-summary-content');
const serviceName = {'privatumzug': 'Privatumzug', 'umzugsreinigung': 'Umzugsreinigung',
'gewerbeumzug': 'Gewerbeumzug', 'entsorgung': 'Entsorgung',
'kleintransport': 'Kleintransport'};
summaryContent.innerHTML = `
Service:
${serviceName[ukSelectedService]}
Basispreis:
CHF ${ukBasePrice.toFixed(2)}
`;
}
window.ukSubmitForm = function() {
const name = document.getElementById('ukName').value;
const email = document.getElementById('ukEmail').value;
const telefon = document.getElementById('ukTelefon').value;
const adresse = document.getElementById('ukAdresse').value;
if (!name || !email || !telefon) {
alert('Bitte füllen Sie alle Pflichtfelder aus.');
return;
}
// Sammle alle Formulardaten
const formData = new FormData(document.getElementById('ukUmzugForm'));
const total = ukBasePrice + ukAdditionalCosts;
const discountedPrice = total * 0.8;
const savings = total * 0.2;
// E-Mail-Body erstellen
const emailBody = `
NEUE ANFRAGE - UMZUGSKONFIGURATOR
========== KONTAKTDATEN ==========
Name: ${name}
E-Mail: ${email}
Telefon: ${telefon}
Adresse: ${adresse || 'Nicht angegeben'}
========== SERVICE ==========
Service-Typ: ${ukSelectedService.toUpperCase()}
${Array.from(formData.entries()).map(([key, value]) => `${key}: ${value}`).join('\n')}
========== PREISBERECHNUNG ==========
Basispreis: CHF ${ukBasePrice.toFixed(2)}
Zusatzleistungen: CHF ${ukAdditionalCosts.toFixed(2)}
Gesamtpreis: CHF ${total.toFixed(2)}
Nach 20% Rabatt: CHF ${discountedPrice.toFixed(2)}
Ersparnis: CHF ${savings.toFixed(2)}
========== BEMERKUNGEN ==========
${formData.get('bemerkungen') || 'Keine'}
Diese Anfrage wurde automatisch über den Umzugskonfigurator generiert.
`.trim();
// Mailto-Link erstellen
const subject = `Neue Anfrage - ${ukSelectedService} - ${name}`;
const mailtoLink = `mailto:jonasbeer00@gmail.com?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(emailBody)}`;
// E-Mail-Client öffnen
window.location.href = mailtoLink;
// Success-Message anzeigen
document.querySelector('.uk-cta-box').style.display = 'none';
document.querySelectorAll('.uk-form-group').forEach(el => el.style.display = 'none');
document.querySelector('.uk-button-group').style.display = 'none';
document.getElementById('uk-success-message').style.display = 'block';
}
})();