function verificaEventosBotao(evento){
    /*Chama Evento OnClick do Salvar*/
    if(evento.altKey && evento.keyCode == 83 && !statusBotao('btnSalvar'))
        getComponente('btnSalvar').onclick();
    /*Chama Evento OnClick do Novo*/
    if(evento.altKey && evento.keyCode == 78 && !statusBotao('btnNovo'))
        getComponente('btnNovo').onclick();
    /*Chama Evento OnClick do Visualizar*/
    if(evento.altKey && evento.keyCode == 86 && !statusBotao('btnAtualizar'))
        getComponente('btnVisualizar').onclick();
    /*Chama Evento OnClick do Desfazer*/
    if(evento.altKey && evento.keyCode == 68 && !statusBotao('btnDesfazer'))
        getComponente('btnDesfazer').onclick();
    /*Chama Evento OnClick do Excluir*/
    if(evento.altKey && evento.keyCode == 69 && !statusBotao('btnExcluir'))
        getComponente('btnExcluir').onclick();
    /*Chama Evento OnClick do Excluir*/
    if(evento.altKey && (evento.keyCode == 71 || evento.keyCode == 72) && !statusBotao('btnDetGrid')){
        parent.armazenaInformacoes();
        getComponente('btnDetGrid').onclick();
    }
    /*if(evento.shiftKey && evento.keyCode == 123){
        novaWindow("montarPastaParamRelat.action", "", "", 600, 800);
    }*/
    /*Chama Evento OnClick do OK*/
    if(evento.altKey && evento.keyCode == 79 && !statusBotao('btnOk'))
        getComponente('btnOk').onclick();
    /*Chama Evento OnClick do Cancel*/
    if(evento.altKey && evento.keyCode == 67 && !statusBotao('btnCancel'))
        getComponente('btnCancel').onclick();

    try{
        atalhosFuncao(evento);
    }catch(error){}
}
var alterarLabelGridDet = true;
/** Controla se é para mostrar ou não o label dos botões grid/Detalhe - Juli - 03/10/2007 */
function naoAlterarLabelGridDet(){
    alterarLabelGridDet = false;
}
function alterouFomulario(){
    var frameAnt    = getCookie('frame');
    if(frameAnt == '')
        return false;
    return getNovoRegistro(frameAnt) || getAlterouRegistro(frameAnt);
}

function ehLocalizador(){
    if(this.ieLocalizador == undefined)
        return false;
    else
        return this.ieLocalizador;
}

//Juli - 13/07/06
// nrFrame    - Numero do Frame atual
// nomeFrame  - Nome do Frame Atual
// opcaoClick - Qual opcao do MenuNavegacao foi utilizada
function salvarAutomaticamente(nrFrame, nomeFrame,opcaoClick){
    //Verifica se foi alterado algo para salvar
    var frameAnt    = getCookie('frame');
    if(alterouFomulario()){
        //Verifica se o formulário é para ser salvo automaticamente ou questionar
        if(getSalvarAutomatico(nrFrame)){ 
            setCookie('setarFocus',false);
            getFrame(nrFrame).antesSalvarFormulario(nrFrame,opcaoClick);
            return true;
        }
        else
            if(confirm("Deseja salvar o formulário "+nomeFrame))
                antesSalvarFormulario(nrFrame,opcaoClick);
            else
                //desfazer alterações
                desfazerFormulario(nrFrame);
    }
    return false;
}

