function validaCampo(fld){
    if(fld.value.length<1){
        alert('Campo Obrigat\xF3rio');
        return false;
    }
    return true;
}

function verificaTecla(fld,e){
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if(whichCode == 27){
        fld.blur();
    }	
    return false;
}

function onEnterEnviaForm(event){
    if(event.keyCode == 13)
        document.getElementById("Login").submit();
}
//enviar formulário
function enviar(form, link){
    form.action=link;
    form.submit();
}

function onEnterSubmit(form,evento){
    var whichCode = (window.Event) ? evento.which : evento.keyCode;
    if(whichCode == 13){
        var conta = 0;
        for(i=0; i < form.elements.length; i++){
            if(form.elements[i].type == 'text')
                conta ++ ;
        }
        if(conta > 1)
            form.submit();
    }
}

function submitForm(form){
    form.submit();
}

/*  Function para verificar se uma string contém somente espaços em brancos ou nada. TRUE, string contém somente espaços em branco
    Wheb Sistemas - Eduardo Paniz Mallmann - 02/01/2007 */
function verificaSomenteBranco(valorCampo){
    var aux = '';
    for(var i = 0; i < valorCampo.length; i++)
        aux += " ";
    return valorCampo == aux;
}

//enviar formulário Target
function enviarTarget(form, link , target) {
    parent.frames[target].window.location=link;
    form.submit();
}
//seleciona todos os checkbox
function checkAll(form) { 
    for(var i=0; i < form.elements.length; i++){
        if(form.elements[i].type == "checkbox"){
            if (form.elements[i].checked==true)
                form.elements[i].checked=false;
            else
                form.elements[i].checked=true;
        }
    }
}

/** Limpa todos os checkBoxs do form
 @param form
 Juliane Menin - 19/10/2007
 */
function limparCheckBox(form){
    for(var i=0; i < form.elements.length; i++){
        if(form.elements[i].type == "checkbox"){
            if (form.elements[i].checked==true)
                form.elements[i].checked=false;
        }
    }
}


var valorAnt   = '';
var idAnt      = '';
function armazenaValor(obj){
    valorAnt = obj.value;
    idAnt    = obj.id;
}
var recarregar = false;
function apagouTexto(evento){
    if(evento.keyCode == 46 || evento.keyCode == 32)
        recarregar = true;
}

function processaRequisicao(link,target,obj,onChange){
    /* Tratamento para processar a requisicao quando navegar com as setas no LCB*/
    if(!recarregar)
        recarregar = (obj.value=='' && obj.selectedIndex == 0);
    if(idAnt == obj.id && valorAnt != obj.value || recarregar || getProcessarReq(getCookie('frame')) == 'TRUE'){
        linkTarget(link,target);
        if(onChange != undefined && !onChange){
            idAnt      = '';
        }
        valorAnt   = '';
        recarregar = false;
    }
    if(idAnt != obj.id){
        valorAnt   = '';
        idAnt      = '';
    }
    setProcessarReq(getCookie('frame'), 'FALSE');
}

function onEnter(form,link,target,evento){
    var whichCode = evento.keyCode;
    if(whichCode == 13){
        parent.frames[target].window.location = link;
        if(form != '')
            form.submit();
    }
}

function verificaSalvar(novoFrame){
    //verifica se botao ativado
    try{
        if(!statusBotao('btnSalvar')
            && novoFrame != getCookie('frame'))
            salvarFormulario(getCookie('frame'));
    }catch(error){}
}

function salvarPanelEditor(nrFrame){
    setClickSalvar(nrFrame, 'S');
    try{
        nmFrame = 'frame_'+nrFrame;
        form = window.frames[nmFrame].document.forms[nmFrame];
    }catch(error){
        form = parent.window.frames[nmFrame].document.forms[nmFrame];
    }
    nrFrame = nrFrame.charAt(0);
    dwr.engine.setAsync(false);
    dwrAction.setNrFrame(nrFrame);
    dwrAction.setTextoPanelEditor(form.textoPanelEditor.value);
    dwrAction.setNrSequencia(getCookie('nrSequencia_'+nrFrame));
    dwrAction.updatePanelEditor();
    dwr.engine.setAsync(true);
    desativaBotao('btnDesfazer');
    desativaBotao('btnSalvar');
    setAlterouRegistro(nrFrame, false);
    setCabOk(getDsTabela(nrFrame));
    try{
        getFrame(nrFrame).depoisEditarPE(nrFrame);
    }catch(erro){  }
}

