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

De Wiki Gla
Ir para navegação Ir para pesquisar
Etiqueta: Revertido
(319 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */
  $(document).ready(function() {
 
  //------- 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 ---------
 
  //------- COUNTDOWN MAINPAGE---------
 
  /*
  O countdown é um codigo pega a data e hora do computador do usuario e aplica um calculo
  para adaptar o mesmo ao fuso horario de brasilia, após isso ele verifica os eventos do
  dia começa uma contagem regressiva com base na diferença do horario do computador do
  usuario com a do evento.
  */
 
  const timer = $('#event-time');
  const eventImage = $('.event-image'); 
  //Informações dos eventos
          /*
            0 - Sunday
            1 - Monday
            2 - Tuesday
            3 - Wednesday
            4 - Thursday
            5 - Friday
            6 - Saturday
          */
  const eventsInfo = {
  0: [
  {name: 'Foxy race (ship)', time: '09:30:00', src: '/images/c/c0/Event_ship.png'},
  {name: 'Foxy count', time: '15:00:00', src: '/images/e/e4/Event_count.png'},
  {name: 'Foxy quiz', time: '19:00:00', src: '/images/6/6f/Event_quiz.png'},
  {name: 'Deathmatch', time: '22:00:00', src: '/images/8/84/Event_dm.png'},
  ],
  1: [
  {name: 'Foxy count', time: '09:30:00', src: '/images/e/e4/Event_count.png'},
  {name: 'Foxy quiz', time: '15:00:00', src: '/images/6/6f/Event_quiz.png'},
  {name: 'Deathmatch', time: '19:00:00', src: '/images/8/84/Event_dm.png'},
  {name: 'Foxy race (ship)', time: '22:00:00', src: '/images/c/c0/Event_ship.png'},
  ],
  2: [
  {name: 'Foxy quiz', time: '09:30:00', src: '/images/6/6f/Event_quiz.png'},
  {name: 'Deathmatch', time: '15:00:00', src: '/images/8/84/Event_dm.png'},
  {name: 'Foxy race', time: '19:00:00', src: '/images/0/03/Event_race.png'},
  {name: 'Foxy count', time: '22:00:00', src: '/images/e/e4/Event_count.png'},
  ],
  3: [
  {name: 'Deathmatch', time: '09:30:00', src: '/images/8/84/Event_dm.png'},
  {name: 'Foxy race (ship)', time: '15:00:00', src: '/images/c/c0/Event_ship.png'},
  {name: 'Foxy count', time: '19:00:00', src: '/images/e/e4/Event_count.png'},
  {name: 'Foxy quiz', time: '22:00:00', src: '/images/6/6f/Event_quiz.png'},
  ],
  4: [
  {name: 'Foxy race', time: '09:30:00', src: '/images/0/03/Event_race.png'},
  {name: 'Foxy count', time: '15:00:00', src: '/images/e/e4/Event_count.png'},
  {name: 'Foxy quiz', time: '19:00:00', src: '/images/6/6f/Event_quiz.png'},
  {name: 'Deathmatch', time: '22:00:00', src: '/images/8/84/Event_dm.png'},
  ],
  5: [
  {name: 'Foxy count', time: '09:30:00', src: '/images/e/e4/Event_count.png'},
  {name: 'Foxy quiz', time: '15:00:00', src: '/images/6/6f/Event_quiz.png'},
  {name: 'Deathmatch', time: '19:00:00', src: '/images/8/84/Event_dm.png'},
  {name: 'Foxy race (ship)', time: '22:00:00', src: '/images/c/c0/Event_ship.png'},
  ],
  6: [
  {name: 'Foxy quiz', time: '09:30:00', src: '/images/6/6f/Event_quiz.png'},
  {name: 'Deathmatch', time: '15:00:00', src: '/images/8/84/Event_dm.png'},
  {name: 'Foxy race', time: '19:00:00', src: '/images/0/03/Event_race.png'},
  {name: 'Foxy count', time: '22:00:00', src: '/images/e/e4/Event_count.png'},
  ]
  };
   
const brazilOffset = -3;
  const eventTime = new Date();
  const eventStarting = new Date();            
  var haveEvent = false;


// <source lang="javascript">
  function pad(d) {
    return (d < 10) ? '0' + String(d) : String(d);
  }
 
  function startTimer(eventTime, name){
interval = setInterval(function() {
const now = new Date().getTime();
  const distance = eventTime.getTime() - now;
 
  if(distance > 0){
  const hour = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  const minute = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  const seconds = Math.floor((distance % (1000 * 60)) / 1000);
 
  timer.html(pad(hour) + ":" + pad(minute) + ":" + pad(seconds));                   
  }else {
                    haveEvent = false;
  setDayEvents();
  clearInterval(interval);
  }
  }, 1000);
}
 
  function setDayEvents () { 
const date = new Date();
const dayEvents = eventsInfo[date.getDay()];            
  const utcTime = date.getTime() + (date.getTimezoneOffset() * 60000);
  const currentTime = new Date(utcTime + (3600000 * brazilOffset));             


/*
$.each(dayEvents, function (key, item) {
  Cross-browser tooltip support for MediaWiki.
  split = item.time.split(":");
 
  eventTime.setHours(split[0], split[1], split[2]);
  Author: [[User:Lupo]], March 2008
  eventStarting.setHours(split[0], (Number(split[1]) + 5), split[2]);  
  License: Quadruple licensed GFDL, GPL, LGPL and Creative Commons Attribution 3.0 (CC-BY-3.0)
 
  Choose whichever license of these you like best :-)


  Based on ideas gleaned from prototype.js and prototip.js.
  if(currentTime.getTime() <= eventTime.getTime()){
  http://www.prototypejs.org/
eventImage.attr('src', item.src);    
  http://www.nickstakenburg.com/projects/prototip/
                    haveEvent = true;
  However, since prototype is pretty large, and prototip had some
startTimer(eventTime);
  problems in my tests, this stand-alone version was written.
 
  Note: The fancy effects from scriptaculous have not been rebuilt.
  http://script.aculo.us/
 
  See http://commons.wikimedia.org/wiki/MediaWiki_talk:Tooltips.js for
  more information including documentation and examples.
*/


var is_IE      = !!window.ActiveXObject;
  return false;
  }else if(currentTime.getTime() > eventTime.getTime() && currentTime.getTime() < eventStarting.getTime()){
  eventImage.attr('src', item.src);
  timer.html('O evento está começando!');
haveEvent = true;
 
setTimeout(function(){
haveEvent = false;
return false;
}, 300000);
  }
  });                       
       
if(!haveEvent){
eventImage.attr('src', "/images/a/a5/AnyEvent.png");
  timer.html('');
}
  }
if(!haveEvent)
        setDayEvents();


var EvtHandler = {
//------- COUNTDOWN MAINPAGE---------
  listen_to : function (object, node, evt, f)
  {
    var listener = EvtHandler.make_listener (object, f);
    EvtHandler.attach (node, evt, listener);
  },
 
  attach : function (node, evt, f)
  {
    if (node.attachEvent) node.attachEvent ('on' + evt, f);
    else if (node.addEventListener) node.addEventListener (evt, f, false);
    else node['on' + evt] = f;
  },
 
  remove : function (node, evt, f)
  {
    if (node.detachEvent) node.detachEvent ('on' + evt, f);
    else if (node.removeEventListener) node.removeEventListener (evt, f, false);
    else node['on' + evt] = null;
  },
 
  make_listener : function (obj, listener)
  {
    // Some hacking around to make sure 'this' is set correctly
    var object = obj, f = listener;
    return function (evt) { return f.apply (object, [evt || window.event]); }
  },


  mouse_offset : function ()
//------- PERSONAGENS ---------
  {
    // IE does some strange things...
    // This is adapted from dojo 0.9.0, see http://dojotoolkit.org
    if (is_IE) {
      var doc_elem = document.documentElement;
      if (doc_elem) {
        if (typeof (doc_elem.getBoundingClientRect) == 'function') {
          var tmp = doc_elem.getBoundingClientRect ();
          return {x : tmp.left, y : tmp.top};
        } else {
          return {x : doc_elem.clientLeft, y : doc_elem.clientTop};
        }
      }
    }
    return null;
  },
 
  killEvt : function (evt)
  {
    if (typeof (evt.preventDefault) == 'function') {
      evt.stopPropagation ();
      evt.preventDefault (); // Don't follow the link
    } else if (typeof (evt.cancelBubble) != 'undefined') { // IE...
      evt.cancelBubble = true;
    }
    return false; // Don't follow the link (IE)
  }


} // end EvtHandler
const characters = [
{name: "Aokiji Dio", types: ["slasher", "especialist", "tank", "marine", "diamond"], 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: "Chopper (TS) Mathzs", 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 Horus", 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)", 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)", 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: "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", 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", 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 Rasky", types: ["fighter", "bruiser", "gold", "break_wall", "bridge"], link: "/Hina",img: "/images/5/57/Card-hina.png"},
    {name: "Jesus Burguess", 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 Miza", 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", 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", 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", "specialist", "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 Bajin", 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", "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');
}
});


var Buttons = {
$('#f-input').keypress(function (e) {
 
const key = e.which;
  buttonClasses : {},
if(key == 13)  // the enter key code
 
  {
  createCSS : function (imgs, sep, id)
    $('.filter--searchButton').click();
  {
    return false;
    var width  = imgs[0].getAttribute ('width');
  }
    var height  = imgs[0].getAttribute ('height');
});   
    try {
      // The only way to set the :hover and :active properties through Javascript is by
      // injecting a piece of CSS. There is no direct access within JS to these properties.
      var sel1  = "a" + sep + id;
      var prop1 = "border:0; text-decoration:none; background-color:transparent; "
                + "width:" + width + "px; height:" + height + "px; "
                + "display:inline-block; "
                + "background-position:left; background-repeat:no-repeat; "
                + "background-image:url(" + imgs[0].src + ");";
      var sel2  = null, prop2 = null, sel3  = null, prop3 = null; // For IE...
      var css  = sel1 + ' {' + prop1 + '}\n';                    // For real browsers
      if (imgs.length > 1 && imgs[1]) {
        sel2  = "a" + sep + id + ":hover";
        prop2 = "background-image:url(" + imgs[1].src + ");";
        css  = css + sel2 + ' {' + prop2 + '}\n';
      }
      if (imgs.length > 2 && imgs[2]) {
        sel3 = "a" + sep + id + ":active"
        prop3 = "background-image:url(" + imgs[2].src + ");";
        css  = css + sel3 + ' {' + prop3 + '}\n';
      }
      // Now insert a style sheet with these properties into the document (or rather, its head).
      var styleElem = document.createElement( 'style' );
      styleElem.setAttribute ('type', 'text/css');
      try {
        styleElem.appendChild (document.createTextNode (css));
        document.getElementsByTagName ('head')[0].appendChild (styleElem);
      } catch (ie_bug) {
        // Oh boy, IE has a big problem here
        document.getElementsByTagName ('head')[0].appendChild (styleElem);
//        try {
          styleElem.styleSheet.cssText = css;
/*
        } catch (anything) {
          if (document.styleSheets) {
            var lastSheet = document.styleSheets[document.styleSheets.length - 1];         
            if (lastSheet && typeof (lastSheet.addRule) != 'undefined') {
              lastSheet.addRule (sel1, prop1);
              if (sel2) lastSheet.addRule (sel2, prop2);
              if (sel3) lastSheet.addRule (sel3, prop3);
            }
          }
        }
*/
      }
    } catch (ex) {
      return null;
    }
    if (sep == '.') {
      // It's a class: remember the first image
      Buttons.buttonClasses[id] = imgs[0];
    }
    return id;
  }, // end createCSS
 
  createClass : function (imgs, id)
  {
    return Buttons.createCSS (imgs, '.', id);
  },
 
  makeButton : function (imgs, id, handler, title)
  {
    var success    = false;
    var buttonClass = null;
    var content    = null;
    if (typeof (imgs) == 'string') {
      buttonClass = imgs;
      content    = Buttons.buttonClasses[imgs];
      success    = (content != null);
    } else {
      success    = (Buttons.createCSS (imgs, '#', id) != null);
      content    = imgs[0];
    }
    if (success) {
      var lk = document.createElement ('a');
      lk.setAttribute
        ('title', title || content.getAttribute ('alt') || content.getAttribute ('title') || "");
      lk.id = id;
      if (buttonClass) lk.className = buttonClass;
      if (typeof (handler) == 'string') {
        lk.href = handler;
      } else {
        lk.href = '#'; // Dummy, overridden by the onclick handler below.
        lk.onclick = function (evt)
          {
            var e = evt || window.event; // W3C, IE
            try {handler (e);} catch (ex) {};
            return EvtHandler.killEvt (e);
          };
      }
      content = content.cloneNode (true);
      content.style.visibility = 'hidden';
      lk.appendChild (content);
      return lk;
    } else {
      return null;
    }
  } // end makeButton
    
} // end Button


