// JavaScript de login para el sistema // Esperar a que las librerías estén cargadas document.observe('dom:loaded', function() { var LoginCheck = { check: function() { var form = $('loginForm'); var email = $F('email'); var password = $F('password'); // Validación básica if (!email || !password) { $('errorLoginDiv').innerHTML = 'Por favor ingrese email y contraseña'; return false; } // Deshabilitar botón durante proceso var submitButton = form.querySelector('input[type="submit"]'); if (submitButton) { submitButton.disabled = true; submitButton.value = 'Procesando...'; } // Enviar por AJAX new Ajax.Request(WEB_ROOT + '/ajax/login.php', { method: 'post', parameters: { email: email, password: password }, onSuccess: function(transport) { var response = transport.responseText; // Restaurar botón if (submitButton) { submitButton.disabled = false; submitButton.value = 'Iniciar Sesión'; } if (response.indexOf('ok[#]') !== -1) { // Login exitoso $('errorLoginDiv').innerHTML = ''; window.location.href = WEB_ROOT + '/homepage'; } else { // Login fallido $('errorLoginDiv').innerHTML = 'Email o contraseña incorrectos'; } }, onFailure: function() { // Error de conexión if (submitButton) { submitButton.disabled = false; submitButton.value = 'Iniciar Sesión'; } $('errorLoginDiv').innerHTML = 'Error de conexión. Intente nuevamente.'; } }); } }; // Función para validación en tiempo real var LoginValidation = { validateEmail: function(email) { var regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return regex.test(email); }, validatePassword: function(password) { return password.length >= 4; // Mínimo 4 caracteres } }; // Inicializar formulario cuando el DOM esté listo document.observe('dom:loaded', function() { var form = $('loginForm'); if (form) { // Validar email al cambiar var emailField = $('email'); if (emailField) { emailField.observe('blur', function() { var email = this.value; var errorDiv = $('errorLoginDiv'); if (email && !LoginValidation.validateEmail(email)) { errorDiv.innerHTML = 'Por favor ingrese un email válido'; } else { errorDiv.innerHTML = ''; } }); } // Validar contraseña al cambiar var passwordField = $('password'); if (passwordField) { passwordField.observe('blur', function() { var password = this.value; var errorDiv = $('errorLoginDiv'); if (password && !LoginValidation.validatePassword(password)) { errorDiv.innerHTML = 'La contraseña debe tener al menos 4 caracteres'; } else { errorDiv.innerHTML = ''; } }); } // Manejar envío del formulario form.observe('submit', function(e) { e.stop(); LoginCheck.check(); }); } }); });