function verificaNumerico(val)
{
	if(isNaN(val))	return false;
	return true;
}

//é usado para o nome
function Alfabetico (val)
{
	var a = 0;	
	for (i=0 ; i < val.length; i++ )
	{
		x=val.substring(i,i+1);
		if ((x >= 'A') && (x <= 'Z')) 
		{
			a=a+1;
		}	
		else if ((x >= 'a') && (x <= 'z')) 
		{
			a = a+1;
		}	
		else if ((x==' ') || (x=='Ã') || (x=='Õ') || (x=='Ç') || (x=='Á') || (x=='À') || (x=='É') || (x=='Í') || (x=='Ó') || (x=='Ú'))
		{
			a = a+1;
		}	
		else if ((x=='ã') || (x=='õ') || (x=='ç') || (x=='á') || (x=='à') || (x=='é') || (x=='í') || (x=='ó') || (x=='ú'))
		{
			a = a+1;
		}	
		else if ((x=='ª') || (x==',') || (x=='.') || (x=='-') || (x=='&'))
		{
			a = a+1;
		}
		else
		{
			a = 0;
		}	
	}			
	if (a==val.length)
		return true;
	else
		return false;				
}		

//é usado para a localidade
function Alfanumerico (val)
{
	var a = 0;	
	for (i=0 ; i < val.length; i++ )
	{
		x=val.substring(i,i+1);
		if ((x >= 'A') && (x <= 'Z') )
		{
			a=a+1;
		}	
		else if ((x >= 'a') && (x <= 'z'))
		{
			a = a+1;
		}	
		else if ((x >= '0') && (x <= '9'))
		{
			a = a+1;
		}	
		else if ((x==' ') || (x=='Ã') || (x=='Õ') || (x=='Ç') || (x=='Á') || (x=='À') || (x=='É') || (x=='Í') || (x=='Ó') || (x=='Ú'))
		{
			a = a+1;
		}	
		else if ((x=='ã') || (x=='õ') || (x=='ç') || (x=='á') || (x=='à') || (x=='é') || (x=='í') || (x=='ó') || (x=='ú'))
		{
			a = a+1;
		}	
		else if ((x=='ª') || (x==',') || (x=='.') || (x=='-') || (x=='&') || (x=='º') || (x=='/'))
		{
			a = a+1;
		}
		else
		{
			a = 0;
		}	
	}			
	if (a==val.length)
		return true;
	else
		return false;				
}	


//é usado para a morada
function LocAlfa (val)
{
	var a = 0;	
	for (i=0 ; i < val.length; i++ )
	{
		x=val.substring(i,i+1);
		if ((x >= 'A') && (x <= 'Z') )
		{
			a=a+1;
		}	
		else if ((x >= 'a') && (x <= 'z'))
		{
			a = a+1;
		}	
		else if ((x >= '0') && (x <= '9'))
		{
			a = a+1;
		}
		else if ((x==' ') || (x=='Ã') || (x=='Õ') || (x=='Ç') || (x=='Á') || (x=='À') || (x=='É') || (x=='Í') || (x=='Ó') || (x=='Ú'))
		{
			a = a+1;
		}	
		else if ((x=='ã') || (x=='õ') || (x=='ç') || (x=='á') || (x=='à') || (x=='é') || (x=='í') || (x=='ó') || (x=='ú'))
		{
			a = a+1;
		}	
		else if ((x=='ª') || (x==',') || (x=='.') || (x=='-') || (x=='&') || (x=='º') || (x=='/'))
		{
			a = a+1;
		}
		else
		{
			a = 0;
		}	
	}			
	if (a==val.length)
		return true;
	else
		return false;				
}

function CampoNulo(form,campo)
{
	val=document.forms[form][campo].value;
	if ((val=="") || (val==" "))
		return true;
	else
		return false;
}


function Nome (form,campo)
{
	// verifica se é nulo
	if (CampoNulo(form,campo)){
		alert ("Por favor, preencha o campo Nome.")
		return true;
	}
	
	var val
	val=document.forms[form][campo].value;
	
	//verifica se é numerico
	if (verificaNumerico(val)){
	alert ("Por favor, preencha correctamente o campo Nome.")
	return true;
	}	
	
	// verifica se é alfabético
	if (!Alfabetico(val)){
		alert ("Por favor, preencha correctamente o campo Nome.")
		return true;
	}
	
return false;
}

function Morada (form,campo)
{
	// verifica se é nulo
	if (CampoNulo(form,campo)){
		alert ("Por favor, preencha o campo Morada.")
		return true;
	}
	
	var val
	val=document.forms[form][campo].value;
	
	// verifica se é alfanumérico
	if (!Alfanumerico(val)){
		alert ("Por favor, preencha correctamente o campo Morada.")
		return true;
	}
return false;
}