var Tooltips = {
//------- PERSONAGENS ---------
  // Helper object to force quick closure of a tooltip if another one shows up.
  debug    : false, 
  top_tip  : null,
  nof_tips : 0,


  new_id : function ()
//------- WANTED ---------
  {
const wanted_slashers = [
    Tooltips.nof_tips++;
    {name: "Roronoa zoro", wanteds: ["alvida", "arlong", "bepo", "buchi", "chew", "cabaji", "drake", "kid", "luffy", "mohji", "mr. 1", "mr. 4", "mr. 5",
    return 'tooltip_' + Tooltips.nof_tips;
    "pearl", "robin", "sanji", "usopp", "urouge", "yonji", "wapol"], img: "/images/6/6f/Card-zoro.png"},
  },
    {name: "Shanks", wanteds: ["alvida", "arlong", "apoo", "buggy", "bepo", "buchi", "burgess", "bellamy", "chew", "cabaji", "chopper", "capone",
      "drake", "franky", "gin", "hatchan", "jango", "koala", "kid", "killer", "krieg", "kuroobi", "kuro", "law", "luffy",
      "mohji", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami", "pearl", "perona", "rebecca", "sanji", "usopp",
      "urouge", "ichiji", "niji", "yonji", "van augur", "wapol", "zoro"], img: "/images/a/aa/Card-shanks.png"},
    {name: "Dracule mihawk", wanteds: ["alvida", "apoo", "buggy", "buchi", "chew", "cabaji", "capone", "drake", "franky", "hawkins", "hatchan",
      "jango", "krieg", "kuroobi", "law", "luffy", "mohji", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami",
      "pearl", "perona", "robin", "ryuma", "sanji", "usopp", "urouge", "ichiji", "niji", "yonji", "van augur",
      "wapol", "zoro"], img: "/images/9/91/Card-mihawk.png"},
    {name: "Killer", wanteds: ["alvida", "buggy", "jango", "pearl", "rebecca", "van augur"], img: "/images/b/b2/Card-killer.png"},
    {name: "Tashigi", wanteds: ["alvida", "apoo", "bonney", "bellamy", "gin", "hawkins", "koala", "kid", "killer", "luffy", "mohji", "mr. 2",
        "mr. 4", "mr. 5", "goldenweek", "pearl", "sanji", "urouge", "reiju", "wapol"], img: "/images/b/b8/Card-tashigi.png"},
    {name: "Roronoa zoro (TS)", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "buchi", "brook", "chew", "chopper", "capone", "drake",
      "franky", "gin", "hawkins", "hatchan", "hatchan", "jango", "koala", "krieg", "kuroobi", "law", "leo",
      "luffy", "mohji", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "perona", "robin",
      "sanji", "usopp", "urouge", "ichiji", "wapol"], img: "/images/7/74/Card-zorots.png"},
    {name: "Rebbeca", wanteds: ["alvida", "buggy", "buchi", "bellamy", "chew", "cabaji", "capone", "drake", "franky", "gin", "killer", "krieg",
    "kuroobi", "kuro", "law", "luffy", "mr. 2", "mr. 4", "mr. 5", "nami", "pearl", "sanji", "usopp", "urouge", "niji",
        "yonji", "van augur", "wapol", "ryuma", "doublefinger"], img: "/images/9/91/Card-rebecca.png"},
    {name: "Carrot", wanteds: ["alvida", "arlong", "buchi", "chew", "chopper", "capone", "drake", "franky", "hawkins", "hatchan", "jango", "kid", "krieg",
      "kuroobi", "law", "leo", "luffy", "mohji", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "robin", "sanji",
      "usopp", "urouge", "ichiji", "niji", "van augur", "zoro"], img: "/images/8/8d/Card-carrot.png"},
    {name: "Ryuuma", wanteds: ["alvida", "buggy", "bepo", "buchi", "brook", "burgess", "cabaji", "chopper", "drake", "franky", "gin", "hatchan",
      "jango", "koala", "kid", "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami",
      "pearl", "perona", "sanji", "urouge", "niji", "yonji", "wapol", "zoro"], img: "/images/a/ac/Card-ryuma.png"},
    {name: "Trafalga law", wanteds: ["alvida", "arlong", "apoo", "buggy", "buchi", "brook", "burgess", "chew", "drake", "franky", "hawkins", "hatchan",
    "jango", "kid", "krieg", "kuroobi", "leo", "luffy", "mohji", "mr. 1", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami",
    "pearl", "perona", "robin", "sanji", "usopp", "urouge", "ichiji", "niji", "reiju", "ryuma", "yonji", "wapol"], img: "/images/b/b9/Card-law.png"},
    {name: "Mr. 1", wanteds: ["alvida", "arlong", "bepo", "buchi", "bellamy", "chew", "cabaji", "capone", "gin", "killer", "krieg", "kuroobi", "kuro",
      "law", "mohji", "mr. 2", "mr. 4", "mr. 5", "nami", "pearl", "perona", "niji", "doublefinger"], img: "/images/6/61/Card-dazbonez.png"},
    {name: "Bastille", wanteds: ["alvida", "arlong", "buchi", "bellamy", "cabaji", "chopper", "gin", "kuro", "law", "mr. 5", "perona", "doublefinger"], img: "/images/1/13/Card-bastille.png"},
    {name: "Dalmatian", wanteds: ["alvida", "buchi", "capone", "kuroobi", "mohji", "mr. 2", "mr. 4", "mr. 5", "pearl", "perona", "urouge"], img: "/images/9/99/Card-dalmatian.png"},
    {name: "Morgan", wanteds: ["alvida"], img: "/images/4/43/Card-morgan.png"},
    {name: "Cabaji", wanteds: ["alvida", "chew", "chopper", "drake", "gin", "hatchan", "jango", "mr. 4", "goldenweek", "nami"], img: "/images/9/9d/Card-cabaji.png"},
    {name: "Kuro", wanteds: ["alvida", "buchi", "jango", "koala", "krieg", "mohji", "nami", "pearl"], img: "/images/3/3d/Card-kuro.png"},
    {name: "Eric", wanteds: ["alvida", "apoo", "jango", "mr. 3", "mr. 5", "goldenweek", "usopp"], img: "/images/3/31/Card-eric.png"},
    {name: "Miss doublefinger", wanteds: ["alvida", "bonney", "buchi", "burgess", "chopper", "capone", "drake", "hawkins", "kid", "kuroobi", "luffy",
      "mohji", "mr. 1", "mr. 4", "goldenweek", "doublefinger", "pearl", "rebecca", "sanji", "usopp", "urouge", "yonji", "wapol"], img: "/images/5/5f/Card-doublefinger.png"},
];
const wanted_shooters = [
{name: "Capone gang", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy",
"chew", "chopper", "franky", "hawkins", "hatchan", "jango", "koala", "krieg", "kuroobi", "kuro",
"law", "leo", "luffy", "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "van augur",
"nami", "pearl", "robin", "rebecca", "sanji", "usopp", "ichiji", "niji", "reiju", "yonji",
"wapol"], img: "/images/c/c0/Card-capone.png"},
{name: "Franky", wanteds: ["alvida", "buggy", "buchi", "burgess", "cabaji", "chopper", "capone", "hawkins", "koala", "mohji",
  "pearl", "sanji", "niji", "yonji", "wapol"], img: "/images/6/61/Card-franky.png"},
{name: "Eustass kid", wanteds: ["alvida", "buchi", "burgess", "bellamy", "cabaji", "chopper", "capone", "gin", "hawkins","koala",
"kid", "krieg", "kuro", "luffy", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "doublefinger",
"pearl", "perona", "rebecca", "usopp", "ichiji", "yonji", "kid", "wapol"], img: "/images/9/9a/Card-kid.png"},
{name: "Van augur", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "chew",
  "chopper", "capone", "drake", "franky", "hawkins", "hatchan", "jango", "koala", "killer",
  "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5",
  "goldenweek", "nami", "pearl", "robin", "usopp", "urouge", "ichiji", "niji", "reiju",
  "yonji", "van augur", "wapol"], img: "/images/c/c7/Card-vanaugur.png"},
    {name: "Portgas D. Ace", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy",
      "chew", "cabaji", "chopper", "capone", "drake", "franky", "gin", "hawkins", "hatchan", "jango",
      "koala", "kid", "killer", "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 3",
      "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "perona", "usopp", "urouge", "ichiji", "niji",
      "reiju", "yonji", "van augur", "wapol", "zoro"], img: "/images/4/40/Card-ace.png"},
    {name: "Usopp (TS)", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy", "chew",
      "chopper", "drake", "franky", "hawkins", "hatchan", "jango", "krieg", "kuroobi", "law", "leo", "luffy",
      "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "perona", "rebecca", "ryuma",
      "ryuma", "usopp", "ichiji", "niji", "reiju", "yonji", "van augur", "wapol", "zoro"], img: "/images/c/cc/Card-usoppts.png"},
    {name: "Doflamingo", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "burgess", "bellamy", "chew",
      "cabaji", "chopper", "capone", "drake", "franky", "gin", "hawkins", "hatchan", "jango", "koala", "kid", "killer",
      "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger",
      "nami", "pearl", "perona", "robin", "ryuma", "sanji", "usopp", "urouge", "ichiji", "niji", "reiju", "yonji", "van augur",
      "wapol", "zoro"], img: "/images/8/8d/Card-doflamingo.png"},
    {name: "Buggy", wanteds: ["alvida", "buchi", "chew", "chopper", "mr. 5"], img: "/images/c/ca/Card-buggy.png"},
    {name: "Niji", wanteds: ["alvida", "apoo", "buchi", "chew", "cabaji", "jango", "mr. 3", "reiju", "van augur"], img: "/images/6/66/Card-niji.png"},
    {name: "Wapol", wanteds: ["mohji", "arlong", "buchi", "hawkins", "kid", "kuroobi", "mr. 1", "mr. 4", "pearl", "perona", "rebecca", "yonji", "wapol"], img: "/images/b/ba/Card-wapol.png"},
    {name: "Franky (TS)", wanteds: ["alvida", "arlong", "buchi", "burgess", "bellamy", "cabaji", "chopper", "capone", "gin",
    "hawkins", "koala", "kid", "killer", "kuro", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "doublefinger",
    "pearl", "perona", "rebecca", "usopp", "ichiji", "yonji", "wapol", "zoro"], img: "/images/d/d0/Card-frankyts.png"},
    {name: "Borsalino Kizaru", wanteds: ["alvida", "drake", "jango"], img: "/images/3/32/Card-kizaru.png"},
    {name: "Don krieg", wanteds: ["alvida", "apoo", "bonney", "buggy", "buchi", "brook", "burgess", "chew", "chopper", "capone", "drake", "hatchan",
      "jango", "leo", "mohji", "mr. 3", "mr. 5", "goldenweek", "reiju"], img: "/images/8/8f/Card-krieg.png"},
    {name: "Eric", wanteds: ["alvida", "apoo", "brook", "jango", "mr. 3", "mr. 5", "usopp"], img: "/images/3/31/Card-eric.png"},
    {name: "Mr. 4", wanteds: ["alvida", "buchi", "burgess", "chopper", "hawkins", "zoro"], img: "/images/9/90/Card-mr4.png"},
    {name: "Gin", wanteds: ["alvida", "buchi", "burgess", "cabaji", "chopper", "capone", "drake", "krieg", "mohji", "wapol"], img: "/images/1/18/Card-gin.png"},
    {name: "Chew", wanteds: ["alvida"], img: "/images/0/0f/Card-chew.png"},
    {name: "Usopp", wanteds: ["alvida", "bonney", "buchi", "chopper", "jango", "leo", "perona", "niji"], img: "/images/a/ac/Card-usopp.png"},
];
const wanted_fighters = [
    {name: "X-Drake", wanteds: ["alvida", "arlong", "apoo", "bepo", "buchi", "brook", "burgess", "bonney", "chopper", "cabaji",
  "capone", "drake", "franky", "gin", "hatchan", "koala", "kuroobi", "kuro", "killer", "kid", "krieg",
  "luffy", "mohji", "mr. 1", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "perona", "pearl", "ryuma", "sanji",
  "usopp", "urougue", "ichiji", "yonji", "van augur", "wapol", "zoro"], img: "/images/6/69/Card-drake.png"},
    {name: "Hina", wanteds: ["alvida", "buchi", "cabaji", "killer", "pearl", "perona", "sanji", "usopp"], img: "/images/5/57/Card-hina.png"},
    {name: "Smoker", wanteds: ["arlong", "alvida", "buggy", "bonney", "chopper", "capone", "hawkins", "krieg", "law", "luffy", "mr. 1",
      "mr. 2", "mr. 3", "mr. 3", "mr. 4", "mr. 5", "perona", "robin", "urouge", "van augur", "wapol", "zoro"], img: "/images/f/fb/Card-smoker.png"},
    {name: "Bellamy", wanteds: ["arlong", "alvida", "apoo", "bepo", "buchi", "brook", "burgess", "chopper", "drake", "gin", "kuroobi", "krieg",
    "law", "luffy", "mohji", "mr. 2", "mr. 4", "pearl", "ryuma", "rebecca", "sanji", "usopp", "urouge", "ichiji",
    "yonji", "van augur", "wapol", "zoro"], img: "/images/7/7e/Card-bellamy.png"},  
{name: "Urouge", wanteds: ["alvida", "apoo", "buchi", "cabaji", "chew", "capone", "gin", "hawkins", "hatchan", "jango", "koala",
  "kuroobi", "kuro", "killer", "kid", "krieg", "leo", "law", "luffy", "mohji", "mr. 1", "mr. 2", "mr. 3",
  "mr. 4", "mr. 5", "doublefinger", "goldenweek", "nami", "perona", "pearl", "robin", "ryuma", "rebecca",
  "sanji", "usopp", "urouge", "ichiji", "niji", "reiju", "yonji", "van augur", "wapol", "zoro"], img: "/images/9/98/Card-urouge.png"},   
{name: "Hancock", wanteds: ["alvida", "buggy" ,"buchi", "brook", "cabaji", "drake", "jango", "mr. 4", "mr. 5", "pearl", "ichiji", "wapol"], img: "/images/4/47/Card-hancock.png"},
{name: "Yonji", wanteds: ["kuro"], img: "/images/7/73/Card-yonji.png"},
{name: "Ichiji", wanteds: ["alvida", "apoo", "buggy", "buchi", "chew", "capone", "jango", "mr. 5", "pearl", "robin", "rebecca", "usopp", "wapol"], img: "/images/8/8c/Card-ichiji.png"},
{name: "Mr. 2", wanteds: ["alvida", "bonney", "mr. 3"], img: "/images/2/27/Card-bonchan.png"},
{name: "Sanji (TS)", wanteds: ["alvida", "arlong", "buggy", "bepo", "buchi", "burgess", "chew", "chopper", "drake", "jango", "koala", "killer", "kid", "krieg",
  "law", "leo", "luffy", "mohji", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami", "pearl", "sanji", "usopp", "urouge",
  "wapol"], img: "/images/7/7a/Card-sanjits.png"},
{name: "Luffy (TS)", wanteds: ["alvida", "arlong", "buggy", "bepo", "brook", "burgess", "chopper", "capone", "drake", "franky", "hawkins", "jango", "kuro", "kid",
  "krieg", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "usopp",
  "urouge", "ichiji", "yonji", "wapol", "zoro"], img: "/images/e/ed/Card-luffyts.png"},
{name: "Koala", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "brook", "burgess", "bellamy", "chopper", "drake", "franky", "hawkins", "jango", "kuroobi",
  "kuro", "killer", "law", "luffy", "mohji", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami", "pearl", "sanji", "usopp", "urouge",
  "reiju", "yonji", "wapol"], img: "/images/f/f3/Card-koala.png"},  
  {name: "Burgess", wanteds: ["alvida", "arlong", "buggy", "bepo", "buchi", "bellamy", "chew", "cabaji", "capone", "franky", "gin", "kuroobi","kuro", "killer",
  "kid", "law", "luffy", "mr. 1", "mr. 2", "mr. 4", "doublefinger", "pearl", "rebecca", "ryuma", "usopp", "niji", "yonji", "van augur",
    "zoro"], img: "/images/2/28/Card-burgess.png"},
{name: "Luffy", wanteds: ["alvida", "arlong", "apoo", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy", "chew", "cabaji", "chopper", "drake", "franky",
  "gin", "hawkins", "hatchan", "jango", "koala", "kuroobi", "kuro", "kid", "krieg", "law", "leo", "luffy", "mohji", "mr. 1", "mr. 2",
  "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "perona", "pearl", "rebecca", "ryuma", "sanji", "usopp", "urouge", "ichiji",
  "niji", "yonji", "van augur", "wapol", "zoro"], img: "/images/a/af/Card-luffy.png"},
{name: "Bepo", wanteds: ["arlong", "alvida", "buchi", "cabaji", "drake", "jango", "kuro", "luffy", "mohji", "goldenweek", "pearl", "sanji", "wapol", "zoro"], img: "/images/1/1d/Card-bepo.png"},
{name: "Sanji", wanteds: ["alvida", "buggy", "buchi", "jango", "mr. 4", "usopp", "wapol"], img: "/images/0/04/Card-sanji.png"},
{name: "Arlong", wanteds: ["alvida"], img: "/images/1/1e/Card-arlong.png"},
{name: "Gin", wanteds: ["alvida", "buchi", "burgess", "drake", "gin", "krieg", "mr. 5", "van augur", "wapol"], img: "/images/1/18/Card-gin.png"},
];
const wanted_especialists = [
    {name: "Vinsmoke Reiju", wanteds: ["alvida", "arlong", "bonney", "brook", "burgess", "bellamy", "cabaji", "gin", "hatchan", "kid", "kuro", "doublefinger",
      "pearl","rebecca", "urouge"], img: "/images/2/23/Card-reiju.png"},
      {name: "Portgas D. Ace", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy",
  "chew", "cabaji", "chopper", "capone", "drake", "franky", "gin", "hawkins", "hatchan", "jango",
  "koala", "kid", "killer", "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 3",
  "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "perona", "usopp", "urouge", "ichiji", "niji",
  "reiju", "yonji", "van augur", "wapol", "zoro"], img: "/images/4/40/Card-ace.png"},
    {name: "Doflamingo", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "burgess", "bellamy", "chew",
      "cabaji", "chopper", "capone", "drake", "franky", "gin", "hawkins", "hatchan", "jango", "koala", "kid", "killer",
      "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger",
      "nami", "pearl", "perona", "robin", "ryuma", "sanji", "usopp", "urouge", "ichiji", "niji", "reiju", "yonji", "van augur",
      "wapol", "zoro"], img: "/images/8/8d/Card-doflamingo.png"},
    {name: "Borsalino Kizaru", wanteds: ["alvida", "drake", "jango"], img: "/images/3/32/Card-kizaru.png"},
    {name: "Trafalga law", wanteds: ["alvida", "arlong", "apoo", "buggy", "buchi", "brook", "burgess", "chew", "drake", "franky", "hawkins", "hatchan",
    "jango", "kid", "krieg", "kuroobi", "leo", "luffy", "mohji", "mr. 1", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami",
    "pearl", "perona", "robin", "sanji", "usopp", "urouge", "ichiji", "niji", "reiju", "yonji", "wapol"], img: "/images/b/b9/Card-law.png"},
    {name: "Carrot", wanteds: ["alvida", "arlong", "buchi", "chew", "chopper", "capone", "drake", "franky", "hawkins", "hatchan", "jango", "kid", "krieg",
      "kuroobi", "law", "leo", "luffy", "mohji", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "robin", "sanji",
      "usopp", "urouge", "ichiji", "niji", "van augur", "zoro"], img: "/images/8/8d/Card-carrot.png"},
    {name: "Nami (TS)", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "chew", "chopper", "drake",
    "franky", "gin", "hawkins", "hatchan", "jango", "koala", "kid", "killer", "kuroobi", "kuro", "law", "leo", "luffy",
    "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami", "pearl", "perona","rebecca", "ryuma",
    "sanji", "urouge", "ichiji", "niji", "reiju", "yonji", "wapol", "zoro"], img: "/images/3/35/Card-namits.png"},
{name: "Nami", wanteds: ["alvida", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "chew", "chopper", "drake", "franky","hawkins",
"hatchan", "jango", "koala", "kid", "killer", "kuroobi", "kuro", "law", "leo", "luffy", "mohji", "mr. 4", "goldenweek",
"doublefinger", "nami", "pearl", "perona", "sanji", "urouge", "ichiji", "niji", "wapol"], img: "/images/0/08/Card-nami.png"},   
{name: "Nico Robin", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "buchi", "brook", "burgess", "chew", "chopper", "drake", "franky",
  "hawkins", "jango", "kuroobi", "leo", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "perona", "usopp",
  "urouge", "ichiji", "wapol",], img: "/images/3/3f/Card-robin.png"},
{name: "Nico Robin (TS)", wanteds: ["alvida", "arlong", "apoo", "bonney", "buchi",  "chew", "jango", "leo", "mr. 3", "goldenweek", "pearl",
"perona",], img: "/images/b/b0/Card-robints.png"},
{name: "Bartolomeu", wanteds: ["alvida", "arlong",  "drake", "jango", "koala", "kuroobi", "pearl", "urouge", "reiju"], img: "/images/a/a9/Card-barto.png"},
{name: "Marshall D. Teach", wanteds: ["alvida", "apoo", "bonney", "buggy", "buchi", "chew", "capone", "jango", "killer", "leo", "mr. 2",
  "pearl", "perona", "perona", "robin"], img: "/images/f/ff/Card-kurohige.png"},
{name: "Crocodile", wanteds: ["alvida", "bonney", "mr. 1", "yonji"], img: "/images/5/5d/Card-crocodile.png"},
{name: "Bartolomew Kuma", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy", "chew",
    "cabaji", "chopper", "capone", "drake", "franky", "gin", "hawkins", "hatchan", "jango", "koala", "kid",
    "killer", "krieg", "kuroobi", "kuro", "law", "leo", "luffy", "mohji", "mr. 1", "mr. 2", "mr. 3", "mr. 4",
    "mr. 5", "doublefinger", "nami", "robin","rebecca", "ryuma", "sanji", "usopp", "urouge", "ichiji", "niji",
    "reiju", "yonji", "van augur", "wapol", "zoro",], img: "/images/b/b5/Card-kuma.png"},
{name: "Basil Hawkins", wanteds: ["alvida", "kuroobi", "luffy", "yonji"], 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 ---------


  register : function (new_tip)
//------- SKILL TAB ---------
  {
$('.tab-skill').on('click', function(){  
    if (Tooltips.top_tip && Tooltips.top_tip != new_tip) Tooltips.top_tip.hide_now ();
$('.tab-skill.active').removeClass('active');
    Tooltips.top_tip = new_tip;
$(this).addClass('active');
  },
const skillId = $(this).data('skill-id');
 
if($(".skillInfo[data-skill-id="+ skillId +"]")){
  deregister : function (tip)
$(".skillInfo.active").removeClass('active');
  {
$(".skillInfo[data-skill-id="+ skillId +"]").addClass('active');
    if (Tooltips.top_tip == tip) Tooltips.top_tip = null;
}
  },
});
//------- SKILL TAB ---------


  close : function ()
//------- CALCULATOR XP ---------
  {
const maximum_level = 110;
     if (Tooltips.top_tip) {
const tier_values = {
      Tooltips.top_tip.hide_now ();
     "diamond" : 0.5,
      Tooltips.top_tip = null;
    "gold": 1,
     }
    "silver": 2,
  }
     "bronze": 3
}
};


