   
$(document).ready(function(){
    
	// variables globales 
	var form = $("#form");
	var nombre = $("#nombre");
	var nombreInfo = $("#nombreInfo");
	var apellidos = $("#apellidos");
	var apellidosInfo = $("#apellidosInfo");
    var telefono = $("#telefono");
    var telefonoInfo = $("#telefonoInfo");
    var movil = $("#movil");
    var movilInfo = $("#movilInfo");    
	var email = $("#email");
	var emailInfo = $("#emailInfo");
	var clave1 = $("#clave1");
	var clave1Info = $("#clave1Info");
	var clave2 = $("#clave2");
	var clave2Info = $("#clave2Info");
	//var mensaje = $("#mensaje");
    var lopd = $("#lopd");
	var emailClave = $("#emailClave");
	var emailClaveInfo = $("#emailClaveInfo");
	var empresa = $("#empresa");
	var empresaInfo = $("#empresaInfo");
	var empresaCargo = $("#empresaCargo");
	var empresaCargoInfo = $("#empresaCargoInfo");

	
	// On blur
	nombre.blur(validarNombre);
    apellidos.blur(validarApellidos);
    telefono.blur(validarTelefono);
    //movil.blur(validarMovil);
	//email.blur(validarEmail);
    emailClave.blur(validarEmailClave);
	clave1.blur(validarClave1);
	clave2.blur(validarClave2);
    //mensaje.blur(validarMensaje);
    lopd.blur(validarLOPD);
    empresa.blur(validarEmpresa);
    empresaCargo.blur(validarEmpresaCargo);
    
	// On key press
	nombre.keyup(validarNombre);
    apellidos.keyup(validarApellidos);
    telefono.keyup(validarTelefono);
    //movil.keyup(validarMovil);
    //email.keyup(validarEmail);
    emailClave.keyup(validarEmailClave);
	clave1.keyup(validarClave1);
    clave2.keyup(validarClave2);	
    lopd.keyup(validarLOPD);
    empresa.keyup(validarEmpresa);
    empresaCargo.keyup(validarEmpresaCargo);

	
    // On Submit  (funciones que chequea cada formulario)
    $('#formContacto').submit(function(){    
        if(validarNombre() & validarApellidos() & validarTelefono() & validarEmailClave() & validarLOPD()) {
			return true;                                 
		} else {
			return false;
        }
    });
        
    $('#formRegistro').submit(function(){    
        if(validarNombre() & validarApellidos() & validarTelefono() & validarEmail() & validarLOPD() & validarClave1() & validarClave2() ) {
			return true;                                 
		} else {
			return false;
        }
    });
    
    $('#formDatosPersonales').submit(function(){    
        if(validarNombre() & validarApellidos() & validarTelefono() & validarLOPD()) {
			return true;                                 
		} else {
			return false;
        }
    });    

    $('#formNovedades').submit(function(){    
        if(validarLOPD()) {
			return true;                                 
		} else {
			return false;
        }
    });      
    
    $('#formClave').submit(function(){
        if(validarEmailClave() & validarLOPD()) {
			return true;                                 
		} else {
			return false;
        }
    });
    
    $('#formExperto').submit(function(){    
        if(validarNombre() & validarApellidos() & validarTelefono() & validarEmailClave() & validarLOPD()) {
			return true;                                 
		} else {
			return false;
        }
    });    

    $('#formCV').submit(function(){    
        if(validarNombre() & validarApellidos() & validarTelefono() & validarEmailClave() & validarLOPD()) {
			return true;                                 
		} else {
			return false;
        }
    });        
    
    // -------------------------------------------------------------------------------------------------------
	// funciones de validación ...
    // -------------------------------------------------------------------------------------------------------    
    
	function validarEmail(){
		//testing regular expression
		var a = $("#email").val();		
        var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;              
		// si es un email válido
		if(filter.test(a)){		
		    // primero filtros para comprobar si es correcto.
			email.removeClass("error");
            emailInfo.removeClass("error").addClass("done");
			emailInfo.text("");                 
           
            // pasamos a verificar si es correcto en la Base de datos.
    		$.post("mod/forms/verificar_email.php", { email: a },
                function(result){
                    if(result == 1){
                        email.removeClass("error");
    				    emailInfo.removeClass("error").addClass("done");
    			        emailInfo.text("valido");
                        return true;
    				} else {    				    
                        emailInfo.removeClass("done").addClass("error");
    			        email.addClass("error");
    			        emailInfo.text("error");
                        return false;
    				}
            });              
            return true;       
		}
		// sino es válido ...
		else{
            emailInfo.removeClass("done").addClass("error");
			email.addClass("error");
			emailInfo.text("email incorrecto");			
			return false;
		}
  
	}
        
	function validarEmailClave(){
		//testing regular expression
		var b = $("#emailClave").val();		
        var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;              
		// si es un email válido
		if(filter.test(b)){		
		    // primero filtros para comprobar si es correcto.
			emailClave.removeClass("error");
            emailClaveInfo.removeClass("error").addClass("done");
			emailClaveInfo.text("");    
            return true;        
		}
		// sino es válido ...
		else{
            emailClaveInfo.removeClass("done").addClass("error");
			emailClave.addClass("error");
			emailClaveInfo.text("");			
			return false;
		}
       
	}
            
    function validarTelefono() {
	   if(telefono.val().length < 9){
	        telefonoInfo.removeClass("done").addClass("error");
			telefono.addClass("error");
			telefonoInfo.text("");			
			return false;
		}
		// sino es válido ...
		else{
		    telefono.removeClass("error");
			telefonoInfo.removeClass("error").addClass("done");
			telefonoInfo.text("");
			return true;
		}        
    }
    
    /*function validarMovil() {
	   if(telefono.val().length < 9){
	        movilInfo.removeClass("done").addClass("error");
			movil.addClass("error");
			movilInfo.text("");			
			return false;
		}
		// sino es válido ...
		else{
		    movil.removeClass("error");
			movilInfo.removeClass("error").addClass("done");
			movilInfo.text("");
			return true;
		}        
    }    */
    
	function validarNombre(){	   
		// sino es válido ...
		if(nombre.val().length < 3){
		    nombreInfo.removeClass("done").addClass("error");
			nombre.addClass("error");
			nombreInfo.text("");
			return false;
		}
		// si es válido ...
		else{
			nombre.removeClass("error");			
			nombreInfo.removeClass("error").addClass("done");
            nombreInfo.text("");            
			return true;
		}
	}
    
	function validarApellidos(){	   
		// sino es válido ...
		if(apellidos.val().length < 4){
		    apellidosInfo.removeClass("done").addClass("error");
			apellidos.addClass("error");
			apellidosInfo.text("");
			return false;
		}
		// si es válido ...
		else{
			apellidos.removeClass("error");			
			apellidosInfo.removeClass("error").addClass("done");
            apellidosInfo.text(".");            
			return true;
		}
	}          
    
	function validarEmpresa(){	   
		// sino es válido ...
		if(empresa.val().length < 3){
		    empresaInfo.removeClass("done").addClass("error");
			empresa.addClass("error");
			empresaInfo.text("");
			return false;
		}
		// si es válido ...
		else{
			empresa.removeClass("error");			
			empresaInfo.removeClass("error").addClass("done");
            empresaInfo.text("");            
			return true;
		}
	}
	function validarEmpresaCargo(){	   
		// sino es válido ...
		if(empresaCargo.val().length < 3){
		    empresaCargoInfo.removeClass("done").addClass("error");
			empresaCargo.addClass("error");
			empresaCargoInfo.text("");
			return false;
		}
		// si es válido ...
		else{
			empresaCargo.removeClass("error");			
			empresaCargoInfo.removeClass("error").addClass("done");
            empresaCargoInfo.text("");            
			return true;
		}
	}                      
    
    $('#clave2').attr("disabled", true); // por defecto clave 2 desactivado.
	function validarClave1(){
		// sino es válido ...
		if(clave1.val().length <5){
		    clave1.removeClass("done").addClass("error");            
            clave1Info.removeClass("done").addClass("error");			
			clave1Info.text("");
            $('#clave2').attr("disabled", true); // activamos clave 2 si clave 1 valida correctamente.
			return false;
		} // si es válido ...
		else {			
			clave1.removeClass("error");
			clave1Info.text("");
			clave1Info.removeClass("error").addClass("done");
			$('#clave2').removeAttr("disabled"); // activamos clave 2 si clave 1 valida correctamente.
            validarClave2();                        
			return true;
		}
	}
    
	function validarClave2(){
		// sino es válido ...
		if( clave1.val() != clave2.val() ){		  
            clave2Info.removeClass("done").addClass("error");
			clave2.addClass("error");
			clave2Info.text("");			
			return false;
           
		} // es válido ...
		else {	  
            clave2.removeClass("error");
   			clave2Info.text("");
       		//clave2Info.removeClass("error").addClass("done");
            clave2Info.removeClass("error");
		    return true;
		}
	}
    /*
	function validarMensaje(){
		// sino es válido ...
		if(mensaje.val().length < 10){
			mensaje.addClass("error");
			return false;
		}
		// es válido ...
		else{			
			mensaje.removeClass("error");
			return true;
		}
	}*/
    
    // ley de proteccion de datos chequeada????
	function validarLOPD(){
		// con jQuery comprobamos que esté chequeado.
		if ($('#lopd').is(':checked')) {			
            return true;
		}
		// sino está chequeado mostramos una alerta ...
		else {			
            alert("Recuerde que de aceptar la Política de Protección de Datos");
			return false;
		}
	}    
    
  	// ocultar y mostrar la LOPD con efecto ...
   	$('#lopdb').toggle(
    	function() { $('#condiciones').show("slow"); $(this).html('política de protección de datos.'); },
    	function() { $('#condiciones').hide("slow"); $(this).html('política de protección de datos.'); }
    );
    
    // cargar los municipios en el caso de ser selecciona una provincia.
	$("#provincia").change(function(){	  
		$.post("mod/forms/carga_municipios.php",{ id:$(this).val() },function(data){$("#municipio").html(data);})
	});
    
    // cargar los municipios en el caso de ser selecciona una provincia.
	$("#pais").change(function(){	  
		$.post("mod/forms/carga_estados.php",{ id:$(this).val() },function(data){$("#estado").html(data);})
	});
    

	


});




