$(document).ready(function(){ profind_login.init(); profind_registro.init(); profind_recuperar_password.init(); profind_cambiar_password.init(); profind_registro_agente.init(); }); profind_login = { init: function() { var enviar_login = function() { var form = $("#entrarForm"); form.find(":submit").attr("disabled", true); form.find(":submit").addClass('btn-striped'); $.ajax({ url: form.attr('action'), dataType: 'json', type: 'POST', data : form.serialize()+'&ajax=login-form', success: function(data, textStatus, XMLHttpRequest) { form.find(":submit").removeClass('btn-striped'); form.find(":submit").attr("disabled", false); if (data.status == '200') { window.location.href = data.redirect; } else { if (data != null && typeof data == 'object') { var resultado = ''; $.each(data, function(key, value){ resultado = resultado + value; }); mostrar_mensaje('Error', resultado); } } }, error: function(XMLHttpRequest, textStatus, errorThrown) { form.find(":submit").removeClass('btn-striped'); form.find(":submit").attr("disabled", false); mostrar_mensaje('Error', 'Error de comunicación con el servidor'); } }); return false; }; $("#entrarForm").validate({ onfocusout: false, onkeyup: false, onclick: false, rules:{ FormularioLogin_email:{ required:true, email: true }, FormularioLogin_password:{ required:true } }, messages:{ FormularioLogin_email:{ required:"Introduzca su e-mail", email:"Indique un e-mail válido" }, FormularioLogin_password:{ required:"Indique su contraseña" } }, errorClass: "error help-inline", errorElement: "span", highlight:function(element, errorClass, validClass) { $(element).parents('.control-group').addClass('error'); }, unhighlight: function(element, errorClass, validClass) { $(element).parents('.control-group').removeClass('error'); }, submitHandler: enviar_login }); } }; profind_registro = { init: function() { var enviar_registro = function() { var form = $("#registroForm"); form.find(":submit").attr("disabled", true); form.find(":submit").addClass('btn-striped'); $.ajax({ url: form.attr('action'), dataType: 'json', type: 'POST', data : form.serialize()+'&ajax=registro-coordinador-form-entrada', success: function(data, textStatus, XMLHttpRequest) { form.find(":submit").removeClass('btn-striped'); form.find(":submit").attr("disabled", false); if (data.status == 'success') { form.clearForm(); mostrar_mensaje(data.titulo, data.texto); } else { if (data != null && typeof data == 'object') { var resultado = ''; $.each(data, function(key, value){ resultado = resultado + value; }); mostrar_mensaje('Error', resultado); } } }, error: function(XMLHttpRequest, textStatus, errorThrown) { form.find(":submit").removeClass('btn-striped'); form.find(":submit").attr("disabled", false); mostrar_mensaje('Error', 'Error de comunicación con el servidor'); } }); return false; }; $("#registroForm").validate({ onfocusout: false, onkeyup: false, onclick: false, rules:{ FormularioRegistro_email:{ required:true, email: true }, FormularioRegistro_password:{ required:true, minlength: 6 }, FormularioRegistro_password2:{ required:true, minlength: 6, equalTo: "#FormularioRegistro_password" }, FormularioRegistro_acepto:{ required:true } }, messages:{ FormularioRegistro_email:{ required:"Introduzca su e-mail", email:"Indique un e-mail válido" }, FormularioRegistro_password:{ required:"Indique una nueva contraseña", minlength:"La contraseña debe al menos 6 caracteres" }, FormularioRegistro_password2:{ required:"Introduzca otra vez la contraseña", minlength:"La contraseña debe al menos 6 caracteres", equalTo:"La confirmación de contraseña no coincide" }, FormularioRegistro_acepto:"" }, errorClass: "error help-inline", errorElement: "span", highlight:function(element, errorClass, validClass) { $(element).parents('.control-group').addClass('error'); }, unhighlight: function(element, errorClass, validClass) { $(element).parents('.control-group').removeClass('error'); }, submitHandler: enviar_registro }); } }; profind_recuperar_password = { init: function() { $('a#solicitar_password').click(function(){ $('#FormularioRecuperar_email').val($('#FormularioLogin_email').val()); $('#msj_recuperar').modal('show'); }); $('#msj_recuperar .btn-primary').click(function(){ $("#recuperarForm").submit(); }); var recuperar_password = function() { var form = $("#recuperarForm"); $('#msj_recuperar .btn-primary').addClass('btn-striped'); $('#msj_recuperar .btn-primary').attr("disabled", true); $.ajax({ url: form.attr('action'), dataType: 'json', type: 'POST', data : form.serialize()+'&ajax=recuperar-form-entrada', success: function(data, textStatus, XMLHttpRequest) { $('#msj_recuperar .btn-primary').removeClass('btn-striped'); $('#msj_recuperar .btn-primary').attr("disabled", false); if (data.status == 'success') { form.clearForm(); $('#msj_recuperar').modal('hide'); mostrar_mensaje(data.titulo, data.texto); } else { if (data != null && typeof data == 'object') { var resultado = ''; $.each(data, function(key, value){ resultado = resultado + value; }); $('#msj_recuperar').modal('hide'); mostrar_mensaje('Error', resultado); } } }, error: function(XMLHttpRequest, textStatus, errorThrown) { $('#msj_recuperar .btn-primary').removeClass('btn-striped'); $('#msj_recuperar .btn-primary').attr("disabled", false); $('#msj_recuperar').modal('hide'); mostrar_mensaje('Error', 'Error de comunicación con el servidor'); } }); return false; }; $("#recuperarForm").validate({ onfocusout: false, onkeyup: false, onclick: false, rules:{ FormularioRecuperar_email:{ required:true, email: true } }, messages:{ FormularioRecuperar_email:{ required:"Introduzca su e-mail en PROFIND", email:"Indique un e-mail válido" } }, errorClass: "error help-inline", errorElement: "span", highlight:function(element, errorClass, validClass) { $(element).parents('.control-group').addClass('error'); }, unhighlight: function(element, errorClass, validClass) { $(element).parents('.control-group').removeClass('error'); }, submitHandler: recuperar_password }); } }; profind_cambiar_password = { init: function() { $('#msj_cambiarpassword .btn-primary').click(function(){ $("#cambiarPasswordForm").submit(); }); var cambiar_password = function() { var form = $("#cambiarPasswordForm"); $('#msj_cambiarpassword .btn-primary').addClass('btn-striped'); $('#msj_cambiarpassword .btn-primary').attr("disabled", true); $.ajax({ url: form.attr('action'), dataType: 'json', type: 'POST', data : form.serialize()+'&ajax=cambiar-password-form-entrada', success: function(data, textStatus, XMLHttpRequest) { $('#msj_cambiarpassword').modal('hide'); if (data.status == 'success') { form.clearForm(); mostrar_mensaje(data.titulo, data.texto); } else { if (data != null && typeof data == 'object') { var resultado = ''; $.each(data, function(key, value){ resultado = resultado + value; }); mostrar_mensaje('Error', resultado); } } }, error: function(XMLHttpRequest, textStatus, errorThrown) { $('#msj_cambiarpassword').modal('hide'); mostrar_mensaje('Error', 'Error de comunicación con el servidor'); } }); return false; }; $("#cambiarPasswordForm").validate({ onfocusout: false, onkeyup: false, onclick: false, rules:{ FormularioCambiarPassword_password:{ required:true, minlength: 6 }, FormularioCambiarPassword_password_repetida:{ required:true, minlength: 6, equalTo: "#FormularioCambiarPassword_password" } }, messages:{ FormularioCambiarPassword_password:{ required:"Indique una nueva contraseña", minlength:"La contraseña debe al menos 6 caracteres" }, FormularioCambiarPassword_password_repetida:{ required:"Introduzca otra vez la contraseña", minlength:"La contraseña debe al menos 6 caracteres", equalTo:"La confirmación de contraseña no coincide" } }, errorClass: "error help-inline", errorElement: "span", highlight:function(element, errorClass, validClass) { $(element).parents('.control-group').addClass('error'); }, unhighlight: function(element, errorClass, validClass) { $(element).parents('.control-group').removeClass('error'); }, submitHandler: cambiar_password }); } }; profind_registro_agente = { init: function() { $('#msj_activaragente .btn-primary').click(function(){ $("#activarAgenteForm").submit(); }); var activar_agente = function() { var form = $("#activarAgenteForm"); $('#msj_activaragente .btn-primary').addClass('btn-striped'); $('#msj_activaragente .btn-primary').attr("disabled", true); $('#msj_activaragente .resultado').children().remove(); $.ajax({ url: form.attr('action'), dataType: 'json', type: 'POST', data : form.serialize()+'&ajax=activar-agente-form-entrada', success: function(data, textStatus, XMLHttpRequest) { form.clearForm(); $('#msj_activaragente').modal('hide'); if (data.status == 'success') { mostrar_mensaje(data.titulo, data.texto); } else { if (data != null && typeof data == 'object') { var resultado = ''; $.each(data, function(key, value){ resultado = resultado + value; }); mostrar_mensaje('Error', resultado); } } }, error: function(XMLHttpRequest, textStatus, errorThrown) { $('#msj_activaragente').modal('hide'); mostrar_mensaje('Error', 'Error de comunicación con el servidor'); } }); return false; }; $("#activarAgenteForm").validate({ onfocusout: false, onkeyup: false, onclick: false, rules:{ FormularioActivarAgente_password:{ required:true, minlength: 6 }, FormularioActivarAgente_password_repetida:{ required:true, minlength: 6, equalTo: "#FormularioActivarAgente_password" }, FormularioActivarAgente_acepto:{ required:true } }, messages:{ FormularioActivarAgente_password:{ required:"Indique una nueva contraseña", minlength:"La contraseña debe al menos 6 caracteres" }, FormularioActivarAgente_password_repetida:{ required:"Introduzca otra vez la contraseña", minlength:"La contraseña debe al menos 6 caracteres", equalTo:"La confirmación de contraseña no coincide" }, FormularioActivarAgente_acepto:"" }, errorClass: "error help-inline", errorElement: "span", highlight:function(element, errorClass, validClass) { $(element).parents('.control-group').addClass('error'); }, unhighlight: function(element, errorClass, validClass) { $(element).parents('.control-group').removeClass('error'); }, submitHandler: activar_agente }); } }; $.fn.clearForm = function() { return this.each(function() { var type = this.type, tag = this.tagName.toLowerCase(); if (tag == 'form') return $(':input',this).clearForm(); if (type == 'text' || type == 'password' || tag == 'textarea') this.value = ''; else if (type == 'checkbox' || type == 'radio') this.checked = false; else if (tag == 'select') this.selectedIndex = -1; }); }; function mostrar_mensaje(titulo, mensaje) { $('#msj_info .modal-header h3').text(titulo); $('#msj_info .modal-body p').text(mensaje); $('#msj_info').modal('show'); }