        function mail_valido(dircorreo) {
		// Función que comprueba si una dirección de e-mail es válida.
		// Primero declaramos algunas variables a 0.
		var conarroba=0,conpunto=0,posarroba=0,cuentarrobas=0,primarroba,x,car;

		// Las direcciones de correo son todas en minúscula.
		dircorreo=dircorreo.toLowerCase();
		
		// Si no contiene nada $dircorreo, no es válida
		if (dircorreo == '') return false;

		// Debe tener una y sólo una arroba.
		primarroba=dircorreo.indexOf('@');
		if (primarroba != -1) {
			cuentarrobas++;
			if (dircorreo.indexOf('@',primarroba + 1) != -1)
				cuentarrobas++;
		}
		if (cuentarrobas != 1) return false;
		
		// Al menos un punto, correspondiente como mínimo a la extensión del dominio.
		if (dircorreo.indexOf('.') == -1) return false;
		
		// No puede tener dos puntos seguidos.
		if (dircorreo.indexOf('..') != -1) return false;
		
		// Empezamos a comprobar cada carácter por separado.
		for (x=0;x<dircorreo.length;x++) {
		
			// No puede tener otro carácter no alfanumérico diferente de punto, arroba o guión medio o bajo.
			car=dircorreo.charCodeAt(x);
			if (car < 45 || car == 47 || (car > 57 && car < 64) || (car > 64 && car < 95) || (car > 95 && car < 97) || car > 122) return false;
		
			// Si es el carácter arroba, y se encuentra el primero en la dirección, o en una posición que no deja
			// espacio para un mínimo dominio (...@x.xx), no es válida la dirección.
			if (dircorreo.substr(x,1) == "@" && (x == 0 || x > (dircorreo.length - 5))) return false;
			
			// En caso contrario al anterior, cuando se encuentre la arroba empieza a buscarse al menos un punto,
			// para lo cual, activamos dos variables: $conarroba a true (encontrada) y $posarroba con la posición
			// de la arroba en la dirección.
			if (dircorreo.substr(x,1) == "@") {
				conarroba=1;
				posarroba=x;
			}
			
			// Si se encuentra un punto después de la arroba ($conarroba=true) y está inmediatamente después
			// de dicha arroba (p.e.: usuario@.com), no es correcta.
			if (dircorreo.substr(x,1) == "." && conarroba == 1 && x < (posarroba + 2)) return false;
			
			// En caso contrario, si la dirección termina con un punto y menos de dos caracteres como extensión
			// (usuario@dominio. o usuario@dominio.x), tampoco es válida, ya que lo mínimo es extensión .es, por ejemplo
			if (dircorreo.substr(x,1) == "." && x > (dircorreo.length - 3)) return false;
			
			// Y por último, si se encuentra el último punto, después de la arroba, con una extensión de 2 a 4 caracteres,
			// $conpunto se pone a true
			if (dircorreo.substr(x,1) == "." && conarroba == 1 && x >= (dircorreo.length - 5)) conpunto=1;
		}
		
		// Si la dirección tiene arroba y punto, con las verificaciones ya realizadas,
		// la dirección es correcta.
		if (conpunto && conarroba) return true;
		
		// En cualquier otro caso, no será válida.
		else return false;
	}

	function verifica_datos() {
		var retorno=false;
		
		if (document.forms.FormContacto.realname.value == "")
			alert("ERROR. Debe introducir un nombre.");
		else if (document.forms.FormContacto.email.value == "" || (document.forms.FormContacto.email.value != "" && !mail_valido(document.forms.FormContacto.email.value)))
			alert("ERROR. Debe introducir una dirección e-mail correcta.");
		else if (document.forms.FormContacto.titulacion.value == "" && document.forms.FormContacto.experiencia.value == "")
			alert("ERROR. Debe introducir Titulación o Experiencia.");
		else retorno=true;
		return retorno;
	  }

