Mudanças entre as edições de "MediaWiki:Common.js"

De Wiki Gla
Ir para navegação Ir para pesquisar
m
 
(73 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
$(document).ready(function () {
/* Any JavaScript here will be loaded for all users on every page load. */
     mw.hook('wikipage.content').add(function($content) {
 
        const skillIcons = $content.find('.infobox-skill-icon');
/* Dark mode: fallback se gla-darkmode-boot.php não estiver no servidor */
        const skillTabs = $content.find('.infobox-skill-tab');
(function () {
        
  try {
        if (!skillIcons.length || !skillTabs.length) return;
     if (localStorage.getItem('gla-darkmode') === '1') {
     
      var root = document.documentElement;
        skillIcons.on('click', function () {
      root.classList.add('client-darkmode', 'skin-theme-clientpref-night');
          const skillId = $(this).data('skill-id');
      if (document.cookie.indexOf('gla-darkmode=1') === -1) {
     
        document.cookie = 'gla-darkmode=1;path=/;max-age=31536000;SameSite=Lax';
          // Remove classes
       }
          skillIcons.removeClass('active');
    }
          skillTabs.removeClass('active').addClass('hidden');
  } catch (e) { }
     
})();
          // Add classes
 
          $(this).addClass('active');
(function () {
          const targetTab = skillTabs.filter('[data-skill-id="' + skillId + '"]');
  'use strict';
          targetTab.removeClass('hidden').addClass('active');
 
     
  function setupDiscordButton() {
          // Atualiza a URL
    var a = document.querySelector('#n-Discord a');
          const linkName = $(this).data('link-name');
    if (!a || a.querySelector('.gla-discord-text')) {
          if (linkName) {
      return;
            history.replaceState(null, null, '#' + linkName);
    }
          }
 
        });
    var icon = document.createElement('span');
     
    icon.className = 'gla-discord-icon';
        // Ativa ícone baseado no hash
    icon.setAttribute('aria-hidden', 'true');
        const hash = window.location.hash.replace('#', '');
 
        if (hash) {
    var textWrap = document.createElement('span');
          const target = skillIcons.filter('[data-link-name="' + hash + '"]');
    textWrap.className = 'gla-discord-text';
          if (target.length) target.click();
    textWrap.innerHTML = 'Entre no <strong>Discord</strong>';
 
    a.textContent = '';
    a.appendChild(icon);
    a.appendChild(textWrap);
  }
 
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', setupDiscordButton);
  } else {
    setupDiscordButton();
  }
})();
 
(function () {
  'use strict';
 
  var LOGO_SRC = 'https://wiki.gla.com.br/images/b/bf/WIKIGLAlogo.png';
  var LOGO_RETRIES = 0;
  var LOGO_MAX_RETRIES = 40;
 
  function resolveLogoSrc() {
    if (typeof mw !== 'undefined' && mw.config && mw.config.get) {
      var skinLogo = mw.config.get('wgLogo');
      if (skinLogo && skinLogo.indexOf('wiki.png') === -1) {
        return skinLogo;
      }
    }
    return LOGO_SRC;
  }
 
  function setupLogoImg() {
    var a = document.querySelector('#p-logo a.mw-wiki-logo');
    if (!a) {
      return false;
    }
 
    if (!a.querySelector('.gla-logo-img')) {
      var img = document.createElement('img');
      img.className = 'gla-logo-img';
      img.src = resolveLogoSrc();
      img.alt = '';
      img.setAttribute('decoding', 'async');
      img.setAttribute('draggable', 'false');
      img.addEventListener('error', function onLogoError() {
        if (img.src !== LOGO_SRC) {
          img.src = LOGO_SRC;
         }
         }
       });
       });
        
       a.appendChild(img);
    }


     //------- GLOBAL EVENTS TIMER ---------
     return true;
    (function () {
  }
        var globalEventsTimer = $('#global-event-time'); // Atualizado: ID do Timer dos Global Events
        var globalEventsImage = $('.global-event-image'); // Atualizado: Classe da Imagem dos Global Events
        var globalEventsInterval;


        // Informações dos eventos
  function trySetupLogo() {
        /*
    if (setupLogoImg()) {
          0 - Domingo
      return;
          1 - Segunda-feira
    }
          2 - Terça-feira
    LOGO_RETRIES += 1;
          3 - Quarta-feira
    if (LOGO_RETRIES < LOGO_MAX_RETRIES) {
          4 - Quinta-feira
      window.setTimeout(trySetupLogo, 50);
          5 - Sexta-feira
    }
          6 - Sábado
  }
        */
 
        var globalEventsInfo = {
  if (document.readyState === 'loading') {
            0: [
    document.addEventListener('DOMContentLoaded', trySetupLogo);
                { name: 'Foxy Memory', time: '02:00:00', src: '/images/3/37/Foxy_memory_event.png' },
  } else {
                { name: 'Foxy race (ship)', time: '09:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
    trySetupLogo();
                { name: 'Deathmatch', time: '12:00:00', src: '/images/4/46/Deathmatch_event.png' },
  }
                { name: 'Foxy race', time: '15:00:00', src: '/images/e/e8/Foxy_race_event.png' },
})();
                { name: 'Foxy quiz', time: '19:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
 
                { name: 'Foxy count', time: '22:00:00', src: '/images/f/f3/Foxy_count_event.png' },
(function () {
            ],
  'use strict';
            1: [
 
                { name: 'Foxy Memory', time: '02:00:00', src: '/images/3/37/Foxy_memory_event.png' },
  var STORAGE_KEY = 'gla-darkmode';
                { name: 'Foxy race (ship)', time: '09:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
  var LINK_CLASS = 'darkmode-link';
                { name: 'Deathmatch', time: '12:00:00', src: '/images/4/46/Deathmatch_event.png' },
  var LABEL_DARK = 'Modo escuro';
                { name: 'Foxy race', time: '15:00:00', src: '/images/e/e8/Foxy_race_event.png' },
  var LABEL_LIGHT = 'Modo padr\u00e3o';
                { name: 'Foxy quiz', time: '19:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
                { name: 'Foxy count', time: '22:00:00', src: '/images/f/f3/Foxy_count_event.png' },
            ],
            2: [
                { name: 'Foxy race (ship)', time: '02:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
                { name: 'Deathmatch', time: '09:00:00', src: '/images/4/46/Deathmatch_event.png' },
                { name: 'Foxy race', time: '12:00:00', src: '/images/e/e8/Foxy_race_event.png' },
                { name: 'Foxy quiz', time: '15:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
                { name: 'Foxy count', time: '19:00:00', src: '/images/f/f3/Foxy_count_event.png' },
                { name: 'Foxy Memory', time: '22:00:00', src: '/images/3/37/Foxy_memory_event.png' },
            ],
            3: [
                { name: 'Deathmatch', time: '02:00:00', src: '/images/4/46/Deathmatch_event.png' },
                { name: 'Foxy race', time: '09:00:00', src: '/images/e/e8/Foxy_race_event.png' },
                { name: 'Foxy quiz', time: '12:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
                { name: 'Foxy count', time: '15:00:00', src: '/images/f/f3/Foxy_count_event.png' },
                { name: 'Foxy Memory', time: '19:00:00', src: '/images/3/37/Foxy_memory_event.png' },
                { name: 'Foxy race (ship)', time: '22:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
            ],
            4: [
                { name: 'Foxy race', time: '02:00:00', src: '/images/e/e8/Foxy_race_event.png' },
                { name: 'Foxy quiz', time: '09:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
                { name: 'Foxy count', time: '12:00:00', src: '/images/f/f3/Foxy_count_event.png' },
                { name: 'Foxy Memory', time: '15:00:00', src: '/images/3/37/Foxy_memory_event.png' },
                { name: 'Foxy race (ship)', time: '19:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
                { name: 'Deathmatch', time: '22:00:00', src: '/images/4/46/Deathmatch_event.png' },
            ],
            5: [
                { name: 'Foxy quiz', time: '02:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
                { name: 'Foxy count', time: '09:00:00', src: '/images/f/f3/Foxy_count_event.png' },
                { name: 'Foxy Memory', time: '12:00:00', src: '/images/3/37/Foxy_memory_event.png' },
                { name: 'Foxy race (ship)', time: '15:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
                { name: 'Deathmatch', time: '19:00:00', src: '/images/4/46/Deathmatch_event.png' },
                { name: 'Foxy race', time: '22:00:00', src: '/images/e/e8/Foxy_race_event.png' },
            ],
            6: [
                { name: 'Foxy count', time: '02:00:00', src: '/images/f/f3/Foxy_count_event.png' },
                { name: 'Foxy Memory', time: '09:00:00', src: '/images/3/37/Foxy_memory_event.png' },
                { name: 'Foxy race (ship)', time: '12:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
                { name: 'Deathmatch', time: '15:00:00', src: '/images/4/46/Deathmatch_event.png' },
                { name: 'Foxy race', time: '21:55:00', src: '/images/e/e8/Foxy_race_event.png' },
                { name: 'Foxy quiz', time: '22:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
            ]
        };


        function pad(value) {
  function isDark() {
            return value < 10 ? '0' + value : value;
    return document.documentElement.classList.contains('client-darkmode');
         }
  }
 
  function setDarkModeCookie(on) {
    try {
      document.cookie = 'gla-darkmode=' + (on ? '1' : '0') + ';path=/;max-age=' + (on ? 31536000 : 0) + ';SameSite=Lax';
    } catch (e) { }
  }
 
  function setDark(on) {
    var root = document.documentElement;
    root.classList.toggle('client-darkmode', on);
    root.classList.toggle('skin-theme-clientpref-night', on);
    root.classList.toggle('skin-theme-clientpref-day', !on);
    try {
      localStorage.setItem(STORAGE_KEY, on ? '1' : '0');
    } catch (e) { }
    setDarkModeCookie(on);
    updateLinks(on);
  }
 
  function updateLinks(on) {
    var links = document.querySelectorAll('.' + LINK_CLASS);
    var label = on ? LABEL_LIGHT : LABEL_DARK;
    for (var i = 0; i < links.length; i++) {
      links[i].textContent = label;
    }
  }
 
  function findDarkLink(el) {
    while (el && el !== document) {
      if (el.classList && el.classList.contains(LINK_CLASS)) {
        return el;
      }
      el = el.parentNode;
    }
    return null;
  }
 
  function injectToggle() {
    if (document.getElementById('pt-darkmode')) {
      return;
    }
 
    var ul = document.querySelector('#p-personal .vector-menu-content-list') ||
      document.querySelector('#p-personal ul');
    if (!ul) {
      return;
    }
 
    var li = document.createElement('li');
    li.id = 'pt-darkmode';
 
    var a = document.createElement('a');
    a.href = '#';
    a.className = LINK_CLASS;
    a.textContent = isDark() ? LABEL_LIGHT : LABEL_DARK;
    li.appendChild(a);
 
    var afterLi = document.getElementById('pt-mytalk') ||
      document.getElementById('pt-anontalk') ||
      document.getElementById('pt-userpage') ||
      document.getElementById('pt-anonuserpage');
 
    if (afterLi && afterLi.parentNode === ul) {
      afterLi.insertAdjacentElement('afterend', li);
    } else {
      ul.insertBefore(li, ul.firstChild);
    }
  }
 
  function bindToggle() {
    if (window.glaDarkModeBound) {
      return;
    }
    window.glaDarkModeBound = true;
 
    document.addEventListener('click', function (e) {
      var link = findDarkLink(e.target);
      if (!link) {
         return;
      }
      e.preventDefault();
      setDark(!isDark());
    });
  }
 
  function boot() {
    injectToggle();
    bindToggle();
    updateLinks(isDark());
  }
 
  window.glaDarkModeBoot = boot;
  window.addEventListener('load', boot);
 
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', boot);
  } else {
    boot();
  }
 
  function markThemeReady() {
    document.documentElement.classList.add('gla-theme-ready');
  }


        function getBrazilTime() {
  if (document.readyState === 'complete') {
            var now = new Date();
    requestAnimationFrame(markThemeReady);
            var utc = now.getTime() + (now.getTimezoneOffset() * 60000); // Converte para UTC
  } else {
            return new Date(utc - (3 * 3600000)); // Ajusta para UTC-3
    window.addEventListener('load', function () {
        }
      requestAnimationFrame(markThemeReady);
    });
  }


        function startGlobalEventCountdown(eventStartTime, eventEndTime) {
  var tries = 0;
            if (globalEventsInterval) clearInterval(globalEventsInterval);
  var retryTimer = setInterval(function () {
    if (document.getElementById('pt-darkmode') || tries++ > 40) {
      clearInterval(retryTimer);
      return;
    }
    boot();
  }, 150);
})();


            globalEventsInterval = setInterval(function () {
                var now = getBrazilTime().getTime();


                if (now < eventEndTime) {
                    var timeRemaining = Math.ceil((eventEndTime - now) / 1000); // Segundos restantes
                    var minutes = Math.floor(timeRemaining / 60);
                    var seconds = timeRemaining % 60;
                    globalEventsTimer.html('Iniciando: ' + pad(minutes) + ":" + pad(seconds));
                } else {
                    clearInterval(globalEventsInterval);
                    setGlobalEvent();
                }
            }, 1000);
        }


        function setGlobalEvent() {
$(document).ready(function () {
            var now = getBrazilTime(); // Usa o horário do Brasil
  //------- GLOBAL EVENTS TIMER ---------
            var dayEvents = globalEventsInfo[now.getDay()];
  (function () {
    var globalEventsTimer = $('#global-event-time'); // Atualizado: ID do Timer dos Global Events
    var globalEventsImage = $('.global-event-image'); // Atualizado: Classe da Imagem dos Global Events
    var globalEventsInterval;


            if (!dayEvents || dayEvents.length === 0) {
    // Informações dos eventos
                globalEventsImage.attr('src', '/images/0/0a/Anyevent.png'); // Imagem padrão
    /*
                globalEventsTimer.html('Acabaram os eventos por hoje');
      0 - Domingo
                return;
      1 - Segunda-feira
            }
      2 - Terça-feira
      3 - Quarta-feira
      4 - Quinta-feira
      5 - Sexta-feira
      6 - Sábado
    */
    var globalEventsInfo = {
      0: [
        { name: 'Foxy Memory', time: '02:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '09:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '12:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '15:00:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '19:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '22:00:00', src: '/images/f/f3/Foxy_count_event.png' },
      ],
      1: [
        { name: 'Foxy Memory', time: '02:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '09:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '12:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '15:00:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '19:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '22:00:00', src: '/images/f/f3/Foxy_count_event.png' },
      ],
      2: [
        { name: 'Foxy race (ship)', time: '02:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '09:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '12:00:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '15:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '19:00:00', src: '/images/f/f3/Foxy_count_event.png' },
        { name: 'Foxy Memory', time: '22:00:00', src: '/images/3/37/Foxy_memory_event.png' },
      ],
      3: [
        { name: 'Deathmatch', time: '02:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '09:00:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '12:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '15:00:00', src: '/images/f/f3/Foxy_count_event.png' },
        { name: 'Foxy Memory', time: '19:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '22:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
      ],
      4: [
        { name: 'Foxy race', time: '02:00:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '09:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '12:00:00', src: '/images/f/f3/Foxy_count_event.png' },
        { name: 'Foxy Memory', time: '15:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '19:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '22:00:00', src: '/images/4/46/Deathmatch_event.png' },
      ],
      5: [
        { name: 'Foxy quiz', time: '02:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '09:00:00', src: '/images/f/f3/Foxy_count_event.png' },
        { name: 'Foxy Memory', time: '12:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '15:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '19:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '22:00:00', src: '/images/e/e8/Foxy_race_event.png' },
      ],
      6: [
        { name: 'Foxy count', time: '02:00:00', src: '/images/f/f3/Foxy_count_event.png' },
        { name: 'Foxy Memory', time: '09:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '12:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '15:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '21:55:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '22:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
      ]
    };


            for (var i = 0; i < dayEvents.length; i++) {
    function pad(value) {
                var event = dayEvents[i];
      return value < 10 ? '0' + value : value;
                var timeParts = event.time.split(':');
    }
                var eventStartTime = new Date(
                    now.getFullYear(),
                    now.getMonth(),
                    now.getDate(),
                    parseInt(timeParts[0], 10),
                    parseInt(timeParts[1], 10),
                    parseInt(timeParts[2], 10)
                ).getTime();
                var eventEndTime = eventStartTime + 5 * 60 * 1000; // Evento dura 5 minutos para entrada


                if (now >= eventStartTime && now < eventEndTime) {
    function getBrazilTime() {
                    // Durante o período de entrada do evento
      var now = new Date();
                    globalEventsImage.attr('src', event.src);
      var utc = now.getTime() + (now.getTimezoneOffset() * 60000); // Converte para UTC
                    startGlobalEventCountdown(eventStartTime, eventEndTime);
      return new Date(utc - (3 * 3600000)); // Ajusta para UTC-3
                    return;
    }
                }


                if (now < eventStartTime) {
    function startGlobalEventCountdown(eventStartTime, eventEndTime) {
                    // Antes do evento, exibe o horário fixo
      if (globalEventsInterval) clearInterval(globalEventsInterval);
                    globalEventsImage.attr('src', event.src);
                    globalEventsTimer.html(
                        new Date(eventStartTime).toLocaleTimeString('pt-BR', {
                            hour: '2-digit',
                            minute: '2-digit',
                        })
                    );


                    // Só inicia a contagem regressiva quando estiver próximo (faltando 5 minutos ou menos)
      globalEventsInterval = setInterval(function () {
                    if (eventStartTime - now <= 5 * 60 * 1000) {
        var now = getBrazilTime().getTime();
                        startGlobalEventCountdown(eventStartTime, eventEndTime);
                    }
                    return;
                }
            }


            // Após o último evento do dia
        if (now < eventEndTime) {
            globalEventsImage.attr('src', '/images/0/0a/Anyevent.png'); // Imagem padrão
          var timeRemaining = Math.ceil((eventEndTime - now) / 1000); // Segundos restantes
            globalEventsTimer.html('Acabaram os eventos por hoje');
          var minutes = Math.floor(timeRemaining / 60);
          var seconds = timeRemaining % 60;
          globalEventsTimer.html('Iniciando: ' + pad(minutes) + ":" + pad(seconds));
        } else {
          clearInterval(globalEventsInterval);
          setGlobalEvent();
         }
         }
      }, 1000);
    }
    function setGlobalEvent() {
      var now = getBrazilTime(); // Usa o horário do Brasil
      var dayEvents = globalEventsInfo[now.getDay()];


        $(document).ready(function () {
      if (!dayEvents || dayEvents.length === 0) {
            setGlobalEvent();
         globalEventsImage.attr('src', '/images/0/0a/Anyevent.png'); // Imagem padrão
         });
         globalEventsTimer.html('Acabaram os eventos por hoje');
    })();
         return;
    //------- GLOBAL EVENTS TIMER ---------
      }
    //------- RANKED TIMER ---------
    (function () {
        var rankedTimer = $('#ranked-time'); // Timer das ranqueadas
         var rankedImage = $('.ranked-image'); // Imagem da ranqueada
         var rankedInterval;


        // Lista de ranqueadas com horários do Brasil (UTC-3)
      for (var i = 0; i < dayEvents.length; i++) {
         var rankedInfo = {
         var event = dayEvents[i];
            0: [ // Domingo
        var timeParts = event.time.split(':');
                { name: 'Ranked 2x2 Duo', time: '15:00:00', src: '/images/7/7e/Ranked_duo_2v2_event.png' },
        var eventStartTime = new Date(
                { name: 'Ranked 2x2 Solo', time: '16:00:00', src: '/images/b/b1/Ranked_solo_2v2_event.png' },
          now.getFullYear(),
                { name: 'Ranked 1x1', time: '17:00:00', src: '/images/e/ed/Ranked_1v1_event.png' }
          now.getMonth(),
            ],
          now.getDate(),
            2: [ // Terça-feira
          parseInt(timeParts[0], 10),
                { name: 'Ranked 2x2 Duo', time: '20:00:00', src: '/images/7/7e/Ranked_duo_2v2_event.png' },
          parseInt(timeParts[1], 10),
                { name: 'Ranked 2x2 Solo', time: '21:00:00', src: '/images/b/b1/Ranked_solo_2v2_event.png' },
          parseInt(timeParts[2], 10)
                { name: 'Ranked 1x1', time: '22:00:00', src: '/images/e/ed/Ranked_1v1_event.png' }
        ).getTime();
            ],
        var eventEndTime = eventStartTime + 5 * 60 * 1000; // Evento dura 5 minutos para entrada
            4: [ // Quinta-feira
                { name: 'Ranked 2x2 Duo', time: '20:00:00', src: '/images/7/7e/Ranked_duo_2v2_event.png' },
                { name: 'Ranked 2x2 Solo', time: '21:00:00', src: '/images/b/b1/Ranked_solo_2v2_event.png' },
                { name: 'Ranked 1x1', time: '22:00:00', src: '/images/e/ed/Ranked_1v1_event.png' }
            ],
            6: [ // Sábado
                { name: 'Ranked 2x2 Duo', time: '15:00:00', src: '/images/7/7e/Ranked_duo_2v2_event.png' },
                { name: 'Ranked 2x2 Solo', time: '16:00:00', src: '/images/b/b1/Ranked_solo_2v2_event.png' },
                { name: 'Ranked 1x1', time: '17:00:00', src: '/images/e/ed/Ranked_1v1_event.png' }
            ]
        };


         function pad(value) {
         if (now >= eventStartTime && now < eventEndTime) {
            return value < 10 ? '0' + value : value;
          // Durante o período de entrada do evento
          globalEventsImage.attr('src', event.src);
          startGlobalEventCountdown(eventStartTime, eventEndTime);
          return;
         }
         }


         // Função para calcular o horário no Brasil (UTC-3)
         if (now < eventStartTime) {
        function getBrazilTime() {
          // Antes do evento, exibe o horário fixo
             var now = new Date();
          globalEventsImage.attr('src', event.src);
             var utc = now.getTime() + (now.getTimezoneOffset() * 60000); // Converte para UTC
          globalEventsTimer.html(
            return new Date(utc - (3 * 3600000)); // Ajusta para UTC-3
             new Date(eventStartTime).toLocaleTimeString('pt-BR', {
              hour: '2-digit',
              minute: '2-digit',
             })
          );
 
          // Só inicia a contagem regressiva quando estiver próximo (faltando 5 minutos ou menos)
          if (eventStartTime - now <= 5 * 60 * 1000) {
            startGlobalEventCountdown(eventStartTime, eventEndTime);
          }
          return;
         }
         }
      }


        function startRankedCountdown(endTime) {
      // Após o último evento do dia
            if (rankedInterval) clearInterval(rankedInterval);
      globalEventsImage.attr('src', '/images/0/0a/Anyevent.png'); // Imagem padrão
      globalEventsTimer.html('Acabaram os eventos por hoje');
    }


            rankedInterval = setInterval(function () {
    $(document).ready(function () {
                var now = getBrazilTime().getTime();
      setGlobalEvent();
                var distance = endTime - now;
    });
  })();
  //------- GLOBAL EVENTS TIMER ---------
  //------- TOOLTIP IMAGE---------
  /*
      Tooltip image consiste em uma funcionalidade que insere uma tag IMG
      quando o usuario passa o mouse por cima de uma imagem com a classe "tooltip-image"
      ao fazer é inserido no body uma tag IMG com a mesma "src" 1.3 vezes maior do que a imagem
      que o usuario está com o mouse em coma, esta tag IMG terá o mesmo X e Y do mouse + um offset
      para manter um distanciamento.
  */
 
  //Distanciamento / margem do mouse
  const offset = { x: 20, y: 10 };
 
  $('.tooltip-image').on('mouseenter',
    function (e) {
      var src = $(this).attr('src');
      var size = $(this).width() * 1.3;


                if (distance > 0) {
      $('<img src="' + src + '" id="bigImage" />').css('left', e.pageX + offset.x).css('top', e.pageY + offset.y).css('width', size + "px").appendTo('body').hide().fadeIn(500);
                    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    }).on('mouseleave',
                    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
      function () {
                    var seconds = Math.floor((distance % (1000 * 60)) / 1000);
        $('#bigImage').remove();
                    rankedTimer.html(pad(hours) + ":" + pad(minutes) + ":" + pad(seconds));
      });
                } else {
                    clearInterval(rankedInterval);
                    setRankedEvents(); // Ajusta automaticamente para a próxima fila
                }
            }, 1000);
        }


        function setRankedEvents() {
  $('.tooltip-image').mousemove(function (e) {
            var now = getBrazilTime(); // Usa o horário do Brasil
    $('#bigImage').css('left', e.pageX + offset.x).css('top', e.pageY + offset.y);
            var todayEvents = rankedInfo[now.getDay()];
  });
            var eventFound = false;
  //------- TOOLTIP IMAGE---------


            if (todayEvents) {
  //------- FUNCIONALIDADES PACIENTES KUREHA ---------
                for (var i = 0; i < todayEvents.length; i++) {
  const pacients = {
                    var event = todayEvents[i];
    "bafo": { image: "/images/c/ce/Bafo_static.png", gif: "/images/e/e0/Bafo.gif" },
                    var timeParts = event.time.split(':');
    "espirrando": { image: "/images/thumb/5/5b/Espirro_static.png/180px-Espirro_static.png", gif: "/images/thumb/9/90/Espirro.gif/180px-Espirro.gif", audio: "/images/2/2b/Espirrando.ogg" },
                    var eventStartTime = new Date(
    "enjoado": { image: "/images/thumb/5/52/Enjoado_static.png/180px-Enjoado_static.png", gif: "/images/thumb/7/76/Enjoado.gif/180px-Enjoado.gif", audio: "/images/5/5b/Vomito.ogg" },
                        now.getFullYear(),
    "tremendo": { image: "/images/thumb/3/35/Tremendo_static.png/180px-Tremendo_static.png", gif: "/images/thumb/f/f4/Tremendo.gif/180px-Tremendo.gif" },
                        now.getMonth(),
    "tossindo": { image: "/images/thumb/e/ef/Tosse_static.png/180px-Tosse_static.png", gif: "/images/thumb/a/a4/Tosse.gif/180px-Tosse.gif", audio: "/images/f/f9/Tossindo.ogg" },
                        now.getDate(),
    "solucando": { image: "/images/thumb/c/c0/Soluco_static.png/180px-Soluco_static.png", gif: "/images/thumb/6/67/Soluco.gif/180px-Soluco.gif", audio: "/images/e/e2/Solucando.ogg" },
                        parseInt(timeParts[0], 10),
    "funk": { image: "/images/thumb/e/e8/Funkeiro_static.png/180px-Funkeiro_static.png ", gif: "/images/thumb/7/79/Funkeiro.gif/180px-Funkeiro.gif", audio: "/images/d/d2/Funk.ogg" },
                        parseInt(timeParts[1], 10),
    "fedendo": { image: "/images/thumb/1/1e/Fedido_static.png/180px-Fedido_static.png", gif: "/images/thumb/c/c9/Fedido.gif/180px-Fedido.gif" },
                        parseInt(timeParts[2], 10)
    "febre": { image: "/images/thumb/1/14/Febre_static.png/180px-Febre_static.png", gif: "/images/thumb/7/75/Febre.gif/180px-Febre.gif" },
                    );
    "endemoniado": { audio: "/images/3/32/Risada_maligna.ogg" },
                    var eventEndTime = new Date(eventStartTime.getTime() + 60 * 60 * 1000); // Duração fixa: 1 hora
    "fome": { audio: "/images/3/37/Estomago_roncando.ogg" },
    "cardiaco": { audio: "/images/2/27/Coracao_batendo.ogg" }
  };


                    // Se a fila está ativa
  const audioPlayer = document.querySelector("#audio");
                    if (now >= eventStartTime && now < eventEndTime) {
                        rankedImage.attr('src', event.src); // Mostra o banner da fila atual
                        startRankedCountdown(eventEndTime.getTime()); // Contagem regressiva para o término da fila
                        eventFound = true;
                        return;
                    }


                    // Próximo evento no futuro
  $(".pacient-audio").on("click", function (e) {
                    if (now < eventStartTime) {
    id = $(this).attr('id');
                        rankedImage.attr('src', '/images/b/b0/Ranked_semranked_event.png'); // Mostra "RANKED" antes de começar
                        rankedTimer.html('Hoje às ' + event.time.split(':').slice(0, 2).join(':')); // Apenas exibe o horário fixo
                        eventFound = true;
                        return;
                    }
                }
            }


            // Caso não haja mais eventos hoje, exibe "Encerrado por hoje"
    if (pacients[id]) {
            if (!eventFound && todayEvents) {
      audioPlayer.src = pacients[id].audio;
                rankedImage.attr('src', '/images/b/b0/Ranked_semranked_event.png');
      audioPlayer.play();
                rankedTimer.html('Encerrado por hoje');
    }
            }


            // Caso não haja eventos hoje, busca o próximo dia
  });
            if (!eventFound) {
                var nextRanked = findNextRankedDay(now.getDay());
                if (nextRanked) {
                    var nextDayName = getWeekDayName(nextRanked.day); // Nome do próximo dia
                    var nextEvent = nextRanked.events[0]; // Primeiro evento do próximo dia
                    rankedImage.attr('src', '/images/b/b0/Ranked_semranked_event.png'); // Mostra "RANKED"
                    rankedTimer.html(nextDayName + ' às ' + nextEvent.time.split(':').slice(0, 2).join(':'));
                } else {
                    rankedTimer.html('Sem informações de ranqueadas');
                }
            }
        }


        function findNextRankedDay(currentDay) {
  $('.interactive-pacient').on('mouseenter', function (e) {
            for (var i = 1; i <= 7; i++) {
    id = $(this).attr('id');
                var nextDay = (currentDay + i) % 7;
                if (rankedInfo[nextDay]) {
                    return { day: nextDay, events: rankedInfo[nextDay] };
                }
            }
            return null;
        }


        function getWeekDayName(dayIndex) {
    if (pacients[id])
            var days = ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'];
      $(this).attr('src', pacients[id].gif);
            return days[dayIndex];
  }).on('mouseleave', function (e) {
        }
    id = $(this).attr('id');


        $(document).ready(function () {
    if (pacients[id])
            setRankedEvents();
      $(this).attr('src', pacients[id].image);
        });
  });
    })();


    //------- WORLD BOSS TIMER ---------
  //------- FUNCIONALIDADES PACIENTES KUREHA ---------
     (function () {
  //------- FUNCIONALIDADES BUZINAS ---------
        var wbTimer = $('#worldboss-time'); // Timer do World Boss
  const horns = {
        var wbBossImage = $('.worldboss-image'); // Imagem do World Boss
    "Buzinadelacucha": { audio: "/images/5/55/Buzinadelacucha-audio.ogg" },
        var wbInterval;
    "Buzinadefumaca": { audio: "/images/3/3a/Buzinadefumaca-audio.ogg" },
     "Buzinadecaminhao": { audio: "/images/e/e4/Buzinadecaminhao-audio.ogg" },
    "Buzinadetrem": { audio: "/images/3/34/Buzinadetrem-audio.ogg" },
    "Buzinadeesporte": { audio: "/images/2/2b/Buzinadeesporte-audio.ogg" },
    "Buzinadear": { audio: "/images/9/95/Buzinadear-audio.ogg" },
    "Buzinadepalhaco": { audio: "/images/a/a4/Buzinadepalhaco-audio.ogg" },
    "Buzinadeinvestida": { audio: "/images/f/ff/Buzinadeinvestida-audio.ogg" },
    "Buzinadebicicleta": { audio: "/images/1/15/Buzinadebicicleta-audio.ogg" },
    "Buzinadeneblina": { audio: "/images/6/64/Buzinadeneblina-audio.ogg" }
  };


        // copie, cole e mude a data (não esqueça da virgula!)
  const hornAudioPlayer = document.querySelector("#audio");
        /*
        { date: '2024-12-20', name: 'Marineford', src: '/images/e/e6/Marineford_event.png' }
        { date: '2024-12-20', name: 'Hiking Bear', src: '/images/6/6d/Hiking_bear_wb_event.png' }
        { date: '2024-12-20', name: 'Byakko', src: '/images/1/1a/Byakko_wb_event.png' }
        { date: '2024-12-20', name: 'Plesiosaur', src: '/images/6/6e/Plesiosaur_wb_event.png' }
        { date: '2024-12-20', name: 'Shai-Hulud', src: '/imimages/d/d1/Shai_hulud_wb_event.png' }
        { date: '2024-12-20', name: 'Bananawani', src: '/images/8/87/Bananawani_wb_event.png' }
        { date: '2024-12-20', name: 'Aokiji', src: '/images/4/4c/Aokiji_wb_event.png' }
        { date: '2024-12-20', name: 'Mihawk', src: '/images/e/e4/Mihawk_wb_event.png' }
        */
        var wbBossesList = [
            { date: '2024-12-20', name: 'Marineford', src: '/images/e/e6/Marineford_event.png' },
            { date: '2024-12-27', name: 'Hiking Bear', src: '/images/6/6d/Hiking_bear_wb_event.png' },
            { date: '2025-01-03', name: 'Marineford', src: '/images/e/e6/Marineford_event.png' },
            { date: '2025-01-10', name: 'Byakko', src: '/images/1/1a/Byakko_wb_event.png' },
            { date: '2025-01-17', name: 'Marineford', src: '/images/e/e6/Marineford_event.png' },
            { date: '2025-01-24', name: 'Aokiji', src: '/images/4/4c/Aokiji_wb_event.png' },
            { date: '2025-01-31', name: 'Marineford', src: '/images/e/e6/Marineford_event.png' }
        ];


        var wbDuration = 22 * 60 * 60 * 1000; // Duração do evento: 22 horas em milissegundos
  $(".horn-audio").on("click", function (e) {
    const id = $(this).attr('id');
    if (horns[id]) {
      hornAudioPlayer.src = horns[id].audio;
      hornAudioPlayer.play();
    }
  });
 
  //------- FUNCIONALIDADES BUZINAS ---------
});


        function pad(value) {
            return value < 10 ? '0' + value : value;
        }


        // Calcula o horário do evento no Brasil (UTC-3) e ajusta para o horário local do usuário
/**
        function convertToLocalTime(dateInBrazil) {
* Script JavaScript para o componente de abas MediaWiki
            var brazilTime = new Date(dateInBrazil + 'T11:00:00-03:00'); // Evento começa às 11h no Brasil (UTC-3)
* Adicione este script na sua MediaWiki (Common.js ou página de scripts)
            return brazilTime; // Retorna o horário ajustado automaticamente para o fuso do navegador
*/
        }


        function startWorldBossCountdown(endTime) {
(function () {
            if (wbInterval) clearInterval(wbInterval); // Garante que não haja múltiplos intervalos
  'use strict';


            wbInterval = setInterval(function () {
  // Inicializa todos os componentes de abas na página
                var now = new Date().getTime(); // Usa o horário local do navegador
  function initTabbers() {
                var distance = endTime - now;
    const tabbers = document.querySelectorAll('[data-tabber]');


                if (distance > 0) {
    tabbers.forEach(function (tabber) {
                    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
      const tabs = tabber.querySelectorAll('.mw-tabber-tab');
                    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
      const panels = tabber.querySelectorAll('.mw-tabber-panel');
                    var seconds = Math.floor((distance % (1000 * 60)) / 1000);
                    wbTimer.html(pad(hours) + ":" + pad(minutes) + ":" + pad(seconds));
                } else {
                    clearInterval(wbInterval);
                    wbUpdateBoss(); // Atualiza para o próximo World Boss
                }
            }, 1000);
        }


         function wbUpdateBoss() {
      tabs.forEach(function (tab) {
            var now = new Date(); // Usa o horário local do navegador
         tab.addEventListener('click', function () {
          const targetTab = this.getAttribute('data-tab');


            for (var i = 0; i < wbBossesList.length; i++) {
          // Remove classe active de todas as abas
                var wbEventStart = convertToLocalTime(wbBossesList[i].date); // Converte para o horário local do usuário
          tabs.forEach(function (t) {
                var wbEventEnd = new Date(wbEventStart.getTime() + wbDuration); // Calcula o horário de término
            t.classList.remove('active');
          });


                if (now < wbEventStart) {
          // Remove classe active de todos os painéis
                    // Próximo World Boss (antes de começar)
          panels.forEach(function (p) {
                    wbBossImage.attr('src', wbBossesList[i].src || '/images/9/93/Anywb_event.png');
            p.classList.remove('active');
                    wbTimer.html(
          });
                        wbEventStart.toLocaleDateString('pt-BR', { day: '2-digit', month: '2-digit' }) +
                        ' às ' +
                        wbEventStart.toLocaleTimeString(undefined, { hour: '2-digit', minute: '2-digit' })
                    );
                    return;
                } else if (now >= wbEventStart && now < wbEventEnd) {
                    // World Boss ativo
                    wbBossImage.attr('src', wbBossesList[i].src);
                    startWorldBossCountdown(wbEventEnd.getTime());
                    return;
                }
            }


            // Caso nenhum World Boss esteja ativo ou programado
          // Adiciona classe active na aba clicada
            wbBossImage.attr('src', '/images/9/93/Anywb_event.png');
          this.classList.add('active');
            wbTimer.html('Nenhum WB programado');
        }


        $(document).ready(function () {
          // Adiciona classe active no painel correspondente
             wbUpdateBoss();
          const targetPanel = tabber.querySelector('[data-panel="' + targetTab + '"]');
          if (targetPanel) {
             targetPanel.classList.add('active');
          }
         });
         });
     })();
      });
     });
  }
 
  // Inicializa quando o DOM estiver pronto
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initTabbers);
  } else {
    initTabbers();
  }
 
  // Suporte para MediaWiki (quando o conteúdo é carregado dinamicamente)
  if (typeof mw !== 'undefined' && mw.hook) {
    mw.hook('wikipage.content').add(function () {
      initTabbers();
    });
  }
})();
 
 
/* =============================================================================
  GLA pages legacy (provisório) — personagens, wanted, skills, calc XP, abas
  Extraído de antigo_common.js
  ============================================================================= */
 
$(document).ready(function () {
  //------- PERSONAGENS ---------
 
  const characters = [
    { name: "Silvers Rayleigh", types: ["slasher", "dps", "diamond", "break_wall"], link: "/Silvers_Rayleigh", img: "/images/f/f1/Rayleigh_Card.png" },
    { name: "Monkey D Garp", types: ["fighter", "dps", "marine", "diamond", "break_wall"], link: "/Monkey_D_Garp", img: "/images/a/a1/GarpCard.png" },
    { name: "Aokiji Dio", types: ["slasher", "especialist", "tank", "marine", "diamond", "break_wall", "bridge"], link: "/Aokiji", img: "/images/6/67/Aokiji_card.png" },
    { name: "Bartolomew Kuma", types: ["especialist", "tank", "diamond", "break_wall"], link: "/Kuma", img: "/images/b/b5/Card-kuma.png" },
    { name: "Boa Hancock", types: ["fighter", "dps", "diamond"], link: "/Boa_Hancock", img: "/images/4/47/Card-hancock.png" },
    { name: "Borsalino Kizaru", types: ["especialist", "shooter", "dps", "diamond", "break_wall"], link: "/Kizaru", img: "/images/3/32/Card-kizaru.png" },
    { name: "Brook (TS)", types: ["slasher", "support", "diamond", "bridge"], link: "/Brook_(Timeskip)", img: "/images/1/1d/Card-brookts.png" },
    { name: "Tony Tony Chopper (TS) Gurren", types: ["fighter", "support", "diamond", "break_wall"], link: "/Chopper_(Timeskip)", img: "/images/5/53/Card-chopperts.png" },
    { name: "Doflamingo", types: ["shooter", "especialist", "dps", "diamond", "break_wall", "bridge"], link: "/Doflamingo", img: "/images/8/8d/Card-doflamingo.png" },
    { name: "Dracule Mihawk", types: ["slasher", "dps", "diamond", "break_wall"], link: "/Mihawk", img: "/images/9/91/Card-mihawk.png" },
    { name: "Emporio Ivankov", types: ["fighter", "support", "diamond", "break_wall"], link: "/Ivankov", img: "/images/c/ca/Card-ivankov.png" },
    { name: "Enel", types: ["shooter", "especialist", "diamond", "dps"], link: "/Enel", img: "/images/8/85/Enel_card.png" },
    { name: "Franky (TS) Sanitaria", types: ["shooter", "tank", "diamond", "break_wall"], link: "/Franky_(Timeskip)", img: "/images/d/d0/Card-frankyts.png" },
    { name: "Jinbe", types: ["fighter", "tank", "diamond", "break_wall"], link: "/Jinbe", img: "/images/2/2e/Card-jinbe.png" },
    { name: "Marshall D. Teach Barba Negra", types: ["especialist", "bruiser", "diamond"], link: "/Marshall_D._Teach", img: "/images/f/ff/Card-kurohige.png" },
    { name: "Marco Abacaxi", types: ["especialist", "fighter", "support", "diamond"], link: "/Marco", img: "/images/2/2b/Marco_card.png" },
    { name: "Monkey D. Luffy (TS) Visno", types: ["fighter", "dps", "diamond", "break_wall"], link: "/Luffy_(Timeskip)", img: "/images/e/ed/Card-luffyts.png" },
    { name: "Nami (TS)", types: ["especialist", "dps", "diamond"], link: "/Nami_(timeskip)", img: "/images/3/35/Card-namits.png" },
    { name: "Portgas D. Ace Duduh", types: ["especialist", "shooter", "dps", "diamond"], link: "/Ace", img: "/images/4/40/Card-ace.png" },
    { name: "Robin (TS)", types: ["especialist", "dps", "diamond", "break_wall", "bridge"], link: "/Robin_(Timeskip)", img: "/images/b/b0/Card-robints.png" },
    { name: "Roronoa Zoro (TS)", types: ["slasher", "dps", "diamond", "break_wall"], link: "/Zoro_(Timeskip)", img: "/images/7/74/Card-zorots.png" },
    { name: "Sabo", types: ["fighter", "especialist", "dps", "diamond", "break_wall"], link: "/Sabo", img: "/images/0/04/Card-sabo.png" },
    { name: "Sakazuki Akainu", types: ["especialist", "fighter", "dps", "diamond", "break_wall"], link: "/Akainu", img: "/images/b/b0/Card_akainu.png" },
    { name: "Shanks", types: ["slasher", "bruiser", "diamond", "break_wall"], link: "/Shanks", img: "/images/a/aa/Card-shanks.png" },
    { name: "Usopp (TS)", types: ["shooter", "dps", "diamond", "break_wall"], link: "/Usopp_(Timeskip)", img: "/images/c/cc/Card-usoppts.png" },
    { name: "Uta", types: ["especialist", "dps", "diamond", "break_wall"], link: "/Uta", img: "/images/2/22/Card_uta.png" },
    { name: "Vinsmoke Sanji (TS)", types: ["fighter", "dps", "diamond", "break_wall"], link: "/Sanji_(Timeskip)", img: "/images/7/7a/Card-sanjits.png" },


     //------- TOOLTIP IMAGE---------
     { name: "Kalifa", types: ["support", "gold", "especialist", "break_wall"], link: "/Kalifa", img: "/images/3/39/Kalifa_card.png" },
     /*
    { name: "Jabra", types: ["slasher", "dps", "gold", "break_wall"], link: "/Jabra", img: "/images/9/98/Jabra_card.png" },
        Tooltip image consiste em uma funcionalidade que insere uma tag IMG
    { name: "Kaku", types: ["slasher", "shooter", "dps", "gold", "break_wall"], link: "/Kaku", img: "/images/9/98/Kaku_card.png" },
        quando o usuario passa o mouse por cima de uma imagem com a classe "tooltip-image"
    { name: "Rob Lucci", types: ["fighter", "dps", "gold", "break_wall"], link: "/Rob Lucci", img: "/images/b/b1/Rob_Lucci_card.png" },
        ao fazer é inserido no body uma tag IMG com a mesma "src" 1.3 vezes maior do que a imagem
    { name: "Blueno", types: ["fighter", "dps", "gold", "break_wall"], link: "/Blueno", img: "/images/5/55/Blueno_card.png" },
         que o usuario está com o mouse em coma, esta tag IMG terá o mesmo X e Y do mouse + um offset
    { name: "Marguerite", types: ["shooter", "dps", "gold", "break_wall"], link: "/Marguerite", img: "/images/1/1c/Marguerite_Card.png" },
         para manter um distanciamento.
    { name: "Baby 5", types: ["slasher", "shooter", "gold", "dps"], link: "/Baby_5", img: "/images/5/5e/Baby5_card.png" },
    */
    { name: "Bartolomeo", types: ["especialist", "dps", "gold", "break_wall", "bridge"], link: "/Bartolomeo", img: "/images/a/a9/Card-barto.png" },
    { name: "Basil Hawkins Lost", types: ["especialist", "bruiser", "gold", "bridge"], link: "/Basil_Hawkins", img: "/images/8/89/Card-hawkins.png" },
    { name: "Bastille", types: ["slasher", "tank", "gold", "break_wall"], link: "/Bastille", img: "/images/1/13/Card-bastille.png" },
    { name: "Bellamy", types: ["fighter", "dps", "gold", "break_wall"], link: "/Bellamy", img: "/images/7/7e/Card-bellamy.png" },
    { name: "Bonney Poseidon", types: ["fighter", "support", "gold"], link: "/Bonney", img: "/images/9/91/Card-bonney.png" },
    { name: "Brook", types: ["slasher", "support", "gold"], link: "/brook", img: "/images/7/76/Card-brook.png" },
    { name: "Capone gang bege", types: ["shooter", "dps", "gold", "break_wall"], link: "/Capone_Bege", img: "/images/c/c0/Card-capone.png" },
    { name: "Carrot", types: ["slasher", "especialist", "dps", "gold"], link: "/Carrot", img: "/images/8/8d/Card-carrot.png" },
    { name: "Tony Tony Chopper Gurren", types: ["fighter", "support", "gold", "break_wall"], link: "/Chopper", img: "/images/1/19/Card-chopper.png" },
    { name: "Crocodile", types: ["especialist", "tank", "gold", "break_wall", "bridge"], link: "/Crocodile", img: "/images/5/5d/Card-crocodile.png" },
    { name: "Dalmatian", types: ["slasher", "bruiser", "gold", "break_wall"], link: "/Dalmatian", img: "/images/9/99/Card-dalmatian.png" },
    { name: "Franky Sanitaria", types: ["shooter", "bruiser", "gold", "break_wall"], link: "/Franky", img: "/images/6/61/Card-franky.png" },
    { name: "Gecko Moria Coxinha", types: ["slasher", "support", "gold"], link: "/Gecko_Moria", img: "/images/f/fc/Moria_card.png" },
    { name: "Hina", types: ["fighter", "bruiser", "gold", "break_wall", "bridge"], link: "/Hina", img: "/images/5/57/Card-hina.png" },
    { name: "Jesus Burgess", types: ["fighter", "tank", "gold", "break_wall"], link: "/Jesus_Burgess", img: "/images/2/28/Card-burgess.png" },
    { name: "Eustass Kid Rag", types: ["shooter", "tank", "gold", "break_wall", "bridge"], link: "/Kid", img: "/images/9/9a/Card-kid.png" },
    { name: "Killer", types: ["slasher", "dps", "gold"], link: "/Killer", img: "/images/b/b2/Card-killer.png" },
    { name: "Koala", types: ["fighter", "dps", "gold"], link: "/Koala", img: "/images/f/f3/Card-koala.png" },
    { name: "Leo & Mansherry", types: ["especialist", "support", "gold", "bridge"], link: "/Leo", img: "/images/d/d9/Card-leo.png" },
    { name: "Monkey D. Luffy Visno", types: ["fighter", "bruiser", "gold", "break_wall"], link: "/Luffy", img: "/images/a/af/Card-luffy.png" },
    { name: "Nami", types: ["especialist", "dps", "gold", "break_wall"], link: "/nami", img: "/images/0/08/Card-nami.png" },
    { name: "Perona", types: ["especialist", "support", "gold", "break_wall"], link: "/Perona", img: "/images/6/6d/Card-perona.png" },
    { name: "Rebecca Ghoul Den Berry", types: ["slasher", "tank", "gold"], link: "/Rebecca", img: "/images/9/91/Card-rebecca.png" },
     { name: "Nico Robin", types: ["especialist", "dps", "gold", "break_wall", "bridge"], link: "/Robin", img: "/images/3/3f/Card-robin.png" },
    { name: "Roronoa zoro", types: ["slasher", "bruiser", "gold", "break_wall"], link: "/Roronoa_Zoro", img: "/images/6/6f/Card-zoro.png" },
    { name: "Ryuma", types: ["slasher", "dps", "gold"], link: "/Ryuma", img: "/images/a/ac/Card-ryuma.png" },
    { name: "Scratchmen Apoo", types: ["shooter", "support", "gold"], link: "/Apoo", img: "/images/9/90/Card-apoo.png" },
    { name: "Smoker Piseiro", types: ["fighter", "tank", "gold"], link: "/Smoker", img: "/images/f/fb/Card-smoker.png" },
    { name: "Trafalgar Law", types: ["slasher", "especialist", "dps", "gold", "break_wall"], link: "/Trafalgar_Law", img: "/images/b/b9/Card-law.png" },
    { name: "Urouge", types: ["fighter", "tank", "gold", "break_wall"], link: "/Urouge", img: "/images/9/98/Card-urouge.png" },
    { name: "Usopp", types: ["shooter", "dps", "gold", "break_wall"], link: "/Usopp", img: "/images/a/ac/Card-usopp.png" },
    { name: "Van Augur", types: ["shooter", "dps", "gold", "break_wall"], link: "/Van Augur", img: "/images/c/c7/Card-vanaugur.png" },
    { name: "Vinsmoke Ichiji", types: ["fighter", "bruiser", "gold", "break_wall"], link: "/Ichiji", img: "/images/8/8c/Card-ichiji.png" },
    { name: "Vinsmoke Niji", types: ["shooter", "dps", "gold"], link: "/Niji", img: "/images/6/66/Card-niji.png" },
    { name: "Vinsmoke Reiju Athena", types: ["especialist", "support", "gold"], link: "/Reiju", img: "/images/2/23/Card-reiju.png" },
    { name: "Vinsmoke Sanji", types: ["fighter", "dps", "gold", "break_wall"], link: "/Sanji", img: "/images/0/04/Card-sanji.png" },
    { name: "Vinsmoke Yonji", types: ["fighter", "tank", "gold", "break_wall"], link: "/Yonji", img: "/images/7/73/Card-yonji.png" },
    { name: "X-drake", types: ["fighter", "bruiser", "gold", "break_wall"], link: "/X_Drake", img: "/images/6/69/Card-drake.png" },
    { name: "Satori", types: ["support", "shooter", "especialist", "silver"], link: "/Satori", img: "/images/f/f3/Satori_card.png" },
    { name: "Gedatsu", types: ["fighter", "dps", "silver"], link: "/Gedatsu", img: "/images/f/f6/Gedatsu_card.png" },
    { name: "Ohm", types: ["tank", "slasher", "silver"], link: "/Ohm", img: "/images/1/1e/Ohm_card.png" },
    { name: "Shura", types: ["slasher", "dps", "silver"], link: "/Shura", img: "/images/2/2e/Shura_card.png" },
    { name: "Arlong", types: ["fighter", "bruiser", "silver", "break_wall"], link: "/Arlong", img: "/images/1/1e/Card-arlong.png" },
    { name: "Bepo", types: ["fighter", "dps", "silver"], link: "/Bepo", img: "/images/1/1d/Card-bepo.png" },
    { name: "Mr.2", types: ["fighter", "dps", "silver"], link: "/mr.2", img: "/images/2/27/Card-bonchan.png" },
    { name: "Buggy", types: ["shooter", "dps", "silver", "break_wall"], link: "/buggy", img: "/images/c/ca/Card-buggy.png" },
    { name: "Daddy Masterson", types: ["shooter", "dps", "silver"], link: "/Daddy_Masterson", img: "/images/2/20/Card-daddy.png" },
    { name: "mr.1 Daz Bonez Kolivier", types: ["slasher", "tank", "silver"], link: "/mr.1", img: "/images/6/61/Card-dazbonez.png" },
    { name: "Miss Doublefinger Zala", types: ["slasher", "bruiser", "silver"], link: "/Miss_Doublefinger", img: "/images/5/5f/Card-doublefinger.png" },
    { name: "Don Krieg", types: ["shooter", "dps", "silver"], link: "/don_Krieg", img: "/images/8/8f/Card-krieg.png" },
    { name: "Kuro", types: ["slasher", "dps", "silver"], link: "/kuro", img: "/images/3/3d/Card-kuro.png" },
    { name: "mr.3 Galdino", types: ["especialist", "support", "silver", "bridge"], link: "/mr.3", img: "/images/7/75/Card-mr3.png" },
    { name: "Tashigi", types: ["slasher", "dps", "silver"], link: "/tashigi", img: "/images/b/b8/Card-tashigi.png" },
    { name: "Nefertari Vivi", types: ["slasher", "support", "silver"], link: "/Vivi", img: "/images/9/9c/Card-vivi.png" },
    { name: "Wapol", types: ["shooter", "tank", "silver", "break_wall"], link: "/wapol", img: "/images/b/ba/Card-wapol.png" },
    { name: "Alvida", types: ["fighter", "support", "bronze"], link: "/Alvida", img: "/images/8/83/Card-alvida.png" },
    { name: "Buchi & Sham", types: ["slasher", "bruiser", "bronze"], link: "/Buchi", img: "/images/0/0b/Card-buchi.png" },
    { name: "Cabaji", types: ["slasher", "dps", "bronze"], link: "/Cabaji", img: "/images/9/9d/Card-cabaji.png" },
    { name: "Chew", types: ["shooter", "dps", "bronze", "break_wall"], link: "/Chew", img: "/images/0/0f/Card-chew.png" },
    { name: "Eric", types: ["shooter", "slasher", "dps", "bronze"], link: "/Eric", img: "/images/3/31/Card-eric.png" },
    { name: "Gin", types: ["fighter", "shooter", "dps", "bronze"], link: "/Gin", img: "/images/1/18/Card-gin.png" },
    { name: "Miss Goldenweek", types: ["support", "especialist", "bronze"], link: "/Goldenweek", img: "/images/0/0e/Card-goldenweek.png" },
    { name: "Hatchan", types: ["slasher", "support", "bronze"], link: "/Hatchan", img: "/images/3/31/Card-hatchan.png" },
    { name: "Jango", types: ["shooter", "support", "bronze"], link: "/Jango", img: "/images/4/48/Card-jango.png" },
    { name: "Kuroobi", types: ["fighter", "tank", "bronze", "break_wall"], link: "/Kuroobi", img: "/images/6/6a/Card-kuroobi.png" },
    { name: "Mohji", types: ["especialist", "bruiser", "bronze"], link: "/Mohji", img: "/images/5/58/Card-mohji.png" },
    { name: "Morgan", types: ["slasher", "bruiser", "bronze"], link: "/Morgan", img: "/images/4/43/Card-morgan.png" },
    { name: "Mr.4", types: ["shooter", "bruiser", "bronze"], link: "/Mr.4", img: "/images/9/90/Card-mr4.png" },
    { name: "Mr.5", types: ["shooter", "dps", "bronze"], link: "/Mr.5", img: "/images/4/49/Card-mr5.png" },
    { name: "Pearl", types: ["fighter", "especialist", "tank", "bronze"], link: "/Pearl", img: "/images/d/de/Card-pearl.png" },
  ];
 
  $(".filter--icon").on("click", function () {
    const id = $(this).attr("id");
 
    if ($(this).hasClass("all")) {
      $('.filter--icon.active').removeClass('active');
      $(".characters").addClass('show');
      $(".filter--icon.all").addClass('active');
      return false;
    } else {
      $(".filter--icon.all").removeClass('active');
    }
 
    if ($(this).hasClass("active")) {
      $(this).removeClass('active');
      actives = $('.filter--icon.active');
      query = "";
 
      $.each(actives, function (key, item) {
         query += "[data-type-" + item.id + "]";
      });
 
      $(".characters" + query).addClass('show');
    } else {
      if ($(this).hasClass("tier")) {
         $('.filter--icon.tier.active').removeClass('active');
      }
 
      $(this).addClass('active');
      $(".characters").removeClass('show');
      query = "";
      actives = $('.filter--icon.active');


    //Distanciamento / margem do mouse
      $.each(actives, function (key, item) {
    const offset = { x: 20, y: 10 };
        query += "[data-type-" + item.id + "]";
      });


    $('.tooltip-image').on('mouseenter',
      $(".characters" + query).addClass('show');
        function (e) {
    }
            var src = $(this).attr('src');
  });
            var size = $(this).width() * 1.3;


            $('<img src="' + src + '" id="bigImage" />').css('left', e.pageX + offset.x).css('top', e.pageY + offset.y).css('width', size + "px").appendTo('body').hide().fadeIn(500);
  $.each(characters, function (key, item) {
        }).on('mouseleave',
    data = '';
            function () {
    id = item.name.replace(/\s/g, '_').toLowerCase();
                $('#bigImage').remove();
            });


     $('.tooltip-image').mousemove(function (e) {
     $.each(item.types, function (key, value) {
        $('#bigImage').css('left', e.pageX + offset.x).css('top', e.pageY + offset.y);
      data += "data-type-" + value + " ";
     });
     });
    //------- TOOLTIP IMAGE---------


     //------- FUNCIONALIDADES PACIENTES KUREHA ---------
     $("#characters-container").append(
    const pacients = {
      "<div id=" + id + " class='characters show' " + data + " >" +
        "bafo": { image: "/images/c/ce/Bafo_static.png", gif: "/images/e/e0/Bafo.gif" },
      "<a href='https://wiki.gla.com.br/index.php" + item.link + "'>" +
        "espirrando": { image: "/images/thumb/5/5b/Espirro_static.png/180px-Espirro_static.png", gif: "/images/thumb/9/90/Espirro.gif/180px-Espirro.gif", audio: "/images/2/2b/Espirrando.ogg" },
      "<img src='" + item.img + "' alt='imagem de " + item.name + "' />" +
        "enjoado": { image: "/images/thumb/5/52/Enjoado_static.png/180px-Enjoado_static.png", gif: "/images/thumb/7/76/Enjoado.gif/180px-Enjoado.gif", audio: "/images/5/5b/Vomito.ogg" },
      "</a>" +
        "tremendo": { image: "/images/thumb/3/35/Tremendo_static.png/180px-Tremendo_static.png", gif: "/images/thumb/f/f4/Tremendo.gif/180px-Tremendo.gif" },
      "</div>"
        "tossindo": { image: "/images/thumb/e/ef/Tosse_static.png/180px-Tosse_static.png", gif: "/images/thumb/a/a4/Tosse.gif/180px-Tosse.gif", audio: "/images/f/f9/Tossindo.ogg" },
    );
        "solucando": { image: "/images/thumb/c/c0/Soluco_static.png/180px-Soluco_static.png", gif: "/images/thumb/6/67/Soluco.gif/180px-Soluco.gif", audio: "/images/e/e2/Solucando.ogg" },
  });
        "funk": { image: "/images/thumb/e/e8/Funkeiro_static.png/180px-Funkeiro_static.png ", gif: "/images/thumb/7/79/Funkeiro.gif/180px-Funkeiro.gif", audio: "/images/d/d2/Funk.ogg" },
 
        "fedendo": { image: "/images/thumb/1/1e/Fedido_static.png/180px-Fedido_static.png", gif: "/images/thumb/c/c9/Fedido.gif/180px-Fedido.gif" },
  $(".filter--searchButton").on("click", function () {
        "febre": { image: "/images/thumb/1/14/Febre_static.png/180px-Febre_static.png", gif: "/images/thumb/7/75/Febre.gif/180px-Febre.gif" },
    $(".filter--icon.active").removeClass('active');
        "endemoniado": { audio: "/images/3/32/Risada_maligna.ogg" },
    $(".characters.show").removeClass('show');
        "fome": { audio: "/images/3/37/Estomago_roncando.ogg" },
    if ($("#f-input").val().toLowerCase() != '') {
        "cardiaco": { audio: "/images/2/27/Coracao_batendo.ogg" }
      $(".characters[id*=" + $("#f-input").val().toLowerCase() + "]").addClass('show');
    } else {
      $(".characters").addClass('show');
    }
  });
 
  $('#f-input').keypress(function (e) {
    const key = e.which;
    if (key == 13)  // the enter key code
    {
      $('.filter--searchButton').click();
      return false;
    }
  });
 
  //------- PERSONAGENS ---------
 
  //------- WANTED ---------
  const wanted_slashers = [
    { name: "Baby 5", wanteds: ["nami", "usopp", "mr. 3", "jango"], img: "/images/5/5e/Baby5_card.png" },
    { name: "Ohm", wanteds: ["robin", "nami", "brook", "zoro", "luffy", "sanji", "urouge", "ryuma", "van augur", "law", "niji", "crocodile", "cabaji"], img: "/images/1/1e/Ohm_card.png" },
    { name: "Roronoa Zoro", wanteds: ["robin", "nami", "brook", "chopper", "franky", "luffy", "sanji", "perona", "usopp", "capone", "kid", "van augur", "law", "yonji", "ichiji", "mr. 1", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "koala", "buggy", "gin", "mohji", "drake", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/6/6f/Card-zoro.png" },
    { name: "Shanks", wanteds: ["robin", "nami", "brook", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "bellamy"], img: "/images/a/aa/Card-shanks.png" },
    { name: "Dracule Mihawk", wanteds: ["robin", "nami", "chopper", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "perona", "usopp", "ryuma", "capone", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "pearl", "arlong", "hatchan", "chew", "jango", "kuroobi", "buggy", "kuro", "krieg", "mohji", "morgan", "hawkins", "alvida", "crocodile"], img: "/images/9/91/Card-mihawk.png" },
    { name: "Killer", wanteds: ["rebecca", "van augur", "pearl", "jango", "buggy", "alvida"], img: "/images/b/b2/Card-killer.png" },
    { name: "Tashigi", wanteds: ["chopper", "zoro", "luffy", "sanji", "bonney", "urouge", "perona", "ryuma", "killer", "burgess", "kid", "reiju", "yonji", "baby 5", "mr. 1", "mr. 2", "mr. 4", "pearl", "arlong", "hatchan", "buchi", "jango", "kuroobi", "koala", "kuro", "gin", "mohji", "morgan", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/b/b8/Card-tashigi.png" },
    { name: "Roronoa Zoro (TS)", wanteds: ["chopper", "leo", "perona", "usopp", "capone", "mr. 3", "goldenweek", "pearl", "hatchan", "buchi", "jango", "buggy", "alvida"], img: "/images/7/74/Card-zorots.png" },
    { name: "Rebbeca", wanteds: ["franky", "luffy", "sanji", "urouge", "usopp", "ryuma", "killer", "capone", "van augur", "law", "yonji", "niji", "mr. 2", "doublefinger", "mr. 4", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "buggy", "kuro", "gin", "krieg", "morgan", "drake", "alvida"], img: "/images/9/91/Card-rebecca.png" },
    { name: "Carrot", wanteds: ["nami", "chopper", "luffy", "sanji", "leo", "leo", "usopp", "capone", "kid", "van augur", "law", "niji", "ichiji", "mr. 3", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "krieg", "mohji", "drake", "alvida"], img: "/images/8/8d/Card-carrot.png" },
    { name: "Shimotsuki Ryuma", wanteds: ["nami", "brook", "chopper", "franky", "sanji", "leo", "urouge", "perona", "capone", "law", "reiju", "yonji", "niji", "baby 5", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "gin", "mohji", "morgan", "drake", "alvida", "crocodile"], img: "/images/a/ac/Card-ryuma.png" },
    { name: "Trafalgar Law", wanteds: ["luffy", "sanji", "leo", "apoo", "usopp", "kid", "reiju", "yonji", "niji", "ichiji", "baby 5", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "drake", "alvida"], img: "/images/b/b9/Card-law.png" },
    { name: "Mr. 1", wanteds: ["chopper", "perona", "killer", "capone", "law", "niji", "baby 5", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "kuro", "krieg", "mohji", "morgan", "alvida", "wapol", "crocodile"], img: "/images/6/61/Card-dazbonez.png" },
    { name: "Bastille", wanteds: ["chopper", "zoro", "law", "doublefinger", "mr. 4", "arlong", "buchi", "kuro", "gin", "alvida", "bellamy"], img: "/images/1/13/Card-bastille.png" },
    { name: "Dalmatian", wanteds: ["capone", "mr. 2", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "mohji", "morgan", "alvida", "crocodile"], img: "/images/9/99/Card-dalmatian.png" },
    { name: "Morgan", wanteds: ["robin", "nami", "leo", "van augur", "baby 5", "goldenweek", "buchi", "chew", "jango", "alvida"], img: "/images/4/43/Card-morgan.png" },
    { name: "Cabaji", wanteds: ["nami", "chopper", "chew", "jango", "alvida"], img: "/images/9/9d/Card-cabaji.png" },
    { name: "Kuro", wanteds: ["nami", "pearl", "hatchan", "buchi", "jango", "koala", "krieg", "mohji", "alvida", "bellamy"], img: "/images/3/3d/Card-kuro.png" },
    { name: "Eric", wanteds: ["nami", "brook", "apoo", "usopp", "reiju", "mr. 3", "goldenweek", "mr. 5", "jango", "buggy", "alvida"], img: "/images/3/31/Card-eric.png" },
    { name: "Miss Doublefinger", wanteds: ["chopper", "luffy", "sanji", "urouge", "rebecca", "perona", "usopp", "burgess", "capone", "kid", "reiju", "yonji", "pearl", "hatchan", "buchi", "jango", "kuroobi", "mohji", "alvida", "wapol"], img: "/images/5/5f/Card-doublefinger.png" },
  ];
 
  const wanted_shooters = [
    { name: "Baby 5", wanteds: ["nami", "usopp", "mr. 3", "jango"], img: "/images/5/5e/Baby5_card.png" },
    { name: "Daddy Masterson", wanteds: ["robin", "nami", "apoo", "apoo", "usopp", "niji", "mr. 3", "goldenweek", "mr. 5", "chew", "jango", "buggy", "krieg"], img: "/images/2/20/Card-daddy.png" },
    { name: "Enel", wanteds: ["robin", "usopp", "jango", "cabaji"], img: "/images/8/85/Enel_card.png" },
    { name: "Capone Gang Bege", wanteds: ["robin", "nami", "brook", "chopper", "franky", "luffy", "sanji", "leo", "apoo", "rebecca", "usopp", "killer", "burgess", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 2", "mr. 3", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "krieg", "mohji", "morgan", "alvida", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/c/c0/Card-capone.png" },
    { name: "Franky", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "urouge", "usopp", "ryuma", "burgess", "capone", "kid", "van augur", "law", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "mohji", "morgan", "hawkins", "alvida", "crocodile", "cabaji"], img: "/images/6/61/Card-franky.png" },
    { name: "Eustass kid", wanteds: ["chopper", "luffy", "usopp", "kid", "baby 5", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "pearl", "buchi", "gin", "hawkins", "alvida", "crocodile"], img: "/images/9/9a/Card-kid.png" },
    { name: "Van Augur", wanteds: ["robin", "nami", "brook", "chopper", "franky", "luffy", "bonney", "leo", "apoo", "urouge", "usopp", "killer", "capone", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 2", "mr. 3", "goldenweek", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "krieg", "mohji", "morgan", "drake", "alvida", "wapol", "cabaji"], img: "/images/c/c7/Card-vanaugur.png" },
    { name: "Portgas D. Ace", wanteds: ["nami", "brook", "chopper", "bonney", "leo", "apoo", "perona", "usopp", "kid", "van augur", "niji", "mr. 3", "mr. 5", "bepo", "arlong", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "mohji"], img: "/images/4/40/Card-ace.png" },
    { name: "Usopp (TS)", wanteds: ["brook", "chopper", "leo", "apoo", "perona", "usopp", "van augur", "niji", "mr. 3", "goldenweek", "mr. 5", "hatchan", "chew", "jango", "buggy", "krieg", "alvida"], img: "/images/c/cc/Card-usoppts.png" },
    { name: "Donquixote Doflamingo", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "perona", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "jango", "kuroobi", "koala", "buggy", "gin", "krieg", "mohji", "morgan", "drake", "alvida"], img: "/images/8/8d/Card-doflamingo.png" },
    { name: "Buggy", wanteds: ["nami", "chopper", "bonney", "apoo", "perona", "usopp", "van augur", "baby 5", "mr. 4", "mr. 5", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "krieg", "mohji", "alvida", "cabaji"], img: "/images/c/ca/Card-buggy.png" },
    { name: "Vinsmoke Niji", wanteds: ["nami", "apoo", "van augur", "reiju", "mr. 3", "mr. 5", "buchi", "jango", "buggy", "krieg", "alvida"], img: "/images/6/66/Card-niji.png" },
    { name: "Wapol", wanteds: ["robin", "nami", "brook", "chopper", "zoro", "luffy", "sanji", "urouge", "rebecca", "perona", "ryuma", "killer", "burgess", "kid", "law", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "doublefinger", "mr. 4", "pearl", "arlong", "buchi", "jango", "kuroobi", "kuro", "mohji", "morgan", "hawkins", "wapol", "crocodile"], img: "/images/b/ba/Card-wapol.png" },
    { name: "Franky (TS)", wanteds: ["chopper", "zoro", "usopp", "capone", "kid", "yonji", "mr. 1", "doublefinger", "mr. 4", "pearl", "arlong", "buchi", "kuro", "alvida"], img: "/images/d/d0/Card-frankyts.png" },
    { name: "Borsalino Kizaru", wanteds: ["capone", "jango", "drake", "alvida"], img: "/images/3/32/Card-kizaru.png" },
    { name: "Don Krieg", wanteds: ["brook", "chopper", "apoo", "capone", "reiju", "goldenweek", "mr. 5", "hatchan", "buchi", "chew", "jango", "buggy", "drake", "alvida"], img: "/images/8/8f/Card-krieg.png" },
    { name: "Eric", wanteds: ["nami", "brook", "apoo", "usopp", "reiju", "mr. 3", "goldenweek", "mr. 5", "jango", "buggy", "alvida"], img: "/images/3/31/Card-eric.png" },
    { name: "Mr. 4", wanteds: ["chopper", "zoro", "bonney", "goldenweek", "buchi", "jango", "morgan"], img: "/images/9/90/Card-mr4.png" },
    { name: "Mr. 5", wanteds: ["brook", "sanji", "bonney", "goldenweek", "jango", "kuroobi"], img: "/images/4/49/Card-mr5.png" },
    { name: "Gin", wanteds: ["chopper", "capone", "van augur", "baby 5", "mr. 3", "goldenweek", "bepo", "buchi", "gin", "krieg", "mohji", "drake", "alvida", "cabaji"], img: "/images/1/18/Card-gin.png" },
    { name: "Chew", wanteds: ["mr. 5"], img: "/images/0/0f/Card-chew.png" },
    { name: "Usopp", wanteds: ["nami", "brook", "chopper", "leo", "apoo", "reiju", "niji", "mr. 3", "mr. 5", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "alvida", "wapol"], img: "/images/a/ac/Card-usopp.png" },
  ];
 
  const wanted_fighters = [
    { name: "Sabo", wanteds: ["nami", "niji", "mr. 2", "mr. 3", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "cabaji"], img: "/images/0/04/Card-sabo.png" },
    { name: "X-Drake", wanteds: ["robin", "brook", "chopper", "franky", "zoro", "sanji", "bonney", "leo", "apoo", "urouge", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 3", "doublefinger", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji", "bellamy"], img: "/images/6/69/Card-drake.png" },
    { name: "Hina", wanteds: ["robin", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "urouge", "rebecca", "perona", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 3", "doublefinger", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/5/57/Card-hina.png" },
    { name: "Smoker", wanteds: ["robin", "nami", "zoro", "luffy", "urouge", "capone", "van augur", "law", "baby 5", "mr. 1", "mr. 2", "mr. 3", "mr. 5", "krieg", "alvida"], img: "/images/f/fb/Card-smoker.png" },
    { name: "Bellamy", wanteds: ["nami", "brook", "chopper", "zoro", "luffy", "sanji", "apoo", "urouge", "rebecca", "ryuma", "burgess", "van augur", "law", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 2", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "buchi", "jango", "kuroobi", "koala", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/7/7e/Card-bellamy.png" },
    { name: "Urouge", wanteds: ["nami", "sanji", "apoo", "usopp", "capone", "chew"], img: "/images/9/98/Card-urouge.png" },
    { name: "Boa Hancock", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "urouge", "perona", "usopp", "ryuma", "burgess", "capone", "van augur", "law", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 3", "mr. 5", "bepo", "arlong", "hatchan", "chew", "jango", "kuroobi", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji", "bellamy"], img: "/images/4/47/Card-hancock.png" },
    { name: "VinsmokeYonji", wanteds: ["mr. 4", "kuro"], img: "/images/7/73/Card-yonji.png" },
    { name: "Vinsmoke Ichiji", wanteds: ["robin", "nami", "brook", "sanji", "apoo", "urouge", "rebecca", "usopp", "capone", "ichiji", "baby 5", "mr. 3", "mr. 5", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/8/8c/Card-ichiji.png" },
    { name: "Mr. 2", wanteds: ["bonney", "usopp", "hatchan", "krieg", "alvida"], img: "/images/2/27/Card-bonchan.png" },
    { name: "Vinsmoke Sanji (TS)", wanteds: ["nami", "chopper", "usopp", "law", "mr. 2", "doublefinger", "mr. 4", "mr. 5", "bepo", "pearl", "buchi", "chew", "jango", "koala", "buggy", "krieg", "mohji", "morgan", "alvida", "wapol", "cabaji"], img: "/images/7/7a/Card-sanjits.png" },
    { name: "Monkey D. Luffy (TS)", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "apoo", "urouge", "rebecca", "perona", "usopp", "ryuma", "killer", "burgess", "kid", "law", "yonji", "niji", "ichiji", "mr. 1", "mr. 2", "doublefinger", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "kuro", "gin", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/e/ed/Card-luffyts.png" },
    { name: "Koala", wanteds: ["robin", "nami", "brook", "franky", "zoro", "luffy", "sanji", "leo", "apoo", "urouge", "usopp", "killer", "burgess", "capone", "van augur", "law", "reiju", "yonji", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "crocodile", "cabaji", "bellamy"], img: "/images/f/f3/Card-koala.png" },
    { name: "Burgess", wanteds: ["robin", "nami", "brook", "franky", "zoro", "luffy", "sanji", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "yonji", "niji", "ichiji", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "kuroobi", "koala", "buggy", "kuro", "gin", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/2/28/Card-burgess.png" },
    { name: "Monkey D. Luffy", wanteds: ["brook", "chopper", "franky", "sanji", "leo", "usopp", "burgess", "kid", "law", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "pearl", "arlong", "hatchan", "chew", "jango", "kuroobi", "koala", "buggy", "morgan", "alvida", "wapol", "cabaji"], img: "/images/a/af/Card-luffy.png" },
    { name: "Bepo", wanteds: ["zoro", "luffy", "sanji", "pearl", "arlong", "buchi", "kuro", "mohji", "morgan", "drake", "alvida"], img: "/images/1/1d/Card-bepo.png" },
    { name: "Vinsmoke Sanji", wanteds: ["brook", "chopper", "usopp", "kid", "mr. 4", "mr. 5", "pearl", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "gin", "morgan", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/0/04/Card-sanji.png" },
    { name: "Arlong", wanteds: ["mr. 2", "chew", "alvida"], img: "/images/1/1e/Card-arlong.png" },
    { name: "Gin", wanteds: ["chopper", "capone", "van augur", "baby 5", "mr. 3", "goldenweek", "bepo", "buchi", "gin", "krieg", "mohji", "drake", "alvida", "cabaji"], img: "/images/1/18/Card-gin.png" },
  ];
 
  const wanted_especialists = [
    { name: "Sakazuki Akainu", wanteds: ["capone", "bellamy"], img: "/images/b/b0/Card_akainu.png" },
    { name: "Uta", wanteds: ["nami", "usopp", "jango", "buggy"], img: "/images/2/22/Card_uta.png" },
    { name: "Sabo", wanteds: ["nami", "niji", "mr. 2", "mr. 3", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "cabaji"], img: "/images/0/04/Card-sabo.png" },
    { name: "Enel", wanteds: ["robin", "usopp", "jango", "cabaji"], img: "/images/8/85/Enel_card.png" },
    { name: "Vinsmoke Reiju", wanteds: ["brook", "bonney", "urouge", "rebecca", "killer", "burgess", "kid", "reiju", "yonji", "baby 5", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "koala", "kuro", "gin", "mohji", "morgan", "hawkins", "alvida", "crocodile", "cabaji"], img: "/images/2/23/Card-reiju.png" },
    { name: "Portgas D. Ace", wanteds: ["nami", "brook", "chopper", "bonney", "leo", "apoo", "perona", "usopp", "kid", "van augur", "niji", "mr. 3", "mr. 5", "bepo", "arlong", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "mohji"], img: "/images/4/40/Card-ace.png" },
    { name: "Donquixte Doflamingo", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "perona", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "jango", "kuroobi", "koala", "buggy", "gin", "krieg", "mohji", "morgan", "drake", "alvida"], img: "/images/8/8d/Card-doflamingo.png" },
    { name: "Borsalino Kizaru", wanteds: ["capone", "jango", "drake", "alvida"], img: "/images/3/32/Card-kizaru.png" },
    { name: "Trafalgar Law", wanteds: ["luffy", "sanji", "leo", "apoo", "usopp", "kid", "reiju", "yonji", "niji", "ichiji", "baby 5", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "drake", "alvida"], img: "/images/b/b9/Card-law.png" },
    { name: "Carrot", wanteds: ["nami", "chopper", "luffy", "sanji", "leo", "leo", "usopp", "capone", "kid", "van augur", "law", "niji", "ichiji", "mr. 3", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "krieg", "mohji", "drake", "alvida"], img: "/images/8/8d/Card-carrot.png" },
    { name: "Nami (TS)", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "rebecca", "usopp", "ryuma", "killer", "kid", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "mr. 5", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/3/35/Card-namits.png" },
    { name: "Nami", wanteds: ["chopper", "bonney", "leo", "apoo", "burgess", "law", "niji", "mr. 3", "doublefinger", "goldenweek", "mr. 5", "pearl", "hatchan", "buchi", "chew", "jango", "buggy", "krieg", "mohji", "alvida"], img: "/images/0/08/Card-nami.png" },
    { name: "Nico Robin", wanteds: ["nami", "chopper", "leo", "apoo", "usopp", "mr. 3", "arlong", "buchi", "chew", "jango", "buggy", "mohji", "alvida"], img: "/images/3/3f/Card-robin.png" },
    { name: "Nico Robin (TS)", wanteds: ["bonney", "leo", "apoo", "perona", "mr. 3", "buchi", "chew", "jango", "alvida"], img: "/images/b/b0/Card-robints.png" },
    { name: "Bartolomeo", wanteds: ["urouge", "reiju", "pearl", "arlong", "jango", "kuroobi", "koala", "morgan", "drake", "alvida"], img: "/images/a/a9/Card-barto.png" },
    { name: "Marshall D. Teach", wanteds: ["bonney", "perona", "killer", "capone", "mr. 2", "goldenweek", "mr. 5", "pearl", "buchi", "chew", "jango", "buggy", "alvida"], img: "/images/f/ff/Card-kurohige.png" },
    { name: "Crocodile", wanteds: ["nami", "yonji", "mr. 1", "alvida"], img: "/images/5/5d/Card-crocodile.png" },
    { name: "Bartolomew Kuma", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "urouge", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "mr. 3", "doublefinger", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji", "bellamy"], img: "/images/b/b5/Card-kuma.png" },
    { name: "Basil Hawkins", wanteds: ["luffy", "urouge", "yonji", "pearl", "kuroobi", "alvida"], img: "/images/8/89/Card-hawkins.png" },
    { name: "Mohji", wanteds: ["alvida", "bonney", "buggy", "pearl", "van augur"], img: "/images/5/58/Card-mohji.png" },
    { name: "Leo & Mansherry", wanteds: ["alvida", "bonney", "mohji"], img: "/images/d/d9/Card-leo.png" },
  ];
 
  function filterAndAppend(array, value, id) {
    whoDo = array.filter(
      function (v) {
        return v.wanteds.includes(value);
      }
    );
 
    $.each(whoDo, function (key, item) {
      $(".wantedPortraits#" + id).append(
        "<div class='wantedPortrait' >" +
        "<img src='" + item.img + "' alt='imagem de " + item.name + "' />" +
        "</div>"
      );
    })
  }
 
  $("#selectbox-wanted").on("input", function () {
    const value = $(this).val();
 
    if ($(".wantedPortrait"))
      $(".wantedPortrait").remove();
 
    filterAndAppend(wanted_shooters, value, "wanted-shooter");
    filterAndAppend(wanted_slashers, value, "wanted-slasher");
    filterAndAppend(wanted_fighters, value, "wanted-fighter");
    filterAndAppend(wanted_especialists, value, "wanted-especialist");
  });
  //------- WANTED ---------
 
  //------- SKILL TAB ---------
  $('.tab-skill').on('click', function () {
    $('.tab-skill.active').removeClass('active');
    $(this).addClass('active');
    const skillId = $(this).data('skill-id');
    if ($(".skillInfo[data-skill-id=" + skillId + "]")) {
      $(".skillInfo.active").removeClass('active');
      $(".skillInfo[data-skill-id=" + skillId + "]").addClass('active');
    }
  });
  //------- SKILL TAB ---------
 
  //------- CALCULATOR XP ---------
  const maximum_level = 110;
  const tier_values = {
    "diamond": 1,
    "gold": 1,
    "silver": 2,
    "bronze": 3
  };
 
  $(".calcXp--tierIcon").on("click", function () {
    $(".calcXp--tierIcon.active").removeClass('active');
    $(this).addClass('active');
  });
 
  $("#calculate-btn").on('click', function () {
    getNeededPotions();
  });
 
  function calcMissingXpInPotions() {
    const currentPercentOfXp = $("#char-currentPercentOfXp").val() != "" ? $("#char-currentPercentOfXp").val() : 100;
    const currentLevel = $("#char-level").val() != "" ? $("#char-level").val() : 1;
    const levelToUp = $("#char-levelToUp").val() != "" ? $("#char-levelToUp").val() : 110;
    const charTier = $(".calcXp--tierIcon.active").length != 0 ? tier_values[$(".calcXp--tierIcon.active").attr('id')] : tier_values["gold"];
 
    const percentToUp = 100 - currentPercentOfXp;
    const currentXp = ((50 * (Math.pow((currentLevel - 1), 3)) - 150 * (Math.pow((currentLevel - 1), 2)) + 400 * (currentLevel - 1)) / 3) + ((50 * Math.pow(currentLevel, 2) - 150 * currentLevel + 200) * percentToUp / 100);
    const desiredXp = (50 * (Math.pow((levelToUp - 1), 3)) - 150 * (Math.pow((levelToUp - 1), 2)) + 400 * (levelToUp - 1)) / 3;
    const missingXp = Math.round((desiredXp - currentXp));
 
    const missingPotions = {
      "small": Math.ceil((missingXp / (1000 * charTier))),
      "medium": (missingXp / (10000 * charTier)).toFixed(1),
      "big": (missingXp / (100000 * charTier)).toFixed(2)
     };
     };


     const audioPlayer = document.querySelector("#audio");
    return missingPotions;
  }
 
  function calcPotions() {
     const missingPotions = calcMissingXpInPotions();


     $(".pacient-audio").on("click", function (e) {
     var complementaryPotS;
         id = $(this).attr('id');
    var complementaryPotM;
    potS = missingPotions['small'];
    potM = missingPotions['medium'];
    potB = missingPotions['big'];
 
    if (String(potS).slice(-1) == "0") {
      potM = Math.ceil(parseFloat(potM));
    } else {
      potM = Math.floor(potM);
      complementaryPotS = potS - potM * 10;
    }
 
    if (String(potM).slice(-1) == "0") {
      potM = Math.ceil((parseFloat(potM)));
      potB = Math.floor(potB);
    }
    else {
      potB = Math.floor(potB)
      complementaryPotM = potM - potB * 10
    }
 
    const potions = {
      "small": complementaryPotS,
      "medium": complementaryPotM,
      "big": potB
    }
 
    return potions;
  }
 
  function getNeededPotions() {
    const potions = calcPotions();
    const resultsArea = $("#calc-result");
 
    resultsArea.html('');
 
    if (potions["big"]) {
      resultsArea.append(
        "<div class='badge'>" +
        "<img src='/images/a/a5/Bigexppot.png' class='calcXp--xpIcon' />" +
         "<span class='calcXp--numberOfPots'>" + potions['big'] + "</span>" +
        "</div>"
      );
    }
 
 
    if (potions["medium"]) {
      resultsArea.append(
        "<div class='badge'>" +
        "<img src='/images/d/df/Medexppot.png' class='calcXp--xpIcon' />" +
        "<span class='calcXp--numberOfPots'>" + potions['medium'] + "</span>" +
        "</div>"
      );
    }


        if (pacients[id]) {
            audioPlayer.src = pacients[id].audio;
            audioPlayer.play();
        }


     });
     if (potions["small"]) {
      resultsArea.append(
        "<div class='badge'>" +
        "<img src='/images/5/5a/Smallexppot.png' class='calcXp--xpIcon' />" +
        "<span class='calcXp--numberOfPots'>" + potions['small'] + "</span>" +
        "</div>"
      );
    }
  }
  //------- CALCULATOR XP ---------


    $('.interactive-pacient').on('mouseenter', function (e) {
  //------- VIDEO SELECTOR ---------
        id = $(this).attr('id');
  $(".video-selector").on("click", function () {
    $(".video-selector.active").removeClass("active");
    $(this).addClass("active");


        if (pacients[id])
    const value = $(this).data("value");
            $(this).attr('src', pacients[id].gif);
    const obj = eval('(' + value + ')');
    }).on('mouseleave', function (e) {
    $("video[data-type-" + obj.select + "].active").removeClass('active');
        id = $(this).attr('id');
    const index = obj.showId - 1;
    $("video[data-type-" + obj.select + "]").eq(index).addClass('active');
  });
  //------- VIDEO SELECTOR ---------
  //-------- gurren
  $(document).ready(function () {
    // Alternar entre mostrar e ocultar abas ao clicar
    $('.mostrar-aba').click(function () {
      var aba_id = $(this).attr('data-aba');
      var aba_selecionada = $("#aba-" + aba_id);


         if (pacients[id])
      if (aba_selecionada.hasClass('atual')) {
            $(this).attr('src', pacients[id].image);
         aba_selecionada.removeClass('atual'); // Oculta a aba se já estiver ativa
        $(this).removeClass('ativa'); // Remove a classe ativa do botão
      } else {
        $('.aba').removeClass('atual'); // Oculta todas as abas
        aba_selecionada.addClass('atual'); // Exibe a aba correspondente
        $('.mostrar-aba').removeClass('ativa'); // Remove a classe ativa de outros botões
        $(this).addClass('ativa'); // Adiciona a classe ativa ao botão clicado
      }
     });
     });


     //------- FUNCIONALIDADES PACIENTES KUREHA ---------
     // Exibir aba correspondente ao hash da URL
     //------- FUNCIONALIDADES BUZINAS ---------
    var url = location.href;
     const horns = {
     var hash = url.split('#')[1];
        "Buzinadelacucha": { audio: "/images/5/55/Buzinadelacucha-audio.ogg" },
     if (hash != null && hash.length > 0) {
        "Buzinadefumaca": { audio: "/images/3/3a/Buzinadefumaca-audio.ogg" },
      $("#aba-" + hash).addClass('atual'); // Exibe a aba do hash
        "Buzinadecaminhao": { audio: "/images/e/e4/Buzinadecaminhao-audio.ogg" },
      $('*[data-aba="' + hash + '"]').addClass('ativa'); // Ativa o botão correspondente
        "Buzinadetrem": { audio: "/images/3/34/Buzinadetrem-audio.ogg" },
    }
        "Buzinadeesporte": { audio: "/images/2/2b/Buzinadeesporte-audio.ogg" },
  });
        "Buzinadear": { audio: "/images/9/95/Buzinadear-audio.ogg" },
});
        "Buzinadepalhaco": { audio: "/images/a/a4/Buzinadepalhaco-audio.ogg" },
 
        "Buzinadeinvestida": { audio: "/images/f/ff/Buzinadeinvestida-audio.ogg" },
 
        "Buzinadebicicleta": { audio: "/images/1/15/Buzinadebicicleta-audio.ogg" },
//------- 2222222222222222222222222222222222222222222222222222222222222222222222 ---------
        "Buzinadeneblina": { audio: "/images/6/64/Buzinadeneblina-audio.ogg" }
/*
     };
(function () {
     'use strict';


     const hornAudioPlayer = document.querySelector("#audio");
     var STORAGE_KEY = 'gla-wiki-theme';
    var DARK_CLASS = 'gla-dark-mode';
    var BUTTON_ID = 'gla-darkmode-toggle';


     $(".horn-audio").on("click", function (e) {
     function getSavedTheme() {
         const id = $(this).attr('id');
         try {
         if (horns[id]) {
            return localStorage.getItem(STORAGE_KEY);
             hornAudioPlayer.src = horns[id].audio;
         } catch (e) {
            hornAudioPlayer.play();
             return null;
         }
         }
     });
     }


     //------- FUNCIONALIDADES BUZINAS ---------
     function saveTheme(theme) {
        try {
            localStorage.setItem(STORAGE_KEY, theme);
        } catch (e) {
            // Ignora caso o navegador bloqueie localStorage
        }
    }


     //------- PERSONAGENS ---------
     function isDarkMode() {
        return document.documentElement.classList.contains(DARK_CLASS);
    }


     const characters = [
     function applyTheme(theme) {
        { name: "Aokiji Dio", types: ["slasher", "especialist", "tank", "marine", "diamond", "break_wall", "bridge"], link: "/Aokiji", img: "/images/6/67/Aokiji_card.png" },
         var dark = theme === 'dark';
        { name: "Bartolomew Kuma", types: ["especialist", "tank", "diamond", "break_wall"], link: "/Kuma", img: "/images/b/b5/Card-kuma.png" },
        { name: "Boa Hancock", types: ["fighter", "dps", "diamond"], link: "/Boa_Hancock", img: "/images/4/47/Card-hancock.png" },
        { name: "Borsalino Kizaru", types: ["especialist", "shooter", "dps", "diamond", "break_wall"], link: "/Kizaru", img: "/images/3/32/Card-kizaru.png" },
        { name: "Brook (TS)", types: ["slasher", "support", "diamond", "bridge"], link: "/Brook_(Timeskip)", img: "/images/1/1d/Card-brookts.png" },
        { name: "Tony Tony Chopper (TS) Gurren", types: ["fighter", "support", "diamond", "break_wall"], link: "/Chopper_(Timeskip)", img: "/images/5/53/Card-chopperts.png" },
         { name: "Doflamingo", types: ["shooter", "especialist", "dps", "diamond", "break_wall", "bridge"], link: "/Doflamingo", img: "/images/8/8d/Card-doflamingo.png" },
        { name: "Dracule Mihawk", types: ["slasher", "dps", "diamond", "break_wall"], link: "/Mihawk", img: "/images/9/91/Card-mihawk.png" },
        { name: "Emporio Ivankov", types: ["fighter", "support", "diamond", "break_wall"], link: "/Ivankov", img: "/images/c/ca/Card-ivankov.png" },
        { name: "Enel", types: ["shooter", "especialist", "diamond", "dps"], link: "/Enel", img: "/images/8/85/Enel_card.png" },
        { name: "Franky (TS) Sanitaria", types: ["shooter", "tank", "diamond", "break_wall"], link: "/Franky_(Timeskip)", img: "/images/d/d0/Card-frankyts.png" },
        { name: "Jinbe", types: ["fighter", "tank", "diamond", "break_wall"], link: "/Jinbe", img: "/images/2/2e/Card-jinbe.png" },
        { name: "Marshall D. Teach Barba Negra", types: ["especialist", "bruiser", "diamond"], link: "/Marshall_D._Teach", img: "/images/f/ff/Card-kurohige.png" },
        { name: "Marco Abacaxi", types: ["especialist", "fighter", "support", "diamond"], link: "/Marco", img: "/images/2/2b/Marco_card.png" },
        { name: "Monkey D. Luffy (TS) Visno", types: ["fighter", "dps", "diamond", "break_wall"], link: "/Luffy_(Timeskip)", img: "/images/e/ed/Card-luffyts.png" },
        { name: "Nami (TS)", types: ["especialist", "dps", "diamond"], link: "/Nami_(Timeskip)", img: "/images/3/35/Card-namits.png" },
        { name: "Portgas D. Ace Duduh", types: ["especialist", "shooter", "dps", "diamond"], link: "/Ace", img: "/images/4/40/Card-ace.png" },
        { name: "Robin (TS)", types: ["especialist", "dps", "diamond", "break_wall", "bridge"], link: "/Robin_(Timeskip)", img: "/images/b/b0/Card-robints.png" },
        { name: "Roronoa zoro (TS)", types: ["slasher", "dps", "diamond", "break_wall"], link: "/Zoro_(Timeskip)", img: "/images/7/74/Card-zorots.png" },
        { name: "Sabo Loge", types: ["fighter", "especialist", "dps", "diamond", "break_wall"], link: "/Sabo", img: "/images/0/04/Card-sabo.png" },
        { name: "Sakazuki Akainu", types: ["especialist", "fighter", "dps", "diamond", "break_wall"], link: "/Akainu", img: "/images/b/b0/Card_akainu.png" },
        { name: "Shanks", types: ["slasher", "bruiser", "diamond", "break_wall"], link: "/Shanks", img: "/images/a/aa/Card-shanks.png" },
        { name: "Usopp (TS)", types: ["shooter", "dps", "diamond", "break_wall"], link: "/Usopp_(Timeskip)", img: "/images/c/cc/Card-usoppts.png" },
        { name: "Uta", types: ["especialist", "dps", "diamond", "break_wall"], link: "/Uta", img: "/images/2/22/Card_uta.png" },
        { name: "Vinsmoke Sanji (TS)", types: ["fighter", "dps", "diamond", "break_wall"], link: "/Sanji_(Timeskip)", img: "/images/7/7a/Card-sanjits.png" },
        { name: "Baby 5", types: ["slasher", "shooter", "gold", "dps"], link: "/Baby_5", img: "/images/5/5e/Baby5_card.png" },
        { name: "Bartolomeo", types: ["especialist", "dps", "gold", "break_wall", "bridge"], link: "/Bartolomeo", img: "/images/a/a9/Card-barto.png" },
        { name: "Basil Hawkins Lost", types: ["especialist", "bruiser", "gold", "bridge"], link: "/Basil_Hawkins", img: "/images/8/89/Card-hawkins.png" },
        { name: "Bastille", types: ["slasher", "tank", "gold", "break_wall"], link: "/Bastille", img: "/images/1/13/Card-bastille.png" },
        { name: "Bellamy", types: ["fighter", "dps", "gold", "break_wall"], link: "/Bellamy", img: "/images/7/7e/Card-bellamy.png" },
        { name: "Bonney Poseidon", types: ["fighter", "support", "gold"], link: "/Bonney", img: "/images/9/91/Card-bonney.png" },
        { name: "Brook", types: ["slasher", "support", "gold"], link: "/brook", img: "/images/7/76/Card-brook.png" },
        { name: "Capone gang bege", types: ["shooter", "dps", "gold", "break_wall"], link: "/Capone_Bege", img: "/images/c/c0/Card-capone.png" },
        { name: "Carrot", types: ["slasher", "especialist", "dps", "gold"], link: "/Carrot", img: "/images/8/8d/Card-carrot.png" },
        { name: "Tony Tony Chopper Gurren", types: ["fighter", "support", "gold", "break_wall"], link: "/Chopper", img: "/images/1/19/Card-chopper.png" },
        { name: "Crocodile", types: ["especialist", "tank", "gold", "break_wall", "bridge"], link: "/Crocodile", img: "/images/5/5d/Card-crocodile.png" },
        { name: "Dalmatian", types: ["slasher", "bruiser", "gold", "break_wall"], link: "/Dalmatian", img: "/images/9/99/Card-dalmatian.png" },
        { name: "Franky Sanitaria", types: ["shooter", "bruiser", "gold", "break_wall"], link: "/Franky", img: "/images/6/61/Card-franky.png" },
        { name: "Gecko Moria Coxinha", types: ["slasher", "support", "gold"], link: "/Gecko_Moria", img: "/images/f/fc/Moria_card.png" },
        { name: "Hina", types: ["fighter", "bruiser", "gold", "break_wall", "bridge"], link: "/Hina", img: "/images/5/57/Card-hina.png" },
        { name: "Jesus Burgess", types: ["fighter", "tank", "gold", "break_wall"], link: "/Jesus_Burgess", img: "/images/2/28/Card-burgess.png" },
        { name: "Eustass Kid Rag", types: ["shooter", "tank", "gold", "break_wall", "bridge"], link: "/Kid", img: "/images/9/9a/Card-kid.png" },
        { name: "Killer", types: ["slasher", "dps", "gold"], link: "/Killer", img: "/images/b/b2/Card-killer.png" },
        { name: "Koala", types: ["fighter", "dps", "gold"], link: "/Koala", img: "/images/f/f3/Card-koala.png" },
        { name: "Leo & Mansherry", types: ["especialist", "support", "gold", "bridge"], link: "/Leo", img: "/images/d/d9/Card-leo.png" },
        { name: "Monkey D. Luffy Visno", types: ["fighter", "bruiser", "gold", "break_wall"], link: "/Luffy", img: "/images/a/af/Card-luffy.png" },
        { name: "Nami", types: ["especialist", "dps", "gold", "break_wall"], link: "/nami", img: "/images/0/08/Card-nami.png" },
        { name: "Perona", types: ["especialist", "support", "gold", "break_wall"], link: "/Perona", img: "/images/6/6d/Card-perona.png" },
        { name: "Rebecca", types: ["slasher", "tank", "gold"], link: "/Rebecca", img: "/images/9/91/Card-rebecca.png" },
        { name: "Nico Robin", types: ["especialist", "dps", "gold", "break_wall", "bridge"], link: "/Robin", img: "/images/3/3f/Card-robin.png" },
        { name: "Roronoa zoro", types: ["slasher", "bruiser", "gold", "break_wall"], link: "/Zoro", img: "/images/6/6f/Card-zoro.png" },
        { name: "Ryuma", types: ["slasher", "dps", "gold"], link: "/Ryuma", img: "/images/a/ac/Card-ryuma.png" },
        { name: "Scratchmen Apoo", types: ["shooter", "support", "gold"], link: "/Apoo", img: "/images/9/90/Card-apoo.png" },
        { name: "Smoker Piseiro", types: ["fighter", "tank", "gold"], link: "/Smoker", img: "/images/f/fb/Card-smoker.png" },
        { name: "Trafalgar Law Zhao Feng", types: ["slasher", "especialist", "dps", "gold", "break_wall"], link: "/Law", img: "/images/b/b9/Card-law.png" },
        { name: "Urouge", types: ["fighter", "tank", "gold", "break_wall"], link: "/Urouge", img: "/images/9/98/Card-urouge.png" },
        { name: "Usopp", types: ["shooter", "dps", "gold", "break_wall"], link: "/Usopp", img: "/images/a/ac/Card-usopp.png" },
        { name: "Van Augur", types: ["shooter", "dps", "gold", "break_wall"], link: "/Van Augur", img: "/images/c/c7/Card-vanaugur.png" },
        { name: "Vinsmoke Ichiji", types: ["fighter", "bruiser", "gold", "break_wall"], link: "/Ichiji", img: "/images/8/8c/Card-ichiji.png" },
        { name: "Vinsmoke Niji", types: ["shooter", "dps", "gold"], link: "/Niji", img: "/images/6/66/Card-niji.png" },
        { name: "Vinsmoke Reiju Athena", types: ["especialist", "support", "gold"], link: "/Reiju", img: "/images/2/23/Card-reiju.png" },
        { name: "Vinsmoke Sanji", types: ["fighter", "dps", "gold", "break_wall"], link: "/Sanji", img: "/images/0/04/Card-sanji.png" },
        { name: "Vinsmoke Yonji", types: ["fighter", "tank", "gold", "break_wall"], link: "/Yonji", img: "/images/7/73/Card-yonji.png" },
        { name: "X-drake", types: ["fighter", "bruiser", "gold", "break_wall"], link: "/X_Drake", img: "/images/6/69/Card-drake.png" },
        { name: "Satori", types: ["support", "shooter", "especialist", "silver"], link: "/Satori", img: "/images/f/f3/Satori_card.png" },
        { name: "Gedatsu", types: ["fighter", "dps", "silver"], link: "/Gedatsu", img: "/images/f/f6/Gedatsu_card.png" },
        { name: "Ohm", types: ["tank", "slasher", "silver"], link: "/Ohm", img: "/images/1/1e/Ohm_card.png" },
        { name: "Shura", types: ["slasher", "dps", "silver"], link: "/Shura", img: "/images/2/2e/Shura_card.png" },
        { name: "Arlong", types: ["fighter", "bruiser", "silver", "break_wall"], link: "/Arlong", img: "/images/1/1e/Card-arlong.png" },
        { name: "Bepo", types: ["fighter", "dps", "silver"], link: "/Bepo", img: "/images/1/1d/Card-bepo.png" },
        { name: "Mr.2", types: ["fighter", "dps", "silver"], link: "/mr.2", img: "/images/2/27/Card-bonchan.png" },
        { name: "Buggy", types: ["shooter", "dps", "silver", "break_wall"], link: "/buggy", img: "/images/c/ca/Card-buggy.png" },
        { name: "Daddy Masterson", types: ["shooter", "dps", "silver"], link: "/Daddy_Masterson", img: "/images/2/20/Card-daddy.png" },
        { name: "mr.1 Daz Bonez Kolivier", types: ["slasher", "tank", "silver"], link: "/mr.1", img: "/images/6/61/Card-dazbonez.png" },
        { name: "Miss Doublefinger Zala", types: ["slasher", "bruiser", "silver"], link: "/Miss_Doublefinger", img: "/images/5/5f/Card-doublefinger.png" },
        { name: "Don Krieg", types: ["shooter", "dps", "silver"], link: "/don_Krieg", img: "/images/8/8f/Card-krieg.png" },
        { name: "Kuro", types: ["slasher", "dps", "silver"], link: "/kuro", img: "/images/3/3d/Card-kuro.png" },
        { name: "mr.3 Galdino", types: ["especialist", "support", "silver", "bridge"], link: "/mr.3", img: "/images/7/75/Card-mr3.png" },
        { name: "Tashigi", types: ["slasher", "dps", "silver"], link: "/tashigi", img: "/images/b/b8/Card-tashigi.png" },
        { name: "Nefertari Vivi", types: ["slasher", "support", "silver"], link: "/Vivi", img: "/images/9/9c/Card-vivi.png" },
        { name: "Wapol", types: ["shooter", "tank", "silver", "break_wall"], link: "/wapol", img: "/images/b/ba/Card-wapol.png" },
        { name: "Alvida", types: ["fighter", "support", "bronze"], link: "/Alvida", img: "/images/8/83/Card-alvida.png" },
        { name: "Buchi & Sham", types: ["slasher", "bruiser", "bronze"], link: "/Buchi", img: "/images/0/0b/Card-buchi.png" },
        { name: "Cabaji", types: ["slasher", "dps", "bronze"], link: "/Cabaji", img: "/images/9/9d/Card-cabaji.png" },
        { name: "Chew", types: ["shooter", "dps", "bronze", "break_wall"], link: "/Chew", img: "/images/0/0f/Card-chew.png" },
        { name: "Eric", types: ["shooter", "slasher", "dps", "bronze"], link: "/Eric", img: "/images/3/31/Card-eric.png" },
        { name: "Gin", types: ["fighter", "shooter", "dps", "bronze"], link: "/Gin", img: "/images/1/18/Card-gin.png" },
        { name: "Miss Goldenweek", types: ["support", "especialist", "bronze"], link: "/Goldenweek", img: "/images/0/0e/Card-goldenweek.png" },
        { name: "Hatchan", types: ["slasher", "support", "bronze"], link: "/Hatchan", img: "/images/3/31/Card-hatchan.png" },
        { name: "Jango", types: ["shooter", "support", "bronze"], link: "/Jango", img: "/images/4/48/Card-jango.png" },
        { name: "Kuroobi", types: ["fighter", "tank", "bronze", "break_wall"], link: "/Kuroobi", img: "/images/6/6a/Card-kuroobi.png" },
        { name: "Mohji", types: ["especialist", "bruiser", "bronze"], link: "/Mohji", img: "/images/5/58/Card-mohji.png" },
        { name: "Morgan", types: ["slasher", "bruiser", "bronze"], link: "/Morgan", img: "/images/4/43/Card-morgan.png" },
        { name: "Mr.4", types: ["shooter", "bruiser", "bronze"], link: "/Mr.4", img: "/images/9/90/Card-mr4.png" },
        { name: "Mr.5", types: ["shooter", "dps", "bronze"], link: "/Mr.5", img: "/images/4/49/Card-mr5.png" },
        { name: "Pearl", types: ["fighter", "especialist", "tank", "bronze"], link: "/Pearl", img: "/images/d/de/Card-pearl.png" },
    ];


    $(".filter--icon").on("click", function () {
        document.documentElement.classList.toggle(DARK_CLASS, dark);
        const id = $(this).attr("id");


         if ($(this).hasClass("all")) {
         if (document.body) {
            $('.filter--icon.active').removeClass('active');
             document.body.classList.toggle(DARK_CLASS, dark);
            $(".characters").addClass('show');
            $(".filter--icon.all").addClass('active');
            return false;
        } else {
             $(".filter--icon.all").removeClass('active');
         }
         }


         if ($(this).hasClass("active")) {
         updateButton();
            $(this).removeClass('active');
    }
            actives = $('.filter--icon.active');
            query = "";


            $.each(actives, function (key, item) {
    function updateButton() {
                query += "[data-type-" + item.id + "]";
        var button = document.getElementById(BUTTON_ID);
            });


            $(".characters" + query).addClass('show');
        if (!button) {
         } else {
            return;
            if ($(this).hasClass("tier")) {
         }
                $('.filter--icon.tier.active').removeClass('active');
 
            }
        var dark = isDarkMode();


            $(this).addClass('active');
        button.setAttribute('aria-pressed', dark ? 'true' : 'false');
            $(".characters").removeClass('show');
        button.setAttribute('title', dark ? 'Alternar para modo claro' : 'Alternar para modo escuro');
            query = "";
            actives = $('.filter--icon.active');


             $.each(actives, function (key, item) {
        button.innerHTML = dark
                query += "[data-type-" + item.id + "]";
             ? '<span class="gla-darkmode-icon">☀</span><span class="gla-darkmode-text">Modo claro</span>'
            });
            : '<span class="gla-darkmode-icon">☾</span><span class="gla-darkmode-text">Modo escuro</span>';
    }


            $(".characters" + query).addClass('show');
    function createButton() {
        if (document.getElementById(BUTTON_ID)) {
            return;
         }
         }
    });


    $.each(characters, function (key, item) {
        var button = document.createElement('button');
         data = '';
 
         id = item.name.replace(/\s/g, '_').toLowerCase();
        button.id = BUTTON_ID;
         button.type = 'button';
         button.className = 'gla-darkmode-button';
        button.setAttribute('aria-label', 'Alternar modo escuro');
        button.setAttribute('aria-pressed', isDarkMode() ? 'true' : 'false');
 
        button.addEventListener('click', function () {
            var nextTheme = isDarkMode() ? 'light' : 'dark';


        $.each(item.types, function (key, value) {
            saveTheme(nextTheme);
             data += "data-type-" + value + " ";
             applyTheme(nextTheme);
         });
         });


         $("#characters-container").append(
         document.body.appendChild(button);
            "<div id=" + id + " class='characters show' " + data + " >" +
         updateButton();
            "<a href='https://wiki.gla.com.br/index.php" + item.link + "'>" +
     }
            "<img src='" + item.img + "' alt='imagem de " + item.name + "' />" +
            "</a>" +
            "</div>"
         );
     });


     $(".filter--searchButton").on("click", function () {
     function ready(fn) {
        $(".filter--icon.active").removeClass('active');
         if (document.readyState === 'loading') {
        $(".characters.show").removeClass('show');
             document.addEventListener('DOMContentLoaded', fn);
         if ($("#f-input").val().toLowerCase() != '') {
             $(".characters[id*=" + $("#f-input").val().toLowerCase() + "]").addClass('show');
         } else {
         } else {
             $(".characters").addClass('show');
             fn();
         }
         }
     });
     }
 
    var savedTheme = getSavedTheme();
 
    if (savedTheme === 'dark') {
        document.documentElement.classList.add(DARK_CLASS);
    }


     $('#f-input').keypress(function (e) {
     ready(function () {
        const key = e.which;
         if (savedTheme === 'dark') {
         if (key == 13) // the enter key code
             document.body.classList.add(DARK_CLASS);
        {
             $('.filter--searchButton').click();
            return false;
         }
         }
        createButton();
        updateButton();
     });
     });
})();
*/
/**
* Script JavaScript para o componente de abas MediaWiki
* Adicione este script na sua MediaWiki (Common.js ou página de scripts)
*/


    //------- PERSONAGENS ---------
(function () {
  'use strict';


    //------- WANTED ---------
  // Inicializa todos os componentes de abas na página
     const wanted_slashers = [
  function initTabbers() {
        { name: "Baby 5", wanteds: ["nami", "usopp", "mr. 3", "jango"], img: "/images/5/5e/Baby5_card.png" },
     const tabbers = document.querySelectorAll('[data-tabber]');
        { name: "Ohm", wanteds: ["robin", "nami", "brook", "zoro", "luffy", "sanji", "urouge", "ryuma", "van augur", "law", "niji", "crocodile", "cabaji"], img: "/images/1/1e/Ohm_card.png" },
        { name: "Roronoa Zoro", wanteds: ["robin", "nami", "brook", "chopper", "franky", "luffy", "sanji", "perona", "usopp", "capone", "kid", "van augur", "law", "yonji", "ichiji", "mr. 1", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "koala", "buggy", "gin", "mohji", "drake", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/6/6f/Card-zoro.png" },
        { name: "Shanks", wanteds: ["robin", "nami", "brook", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "bellamy"], img: "/images/a/aa/Card-shanks.png" },
        { name: "Dracule Mihawk", wanteds: ["robin", "nami", "chopper", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "perona", "usopp", "ryuma", "capone", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "pearl", "arlong", "hatchan", "chew", "jango", "kuroobi", "buggy", "kuro", "krieg", "mohji", "morgan", "hawkins", "alvida", "crocodile"], img: "/images/9/91/Card-mihawk.png" },
        { name: "Killer", wanteds: ["rebecca", "van augur", "pearl", "jango", "buggy", "alvida"], img: "/images/b/b2/Card-killer.png" },
        { name: "Tashigi", wanteds: ["chopper", "zoro", "luffy", "sanji", "bonney", "urouge", "perona", "ryuma", "killer", "burgess", "kid", "reiju", "yonji", "baby 5", "mr. 1", "mr. 2", "mr. 4", "pearl", "arlong", "hatchan", "buchi", "jango", "kuroobi", "koala", "kuro", "gin", "mohji", "morgan", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/b/b8/Card-tashigi.png" },
        { name: "Roronoa Zoro (TS)", wanteds: ["chopper", "leo", "perona", "usopp", "capone", "mr. 3", "goldenweek", "pearl", "hatchan", "buchi", "jango", "buggy", "alvida"], img: "/images/7/74/Card-zorots.png" },
        { name: "Rebbeca", wanteds: ["franky", "luffy", "sanji", "urouge", "usopp", "ryuma", "killer", "capone", "van augur", "law", "yonji", "niji", "mr. 2", "doublefinger", "mr. 4", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "buggy", "kuro", "gin", "krieg", "morgan", "drake", "alvida"], img: "/images/9/91/Card-rebecca.png" },
        { name: "Carrot", wanteds: ["nami", "chopper", "luffy", "sanji", "leo", "leo", "usopp", "capone", "kid", "van augur", "law", "niji", "ichiji", "mr. 3", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "krieg", "mohji", "drake", "alvida"], img: "/images/8/8d/Card-carrot.png" },
        { name: "Shimotsuki Ryuma", wanteds: ["nami", "brook", "chopper", "franky", "sanji", "leo", "urouge", "perona", "capone", "law", "reiju", "yonji", "niji", "baby 5", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "gin", "mohji", "morgan", "drake", "alvida", "crocodile"], img: "/images/a/ac/Card-ryuma.png" },
        { name: "Trafalgar Law", wanteds: ["luffy", "sanji", "leo", "apoo", "usopp", "kid", "reiju", "yonji", "niji", "ichiji", "baby 5", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "drake", "alvida"], img: "/images/b/b9/Card-law.png" },
        { name: "Mr. 1", wanteds: ["chopper", "perona", "killer", "capone", "law", "niji", "baby 5", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "kuro", "krieg", "mohji", "morgan", "alvida", "wapol", "crocodile"], img: "/images/6/61/Card-dazbonez.png" },
        { name: "Bastille", wanteds: ["chopper", "zoro", "law", "doublefinger", "mr. 4", "arlong", "buchi", "kuro", "gin", "alvida", "bellamy"], img: "/images/1/13/Card-bastille.png" },
        { name: "Dalmatian", wanteds: ["capone", "mr. 2", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "mohji", "morgan", "alvida", "crocodile"], img: "/images/9/99/Card-dalmatian.png" },
        { name: "Morgan", wanteds: ["robin", "nami", "leo", "van augur", "baby 5", "goldenweek", "buchi", "chew", "jango", "alvida"], img: "/images/4/43/Card-morgan.png" },
        { name: "Cabaji", wanteds: ["nami", "chopper", "chew", "jango", "alvida"], img: "/images/9/9d/Card-cabaji.png" },
        { name: "Kuro", wanteds: ["nami", "pearl", "hatchan", "buchi", "jango", "koala", "krieg", "mohji", "alvida", "bellamy"], img: "/images/3/3d/Card-kuro.png" },
        { name: "Eric", wanteds: ["nami", "brook", "apoo", "usopp", "reiju", "mr. 3", "goldenweek", "mr. 5", "jango", "buggy", "alvida"], img: "/images/3/31/Card-eric.png" },
        { name: "Miss Doublefinger", wanteds: ["chopper", "luffy", "sanji", "urouge", "rebecca", "perona", "usopp", "burgess", "capone", "kid", "reiju", "yonji", "pearl", "hatchan", "buchi", "jango", "kuroobi", "mohji", "alvida", "wapol"], img: "/images/5/5f/Card-doublefinger.png" },
    ];


     const wanted_shooters = [
     tabbers.forEach(function (tabber) {
        { name: "Baby 5", wanteds: ["nami", "usopp", "mr. 3", "jango"], img: "/images/5/5e/Baby5_card.png" },
      const tabs = tabber.querySelectorAll('.mw-tabber-tab');
        { name: "Daddy Masterson", wanteds: ["robin", "nami", "apoo", "apoo", "usopp", "niji", "mr. 3", "goldenweek", "mr. 5", "chew", "jango", "buggy", "krieg"], img: "/images/2/20/Card-daddy.png" },
      const panels = tabber.querySelectorAll('.mw-tabber-panel');
        { name: "Enel", wanteds: ["robin", "usopp", "jango", "cabaji"], img: "/images/8/85/Enel_card.png" },
        { name: "Capone Gang Bege", wanteds: ["robin", "nami", "brook", "chopper", "franky", "luffy", "sanji", "leo", "apoo", "rebecca", "usopp", "killer", "burgess", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 2", "mr. 3", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "krieg", "mohji", "morgan", "alvida", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/c/c0/Card-capone.png" },
        { name: "Franky", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "urouge", "usopp", "ryuma", "burgess", "capone", "kid", "van augur", "law", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "mohji", "morgan", "hawkins", "alvida", "crocodile", "cabaji"], img: "/images/6/61/Card-franky.png" },
        { name: "Eustass kid", wanteds: ["chopper", "luffy", "usopp", "kid", "baby 5", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "pearl", "buchi", "gin", "hawkins", "alvida", "crocodile"], img: "/images/9/9a/Card-kid.png" },
        { name: "Van Augur", wanteds: ["robin", "nami", "brook", "chopper", "franky", "luffy", "bonney", "leo", "apoo", "urouge", "usopp", "killer", "capone", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 2", "mr. 3", "goldenweek", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "krieg", "mohji", "morgan", "drake", "alvida", "wapol", "cabaji"], img: "/images/c/c7/Card-vanaugur.png" },
        { name: "Portgas D. Ace", wanteds: ["nami", "brook", "chopper", "bonney", "leo", "apoo", "perona", "usopp", "kid", "van augur", "niji", "mr. 3", "mr. 5", "bepo", "arlong", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "mohji"], img: "/images/4/40/Card-ace.png" },
        { name: "Usopp (TS)", wanteds: ["brook", "chopper", "leo", "apoo", "perona", "usopp", "van augur", "niji", "mr. 3", "goldenweek", "mr. 5", "hatchan", "chew", "jango", "buggy", "krieg", "alvida"], img: "/images/c/cc/Card-usoppts.png" },
        { name: "Donquixote Doflamingo", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "perona", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "jango", "kuroobi", "koala", "buggy", "gin", "krieg", "mohji", "morgan", "drake", "alvida"], img: "/images/8/8d/Card-doflamingo.png" },
        { name: "Buggy", wanteds: ["nami", "chopper", "bonney", "apoo", "perona", "usopp", "van augur", "baby 5", "mr. 4", "mr. 5", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "krieg", "mohji", "alvida", "cabaji"], img: "/images/c/ca/Card-buggy.png" },
        { name: "Vinsmoke Niji", wanteds: ["nami", "apoo", "van augur", "reiju", "mr. 3", "mr. 5", "buchi", "jango", "buggy", "krieg", "alvida"], img: "/images/6/66/Card-niji.png" },
        { name: "Wapol", wanteds: ["robin", "nami", "brook", "chopper", "zoro", "luffy", "sanji", "urouge", "rebecca", "perona", "ryuma", "killer", "burgess", "kid", "law", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "doublefinger", "mr. 4", "pearl", "arlong", "buchi", "jango", "kuroobi", "kuro", "mohji", "morgan", "hawkins", "wapol", "crocodile"], img: "/images/b/ba/Card-wapol.png" },
        { name: "Franky (TS)", wanteds: ["chopper", "zoro", "usopp", "capone", "kid", "yonji", "mr. 1", "doublefinger", "mr. 4", "pearl", "arlong", "buchi", "kuro", "alvida"], img: "/images/d/d0/Card-frankyts.png" },
        { name: "Borsalino Kizaru", wanteds: ["capone", "jango", "drake", "alvida"], img: "/images/3/32/Card-kizaru.png" },
        { name: "Don Krieg", wanteds: ["brook", "chopper", "apoo", "capone", "reiju", "goldenweek", "mr. 5", "hatchan", "buchi", "chew", "jango", "buggy", "drake", "alvida"], img: "/images/8/8f/Card-krieg.png" },
        { name: "Eric", wanteds: ["nami", "brook", "apoo", "usopp", "reiju", "mr. 3", "goldenweek", "mr. 5", "jango", "buggy", "alvida"], img: "/images/3/31/Card-eric.png" },
        { name: "Mr. 4", wanteds: ["chopper", "zoro", "bonney", "goldenweek", "buchi", "jango", "morgan"], img: "/images/9/90/Card-mr4.png" },
        { name: "Mr. 5", wanteds: ["brook", "sanji", "bonney", "goldenweek", "jango", "kuroobi"], img: "/images/4/49/Card-mr5.png" },
        { name: "Gin", wanteds: ["chopper", "capone", "van augur", "baby 5", "mr. 3", "goldenweek", "bepo", "buchi", "gin", "krieg", "mohji", "drake", "alvida", "cabaji"], img: "/images/1/18/Card-gin.png" },
        { name: "Chew", wanteds: ["mr. 5"], img: "/images/0/0f/Card-chew.png" },
        { name: "Usopp", wanteds: ["nami", "brook", "chopper", "leo", "apoo", "reiju", "niji", "mr. 3", "mr. 5", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "alvida", "wapol"], img: "/images/a/ac/Card-usopp.png" },
    ];


    const wanted_fighters = [
      tabs.forEach(function (tab) {
        { name: "Sabo", wanteds: ["nami", "niji", "mr. 2", "mr. 3", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "cabaji"], img: "/images/0/04/Card-sabo.png" },
         tab.addEventListener('click', function () {
        { name: "X-Drake", wanteds: ["robin", "brook", "chopper", "franky", "zoro", "sanji", "bonney", "leo", "apoo", "urouge", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 3", "doublefinger", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji", "bellamy"], img: "/images/6/69/Card-drake.png" },
          const targetTab = this.getAttribute('data-tab');
        { name: "Hina", wanteds: ["robin", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "urouge", "rebecca", "perona", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 3", "doublefinger", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/5/57/Card-hina.png" },
         { name: "Smoker", wanteds: ["robin", "nami", "zoro", "luffy", "urouge", "capone", "van augur", "law", "baby 5", "mr. 1", "mr. 2", "mr. 3", "mr. 5", "krieg", "alvida"], img: "/images/f/fb/Card-smoker.png" },
        { name: "Bellamy", wanteds: ["nami", "brook", "chopper", "zoro", "luffy", "sanji", "apoo", "urouge", "rebecca", "ryuma", "burgess", "van augur", "law", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 2", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "buchi", "jango", "kuroobi", "koala", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/7/7e/Card-bellamy.png" },
        { name: "Urouge", wanteds: ["nami", "sanji", "apoo", "usopp", "capone", "chew"], img: "/images/9/98/Card-urouge.png" },
        { name: "Boa Hancock", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "urouge", "perona", "usopp", "ryuma", "burgess", "capone", "van augur", "law", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 3", "mr. 5", "bepo", "arlong", "hatchan", "chew", "jango", "kuroobi", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji", "bellamy"], img: "/images/4/47/Card-hancock.png" },
        { name: "VinsmokeYonji", wanteds: ["mr. 4", "kuro"], img: "/images/7/73/Card-yonji.png" },
        { name: "Vinsmoke Ichiji", wanteds: ["robin", "nami", "brook", "sanji", "apoo", "urouge", "rebecca", "usopp", "capone", "ichiji", "baby 5", "mr. 3", "mr. 5", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/8/8c/Card-ichiji.png" },
        { name: "Mr. 2", wanteds: ["bonney", "usopp", "hatchan", "krieg", "alvida"], img: "/images/2/27/Card-bonchan.png" },
        { name: "Vinsmoke Sanji (TS)", wanteds: ["nami", "chopper", "usopp", "law", "mr. 2", "doublefinger", "mr. 4", "mr. 5", "bepo", "pearl", "buchi", "chew", "jango", "koala", "buggy", "krieg", "mohji", "morgan", "alvida", "wapol", "cabaji"], img: "/images/7/7a/Card-sanjits.png" },
        { name: "Monkey D. Luffy (TS)", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "apoo", "urouge", "rebecca", "perona", "usopp", "ryuma", "killer", "burgess", "kid", "law", "yonji", "niji", "ichiji", "mr. 1", "mr. 2", "doublefinger", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "kuro", "gin", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/e/ed/Card-luffyts.png" },
        { name: "Koala", wanteds: ["robin", "nami", "brook", "franky", "zoro", "luffy", "sanji", "leo", "apoo", "urouge", "usopp", "killer", "burgess", "capone", "van augur", "law", "reiju", "yonji", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "crocodile", "cabaji", "bellamy"], img: "/images/f/f3/Card-koala.png" },
        { name: "Burgess", wanteds: ["robin", "nami", "brook", "franky", "zoro", "luffy", "sanji", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "yonji", "niji", "ichiji", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "kuroobi", "koala", "buggy", "kuro", "gin", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/2/28/Card-burgess.png" },
        { name: "Monkey D. Luffy", wanteds: ["brook", "chopper", "franky", "sanji", "leo", "usopp", "burgess", "kid", "law", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "pearl", "arlong", "hatchan", "chew", "jango", "kuroobi", "koala", "buggy", "morgan", "alvida", "wapol", "cabaji"], img: "/images/a/af/Card-luffy.png" },
        { name: "Bepo", wanteds: ["zoro", "luffy", "sanji", "pearl", "arlong", "buchi", "kuro", "mohji", "morgan", "drake", "alvida"], img: "/images/1/1d/Card-bepo.png" },
        { name: "Vinsmoke Sanji", wanteds: ["brook", "chopper", "usopp", "kid", "mr. 4", "mr. 5", "pearl", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "gin", "morgan", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/0/04/Card-sanji.png" },
        { name: "Arlong", wanteds: ["mr. 2", "chew", "alvida"], img: "/images/1/1e/Card-arlong.png" },
        { name: "Gin", wanteds: ["chopper", "capone", "van augur", "baby 5", "mr. 3", "goldenweek", "bepo", "buchi", "gin", "krieg", "mohji", "drake", "alvida", "cabaji"], img: "/images/1/18/Card-gin.png" },
    ];


    const wanted_especialists = [
          // Remove classe active de todas as abas
        { name: "Sakazuki Akainu", wanteds: ["capone", "bellamy"], img: "/images/b/b0/Card_akainu.png" },
          tabs.forEach(function (t) {
        { name: "Uta", wanteds: ["nami", "usopp", "jango", "buggy"], img: "/images/2/22/Card_uta.png" },
            t.classList.remove('active');
        { name: "Sabo", wanteds: ["nami", "niji", "mr. 2", "mr. 3", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "cabaji"], img: "/images/0/04/Card-sabo.png" },
          });
        { name: "Enel", wanteds: ["robin", "usopp", "jango", "cabaji"], img: "/images/8/85/Enel_card.png" },
        { name: "Vinsmoke Reiju", wanteds: ["brook", "bonney", "urouge", "rebecca", "killer", "burgess", "kid", "reiju", "yonji", "baby 5", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "koala", "kuro", "gin", "mohji", "morgan", "hawkins", "alvida", "crocodile", "cabaji"], img: "/images/2/23/Card-reiju.png" },
        { name: "Portgas D. Ace", wanteds: ["nami", "brook", "chopper", "bonney", "leo", "apoo", "perona", "usopp", "kid", "van augur", "niji", "mr. 3", "mr. 5", "bepo", "arlong", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "mohji"], img: "/images/4/40/Card-ace.png" },
        { name: "Donquixte Doflamingo", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "perona", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "jango", "kuroobi", "koala", "buggy", "gin", "krieg", "mohji", "morgan", "drake", "alvida"], img: "/images/8/8d/Card-doflamingo.png" },
        { name: "Borsalino Kizaru", wanteds: ["capone", "jango", "drake", "alvida"], img: "/images/3/32/Card-kizaru.png" },
        { name: "Trafalgar Law", wanteds: ["luffy", "sanji", "leo", "apoo", "usopp", "kid", "reiju", "yonji", "niji", "ichiji", "baby 5", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "drake", "alvida"], img: "/images/b/b9/Card-law.png" },
        { name: "Carrot", wanteds: ["nami", "chopper", "luffy", "sanji", "leo", "leo", "usopp", "capone", "kid", "van augur", "law", "niji", "ichiji", "mr. 3", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "krieg", "mohji", "drake", "alvida"], img: "/images/8/8d/Card-carrot.png" },
        { name: "Nami (TS)", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "rebecca", "usopp", "ryuma", "killer", "kid", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "mr. 5", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/3/35/Card-namits.png" },
        { name: "Nami", wanteds: ["chopper", "bonney", "leo", "apoo", "burgess", "law", "niji", "mr. 3", "doublefinger", "goldenweek", "mr. 5", "pearl", "hatchan", "buchi", "chew", "jango", "buggy", "krieg", "mohji", "alvida"], img: "/images/0/08/Card-nami.png" },
        { name: "Nico Robin", wanteds: ["nami", "chopper", "leo", "apoo", "usopp", "mr. 3", "arlong", "buchi", "chew", "jango", "buggy", "mohji", "alvida"], img: "/images/3/3f/Card-robin.png" },
        { name: "Nico Robin (TS)", wanteds: ["bonney", "leo", "apoo", "perona", "mr. 3", "buchi", "chew", "jango", "alvida"], img: "/images/b/b0/Card-robints.png" },
        { name: "Bartolomeo", wanteds: ["urouge", "reiju", "pearl", "arlong", "jango", "kuroobi", "koala", "morgan", "drake", "alvida"], img: "/images/a/a9/Card-barto.png" },
        { name: "Marshall D. Teach", wanteds: ["bonney", "perona", "killer", "capone", "mr. 2", "goldenweek", "mr. 5", "pearl", "buchi", "chew", "jango", "buggy", "alvida"], img: "/images/f/ff/Card-kurohige.png" },
        { name: "Crocodile", wanteds: ["nami", "yonji", "mr. 1", "alvida"], img: "/images/5/5d/Card-crocodile.png" },
        { name: "Bartolomew Kuma", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "urouge", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "mr. 3", "doublefinger", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji", "bellamy"], img: "/images/b/b5/Card-kuma.png" },
        { name: "Basil Hawkins", wanteds: ["luffy", "urouge", "yonji", "pearl", "kuroobi", "alvida"], img: "/images/8/89/Card-hawkins.png" },
        { name: "Mohji", wanteds: ["alvida", "bonney", "buggy", "pearl", "van augur"], img: "/images/5/58/Card-mohji.png" },
        { name: "Leo & Mansherry", wanteds: ["alvida", "bonney", "mohji"], img: "/images/d/d9/Card-leo.png" },
    ];


    function filterAndAppend(array, value, id) {
          // Remove classe active de todos os painéis
        whoDo = array.filter(
          panels.forEach(function (p) {
            function (v) {
            p.classList.remove('active');
                return v.wanteds.includes(value);
          });
            }
        );


        $.each(whoDo, function (key, item) {
          // Adiciona classe active na aba clicada
             $(".wantedPortraits#" + id).append(
          this.classList.add('active');
                "<div class='wantedPortrait' >" +
 
                "<img src='" + item.img + "' alt='imagem de " + item.name + "' />" +
          // Adiciona classe active no painel correspondente
                "</div>"
          const targetPanel = tabber.querySelector('[data-panel="' + targetTab + '"]');
            );
          if (targetPanel) {
        })
             targetPanel.classList.add('active');
    }
          }
        });
      });
    });
  }
 
  // Inicializa quando o DOM estiver pronto
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initTabbers);
  } else {
    initTabbers();
  }
 
});
 
/* =============================================================================
  GLA language switch (glaLang) - global toggle + page panes + gla:langChanged
  Contrato: localStorage "glaLang" (pt-br | en), evento window "gla:langChanged"
  ============================================================================= */
(function () {
  'use strict';


     $("#selectbox-wanted").on("input", function () {
  var STORAGE_KEY = 'glaLang';
        const value = $(this).val();
  var UI_LANGS = ['pt-br', 'en'];
  var FLAG_IMG = {
     'pt-br': 'https://wiki.gla.com.br/images/8/8c/Brazil.png',
    'en': 'https://wiki.gla.com.br/images/0/0a/Usa.png'
  };


        if ($(".wantedPortrait"))
  function normalizeLang(s) {
            $(".wantedPortrait").remove();
    s = (s || '').toLowerCase();
    if (s === 'pt-br' || s === 'pt_br' || s === 'ptbr' || s === 'pt') return 'pt';
    return (s.split('-')[0] || 'pt');
  }


        filterAndAppend(wanted_shooters, value, "wanted-shooter");
  function toLangTag(langFull) {
        filterAndAppend(wanted_slashers, value, "wanted-slasher");
    var tag = (langFull || 'pt-br').toLowerCase();
        filterAndAppend(wanted_fighters, value, "wanted-fighter");
    if (tag === 'pt') return 'pt-br';
        filterAndAppend(wanted_especialists, value, "wanted-especialist");
     return UI_LANGS.indexOf(tag) >= 0 ? tag : 'pt-br';
     });
  }
    //------- WANTED ---------


    //------- SKILL TAB ---------
  function paneMatches(paneLang, langTag) {
     $('.tab-skill').on('click', function () {
     var pane = (paneLang || '').toLowerCase();
        $('.tab-skill.active').removeClass('active');
    var tag = (langTag || 'pt-br').toLowerCase();
        $(this).addClass('active');
    if (pane === tag) return true;
        const skillId = $(this).data('skill-id');
    if ((pane === 'pt' || pane === 'pt-br') && (tag === 'pt' || tag === 'pt-br')) return true;
        if ($(".skillInfo[data-skill-id=" + skillId + "]")) {
    return pane.split('-')[0] === tag.split('-')[0];
            $(".skillInfo.active").removeClass('active');
  }
            $(".skillInfo[data-skill-id=" + skillId + "]").addClass('active');
        }
    });
    //------- SKILL TAB ---------


     //------- CALCULATOR XP ---------
  function getStored() {
    const maximum_level = 110;
     try {
    const tier_values = {
      var saved = (localStorage.getItem(STORAGE_KEY) || '').toLowerCase();
        "diamond": 0.5,
      if (saved && UI_LANGS.indexOf(saved) >= 0) return saved;
        "gold": 1,
    } catch (e) { }
        "silver": 2,
    return 'pt-br';
        "bronze": 3
  }
    };


     $(".calcXp--tierIcon").on("click", function () {
  function markFlags(langTag) {
        $(".calcXp--tierIcon.active").removeClass('active');
     document.querySelectorAll('.gla-lang-flag[data-lang]').forEach(function (btn) {
        $(this).addClass('active');
      btn.classList.toggle('active', paneMatches(btn.getAttribute('data-lang'), langTag));
     });
     });
  }


     $("#calculate-btn").on('click', function () {
  function updatePanes(langTag) {
         getNeededPotions();
     document.querySelectorAll('.gla-i18n').forEach(function (wrap) {
      var mode = (wrap.getAttribute('data-gla-i18n-mode') || 'panes').toLowerCase();
      if (mode === 'client') return;
      var panes = wrap.querySelectorAll(':scope > .gla-i18n-pane');
      if (!panes.length) return;
      panes.forEach(function (pane) {
         var show = paneMatches(pane.getAttribute('data-lang'), langTag);
        pane.hidden = !show;
        pane.style.display = show ? '' : 'none';
      });
     });
     });
  }


    function calcMissingXpInPotions() {
  function applyLang(langFull, opts) {
        const currentPercentOfXp = $("#char-currentPercentOfXp").val() != "" ? $("#char-currentPercentOfXp").val() : 100;
    opts = opts || {};
        const currentLevel = $("#char-level").val() != "" ? $("#char-level").val() : 1;
    var langTag = toLangTag(langFull);
        const levelToUp = $("#char-levelToUp").val() != "" ? $("#char-levelToUp").val() : 110;
    var norm = normalizeLang(langTag);
        const charTier = $(".calcXp--tierIcon.active").length != 0 ? tier_values[$(".calcXp--tierIcon.active").attr('id')] : tier_values["gold"];


        const percentToUp = 100 - currentPercentOfXp;
    document.documentElement.lang = langTag;
        const currentXp = ((50 * (Math.pow((currentLevel - 1), 3)) - 150 * (Math.pow((currentLevel - 1), 2)) + 400 * (currentLevel - 1)) / 3) + ((50 * Math.pow(currentLevel, 2) - 150 * currentLevel + 200) * percentToUp / 100);
    document.documentElement.setAttribute('data-gla-lang', norm);
        const desiredXp = (50 * (Math.pow((levelToUp - 1), 3)) - 150 * (Math.pow((levelToUp - 1), 2)) + 400 * (levelToUp - 1)) / 3;
    try {
        const missingXp = Math.round((desiredXp - currentXp));
      localStorage.setItem(STORAGE_KEY, langTag);
    } catch (e) { }


        const missingPotions = {
    markFlags(langTag);
            "small": Math.ceil((missingXp / (1000 * charTier))),
    updatePanes(langTag);
            "medium": (missingXp / (10000 * charTier)).toFixed(1),
            "big": (missingXp / (100000 * charTier)).toFixed(2)
        };


         return missingPotions;
    if (opts.silent !== true) {
      try {
         window.dispatchEvent(new CustomEvent('gla:langChanged', { detail: { norm: norm, tag: langTag } }));
      } catch (e2) { }
     }
     }


     function calcPotions() {
     return norm;
        const missingPotions = calcMissingXpInPotions();
  }


        var complementaryPotS;
  function pageHasI18n() {
        var complementaryPotM;
    return !!document.querySelector(
        potS = missingPotions['small'];
      '[data-gla-i18n], .gla-i18n, .item-wrapper, .item-tooltip-enc, ' +
        potM = missingPotions['medium'];
      '.gla-item-chip, .gla-quest-item-chip, [data-gla-item-chip], .character-box'
        potB = missingPotions['big'];
    );
  }


        if (String(potS).slice(-1) == "0") {
  function shouldShowToggle() {
            potM = Math.ceil(parseFloat(potM));
    return pageHasI18n();
        } else {
  }
            potM = Math.floor(potM);
            complementaryPotS = potS - potM * 10;
        }


        if (String(potM).slice(-1) == "0") {
  function injectToggle() {
            potM = Math.ceil((parseFloat(potM)));
    if (!shouldShowToggle() || document.getElementById('pt-langtoggle')) {
            potB = Math.floor(potB);
      return;
        }
    }
        else {
            potB = Math.floor(potB)
            complementaryPotM = potM - potB * 10
        }


        const potions = {
    var ul = document.querySelector('#p-personal .vector-menu-content-list') ||
            "small": complementaryPotS,
      document.querySelector('#p-personal ul');
            "medium": complementaryPotM,
    if (!ul) return;
            "big": potB
        }


        return potions;
    var li = document.createElement('li');
     }
     li.id = 'pt-langtoggle';
    li.className = 'mw-list-item';


     function getNeededPotions() {
     var group = document.createElement('span');
        const potions = calcPotions();
    group.className = 'gla-lang-toggle';
        const resultsArea = $("#calc-result");
    group.setAttribute('role', 'group');
    group.setAttribute('aria-label', 'Language');


        resultsArea.html('');
    UI_LANGS.forEach(function (code) {
      var btn = document.createElement('button');
      btn.type = 'button';
      btn.className = 'gla-lang-flag';
      btn.setAttribute('data-lang', code);
      btn.title = code === 'pt-br' ? 'Português (Brasil)' : 'English';
      btn.setAttribute('aria-label', btn.title);
      var img = document.createElement('img');
      img.src = FLAG_IMG[code] || '';
      img.alt = '';
      img.width = 24;
      img.height = 16;
      btn.appendChild(img);
      group.appendChild(btn);
    });


        if (potions["big"]) {
    li.appendChild(group);
            resultsArea.append(
                "<div class='badge'>" +
                "<img src='/images/a/a5/Bigexppot.png' class='calcXp--xpIcon' />" +
                "<span class='calcXp--numberOfPots'>" + potions['big'] + "</span>" +
                "</div>"
            );
        }


    var anchor = document.getElementById('pt-darkmode');
    if (anchor && anchor.parentNode === ul) {
      anchor.insertAdjacentElement('afterend', li);
    } else {
      ul.insertBefore(li, ul.firstChild);
    }
  }


        if (potions["medium"]) {
  function bindToggle() {
            resultsArea.append(
    if (window.glaLangToggleBound) return;
                "<div class='badge'>" +
    window.glaLangToggleBound = true;
                "<img src='/images/d/df/Medexppot.png' class='calcXp--xpIcon' />" +
                "<span class='calcXp--numberOfPots'>" + potions['medium'] + "</span>" +
                "</div>"
            );
        }


    document.addEventListener('click', function (e) {
      var btn = e.target.closest('.gla-lang-flag[data-lang]');
      if (!btn) return;
      e.preventDefault();
      applyLang(btn.getAttribute('data-lang') || 'pt-br');
    });
  }


        if (potions["small"]) {
  function boot() {
            resultsArea.append(
    if (pageHasI18n()) {
                "<div class='badge'>" +
      document.body.classList.add('gla-i18n-page');
                "<img src='/images/5/5a/Smallexppot.png' class='calcXp--xpIcon' />" +
                "<span class='calcXp--numberOfPots'>" + potions['small'] + "</span>" +
                "</div>"
            );
        }
     }
     }
     //------- CALCULATOR XP ---------
     injectToggle();
    bindToggle();
    applyLang(getStored(), { silent: true });
    try {
      window.dispatchEvent(new CustomEvent('gla:langChanged', {
        detail: { norm: normalizeLang(getStored()), tag: getStored() }
      }));
    } catch (e) { }
  }


     //------- VIDEO SELECTOR ---------
  window.glaLang = {
     $(".video-selector").on("click", function () {
    STORAGE_KEY: STORAGE_KEY,
        $(".video-selector.active").removeClass("active");
    UI_LANGS: UI_LANGS,
        $(this).addClass("active");
    normalizeLang: normalizeLang,
     toLangTag: toLangTag,
     getStored: getStored,
    getNorm: function () {
      return normalizeLang(document.documentElement.lang || getStored());
    },
    getWidgetLang: function () {
      return this.getNorm() === 'en' ? 'en' : 'pt';
    },
    applyLang: applyLang
  };


        const value = $(this).data("value");
  window.glaLangBoot = boot;
        const obj = eval('(' + value + ')');
        $("video[data-type-" + obj.select + "].active").removeClass('active');
        const index = obj.showId - 1;
        $("video[data-type-" + obj.select + "]").eq(index).addClass('active');
    });
    //------- VIDEO SELECTOR ---------
    //-------- gurren
    $(document).ready(function () {
        // Alternar entre mostrar e ocultar abas ao clicar
        $('.mostrar-aba').click(function () {
            var aba_id = $(this).attr('data-aba');
            var aba_selecionada = $("#aba-" + aba_id);


            if (aba_selecionada.hasClass('atual')) {
  if (document.readyState === 'loading') {
                aba_selecionada.removeClass('atual'); // Oculta a aba se já estiver ativa
    document.addEventListener('DOMContentLoaded', boot);
                $(this).removeClass('ativa'); // Remove a classe ativa do botão
  } else {
            } else {
    boot();
                $('.aba').removeClass('atual'); // Oculta todas as abas
  }
                aba_selecionada.addClass('atual'); // Exibe a aba correspondente
  window.addEventListener('load', boot);
                $('.mostrar-aba').removeClass('ativa'); // Remove a classe ativa de outros botões
                $(this).addClass('ativa'); // Adiciona a classe ativa ao botão clicado
            }
        });


        // Exibir aba correspondente ao hash da URL
  var tries = 0;
        var url = location.href;
  var retryTimer = setInterval(function () {
        var hash = url.split('#')[1];
    if (document.getElementById('pt-langtoggle') || !shouldShowToggle() || tries++ > 40) {
        if (hash != null && hash.length > 0) {
      clearInterval(retryTimer);
            $("#aba-" + hash).addClass('atual'); // Exibe a aba do hash
      return;
            $('*[data-aba="' + hash + '"]').addClass('ativa'); // Ativa o botão correspondente
    }
        }
     injectToggle();
     });
  }, 150);
});
})();

Edição atual tal como às 11h48min de 5 de agosto de 2026

/* Any JavaScript here will be loaded for all users on every page load. */

/* Dark mode: fallback se gla-darkmode-boot.php não estiver no servidor */
(function () {
  try {
    if (localStorage.getItem('gla-darkmode') === '1') {
      var root = document.documentElement;
      root.classList.add('client-darkmode', 'skin-theme-clientpref-night');
      if (document.cookie.indexOf('gla-darkmode=1') === -1) {
        document.cookie = 'gla-darkmode=1;path=/;max-age=31536000;SameSite=Lax';
      }
    }
  } catch (e) { }
})();

(function () {
  'use strict';

  function setupDiscordButton() {
    var a = document.querySelector('#n-Discord a');
    if (!a || a.querySelector('.gla-discord-text')) {
      return;
    }

    var icon = document.createElement('span');
    icon.className = 'gla-discord-icon';
    icon.setAttribute('aria-hidden', 'true');

    var textWrap = document.createElement('span');
    textWrap.className = 'gla-discord-text';
    textWrap.innerHTML = 'Entre no <strong>Discord</strong>';

    a.textContent = '';
    a.appendChild(icon);
    a.appendChild(textWrap);
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', setupDiscordButton);
  } else {
    setupDiscordButton();
  }
})();

(function () {
  'use strict';

  var LOGO_SRC = 'https://wiki.gla.com.br/images/b/bf/WIKIGLAlogo.png';
  var LOGO_RETRIES = 0;
  var LOGO_MAX_RETRIES = 40;

  function resolveLogoSrc() {
    if (typeof mw !== 'undefined' && mw.config && mw.config.get) {
      var skinLogo = mw.config.get('wgLogo');
      if (skinLogo && skinLogo.indexOf('wiki.png') === -1) {
        return skinLogo;
      }
    }
    return LOGO_SRC;
  }

  function setupLogoImg() {
    var a = document.querySelector('#p-logo a.mw-wiki-logo');
    if (!a) {
      return false;
    }

    if (!a.querySelector('.gla-logo-img')) {
      var img = document.createElement('img');
      img.className = 'gla-logo-img';
      img.src = resolveLogoSrc();
      img.alt = '';
      img.setAttribute('decoding', 'async');
      img.setAttribute('draggable', 'false');
      img.addEventListener('error', function onLogoError() {
        if (img.src !== LOGO_SRC) {
          img.src = LOGO_SRC;
        }
      });
      a.appendChild(img);
    }

    return true;
  }

  function trySetupLogo() {
    if (setupLogoImg()) {
      return;
    }
    LOGO_RETRIES += 1;
    if (LOGO_RETRIES < LOGO_MAX_RETRIES) {
      window.setTimeout(trySetupLogo, 50);
    }
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', trySetupLogo);
  } else {
    trySetupLogo();
  }
})();

(function () {
  'use strict';

  var STORAGE_KEY = 'gla-darkmode';
  var LINK_CLASS = 'darkmode-link';
  var LABEL_DARK = 'Modo escuro';
  var LABEL_LIGHT = 'Modo padr\u00e3o';

  function isDark() {
    return document.documentElement.classList.contains('client-darkmode');
  }

  function setDarkModeCookie(on) {
    try {
      document.cookie = 'gla-darkmode=' + (on ? '1' : '0') + ';path=/;max-age=' + (on ? 31536000 : 0) + ';SameSite=Lax';
    } catch (e) { }
  }

  function setDark(on) {
    var root = document.documentElement;
    root.classList.toggle('client-darkmode', on);
    root.classList.toggle('skin-theme-clientpref-night', on);
    root.classList.toggle('skin-theme-clientpref-day', !on);
    try {
      localStorage.setItem(STORAGE_KEY, on ? '1' : '0');
    } catch (e) { }
    setDarkModeCookie(on);
    updateLinks(on);
  }

  function updateLinks(on) {
    var links = document.querySelectorAll('.' + LINK_CLASS);
    var label = on ? LABEL_LIGHT : LABEL_DARK;
    for (var i = 0; i < links.length; i++) {
      links[i].textContent = label;
    }
  }

  function findDarkLink(el) {
    while (el && el !== document) {
      if (el.classList && el.classList.contains(LINK_CLASS)) {
        return el;
      }
      el = el.parentNode;
    }
    return null;
  }

  function injectToggle() {
    if (document.getElementById('pt-darkmode')) {
      return;
    }

    var ul = document.querySelector('#p-personal .vector-menu-content-list') ||
      document.querySelector('#p-personal ul');
    if (!ul) {
      return;
    }

    var li = document.createElement('li');
    li.id = 'pt-darkmode';

    var a = document.createElement('a');
    a.href = '#';
    a.className = LINK_CLASS;
    a.textContent = isDark() ? LABEL_LIGHT : LABEL_DARK;
    li.appendChild(a);

    var afterLi = document.getElementById('pt-mytalk') ||
      document.getElementById('pt-anontalk') ||
      document.getElementById('pt-userpage') ||
      document.getElementById('pt-anonuserpage');

    if (afterLi && afterLi.parentNode === ul) {
      afterLi.insertAdjacentElement('afterend', li);
    } else {
      ul.insertBefore(li, ul.firstChild);
    }
  }

  function bindToggle() {
    if (window.glaDarkModeBound) {
      return;
    }
    window.glaDarkModeBound = true;

    document.addEventListener('click', function (e) {
      var link = findDarkLink(e.target);
      if (!link) {
        return;
      }
      e.preventDefault();
      setDark(!isDark());
    });
  }

  function boot() {
    injectToggle();
    bindToggle();
    updateLinks(isDark());
  }

  window.glaDarkModeBoot = boot;
  window.addEventListener('load', boot);

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', boot);
  } else {
    boot();
  }

  function markThemeReady() {
    document.documentElement.classList.add('gla-theme-ready');
  }

  if (document.readyState === 'complete') {
    requestAnimationFrame(markThemeReady);
  } else {
    window.addEventListener('load', function () {
      requestAnimationFrame(markThemeReady);
    });
  }

  var tries = 0;
  var retryTimer = setInterval(function () {
    if (document.getElementById('pt-darkmode') || tries++ > 40) {
      clearInterval(retryTimer);
      return;
    }
    boot();
  }, 150);
})();



$(document).ready(function () {
  //------- GLOBAL EVENTS TIMER ---------
  (function () {
    var globalEventsTimer = $('#global-event-time'); // Atualizado: ID do Timer dos Global Events
    var globalEventsImage = $('.global-event-image'); // Atualizado: Classe da Imagem dos Global Events
    var globalEventsInterval;

    // Informações dos eventos
    /*
      0 - Domingo
      1 - Segunda-feira
      2 - Terça-feira
      3 - Quarta-feira
      4 - Quinta-feira
      5 - Sexta-feira
      6 - Sábado
    */
    var globalEventsInfo = {
      0: [
        { name: 'Foxy Memory', time: '02:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '09:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '12:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '15:00:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '19:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '22:00:00', src: '/images/f/f3/Foxy_count_event.png' },
      ],
      1: [
        { name: 'Foxy Memory', time: '02:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '09:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '12:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '15:00:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '19:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '22:00:00', src: '/images/f/f3/Foxy_count_event.png' },
      ],
      2: [
        { name: 'Foxy race (ship)', time: '02:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '09:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '12:00:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '15:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '19:00:00', src: '/images/f/f3/Foxy_count_event.png' },
        { name: 'Foxy Memory', time: '22:00:00', src: '/images/3/37/Foxy_memory_event.png' },
      ],
      3: [
        { name: 'Deathmatch', time: '02:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '09:00:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '12:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '15:00:00', src: '/images/f/f3/Foxy_count_event.png' },
        { name: 'Foxy Memory', time: '19:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '22:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
      ],
      4: [
        { name: 'Foxy race', time: '02:00:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '09:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '12:00:00', src: '/images/f/f3/Foxy_count_event.png' },
        { name: 'Foxy Memory', time: '15:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '19:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '22:00:00', src: '/images/4/46/Deathmatch_event.png' },
      ],
      5: [
        { name: 'Foxy quiz', time: '02:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
        { name: 'Foxy count', time: '09:00:00', src: '/images/f/f3/Foxy_count_event.png' },
        { name: 'Foxy Memory', time: '12:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '15:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '19:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '22:00:00', src: '/images/e/e8/Foxy_race_event.png' },
      ],
      6: [
        { name: 'Foxy count', time: '02:00:00', src: '/images/f/f3/Foxy_count_event.png' },
        { name: 'Foxy Memory', time: '09:00:00', src: '/images/3/37/Foxy_memory_event.png' },
        { name: 'Foxy race (ship)', time: '12:00:00', src: '/images/2/29/Foxy_race_ship_event.png' },
        { name: 'Deathmatch', time: '15:00:00', src: '/images/4/46/Deathmatch_event.png' },
        { name: 'Foxy race', time: '21:55:00', src: '/images/e/e8/Foxy_race_event.png' },
        { name: 'Foxy quiz', time: '22:00:00', src: '/images/b/b3/Foxy_quiz_event.png' },
      ]
    };

    function pad(value) {
      return value < 10 ? '0' + value : value;
    }

    function getBrazilTime() {
      var now = new Date();
      var utc = now.getTime() + (now.getTimezoneOffset() * 60000); // Converte para UTC
      return new Date(utc - (3 * 3600000)); // Ajusta para UTC-3
    }

    function startGlobalEventCountdown(eventStartTime, eventEndTime) {
      if (globalEventsInterval) clearInterval(globalEventsInterval);

      globalEventsInterval = setInterval(function () {
        var now = getBrazilTime().getTime();

        if (now < eventEndTime) {
          var timeRemaining = Math.ceil((eventEndTime - now) / 1000); // Segundos restantes
          var minutes = Math.floor(timeRemaining / 60);
          var seconds = timeRemaining % 60;
          globalEventsTimer.html('Iniciando: ' + pad(minutes) + ":" + pad(seconds));
        } else {
          clearInterval(globalEventsInterval);
          setGlobalEvent();
        }
      }, 1000);
    }

    function setGlobalEvent() {
      var now = getBrazilTime(); // Usa o horário do Brasil
      var dayEvents = globalEventsInfo[now.getDay()];

      if (!dayEvents || dayEvents.length === 0) {
        globalEventsImage.attr('src', '/images/0/0a/Anyevent.png'); // Imagem padrão
        globalEventsTimer.html('Acabaram os eventos por hoje');
        return;
      }

      for (var i = 0; i < dayEvents.length; i++) {
        var event = dayEvents[i];
        var timeParts = event.time.split(':');
        var eventStartTime = new Date(
          now.getFullYear(),
          now.getMonth(),
          now.getDate(),
          parseInt(timeParts[0], 10),
          parseInt(timeParts[1], 10),
          parseInt(timeParts[2], 10)
        ).getTime();
        var eventEndTime = eventStartTime + 5 * 60 * 1000; // Evento dura 5 minutos para entrada

        if (now >= eventStartTime && now < eventEndTime) {
          // Durante o período de entrada do evento
          globalEventsImage.attr('src', event.src);
          startGlobalEventCountdown(eventStartTime, eventEndTime);
          return;
        }

        if (now < eventStartTime) {
          // Antes do evento, exibe o horário fixo
          globalEventsImage.attr('src', event.src);
          globalEventsTimer.html(
            new Date(eventStartTime).toLocaleTimeString('pt-BR', {
              hour: '2-digit',
              minute: '2-digit',
            })
          );

          // Só inicia a contagem regressiva quando estiver próximo (faltando 5 minutos ou menos)
          if (eventStartTime - now <= 5 * 60 * 1000) {
            startGlobalEventCountdown(eventStartTime, eventEndTime);
          }
          return;
        }
      }

      // Após o último evento do dia
      globalEventsImage.attr('src', '/images/0/0a/Anyevent.png'); // Imagem padrão
      globalEventsTimer.html('Acabaram os eventos por hoje');
    }

    $(document).ready(function () {
      setGlobalEvent();
    });
  })();
  //------- GLOBAL EVENTS TIMER ---------
  //------- TOOLTIP IMAGE---------
  /*
      Tooltip image consiste em uma funcionalidade que insere uma tag IMG 
      quando o usuario passa o mouse por cima de uma imagem com a classe "tooltip-image"
      ao fazer é inserido no body uma tag IMG com a mesma "src" 1.3 vezes maior do que a imagem
      que o usuario está com o mouse em coma, esta tag IMG terá o mesmo X e Y do mouse + um offset 
      para manter um distanciamento.
  */

  //Distanciamento / margem do mouse
  const offset = { x: 20, y: 10 };

  $('.tooltip-image').on('mouseenter',
    function (e) {
      var src = $(this).attr('src');
      var size = $(this).width() * 1.3;

      $('<img src="' + src + '" id="bigImage" />').css('left', e.pageX + offset.x).css('top', e.pageY + offset.y).css('width', size + "px").appendTo('body').hide().fadeIn(500);
    }).on('mouseleave',
      function () {
        $('#bigImage').remove();
      });

  $('.tooltip-image').mousemove(function (e) {
    $('#bigImage').css('left', e.pageX + offset.x).css('top', e.pageY + offset.y);
  });
  //------- TOOLTIP IMAGE---------

  //------- FUNCIONALIDADES PACIENTES KUREHA ---------
  const pacients = {
    "bafo": { image: "/images/c/ce/Bafo_static.png", gif: "/images/e/e0/Bafo.gif" },
    "espirrando": { image: "/images/thumb/5/5b/Espirro_static.png/180px-Espirro_static.png", gif: "/images/thumb/9/90/Espirro.gif/180px-Espirro.gif", audio: "/images/2/2b/Espirrando.ogg" },
    "enjoado": { image: "/images/thumb/5/52/Enjoado_static.png/180px-Enjoado_static.png", gif: "/images/thumb/7/76/Enjoado.gif/180px-Enjoado.gif", audio: "/images/5/5b/Vomito.ogg" },
    "tremendo": { image: "/images/thumb/3/35/Tremendo_static.png/180px-Tremendo_static.png", gif: "/images/thumb/f/f4/Tremendo.gif/180px-Tremendo.gif" },
    "tossindo": { image: "/images/thumb/e/ef/Tosse_static.png/180px-Tosse_static.png", gif: "/images/thumb/a/a4/Tosse.gif/180px-Tosse.gif", audio: "/images/f/f9/Tossindo.ogg" },
    "solucando": { image: "/images/thumb/c/c0/Soluco_static.png/180px-Soluco_static.png", gif: "/images/thumb/6/67/Soluco.gif/180px-Soluco.gif", audio: "/images/e/e2/Solucando.ogg" },
    "funk": { image: "/images/thumb/e/e8/Funkeiro_static.png/180px-Funkeiro_static.png ", gif: "/images/thumb/7/79/Funkeiro.gif/180px-Funkeiro.gif", audio: "/images/d/d2/Funk.ogg" },
    "fedendo": { image: "/images/thumb/1/1e/Fedido_static.png/180px-Fedido_static.png", gif: "/images/thumb/c/c9/Fedido.gif/180px-Fedido.gif" },
    "febre": { image: "/images/thumb/1/14/Febre_static.png/180px-Febre_static.png", gif: "/images/thumb/7/75/Febre.gif/180px-Febre.gif" },
    "endemoniado": { audio: "/images/3/32/Risada_maligna.ogg" },
    "fome": { audio: "/images/3/37/Estomago_roncando.ogg" },
    "cardiaco": { audio: "/images/2/27/Coracao_batendo.ogg" }
  };

  const audioPlayer = document.querySelector("#audio");

  $(".pacient-audio").on("click", function (e) {
    id = $(this).attr('id');

    if (pacients[id]) {
      audioPlayer.src = pacients[id].audio;
      audioPlayer.play();
    }

  });

  $('.interactive-pacient').on('mouseenter', function (e) {
    id = $(this).attr('id');

    if (pacients[id])
      $(this).attr('src', pacients[id].gif);
  }).on('mouseleave', function (e) {
    id = $(this).attr('id');

    if (pacients[id])
      $(this).attr('src', pacients[id].image);
  });

  //------- FUNCIONALIDADES PACIENTES KUREHA ---------
  //------- FUNCIONALIDADES BUZINAS ---------
  const horns = {
    "Buzinadelacucha": { audio: "/images/5/55/Buzinadelacucha-audio.ogg" },
    "Buzinadefumaca": { audio: "/images/3/3a/Buzinadefumaca-audio.ogg" },
    "Buzinadecaminhao": { audio: "/images/e/e4/Buzinadecaminhao-audio.ogg" },
    "Buzinadetrem": { audio: "/images/3/34/Buzinadetrem-audio.ogg" },
    "Buzinadeesporte": { audio: "/images/2/2b/Buzinadeesporte-audio.ogg" },
    "Buzinadear": { audio: "/images/9/95/Buzinadear-audio.ogg" },
    "Buzinadepalhaco": { audio: "/images/a/a4/Buzinadepalhaco-audio.ogg" },
    "Buzinadeinvestida": { audio: "/images/f/ff/Buzinadeinvestida-audio.ogg" },
    "Buzinadebicicleta": { audio: "/images/1/15/Buzinadebicicleta-audio.ogg" },
    "Buzinadeneblina": { audio: "/images/6/64/Buzinadeneblina-audio.ogg" }
  };

  const hornAudioPlayer = document.querySelector("#audio");

  $(".horn-audio").on("click", function (e) {
    const id = $(this).attr('id');
    if (horns[id]) {
      hornAudioPlayer.src = horns[id].audio;
      hornAudioPlayer.play();
    }
  });

  //------- FUNCIONALIDADES BUZINAS ---------
});


/**
* Script JavaScript para o componente de abas MediaWiki
* Adicione este script na sua MediaWiki (Common.js ou página de scripts)
*/

(function () {
  'use strict';

  // Inicializa todos os componentes de abas na página
  function initTabbers() {
    const tabbers = document.querySelectorAll('[data-tabber]');

    tabbers.forEach(function (tabber) {
      const tabs = tabber.querySelectorAll('.mw-tabber-tab');
      const panels = tabber.querySelectorAll('.mw-tabber-panel');

      tabs.forEach(function (tab) {
        tab.addEventListener('click', function () {
          const targetTab = this.getAttribute('data-tab');

          // Remove classe active de todas as abas
          tabs.forEach(function (t) {
            t.classList.remove('active');
          });

          // Remove classe active de todos os painéis
          panels.forEach(function (p) {
            p.classList.remove('active');
          });

          // Adiciona classe active na aba clicada
          this.classList.add('active');

          // Adiciona classe active no painel correspondente
          const targetPanel = tabber.querySelector('[data-panel="' + targetTab + '"]');
          if (targetPanel) {
            targetPanel.classList.add('active');
          }
        });
      });
    });
  }

  // Inicializa quando o DOM estiver pronto
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initTabbers);
  } else {
    initTabbers();
  }

  // Suporte para MediaWiki (quando o conteúdo é carregado dinamicamente)
  if (typeof mw !== 'undefined' && mw.hook) {
    mw.hook('wikipage.content').add(function () {
      initTabbers();
    });
  }
})();


/* =============================================================================
   GLA pages legacy (provisório) — personagens, wanted, skills, calc XP, abas
   Extraído de antigo_common.js
   ============================================================================= */

$(document).ready(function () {
  //------- PERSONAGENS ---------

  const characters = [
    { name: "Silvers Rayleigh", types: ["slasher", "dps", "diamond", "break_wall"], link: "/Silvers_Rayleigh", img: "/images/f/f1/Rayleigh_Card.png" },
    { name: "Monkey D Garp", types: ["fighter", "dps", "marine", "diamond", "break_wall"], link: "/Monkey_D_Garp", img: "/images/a/a1/GarpCard.png" },
    { name: "Aokiji Dio", types: ["slasher", "especialist", "tank", "marine", "diamond", "break_wall", "bridge"], link: "/Aokiji", img: "/images/6/67/Aokiji_card.png" },
    { name: "Bartolomew Kuma", types: ["especialist", "tank", "diamond", "break_wall"], link: "/Kuma", img: "/images/b/b5/Card-kuma.png" },
    { name: "Boa Hancock", types: ["fighter", "dps", "diamond"], link: "/Boa_Hancock", img: "/images/4/47/Card-hancock.png" },
    { name: "Borsalino Kizaru", types: ["especialist", "shooter", "dps", "diamond", "break_wall"], link: "/Kizaru", img: "/images/3/32/Card-kizaru.png" },
    { name: "Brook (TS)", types: ["slasher", "support", "diamond", "bridge"], link: "/Brook_(Timeskip)", img: "/images/1/1d/Card-brookts.png" },
    { name: "Tony Tony Chopper (TS) Gurren", types: ["fighter", "support", "diamond", "break_wall"], link: "/Chopper_(Timeskip)", img: "/images/5/53/Card-chopperts.png" },
    { name: "Doflamingo", types: ["shooter", "especialist", "dps", "diamond", "break_wall", "bridge"], link: "/Doflamingo", img: "/images/8/8d/Card-doflamingo.png" },
    { name: "Dracule Mihawk", types: ["slasher", "dps", "diamond", "break_wall"], link: "/Mihawk", img: "/images/9/91/Card-mihawk.png" },
    { name: "Emporio Ivankov", types: ["fighter", "support", "diamond", "break_wall"], link: "/Ivankov", img: "/images/c/ca/Card-ivankov.png" },
    { name: "Enel", types: ["shooter", "especialist", "diamond", "dps"], link: "/Enel", img: "/images/8/85/Enel_card.png" },
    { name: "Franky (TS) Sanitaria", types: ["shooter", "tank", "diamond", "break_wall"], link: "/Franky_(Timeskip)", img: "/images/d/d0/Card-frankyts.png" },
    { name: "Jinbe", types: ["fighter", "tank", "diamond", "break_wall"], link: "/Jinbe", img: "/images/2/2e/Card-jinbe.png" },
    { name: "Marshall D. Teach Barba Negra", types: ["especialist", "bruiser", "diamond"], link: "/Marshall_D._Teach", img: "/images/f/ff/Card-kurohige.png" },
    { name: "Marco Abacaxi", types: ["especialist", "fighter", "support", "diamond"], link: "/Marco", img: "/images/2/2b/Marco_card.png" },
    { name: "Monkey D. Luffy (TS) Visno", types: ["fighter", "dps", "diamond", "break_wall"], link: "/Luffy_(Timeskip)", img: "/images/e/ed/Card-luffyts.png" },
    { name: "Nami (TS)", types: ["especialist", "dps", "diamond"], link: "/Nami_(timeskip)", img: "/images/3/35/Card-namits.png" },
    { name: "Portgas D. Ace Duduh", types: ["especialist", "shooter", "dps", "diamond"], link: "/Ace", img: "/images/4/40/Card-ace.png" },
    { name: "Robin (TS)", types: ["especialist", "dps", "diamond", "break_wall", "bridge"], link: "/Robin_(Timeskip)", img: "/images/b/b0/Card-robints.png" },
    { name: "Roronoa Zoro (TS)", types: ["slasher", "dps", "diamond", "break_wall"], link: "/Zoro_(Timeskip)", img: "/images/7/74/Card-zorots.png" },
    { name: "Sabo", types: ["fighter", "especialist", "dps", "diamond", "break_wall"], link: "/Sabo", img: "/images/0/04/Card-sabo.png" },
    { name: "Sakazuki Akainu", types: ["especialist", "fighter", "dps", "diamond", "break_wall"], link: "/Akainu", img: "/images/b/b0/Card_akainu.png" },
    { name: "Shanks", types: ["slasher", "bruiser", "diamond", "break_wall"], link: "/Shanks", img: "/images/a/aa/Card-shanks.png" },
    { name: "Usopp (TS)", types: ["shooter", "dps", "diamond", "break_wall"], link: "/Usopp_(Timeskip)", img: "/images/c/cc/Card-usoppts.png" },
    { name: "Uta", types: ["especialist", "dps", "diamond", "break_wall"], link: "/Uta", img: "/images/2/22/Card_uta.png" },
    { name: "Vinsmoke Sanji (TS)", types: ["fighter", "dps", "diamond", "break_wall"], link: "/Sanji_(Timeskip)", img: "/images/7/7a/Card-sanjits.png" },

    { name: "Kalifa", types: ["support", "gold", "especialist", "break_wall"], link: "/Kalifa", img: "/images/3/39/Kalifa_card.png" },
    { name: "Jabra", types: ["slasher", "dps", "gold", "break_wall"], link: "/Jabra", img: "/images/9/98/Jabra_card.png" },
    { name: "Kaku", types: ["slasher", "shooter", "dps", "gold", "break_wall"], link: "/Kaku", img: "/images/9/98/Kaku_card.png" },
    { name: "Rob Lucci", types: ["fighter", "dps", "gold", "break_wall"], link: "/Rob Lucci", img: "/images/b/b1/Rob_Lucci_card.png" },
    { name: "Blueno", types: ["fighter", "dps", "gold", "break_wall"], link: "/Blueno", img: "/images/5/55/Blueno_card.png" },
    { name: "Marguerite", types: ["shooter", "dps", "gold", "break_wall"], link: "/Marguerite", img: "/images/1/1c/Marguerite_Card.png" },
    { name: "Baby 5", types: ["slasher", "shooter", "gold", "dps"], link: "/Baby_5", img: "/images/5/5e/Baby5_card.png" },
    { name: "Bartolomeo", types: ["especialist", "dps", "gold", "break_wall", "bridge"], link: "/Bartolomeo", img: "/images/a/a9/Card-barto.png" },
    { name: "Basil Hawkins Lost", types: ["especialist", "bruiser", "gold", "bridge"], link: "/Basil_Hawkins", img: "/images/8/89/Card-hawkins.png" },
    { name: "Bastille", types: ["slasher", "tank", "gold", "break_wall"], link: "/Bastille", img: "/images/1/13/Card-bastille.png" },
    { name: "Bellamy", types: ["fighter", "dps", "gold", "break_wall"], link: "/Bellamy", img: "/images/7/7e/Card-bellamy.png" },
    { name: "Bonney Poseidon", types: ["fighter", "support", "gold"], link: "/Bonney", img: "/images/9/91/Card-bonney.png" },
    { name: "Brook", types: ["slasher", "support", "gold"], link: "/brook", img: "/images/7/76/Card-brook.png" },
    { name: "Capone gang bege", types: ["shooter", "dps", "gold", "break_wall"], link: "/Capone_Bege", img: "/images/c/c0/Card-capone.png" },
    { name: "Carrot", types: ["slasher", "especialist", "dps", "gold"], link: "/Carrot", img: "/images/8/8d/Card-carrot.png" },
    { name: "Tony Tony Chopper Gurren", types: ["fighter", "support", "gold", "break_wall"], link: "/Chopper", img: "/images/1/19/Card-chopper.png" },
    { name: "Crocodile", types: ["especialist", "tank", "gold", "break_wall", "bridge"], link: "/Crocodile", img: "/images/5/5d/Card-crocodile.png" },
    { name: "Dalmatian", types: ["slasher", "bruiser", "gold", "break_wall"], link: "/Dalmatian", img: "/images/9/99/Card-dalmatian.png" },
    { name: "Franky Sanitaria", types: ["shooter", "bruiser", "gold", "break_wall"], link: "/Franky", img: "/images/6/61/Card-franky.png" },
    { name: "Gecko Moria Coxinha", types: ["slasher", "support", "gold"], link: "/Gecko_Moria", img: "/images/f/fc/Moria_card.png" },
    { name: "Hina", types: ["fighter", "bruiser", "gold", "break_wall", "bridge"], link: "/Hina", img: "/images/5/57/Card-hina.png" },
    { name: "Jesus Burgess", types: ["fighter", "tank", "gold", "break_wall"], link: "/Jesus_Burgess", img: "/images/2/28/Card-burgess.png" },
    { name: "Eustass Kid Rag", types: ["shooter", "tank", "gold", "break_wall", "bridge"], link: "/Kid", img: "/images/9/9a/Card-kid.png" },
    { name: "Killer", types: ["slasher", "dps", "gold"], link: "/Killer", img: "/images/b/b2/Card-killer.png" },
    { name: "Koala", types: ["fighter", "dps", "gold"], link: "/Koala", img: "/images/f/f3/Card-koala.png" },
    { name: "Leo & Mansherry", types: ["especialist", "support", "gold", "bridge"], link: "/Leo", img: "/images/d/d9/Card-leo.png" },
    { name: "Monkey D. Luffy Visno", types: ["fighter", "bruiser", "gold", "break_wall"], link: "/Luffy", img: "/images/a/af/Card-luffy.png" },
    { name: "Nami", types: ["especialist", "dps", "gold", "break_wall"], link: "/nami", img: "/images/0/08/Card-nami.png" },
    { name: "Perona", types: ["especialist", "support", "gold", "break_wall"], link: "/Perona", img: "/images/6/6d/Card-perona.png" },
    { name: "Rebecca Ghoul Den Berry", types: ["slasher", "tank", "gold"], link: "/Rebecca", img: "/images/9/91/Card-rebecca.png" },
    { name: "Nico Robin", types: ["especialist", "dps", "gold", "break_wall", "bridge"], link: "/Robin", img: "/images/3/3f/Card-robin.png" },
    { name: "Roronoa zoro", types: ["slasher", "bruiser", "gold", "break_wall"], link: "/Roronoa_Zoro", img: "/images/6/6f/Card-zoro.png" },
    { name: "Ryuma", types: ["slasher", "dps", "gold"], link: "/Ryuma", img: "/images/a/ac/Card-ryuma.png" },
    { name: "Scratchmen Apoo", types: ["shooter", "support", "gold"], link: "/Apoo", img: "/images/9/90/Card-apoo.png" },
    { name: "Smoker Piseiro", types: ["fighter", "tank", "gold"], link: "/Smoker", img: "/images/f/fb/Card-smoker.png" },
    { name: "Trafalgar Law", types: ["slasher", "especialist", "dps", "gold", "break_wall"], link: "/Trafalgar_Law", img: "/images/b/b9/Card-law.png" },
    { name: "Urouge", types: ["fighter", "tank", "gold", "break_wall"], link: "/Urouge", img: "/images/9/98/Card-urouge.png" },
    { name: "Usopp", types: ["shooter", "dps", "gold", "break_wall"], link: "/Usopp", img: "/images/a/ac/Card-usopp.png" },
    { name: "Van Augur", types: ["shooter", "dps", "gold", "break_wall"], link: "/Van Augur", img: "/images/c/c7/Card-vanaugur.png" },
    { name: "Vinsmoke Ichiji", types: ["fighter", "bruiser", "gold", "break_wall"], link: "/Ichiji", img: "/images/8/8c/Card-ichiji.png" },
    { name: "Vinsmoke Niji", types: ["shooter", "dps", "gold"], link: "/Niji", img: "/images/6/66/Card-niji.png" },
    { name: "Vinsmoke Reiju Athena", types: ["especialist", "support", "gold"], link: "/Reiju", img: "/images/2/23/Card-reiju.png" },
    { name: "Vinsmoke Sanji", types: ["fighter", "dps", "gold", "break_wall"], link: "/Sanji", img: "/images/0/04/Card-sanji.png" },
    { name: "Vinsmoke Yonji", types: ["fighter", "tank", "gold", "break_wall"], link: "/Yonji", img: "/images/7/73/Card-yonji.png" },
    { name: "X-drake", types: ["fighter", "bruiser", "gold", "break_wall"], link: "/X_Drake", img: "/images/6/69/Card-drake.png" },
    { name: "Satori", types: ["support", "shooter", "especialist", "silver"], link: "/Satori", img: "/images/f/f3/Satori_card.png" },
    { name: "Gedatsu", types: ["fighter", "dps", "silver"], link: "/Gedatsu", img: "/images/f/f6/Gedatsu_card.png" },
    { name: "Ohm", types: ["tank", "slasher", "silver"], link: "/Ohm", img: "/images/1/1e/Ohm_card.png" },
    { name: "Shura", types: ["slasher", "dps", "silver"], link: "/Shura", img: "/images/2/2e/Shura_card.png" },
    { name: "Arlong", types: ["fighter", "bruiser", "silver", "break_wall"], link: "/Arlong", img: "/images/1/1e/Card-arlong.png" },
    { name: "Bepo", types: ["fighter", "dps", "silver"], link: "/Bepo", img: "/images/1/1d/Card-bepo.png" },
    { name: "Mr.2", types: ["fighter", "dps", "silver"], link: "/mr.2", img: "/images/2/27/Card-bonchan.png" },
    { name: "Buggy", types: ["shooter", "dps", "silver", "break_wall"], link: "/buggy", img: "/images/c/ca/Card-buggy.png" },
    { name: "Daddy Masterson", types: ["shooter", "dps", "silver"], link: "/Daddy_Masterson", img: "/images/2/20/Card-daddy.png" },
    { name: "mr.1 Daz Bonez Kolivier", types: ["slasher", "tank", "silver"], link: "/mr.1", img: "/images/6/61/Card-dazbonez.png" },
    { name: "Miss Doublefinger Zala", types: ["slasher", "bruiser", "silver"], link: "/Miss_Doublefinger", img: "/images/5/5f/Card-doublefinger.png" },
    { name: "Don Krieg", types: ["shooter", "dps", "silver"], link: "/don_Krieg", img: "/images/8/8f/Card-krieg.png" },
    { name: "Kuro", types: ["slasher", "dps", "silver"], link: "/kuro", img: "/images/3/3d/Card-kuro.png" },
    { name: "mr.3 Galdino", types: ["especialist", "support", "silver", "bridge"], link: "/mr.3", img: "/images/7/75/Card-mr3.png" },
    { name: "Tashigi", types: ["slasher", "dps", "silver"], link: "/tashigi", img: "/images/b/b8/Card-tashigi.png" },
    { name: "Nefertari Vivi", types: ["slasher", "support", "silver"], link: "/Vivi", img: "/images/9/9c/Card-vivi.png" },
    { name: "Wapol", types: ["shooter", "tank", "silver", "break_wall"], link: "/wapol", img: "/images/b/ba/Card-wapol.png" },
    { name: "Alvida", types: ["fighter", "support", "bronze"], link: "/Alvida", img: "/images/8/83/Card-alvida.png" },
    { name: "Buchi & Sham", types: ["slasher", "bruiser", "bronze"], link: "/Buchi", img: "/images/0/0b/Card-buchi.png" },
    { name: "Cabaji", types: ["slasher", "dps", "bronze"], link: "/Cabaji", img: "/images/9/9d/Card-cabaji.png" },
    { name: "Chew", types: ["shooter", "dps", "bronze", "break_wall"], link: "/Chew", img: "/images/0/0f/Card-chew.png" },
    { name: "Eric", types: ["shooter", "slasher", "dps", "bronze"], link: "/Eric", img: "/images/3/31/Card-eric.png" },
    { name: "Gin", types: ["fighter", "shooter", "dps", "bronze"], link: "/Gin", img: "/images/1/18/Card-gin.png" },
    { name: "Miss Goldenweek", types: ["support", "especialist", "bronze"], link: "/Goldenweek", img: "/images/0/0e/Card-goldenweek.png" },
    { name: "Hatchan", types: ["slasher", "support", "bronze"], link: "/Hatchan", img: "/images/3/31/Card-hatchan.png" },
    { name: "Jango", types: ["shooter", "support", "bronze"], link: "/Jango", img: "/images/4/48/Card-jango.png" },
    { name: "Kuroobi", types: ["fighter", "tank", "bronze", "break_wall"], link: "/Kuroobi", img: "/images/6/6a/Card-kuroobi.png" },
    { name: "Mohji", types: ["especialist", "bruiser", "bronze"], link: "/Mohji", img: "/images/5/58/Card-mohji.png" },
    { name: "Morgan", types: ["slasher", "bruiser", "bronze"], link: "/Morgan", img: "/images/4/43/Card-morgan.png" },
    { name: "Mr.4", types: ["shooter", "bruiser", "bronze"], link: "/Mr.4", img: "/images/9/90/Card-mr4.png" },
    { name: "Mr.5", types: ["shooter", "dps", "bronze"], link: "/Mr.5", img: "/images/4/49/Card-mr5.png" },
    { name: "Pearl", types: ["fighter", "especialist", "tank", "bronze"], link: "/Pearl", img: "/images/d/de/Card-pearl.png" },
  ];

  $(".filter--icon").on("click", function () {
    const id = $(this).attr("id");

    if ($(this).hasClass("all")) {
      $('.filter--icon.active').removeClass('active');
      $(".characters").addClass('show');
      $(".filter--icon.all").addClass('active');
      return false;
    } else {
      $(".filter--icon.all").removeClass('active');
    }

    if ($(this).hasClass("active")) {
      $(this).removeClass('active');
      actives = $('.filter--icon.active');
      query = "";

      $.each(actives, function (key, item) {
        query += "[data-type-" + item.id + "]";
      });

      $(".characters" + query).addClass('show');
    } else {
      if ($(this).hasClass("tier")) {
        $('.filter--icon.tier.active').removeClass('active');
      }

      $(this).addClass('active');
      $(".characters").removeClass('show');
      query = "";
      actives = $('.filter--icon.active');

      $.each(actives, function (key, item) {
        query += "[data-type-" + item.id + "]";
      });

      $(".characters" + query).addClass('show');
    }
  });

  $.each(characters, function (key, item) {
    data = '';
    id = item.name.replace(/\s/g, '_').toLowerCase();

    $.each(item.types, function (key, value) {
      data += "data-type-" + value + " ";
    });

    $("#characters-container").append(
      "<div id=" + id + " class='characters show' " + data + " >" +
      "<a href='https://wiki.gla.com.br/index.php" + item.link + "'>" +
      "<img src='" + item.img + "' alt='imagem de " + item.name + "' />" +
      "</a>" +
      "</div>"
    );
  });

  $(".filter--searchButton").on("click", function () {
    $(".filter--icon.active").removeClass('active');
    $(".characters.show").removeClass('show');
    if ($("#f-input").val().toLowerCase() != '') {
      $(".characters[id*=" + $("#f-input").val().toLowerCase() + "]").addClass('show');
    } else {
      $(".characters").addClass('show');
    }
  });

  $('#f-input').keypress(function (e) {
    const key = e.which;
    if (key == 13)  // the enter key code
    {
      $('.filter--searchButton').click();
      return false;
    }
  });

  //------- PERSONAGENS ---------

  //------- WANTED ---------
  const wanted_slashers = [
    { name: "Baby 5", wanteds: ["nami", "usopp", "mr. 3", "jango"], img: "/images/5/5e/Baby5_card.png" },
    { name: "Ohm", wanteds: ["robin", "nami", "brook", "zoro", "luffy", "sanji", "urouge", "ryuma", "van augur", "law", "niji", "crocodile", "cabaji"], img: "/images/1/1e/Ohm_card.png" },
    { name: "Roronoa Zoro", wanteds: ["robin", "nami", "brook", "chopper", "franky", "luffy", "sanji", "perona", "usopp", "capone", "kid", "van augur", "law", "yonji", "ichiji", "mr. 1", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "koala", "buggy", "gin", "mohji", "drake", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/6/6f/Card-zoro.png" },
    { name: "Shanks", wanteds: ["robin", "nami", "brook", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "bellamy"], img: "/images/a/aa/Card-shanks.png" },
    { name: "Dracule Mihawk", wanteds: ["robin", "nami", "chopper", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "perona", "usopp", "ryuma", "capone", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "pearl", "arlong", "hatchan", "chew", "jango", "kuroobi", "buggy", "kuro", "krieg", "mohji", "morgan", "hawkins", "alvida", "crocodile"], img: "/images/9/91/Card-mihawk.png" },
    { name: "Killer", wanteds: ["rebecca", "van augur", "pearl", "jango", "buggy", "alvida"], img: "/images/b/b2/Card-killer.png" },
    { name: "Tashigi", wanteds: ["chopper", "zoro", "luffy", "sanji", "bonney", "urouge", "perona", "ryuma", "killer", "burgess", "kid", "reiju", "yonji", "baby 5", "mr. 1", "mr. 2", "mr. 4", "pearl", "arlong", "hatchan", "buchi", "jango", "kuroobi", "koala", "kuro", "gin", "mohji", "morgan", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/b/b8/Card-tashigi.png" },
    { name: "Roronoa Zoro (TS)", wanteds: ["chopper", "leo", "perona", "usopp", "capone", "mr. 3", "goldenweek", "pearl", "hatchan", "buchi", "jango", "buggy", "alvida"], img: "/images/7/74/Card-zorots.png" },
    { name: "Rebbeca", wanteds: ["franky", "luffy", "sanji", "urouge", "usopp", "ryuma", "killer", "capone", "van augur", "law", "yonji", "niji", "mr. 2", "doublefinger", "mr. 4", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "buggy", "kuro", "gin", "krieg", "morgan", "drake", "alvida"], img: "/images/9/91/Card-rebecca.png" },
    { name: "Carrot", wanteds: ["nami", "chopper", "luffy", "sanji", "leo", "leo", "usopp", "capone", "kid", "van augur", "law", "niji", "ichiji", "mr. 3", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "krieg", "mohji", "drake", "alvida"], img: "/images/8/8d/Card-carrot.png" },
    { name: "Shimotsuki Ryuma", wanteds: ["nami", "brook", "chopper", "franky", "sanji", "leo", "urouge", "perona", "capone", "law", "reiju", "yonji", "niji", "baby 5", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "gin", "mohji", "morgan", "drake", "alvida", "crocodile"], img: "/images/a/ac/Card-ryuma.png" },
    { name: "Trafalgar Law", wanteds: ["luffy", "sanji", "leo", "apoo", "usopp", "kid", "reiju", "yonji", "niji", "ichiji", "baby 5", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "drake", "alvida"], img: "/images/b/b9/Card-law.png" },
    { name: "Mr. 1", wanteds: ["chopper", "perona", "killer", "capone", "law", "niji", "baby 5", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "kuro", "krieg", "mohji", "morgan", "alvida", "wapol", "crocodile"], img: "/images/6/61/Card-dazbonez.png" },
    { name: "Bastille", wanteds: ["chopper", "zoro", "law", "doublefinger", "mr. 4", "arlong", "buchi", "kuro", "gin", "alvida", "bellamy"], img: "/images/1/13/Card-bastille.png" },
    { name: "Dalmatian", wanteds: ["capone", "mr. 2", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "mohji", "morgan", "alvida", "crocodile"], img: "/images/9/99/Card-dalmatian.png" },
    { name: "Morgan", wanteds: ["robin", "nami", "leo", "van augur", "baby 5", "goldenweek", "buchi", "chew", "jango", "alvida"], img: "/images/4/43/Card-morgan.png" },
    { name: "Cabaji", wanteds: ["nami", "chopper", "chew", "jango", "alvida"], img: "/images/9/9d/Card-cabaji.png" },
    { name: "Kuro", wanteds: ["nami", "pearl", "hatchan", "buchi", "jango", "koala", "krieg", "mohji", "alvida", "bellamy"], img: "/images/3/3d/Card-kuro.png" },
    { name: "Eric", wanteds: ["nami", "brook", "apoo", "usopp", "reiju", "mr. 3", "goldenweek", "mr. 5", "jango", "buggy", "alvida"], img: "/images/3/31/Card-eric.png" },
    { name: "Miss Doublefinger", wanteds: ["chopper", "luffy", "sanji", "urouge", "rebecca", "perona", "usopp", "burgess", "capone", "kid", "reiju", "yonji", "pearl", "hatchan", "buchi", "jango", "kuroobi", "mohji", "alvida", "wapol"], img: "/images/5/5f/Card-doublefinger.png" },
  ];

  const wanted_shooters = [
    { name: "Baby 5", wanteds: ["nami", "usopp", "mr. 3", "jango"], img: "/images/5/5e/Baby5_card.png" },
    { name: "Daddy Masterson", wanteds: ["robin", "nami", "apoo", "apoo", "usopp", "niji", "mr. 3", "goldenweek", "mr. 5", "chew", "jango", "buggy", "krieg"], img: "/images/2/20/Card-daddy.png" },
    { name: "Enel", wanteds: ["robin", "usopp", "jango", "cabaji"], img: "/images/8/85/Enel_card.png" },
    { name: "Capone Gang Bege", wanteds: ["robin", "nami", "brook", "chopper", "franky", "luffy", "sanji", "leo", "apoo", "rebecca", "usopp", "killer", "burgess", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 2", "mr. 3", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "krieg", "mohji", "morgan", "alvida", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/c/c0/Card-capone.png" },
    { name: "Franky", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "urouge", "usopp", "ryuma", "burgess", "capone", "kid", "van augur", "law", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "mohji", "morgan", "hawkins", "alvida", "crocodile", "cabaji"], img: "/images/6/61/Card-franky.png" },
    { name: "Eustass kid", wanteds: ["chopper", "luffy", "usopp", "kid", "baby 5", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "pearl", "buchi", "gin", "hawkins", "alvida", "crocodile"], img: "/images/9/9a/Card-kid.png" },
    { name: "Van Augur", wanteds: ["robin", "nami", "brook", "chopper", "franky", "luffy", "bonney", "leo", "apoo", "urouge", "usopp", "killer", "capone", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 2", "mr. 3", "goldenweek", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "krieg", "mohji", "morgan", "drake", "alvida", "wapol", "cabaji"], img: "/images/c/c7/Card-vanaugur.png" },
    { name: "Portgas D. Ace", wanteds: ["nami", "brook", "chopper", "bonney", "leo", "apoo", "perona", "usopp", "kid", "van augur", "niji", "mr. 3", "mr. 5", "bepo", "arlong", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "mohji"], img: "/images/4/40/Card-ace.png" },
    { name: "Usopp (TS)", wanteds: ["brook", "chopper", "leo", "apoo", "perona", "usopp", "van augur", "niji", "mr. 3", "goldenweek", "mr. 5", "hatchan", "chew", "jango", "buggy", "krieg", "alvida"], img: "/images/c/cc/Card-usoppts.png" },
    { name: "Donquixote Doflamingo", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "perona", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "jango", "kuroobi", "koala", "buggy", "gin", "krieg", "mohji", "morgan", "drake", "alvida"], img: "/images/8/8d/Card-doflamingo.png" },
    { name: "Buggy", wanteds: ["nami", "chopper", "bonney", "apoo", "perona", "usopp", "van augur", "baby 5", "mr. 4", "mr. 5", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "krieg", "mohji", "alvida", "cabaji"], img: "/images/c/ca/Card-buggy.png" },
    { name: "Vinsmoke Niji", wanteds: ["nami", "apoo", "van augur", "reiju", "mr. 3", "mr. 5", "buchi", "jango", "buggy", "krieg", "alvida"], img: "/images/6/66/Card-niji.png" },
    { name: "Wapol", wanteds: ["robin", "nami", "brook", "chopper", "zoro", "luffy", "sanji", "urouge", "rebecca", "perona", "ryuma", "killer", "burgess", "kid", "law", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "doublefinger", "mr. 4", "pearl", "arlong", "buchi", "jango", "kuroobi", "kuro", "mohji", "morgan", "hawkins", "wapol", "crocodile"], img: "/images/b/ba/Card-wapol.png" },
    { name: "Franky (TS)", wanteds: ["chopper", "zoro", "usopp", "capone", "kid", "yonji", "mr. 1", "doublefinger", "mr. 4", "pearl", "arlong", "buchi", "kuro", "alvida"], img: "/images/d/d0/Card-frankyts.png" },
    { name: "Borsalino Kizaru", wanteds: ["capone", "jango", "drake", "alvida"], img: "/images/3/32/Card-kizaru.png" },
    { name: "Don Krieg", wanteds: ["brook", "chopper", "apoo", "capone", "reiju", "goldenweek", "mr. 5", "hatchan", "buchi", "chew", "jango", "buggy", "drake", "alvida"], img: "/images/8/8f/Card-krieg.png" },
    { name: "Eric", wanteds: ["nami", "brook", "apoo", "usopp", "reiju", "mr. 3", "goldenweek", "mr. 5", "jango", "buggy", "alvida"], img: "/images/3/31/Card-eric.png" },
    { name: "Mr. 4", wanteds: ["chopper", "zoro", "bonney", "goldenweek", "buchi", "jango", "morgan"], img: "/images/9/90/Card-mr4.png" },
    { name: "Mr. 5", wanteds: ["brook", "sanji", "bonney", "goldenweek", "jango", "kuroobi"], img: "/images/4/49/Card-mr5.png" },
    { name: "Gin", wanteds: ["chopper", "capone", "van augur", "baby 5", "mr. 3", "goldenweek", "bepo", "buchi", "gin", "krieg", "mohji", "drake", "alvida", "cabaji"], img: "/images/1/18/Card-gin.png" },
    { name: "Chew", wanteds: ["mr. 5"], img: "/images/0/0f/Card-chew.png" },
    { name: "Usopp", wanteds: ["nami", "brook", "chopper", "leo", "apoo", "reiju", "niji", "mr. 3", "mr. 5", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "alvida", "wapol"], img: "/images/a/ac/Card-usopp.png" },
  ];

  const wanted_fighters = [
    { name: "Sabo", wanteds: ["nami", "niji", "mr. 2", "mr. 3", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "cabaji"], img: "/images/0/04/Card-sabo.png" },
    { name: "X-Drake", wanteds: ["robin", "brook", "chopper", "franky", "zoro", "sanji", "bonney", "leo", "apoo", "urouge", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 3", "doublefinger", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji", "bellamy"], img: "/images/6/69/Card-drake.png" },
    { name: "Hina", wanteds: ["robin", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "urouge", "rebecca", "perona", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 3", "doublefinger", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/5/57/Card-hina.png" },
    { name: "Smoker", wanteds: ["robin", "nami", "zoro", "luffy", "urouge", "capone", "van augur", "law", "baby 5", "mr. 1", "mr. 2", "mr. 3", "mr. 5", "krieg", "alvida"], img: "/images/f/fb/Card-smoker.png" },
    { name: "Bellamy", wanteds: ["nami", "brook", "chopper", "zoro", "luffy", "sanji", "apoo", "urouge", "rebecca", "ryuma", "burgess", "van augur", "law", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 2", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "buchi", "jango", "kuroobi", "koala", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/7/7e/Card-bellamy.png" },
    { name: "Urouge", wanteds: ["nami", "sanji", "apoo", "usopp", "capone", "chew"], img: "/images/9/98/Card-urouge.png" },
    { name: "Boa Hancock", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "urouge", "perona", "usopp", "ryuma", "burgess", "capone", "van augur", "law", "reiju", "yonji", "ichiji", "baby 5", "mr. 1", "mr. 3", "mr. 5", "bepo", "arlong", "hatchan", "chew", "jango", "kuroobi", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji", "bellamy"], img: "/images/4/47/Card-hancock.png" },
    { name: "VinsmokeYonji", wanteds: ["mr. 4", "kuro"], img: "/images/7/73/Card-yonji.png" },
    { name: "Vinsmoke Ichiji", wanteds: ["robin", "nami", "brook", "sanji", "apoo", "urouge", "rebecca", "usopp", "capone", "ichiji", "baby 5", "mr. 3", "mr. 5", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/8/8c/Card-ichiji.png" },
    { name: "Mr. 2", wanteds: ["bonney", "usopp", "hatchan", "krieg", "alvida"], img: "/images/2/27/Card-bonchan.png" },
    { name: "Vinsmoke Sanji (TS)", wanteds: ["nami", "chopper", "usopp", "law", "mr. 2", "doublefinger", "mr. 4", "mr. 5", "bepo", "pearl", "buchi", "chew", "jango", "koala", "buggy", "krieg", "mohji", "morgan", "alvida", "wapol", "cabaji"], img: "/images/7/7a/Card-sanjits.png" },
    { name: "Monkey D. Luffy (TS)", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "leo", "apoo", "urouge", "rebecca", "perona", "usopp", "ryuma", "killer", "burgess", "kid", "law", "yonji", "niji", "ichiji", "mr. 1", "mr. 2", "doublefinger", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "kuro", "gin", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/e/ed/Card-luffyts.png" },
    { name: "Koala", wanteds: ["robin", "nami", "brook", "franky", "zoro", "luffy", "sanji", "leo", "apoo", "urouge", "usopp", "killer", "burgess", "capone", "van augur", "law", "reiju", "yonji", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "crocodile", "cabaji", "bellamy"], img: "/images/f/f3/Card-koala.png" },
    { name: "Burgess", wanteds: ["robin", "nami", "brook", "franky", "zoro", "luffy", "sanji", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "yonji", "niji", "ichiji", "mr. 1", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "kuroobi", "koala", "buggy", "kuro", "gin", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/2/28/Card-burgess.png" },
    { name: "Monkey D. Luffy", wanteds: ["brook", "chopper", "franky", "sanji", "leo", "usopp", "burgess", "kid", "law", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "pearl", "arlong", "hatchan", "chew", "jango", "kuroobi", "koala", "buggy", "morgan", "alvida", "wapol", "cabaji"], img: "/images/a/af/Card-luffy.png" },
    { name: "Bepo", wanteds: ["zoro", "luffy", "sanji", "pearl", "arlong", "buchi", "kuro", "mohji", "morgan", "drake", "alvida"], img: "/images/1/1d/Card-bepo.png" },
    { name: "Vinsmoke Sanji", wanteds: ["brook", "chopper", "usopp", "kid", "mr. 4", "mr. 5", "pearl", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "gin", "morgan", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/0/04/Card-sanji.png" },
    { name: "Arlong", wanteds: ["mr. 2", "chew", "alvida"], img: "/images/1/1e/Card-arlong.png" },
    { name: "Gin", wanteds: ["chopper", "capone", "van augur", "baby 5", "mr. 3", "goldenweek", "bepo", "buchi", "gin", "krieg", "mohji", "drake", "alvida", "cabaji"], img: "/images/1/18/Card-gin.png" },
  ];

  const wanted_especialists = [
    { name: "Sakazuki Akainu", wanteds: ["capone", "bellamy"], img: "/images/b/b0/Card_akainu.png" },
    { name: "Uta", wanteds: ["nami", "usopp", "jango", "buggy"], img: "/images/2/22/Card_uta.png" },
    { name: "Sabo", wanteds: ["nami", "niji", "mr. 2", "mr. 3", "goldenweek", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "cabaji"], img: "/images/0/04/Card-sabo.png" },
    { name: "Enel", wanteds: ["robin", "usopp", "jango", "cabaji"], img: "/images/8/85/Enel_card.png" },
    { name: "Vinsmoke Reiju", wanteds: ["brook", "bonney", "urouge", "rebecca", "killer", "burgess", "kid", "reiju", "yonji", "baby 5", "mr. 2", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "koala", "kuro", "gin", "mohji", "morgan", "hawkins", "alvida", "crocodile", "cabaji"], img: "/images/2/23/Card-reiju.png" },
    { name: "Portgas D. Ace", wanteds: ["nami", "brook", "chopper", "bonney", "leo", "apoo", "perona", "usopp", "kid", "van augur", "niji", "mr. 3", "mr. 5", "bepo", "arlong", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "mohji"], img: "/images/4/40/Card-ace.png" },
    { name: "Donquixte Doflamingo", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "perona", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "law", "reiju", "yonji", "niji", "ichiji", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "jango", "kuroobi", "koala", "buggy", "gin", "krieg", "mohji", "morgan", "drake", "alvida"], img: "/images/8/8d/Card-doflamingo.png" },
    { name: "Borsalino Kizaru", wanteds: ["capone", "jango", "drake", "alvida"], img: "/images/3/32/Card-kizaru.png" },
    { name: "Trafalgar Law", wanteds: ["luffy", "sanji", "leo", "apoo", "usopp", "kid", "reiju", "yonji", "niji", "ichiji", "baby 5", "doublefinger", "mr. 4", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "buggy", "krieg", "drake", "alvida"], img: "/images/b/b9/Card-law.png" },
    { name: "Carrot", wanteds: ["nami", "chopper", "luffy", "sanji", "leo", "leo", "usopp", "capone", "kid", "van augur", "law", "niji", "ichiji", "mr. 3", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "krieg", "mohji", "drake", "alvida"], img: "/images/8/8d/Card-carrot.png" },
    { name: "Nami (TS)", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "bonney", "leo", "apoo", "urouge", "rebecca", "usopp", "ryuma", "killer", "kid", "law", "reiju", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "mr. 3", "doublefinger", "goldenweek", "mr. 4", "mr. 5", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji"], img: "/images/3/35/Card-namits.png" },
    { name: "Nami", wanteds: ["chopper", "bonney", "leo", "apoo", "burgess", "law", "niji", "mr. 3", "doublefinger", "goldenweek", "mr. 5", "pearl", "hatchan", "buchi", "chew", "jango", "buggy", "krieg", "mohji", "alvida"], img: "/images/0/08/Card-nami.png" },
    { name: "Nico Robin", wanteds: ["nami", "chopper", "leo", "apoo", "usopp", "mr. 3", "arlong", "buchi", "chew", "jango", "buggy", "mohji", "alvida"], img: "/images/3/3f/Card-robin.png" },
    { name: "Nico Robin (TS)", wanteds: ["bonney", "leo", "apoo", "perona", "mr. 3", "buchi", "chew", "jango", "alvida"], img: "/images/b/b0/Card-robints.png" },
    { name: "Bartolomeo", wanteds: ["urouge", "reiju", "pearl", "arlong", "jango", "kuroobi", "koala", "morgan", "drake", "alvida"], img: "/images/a/a9/Card-barto.png" },
    { name: "Marshall D. Teach", wanteds: ["bonney", "perona", "killer", "capone", "mr. 2", "goldenweek", "mr. 5", "pearl", "buchi", "chew", "jango", "buggy", "alvida"], img: "/images/f/ff/Card-kurohige.png" },
    { name: "Crocodile", wanteds: ["nami", "yonji", "mr. 1", "alvida"], img: "/images/5/5d/Card-crocodile.png" },
    { name: "Bartolomew Kuma", wanteds: ["robin", "nami", "brook", "chopper", "franky", "zoro", "luffy", "sanji", "urouge", "rebecca", "usopp", "ryuma", "killer", "burgess", "capone", "kid", "van augur", "yonji", "niji", "ichiji", "baby 5", "mr. 1", "mr. 2", "mr. 3", "doublefinger", "mr. 4", "mr. 5", "bepo", "pearl", "arlong", "hatchan", "buchi", "chew", "jango", "kuroobi", "koala", "buggy", "kuro", "gin", "krieg", "mohji", "morgan", "drake", "hawkins", "alvida", "wapol", "crocodile", "cabaji", "bellamy"], img: "/images/b/b5/Card-kuma.png" },
    { name: "Basil Hawkins", wanteds: ["luffy", "urouge", "yonji", "pearl", "kuroobi", "alvida"], img: "/images/8/89/Card-hawkins.png" },
    { name: "Mohji", wanteds: ["alvida", "bonney", "buggy", "pearl", "van augur"], img: "/images/5/58/Card-mohji.png" },
    { name: "Leo & Mansherry", wanteds: ["alvida", "bonney", "mohji"], img: "/images/d/d9/Card-leo.png" },
  ];

  function filterAndAppend(array, value, id) {
    whoDo = array.filter(
      function (v) {
        return v.wanteds.includes(value);
      }
    );

    $.each(whoDo, function (key, item) {
      $(".wantedPortraits#" + id).append(
        "<div class='wantedPortrait' >" +
        "<img src='" + item.img + "' alt='imagem de " + item.name + "' />" +
        "</div>"
      );
    })
  }

  $("#selectbox-wanted").on("input", function () {
    const value = $(this).val();

    if ($(".wantedPortrait"))
      $(".wantedPortrait").remove();

    filterAndAppend(wanted_shooters, value, "wanted-shooter");
    filterAndAppend(wanted_slashers, value, "wanted-slasher");
    filterAndAppend(wanted_fighters, value, "wanted-fighter");
    filterAndAppend(wanted_especialists, value, "wanted-especialist");
  });
  //------- WANTED ---------

  //------- SKILL TAB ---------
  $('.tab-skill').on('click', function () {
    $('.tab-skill.active').removeClass('active');
    $(this).addClass('active');
    const skillId = $(this).data('skill-id');
    if ($(".skillInfo[data-skill-id=" + skillId + "]")) {
      $(".skillInfo.active").removeClass('active');
      $(".skillInfo[data-skill-id=" + skillId + "]").addClass('active');
    }
  });
  //------- SKILL TAB ---------

  //------- CALCULATOR XP ---------
  const maximum_level = 110;
  const tier_values = {
    "diamond": 1,
    "gold": 1,
    "silver": 2,
    "bronze": 3
  };

  $(".calcXp--tierIcon").on("click", function () {
    $(".calcXp--tierIcon.active").removeClass('active');
    $(this).addClass('active');
  });

  $("#calculate-btn").on('click', function () {
    getNeededPotions();
  });

  function calcMissingXpInPotions() {
    const currentPercentOfXp = $("#char-currentPercentOfXp").val() != "" ? $("#char-currentPercentOfXp").val() : 100;
    const currentLevel = $("#char-level").val() != "" ? $("#char-level").val() : 1;
    const levelToUp = $("#char-levelToUp").val() != "" ? $("#char-levelToUp").val() : 110;
    const charTier = $(".calcXp--tierIcon.active").length != 0 ? tier_values[$(".calcXp--tierIcon.active").attr('id')] : tier_values["gold"];

    const percentToUp = 100 - currentPercentOfXp;
    const currentXp = ((50 * (Math.pow((currentLevel - 1), 3)) - 150 * (Math.pow((currentLevel - 1), 2)) + 400 * (currentLevel - 1)) / 3) + ((50 * Math.pow(currentLevel, 2) - 150 * currentLevel + 200) * percentToUp / 100);
    const desiredXp = (50 * (Math.pow((levelToUp - 1), 3)) - 150 * (Math.pow((levelToUp - 1), 2)) + 400 * (levelToUp - 1)) / 3;
    const missingXp = Math.round((desiredXp - currentXp));

    const missingPotions = {
      "small": Math.ceil((missingXp / (1000 * charTier))),
      "medium": (missingXp / (10000 * charTier)).toFixed(1),
      "big": (missingXp / (100000 * charTier)).toFixed(2)
    };

    return missingPotions;
  }

  function calcPotions() {
    const missingPotions = calcMissingXpInPotions();

    var complementaryPotS;
    var complementaryPotM;
    potS = missingPotions['small'];
    potM = missingPotions['medium'];
    potB = missingPotions['big'];

    if (String(potS).slice(-1) == "0") {
      potM = Math.ceil(parseFloat(potM));
    } else {
      potM = Math.floor(potM);
      complementaryPotS = potS - potM * 10;
    }

    if (String(potM).slice(-1) == "0") {
      potM = Math.ceil((parseFloat(potM)));
      potB = Math.floor(potB);
    }
    else {
      potB = Math.floor(potB)
      complementaryPotM = potM - potB * 10
    }

    const potions = {
      "small": complementaryPotS,
      "medium": complementaryPotM,
      "big": potB
    }

    return potions;
  }

  function getNeededPotions() {
    const potions = calcPotions();
    const resultsArea = $("#calc-result");

    resultsArea.html('');

    if (potions["big"]) {
      resultsArea.append(
        "<div class='badge'>" +
        "<img src='/images/a/a5/Bigexppot.png' class='calcXp--xpIcon' />" +
        "<span class='calcXp--numberOfPots'>" + potions['big'] + "</span>" +
        "</div>"
      );
    }


    if (potions["medium"]) {
      resultsArea.append(
        "<div class='badge'>" +
        "<img src='/images/d/df/Medexppot.png' class='calcXp--xpIcon' />" +
        "<span class='calcXp--numberOfPots'>" + potions['medium'] + "</span>" +
        "</div>"
      );
    }


    if (potions["small"]) {
      resultsArea.append(
        "<div class='badge'>" +
        "<img src='/images/5/5a/Smallexppot.png' class='calcXp--xpIcon' />" +
        "<span class='calcXp--numberOfPots'>" + potions['small'] + "</span>" +
        "</div>"
      );
    }
  }
  //------- CALCULATOR XP ---------

  //------- VIDEO SELECTOR ---------
  $(".video-selector").on("click", function () {
    $(".video-selector.active").removeClass("active");
    $(this).addClass("active");

    const value = $(this).data("value");
    const obj = eval('(' + value + ')');
    $("video[data-type-" + obj.select + "].active").removeClass('active');
    const index = obj.showId - 1;
    $("video[data-type-" + obj.select + "]").eq(index).addClass('active');
  });
  //------- VIDEO SELECTOR ---------
  //-------- gurren
  $(document).ready(function () {
    // Alternar entre mostrar e ocultar abas ao clicar
    $('.mostrar-aba').click(function () {
      var aba_id = $(this).attr('data-aba');
      var aba_selecionada = $("#aba-" + aba_id);

      if (aba_selecionada.hasClass('atual')) {
        aba_selecionada.removeClass('atual'); // Oculta a aba se já estiver ativa
        $(this).removeClass('ativa'); // Remove a classe ativa do botão
      } else {
        $('.aba').removeClass('atual'); // Oculta todas as abas
        aba_selecionada.addClass('atual'); // Exibe a aba correspondente
        $('.mostrar-aba').removeClass('ativa'); // Remove a classe ativa de outros botões
        $(this).addClass('ativa'); // Adiciona a classe ativa ao botão clicado
      }
    });

    // Exibir aba correspondente ao hash da URL
    var url = location.href;
    var hash = url.split('#')[1];
    if (hash != null && hash.length > 0) {
      $("#aba-" + hash).addClass('atual'); // Exibe a aba do hash
      $('*[data-aba="' + hash + '"]').addClass('ativa'); // Ativa o botão correspondente
    }
  });
});


//------- 2222222222222222222222222222222222222222222222222222222222222222222222 ---------
/*
(function () {
    'use strict';

    var STORAGE_KEY = 'gla-wiki-theme';
    var DARK_CLASS = 'gla-dark-mode';
    var BUTTON_ID = 'gla-darkmode-toggle';

    function getSavedTheme() {
        try {
            return localStorage.getItem(STORAGE_KEY);
        } catch (e) {
            return null;
        }
    }

    function saveTheme(theme) {
        try {
            localStorage.setItem(STORAGE_KEY, theme);
        } catch (e) {
            // Ignora caso o navegador bloqueie localStorage
        }
    }

    function isDarkMode() {
        return document.documentElement.classList.contains(DARK_CLASS);
    }

    function applyTheme(theme) {
        var dark = theme === 'dark';

        document.documentElement.classList.toggle(DARK_CLASS, dark);

        if (document.body) {
            document.body.classList.toggle(DARK_CLASS, dark);
        }

        updateButton();
    }

    function updateButton() {
        var button = document.getElementById(BUTTON_ID);

        if (!button) {
            return;
        }

        var dark = isDarkMode();

        button.setAttribute('aria-pressed', dark ? 'true' : 'false');
        button.setAttribute('title', dark ? 'Alternar para modo claro' : 'Alternar para modo escuro');

        button.innerHTML = dark
            ? '<span class="gla-darkmode-icon">☀</span><span class="gla-darkmode-text">Modo claro</span>'
            : '<span class="gla-darkmode-icon">☾</span><span class="gla-darkmode-text">Modo escuro</span>';
    }

    function createButton() {
        if (document.getElementById(BUTTON_ID)) {
            return;
        }

        var button = document.createElement('button');

        button.id = BUTTON_ID;
        button.type = 'button';
        button.className = 'gla-darkmode-button';
        button.setAttribute('aria-label', 'Alternar modo escuro');
        button.setAttribute('aria-pressed', isDarkMode() ? 'true' : 'false');

        button.addEventListener('click', function () {
            var nextTheme = isDarkMode() ? 'light' : 'dark';

            saveTheme(nextTheme);
            applyTheme(nextTheme);
        });

        document.body.appendChild(button);
        updateButton();
    }

    function ready(fn) {
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', fn);
        } else {
            fn();
        }
    }

    var savedTheme = getSavedTheme();

    if (savedTheme === 'dark') {
        document.documentElement.classList.add(DARK_CLASS);
    }

    ready(function () {
        if (savedTheme === 'dark') {
            document.body.classList.add(DARK_CLASS);
        }

        createButton();
        updateButton();
    });
})();
*/
/**
* Script JavaScript para o componente de abas MediaWiki
* Adicione este script na sua MediaWiki (Common.js ou página de scripts)
*/

(function () {
  'use strict';

  // Inicializa todos os componentes de abas na página
  function initTabbers() {
    const tabbers = document.querySelectorAll('[data-tabber]');

    tabbers.forEach(function (tabber) {
      const tabs = tabber.querySelectorAll('.mw-tabber-tab');
      const panels = tabber.querySelectorAll('.mw-tabber-panel');

      tabs.forEach(function (tab) {
        tab.addEventListener('click', function () {
          const targetTab = this.getAttribute('data-tab');

          // Remove classe active de todas as abas
          tabs.forEach(function (t) {
            t.classList.remove('active');
          });

          // Remove classe active de todos os painéis
          panels.forEach(function (p) {
            p.classList.remove('active');
          });

          // Adiciona classe active na aba clicada
          this.classList.add('active');

          // Adiciona classe active no painel correspondente
          const targetPanel = tabber.querySelector('[data-panel="' + targetTab + '"]');
          if (targetPanel) {
            targetPanel.classList.add('active');
          }
        });
      });
    });
  }

  // Inicializa quando o DOM estiver pronto
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initTabbers);
  } else {
    initTabbers();
  }

});

/* =============================================================================
   GLA language switch (glaLang) - global toggle + page panes + gla:langChanged
   Contrato: localStorage "glaLang" (pt-br | en), evento window "gla:langChanged"
   ============================================================================= */
(function () {
  'use strict';

  var STORAGE_KEY = 'glaLang';
  var UI_LANGS = ['pt-br', 'en'];
  var FLAG_IMG = {
    'pt-br': 'https://wiki.gla.com.br/images/8/8c/Brazil.png',
    'en': 'https://wiki.gla.com.br/images/0/0a/Usa.png'
  };

  function normalizeLang(s) {
    s = (s || '').toLowerCase();
    if (s === 'pt-br' || s === 'pt_br' || s === 'ptbr' || s === 'pt') return 'pt';
    return (s.split('-')[0] || 'pt');
  }

  function toLangTag(langFull) {
    var tag = (langFull || 'pt-br').toLowerCase();
    if (tag === 'pt') return 'pt-br';
    return UI_LANGS.indexOf(tag) >= 0 ? tag : 'pt-br';
  }

  function paneMatches(paneLang, langTag) {
    var pane = (paneLang || '').toLowerCase();
    var tag = (langTag || 'pt-br').toLowerCase();
    if (pane === tag) return true;
    if ((pane === 'pt' || pane === 'pt-br') && (tag === 'pt' || tag === 'pt-br')) return true;
    return pane.split('-')[0] === tag.split('-')[0];
  }

  function getStored() {
    try {
      var saved = (localStorage.getItem(STORAGE_KEY) || '').toLowerCase();
      if (saved && UI_LANGS.indexOf(saved) >= 0) return saved;
    } catch (e) { }
    return 'pt-br';
  }

  function markFlags(langTag) {
    document.querySelectorAll('.gla-lang-flag[data-lang]').forEach(function (btn) {
      btn.classList.toggle('active', paneMatches(btn.getAttribute('data-lang'), langTag));
    });
  }

  function updatePanes(langTag) {
    document.querySelectorAll('.gla-i18n').forEach(function (wrap) {
      var mode = (wrap.getAttribute('data-gla-i18n-mode') || 'panes').toLowerCase();
      if (mode === 'client') return;
      var panes = wrap.querySelectorAll(':scope > .gla-i18n-pane');
      if (!panes.length) return;
      panes.forEach(function (pane) {
        var show = paneMatches(pane.getAttribute('data-lang'), langTag);
        pane.hidden = !show;
        pane.style.display = show ? '' : 'none';
      });
    });
  }

  function applyLang(langFull, opts) {
    opts = opts || {};
    var langTag = toLangTag(langFull);
    var norm = normalizeLang(langTag);

    document.documentElement.lang = langTag;
    document.documentElement.setAttribute('data-gla-lang', norm);
    try {
      localStorage.setItem(STORAGE_KEY, langTag);
    } catch (e) { }

    markFlags(langTag);
    updatePanes(langTag);

    if (opts.silent !== true) {
      try {
        window.dispatchEvent(new CustomEvent('gla:langChanged', { detail: { norm: norm, tag: langTag } }));
      } catch (e2) { }
    }

    return norm;
  }

  function pageHasI18n() {
    return !!document.querySelector(
      '[data-gla-i18n], .gla-i18n, .item-wrapper, .item-tooltip-enc, ' +
      '.gla-item-chip, .gla-quest-item-chip, [data-gla-item-chip], .character-box'
    );
  }

  function shouldShowToggle() {
    return pageHasI18n();
  }

  function injectToggle() {
    if (!shouldShowToggle() || document.getElementById('pt-langtoggle')) {
      return;
    }

    var ul = document.querySelector('#p-personal .vector-menu-content-list') ||
      document.querySelector('#p-personal ul');
    if (!ul) return;

    var li = document.createElement('li');
    li.id = 'pt-langtoggle';
    li.className = 'mw-list-item';

    var group = document.createElement('span');
    group.className = 'gla-lang-toggle';
    group.setAttribute('role', 'group');
    group.setAttribute('aria-label', 'Language');

    UI_LANGS.forEach(function (code) {
      var btn = document.createElement('button');
      btn.type = 'button';
      btn.className = 'gla-lang-flag';
      btn.setAttribute('data-lang', code);
      btn.title = code === 'pt-br' ? 'Português (Brasil)' : 'English';
      btn.setAttribute('aria-label', btn.title);
      var img = document.createElement('img');
      img.src = FLAG_IMG[code] || '';
      img.alt = '';
      img.width = 24;
      img.height = 16;
      btn.appendChild(img);
      group.appendChild(btn);
    });

    li.appendChild(group);

    var anchor = document.getElementById('pt-darkmode');
    if (anchor && anchor.parentNode === ul) {
      anchor.insertAdjacentElement('afterend', li);
    } else {
      ul.insertBefore(li, ul.firstChild);
    }
  }

  function bindToggle() {
    if (window.glaLangToggleBound) return;
    window.glaLangToggleBound = true;

    document.addEventListener('click', function (e) {
      var btn = e.target.closest('.gla-lang-flag[data-lang]');
      if (!btn) return;
      e.preventDefault();
      applyLang(btn.getAttribute('data-lang') || 'pt-br');
    });
  }

  function boot() {
    if (pageHasI18n()) {
      document.body.classList.add('gla-i18n-page');
    }
    injectToggle();
    bindToggle();
    applyLang(getStored(), { silent: true });
    try {
      window.dispatchEvent(new CustomEvent('gla:langChanged', {
        detail: { norm: normalizeLang(getStored()), tag: getStored() }
      }));
    } catch (e) { }
  }

  window.glaLang = {
    STORAGE_KEY: STORAGE_KEY,
    UI_LANGS: UI_LANGS,
    normalizeLang: normalizeLang,
    toLangTag: toLangTag,
    getStored: getStored,
    getNorm: function () {
      return normalizeLang(document.documentElement.lang || getStored());
    },
    getWidgetLang: function () {
      return this.getNorm() === 'en' ? 'en' : 'pt';
    },
    applyLang: applyLang
  };

  window.glaLangBoot = boot;

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', boot);
  } else {
    boot();
  }
  window.addEventListener('load', boot);

  var tries = 0;
  var retryTimer = setInterval(function () {
    if (document.getElementById('pt-langtoggle') || !shouldShowToggle() || tries++ > 40) {
      clearInterval(retryTimer);
      return;
    }
    injectToggle();
  }, 150);
})();