$(document).ready(function(){
    $("#resultado_tabela").pageLoadingHTML(function() {
        $("tr:odd").addClass('odd').css('z-index','0');
    });

    $('#down_busca_categoria_aula').click(function () {
        loading = true;
        $('#down_busca_categoria_aula').removeClass("busca_categoria_aula");
        $('#down_busca_categoria_aula').addClass("busca_categoria_aula_selected");
        $('#down_busca_categoria_colecao_aula').addClass("busca_categoria_colecao_aula");
        $('#down_busca_categoria_colecao_aula').removeClass("busca_categoria_colecao_aula_selected");
        $('#resultado').empty();
        document.getElementById('buscaavancada').action = "resultadoBuscarAulas.html";
        document.getElementById('botaoListarTodos').href = "resultadoBuscarAulas.html";
        return false;
    });

    $('#down_busca_categoria_colecao_aula').click(function () {
        loading = true;
        $('#down_busca_categoria_aula').removeClass("busca_categoria_aula_selected");
        $('#down_busca_categoria_aula').addClass("busca_categoria_aula");
        $('#down_busca_categoria_colecao_aula').addClass("busca_categoria_colecao_aula_selected");
        $('#down_busca_categoria_colecao_aula').removeClass("busca_categoria_colecao_aula");
        $('#resultado').empty();
        document.getElementById('buscaavancada').action = "resultadoBuscarColecoesAulas.html";
        document.getElementById('botaoListarTodos').href = "resultadoBuscarColecoesAulas.html";
        return false;
    });


    $(function(){ 
        $('.igualar_altura').equalHeights();
    });

    var regrasValidacaoEnviarConvite = {
        campos: [
        {
            id: 'mensagemIntegrantes',
            tipo: 'requerido'
        }
        ]
    };
    if(document.getElementById('mensagem')){
        $.validar('#mensagem', regrasValidacaoEnviarConvite);
    }

    $("#buscar").submit(function(){
        $("#buscar").find(".campoInvalido").remove();
        var busca = $.trim($("#busca").val());
        if(busca == undefined || busca == null || busca == '') {
            $("#buscar").find("input[name='ok']").after('<em class="campoInvalido">Este campo é obrigatório</em>');
            return false;
        }
        return true;
    });


    /**
     *Configuracao do Editor de aula
     *
     */

    var paginaAtual = window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1);
    if((paginaAtual == 'buscarAulas.html') || (paginaAtual == 'resultadoBuscarAulas.html') || (paginaAtual == 'resultadoBuscarColecoesAulas.html'))
        carregarModalidades();
    var anchor = '#resultado';
    if( (paginaAtual == 'resultadoBuscarAulas.html' || paginaAtual == 'resultadoBuscarColecoesAulas.html')  && window.location.toString().search(anchor)==-1)
        window.location += anchor;
    $('#buscaavancada  :radio').change(carregarModalidades);
    $('#modalidade').change(carregarComponentes);
    $('#componentecurricular').change(carregarTemas);

    var index = $.jqURL.get("ordem");
    if(index != null && index != undefined) {
        $('#ordemclassificacao').val(index);
    }
    
    $('#municipio').attr('disabled', 'disabled');
    /**
     * Função que fará requisição dos municipios de uma uf e preenchera o combo
     * de municípios.
     * @author Rafael Antunes Torquato Araujo.
     */
    $('#uf').change(function(){
        $("#municipio").removeAttr("disabled");
        $('#municipio').empty();
        $('#municipio').append("<option value=''>Aguarde...</option>");
        $("#municipio").attr('disabled', 'disabled');
        $.post("ajax", {
            tipo: "MunicipioPorUf",
            uf: $('#uf').val()
        },
        function(dados){
            $("#municipio").removeAttr("disabled");
            $('#municipio').empty();
            $('#municipio').append("<option value=''>--Selecione um município--</option>");
            $.each(dados, function() {
                $('#municipio').append("<option value='" + this.id + "'>" + this.nome + "</option>");
            });
            $('#municipio').focus();
        },
        "json");
    });
    /**
     * Evento do botão de buscar integrandes.
     * Quando o usuário clicar no botão só enviará se o usuário escolher pelo
     * menos uma opção de busca.
     * @author Rafael Antunes Torquato Araujo.
     */
    $('#bt_buscar_integrantes').click(function(){
        var parametros = $("#buscar_integrantes").serialize();
        var arrayParametros = parametros.split('&');
        //indica se a requisição irá ser feita ou não.
        enviar = false;
        //verifica se pelo menos um parametro foi selecionado.
        for(i = 0; i < arrayParametros.length; i++){
            //verifica se o último caractere existe e se ele é algo que tenha valor
            //(diferente de =)
            separados = arrayParametros[i].split('=');
            if(separados[0] != 'etapaAtual' &&
                separados[0] != 'ids_adicionados' &&
                separados[0] != 'procurar' &&
                separados[1] && $.trim(separados[1]) != ''){
                enviar = true;
                $('#buscar_integrantes_msg').remove();
                break;
            }
        }
        //somente envia a requisição se pelo menos um parametro for preenchido
        if(enviar){
            $('#opcaoVazia').remove();
            $(".loader").css('display', 'block');
            $.get("buscarUsuarios.html?" + parametros, '',
                //cria a tabela que irá listar os usuários encontrados.
                function(html){
                    $('#resultado_busca').empty();
                    $('#resultado_busca').append(html);
                    $(".loader").css('display', 'none');
                    /**
                    * Remove o compo inválido quando o usuário seleciona no combo de area de atuação.
                    */
                    $('.areaInstituicao').each(function(){
                        $(this).change(function(){
                            $(this).parent().find('.campoInvalido').remove();
                        })
                    })
                    $('#lista_buscar_usuario > li').not('.atual').click(function(){
                        clickPaginacao($(this), 'resultado_busca', 'buscar_usuario');
                        return false;
                    })
                },
                "html");
        }else{
            //Se usuário não selecionou nenhuma opção de busca
            $('#opcaoVazia').remove();
            $('#bt_buscar_integrantes').after('<em class="campoInvalido" id="opcaoVazia">Selecione pelo menos uma op&ccedil;&atilde;o.</em>')
        }
        return false;
    });

    //regras para validar cadastrar equipe
    var regrasCadastrarEquipe = {
        campos:
        [
        {
            id:'nomeDaEquipe',
            tipo:"requerido",
            min:'1',
            max:'300'

        },
        {
            id:"instituicao_atuacao",
            tipo:"requerido"
        },
        {
            id:"descricao_equipe",
            tipo:"requerido",
            min:'1',
            max:'500'
        }
        ]
    }
    $.validar("#criarequipe",regrasCadastrarEquipe);

    $("#descricao_equipe").keyup( function () {
        var tamanhoTotal = 500;
    })

    /**
    .htm * Valida a existencia de caracteres especiais
     */
    $("#nomeDaEquipe").keyup( function () {
        var nome = $("#nomeDaEquipe").val();
        re = new RegExp("^[a-zA-Z0-9àáâãéêíóôõúüçÀÁÂÃÉÊÍÓÔÕÚÜÇ\ ]{3,300}$");
        if(nome.length<3 || nome.length>300){
            $.adicionarMensagemErro("nomeDaEquipe", "Tamanho inválido");
            $("#submitDadosEquipe").attr("disabled", "disabled");
        }
        else
        if(re.exec(nome)){
            $("#submitDadosEquipe").removeAttr("disabled");
            $.adicionarMensagemCampoOK("nomeDaEquipe");
        }else{
            $.adicionarMensagemErro("nomeDaEquipe", "Caracteres inválidos no nome");
            $("#submitDadosEquipe").attr("disabled", "disabled");
        }
    });

    /**
     * valida o nome da equipe, para saber se é existente
     */
    $("#nomeDaEquipe").blur( function () {
        var nome = $("#nomeDaEquipe").val();
        re = new RegExp("^[a-zA-Z0-9àáâãéêíóôõúüçÀÁÂÃÉÊÍÓÔÕÚÜÇ\ ]{3,300}$");
        if(nome.length<3 || nome.length>300){
            $.adicionarMensagemErro("nomeDaEquipe", "Tamanho inválido");
            $("#submitDadosEquipe").attr("disabled", "disabled");
        } else
        if(re.exec(nome)){
            $.post("ajax",{
                tipo: "ValidarNomeEquipe",
                nome: $('#nomeDaEquipe').val()
            },
            function(data){
                if(data == true){
                    $("#submitDadosEquipe").removeAttr("disabled");
                    $.adicionarMensagemCampoOK("nomeDaEquipe");
                }else{
                    $.adicionarMensagemErro("nomeDaEquipe", "Nome da equipe já existe");
                    $("#submitDadosEquipe").attr("disabled", "disabled");
                }
            });
        }else{
            $.adicionarMensagemErro("nomeDaEquipe", "Caracteres inválidos no nome");
            $("#submitDadosEquipe").attr("disabled", "disabled");
        }
    } );
    //se estiver na pagina buscar integrantes e existirem integrantes.
    if($('#ids_adicionados').val()){
        buscarIntegrantes();
    }
    //se estiver na página de enviar convites, monta a tabela de listagem de integrantes.
    if($('#integrantesEquipe').attr('id')){
        $.post('buscarIntegrantes.html', '', function(usuariosEquipe){
            listarIntegrantesEquipe(usuariosEquipe, 'integrantesEquipe');
        }, "json");
    }

    $('#btnCriarEquipe').click(function(){
        if(!$('#ids_adicionados').val()){
            $('#semIntegrantes').remove();
            $('#btnCriarEquipe').after('<em class="campoInvalido" id="semIntegrantes">Adicione Integrantes para a equipe.</em>')
            return false;
        }
        $('#semIntegrantes').remove();
    });
    /**
     * Evento que adicionará o que o usuário esta informando na mensagem final
     */
    $('#mensagemIntegrantes').keyup(function(){
        $('#mensagemFinal').empty();
        valor = $('#mensagemIntegrantes').val();
        if(valor.length > 1000){
            $('#mensagemIntegrantes').val(valor.substr(0, 999));
        }else{
            $('#mensagemFinal').append(valor);
        }
        max = $(this).attr("max");
        tamanhoCampo = $(this).val().length;
        //Retira do valor do elemento o que foi adicionado a mais que max
        if(tamanhoCampo > max){
            $(this).val($(this).val().substr(0, tamanhoCampo - (tamanhoCampo - max)));
        }
        if((tamanhoCampo - max) == 1 || (tamanhoCampo - max) == 0){
            $(this).prev().find('span').html('Resta 0 caractere.');
        } else if(tamanhoCampo < max){
            $(this).prev().find('span').html('Restam '+(max - tamanhoCampo)+' caracteres.');
        } else if(tamanhoCampo > max){
            $(this).prev().find('span').html('Resta 0 caractere.');
        }
        if(tamanhoCampo == 0){
            $(this).prev().find('span').html('O campo deve conter até ' + max + ' caracteres.');
        }
    })
    //////////////////////////////Página equipe.jsp/////////////////////////////////
    if($('#equipe')){
        //se clicou em aceitar convite
        $('#aceitarConvite').click(function(){
            $(this).parent().append('<input type="hidden" name="status" value="3" />');
            $(this).parent().submit();
        });
        //se clicou em recusar convite
        $('#recusarConvite').click(function(){
            $(this).parent().append('<input type="hidden" name="status" value="1" />');
            $(this).parent().submit();
        });
    }

    /**
     * Busca tipo de criacao de aulas
     */
    $("input[name='tipo_de_pesquisa_criar_aula']").change(function(){
        $('#tipo_modalidade_ensino').empty();
        $('#combo_componente_curricular').empty();
        $.post("ajax", {
            "tipo":"buscarNivelEnsinoModalidade",
            "tipoModalidadeEnsino":$(this).val()
        }, function(data){
            var o = document.createElement('option');
            o.setAttribute ("value", this.id);
            var t = document.createTextNode ("Selecione...");
            $('#tipo_modalidade_ensino').append(o);
            $.each(data,function(){
                var o = document.createElement('option');
                o.setAttribute ("value", this.id);
                var t = document.createTextNode (this.nome);
                o.appendChild (t);
                $('#tipo_modalidade_ensino').append(o);
            });
        }, 'json');
    });
    /**
     * Busca de componente curricular quando houver alteracoes em modalidade de ensino
     */
    $('#tipo_modalidade_ensino').change(function(){
        $('#combo_temas').empty();
        var idTipoModalidade = $("input[name='tipo_de_pesquisa_criar_aula']:checked").val();
        $.post("ajax", {
            "tipo":"listarComponenteCurricularPorModalidade",
            "tipoModalidadeEnsino":idTipoModalidade,
            "modalidadeEnsino":$(this).val()
        }, function(data){
            $('#combo_componente_curricular').empty();
            var o = document.createElement('option');
            o.setAttribute ("value", this.id);
            var t = document.createTextNode ("Selecione");
            o.appendChild (t);
            $('#combo_componente_curricular').append(o);
            $.each(data,function(){
                var o = document.createElement('option');
                o.setAttribute ("value", this.id);
                var t = document.createTextNode (this.nome);
                o.appendChild (t);
                $('#combo_componente_curricular').append(o);
            });
        }, "json");
    });
    /**
     * Busca de temas quando houver alteracoes em Componente curricular
     */
    $('#combo_componente_curricular').change(function(){
        $('#combo_temas').empty();
        var modalidadeId = $("#tipo_modalidade_ensino").val();
        var componenteId = $(this).val();
        var tipoDeModalidade = $("input[name='tipo_de_pesquisa_criar_aula']:checked").val();
        $.post("ajax", {
            "tipo":"buscaTemasPorModalidadeEComponenteCurricular",
            "modalidadeEnsino":modalidadeId,
            "componenteCurricular":componenteId,
            "tipoModalidadeEnsino":tipoDeModalidade
        }, function(data){
            $.each(data,function(){
                var o = document.createElement('option');
                o.setAttribute ("value", this.id);
                var t = document.createTextNode (this.nome);
                o.appendChild (t);
                $('#combo_temas').append(o);
            });
        }, "json");
    });

    /**
     * Limpa o formulario de busca de temas
     */
    $('#lnk_nova_busca_temas').click(function(){
        $('#combo_componente_curricular').empty();
        $('#tipo_modalidade_ensino').empty();
        $('#combo_temas').empty();
        return false;
    });
    /**
     * Adiciona o tema na tabela caso ele não existir
     */
    $('#bt_adicionar_tema').click(function(){
        $('#erro_temas').html(''); // limpa a mensagem de erro
        $.each($('#combo_temas option'), function(){ // para cada elemento selecionado
            if($(this).attr('selected') == true){ // é verificado se o mesmo nao está na tabela atual
                var temaAtual = $(this).val();// criacao da linha a ser inserida na tabela
                var linha ="<tr  class='estruturaCurricular'  tema=\""+$(this).val()+"\"  modalidade=\""+$('#tipo_modalidade_ensino').val()+"\"  componente=\""+$('#combo_componente_curricular').val()+"\">";
                linha += "<td><a id=\"lnk_remover_tema_tabela\"  class='remover'   onclick=\"removerTemaTabela(this)\"  rel=\""+$(this).val()+"\" >Remover</a></td>";
                linha +="<td>"+$('#tipo_modalidade_ensino option:selected').text()+"</td>";
                linha +="<td>"+$('#combo_componente_curricular option:selected').text()+"</td>";
                linha +="<td>"+$(this).text()+"</td></tr>";
                var existente = false;
                $('#tabela_temas_aula tr').each(function(){
                    if($(this).attr('tema') == temaAtual){
                        existente = true;
                        $('#erro_temas').html("Extrutura curricular existente.");
                    }
                });
                if(existente == false)
                    $('#tabela_temas_aula').append(linha);
            }
        });
        return false;
    });
    /**
     * Controla a quantidade de caracteres restantes no campo iraaprender
     */
    $('#iraaprender').keyup(function(){
        $('#spanCaracteresIraAprender').html("Restam "+(2000 - $(this).val().length)+" caracteres");
    });

    $('#conhecimentos_previos').keyup(function(){
        $('#spanconhecimentos_previos').html("Restam "+(500 - $(this).val().length)+" caracteres");
    });

    $('#recursos_complementares').keyup(function(){
        $('#spanrecursos_complementares').html("Restam "+(500 - $(this).val().length)+" caracteres");
    });
    $('#avaliacao').keyup(function(){
        $('#spanavaliacao').html("Restam "+(2000 - $(this).val().length)+" caracteres");
    });

    /**
     *
     */
    $('#visualizar_aula_cadastro').click(function(){
        atualizarEditores();
    });

    /**
     *Quando formulario de cadastro de aula for submetido,
     *será varrido as tabelas de recursos educacionais e temas curriculares e inseridos
     *os mesmos em input type hidden.
     */
    $("#form_inserir_aula").submit(function(event){
        // indica se o usuario esta de acordo com os termos da aula
        publico  = document.getElementById('publico');
        // esconde mensagens de erro
        $('#erro_validacao_aula').fadeOut();
        // Esconde mensagens de termos de atualizacao
        $('#strong_termos').remove();

        atualizarEditores();
        var temas = getTemas();

        $('#temas').val(temas);

        var recursos = "";
        $('#tabelaRecursosEducacionais tr').each(function(i){
            if($('#tabelaRecursosEducacionais tr').length == (i+1)){
                if($(this).attr('rel') != undefined)
                    recursos = recursos + $(this).attr('rel');
            }else{
                if($(this).attr('rel') != undefined)
                    recursos = recursos + $(this).attr('rel')+",";
            }
        });
        $('#recursos').val(recursos);


        /**
         *Validando a Aula
         */
        htmlErro = "";
        if($('#tabela_temas_aula > tbody > tr').length < 1)
            htmlErro += "<li>Você deve selecionar ao menos uma estrutura curricular.</li>";
        if($('#titulo').val() == ""  || $('#titulo').val().length < 1)
            htmlErro += "<li>O título deve ser preenchido.</li>";
        if($('#atividades').val() == ""  || $('#atividades').val().length < 1)
            htmlErro += "<li>Duração das atividades deve ser preenchido.</li>";
        if($('#iraaprender').val() == ""  || $('#iraaprender').val().length < 6)
            htmlErro += "<li>O que o aluno irá aprender deve ser preenchido.</li>";
        if($('#avaliacao').val() == ""  || $('#avaliacao').val().length < 6)
            htmlErro += "<li>Avaliação deve ser preenchido.</li>";
        if($.trim($('#estrategiasRecursos').val()) == ""  || $.trim($('#estrategiasRecursos').val()).length < 6)
            htmlErro += "<li>Estratégia e recursos deve ser preenchido.</li>";
        if($('#coAutores').val().length > 500)
            htmlErro +="<li>Co-Autores pode ter no máximo 500 caracteres.</li>";
        if($('#iraaprender').val().length > 1999)
            htmlErro +="<li>O que o aluno irá aprender com a aula pode ter no máximo 2000 carateres.</li>";
        if($('#atividades').val().length > 1999)
            htmlErro +="<li>Campo Atividades pode ter no máximo 2000 carateres.</li>";
        if($('#conhecimentos_previos').val().length > 1999)
            htmlErro +="<li>Campo conhecimento prévio pode ter no máximo 2000 carateres.</li>";
        if($('#recursos_complementares').val().length > 1999)
            htmlErro +="<li>Campo recursos complementares pode ter no máximo 2000 carateres.</li>";
        if($('#avaliacao').val().length > 1999)
            htmlErro +="<li>Campo avaliação pode ter no máximo 2000 carateres.</li>";
        if(publico.checked == false && $('#aulaPublica').val() == 'true'){
            htmlErro += "<li'>É necessário concordar com os termos de utilizaçao.</li>";
        }
        
        if(document.getElementById('entidade')){
            if($('#entidade').val() == ""  || $('#entidade').val() == null)
                htmlErro +="<li>Uma entidade deve ser selecionada.</li>";
        }
        if(htmlErro.length > 0){
            $('#erro_validacao_aula').html(htmlErro);
            $('#erro_validacao_aula').fadeIn("slow");

        }
        return (htmlErro.length < 1);
    });

    $('#salvar_aula_publica').click(function(){
        atualizarEditores();
        $('#aulaPublica').val('true');
    });
    $('#salvar_aula_privada').click(function(){
        atualizarEditores();
        $('#aulaPublica').val('false');
    });

    if($('#visualizar_aula')){
        $('#formComentar').hide();
        $('#comentarioUf').attr('disabled', 'disabled');
        $('#comentarioMunicipio').attr('disabled', 'disabled');
        $('#comentarioTipoInstituicao').attr('disabled', 'disabled');
        $('#comentarioInstituicao').attr('disabled', 'disabled');

        //Validação dos formulários

        var regrasValidacaoComentarioLogado = {
            campos:
            [
            {
                id:"comentarioOpniao",
                tipo:"tamanho",
                min:'1',
                max:'500'
            },
            {
                id:"comentarioOpniao",
                tipo:"requerido"
            },
            {
                id:'nota',
                tipo:'requerido'
            }
            ]
        }
        if(document.getElementById('formularioComentarioAulaLogado')){
            $.validar("#formularioComentarioAulaLogado",regrasValidacaoComentarioLogado);
        }
        var regrasValidacaoComentarioNaoLogado = {
            campos:
            [
            {
                id:"comentarioOpniao",
                tipo:"tamanho",
                min:'1',
                max:'500'
            },
            {
                id:"comentarioOpniao",
                tipo:"requerido"
            },
            {
                id:'nota',
                tipo:'requerido'
            },
            {
                id:'comentarioNome',
                tipo:'requerido'
            },
            {
                id:'comentarioEmail',
                tipo:'email'
            },{
                id:'comentarioPais',
                tipo:'requerido'
            }
            ]
        }
        if(document.getElementById('formularioComentarioAulaNaoLogado')){
            $.validar("#formularioComentarioAulaNaoLogado", regrasValidacaoComentarioNaoLogado);
        }

        var regrasValidacaoComentarioNaoLogadoBrasil = {
            campos:
            [
            {
                id:"comentarioOpniao",
                tipo:"tamanho",
                min:'1',
                max:'500'
            },
            {
                id:"comentarioOpniao",
                tipo:"requerido"
            },
            {
                id:'nota',
                tipo:'requerido'
            },
            {
                id:'comentarioNome',
                tipo:'requerido'
            },
            {
                id:'comentarioEmail',
                tipo:'email'
            },{
                id:'comentarioPais',
                tipo:'requerido'
            },{
                id:'comentarioUf',
                tipo:'requerido'
            },{
                id:'comentarioMunicipio',
                tipo:'requerido'
            },{
                id:'comentarioInstituicao',
                tipo:'tamanho',
                min:'1',
                max:'100'
            },{
                id:'comentarioInstituicao',
                tipo:'requerido'
            }
            ]
        }

        //se clicado botão de comentar esconde comentários e exibe form
        $('.btnComentarAula').click(function(){
            $('#opiniao').hide();
            $('#formComentar').show();
            $('#formComentar').focus();
        })
        //se clicado no botão de cancelar esconde o formulário e exibe os comentários
        //se clicado no botão de cancelar esconde o formulário e exibe os comentários
        $('.btnComentarioCancelar').click(function(){
            $('#formComentar :input').each(function(){
                $(this).val("");
            })
            $('#formComentar .campoValido').each(function(){
                $(this).remove();
            })
            $('#formComentar .campoInvalido').each(function(){
                $(this).remove();
            })
            for(i = 1; i <= 5; i++){
                $('#estrela_' + i + ' img').attr('src', 'img/estrela_azul.gif');
            }
            $('#formComentar').hide();
            $('#opiniao').show();
            $('#opiniao').focus();
            return false;
        })
        //ao ser selecionado um país, se for Brasil libera o combo de estados
        $('#comentarioPais').change(function(){
            if($('#comentarioPais').val() == '22'){
                $('#comentarioUf').removeAttr('disabled');
                $('#comentarioUf option:first-child').text('--Selecione uma unidade federativa--');
                $('#comentarioUf').focus();
                $('#comentarioInstituicao').removeAttr('disabled');
                $.validar("#formularioComentarioAulaNaoLogado", regrasValidacaoComentarioNaoLogadoBrasil);
            }else{
                $('#comentarioUf option:first-child').text('--Selecione--');
                $('#comentarioMunicipio option:first-child').text('--Selecione--');
                $('#comentarioInstituicao').val('');
                $('#comentarioUf option:first-child').attr('selected', 'selected');
                $('#comentarioMunicipio option:first-child').attr('selected', 'selected');
                $('#comentarioUf').attr('disabled', 'disabled');
                $('#comentarioMunicipio').attr('disabled', 'disabled');
                $('#comentarioInstituicao').attr('disabled', 'disabled');
                $('#comentarioMunicipio').next('em').remove();
                $('#comentarioUf').next('em').remove();
                $('#comentarioInstituicao').next('em').remove();
                $.validar("#formularioComentarioAulaNaoLogado", regrasValidacaoComentarioNaoLogado);
            }
        })
        /**
         * Modifica as estrelas selecionadas para a nota dada.
         * @author Rafael Antunes Torquato Araujo.
         */
        $('#estrelas li').each(function(){
            $(this).css('cursor', 'pointer');
            //Evento ao se passar o ponteiro acima das li's
            $(this).mouseover(function(){
                idCorrente = $(this).attr('id');
                numero = idCorrente.split('_');
                //preenche as estrelas da primeira ate a atual com amarelo.
                for(i = numero[1]; i > 0; i--){
                    $('#estrela_' + i + ' img').attr('src', 'img/estrela_amarela.gif');
                }
                //preenche as estrelas acima da atual com azul
                numeroRemover = new Number(numero[1]) + 1;
                for(i = numeroRemover; i <= 5; i++){
                    $('#estrela_' + i + ' img').attr('src', 'img/estrela_azul.gif');
                }
                //Exibe o label da nota selecionada no span
                switch(numero[1]){
                    case '1': $('#labelNota').html('Ruim'); break;
                    case '2': $('#labelNota').html('Regular'); break;
                    case '3': $('#labelNota').html('Bom'); break;
                    case '4': $('#labelNota').html('Ótimo'); break;
                    case '5': $('#labelNota').html('Excelente'); break;
                    default:
                        if($('#nota').val() == ""){
                            $('#labelNota').html('Sem classificação.');
                        }
                }
            })
            //Evento ao se tirar o mouse de cima das li's
            $(this).mouseout(function(){
                //Exibe o label da nota selecionada no span
                switch($('#nota').val()){
                    case '1': $('#labelNota').html('Ruim'); break;
                    case '2': $('#labelNota').html('Regular'); break;
                    case '3': $('#labelNota').html('Bom'); break;
                    case '4': $('#labelNota').html('Ótimo'); break;
                    case '5': $('#labelNota').html('Excelente'); break;
                    default: $('#labelNota').html('Sem classificação.');
                }
                //se não foi dado nenhuma nota
                if($('#nota').val() == ""){
                    for(i = 1; i <= 5; i++){
                        $('#estrela_' + i + ' img').attr('src', 'img/estrela_azul.gif');
                    }
                }else{
                    //preenche as estrelas da primeira ate a atual com amarelo.
                    for(i = $('#nota').val(); i > 0; i--){
                        $('#estrela_' + i + ' img').attr('src', 'img/estrela_amarela.gif');
                    }
                    valorEstrelaSelecionada = new Number($('#nota').val())+1;
                    //preenche as estrelas acima da atual com azul
                    for(i = valorEstrelaSelecionada; i <= 5; i++){
                        $('#estrela_' + i + ' img').attr('src', 'img/estrela_azul.gif');
                    }
                }
            })
            //Evento ao se clicar em uma estrela, adiciona a nota em um input
            $(this).click(function(){
                idCorrente = $(this).attr('id');
                numero = idCorrente.split('_');
                $('#nota').val(numero[1]);
                $('#nota').next('em').remove();
            })
        })

        /**
         * Função que fará requisição dos municipios de uma uf e preenchera o combo
         * de municípios.
         * @author Rafael Antunes Torquato Araujo.
         */
        $('#comentarioUf').change(function(){
            $("#comentarioMunicipio").removeAttr("disabled");
            $('#comentarioMunicipio').empty();
            $('#comentarioMunicipio').append(new Option('Aguarde...',''));
            $("#comentarioMunicipio").attr('disabled', 'disabled');
            $.post("ajax", {
                tipo: "MunicipioPorUf",
                uf: $('#comentarioUf').val()
            },
            function(dados){
                $("#comentarioMunicipio").removeAttr("disabled");
                $('#comentarioMunicipio').empty();
                $('#comentarioMunicipio').append("<option value=''>--Selecione um município--</option>");
                $.each(dados, function() {
                    $('#comentarioMunicipio').append("<option value='" + this.id + "'>" + this.nome + "</option>");
                });
                $('#comentarioMunicipio').focus();
            },
            "json");
        });
    }

    //Se esta na pagina de visualizar integrantes
    if($('#equipe_lider')){
        $('.bt_recusar_convite').each(function(){
            $(this).click(function(){
                if($('#quantidadeIntegrantes').val() == 2){
                    conteudo = '<div><p>Esta equipe tem somente dois integrantes, se o convite for removido a equipe será disfeita.</p>';
                    conteudo += '<p>Você deseja remover o convite?</p>';
                    conteudo += '<input type="image" value="sim" src="img/bt_sim.gif" onclick="removerEquipe(\'';
                    conteudo += $(this).parent().attr('id');
                    conteudo += '\')"><input type="image" value="não" src="img/bt_nao.gif" onclick="fechar()">';
                    Shadowbox.open({
                        player:     'html',
                        content:    conteudo,
                        height:     100,
                        width:      500
                    });
                    return false;
                //remove o usuário da equipe
                } else {
                    $(this).parent().submit();
                }
            })
        })
    }
    $("a[name*='InserirLink']").each(function(){
        $(this).attr("href","inserirLink.html?editor="+$(this).attr('editor'));
    });
    $("a[name*='InsertTable']").each(function(){
        $(this).attr("href","inserirTabela.html?editor="+$(this).attr('editor'));
    });
    /**
     * Efeito para mostrar opções de "Criar aula a partir desta"
     * @author Anderson Koester
     */
    $('#criar_aula_apartir').mouseover(function(){
        $('#opt_criar').show();
    });
    $('#criar_aula_apartir').mouseout(function(){
        $('#opt_criar').hide();
    });
    $("#criar_aula_apartir").focus(function(){
        $("#opt_criar").show();
    })
    $("#opt_criar").blur(function(){
        $(this).hide();
    })
    //Se esta na página de visualizar aula
    if(document.getElementById('visualizar_aula_privada')){
        $('#bt_aprovar_aula').click(function(){
            $('#publico_aceito').val($('#publico_aceito').attr("checked"));
            $('#naoAceito').remove();
            if($('#publico_aceito').val() == 'true'){
                return true;
            }
            $('#bt_aprovar_aula').after('<em class="campoInvalido" id="naoAceito">É obrigatório aceitar os termos.<em>');
            return false;
        })
    }
    //Se estiver na pagina de exibir aula a ser avaliada
    if(document.getElementById('aula_a_ser_avaliada')){
//Botões de aceitar e recusar Aula.
/*$('#recusarAula').click(function(){
            $(this).parent().parent().attr('action', 'recusarPublicacaoAula.html');
            return true;
        })
        $('#aceitarAula').click(function(){
            $(this).parent().parent().attr('action', 'aceitarPublicacaoAula.html');
            return true;
        })*/
}
});
/**
 * Fecha a shadowbox
 */
