// # ===============================
// # Cursor Ignore - este arquivo é um exemplo de como criar uma rota para o aplicativo, Eu usei ele 
// # como base para criar as rotas do aplicativo.
// # Realizar teste do aplicativo instalado no aparelho celular usar o IP fixo: para conexão com o servidor local.
// # gostaria que voce usasse ele como base para criar as rotas do aplicativo.
// # inclusive esse aplicativo esta funcionando hoje e é o modelo antigo do aplicativo que estamos criando.
// #
// # App novo (PHP desktop API): TODAS as URLs em ../api-config.js
// #   - REGISTRO_PRO_API_BASE (e localhost) no topo
// #   - REGISTRO_PRO_ROUTES (caminhos tipo auth/login.php)
// #   - registroProApiUrl('login') ou registroProGetLoginApiUrl(), etc.
// # ===============================

//INICIALIZAÇÃO DO F7 QUANDO DISPOSITIVO ESTÁ PRONTO

// Variavél global para as url
var url = 'https://registropro.porstariasuniforte.com/ajax/'; //Uso de IP para o uso na hospedagem
// var url = 'https://192.168.1.32/ajax/'; //Uso de IP fixo para teste no aparelho celular
// var url_img = url + 'fotografias/img_confirmacao_holerites'; // Uso de Ip fixo para salvar a imagem no servidor
var url_holerite = 'https://registropro.porstariasuniforte.com/ajax/HOLERITES/HOLERITES/';
// var url = 'https://10.0.0.107/ajax/'; // Uso de IP aleatório para uso no navegador
// var url_img = url + 'fotografias/img_confirmacao_holerites'; // Uso de Ip aleatótio fixo para salvar a imagem no servidor
// var url = 'http://172.20.10.2/ajax/'; // Uso de IP aleatório para uso no navegador