var Tooltip = function () {this.initialize.apply (this, arguments);}
$(".calcXp--tierIcon").on("click", function() {
// This is the Javascript way of creating a class. Methods are added below to Tooltip.prototype;
$(".calcXp--tierIcon.active").removeClass('active');
// one such method is 'initialize', and that will be called when a new instance is created.
$(this).addClass('active');
// To create instances of this class, use var t = new Tooltip (...);
});


// Location constants
$("#calculate-btn").on('click', function() {
Tooltip.MOUSE            = 0; // Near the mouse pointer
getNeededPotions();
Tooltip.TRACK            = 1; // Move tooltip when mouse pointer moves
});
Tooltip.FIXED            = 2; // Always use a fixed poition (anchor) relative to an element


// Anchors
function calcMissingXpInPotions() {
Tooltip.TOP_LEFT          = 1;
    const currentPercentOfXp = $("#char-currentPercentOfXp").val() != "" ? $("#char-currentPercentOfXp").val() : 100;
Tooltip.TOP_RIGHT        = 2;
    const currentLevel = $("#char-level").val() != "" ? $("#char-level").val() : 1;
Tooltip.BOTTOM_LEFT      = 3;
    const levelToUp = $("#char-levelToUp").val() != "" ? $("#char-levelToUp").val() : 110;
Tooltip.BOTTOM_RIGHT      = 4;
    const charTier = $(".calcXp--tierIcon.active").length != 0 ? tier_values[$(".calcXp--tierIcon.active").attr('id')] : tier_values["gold"];


// Activation constants
    const percentToUp = 100 - currentPercentOfXp;
Tooltip.NONE              = -1; // You must show the tooltip explicitly in this case.
    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);
Tooltip.HOVER            =  1;
    const desiredXp = (50 * (Math.pow((levelToUp - 1), 3)) - 150 * (Math.pow((levelToUp - 1), 2)) + 400 * (levelToUp - 1)) / 3;
Tooltip.FOCUS            =  2; // always uses the FIXED position
    const missingXp = Math.round((desiredXp - currentXp));
Tooltip.CLICK            = 4;
Tooltip.ALL_ACTIVATIONS  =  7;


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


Tooltip.MOUSE_LEAVE      =  1; // Mouse leaves target, alternate target, and tooltip
    return missingPotions;