function fechar(){
    Shadowbox.close();
}

/**
 * Submete o formulário de remover usuário da equipe.
 */
function removerEquipe(formulario){
    Shadowbox.close();
    $('#'+formulario).submit();
}
/**
 *Funcao para remover um tema da tabela de temas
 */
function removerTemaTabela(linhaTabela){
    $(linhaTabela).parent().parent().remove();
}

/**
 * Adiciona o usuário na lista de usuários que esta na sessão e adiciona tambem
 * na tabela de usuários adicionados.
 * @param elemento - Botão da td que disparou o evento.
 * @author Rafael Antunes Torquato Araujo.
 */
function clickAdicionar(elemento){
    //se foi selecionado algo na areaInstituicao
    if($(elemento).parent().children('select').val()){
        $('#semIntegrantes').remove();
        $(elemento).parent().children('.campoInvalido').remove();
        //Id Usuário entidade componente
        idUEC = $(elemento).parent().children('select').val();
        idUsuario = $(elemento).parent().parent().children('input').val();
        //se o usuário ja foi adicionado
        if(contemUsuario(idUsuario)){
            //mensagem de validação
            $(elemento).parent().children('em').remove();
            spanErro = '<em class="campoInvalido">Usuário já foi adicionado!</em>';
            $(elemento).parent().children('.areaInstituicao').after(spanErro)
        }else{
            $.post('gerenciarIntegrantes.html', {
                usuarioAdicionado:idUsuario,
                idUsuarioEquipeComp:idUEC
            },
            function(dados){
                buscarIntegrantes();
            }, 'json')

            //Remove o botão convidar.
            idRemovido = $(elemento).parent().parent().children('input').val();
            $(elemento).parent().children('label').remove();
            $(elemento).remove();
            //Remove o select
            $('#areaInstituicao_' + idRemovido).replaceWith('<label>Convidado</label>');
            //adiciona o id no input hidden que contem os usuários adicionados
            if($('#ids_adicionados').val()){
                $('#ids_adicionados').val($('#ids_adicionados').val() + "##" + idRemovido);
            }else{
                $('#ids_adicionados').val($('#ids_adicionados').val() + idRemovido);
            }
            //Remove a mensagem de erro
            $('#msgErroContinuar').remove();
        }
    }else{
        $(elemento).parent().children('.campoInvalido').remove();
        //mensagem de validação
        spanErro = '<em class="campoInvalido">Selecione Institui&ccedil;&atilde;o</em>';
        $(elemento).parent().children('.areaInstituicao').after(spanErro)
    }
    return false;
}
/**
 * Recupera o id da ligação Entidade Usuario Componente Curricular.
 * @param idUsuario - Id do usuário atual
 * @param idsUsuarios - Ids de todos os usuários adicionados.
 * @param idsEUC - Ids de todas as ligações Entidade Usuario Componente Curricular.
 * @author Rafael Antunes Torquato Araujo.
 */
