// Establecer el tiempo de inactividad en milisegundos (30 minutos en este caso)
var tiempoInactividad = 30 * 60 * 1000; // 30 minutos

// Variable para almacenar el tiempo de última interacción
var tiempoUltimaInteraccion = new Date().getTime();

// Función para redirigir o cerrar la página
function redirigirOcerrar() {
  // Obtener el tiempo actual
  var tiempoActual = new Date().getTime();
  
  // Calcular la diferencia de tiempo desde la última interacción
  var tiempoInactivo = tiempoActual - tiempoUltimaInteraccion;
  
  // Verificar si el tiempo de inactividad ha sido alcanzado
  if (tiempoInactivo >= tiempoInactividad) {
    // Redirigir al usuario a otra página
    window.location.href = '../../logout.php';
  } else {
    // Volver a comprobar la inactividad después de un intervalo de tiempo
    setTimeout(redirigirOcerrar, tiempoInactividad);
  }
}

// Función para actualizar el tiempo de última interacción
function actualizarTiempoInteraccion() {
  tiempoUltimaInteraccion = new Date().getTime();
}

// Registrar eventos de interacción
window.onload = actualizarTiempoInteraccion;
window.onmousemove = actualizarTiempoInteraccion;
window.onkeypress = actualizarTiempoInteraccion;

// Iniciar el temporizador para comprobar la inactividad
setTimeout(redirigirOcerrar, tiempoInactividad);


