// JavaScript Document
function tp_pessoa(val) {
	if(val == 1) {
		document.getElementById("cnpj").style.display = 'none';
		document.getElementById("cpf").style.display = '';
		document.getElementById("loctrab").style.display = '';
		document.getElementById("nomep").innerHTML = 'Nome:';
	} else {
		document.getElementById("cnpj").style.display = '';
		document.getElementById("cpf").style.display = 'none';
		document.getElementById("loctrab").style.display = 'none';
		document.getElementById("nomep").innerHTML = 'Nome da Empresa:';
	}
}

function valida_emails(email) {
	var chars = "@#$&[]()/\\\{}!^:'\"";
	var pat=/^(.+)@(.+)$/;
	
	var emaildiv = email.match(pat);
	
	if(emaildiv==null)
		return false;
		
	var login = emaildiv[1];
	var dominio = emaildiv[2];
	
	for(var i=0;i<chars.length;i++) {
		if(login.indexOf(chars.substr(i,1))!=-1)
			return false;
	}
	
	for(var i=0;i<chars.length;i++) {
		if(dominio.indexOf(chars.substr(i,1))!=-1)
			return false;
	}
	
	return true;
}

//Calculo do CNPJ 
function valida_cnpj(cnpj) {
	var erro = true; 
	var aux_cnpj = "";	
	var cnpj1=0,cnpj2=0;
	for(j=0;j<cnpj.length;j++)
		if(cnpj.substr(j,1)>="0" && cnpj.substr(j,1)<="9")
			aux_cnpj += cnpj.substr(j,1);
	if(aux_cnpj.length!=14)
		erro = false;
	else {
		cnpj1 = aux_cnpj.substr(0,12);
		cnpj2 = aux_cnpj.substr(aux_cnpj.length-2,2);
		fator = "543298765432";
		controle = "";
		for(j=0;j<2;j++) {
			soma = 0;
			for(i=0;i<12;i++) 
				soma += cnpj1.substr(i,1) * fator.substr(i,1);
			if(j==1) soma += digito * 2;
			digito = (soma * 10) % 11;
			if(digito==10) digito = 0;
			controle += digito;
			fator = "654329876543";
		} 
		if(controle!=cnpj2)
			erro = false;
	} 
	return erro;
}

function valida_cpf(cpf) {
	var cpf = new String(cpf);
    var aux_cpf = "";
	
	if(cpf.length!=11)
		return false;
		
    for(j=0;j<cpf.length;j++)
  		if(cpf.substr(j,1)>="0" && cpf.substr(j,1)<="9")
   			aux_cpf += cpf.substr(j,1);
	if(aux_cpf.length!=11)
		return false;
    else {
    	var cpf1 = String(aux_cpf);
    	var cpf2 = cpf.substr(cpf.length-2,2);
      	var controle = "";
      	var start = 2;
      	var end = 10;
      	for(var i=1;i<=2;i++) {
      		var soma = 0;
      		for(j=start;j<=end;j++)
      			soma += cpf1.substr((j-i-1),1)*(end+1+i-j);
        	if(i==2)
          		soma += digito * 2;
        	digito = (soma * 10) % 11;
        	if(digito==10)
          		digito = 0;
        	controle += digito;
        	start = 3;
        	end = 11;
      	}
      	if(controle!=cpf2)
        	return false;
    }
	
	return true;
}

function cleanCPF(cpf) {
	v=cpf.replace(/\D/g,"")                    //Remove tudo o que não é dígito
	v=v.replace(/(\d{3})(\d)/,"$1$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
	v=v.replace(/(\d{3})(\d)/,"$1$2")       //Coloca um ponto entre o terceiro e o quarto dígitos      //de novo (para o segundo bloco de números)
	v=v.replace(/(\d{3})(\d{1,2})$/,"$1$2") //Coloca um hífen entre o terceiro e o quarto dígitos
	return v;
}

function cleanCNPJ(v){
    v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1$2")             //Coloca ponto entre o segundo e o terceiro dígitos
    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1$2$3") //Coloca ponto entre o quinto e o sexto dígitos
    v=v.replace(/\.(\d{3})(\d)/,"$1$2")           //Coloca uma barra entre o oitavo e o nono dígitos
    v=v.replace(/(\d{4})(\d)/,"$1$2")              //Coloca um hífen depois do bloco de quatro dígitos
    return v
}


function valida()
{
	var erro=false;
	var mensagem="Você deve preencher antes: \n";
	if(document.formulario.cli_nome.value.length==0)
	{
		mensagem+="\n - Nome"; 
		erro=true;
	}
	if((!document.formulario.tipo[0].checked) && (!document.formulario.tipo[1].checked))
	{
		mensagem+="\n - Tipo"; 
		erro=true;
	} else {
		if(document.formulario.tipo[0].checked) {
			if(document.formulario.cli_cpf.value.length==0)
			{
				erro=true;
				mensagem+="\n - CPF"
			} else {
				var cpf = cleanCPF(document.formulario.cli_cpf.value);
				// CHAMA A FUNCAO QUE VALIDA CPF
				if(!valida_cpf(cpf))
				{
					mensagem+="\n - CPF informado é inválido";
					erro=true;
				}
			}
		} 
		else if(document.formulario.tipo[1].checked)
		{
			if(document.formulario.cli_cnpj.value.length==0)
			{
				erro=true;
				mensagem+="\n - CNPJ"
			} else {
				var cnpj = cleanCNPJ(document.formulario.cli_cnpj.value);
				
				if(!valida_cnpj(cnpj)) 
				{
					mensagem+="\n - CNPJ informado é Inválido"; 
					erro=true;
				}		
				
			}
		}
	}


	/*else
	{
		if(document.formulario.cli_senha.value != document.formulario.senha.value)
		{
			mensagem+="\n - As senhas não conferem";
			erro=true;
		}
	}*/
	if(document.formulario.cli_endereco.value.length==0)
	{
		mensagem+="\n - Endereço";
		erro=true;
	}
	if(document.formulario.cli_cidade.value.length==0)
	{
		mensagem+="\n - Cidade";
		erro=true;
	}
	if(document.formulario.uf_codigo.value.length==0)
	{
		mensagem+="\n - Estado";
		erro=true;
	}
	else 
	{
		if(document.formulario.uf_codigo.value == 28) {
			if(document.formulario.cli_uf_outros.value.length==0)
			{
				mensagem+="\n - UF outros";
				erro=true;
			}
		}
	}
	if(document.formulario.pai_codigo.value.length==0)
	{
		mensagem+="\n - País";
		erro=true;
	}
	if(document.formulario.cli_email.value.length==0)
	{
		mensagem+="\n - E-mail";
		erro=true;
	}
	else
	{
		if(!valida_emails(document.formulario.cli_email.value))
		{
			mensagem+="\n - Email informado é inválido"; 
			erro=true;
		}
	}
	if(document.formulario.cli_senha.value.length==0)
	{
		mensagem+="\n - Senha";
		erro=true;
	}
	if(document.formulario.cli_fone.value.length==0)
	{
		mensagem+="\n - Telefone";
		erro=true;
	}
	/*if(document.formulario.tar_codigo.value.length==0)
	{
		mensagem+="\n - Tarifa";
		erro=true;
	}*/

	if(erro) alert(mensagem);
	return !(erro);
}

