/*
 * Sintaxe para a função post() do jQuery (Ajax):
 *
 *     $.post(template,parâmetros passados via POST,função de tratamento do retorno);
 *
 *     $.post pode ser trocado por jQuery.post
 *     Formato da lista de parâmetros passados via POST: { variável1: valor1, variável2:valor2, ... , variávelN:valorN }
 *     A função de retorno deve receber a variável <data>, que contém o resultado da execução do template chamado
 *     A função possui mais parâmetros. Para conhecer todos e outras funções Ajax do jQuery, consulte a documentação da função em http://api.jquery.com/jQuery.post/
 *
 * Sintaxe para a função ajax() (essa aí de baixo mesmo, que usa a jQuery.post():
 *
 *     ajax(url do template,div ou qualquer outro elemento que possua a propriedade innerHTML,params)
 *
 *     O formato da lista de parâmentros que serão passados via POST segue o padrão da função jQuery.post(), ou seja:
 *         { variável1: valor1, variável2:valor2, ... , variávelN:valorN }
 *     Para passar parâmetros via GET, concatene-os na URL do template.
 */

function ajax(url,div,params,imagemLoader,acaoConteudo){
    if(acaoConteudo==undefined){
        acaoConteudo='substituir';
    }
    var conteudoAtual=document.getElementById(div).innerHTML;
    
    // Mostra a animação GIF "loader" do Ajax
    if(imagemLoader==undefined){
        $('#'+div).empty().html('<center><img src="'+raiz+'imgs/ajax-loader.gif"/></center>');
    }else{
        $('#'+div).empty().html(imagemLoader);
    }

    // Executa a URL via Ajax
    $.post(url,
           params,
           function(data){
               // Coloca o retorno do Ajax dentro da propriedade innerHTML do div
               if(acaoConteudo=='substituir'){
                   $('#'+div).empty().html(data);
               }
               else if(acaoConteudo=='adicionar'){
                   $('#'+div).empty().html(conteudoAtual+data);
               }
           }
    );
}
