function verificar_email(todo){

	/******************************************************************************************
	
	Declaración de variables globales.
	En recogida metemos todos los caracteres que mete el usuario en el campo de texto e-mail.
	En division_arroba metemos lo que el usuario mete delante y detrás de la arroba.
	En primer metemos cada uno de los caracteres que hay antes del arroba.
	En segun metemos cada uno de los caracteres que hay después del arroba.
	En partido metemos las distintas palabras que forman division_arroba[1].
	En primer_caracter metemos todas las letras porque el primer caracter debe ser una letra.
	En primero metemos los caracteres válidos para lo que meta el usuario antes del arroba.
	En segundo metemos los caracteres válidos para lo que meta el usuario despues del arroba.	
	******************************************************************************************/
	
 if(todo.value.length==0){
   return true;
   }
	var recogida=new Array();
	var cierto=false;
	var verdadero=0;
	var contar=0;
	var contador=0;
	var comprobando=false;
	var comprobacion=new Array();
	var punto=false;
	var partido=new Array();
	var primer=new Array();
	var segun=new Array();
	var division_arroba=new Array();
	var primer_caracter=new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z");
	var primero=new Array("9","8","7","6","5","4","3","2","1","0","A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z",".","_");
	var segundo=new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z",".","-");
	
/******* Recogemos en un array todo lo que nos escribe el usuario en el campo email.*******/

	for(i=0;i<todo.value.length;i++){
	recogida[i]=todo.value.charAt(i);
	recogida[i]=recogida[i].toUpperCase();
	
    /*******************************************************************************************
      Miramos cuantos @ hay en lo que mete el usuario porque sólo podemos meter una arroba y 
      también miramos si el usuario ha metido espacios ya que no se pueden introducir.
    *******************************************************************************************/
		if(recogida[i]=="@"){
		contador=contador+1;
		}
		if(recogida[i]==" "){
		alert('Por favor, no introduzca espacios en el campo e-mail')
		todo.focus();
		return false;
		}
	}	
	
	if(contador!=1){
	alert('Por favor, el campo e-mail debe contener un caracter @')
	todo.focus();
	return false;
	}
	if(contador==1){
	
  /*****************************************************************************************
    Meto en division_arroba[0] y en division_arroba[1] lo que hay antes y después del arroba
    respectivamente. Para luego realizar las comparaciones.
  *****************************************************************************************/
	
	division_arroba=todo.value.split("@");
	if(division_arroba.length=="1"){
	alert('Por favor, introduzca algún caracter después del arroba en el campo E-mail');
	todo.focus();
	return false;
	}
	
  /*****************************************************************************************
    Metemos en comprobacion todos los caracteres existentes en division_arroba[1] y realizamos
    la comprobación de que no mete ninguno de los caracteres no permitidos.
  *****************************************************************************************/
	
	for(i=0;i<division_arroba[1].length;i++){
	comprobacion[i]=division_arroba[1].charAt(i).toUpperCase();
	for(j=0;j<segundo.length;j++){
	if(comprobacion[i]==segundo[j]){
	contar=contar+1;
	}
	}
	}
	if(contar < parseInt(comprobacion.length, 10)){
	alert('Por favor, introduzca su e-mail correctamente');
	todo.focus();
	return false;
	}
	
  /*****************************************************************************************
    Miramos si antes de la arroba el usuario introduce algún caracter porque debe introducir
    algo antes de la arroba.
  *****************************************************************************************/
	
	if(division_arroba[0].length==0){
	alert('Por favor, debe introducir caracteres antes del arroba en el campo e-mail');
	todo.focus();
	return false;
	}
	}
	
  /*****************************************************************************************
    Capturamos en primer[i] todo lo que mete el usuario antes de la arroba.
  *****************************************************************************************/

	for(i=0;i<division_arroba[0].length;i++){
	primer[i]=division_arroba[0].charAt(i).toUpperCase();
	}
	
  /*****************************************************************************************
    Capturamos en segun[i] todo lo que mete el usuario despues de la arroba.
  *****************************************************************************************/

	for(i=0;i<division_arroba[1].length;i++){
	segun[i]=division_arroba[1].charAt(i).toUpperCase();
	}
	
  /*****************************************************************************************
    Vemos que el primer caracter metido por el usuario sea una letra.
  *****************************************************************************************/
	/*for(i=0;i<primer_caracter.length;i++){
		if(primer[0]==primer_caracter[i]){
		var cierto=true;
		}
	}
	if(!cierto){
	alert('Por favor, introduzca una letra como primer caracter en el campo e-mail');
	todo.focus();
	return false;
	}
	*/
	
  /*****************************************************************************************
    Comprobamos que dentro de los caracteres que el usuario introduce después del arroba 
    exista por lo menos un punto.
  *****************************************************************************************/

	for(i=0;i<division_arroba[1].length;i++){
		var ver_punto=division_arroba[1].charAt(i);
		if(ver_punto=="."){
		punto=true;
		}
	}
	
  /*****************************************************************************************
    Si al menos existe un punto despues del arroba capturamos lo que hay entre punto y punto
    en el array partido y miramos que lo que haya después del último punto tenga una extensión
    de 2 o 3 caracteres únicamente.
  *****************************************************************************************/

	if(punto==true){
    partido=division_arroba[1].split(".");
    for(i=0;i<partido.length-1;i++){
      if(partido[i].length<1){
      alert('Por favor, introduzca más de un caracter entre puntos en el campo e-mail');
      todo.focus();
      return false;
    }
	}
	if((partido[partido.length-1].length < 2) || (partido[partido.length-1].length >3)){
    alert('Por favor, el dominio debe contener dos o tres caracteres en el e-mail');
    todo.focus();
    return false;
	}
	}
	else{
    alert('Por favor, introduzca después del caracter @ al menos un punto en el e-mail')
    todo.focus();
    return false;
	}
	return true;
	}
	
	
