/* Função cadastros_dadosCadastrais_avaliacao(Objeto, Valor)
   Exibe apenas as questões referentes a avaliação selecionada */
function cadastros_dadosCadastrais_avaliacao(Objeto, Valor)
{
    if (Objeto == null)
        return true;
    
    var Linhas = Objeto.childNodes[0];
    
    for (i = 0; i < Linhas.childNodes.length; i++)
    {
        if (Valor == Linhas.childNodes[i].childNodes[0].childNodes[2].innerText)
            Linhas.childNodes[i].style.display = '';
        else
            Linhas.childNodes[i].style.display = 'none';
    }
    
    return true;
}


/* Função cadastros_visita_avaliacao(Objeto, Valor)
   Exibe apenas as questões referentes a avaliação selecionada */
function cadastros_visita_avaliacao(Avaliacao, Dissertativa, Acao, TotalAcao, Valor, pDissertativa, pClientePotencial)
{
    var iDissertativa = Valor.substr(Valor.indexOf('{') + 1, 1);
    var iClientePotencial = Valor.substr(Valor.indexOf('{') + 2, 1);
    
    // Retirando valores informativos do valor
    Valor = Valor.substr(0, Valor.indexOf('{'));
    
    var Linhas;
    
    // Exibindo apenas as perguntas referentes a avaliação selecionada
    if (Avaliacao != null)
    {
        Linhas = Avaliacao.childNodes[0];
        
        for (i = 0; i < Linhas.childNodes.length; i++)
        {
            if (Valor == Linhas.childNodes[i].childNodes[0].childNodes[2].innerText)
                Linhas.childNodes[i].style.display = '';
            else
                Linhas.childNodes[i].style.display = 'none';
        }
    }
    
    // Exibindo apenas as questões dissertativas referentes a avaliação selecionada
    if (Dissertativa != null)
    {
        Linhas = Dissertativa.childNodes[0];
        
        for (i = 0; i < Linhas.childNodes.length; i++)
        {
            if (Valor == Linhas.childNodes[i].childNodes[0].childNodes[2].innerText)
                Linhas.childNodes[i].style.display = '';
            else
                Linhas.childNodes[i].style.display = 'none';
        }
    }
    
    // Exibindo apenas as ações referentes a avaliação selecionada
    if (Acao != null)
    {
        Linhas = Acao.childNodes[0];
        
        var iTotal = 0;
        
        for (i = 0; i < Linhas.childNodes.length; i++)
        {
            if (Linhas.childNodes[i].childNodes.length == 2)
            {
                if (Valor == Linhas.childNodes[i].childNodes[1].childNodes[0].innerText)
                    Linhas.childNodes[i].style.display = '';
                else
                    Linhas.childNodes[i].style.display = 'none';
            }
            else if (Linhas.childNodes[i].childNodes.length == 5)
            {
                if (Valor == Linhas.childNodes[i].childNodes[4].childNodes[0].innerText)
                    Linhas.childNodes[i].style.display = '';
                else
                    Linhas.childNodes[i].style.display = 'none';
            }
            else if (Linhas.childNodes[i].childNodes.length == 6)
            {
                if (Valor == Linhas.childNodes[i].childNodes[5].childNodes[0].innerText)
                {
                    Linhas.childNodes[i].style.display = '';
                    iTotal++;
                }
                else
                    Linhas.childNodes[i].style.display = 'none';
            }
        }
        
        TotalAcao.innerText = '      Total Ações: ' + (iTotal - 1);
    }
    
    // Exibindo os painéis conforme avaliação selecionada
    if (iDissertativa == '1')
        pDissertativa.style.display = '';
    else
        pDissertativa.style.display = 'none';
    
    if (iClientePotencial == '1')
    {
        document.getElementById('dvBotoesAcao').style.display = 'none';
        pClientePotencial.style.display = '';
    }
    else
    {
        document.getElementById('dvBotoesAcao').style.display = '';
        pClientePotencial.style.display = 'none';
    }
    
    return true;
}


/* Função cadastros_visita_beneficio_descricao(Objeto)
   Inclui/Altera/Exclui o benefício da tabela, conforme valor digitado */
