// JavaScript Document
function validaCadastro() {
	var frm = document.Cadastro;

	if (frm.Nome.value=="") 
	{
		alert("Por favor, informe o seu nome");
		frm.Nome.focus();
		return false;
	}
	if (frm.Email.value=="") 
	{
		alert("Por favor, informe o seu endereço de e-mail");
		frm.Email.focus();
		return false;
	} 
	else 
	{
		if (!VerificaEmail(frm.Email.value)) 
		{
			alert("O endereço de e-mail fornecido não é válido.Por favor, redigite-o");
			frm.Email.focus();
			return false;
		}
	}

	if ((frm.Dia.options[frm.Dia.selectedIndex].value=="")||(frm.Mes.options[frm.Mes.selectedIndex].value=="")||(frm.Ano.value=="")) 
	{
		alert("Por favor, informe o dia, mês e ano da sua data de nascimento");
		frm.Dia.focus();
		return false;
	} 
	else 
	{
		if (!VerificaData(frm.Dia.options[frm.Dia.selectedIndex].value+"/"+frm.Mes.options[frm.Mes.selectedIndex].value+"/"+frm.Ano.value, "/")) 
		{
			alert("A data de nascimento informada não é válida. Por favor, redigite-a");
			frm.Dia.focus();
			return false;
		}	
	}

	if ((!frm.Sexo[0].checked)&&(!frm.Sexo[1].checked)) 
	{
		alert("Por favor, informe o seu sexo");
		frm.Sexo[0].focus();
		return false;
	}

	if (frm.Endereco.value=="") 
	{
		alert("Por favor, informe o seu endereço");
		frm.Endereco.focus();
		return false;
	}

	if (frm.Bairro.value=="") 
	{
		alert("Por favor, informe o seu bairro");
		frm.Bairro.focus();
		return false;
	}

	if ((frm.Cep1.value=="")||(frm.Cep2.value=="")) 
	{
		alert("Por favor, informe o cep");
		frm.Cep1.focus();
		return false;
	}
	else
	{
		if ((frm.Cep1.value!="")&&(frm.Cep2.value=="")) 
		{
			alert("O endereço de cep informado não é válido");
			frm.Cep2.focus();
			return false;
		} 
		else 
		{
			if ((frm.Cep1.value=="")&&(frm.Cep2.value!="")) 
			 {
				alert("O número do cep informado não é válido");
				frm.Cep1.focus();
				return false;
		 	 }	
			 else 
			 {
				 if (hasChars(frm.Cep1.value) || hasChars(frm.Cep2.value)) 
				 {
				 	 alert("O número do cep informado não é válido");
					 frm.Cep1.focus();
					 return false;
				 } 
				 else 
				 {	
				 	if ((frm.Cep1.value.length!=5)||(frm.Cep2.value.length!=3)) 
					{
				 	   alert("O número do cep informado não é válido");
					   frm.Cep1.focus();
					   return false;
					}
				 }
		 	 }
		 }
	}	

	if (frm.Cidade.value=="") 
	{
		alert("Por favor, informe a cidade");
		frm.Cidade.focus();
		return false;
	}

	if (frm.UF.options[frm.UF.selectedIndex].value=="") 
	{
		alert("Por favor, informe o estado");
		frm.UF.options[frm.UF.selectedIndex].focus();
		return false;
	}

	if (frm.Flag_Consulta.value=="") {
		if (frm.Senha1.value=="") 
		{
			alert("Por favor, informe a sua senha");
			frm.Senha1.focus();
			return false;
		} 
		else 
		{
			if (frm.Senha1.value!=frm.Senha2.value) 
			{
				alert("A confirmação da senha não confere com a senha original. Por favor, redigite-a");
				frm.Senha2.focus();
				return false;
			}
		} 
	} 
	else 
	{
		if (frm.Senha1.value!="") 
		{
			if (frm.Senha1.value!=frm.Senha2.value) 
			{
				alert("A confirmação da senha não confere com a senha original. Por favor, redigite-a");
				frm.Senha2.focus();
				return false;
			}
		} 
	}	
	return true;
}

function LimpaFormulario() {
var frm = document.Cadastro;
    frm.Nome.value=""
    frm.Email.value="";
    frm.Dia.value=0;
    frm.Mes.value=0;
    frm.Ano.value="";
    frm.Sexo[0].checked=false;
    frm.Sexo[1].checked=false;
    frm.Endereco.value="";
	 frm.Bairro.value="";
    frm.Cep1.value="";
    frm.Cep2.value="";
    frm.Cidade.value="";
    frm.UF.value=0;
    frm.Senha1.value="";
    frm.Senha2.value=""; 
	 return;
}

function eh_bissexto(ano) {
	if ( ((ano - 1996) % 4) == 0) return true;
	return false;
}

function VerificaData(data, separador) {
	aux = data;
	barras = 0;
	erro = 0;
	dia = 0;
	mes = 0;
	ano = 0;
	eh_barra = 1;
	
	meses = new Array(12);
	meses = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

	for (var i=0; (i<aux.length) && (erro==0); i++) {
		if (aux.charAt(i)==separador) {
			if (eh_barra==0) {
				barras++;
				eh_barra = 1;
			}
			else erro = 1;
		}
		else {
			a = parseInt(aux.charAt(i), 10);
			if (isNaN(a)) erro = 1;
			eh_barra = 0;
		}
	}
	if (barras != 2) erro = 1;
			
	if (erro==0) {
		pos = aux.indexOf(separador);
		pos2 = aux.indexOf(separador, pos+1);
		dia = parseInt(aux.substring(0, pos), 10);
		mes = parseInt(aux.substring(pos+1, pos2), 10);
		ano = parseInt(aux.substring(pos2+1, aux.length), 10);
		if (ano<1800 || ano>2050) erro = 1;
		else {
			if (eh_bissexto(ano)) meses[1] = 29;
			else meses[1] = 28;
			if (mes<1 || mes>12) erro = 1;
			else if (dia<1 || dia>meses[mes-1]) erro = 1;
		}
	}
	if (erro==1) return false;
	return true;
}

//	Esta função verifica se o email é válido 
function VerificaEmail(email) {
	var achou_ponto=false;
	var achou_arroba=false;
	var flag_arroba=false;
	var achou_erro=false;
	var achou_caracter=false;
	var tot_arroba=0;
	
	if (email=="") 
		 return false
	else 
	{
		for (var i=0; i<email.length; i++) 
		{ 
			if (flag_arroba)
				{   
					flag_arroba=false;
					if (email.charAt(i)==".") 
						 achou_erro=true;
				}
		
			if (email.charAt(i)=="@") 
				{  
					achou_arroba=true;
					flag_arroba=true;	
					tot_arroba++;
				}   	
				else if (email.charAt(i)==".") 
							achou_ponto=true;
					  else if (email.charAt(i)!=" ") 
							achou_caracter=true;
		}	   
	 	return ((!achou_erro) && achou_ponto && achou_arroba && achou_caracter && (tot_arroba==1));
	}
}

/*	Esta função verifica a existência de números dentro de uma determinada string  */
function hasChars(strval){
  var retval = false;
  for (var i = 0; i < strval.length; i++){
     if (strval.substring(i,i+1) < "0" || strval.substring(i,i+1) > "9"){
        retval=true;
        break;
     }
  }
  return retval;
}