document.addEventListener('deviceready', onDeviceReady, false);
var app = new Framework7({
  // App root element
  el: '#app',
  // App Name
  name: 'My App',
  // App id
  id: 'com.myapp.test',
  // Enable swipe panel
  panel: {
    swipe: true,
  },
  dialog: {
    buttonOk: 'Sim',
    buttonCancel: 'Cancelar',
  },
  // Add default routes
  routes: [
    {
      path: '/index/',
      url: 'index.html',
      options: {
        transition: 'f7-circle',
      },
    on: {
    pageBeforeIn: function (event, page) {
    // fazer algo antes da página ser exibida
    $("#menuPrincipal").show("fast");
    },
    pageAfterIn: function (event, page) {
    // fazer algo depois da página ser exibida
    
    },
    pageInit: function (event, page) {
    // fazer algo quando a página for inicializada
    
    // Verifica se o usuário já está logado
    if (!localStorage.getItem('id')) {
      app.views.main.router.navigate('/login/');
      return;
    }

    app.panel.close();
    // recuperando os dados na tela inicial
    var id = localStorage.getItem("id");
    var nome = localStorage.getItem("nome");
    var email = localStorage.getItem("email");
    var Foto = localStorage.getItem("foto");
    var funcao = localStorage.getItem("funcao");
    var Telefone = localStorage.getItem("Telefone");
    var condominio = localStorage.getItem("condominio");
    var turno = localStorage.getItem("turno");
    var confirmar = localStorage.getItem("confima");
    var documento = localStorage.getItem("documento");
    

    // Simula o turno do usuário logado: 'diurno' ou 'noturno'
    const userShift = turno; // Altere para 'noturno' para simular o outro turno

    // Referência aos botões
    const btnDiurno = document.getElementById("btn-ponto");
    const btnNoturno = document.getElementById("btn-ponto-noturno");
    
    // Função para ajustar a visibilidade dos botões
    function ajustarVisibilidadeBotoes(turno) {
        const turnoNormalizado = turno.toLowerCase(); // garante comparação sem erros de capitalização
    
        if (turnoNormalizado === "diurno") {
            btnDiurno.style.display = "inline-block";
            btnNoturno.style.display = "none";
        } else if (turnoNormalizado === "noturno") {
            btnDiurno.style.display = "none";
            btnNoturno.style.display = "inline-block";
        } else {
            console.error("Turno inválido. Use 'diurno' ou 'noturno'.");
            btnDiurno.style.display = "none";
            btnNoturno.style.display = "none";
        }
    }
    
    // Chama a função com o turno atual
    ajustarVisibilidadeBotoes(turno);

    if(confirmar === "CONFIRMAÇÃO"){
      app.dialog.create({
        title: 'Confirmar conta',
        text: 'Para dar continuidade no acesso ao aplicativo, você precisa confirmar sua conta alterando sua senha provisória, par uma senha desejada ',
        content: '<div class="dialog-input"><input type="text" id="novaSenha" placeholder="Digite a nova senha" style="margin-top: 15px; border: 1px solid var(--verde); width: 100%; border-radius: 5px; height: 40px; padding: 10px;" /></div>',
        buttons: [
            {
                text: '<div><button class="button color-green">Salvar nova senha</button></div>',
                color: 'blue',
                onClick: function () {
                    // Captura o valor do input
                    var novaSenha = document.getElementById('novaSenha').value;
                    // console.log('Nova senha digitada:', novaSenha);
                    var id = localStorage.getItem("id");
                    var Telefone = localStorage.getItem("Telefone");
                    
                    if(novaSenha === ""){
                      Swal.fire({
                        icon: "error",
                        title: "Oops...",
                        text: "Você esta tentando fazer acesso sem confirmação"
                      }).then(() => {
                          // Limpa os dados da sessão
                          localStorage.clear(); // Ou sessionStorage.clear() se os dados estiverem no sessionStorage

                          // Redireciona para a página de login
                          app.views.main.router.navigate('/login/');
                          // window.location.href = '/login/'; // Substitua pelo caminho correto da página de login
                      });
                    }else{
                      let form_data = new FormData();
                                      
                      form_data.append('my_primeira_senha', novaSenha);
                      form_data.append('my_celular', Telefone);
                      form_data.append('my_id', id);

                      $.ajax({
                        url: url + "listar/confirmar_conta.php",
                        type: 'POST',
                        data: form_data,
                        contentType: false,
                        processData: false,
                        cache: false,
                          success: function(data) {
                            Swal.fire({
                              title: 'PRONTO !',
                              text: 'Sua senha foi alterada e sua conta esta pronta.',
                              icon: 'success',
                              button: false,
                              timer: 3000,
                            }).then(() => {
                              // Limpa os dados da sessão
                              localStorage.clear(); // Ou sessionStorage.clear() se os dados estiverem no sessionStorage
    
                              // Redireciona para a página de login
                              app.views.main.router.navigate('/login/');
                              // window.location.href = '/login/'; // Substitua pelo caminho correto da página de login
                          });
                          }
                      })
                    }
                    
                    
                }
            }
        ]
    }).open();
    }

    // AJAX para recuperar o JSON com a data
    $.ajax({
      url: url + "/listar/data.php",
      method: "post",
      data: $('form').serialize(),

      success: function(mensagem) {
          // Converte a resposta em JSON
          var dados = JSON.parse(mensagem);
          
          // Armazena a data no localStorage
          localStorage.setItem("dataF", dados.data_personalizada);
          
          // Atualiza o elemento na tela com a data personalizada
          $('#data-personalizada').text(" | " + dados.data_personalizada);

          // Esconde o preloader após concluir
          app.preloader.hide();
      },
      error: function(xhr, status, error) {
          console.error("Erro ao recuperar os dados:", status, error);
          app.preloader.hide(); // Esconde o preloader mesmo em caso de erro
      }
    });

    // Recupera os dados do localStorage caso já existam
    var horapersonalizada = localStorage.getItem("dataF");

    // Atualiza a tela imediatamente, caso os dados já estejam salvos
    if (horapersonalizada) {
      $('#data-personalizada').text(" | " + horapersonalizada);
    }

        // Função para atualizar o horário constantemente
        function atualizarHorario() {
          const horarioSpan = document.getElementById('horario');

          // Verifica se o elemento existe antes de atualizar
          if (horarioSpan) {
              const agora = new Date();
              const horarioFormatado = agora.toLocaleTimeString('pt-BR', { 
                  hour: '2-digit', 
                  minute: '2-digit', 
                  second: '2-digit' 
              });
              horarioSpan.textContent = horarioFormatado;
          } else {
              console.warn("Elemento com o ID 'horario' não encontrado!");
          }
        }

        // Executa o código apenas após o DOM estar completamente carregado
        document.addEventListener("DOMContentLoaded", () => {
          // Atualiza o horário imediatamente e configura o intervalo para atualizar a cada segundo
          atualizarHorario();
          setInterval(atualizarHorario, 1000);
        })

    
    // verificar se ja existe um sessão logada no app
    if(id == null){
       app.views.main.router.navigate('/login/');
    }else{
      // Chama a função para ajustar a visibilidade com base no turno do usuário
      ajustarVisibilidadeBotoes(userShift);


      // Função para listar os últimos registros de ponto do usuário
      function atualizarRegistros() {
        $.ajax({
            url: url + "listar/Pontos.php", // Caminho para chamar os arquivos
            method: 'POST', // Tipo de inserção
            data: { nome: nome, turno: turno}, // Dados enviados ao servidor
            dataType: "json", // Tipo de dado esperado na resposta
        
            success: function (data) {
                // Verificar se os dados foram retornados
                if (data && Array.isArray(data)) {
                    // Esvaziar a área com os últimos registros de ponto
                    $("#ultimo-registros-diurno").empty();
        
                    // Atualizar o localStorage
                    localStorage.setItem('pontos', JSON.stringify(data));
        
                    // Atualizar o DOM com os novos registros
                    data.forEach(ponto => {
                        var pontoHTML = `
                        <div class="swiper-slide">
                          <a class="btn-registos">
                            <span class="dia">${ponto.dia}</span>
                            <span class="mes">/${ponto.mes}</span>  
                            <span class="horario">  ${ponto.status}</span>
                            <span class="status">${ponto.horario}</span>
                          </a>
                        </div>
                        `;
        
                        $("#ultimo-registros-diurno").append(pontoHTML);
                    });
        
                    // Atualizar o Swiper após adicionar os novos elementos
                    if (typeof swiper !== "undefined") {
                        swiper.update();
                    } else {
                        console.warn("A instância do Swiper não foi encontrada.");
                    }
                } else {
                    console.error("Nenhum dado retornado ou formato inválido.");
                }
            },
            error: function (xhr, status, error) {
                console.error("Erro na requisição AJAX:", error);
            }
        });
      }

    // Chama a função uma vez ao carregar a página
    atualizarRegistros();

    // Chama a função para atualizar os dados a cada 30 segundos (30000 milissegundos)
    setInterval(atualizarRegistros, 10000);
      // inserindo e utilizando os dados recuperados
      $('#nome-usuario').text(nome);
      $('#nome-perfil').text("Usuário: " + nome);
      $('#funcao-perfil').text("Função: " + funcao);
      $('#email-perfil').text("E-mail: " + email);
      $('#telefone-perfil').text("Telefone: " + Telefone);
      $('#condominio-perfil').text("condomínio: " + condominio);


      // método para movimentar o carosel do ponto
      function updateCarousel() {
        const carouselWrapper = document.querySelector(".carousel-wrapper");
        const totalItems = document.querySelectorAll(".carousel-wrapper a").length;
    
        // Ajusta o deslocamento do wrapper
        carouselWrapper.style.transform = `translateX(-${currentIndex * 100}%)`;
    
        // Loop infinito no carrossel
        if (currentIndex >= totalItems) {
            currentIndex = 0;
        } else if (currentIndex < 0) {
            currentIndex = totalItems - 1;
        }
    }
    
    // Adicionar evento nos botões
    document.querySelector(".carousel-btn.prev").addEventListener("click", () => {
        currentIndex--;
        updateCarousel();
    });
    
    document.querySelector(".carousel-btn.next").addEventListener("click", () => {
        currentIndex++;
        updateCarousel();
    });
      app.views.main.router.navigate('/index/');
    }
    
     
    

    // Metedo  para enviar o post para a api php
    // Swiper
     $.getScript('js/index.js');
     var swiper = new Swiper(".mySwiper", {
      slidesPerView: 1,
      spaceBetween: 30,
      autoplay: true,
      delay: 3000,
      loop: true,
      breakpoints:{
        50:{
          slidesPerView: 1,
          spaceBetween: 30
        },
        640:{
          slidesPerView: 2,
          spaceBetween: 30
        },
        992:{
          slidesPerView: 3,
          spaceBetween: 30
        },
        1200:{
          slidesPerView: 4,
          spaceBetween: 30
        }
      }
    });

    // Geolocalização
    // ponto();

    $('#btn-ponto').click(function(event){
      event.preventDefault();
      ponto();
    });

    $('#btn-ponto-noturno').click(function(event){
      event.preventDefault();
      pontoNoturno();
    });
    

    },
    pageBeforeRemove: function (event, page) {
    // fazer algo antes da página ser removida do DOM
    },
    }
    },
    {
      path: '/link2/',
      url: 'link2.html',
      animate: false,
    on: {
    pageBeforeIn: function (event, page) {
    // fazer algo antes da página ser exibida
    },
    pageAfterIn: function (event, page) {
    // fazer algo depois da página ser exibida
    },
    pageInit: function (event, page) {
    // fazer algo quando a página for inicializada
    },
    pageBeforeRemove: function (event, page) {
    // fazer algo antes da página ser removida do DOM
    },
    }
    },
    {
      path: '/link3/',
      url: 'link3.html',
      animate: false,
    on: {
    pageBeforeIn: function (event, page) {
    // fazer algo antes da página ser exibida
    },
    pageAfterIn: function (event, page) {
    // fazer algo depois da página ser exibida
    },
    pageInit: function (event, page) {
    // fazer algo quando a página for inicializada
    },
    pageBeforeRemove: function (event, page) {
    // fazer algo antes da página ser removida do DOM
    },
    }
    },
    {
      path: '/link4/',
      url: 'link4.html',
      animate: false,
    on: {
    pageBeforeIn: function (event, page) {
    // fazer algo antes da página ser exibida
    },
    pageAfterIn: function (event, page) {
    // fazer algo depois da página ser exibida
    },
    pageInit: function (event, page) {
    // fazer algo quando a página for inicializada
    },
    pageBeforeRemove: function (event, page) {
    // fazer algo antes da página ser removida do DOM
    },
    }
    },
    {
      path: '/link5/',
      url: 'link5.html',
      animate: false,
      on: {
      pageBeforeIn: function (event, page) {
      // fazer algo antes da página ser exibida
        },
      pageAfterIn: function (event, page) {
      // fazer algo depois da página ser exibida
        },
      pageInit: function (event, page) {
      // fazer algo quando a página for inicializada
        },
      pageBeforeRemove: function (event, page) {
      // fazer algo antes da página ser removida do DOM
        },
      }
    },
    // Pagina de testes
    {
      path: '/teste/',
      url: 'teste.html',
      animate: false,
      on: {
      pageBeforeIn: function (event, page) {
      // fazer algo antes da página ser exibida
        },
      pageAfterIn: function (event, page) {
      // fazer algo depois da página ser exibida
      
      },
      pageInit: function (event, page) {
      // fazer algo quando a página for inicializada
        },
      pageBeforeRemove: function (event, page) {
      // fazer algo antes da página ser removida do DOM
        },
      }
    },
    // fim da pagina de testes
    {
      path: '/justificar/',
      url: 'justificar_falta.html',
      animate: false,
      on: {
        pageBeforeIn: function (event, page) {
        // fazer algo antes da página ser exibida
        },
        pageAfterIn: function (event, page) {
        // fazer algo depois da página ser exibida
        $('.btn-enviar-ausencia').off('click').on('click', function (){

          var id = localStorage.getItem("id");
          var nome = localStorage.getItem("nome");
          var email = localStorage.getItem("email");
          var funcao = localStorage.getItem("funcao");
          var Telefone = localStorage.getItem("Telefone");
          var condominio = localStorage.getItem("condominio");
          var turno = localStorage.getItem("turno");
          var documento = localStorage.getItem("documento");

          app.preloader.show(); // Exibe o preloader enquanto processa a requisição
                
          // Cria um novo objeto FormData para enviar dados do formulário, incluindo arquivos
          let form_data = new FormData();

          let img = $("#fotografiadocausencia")[0].files[0];
          var data_ausencia = $("#data-ausencia").val();
          var observacao = $("#observacao-ausencia").val();
          var periodo = $("#periodo-ausencia").val();
          var motivo = $("#motivo-ausencia").val();

          form_data.append('fotografiaarquivo', img);
          form_data.append('id', id);
          form_data.append('nome', nome);
          form_data.append('email', email);
          form_data.append('funcao', funcao);
          form_data.append('Telefone', Telefone);
          form_data.append('condominio', condominio);
          form_data.append('turno', turno);
          form_data.append('documento', documento);
          form_data.append('data_ausencia', data_ausencia);
          form_data.append('observacao', observacao);
          form_data.append('periodo', periodo);
          form_data.append('motivo', motivo);
          
          if(data_ausencia === ''){
            showToast('Você precisa definir uma data');
          }else{
            if(periodo === ''){
              showToast('Selecione o período');
            }else{
              if(motivo === ''){
                showToast('Selecione o motivo');
              }else{
                $.ajax({
                  url: url + "listar/justificar_ausencia.php",
                  type: 'POST',
                  data: form_data,
                  contentType: false,
                  processData: false,
                  cache: false,
                    success: function(data) {
                      app.preloader.hide();
                      showToast('Justificativa enviada!');
                      app.views.main.router.navigate('/index/');
                    }
                })
              }
            }
          }

         
        });


        },
        pageInit: function (event, page) {
        // fazer algo quando a página for inicializada
        },
        pageBeforeRemove: function (event, page) {
        // fazer algo antes da página ser removida do DOM
        },
        }
      },
    {
      
      path: '/menu/',
      url: 'menu.html',
      options: {
        transition: 'f7-circle',
      },
    on: {
    pageBeforeIn: function (event, page) {
    // fazer algo antes da página ser exibida
    $("#menuPrincipal").hide("fast");
    },
    pageAfterIn: function (event, page) {
    // fazer algo depois da página ser exibida
    },
    pageInit: function (event, page) {
    // fazer algo quando a página for inicializada
    // recuperando os dados na tela inicial
    var id = localStorage.getItem("id");
    var nome = localStorage.getItem("nome");
    var email = localStorage.getItem("email");
    var Foto = localStorage.getItem("foto");
    var funcao = localStorage.getItem("funcao");
    var Telefone = localStorage.getItem("Telefone");
    var condominio = localStorage.getItem("condominio");
    $('#id-usuario').val(id);
    $('#celular').val(Telefone);

      $('#editar-senha').click(function(event){
           event.preventDefault();
          // Recuperando os valores dos meus inputs para alteração de senha
          // e com isso compara para ver se os dois valores batem com oque as informções iguais
          var primeirasenha = $("#primeira-senha").val();
          var segundasenha = $("#segunda-senha").val();
          
          // verfique se as duas senhas são iguais se elas forem executem o primeiro if se não for execute  else
          if(primeirasenha == segundasenha){
              // app.preloader.show();
              $.ajax({
                url: url + "/listar/alterarsenha.php",
                method: "post",
                data: $('form').serialize(),
                
                success: function(mensagem){
                  // alert(mensagem);
                    
                  if(mensagem.trim() === 'Salvo'){  
                     mensagemToast('Senha alterada com sucesso!', 5000);
                     app.views.main.router.navigate('/login/');
                     
                  }else{                        
                    mensagemToast(mensagem, 5000);
                  } 
                  app.preloader.hide();
                },                
            });
          }else{
            mensagemToast('As senhas estão diferente.', 5000);
          }

          function mensagemToast(msg, tempo){
            toastBottom = app.toast.create({
              text: msg,
              position: 'top',
              closeTimeout: tempo,
            });
            toastBottom.open();
          }
          
          
      });
      $('#btn-sair').click(function(event){
        event.preventDefault();
        logout()
      });
    },
    
    pageBeforeRemove: function (event, page) {
    // fazer algo antes da página ser removida do DOM
    },
    }
    },
    {
      path: '/docs/',
      url: 'document.html',
      options: {
        transition: 'f7-circle',
      },
    on: {
    pageBeforeIn: function (event, page) {
    // fazer algo antes da página ser exibida
    $("#menuPrincipal").hide("fast");
    },
    pageAfterIn: function (event, page) {
    // fazer algo depois da página ser exibida

    },
    pageInit: function (event, page) {
    // fazer algo quando a página for inicializada
    },
    pageBeforeRemove: function (event, page) {
    // fazer algo antes da página ser removida do DOM
    },
    }
    },

    {
      path: '/Assinar_holerite/',
      url: 'Assinar_holerite.html',
      animate: false,
      on: {
        pageBeforeIn: function (event, page) {
          // fazer algo antes da página ser exibida
        },
        pageAfterIn: function (event, page) {
          // fazer algo depois da página ser exibida
          const documento_holerite = localStorage.getItem("holerite_documento");
          const id_holerite = localStorage.getItem("holerite_id");
          const status_holerite = localStorage.getItem("holerite_status");
          const mes_holerite = localStorage.getItem("holerite_mes");
          
          const inputFoto = page.el.querySelector('#fotografia'); // pega o input dentro da página carregada
    
          if (inputFoto) {
            inputFoto.addEventListener('change', function () {
              if (this.files && this.files.length > 0) {
                const file = this.files[0];
                var nemaFoto = file.name;
                var tamanhoFoto = file.size;
                var tipoFoto = file.type; 
                var id = localStorage.getItem("id");
                var nome = localStorage.getItem("nome");
                var email = localStorage.getItem("email");
                var funcao = localStorage.getItem("funcao");
                var Telefone = localStorage.getItem("Telefone");
                var condominio = localStorage.getItem("condominio");
                var turno = localStorage.getItem("turno");
                var confirmar = localStorage.getItem("confima");
                var documento = localStorage.getItem("documento");

                app.preloader.show(); // Exibe o preloader enquanto processa a requisição
                
                let form_data = new FormData();
                let img = $("#fotografia")[0].files[0];

                form_data.append('fotografiaarquivo', img);
                form_data.append('id', id);
                form_data.append('nome', nome);
                form_data.append('email', email);
                form_data.append('funcao', funcao);
                form_data.append('Telefone', Telefone);
                form_data.append('condominio', condominio);
                form_data.append('turno', turno);
                form_data.append('confirmar', confirmar);
                form_data.append('documento', documento);
                form_data.append('id_holerite', id_holerite);
                form_data.append('documento_holerite', documento_holerite);
                form_data.append('mes_holerite', mes_holerite);
                form_data.append('status_holerite', status_holerite);
                form_data.append('nomeFoto', nemaFoto);
                form_data.append('tamanhoFoto', tamanhoFoto);
                form_data.append('tipoFoto', tipoFoto);

                $.ajax({
                  url: url + "listar/assinar_documento.php",
                  type: 'POST',
                  data: form_data,
                  contentType: false,
                  processData: false,
                  cache: false,
                  success: function(data){
                    app.preloader.hide();
                    showToast('Assinatura realizada com sucesso!');
                    app.views.main.router.navigate('/assinaturas/');
                  },
                  error: function(xhr, status, error){
                    console.log(error);
                  }
                });
              }
            });
          } else {
            console.warn('inputFoto não encontrado na página Assinar_holerite');
          }
        },
        pageInit: function (event, page) {
          // fazer algo quando a página for inicializada
        },
        pageBeforeRemove: function (event, page) {
          // fazer algo antes da página ser removida do DOM
        },
      }
    },
    {
      path: '/detailsponto/',
      url: 'detalhes_ponto.html',
      animate: false,
      on: {
      pageBeforeIn: function (event, page) {
      // fazer algo antes da página ser exibida
        },
      pageAfterIn: function (event, page) {
      // fazer algo depois da página ser exibida
        },
      pageInit: function (event, page) {
      // fazer algo quando a página for inicializada
        },
        pageBeforeRemove: function (event, page) {
          // Recuperar endereço no localStorage
          var rua = localStorage.getItem("rua") || '';
          var bairro = localStorage.getItem("bairro") || '';
          var cidade = localStorage.getItem("cidade") || '';
          var estado = localStorage.getItem("estado") || '';
          var cep = localStorage.getItem("cep") || '';
          var pais = localStorage.getItem("pais") || '';

          // Montar endereço formatado
          var enderecoFormatado = `${rua}, ${bairro}, ${cidade}-${estado}`;

          // Exibir na div
          document.querySelector('.localizacao-info').innerHTML = `<i class="ri-map-pin-line"></i> ${enderecoFormatado}`;
        },
      }
    },
    
    {
      path: '/notificacao/',
      url: 'notifica.html',
      options: {
        transition: 'f7-circle',
      },
      on: {
        pageBeforeIn: function (event, page) {
          $("#menuPrincipal").hide("fast");
        },
        pageInit: function (event, page) {
          // Função para carregar as preferências do usuário
          function carregarPreferencias() {
            var id = localStorage.getItem("id");
            if (!id) {
                showToast("ID de usuário não encontrado!");
                return;
            }

            $.ajax({
              url: url + "listar/buscar_preferencias.php",
              type: 'POST',
              data: { id_usuario: 145428 },
              dataType: 'json',
              success: function(response) {
                console.log("Preferências:", response);
            
                if (response.preferencias && Array.isArray(response.preferencias)) {
                  response.preferencias.forEach(pref => {
                    const tipo = pref.tipo.trim();
                    const status = parseInt(pref.status);
            
                    // Encontra o checkbox correspondente ao tipo
                    const checkbox = $(`input[type="checkbox"][data-tipo="${tipo}"]`);
            
                    if (checkbox.length) {
                      checkbox.prop('checked', status === 1);
                    }
                  });
                }
              },
              error: function(xhr, status, error) {
                console.error("Erro ao buscar preferências:", error);
              }
            });
        }
    

      function salvarPreferencia(tipo, status) {
        var id = localStorage.getItem("id");
        if (!id) {
          showToast("ID de usuário não encontrado!");
          return;
        }

        let form_data = new FormData();
        form_data.append('my_id', id);
        form_data.append('my_tipo', tipo);
        form_data.append('my_status', status);
        
        $.ajax({
          url: url + "listar/salvar_preferencia.php",
          type: 'POST',
          data: form_data,
          contentType: false,
          processData: false,
          cache: false,
          success: function(data) {
            if(status === '1') {
              showToast('Preferência salva com sucesso!');
            } else {
              showToast('Preferência removida com sucesso!');
            }
          }
        });
      }

      // Carrega as preferências quando a página é inicializada
      carregarPreferencias();

      // Adiciona o evento de change nos checkboxes
      $('.toggle input[type="checkbox"]').on('change', function() {
        var tipo = $(this).closest('li').find('.item-title').text().trim();
        var status = this.checked ? '1' : '0';
        salvarPreferencia(tipo, status);
      });
    },
    pageAfterIn: function (event, page) {},
    pageBeforeRemove: function (event, page) {}
  }
    },
    {
      path: '/login/',
      url: 'login.html',
      animate: false,
      on: {
        pageBeforeIn: function (event, page) {
        // fazer algo antes da página ser exibida
        $("#menuPrincipal").hide("fast"); 
        },
        pageAfterIn: function (event, page) {
        // fazer algo depois da página ser exibida
        },
        pageInit: function (event, page) {
          // fazer algo quando a página for inicializada
          var pag = '/login/';
          
          // Verifica se o usuário já está logado
          if (localStorage.getItem('id')) {
            app.views.main.router.navigate('/index/');
            return; // impede que o resto da função seja executado
          }
        

        $('#btn-login').click(function(event){
          event.preventDefault();
          login(pag)
        });
        
        
        },
        pageBeforeRemove: function (event, page) {
        // fazer algo antes da página ser removida do DOM
        },
      }
      },
      
    // Rota listar holerites
    {
      path: '/assinaturas/',
      url: 'assinaturas.html',
      options: {
        transition: 'f7-circle',
      },
      on: {
        pageBeforeIn: function (event, page) {
          // fazer algo antes da página ser exibida
          $("#menuPrincipal").hide("fast");
        },
        pageAfterIn: function (event, page) {
          // fazer algo depois da página ser exibida
        },
        pageInit: function (event, page) {
          // fazer algo quando a página for inicializada
          var pag = '/listar/';
          var retryCount = 0;
          var maxRetries = 3;

          function initializeList() {
            console.log('Tentando inicializar lista...');
            
            // Verifica se o container da lista existe
            if ($('.list').length === 0) {
              console.log('Container da lista não encontrado, tentando novamente...');
              if (retryCount < maxRetries) {
                retryCount++;
                setTimeout(initializeList, 1000);
              }
              return;
            }

            // Tenta carregar a lista
            $.ajax({
              url: url + pag + "listar_usuarios.php",
              method: 'POST',
              data: { nome: localStorage.getItem("nome") },
              dataType: "html",
              success: function(result) {
                console.log('Lista carregada com sucesso');
                $("#listar").html(result);
                
                // Inicializa a searchbar após a lista estar carregada
                if (typeof app.searchbar !== 'undefined') {
                  var searchbar = app.searchbar.create({
                    el: '.searchbar',
                    searchContainer: '.list',
                    searchIn: '.item-title',
                    on: {
                      search(sb, query, previousQuery) {
                        // Implementar lógica de busca se necessário
                      }
                    }
                  });
                }
              },
              error: function(xhr, status, error) {
                console.error('Erro ao carregar lista:', error);
                if (retryCount < maxRetries) {
                  retryCount++;
                  setTimeout(initializeList, 1000);
                }
              }
            });
          }

          // Inicia o processo de inicialização
          initializeList();
        },
        pageBeforeRemove: function (event, page) {
          // fazer algo antes da página ser removida do DOM
        },
      }
    },

    // Rota listar o pontos do funcionário
    {
      path: '/vewponto/',
      url: 'pontos.html',
      options: {
        transition: 'f7-circle',
      },
      on: {
        pageBeforeIn: function (event, page) {
          $("#menuPrincipal").hide("fast");
        },
        pageAfterIn: function (event, page) {
          // fazer algo depois da página ser exibida
        },
        pageInit: function (event, page) {
          // Aguarda o DOM estar completamente carregado
          $(document).ready(function() {
            var pag = '/listar/';
            var retryCount = 0;
            var maxRetries = 3;

            // Função para carregar os dados
            function loadData() {
              // Mostra preloader
              app.preloader.show();

              $.ajax({
                url: url + pag + "listar_ponto.php",
                method: 'POST',
                data: { 
                  nome: localStorage.getItem("nome"), 
                  id: localStorage.getItem("id")
                },
                dataType: "html",
                cache: false,
                success: function(result) {
                  console.log('Dados carregados com sucesso');
                  // Garante que o container existe
                  if ($('#listar').length) {
                    $("#listar").html(result);
                    
                    // Inicializa a searchbar após a lista estar carregada
                    if (typeof app.searchbar !== 'undefined') {
                      var searchbar = app.searchbar.create({
                        el: '.searchbar',
                        searchContainer: '.list',
                        searchIn: '.item-title',
                        on: {
                          search(sb, query, previousQuery) {
                            // Implementar lógica de busca se necessário
                          }
                        }
                      });
                    }
                  } else {
                    console.error('Container #listar não encontrado após carregar dados');
                    app.dialog.create({
                      title: 'Atenção',
                      text: 'Erro ao exibir a lista. Por favor, tente novamente.',
                      buttons: [
                        {
                          text: 'OK'
                        }
                      ]
                    }).open();
                  }
                },
                error: function(xhr, status, error) {
                  console.error('Erro ao carregar dados:', error);
                  if (retryCount < maxRetries) {
                    retryCount++;
                    setTimeout(loadData, 1000);
                  } else {
                    app.dialog.alert('Não foi possível carregar a lista. Por favor, tente novamente.');
                  }
                },
                complete: function() {
                  // Esconde preloader independente do resultado
                  app.preloader.hide();
                }
              });
            }

            // Função para verificar se o container existe e está pronto
            function checkContainer() {
              console.log('Verificando container...');
              
              // Força a limpeza do container
              $("#listar").empty();
              
              if ($('#listar').length) {
                console.log('Container encontrado, iniciando carregamento...');
                loadData();
              } else {
                console.log('Container não encontrado, tentando novamente...');
                if (retryCount < maxRetries) {
                  retryCount++;
                  setTimeout(checkContainer, 500);
                } else {
                  app.dialog.alert('Erro ao inicializar a página. Por favor, recarregue.');
                }
              }
            }

            // Inicia o processo
            retryCount = 0;
            checkContainer();
          });
        },
        pageBeforeRemove: function (event, page) {
          $("#listar").empty();
        },
      }
    },
  ],
  // ... other parameters
});

