/**
$(): utilizado em todas as funções que devem ser referenciadas a jQuery
document: expressão que indica o documento HTML
ready(): associado a leitura do documento enquanto está sendo carregado
*/
var status = 0;
var replyStatus = Array();
var codComment;
var formId;
$(document).ready(function(){

    // Crio uma variável chamada $forms que pega o valor da tag form
    $forms = $('form');
    

    // hide(): esconde a div cadastro enquanto carrega o ready()
    $('#form-comment').hide();

    $('#comments').show();

    /**
     bind(): é manipulador de evento exemplo submit, click e/ou double click
     a: é a tag <a href>
    */

    $('a').bind('click', function(){
        switch(this.id){
            case 'add-link':
                if(status == 0){
                    status = 1;
                    $('#form-comment').show(); // show(): mostra div que está oculta (hide()).
                }else{
                    status = 0;
                    $('#form-comment').hide(); 
                }
                return false;
                break;
            default :
                var nome = this.id;
                quebrado = nome.split('-');
                if (quebrado[0] == 'add' && quebrado[1] == 'reply'){
                    cod = quebrado[2];
                    if (replyStatus[cod] != 1){
                        replyStatus[cod] = 1;
                        $('#reply-'+cod).show();
                        codComment = cod;
                    }else{
                        replyStatus[cod] = 0;
                        $('#reply-'+cod).hide();
                    }
                    return false;
                }
                
        }
    })

    $forms.bind('submit', function(){

        formId = this.id;
        if (formId == 'Search')
            return true;
        /**
        Crio a variável $button
        attr(): set a propriedade de um atributo, nesse exemplo foi desativado o botão com a tag button
        */
        var $button = $('submit',this).attr('disabled',true);

        /**
       Criada a variável params
        serialize(): pega os dados inseridos no formulário
        */
        var params = $(this.elements).serialize();

        var self = this;
        $.ajax({

            // Usando metodo Post
            type: 'POST',

            // this.action pega o script para onde vai ser enviado os dados
            url: this.action,

            // os dados que pegamos com a função serialize()
            data: params,

            // Antes de enviar
            beforeSend: function(){
                // mostro a div loading

            },
            success: function(txt){
                // Ativo o botão usando a função attr()
                $button.attr('disabled',false);

                // Escrevo a mensagem
                //ve se eh um reply ou um comentario
                switch(formId){
                  case 'CommentEvent':
                    $('#comments').append(txt);
                    $('#comments').show();

                    // Limpo o formulário
                    self.reset();
                    $('#form-comment').hide();
                    status = 0;
                    break;
                  default :
                    $('#replys-'+codComment).append(txt);
                    $('#replys-'+codComment).show();

                    // Limpo o formulário
                    self.reset();
                    $('#reply-'+codComment).hide();
                    replyStatus[codComment] = 0;
                } 
            },

            // Se acontecer algum erro é executada essa função
            error: function(txt){
                $('#form-comment').append(txt);
            }
        })
        return false;
    });
});