function cadastros_visita_beneficio_descricao(Objeto, Total)
{
    var Linhas = Objeto.parentNode.parentNode.parentNode;
    var UltimaLinha = (Objeto == Objeto.parentNode.parentNode.parentNode.childNodes[Objeto.parentNode.parentNode.parentNode.childNodes.length - 2].childNodes[1].childNodes[0]);
    
    if (Objeto.value == '')
    {
        if (!UltimaLinha)
        {
            // Exclui a linha selecionada
            Objeto.parentNode.parentNode.parentNode.removeChild(Objeto.parentNode.parentNode);
            
            // Renomeia os objetos da tabela conforme a linha de cada um
            cadastros_visita_beneficio_rename(Linhas);
            
            // Recalcula o percentual realizado
            cadastros_visita_beneficio_totalizar(Linhas);
        }
    }
    else
    {
        if (UltimaLinha)
        {
            // Clonando e adicionando a nova linha
            var Linha = Objeto.parentNode.parentNode.cloneNode(true);
            Linha.childNodes[1].childNodes[0].value = '';
            Linha.childNodes[2].childNodes[0].childNodes[0].checked = false;
            Linha.childNodes[3].childNodes[0].childNodes[0].checked = false;
            Linha.childNodes[4].childNodes[0].childNodes[0].checked = false;
            Linha.childNodes[5].childNodes[0].value = '';
            Linha.childNodes[6].childNodes[0].value = '0';
            Linha.childNodes[7].childNodes[2].value = '0';
            setProgressValue(Linha.childNodes[7].childNodes[4], 0, true);
            
            Objeto.parentNode.parentNode.parentNode.insertBefore(Linha, Linhas.childNodes[Linhas.childNodes.length - 1]);
            
            // Ajustando valores da linha que foi utilizada
            Objeto.parentNode.parentNode.childNodes[0].childNodes[0].style.display = '';
            Objeto.parentNode.parentNode.childNodes[7].childNodes[0].value = '1';
            
            // Renomeia os objetos da tabela conforme a linha de cada um
            cadastros_visita_beneficio_rename(Linhas);
            
            // Recalcula o percentual realizado
            cadastros_visita_beneficio_totalizar(Linhas);
        }
    }
    
    // Totalizando contados de registros
    Total.innerText = '      Total Benefícios: ' + (Linhas.childNodes.length - 3);
    
    return true;
}


/* Função cadastros_visita_beneficio_exclusao(Objeto)
   Exclui o benefício da tabela */
function cadastros_visita_beneficio_exclusao(Objeto, Total)
{
    if (!confirm('Confirma a exclusão?'))
        return false;
    
    var Linhas = Objeto.parentNode.parentNode.parentNode;
    
    // Exclui a linha selecionada
    Objeto.parentNode.parentNode.parentNode.removeChild(Objeto.parentNode.parentNode);
    
    // Renomeia os objetos da tabela conforme a linha de cada um
    cadastros_visita_beneficio_rename(Linhas);
    
    // Recalcula o percentual realizado
    cadastros_visita_beneficio_totalizar(Linhas);
    
    // Totalizando contados de registros
    Total.innerText = '      Total Benefícios: ' + (Linhas.childNodes.length - 3);
    
    return false;
}


/* Função cadastros_visita_beneficio_rename(Objeto)
   Renomeia os objetos da tabela conforme a linha de cada um */
function cadastros_visita_beneficio_items(Objeto)
{
    var length = 0;
    
    for (i = 1; i < Objeto.parentNode.parentNode.parentNode.childNodes.length - 2; i++)
        length = length + 1;
    
    var Items = new Array(length);
    var index = 0;
    
    for (i = 1; i < Objeto.parentNode.parentNode.parentNode.childNodes.length - 2; i++)
    {
        Items[index] = Objeto.parentNode.parentNode.parentNode.childNodes[i].childNodes[7].childNodes[4];
        index = index + 1;
    }
    
    return Items;
}


/* Função cadastros_visita_beneficio_rename(Objeto)
   Renomeia os objetos da tabela conforme a linha de cada um */
function cadastros_visita_beneficio_rename(Linhas)
{
    var Contador = 2;
    
    for (i = 1; i < Linhas.childNodes.length; i++)
    {
        if (i < Linhas.childNodes.length - 1)
        {
            renameObject(Linhas.childNodes[i].childNodes[0].childNodes[0], Contador);
            renameObject(Linhas.childNodes[i].childNodes[1].childNodes[0], Contador);
            renameObject(Linhas.childNodes[i].childNodes[2].childNodes[0].childNodes[0], Contador);
            renameObject(Linhas.childNodes[i].childNodes[3].childNodes[0].childNodes[0], Contador);
            renameObject(Linhas.childNodes[i].childNodes[4].childNodes[0].childNodes[0], Contador);
            renameObject(Linhas.childNodes[i].childNodes[5].childNodes[0], Contador);
            renameObject(Linhas.childNodes[i].childNodes[6].childNodes[0], Contador);
            renameObject(Linhas.childNodes[i].childNodes[7].childNodes[0], Contador);
            renameObject(Linhas.childNodes[i].childNodes[7].childNodes[2], Contador);
        }
        else
        {
            renameObject(Linhas.childNodes[i].childNodes[1].childNodes[0], Contador);
            renameObject(Linhas.childNodes[i].childNodes[1].childNodes[2], Contador);
        }
        
        Contador++;
    }
    
    return true;
}


