function Trim(z_val){
	var zz_val = "" + z_val;
	while(true){
		if(zz_val.length > 0){
			if(zz_val.charAt(0) == ' '){
				zz_val = zz_val.substr(1, zz_val.length-1);
				continue;
			}
		} 
		break;
	}
		
	while(true){
		if(zz_val.length > 0){
			if((zz_val.charAt(zz_val.length-1) == ' ')){
				zz_val = zz_val.substr(0, zz_val.length-1);
				continue;
			}
		} 
		break;
	}
		
	return zz_val;
}

function ConfirmaEmail(oemail, obrigatorio){
	email = Trim(oemail);
	email = email.toLowerCase();
	errom = "";
	if(email.substr(0, 4) == "www.")
		errom = "Ele começa com www.";
	else if(email.indexOf("gametrack") > email.indexOf("@"))
		errom = "Ele possui 'gametrack' após o @.";
	else if(email.indexOf("orkut") > email.indexOf("@"))
		errom = "Ele possui 'orkut' após o @.";
	else if(email.substr(email.length - 5, 4) == ".com") 
		errom = "Ele tem uma letra a mais após o .com no final.";
	else if(email.substr(email.length - 4, 3) == ".br") 
		errom = "Ele tem uma letra a mais após o .br no final.";
	else if(email.substr(email.length - 3, 3) == ".co") 
		errom = "Falta nele a letra 'm' para formar '.com' no final.";
	else {
		ar = email.indexOf("@")
		pt = email.indexOf(".", ar)
		if((ar == -1)||(pt == -1)) 
			errom = "Ele não possui ponto após @.";
		else if(ar == pt - 2) {
			errom = "Ele possui apenas 1 letra entre o @ e o ponto.";
		} else if(email.indexOf("@", ar+1) != -1) {
			errom = "Ele possui mais de um @.";
		} else {
			lista_sufixos = new Array("@gmail.com", "@hotmail.com", "@yahoo.com.br", "@bol.com.br", "@pop.com.br", "@uol.com.br", "@terra.com.br", "@ig.com.br", "@msn.com", "@globo.com", "@ibest.com.br");
			
			prefixo = email.substr(0, ar);
			sufixo = email.substr(ar, email.length - ar);
			encsufixo = false;
			for(i = 0; i < lista_sufixos.length; ++i){
				if(sufixo == lista_sufixos[i]){
					encsufixo = true;
					break;
				}
			}
			
			if(!encsufixo){
				for(i = 0; i < lista_sufixos.length; ++i){
					if(lista_sufixos[i].indexOf(".br") == -1){
						lista_sufixosbr = lista_sufixos[i] + ".br";
						lista_sufixoscom = lista_sufixos[i];
					} else {
						lista_sufixosbr = lista_sufixos[i];
						lista_sufixoscom = lista_sufixosbr.replace(/[.]br/g, "");
					}
					
					ipbr = email.indexOf(lista_sufixosbr)
					ipcom = email.indexOf(lista_sufixoscom)
					if((ipbr != -1) || (ipcom != -1)){
						if((ipbr != -1)&&(lista_sufixoscom == lista_sufixos[i])){
							errom = "Ele está com o domínio estranho. Não deveria ser '" + prefixo + lista_sufixoscom + "' ?"
							break;
						} if((ipbr == -1)&&(lista_sufixosbr == lista_sufixos[i])){
							errom = "Ele está com o domínio estranho. Não deveria ser '" + prefixo + lista_sufixosbr + "' ?"
							break;
						}
					}
				}
					
				for(i = 0; i < lista_sufixos.length; ++i){
					if(errom != "") break;
					if(lista_sufixos[i].indexOf(".br") == -1){
						lista_sufixosbr = lista_sufixos[i] + ".br";
						lista_sufixoscom = lista_sufixos[i];
					} else {
						lista_sufixosbr = lista_sufixos[i];
						lista_sufixoscom = lista_sufixosbr.replace(/[.]br/g, "");
					}

					for(j = 1; j < lista_sufixoscom.length; ++j){
						if(j < lista_sufixoscom.length - 1) {
							trocado1 = lista_sufixoscom.substring(0,j) + lista_sufixoscom.charAt(j+1) + lista_sufixoscom.charAt(j);
							if(j < lista_sufixoscom.length - 2) trocado1 += lista_sufixoscom.substring(j+2,lista_sufixoscom.length);
							nemail = email.replace(trocado1, lista_sufixoscom);
							if(nemail != email){
								errom = "Ele está com letras invertidas. Não deveria ser '" + nemail + "' ?";
								break;
							}

							sobrando1 = lista_sufixoscom.substring(0,j) + "\t" + lista_sufixoscom.substring(j,lista_sufixoscom.length);
							sobrando1 = sobrando1.replace(/[.]/g, "[.]");
							sobrando1 = sobrando1.replace(/\t/g, ".");
							regExp = new RegExp(sobrando1, "g");
							nemail = email.replace(regExp, lista_sufixoscom);
							if(nemail != email){
								errom = "Há letras sobrando nele. Não deveria ser '" + nemail + "' ?";
								break;
							}

							faltando1 = lista_sufixoscom.substring(0,j) + lista_sufixoscom.substring(j+1,lista_sufixoscom.length);
							nemail = email.replace(faltando1, lista_sufixoscom);
							if(nemail != email){
								errom = "Está faltando letra nele. Não deveria ser '" + nemail + "' ?";
								break;
							}
						}
						
						errado1 = lista_sufixoscom.substring(0,j) + "\t" + lista_sufixoscom.substring(j+1,lista_sufixoscom.length);
						errado1 = errado1.replace(/[.]/, "[.]");
						errado1 = errado1.replace(/\t/g, ".");
						regExp = new RegExp(errado1, "g");
						nemail = email.replace(regExp, lista_sufixoscom);
						if(nemail != email){
							errom = "Ele está com uma letra digitada errada. Não deveria ser '" + nemail + "' ?";
							break;
						}
					}
				}
			}
		}
	}
	
	if(errom != ""){
		tc = "O e-mail digitado parece estar errado.\n" + errom;
		tc += obrigatorio;
		if(!confirm(tc + "\n\nVocê confirma que o e-mail '" + oemail + "' está certo?")) 
			return false;
	}
	
	return true;
}