//funcion para que cuando el tamaño se menor a 900 el menu aparesca oculto 
if (window.matchMedia("(max-width: 900px)").matches) {
  var divSidebar = document.querySelector('.sidebar'); 
  divSidebar.classList.add('close');
};
//funcion para mostrar y ocultar el menu
let sidebar = document.querySelector(".sidebar");
let sidebarBtn = document.querySelector(".fa-bars");
sidebarBtn.addEventListener("click", ()=>{
  sidebar.classList.toggle("close");
});
//funcion para mostrar y ocultar los submenus a su vez guardar en la memoria todo lo que se abrio y cerro--para el primer submenu
$(document).ready(function() {
  //EXPANDIR EL MENU
  $('#subtoggle1').click(function() {
    var parent = $(this).parent();
    if (parent.hasClass('show')) {
      parent.removeClass('show');
      localStorage.setItem("expandirSubMenu", "false");
    } else {
      parent.addClass('show');
      localStorage.setItem("expandirSubMenu", "true");
      localStorage.setItem("submenuId", parent.attr('id'));
    }
  });

  if (typeof localStorage.getItem('expandirSubMenu') !== 'undefined' && localStorage.getItem('expandirSubMenu') !== null) {
    if (localStorage.getItem('expandirSubMenu') == "true") {
      $('#' + localStorage.getItem('submenuId')).addClass('show');
    }
  }
});
//funcion para mostrar y ocultar los submenus a su vez guardar en la memoria todo lo que se abrio y cerro--para el segundo submenu
$(document).ready(function() {
  //EXPANDIR EL MENU
  $('#subtoggle2').click(function() {
    var parent = $(this).parent();
    if (parent.hasClass('show')) {
      parent.removeClass('show');
      localStorage.setItem("expandirSubMenu1", "false");
    } else {
      parent.addClass('show');
      localStorage.setItem("expandirSubMenu1", "true");
      localStorage.setItem("submenuId1", parent.attr('id'));
    }
  });

  if (typeof localStorage.getItem('expandirSubMenu1') !== 'undefined' && localStorage.getItem('expandirSubMenu1') !== null) {
    if (localStorage.getItem('expandirSubMenu1') == "true") {
      $('#' + localStorage.getItem('submenuId1')).addClass('show');
    }
  }
});
//funcion para mostrar y ocultar los submenus a su vez guardar en la memoria todo lo que se abrio y cerro--para el tercer submenu
$(document).ready(function() {
  //EXPANDIR EL MENU
  $('#subtoggle3').click(function() {
    var parent = $(this).parent();
    if (parent.hasClass('show')) {
      parent.removeClass('show');
      localStorage.setItem("expandirSubMenu2", "false");
    } else {
      parent.addClass('show');
      localStorage.setItem("expandirSubMenu2", "true");
      localStorage.setItem("submenuId2", parent.attr('id'));
    }
  });

  if (typeof localStorage.getItem('expandirSubMenu2') !== 'undefined' && localStorage.getItem('expandirSubMenu2') !== null) {
    if (localStorage.getItem('expandirSubMenu2') == "true") {
      $('#' + localStorage.getItem('submenuId2')).addClass('show');
    }
  }
});
//funcion para mostrar y ocultar los submenus a su vez guardar en la memoria todo lo que se abrio y cerro--para el menu
$(document).ready(function() {
  //EXPANDIR EL MENU
  $('#toggle').click(function() {
    var parent = $(this).parent();
    if (parent.hasClass('showMenu')) {
      parent.removeClass('showMenu');
      localStorage.setItem("expandir", "false");
    } else {
      parent.addClass('showMenu');
      localStorage.setItem("expandir", "true");
      localStorage.setItem("menId", parent.attr('id'));
    }
  });

  if (typeof localStorage.getItem('expandir') !== 'undefined' && localStorage.getItem('expandir') !== null) {
    if (localStorage.getItem('expandir') == "true") {
      $('#' + localStorage.getItem('menId')).addClass('showMenu');
    }
  }
});
//funcion para mostrar y ocultar los submenus a su vez guardar en la memoria todo lo que se abrio y cerro--para el primer menu
$(document).ready(function() {
  //EXPANDIR EL MENU
  $('#toggle1').click(function() {
    var parent = $(this).parent();
    if (parent.hasClass('showMenu')) {
      parent.removeClass('showMenu');
      localStorage.setItem("expandirMenu", "false");
    } else {
      parent.addClass('showMenu');
      localStorage.setItem("expandirMenu", "true");
      localStorage.setItem("menuId", parent.attr('id'));
    }
  });

  if (typeof localStorage.getItem('expandirMenu') !== 'undefined' && localStorage.getItem('expandirMenu') !== null) {
    if (localStorage.getItem('expandirMenu') == "true") {
      $('#' + localStorage.getItem('menuId')).addClass('showMenu');
    }
  }
});
//funcion para mostrar y ocultar los submenus a su vez guardar en la memoria todo lo que se abrio y cerro--para el segundo menu
$(document).ready(function() {
  //EXPANDIR EL MENU
  $('#toggle2').click(function() {
    var parent = $(this).parent();
    if (parent.hasClass('showMenu')) {
      parent.removeClass('showMenu');
      localStorage.setItem("expandirMenu1", "false");
    } else {
      parent.addClass('showMenu');
      localStorage.setItem("expandirMenu1", "true");
      localStorage.setItem("menuId1", parent.attr('id'));
    }
  });

  if (typeof localStorage.getItem('expandirMenu1') !== 'undefined' && localStorage.getItem('expandirMenu1') !== null) {
    if (localStorage.getItem('expandirMenu1') == "true") {
      $('#' + localStorage.getItem('menuId1')).addClass('showMenu');
    }
  }
});
//funcion para mostrar y ocultar los submenus a su vez guardar en la memoria todo lo que se abrio y cerro--para el tercer menu
$(document).ready(function() {
  //EXPANDIR EL MENU
  $('#toggle3').click(function() {
    var parent = $(this).parent();
    if (parent.hasClass('showMenu')) {
      parent.removeClass('showMenu');
      localStorage.setItem("expandirMenu2", "false");
    } else {
      parent.addClass('showMenu');
      localStorage.setItem("expandirMenu2", "true");
      localStorage.setItem("menuId2", parent.attr('id'));
    }
  });

  if (typeof localStorage.getItem('expandirMenu2') !== 'undefined' && localStorage.getItem('expandirMenu2') !== null) {
    if (localStorage.getItem('expandirMenu2') == "true") {
      $('#' + localStorage.getItem('menuId2')).addClass('showMenu');
    }
  }
});
//funcion para mostrar y ocultar los submenus a su vez guardar en la memoria todo lo que se abrio y cerro--para el cuarto menu
$(document).ready(function() {
  //EXPANDIR EL MENU
  $('#toggle4').click(function() {
    var parent = $(this).parent();
    if (parent.hasClass('showMenu')) {
      parent.removeClass('showMenu');
      localStorage.setItem("expandirMenu3", "false");
    } else {
      parent.addClass('showMenu');
      localStorage.setItem("expandirMenu3", "true");
      localStorage.setItem("menuId3", parent.attr('id'));
    }
  });

  if (typeof localStorage.getItem('expandirMenu3') !== 'undefined' && localStorage.getItem('expandirMenu3') !== null) {
    if (localStorage.getItem('expandirMenu3') == "true") {
      $('#' + localStorage.getItem('menuId3')).addClass('showMenu');
    }
  }
});


