// Código para o popup do SIOF

function abrir(){
    //document.getElementById("webmail").submit();
    document.getElementById('popup_principal').className='popshow';
    //document.getElementById("webmail").reset();
}

function abrir1(nome, id){
    //alert(nome);
    document.getElementById('programa_editar').value = nome;
    document.getElementById('programa_editar_id').value = id;
    document.getElementById('popup_principal1').className='popshow1';
}

function submeter(){
    document.getElementById("programa").submit();
    document.getElementById('popup_principal').className='pop';
    //document.getElementById("webmail").reset();
}

function submeter1(){
    document.getElementById("programa1").submit();
    document.getElementById('popup_principal1').className='pop1';
    //document.getElementById("webmail").reset();
}

function submitenter(myfield,e){
    var keycode;
    if (window.event){
        keycode = window.event.keyCode;
    }else if (e) {
        keycode = e.which;
    }else{
        return true;
    }

    if (keycode == 13){
        myfield.form.submit();
        document.getElementById("programa").submit();
        document.getElementById('popup_principal').className='pop'
        //document.getElementById("webmail").reset();
        return false;
    }else{
        return true;
    }
}

function submitenter1(myfield,e){
    var keycode;
    if (window.event){
        keycode = window.event.keyCode;
    }else if (e) {
        keycode = e.which;
    }else{
        return true;
    }

    if (keycode == 13){
        myfield.form.submit();
        document.getElementById("programa1").submit();
        document.getElementById('popup_principal1').className='pop1'
        //document.getElementById("webmail").reset();
        return false;
    }else{
        return true;
    }
}

function listarConsulta(param1, param2, param3, param4, selectDest, param)
{

    programa = param1.value;
    acao = param2.value;
    fonte_recurso = param3.value;
    grupo_despesa = param4.value;
    
    //alert(programa);
    //origem = "../../sistema/siof/";

    necessitaResposta = true;
    tipoDadosResposta = "texto";
    modoResposta = ["innerHTML"];
    idDestinoResposta = selectDest;

    exibirCarregando = false;
    modoRespostaCarregando = "";
    idDestinoCarregando = "";
    conteudoCarregando = "";

    tratarErro = false;
    modoRespostaErro = "";
    idDestinoMensagemErro = "";
    conteudoMensagemErro = "";

    metodoRequisicao = "GET";
    urlRequisicao = "siof_visualiza_consulta.php?prog=" + programa + "&acao=" + acao + "&fonte=" + fonte_recurso + "&despesa=" + grupo_despesa + "&param=" + param;
    estadoAssincrono = true;
    dadosEnviar = null;

    retorneResposta2(
        
        necessitaResposta,
        tipoDadosResposta,
        modoResposta,
        idDestinoResposta,

        exibirCarregando,
        modoRespostaCarregando,
        idDestinoCarregando,
        conteudoCarregando,

        tratarErro,
        modoRespostaErro,
        idDestinoMensagemErro,
        conteudoMensagemErro,

        metodoRequisicao,
        urlRequisicao,
        estadoAssincrono,
        dadosEnviar);

}

function calculaOrcamento(obj1, obj2, obj3, selectDest)
{

    orcamento = obj1.value;
    suplemento = obj2.value;
    cancelamento = obj3.value;
    
    //alert(orcamento);
    //origem = "../../sistema/siof/";

    necessitaResposta = true;
    tipoDadosResposta = "texto";
    modoResposta = ["innerHTML"];
    idDestinoResposta = selectDest;

    exibirCarregando = false;
    modoRespostaCarregando = "";
    idDestinoCarregando = "";
    conteudoCarregando = "";

    tratarErro = false;
    modoRespostaErro = "";
    idDestinoMensagemErro = "";
    conteudoMensagemErro = "";

    metodoRequisicao = "GET";
    urlRequisicao = "../../interface/siof/siof_calculo_orcamento.php?orcamento=" + orcamento + "&suplemento=" + suplemento + "&cancelamento=" + cancelamento;
    estadoAssincrono = true;
    dadosEnviar = null;

    retorneResposta2(
        
        necessitaResposta,
        tipoDadosResposta,
        modoResposta,
        idDestinoResposta,

        exibirCarregando,
        modoRespostaCarregando,
        idDestinoCarregando,
        conteudoCarregando,

        tratarErro,
        modoRespostaErro,
        idDestinoMensagemErro,
        conteudoMensagemErro,

        metodoRequisicao,
        urlRequisicao,
        estadoAssincrono,
        dadosEnviar);

}