//Para testes direto no navegador
var mainView = app.views.create('.view-main', { url: '/index/' });

//EVENTO PARA SABER O ITEM DO MENU ATUAL
app.on('routeChange', function (route) {
  var currentRoute = route.url;
  console.log(currentRoute);
  document.querySelectorAll('.tab-link').forEach(function (el) {
    el.classList.remove('active');
  });
  var targetEl = document.querySelector('.tab-link[href="' + currentRoute + '"]');
  if (targetEl) {
    targetEl.classList.add('active');
  }
});


function onDeviceReady() {
  //Quando estiver rodando no celular
  var mainView = app.views.create('.view-main', { url: '/index/' });

  //COMANDO PARA "OUVIR" O BOTAO VOLTAR NATIVO DO ANDROID   
  document.addEventListener("backbutton", function (e) {

    if (mainView.router.currentRoute.path === '/index/') {
      e.preventDefault();
      app.dialog.confirm('Deseja sair do aplicativo?', function () {
        navigator.app.exitApp();
      });
    } else {
      e.preventDefault();
      mainView.router.back({ force: true });
    }
  }, false);

}

var nome = localStorage.getItem("nome");
// AJAX GLOBAL  
//  ajax para listar o dados
function listar(tabela){
  // Metedo  para enviar o post para a api php
  $.ajax({
      url: url + tabela + "listar_usuarios.php", //caminha para chamar os arquivos 
      method: 'POST', //Tipo de inserção
      data: {nome},
      dataType: "html",

      success:function(result){
          $("#listar").html(result);
          // $('#mensagem-excluir').text('');
      }
  });
}