function recuperaIdEntidadeUsuarioComp(idUsuario, idsUsuarios, idsEUC){
    for(i = 0; i < idsUsuarios.length; i++){
        if(idUsuario == idsUsuarios[i]){
            return idsEUC[i];
        }
    }
    return null;
}

/**
 * Cria uma linha na tabela de usuarios encontrados.
 * @param buscarUsuarioVO - Informações sobre o usuário.
 * @return Uma td da tabela de resultado com os dados do usuário.
 * @author Rafael Antunes Torquato Araujo.
 */
function criarLinhaResultado(buscarUsuarioVO){
    linha = '<td id="usuario_encontrado_' + buscarUsuarioVO.id + '">';

    linha += '<input type="hidden" value="' + buscarUsuarioVO.id + '" id="id_resultado_' + buscarUsuarioVO.id + '" class="idUsuario" />';
    linha += '<img id="fotoUsuarioResultado_' + buscarUsuarioVO.id + '" src="' + buscarUsuarioVO.caminhoFoto + '" alt="Foto professor(a): ' + buscarUsuarioVO.nome + '"/>';
    linha += '<div class="dados_integrantes">';
    linha += '<a rel="externo" href="perfil.html?id=' + buscarUsuarioVO.id + '">' + buscarUsuarioVO.nome + '</a>';
    //se o usuário já foi convidado informa.
    if(contemUsuario(buscarUsuarioVO.id)){
        linha += '<p>Convidado</p>';
    }else{
        linha += '<label>Instituição</label>';
        linha += '<select id="areaInstituicao_' + buscarUsuarioVO.id + '" class="areaInstituicao">';
        linha += '<option value="">Selecione a Instituição</option>'
        dadosProfissionais = buscarUsuarioVO.dadosProfissionais;
        for(i = 0; i < dadosProfissionais.length; i++){
            linha += '<option value="' + dadosProfissionais[i].idUsuarioEntidadeComponente + '">'
            linha += dadosProfissionais[i].nomeEntidade;
            linha += '</option>';
        }
        linha += '</select>';
        linha += '<a onclick="clickAdicionar(this)" title="Convidar" id="btnConvidar_' + buscarUsuarioVO.id + '" class="bt_convidar" />';
    }
    linha +='</div>';
    linha +='</div>';
    linha += '</td>';
    return linha;
}