Tooltip.LOSE_FOCUS        =  2; // Focus changes away from target
}
Tooltip.CLICK_ELEM        =  4; // Target is clicked
Tooltip.CLICK_TIP        =  8; // Makes only sense if not tracked
Tooltip.ESCAPE            = 16;
Tooltip.ALL_DEACTIVATIONS = 31;
Tooltip.LEAVE            = Tooltip.MOUSE_LEAVE | Tooltip.LOSE_FOCUS;


// On IE, use the mouseleave/mouseenter events, which fire only when the boundaries of the
function calcPotions() {
// element are left (but not when the element if left because the mouse moved over some
    const missingPotions = calcMissingXpInPotions();
// contained element)


Tooltip.mouse_in    = (is_IE ? 'mouseenter' : 'mouseover');
    var complementaryPotS;
Tooltip.mouse_out  = (is_IE ? 'mouseleave' : 'mouseout');
    var complementaryPotM;
    potS = missingPotions['small']; 
    potM = missingPotions['medium'];
    potB = missingPotions['big'];          


Tooltip.prototype =
    if(String(potS).slice(-1) == "0"){      
{
        potM = Math.ceil(parseFloat(potM));      
  initialize : function (on_element, tt_content, opt, css)
     }else{                   
  {
        potM = Math.floor(potM);
    if (!on_element || !tt_content) return;
        complementaryPotS = potS - potM * 10;
    this.tip_id      = Tooltips.new_id ();
     }           
     // Registering event handlers via attacheEvent on IE is apparently a time-consuming
      
    // operation. When you add many tooltips to a page, this can add up to a noticeable delay.
     if(String(potM).slice(-1) == "0"){        
    // We try to mitigate that by only adding those handlers we absolutely need when the tooltip
         potM = Math.ceil((parseFloat(potM)));
    // is created: those for showing the tooltip. The ones for hiding it again are added the
         potB = Math.floor(potB);          
    // first time the tooltip is actually shown. We thus record which handlers are installed to
    // avoid installing them multiple times:
    //  event_state: -1 : nothing set, 0: activation set, 1: all set
    //  tracks:      true iff there is a mousemove handler for tracking installed.
    // This change bought us about half a second on IE (for 13 tooltips on one page). On FF, it
    // doesn't matter at all; in Firefoy, addEventListener is fast anyway.
    this.event_state = -1;
     this.tracks      = false;
     // We clone the node, wrap it, and re-add it at the very end of the
     // document to make sure we're not within some nested container with
    // position='relative', as this screws up all absolute positioning
    // (We always position in global document coordinates.)
    // In my tests, it appeared as if Nick Stakenburg's "prototip" has
    // this problem...
    if (typeof (tt_content) == 'function') {
      this.tip_creator = tt_content;
      this.css         = css;
      this.content    = null;
    } else {
      this.tip_creator = null;
      this.css        = null;
      if (tt_content.parentNode) {
        if (tt_content.ownerDocument != document)
          tt_content = document.importNode (tt_content, true);
         else
          tt_content = tt_content.cloneNode (true);
      }
      tt_content.id = this.tip_id;
      this.content  = tt_content;
     }
     }
     // Wrap it
     else{        
    var wrapper = document.createElement ('div');
         potB = Math.floor(potB)
    wrapper.className = 'tooltipContent';
         complementaryPotM = potM - potB * 10
    // On IE, 'relative' triggers lots of float:right bugs (floats become invisible or are
    // mispositioned).
    //if (!is_IE) wrapper.style.position = 'relative';
    if (this.content) wrapper.appendChild (this.content);
    this.popup = document.createElement ('div');
    this.popup.style.display = 'none';
    this.popup.style.position = 'absolute';
    this.popup.style.top = "0px";
    this.popup.style.left = "0px";
    this.popup.appendChild (wrapper);
    // Set the options
    this.options = {
      mode         : Tooltip.TRACK              // Where to display the tooltip.
      ,activate    : Tooltip.HOVER              // When to activate
      ,deactivate  : Tooltip.LEAVE | Tooltip.CLICK_ELEM | Tooltip.ESCAPE // When to deactivate
      ,mouse_offset : {x: 5, y: 5, dx: 1, dy: 1} // Pixel offsets and direction from mouse pointer
      ,fixed_offset : {x:10, y: 5, dx: 1, dy: 1} // Pixel offsets from anchor position
      ,anchor      : Tooltip.BOTTOM_LEFT        // Anchor for fixed position
      ,target      : null                      // Optional alternate target for fixed display.
      ,max_width    :    0.6        // Percent of window width (1.0 == 100%)
      ,max_pixels  :    0          // If > 0, maximum width in pixels
      ,z_index      : 1000          // On top of everything
      ,open_delay  :  500          // Millisecs, set to zero to open immediately
      ,hide_delay  : 1000          // Millisecs, set to zero to close immediately
      ,close_button : null          // Either a single image, or an array of up to three images
                                    // for the normal, hover, and active states, in that order
      ,onclose      : null          // Callback to be called when the tooltip is hidden. Should be
                                    // a function taking a single argument 'this' (this Tooltip)
                                    // an an optional second argument, the event.
      ,onopen      : null          // Ditto, called after opening.
    };
    // The lower of max_width and max_pixels limits the tooltip's width.
    if (opt) { // Merge in the options
      for (var option in opt) {
         if (option == 'mouse_offset' || option == 'fixed_offset') {
          try {
            for (var attr in opt[option]) {
              this.options[option][attr] = opt[option][attr];
            }
          } catch (ex) {
          }
        } else
          this.options[option] = opt[option];
      }
     }
     }
    // Set up event handlers as appropriate
    this.eventShow  = EvtHandler.make_listener (this, this.show);
    this.eventToggle = EvtHandler.make_listener (this, this.toggle);
    this.eventFocus  = EvtHandler.make_listener (this, this.show_focus);
    this.eventClick  = EvtHandler.make_listener (this, this.show_click);
    this.eventHide  = EvtHandler.make_listener (this, this.hide);
    this.eventTrack  = EvtHandler.make_listener (this, this.track);
    this.eventClose  = EvtHandler.make_listener (this, this.hide_now);
    this.eventKey    = EvtHandler.make_listener (this, this.key_handler);


     this.close_button      = null;
     const potions = {
    this.close_button_width = 0;
         "small": complementaryPotS,
    if (this.options.close_button) {
        "medium": complementaryPotM,
      this.makeCloseButton ();
        "big": potB       
      if (this.close_button) {
        // Only a click on the close button will close the tip.
        this.options.deactivate = this.options.deactivate & ~Tooltip.CLICK_TIP;
        // And escape is always active if we have a close button
        this.options.deactivate = this.options.deactivate | Tooltip.ESCAPE;
        // Don't track, you'd have troubles ever getting to the close button.
        if (this.options.mode == Tooltip.TRACK) this.options.mode = Tooltip.MOUSE;
        this.has_links = true;
      }
    }
    if (this.options.activate == Tooltip.NONE) {
      this.options.activate = 0;
    } else {
      if ((this.options.activate & Tooltip.ALL_ACTIVATIONS) == 0) {
        if (on_element.nodeName.toLowerCase () == 'a')
          this.options.activate = Tooltip.CLICK;
        else
          this.options.activate = Tooltip.HOVER;
      }
    }
    if ((this.options.deactivate & Tooltip.ALL_DEACTIVATIONS) == 0 && !this.close_button)
      this.options.deactivate = Tooltip.LEAVE | Tooltip.CLICK_ELEM | Tooltip.ESCAPE;
    document.body.appendChild (this.popup);
    if (this.content) this.apply_styles (this.content, css); // After adding it to the document
    // Clickable links?
    if (this.content && this.options.mode == Tooltip.TRACK) {
      this.setHasLinks ();
      if (this.has_links) {
         // If you track a tooltip with links, you'll never be able to click the links
        this.options.mode = Tooltip.MOUSE;
      }
    }
    // No further option checks. If nonsense is passed, you'll get nonsense or an exception.
    this.popup.style.zIndex = "" + this.options.z_index;
    this.target            = on_element;
    this.open_timeout_id    = null;
    this.hide_timeout_id    = null;
    this.size              = {width : 0, height : 0};
    this.setupEvents (EvtHandler.attach, 0);
    this.ieFix = null;
    if (is_IE) {
      // Display an invisible IFrame of the same size as the popup beneath it to make popups
      // correctly cover "windowed controls" such as form input fields in IE. For IE >=5.5, but
      // who still uses older IEs?? The technique is also known as a "shim". A good
      // description is at http://dev2dev.bea.com/lpt/a/39
      this.ieFix = document.createElement ('iframe');
      this.ieFix.style.position = 'absolute';
      this.ieFix.style.border  = '0';
      this.ieFix.style.margin  = '0';
      this.ieFix.style.padding  = '0';
      this.ieFix.style.zIndex  = "" + (this.options.z_index - 1); // Below the popup
      this.ieFix.tabIndex      = -1;
      this.ieFix.frameBorder    = '0';
      this.ieFix.style.display  = 'none';
      document.body.appendChild (this.ieFix);
      this.ieFix.style.filter  = 'alpha(Opacity=0)'; // Ensure transparency
    }
  },
 
  apply_styles : function (node, css)
  {
    if (css) {
      for (var styledef in css) node.style[styledef] = css[styledef];
     }
     }
    if (this.close_button) node.style.opacity = "1.0"; // Bug workaround.
    // FF doesn't handle the close button at all if it is (partially) transparent...
    if (node.style.display == 'none') node.style.display = "";
  },


  setHasLinks : function ()
     return potions;
  {
}
    if (this.close_button) { this.has_links = true; return; }
    var lks = this.content.getElementsByTagName ('a');
    this.has_links = false;
    for (var i=0; i < lks.length; i++) {
      var href = lks[i].getAttribute ('href');
      if (href && href.length > 0) { this.has_links = true; return; }
    }
    // Check for form elements
     function check_for (within, names)
    {
      if (names) {
        for (var i=0; i < names.length; i++) {
          var elems = within.getElementsByTagName (names[i]);
          if (elems && elems.length > 0) return true;
        }
      }
      return false;
    }
    this.has_links = check_for (this.content, ['form', 'textarea', 'input', 'button', 'select']);
  },


  setupEvents : function (op, state)
function getNeededPotions() {
  {
     const potions = calcPotions();
     if (state < 0 || state == 0 && this.event_state < state) {
    const resultsArea = $("#calc-result");
      if (this.options.activate & Tooltip.HOVER)
   
        op (this.target, Tooltip.mouse_in, this.eventShow);
    resultsArea.html('');
      if (this.options.activate & Tooltip.FOCUS)
   
        op (this.target, 'focus', this.eventFocus);
    if(potions["big"]){
      if (   (this.options.activate & Tooltip.CLICK)
    resultsArea.append(
          && (this.options.deactivate & Tooltip.CLICK_ELEM)) {
    "<div class='badge'>"+
        op (this.target, 'click', this.eventToggle);
    "<img src='/images/a/a5/Bigexppot.png' class='calcXp--xpIcon' />"+
      } else {
    "<span class='calcXp--numberOfPots'>"+ potions['big'] +"</span>"+
        if (this.options.activate & Tooltip.CLICK)
    "</div>"
          op (this.target, 'click', this.eventClick);
    );
        if (this.options.deactivate & Tooltip.CLICK_ELEM)
          op (this.target, 'click', this.eventClose);
      }
      this.event_state = state;
     }
     }
    if (state < 0 || state == 1 && this.event_state < state) {
      if (this.options.deactivate & Tooltip.MOUSE_LEAVE) {
        op (this.target, Tooltip.mouse_out, this.eventHide);
        op (this.popup, Tooltip.mouse_out, this.eventHide);
        if (this.options.target) op (this.options.target, Tooltip.mouse_out, this.eventHide);
      }
      if (this.options.deactivate & Tooltip.LOSE_FOCUS)
        op (this.target, 'blur', this.eventHide);
      if (  (this.options.deactivate & Tooltip.CLICK_TIP)
          && (this.options.mode != Tooltip.TRACK))
        op (this.popup, 'click', this.eventClose);       
     
      // Some more event handling
      if (this.hide_delay > 0) {
        if (!(this.options.activate & Tooltip.HOVER))
          op (this.popup, Tooltip.mouse_in, this.eventShow);
        op (this.popup, 'mousemove', this.eventShow);
      }
      this.event_state = state;
    }
    if (state < 0 && this.tracks)
      op (this.target, 'mousemove', this.eventTrack);
  },
 
  remove: function ()
  {
    this.hide_now ();
    this.setupEvents (EvtHandler.remove, -1);
    this.tip_creator = null;
    document.body.removeElement (this.popup);
    if (this.ieFix) document.body.removeElement (this.ieFix);
  },
 
  show : function (evt)
  {
    this.show_tip (evt, true);
  },
 
  show_focus : function (evt) // Show on focus
  {
    this.show_tip (evt, false);
  },
 
  show_click : function (evt)
  {
    this.show_tip (evt, false);
    if (this.target.nodeName.toLowerCase () == 'a') return EvtHandler.killEvt (evt); else return false;
  },
 
  toggle : function (evt)
  {
    if (this.popup.style.display != 'none' && this.popup.style.display != null) {
      this.hide_now (evt);
    } else {
      this.show_tip (evt, true);
    }
    if (this.target.nodeName.toLowerCase () == 'a') return EvtHandler.killEvt (evt); else return false;
  },
  show_tip : function (evt, is_mouse_evt)
  {
    if (this.hide_timeout_id != null) window.clearTimeout (this.hide_timeout_id);
    this.hide_timeout_id = null;
    if (this.popup.style.display != 'none' && this.popup.style.display != null) return;
    if (this.tip_creator) {
      // Dynamically created tooltip.
      try {
        this.content = this.tip_creator (evt);
      } catch (ex) {
        // Oops! Indicate that something went wrong!
        var error_msg = document.createElement ('div');
        error_msg.appendChild (
          document.createElement ('b').appendChild (
            document.createTextNode ('Exception: ' + ex.name)));
        error_msg.appendChild(document.createElement ('br'));
        error_msg.appendChild (document.createTextNode (ex.message));
        if (typeof (ex.fileName) != 'undefined' &&
            typeof (ex.lineNumber) != 'undefined') {
          error_msg.appendChild(document.createElement ('br'));
          error_msg.appendChild (document.createTextNode ('File ' + ex.fileName));
          error_msg.appendChild(document.createElement ('br'));
          error_msg.appendChild (document.createTextNode ('Line ' + ex.lineNumber));
        }
        this.content = error_msg;
      }
      // Our wrapper has at most two children: the close button, and the content. Don't remove
      // the close button, if any.
      if (this.popup.firstChild.lastChild && this.popup.firstChild.lastChild != this.close_button)
        this.popup.firstChild.removeChild (this.popup.firstChild.lastChild);
      this.popup.firstChild.appendChild (this.content);
      this.apply_styles (this.content, this.css);
      if (this.options.mode == Tooltip.TRACK) this.setHasLinks ();
    }
    // Position it now. It must be positioned before the timeout below!
    this.position_tip (evt, is_mouse_evt);
    if (Tooltips.debug) {
      alert ('Position: x = ' + this.popup.style.left + ' y = ' + this.popup.style.top);
    }
    this.setupEvents (EvtHandler.attach, 1);
    if (this.options.mode == Tooltip.TRACK) {
      if (this.has_links) {
        if (this.tracks) EvtHandler.remove (this.target, 'mousemove', this.eventTrack);
        this.tracks = false;
      } else {
        if (!this.tracks) EvtHandler.attach (this.target, 'mousemove', this.eventTrack);
        this.tracks = true;
      }
    }
    if (this.options.open_delay > 0) {
      var obj = this;
      this.open_timout_id =
        window.setTimeout (function () {obj.show_now (obj);}, this.options.open_delay);
    } else
      this.show_now (this);
  },
 
  show_now : function (elem)
  {
    if (elem.popup.style.display != 'none' && elem.popup.style.display != null) return;
    Tooltips.register (elem);
    if (elem.ieFix) {
      elem.ieFix.style.top    = elem.popup.style.top;
      elem.ieFix.style.left    = elem.popup.style.left;
      elem.ieFix.style.width  = elem.size.width + "px";
      elem.ieFix.style.height  = elem.size.height + "px";
      elem.ieFix.style.display = "";
    }
    elem.popup.style.display = ""; // Finally show it
    if (  (elem.options.deactivate & Tooltip.ESCAPE)
        && typeof (elem.popup.focus) == 'function') {
      // We need to attach this event globally.
      EvtHandler.attach (document, 'keydown', elem.eventKey);
    }
    elem.open_timeout_id = null;
    // Callback
    if (typeof (elem.options.onopen) == 'function') elem.options.onopen (elem);
  },
 
  track : function (evt)
  {
    this.position_tip (evt, true);
    // Also move the shim!
    if (this.ieFix) {
      this.ieFix.style.top    = this.popup.style.top;
      this.ieFix.style.left    = this.popup.style.left;
      this.ieFix.style.width  = this.size.width + "px";
      this.ieFix.style.height  = this.size.height + "px";
    }
  },
 
  size_change : function ()
  {
    // If your content is such that it changes, make sure this is called after each size change.
    // Unfortunately, I have found no way of monitoring size changes of this.popup and then doing
    // this automatically. See for instance the "toggle" example (the 12th) on the example page at
    // http://commons.wikimedia.org/wiki/MediaWiki:Tooltips.js/Documentation/Examples
    if (this.popup.style.display != 'none' && this.popup.style.display != null) {
      // We're visible. Make sure the shim gets resized, too!
      this.size = {width : this.popup.offsetWidth, height: this.popup.offsetHeight};
      if (this.ieFix) {
        this.ieFix.style.top    = this.popup.style.top;
        this.ieFix.style.left    = this.popup.style.left;
        this.ieFix.style.width  = this.size.width + "px";
        this.ieFix.style.height  = this.size.height + "px";
      }
    }
  },
      
      
  position_tip : function (evt, is_mouse_evt)
      
  {
     if(potions["medium"]){
     var view = {width  : this.viewport ('Width'),
    resultsArea.append(
                height : this.viewport ('Height')};
    "<div class='badge'>"+
    var off  = {left  : this.scroll_offset ('Left'),
    "<img src='/images/d/df/Medexppot.png' class='calcXp--xpIcon' />"+
                top    : this.scroll_offset ('Top')};
    "<span class='calcXp--numberOfPots'>"+ potions['medium'] +"</span>"+
    var x = 0, y = 0;
    "</div>"
    var offset = null;
    );
    // Calculate the position
     if (is_mouse_evt && this.options.mode != Tooltip.FIXED) {
      var mouse_delta = EvtHandler.mouse_offset ();
      if (Tooltips.debug && mouse_delta) {
        alert ("Mouse offsets: x = " + mouse_delta.x + ", y = " + mouse_delta.y);
      }
      x = (evt.pageX || (evt.clientX + off.left - (mouse_delta ? mouse_delta.x : 0)));
      y = (evt.pageY || (evt.clientY + off.top - (mouse_delta ? mouse_delta.y : 0)));
      offset = 'mouse_offset';
    } else {
      var tgt = this.options.target || this.target;
      var pos = this.position (tgt);
      switch (this.options.anchor) {
        default:
        case Tooltip.BOTTOM_LEFT:
          x = pos.x; y = pos.y + tgt.offsetHeight;
          break;
        case Tooltip.BOTTOM_RIGHT:
          x = pos.x + tgt.offsetWidth; y = pos.y + tgt.offsetHeight;
          break;
        case Tooltip.TOP_LEFT:
          x = pos.x; y = pos.y;
          break;
        case Tooltip.TOP_RIGHT:
          x = pos.x + tgt.offsetWidth; y = pos.y;
          break;
      }
      offset = 'fixed_offset';
     }
     }
      
      
    x = x + this.options[offset].x * this.options[offset].dx;
    y = y + this.options[offset].y * this.options[offset].dy;
    this.size = this.calculate_dimension ();
    if (this.options[offset].dx < 0) x = x - this.size.width;
    if (this.options[offset].dy < 0) y = y - this.size.height;
   
    // Now make sure we're within the view.
    if (x + this.size.width > off.left + view.width) x = off.left + view.width - this.size.width;
    if (x < off.left) x = off.left;
    if (y + this.size.height > off.top + view.height) y = off.top + view.height - this.size.height;
    if (y < off.top) y = off.top;
      
      
     this.popup.style.top  = y + "px";
     if(potions["small"]){
    this.popup.style.left = x + "px";
    resultsArea.append(
  },
    "<div class='badge'>"+
 
    "<img src='/images/5/5a/Smallexppot.png' class='calcXp--xpIcon' />"+
  hide : function (evt)
    "<span class='calcXp--numberOfPots'>"+ potions['small'] +"</span>"+
  {
    "</div>"
    if (this.popup.style.display == 'none') return;
    );
    // Get mouse position
    var mouse_delta = EvtHandler.mouse_offset ();
    var x = evt.pageX
        || (evt.clientX + this.scroll_offset ('Left') - (mouse_delta ? mouse_delta.x : 0));
    var y = evt.pageY
        || (evt.clientY + this.scroll_offset ('Top') - (mouse_delta ? mouse_delta.y : 0));
    // We hide it if we're neither within this.target nor within this.content nor within the
    // alternate target, if one was given.
    if (Tooltips.debug) {
      var tp = this.position (this.target);
      var pp = this.position (this.popup);
      alert ("x = " + x + " y = " + y + '\n' +
            "t: " + tp.x + "/" + tp.y + "/" +
              this.target.offsetWidth + "/" + this.target.offsetHeight + '\n' +
            (tp.n ? "t.m = " + tp.n.nodeName + "/" + tp.n.getAttribute ('margin') + "/"
                    + tp.n.getAttribute ('marginTop')
                    + "/" + tp.n.getAttribute ('border') + '\n'
                  : "") +
            "p: " + pp.x + "/" + pp.y + "/" +
              this.popup.offsetWidth + "/" + this.popup.offsetHeight + '\n' +
            (pp.n ? "p.m = " + pp.n.nodeName + "/" + pp.n.getAttribute ('margin') + "/"
                    + pp.n.getAttribute ('marginTop')
                    + "/" + pp.n.getAttribute ('border') + '\n'
                  : "") +
            "e: " + evt.pageX + "/" + evt.pageY + " "
              + evt.clientX + "/" + this.scroll_offset ('Left') + " "
              + evt.clientY + "/" + this.scroll_offset ('Top') + '\n' +
            (mouse_delta ? "m : " + mouse_delta.x + "/" + mouse_delta.y + '\n' : "")
            );
     }
     }
    if (  !this.within (this.target, x, y)
}
        && !this.within (this.popup, x, y)
//------- CALCULATOR XP ---------
        && (!this.options.target || !this.within (this.options.target, x, y))) {
      if (this.open_timeout_id != null) window.clearTimeout (this.open_timeout_id);
      this.open_timeout_id = null;
      var event_copy = evt;
      if (this.options.hide_delay > 0) {
        var obj = this;
        this.hide_timeout_id =
          window.setTimeout (
              function () {obj.hide_popup (obj, event_copy);}
            , this.options.hide_delay
          );
      } else
        this.hide_popup (this, event_copy);
    }
  },
 
  hide_popup : function (elem, event)
  {
    if (elem.popup.style.display == 'none') return; // Already hidden, recursion from onclose?
    elem.popup.style.display = 'none';
    if (elem.ieFix) elem.ieFix.style.display = 'none';
    elem.hide_timeout_id = null;
    Tooltips.deregister (elem);
    if (elem.options.deactivate & Tooltip.ESCAPE)
      EvtHandler.remove (document, 'keydown', elem.eventKey);
    // Callback
    if (typeof (elem.options.onclose) == 'function') elem.options.onclose (elem, event);
  },
 
  hide_now : function (evt)
  {
    if (this.open_timeout_id != null) window.clearTimeout (this.open_timeout_id);
    this.open_timeout_id = null;
    var event_copy = evt || null;
    this.hide_popup (this, event_copy);
    if (evt && this.target.nodeName.toLowerCase == 'a') return EvtHandler.killEvt (evt); else return false;
  },
 
  key_handler : function (evt)
  {
    if (Tooltips.debug) alert ('key evt ' + evt.keyCode);
    if (evt.DOM_VK_ESCAPE && evt.keyCode == evt.DOM_VK_ESCAPE || evt.keyCode == 27)
      this.hide_now (evt);
    return true;
  },
 
  setZIndex : function (z_index)
  {
    if (z_index === null || isNaN (z_index) || z_index < 2) return;
    z_index = Math.floor (z_index);
    if (z_index == this.options.z_index) return; // No change
    if (this.ieFix) {
      // Always keep the shim below the actual popup.
      if (z_index > this.options.z_index) {
        this.popup.style.zIndex = z_index;
        this.ieFix.style.zIndex = "" + (z_index - 1);
      } else {
        this.ieFix.style.zIndex = "" + (z_index - 1);
        this.popup.style.zIndex = z_index;
      }
    } else {
      this.popup.style.zIndex = z_index;
    }
    this.options.z_index = z_index;
  },
 
  makeCloseButton : function ()
  {
    this.close_button = null;
    if (!this.options.close_button) return;
    var imgs = null;
    if (typeof (this.options.close_button.length) != 'undefined')
      imgs = this.options.close_button; // Also if it's a string (name of previously created class)
    else
      imgs = [this.options.close_button];
    if (!imgs || imgs.length == 0) return; // Paranoia
    var lk = Buttons.makeButton (imgs, this.tip_id + '_button', this.eventClose);
 
    if (lk) {
      var width = lk.firstChild.getAttribute ('width');
      if (!is_IE) {
        lk.style.cssFloat = 'right';
      } else {
        // IE is incredibly broken on right floats.
        var container = document.createElement ('div');
        container.style.display      = 'inline';
        container.style.styleFloat  = 'right';
        container.appendChild (lk);
        lk = container;
      }
      lk.style.paddingTop  = '2px';
      lk.style.paddingRight = '2px';
      this.popup.firstChild.insertBefore (lk, this.popup.firstChild.firstChild);
      this.close_button = lk;
      this.close_button_width = parseInt ("" + width, 10);
    }
  },
 
  within : function (node, x, y)
  {
    if (!node) return false;
    var pos = this.position (node);
    return    (x == null || x > pos.x && x < pos.x + node.offsetWidth)
          && (y == null || y > pos.y && y < pos.y + node.offsetHeight);
  },
 
  position : (function ()
  {
    // The following is the jQuery.offset implementation. We cannot use jQuery yet in globally
    // activated scripts (it has strange side effects for Opera 8 users who can't log in anymore,
    // and it breaks the search box for some users). Note that jQuery does not support Opera 8.
    // Until the WMF servers serve jQuery by default, this copy from the jQuery 1.3.2 sources is
    // needed here. If and when we have jQuery available officially, the whole thing here can be
    // replaced by "var tmp = jQuery (node).offset(); return {x:tmp.left, y:tmp.top};"
    // Kudos to the jQuery development team. Any errors in this adaptation are my own. (Lupo,
    // 2009-08-24).
    //  Note: I have virtually the same code also in LAPI.js, but I cannot import that here
    // because I know that at least one gadget at the French Wikipedia includes this script here
    // directly from here. I'd have to use importScriptURI instead of importScript to keep that
    // working, but I'd run the risk that including LAPI at the French Wikipedia might break
    // something there. I *hate* it when people hotlink scripts across projects!
 
    var data = null;
 
    function jQuery_init ()
    {
      data = {};
      // Capability check from jQuery.
      var body = document.body;
      var container = document.createElement('div');
      var html =
          '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;'
        + 'padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;'
        + 'top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" '
        + 'cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
      var rules = { position: 'absolute', visibility: 'hidden'
                  ,top: 0, left: 0
                  ,margin: 0, border: 0
                  ,width: '1px', height: '1px'
                  };
      Object.merge (rules, container.style);
 
      container.innerHTML = html;
      body.insertBefore(container, body.firstChild);
      var innerDiv = container.firstChild;
      var checkDiv = innerDiv.firstChild;
      var td = innerDiv.nextSibling.firstChild.firstChild;
 
      data.doesNotAddBorder = (checkDiv.offsetTop !== 5);
      data.doesAddBorderForTableAndCells = (td.offsetTop === 5);
 
      innerDiv.style.overflow = 'hidden', innerDiv.style.position = 'relative';
      data.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
 
      var bodyMarginTop    = body.style.marginTop;
      body.style.marginTop = '1px';
      data.doesNotIncludeMarginInBodyOffset = (body.offsetTop === 0);
      body.style.marginTop = bodyMarginTop;
 
      body.removeChild(container);
    };
 
    function jQuery_offset (node)
    {
      if (node === node.ownerDocument.body) return jQuery_bodyOffset (node);
      if (node.getBoundingClientRect) {
        var box    = node.getBoundingClientRect ();
        var scroll = {x : this.scroll_offset ('Left'), y: this.scroll_offset ('Top')};
        return {x : (box.left + scroll.x), y : (box.top + scroll.y)};
      }
      if (!data) jQuery_init ();
      var elem              = node;
      var offsetParent      = elem.offsetParent;
      var prevOffsetParent  = elem;
      var doc              = elem.ownerDocument;
      var prevComputedStyle = doc.defaultView.getComputedStyle(elem, null);
      var computedStyle;
 
      var top  = elem.offsetTop;
      var left = elem.offsetLeft;
 
      while ( (elem = elem.parentNode) && elem !== doc.body && elem !== doc.documentElement ) {
        computedStyle = doc.defaultView.getComputedStyle(elem, null);
        top -= elem.scrollTop, left -= elem.scrollLeft;
        if ( elem === offsetParent ) {
          top += elem.offsetTop, left += elem.offsetLeft;
          if (  data.doesNotAddBorder
              && !(data.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.tagName))
            )
          {
            top  += parseInt (computedStyle.borderTopWidth,  10) || 0;
            left += parseInt (computedStyle.borderLeftWidth, 10) || 0;
          }
          prevOffsetParent = offsetParent; offsetParent = elem.offsetParent;
        }
        if (data.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== 'visible')
        {
          top  += parseInt (computedStyle.borderTopWidth,  10) || 0;
          left += parseInt (computedStyle.borderLeftWidth, 10) || 0;
        }
        prevComputedStyle = computedStyle;
      }
 
      if (prevComputedStyle.position === 'relative' || prevComputedStyle.position === 'static') {
        top  += doc.body.offsetTop;
        left += doc.body.offsetLeft;
      }
      if (prevComputedStyle.position === 'fixed') {
        top  += Math.max (doc.documentElement.scrollTop, doc.body.scrollTop);
        left += Math.max (doc.documentElement.scrollLeft, doc.body.scrollLeft);
      }
      return {x: left, y: top};           
    }
 
    function jQuery_bodyOffset (body)
    {
      if (!data) jQuery_init();
      var top = body.offsetTop, left = body.offsetLeft;
      if (data.doesNotIncludeMarginInBodyOffset) {
        var styles;
        if (  body.ownerDocument.defaultView
            && body.ownerDocument.defaultView.getComputedStyle)
        { // Gecko etc.
          styles = body.ownerDocument.defaultView.getComputedStyle (body, null);
          top  += parseInt (style.getPropertyValue ('margin-top' ), 10) || 0;
          left += parseInt (style.getPropertyValue ('margin-left'), 10) || 0;
        } else {
          function to_px (element, val) {
            // Convert em etc. to pixels. Kudos to Dean Edwards; see
            // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
            if (!/^\d+(px)?$/i.test (val) && /^\d/.test (val) && body.runtimeStyle) {
              var style                = element.style.left;
              var runtimeStyle          = element.runtimeStyle.left;
              element.runtimeStyle.left = element.currentStyle.left;
              element.style.left        = result || 0;
              val = elem.style.pixelLeft + "px";
              element.style.left        = style;
              element.runtimeStyle.left = runtimeStyle;
            }
            return val;
          }
          style = body.currentStyle || body.style;
          top  += parseInt (to_px (body, style.marginTop ), 10) || 0;
          left += parseInt (to_px (body, style.marginleft), 10) || 0;
        }
      }
      return {x: left, y: top};
    }
 
    return jQuery_offset;
  })(),
 
  scroll_offset : function (what)
  {
    var s = 'scroll' + what;
    return (document.documentElement ? document.documentElement[s] : 0)
          || document.body[s] || 0;
  },
 
  viewport : function (what)
  {
    var s = 'client' + what;
    return (document.documentElement ? document.documentElement[s] : 0) || document.body[s] || 0;
  },
 
 
  calculate_dimension : function ()
  {
    if (this.popup.style.display != 'none' && this.popup.style.display != null) {
      return {width : this.popup.offsetWidth, height : this.popup.offsetHeight};
    }
    // Must display it... but position = 'absolute' and visibility = 'hidden' means
    // the user won't notice it.
    var view_width = this.viewport ('Width');
    this.popup.style.top        = "0px";
    this.popup.style.left      = "0px";
    // Remove previous width as it may change with dynamic tooltips
    this.popup.style.width      = "";
    this.popup.style.maxWidth  = "";
    this.popup.style.overflow  = 'hidden';
    this.popup.style.visibility = 'hidden';
    // Remove the close button, otherwise the float will always extend the box to
    // the right edge.
    if (this.close_button)
      this.popup.firstChild.removeChild (this.close_button);
    this.popup.style.display = "";  // Display it. Now we should have a width
    var w = this.popup.offsetWidth;
    var h = this.popup.offsetHeight;
    var limit = Math.round (view_width * this.options.max_width);
    if (this.options.max_pixels > 0 && this.options.max_pixels < limit)
      limit = this.options.max_pixels;
    if (w > limit) {
      w = limit;
      this.popup.style.width    = "" + w + "px";
      this.popup.style.maxWidth = this.popup.style.width;
      if (this.close_button) {
        this.popup.firstChild.insertBefore
          (this.close_button, this.popup.firstChild.firstChild);
      }
    } else {
      this.popup.style.width    = "" + w + "px";
      this.popup.style.maxWidth = this.popup.style.width;
      if (this.close_button) {
        this.popup.firstChild.insertBefore
          (this.close_button, this.popup.firstChild.firstChild);
      }
      if (h != this.popup.offsetHeight) {
        w =  w + this.close_button_width;   
        this.popup.style.width    = "" + w + "px";
        this.popup.style.maxWidth = this.popup.style.width;
      }
    }
    var size = {width : this.popup.offsetWidth, height : this.popup.offsetHeight};
    this.popup.style.display = 'none';      // Hide it again
    this.popup.style.visibility = "";
    return size;
  }
   
} // end Tooltip


