/* Criacao de Rules*/
/* Vefifica c e numero				*/ function Rules_Numero(c) { return (((c >=-99999999*9999999) && (c <=99999999*9999999)) || (c.indexOf(",")>=0)) }
/* Vefifica { } ( ) < > [ ] | \ /  	*/ function Rules_Esp1(c) { return ((c.indexOf("{")>=0) || (c.indexOf("}")>=0) || (c.indexOf("(")>=0) || (c.indexOf(")")>=0) || (c.indexOf("<")>=0) || (c.indexOf(">")>=0) || (c.indexOf("[")>=0) || (c.indexOf("]")>=0) || (c.indexOf("|")>=0) || (c.indexOf("/")>=0)) }
/* Vefifica & * $ % ? ! ^ ~ ` ' "  	*/ function Rules_Esp2(c) { return ((c.indexOf("&")>=0) || (c.indexOf("*")>=0) || (c.indexOf("$")>=0) || (c.indexOf("%")>=0) || (c.indexOf("?")>=0) || (c.indexOf("!")>=0) || (c.indexOf("^")>=0) || (c.indexOf("~")>=0) || (c.indexOf("`")>=0) || (c.indexOf("\"")>=0) || (c.indexOf("`")>=0) || (c.indexOf("'")>=0)) }
/* Vefifica , ; : = #  				*/ function Rules_Esp3(c) { return ((c.indexOf(",")>=0) || (c.indexOf(";")>=0) || (c.indexOf(":")>=0) || (c.indexOf("=")>=0) || (c.indexOf("#")>=0)) }
/* Vefifica @ .  					*/ function Rules_Email(c) { return ((c.indexOf("@")>=0) && (c.indexOf(".")>=0)); }
/* Verifica se o valor e Nulo       */ function Rules_Vazio(c) { return ((c == null) || (c.length == 0)); }
/* Verifica se o valor e Nulo       */ function Rules_Pequeno(c) { return ((c.length < 6)); }



/* Criacao de Validadores */
/* Verifica se os campos foram preenchidos */

/* DADOS PESSOAIS **************/
/* Verifica Nome */
function validanome() {
	if (Rules_Vazio(document.formcadastro.nome.value)) {
		alert("Por favor, preencha o campo Nome.");
		document.formcadastro.nome.focus();
		document.formcadastro.nome.select();
		return false
	} else if (Rules_Numero(document.formcadastro.nome.value)){
		alert("Por favor, não utilize números");
		document.formcadastro.nome.focus();
		document.formcadastro.nome.select();
		return false
	} else if (Rules_Esp1(document.formcadastro.nome.value) || Rules_Esp2(document.formcadastro.nome.value) || Rules_Esp3(document.formcadastro.nome.value)){
		alert("Por favor, não utilize caracteres especiais");
		document.formcadastro.nome.focus();
		document.formcadastro.nome.select();
		return false
	} else {
		return true
	}
}

/* Verifica Sobrenome */
function validasobrenome() {
	if (Rules_Vazio(document.formcadastro.sobrenome.value)) {
		alert("Por favor, preencha o campo Sobrenome.");
		document.formcadastro.sobrenome.focus();
		document.formcadastro.sobrenome.select();
		return false
	} else if (Rules_Numero(document.formcadastro.sobrenome.value)){
		alert("Por favor, não utilize números");
		document.formcadastro.sobrenome.focus();
		document.formcadastro.sobrenome.select();
		return false
	} else if (Rules_Esp1(document.formcadastro.sobrenome.value) || Rules_Esp2(document.formcadastro.sobrenome.value) || Rules_Esp3(document.formcadastro.sobrenome.value)){
		alert("Por favor, não utilize caracteres especiais");
		document.formcadastro.sobrenome.focus();
		document.formcadastro.sobrenome.select();
		return false
	} else {
		return true
	}
}

/* Valida Sexo */
function validasexo() {
	if (document.formcadastro.sexo.options[0].selected) {
		alert('Por favor, selecione seu Sexo');
		document.formcadastro.sexo.focus();
		return false
	}
	return true;
}

/* Valida CPF */
	function validacpf(cpf) {
	
		var dac = "", inicio = 2, fim = 10, soma, digito, i, j;
		for (j=1;j<=2;j++) {
			soma = 0;
			for (i=inicio;i<=fim;i++) {
				soma += parseInt(cpf.value.substring(i-j-1,i-j))*(fim+1+j-i);
	  	}
			if (j == 2) { soma += 2*digito }
			digito = (10*soma) % 11;
			if (digito == 10) { digito = 0 }
			dac += digito; inicio = 3; fim = 11;
		}
		
		if (dac == cpf.value.substring(cpf.value.length-2,cpf.value.length)) {
			return true;
		} 
		
		else {
			if (cpf.length == 0) {	alert('Por favor, preencha o campo "CPF"');	}
			else { alert('Por favor, insira um CPF válido'); }
			cpf.focus(), cpf.select();
			return false;
		}
	
	}

