/*
 * Paginação do Execução FInanceira Orçamentaria
 */

  ///////////////////////sort do formato uk_date///////////////////////////////
     jQuery.fn.dataTableExt.aTypes.push(
        function ( sData )
        {
                if (sData.match(/^(0[1-9]|[12][0-9]|3[01])\-(0[1-9]|1[012])\-(19|20|21)\d\d$/))
                {
                        return 'uk_date';
                }
                return null;
        }
    );

    jQuery.fn.dataTableExt.oSort['uk_date-asc']  = function(a,b) {
        var ukDatea = a.split('/');
        var ukDateb = b.split('/');

        var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
        var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1;

        return ((x < y) ? -1 : ((x > y) ?  1 : 0));

    };

    jQuery.fn.dataTableExt.oSort['uk_date-desc'] = function(a,b) {
        var ukDatea = a.split('/');
        var ukDateb = b.split('/');
        var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
        var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1;

        return ((x < y) ? 1 : ((x > y) ?  -1 : 0));
    };

///////////////////////////////////////////////////////////////////////////////////

 function paginacaoExecucao() {

               $('#div_paginacao').empty();

               $("#div_paginacao").append("<h5>Resultados da Pesquisa</h5><br />"+
                                        "<br />"+
                                        "<table id='aguarde'><td align='center'>Aguarde... <img align='center' src='imagem/ajax-loader.gif'/></td></table>"+
                                        "<table id='example'>"+
                                        "<thead id='paginacao_cabecalho'>"+
                                        "</thead>"+
                                        "<tbody id='paginacao_corpo'></tbody>"+
                                        "</table>");
         $.ajax({
                // tipo de data que retornará da requisição ajax
                // podem ser: xml, html, script, json, jsonp, text
                dataType: "xml",
                // url da requisição ajax //MUDAR DEPOIS
                url: "execucao.do",
                // tipo de requisição
                // get, post, put, delete
                type: "POST",
                // dados a serem enviados
                // nome : valor
                data: {
                            cod_categoria : $('#cod_categoria').val(),
                            data_inicial : $('#data_inicial').val(),
                            data_final : $('#data_final').val()
                        },
                 // função erro
                 error: function()  {alert("ERRO");} ,
                 // Quando a função for concluido executa um procedimento
                  complete:function(){
                      $('#aguarde').empty();
                      if( $('#paginacao_corpo').children().size() >= 1){

                          $('#example').dataTable({

                                "sDom": 'T<"clear">lfrtip',
                                "oLanguage": {
                                        "sProcessing": "Processando...",
                                        "sLengthMenu": "Visualizar _MENU_ registros",
                                        "sZeroRecords": "Nenhum documento encontrado",
                                        "sInfo": "Visualizando de _START_ a _END_     Total: _TOTAL_ registros",
                                        "sInfoEmpty": "Visualizando de 0 a 0     Total: 0 registros",
                                        "sInfoFiltered": "(filtrados from _MAX_ total registros)",
                                        "sInfoPostFix": "",
                                        "sSearch": "Pesquisar:",
                                        "sUrl": "",
                                        "oPaginate": {
                                                "sFirst":    "Primeira página",
                                                "sPrevious": "Anterior",
                                                "sNext":     "Próximo",
                                                "sLast":     "Última página"
                                        }
                                },
                                "aoColumns": [
                                     {"sType": "uk_date"},
                                     null
                                 ],
                                 "aaSorting":[[0,"desc"]]

				} );}else{
                                 $('#div_paginacao').empty();
                                 $("#div_paginacao").append("<h5>Não foi encontrado nenhum registro</h5><br />");
                                }},

                 success: function(xml) {
                 var s ="";
                  var i = 1
                  $(xml).find('DOCUMENTO').each(function(){
                      //Cabecalho da tabela
                     if(i==1){
                     var cabecalho="<tr>"
                     $(this).children().each(
                     function(){
                               cabecalho += "<th>"+$(this).attr('TITULO').toString()+"</th>";
                     });
                        cabecalho +="</tr>"
                         $("#paginacao_cabecalho").append(cabecalho);
                         i = 2;
                     }
                     //Conteudo da Tabela
                     var corpo="<tr class='odd_gradeX'>"
                        $(this).children().each(
                             function(){
                                      corpo+="<td>"+$(this).text()+"</td>"
                             });
                            corpo+="</tr>"
                            $("#paginacao_corpo").append(corpo);

                  }); //close each(

            }
             }); //close $.ajax(


}

 function paginacaoMesariosConvocados() {

               $('#div_paginacao').empty();

               $("#div_paginacao").append("<h5>Resultados da Pesquisa</h5><br />"+
                                        "<br />"+
                                        "<table id='aguarde'><td align='center'>Aguarde... <img align='center' src='imagem/ajax-loader.gif'/></td></table>"+
                                        "<table id='example'>"+
                                        "<thead id='paginacao_cabecalho'>"+
                                        "</thead>"+
                                        "<tbody id='paginacao_corpo'></tbody>"+
                                        "</table>");

//Inicio da função ulizada na exibição de mais informações
                var oTable = ""; //variavel utilizada pelo datatable
                    /* Formating function for row details */
                function fnFormatDetails (aPos)
                {
                        var aData = oTable.fnGetData(aPos);

                        var sOut = '<table style="width: 100%; border-bottom: 1px solid #333;" cellpadding="5" cellspacing="0" border="0">';
                        sOut += '<tr style="background-color: #D9ECFF;"><td style="width: 30%; text-align: right;">Título de Eleitor:</td><td style="font-weight: bold">'+aData[2]+'</td></tr>';
                        sOut += '<tr><td  style="width: 30%; text-align: right;">Zona Eleitoral:</td><td style="font-weight: bold">'+aData[4]+'</td></tr>';
                        sOut += '<tr style="background-color: #D9ECFF;"><td  style="width: 30%; text-align: right;">Seção:</td><td style="font-weight: bold">'+aData[5]+'</td></tr>';
                        sOut += '<tr><td  style="width: 30%; text-align: right;">Local de Votação:</td><td style="font-weight: bold"    >'+aData[6]+'</td></tr>';
                        sOut += '</table>';

                        return sOut;
                }

                /* Event handler function */
                function fnOpenClose ( oSettings )
                {
                        $('td img', oTable.fnGetNodes()).each( function () {
                    
                                $(this).click( function () {
                                        var nTr = this.parentNode.parentNode;
                                        //alert('passou!');
                                        if ( this.src.match('details_close') )
                                        {
                                                /* This row is already open - close it */
                                                this.src = "imagem/datatable/details_open.png";
                                                var nRemove = $(nTr).next()[0];
                                                nRemove.parentNode.removeChild( nRemove );
                                        }
                                        else
                                        {
                                                /* Open this row */
                                                this.src = "imagem/datatable/details_close.png";
                                                var aPos = oTable.fnGetPosition( nTr );
                                                oTable.fnOpen( nTr, fnFormatDetails(aPos), 'details' );
                                        }
                               
                           } );

                        } );
                }

//fim da função ulizada na exibição de mais informações




         $.ajax({
                // tipo de data que retornará da requisição ajax
                // podem ser: xml, html, script, json, jsonp, text
                dataType: "xml",
                // url da requisição ajax //MUDAR DEPOIS
                url: "mesarios_convocados.do",
                //url: $('#cod_municipio').val()+".xml",
                // tipo de requisição
                // get, post, put, delete
                type: "POST",
                // dados a serem enviados
                // nome : valor
                data: {
                            cod_municipio : $('#cod_municipio').val(),
                            nome : $('#nome').val()
                        },
                 // função erro
                 error: function()  {alert("ERRO");} ,
                 // Quando a função for concluido executa um procedimento
                  complete:function(){
                      $('#aguarde').empty();
                      if( $('#paginacao_corpo').children().size() >= 1){

                          oTable = $('#example').dataTable({

                                "sDom": 'T<"clear">lfrtip',
                                "oLanguage": {
                                        "sProcessing": "Processando...",
                                        "sLengthMenu": "Visualizar _MENU_ registros",
                                        "sZeroRecords": "Nenhum documento encontrado",
                                        "sInfo": "Visualizando de _START_ a _END_     Total: _TOTAL_ registros",
                                        "sInfoEmpty": "Visualizando de 0 a 0     Total: 0 registros",
                                        "sInfoFiltered": "(filtrados from _MAX_ total registros)",
                                        "sInfoPostFix": "",
                                        "sSearch": "Pesquisar:",
                                        "sUrl": "",
                                        "oPaginate": {
                                                "sFirst":    "Primeira página",
                                                "sPrevious": "Anterior",
                                                "sNext":     "Próximo",
                                                "sLast":     "Última página"
                                        }
                                },
                                "aoColumns": [
                                    {"sClass": "center", "bSortable": false},         //"+""
                                     {"sType": "string"},                                     //NOME
                                     {"sClass": "center","bVisible": false},          //TÍTULO
                                     {"sType": "string","sWidth": "214px"},        //FUNCAO - colocado sWidth para resover o problema de pular para linha de baixo quando a string completa não cabia na TD
                                     {"sType": "numeric","bVisible": false},         //NUM_ZONA
                                     {"sType": "numeric","bVisible": false},         //SECAO
                                     {"sType": "string","bVisible": false}             //LOCAL  DE VOTACAO
                                 ],
                                 "aaSorting":[[1,"asc"]]
                                 //"fnDrawCallback": fnOpenClose

				} );
                                fnOpenClose();
                                }else{
                                 $('#div_paginacao').empty();
                                 $("#div_paginacao").append("<h5>Não foi encontrado nenhum registro</h5><br />");
                                }} ,

                 success: function(xml) {
                 var s ="";
                  var i = 1
                  //var itens_exibidos = 3; //não inclui detalhes
                  $(xml).find('MESARIO').each(function(){
                      //Cabecalho da tabela
                     //var cabecalhos_detalhe=new Array();
                     if(i==1){
                     var cabecalho="<tr>"
                     cabecalho += "<th></th>"
                     var cont_cabecalho =0;
                     $(this).children().each(
                     function(){
                         cont_cabecalho++;
                         cabecalho += "<th>"+$(this).attr('TITULO').toString()+"</th>";

                     });
                        cabecalho +="</tr>"
                         $("#paginacao_cabecalho").append(cabecalho);
                         i = 2;
                     }
                     //##############
                     //Conteudo da Tabela
                     var corpo="<tr class='odd_gradeX'>"                     
                     //incluindo no inicio da tabela a imagem com o "+"
                     corpo += "<td><img src='imagem/datatable/details_open.png' /></td>";

                        $(this).children().each(
                             function(){                                                   
                                        corpo+="<td>"+$(this).text()+"</td>";                              
                             });
                           corpo+="</tr>";                           

                            $("#paginacao_corpo").append(corpo);
                            
                  }); //close each(

            }
             }); //close 

}