// Função de login
function login(pag) {
  app.preloader.show(); // Exibe o preloader enquanto processa a requisição

  // Envia a requisição AJAX para o PHP
  $.ajax({
      url: url + "listar/login.php", // URL do script PHP
      method: "post", // Método HTTP
      data: $('form').serialize(), // Serializa os dados do formulário para envio

      success: function(mensagem){
        // Tenta converter a resposta JSON do servidor
        var dados = JSON.parse(mensagem)
              var id = dados.ID
              // alert(id)
              // // Verifica se o ID do usuário foi retornado
              if (id > 0) {
                // Armazena os dados do usuário no localStorage
                  localStorage.setItem("id", dados.ID);
                  localStorage.setItem("nome", dados.Nome);
                  localStorage.setItem("email", dados.email);
                  localStorage.setItem("foto", dados.Foto);
                  localStorage.setItem("funcao", dados.funcao);
                  localStorage.setItem("Telefone", dados.Telefone);
                  localStorage.setItem("condominio", dados.condominio);
                  localStorage.setItem("turno", dados.turno);
                  localStorage.setItem("confima", dados.confimar);
                  localStorage.setItem("documento", dados.documento);

              //     // Redireciona para a página inicial
                app.views.main.router.navigate('/index/');
              } else {
                  // Exibe a mensagem de erro retornada pelo servidor
                  mensagemToast(dados.msg, 5000);
              }
              
          app.preloader.hide(); // Oculta o preloader
      },

  });
}

function showToast(messageToast) {
  const toast = document.getElementById('customToast');
  toast.textContent = messageToast;
  
  toast.style.display = 'block';

  setTimeout(() => {
      toast.style.display = 'none';
  }, 5000); // Exibe o toast por 3 segundos
}