function montaBotoes(frame, clicouForm){
    var frameAnt = getCookie('frame_ant');
    var salvarAuto = false;
    var nmTabelaAnt = getNmTabela(frameAnt);
    //Se primeira vez que entra na tela
    if (frameAnt == '')
        frameAnt = 1;
    var frameAux = getCookie('frame');
    setCookie('frame',frameAnt);
    if(alterouFomulario() && frameAnt != frame && clicouForm){
        /*setCookie('frame',frameAux);*/
        if((nmTabelaAnt != undefined) && (nmTabela != " ")){
            //Salvar o formulário quando clicar em outro frame
            salvarAuto = salvarAutomaticamente(frameAnt, nmTabelaAnt);
        }
        return;
    }
    setCookie('frame',frameAux);
    if(getDesabilitarBotoes(frame))
        return;
    if(!getCookie('apenasUmFrame')){
        if(clicouForm && getCookie('apenasUmFrame') != undefined){
            try{
                if(frame != frameAnt && getComponente('dsTabela_'+frameAnt,'frame_'+frameAnt) != null){
                    getComponente('dsTabela_'+frameAnt,'frame_'+frameAnt).className = 'NmTabela';
                }
                if(getComponente('dsTabela_'+frame) != null)
                    getComponente('dsTabela_'+frame).className = 'NmTabelaSelecionada';
            }catch(error){alert('Monta Botoes 1 (gerenciaBotoes.js) \n'+error.message);}
        }
        //Se primeira vez que entrou na tela  OU está navegando no registro(Grid/Det/Salvar/Excluir)
        if((!clicouForm && getCookie('apenasUmFrame') != undefined && frame == 1) || (frame == frameAnt)){
            try{
                if(frame >= frameAnt && getComponente('dsTabela_'+frame) != null)
                    getComponente('dsTabela_'+frame).className = 'NmTabelaSelecionada';
            }catch(error){alert('Monta Botoes 2 (gerenciaBotoes.js) \n'+error.message);}
        }
    }
    if(getCookie('frame') == '')
        setCookie('frame', frameAnt);
    /*if(alterouFomulario() && frameAnt != frame && clicouForm){
        if((nmTabelaAnt != undefined) && (nmTabela != " ")){
            //Salvar o formulário quando clicar em outro frame
            salvarAuto = salvarAutomaticamente(frameAnt, nmTabelaAnt);
        }
        //return;
    }*/
    if(frame == 0){
        desativaBotao('btnDetGrid');
        return;
    }
    if (getCookie('linkDetalhe_frame_'+frame) == '' && clicouForm) {
	desativaBotao('btnDetGrid');
    }
    //if(getCookie('NovoRegistro_'+nrFrame) == 'true')
    if(getNovoRegistro(nrFrame)){
        ativaBotao('btnDesfazer');
        ativaBotao('btnSalvar');
    }
    if(frameAnt != frame && frame != '1' && !clicouForm || (salvarAuto == false && getCookie('setarFocus') == 'false')){
        setCookie('setarFocus',true);
        return;
    }
    //verifica se primeira vez a ser carregado e posiciona no primeiro GRID
    setCookie('frame_ant',frame);
    montaBtnDetGrid(frame);
    montaBtnVisualizar();
    alterouFormulario = getAlterouRegistro(frame);
    if(!alterouFormulario){
        montaBtnNovo(frame);
        montaBtnExcluir(frame);
    }
    atualizaBotoesNavegacao(frame);
}

//Monta Botoes para panel editor
function montaBotoesPE(nrFrame, opcao){ 

    //setLinkInsert(nrFrame,'nao_remover_senao_nao_salva_pe');

    var frameAnt    = getCookie('frame');
    if(alterouFomulario() && frameAnt == nrFrame)
        salvarAuto = getFrame(nrFrame).salvarAutomaticamente(nrFrame, getNmTabela(nrFrame));
    
    nmFrame = nrFrame+'_1';

    //setCookie('habilitarSalvarPE',getFrame(nrFrame).antesEditarPE());
    setCookie('frame',nmFrame);
    if ( opcao == 'K' ){ //se foi um evento da tecla
        var editar = true;
        try{
            editar = getFrame(nrFrame).antesEditarPE();
        }catch(error){}
        setPodeEditarPE(nrFrame, editar);
    }
    //Colocado o try pq nem sempre tem a barra de botões

    try{
        desativaBotao('btnExcluir');
        desativaBotao('btnNovo');
        if  ( getPodeEditarPE(nrFrame) ){
            ativaBotao('btnSalvar', false);
            ativaBotao('btnDesfazer', false);
        }else
            desativaBotao('btnSalvar');
    }catch(error){
    }   
    
 return getPodeEditarPE(nrFrame);
}