function CodigoPostal1(form,campo)
{
	// verifica se é nulo
	if (CampoNulo(form,campo)){
	alert ("Por favor, preencha o campo Código Postal ")
	return true;
	}
	var val
	
	val=document.forms[form][campo].value;

	// verifica se é numerico
	if (!verificaNumerico(val)){
	alert ("Por favor, preencha correctamente o campo Código Postal.")
	return true;
	}	

	//verificar se é inteiro
	if (((val%1) != 0)) {
	alert("Por favor, preencha correctamente o campo Código Postal.")
	return true;
	}
	
	// verifica se é positivo
	if (val <= 0 ){
		alert("Por favor, preencha correctamente o campo Código Postal.")
		return true;
	}
	
	//verifica tamanho
	if (val.length != 4){
	alert ("Por favor, preencha correctamente o campo Código Postal.")
	return true;
	}			
return false;
}

function CodigoPostal2(form,campo)
{
	
	val=document.forms[form][campo].value;

	// verifica se é numerico
	if (!verificaNumerico(val)){
	alert ("Por favor, preencha correctamente o campo Código Postal.")
	return true;
	}	

	//verificar se é inteiro
	if (((val%1) != 0)) {
	alert("Por favor, preencha correctamente o campo Código Postal.")
	return true;
	}
	
	// verifica se é positivo
	if (val < 0 ){
		alert ("Por favor, preencha correctamente o campo Código Postal.")
		return true;
		}
	
	//verifica tamanho
	if (val.length != 3){
	alert ("Por favor, preencha correctamente o campo Código Postal.")
	return true;
	}			
return false;
}

function Localidade (form,campo)
{
	// verifica se é nulo
	if (CampoNulo(form,campo)){
		alert ("Por favor, preencha o campo Localidade.")
		return true;
	}
	
	var val
	val=document.forms[form][campo].value;
	
	// verifica se é numerico
	if (verificaNumerico(val)){
	alert ("Por favor, preencha correctamente o campo Localidade.")
	return true;
	}	
	
	// verifica se é alfabético
	if (!LocAlfa (val)){
		alert ("Por favor, preencha correctamente o campo Localidade.")
		return true;
	}
	
return false;
}

function Profissao (form,campo)
{
	// verifica se é nulo
	if (CampoNulo(form,campo)){
		alert ("Por favor, preencha o campo Profissão.")
		return true;
	}
	
	var val
	val=document.forms[form][campo].value;
	
	// verifica se é alfabético
	if (!Alfanumerico (val)){
		alert ("Por favor, preencha correctamente o campo Profissão.")
		return true;
	}
	
return false;
}



function telefones(form,campo)
{
	// verifica se é nulo
	if (CampoNulo(form,campo)){
	alert ("Por favor, preencha o campo Telefone.")
	return true;
	}
	var val
	
	val=document.forms[form][campo].value;

	
	// verifica se é numerico
	if (!verificaNumerico(val)){
	alert ("Por favor, preencha correctamente o campo Telefone.")
	return true;
	}	
	
	//verificar se é inteiro
	if (((val%1) != 0)) {
	alert ("Por favor, preencha correctamente o campo Telefone.")
	return true;
	}

	// verifica se é positivo
	if (val <= 0 ){
		alert ("Por favor, preencha correctamente o campo Telefone.")
	return true;
	}	
	
	//verifica tamanho
	if (val.length != 9){
	alert ("Por favor, preencha correctamente o campo Telefone.")
	return true;
	}			
return false;
}


function numCliente (form,campo)
{
	// verifica se é nulo
	if (CampoNulo(form,campo)){
	alert ("Por favor, preencha o campo Número de Cliente.")
	return true;
	}
	var val
	
	val=document.forms[form][campo].value;

	
	// verifica se é numerico
	if (!verificaNumerico(val)){
	alert ("Por favor, preencha correctamente o campo Número de Cliente.")
	return true;
	}	
	
	//verificar se é inteiro
	if (((val%1) != 0)) {
	alert ("Por favor, preencha correctamente o campo Número de Cliente.")
	return true;
	}

	// verifica se é positivo
	if (val <= 0 ){
		alert ("Por favor, preencha correctamente o campo Número de Cliente.")
	return true;
	}	
	
	//verifica tamanho
	if (val.length < 1 || val.length > 10){
	alert ("Por favor, preencha correctamente o campo Número de Cliente.")
	return true;
	}			
return false;
}

function numContrib (form,campo)
{
	// verifica se é nulo
	if (CampoNulo(form,campo)){
	alert ("Por favor, preencha o campo Número de Contribuinte.")
	return true;
	}
	var val
	
	val=document.forms[form][campo].value;

	
	// verifica se é numerico
	if (!verificaNumerico(val)){
	alert ("Por favor, preencha correctamente o campo Número de Contribuinte.")
	return true;
	}	
	
	//verificar se é inteiro
	if (((val%1) != 0)) {
	alert ("Por favor, preencha correctamente o campo Número de Contribuinte.")
	return true;
	}

	// verifica se é positivo
	if (val <= 0 ){
		alert ("Por favor, preencha correctamente o campo Número de Contribuinte.")
	return true;
	}	
	
	//verifica tamanho
	if (val.length != 9){
	alert ("Por favor, preencha correctamente o campo Número de Contribuinte.")
	return true;
	}			
return false;
}

