document.addEventListener('DOMContentLoaded', function() {
let slides = document.querySelectorAll('.slider .slide');
let currentSlide = 0;
function showSlide(index) {
slides.forEach((slide, i) => {
slide.style.display = (i === index) ? 'block' : 'none';
});
}
showSlide(currentSlide);
setInterval(function() {
currentSlide = (currentSlide + 1) % slides.length;
showSlide(currentSlide);
}, 5000); // Change slide every 5 seconds
});
var swiper = new Swiper('.swiper-container', {
slidesPerView: 1,
spaceBetween: 10,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
loop: true,
autoplay: {
delay: 5000, // 5 secondes
disableOnInteraction: false,
}
});
// Initialiser AOS pour les animations de défilement
AOS.init({
duration: 1000, // Durée de l'animation
easing: 'ease-in-out', // Effet de transition
once: true // L'animation se déclenche une seule fois
});
// Données des voitures (à compléter avec les vraies images et informations)
const cars = [
{ id: 1, category: 'economy', model: 'Hyundai i10', price: 200, image: 'images/voiture_economique_1.jpg' },
{ id: 2, category: 'economy', model: 'Toyota Aygo', price: 180, image: 'images/voiture_economique_2.jpg' },
{ id: 3, category: 'economy', model: 'Renault Clio', price: 220, image: 'images/voiture_economique_3.jpg' },
{ id: 4, category: 'suv', model: 'Nissan X-Trail', price: 450, image: 'images/suv_1.jpg' },
{ id: 5, category: 'suv', model: 'Toyota RAV4', price: 500, image: 'images/suv_2.jpg' },
{ id: 6, category: 'suv', model: 'BMW X5', price: 700, image: 'images/suv_3.jpg' },
{ id: 7, category: 'luxury', model: 'Audi A6', price: 1000, image: 'images/voiture_luxe_1.jpg' },
{ id: 8, category: 'luxury', model: 'Mercedes-Benz S-Class', price: 1200, image: 'images/voiture_luxe_2.jpg' },
{ id: 9, category: 'luxury', model: 'BMW 7 Series', price: 1300, image: 'images/voiture_luxe_3.jpg' }
];
// Fonction pour générer la galerie de voitures
function displayCars(cars) {
// Vider les catégories avant d'ajouter de nouveaux éléments
document.getElementById('economy-cars').innerHTML = '';
document.getElementById('suv-cars').innerHTML = '';
document.getElementById('luxury-cars').innerHTML = '';
// Ajouter chaque voiture dans la catégorie correspondante
cars.forEach(car => {
const carItem = `
Modèle : ${car.model}
Boîte automatique | Climatisation | 5 places
Prix : ${car.price} MAD/jour
`;
document.getElementById(`${car.category}-cars`).innerHTML += carItem;
});
}
// Filtrer les voitures en fonction de la catégorie
function filterCars() {
const category = document.getElementById('category').value;
const filteredCars = category === 'all' ? cars : cars.filter(car => car.category === category);
displayCars(filteredCars);
}
// Trier les voitures en fonction de l'option sélectionnée
function sortCars() {
const sortOption = document.getElementById('sort').value;
let sortedCars;
if (sortOption === 'price-asc') {
sortedCars = cars.sort((a, b) => a.price - b.price);
} else if (sortOption === 'price-desc') {
sortedCars = cars.sort((a, b) => b.price - a.price);
} else if (sortOption === 'model') {
sortedCars = cars.sort((a, b) => a.model.localeCompare(b.model));
}
displayCars(sortedCars);
}
// Initialisation des galeries au chargement de la page
window.onload = function() {
displayCars(cars);
};
// Fonction pour ouvrir la modale de réservation et pré-remplir le véhicule sélectionné
function openModal(carModel) {
// Pré-remplir le modèle de voiture dans le formulaire
document.getElementById('car').value = carModel;
// Afficher la modale
document.getElementById('reservation-modal').style.display = "block";
}
// Fonction pour fermer la modale de réservation
function closeModal() {
document.getElementById('reservation-modal').style.display = "none";
}
// Ajouter des écouteurs d'événements sur les boutons "Réserver maintenant"
const reserveButtons = document.querySelectorAll('.reserve-btn');
reserveButtons.forEach(button => {
button.addEventListener('click', (event) => {
const carModel = event.target.getAttribute('data-car-model'); // Récupère le modèle du véhicule
openModal(carModel);
});
});
// Fermer la modale si l'utilisateur clique en dehors de la modale
window.onclick = function(event) {
if (event.target == document.getElementById('reservation-modal')) {
closeModal();
}
};
// Ouvrir la modale avec le véhicule sélectionné
function openModal(carModel) {
document.getElementById('car').value = carModel; // Remplit le champ véhicule
document.getElementById('reservation-modal').style.display = "block";
}
// Fermer la modale
function closeModal() {
document.getElementById('reservation-modal').style.display = "none";
}
// Fermer la modale lorsqu'on clique en dehors de celle-ci
window.onclick = function(event) {
if (event.target == document.getElementById('reservation-modal')) {
closeModal();
}
};
// Afficher un message de confirmation après soumission
document.getElementById('reservation-form').addEventListener('submit', function (e) {
e.preventDefault(); // Empêche le rechargement par défaut
const form = e.target;
// Soumettre via Formspree
fetch(form.action, {
method: 'POST',
body: new FormData(form),
headers: { 'Accept': 'application/json' },
})
.then(response => {
if (response.ok) {
document.getElementById('reservation-modal').style.display = "none";
document.getElementById('success-message').style.display = "block";
form.reset();
} else {
alert("Une erreur est survenue. Merci d'essayer à nouveau.");
}
})
.catch(error => console.log("Erreur : ", error));
});
AOS.init();