function montaBtnVisualizar(){
    if(getLinkRelatorio(1) == null || getLinkRelatorio(1) == 'null' || getLinkRelatorio(1) == '')
        desativaBotao('btnVisualizar');
    else
        ativaBotao('btnVisualizar');
}
function montaBtnNovo(frame){
    //var novoRegistro = getCookie('NovoRegistro_'+nrFrame);
    var novoRegistro = getNovoRegistro(nrFrame);
    try{
        if(linkNovo  == '' || novoRegistro == true)
            desativaBotao('btnNovo');
        else{
            ativaBotao('btnNovo');
            desativaBotao('btnSalvar');
            desativaBotao('btnDesfazer');
        }
    }catch(erro){}
}
function montaBtnExcluir(nrFrame){
    try{
        if(linkDelete == ''){
            desativaBotao('btnExcluir');
            return;
        }

        restringir = false;
        try{
            restringir = restringeUsuario[index] == 'false';
            //setCookie('habilitarSalvarPE', !restringir);
            setPodeEditarPE(nrFrame,!restringir);
        }catch(error){
            parent.inicializa();
            restringir = parent.restringeUsuario[parent.indexAnt] == 'false';
            //setCookie('habilitarSalvarPE', !restringir); 
            setPodeEditarPE(nrFrame,!restringir);
        }
        if(restringir || getDesabilitarBotoes(nrFrame))
            desativaBotao('btnExcluir');
        else
            ativaBotao('btnExcluir');
    }catch(erro){}
}
//Variavel será usada para montar Barra de Botoes (wheb_barraInferior.jsp)
var linkDetalhe = null;
function montaBtnDetGrid(frame){
    //verifica se botao está desativado
    if(statusBotao('btnDetGrid'))
        ativaBotao('btnDetGrid');
    setCookie('frame',frame);
    var link = ''
    var status = '1';
    if(propriedades.length > 0){
        link = propriedades[0]+nrSequencia;
        status = '2';
    }else
        link = getCookie('linkDetalhe_frame_'+frame);
    if(link == ''){
        desativaBotao('btnDetGrid');
        return;
    }
    try{
        if(myData.length == 0){
            desativaBotao('btnDetGrid');
            return;
        }
    }catch(error){}
    if(status == '1' && link.indexOf('Layer_'+frame+'=N') > -1){
        if(alterarLabelGridDet)
            definiLabelBtn('btnDetGrid','<u>G</u>rid');
        return;	
    }
    if(link.indexOf('Layer_'+frame+'=N') > -1){
        linkDetalhe = link.replace('Layer_'+frame+'=N','Layer_'+frame+'=S');
        if(alterarLabelGridDet)
            definiLabelBtn('btnDetGrid','&nbsp &nbspDetal<u>h</u>e');
    }else if(link.indexOf('Layer_'+frame+'=S') > -1){
        linkDetalhe = link.replace('Layer_'+frame+'=S','Layer_'+frame+'=N');
        if(alterarLabelGridDet)
            definiLabelBtn('btnDetGrid','<u>G</u>rid');
    }
    setCookie('linkDetalhe_frame_'+frame, linkDetalhe);
}

function definiLabelBtn(botao,label){
    try{
        if(parent.document.getElementById(""+botao+"")!=null){
            if(parent.document.getElementById(""+botao+"").value == ""){
                while(label.indexOf("&nbsp") > -1 )
                    label = label.replace("&nbsp","");
            }
            parent.document.getElementById(""+botao+"").innerHTML=label;
            ativaBotao(botao);
        }
    }catch(error){}
}