function calculaSaldoOrcamentario(obj1, obj2, obj3, obj4, selectDest)
{

    orcamento = obj1.value;
    suplemento = obj2.value;
    cancelamento = obj3.value;
    prog_financeira = obj4.value;
    
    //alert(orcamento);
    //origem = "../../sistema/siof/";

    necessitaResposta = true;
    tipoDadosResposta = "texto";
    modoResposta = ["innerHTML"];
    idDestinoResposta = selectDest;

    exibirCarregando = false;
    modoRespostaCarregando = "";
    idDestinoCarregando = "";
    conteudoCarregando = "";

    tratarErro = false;
    modoRespostaErro = "";
    idDestinoMensagemErro = "";
    conteudoMensagemErro = "";

    metodoRequisicao = "GET";
    urlRequisicao = "../../sistema/siof/calculo_saldo_orcamentario.php?orcamento=" + orcamento + "&suplemento=" + suplemento + "&cancelamento=" + cancelamento + "&progfinanceira=" + prog_financeira;
    estadoAssincrono = true;
    dadosEnviar = null;

    retorneResposta2(
        
        necessitaResposta,
        tipoDadosResposta,
        modoResposta,
        idDestinoResposta,

        exibirCarregando,
        modoRespostaCarregando,
        idDestinoCarregando,
        conteudoCarregando,

        tratarErro,
        modoRespostaErro,
        idDestinoMensagemErro,
        conteudoMensagemErro,

        metodoRequisicao,
        urlRequisicao,
        estadoAssincrono,
        dadosEnviar);

}

function calculaExecucaoOrcamentaria(obj1, obj2, obj3, obj4, selectDest)
{

    orcamento = obj1.value;
    suplemento = obj2.value;
    cancelamento = obj3.value;
    prog_financeira = obj4.value;
    
    //alert(orcamento);
    //origem = "../../sistema/siof/";

    necessitaResposta = true;
    tipoDadosResposta = "texto";
    modoResposta = ["innerHTML"];
    idDestinoResposta = selectDest;

    exibirCarregando = false;
    modoRespostaCarregando = "";
    idDestinoCarregando = "";
    conteudoCarregando = "";

    tratarErro = false;
    modoRespostaErro = "";
    idDestinoMensagemErro = "";
    conteudoMensagemErro = "";

    metodoRequisicao = "GET";
    urlRequisicao = "../../sistema/siof/calculo_execucao_orcamentaria.php?orcamento=" + orcamento + "&suplemento=" + suplemento + "&cancelamento=" + cancelamento + "&progfinanceira=" + prog_financeira;
    estadoAssincrono = true;
    dadosEnviar = null;

    retorneResposta2(
        
        necessitaResposta,
        tipoDadosResposta,
        modoResposta,
        idDestinoResposta,

        exibirCarregando,
        modoRespostaCarregando,
        idDestinoCarregando,
        conteudoCarregando,

        tratarErro,
        modoRespostaErro,
        idDestinoMensagemErro,
        conteudoMensagemErro,

        metodoRequisicao,
        urlRequisicao,
        estadoAssincrono,
        dadosEnviar);

}

function calculaCreditoDisponivel(obj1, obj2, selectDest)
{

    trans_financeira = obj1.value;
    empenho = obj2.value;
    
    //alert(orcamento);
    //origem = "../../sistema/siof/";

    necessitaResposta = true;
    tipoDadosResposta = "texto";
    modoResposta = ["innerHTML"];
    idDestinoResposta = selectDest;

    exibirCarregando = false;
    modoRespostaCarregando = "";
    idDestinoCarregando = "";
    conteudoCarregando = "";

    tratarErro = false;
    modoRespostaErro = "";
    idDestinoMensagemErro = "";
    conteudoMensagemErro = "";

    metodoRequisicao = "GET";
    urlRequisicao = "../../sistema/siof/calculo_credito_disponivel.php?transfinanceira=" + trans_financeira + "&empenho=" + empenho;
    estadoAssincrono = true;
    dadosEnviar = null;

    retorneResposta2(
        
        necessitaResposta,
        tipoDadosResposta,
        modoResposta,
        idDestinoResposta,

        exibirCarregando,
        modoRespostaCarregando,
        idDestinoCarregando,
        conteudoCarregando,

        tratarErro,
        modoRespostaErro,
        idDestinoMensagemErro,
        conteudoMensagemErro,

        metodoRequisicao,
        urlRequisicao,
        estadoAssincrono,
        dadosEnviar);

}