/**
 * Cria a linha na tabela de usuários adicionados.
 * @param buscarUsuarioVO - Usuário.
 * @param idUsuarioEntidadeComponente - Id da ligação pela qual ele foi adicionado.
 * @return Uma td da tabela de usuários adicionados com os dados do usuário.
 * @author Rafael Antunes Torquato Araujo.
 */
function criarLinhaAdicionado(buscarUsuarioVO, idUsuarioEntidadeComponente){
    linha = '<td id="usuario_adicionado_' + buscarUsuarioVO.id + '">';
    linha +='<div class="dados_integrantes">';
    linha += '<input type="hidden" value="' + buscarUsuarioVO.id + '" id="id_adicionado_' + buscarUsuarioVO.id + '"/>';
    linha += '<img id="fotoUsuarioAdicionado_' + buscarUsuarioVO.id + '" src="' + buscarUsuarioVO.caminhoFoto + '" alt="Foto professor(a): ' + buscarUsuarioVO.nome + '"/>';
    linha += '<a rel="externo" href="perfil.html?id=' + buscarUsuarioVO.id + '">' + buscarUsuarioVO.nome + '</a>';
    linha += '<p><a href=mailto:"' + buscarUsuarioVO.email + '">' + buscarUsuarioVO.email + '</a></p>';
    dadosProfissionais = buscarUsuarioVO.dadosProfissionais;
    for(i = 0; i < dadosProfissionais.length; i++){
        //Adiciona o usuário na area de atuação e instituição selecionados.
        if(idUsuarioEntidadeComponente == dadosProfissionais[i].idUsuarioEntidadeComponente){
            linha += '<p>' + dadosProfissionais[i].nomeCompCurricular  + '</p>';
            linha += '<p>' + dadosProfissionais[i].nomeEntidade + '</p>';
        }
    }
    linha += '<a title="Remover" class="bt_remover margem_topo" id="btnRemover_' + buscarUsuarioVO.id + '" />'
    linha +='</div>';
    linha += '</td>';
    return linha;
}