function antesSalvarFormulario(nrFrame,opcaoClick){
    try{
        if (nrFrame.indexOf("1_1") >= 0 || nrFrame.indexOf("2_1") >= 0){
            if(getFrame(nrFrame.substr(0,1)).antesSalvarForm(nrFrame.substr(0,1)))
                salvarPanelEditor(nrFrame);
        }else
        if(getFrame(nrFrame).antesSalvarForm(nrFrame))
            salvarFormulario(nrFrame,opcaoClick);
    }catch(erro){
        alert('erro form');
        setErros(erro);
    }
}

function depoisSalvarFormulario(nrFrame,ehAjax){
    try{
        if(ehAjax){
            ocultaProcessando();
        }
        var frame = getFrame(nrFrame);
        frame.depoisSalvarForm(nrFrame);
        desativaBotao('btnDesfazer');
        desativaBotao('btnSalvar');
        setAlterouRegistro(nrFrame, false);
        setNovoRegistro(nrFrame, false);
        //setCookie('habilitarSalvarPE', true);
        if(getFrame(nrFrame+'_1') != undefined)
            setPodeEditarPE(nrFrame,true);
        if(ehAjax){
            getFrame(nrFrame).setCabOk(getDsTabela(nrFrame));
            getFrame(nrFrame).montaBotoes(nrFrame,false);
        }
        limparCamposAlterado();
    }catch(error){
        setErros(erro);
    }
}