// Função para registro de ponto
function ponto() {
  var nome = localStorage.getItem("nome");
  var turno = localStorage.getItem("turno");
  // alert("pronto para começar com a goelocalização")
  navigator.geolocation.getCurrentPosition(onSuccess, onError, { timeout: 5000, enableHighAccuracy: true });

  function onSuccess (position) {

    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;

    localStorage.setItem("latitude", latitude);
    localStorage.setItem("longitude", longitude);

    // $.getJSON('https://nominatim.openstreetmap.org/reverse?format=json&lat='+latitude+'&lon='+longitude+'')
    // alert(latitude + ' - ' + longitude);
  };

  // onError Callback receives a PositionError object
  //
  function onError(error) {
      alert('code: '    + error.code    + '\n' +
            'message: ' + error.message + '\n');
  }
  app.preloader.show(); // Exibe o preloader enquanto processa a requisição
    // Envia a requisição AJAX para o PHP
    $.ajax({
      url: url + "listar/requisit_ponto_diurno.php", // URL do script PHP
      method: "post", // Método HTTP
      data: { nome, turno }, // Serializa os dados do formulário para envio

        success: function (dadosponto) {
          try {
              // Tenta converter a resposta JSON do servidor
              var pontual = JSON.parse(dadosponto);
              // Armazena os dados do usuário no localStorage
              localStorage.setItem("ontem", pontual.indentontem);
              localStorage.setItem("hoje", pontual.indenthoje);
              localStorage.setItem("ultimo", pontual.indentultimo);
              // recuperando os dados de identificadores
              var quantidade_de_registro_ontem = localStorage.getItem("ontem");
              var input_identificadorhoje = localStorage.getItem("hoje");
              var input_ultimo_identificador_dia = localStorage.getItem("ultimo");
              // recuperando os dados do usuário
              var codigo = localStorage.getItem("id");
              var input_colaborador = localStorage.getItem("nome");
              var input_latitude = localStorage.getItem("latitude");
              var input_longetude = localStorage.getItem("longitude");
              var input_celular = localStorage.getItem("Telefone");
              var input_turno = localStorage.getItem("turno");

              // alert(input_latitude + " - " + input_longetude);
              if(quantidade_de_registro_ontem == '0'){
                //Se na data atual não houver registros dé folga no dia anterior e faça um registro na data atual
                if(input_identificadorhoje == '0'){
                    // Registrar um novo ponto no banco de dados
                    //tipo de registro
                    var type_register = "Novo registro com folga";
                    let form_data = new FormData();
        
                    
                    form_data.append('my_date_anter', quantidade_de_registro_ontem);
                    form_data.append('my_date_atual', input_identificadorhoje);
                    form_data.append('my_turno', input_turno);
                    form_data.append('my_type_register', type_register);
                    form_data.append('my_name', input_colaborador);
                    form_data.append('my_latitude', input_latitude);
                    form_data.append('my_longetude', input_longetude);
                    form_data.append('my_telefone', input_celular);
                    form_data.append('my_id', codigo);
                    
                    $.ajax({
                      url: url + "listar/cadastrar_ponto.php",
                      type: 'POST',
                      data: form_data,
                      contentType: false,
                      processData: false,
                      cache: false,
                      success: function(data) {
                        // Uso do toast mensager:
                        showToast('Jornada iniciada com sucesso!');
                        exit();
                    }
                  })
                }else{
                    if(input_identificadorhoje != '0'){
                        // // se a quantidade de registro de hoje for maior que 0
                        // // preciso que verifique qual é o valor do ultimo regsitro de hoje 
                        if(input_ultimo_identificador_dia == '3'){
                              //Fazer registro do fim da jornada do colaborador
                              var type_register = "fim de jornada";
                              
                              let form_data = new FormData();
                              
                              form_data.append('my_date_anter', quantidade_de_registro_ontem);
                              form_data.append('my_date_atual', input_identificadorhoje);
                              form_data.append('my_turno', input_turno);
                              form_data.append('my_type_register', type_register);
                              form_data.append('my_name', input_colaborador);
                              form_data.append('my_latitude', input_latitude);
                              form_data.append('my_longetude', input_longetude);
                              form_data.append('my_telefone', input_celular);
                              form_data.append('my_id', codigo);
                              
                              $.ajax({
                                url: url + "listar/editar_ponto_diurno.php",
                                type: 'POST',
                                data: form_data,
                                contentType: false,
                                processData: false,
                                cache: false,
                                  success: function(data) {
                                    // Uso do toast mensager:
                                    Swal.fire({
                                      title: 'UFAAA... ACABOU !',
                                      text: 'Sua jornada foi concluída hoje !',
                                      icon: 'success',
                                      button: false,
                                      timer: 3000,
                                    })
                                  }
                          })
                        }
                    }
                }
            }else{
                // se o valor de ontem não for 0 quero que faça esta loop
                // verifique de existe algum registro de hoje 
                if(input_identificadorhoje == '0'){
                    // Registrar um novo ponto no banco de dados
                  //tipo de registro
                  var type_register = "Novo registro de entrada";
                  let form_data = new FormData();
                  
                  form_data.append('my_date_anter', quantidade_de_registro_ontem);
                  form_data.append('my_date_atual', input_identificadorhoje);
                  form_data.append('my_turno', input_turno);
                  form_data.append('my_type_register', type_register);
                  form_data.append('my_name', input_colaborador);
                  form_data.append('my_latitude', input_latitude);
                  form_data.append('my_longetude', input_longetude);
                  form_data.append('my_telefone', input_celular);
                  form_data.append('my_id', codigo);
                  
                  $.ajax({
                    url: url + "listar/cadastrar_ponto.php",
                    type: 'POST',
                    data: form_data,
                    contentType: false,
                    processData: false,
                    cache: false,
                      success: function(data) {
                        // Uso do toast mensager:
                        showToast('Ponto registrado !');
                      }
                  })
                }else{
                    //se o regsitro de hoje for maior do que 0
                    if(input_identificadorhoje != '0'){
                        // verifique em qual etapa do ponto o colaborador esta
                         if(input_ultimo_identificador_dia == '1'){
                            //tipo de registro
                            //registrar a paua do colaborador
                              var type_register = "Registro de pausa";
                              let form_data = new FormData();
                              
                              form_data.append('my_date_anter', quantidade_de_registro_ontem);
                              form_data.append('my_date_atual', input_identificadorhoje);
                              form_data.append('my_turno', input_turno);
                              form_data.append('my_type_register', type_register);
                              form_data.append('my_name', input_colaborador);
                              form_data.append('my_latitude', input_latitude);
                              form_data.append('my_longetude', input_longetude);
                              form_data.append('my_telefone', input_celular);
                              form_data.append('my_id', codigo);
                              
                              $.ajax({
                                url: url + "listar/editar_ponto_diurno.php",
                                type: 'POST',
                                data: form_data,
                                contentType: false,
                                processData: false,
                                cache: false,
                                  success: function(data) {
                                    showToast('Pausa registrada !');
                                  }
                              })
                         }else{
                            if(input_ultimo_identificador_dia == '2'){
                              //tipo de registro
                              //registrar a paua do colaborador
                              var type_register = "Retorno da pausa";
                              let form_data = new FormData();
                              
                              form_data.append('my_date_anter', quantidade_de_registro_ontem);
                              form_data.append('my_date_atual', input_identificadorhoje);
                              form_data.append('my_turno', input_turno);
                              form_data.append('my_type_register', type_register);
                              form_data.append('my_name', input_colaborador);
                              form_data.append('my_latitude', input_latitude);
                              form_data.append('my_longetude', input_longetude);
                              form_data.append('my_telefone', input_celular);
                              form_data.append('my_id', codigo);
                              
                              $.ajax({
                                url: url + "listar/editar_ponto_diurno.php",
                                type: 'POST',
                                data: form_data,
                                contentType: false,
                                processData: false,
                                cache: false,
                                  success: function(data) {
                                    showToast('Retorno de pausa registrada !');
                                  }
                              })
                             }else{
                                if(input_ultimo_identificador_dia == '3'){
                                      //tipo de registro
                                      //registrar a paua do colaborador
                                      var type_register = "fim de jornada";
                                      let form_data = new FormData();
                                      
                                      form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                      form_data.append('my_date_atual', input_identificadorhoje);
                                      form_data.append('my_turno', input_turno);
                                      form_data.append('my_type_register', type_register);
                                      form_data.append('my_name', input_colaborador);
                                      form_data.append('my_latitude', input_latitude);
                                      form_data.append('my_longetude', input_longetude);
                                      form_data.append('my_telefone', input_celular);
                                      form_data.append('my_id', codigo);
                                      
                                      $.ajax({
                                        url: url + "listar/editar_ponto_diurno.php",
                                        type: 'POST',
                                        data: form_data,
                                        contentType: false,
                                        processData: false,
                                        cache: false,
                                          success: function(data) {
                                            Swal.fire({
                                              title: 'UFAAA... ACABOU !',
                                              text: 'Sua jornada foi concluída hoje !',
                                              icon: 'success',
                                              button: false,
                                              timer: 3000,
                                            })
                                          }
                                      })
                                }else{
                                    // se o ultimo registro do colaborador estiver um valor igual a 4
                                    // mostre para ele que a jornada de trabalho dele foi concluída
                                    if(input_ultimo_identificador_dia == '4'){
                                      Swal.fire({
                                        title: 'PARABÉNS !',
                                        text: 'Sua jornada foi concluída hoje !',
                                        icon: 'success',
                                        button: false,
                                        timer: 3000,
                                      })
                                    }
                                }
                             }
                         }
                    }
                }
            }
          } catch (e) {
              // Trata erros na conversão de JSON
              mensagemToast("Erro ao processar resposta do servidor.", 5000);
          }

          app.preloader.hide(); // Oculta o preloader
        },

      error: function () {
          // Trata erros de comunicação com o servidor
          mensagemToast("Erro na comunicação com o servidor.", 5000);
          app.preloader.hide();
      }
  });
}

// inserssão de tete para exibição do toast Swat
// function pontoNoturno(){
//   Swal.fire({
//     title: "Informação",
//     text: "um plantão na data de ontem foi finalizado, deseja iníciar um novo plantão ?",
//     icon: "warning",
//     showCancelButton: true,
//     confirmButtonColor: "#3085d6",
//     cancelButtonColor: "#d33",
//     cancelButtonText: "Cancelar",
//     confirmButtonText: "Sim, novo platão!"
//   }).then((result) => {
//     if (result.isConfirmed) {
//       //Novo registro no dia atual do usuári
      
//     }
//   });
// }