/* Função cadastros_visita_beneficio_status(Objeto)
   Atualiza e calcula a média do status */
function cadastros_visita_beneficio_status(Objeto)
{
    Objeto.value = passaDominio(Objeto.value, '0123456789');
    
    if ((Objeto.value == '') || (parseInt(Objeto.value) > 100))
	{
        window.alert('O percentual deve variar entre 0 e 100%!');
        Objeto.value = '0';
        Objeto.focus();
	}
	
    // Atualizando txtStatus2
    Objeto.parentNode.parentNode.childNodes[7].childNodes[2].value = Objeto.value;
    
    if (Objeto.parentNode.parentNode.childNodes[7].childNodes[0].value == '1')
    {
        // Atualizando e calculando a média do status
        blurMedia(Objeto, Objeto.parentNode.parentNode.childNodes[7].childNodes[4], Objeto.parentNode.parentNode.parentNode.childNodes[Objeto.parentNode.parentNode.parentNode.childNodes.length - 1].childNodes[1].childNodes[4], cadastros_visita_beneficio_items(Objeto), true);
        
        // Atualizando txtStatus2
        Objeto.parentNode.parentNode.parentNode.childNodes[Objeto.parentNode.parentNode.parentNode.childNodes.length - 1].childNodes[1].childNodes[2].value = getProgressValue(Objeto.parentNode.parentNode.parentNode.childNodes[Objeto.parentNode.parentNode.parentNode.childNodes.length - 1].childNodes[1].childNodes[4]);
    }
    else
        setProgressValue(Objeto.parentNode.parentNode.childNodes[7].childNodes[4], Objeto.value, true);
    
    return true;
}


/* Função cadastros_visita_beneficio_totalizar(Objeto)
   Totaliza o percentual realizado */
function cadastros_visita_beneficio_totalizar(Linhas)
{
    var Sum = new Number();
    var Count = new Number();
    
    Sum = 0;
    Count = 0;
    for (i = 1; i < Linhas.childNodes.length - 2; i++)
    {
        Sum = Sum + parseInt(Linhas.childNodes[i].childNodes[6].childNodes[0].value);
        Count = Count + 1;
    }
    
    if (Count == 0)
    {
        Linhas.childNodes[Linhas.childNodes.length - 1].childNodes[1].childNodes[2].value = 0;
        setProgressValue(Linhas.childNodes[Linhas.childNodes.length - 1].childNodes[1].childNodes[4], 0, true);
    }
    else
    {
        Linhas.childNodes[Linhas.childNodes.length - 1].childNodes[1].childNodes[2].value = (Sum / Count).toFixed(0);
        setProgressValue(Linhas.childNodes[Linhas.childNodes.length - 1].childNodes[1].childNodes[4], (Sum / Count).toFixed(0), true);
    }
    
    return true;
}


/* Função cadastros_visita_resposta(Objeto, Resultado)
   Calcula a pontuação da questão e totaliza conforme opção(ões) selecionada(s) */
