/* ══════════════════════════════════════════════════════════
   Rewards System — main.js
   ══════════════════════════════════════════════════════════ */

$(function () {

  // ── Sidebar Toggle ─────────────────────────────────────
  const $toggle  = $('#sidebarToggle');
  const $wrapper = $('#app-wrapper');

  $toggle.on('click', function () {
    if (window.innerWidth <= 768) {
      $wrapper.toggleClass('mobile-open');
    } else {
      $wrapper.toggleClass('sidebar-collapsed');
    }
  });

  // Close mobile sidebar on outside click
  $(document).on('click', function (e) {
    if (
      window.innerWidth <= 768 &&
      $wrapper.hasClass('mobile-open') &&
      !$(e.target).closest('.sidebar-nav, #sidebarToggle').length
    ) {
      $wrapper.removeClass('mobile-open');
    }
  });

  // ── Tooltips ───────────────────────────────────────────
  document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => {
    new bootstrap.Tooltip(el, { trigger: 'hover' });
  });

  // ── Auto-dismiss alerts ────────────────────────────────
  setTimeout(function () {
    $('.alert:not(.alert-danger):not(.alert-warning)').fadeOut(400);
  }, 5000);

  // ── Currency formatting ────────────────────────────────
  window.formatPeso = function (n) {
    return '₱' + parseFloat(n).toLocaleString('en-PH', { minimumFractionDigits: 2 });
  };

  // ── Input phone formatter ──────────────────────────────
  $('input[type="tel"]').on('input', function () {
    let v = this.value.replace(/\D/g, '');
    if (v.length > 11) v = v.slice(0, 11);
    this.value = v;
  });

  // ── Confirm on dangerous buttons ──────────────────────
  $(document).on('click', '.btn-confirm', function (e) {
    const msg = $(this).data('confirm') || 'Are you sure?';
    if (!confirm(msg)) e.preventDefault();
  });

  // ── AJAX setup – add CSRF-like header ──────────────────
  $.ajaxSetup({
    headers: { 'X-Requested-With': 'XMLHttpRequest' }
  });

});
