function validaEmail(email){
	erromail = 0;
	if (email.value.length > 0) {
		//var DomConhecidos=/^(pt|com|net|org|edu|gov|biz|info|tv|name|es|br|uk|fr|gr|it)$/;
		var FormatoEmail=/^(.+)@(.+)$/;
		var CharsEspeciais="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		var CharsValidos="\[^\\s" + CharsEspeciais + "\]";
		var oUser="(\"[^\"]*\")";
		var atom=CharsValidos + '+';
		var sPalavra="(" + atom + "|" + oUser + ")";
		var oUser=new RegExp("^" + sPalavra + "(\\." + sPalavra + ")*$");
		var FormatoDominio=new RegExp("^" + atom + "(\\." + atom +")*$");
		var oArrayOcorrencias=email.value.match(FormatoEmail);
		
		if (oArrayOcorrencias==null) {erromail = 1}
		else{
			var user=oArrayOcorrencias[1];
			var dominio=oArrayOcorrencias[2];
			if (user.length && dominio.length){
				for (i=0; i<user.length; i++) {if (user.charCodeAt(i)>126) {erromail = 1}}
				for (i=0; i<dominio.length; i++) {if (dominio.charCodeAt(i)>126) {erromail = 1}}
				if (user.match(oUser)==null) {erromail = 1}

				var atomPat=new RegExp("^" + atom + "$");
				var domArr=dominio.split(".");
				var len=domArr.length;
				for (i=0;i<len;i++) {if (domArr[i].search(atomPat)==-1) {erromail = 1}}
				if (len < 2) {erromail = 1}
			} else{erromail = 1}
		}
		
		if (erromail==1){
			alert('Deve introduzir um email válido, no formato utilizador@subdominio.dominio');
            email.focus();
            return false;
		}
		else return true;
	}
}

function validaDominio(dominio)
{
var arr = new Array(
'.com','.net','.org','.biz','.coop','.info','.museum','.name',
'.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag',
'.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw',
'.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm',
'.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc',
'.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr',
'.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz',
'.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm',
'.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm',
'.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm',
'.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq',
'.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki',
'.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li',
'.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg',
'.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt',
'.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng',
'.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf',
'.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py',
'.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg',
'.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv',
'.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn',
'.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um',
'.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws',
'.wf','.ye','.yt','.yu','.za','.zm','.zw');

var mai = dominio.value;
var val = true;

var dot = mai.lastIndexOf(".");
var dname = mai.substring(0,dot);
var ext = mai.substring(dot,mai.length);

if (dot<3){
	alert('Deve introduzir um domínio válido, no formato domínio.extensão');
	dominio.focus();
	return false;
}
else {
	for(var i=0; i<arr.length; i++)	{
		if(ext == arr[i])	  {
			val = true;
			break;
		}	
		else 
			val = false;
	}
	if(val == false){
		alert("Deve indicar uma extensão válida.");
		dominio.focus();
		return false;
	}
	else {
		for(var j=0; j<dname.length; j++){
			var dh = dname.charAt(j);
			var hh = dh.charCodeAt(0);
			if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)  {
				if((j==0 || j==dname.length-1) && hh == 45){
					alert("Um domínio não pode começar nem terminar com o caracter '-'.");
					dominio.focus();
					return false;
				}
			}
			else	{
				alert("Um domínio não pode ter caracteres especiais.");
				dominio.focus();
				return false;
			}
		}
	}
}

return true;
}