function ValidaIdade (form,campo)
{
	// verifica se é nulo
	if (CampoNulo(form,campo)){
	alert ("Por favor, preencha o campo Idade.")
	return true;
	}
	var val
	
	val=document.forms[form][campo].value;

	
	// verifica se é numerico
	if (!verificaNumerico(val)){
	alert ("Por favor, preencha correctamente o campo Idade.")
	return true;
	}	
	
	//verificar se é inteiro
	if (((val%1) != 0)) {
	alert ("Por favor, preencha correctamente o campo Idade.")
	return true;
	}

	// verifica se é positivo
	if (val <= 0 ){
		alert ("Por favor, preencha correctamente o campo Idade.")
	return true;
	}	
				
return false;
}


function Livre (form,campo,descCamLivre)
{
	// verifica se é nulo
	
	val=document.forms[form][campo].value;
	
	if (CampoNulo(form,campo))
	{
		alert ("Por favor, preencha o campo " +descCamLivre+ ".")
		return true;
	}
return false;
}



//--------------------------------------------------------------------------------------
// função que verifica se existe pelo menos um caracter alfanumerico numa string
//--------------------------------------------------------------------------------------
function existeUmAlfaNumerico(str)
{
	var i,caracter;
	
  for (i = 0; i < str.length; i++)
  {
		caracter = str.charAt(i)
		if (((caracter>= 'a') && (caracter <= 'z')) || ((caracter>= 'A') && (caracter <= 'Z'))  || ((caracter >= '0') && (caracter <= '9')))
			return true;
	}
	return false;
}

//--------------------------------------------------------------------------------------
// função que verifica se um campo de email está preenchido de acordo com as seguintes regras
// pelo menos um caracter alfanumerico@pelo menos um caracter alfanumerico.pelo menos um caracter alfanumerico
//--------------------------------------------------------------------------------------
function verificaEmail(email)
{
	var erro,emailpartido,emailpartido2
	
	erro=0;
	// verifica se o e-mail está bem preenchido
	if (email.length > 0)
	{	
		if ((email.lastIndexOf("@")==-1)
					|| (email.lastIndexOf (".")==-1)
					|| (email.lastIndexOf (" ")!=-1)
				)
			erro = 2;
		else
		{	
			emailpartido = email.split("@");
			if (!existeUmAlfaNumerico(emailpartido[0]))
				erro = 3;
			else
			{
				if ((emailpartido[1].lastIndexOf (".")==-1))
					erro=4;
				else
				{
					emailpartido2 = emailpartido[1].split(".");
					if (!existeUmAlfaNumerico(emailpartido2[0]))
						erro = 5;
					else
						if (!existeUmAlfaNumerico(emailpartido2[1]))
							erro = 6;
				}		
			}
		}		
	}

/*
	switch (erro) {
		case 1:
			alert("O campo 'Email' não foi preenchido.");
			return false;
			break;
		case 2:
			alert("O campo 'Email' tem de conter o caracter '@', um ponto final e não ter espaços.");
			return false;			
			break;
		case 3:
			alert("O campo 'Email' tem de conter um caracter alfanumerico antes do caracter '@'");
			return false;			
			break;
		case 4:
			alert("O campo 'Email' tem de conter um ponto final após o caracter '@'");
			return false;			
			break;
		case 5:
			alert("O campo 'Email' tem de conter um caracter alfanumerico antes do ponto final");		
			return false;			
			break;
		case 6:
			alert("O campo 'Email' tem de conter um caracter alfanumerico depois do ponto final");		
			return false;			
			break;
		
	}
*/

	if (erro!=0)
	{
		alert("O campo 'Email' foi preenchido incorrectamente.\nDeve preencher na forma xxx@xxx.xxx");      	
		return false;
	}
	else
		return true;

}	

//--------------------------------------------------------------------------------------
// função que verifica se um campo de email está preenchido de acordo com as seguintes regras
// pelo menos um caracter alfanumerico@pelo menos um caracter alfanumerico.pelo menos um caracter alfanumerico
//--------------------------------------------------------------------------------------
function verificaEmailRE(email)

{
  var field = email;
  var str = email.value;
  
  if (window.RegExp) 
  {
    var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    //var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
    var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{1,})(\\]?)$"
    var reg1 = new RegExp(reg1str);
    var reg2 = new RegExp(reg2str);
    if (!reg1.test(str) && reg2.test(str))
      return true;
		alert("O campo 'Email' foi preenchido incorrectamente.\nDeve preencher na forma xxx@xxx.xxx");      		
    field.focus();
    return false; 
    
  } 
  else 
  {
		if (verificaEmail(email))
      return true;
		alert("O campo 'Email' foi preenchido incorrectamente.\nDeve preencher na forma xxx@xxx.xxx");      
    field.focus();
    field.select();
    return false;
  }
}