/******************************************************************************
* La función validar_formato_numero, nos valida la existencia de números en
* un campo que debe de ser numérico. Recibe dos parámetros, el valor del campo
* del formulario a evaluar y el nombre de dicho campo.
*******************************************************************************/

function validar_formato_numero(numero,nombre){
   var valido = true;
   if(isNaN(numero.value)) {
       alert('Por favor, introduzca sólo dígitos en el campo '+ nombre); 
       valido = false;
   } else if(numero.value.indexOf('.')!=-1) {
        alert('Por favor, no introduzca un punto decimal en el campo ' + nombre); 
        valido = false;
   } else if(numero.value.indexOf(',')!=-1) {
        alert('Por favor, no introduzca una coma decimal en el campo ' + nombre); 
        valido = false;
   } else if(numero.value.indexOf(" ")==0) {
        alert('Por favor, no introduzca espacios en blanco en el campo ' +nombre );
        valido = false;
   } else if(parseInt(numero.value,10) < 0) { // cambiado por David 14/03/2002
        alert('Por favor, introduzca un numero positivo en el campo ' + nombre);
        valido = false;
   }
  
   if (!valido) {
       numero.focus();
       numero.select();
   }
   return valido;
} 



function validar_formato_numero_flotante(numero,nombre) {
    var valido = true;
    if(isNaN(numero.value)) {
       alert('Por favor, introduzca un numero valido en el campo '+ nombre); 
       valido = false;
    }
    if(parseFloat(numero.value) < 0)
    {
  	alert('Por favor, introduzca un numero positivo en el campo ' + nombre);
    valido = false;
    }
    if (!valido) {
        numero.focus();
	numero.select();
    }
    return valido;
} 

function validar_textarea (valor, maximo) {     
  if (valor.length>maximo) {
    alert('La longitud máxima de este campo es de '+maximo+' caracteres');
    return false
  }
  return true
}

function esFecha(Cadena){
	
  if (Cadena=='') return true;
	
	var Fecha= new String(Cadena)	// Crea un string	
	
	if (Fecha.indexOf("/")==-1) {
			alert('Fecha incorrecta. El formato debe ser dd/mm/aaaa');
			return false;	
	}
	
	// Cadena Año	
	var Ano= new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length))	
	// Cadena Mes
	var Mes= new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")))
	// Cadena Día
	var Dia= new String(Fecha.substring(0,Fecha.indexOf("/")))

	// Valido el año
	if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){
        	alert('Fecha incorrecta. El formato debe ser dd/mm/aaaa');
		return false
	}
	// Valido el Mes
	if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){
		alert('Fecha incorrecta. El formato debe ser dd/mm/aaaa');
		return false
	}
	// Valido el Dia
	if (isNaN(Dia) || parseFloat(Dia)<1 || parseFloat(Dia)>31){
		alert('Fecha incorrecta. El formato debe ser dd/mm/aaaa');
		return false
	} 
  if (Mes==2) {
    if ((Dia>28 && Ano%4!=0) || (Dia>29 && Ano%4==0)) {
      alert('Fecha incorrecta. El año '+ Ano +', el més de febrero no tiene '+Dia+' días');
      return false
      }
   } 
   return true	  	
  }
  
  function esHora(cadena) {
    posiSeparador=cadena.indexOf(':')
    if (posiSeparador==-1) {
        alert('Hora incorrecta');
        return false
    }
    else {
        hora=cadena.substring(0,posiSeparador);        
        minutos=cadena.substring(posiSeparador+1,cadena.length);        
        if (isNaN(hora) || isNaN(minutos)) {
          alert('Hora incorrecta');
          return false
        }
        else {
          if (parseInt(hora)>24 || parseInt(minutos)>60) {
              alert('Hora incorrecta');
              return false
        }
       }
    }    
    return true;
  }
	
	function validarnif(objetoDni) {       
			dni=objetoDni.value;
      
      if (dni=='') return true;
      primerCaracter = dni.substr(0,1);
      ultimoCaracter = dni.substr(dni.length-1,1);      
      
      if (isNaN(ultimoCaracter)) {        
        
        if (isNaN(primerCaracter)) {
          
          if (primerCaracter!='X' && primerCaracter!='Y' && primerCaracter!='Z') 
            {
              alert('El documento especificado es incorrecto');
              objetoDni.focus();
              return false
            }
            else {
              numero = dni.substr(1,dni.length-2);
            }
        }
        else {
          numero = dni.substr(0,dni.length-1);			
        }        
        numero = numero % 23;
        letra='TRWAGMYFPDXBNJZSQVHLCKET';
        letra=letra.substring(numero,numero+1);
        if (letra!=ultimoCaracter) {
          alert('El documento especificado es incorrecto');
          objetoDni.focus();
          return false;
        }
        else return true;
      }
      else { 
          alert('El documento especificado es incorrecto');
          objetoDni.focus();      
          return false;
     } 
	}

