

// ***** EMAIL *****

function validaremail(parcampo)
{ 
	  
	var foundError = false; 
	var contador = 0; 
	var posicion = 1;
	var encontrada = false;
	var posicionpunto = 0;
	var posicionarroba = 0;
	var uno = "";
	var ultimo = 0;  
	var longitud = 0;
	var arrobaux = 0;
	var uno;
	uno = " ";

         
	// Bloque que quita los blancos por la derecha y por la izquierda
	sinblancos = Trim(parcampo.value);   
        
   
	// Bloque para comprobar que no hay blancos entre medias de la cadena
	for (x=0 ; x < sinblancos.length ; x++) 
	{
		uno = sinblancos.substring(x, x +1); 
		if (uno.charAt() == " ")
		{ 
			
		
			foundError = true;
		} 
	}
  
	// Bloque para controlar que el primer caracter no sea una arroba
 
	if (foundError == false && sinblancos.charAt(0) == "@" ) 
	{ 
		
		foundError = true;              
	}


	// Bloque para controlar que el primer caracter no sea un punto
 
	if (foundError == false && sinblancos.charAt(0) == "." ) 
	{ 
	
		foundError = true;              
	}
	
	//Bloque para controlar que el ultimo caracter no sea un punto
	if (foundError == false) 
	{     
		longitud = sinblancos.length;
		if (sinblancos.charAt(longitud - 1) == ".")
		{
			
			foundError = true;      
		} 
            
	} 
	
	//Bloque para controlar que el ultimo caracter no sea una arroba
	if (foundError == false) 
	{     
		longitud = sinblancos.length;
		if (sinblancos.charAt(longitud - 1) == "@")
		{
	        
			foundError = true;      
		} 
            
	} 

	// Bloque para comprobar que no hay mas de una arroba
	if (foundError == false) 
	{
		for (x=0 ; x < sinblancos.length ; x++) 
		{
			uno = sinblancos.substring(x, x +1); 
			if (uno.charAt() == "@")
			{ 
				contador = contador + 1;
			} 
         
		}
  
    
		if (contador < 1 || contador > 1 )      
		{
		    	
			foundError = true;
		}
		 
		
	} 
	// Bloque para comprobar que al menos hay un punto
	if (foundError == false) 
	{ 
		var contador=0;
		for (x=0 ; x < sinblancos.length ; x++) 
		{
			uno = sinblancos.substring(x, x +1); 
			if (uno.charAt() == ".")
			{ 
				contador = contador + 1;
			} 
         	}
  
    		if (contador == 0)      
		{      
			//alert("Es obligatorio introducir al menos un punto");	
			foundError = true;
		}
	} 

	// Bloque para comprobar el sitio donde esta la arroba 
	if (foundError == false) 
	{
		for (x=0 ; x < sinblancos.length ; x++) 
		{
			uno = sinblancos.substring(x, x +1); 
			if (uno.charAt() == "@")
			{
				encontrada = true; 
				posicionarroba = posicion;
				break; 
			}
   
			if (encontrada == false)
			{  
				posicion = posicion + 1; 
			} 
		} 
	} 
			var HayPuntoDespArroba='N';    
	

	// Bloque para controlar si hay un punto tras la arroba y caracteres entre punto y punto
	if (foundError == false) 
	{
		posicion = 1;
		uno = "";
		for (x=0 ; x < sinblancos.length ; x++) 
		{
			uno = sinblancos.substring(x, x +1); 
			if (uno.charAt() == ".")
			{
				posicionpunto = posicion; 
				if ((posicionpunto - 1) == posicionarroba)
				{        
					//alert("Debe haber caracteres entre la arroba y el punto");
					foundError = true; 
				}   
				if (posicion - 1 == ultimo)
				{
					//alert("Debe haber caracteres entre punto y punto");
					foundError = true; 
				}
           
                        
			} 
			posicion = posicion +1 ;
			ultimo = posicionpunto;
	
		}

			var buscaPunto=sinblancos.indexOf('.',posicionarroba);
			//alert('Hay ó no punto si es -1 No hay....'+buscaPunto);
			if(buscaPunto!='-1'){ HayPuntoDespArroba='S';}
			//alert('Hay Punto despues de la Arroba..'+HayPuntoDespArroba);
			if ( HayPuntoDespArroba=='N')
			{
				//alert("Debe haber un punto tras la arroba");
				foundError = true; 
			}





	}

	if (foundError)
	{	
		//alert ("Please enter a valid e-mail address"); 
	
		return false;
	}
	else
		return true; 

}

function Trim(str)
{
	return LTrim(RTrim(str));
}

function LTrim(str)
{
	var whitespace = new String("\t\n\r");
	var s = new String(str);
	
	if(whitespace.indexOf(s.charAt(0))!= -1)
	{
		var j = 0,i=s.length;
		while(j<i&&whitespace.indexOf(s.charAt(j))!= -1) j++
			s = s.substring(j,i);
	}
	return s;
}

function RTrim(str)
{
	var whitespace = new String("\t\n\r");
	var s = new String(str);
	
	if(whitespace.indexOf(s.charAt(s.length-1))!= -1)
	{	
		var i = s.length-1;
		while(i>0&&whitespace.indexOf(s.charAt(i))!=-1) i--
			 s = s.substring(0,i+1);
	}
	return s;
}
