function cpfValido(campo) {

    if ( campo.value.length != 0 || campo.value != '' || campo.value != null ) {
        if (!Verify(campo.value, 'CPF')) {
            alert('CPF inválido');
            campo.value="";
            if(campo.value.length != 0) {campo.focus()};
            return false;
        } else {
        	return true;
        }
    }
    return false;
}

function verificar_cpf(campo) {
	if( cpfValido(campo) ) {
		return verificaCpfInscrito(campo);
	} else {
		return false;
	}
}

function changeCamposFormulario(retorno) {

	eval("retorno ="+retorno);

	if(retorno == null ) {

		alert("Inscrição não encontrada.");
		acaoPosVerificacaoChave.campo.value="";
		return false;

	} else if( retorno == false ) {

		alert("Você não tem mais opções de compras.");
		acaoPosVerificacaoChave.campo.value="";
		return false;

	} else {

		var select = document.getElementById("categoria");
			
		var tamSelect = select.length;
		
		for( var i=0; i< tamSelect ; i++ ) {
			select.remove(0);
		}

		var op		 = document.createElement("option");
			op.value = retorno.value;
			op.text	 = retorno.text;
		
		select.add(op);
		
		mostra_subcategoria();
		
		var i = acaoPosVerificacaoChave.inscricao;
		var c = i.congressista;

		setNome = function(campo,valor) {

			if(document.getElementById(campo) != null) {
				document.getElementById(campo).value = valor;
			}
		}

		setNome('nome'				,c.nome);
		setNome('nome_cracha'		,c.nomeCracha);
		setNome('identidade'		,c.identidade);
		setNome('cnpj'				,c.cnpjEmpresa);
		setNome('empresa'			,c.empresa);
		setNome('crm'				,c.crm);

		var dataNascimento = "";
		
		if( c.dataNascimento != "" ) {

			var arrayDataNascimento =	c.dataNascimento.split("-");
				dataNascimento 		= 	arrayDataNascimento[2] + "/" +
										arrayDataNascimento[1] + "/" +
										arrayDataNascimento[0];
		} else {
			dataNascimento="";
		}
		
		setNome('data_nascimento'	,dataNascimento);
		setNome('cargo'				,c.cargo);
		setNome('especialidade'		,c.especialidade);
		setNome('endereco'			,c.endereco);
		setNome('bairro'			,c.bairro);
		setNome('cidade'			,c.cidade);
		setNome('estado'			,c.estado);
		setNome('pais'				,c.pais.toLowerCase());
		setNome('cep'				,c.cep);
		setNome('cod_telefone'		,c.codTelefone);
		setNome('telefone'			,c.telefone);
		setNome('cod_fax'			,c.codFax);
		setNome('fax'				,c.fax);
		setNome('email'				,c.email);
	}
}

var acaoPosVerificacaoChave = {

	retorno : function(response) {

		eval("response = "+response);

		if(response == false) {
			return true;
		} else {
			
			var nomeCampo = acaoPosVerificacaoChave.nomeCampo == "cpf" ? "CPF" : "Nº de Passaporte";
			
			acaoPosVerificacaoChave.inscricao = response;
			
			if( !confirm( nomeCampo + " já cadastrado!\n\nDeseja fazer uma nova compra?" ) ) {
				acaoPosVerificacaoChave.campo.value="";
				return false;
			} else {
				
				AjaxLoader(	"selecionaOpcaoCongresso2NovaInscricao-ajax.php"+
							"?campo="+acaoPosVerificacaoChave.nomeCampo,
							changeCamposFormulario,
							acaoPosVerificacaoChave.campo.value);
			}
		}
	},
	
	inscricao : null,

	nomeCampo : "",
	
	campo : null
}

function verificaNPassaporteInscrito(campo) {
	
	if( campo.value!="" ) {

		acaoPosVerificacaoChave.campo = campo;
		acaoPosVerificacaoChave.nomeCampo = "passaporte";
	
		AjaxLoader(	"verificaNPassaporteInscrito-ajax.php",
					acaoPosVerificacaoChave.retorno,
					campo.value);
	}
}

function verificaCpfInscrito(campo) {

	acaoPosVerificacaoChave.campo		= campo;
	acaoPosVerificacaoChave.nomeCampo	= "cpf";

	AjaxLoader(	"verificaCpfInscrito-ajax.php",
				acaoPosVerificacaoChave.retorno,
				campo.value);
}

function ClearStr(str, charr)
{
  while((cx=str.indexOf(charr))!=-1)
  {
    str = str.substring(0,cx)+str.substring(cx+1);
  }
  return(str);
}

function ParseNumb(c)
{
  c=ClearStr(c,'-');
  c=ClearStr(c,'/');
  c=ClearStr(c,',');
  c=ClearStr(c,'.');
  c=ClearStr(c,'(');
  c=ClearStr(c,')');
  c=ClearStr(c,' ');
  if((parseFloat(c) / c != 1))
  {
    if(parseFloat(c) * c == 0)
    {
      return(c);
    }
    else
    {
      return(0);
    }
  }
  else
  {
    return(c);
  }
}

function Verify(CNUMB,CTYPE)
{
  CNUMB=ParseNumb(CNUMB)
  if(CNUMB == 0)
  {
    return(false);
  }
  else
  {
    g=CNUMB.length-2;
    if(TestDigit(CNUMB,CTYPE,g))
    {
      g=CNUMB.length-1;
      if(TestDigit(CNUMB,CTYPE,g))
      {
        return(true);
      }
      else
      {
        return(false);
      }
    }
    else
    {
      return(false);
    }
  }
}

function TestDigit(CNUMB,CTYPE,g)
{
  var dig=0;
  var ind=2;
  for(f=g;f>0;f--)
  {
    dig+=parseInt(CNUMB.charAt(f-1))*ind;
    ind++;
  }
  dig%=11;
  if(dig<2)
  {
    dig=0;
  }
  else
  {
    dig=11-dig;
  }
  if(dig!=parseInt(CNUMB.charAt(g)))
  {
    return(false);
  }
  else
  {
    return(true);
  }
}