function cadastros_visita_resposta(Objeto, Resultado)
{
    var Avaliacao = Objeto.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.childNodes[2].innerText;
    
    var Linhas = Objeto.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
    var Linhas2;
    
    var SubTotal1;
    var SubTotal2;
    
    var Total1 = 0;
    var Total2 = 0;
    
    var Peso;
    
    for (i = 0; i < Linhas.childNodes.length; i++)
    {
        if (Linhas.childNodes[i].childNodes[0].childNodes[0].innerText != '2')
            continue;
        
        if (Avaliacao != Linhas.childNodes[i].childNodes[0].childNodes[2].innerText)
            continue;
        
        var Linhas2 = Linhas.childNodes[i].childNodes[0].childNodes[6].childNodes[0].childNodes[0].childNodes[1].childNodes[0].childNodes[0];
        
        var SubTotal1 = 0;
        var SubTotal2 = 0;
        
        for (j = 1; j < Linhas2.childNodes.length; j = j + 1)
        {
            Peso = Linhas2.childNodes[j].childNodes[2].childNodes[0].innerText;
            Peso = Peso.substr(Peso.indexOf(',') + 1);
            
            if (Linhas2.childNodes[j].childNodes[0].childNodes[0].childNodes[0].checked)
            {
                SubTotal1 = SubTotal1 + parseInt(Peso);
                Total1 = Total1 + parseInt(Peso);
            }
            
            if (Linhas2.childNodes[j].childNodes[1].childNodes[0].childNodes[0].checked)
            {
                SubTotal2 = SubTotal2 + parseInt(Peso);
                Total2 = Total2 + parseInt(Peso);
            }
        }
        
        Linhas2.parentNode.parentNode.childNodes[2].childNodes[0].childNodes[0].childNodes[1].childNodes[0].innerText = SubTotal1;
        Linhas2.parentNode.parentNode.childNodes[2].childNodes[0].childNodes[1].childNodes[1].childNodes[0].innerText = SubTotal2;
    }
    
    // Capturando patamares do critério de pontuação
    var Patamar = Resultado.childNodes[0].childNodes[3].childNodes[0].childNodes[0].innerText;
    
    var Patamar1_1 = Patamar.substr(0, Patamar.indexOf('-'));
    var Patamar1_2 = Patamar.substr(Patamar.indexOf('-') + 1);
    
    Patamar = Resultado.childNodes[0].childNodes[3].childNodes[1].childNodes[0].innerText;
    
    var Patamar2_1 = Patamar.substr(0, Patamar.indexOf('-'));
    var Patamar2_2 = Patamar.substr(Patamar.indexOf('-') + 1);
    
    Patamar = Resultado.childNodes[0].childNodes[3].childNodes[2].childNodes[0].innerText;
    
    var Patamar3_1 = Patamar.substr(0, Patamar.indexOf('-'));
    var Patamar3_2 = Patamar.substr(Patamar.indexOf('-') + 1);
    
    // Atualizando pontuação total da avaliação
    var Meta = Resultado.childNodes[0].childNodes[0].childNodes[0].childNodes[0];
    Meta.innerText = 'Meta de Atingimento: ' + Total1 + ' Ponto(s)';
    if ((Total1 >= parseInt(Patamar1_1)) && (Total1 <= parseInt(Patamar1_2)))
        Meta.parentNode.style.background = 'RGB(255, 106, 106)';
    else if ((Total1 >= parseInt(Patamar2_1)) && (Total1 <= parseInt(Patamar2_2)))
        Meta.parentNode.style.background = 'RGB(255, 225, 108)';
    else if ((Total1 >= parseInt(Patamar3_1)) && (Total1 <= parseInt(Patamar3_2)))
        Meta.parentNode.style.background = 'RGB(102, 204, 102)';
    
    var PontuacaoAtingida = Resultado.childNodes[0].childNodes[1].childNodes[0].childNodes[0];
    PontuacaoAtingida.innerText = 'Pontuação Real: ' + Total2 + ' Ponto(s)';
    if ((Total2 >= parseInt(Patamar1_1)) && (Total2 <= parseInt(Patamar1_2)))
        PontuacaoAtingida.parentNode.style.background = 'RGB(255, 106, 106)';
    else if ((Total2 >= parseInt(Patamar2_1)) && (Total2 <= parseInt(Patamar2_2)))
        PontuacaoAtingida.parentNode.style.background = 'RGB(255, 225, 108)';
    else if ((Total2 >= parseInt(Patamar3_1)) && (Total2 <= parseInt(Patamar3_2)))
        PontuacaoAtingida.parentNode.style.background = 'RGB(102, 204, 102)';
    
    return true;
}


/* Função cadastros_visita_status(Objeto)
   Exibe painel do relatório conforme status selecionado */
function cadastros_visita_status(Objeto, BotoesVisita, Relatorio)
{
    for (i = 3; i < Objeto.childNodes.length; i = i + 2)
    {
        if (Objeto.childNodes[i].selected)
        {
            if ((Objeto.childNodes[i].value == 1) || (Objeto.childNodes[i].value == 2))
            {
                BotoesVisita.style.display = '';
                Relatorio.style.display = 'none';
            }
            else
            {
                BotoesVisita.style.display = 'none';
                Relatorio.style.display = '';
            }
       }
    }
    
    return true;
}
