document.addEventListener('DOMContentLoaded', function () { const urlParams = new URLSearchParams(window.location.search); const viajeSeleccionado = urlParams.get('viaje'); const vistaIdentificacion = document.getElementById('vista-identificacion'); const reservaContainer = document.getElementById('reserva-container'); if (!viajeSeleccionado) { vistaIdentificacion.style.display = 'none'; document.querySelector('h2').style.display = 'none'; const errorViaje = document.createElement('div'); errorViaje.className = 'mensaje-advertencia'; errorViaje.innerHTML = `

Error: Viaje no especificado

Para poder realizar una reserva, tenés que acceder desde un link de viaje concreto.

Ejemplo de URL correcta:
.../reserva.html?viaje=Maraton-de-Mendoza

`; reservaContainer.appendChild(errorViaje); return; } let nombreViajeLimpio = viajeSeleccionado.replace(/-/g, ' '); document.getElementById('nombre-viaje').textContent = nombreViajeLimpio; document.getElementById('info-viaje').style.display = 'block'; /* MODIFICADO: Base de datos enriquecida con más datos de usuario */ const baseDeDatosSimulada = { '25111222': { nombre: 'Raul Perez', email: 'raul.perez@example.com', password: 'password123', fechaNac: '20/10/1985', whatsapp: '+5491133334444', domicilio: { calle: 'Av. Siempre Viva 742', ciudad: 'La Plata', provincia: 'Buenos Aires', cp: 'B1900' }, reservas: [{ viaje: 'Maraton-Internacional-de-Mendoza', fechaReserva: '15/06/2025' }] }, '30333444': { nombre: 'Laura Gomez', email: 'laura.gomez@example.com', password: 'securepassword', fechaNac: '15/05/1990', whatsapp: '+54922155556666', domicilio: { calle: 'Calle Falsa 123', ciudad: 'CABA', provincia: 'CABA', cp: 'C1043AAZ' }, reservas: [] }, '35999888': { nombre: 'Ana Rodriguez', email: 'ana.rodriguez@example.com', password: 'testpassword', fechaNac: '01/01/1995', whatsapp: '+54934177778888', domicilio: { calle: 'Bv. Oroño 500', ciudad: 'Rosario', provincia: 'Santa Fe', cp: 'S2000' }, reservas: [] } }; const vistaLogin = document.getElementById('vista-login'); const vistaNuevoUsuario = document.getElementById('vista-nuevo-usuario'); const vistaUsuarioExistente = document.getElementById('vista-usuario-existente'); const mensajeDuplicado = document.getElementById('mensaje-duplicado'); // Elementos para mostrar datos del usuario existente const datosNombre = document.getElementById('datos-nombre'); const datosDni = document.getElementById('datos-dni'); const datosFechaNac = document.getElementById('datos-fechaNac'); const datosWhatsapp = document.getElementById('datos-whatsapp'); const datosDomicilio = document.getElementById('datos-domicilio'); const formVerificarDni = document.getElementById('form-verificar-dni'); formVerificarDni.addEventListener('submit', function (event) { event.preventDefault(); const dni = document.getElementById('dni-check').value.trim(); if (!dni) return; const usuario = baseDeDatosSimulada[dni]; if (usuario) { const reservaExistente = usuario.reservas.find(reserva => reserva.viaje === viajeSeleccionado); if (reservaExistente) { vistaIdentificacion.style.display = 'none'; mensajeDuplicado.className = 'mensaje-advertencia'; mensajeDuplicado.innerHTML = `

Atención

Tu reserva para ${nombreViajeLimpio} ya se realizó el día ${reservaExistente.fechaReserva}.

Para verificar el estado de tu reserva y/o abonar cuotas, tocá IR A MI CUENTA.

`; return; } } vistaIdentificacion.style.display = 'none'; if (usuario) { document.getElementById('dni-login').textContent = dni; vistaLogin.style.display = 'block'; } else { document.getElementById('dni-nuevo').textContent = dni; vistaNuevoUsuario.style.display = 'block'; } }); const formLogin = document.getElementById('form-login'); const mensajeFinal = document.getElementById('form-mensaje-final'); const loginError = document.getElementById('login-error'); /* MODIFICADO: La lógica de login ahora puebla los datos del usuario */ formLogin.addEventListener('submit', function (e) { e.preventDefault(); const dni = document.getElementById('dni-login').textContent; const passwordIngresada = document.getElementById('password-login').value; const usuario = baseDeDatosSimulada[dni]; if (usuario && usuario.password === passwordIngresada) { vistaLogin.style.display = 'none'; loginError.style.display = 'none'; // Poblar los campos con los datos del usuario datosNombre.textContent = usuario.nombre; datosDni.textContent = dni; datosFechaNac.textContent = usuario.fechaNac; datosWhatsapp.textContent = usuario.whatsapp; datosDomicilio.textContent = `${usuario.domicilio.calle}, ${usuario.domicilio.ciudad}, ${usuario.domicilio.provincia}.`; vistaUsuarioExistente.style.display = 'block'; } else { loginError.textContent = 'Contraseña incorrecta. Por favor, intentá de nuevo.'; loginError.style.display = 'block'; } }); const formUsuarioExistente = document.getElementById('form-usuario-existente'); const existenteUsuarioError = document.getElementById('existente-usuario-error'); formUsuarioExistente.addEventListener('submit', function(e) { e.preventDefault(); if (!document.getElementById('terminos-existente').checked) { existenteUsuarioError.textContent = 'Debes aceptar los términos y condiciones para continuar.'; existenteUsuarioError.style.display = 'block'; return; } existenteUsuarioError.style.display = 'none'; vistaUsuarioExistente.style.display = 'none'; document.getElementById('info-viaje').style.display = 'none'; mensajeFinal.textContent = `¡Reserva confirmada para ${nombreViajeLimpio}! Gracias por volver a elegirnos.`; mensajeFinal.className = 'mensaje-exito'; }); const formNuevoUsuario = document.getElementById('form-nuevo-usuario'); const nuevoUsuarioError = document.getElementById('nuevo-usuario-error'); formNuevoUsuario.addEventListener('submit', function (e) { e.preventDefault(); const pass = document.getElementById('password-nuevo').value; const confirmPass = document.getElementById('password-confirm-nuevo').value; if (pass !== confirmPass) { nuevoUsuarioError.textContent = 'Las contraseñas no coinciden. Por favor, verificá.'; nuevoUsuarioError.style.display = 'block'; return; } if (!document.getElementById('terminos-nuevo').checked) { nuevoUsuarioError.textContent = 'Debes aceptar los términos y condiciones para continuar.'; nuevoUsuarioError.style.display = 'block'; return; } nuevoUsuarioError.style.display = 'none'; vistaNuevoUsuario.style.display = 'none'; document.getElementById('info-viaje').style.display = 'none'; mensajeFinal.textContent = `¡Felicitaciones! Tu cuenta fue creada y tu reserva para ${nombreViajeLimpio} fue confirmada. Recibirás un email con los detalles.`; mensajeFinal.className = 'mensaje-exito'; }); const botonesVolver = document.querySelectorAll('.btn-volver'); botonesVolver.forEach(function(boton) { boton.addEventListener('click', function() { vistaLogin.style.display = 'none'; vistaNuevoUsuario.style.display = 'none'; document.getElementById('form-login').reset(); document.getElementById('form-nuevo-usuario').reset(); loginError.style.display = 'none'; nuevoUsuarioError.style.display = 'none'; vistaIdentificacion.style.display = 'block'; document.getElementById('dni-check').value = ''; document.getElementById('dni-check').focus(); }); }); const selectDistanciaNuevo = document.getElementById('distancia-nuevo'); const selectTalleNuevo = document.getElementById('talle-nuevo'); const selectMoldeNuevo = document.getElementById('molde-nuevo'); selectDistanciaNuevo.addEventListener('change', function() { const esAcompanante = this.value === 'Ninguna'; selectTalleNuevo.required = !esAcompanante; selectTalleNuevo.disabled = esAcompanante; selectMoldeNuevo.required = !esAcompanante; selectMoldeNuevo.disabled = esAcompanante; if (esAcompanante) { selectTalleNuevo.value = ''; selectMoldeNuevo.value = ''; } }); const selectDistanciaExistente = document.getElementById('distancia-existente'); const selectTalleExistente = document.getElementById('talle-existente'); const selectMoldeExistente = document.getElementById('molde-existente'); selectDistanciaExistente.addEventListener('change', function() { const esAcompanante = this.value === 'Ninguna'; selectTalleExistente.required = !esAcompanante; selectTalleExistente.disabled = esAcompanante; selectMoldeExistente.required = !esAcompanante; selectMoldeExistente.disabled = esAcompanante; if (esAcompanante) { selectTalleExistente.value = ''; selectMoldeExistente.value = ''; } }); });