//CONFIRMACION PARA EDITAR LOS DATOS 

$(document).on('click', 'a.confirmEditar', function(e) {
  e.preventDefault(); // Prevent the href from redirecting directly
  var linkURL = $(this).attr("href");
  Redirectedit(linkURL);
});

function Redirectedit(linkURL) {
  swal({
    title: "Editar",
    text: "¿Deseas Editar los Datos? ",
    type: "info",
    showCancelButton: true,
  }).then(function(result) {
    console.log(result);
    if (result.value) {
      window.location.href = linkURL;
    }
  });
}

//CONFIRMACION PARA ELIMINAR LOS DATOS 

$(document).on('click', 'a.confirmEliminar', function(e) {
  e.preventDefault(); // Prevent the href from redirecting directly
  var linkURL = $(this).attr("href");
  Redirecteliminar(linkURL);
});

function Redirecteliminar(linkURL) {
  swal({
    title: "¿Eliminar?",
    text: "¿Deseas Eliminar el Registro? ",
    type: "warning",
    showCancelButton: true,
  }).then(function(result) {
    console.log(result);
    if (result.value) {
      window.location.href = linkURL;
    }
  });
}          



//CONFIRMACION PARA ELIMINAR AL USUARIO

$(document).on('click', 'a.confirmUser', function(e) {
  e.preventDefault(); // Prevent the href from redirecting directly
  var linkURL = $(this).attr("href");
  Redirectuser(linkURL);
});

function Redirectuser(linkURL) {
  swal({
    title: "¿Eliminar?",
    text: "¿Deseas Eliminar el Usuario? ",
    type: "warning",
    showCancelButton: true,
  }).then(function(result) {
    console.log(result);
    if (result.value) {
      window.location.href = linkURL;
    }
  });
}          


//Funcion Para las Mayusculas
function mayus(e) {
  e.value = e.value.toUpperCase();
}

//Funcion de la Hora del header
function startTime() {
  var today = new Date();
  var hr = today.getHours();
  var min = today.getMinutes();
  var sec = today.getSeconds();
  ap = (hr < 12) ? "<span>AM</span>" : "<span>PM</span>";
  hr = (hr == 0) ? 12 : hr;
  hr = (hr > 12) ? hr - 12 : hr;
  //Add a zero in front of numbers<10
  hr = checkTime(hr);
  min = checkTime(min);
  sec = checkTime(sec);
  document.getElementById("clock").innerHTML = hr + ":" + min + ":" + sec + " " + ap;
  
  var months = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
  var days = ['Domingo', 'Lunes', 'Martes', 'Mircoles', 'Jueves', 'Viernes', 'Sabádo'];
  var curWeekDay = days[today.getDay()];
  var curDay = today.getDate();
  var curMonth = months[today.getMonth()];
  var curYear = today.getFullYear();
  var date = curWeekDay+", "+curDay+" "+curMonth+" "+curYear;
  document.getElementById("date").innerHTML = date;
  
  var time = setTimeout(function(){ startTime() }, 500);
}
function checkTime(i) {
  if (i < 10) {
      i = "0" + i;
  }
  return i;
}