function pontoNoturno(){
    var nome = localStorage.getItem("nome");
    var turno = localStorage.getItem("turno");
    // alert("pronto para começar com a goelocalização")
    navigator.geolocation.getCurrentPosition(onSuccess, onError, { timeout: 5000, enableHighAccuracy: true });

    function onSuccess (position) {

      var latitude = position.coords.latitude;
      var longitude = position.coords.longitude;

      localStorage.setItem("latitude", latitude);
      localStorage.setItem("longitude", longitude);

      // $.getJSON('https://nominatim.openstreetmap.org/reverse?format=json&lat='+latitude+'&lon='+longitude+'')
      // alert(latitude + ' - ' + longitude);
    };
    function onError(error) {
        alert('code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n');
    }
    app.preloader.show(); // Exibe o preloader enquanto processa a requisição
      // Envia a requisição AJAX para o PHP
      $.ajax({
        url: url + "listar/requisit_ponto_noturno.php", // URL do script PHP
        method: "post", // Método HTTP
        data: { nome, turno }, // Serializa os dados do formulário para envio
          success: function (dados) {
          try {
            // Tenta converter a resposta JSON do servidor
            var pontualNoturno = JSON.parse(dados);
            // Armazena os dados do usuário no localStorage
            // Armazena os dados do usuário no localStorage
            localStorage.setItem("ontem", pontualNoturno.indentontem);
            localStorage.setItem("hoje", pontualNoturno.indenthoje);
            localStorage.setItem("ultimoAnterior", pontualNoturno.indentultimo);
            localStorage.setItem("ultimo", pontualNoturno.indentultimoDia);
            // recuperando os dados de identificadores
            var quantidade_de_registro_ontem = localStorage.getItem("ontem");
            var input_identificadorhoje = localStorage.getItem("hoje");
            var input_ultimo_identificador_dia = localStorage.getItem("ultimo");
            var valor_do_ultimo_regitro_dia_anterior = localStorage.getItem("ultimoAnterior");
            // recuperando os dados do usuário
            var codigo = localStorage.getItem("id");
            var input_colaborador = localStorage.getItem("nome");
            var input_latitude = localStorage.getItem("latitude");
            var input_longetude = localStorage.getItem("longitude");
            var input_celular = localStorage.getItem("Telefone");
            var input_turno = localStorage.getItem("turno");

            // alert(valor_do_ultimo_regitro_dia_anterior);

            //Se na data de ontem não hover registros verifique se na data atual tem algum registro.
            if(quantidade_de_registro_ontem == '0'){
              // Se a quantidade do registro de ontem for igual a zero 
              // Então verifique para mim se o dia de hoje existe algum registro
              if(input_ultimo_identificador_dia == '0'){
                // Registrar um novo ponto no banco de dados
                //tipo de registro
                var type_register = "Novo registro com folga";
                let form_data = new FormData();
                
                form_data.append('my_date_anter', quantidade_de_registro_ontem);
                form_data.append('my_date_atual', input_identificadorhoje);
                form_data.append('my_turno', input_turno);
                form_data.append('my_type_register', type_register);
                form_data.append('my_name', input_colaborador);
                form_data.append('my_latitude', input_latitude);
                form_data.append('my_longetude', input_longetude);
                form_data.append('my_telefone', input_celular);
                form_data.append('my_id', codigo);
          
                $.ajax({
                  url: url + "listar/cadastrar_ponto.php",
                  type: 'POST',
                  data: form_data,
                  contentType: false,
                  processData: false,
                  cache: false,
                    success: function(data) {
                      showToast('Jornada iniciada !');
                    }
                  })
              }else{
                  // se o valor de hoje diferente de 0
                  // verifique qual é o valor do ultimo registro
                  if(input_ultimo_identificador_dia != '0'){
                      if(input_ultimo_identificador_dia == '1'){
                          //tipo de registro
                          //registrar a paua do colaborador
                            var type_register = "Registro de pausa";
                            let form_data = new FormData();
                            
                            form_data.append('my_date_anter', quantidade_de_registro_ontem);
                            form_data.append('my_date_atual', input_identificadorhoje);
                            form_data.append('my_turno', input_turno);
                            form_data.append('my_type_register', type_register);
                            form_data.append('my_name', input_colaborador);
                            form_data.append('my_latitude', input_latitude);
                            form_data.append('my_longetude', input_longetude);
                            form_data.append('my_telefone', input_celular);
                            form_data.append('my_id', codigo);
                            
                            $.ajax({
                              url: url + "listar/editar_ponto_diurno.php",
                              type: 'POST',
                              data: form_data,
                              contentType: false,
                              processData: false,
                              cache: false,
                                success: function(data) {
                                  showToast('Pausa registrada !');
                                }
                            })
                      }else{
                          if(input_ultimo_identificador_dia == '2'){
                                //tipo de registro
                                //registrar a paua do colaborador
                                var type_register = "Retorno da pausa";
                                let form_data = new FormData();
                                
                                form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                form_data.append('my_date_atual', input_identificadorhoje);
                                form_data.append('my_turno', input_turno);
                                form_data.append('my_type_register', type_register);
                                form_data.append('my_name', input_colaborador);
                                form_data.append('my_latitude', input_latitude);
                                form_data.append('my_longetude', input_longetude);
                                form_data.append('my_telefone', input_celular);
                                form_data.append('my_id', codigo);
                                
                                $.ajax({
                                  url: url + "listar/editar_ponto_diurno.php",
                                  type: 'POST',
                                  data: form_data,
                                  contentType: false,
                                  processData: false,
                                  cache: false,
                                    success: function(data) {
                                      showToast('Retorno de pausa registrada!');
                                      
                                    }
                            })
                          }else{
                              if(input_ultimo_identificador_dia == '3'){
                                  var type_register = "fim de jornada";
                                  
                                  let form_data = new FormData();
                                  
                                  form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                  form_data.append('my_date_atual', input_identificadorhoje);
                                  form_data.append('my_turno', input_turno);
                                  form_data.append('my_type_register', type_register);
                                  form_data.append('my_name', input_colaborador);
                                  form_data.append('my_latitude', input_latitude);
                                  form_data.append('my_longetude', input_longetude);
                                  form_data.append('my_telefone', input_celular);
                                  form_data.append('my_id', codigo);
                                  
                                  $.ajax({
                                    url: url + "listar/editar_ponto_diurno.php",
                                    type: 'POST',
                                    data: form_data,
                                    contentType: false,
                                    processData: false,
                                    cache: false,
                                      success: function(data) {
                                        Swal.fire({
                                          title: 'UFAAA... ACABOU !',
                                          text: 'Sua jornada foi concluída hoje !',
                                          icon: 'success',
                                          button: false,
                                          timer: 3000,
                                        })
                                      }
                                  })
                              }else{
                                  if(input_ultimo_identificador_dia == '4'){
                                      Swal.fire({
                                      title: 'PARABÉNS !',
                                      text: 'Sua jornada foi concluída hoje !',
                                      icon: 'success',
                                      button: false,
                                      timer: 3000,
                                    })
                                  }
                              }
                          }
                      }
                  }
              }
          }else{
              // se ontem tiver registro, se for diferente de 0
              if(quantidade_de_registro_ontem != '0'){
                  // verifique para mim qual é ultimo registro de ontem 
                  if(valor_do_ultimo_regitro_dia_anterior == '9'){
                      if(input_ultimo_identificador_dia == '0'){
                            //Novo registro no dia atual do usuário
                            var type_register = "Novo registro de entrada";
                            
                            let form_data = new FormData();
                            
                            form_data.append('my_date_anter', quantidade_de_registro_ontem);
                            form_data.append('my_date_atual', input_identificadorhoje);
                            form_data.append('my_turno', input_turno);
                            form_data.append('my_type_register', type_register);
                            form_data.append('my_name', input_colaborador);
                            form_data.append('my_latitude', input_latitude);
                            form_data.append('my_longetude', input_longetude);
                            form_data.append('my_telefone', input_celular);
                            form_data.append('my_id', codigo);
                            
                            $.ajax({
                            url: url + "listar/cadastrar_ponto.php",
                            type: 'POST',
                            data: form_data,
                            contentType: false,
                            processData: false,
                            cache: false,
                              success: function(data) {
                                showToast('Jornada iniciada !');
                              }
                          })
                      }else{
                          if(input_ultimo_identificador_dia == '1'){
                              //tipo de registro
                              //registrar a paua do colaborador
                                var type_register = "Registro de pausa";
                                let form_data = new FormData();
                                
                                form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                form_data.append('my_date_atual', input_identificadorhoje);
                                form_data.append('my_turno', input_turno);
                                form_data.append('my_type_register', type_register);
                                form_data.append('my_name', input_colaborador);
                                form_data.append('my_latitude', input_latitude);
                                form_data.append('my_longetude', input_longetude);
                                form_data.append('my_telefone', input_celular);
                                form_data.append('my_id', codigo);
                                
                                $.ajax({
                                  url: url + "listar/editar_ponto_diurno.php",
                                  type: 'POST',
                                  data: form_data,
                                  contentType: false,
                                  processData: false,
                                  cache: false,
                                    success: function(data) {
                                      showToast('Registro de pausa !');
                                    }
                                })
                          }else{
                              if(input_ultimo_identificador_dia == '2'){
                                    //tipo de registro
                                    //registrar a paua do colaborador
                                    var type_register = "Retorno da pausa";
                                    let form_data = new FormData();
                                    
                                    form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                    form_data.append('my_date_atual', input_identificadorhoje);
                                    form_data.append('my_turno', input_turno);
                                    form_data.append('my_type_register', type_register);
                                    form_data.append('my_name', input_colaborador);
                                    form_data.append('my_latitude', input_latitude);
                                    form_data.append('my_longetude', input_longetude);
                                    form_data.append('my_telefone', input_celular);
                                    form_data.append('my_id', codigo);
                                    
                                    $.ajax({
                                      url: url + "listar/editar_ponto_diurno.php",
                                      type: 'POST',
                                      data: form_data,
                                      contentType: false,
                                      processData: false,
                                      cache: false,
                                        success: function(data) {
                                          showToast('Retorno da pausa registrada !');
                                        }
                                    })
                              }else{
                                  if(input_ultimo_identificador_dia == '3'){
                                      var type_register = "fim de jornada";
                                      
                                      let form_data = new FormData();
                                      
                                      form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                      form_data.append('my_date_atual', input_identificadorhoje);
                                      form_data.append('my_turno', input_turno);
                                      form_data.append('my_type_register', type_register);
                                      form_data.append('my_name', input_colaborador);
                                      form_data.append('my_latitude', input_latitude);
                                      form_data.append('my_longetude', input_longetude);
                                      form_data.append('my_telefone', input_celular);
                                      form_data.append('my_id', codigo);
                                      
                                      $.ajax({
                                        url: url + "listar/editar_ponto_diurno.php",
                                        type: 'POST',
                                        data: form_data,
                                        contentType: false,
                                        processData: false,
                                        cache: false,
                                          success: function(data) {
                                            Swal.fire({
                                              title: 'UFAAA... ACABOU !',
                                              text: 'Sua jornada foi concluída hoje !',
                                              icon: 'success',
                                              button: false,
                                              timer: 3000,
                                            })
                                          }
                                      })
                                  }else{
                                      if(input_ultimo_identificador_dia == '4'){
                                          Swal.fire({
                                          title: 'PARABÉNS !',
                                          text: 'Sua jornada foi concluída hoje !',
                                          icon: 'success',
                                          button: false,
                                          timer: 3000,
                                        })
                                      }
                                  }
                              }
                          }
                      }
                  }else{
                      if(valor_do_ultimo_regitro_dia_anterior == '1'){
                          Swal.fire({
                            title: 'Atenção',
                            text: "Olá " + input_colaborador + " selecione oque deseja a baixo ",
                            icon: 'warning',
                            showDenyButton: true,
                            showCancelButton: true,
                            confirmButtonText: "Nova Entrada",
                            denyButtonText: `Pausa para janta`,
                            cancelButtonText: "Cancelar",
                          }).then((result) => {
                            /* Read more about isConfirmed, isDenied below */
                            if (result.isConfirmed) {
                              //Novo registro no dia atual do usuário
                                var type_register = "Novo registro de entrada";
                                
                                let form_data = new FormData();
                                
                                form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                form_data.append('my_date_atual', input_identificadorhoje);
                                form_data.append('my_turno', input_turno);
                                form_data.append('my_type_register', type_register);
                                form_data.append('my_name', input_colaborador);
                                form_data.append('my_latitude', input_latitude);
                                form_data.append('my_longetude', input_longetude);
                                form_data.append('my_telefone', input_celular);
                                form_data.append('my_id', codigo);
                                
                                $.ajax({
                                url: url + "listar/cadastrar_ponto.php",
                                type: 'POST',
                                data: form_data,
                                contentType: false,
                                processData: false,
                                cache: false,
                                  success: function(data) {
                                    showToast('Jornada iniciada !');
                                  }
                              })
                            } else if (result.isDenied) {
                              //registrar a paua do colaborador
                                var type_register = "Registro de pausa";
                                let form_data = new FormData();
                                
                                form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                form_data.append('my_date_atual', input_identificadorhoje);
                                form_data.append('my_turno', input_turno);
                                form_data.append('my_type_register', type_register);
                                form_data.append('my_name', input_colaborador);
                                form_data.append('my_latitude', input_latitude);
                                form_data.append('my_longetude', input_longetude);
                                form_data.append('my_telefone', input_celular);
                                form_data.append('my_id', codigo);
                                
                                $.ajax({
                                  url: url + "listar/editar_ponto_noturno.php",
                                  type: 'POST',
                                  data: form_data,
                                  contentType: false,
                                  processData: false,
                                  cache: false,
                                    success: function(data) {
                                      showToast('Registro de pausa !');
                                    }
                                })
                                }
                              });
                      }else{
                        if(valor_do_ultimo_regitro_dia_anterior == '2'){
                          Swal.fire({
                            title: 'Atenção',
                            text: "Olá " + input_colaborador + " selecione oque deseja a baixo",
                            icon: 'warning',
                            showDenyButton: true,
                            showCancelButton: true,
                            confirmButtonText: "Nova Entrada",
                            denyButtonText: `Retorno da janta`,
                            cancelButtonText: "Cancelar",
                          }).then((result) => {
                            /* Read more about isConfirmed, isDenied below */
                            if (result.isConfirmed) {
                              //Novo registro no dia atual do usuário
                                var type_register = "Novo registro de entrada";
                                
                                let form_data = new FormData();
                                
                                form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                form_data.append('my_date_atual', input_identificadorhoje);
                                form_data.append('my_turno', input_turno);
                                form_data.append('my_type_register', type_register);
                                form_data.append('my_name', input_colaborador);
                                form_data.append('my_latitude', input_latitude);
                                form_data.append('my_longetude', input_longetude);
                                form_data.append('my_telefone', input_celular);
                                form_data.append('my_id', codigo);
                                
                                $.ajax({
                                url: url + "listar/cadastrar_ponto.php",
                                type: 'POST',
                                data: form_data,
                                contentType: false,
                                processData: false,
                                cache: false,
                                  success: function(data) {
                                    showToast('Jornada iniciada !');
                                  }
                                })
                            } else if (result.isDenied) {
                              //registrar a paua do colaborador
                                var type_register = "Retorno da pausa";
                                let form_data = new FormData();
                                
                                form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                form_data.append('my_date_atual', input_identificadorhoje);
                                form_data.append('my_turno', input_turno);
                                form_data.append('my_type_register', type_register);
                                form_data.append('my_name', input_colaborador);
                                form_data.append('my_latitude', input_latitude);
                                form_data.append('my_longetude', input_longetude);
                                form_data.append('my_telefone', input_celular);
                                form_data.append('my_id', codigo);
                                
                                $.ajax({
                                  url: url + "listar/editar_ponto_noturno.php",
                                  type: 'POST',
                                  data: form_data,
                                  contentType: false,
                                  processData: false,
                                  cache: false,
                                    success: function(data) {
                                      showToast('Retorno da pausa !');
                                    }
                                })
                                }
                              });
                          }else{
                              if(valor_do_ultimo_regitro_dia_anterior == '3'){
                                  Swal.fire({
                                    title: 'Atenção',
                                    text: "Olá " + input_colaborador + " selecione oque deseja a baixo",
                                    icon: 'warning',
                                    showDenyButton: true,
                                    showCancelButton: true,
                                    confirmButtonText: "Nova Entrada",
                                    denyButtonText: `Finalizar turno`,
                                    cancelButtonText: "Cancelar",
                                  }).then((result) => {
                                    /* Read more about isConfirmed, isDenied below */
                                    if (result.isConfirmed) {
                                      //Novo registro no dia atual do usuário
                                        var type_register = "Novo registro de entrada";
                                        
                                        let form_data = new FormData();
                                        
                                        form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                        form_data.append('my_date_atual', input_identificadorhoje);
                                        form_data.append('my_turno', input_turno);
                                        form_data.append('my_type_register', type_register);
                                        form_data.append('my_name', input_colaborador);
                                        form_data.append('my_latitude', input_latitude);
                                        form_data.append('my_longetude', input_longetude);
                                        form_data.append('my_telefone', input_celular);
                                        form_data.append('my_id', codigo);
                                        
                                        $.ajax({
                                        url: url + "listar/cadastrar_ponto.php",
                                        type: 'POST',
                                        data: form_data,
                                        contentType: false,
                                        processData: false,
                                        cache: false,
                                          success: function(data) {
                                            showToast('Jornada iniciada !');
                                          }
                                      })
                                    } else if (result.isDenied) {
                                      //registrar a paua do colaborador
                                        var type_register = "fim de jornada";
                                        let form_data = new FormData();
                                        
                                        form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                        form_data.append('my_date_atual', input_identificadorhoje);
                                        form_data.append('my_turno', input_turno);
                                        form_data.append('my_type_register', type_register);
                                        form_data.append('my_name', input_colaborador);
                                        form_data.append('my_latitude', input_latitude);
                                        form_data.append('my_longetude', input_longetude);
                                        form_data.append('my_telefone', input_celular);
                                        form_data.append('my_id', codigo);
                                        
                                        $.ajax({
                                          url: url + "listar/editar_ponto_noturno.php",
                                          type: 'POST',
                                          data: form_data,
                                          contentType: false,
                                          processData: false,
                                          cache: false,
                                            success: function(data) {
                                              Swal.fire({
                                                title: 'UFAAA... ACABOU !',
                                                text: 'Sua jornada foi concluída hoje !',
                                                icon: 'success',
                                                button: false,
                                                timer: 3000,
                                              })
                                            }
                                        })
                                      }
                                  });
                              }else{
                                  if(valor_do_ultimo_regitro_dia_anterior == '4'){
                                      if(input_ultimo_identificador_dia != '0'){
                                          if(input_ultimo_identificador_dia == '1'){
                                              //tipo de registro
                                              //registrar a paua do colaborador
                                                var type_register = "Registro de pausa";
                                                let form_data = new FormData();
                                                
                                                form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                                form_data.append('my_date_atual', input_identificadorhoje);
                                                form_data.append('my_turno', input_turno);
                                                form_data.append('my_type_register', type_register);
                                                form_data.append('my_name', input_colaborador);
                                                form_data.append('my_latitude', input_latitude);
                                                form_data.append('my_longetude', input_longetude);
                                                form_data.append('my_telefone', input_celular);
                                                form_data.append('my_id', codigo);
                                                
                                                $.ajax({
                                                  url: url + "listar/editar_ponto_diurno.php",
                                                  type: 'POST',
                                                  data: form_data,
                                                  contentType: false,
                                                  processData: false,
                                                  cache: false,
                                                    success: function(data) {
                                                      showToast('Registro de pausa !');
                                                    }
                                                })
                                          }else{
                                              if(input_ultimo_identificador_dia == '2'){
                                                    //tipo de registro
                                                    //registrar a paua do colaborador
                                                    var type_register = "Retorno da pausa";
                                                    let form_data = new FormData();
                                                    
                                                    form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                                    form_data.append('my_date_atual', input_identificadorhoje);
                                                    form_data.append('my_turno', input_turno);
                                                    form_data.append('my_type_register', type_register);
                                                    form_data.append('my_name', input_colaborador);
                                                    form_data.append('my_latitude', input_latitude);
                                                    form_data.append('my_longetude', input_longetude);
                                                    form_data.append('my_telefone', input_celular);
                                                    form_data.append('my_id', codigo);
                                                    
                                                    $.ajax({
                                                      url: url + "listar/editar_ponto_diurno.php",
                                                      type: 'POST',
                                                      data: form_data,
                                                      contentType: false,
                                                      processData: false,
                                                      cache: false,
                                                        success: function(data) {
                                                          showToast('Retorno de pausa registrada !');
                                                        }
                                                    })
                                              }else{
                                                  if(input_ultimo_identificador_dia == '3'){
                                                      var type_register = "fim de jornada";
                                                      
                                                      let form_data = new FormData();
                                                      
                                                      form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                                      form_data.append('my_date_atual', input_identificadorhoje);
                                                      form_data.append('my_turno', input_turno);
                                                      form_data.append('my_type_register', type_register);
                                                      form_data.append('my_name', input_colaborador);
                                                      form_data.append('my_latitude', input_latitude);
                                                      form_data.append('my_longetude', input_longetude);
                                                      form_data.append('my_telefone', input_celular);
                                                      form_data.append('my_id', codigo);
                                                      
                                                      $.ajax({
                                                        url: url + "listar/editar_ponto_diurno.php",
                                                        type: 'POST',
                                                        data: form_data,
                                                        contentType: false,
                                                        processData: false,
                                                        cache: false,
                                                          success: function(data) {
                                                            Swal.fire({
                                                              title: 'UFAAA... ACABOU !',
                                                              text: 'Sua jornada foi concluída hoje !',
                                                              icon: 'success',
                                                              button: false,
                                                              timer: 3000,
                                                            })
                                                          }
                                                      })
                                                  }else{
                                                      if(input_ultimo_identificador_dia == '4'){
                                                          Swal.fire({
                                                          title: 'PARABÉNS !',
                                                          text: 'Sua jornada foi concluída hoje !',
                                                          icon: 'success',
                                                          button: false,
                                                          timer: 3000,
                                                        })
                                                      }
                                                  }
                                              }
                                          }
                                      }else{
                                          if(input_ultimo_identificador_dia == '0'){
                                              if(valor_do_ultimo_regitro_dia_anterior == '4'){
                                                  Swal.fire({
                                                    title: "Informação",
                                                    text: "" + input_colaborador + "um plantão na data de ontem foi finalizado, deseja iníciar um novo plantão ?",
                                                    icon: "warning",
                                                    showCancelButton: true,
                                                    confirmButtonColor: "#3085d6",
                                                    cancelButtonColor: "#d33",
                                                    cancelButtonText: "Cancelar",
                                                    confirmButtonText: "Sim, novo platão!"
                                                  }).then((result) => {
                                                    if (result.isConfirmed) {
                                                      //Novo registro no dia atual do usuário
                                                        var type_register = "Novo registro de entrada";
                                                        
                                                        let form_data = new FormData();
                                                        
                                                        form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                                        form_data.append('my_date_atual', input_identificadorhoje);
                                                        form_data.append('my_turno', input_turno);
                                                        form_data.append('my_type_register', type_register);
                                                        form_data.append('my_name', input_colaborador);
                                                        form_data.append('my_latitude', input_latitude);
                                                        form_data.append('my_longetude', input_longetude);
                                                        form_data.append('my_telefone', input_celular);
                                                        form_data.append('my_id', codigo);
                                                        
                                                        $.ajax({
                                                        url: url + "listar/cadastrar_ponto.php",
                                                        type: 'POST',
                                                        data: form_data,
                                                        contentType: false,
                                                        processData: false,
                                                        cache: false,
                                                          success: function(data) {
                                                           showToast('Jornada iniciada !');
                                                          }
                                                      })
                                                    }
                                                  });
                                              }
                                          }
                                      }
                                  }else{
                                      if(valor_do_ultimo_regitro_dia_anterior == '4'){
                                          Swal.fire({
                                            title: "Informação",
                                            text: "" + input_colaborador + "um plantão na data de ontem foi finalizado, deseja iníciar um novo plantão ?",
                                            icon: "warning",
                                            showCancelButton: true,
                                            confirmButtonColor: "#3085d6",
                                            cancelButtonColor: "#d33",
                                            cancelButtonText: "Cancelar",
                                            confirmButtonText: "Sim, novo platão!"
                                          }).then((result) => {
                                            if (result.isConfirmed) {
                                              //Novo registro no dia atual do usuário
                                                var type_register = "Novo registro de entrada";
                                                
                                                let form_data = new FormData();
                                                
                                                form_data.append('my_date_anter', quantidade_de_registro_ontem);
                                                form_data.append('my_date_atual', input_identificadorhoje);
                                                form_data.append('my_turno', input_turno);
                                                form_data.append('my_type_register', type_register);
                                                form_data.append('my_name', input_colaborador);
                                                form_data.append('my_latitude', input_latitude);
                                                form_data.append('my_longetude', input_longetude);
                                                form_data.append('my_telefone', input_celular);
                                                form_data.append('my_id', codigo);
                                                
                                                $.ajax({
                                                url: url + "listar/cadastrar_ponto.php",
                                                type: 'POST',
                                                data: form_data,
                                                contentType: false,
                                                processData: false,
                                                cache: false,
                                                    success: function(data) {
                                                      showToast('Jornada iniciada !');
                                                    }
                                              })
                                            }
                                          });
                                      }
                                  }
                                  
                              }    
                          }  
                      }
                      
                  }
              }
          }
          } catch (e) {
              // Trata erros na conversão de JSON
              mensagemToast("Erro ao processar resposta do servidor.", 5000);
              // mensagemToast(dadospontonoturno);
          }

          app.preloader.hide(); // Oculta o preloader
        },

      error: function () {
          // Trata erros de comunicação com o servidor
          mensagemToast("Erro na comunicação com o servidor.", 5000);
          app.preloader.hide();
      }
    });
}



