Alle
BMW (6)Fiat (1)Jaguar (1)Mercedes-Benz (3)Porsche (6)Smart (1)
Alle
Andere (2)Cabrio/Roadster (4)Kleinwagen (1)Limousine (6)SUV/Geländewagen/Pickup (1)Sportwagen/Coupé (2)Van/Minibus (2)
Alle
Blau (3)Grau (5)Rot (1)Schwarz (7)Weiß (2)
Alle
Benzin (15)Diesel (2)Elektro (1)
Alle
ja (1)nein (17)
Alle
Automatik (17)Handschaltung (1)
jQuery(document).ready(function($) {
// Überprüfen, ob Touch Punch geladen wurde
if (typeof $.ui.slider.prototype._touchMoved === 'undefined') {
console.log("Touch Punch scheint nicht geladen zu sein, wird versucht lokal zu laden...");
// Wenn Touch Punch nicht geladen ist, versuchen wir es lokal zu laden
$.getScript("https://automobile-kleinz.de/wp-content/plugins/Autoforce1//js/jquery.ui.touch-punch.min.js")
.done(function() {
console.log("Touch Punch erfolgreich lokal geladen.");
initializeSliders();
})
.fail(function() {
console.error("Fehler beim Laden von Touch Punch. Mobile Touch-Funktionalität könnte eingeschränkt sein.");
initializeSliders();
});
} else {
console.log("Touch Punch bereits geladen.");
initializeSliders();
}
function initializeSliders() {
// Hilfsfunktion zum Formatieren von Preisen
function formatPrice(price) {
return new Intl.NumberFormat('de-DE', {
style: 'currency',
currency: 'EUR',
maximumFractionDigits: 0
}).format(price);
}
// Hilfsfunktion zum Formatieren von Kilometern
function formatKm(km) {
return new Intl.NumberFormat('de-DE').format(km) + ' km';
}
// Hilfsfunktion zum Formatieren des Baujahrs
function formatYear(year) {
return year;
}
// Verzögerung beim Absenden beim Touch-Ziehen
var submitTimeout;
function delayedSubmit() {
clearTimeout(submitTimeout);
submitTimeout = setTimeout(function() {
$("#filter-options").submit();
}, 500); // 500ms Verzögerung
}
// Preis-Slider initialisieren
try {
$("#preis_slider").slider({
range: true,
min: 4000,
max: 275000,
step: 1000,
values: [
4000,
275000 ],
slide: function(event, ui) {
$("#preis_von").val(ui.values[0]);
$("#preis_bis").val(ui.values[1]);
$("#preis_von_display").text(formatPrice(ui.values[0]));
$("#preis_bis_display").text(formatPrice(ui.values[1]));
// Für Touch-Geräte eine verzögerte Einsendung
if ('ontouchstart' in window) {
delayedSubmit();
}
},
stop: function(event, ui) {
// Bei Maus-Ereignissen sofort einreichen
if (!('ontouchstart' in window)) {
$("#filter-options").submit();
}
}
});
// Initial-Werte setzen
$("#preis_von_display").text(formatPrice($("#preis_slider").slider("values", 0)));
$("#preis_bis_display").text(formatPrice($("#preis_slider").slider("values", 1)));
$("#preis_von").val($("#preis_slider").slider("values", 0));
$("#preis_bis").val($("#preis_slider").slider("values", 1));
console.log("Preis-Slider initialisiert.");
} catch(e) {
console.error("Fehler bei der Initialisierung des Preis-Sliders:", e);
}
// Kilometerstand-Slider initialisieren
try {
$("#kilometerstand_slider").slider({
range: true,
min: 0,
max: 150000,
step: 5000,
values: [
0,
150000 ],
slide: function(event, ui) {
$("#kilometerstand_von").val(ui.values[0]);
$("#kilometerstand_bis").val(ui.values[1]);
$("#kilometerstand_von_display").text(formatKm(ui.values[0]));
$("#kilometerstand_bis_display").text(formatKm(ui.values[1]));
// Für Touch-Geräte eine verzögerte Einsendung
if ('ontouchstart' in window) {
delayedSubmit();
}
},
stop: function(event, ui) {
// Bei Maus-Ereignissen sofort einreichen
if (!('ontouchstart' in window)) {
$("#filter-options").submit();
}
}
});
// Initial-Werte setzen
$("#kilometerstand_von_display").text(formatKm($("#kilometerstand_slider").slider("values", 0)));
$("#kilometerstand_bis_display").text(formatKm($("#kilometerstand_slider").slider("values", 1)));
$("#kilometerstand_von").val($("#kilometerstand_slider").slider("values", 0));
$("#kilometerstand_bis").val($("#kilometerstand_slider").slider("values", 1));
console.log("Kilometerstand-Slider initialisiert.");
} catch(e) {
console.error("Fehler bei der Initialisierung des Kilometerstand-Sliders:", e);
}
// Erstzulassung-Slider initialisieren
try {
$("#erstzulassung_slider").slider({
range: true,
min: 1988,
max: 2024,
step: 1,
values: [
1988,
2024 ],
slide: function(event, ui) {
$("#erstzulassung_von").val(ui.values[0]);
$("#erstzulassung_bis").val(ui.values[1]);
$("#erstzulassung_von_display").text(formatYear(ui.values[0]));
$("#erstzulassung_bis_display").text(formatYear(ui.values[1]));
// Für Touch-Geräte eine verzögerte Einsendung
if ('ontouchstart' in window) {
delayedSubmit();
}
},
stop: function(event, ui) {
// Bei Maus-Ereignissen sofort einreichen
if (!('ontouchstart' in window)) {
$("#filter-options").submit();
}
}
});
// Initial-Werte setzen
$("#erstzulassung_von_display").text(formatYear($("#erstzulassung_slider").slider("values", 0)));
$("#erstzulassung_bis_display").text(formatYear($("#erstzulassung_slider").slider("values", 1)));
$("#erstzulassung_von").val($("#erstzulassung_slider").slider("values", 0));
$("#erstzulassung_bis").val($("#erstzulassung_slider").slider("values", 1));
console.log("Erstzulassung-Slider initialisiert.");
} catch(e) {
console.error("Fehler bei der Initialisierung des Erstzulassung-Sliders:", e);
}
}
// Mobile Filter-Button-Logik
var filterButton = document.getElementById('filter-button');
var filterOptions = document.getElementById('filter-options');
var isMobile = window.innerWidth <= 768;
var isFilterOpen = false;
function toggleFilterOptions() {
isFilterOpen = !isFilterOpen;
filterOptions.style.display = isFilterOpen ? 'block' : 'none';
}
function handleResize() {
isMobile = window.innerWidth <= 768;
if (isMobile) {
filterButton.style.display = 'block';
filterOptions.style.display = isFilterOpen ? 'block' : 'none';
if (filterButton) {
filterButton.addEventListener('click', toggleFilterOptions);
}
} else {
if (filterButton) filterButton.style.display = 'none';
if (filterOptions) filterOptions.style.display = 'flex';
if (filterButton) {
filterButton.removeEventListener('click', toggleFilterOptions);
}
}
}
handleResize();
window.addEventListener('resize', handleResize);
// Reset-Button-Funktionalität
const resetButton = document.getElementById('reset-filters');
if (resetButton) {
resetButton.addEventListener('click', function() {
// Hole die Basis-URL ohne Parameter
const baseUrl = window.location.protocol + "//" + window.location.host + window.location.pathname;
// Redirect zur Basis-URL
window.location.href = baseUrl;
});
}
});