String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

function VerificaEmail(obj) 
{
	var validChars, err01,err02, err03, err04, fieldValue, fieldLength;
	var cont = 0, cont2 = 0;
	var Limpar = false;
	
	validChars  = "abcdefghijklmnopqrstuvwxyz"; 
	validChars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
	validChars += "0123456789.@_-";
	fieldValue  = obj.value; 
	fieldLength = obj.value.length; 
	minLength   = 8; 
	maxLength   = 255; 

	err01   = "Foi encontrado um caracter inválido."; 
	err02   = "Por favor introduza pelo menos " + minLength + " caracteres."; 
	err03   = "Por favor introduza menos que " + maxLength + " caracteres."; 
 
	if ( fieldLength > 0)
	{
		if ( fieldLength < minLength ) 
		{ 
			alert( err02 ); 
			Limpar = true;
		}
		else if (( fieldLength > maxLength ) && ( maxLength > 0 )) 
		{ 
			alert( err03 ); 
			Limpar = true;
		}
		else if (( fieldValue.charAt( 0 ) == "@" ) || ( fieldValue.charAt( fieldLength - 1 ) == "@" )) 
		{
			alert("O Email não é válido !!!"); 
			Limpar = true;
		}
		else 
		{ 
			for( var i=0; i< fieldLength; i++ ) 
			{ 
				if ( validChars.indexOf( fieldValue.charAt( i )) == -1 ) 
				{ 
				    alert( err01 ); 
				    Limpar = true;
				    break; 
				}
				if (fieldValue.charAt( i ) == "@")
					cont++;
				if (fieldValue.charAt( i ) == ".")
					cont2++;
		    } 
			    
		    if (cont2 == 0 )
			{
				alert("O Email não é válido !!!"); 
				Limpar = true;
			}
			else if ( (cont == 0) || (cont > 1) )
		    {
				alert("O Email não é válido !!!"); 
				Limpar = true;		
			}
		} 
    } 
    if(Limpar) obj.focus(); 
}