// JavaScript Document

//OBJETOS

//OBJETO PROFISSIONAL
//================================
//COLEÇÃO   PROFISSIONAIS   COLEÇÃO DE PROFISIONAIS
//CAMPO     NOME            NOME DO PROFISIONAL
//CAMPO     FUNCAO          FUNÇÃO QUE O PROFISSIONAL EXERCE

//MÉTODO    ADICIONAR       ADICIONA UM NOVO PROFISSIONAL À COLEÇÃO PROFISSIONAIS
//MÉTODO    REMOVER         REMOVE UM PROFISSIONAL DA COLEÇÃO DE PROFISSIONAIS
//================================

function Profissional()
{
    var T=this;
    T.Profissionais = new Array();
    
    function Profissionais(p_Nome, p_Funcao)
    {
        var T=this;
        T.Nome = p_Nome;
        T.Funcao = p_Funcao;
    }
    
    T.Adicionar = function (p_Nome, p_Funcao)
    {
        T.Profissionais[T.Profissionais.length] = new Profissionais (p_Nome, p_Funcao);
    }
    
    T.Remover = function (p_Indice)
    {
        T.Profissionais.splice(p_Indice, 1);
    }
}

//OBJETO CREDENCIAMENTO
//================================
//COLEÇÃO       ITEMS       COLEÇÃO DE PROFISIONAIS
//PROPRIEDADE   NOME        NOME DO PROFISIONAL
//PARÂMETRO     FUNCAO      FUNÇÃO QUE O PROFISSIONAL EXERCE
//MÉTODO        ADICIONAR   ADICIONA UM NOVO PROFISSIONAL À COLEÇÃO PROFISSIONAIS
//MÉTODO        REMOVER     REMOVE UM PROFISSIONAL DA COLEÇÃO DE PROFISSIONAIS
//================================

function Credenciamento()
{
    T = this;
    T.Nome;
    T.Endereco;
    T.Email;
    T.Site;
    T.Telefone;
    T.Fax;
    T.Profissional = new Profissional();
    return T;
}

//FIM OBJETOS
//================================

//INTERFACE
//================================

window.onload = function ()
{
}

//FUNÇÕES

//REMOVE UM PROFISSIONAL DA COLEÇÃO PROFISSIONAIS
function removerProfissionalCredenciado(p_Indice)
{
    if (typeof(credenciamento) != "object")
    {
        credenciamento = new Credenciamento();
    }
    
    credenciamento.Profissional.Remover(p_Indice);
    escreveProfissionalCredenciado(credenciamento.Profissional);
    
    if (credenciamento.Profissional.Profissionais.length == 0)
    {
        document.getElementById('profissionais').innerHTML = "-";
    }
    escreveParametroOcultoDoProfissional();
}

//ADICIONA UM NOVO PROFISSIONAL À COLEÇÃO PROFISSIONAIS
function adicionarProfissionalCredenciado()
{
    validaDadosDoProfissional();
    if (strErros.length > 0)
    {
        alert (strErros);
    }
    else
    {
        var txtNome = document.getElementById('txtNome');
        var txtFuncao = document.getElementById('txtFuncao');
        
        if (typeof(credenciamento) != "object")
        {
            credenciamento = new Credenciamento();
        }
        
        credenciamento.Profissional.Adicionar (txtNome.value,txtFuncao.value);
        escreveProfissionalCredenciado(credenciamento.Profissional);

        txtNome.value = "";
        txtFuncao.value = "";
    }
    escreveParametroOcultoDoProfissional();
}

//ESCREVE PROFISSIONAIS NO CAMPO HIDDEN
function escreveParametroOcultoDoProfissional()
{    
    if (typeof(credenciamento) != "object")
    {
        credenciamento = new Credenciamento();
    }
    
    var hidden = document.getElementById('hddProfissionais');
    var strValor = "";
    
    for (var i=0; i<credenciamento.Profissional.Profissionais.length; i++)
    {
        if (strValor.length > 0)
        {
            strValor += ',';
        }
        strValor += credenciamento.Profissional.Profissionais[i].Nome + "#" + credenciamento.Profissional.Profissionais[i].Funcao;
    }
    hidden.value = strValor;
}

//ESCREVE OS PROFISIONAIS NA TELA
function escreveProfissionalCredenciado(p_Profissional)
{
    var lista = document.getElementById('profissionais');
    strHTML = '';
    for (var i=0; i<p_Profissional.Profissionais.length; i++)
    {
        strHTML += '<li><a href="javascript:removerProfissionalCredenciado(' + i + ');"><img src="/util/img/bullet_excluir.jpg" border="0" align="middle" alt="Excluir Profissional da Lista"></a> ' + p_Profissional.Profissionais[i].Nome + ', <i>' + p_Profissional.Profissionais[i].Funcao + '</i></li>';
    }
    lista.innerHTML =  strHTML;   
}

//VALIDA OS CAMPOS DO PROFISSIONAL
function validaDadosDoProfissional()
{
    strErros = "";
    var Controles = new Array()
    Controles[0] = document.getElementById('txtNome');
    Controles[1] = document.getElementById('txtFuncao');
    
    var Campos = new Array()
    Campos[0] = "Nome";
    Campos[1] = "Função";
    
    for (var i=0; i<Controles.length; i++)
    {
        if (Controles[i].value == "")
        {
            if (strErros.length > 0)
            {
                strErros += "\n";
            }
            strErros += "Digite o " + Campos[i] + ".";
        }
        else if (Controles[i].value.length < 4)
        {
            if (strErros.length > 0)
            {
                strErros += "\n";
            }
            strErros += Campos[i] + " deve ter pelo menos 4 caracteres.";
        }
    }
}