// </source>
//------- 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 ---------
});

Edição das 21h18min de 8 de fevereiro de 2024

  $(document).ready(function() {
  	
  		//------- 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 ---------
  	
  //------- COUNTDOWN MAINPAGE---------
  		
  		/*
  			O countdown é um codigo pega a data e hora do computador do usuario e aplica um calculo
  			para adaptar o mesmo ao fuso horario de brasilia, após isso ele verifica os eventos do
  			dia começa uma contagem regressiva com base na diferença do horario do computador do 
  			usuario com a do evento.
  		*/
  		
  		const timer = $('#event-time');
  		const eventImage = $('.event-image');  				
  		//Informações dos eventos
          /*
            0 - Sunday
            1 - Monday
            2 - Tuesday
            3 - Wednesday
            4 - Thursday
            5 - Friday
            6 - Saturday
          */
  		const eventsInfo = {
  			0: [
  				{name: 'Foxy race (ship)', time: '09:30:00', src: '/images/c/c0/Event_ship.png'},
  				{name: 'Foxy count', time: '15:00:00', src: '/images/e/e4/Event_count.png'},
  				{name: 'Foxy quiz', time: '19:00:00', src: '/images/6/6f/Event_quiz.png'},
  				{name: 'Deathmatch', time: '22:00:00', src: '/images/8/84/Event_dm.png'}, 
  			],
  			1: [
  				{name: 'Foxy count', time: '09:30:00', src: '/images/e/e4/Event_count.png'},
  				{name: 'Foxy quiz', time: '15:00:00', src: '/images/6/6f/Event_quiz.png'},
  				{name: 'Deathmatch', time: '19:00:00', src: '/images/8/84/Event_dm.png'},
  				{name: 'Foxy race (ship)', time: '22:00:00', src: '/images/c/c0/Event_ship.png'},
  			],
  			2: [
  				{name: 'Foxy quiz', time: '09:30:00', src: '/images/6/6f/Event_quiz.png'},
  				{name: 'Deathmatch', time: '15:00:00', src: '/images/8/84/Event_dm.png'},
  				{name: 'Foxy race', time: '19:00:00', src: '/images/0/03/Event_race.png'},
  				{name: 'Foxy count', time: '22:00:00', src: '/images/e/e4/Event_count.png'},
  			],
  			3: [
  				{name: 'Deathmatch', time: '09:30:00', src: '/images/8/84/Event_dm.png'},
  				{name: 'Foxy race (ship)', time: '15:00:00', src: '/images/c/c0/Event_ship.png'},
  				{name: 'Foxy count', time: '19:00:00', src: '/images/e/e4/Event_count.png'},
  				{name: 'Foxy quiz', time: '22:00:00', src: '/images/6/6f/Event_quiz.png'},
  			],
  			4: [
  				{name: 'Foxy race', time: '09:30:00', src: '/images/0/03/Event_race.png'},
  				{name: 'Foxy count', time: '15:00:00', src: '/images/e/e4/Event_count.png'},
  				{name: 'Foxy quiz', time: '19:00:00', src: '/images/6/6f/Event_quiz.png'},
  				{name: 'Deathmatch', time: '22:00:00', src: '/images/8/84/Event_dm.png'},
  			],
  			5: [
  				{name: 'Foxy count', time: '09:30:00', src: '/images/e/e4/Event_count.png'},
  				{name: 'Foxy quiz', time: '15:00:00', src: '/images/6/6f/Event_quiz.png'},
  				{name: 'Deathmatch', time: '19:00:00', src: '/images/8/84/Event_dm.png'},
  				{name: 'Foxy race (ship)', time: '22:00:00', src: '/images/c/c0/Event_ship.png'},
  			],
  			6: [
  				{name: 'Foxy quiz', time: '09:30:00', src: '/images/6/6f/Event_quiz.png'},
  				{name: 'Deathmatch', time: '15:00:00', src: '/images/8/84/Event_dm.png'},
  				{name: 'Foxy race', time: '19:00:00', src: '/images/0/03/Event_race.png'},
  				{name: 'Foxy count', time: '22:00:00', src: '/images/e/e4/Event_count.png'},
  			]
  		};
  		  		
		const brazilOffset = -3;
  		const eventTime = new Date(); 
	  	const eventStarting = new Date();	  	          		
  		var haveEvent = false;

  		function pad(d) {
		    return (d < 10) ? '0' + String(d) : String(d);
  		}
  		
  		function startTimer(eventTime, name){							
			interval = setInterval(function() {
				const now = new Date().getTime();
	  			const distance = eventTime.getTime() - now;
	  			
	  			if(distance > 0){
	  				const hour = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
	  				const minute = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
	  				const seconds = Math.floor((distance % (1000 * 60)) / 1000);
	  				
	  				timer.html(pad(hour) + ":" + pad(minute) + ":" + pad(seconds));                    
	  			}else {
                    haveEvent = false;
	  				setDayEvents();
	  				clearInterval(interval);
	  			}
	  		}, 1000);
		}
  		
  		function setDayEvents () {  				
			const date = new Date();
			const dayEvents = eventsInfo[date.getDay()];		            
	  		const utcTime = date.getTime() + (date.getTimezoneOffset() * 60000);
	  		const currentTime = new Date(utcTime + (3600000 * brazilOffset));            	  		

			$.each(dayEvents, function (key, item) {
  				split = item.time.split(":");
  				eventTime.setHours(split[0], split[1], split[2]);
	  			eventStarting.setHours(split[0], (Number(split[1]) + 5), split[2]);	  		

	  			if(currentTime.getTime() <= eventTime.getTime()){						
					eventImage.attr('src', item.src);	  	  							
                    haveEvent = true;
					startTimer(eventTime);

	  				return false;
	  			}else if(currentTime.getTime() > eventTime.getTime() && currentTime.getTime() < eventStarting.getTime()){
	  				eventImage.attr('src', item.src);
	  				timer.html('O evento está começando!');
					haveEvent = true;
	  				
					setTimeout(function(){
						haveEvent = false;
						return false;
					}, 300000);		
	  			}
	  		});                        
         
			if(!haveEvent){								
				eventImage.attr('src', "/images/a/a5/AnyEvent.png");
	  			timer.html('');	
			}
			
  		}
	
		if(!haveEvent)
        	setDayEvents();	

//------- COUNTDOWN MAINPAGE---------

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

	const characters = [
		{name: "Aokiji Dio", types: ["slasher", "especialist", "tank", "marine", "diamond"], 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: "Chopper (TS) Mathzs", 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 Horus", 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)", 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)", 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: "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", 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", 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 Rasky", types: ["fighter", "bruiser", "gold", "break_wall", "bridge"], link: "/Hina",img: "/images/5/57/Card-hina.png"},
	    {name: "Jesus Burguess", 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 Miza", 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", 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", 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", "specialist", "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 Bajin", 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", "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: "Roronoa zoro", wanteds: ["alvida", "arlong", "bepo", "buchi", "chew", "cabaji", "drake", "kid", "luffy", "mohji", "mr. 1", "mr. 4", "mr. 5",
    									 "pearl", "robin", "sanji", "usopp", "urouge", "yonji", "wapol"], img: "/images/6/6f/Card-zoro.png"},
    	{name: "Shanks", wanteds: ["alvida", "arlong", "apoo", "buggy", "bepo", "buchi", "burgess", "bellamy", "chew", "cabaji", "chopper", "capone",
    							   "drake", "franky", "gin", "hatchan", "jango", "koala", "kid", "killer", "krieg", "kuroobi", "kuro", "law", "luffy",
    							   "mohji", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami", "pearl", "perona", "rebecca", "sanji", "usopp",
    							   "urouge", "ichiji", "niji", "yonji", "van augur", "wapol", "zoro"], img: "/images/a/aa/Card-shanks.png"},
    	{name: "Dracule mihawk", wanteds: ["alvida", "apoo", "buggy", "buchi", "chew", "cabaji", "capone", "drake", "franky", "hawkins", "hatchan",
    									   "jango", "krieg", "kuroobi", "law", "luffy", "mohji", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami",
    									   "pearl", "perona", "robin", "ryuma", "sanji", "usopp", "urouge", "ichiji", "niji", "yonji", "van augur",
    									   "wapol", "zoro"], img: "/images/9/91/Card-mihawk.png"},
    	{name: "Killer", wanteds: ["alvida", "buggy", "jango", "pearl", "rebecca", "van augur"], img: "/images/b/b2/Card-killer.png"},
    	{name: "Tashigi", wanteds: ["alvida", "apoo", "bonney", "bellamy", "gin", "hawkins", "koala", "kid", "killer", "luffy", "mohji", "mr. 2",
    							    "mr. 4", "mr. 5", "goldenweek", "pearl", "sanji", "urouge", "reiju", "wapol"], img: "/images/b/b8/Card-tashigi.png"},
    	{name: "Roronoa zoro (TS)", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "buchi", "brook", "chew", "chopper", "capone", "drake",
    										  "franky", "gin", "hawkins", "hatchan", "hatchan", "jango", "koala", "krieg", "kuroobi", "law", "leo",
    										  "luffy", "mohji", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "perona", "robin",
    										  "sanji", "usopp", "urouge", "ichiji", "wapol"], img: "/images/7/74/Card-zorots.png"},
    	{name: "Rebbeca", wanteds: ["alvida", "buggy", "buchi", "bellamy", "chew", "cabaji", "capone", "drake", "franky", "gin", "killer", "krieg", 
    								"kuroobi", "kuro", "law", "luffy", "mr. 2", "mr. 4", "mr. 5", "nami", "pearl", "sanji", "usopp", "urouge", "niji",
    							    "yonji", "van augur", "wapol", "ryuma", "doublefinger"], img: "/images/9/91/Card-rebecca.png"},
    	{name: "Carrot", wanteds: ["alvida", "arlong", "buchi", "chew", "chopper", "capone", "drake", "franky", "hawkins", "hatchan", "jango", "kid", "krieg", 
    							   "kuroobi", "law", "leo", "luffy", "mohji", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "robin", "sanji", 
    							   "usopp", "urouge", "ichiji", "niji", "van augur", "zoro"], img: "/images/8/8d/Card-carrot.png"},
    	{name: "Ryuuma", wanteds: ["alvida", "buggy", "bepo", "buchi", "brook", "burgess", "cabaji", "chopper", "drake", "franky", "gin", "hatchan",
    							  "jango", "koala", "kid", "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami",
    							  "pearl", "perona", "sanji", "urouge", "niji", "yonji", "wapol", "zoro"], img: "/images/a/ac/Card-ryuma.png"},
    	{name: "Trafalga law", wanteds: ["alvida", "arlong", "apoo", "buggy", "buchi", "brook", "burgess", "chew", "drake", "franky", "hawkins", "hatchan",
    									 "jango", "kid", "krieg", "kuroobi", "leo", "luffy", "mohji", "mr. 1", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami",
    									 "pearl", "perona", "robin", "sanji", "usopp", "urouge", "ichiji", "niji", "reiju", "ryuma", "yonji", "wapol"], img: "/images/b/b9/Card-law.png"},
    	{name: "Mr. 1", wanteds: ["alvida", "arlong", "bepo", "buchi", "bellamy", "chew", "cabaji", "capone", "gin", "killer", "krieg", "kuroobi", "kuro",
    							  "law", "mohji", "mr. 2", "mr. 4", "mr. 5", "nami", "pearl", "perona", "niji", "doublefinger"], img: "/images/6/61/Card-dazbonez.png"},
    	{name: "Bastille", wanteds: ["alvida", "arlong", "buchi", "bellamy", "cabaji", "chopper", "gin", "kuro", "law", "mr. 5", "perona", "doublefinger"], img: "/images/1/13/Card-bastille.png"},
    	{name: "Dalmatian", wanteds: ["alvida", "buchi", "capone", "kuroobi", "mohji", "mr. 2", "mr. 4", "mr. 5", "pearl", "perona", "urouge"], img: "/images/9/99/Card-dalmatian.png"},
    	{name: "Morgan", wanteds: ["alvida"], img: "/images/4/43/Card-morgan.png"},
    	{name: "Cabaji", wanteds: ["alvida", "chew", "chopper", "drake", "gin", "hatchan", "jango", "mr. 4", "goldenweek", "nami"], img: "/images/9/9d/Card-cabaji.png"},
    	{name: "Kuro", wanteds: ["alvida", "buchi", "jango", "koala", "krieg", "mohji", "nami", "pearl"], img: "/images/3/3d/Card-kuro.png"},
    	{name: "Eric", wanteds: ["alvida", "apoo", "jango", "mr. 3", "mr. 5", "goldenweek", "usopp"], img: "/images/3/31/Card-eric.png"},
    	{name: "Miss doublefinger", wanteds: ["alvida", "bonney", "buchi", "burgess", "chopper", "capone", "drake", "hawkins", "kid", "kuroobi", "luffy",
    										  "mohji", "mr. 1", "mr. 4", "goldenweek", "doublefinger", "pearl", "rebecca", "sanji", "usopp", "urouge", "yonji", "wapol"], img: "/images/5/5f/Card-doublefinger.png"},
	];
	
	const wanted_shooters = [
		{name: "Capone gang", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy",
										"chew", "chopper", "franky", "hawkins", "hatchan", "jango", "koala", "krieg", "kuroobi", "kuro",
										"law", "leo", "luffy", "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "van augur", 
										"nami", "pearl", "robin", "rebecca", "sanji", "usopp", "ichiji", "niji", "reiju", "yonji", 
										"wapol"], img: "/images/c/c0/Card-capone.png"},
		{name: "Franky", wanteds: ["alvida", "buggy", "buchi", "burgess", "cabaji", "chopper", "capone", "hawkins", "koala", "mohji",
								   "pearl", "sanji", "niji", "yonji", "wapol"], img: "/images/6/61/Card-franky.png"},
		{name: "Eustass kid", wanteds: ["alvida", "buchi", "burgess", "bellamy", "cabaji", "chopper", "capone", "gin", "hawkins","koala", 
										"kid", "krieg", "kuro", "luffy", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "doublefinger",
										"pearl", "perona", "rebecca", "usopp", "ichiji", "yonji", "kid", "wapol"], img: "/images/9/9a/Card-kid.png"},
		{name: "Van augur", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "chew", 
									  "chopper", "capone", "drake", "franky", "hawkins", "hatchan", "jango", "koala", "killer", 
									  "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5",
									  "goldenweek", "nami", "pearl", "robin", "usopp", "urouge", "ichiji", "niji", "reiju", 
									  "yonji", "van augur", "wapol"], img: "/images/c/c7/Card-vanaugur.png"},
    	{name: "Portgas D. Ace", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy",
    									   "chew", "cabaji", "chopper", "capone", "drake", "franky", "gin", "hawkins", "hatchan", "jango",
    									   "koala", "kid", "killer", "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 3",
    									   "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "perona", "usopp", "urouge", "ichiji", "niji",
    									   "reiju", "yonji", "van augur", "wapol", "zoro"], img: "/images/4/40/Card-ace.png"},
    	{name: "Usopp (TS)", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy", "chew",
    								   "chopper", "drake", "franky", "hawkins", "hatchan", "jango", "krieg", "kuroobi", "law", "leo", "luffy",
    								   "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "perona", "rebecca", "ryuma",
    								   "ryuma", "usopp", "ichiji", "niji", "reiju", "yonji", "van augur", "wapol", "zoro"], img: "/images/c/cc/Card-usoppts.png"},
    	{name: "Doflamingo", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "burgess", "bellamy", "chew",
    								   "cabaji", "chopper", "capone", "drake", "franky", "gin", "hawkins", "hatchan", "jango", "koala", "kid", "killer",
    								   "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger",
    								   "nami", "pearl", "perona", "robin", "ryuma", "sanji", "usopp", "urouge", "ichiji", "niji", "reiju", "yonji", "van augur",
    								   "wapol", "zoro"], img: "/images/8/8d/Card-doflamingo.png"},
    	{name: "Buggy", wanteds: ["alvida", "buchi", "chew", "chopper", "mr. 5"], img: "/images/c/ca/Card-buggy.png"},
    	{name: "Niji", wanteds: ["alvida", "apoo", "buchi", "chew", "cabaji", "jango", "mr. 3", "reiju", "van augur"], img: "/images/6/66/Card-niji.png"},
    	{name: "Wapol", wanteds: ["mohji", "arlong", "buchi", "hawkins", "kid", "kuroobi", "mr. 1", "mr. 4", "pearl", "perona", "rebecca", "yonji", "wapol"], img: "/images/b/ba/Card-wapol.png"},
    	{name: "Franky (TS)", wanteds: ["alvida", "arlong", "buchi", "burgess", "bellamy", "cabaji", "chopper", "capone", "gin", 
    									"hawkins", "koala", "kid", "killer", "kuro", "mr. 1", "mr. 2", "mr. 4", "mr. 5", "doublefinger",
    									"pearl", "perona", "rebecca", "usopp", "ichiji", "yonji", "wapol", "zoro"], img: "/images/d/d0/Card-frankyts.png"},
    	{name: "Borsalino Kizaru", wanteds: ["alvida", "drake", "jango"], img: "/images/3/32/Card-kizaru.png"},
    	{name: "Don krieg", wanteds: ["alvida", "apoo", "bonney", "buggy", "buchi", "brook", "burgess", "chew", "chopper", "capone", "drake", "hatchan",
    								  "jango", "leo", "mohji", "mr. 3", "mr. 5", "goldenweek", "reiju"], img: "/images/8/8f/Card-krieg.png"},
    	{name: "Eric", wanteds: ["alvida", "apoo", "brook", "jango", "mr. 3", "mr. 5", "usopp"], img: "/images/3/31/Card-eric.png"},
    	{name: "Mr. 4", wanteds: ["alvida", "buchi", "burgess", "chopper", "hawkins", "zoro"], img: "/images/9/90/Card-mr4.png"},
    	{name: "Gin", wanteds: ["alvida", "buchi", "burgess", "cabaji", "chopper", "capone", "drake", "krieg", "mohji", "wapol"], img: "/images/1/18/Card-gin.png"},
    	{name: "Chew", wanteds: ["alvida"], img: "/images/0/0f/Card-chew.png"},
    	{name: "Usopp", wanteds: ["alvida", "bonney", "buchi", "chopper", "jango", "leo", "perona", "niji"], img: "/images/a/ac/Card-usopp.png"},
	];
	
	const wanted_fighters = [
    	{name: "X-Drake", wanteds: ["alvida", "arlong", "apoo", "bepo", "buchi", "brook", "burgess", "bonney", "chopper", "cabaji",
								  "capone", "drake", "franky", "gin", "hatchan", "koala", "kuroobi", "kuro", "killer", "kid", "krieg",
								  "luffy", "mohji", "mr. 1", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "perona", "pearl", "ryuma", "sanji",
								  "usopp", "urougue", "ichiji", "yonji", "van augur", "wapol", "zoro"], img: "/images/6/69/Card-drake.png"},
    	{name: "Hina", wanteds: ["alvida", "buchi", "cabaji", "killer", "pearl", "perona", "sanji", "usopp"], img: "/images/5/57/Card-hina.png"},
    	{name: "Smoker", wanteds: ["arlong", "alvida", "buggy", "bonney", "chopper", "capone", "hawkins", "krieg", "law", "luffy", "mr. 1",
    							   "mr. 2", "mr. 3", "mr. 3", "mr. 4", "mr. 5", "perona", "robin", "urouge", "van augur", "wapol", "zoro"], img: "/images/f/fb/Card-smoker.png"},
    	{name: "Bellamy", wanteds: ["arlong", "alvida", "apoo", "bepo", "buchi", "brook", "burgess", "chopper", "drake", "gin", "kuroobi", "krieg",
    								"law", "luffy", "mohji", "mr. 2", "mr. 4", "pearl", "ryuma", "rebecca", "sanji", "usopp", "urouge", "ichiji", 
    								"yonji", "van augur", "wapol", "zoro"], img: "/images/7/7e/Card-bellamy.png"},						   
		{name: "Urouge", wanteds: ["alvida", "apoo", "buchi", "cabaji", "chew", "capone", "gin", "hawkins", "hatchan", "jango", "koala",
								   "kuroobi", "kuro", "killer", "kid", "krieg", "leo", "law", "luffy", "mohji", "mr. 1", "mr. 2", "mr. 3",
								   "mr. 4", "mr. 5", "doublefinger", "goldenweek", "nami", "perona", "pearl", "robin", "ryuma", "rebecca", 
								   "sanji", "usopp", "urouge", "ichiji", "niji", "reiju", "yonji", "van augur", "wapol", "zoro"], img: "/images/9/98/Card-urouge.png"},    								
		{name: "Hancock", wanteds: ["alvida", "buggy" ,"buchi", "brook", "cabaji", "drake", "jango", "mr. 4", "mr. 5", "pearl", "ichiji", "wapol"], img: "/images/4/47/Card-hancock.png"},
		{name: "Yonji", wanteds: ["kuro"], img: "/images/7/73/Card-yonji.png"},
		{name: "Ichiji", wanteds: ["alvida", "apoo", "buggy", "buchi", "chew", "capone", "jango", "mr. 5", "pearl", "robin", "rebecca", "usopp", "wapol"], img: "/images/8/8c/Card-ichiji.png"},
		{name: "Mr. 2", wanteds: ["alvida", "bonney", "mr. 3"], img: "/images/2/27/Card-bonchan.png"},
		{name: "Sanji (TS)", wanteds: ["alvida", "arlong", "buggy", "bepo", "buchi", "burgess", "chew", "chopper", "drake", "jango", "koala", "killer", "kid", "krieg",
									   "law", "leo", "luffy", "mohji", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami", "pearl", "sanji", "usopp", "urouge",
									   "wapol"], img: "/images/7/7a/Card-sanjits.png"},
		{name: "Luffy (TS)", wanteds: ["alvida", "arlong", "buggy", "bepo", "brook", "burgess", "chopper", "capone", "drake", "franky", "hawkins", "jango", "kuro", "kid",
									   "krieg", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "usopp",
									   "urouge", "ichiji", "yonji", "wapol", "zoro"], img: "/images/e/ed/Card-luffyts.png"},
		{name: "Koala", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "brook", "burgess", "bellamy", "chopper", "drake", "franky", "hawkins", "jango", "kuroobi",
								  "kuro", "killer", "law", "luffy", "mohji", "mr. 2", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami", "pearl", "sanji", "usopp", "urouge",
								  "reiju", "yonji", "wapol"], img: "/images/f/f3/Card-koala.png"},									   
  		{name: "Burgess", wanteds: ["alvida", "arlong", "buggy", "bepo", "buchi", "bellamy", "chew", "cabaji", "capone", "franky", "gin", "kuroobi","kuro", "killer", 
  									"kid", "law", "luffy", "mr. 1", "mr. 2", "mr. 4", "doublefinger", "pearl", "rebecca", "ryuma", "usopp", "niji", "yonji", "van augur",
								    "zoro"], img: "/images/2/28/Card-burgess.png"},
		{name: "Luffy", wanteds: ["alvida", "arlong", "apoo", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy", "chew", "cabaji", "chopper", "drake", "franky",
								  "gin", "hawkins", "hatchan", "jango", "koala", "kuroobi", "kuro", "kid", "krieg", "law", "leo", "luffy", "mohji", "mr. 1", "mr. 2", 
								  "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "perona", "pearl", "rebecca", "ryuma", "sanji", "usopp", "urouge", "ichiji",
								  "niji", "yonji", "van augur", "wapol", "zoro"], img: "/images/a/af/Card-luffy.png"},		
		{name: "Bepo", wanteds: ["arlong", "alvida", "buchi", "cabaji", "drake", "jango", "kuro", "luffy", "mohji", "goldenweek", "pearl", "sanji", "wapol", "zoro"], img: "/images/1/1d/Card-bepo.png"},
		{name: "Sanji", wanteds: ["alvida", "buggy", "buchi", "jango", "mr. 4", "usopp", "wapol"], img: "/images/0/04/Card-sanji.png"},
		{name: "Arlong", wanteds: ["alvida"], img: "/images/1/1e/Card-arlong.png"},
		{name: "Gin", wanteds: ["alvida", "buchi", "burgess", "drake", "gin", "krieg", "mr. 5", "van augur", "wapol"], img: "/images/1/18/Card-gin.png"},
	];
	
	const wanted_especialists = [
    	{name: "Vinsmoke Reiju", wanteds: ["alvida", "arlong", "bonney", "brook", "burgess", "bellamy", "cabaji", "gin", "hatchan", "kid", "kuro", "doublefinger", 
    							  "pearl","rebecca", "urouge"], img: "/images/2/23/Card-reiju.png"},
      	{name: "Portgas D. Ace", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy",
										   "chew", "cabaji", "chopper", "capone", "drake", "franky", "gin", "hawkins", "hatchan", "jango",
										   "koala", "kid", "killer", "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 3",
										   "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "perona", "usopp", "urouge", "ichiji", "niji",
										   "reiju", "yonji", "van augur", "wapol", "zoro"], img: "/images/4/40/Card-ace.png"},
    	{name: "Doflamingo", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "burgess", "bellamy", "chew",
    								   "cabaji", "chopper", "capone", "drake", "franky", "gin", "hawkins", "hatchan", "jango", "koala", "kid", "killer",
    								   "krieg", "kuroobi", "law", "leo", "luffy", "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger",
    								   "nami", "pearl", "perona", "robin", "ryuma", "sanji", "usopp", "urouge", "ichiji", "niji", "reiju", "yonji", "van augur",
    								   "wapol", "zoro"], img: "/images/8/8d/Card-doflamingo.png"},
    	{name: "Borsalino Kizaru", wanteds: ["alvida", "drake", "jango"], img: "/images/3/32/Card-kizaru.png"},
    	{name: "Trafalga law", wanteds: ["alvida", "arlong", "apoo", "buggy", "buchi", "brook", "burgess", "chew", "drake", "franky", "hawkins", "hatchan",
    									 "jango", "kid", "krieg", "kuroobi", "leo", "luffy", "mohji", "mr. 1", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami",
    									 "pearl", "perona", "robin", "sanji", "usopp", "urouge", "ichiji", "niji", "reiju", "yonji", "wapol"], img: "/images/b/b9/Card-law.png"},
    	{name: "Carrot", wanteds: ["alvida", "arlong", "buchi", "chew", "chopper", "capone", "drake", "franky", "hawkins", "hatchan", "jango", "kid", "krieg", 
    							   "kuroobi", "law", "leo", "luffy", "mohji", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "robin", "sanji", 
    							   "usopp", "urouge", "ichiji", "niji", "van augur", "zoro"], img: "/images/8/8d/Card-carrot.png"},			
    	{name: "Nami (TS)", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "chew", "chopper", "drake", 
    										 "franky", "gin", "hawkins", "hatchan", "jango", "koala", "kid", "killer", "kuroobi", "kuro", "law", "leo", "luffy", 
    										 "mohji", "mr. 2", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "doublefinger", "nami", "pearl", "perona","rebecca", "ryuma", 
    										 "sanji", "urouge", "ichiji", "niji", "reiju", "yonji", "wapol", "zoro"], img: "/images/3/35/Card-namits.png"},
		{name: "Nami", wanteds: ["alvida", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "chew", "chopper", "drake", "franky","hawkins", 
								 "hatchan", "jango", "koala", "kid", "killer", "kuroobi", "kuro", "law", "leo", "luffy", "mohji", "mr. 4", "goldenweek",
								 "doublefinger", "nami", "pearl", "perona", "sanji", "urouge", "ichiji", "niji", "wapol"], img: "/images/0/08/Card-nami.png"},    										 
		{name: "Nico Robin", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "buchi", "brook", "burgess", "chew", "chopper", "drake", "franky", 
									   "hawkins", "jango", "kuroobi", "leo", "mr. 3", "mr. 4", "mr. 5", "goldenweek", "nami", "pearl", "perona", "usopp",
									   "urouge", "ichiji", "wapol",], img: "/images/3/3f/Card-robin.png"},
		{name: "Nico Robin (TS)", wanteds: ["alvida", "arlong", "apoo", "bonney", "buchi",  "chew", "jango", "leo", "mr. 3", "goldenweek", "pearl", 
											"perona",], img: "/images/b/b0/Card-robints.png"},
		{name: "Bartolomeu", wanteds: ["alvida", "arlong",  "drake", "jango", "koala", "kuroobi", "pearl", "urouge", "reiju"], img: "/images/a/a9/Card-barto.png"},									
		{name: "Marshall D. Teach", wanteds: ["alvida", "apoo", "bonney", "buggy", "buchi", "chew", "capone", "jango", "killer", "leo", "mr. 2",
											  "pearl", "perona", "perona", "robin"], img: "/images/f/ff/Card-kurohige.png"},
		{name: "Crocodile", wanteds: ["alvida", "bonney", "mr. 1", "yonji"], img: "/images/5/5d/Card-crocodile.png"},
		{name: "Bartolomew Kuma", wanteds: ["alvida", "arlong", "apoo", "bonney", "buggy", "bepo", "buchi", "brook", "burgess", "bellamy", "chew", 
										    "cabaji", "chopper", "capone", "drake", "franky", "gin", "hawkins", "hatchan", "jango", "koala", "kid",
										    "killer", "krieg", "kuroobi", "kuro", "law", "leo", "luffy", "mohji", "mr. 1", "mr. 2", "mr. 3", "mr. 4", 
										    "mr. 5", "doublefinger", "nami", "robin","rebecca", "ryuma", "sanji", "usopp", "urouge", "ichiji", "niji",
										    "reiju", "yonji", "van augur", "wapol", "zoro",], img: "/images/b/b5/Card-kuma.png"},
		{name: "Basil Hawkins", wanteds: ["alvida", "kuroobi", "luffy", "yonji"], 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" : 0.5,
    "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 ---------
 });