function ativaBotao(nome, alterouPanel){
    nrFrame = getCookie('frame');
    if(nome == 'btnSalvar'){
        setCabOk();
        if((getLinkInsert(nrFrame) == '' && 
        getLinkUpdate(nrFrame) == '' &&
        getUpdateAjax(nrFrame) == '' &&
        getInsertAjax(nrFrame) == '') || 
        (getLinkUpdate(nrFrame) == '' && 
        getUpdateAjax(nrFrame) == '' && 
        //getCookie('NovoRegistro_'+nrFrame) == 'false') ||
        !getNovoRegistro(nrFrame)) ||
        getLinkInsertUpdateAvalAjax(nrFrame) == ''){
            return;
        }else{
            if(alterouPanel != false){
                setAlterouRegistro(nrFrame, true);
            }
            desativaBotao('btnNovo');
            desativaBotao('btnExcluir');
        }
        if(statusBotao('btnSalvar'))
            eval(onModoEdicaoJS);
    }
    
    try{
        parent.document.getElementById(""+nome+"").disabled = '';
        parent.document.getElementById(""+nome+"").style.color = '#3D51B9';
    }catch(error){
        try{
            document.getElementById(""+nome+"").disabled = '';
            document.getElementById(""+nome+"").style.color = '#3D51B9';
        }catch(error){}
    }       
}
function desativaBotao(nome){
    try{
        parent.document.getElementById(""+nome+"").disabled    = 'disabled';
        parent.document.getElementById(""+nome+"").style.color = '#eee';
    }catch(error){
        try{
            document.getElementById(""+nome+"").disabled    = 'disabled';
            document.getElementById(""+nome+"").style.color = '#eee';
        }catch(error){}
    }
}

/* Função que retornar true se o botão (nome) estiver desabilitado e false se estiver habilitado - Coelho*/
function statusBotao(nome){
    var status = false;
    try{
        status = parent.document.getElementById(""+nome+"").disabled;
    }catch(error){
        try{
            status = window.opener.document.getElementById(""+nome+"").disabled; //se for uma janela pop-up que precisa desta informação - Eduardo
        }catch(error){
            try{
                status = window.opener.parent.document.getElementById(""+nome+"").disabled;
            }catch(error){
                status = false;
            }
        }
    }
    return status;
}

/*-------------INICIO Botoes Navegacao-----------------------------------*/

var informacoes = new Array();
nrFrame          = '';
indexAnt         = 0;
links            = '';
propriedades     = '';
valorPks         = '';
restringeUsuario = '';
var evento       = '';

function armazenaInformacoes(){
    nrFrame         = getCookie('frame');
    nmFrame         = 'frame_'+nrFrame;
    frame           = self.frames[nmFrame];
    if(frame != undefined && frame.valorPks != ''){
        informacao = new Array(frame.links,frame.valorPks,frame.propriedades,frame.restringeUsuario);
        informacoes[nrFrame] = informacao;
    }
}

function inicializa(){
    try{
        if(informacoes == '')
            return;
        nrFrame = getCookie("frame");
        if(informacoes[nrFrame] != undefined){
            links = informacoes[nrFrame][0];
            valorPks = informacoes[nrFrame][1];
            propriedades = informacoes[nrFrame][2];
            restringeUsuario = informacoes[nrFrame][3];            
        }
        indexAnt = parseInt(getCookie('index_'+nrFrame), 10);
    }catch(error){
        alert(error.message);
    }
}

function verificaSalvar(indice){
    var tempoEspera = 0;
    var frameAnt    = getCookie('frame');
    var nmTabelaAnt = getNmTabela(frameAnt);        
    if(alterouFomulario()){
        if(indice < 0 )
            indice = 0;
        else if(indice > valorPks.length - 1)
            indice--;
        getFrame(nrFrame).salvarAutomaticamente(frameAnt, nmTabelaAnt,valorPks[indice]);
        setCookie('index_'+nrFrame,indice);
        carregar(indice);
    }else{
        carregar(indice);
    }
}