/**
 * Verifica se o usuário ja foi adicionado.
 * @param idUsuario -Id do usuário.
 * @return verdadeiro se já foi adicionado, falso caso contrário.
 * @author Rafael Antunes Torquato Araujo.
 */
function contemUsuario(idUsuario){
    usuarios = $('#ids_adicionados').val().split('##');
    for(i = 0; i < usuarios.length; i++){
        if(usuarios[i] == idUsuario)
            return true;
    }
    return false;
}

/**
 * Remove o usuário da lista que esta na sessão e tambem da tabela de usuários
 * adicionados.
 * @param idUsuario - Id do usuário que será removido.
 * @author Rafael Antunes Torquato Araujo.
 */
function removerUsuarioAdicionado(idUsuario){
    $.post('gerenciarIntegrantes.html', {
        usuarioRemovido : idUsuario
    },
    function(usuarioRemovido){
        if(usuarioRemovido){
            //se existe algum id no input hidden que guarda os ids
            if($('#ids_adicionados').val()){
                usuarios = $('#ids_adicionados').val().split('##');
                novaListaUsuarios = '';
                for(i = 0; i < usuarios.length; i++){
                    if(usuarios[i] != idUsuario)
                        novaListaUsuarios += usuarios[i] + '##';
                }
                //retira os dois últimos ## que separam os ids que estão no input hidden;
                $('#ids_adicionados').val(novaListaUsuarios.substr(0, novaListaUsuarios.length - 2));
            }
            //Remove o usuário da tabela de adicionados
            buscarIntegrantes();
            //Se o usuário que foi removido esta na lista de usuários buscados, adiciona novamente.
            $('#id_resultado_' + idUsuario).parent().replaceWith(criarLinhaResultado(usuarioRemovido));
            if(document.getElementById('id_resultado_' + idUsuario)){
                /**
                 * Remove o compo inválido quando o usuário seleciona no combo de area de atuação.
                 */
                $('.areaInstituicao').each(function(){
                    $(this).change(function(){
                        $(this).parent().find('.campoInvalido').remove();
                    })
                })
            }
            //se não houverem mais usuários adicionados remove a tabela.
            if(!$('#ids_adicionados').val())
                $('#convidados').empty();
        }
    }, "json")
}
/**
 * Lista os integrantes para terminar de cadastrar os membros de uma equipe.
 * @param usuariosEquipe - Usuários da equipe.
 * @param idDiv - Div que receberá a tabela.
 * @author Rafael Antunes Torquato Araujo.
 */
