/*
 * Arquivo java script que contém funcionalidades específicas de
 * de processamento de eventos em um input
 *
 * O processamento consistem em:
 * - Caso o evento seja o pressionamento da tecla enter, então
 * o sistema clicar no botão definido pela view caso a mesma
 * tenha definido-o. Caso a view não tenha definido um botão 
 * para clicar pelo evento, então simplementes a função retorna.
 * - Caso o evento não seja um enter, então a função processará
 * a formatação equivalente o evento, por ex:
 * Para evento de entrada de um número, a função chamada uma
 * função específica de formatação de números.
 *
 * NOTAS:
 * Os js abaixo são necessários caso seja utilizado a função
 * correspondente, ou seja, caso a view tenha inputs númericos apenas
 * então somente será necessário o js formatador.js.
 * Caso uma view possua mais de um botão e conforme o campo, será
 * o botão clicado, então, basta configurar o botão
 * a ser clicado correspondente ao input do evento antes
 * de chamar a função processadora. Por exemplo:
 * Exemplo1: View com vários botões
 * Configurando o botão correspondente ao input e logo
 * em seguinda, chamando a função de processamento.
 *  onkeypress="setCurrentBotaoToClick('frConsultaCertidaoByNumeroWeb:acaoConsultarPedido');
                                           return processarCampoNumerico(event);"
    Exemplo2: View com um botão somenbte
 * Configurando o botão da view.
 * Esta chamada deve ocorrer na própria view logo após a declaração
 * do js processadorEventos.js
 *  setCurrentBotaoToClick('frConsultaCertidaoByNumeroWeb:acaoConsultarPedido');

 *
 * Para definir um botão para função de processamento clicar, basta
 * a view chamar a função setCurrentBotaoToClick deste js passando o id do botão.
 * Isto configura o botão corrente para clicar.
 * O botão será considerado o botão corrente até que a view configure um
 * novo botão.
 *
 * ****************************************************************************
 * JS NECESSÁRIOS
 * ****************************************************************************
 * - formatador.js
 * - formatadorCNPF.js
 * - formatadorCPF.js
 * - formatadorCPFCNPJ.js
 * - formatadorData.js
 ******************************************************************************
 *
 * @autor Rodrigo Lopes
 * @data 11/02/2010
 * @versão 1.0
 *
  */

 /* Botao a ser clicado caso o evento seja o botão enter.*/
 var idBotaoClick = "NAO_DEFINIDO";

 function processarCampo(e) {
    if (isEnter(getKeyCode(e))) {
        processarEnter();
    }
 }

 function processarCampoAlfanumerico(e) {
    if (isEnter(getKeyCode(e))) {
        processarEnter();
        return true;
    }
    return formatarCampoAlfanumerico(e);
}

function processarCampoNumerico(e) {
     if (isEnter(getKeyCode(e))) {
         processarEnter();
         return true;
    }
    return formatarCampoNumerico(e);
}

function processarCampoAlfa(e) {
     if (isEnter(getKeyCode(e))) {
         processarEnter();
         return true;
    }
    return formatarCampoAlfa(e);
}

function processarCampoCep(campo, e) {
     if (isEnter(getKeyCode(e))) {
         processarEnter();
         return true;
    }
    return formatarCampoCep(campo, e);
}

function processarCampoTelefone(campo, e) {
     if (isEnter(getKeyCode(e))) {
         processarEnter();
         return true;
    }
    return formatarCampoTelefone(campo, e);
}

function processarCampoCnpj(campo, e) {
     if (isEnter(getKeyCode(e))) {
         processarEnter();
         return true;
    }
    return formatarCampoCnpj(campo, e);
}

function processarCampoCpf(campo, e) {
     if (isEnter(getKeyCode(e))) {
        processarEnter();
        return false;
    }
    return formatarCampoCpf(campo, e);
}

function processarCampoCpfCnpj(campo, e) {
     if (isEnter(getKeyCode(e))) {
        processarEnter();
        return false;
    }
    return formatarCampoCpfCnpj(campo, e);
}

function processarCampoData(campo, e) {
     if (isEnter(getKeyCode(e))) {
        processarEnter();
        return false;
    }
    return formatarCampoData(campo, e);
}

function processarEnter() {
     if (idBotaoClick != "NAO_DEFINIDO") {
        recuperarComponente(idBotaoClick).click();
     }
}

function setCurrentBotaoToClick(idBotao) {
    idBotaoClick = idBotao;
}

function processarCampoAlfanumericoEmail(e) {
    if (isEnter(getKeyCode(e))) {
        processarEnter();
        return true;
    }
    return formatarCampoAlfanumericoEmail(e);
}

function processarCampoAlfanumericoNotSpace(e) {
    if (isEnter(getKeyCode(e))) {
        processarEnter();
        return true;
    }
    return formatarCampoAlfanumericoNotSpace(e);
}