function calculaExecucaoFinanceira(obj1, obj2, selectDest)
{

    empenho = obj1.value;
    liquidados = obj2.value;
    
    //alert(orcamento);
    //origem = "../../sistema/siof/";

    necessitaResposta = true;
    tipoDadosResposta = "texto";
    modoResposta = ["innerHTML"];
    idDestinoResposta = selectDest;

    exibirCarregando = false;
    modoRespostaCarregando = "";
    idDestinoCarregando = "";
    conteudoCarregando = "";

    tratarErro = false;
    modoRespostaErro = "";
    idDestinoMensagemErro = "";
    conteudoMensagemErro = "";

    metodoRequisicao = "GET";
    urlRequisicao = "../../sistema/siof/calculo_execucao_financeira.php?empenho=" + empenho + "&liquidados=" + liquidados;
    estadoAssincrono = true;
    dadosEnviar = null;

    retorneResposta2(
        
        necessitaResposta,
        tipoDadosResposta,
        modoResposta,
        idDestinoResposta,

        exibirCarregando,
        modoRespostaCarregando,
        idDestinoCarregando,
        conteudoCarregando,

        tratarErro,
        modoRespostaErro,
        idDestinoMensagemErro,
        conteudoMensagemErro,

        metodoRequisicao,
        urlRequisicao,
        estadoAssincrono,
        dadosEnviar);

}

function carregaAcoes(obj1, selectDest, campoDest)
{

    programa = obj1.value;
    
    //alert(orcamento);
    //origem = "../../sistema/siof/";

    necessitaResposta = true;
    tipoDadosResposta = "texto";
    modoResposta = ["innerHTML"];
    idDestinoResposta = selectDest;

    exibirCarregando = false;
    modoRespostaCarregando = "";
    idDestinoCarregando = "";
    conteudoCarregando = "";

    tratarErro = false;
    modoRespostaErro = "";
    idDestinoMensagemErro = "";
    conteudoMensagemErro = "";

    metodoRequisicao = "GET";
    urlRequisicao = "lista_acoes.php?programa=" + programa + "&campodest=" + campoDest;
    estadoAssincrono = true;
    dadosEnviar = null;

    retorneResposta2(
        
        necessitaResposta,
        tipoDadosResposta,
        modoResposta,
        idDestinoResposta,

        exibirCarregando,
        modoRespostaCarregando,
        idDestinoCarregando,
        conteudoCarregando,

        tratarErro,
        modoRespostaErro,
        idDestinoMensagemErro,
        conteudoMensagemErro,

        metodoRequisicao,
        urlRequisicao,
        estadoAssincrono,
        dadosEnviar);

}

function carregaDespesas(obj1, selectDest, campoDest)
{

    fonte = obj1.value;
    
    //alert(orcamento);
    //origem = "../../sistema/siof/";

    necessitaResposta = true;
    tipoDadosResposta = "texto";
    modoResposta = ["innerHTML"];
    idDestinoResposta = selectDest;

    exibirCarregando = false;
    modoRespostaCarregando = "";
    idDestinoCarregando = "";
    conteudoCarregando = "";

    tratarErro = false;
    modoRespostaErro = "";
    idDestinoMensagemErro = "";
    conteudoMensagemErro = "";

    metodoRequisicao = "GET";
    urlRequisicao = "lista_despesas.php?fonte=" + fonte + "&campodest=" + campoDest;
    estadoAssincrono = true;
    dadosEnviar = null;

    retorneResposta2(
        
        necessitaResposta,
        tipoDadosResposta,
        modoResposta,
        idDestinoResposta,

        exibirCarregando,
        modoRespostaCarregando,
        idDestinoCarregando,
        conteudoCarregando,

        tratarErro,
        modoRespostaErro,
        idDestinoMensagemErro,
        conteudoMensagemErro,

        metodoRequisicao,
        urlRequisicao,
        estadoAssincrono,
        dadosEnviar);

}