function getObjDWR(nrFrame){
    var aux = getUpdateAjax(nrFrame) == '' ? getInsertAjax(nrFrame) : getUpdateAjax(nrFrame);
    if (aux == undefined)
        aux = getLinkInsertUpdateAvalAjax(nrFrame);
    if(aux != '' && aux != 'UPDATE_AJAX' && aux != 'INSERT_AJAX' && aux != 'INSERT_UPDATE_AVAL_AJAX'){
        return aux.substr(0,aux.indexOf('.'));
    }
    return 'dwrAction';
}
function salvarCamposAlteradosGrid(grid, nrFrame){
    if(camposAlterados.length > 0){
        setClickSalvar(nrFrame, 'S');
        dwr.engine.setAsync(false);
        mostraProcessando(false,false);
        var objDWR = getObjDWR(nrFrame);
        eval(objDWR+'.limparCamposFormularioAjax()');
        for(var i = 0; i < camposAlterados.length; i++){
            eval(objDWR+'.addCampoFormularioAjax(\''+camposAlterados[i]+'\',\''+grid.obterValorColuna(getPosicaoColunaGrid(camposAlterados[i])).replace(/'/g,'')+'\')');
        }
        var processaRetorno = function(retorno){
            if(retorno == 'error')
                eval(objDWR+'.getErros('+processaRetornoErro+')');
            else
                depoisSalvarFormulario(nrFrame,true);
        }
        if(getUpdateAjax(nrFrame) == 'UPDATE_AJAX')
            dwrAction.updateAjax(nrFrame, processaRetorno);
        else{
            var dsMetodo = getUpdateAjax(nrFrame);
            if(dsMetodo.substr(dsMetodo.length-2,dsMetodo.length-1) != '()' )
                dsMetodo = dsMetodo.substr(0,dsMetodo.length-1) + ','+processaRetorno + ')';
            else
                dsMetodo = dsMetodo.substr(0,dsMetodo.length-1) + processaRetorno + ')';
            eval(dsMetodo);
        }
        dwr.engine.setAsync(true);
        ocultaProcessando();
    }
}

function salvarFormulario(nrFrame,opcaoClick){
    try{
        //Verificar se esta no Panel Editor
        if(nrFrame.indexOf('_')>=0){
            salvarPanelEditor(nrFrame);
            return;
        }
        mostraProcessando(false,false);
        var retornoAjax = function(retorno){};
        var objDWR = getObjDWR(nrFrame);
        var ehAjax = false;
        var link   = '';
        setClickSalvar(nrFrame, 'S');
        var novoRegistro = getNovoRegistro(nrFrame);
        if(novoRegistro){
            link = getLinkInsert(nrFrame);
            deletaCookie('index_'+nrFrame);
        }else{
            link   = getLinkUpdate(nrFrame);
            ehAjax = getUpdateAjax(nrFrame) != '';
        }
        if(link == undefined)
            link = '';
        nmForm  = 'form_'+nrFrame;
        nmFrame = 'frame_'+nrFrame;
        try{
            form = window.frames[nmFrame].document.forms[nmForm];
        }catch(error){
            form = parent.window.frames[nmFrame].document.forms[nmForm];
        }
        
        //Salvar via Ajax
        if(ehAjax){
            getFrame(nrFrame).dwr.engine.setAsync(false);
            getFrame(nrFrame).eval(objDWR+'.limparCamposFormularioAjax()');
        }
        for(i=0; i< form.elements.length; i++){
            //elimina os botoes
            if(form.elements[i].name != undefined && form.elements[i].name.length>0){
                if(form.elements[i].className.indexOf('Obrigatorio')>=0){
                    if(form.elements[i].value == '' &&
                        form.elements[i].style.width != '0px'){
                        alert('Campo Obrigat\xF3rio ('+form.elements[i].name+')')
                        form.elements[i].focus();
                        ocultaProcessando();
                        return false;
                    }
                }
                if(ehAjax){
                    var valor = form.elements[i].value;
                    if(form.elements[i].type != "hidden" || (valor != undefined && valor != null && valor != "")){
                        /*Verifica se CheckBox checado*/
                        if(form.elements[i].value == 'on' && !form.elements[i].checked){
                            valor = 'N';
                        }
                        if(!ehSalvarSomenteAlterados() || ehCampoAlterado(form.elements[i].name)){
                            valor = valor.replace(/'/g,'');
                            valor = valor.replace(/\n/g,'\\n');
                            valor = valor.replace(/\r/g,' ');                            
                            eval(objDWR+'.addCampoFormularioAjax(\''+form.elements[i].name+'\',\''+valor+'\')');
                        }
                    }
                }
            }
        }
        if(encerraCom(link,'action'))
            link+= '?nrSequencia=';
        /*Passa como parametro a opção do menu de navegação*/
        if(encerraCom(link,'=')){
            if(opcaoClick != undefined)
                link+= opcaoClick;
            else{
                /*Ver gerenciaBotoes.js*/
                inicializa();
                pk = valorPks[indexAnt];
                if(pk == undefined || pk == 0){  
                    pk = getCookie('nrSequencia_'+nrFrame);
                }
                link+= pk;
            }
        }
        var processaRetorno = function(retorno){
            if(retorno == 'error')
                eval(objDWR+'.getErros('+processaRetornoErro+')');
            else{
                depoisSalvarFormulario(nrFrame,ehAjax);
            }
        }
        if(ehAjax){
            if(novoRegistro){
                if(getInsertAjax(nrFrame) == 'INSERT_AJAX')
                    dwrAction.insertAjax(nrFrame);
                else{
                    var dsMetodo = getInsertAjax(nrFrame);
                    dsMetodo = dsMetodo.substr(0,dsMetodo.length-1) + processaRetorno + ')';
                    eval(dsMetodo);
                }
            }else{
                if (getUpdateAjax(nrFrame) == 'UPDATE_AJAX') {
                    dwrAction.updateAjax(nrFrame,processaRetorno);
                }
                else if (getLinkInsertUpdateAvalAjax(nrFrame) == 'INSERT_UPDATE_AVAL_AJAX'){
                    dwrAction.insertUpdateAvalAjax(nrFrame,processaRetorno);
                } else{
                    var dsMetodo = getUpdateAjax(nrFrame);
                    if(dsMetodo.substr(dsMetodo.length-2,dsMetodo.length-1) != '()' )
                        dsMetodo = dsMetodo.substr(0,dsMetodo.length-1) + ','+processaRetorno + ')';
                    else
                        dsMetodo = dsMetodo.substr(0,dsMetodo.length-1) + processaRetorno + ')';
                    eval(dsMetodo);
                    
                }
            }
        }
        else{
            link+='&nrFrame='+nrFrame;
            if(novoRegistro)
                link += '&ehNovoRegistro=true';
                
            form.action = link;
            form.submit();
        }
        if( !ehAjax){
            depoisSalvarFormulario(nrFrame,false);
        }else
            dwr.engine.setAsync(true);
    }catch(erro){
        dwr.engine.setAsync(true);
        getComponente('disabledImageZone').style.visibility = 'hidden';
        setErros(erro);
    }
}

var processaRetornoErro = function(erros){
    ocultaProcessando();
    var dsErro = '';
    for(erro in erros)
        dsErro = dsErro + erros[erro] + '\n' ;
    alert(dsErro);
}

function excluirFormulario(nrFrame){
    link  = getLinkDelete(nrFrame);
    nrSeq = getCookie('nrSequencia_'+nrFrame);
    if(link.substr(link.length - 1 , link.length) != "="){
        if(link.indexOf("?") < 0 )
            link += '?';
        else
            link += '&';
        if(isNaN(nrSeq))
            link+='nrSequenciaStr=';
        else
            link+='nrSequencia=';
    }
    link+= nrSeq;
    link +='&nrFrame='+nrFrame;
    link +='&ehNovoRegistro=true';
    if(confirm('Você deseja excluir o registro ? ('+getNmTabela(nrFrame)+')')){
        setLinkDeleteTratado(nrFrame, link);
        getFrame(nrFrame).antesDeletar(); //função setada no GeraGridDet
    }
}

function processoDeletar(){
    mostraProcessando(false, false);
    var target = getLinkDeleteTarget(getCookie('frame'));
    if(target == '' || target == undefined)
        target = 'frame_'+getCookie('frame');
    linkTarget(getLinkDeleteTratado(getCookie("frame")), target);
    deletaCookie('index_'+getCookie('frame'));
}
function desfazerFormulario(nrFrame){
    mostraProcessando(false,false);
    //Verificar se esta no Panel Editor
    if(nrFrame.indexOf('_')>=0){
        var frameMontar = nrFrame.substr(0,nrFrame.indexOf('_'));
        desativaBotao('btnDesfazer');
        desativaBotao('btnSalvar');
        setNovoRegistro(nrFrame, false);
        setAlterouRegistro(nrFrame, false);
        linkTarget('montarTextoPanelEditor.action?nrFrame='+frameMontar+'&nrSequencia='+getCookie('nrSequencia_'+frameMontar),'frame_'+nrFrame);
        return;
    }    
    link   = getCookie('linkDetalhe_frame_'+nrFrame);
    if(link != '')
        linkTarget(link,'frame_'+nrFrame);
    else{
        var nmForm = 'form_'+nrFrame;
        var frame = getFrame(nrFrame);
        var form  = frame.document.forms[nmForm]
        form.reset();
        ocultaProcessando();
    }
    desativaBotao('btnDesfazer');
    desativaBotao('btnSalvar');
    setNovoRegistro(nrFrame, false);
    setAlterouRegistro(nrFrame, false);
}
/**
 Juli - 28/05/2007
 Fechar uma função através do botão fechar */
function fecharFuncao(){
    if(getCookie("recarregarMenu") == "true"){
        window.opener.location.href = 'carregarPerfisFuncoes.action';
    }
    try{
        link = getLinkFechar(1);
        var mensagem = getMensagemLinkFechar(1);
        if(mensagem != undefined && mensagem != null && mensagem != ""){
            if(confirm(mensagem))
                top.window.close();
        }else if(link == '' || link == undefined){
            top.window.close();
        }else
        if(link.indexOf(".action") > 1){
            link(link);
        }else{
            try{
                eval(link);
            }catch(erro){
                getFrame(1).eval(link);
            }
        }
    }catch(error){
        alert(error.message);
    }
}
function novoFormulario(nrFrame){
    mostraProcessando(false,false);
    var linkRetornoNovo = getLinkRetornoNovo(nrFrame);
    if(linkRetornoNovo != '')
        setCookie('linkDetalhe_frame_'+nrFrame,linkRetornoNovo);
    link = getLinkNovo(nrFrame);
    linkTarget(link,'frame_'+nrFrame);
    setNovoRegistro(nrFrame, true);
    if(getAlturaNovoPopUp(nrFrame) != undefined && getAlturaNovoPopUp(nrFrame) != 0 && getLarguraNovoPopUp(nrFrame) != 0){            
        novaWindow(getLinkNovoPopUp(nrFrame),'','', getAlturaNovoPopUp(nrFrame), getLarguraNovoPopUp(nrFrame));
    }
    ocultaProcessando();

}
function setCabOk(dsTabela,aviso){
    try{
        var cabOk   = getComponente('cabOk');
        var cabOkTA = getComponente('cabOkTA');
        if(cabOk && cabOkTA){
            //if( getCookie('clickSalvar') == 'S' || (aviso != undefined || aviso != null)){
            if(getClickSalvar(getCookie('frame')) == 'S' || (aviso != undefined || aviso != null)){
                cabOk.style.visibility = 'inherit';
                if(aviso != undefined || aviso != null)
                    cabOkTA.value = aviso;
                else{
                    //  if(dsTabela == "null")
                    cabOkTA.value = ' - Atualizado com sucesso !';
                /*  else
                        cabOkTA.value = ' - '+dsTabela+' atualizado com sucesso !';*/
                }
                //deletaCookie('clickSalvar');
                setClickSalvar(getCookie('frame'), '');
            }else{
                cabOkTA.value          = '';
                cabOk.style.visibility = 'hidden';
                cabErro   = getComponente('cabErro');
                cabErro.style.visibility = 'hidden';
            }
        }
    }
    catch(error){
        setErros(error);
    }
}
function setCabErro(erro){
    try{
        MostraDiv(true, 'cabErro');
        var cabOk   = getComponente('cabOk');
        cabOk.style.visibility = 'hidden';
        var cabErro   = getComponente('cabErro');
        var cabErroTA = getComponente('cabErroTA');
        cabErro.style.visibility = 'inherit';
        if(erro != undefined || erro != null)
            cabErroTA.value = erro;
        else
            cabErroTA.value = ' - Erro, nada foi alterado !';
        cabErroTA.focus();
    }catch(error){
        setErros(error);
    }
}
function setAvisoMensagem(aviso,altura,largura){
    try{
        var cabAvisoTA;
        cabAviso   = getComponente('cabAviso');
        var left  = diminuirPX(cabAviso.style.left, '0px') + (diminuirPX(cabAviso.style.width, '0px')/2);
        var top   = diminuirPX(cabAviso.style.top, '0px')  + (diminuirPX(cabAviso.style.height, '0px')/2);
        cabAviso.style.left   = (left - (largura/2)) + 'px';
        cabAviso.style.top   =  (top  - (altura/2)) + 'px';
        cabAviso.style.width  = largura + 'px';
        cabAviso.style.height = altura + 'px';

        MostraDiv(true,'cabAviso');
        cabAviso   = getComponente('cabAviso');
        cabAvisoTA = getComponente('cabAvisoTA');
        cabAviso.style.visibility = 'inherit';
        if(aviso != undefined || aviso != null)
            cabAvisoTA.value = aviso;
        cabAvisoTA.focus();
        setCookie('setAvisoMensagem',true);
    }catch(error){
        setErros(error);
    }
}

/*Links Botoes*/


function getAlturaNovoPopUp(nrFrame){
    try{
        return getFrame(nrFrame).alturaNovoPopUp;
    }catch(Error){}
}
function getLarguraNovoPopUp(nrFrame){
    try{
        return getFrame(nrFrame).larguraNovoPopUp;
    }catch(Error){}
}
function getLinkNovo(nrFrame){
    try{
        return getFrame(nrFrame).linkNovo;
    }catch(Error){}
}
function getLinkNovoPopUp(nrFrame){
    try{
        return getFrame(nrFrame).linkNovoPopUp;
    }catch(Error){}
}
function getLinkInsert(nrFrame){
    try{
        return getFrame(nrFrame).linkInsert;
    }catch(Error){}
}
function setLinkInsert(nrFrame,link){
    try{
        return getFrame(nrFrame).linkInsert = link;
    }
    catch(Error){}
}
function getLinkUpdate(nrFrame){
    try{
        return getFrame(nrFrame).linkUpdate;
    }catch(Error){}
}
function getLinkDelete(nrFrame){
    try{
        return getFrame(nrFrame).linkDelete;
    }catch(Error){}
}
function getLinkDeleteTarget(nrFrame){
    try{
        return getFrame(nrFrame).linkDeleteTarget;
    }catch(Error){}
}
function getLinkFechar(nrFrame){
    try{
        return getFrame(nrFrame).linkFechar;
    }catch(Error){}
}
function getMensagemLinkFechar(nrFrame){
    try{
        return getFrame(nrFrame).mensagemLinkFechar;
    }catch(erro){}
}
function getLinkFecharTarget(nrFrame){
    try{
        return getFrame(nrFrame).linkFecharTarget;
    }catch(Error){}
}
function getLinkDescricao(nrFrame){
    try{
        return getFrame(nrFrame).linkDescricao;
    }catch(Error){}
}
function getLinkDetalhe(nrFrame){
    try{    
        return getFrame(nrFrame).linkDetalhe;
    }catch(Error){
        alert('Erro ao carregar o linkDetalhe');
    }
}
function getLinkRelatorio(nrFrame){
    try{
        return getFrame(nrFrame).linkRelatorio;
    }catch(Error){}
}
function getNmTabela(nrFrame){
    try{
        return getFrame(nrFrame).nmTabela;
    }catch(Error){}
}
function getDsTabela(nrFrame){
    try{
        return getFrame(nrFrame).dsTabela;
    }catch(Error){}
}

function getSalvarAutomatico(nrFrame){
    try{
        return getFrame(nrFrame).salvarAutomatico;
    }catch(Error){}
}

function getLinkRetornoNovo(nrFrame){
    try{
        return getFrame(nrFrame).linkRetornoNovo;
    }catch(Error){}
}
function getClickSalvar(nrFrame){
    try{
        //return getFrame(nrFrame).clickSalvar;
        return getCookie('clickSalvar');
    }
    catch(erro){}
}
function setClickSalvar(nrFrame, valor){
    try{
        //getFrame(nrFrame).clickSalvar = valor;
        setCookie('clickSalvar', valor);
    }
    catch(erro){}
}
function getLinkDeleteTratado(nrFrame){
    try{
        return getFrame(nrFrame).linkDeleteTratado;
    }
    catch(erro){}
}
function setLinkDeleteTratado(nrFrame, valor){
    try{
        getFrame(nrFrame).linkDeleteTratado = valor;
    }catch(eero){}
}
function getProcessarReq(nrFrame){
    try{
        return getFrame(nrFrame).processarReq;
    }catch(erro){}
}
function setProcessarReq(nrFrame, valor){
    try{
        getFrame(nrFrame).processarReq = valor;
    }catch(erro){}
}
function getNovoRegistro(nrFrame){
    try{
        return getFrame(nrFrame).novoRegistro;
    }catch(erro){}
}
function setNovoRegistro(nrFrame, valor){
    try{
        getFrame(nrFrame).novoRegistro = valor;
    }catch(erro){}
}
function getAlterouRegistro(nrFrame){
    try{
        return getFrame(nrFrame).alterouRegistro;
    }
    catch(erro){}
}
function setAlterouRegistro(nrFrame, valor){
    try{
        getFrame(nrFrame).alterouRegistro = valor;
    }catch(erro){}
}
function getRemoveBarraPE(nrFrame){
    return getFrame(nrFrame).removeBarraPE;
}

/** Retorna o valor passados como padrão caso o retorno for igual a null 
 *   Juliane e Maicon
 *   10/04/2008
 */
function getValorCampoGridRetornoPadrao(nrFrame,nmAtributo,retornoPadrao, nrLinha){
    var retorno = getValorCampoGrid(nrFrame,nmAtributo,nrLinha);
    if  ( retorno == null )
        return retornoPadrao;
    return  retorno; 
}

function getValorCampoGrid(nrFrame,nmAtributo,nrLinha){
    try{
        var comp = getComponente(nmAtributo,'frame_'+nrFrame);
        if(comp)
            return comp.value;
        frame = self;
        if(frame != '')
            frame = getFrame(nrFrame);
        //Verifica se existe as colunas - Juli - 21/02
        if(frame.nmColunas != undefined){
            for(i = 0; i < frame.nmColunas.length; i++){
                if(frame.nmColunas[i] == nmAtributo.toUpperCase()){ 
                    if(nrLinha != undefined){
                        return frame.vlColunas[nrLinha][i];
                    }else{
                        try{
                            return frame.vlColunas[frame.index][i];
                        }
                        catch(error){
                            try{
                                return frame.vlColunas[frame.obj.getIndexLinhasSelec()][i];
                            }
                            catch(error){
                                return frame.vlColunas[0][i];
                            }
                        }
                    }
                }
            }
        }         
    }catch(error){
        setErros(error);
    }
}

function setValorCampoGrid(nrFrame,nmAtributo,nrLinha,valor){
    try{
        frame = self;
        if(nrFrame != '')
            frame = getFrame(nrFrame);
        coluna = 0;
        for(i=0; i < frame.nmColunasAtributo.length; i++)
            if(frame.nmColunasAtributo[i] == nmAtributo.toUpperCase()){
                coluna = i;
                i = frame.nmColunasAtributo.length;
            }
        frame.obj.setValorColuna(nrLinha,coluna,valor);
        
        for(i=0; i < frame.nmColunas.length; i++)
            if(frame.nmColunas[i] == nmAtributo.toUpperCase()){
                coluna = i;
                i = frame.nmColunas.length;
            }
        frame.vlColunas[frame.obj.getIndexLinhasSelec()][coluna] = valor;
    }catch(error){
        getComponente(nmAtributo,'frame_'+nrFrame).value = valor;
    }
}

/* Retorna a posição da coluna no grid de acordo com o myColumns.
   Wheb Sistemas - Eduardo Paniz Mallmann - 25/01/2007 */
function getPosicaoColunaGrid(nmCampo){
    try{
        for(var i = 0; i < obj.getQtdColunas(); i++)
            if(nmCampo == nmColunasAtributo[i])
                return i;
    }catch(erro){
        for(var i = 0; i < obj.getQtdColunas(); i++)
            if(nmCampo == nmColunas[i])
                return i;
    }
}

function getValorPK(nrFrame){
    try{
        frame = getFrame(nrFrame);
        return frame.valorPks[frame.index];
    }catch(error){
        alert(error.message);
    }
}

function getSalvarPE(nrFrame){
    try{
        return getFrame(nrFrame).salvarPE;
    }
    catch(Error){}
}
function getFilhosPorPasta(nrFrame){
    try{
        return getFrame(nrFrame).filhosPorPasta;
    }catch(Error){}
}
function getNrPastaFilho(nrFrame){
    try{
        return getFrame(nrFrame).nrPastaFilho;
    }catch(Error){}
}
function setNrPastaFilho(nrFrame,value){
    try{
        getFrame(nrFrame).nrPastaFilho = value;
    }catch(Error){}
}
function getDesabilitarBotoes(nrFrame){
    try{
        return getFrame(nrFrame).desabilitarBotoes == 'S';
    }catch(Error){}
}
function getInsertAjax(nrFrame){
    try{
        return getFrame(nrFrame).insertAjax;
    }catch(Error){}
}
function getUpdateAjax(nrFrame){
    try{
        return getFrame(nrFrame).updateAjax;
    }catch(Error){}
}
function getLinkInsertUpdateAvalAjax(nrFrame){
    try{
        return getFrame(nrFrame).linkInsertUpdateAvalAjax;
    }catch(Error){}
}
/* 
 * Juli - 24/07/2006
 * Seleciona um RadioButton
 */
function selecionaRadio(comp, valor){
    //seleciona o valor em um radio button
    //comp  = formulario.radioButton
    //valor = valor a ser selecionado
    
    for (i=comp.length-1; i > -1; i--)
        if (comp[i].value == valor) 
            comp[i].checked = true;
}
/*
 * Juli - 17/03/2007
 * Retorna o value do radio buton selecionado
 */
function getRadioSelecionado(comp, nome){ 
    for (i=comp.length-1; i > -1; i--){
        if (comp[i].checked && (comp[i].name == nome)){
            return comp[i].value;
        }
    }
}
//Abre uma janela para selecionar uma cor
function selecionaCor(atributo){
    var ret = window.showModalDialog("../Bibliotecas/bibliotecas/js/editor/popups/select_color.html","","dialogWidth:200px;dialogHeight:220px");
    if(ret != undefined){
        atributo.style.background = "#"+ret;
        ret = RGBtoDELPHI(ret);
        atributo.value = ret;
    }
}
function onEnterSelecionCor(atributo,evento){
    var whichCode = (window.Event) ? evento.which : evento.keyCode;
    if(whichCode == 13)
        selecionaCor(atributo);
}

function validaFormulario(form){
    for(i=0; i< form.elements.length; i++)
        //elimina os botoes
        if(form.elements[i].name.length>0){
            if(form.elements[i].className.indexOf('Obrigatorio')>=0){
                if(form.elements[i].value == '' &&
                    form.elements[i].style.width != '0px'){
                    alert('Campo Obrigat\xF3rio ('+form.elements[i].name+')')
                    form.elements[i].focus();
                    return false;
                }
            }
        }
    return true;
}

function alteraImagem(comp){
    valor = comp.value;
    getComponente('IM_'+comp.id).style.display = 'block';
    getComponente('IM_'+comp.id).src = valor;
}

function mostraCalendario(text, funcao){
    var mouseX = getMouseX(event);
    var mouseY = getMouseY(event)+100;
    var data = '';
    data = showModalDialog('../Bibliotecas/bibliotecas/js/calendario/myCalendar.html','','dialogWidth:174px;dialogHeight:250px;scroll:no;dialogLeft:'+mouseX+';dialogTop:'+mouseY+';');
    if(data != undefined && data != ''){
        text.value = data;
        try{
            eval(funcao);
        }catch(error){}
    }
}
//Retorna o item selecionado de uma LCB
//Se informar o "nmAtributo" retorna o valor do atributo
function getLcbOptionSelected(lcb,nmAtributo){
    for(i=0; i< lcb.options.length; i++)
        if(lcb[i].selected)
            if(nmAtributo != undefined)
                return lcb[i].getAttribute(nmAtributo);
            else
                return lcb[i];
}
/** Selecionar um valor no lcb*/
function setLcbOptionSelected(lcb,valor){ 
    for(i=0; i< lcb.options.length; i++)
        if(valor == lcb[i].value){
            lcb[i].selected = 'selected';
            return;
        }
}
//Verificar se senha no padrao (letras + numeros)
function verificarSenha(comp,tamMin){
    if(comp.value.length > 0 && ehAlfaNumerico(comp)){
        alert('A sua senha deve conter letras e dígitos');
        comp.focus();
        return false;
    }
    if(tamMin > comp.value.length && comp.value.length > 0){
        alert('A sua senha deve conter no mínimo ' + tamMin + ' caracteres!');
        comp.focus();
        return false;
    }
}
/* Atualiza os valores de um componente Select - No sql os campos devem ser CD e DS - Eduardo */
function atualizaLCB(lcb, array){
    for(var i = 0; i < array.length; i++){
        var valor = array[i].CD.valor;
        var texto = array[i].DS.valor;
        novo = document.createElement("option");
        novo.value = valor;
        novo.text = texto;
        lcb.options.add(novo);
    }
}
var camposAlterados = new Array();
function addCampoAlterado(nmCampo){
    if(ehSalvarSomenteAlterados() && !ehCampoAlterado(nmCampo)) {
        camposAlterados[camposAlterados.length] = nmCampo;
    }
}
function ehCampoAlterado(nmCampo){
    return arrayContains(camposAlterados,nmCampo);
}
function limparCamposAlterado(){
    camposAlterados = new Array();
}
function ehSalvarSomenteAlterados(){
    return this.salvarSomenteAlterados;
}

function setPodeEditarPE(nrFrame,opcao){
    getFrame(nrFrame+'_1').podeEditar = opcao;
}

function getPodeEditarPE(nrFrame){
    return getFrame(nrFrame+'_1').podeEditar;
}

function salvarWModelo(nrFrame) {
    if ((camposAlterados != undefined
        && camposAlterados != null
        && camposAlterados.length > 0)) {
        var form = document.getElementById("form-wmodelo");
        if (form != null) {
            for (var i = 0; i < form.elements.length; i++) {
                var elemento = form.elements[i];
                var valor = elemento.value;
                if (elemento.className.indexOf("obrigatorio") > -1
                    && (valor == null || valor == '')) {
                    alert("Alguns campos obrigat\xF3rios n\xe3o foram informados!");
                    elemento.focus();
                    return false;
                }
            }
            dwr.engine.setAsync(false);
            dwrAction.limparCamposFormularioAjax();
            for (i = 0; i < camposAlterados.length; i++) {
                var idAtual = camposAlterados[i];
                var componente = document.getElementById(idAtual);
                if (componente.type == 'checkbox') {
                    valor = componente.checked;
                } else {
                    valor = componente.value;
                }
                dwrAction.addCampoFormularioAjax(idAtual, valor);
            }
            dwrAction.insertUpdateWModeloAjax(nrFrame, function(retorno) {
                if (retorno == 'error') {
                    dwrAction.getErros(processaRetornoErro);
                } else {
            //depoisSalvarFormulario(nrFrame, true);
            }
            });
        } else {
            alert("Não foi poss\xedvel localizar o form para salvar o mesmo!");
            return false;
        }
    }
    return true;
}