function proximoRegistro(e){
    this.evento = e;
    inicializa();
    var frame = getCookie("frame");
    if(document.getElementById("btnDetGrid").innerHTML.indexOf("Detal") > -1)
        getFrame(frame).obj.selecProxReg();
    else
        verificaSalvar(indexAnt + 1);
    getFrame(frame).montaBotoes(frame, true);
}

function anteriorRegistro(e){
    this.evento = e;
    inicializa();
    var frame = getCookie("frame");
    if(document.getElementById("btnDetGrid").innerHTML.indexOf("Detal") > -1)
        getFrame(frame).obj.selecRegAnt();
    else
        verificaSalvar(indexAnt - 1);
    getFrame(frame).montaBotoes(frame, true);
}

function primeiroRegistro(e){
    this.evento = e;
    inicializa();
    var frame = getCookie("frame");
    if(document.getElementById("btnDetGrid").innerHTML.indexOf("Detal") > -1)
        getFrame(frame).obj.selecPrimReg();
    else
        verificaSalvar(0);
    getFrame(frame).montaBotoes(frame, true);
}

function ultimoRegistro(e){
    this.evento = e;
    inicializa();
    var frame = getCookie("frame");
    if(document.getElementById("btnDetGrid").innerHTML.indexOf("Detal") > -1)
        getFrame(frame).obj.selecUltReg();
    else
        verificaSalvar(valorPks.length - 1);
    getFrame(frame).montaBotoes(frame, true);
}
function atualizaBotoesNavegacao(frame, linha){
    try{
        var linhaSelec = getFrame(frame).obj == undefined ? linha == undefined ? getCookie("index_"+frame) : linha : getFrame(frame).obj.getLinhasSelec();
        var qtdLinhasGrid = getFrame(frame).obj == undefined ? getCookie("qtdPks_"+frame) : getFrame(frame).obj.getQtdLinhas();
        if(qtdLinhasGrid != undefined && qtdLinhasGrid != null)
            setCookie("qtdPks_"+frame, qtdLinhasGrid);
        if(linhaSelec != undefined && linhaSelec != null)
            setCookie("index_"+frame, linhaSelec);
        if(linhaSelec == 0 && qtdLinhasGrid == 0){
            desativaBotao("btnPrimeiro");
            desativaBotao("btnAnterior");
            desativaBotao("btnProximo");
            desativaBotao("btnUltimo");
        }else if(linhaSelec == 0){
            desativaBotao("btnPrimeiro");
            desativaBotao("btnAnterior");
            if(qtdLinhasGrid == 1){
                desativaBotao("btnProximo");
                desativaBotao("btnUltimo");
            }else{
                ativaBotao("btnProximo");
                ativaBotao("btnUltimo");
            }
        }else if(linhaSelec == parseInt(qtdLinhasGrid-1, 10)){
            desativaBotao("btnProximo");
            desativaBotao("btnUltimo");
            ativaBotao("btnPrimeiro");
            ativaBotao("btnAnterior");
        }else{
            ativaBotao("btnPrimeiro");
            ativaBotao("btnProximo");
            ativaBotao("btnAnterior");
            ativaBotao("btnUltimo");
        }
    }catch(erro){}
}
function carregar(index){
    try{
        if(propriedades != undefined){
            if(index < 0 || index > (valorPks.length-1))
                return;
            setCookie("qtdPks_"+nrFrame, valorPks.length);
            obj = getComponente('tag50.data.item:'+index,'frame_'+nrFrame);
            if(obj != null){
                var IE = document.all?true:false
                if(IE){
                    obj.click();
                }else{
                    obj.onclick(evento);
                }
            }else{
                if(propriedades[0] != ''){
                    link   = propriedades[0]+valorPks[index];
                    link   = link.replace('Layer_'+nrFrame+'=N','Layer_'+nrFrame+'=S');
                    target = 'frame_'+nrFrame;
                    linkTarget(link,target);
                }
                executaLinks(index);
            }
        }
        setCookie('frame',nrFrame);
    }catch(error){alert(error.message);}
}
/*-------------FIM Botoes Navegacao-----------------------------------*/