// Função para exibir mensagens ao usuário
function mensagemToast(msg, tempo) {
  // Cria um toast na posição superior da tela
  var toastBottom = app.toast.create({
      text: msg, // Texto da mensagem
      position: 'top', // Posição do toast
      closeTimeout: tempo, // Tempo de exibição
  });
  toastBottom.open(); // Exibe o toast
}

// função para deslogar totalmente
function logout(){
      // Limpa os dados da sessão
      localStorage.clear(); // Ou sessionStorage.clear() se os dados estiverem no sessionStorage
        sessionStorage.clear();
        // Redireciona para a página de login
      app.views.main.router.navigate('/login/');
}

function ver_detalhes_ponto(ID, datames, entrada, pausa, retorno, saida, datacomplet, Latitude, Longetude) {
  const url = `https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=${Latitude}&lon=${Longetude}`;

  fetch(url, {
    headers: {
      'User-Agent': 'Registropro/1.0 (fellipesouza@gmail.com)',
      'Accept-Language': 'pt-BR'
    }
  })
    .then(response => response.json())
    .then(data => {
      let endereco = 'Endereço não encontrado';
      if (data && data.address) {
        const addr = data.address;
        endereco = `${addr.road || ''}, ${addr.suburb || addr.neighbourhood || ''}, ${addr.city || addr.town || addr.village || ''} - ${addr.state || ''}`;
      }

      const mensagem = `
        <div class="dialog-message" style="font-size: 16px;">
          <p><i class="ri-calendar-line"></i> <strong></strong> ${datacomplet}</p>
          <p><i class="ri-map-pin-line"></i> <strong></strong> ${endereco}</p>
        </div>
      `;

      app.dialog.create({
        title: '<i class="ri-information-line"></i> Detalhes do Ponto',
        content: mensagem,
        buttons: [
          {
            text: 'Fechar',
            close: true
          }
        ]
      }).open();
    })
    .catch(error => {
      console.error("Erro ao buscar endereço:", error);
      app.dialog.alert('Erro ao carregar detalhes do ponto', 'OK');
    });
}