/* Valida Data de Nascimento */
function validadia() {
	if (document.formcadastro.dia.options[0].selected) {
		alert('Por favor, selecione o dia de seu nascimento.');
		document.formcadastro.dia.focus();
		return false
	}
	return true;
}

function validames() {
	if (document.formcadastro.mes.options[0].selected) {
		alert('Por favor, selecione o mês de seu nascimento.');
		document.formcadastro.mes.focus();
		return false
	}
	return true;
}

function validaano() {
	if (document.formcadastro.ano.options[0].selected) {
		alert('Por favor, selecione o ano de seu nascimento.');
		document.formcadastro.ano.focus();
		return false
	}
	return true;
}

function validadatanasc() {
	if ((document.formcadastro.dia.options[30].selected) && (document.formcadastro.mes.options[02].selected)){
		alert('Por favor, selecione uma data válida.');
		document.formcadastro.dia.focus();
		return false
	} else if ((document.formcadastro.dia.options[31].selected) && (document.formcadastro.mes.options[02].selected)){
		alert('Por favor, selecione uma data válida.');
		document.formcadastro.dia.focus();
		return false
	} else {
		return true
	}
}

/* Verifica Endereço */
function validaendereco() {
	if (Rules_Vazio(document.formcadastro.endereco.value)) {
		alert("Por favor, preencha o campo Endereco.");
		document.formcadastro.endereco.focus();
		document.formcadastro.endereco.select();
		return false
	} else if (Rules_Esp1(document.formcadastro.endereco.value) || Rules_Esp2(document.formcadastro.endereco.value) || Rules_Esp3(document.formcadastro.endereco.value)){
		alert("Por favor, não utilize caracteres especiais");
		document.formcadastro.endereco.focus();
		document.formcadastro.endereco.select();
		return false
	} else {
		return true
	}
}


/* Valida Numero */
function validanumero() {
	if (Rules_Vazio(document.formcadastro.numero.value)) {
		alert('Por favor, preencha o campo "Numero"');
		document.formcadastro.numero.focus();
		document.formcadastro.numero.select(); 
		return false
	} else if (Rules_Esp1(document.formcadastro.numero.value) || Rules_Esp2(document.formcadastro.numero.value) || Rules_Esp3(document.formcadastro.numero.value)){
		alert("Por favor, não utilize caracteres especiais");
		document.formcadastro.numero.focus();
		document.formcadastro.numero.select();
		return false
	} else {
		return true
	}
}

/* Valida CEP */

function validacep1() {
	if (Rules_Vazio(document.formcadastro.cep1.value)) {
		alert('Por favor, preencha o campo "CEP"');
		document.formcadastro.cep1.focus();
		document.formcadastro.cep1.select(); 
		return false
	} else if (Rules_Esp1(document.formcadastro.cep1.value) || Rules_Esp2(document.formcadastro.cep1.value) || Rules_Esp3(document.formcadastro.cep1.value)){
		alert("Por favor, não utilize caracteres especiais");
		document.formcadastro.cep1.focus();
		document.formcadastro.cep1.select();
		return false
	} else if ((document.formcadastro.cep1.value.length < 5) || (!Rules_Numero(document.formcadastro.cep1.value))) {
		alert('Por favor, preencha corretamente o campo CEP - Use somente números.');
		document.formcadastro.cep1.focus();
		document.formcadastro.cep1.select();
		return false
	} else if (Rules_Vazio(document.formcadastro.cep2.value)) {
		alert('Por favor, preencha o campo "CEP"');
		document.formcadastro.cep2.focus();
		document.formcadastro.cep2.select(); 
		return false
	} else if (Rules_Esp1(document.formcadastro.cep2.value) || Rules_Esp2(document.formcadastro.cep2.value) || Rules_Esp3(document.formcadastro.cep2.value)){
		alert("Por favor, não utilize caracteres especiais");
		document.formcadastro.cep2.focus();
		document.formcadastro.cep2.select();
		return false
	} else if ((document.formcadastro.cep2.value.length < 3) || (!Rules_Numero(document.formcadastro.cep2.value))) {
		alert('Por favor, preencha corretamente o campo CEP - Use somente números.');
		document.formcadastro.cep2.focus();
		document.formcadastro.cep2.select();
		return false		
	} else {
		return true
	}
}

/* Valida Cidade */

function validacidade() {
	if (Rules_Vazio(document.formcadastro.cidade.value) || Rules_Esp1(document.formcadastro.cidade.value) || Rules_Esp3(document.formcadastro.cidade.value)) {
		alert("Preencha o campo Cidade.");
		document.formcadastro.cidade.focus();
		document.formcadastro.cidade.select();
		return false
	} else {
		return true
	}
}

/* Valida Estado */
function validaestado() {
	if (document.formcadastro.estado.options[0].selected) {
		alert('Por favor, selecione um Estado');
		document.formcadastro.estado.focus();
		return false
	}
	return true;
}