function validarQuantidadeSIOF(e) {

    //alert("Entrou!");

    teclaPressionada = -1;

    try {
        var teclaPressionada = e.which;
        //alert("Entrou Gecko!");
        //alert("teclaPressionada: " + teclaPressionada);
    } catch(er) {
    }

    try {
        var teclaPressionada = event.keyCode;
        //alert("Entrou IE!");
    } catch(er) {
    }

    processar = false;

    if ((teclaPressionada != 8) &&
        (teclaPressionada != 16) &&
        (teclaPressionada != 17) &&
        (teclaPressionada != 18) &&
        (teclaPressionada != 20) &&
        (teclaPressionada != 33) &&
        (teclaPressionada != 34) &&
        (teclaPressionada != 35) &&
        (teclaPressionada != 36) &&
        (teclaPressionada != 37) &&
        (teclaPressionada != 38) &&
        (teclaPressionada != 39) &&
        (teclaPressionada != 40) &&
        (teclaPressionada != 45) &&
        (teclaPressionada != 46)){
        processar = true;
    }

    if (processar) {

        avancarCursor = false;

        valorOriginal = this.value;

        //alert("valorOriginal: " + valorOriginal);

        tamanhoValorOriginal = valorOriginal.length;

        //alert("tamanhoValorOriginal: " + tamanhoValorOriginal);

        posicaoCaracter = -1;

        caracteresValor = valorOriginal.split("");

        novosCaracteresValor = Array();

        ind = 0;

        naoExisteVirgula = true;

        for (i = 0; i < tamanhoValorOriginal; i++) {
            if (isNaN(caracteresValor[i])) {
                if (naoExisteVirgula) {
                    if (caracteresValor[i] == ",") {
                        naoExisteVirgula = false;
                        novosCaracteresValor[ind] = caracteresValor[i];
                        ind++;
                    } else {
                        posicaoCaracter = ind;
                    }
                }
            } else {
                novosCaracteresValor[ind] = caracteresValor[i];
                ind++;
            }
        }

        novoValor = novosCaracteresValor.join("");

        //alert("novoValor antes: " + novoValor);

        novoTamanhoValor = novoValor.length;

        posicaoVirgula = novoValor.indexOf(",");

        if (posicaoVirgula == -1) {

            if (novoTamanhoValor > 6) {

                avancarCursor = true;

                primeiraParte = novoValor.substring(0, 9);
                segundaParte = novoValor.substring(9, novoTamanhoValor);
                novoValor = primeiraParte + "," + segundaParte;
            }
        }

        //alert("novoValor depois: " + novoValor);

        novoTamanhoValor = novoValor.length;

        posicaoVirgula = novoValor.indexOf(",");

        if (posicaoVirgula == 0) {

            avancarCursor = true;

            novoValor = "0" + novoValor;
        }

        //alert("novoValor depois: " + novoValor);

        novoTamanhoValor = novoValor.length;

        posicaoVirgula = novoValor.indexOf(",");

        if (posicaoVirgula > 0) {

            primeiraParte = novoValor.substring(0, posicaoVirgula);

            //alert("primeiraParte: " + primeiraParte);

            segundaParte = novoValor.substring(posicaoVirgula + 1, novoTamanhoValor);

            //alert("segundaParte: " + segundaParte);

            caracteresSobra = "";

            qtdPrimeiraParte = primeiraParte.length;

            //alert("qtdPrimeiraParte: " + qtdPrimeiraParte);

            if (qtdPrimeiraParte > 9) {

                avancarCursor = true;

                caracteresSobra = primeiraParte.substring(9, qtdPrimeiraParte);
                //alert("caracteresSobra: " + caracteresSobra);
                primeiraParte = primeiraParte.substring(0, 9);
            }

            //alert("primeiraParte: " + primeiraParte);

            segundaParte = caracteresSobra + segundaParte;

            //alert("segundaParte: " + segundaParte);

            qtdSegundaParte = segundaParte.length;

            //alert("qtdSegundaParte: " + qtdSegundaParte);

            if (qtdSegundaParte > 2) {

                avancarCursor = true;

                segundaParte = segundaParte.substring(0, 2);
            }

            novoValor = primeiraParte + "," + segundaParte;

            //alert("novoValor: " + novoValor);

        }

        //alert("novoValor final: " + novoValor);

        this.value = novoValor;


        var trSelection;

        if (isIE) {
            trSelection = this.createTextRange();
        } else {
            trSelection = document.selection.createRange();
        }

        if (posicaoCaracter == -1) {
            posicaoCaracter = getSelectionStart(this);
        }

        if (avancarCursor) {
            posicaoCaracter++;
        }

        trSelection.collapse(true);
        trSelection.moveStart("character", posicaoCaracter);
        trSelection.select();

        valorAntigo = novoValor;
    }
}

function excluirPrograma(url) { 
    if(confirm("Deseja realmente excluir este registro?")){
        window.location = url;
    }
}

function mudarAction(form, action) {
    document.getElementById(form).action = action;
}

function gerar_impressao(){
  var acao = document.getElementById("imprimir").value;
  document.form1.target = "blank";
  mudarAction("form1", acao);
  document.form1.submit();
}

function limparSiof()
{
    document.getElementById('orcamento').value='0,00';
    document.getElementById('suplemento').value='0,00';
    document.getElementById('cancelamento').value='0,00';
    document.getElementById('total_orcamento').innerHTML = '';
    document.getElementById('prog_financeira').value='0,00';
    document.getElementById('saldo_orcamentario').innerHTML = '';
    document.getElementById('execucao_orcamentaria').innerHTML = '';
    document.getElementById('trans_financeira').value='0,00';
    document.getElementById('empenho').value='0,00';
    document.getElementById('liquidacao').value='0,00';
    document.getElementById('credito_disponivel').innerHTML = '';
    document.getElementById('execucao_financeira').innerHTML = '';
}