// Agora pedimos a geolocalização com alta precisão:
navigator.geolocation.getCurrentPosition(success, error, {
  enableHighAccuracy: true,
  timeout: 10000,
  maximumAge: 0
});

function success(pos) {
  const lat = pos.coords.latitude;
  const lon = pos.coords.longitude;
  console.log(`Latitude: ${lat}, Longitude: ${lon}`);

  // Chama sua função passando os dados que você quiser
  // ver_detalhes_ponto(1, '06/2025', '08:00', '12:00', '13:00', '18:00', '2025-06-05', lat, lon);
}

function error(err) {
  console.warn(`ERRO (${err.code}): ${err.message}`);
}




//abrir teast com as opções para o holerite
function ver_holerite(ID, Documento, mes, nome, Status){ 
    // Criar array de botões
    var buttons = [];
    
    // Adicionar botão Assinar apenas se o status for Pendente
    if(Status === "Pendente") {
      buttons.push({
        text: '<i class="mdi mdi-account-edit"></i>Assinar',
        color:'blue',
        onClick: function(){                   
          app.views.main.router.navigate('/Assinar_holerite/');
           // Armazenar dados no localStorage
          localStorage.setItem("holerite_id", ID);
          localStorage.setItem("holerite_documento", Documento);
          localStorage.setItem("holerite_mes", mes);
          localStorage.setItem("holerite_nome", nome);
          localStorage.setItem("holerite_status", Status);
          
          setTimeout(function(){                        
            $("#nome").val(nome);
            $("#documento").val(Documento);
            $("#id").val(ID);
            $("#status").val(Status);
            $("#mes").val(mes);
          }, 200)
        }
      });
    }

    

    // Adicionar botão Baixar
    buttons.push({
      text: '<i class="mdi mdi-download"></i>Baixar',
      color:'red',
      onClick: function () {
        if(Status === "Pendente") {
          app.dialog.confirm(' Documento incompleto ' + Documento + '', 'Download', function () {
            
            // Cria formulário invisível para envio por POST em nova aba
            const form = document.createElement('form');
            form.method = 'POST';
            form.action = url + "listar/download_holerites.php"; // caminho externo ou no mesmo domínio
            form.target = '_blank'; // abre fora do Framework7 SPA
        
            const input = document.createElement('input');
            input.type = 'hidden';
            input.name = 'documento';
            input.value = Documento;
        
            form.appendChild(input);
            document.body.appendChild(form);
            form.submit();
            document.body.removeChild(form);
        
            app.toast.show({ text: 'Download iniciado', position: 'bottom', closeTimeout: 2000 });
          });
        }else{
          app.dialog.confirm(' Documento completo ' + Documento + '', 'Download', function () {

            const form = document.createElement('form');
            form.method = 'POST';
            
            // 👇 Adiciona um timestamp na URL para impedir cache
            form.action = url + "listar/download_holerites_duplo.php?t=" + new Date().getTime(); 
            form.target = '_blank'; // Abre em nova aba/janela (fora do SPA Cordova)
        
            const input = document.createElement('input');
            input.type = 'hidden';
            input.name = 'documento';
            input.value = Documento;
        
            form.appendChild(input);
            document.body.appendChild(form);
            form.submit();
            document.body.removeChild(form);
        
            app.toast.show({ text: 'Download iniciado', position: 'bottom', closeTimeout: 2000 });
          });
        
        }

        
      }

    });

    // Adicionar botão Cancelar
    buttons.push({
      text: 'Cancelar',
      color:'gray',
      onClick: function(){
        app.dialog.close();    
      }
    });

    app.dialog.create({
      title: 'Holerite: ',
      text: Documento,
      buttons: buttons,
      verticalButtons: false,
    }).open();
}

function assinar_holerita(){ 
  foto = document.getElementById('fotografia').click(); 
}

function foto_doc_ausencia(){ 
  foto = document.getElementById('fotografiadocausencia').click(); 
}