function listarIntegrantesEquipe(usuariosEquipe, idDiv){
    //ids dos usuários adicionados
    idsAdicionados = usuariosEquipe.ids;
    //ids das ligações
    idsEntidadeUsuarioComp = usuariosEquipe.idsEUC;
    //todos os usuários da equipe
    usuariosAdicionados = usuariosEquipe.adicionados;
    //ultimo usuário adicionado
    ultimoAdicionado = usuariosEquipe.adicionados[usuariosEquipe.adicionados.length - 1];
    //Limpa a div que receberá a tabela
    $('#' + idDiv).empty();
    tabelaIntegrantes = '<table id="integrantes">';
    tabelaIntegrantes +='<caption>Integrantes da Equipe</caption>';
    tabelaIntegrantes +='<tbody>';
    for(j = 0; j < usuariosAdicionados.length; j++){
        //Recupera o id da ligação.
        idEntUsuCompCorrente = recuperaIdEntidadeUsuarioComp(usuariosAdicionados[j].id, idsAdicionados, idsEntidadeUsuarioComp);
        tabelaIntegrantes +='<tr>';
        tabelaIntegrantes += '<td id="integrante_"' + usuariosAdicionados[j].id + '>';
        tabelaIntegrantes += '<input type="hidden" value="' + usuariosAdicionados[j].id + '" id="id_integrante_' + usuariosAdicionados[j].id + '"/>';
        tabelaIntegrantes += '<img id="fotoIntegrante_' + usuariosAdicionados[j].id + '" src="' + usuariosAdicionados[j].caminhoFoto + '" alt="Foto professor(a): ' + usuariosAdicionados[j].nome + '"/>';
        tabelaIntegrantes += '<div class="dados_integrantes">';
        tabelaIntegrantes += '<p><a href="perfil.html?id=' + usuariosAdicionados[j].id + '">' + usuariosAdicionados[j].nome + '</a></p>';
        dadosProfissionais = usuariosAdicionados[j].dadosProfissionais;
        for(i = 0; i < dadosProfissionais.length; i++){
            //Adiciona o usuário na area de atuação e instituição selecionados.
            if(idEntUsuCompCorrente == dadosProfissionais[i].idUsuarioEntidadeComponente){
                tabelaIntegrantes += '<p>Município - UF: ' + dadosProfissionais[i].nomeMunicipio + ' - ' + dadosProfissionais[i].idUf + '<br />';
                tabelaIntegrantes += 'Área de Atuação: ' + dadosProfissionais[i].nomeCompCurricular  + '<br />';
                tabelaIntegrantes += 'Instituição: ' + dadosProfissionais[i].nomeEntidade + '</p>';
            }
        }
        tabelaIntegrantes += '</div>';
        tabelaIntegrantes += '</td>';
        if(usuariosAdicionados[j+1]){
            tabelaIntegrantes += '<td id="integrante_"' + usuariosAdicionados[j+1].id + '>';
            tabelaIntegrantes += '<input type="hidden" value="' + usuariosAdicionados[j+1].id + '" id="id_integrante_' + usuariosAdicionados[j+1].id + '"/>';
            tabelaIntegrantes += '<img id="fotoIntegrante_' + usuariosAdicionados[j+1].id + '" src="' + usuariosAdicionados[j+1].caminhoFoto + '" alt="Foto professor(a): ' + usuariosAdicionados[j+1].nome + '"/>';
            tabelaIntegrantes += '<div class="dados_integrantes">';
            tabelaIntegrantes += '<p><a href="perfil.html?id=' + usuariosAdicionados[j+1].id + '">' + usuariosAdicionados[j+1].nome + '</a></p>';
            dadosProfissionais2 = usuariosAdicionados[j+1].dadosProfissionais;
            for(i = 0; i < dadosProfissionais.length; i++){
                //Adiciona o usuário na area de atuação e instituição selecionados.
                if(idEntUsuCompCorrente == dadosProfissionais[i].idUsuarioEntidadeComponente){
                    tabelaIntegrantes += '<p>Município - UF: ' + dadosProfissionais[i].nomeMunicipio + ' - ' + dadosProfissionais[i].idUf + '<br />';
                    tabelaIntegrantes += 'Área de Atuação: ' + dadosProfissionais[i].nomeCompCurricular  + '<br />';
                    tabelaIntegrantes += 'Instituição: ' + dadosProfissionais[i].nomeEntidade + '</p>';
                }
            }
            tabelaIntegrantes += '</div>';
            tabelaIntegrantes += '</td>';
        }
        tabelaIntegrantes += '</tr>';
        j++;
    }
    tabelaIntegrantes +='</tbody>';
    tabelaIntegrantes += '</table>';
    $('#' + idDiv).append(tabelaIntegrantes);
//tableToGrid("#integrantes");
}
/**
 * Cria a tabela do resultado de busca.
 * @param usuariosEquipe - Resultado da busca.
 * @param idUsuario - Id do usuário.
 * @param listarTodos - Indica se é para listar todos ou não.
 * @author Rafael Antunes Torquato Araujo.
 */