/* LOGIN **************/
/* Valida Apelido */
function validaapelido() {
	if (Rules_Vazio(document.formcadastro.apelido.value)) {
		alert("Por favor, Preencha o campo Usuário.");
		document.formcadastro.apelido.focus();
		document.formcadastro.apelido.select();
		return false	
	} else if (Rules_Esp1(document.formcadastro.apelido.value) || Rules_Esp2(document.formcadastro.apelido.value) || Rules_Esp3(document.formcadastro.apelido.value)){
		alert("Por favor, não utilize caracteres especiais");
		document.formcadastro.apelido.focus();
		document.formcadastro.apelido.select();
		return false
	} else if ((document.formcadastro.apelido.value.length) <= 3) {
		alert("Por favor, seu apelido deve conter pelo menos 4 caracteres.");
		document.formcadastro.apelido.focus();
		document.formcadastro.apelido.select();
	} else {
		return true
	}
}

/* Valida Senha */
function validasenha() {
	if (Rules_Vazio(document.formcadastro.senha.value)) {
		alert("Por favor, Preencha o campo Senha.");
		document.formcadastro.senha.focus();
		document.formcadastro.senha.select();
		return false
	} else if (Rules_Esp1(document.formcadastro.senha.value) || Rules_Esp2(document.formcadastro.senha.value) || Rules_Esp3(document.formcadastro.senha.value)){
		alert("Por favor, não utilize caracteres especiais");
		document.formcadastro.senha.focus();
		document.formcadastro.senha.select();
		return false
	} else if ((document.formcadastro.senha.value.length) <= 3) {
		alert("Por favor, seu senha deve conter pelo menos 4 caracteres.");
		document.formcadastro.senha.focus();
		document.formcadastro.senha.select();		
	} else {
		return true
	}
}

/* Valida Confirmação de Senha */
function validaconfirmasenha() {
	if (Rules_Vazio(document.formcadastro.confirmasenha.value)) {
		alert("Por favor, Preencha o campo Confirmação.");
		document.formcadastro.confirmasenha.focus();
		document.formcadastro.confirmasenha.select();
		return false
	} else if ((document.formcadastro.senha.value) != (document.formcadastro.confirmasenha.value)) {
		alert("Por favor, digite a mesma senha neste campo.");
		document.formcadastro.confirmasenha.focus();
		document.formcadastro.confirmasenha.select();
		return false
	} else {
		return true
	}
}

/* Valida Email */
function validaemail() 
{
	if (!Rules_Vazio(document.formcadastro.email.value)) 
		{
			if (Rules_Esp1(document.formcadastro.email.value) || Rules_Esp2(document.formcadastro.email.value) || Rules_Esp3(document.formcadastro.email.value)) 
				{
					document.formcadastro.email.focus(), document.formcadastro.email.select();
					alert('Por favor, preencha corretamente o campo Email');
					return false;
				}
				
			if (!Rules_Email(document.formcadastro.email.value))
				{
					document.formcadastro.email.focus(), document.formcadastro.email.select();
					alert('Por favor, preencha corretamente o campo Email');
					return false;	
				}
 		}
	else
		{	
 			alert('Por favor, preencha o campo Email');
 			document.formcadastro.email.focus(), document.formcadastro.email.select();
 			return false;
		}
	return true;
}

/* Valida Termo de Adesão */
function validatermodeadesao() {
	if (document.formcadastro.termodeadesao.checked == false ) {
		alert("Por favor, você deve ler e concordar com o Termo de Adesão.");
		return false
	} else {
		return true
	}
}


function validador() {
	if (
	validanome(document.formcadastro.nome.value)
	&& validasobrenome()
	&& validasexo()
//	&& validacpf(document.formcadastro.cpf)
	&& validadia()
	&& validames()
	&& validaano()
	&& validadatanasc()
	&& validaendereco()
	&& validanumero()
	&& validacep1()
	&& validacidade(document.formcadastro.cidade.value)
	&& validaestado()
	&& validaapelido()
	&& validasenha(document.formcadastro.senha.value)
	&& validaconfirmasenha(document.formcadastro.confirmasenha.value)
	&& validaemail(document.formcadastro.email.value)
	&& validatermodeadesao()
	) {
		//alert('FORM OK');
		document.formcadastro.submit();
	}
}


//FORM DE CADASTRO
function fncEnvia(){ 
  if ((window.document.frmCadastro.txtNome.value == "") || (window.document.frmCadastro.txtEmail.value == "")) 
  { 
    alert ("Você deve preencher todos os campos!"); 
  }
  else 
  { 
    var field = frmCadastro.txtEmail; // email field
    var str = field.value; // email string
    var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
    var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
    if (!reg1.test(str) && reg2.test(str)) 
    {//Se for um email valido
      document.frmCadastro.action = "default.asp";
      var method = document.frmCadastro.method = "POST";
      document.frmCadastro.submit();
      return true;
    }
    alert("\"" + str + "\" é um e-mail inválido!"); //Mensagem de email invalido
    field.focus();
    field.select();
  } 
}
