function emailCheck (emailStr) {
/* Verificar se o email tem o formato user@domain e separa o username do domain*/
var emailPat=/^(.+)@(.+)$/
/* match de caracteres especiais ( ) < > @ , ; : \ " . [ ]    */
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
/* Caracteres que podem ser usados no username e domain */
var validChars="\[^\\s" + specialChars + "\]"
/* o user pode estar entre " */
var quotedUser="(\"[^\"]*\")"
/* o domain pode ser um endereco ip*/
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 +")*$")

/* Analisar o user e o domain*/
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {

	alert("Email incorrecto (verificar @ e .'s)")
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

// Validar user 
if (user.match(userPat)==null) {
    // user nao e valido
    alert("Email incorrecto.")
    return false
}

/* So o domain é um IP verificar se é válido */
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // é um IP
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("Email incorrecto.")
		return false
	    }
    }
    return true
}

// Domain é um nome 
var domainArray=domain.match(domainPat)
if (domainArray==null) {
	alert("Email incorrecto.")
    return false
}
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) {
   alert("Email incorrecto.")
   return false
}

if (len<2) {
   var errStr="O campo Email está incorrecto."
   alert(errStr)
   return false
}

return true;
}

function valida(value){
	var aux = value;
	if (aux==""){
		alert("Por favor, preencha os campos obrigatórios.\n\n ---> Nome \n ---> Telefone \n ---> Email \n ---> Agência Preferencial");
		return false;
		}
	else
	return true;
}


function validaBalcao(value){
	var aux = value;
	if (aux=="-"){
		alert("O campo Agência Preferencial é obrigatório.");
		return false;
		}
	else
	return true;
}


function valida_telefone(value){
var aux = /^\d+$/;	
var aux1 = value.match(aux);
if(aux1 == null)
	{
	alert("O campo Telefone está incorrecto.");
	return false;
	}
else
	{
	return true;
	}

}

function validaDados(form){

	if (valida(form.nome.value) && valida_telefone(form.telefone.value) && emailCheck(form.email.value) && validaBalcao(form.balcao.value)){
		if ((form.maisInfo.checked) && (form.morada.value=="")){
			alert("Por favor, preencha o campo Morada.");
			return false;
		}
		else{
			if ((form.balcao.value=="-") && (form.numeroConta.value=="")){
				alert("Por favor, indique o Numero de Conta ou a Agência Preferencial.");
				return false;
			}
			else{
				return true;
			}
		 	//return true;
		}
	}
	else{
		return false;
	}
}

function submitme() {
	    document.principal.action = "Form_Subs_Prod_1.jsp";		
		if (validaDados(document.principal)){
		document.principal.submit();			
		}
} 



function clean(form){
	form.nome.value="";
	form.telefone.value="";
	form.email.value="";
	form.numeroConta.value="";
}