function criarTabelaAdicionados(usuariosEquipe, idUsuario, listarTodos){
    //ids dos usuários adicionados
    idsAdicionados = usuariosEquipe.ids;
    //ids das ligações
    idsEntidadeUsuarioComp = usuariosEquipe.idsEUC;
    //todos os usuários da equipe
    usuariosAdicionados = usuariosEquipe.adicionados;
    //ultimo usuário adicionado
    ultimoAdicionado = usuariosEquipe.adicionados[usuariosEquipe.adicionados.length - 1];
    //Recupera o id da ligação.
    idEntUsuComp = recuperaIdEntidadeUsuarioComp(ultimoAdicionado.id, idsAdicionados, idsEntidadeUsuarioComp);
    //se adicionou o usuário
    if(idUsuario == idsAdicionados[idsAdicionados.length -1] || listarTodos){
        //se a tabela não existir na arvore DOM.
        if($('#usuarios_adicionados').html() == null){
            tabelaAdicionados = '<table>';
            tabelaAdicionados = '<table id="usuarios_adicionados">';
            tabelaAdicionados +='<caption>Integrantes da Equipe</caption>';
            tabelaAdicionados +='<tbody>';
            if(listarTodos){
                count = 0;
                for(j = 0; j < usuariosAdicionados.length; j+=2){
                    idEntUsuCompCorrente = recuperaIdEntidadeUsuarioComp(usuariosAdicionados[j], idsAdicionados, idsEntidadeUsuarioComp);
                    tabelaAdicionados += '<tr '+ ((count % 2 == 0) ? 'class="bg_azul"': '')+'>';
                    tabelaAdicionados += criarLinhaAdicionado(usuariosAdicionados[j], idEntUsuCompCorrente);
                    if(usuariosAdicionados[j+1]){
                        tabelaAdicionados += criarLinhaAdicionado(usuariosAdicionados[j+1], idEntUsuCompCorrente);
                    }
                    tabelaAdicionados +='</tr>';
                    count++;
                }
            }else{
                tabelaAdicionados +='<tr class="bg_azul">';
                tabelaAdicionados += criarLinhaAdicionado(ultimoAdicionado, idEntUsuComp);
                tabelaAdicionados +='</tr>';
            }
            tabelaAdicionados +='</tbody>';
            tabelaAdicionados += '</table>';
            $('#convidados').append(tabelaAdicionados);
        //tableToGrid("#usuarios_adicionados");
        }else{
            trs = $('#usuarios_adicionados > tbody > tr');
            adicionarUltimo = true;
            //encontra a primeira tr que tem somente uma td.
            for(indice = 0; indice < trs.length; indice++){
                if(trs[indice].childNodes.length == 1){
                    $(trs[indice]).append(criarLinhaAdicionado(ultimoAdicionado, idEntUsuComp));
                    adicionarUltimo = false;
                    break;
                }
            }
            if(adicionarUltimo)
                $('#usuarios_adicionados').append('<tr>' + criarLinhaAdicionado(ultimoAdicionado, idEntUsuComp) + '</tr>');
        }
        //Remove o botão convidar.
        $('#btnConvidar_' + ultimoAdicionado.id).remove();
        //Remove o select
        $('#areaInstituicao_' + ultimoAdicionado.id).replaceWith('<p>Convidado</p>');
        //adiciona o id no input hidden que contem os usuários adicionados
        if($('#ids_adicionados').val()){
            $('#ids_adicionados').val($('#ids_adicionados').val() + "##" + ultimoAdicionado.id);
        }else{
            $('#ids_adicionados').val($('#ids_adicionados').val() + ultimoAdicionado.id);
        }
        //Remove a mensagem de erro
        $('#msgErroContinuar').remove();
        //Evento do botão de remover usuário
        $('.bt_remover').click(function(){
            idUsuario = $(this).parent().parent().children('input').val();
            removerUsuarioAdicionado(idUsuario);
        });
    }else{
        alert('usuário já foi adicionado!');
    }
}