//Solo Letras y numeros

function soloLetras(e){
   key = e.keyCode || e.which;
   tecla = String.fromCharCode(key).toLowerCase();
   letras = " áéíóúabcdefghijklmnñopqrstuvwxyz";
   especiales = "8-37-39-46";

   tecla_especial = false
   for(var i in especiales){
        if(key == especiales[i]){
            tecla_especial = true;
            break;
        }
    }

    if(letras.indexOf(tecla)==-1 && !tecla_especial){
        return false;
    }
}


function soloNumeros(e){
   key = e.keyCode || e.which;
   tecla = String.fromCharCode(key).toLowerCase();
   letras = " 0123456789";
   especiales = "8-37-39-46";

   tecla_especial = false
   for(var i in especiales){
        if(key == especiales[i]){
            tecla_especial = true;
            break;
        }
    }

    if(letras.indexOf(tecla)==-1 && !tecla_especial){
        return false;
    }
}
function soloLetrasynumeros(e){
   key = e.keyCode || e.which;
   tecla = String.fromCharCode(key).toLowerCase();
   letras = " áéíóúabcdefghijklmnñopqrstuvwxyz0123456789-";
   especiales = "8-37-39-46";

   tecla_especial = false
   for(var i in especiales){
        if(key == especiales[i]){
            tecla_especial = true;
            break;
        }
    }

    if(letras.indexOf(tecla)==-1 && !tecla_especial){
        return false;
    }
}

//JQ para hacer las funciones del select al seleccionar, ocultal y mostrar datos 
const selectDropdowns = document.querySelectorAll('.select-dropdown');
const selectSelecteds = document.querySelectorAll('.select-selected');
const selectOptions = document.querySelectorAll('.select-options');

selectSelecteds.forEach(function(selectSelected, index) {
  const selectDropdown = selectDropdowns[index];
  const options = selectOptions[index].cloneNode(true); // Clonar el elemento selectOptions
  
  selectSelected.addEventListener('click', function() {
    options.style.display = (options.style.display === 'block') ? 'none' : 'block';
  });
  
  const checkboxes = options.querySelectorAll('input[type="checkbox"]:not(#select-all-checkbox)');
  const selectAllCheckbox = options.querySelector('#select-all-checkbox');
  
  checkboxes.forEach(function(checkbox) {
    checkbox.addEventListener('change', function() {
      updateSelectedOptions(options, selectSelected, selectAllCheckbox);
    });
  });
  
  selectAllCheckbox.addEventListener('change', function() {
    checkboxes.forEach(function(checkbox) {
      checkbox.checked = selectAllCheckbox.checked;
    });
    
    updateSelectedOptions(options, selectSelected, selectAllCheckbox);
  });
  
  selectDropdown.appendChild(options); // Agregar el elemento clonado al selectDropdown
});

function updateSelectedOptions(options, selectSelected, selectAllCheckbox) {
  const checkboxes = options.querySelectorAll('input[type="checkbox"]:not(#select-all-checkbox)');
  
  let selectedOptions = Array.from(checkboxes)
    .filter(checkbox => checkbox.checked)
    .map(checkbox => checkbox.id);
  
  selectSelected.textContent = (selectedOptions.length > 0) ? selectedOptions.join(', ') : 'Selecciona opciones';
  
  selectAllCheckbox.checked = (checkboxes.length === selectedOptions.length);
}

//END JQUERY

