function erro(o, t) {
	
   if (t == 'contatopt') {
	var obrigatorios = new Array(['nome','Nome'],['email','E-mail'],['mensagem','Mensagem']);
	var msgErr = '';
	var inicioErr = '';
	for(i=0; i<obrigatorios.length; i++) {
		var el = obrigatorios[i][0];
		if (o.elements[el].value == '' || o.elements[el].selectedIndex==0 || o.elements[el].value == 'nome' || o.elements[el].value == 'e-mail') {
			inicioErr = 'O(s) seguinte(s) campo(s) deve(m) ser preenchido(s):\n\n';
			msgErr += obrigatorios[i][1]+"\n";
		}
	}
	// checagem do email válido
	var temp = emailCheck(o.email.value,'pt');
	//if(temp!=''){
	//      temp +='Caso não deseje preencher o campo email, deixe-o em branco.'
	//}
	msgErr +=temp;
	//
	if(msgErr!=''){
		alert(inicioErr+msgErr);
		return false;
	}else{
		//document.forms[0].submit();
		return true;
	}
   } else if (t == 'contatoen') {
	var obrigatorios = new Array(['nome','Name'],['email','E-mail'],['mensagem','Message']);
	//alert(o.id);
	//alert(o.nome.value);
	var msgErr = '';
	var inicioErr = '';
	for(i=0; i<obrigatorios.length; i++) {
		var el = obrigatorios[i][0];
		if (o.elements[el].value == '' || o.elements[el].selectedIndex==0 || o.elements[el].value == 'name' || o.elements[el].value == 'e-mail') {
			inicioErr = 'The following field(s) must be filled in:\n\n';
			msgErr += obrigatorios[i][1]+"\n";
		}
	}
	// checagem do email válido
	var temp = emailCheck(o.email.value,'en');
	//if(temp!=''){
	//      temp +='Caso não deseje preencher o campo email, deixe-o em branco.'
	//}
	msgErr +=temp;
	//
	if(msgErr!=''){
		alert(inicioErr+msgErr);
		return false;
	}else{
		//document.forms[0].submit();
		return true;
	}
   } else { 
	return false;
   }		
}
//

function emailCheck(emailStr,kind){
	if(emailStr!='' && emailStr!='e-mail'){
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom=validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		var returnMsg = new Object();
		//
		var matchArray=emailStr.match(emailPat)
		if (matchArray==null) {
			if (kind == 'pt') { returnMsg= "\nPadrão de e-mail incorreto (verifique @ e '.').\n"; } else { returnMsg= "\nIncorrect email address (verify @ and '.').\n"; }
			//returnMsg['pt'] = "Endereço de email incorreto (verifique @ e '.').";
			//returnMsg.en = "Incorrect email address (verify @ and '.').";
			return returnMsg;
		}
		//
		var user=matchArray[1]
		var domain=matchArray[2]
		//
		// See if "user" is valid 
		//
		if (user.match(userPat)==null) {
			// user is not valid
			if (kind == 'pt') { returnMsg="\nO nome de usuário do e-mail é inválido!\n"; } else { returnMsg="\nInvalid email username.\n"; }
			//returnMsg['pt'] = "Nome de usuário de email inválido.";
			//returnMsg.en = "Invalid email username.";
			return returnMsg;
		}
		//
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null) {
		// this is an IP address
			for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {
					if (kind == 'pt') { returnMsg="\nIP inválido!\n"; } else { returnMsg="\nInvalid IP.\n"; }
					//returnMsg['pt'] = "IP de destino inválido.";
					//returnMsg.en = "Invalid IP.";
					return returnMsg;
				}
			}
		return true
		}
		// Domain is symbolic name
		var domainArray=domain.match(domainPat);
		if (domainArray==null) {
			if (kind == 'pt') { returnMsg="\nNome de domínio inválido!\n"; } else { returnMsg="\nInvalid domain name.\n"; }
			//returnMsg['pt'] = "Nome de domínio inválido.";
			//returnMsg.en = "Invalid domain name.";
			return returnMsg;
		}
		//
		var atomPat=new RegExp(atom,"g")
		var domArr=domain.match(atomPat)
		var len=domArr.length
		if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
			if (kind == 'pt') { returnMsg="\nO endereço de e-mail deve terminar no padrão \".xxx\"(Ex: .com ) ou \".xx\"(Ex: .br ).\n"; } else { returnMsg="\nThe email address must end in a three-letter domain or a two-letter country code.\n"; }
			// the address must end in a two letter or three letter word.
			//returnMsg['pt'] = "O endereço de email deve terminar em um domínio de três letras ou um código de país de duas letras.";
			//returnMsg.en = "The email address must end in a three-letter domain or a two-letter country code.";
			return returnMsg;
		}
		// Make sure there's a host name preceding the domain.
		if (len<2) {
			if (kind == 'pt') { returnMsg="\nE-mail sem nome de usuário.\n"; } else { returnMsg="\nAddress without a hostname.\n"; }
			//returnMsg['pt'] = "Endereço sem um 'hostname'!";
			//returnMsg.en = "Address without a hostname.";
			return returnMsg;
		}
		// If we've gotten this far, everything's valid!
		//return true;
		return "";
	}else{
		//alert('email em branco');
		return "";
	}
}