function carregarComponentes() {
    carregarDados('#componentecurricular',{
        tipo:'componentesCurriculares',
        tipoModalidadeEnsino:$('#buscaavancada  :radio:checked').val(),
        modalidadeEnsino: $('#modalidade').val()
    });
    carregarTemas();

}

function carregarModalidades(){
    carregarDados('#modalidade',{
        tipo:"modalidadesEnsino",
        tipoModalidadeEnsino:$('#buscaavancada  :radio:checked').val()
    });
    carregarComponentes();
}

function carregarTemas() {
    carregarDados('#tema',{
        tipo:'temas',
        tipoModalidadeEnsino:$('#buscaavancada  :radio:checked').val(),
        modalidadeEnsino: $('#modalidade').val(),
        componenteCurricular: $('#componentecurricular').val()
    });
}

function carregarDados(componente, json) {
    $(componente).empty();
    $(componente).append('<option>Carregando...</option>');
    $(componente).removeAttr("disabled");
    $.post('ajax', json,
        function(dados) {
            $(componente).empty();
            $(componente).append('<option></option>');
            $.each(dados, function(){
                if(this.nome!=null && this.nome != undefined){
                    var o = document.createElement('option');
                    o.setAttribute ("value", this.id);
                    var t = document.createTextNode (this.nome);
                    o.appendChild (t);
                    $(componente).append(o);
                }
            });
            var index = $.jqURL.get($(componente).attr("name"));
            if(index != null && index != undefined) {
                $(componente).val(index);
                $(componente).change();
                if($(componente+'_p').html() == '') {
                    $(componente+'_p').html($.trim($(componente + ' option:selected').text()));
                }
                if($(componente+'_alerta').html() == '') {
                    $(componente+'_alerta').html($.trim($(componente + ' option:selected').text()) + ' - ');
                }
            }
        }, 'json');
}

function adicionarHTMLEditor(html){
    var iframeEditor = jQuery.wymeditors(2);
    iframeEditor.insertAtCaret(html);
}


/**
 * Funcao para remover um recurso de  uma aula
 */
function removerRecurso(link) {
    var classe = $(link).parent().parent().attr('class');
    classe = classe.replace("bg_azul", "").replace(" ","");
    if($('#remover'+classe).html() == null){
        var htmlConfirm = "<div id='remover"+classe+"' class='classe'>Tem certeza que deseja remover este item da lista?"+
        "<input type='image' src='img/bt_sim.gif' class='auto'" +
        "onclick='confirmaExclusaoRecurso(\""+classe+"\") '>"+
        " <input type='image' src='img/bt_nao.gif' class='auto margem_esquerda' onclick='removeConfirmacao(this)'>"+
        "</div>";
        $(link).after(htmlConfirm);
    }
}

/**
 * Funcao que confirma e remove definitivamente um recurso da tabela
 */
function confirmaExclusaoRecurso(classe) {
    $('.'+classe).remove();
    $('iframe:eq(2)').contents().find('body').find('.'+classe).remove();
}

/**
 * Funcao responsavel por remover um elemento de confirmacao na exclusao de recursos
 */
function removeConfirmacao(input) {
    $(input).parent().remove();
}

/**
 * Manipula o click nos lis da paginacao
 * @param elemento elemento que recebeu o click.
 * @param div que receberá o html
 * @param id do ul pai
 * @author Rafael Antunes Torquato Araujo
 */
function clickPaginacao(elemento, div, id){
    $.post($(elemento).children('a').attr('href'), '',
        //cria a tabela que irá listar os usuários encontrados.
        function(html){
            $('#' + div).empty();
            $('#' + div).append(html);
            $('#lista_' + id + ' > li').not('.atual').click(function(){
                clickPaginacao($(this), div, id);
                return false;
            })
        },
        "html");
}
/**
 * Recupera a tabela de usuários adicionados na equipe.
 * @author Rafael Antunes Torquato Araujo
 */
function buscarIntegrantes(){
    $.post('recuperarConvidados.html', '', //cria a tabela que irá listar os usuários encontrados.
        function(html){
            $('#convidados').empty();
            $('#convidados').append(html);
            //Evento do botão de remover usuário
            if($('.bt_remover').length > 0){
                $('#btnCriarEquipe').show();
            }else{
                $('#btnCriarEquipe').hide();
            }
            $('.bt_remover').click(function(){
                idUsuario = $(this).parent().parent().children('input').val();
                removerUsuarioAdicionado(idUsuario);
            });
            //Manipula o click na lista de convidados que não tenha a classe atual
            $('#lista_usuarios_adicionados > li').not('.atual').click(function(){
                clickPaginacao($(this), 'convidados', 'usuarios_adicionados');
                return false;
            })
        }, 'html')
}

function getTemas(){
    var temas = "";
    $('#tabela_temas_aula tbody tr').each(function(i){
        if($('#tabela_temas_aula tr').length == (i+1)){
            temas = temas +  $(this).attr('tema')+","+$(this).attr('modalidade')+","+$(this).attr('componente');
        }else{
            temas = temas +  $(this).attr('tema')+","+$(this).attr('modalidade')+","+$(this).attr('componente')+"|";
        }
    });
    return temas;
}

/**
 * Funcao responsavel por atualizar os textarea dos editores
 */
function atualizarEditores() {
    c = WYMeditor.INSTANCES.length;
    for(i = 0; i < c; i++)
        jQuery.wymeditors(i).update();
}

function adicionarHtmlEditor(html,editor){
    var iframeEditor = jQuery.wymeditors(editor);
    iframeEditor.insertAtCaret(html);
}

function adicionarLinkEditor(editor,titulo,link){
    var iframeEditor = jQuery.wymeditors(editor);
    //$(iframeEditor.elementoSelecionado()).html("<a  href=\""+link+"\" title=\""+titulo+"\""+">"+$(iframeEditor.elementoSelecionado()).html());
    //iframeEditor.inserirAtualizarLink(titulo, link);
    var html = "<a  href=\""+link+"\" title=\""+titulo+"\""+">"+titulo+"</a>&nbsp;&nbsp;";
    iframeEditor.insertAtCaret(html);
}


