Diferencia entre revisiones de «Popup.js»

De Wiki The-West ES
Ir a la navegación.
Sin resumen de edición
Sin resumen de edición
 
(No se muestran 133 ediciones intermedias de 3 usuarios)
Línea 1: Línea 1:
 
ui = {
//Append popup container
     lang: {
$('body').append('<div id="popup_window" class="popup_window"><div class="popup_front"><div class="tw_bg_tl"></div><div class="tw_bg_tr"></div><div class="tw_bg_bl"></div><div class="tw_bg_br"></div></div><div id="popup_contents" class="popup_contents"></div></div>');
         input_level: "Tu nivel",
 
         input_search: "Buscar",
//Set events
         damages: "Rango de daño:",
$(document).on('mouseenter', '.item_container', function (e) {
         per_level: "por nivel",
     Popup.show(this);
         speed: "Velocidad",
    Popup.setPosition(e);
         level: "Nivel",
});
         unsalable: "Invendible",
$(document).on('mouseleave', '.item_container', function () {
         auction: "Subastable",
    Popup.hide();
         not_auction: "No Subastable",
});
         not_upgrade: "No mejorable",
$(document).on('mousemove', '.item_container', function (e) {
         upgrade: "Mejorable",
    Popup.setPosition(e);
         total: "Suma total",
});
         popup: {
 
            dmg: {
$('.item_level').mousedown(function (e) {
             dmglvl:'<p class="popup_dmg">+#1 Daño #2</p>'
    e.preventDefault();
            },
});
            skills: {
$(document).on('click', '.upgrade', function () {
                str: '<p class="popup_attribute">+ #1 Fuerza#2</p>',
    var container = $(this).closest('.item_container');
    var lvl = parseInt(container.attr('data-lvl'));
    if (lvl !== 5) {
        container.attr('data-lvl', lvl + 1);
        container.find('.level').html(lvl + 1);
    }
    Popup.show(container[0]);
});
$(document).on('click', '.downgrade', function () {
    var container = $(this).closest('.item_container');
    var lvl = parseInt(container.attr('data-lvl'));
    if (lvl !== 0) {
         container.attr('data-lvl', lvl - 1);
        container.find('.level').html(lvl - 1);
    }
    Popup.show(container[0]);
});
 
//Append input level
if ($("#input_level").length === 1) {
    var input_level = $('<input type="number" style="width:80px;" class="west" placeholder="Tu nivel" min="0" max="150">').bind("propertychange keyup input paste", function () {
        if (this.value > 150) {
            this.value = 150;
        } else if (this.value < 0) {
            this.value = 0;
        }
        $(".calc").each(function () {
            if (input_level.val() === 0) {
                $(this).html(this.id);
                $('.per_level_off').addClass('per_level').removeClass('per_level_off');
            } else {
                $(this).html(Math.ceil(Number(this.id) * input_level.val()));
                $('.per_level').addClass('per_level_off').removeClass('per_level');
            }
         });
    }).appendTo($("#input_level"));
}
 
 
//Search
if ($("#input_search").length === 1) {
    var input_search = $('<input type="search" class="west" placeholder="Buscar">').bind("propertychange keyup input paste", function () {
         var val = this.value.toLowerCase();
        if (val === '') {
            $('.item_container').show();
        } else {
            $('.item_container').hide();
            $('.item_container').filter(function () {
                return $(this).attr('data-popup').toLowerCase().indexOf(val) > -1;
            }).show();
        }
    }).appendTo($("#input_search"));
}
 
//Switch weapons
if ($("#switch").length === 1) {
    $("#fire").hide();
    $("#switch").on("click", function () {
         $('#melee, #fire').toggle();
    });
}
 
var Popup = {
    content : "",
    delay : 200,
    active : false,
    show: function(obj) {
        Popup.content = Popup.createPopup($(obj).attr('data-popup'), $(obj).attr('data-cdn-cat'), $(obj).attr('data-cdn-img'), parseInt($(obj).attr('data-lvl')));
        Popup.active = true;
        Popup.setTimeout();
        Popup.getContainer().html(Popup.content);
    },
    hide: function() {
        Popup.getEl().css({
            display: 'none',
            top: 0,
            left: 0
        });
        Popup.active = false;
        Popup.clearTimeout();
    },
    setTimeout: function() {
        Popup.clearTimeout();
        Popup.timer = window.setTimeout(function() {
            Popup.getEl().css('display', 'block');
        }, Popup.delay);
    },
    clearTimeout : function() {
        if (Popup.timer) window.clearTimeout(Popup.timer);
    },
    getEl : function() {
         return $('#popup_window');
    },
    getContainer : function() {
        return $('#popup_contents');
    },
    createPopup: function(data, cdn_cat, cdn_name, lvl) {
        data = JSON.parse(data);
 
        var html = '<div class="popup_image"><img src="https://westes.innogamescdn.com/images/items/' + data.cdn_cat + '/' + data.cdn_img + '.png' + '"/></div><div class="popup_divider"></div><p class="popup_name">' + data.name + '</p><p class="popup_type">' + data.type + '</p>';
 
 
if (data.text){
            html+='<center>';
            for (var i = 0; i < data.text.length;i++){
                html += '<p class="popup_text">'+data.text[i]+'</p>';
            }
            html+='</center><br/>';
        }
 
if(data.unic){
          html += '<span class="popup_txtvioleta"><center>Único</center></span><br/>';
}
 
        var upgraded = false;
        if ((lvl>=1)&&(lvl<=5)){
            upgraded = true;
            data.auc = false;
        }
        if (data.dmg_min&&data.dmg_max){
            if (upgraded) {
                data.dmg_min += Math.round(Math.max(1, data.dmg_min * 0.1  * lvl));
                data.dmg_max += Math.round(Math.max(1, data.dmg_max * 0.1  * lvl));
            }
         if(!data.dmglvl){
            html += '<p class="popup_dmg">'+data.dmg_min+'-'+data.dmg_max+' Daño</p>';
                              }
        }
        for (var cat in Popup.data) {
            var cnt = 0;
            for (var key in Popup.data[cat]) {
                if (data.hasOwnProperty(key)) {
                    cnt++;
                    var per_level = "";
                    if (data[key] < 0) {
                        if ($('#input_level input').val() > 0) {
                            data[key] = Math.ceil($('#input_level input').val() * -data[key]);
                            if (upgraded){
                                data[key] += Math.round(Math.max(1, data[key] * 0.1  * lvl));
                            }
                        } else {
                            data[key] = -data[key];
                            per_level = " (por Nivel)";
                            if (upgraded){
                                data[key] = Math.round(1e6 * (data[key] * 1 + Math.round(Math.max(1, data[key] * 1000 * lvl)) / 10000)) / 1e6;
                            }
                        }
                    } else if (upgraded) {
if (data[key]<1){
data[key] = Math.round(1e6 * (data[key] * 1 + Math.round(Math.max(1, data[key] * 1000 * lvl)) / 10000)) / 1e6;
} else {
    data[key] += Math.round(Math.max(1, data[key] * 0.1  * lvl));
}
                    }
      if(data.dmg_min&&data.dmg_max&&data.dmglvl)
                  {
                    html += Popup.data[cat][key].replace('#1', data[key]).replace('#2', per_level);
                  }
                }
            }
            if (cnt > 0) {
                html += '<br/>';
            }
        }     
       
        if (data.bonus){
            for (var i = 0; i < data.bonus.length;i++){
                html += '<p class="popup_bonus">'+data.bonus[i]+'</p>';
            }
         
          html+='<br/>';
         }
        if (data.jobs){
            html += '<div style="text-align:center;"><table class="popup_job">';
            for (var i =0; i<data.jobs.length;i++){
                html += '<tr><td><img src="https://westes.innogamescdn.com/images/jobs/'+data.jobs[i][1]+'.png"/></td><td><span>&nbsp;&nbsp;'+data.jobs[i][0]+'</span></td></tr>';
            }
            html += '</table></div>';
        }
         if (data.craft){
            html += '<div style="text-align:center;"><table  class="popup_crafteditem"><tr><td><img src="https://westes.innogamescdn.com/images/crafting/profsymbol_'+data.craft.id+'_small.png"/></td><td><table><tr>';
            for (var i = 0;i<data.craft.req.length;i++){
                html += '<td><img style="width:36px;height:36px;" src="https://westes.innogamescdn.com/images/items/yield/'+data.craft.req[i][0]+'.png"/></td>';
            }
            html += '</tr><tr>';
            for (var i = 0;i<data.craft.req.length;i++){
                html += '<td><span>x'+data.craft.req[i][1]+'</span></td>';
            }
            html += '</tr></table></td></tr></table></div>';
        }
        html += '<div class="popup_infos">';
        if (data.spd){
if (upgraded){
data.spd += Math.round(Math.max(1, data.spd * 0.1  * lvl));
}
html += '<p class="popup_speed">Velocidad: +' + data.spd + '%</p><br/>';
}
if (data.set) {
html += '<p><a class="popup_set" href="/wiki/'+data.set+'">' + data.set + '</a></p><br/>';
}
 
        if (data.sp) {
            html += '<img src="/images/5/56/Bp.png"/>' + data.bp + '&nbsp;&nbsp;&nbsp;&nbsp;<img src="/images/c/ce/Sp.png"/>&nbsp;' + data.sp + '<br/><br/>';
         } else {
            html += '<i>Invendible</i><br/><br/>';
        }
        if (data.lvl){
html += 'Requerido:<br/> -Nivel <b>' + data.lvl + '</b><br/>';
}
        if (data.sex) {
            if (data.sex == 0) {
                html += '-Sexo: Masculino <img src="/images/c/c5/Gender_m.png"/><br/>';
            } else {
                html += '-Sexo: Femenino <img src="/images/4/41/Gender_f.png"/><br/>';
            }
        }
        if (data.auc == 1){
            html += '<span class="popup_txtgreen">Subastable</span><br/>';
        } else {
            html += '<span class="popup_txtred">No Subastable</span><br/>';
         }
        if (data.upg == 0) {
            html += '<span class="popup_txtred">No mejorable</span><br/>';
         } else {
            html += '<span class="popup_txtgreen">Mejorable</span><br/>';
        }
        html += '<br/><p class="popup_id">[item=<b>' + data.id + '</b>]</p></div>';
        return html;
    },
    setPosition : function (e) {
        var window_width = $(window).width();
        var window_height = $(window).height();
        var popup_width = Popup.getEl().outerWidth();
        var popup_height = Popup.getEl().outerHeight();
         var pos_x = e.clientX;
        var pos_y = e.clientY;
        var top;
        var left;
        var margin_top = 20;
        var margin_left = 20;
        if (pos_x + popup_width + margin_left > window_width) {
            left = pos_x - popup_width - margin_left + (e.pageX - e.clientX);
        } else {
            left = pos_x + margin_left + (e.pageX - e.clientX);
        }
        if (pos_y + popup_height + margin_top > window_height) {
            top = window_height - popup_height + (e.pageY - e.clientY);
        } else {
            top = pos_y + margin_top + (e.pageY - e.clientY);
        }
        Popup.getEl().css({
            top: top,
            left: left
         });
    },
    data: {
        dmg: {
             dmglvl: '<p class="popup_dmg">+ #1 Daño#2</p>'
        },
        skills: {
            str: '<p class="popup_attribute">+ #1 Fuerza#2</p>',
             mob: '<p class="popup_attribute">+ #1 Movilidad#2</p>',
             mob: '<p class="popup_attribute">+ #1 Movilidad#2</p>',
             dex: '<p class="popup_attribute">+ #1 Destreza#2</p>',
             dex: '<p class="popup_attribute">+ #1 Destreza#2</p>',
Línea 303: Línea 41:
             tra: '<p class="popup_skill">+ #1 Comerciar#2</p>',
             tra: '<p class="popup_skill">+ #1 Comerciar#2</p>',
             ani: '<p class="popup_skill">+ #1 Instinto animal#2</p>',
             ani: '<p class="popup_skill">+ #1 Instinto animal#2</p>',
             app: '<p class="popup_skill">+ #1 Apariencia#2</p>',
             app: '<p class="popup_skill">+ #1 Apariencia#2</p>'
            luck: '<p class="popup_skill">+ #1 % más posibilidades de ganar#2</p>',
             },
            mon: '<p class="popup_skill">+ #1 % Dinero de trabajo y duelos#2</p>',
             fb: {
            speed: '<p class="popup_skill">+ #1 % de Velocidad#2</p>',
             res: '<p class="popup_skill">+ #1 Resistencia (Bonus de batalla)#2</p>',
            reg: '<p class="popup_skill">+ #1 % de regeneración#2</p>',
            exp: '<p class="popup_skill">+ #1 % Exp por trabajos, duelos y batallas de fuerte#2</p>',         
            lp: '<p class="popup_skill">+ #1 Puntos de trabajo#2</p>',
            sfboff: '<p class="popup_skill">+ #1 <b>Ataque</b> (Bonus de batalla)</p>',
            sfbdef: '<p class="popup_skill">+ #1 <b>Defensa</b> (Bonus de batalla)</p>',
            sfbres: '<p class="popup_skill">+ #1 <b>Resistencia</b> (Bonus de batalla)</p>',
            sfbdmg: '<p class="popup_skill">+ #1 <b>Daño</b> (Bonus de  batalla)</p>',
            sfboffs: '<p class="popup_skill">+ #1 <b>Ataque</b> (Bonus de sector de batalla)</p>',
            sfbdefs: '<p class="popup_skill">+ #1 <b>Defensa</b> (Bonus de sector de batalla )</p>',
            sfbdmgs: '<p class="popup_skill">+ #1 <b>Daño</b> (Bonus de sector de batalla)</p>',
 
            textjob: '<p class="popup_skill">#1 #2</p>',
            textjob1: '<p class="popup_skill">#1 #2</p>',
            textjob2: '<p class="popup_skill">#1 #2</p>',
            textjob3: '<p class="popup_skill">#1 #2</p>', 
        },
        buff:{
            bdes: '<p class="popup_buff">Algo para desempaquetar</p>',
            bluck: '<p class="popup_buff">+ #1 % más posibilidades de ganar#2</p>',
            bmon: '<p class="popup_buff">+ #1 % Dinero de trabajo y duelos#2</p>',
            bspeed: '<p class="popup_buff">+ #1 % de Velocidad#2</p>',
            bres: '<p class="popup_buff">+ #1 Resistencia (Bonus de batalla)#2</p>',
            breg: '<p class="popup_buff">+ #1 % de regeneración#2</p>',
            bsal: '<p class="popup_buff">+ Bonus de puntos de salud #1 % #2</p>',
            bene: '<p class="popup_buff">Energía incrementada: #1 % #2</p>',
            bmotd: '<p class="popup_buff">Motivacion del duelo incrementada #1 % #2</p>',
            bexp: '<p class="popup_buff">+ #1 % Exp por trabajos, duelos y batallas de fuerte#2</p>',         
            blp: '<p class="popup_buff">+ #1 Puntos de trabajo#2</p>',
            btextjob: '<p class="popup_buff">#1 #2</p>',
             btextjob1: '<p class="popup_buff">#1 #2</p>',
            btextjob2: '<p class="popup_buff">#1 #2</p>',
            btextjob3: '<p class="popup_buff">#1 #2</p>',
              },
        fb: {
             fboff: '<p class="popup_fb">+ #1 <b>Ataque</b> (Bonus de batalla)</p>',
             fboff: '<p class="popup_fb">+ #1 <b>Ataque</b> (Bonus de batalla)</p>',
             fbdef: '<p class="popup_fb">+ #1 <b>Defensa</b> (Bonus de batalla)</p>',
             fbdef: '<p class="popup_fb">+ #1 <b>Defensa</b> (Bonus de batalla)</p>',
Línea 347: Línea 49:
             fboffs: '<p class="popup_fb">+ #1 <b>Ataque</b> (Bonus de sector de batalla)</p>',
             fboffs: '<p class="popup_fb">+ #1 <b>Ataque</b> (Bonus de sector de batalla)</p>',
             fbdefs: '<p class="popup_fb">+ #1 <b>Defensa</b> (Bonus de sector de batalla )</p>',
             fbdefs: '<p class="popup_fb">+ #1 <b>Defensa</b> (Bonus de sector de batalla )</p>',
             fbdmgs: '<p class="popup_fb">+ #1 <b>Daño</b> (Bonus de sector de batalla)</p>',
             fbdmgs: '<p class="popup_fb">+ #1 <b>Daño</b> (Bonus de sector de batalla)</p>'
              
            },
special: {
                xp: '<p class="popup_skill">+ #1% Experiencia de trabajos, duelos y batallas de fuertes#2</p>',
                money: '<p class="popup_skill">+ #1% Dinero de trabajos y duelos#2</p>',
                luck: '<p class="popup_skill">+ #1% mas posibilidades de ganar #2</p>',
                regen: '<p class="popup_skill">+ #1% Regeneración#2</p>',
                drop: '<p class="popup_skill">+ #1 mas posibilidades de sacar productos#2</p>',
                labor_pts: '<p class="popup_skill">+ #1 Puntos de trabajo#2</p>',
                spd: '<p class="popup_txtgreen">+ #1% Velocidad #2</p>'
}
        }
    },
    config: {
        enable_set_calc: true,
        redirect_on_dblclick: true,
        cdn: "https://westes.innogamescdn.com",
        img_buyprice: "/images/5/56/Bp.png",
        img_sellprice: "/images/c/ce/Sp.png",
        img_male: "/images/c/c5/Gender_m.png",
        img_female: "/images/4/41/Gender_f.png",
        set_bonus: {
str: {
name:"Fuerza",img:"/images/thumb/f/fd/Fuerza.png/40px-Fuerza.png"},
mob: {
name:"Movilidad",img:"https://wiki.the-west.es/images/thumb/9/98/Movilidad.png/40px-Movilidad.png"},
dex: {
name:"Destreza",img:"https://wiki.the-west.es/images/thumb/3/36/Ma%C3%B1a.png/40px-Ma%C3%B1a.png"},
cha: {
name:"Carisma",img:"https://wiki.the-west.es/images/thumb/6/6a/Carisma.png/40px-Carisma.png"},
con: {
name:"Construcción",img:"https://wiki.the-west.es/images/b/b2/Construir.png"},
vig: {
name:"Vigor",img:"https://wiki.the-west.es/images/f/f4/Vigor.png"},
tou: {
name:"Tenacidad",img:"https://wiki.the-west.es/images/2/21/Tenacidad.png"},
sta: {
name:"Condición",img:"https://wiki.the-west.es/images/7/7e/Condici%C3%B3n.png"},
hea: {
name:"Puntos de vida",img:"https://wiki.the-west.es/images/a/aa/Salud.png"},
rid: {
name:"Montar a caballo",img:"https://wiki.the-west.es/images/b/b7/Montar_a_caballo.png"},
ref: {
name:"Reflejo",img:"https://wiki.the-west.es/images/a/a8/Reflejo.png"},
dod: {
name:"Eludir",img:"https://wiki.the-west.es/images/e/e3/Eludir.png"},
hid: {
name:"Esconder",img:"https://wiki.the-west.es/images/2/25/Esconder.png"},
swi: {
name:"Nadar",img:"https://wiki.the-west.es/images/f/fa/Nadar.png"},
aim: {
name:"Apuntar",img:"https://wiki.the-west.es/images/c/c9/Apuntar.png"},
sho: {
name:"Disparar",img:"https://wiki.the-west.es/images/f/f8/Disparar.png"},
pit: {
name:"Poner trampas",img:"https://wiki.the-west.es/images/1/1e/Poner_trampas.png"},
fin: {
name:"Destreza de manos",img:"https://wiki.the-west.es/images/b/b5/Destreza_de_manos.png"},
rep: {
name:"Reparar",img:"https://wiki.the-west.es/images/f/f3/Reparar.png"},
lea: {
name:"Liderazgo",img:"https://wiki.the-west.es/images/7/7c/Dirigir.png"},
tac: {
name:"Táctica",img:"https://wiki.the-west.es/images/4/48/T%C3%A1ctica.png"},
tra: {
name:"Comerciar",img:"https://wiki.the-west.es/images/3/39/Comerciar.png"},
ani: {
name:"Instinto animal",img:"https://wiki.the-west.es/images/2/26/Trato_con_animales.png"},
app: {
name:"Apariencia",img:"https://wiki.the-west.es/images/1/16/Presencia.png"},
fbdef: {
name:"<b>Defensa</b> (Bonus de batalla)",img:"https://wiki.the-west.es/images/8/82/Set_Fb_defense.png"},
fboff: {
name:"<b>Ataque</b> (Bonus de batalla)",img:"https://wiki.the-west.es/images/3/30/Set_Fb_offense.png"},
fbres: {
name:"<b>Resistencia</b> (Bonus de batalla)",img:"https://wiki.the-west.es/images/a/a5/Resistenciafb.png"},
fbdefs: {
name:"<b>Defensa</b> (Bonus de batalla de sector)",img:"https://wiki.the-west.es/images/1/1a/Set_Fb_defense_sec.png"},
fboffs: {
name:"<b>Ataque</b> (Bonus de batalla de sector)",
img:"https://wiki.the-west.es/images/f/fe/Set_Fb_offense_sec.png"
},
fbdmgs: {
name:"<b>Daño</b> (Bonus de batalla de sector)",
img:"https://wiki.the-west.es/images/b/b3/Damages_sector.png"
},
            xp: {
                name: "Experiencia de trabajos, duelos y batallas de fuertes(%)",
                img: "/images/7/71/Set_xp.png"
            },
            money: {
                name: "Dinero de trabajos y duelos(%)",
                img: "https://wiki.the-west.net/images/d/df/Set_money.png"
            },
            luck: {
                name:"% más posibilidades de ganar",
                img:"https://wiki.the-west.es/images/c/c1/Set_luck.png"
            },
            regen: {
                name:"Aumento de regeneración (%)",
                img:"https://wiki.the-west.net/images/5/53/Regeneration.png",
            },
            drop:{
                name:"Aumento probabilidad de salidad de productos",
                img:"https://wiki.the-west.net/images/thumb/b/b8/Drop.png/40px-Drop.png"
            },
            spd: {
                name: "Velocidad",
                img: "https://wiki.the-west.net/images/thumb/1/1a/QuarterHorse.png/40px-QuarterHorse.png"
                    }
        }
    },
    initPage: function () {
        //Append input level
        if ($("#input_level").length === 1) {
            var input_level = $('<input type="number" style="width:80px;" class="west" placeholder="' + ui.lang.input_level + '" min="0" max="250">').bind("propertychange keyup input paste", function () {
                if (this.value > 250) {
                    this.value = 250;
                } else if (this.value < 0) {
                    this.value = 0;
                }
                $(".calc").each(function () {
                    if (input_level.val() == 0) {
                        $(this).html(this.id);
                        $('.per_level_off').addClass('per_level').removeClass('per_level_off');
                    } else {
                        $(this).html(Math.ceil(Number(this.id) * input_level.val()));
                        $('.per_level').addClass('per_level_off').removeClass('per_level');
                    }
                });
             }).appendTo($("#input_level"));
         }
         }
    }
 
};
      //Search
//Show a "plain text" popup in the template
        if ($("#input_search").length === 1) {
if ((new RegExp(mw.config.get('wgFormattedNamespaces')[10] + '\:Item\_*').test(mw.config.get('wgPageName'))) && ($('.item_container').length === 1)) {
            var input_search = $('<input type="search" class="west" placeholder="' + ui.lang.input_search + '">').bind("propertychange keyup input paste", function () {
    $('#mw-content-text').append('<center><div id="popup_plain" class="popup_window"><div class="popup_front"><div class="tw_bg_tl"></div><div class="tw_bg_tr"></div><div class="tw_bg_bl"></div><div class="tw_bg_br"></div></div><div id="popup_plain_contents" class="popup_contents"></div></div></center>');
                var val = this.value.toLowerCase();
    $('#popup_plain').hide();
                console.log($('.craft_recipe').length);
    $('#popup_plain_contents').append(Popup.createPopup($('.item_container').attr('data-popup'), $('.item_container').attr('data-cdn-cat'), $('.item_container').attr('data-cdn-img'), 0));
                if ($('.craft_recipe').length) {
    $('#popup_plain').slideDown();
                    if (val === '') {
                        $('.craft_recipe').show().css('opacity', '1');
                    } else {
                      $('.craft_recipe').css('opacity', '0')
                        setTimeout(function() {
                            $('.craft_recipe').filter(function() {
                                if($(this).find('[data-popup]').filter(function() {
                                    return $(this).attr('data-popup').toLowerCase().indexOf(val) > -1;
                                }).length > 0){
                                    $(this).css('opacity', '1').show();
                                }else{
                                    $(this).hide();
                                }
                            })
                        }, 300);
                    }
                  } else {
                    if (val === '') {
                        $('.item_container').show();
                    } else {
                        $('.item_container').hide();
                        $('.item_container').filter(function () {
                            return $(this).attr('data-popup').toLowerCase().indexOf(val) > -1;
                        }).show();
                    }
                  }
            }).appendTo($("#input_search"));
        }
        //Switch weapons
        if ($("#switch").length === 1) {
            $("#fire").hide();
            $("#switch").on("click", function () {
                $('#melee, #fire').toggle();
            });
        }
 
//Switch products
        if ($("#switch_prod").length === 1) {
            $("#prod2").hide();
            $("#switch_prod").on("click", function () {
                $('#prod, #prod2').toggle();
            });
}
}
        //Show a "plain text" popup in the template
        if ((new RegExp(mw.config.get('wgFormattedNamespaces')[10] + '\:Item\_*').test(mw.config.get('wgPageName'))) && ($('.item_container').length === 1)) {
            $('#mw-content-text').append('<center><div id="popup_plain" class="popup_window"><div class="popup_front"><div class="tw_bg_tl"></div><div class="tw_bg_tr"></div><div class="tw_bg_bl"></div><div class="tw_bg_br"></div></div><div id="popup_plain_contents" class="popup_contents"></div></div></center>');
            $('#popup_plain').hide();
            $('#popup_plain_contents').append(ui.popup.createPopup($('.item_container').attr('data-popup'), $('.item_container').attr('data-cdn-cat'), $('.item_container').attr('data-cdn-img'), 0));
            $('#popup_plain').slideDown();
        }


//On dbl click on item, redirect the user to the template
        //On dbl click on item, redirect the user to the template
$('.item_container img').on('dblclick', function() {
        if (ui.config.redirect_on_dblclick) {
    window.location = '/wiki/' + mw.config.get('wgFormattedNamespaces')[10] + ':Item_' + JSON.parse($(this).parent().attr('data-popup')).id / 1000;
            $('.item_container img').on('dblclick', function () {
});
                window.location = '/wiki/' + mw.config.get('wgFormattedNamespaces')[10] + ':Item_' + JSON.parse($(this).parent().attr('data-popup')).id / 1000;
            });
        }
 
    },
    popup: {
        content: "",
        delay: 200,
        active: false,
        show: function (obj) {
            ui.popup.content = ui.popup.createPopup($(obj).attr('data-popup'), $(obj).attr('data-cdn-cat'), $(obj).attr('data-cdn-img'), parseInt($(obj).attr('data-lvl')));
            ui.popup.active = true;
            ui.popup.setTimeout();
            ui.popup.getContainer().html(ui.popup.content);
        },
        hide: function () {
            ui.popup.getEl().css({
                display: 'none',
                top: 0,
                left: 0
            });
            ui.popup.active = false;
            ui.popup.clearTimeout();
        },
        setTimeout: function () {
            ui.popup.clearTimeout();
            ui.popup.timer = window.setTimeout(function () {
                ui.popup.getEl().css('display', 'block');
            }, ui.popup.delay);
        },
        clearTimeout: function () {
            if (ui.popup.timer) window.clearTimeout(ui.popup.timer);
        },
        getEl: function () {
            return $('#popup_window');
        },
        getContainer: function () {
            return $('#popup_contents');
        },
        createPopup: function (data, cdn_cat, cdn_name, lvl) {
            data = JSON.parse(data);
            var html = '<div class="popup_image"><img src="' + ui.config.cdn + '/images/items/' + data.cdn_cat + '/' + data.cdn_img + '.png' + '"/></div><div class="popup_divider"></div><p class="popup_name">' + data.name + '</p><p class="popup_type">' + data.type + '</p><br/>';
            var upgraded = false;
            if ((lvl >= 1) && (lvl <= 5)) {
                upgraded = true;
                data.auc = false;
            }
            if (data.dmg_min && data.dmg_max) {
                if (upgraded) {
                    data.dmg_min += Math.round(Math.max(1, data.dmg_min * 0.1 * lvl));
                    data.dmg_max += Math.round(Math.max(1, data.dmg_max * 0.1 * lvl));
                }
                html += '<p class="popup_dmg">' + data.dmg_min + '-' + data.dmg_max + ' ' + ui.lang.damages + '</p>';
            }
            for (var cat in ui.lang.popup) {
                var cnt = 0;
                for (var key in ui.lang.popup[cat]) {
                    if (data.hasOwnProperty(key)) {
                        cnt++;
                        var per_level = "";
                        if (data[key] < 0) {
                            if ($('#input_level input').val() > 0) {
                                data[key] = Math.ceil($('#input_level input').val() * -data[key]);
                                if (upgraded) {
                                    data[key] += Math.round(Math.max(1, data[key] * 0.1 * lvl));
                                }
                            } else {
                                data[key] = -data[key];
                                per_level = " (" + ui.lang.per_level + ")";
                                if (upgraded) {
                                    data[key] = Math.round(1e6 * (data[key] * 1 + Math.round(Math.max(1, data[key] * 1000 * lvl)) / 10000)) / 1e6;
                                }
                            }
                        } else if (upgraded) {
                            if (data[key] < 1) {
                                data[key] = Math.round(1e6 * (data[key] * 1 + Math.round(Math.max(1, data[key] * 1000 * lvl)) / 10000)) / 1e6;
                            } else {
                                data[key] += Math.round(Math.max(1, data[key] * 0.1 * lvl));
                            }
                        }
                        html += ui.lang.popup[cat][key].replace('#1', data[key]).replace('#2', per_level);
                    }
                }
                if (cnt > 0) {
                    html += '<br/>';
                }
            }
            if (data.textjob) {
                for (var i = 0; i < data.textjob.length; i++) {
                    html += '<p class="popup_skill">' + data.textjob[i] + '</p>';
                }
                html += '<br/>';
            }
            if (data.text) {
html += '<center>';
                for (var i = 0; i < data.text.length; i++) {
                    html += '<p class="popup_text">' + data.text[i] + '</p>';
                }
                html += '</center><br/>';
            }
            if (data.bonus) {
                for (var i = 0; i < data.bonus.length; i++) {
                    html += '<p class="popup_bonus">' + data.bonus[i] + '</p>';
                }
                html += '<br/>';
            }
            if (data.jobs) {
                html += '<div style="text-align:center;"><table class="popup_job">';
                for (var i = 0; i < data.jobs.length; i++) {
                    html += '<tr><td><img src="' + ui.config.cdn + '/images/jobs/' + data.jobs[i][1] + '.png"/></td><td><span>&nbsp;&nbsp;' + data.jobs[i][0] + '</span></td></tr>';
                }
                html += '</table></div>';
            }
            if (data.craft) {
                html += '<div style="text-align:center;"><table  class="popup_crafteditem"><tr><td><img src="' + ui.config.cdn + '/images/crafting/profsymbol_' + data.craft.id + '_small.png"/></td><td><table><tr>';
                for (var i = 0; i < data.craft.req.length; i++) {
                    html += '<td><img style="width:36px;height:36px;" src="' + ui.config.cdn + '/images/items/yield/' + data.craft.req[i][0] + '.png"/></td>';
                }
                html += '</tr><tr>';
                for (var i = 0; i < data.craft.req.length; i++) {
                    html += '<td><span>x' + data.craft.req[i][1] + '</span></td>';
                }
                html += '</tr></table></td></tr></table></div>';
            }
            html += '<div class="popup_infos">';
            if (data.hspd) {
                if (upgraded) {
                    data.hspd += Math.round(Math.max(1, data.hspd * 0.1 * lvl));
                }
                html += '<p class="popup_speed">' + ui.lang.speed + ': +' + data.hspd + '%</p><br/>';
}
            if (data.set) html += '<p><a class="popup_set" href="/wiki/' + data.set + '">' + data.set + '</a></p><br/>';
            if (data.sp) {
                html += '<img src="' + ui.config.img_buyprice + '"/>' + data.bp + '&nbsp;&nbsp;&nbsp;&nbsp;<img src="' + ui.config.img_sellprice + '"/>&nbsp;' + data.sp + '<br/><br/>';
            } else {
                html += '<i>' + ui.lang.unsalable + '</i><br/><br/>';
            }
            if (data.lvl) html += ui.lang.level + ' <b>' + data.lvl + '</b><br/>';
            if (data.sex) {
                if (data.sex == 0) {
                    html += '<img src="' + ui.config.img_male + '"/>&nbsp;&nbsp;&nbsp;';
                } else {
                    html += '<img src="' + ui.config.img_female + '"/>&nbsp;&nbsp;&nbsp;';
                }
            }
            if (data.auc == 1) {
                html += '<span class="popup_txtgreen">' + ui.lang.auction + '</span><br/>';
            } else {
                html += '<span class="popup_txtred">' + ui.lang.not_auction + '</span><br/>';
            }
            if (data.upg == 0) {
                html += '<span class="popup_txtred">' + ui.lang.not_upgrade + '</span><br/>';
            } else {
                html += '<span class="popup_txtgreen">' + ui.lang.upgrade + '</span><br/>';
            }
            html += '<br/><p class="popup_id">[item=<b>' + data.id + '</b>]</p></div>';
            return html;
        },
        setPosition: function (e) {
            var window_width = $(window).width();
            var window_height = $(window).height();
            var popup_width = ui.popup.getEl().outerWidth();
            var popup_height = ui.popup.getEl().outerHeight();
            var pos_x = e.clientX;
            var pos_y = e.clientY;
            var top;
            var left;
            var margin_top = 20;
            var margin_left = 20;
            if (pos_x + popup_width + margin_left > window_width) {
                left = pos_x - popup_width - margin_left + (e.pageX - e.clientX);
            } else {
                left = pos_x + margin_left + (e.pageX - e.clientX);
            }
            if (pos_y + popup_height + margin_top > window_height) {
                top = window_height - popup_height + (e.pageY - e.clientY);
            } else {
                top = pos_y + margin_top + (e.pageY - e.clientY);
            }
            ui.popup.getEl().css({
                top: top,
                left: left
            });
        },
        init: function () {


            //Append popup container
            $('body').append('<div id="popup_window" class="popup_window"><div class="popup_front"><div class="tw_bg_tl"></div><div class="tw_bg_tr"></div><div class="tw_bg_bl"></div><div class="tw_bg_br"></div></div><div id="popup_contents" class="popup_contents"></div></div>');


//SET CALC
            //Set events
            $(document).on('mouseenter', '.item_container', function (e) {
                ui.popup.show(this);
                ui.popup.setPosition(e);
            });
            $(document).on('mouseleave', '.item_container', function () {
                ui.popup.hide();
            });
            $(document).on('mousemove', '.item_container', function (e) {
                ui.popup.setPosition(e);
            });


if ($('.infoSet').length !== 0) {
            $('.item_level').mousedown(function (e) {
     var set_calc = {
                e.preventDefault();
            });
            $(document).on('click', '.upgrade', function () {
                var container = $(this).closest('.item_container');
                var lvl = parseInt(container.attr('data-lvl'));
                if (lvl !== 5) {
                    container.attr('data-lvl', lvl + 1);
                    container.find('.level').html(lvl + 1);
                }
                ui.popup.show(container[0]);
            });
            $(document).on('click', '.downgrade', function () {
                var container = $(this).closest('.item_container');
                var lvl = parseInt(container.attr('data-lvl'));
                if (lvl !== 0) {
                    container.attr('data-lvl', lvl - 1);
                    container.find('.level').html(lvl - 1);
                }
                ui.popup.show(container[0]);
            });
        }
    },
     set_calc: {
         bonus: {
         bonus: {
            //List of usual bonuses matched with tooltip and image url
            set_bonus: {
str:{name:"Fuerza",img:"/images/thumb/f/fd/Fuerza.png/40px-Fuerza.png"},
mob:{name:"Movilidad",img:"https://wiki.the-west.es/images/thumb/9/98/Movilidad.png/40px-Movilidad.png"},
dex:{name:"Destreza",img:"https://wiki.the-west.es/images/thumb/3/36/Ma%C3%B1a.png/40px-Ma%C3%B1a.png"},
cha:{name:"Carisma",img:"https://wiki.the-west.es/images/thumb/6/6a/Carisma.png/40px-Carisma.png"},
con:{name:"Construcción",img:"https://wiki.the-west.es/images/b/b2/Construir.png"},
vig:{name:"Vigor",img:"https://wiki.the-west.es/images/f/f4/Vigor.png"},
tou:{name:"Tenacidad",img:"https://wiki.the-west.es/images/2/21/Tenacidad.png"},
sta:{name:"Condición",img:"https://wiki.the-west.es/images/7/7e/Condici%C3%B3n.png"},
hea:{name:"Puntos de vida",img:"https://wiki.the-west.es/images/a/aa/Salud.png"},
rid:{name:"Montar a caballo",img:"https://wiki.the-west.es/images/b/b7/Montar_a_caballo.png"},
ref:{name:"Reflejo",img:"https://wiki.the-west.es/images/a/a8/Reflejo.png"},
dod:{name:"Eludir",img:"https://wiki.the-west.es/images/e/e3/Eludir.png"},
hid:{name:"Esconder",img:"https://wiki.the-west.es/images/2/25/Esconder.png"},
swi:{name:"Nadar",img:"https://wiki.the-west.es/images/f/fa/Nadar.png"},
aim:{name:"Apuntar",img:"https://wiki.the-west.es/images/c/c9/Apuntar.png"},
sho:{name:"Disparar",img:"https://wiki.the-west.es/images/f/f8/Disparar.png"},
pit:{name:"Poner trampas",img:"https://wiki.the-west.es/images/1/1e/Poner_trampas.png"},
fin:{name:"Destreza de manos",img:"https://wiki.the-west.es/images/b/b5/Destreza_de_manos.png"},
rep:{name:"Reparar",img:"https://wiki.the-west.es/images/f/f3/Reparar.png"},
lea:{name:"Liderazgo",img:"https://wiki.the-west.es/images/7/7c/Dirigir.png"},
tac:{name:"Táctica",img:"https://wiki.the-west.es/images/4/48/T%C3%A1ctica.png"},
tra:{name:"Comerciar",img:"https://wiki.the-west.es/images/3/39/Comerciar.png"},
ani:{name:"Instinto animal",img:"https://wiki.the-west.es/images/2/26/Trato_con_animales.png"},
app:{name:"Apariencia",img:"https://wiki.the-west.es/images/1/16/Presencia.png"},
sfbdef:{name:"<b>Defensa</b> (Bonus de batalla)",img:"https://wiki.the-west.es/images/8/82/Set_Fb_defense.png"},
sfboff:{name:"<b>Ataque</b> (Bonus de batalla)",img:"https://wiki.the-west.es/images/3/30/Set_Fb_offense.png"},
sfbres:{name:"<b>Resistencia</b> (Bonus de batalla)",img:"https://wiki.the-west.es/images/a/a5/Resistenciafb.png"},
sfbdefs:{name:"<b>Defensa</b> (Bonus de batalla de sector)",img:"https://wiki.the-west.es/images/1/1a/Set_Fb_defense_sec.png"},
sfboffs:{name:"<b>Ataque</b> (Bonus de batalla de sector)",img:"https://wiki.the-west.es/images/f/fe/Set_Fb_offense_sec.png"},
sfbdmgs:{name:"<b>Daño</b> (Bonus de batalla de sector)",img:"https://wiki.the-west.es/images/b/b3/Damages_sector.png"}},
             //If there are any other "special" bonuses, they will be dynamically retrieved and stored there
             //If there are any other "special" bonuses, they will be dynamically retrieved and stored there
             extra_set_bonus: {}
             extra_set_bonus: {}
Línea 414: Línea 479:
             $('.set_container').each(function () {
             $('.set_container').each(function () {
                 var set_id = $(this).attr('data-set-id');
                 var set_id = $(this).attr('data-set-id');
                 set_calc.itemStatus[set_id] = {};
                 ui.set_calc.itemStatus[set_id] = {};
                 set_calc.data[set_id] = {
                 ui.set_calc.data[set_id] = {
                     items: {},
                     items: {},
                     set: {}
                     set: {}
Línea 422: Línea 487:
                     var json = JSON.parse($(this).attr('data-popup'));
                     var json = JSON.parse($(this).attr('data-popup'));
                     if ($(this).is(":hidden")) {
                     if ($(this).is(":hidden")) {
                         set_calc.itemStatus[set_id][json.id] = false;
                         ui.set_calc.itemStatus[set_id][json.id] = false;
                     } else {
                     } else {
                         set_calc.itemStatus[set_id][json.id] = 0;
                         ui.set_calc.itemStatus[set_id][json.id] = 0;
                     }
                     }
                     for (var prop in json) {
                     for (var prop in json) {
                         if (json.hasOwnProperty(prop) && set_calc.bonus.set_bonus.hasOwnProperty(prop)) {
                         if (json.hasOwnProperty(prop) && ui.config.set_bonus.hasOwnProperty(prop)) {
                             if (!set_calc.data[set_id].items[prop]) {
                             if (!ui.set_calc.data[set_id].items[prop]) {
                                 set_calc.data[set_id].items[prop] = {};
                                 ui.set_calc.data[set_id].items[prop] = {};
                             }
                             }
                             set_calc.data[set_id].items[prop][json.id] = json[prop];
                             ui.set_calc.data[set_id].items[prop][json.id] = json[prop];
                         }
                         }
                     }
                     }
Línea 441: Línea 506:
                 $(this).find('.infosetatt').each(function () {
                 $(this).find('.infosetatt').each(function () {
                     var nb = $(this).attr('data-nb');
                     var nb = $(this).attr('data-nb');
                     set_calc.data[set_id].set[nb] = {};
                     ui.set_calc.data[set_id].set[nb] = {};
                     $(this).find('.set_bonus').each(function () {
                     $(this).find('.set_bonus').each(function () {
                         key = $(this).attr('data-type');
                         key = $(this).attr('data-type');
                         if ($(this).find('.calc').length !== 0) {
                         if ($(this).find('.calc').length !== 0) {
                             set_calc.data[set_id].set[nb][key] = -parseFloat($(this).find('.calc').attr('id'));
                             ui.set_calc.data[set_id].set[nb][key] = -parseFloat($(this).find('.calc').attr('id'));
                         } else {
                         } else {
                             set_calc.data[set_id].set[nb][key] = parseFloat($(this).find('.val').text());
                             ui.set_calc.data[set_id].set[nb][key] = parseFloat($(this).find('.val').text());
                         }
                         }
                         if (!set_calc.bonus.set_bonus.hasOwnProperty(key)) {
                         if (!ui.config.set_bonus.hasOwnProperty(key)) {
                             set_calc.bonus.extra_set_bonus[key] = {
                             ui.set_calc.bonus.extra_set_bonus[key] = {
                                 img: $(this).find('img').attr('src'),
                                 img: $(this).find('img').attr('src'),
                                 name: $(this).find('#tooltip_content').text()
                                 name: $(this).find('#tooltip_content').text()
Línea 465: Línea 530:
                 var level = parseInt($('#input_level input').val());
                 var level = parseInt($('#input_level input').val());
                 total = {};
                 total = {};
                 for (var set_id in set_calc.data) {
                 for (var set_id in ui.set_calc.data) {
                     for (var key in set_calc.data[set_id].items) {
                     for (var key in ui.set_calc.data[set_id].items) {
                         for (var item_id in set_calc.data[set_id].items[key]) {
                         for (var item_id in ui.set_calc.data[set_id].items[key]) {
                             if (set_calc.itemStatus[set_id][item_id] !== false) {
                             if (ui.set_calc.itemStatus[set_id][item_id] !== false) {
                                 lvl = set_calc.itemStatus[set_id][item_id];
                                 lvl = ui.set_calc.itemStatus[set_id][item_id];
                                 if (!total[key]) {
                                 if (!total[key]) {
                                     total[key] = 0;
                                     total[key] = 0;
                                 }
                                 }
                                 var value = set_calc.data[set_id].items[key][item_id];
                                 var value = ui.set_calc.data[set_id].items[key][item_id];


                                 if (set_calc.data[set_id].items[key][item_id] < 0) {
                                 if (ui.set_calc.data[set_id].items[key][item_id] < 0) {
                                     //If bonus (per Level)
                                     //If bonus (per Level)
                                     value = -value;
                                     value = -value;


                                     if (set_calc.itemStatus[set_id][item_id] > 0) {
                                     if (ui.set_calc.itemStatus[set_id][item_id] > 0) {
                                         //If item upgraded
                                         //If item upgraded
                                         total[key] += Math.ceil(value * level) + Math.round(Math.max(1, Math.ceil(value * level) * 0.1 * lvl));
                                         total[key] += Math.ceil(value * level) + Math.round(Math.max(1, Math.ceil(value * level) * 0.1 * lvl));
Línea 486: Línea 551:
                                     }
                                     }
                                 } else {
                                 } else {
                                     if (set_calc.itemStatus[set_id][item_id] > 0) {
                                     if (ui.set_calc.itemStatus[set_id][item_id] > 0) {
                                         if (value < 1) {
                                         if (value < 1) {
                                             total[key] += Math.round(1e6 * (value * 1 + Math.round(Math.max(1, value * 1000 * lvl)) / 10000)) / 1e6;
                                             total[key] += Math.round(1e6 * (value * 1 + Math.round(Math.max(1, value * 1000 * lvl)) / 10000)) / 1e6;
Línea 500: Línea 565:
                     }
                     }
                     var item_nb = 0;
                     var item_nb = 0;
                     for (var item_id in set_calc.itemStatus[set_id]) {
                     for (var item_id in ui.set_calc.itemStatus[set_id]) {
                         if (set_calc.itemStatus[set_id][item_id] !== false) {
                         if (ui.set_calc.itemStatus[set_id][item_id] !== false) {
                             item_nb++;
                             item_nb++;
                         }
                         }
                     }
                     }
                     for (var key in set_calc.data[set_id].set[item_nb]) {
                     for (var key in ui.set_calc.data[set_id].set[item_nb]) {
                         if (!total[key]) {
                         if (!total[key]) {
                             total[key] = 0;
                             total[key] = 0;
                         }
                         }
                         if (set_calc.data[set_id].set[item_nb][key] < 0) {
                         if (ui.set_calc.data[set_id].set[item_nb][key] < 0) {
                             total[key] += Math.ceil(-set_calc.data[set_id].set[item_nb][key] * level);
                             total[key] += Math.ceil(-ui.set_calc.data[set_id].set[item_nb][key] * level);
                         } else {
                         } else {
                             total[key] += set_calc.data[set_id].set[item_nb][key];
                             total[key] += ui.set_calc.data[set_id].set[item_nb][key];
                         }
                         }
                     }
                     }
                 }
                 }
                 //Create the html table
                 //Create the html table
                 var html = '<center><table class="infoSet"><caption><br><big><b>Suma total</b></big></caption><tbody><tr><td></center>';
                 var html = '<center><table class="infoSet"><caption><br><big><b>' + ui.lang.total + '</b></big></caption><tbody><tr><td style=" background: #20140c !important; color: #ffdead !important; padding: 5px;">Nivel '+ level +'</td><td></center>';               for (var key in ui.config.set_bonus) {
                for (var key in set_calc.bonus.set_bonus) {
                     if (total.hasOwnProperty(key)) {
                     if (total.hasOwnProperty(key)) {
                         html += '<div class="set_bonus tooltip_container"><img src="' + set_calc.bonus.set_bonus[key].img + '"><b>+' + total[key] + '</b><div class="tooltip_outer"><div class="tooltip"><div class="tt_bg_tl"></div><div class="tt_bg_tr"></div><div class="tt_bg_bl"></div><div class="tt_bg_br"></div><div id="tooltip_content">' + set_calc.bonus.set_bonus[key].name + '</div></div></div></div>';
                         if(key == "con" || key == "vig" || key == "tou" || key == "sta" || key == "hea"
                        || key == "rid" || key == "ref" || key == "dod" || key == "hid" || key == "swi"
                        || key == "aim" || key == "sho" || key == "pit" || key == "fin" || key == "rep"
                        || key == "lea" || key == "tac" || key == "tra" || key == "ani" || key == "app"){
                            html += '<div class="set_bonus tooltip_container" style="width: 70px;"><img src="' + ui.config.set_bonus[key].img + '" style="width: 70px;" ><b style="width: 100%; display: block; background: #312215; color: #ffe7b1;">+' + total[key] + (['xp', 'money', 'luck', 'spd', 'regen', 'drop'].indexOf(key) !== -1 ? "%" : "") + '</b><div class="tooltip_outer"><div class="tooltip"><div class="tt_bg_tl"></div><div class="tt_bg_tr"></div><div class="tt_bg_bl"></div><div class="tt_bg_br"></div><div id="tooltip_content">' + ui.config.set_bonus[key].name + '</div></div></div></div>';
                        }else{
                            html += '<div class="set_bonus tooltip_container"><img src="' + ui.config.set_bonus[key].img + '"><b style="width: 100%; display: block; background: #312215; color: #ffe7b1;">+' + total[key] + (['xp', 'money', 'luck', 'spd', 'regen', 'drop'].indexOf(key) !== -1 ? "%" : "") + '</b><div class="tooltip_outer"><div class="tooltip"><div class="tt_bg_tl"></div><div class="tt_bg_tr"></div><div class="tt_bg_bl"></div><div class="tt_bg_br"></div><div id="tooltip_content">' + ui.config.set_bonus[key].name + '</div></div></div></div>';
                        }
                     }
                     }
                 }
                 }
                 for (var key in set_calc.bonus.extra_set_bonus) {
                 for (var key in ui.set_calc.bonus.extra_set_bonus) {
                     if (total.hasOwnProperty(key)) {
                     if (total.hasOwnProperty(key)) {
                         html += '<div class="set_bonus tooltip_container"><img src="' + set_calc.bonus.extra_set_bonus[key].img + '"><b>+' + total[key] + (['xp', 'money', 'luck', 'spd', 'regen', 'drop'].indexOf(key) !== -1 ? "%" : "") + '</b><div class="tooltip_outer"><div class="tooltip"><div class="tt_bg_tl"></div><div class="tt_bg_tr"></div><div class="tt_bg_bl"></div><div class="tt_bg_br"></div><div id="tooltip_content">' + set_calc.bonus.extra_set_bonus[key].name + '</div></div></div></div>';
                         html += '<div class="set_bonus tooltip_container"><img src="' + ui.set_calc.bonus.extra_set_bonus[key].img + '"><b style="width: 100%; display: block; background: #312215; color: #ffe7b1;">+' + total[key] + (['xp', 'money', 'luck', 'spd', 'regen', 'drop'].indexOf(key) !== -1 ? "%" : "") + '</b><div class="tooltip_outer"><div class="tooltip"><div class="tt_bg_tl"></div><div class="tt_bg_tr"></div><div class="tt_bg_bl"></div><div class="tt_bg_br"></div><div id="tooltip_content">' + ui.set_calc.bonus.extra_set_bonus[key].name + '</div></div></div></div>';
                     }
                     }
                 }
                 }
Línea 542: Línea 613:
                 var item_id = JSON.parse(item_container.attr('data-popup')).id;
                 var item_id = JSON.parse(item_container.attr('data-popup')).id;
                 if (item_container.hasClass('item_off') || item_container.is(":hidden")) {
                 if (item_container.hasClass('item_off') || item_container.is(":hidden")) {
                     set_calc.itemStatus[set_id][item_id] = false;
                     ui.set_calc.itemStatus[set_id][item_id] = false;
                 } else {
                 } else {
                     set_calc.itemStatus[set_id][item_id] = parseInt(item_container.attr('data-lvl'));
                     ui.set_calc.itemStatus[set_id][item_id] = parseInt(item_container.attr('data-lvl'));
                 }
                 }
                 set_calc.calc();
                 ui.set_calc.calc();
             });
             });
             //Update item level on upgrade / downgrade
             //Update item level on upgrade / downgrade
Línea 553: Línea 624:
                 var set_id = item.closest('.set_container').attr('data-set-id');
                 var set_id = item.closest('.set_container').attr('data-set-id');
                 if (!item.hasClass('item_off') && !item.is(":hidden")) {
                 if (!item.hasClass('item_off') && !item.is(":hidden")) {
                     set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl'));
                     ui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl'));
                     set_calc.calc();
                     ui.set_calc.calc();
                 }
                 }
             });
             });
             //Calc again when player level changes
             //Calc again when player level changes
             $("#input_level").bind("propertychange keyup input paste", function () {
             $("#input_level").bind("propertychange keyup input paste", function () {
                 set_calc.calc();
                 ui.set_calc.calc();
             });
             });
             //Activate/deactivate melee/fire weapon when the switch btn is clicked
             //Activate/deactivate melee/fire weapon when the switch btn is clicked
Línea 567: Línea 638:
                     var set_id = $(this).closest('.set_container').attr('data-set-id');
                     var set_id = $(this).closest('.set_container').attr('data-set-id');
                     if ($(this).is(":hidden")) {
                     if ($(this).is(":hidden")) {
                         set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = false;
                         ui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = false;
                     } else {
                     } else {
                         set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl'));
                         ui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl'));
                     }
                     }
                 });
                 });
                 set_calc.calc();
                 ui.set_calc.calc();
             });
             });
         },
         },
         init: function () {
         init: function () {
             set_calc.initEvents();
             ui.set_calc.initEvents();
             set_calc.getData();
             ui.set_calc.getData();
             $('#mw-content-text').append('<div id="set_calc"></div>');
             $('#mw-content-text').append('<div id="set_calc"></div>');
             if ($('#input_level').length === 0)
             if ($('#input_level').length === 0)
                 set_calc.calc();
                 ui.set_calc.calc();
        }
    },
    init: function () {
        ui.initPage();
        ui.popup.init();
        if (ui.config.enable_set_calc && $('.infoSet').length !== 0) {
            ui.set_calc.init();
         }
         }
     };
     }
    set_calc.init();
};
}
 
ui.init();

Revisión actual - 04:11 2 ene 2024

ui = {

   lang: {
       input_level: "Tu nivel",
       input_search: "Buscar",
       damages: "Rango de daño:",
       per_level: "por nivel",
       speed: "Velocidad",
       level: "Nivel",
       unsalable: "Invendible",
       auction: "Subastable",
       not_auction: "No Subastable",
       not_upgrade: "No mejorable",
       upgrade: "Mejorable",
       total: "Suma total",
       popup: {
           dmg: {

dmglvl:'

'

           },
           skills: {

str: '

', mob: '

', dex: '

', cha: '

', con: '

', vig: '

', tou: '

', sta: '

', hea: '

', rid: '

', ref: '

', dod: '

', hid: '

', swi: '

', aim: '

', sho: '

', pit: '

', fin: '

', rep: '

', lea: '

', tac: '

', tra: '

', ani: '

', app: '

'

           },
           fb: {

fboff: '

', fbdef: '

', fbres: '

', fboffs: '

', fbdefs: '

', fbdmgs: '

'

           },

special: {

xp: '

', money: '

', luck: '

', regen: '

', drop: '

', labor_pts: '

', spd: '

'

}

       }
   },
   config: {
       enable_set_calc: true,
       redirect_on_dblclick: true,
       cdn: "https://westes.innogamescdn.com",
       img_buyprice: "/images/5/56/Bp.png",
       img_sellprice: "/images/c/ce/Sp.png",
       img_male: "/images/c/c5/Gender_m.png",
       img_female: "/images/4/41/Gender_f.png",
       set_bonus: {

str: { name:"Fuerza",img:"/images/thumb/f/fd/Fuerza.png/40px-Fuerza.png"}, mob: { name:"Movilidad",img:"https://wiki.the-west.es/images/thumb/9/98/Movilidad.png/40px-Movilidad.png"}, dex: { name:"Destreza",img:"https://wiki.the-west.es/images/thumb/3/36/Ma%C3%B1a.png/40px-Ma%C3%B1a.png"}, cha: { name:"Carisma",img:"https://wiki.the-west.es/images/thumb/6/6a/Carisma.png/40px-Carisma.png"}, con: { name:"Construcción",img:"https://wiki.the-west.es/images/b/b2/Construir.png"}, vig: { name:"Vigor",img:"https://wiki.the-west.es/images/f/f4/Vigor.png"}, tou: { name:"Tenacidad",img:"https://wiki.the-west.es/images/2/21/Tenacidad.png"}, sta: { name:"Condición",img:"https://wiki.the-west.es/images/7/7e/Condici%C3%B3n.png"}, hea: { name:"Puntos de vida",img:"https://wiki.the-west.es/images/a/aa/Salud.png"}, rid: { name:"Montar a caballo",img:"https://wiki.the-west.es/images/b/b7/Montar_a_caballo.png"}, ref: { name:"Reflejo",img:"https://wiki.the-west.es/images/a/a8/Reflejo.png"}, dod: { name:"Eludir",img:"https://wiki.the-west.es/images/e/e3/Eludir.png"}, hid: { name:"Esconder",img:"https://wiki.the-west.es/images/2/25/Esconder.png"}, swi: { name:"Nadar",img:"https://wiki.the-west.es/images/f/fa/Nadar.png"}, aim: { name:"Apuntar",img:"https://wiki.the-west.es/images/c/c9/Apuntar.png"}, sho: { name:"Disparar",img:"https://wiki.the-west.es/images/f/f8/Disparar.png"}, pit: { name:"Poner trampas",img:"https://wiki.the-west.es/images/1/1e/Poner_trampas.png"}, fin: { name:"Destreza de manos",img:"https://wiki.the-west.es/images/b/b5/Destreza_de_manos.png"}, rep: { name:"Reparar",img:"https://wiki.the-west.es/images/f/f3/Reparar.png"}, lea: { name:"Liderazgo",img:"https://wiki.the-west.es/images/7/7c/Dirigir.png"}, tac: { name:"Táctica",img:"https://wiki.the-west.es/images/4/48/T%C3%A1ctica.png"}, tra: { name:"Comerciar",img:"https://wiki.the-west.es/images/3/39/Comerciar.png"}, ani: { name:"Instinto animal",img:"https://wiki.the-west.es/images/2/26/Trato_con_animales.png"}, app: { name:"Apariencia",img:"https://wiki.the-west.es/images/1/16/Presencia.png"}, fbdef: { name:"Defensa (Bonus de batalla)",img:"https://wiki.the-west.es/images/8/82/Set_Fb_defense.png"}, fboff: { name:"Ataque (Bonus de batalla)",img:"https://wiki.the-west.es/images/3/30/Set_Fb_offense.png"}, fbres: { name:"Resistencia (Bonus de batalla)",img:"https://wiki.the-west.es/images/a/a5/Resistenciafb.png"}, fbdefs: { name:"Defensa (Bonus de batalla de sector)",img:"https://wiki.the-west.es/images/1/1a/Set_Fb_defense_sec.png"}, fboffs: { name:"Ataque (Bonus de batalla de sector)", img:"https://wiki.the-west.es/images/f/fe/Set_Fb_offense_sec.png" }, fbdmgs: { name:"Daño (Bonus de batalla de sector)", img:"https://wiki.the-west.es/images/b/b3/Damages_sector.png" },

           xp: {
               name: "Experiencia de trabajos, duelos y batallas de fuertes(%)",
               img: "/images/7/71/Set_xp.png"
           },
           money: {
               name: "Dinero de trabajos y duelos(%)",
               img: "https://wiki.the-west.net/images/d/df/Set_money.png"
           },
           luck: {
               name:"% más posibilidades de ganar",
               img:"https://wiki.the-west.es/images/c/c1/Set_luck.png"
           },
           regen: {
               name:"Aumento de regeneración (%)",
               img:"https://wiki.the-west.net/images/5/53/Regeneration.png",
           },
           drop:{
               name:"Aumento probabilidad de salidad de productos",
               img:"https://wiki.the-west.net/images/thumb/b/b8/Drop.png/40px-Drop.png"
           },
           spd: {
               name: "Velocidad",
               img: "https://wiki.the-west.net/images/thumb/1/1a/QuarterHorse.png/40px-QuarterHorse.png"
                   }
       }
   },
   initPage: function () {
       //Append input level
       if ($("#input_level").length === 1) {
           var input_level = $('<input type="number" style="width:80px;" class="west" placeholder="' + ui.lang.input_level + '" min="0" max="250">').bind("propertychange keyup input paste", function () {
               if (this.value > 250) {
                   this.value = 250;
               } else if (this.value < 0) {
                   this.value = 0;
               }
               $(".calc").each(function () {
                   if (input_level.val() == 0) {
                       $(this).html(this.id);
                       $('.per_level_off').addClass('per_level').removeClass('per_level_off');
                   } else {
                       $(this).html(Math.ceil(Number(this.id) * input_level.val()));
                       $('.per_level').addClass('per_level_off').removeClass('per_level');
                   }
               });
           }).appendTo($("#input_level"));
       }
      //Search
        if ($("#input_search").length === 1) {
           var input_search = $('<input type="search" class="west" placeholder="' + ui.lang.input_search + '">').bind("propertychange keyup input paste", function () {
               var val = this.value.toLowerCase();
               console.log($('.craft_recipe').length);
               if ($('.craft_recipe').length) {
                   if (val === ) {
                       $('.craft_recipe').show().css('opacity', '1');
                   } else {
                      $('.craft_recipe').css('opacity', '0')
                       setTimeout(function() {
                           $('.craft_recipe').filter(function() {
                               if($(this).find('[data-popup]').filter(function() {
                                   return $(this).attr('data-popup').toLowerCase().indexOf(val) > -1;
                               }).length > 0){
                                   $(this).css('opacity', '1').show();
                               }else{
                                   $(this).hide();
                               }
                           })
                       }, 300);
                   }
                 } else {
                   if (val === ) {
                       $('.item_container').show();
                   } else {
                       $('.item_container').hide();
                       $('.item_container').filter(function () {
                           return $(this).attr('data-popup').toLowerCase().indexOf(val) > -1;
                       }).show();
                   }
                 }
           }).appendTo($("#input_search"));
       }
       //Switch weapons
       if ($("#switch").length === 1) {
           $("#fire").hide();
           $("#switch").on("click", function () {
               $('#melee, #fire').toggle();
           });
       }

//Switch products

       if ($("#switch_prod").length === 1) {
           $("#prod2").hide();
           $("#switch_prod").on("click", function () {
               $('#prod, #prod2').toggle();
           });

}

       //Show a "plain text" popup in the template
       if ((new RegExp(mw.config.get('wgFormattedNamespaces')[10] + '\:Item\_*').test(mw.config.get('wgPageName'))) && ($('.item_container').length === 1)) {

$('#mw-content-text').append('

');

           $('#popup_plain').hide();
           $('#popup_plain_contents').append(ui.popup.createPopup($('.item_container').attr('data-popup'), $('.item_container').attr('data-cdn-cat'), $('.item_container').attr('data-cdn-img'), 0));
           $('#popup_plain').slideDown();
       }
       //On dbl click on item, redirect the user to the template
       if (ui.config.redirect_on_dblclick) {
           $('.item_container img').on('dblclick', function () {
               window.location = '/wiki/' + mw.config.get('wgFormattedNamespaces')[10] + ':Item_' + JSON.parse($(this).parent().attr('data-popup')).id / 1000;
           });
       }
   },
   popup: {
       content: "",
       delay: 200,
       active: false,
       show: function (obj) {
           ui.popup.content = ui.popup.createPopup($(obj).attr('data-popup'), $(obj).attr('data-cdn-cat'), $(obj).attr('data-cdn-img'), parseInt($(obj).attr('data-lvl')));
           ui.popup.active = true;
           ui.popup.setTimeout();
           ui.popup.getContainer().html(ui.popup.content);
       },
       hide: function () {
           ui.popup.getEl().css({
               display: 'none',
               top: 0,
               left: 0
           });
           ui.popup.active = false;
           ui.popup.clearTimeout();
       },
       setTimeout: function () {
           ui.popup.clearTimeout();
           ui.popup.timer = window.setTimeout(function () {
               ui.popup.getEl().css('display', 'block');
           }, ui.popup.delay);
       },
       clearTimeout: function () {
           if (ui.popup.timer) window.clearTimeout(ui.popup.timer);
       },
       getEl: function () {
           return $('#popup_window');
       },
       getContainer: function () {
           return $('#popup_contents');
       },
       createPopup: function (data, cdn_cat, cdn_name, lvl) {
           data = JSON.parse(data);

var html = '


';

           var upgraded = false;
           if ((lvl >= 1) && (lvl <= 5)) {
               upgraded = true;
               data.auc = false;
           }
           if (data.dmg_min && data.dmg_max) {
               if (upgraded) {
                   data.dmg_min += Math.round(Math.max(1, data.dmg_min * 0.1 * lvl));
                   data.dmg_max += Math.round(Math.max(1, data.dmg_max * 0.1 * lvl));
               }

html += '

';

           }
           for (var cat in ui.lang.popup) {
               var cnt = 0;
               for (var key in ui.lang.popup[cat]) {
                   if (data.hasOwnProperty(key)) {
                       cnt++;
                       var per_level = "";
                       if (data[key] < 0) {
                           if ($('#input_level input').val() > 0) {
                               data[key] = Math.ceil($('#input_level input').val() * -data[key]);
                               if (upgraded) {
                                   data[key] += Math.round(Math.max(1, data[key] * 0.1 * lvl));
                               }
                           } else {
                               data[key] = -data[key];
                               per_level = " (" + ui.lang.per_level + ")";
                               if (upgraded) {
                                   data[key] = Math.round(1e6 * (data[key] * 1 + Math.round(Math.max(1, data[key] * 1000 * lvl)) / 10000)) / 1e6;
                               }
                           }
                       } else if (upgraded) {
                           if (data[key] < 1) {
                               data[key] = Math.round(1e6 * (data[key] * 1 + Math.round(Math.max(1, data[key] * 1000 * lvl)) / 10000)) / 1e6;
                           } else {
                               data[key] += Math.round(Math.max(1, data[key] * 0.1 * lvl));
                           }
                       }
                       html += ui.lang.popup[cat][key].replace('#1', data[key]).replace('#2', per_level);
                   }
               }
               if (cnt > 0) {
                   html += '
'; } } if (data.textjob) { for (var i = 0; i < data.textjob.length; i++) {

html += '

';

               }
               html += '
'; } if (data.text) {

html += '

';
               for (var i = 0; i < data.text.length; i++) {
html += '';
               }
html += '


';

           }
           if (data.bonus) {
               for (var i = 0; i < data.bonus.length; i++) {

html += '

';

               }
               html += '
'; } if (data.jobs) {

html += '

';
               for (var i = 0; i < data.jobs.length; i++) {
html += '';
               }
html += '

';

           }
           if (data.craft) {

html += '

';

           }

html += '

';

           return html;
       },
       setPosition: function (e) {
           var window_width = $(window).width();
           var window_height = $(window).height();
           var popup_width = ui.popup.getEl().outerWidth();
           var popup_height = ui.popup.getEl().outerHeight();
           var pos_x = e.clientX;
           var pos_y = e.clientY;
           var top;
           var left;
           var margin_top = 20;
           var margin_left = 20;
           if (pos_x + popup_width + margin_left > window_width) {
               left = pos_x - popup_width - margin_left + (e.pageX - e.clientX);
           } else {
               left = pos_x + margin_left + (e.pageX - e.clientX);
           }
           if (pos_y + popup_height + margin_top > window_height) {
               top = window_height - popup_height + (e.pageY - e.clientY);
           } else {
               top = pos_y + margin_top + (e.pageY - e.clientY);
           }
           ui.popup.getEl().css({
               top: top,
               left: left
           });
       },
       init: function () {
           //Append popup container

$('body').append('

');

           //Set events
           $(document).on('mouseenter', '.item_container', function (e) {
               ui.popup.show(this);
               ui.popup.setPosition(e);
           });
           $(document).on('mouseleave', '.item_container', function () {
               ui.popup.hide();
           });
           $(document).on('mousemove', '.item_container', function (e) {
               ui.popup.setPosition(e);
           });
           $('.item_level').mousedown(function (e) {
               e.preventDefault();
           });
           $(document).on('click', '.upgrade', function () {
               var container = $(this).closest('.item_container');
               var lvl = parseInt(container.attr('data-lvl'));
               if (lvl !== 5) {
                   container.attr('data-lvl', lvl + 1);
                   container.find('.level').html(lvl + 1);
               }
               ui.popup.show(container[0]);
           });
           $(document).on('click', '.downgrade', function () {
               var container = $(this).closest('.item_container');
               var lvl = parseInt(container.attr('data-lvl'));
               if (lvl !== 0) {
                   container.attr('data-lvl', lvl - 1);
                   container.find('.level').html(lvl - 1);
               }
               ui.popup.show(container[0]);
           });
       }
   },
   set_calc: {
       bonus: {
           //If there are any other "special" bonuses, they will be dynamically retrieved and stored there
           extra_set_bonus: {}
       },
       //Bonuses from all sets / items :
       data: {},
       //Status of all items (item lvl, activated or not)
       itemStatus: {},
       getData: function () {
           //Get bonuses from all item sets
           $('.set_container').each(function () {
               var set_id = $(this).attr('data-set-id');
               ui.set_calc.itemStatus[set_id] = {};
               ui.set_calc.data[set_id] = {
                   items: {},
                   set: {}
               };
               $(this).find('.item_container').each(function () {
                   var json = JSON.parse($(this).attr('data-popup'));
                   if ($(this).is(":hidden")) {
                       ui.set_calc.itemStatus[set_id][json.id] = false;
                   } else {
                       ui.set_calc.itemStatus[set_id][json.id] = 0;
                   }
                   for (var prop in json) {
                       if (json.hasOwnProperty(prop) && ui.config.set_bonus.hasOwnProperty(prop)) {
                           if (!ui.set_calc.data[set_id].items[prop]) {
                               ui.set_calc.data[set_id].items[prop] = {};
                           }
                           ui.set_calc.data[set_id].items[prop][json.id] = json[prop];
                       }
                   }
               });
           });
           //Get bonuses from all sets
           $('.infoSet').each(function () {
               var set_id = $(this).attr('data-set-id');
               $(this).find('.infosetatt').each(function () {
                   var nb = $(this).attr('data-nb');
                   ui.set_calc.data[set_id].set[nb] = {};
                   $(this).find('.set_bonus').each(function () {
                       key = $(this).attr('data-type');
                       if ($(this).find('.calc').length !== 0) {
                           ui.set_calc.data[set_id].set[nb][key] = -parseFloat($(this).find('.calc').attr('id'));
                       } else {
                           ui.set_calc.data[set_id].set[nb][key] = parseFloat($(this).find('.val').text());
                       }
                       if (!ui.config.set_bonus.hasOwnProperty(key)) {
                           ui.set_calc.bonus.extra_set_bonus[key] = {
                               img: $(this).find('img').attr('src'),
                               name: $(this).find('#tooltip_content').text()
                           };
                       }
                   });
               });
           });
       },
       calc: function () {
           //Only calc if a player level is provided
           if ($('#input_level').length === 0 | $('#input_level input').val() !== "") {
               var level = parseInt($('#input_level input').val());
               total = {};
               for (var set_id in ui.set_calc.data) {
                   for (var key in ui.set_calc.data[set_id].items) {
                       for (var item_id in ui.set_calc.data[set_id].items[key]) {
                           if (ui.set_calc.itemStatus[set_id][item_id] !== false) {
                               lvl = ui.set_calc.itemStatus[set_id][item_id];
                               if (!total[key]) {
                                   total[key] = 0;
                               }
                               var value = ui.set_calc.data[set_id].items[key][item_id];
                               if (ui.set_calc.data[set_id].items[key][item_id] < 0) {
                                   //If bonus (per Level)
                                   value = -value;
                                   if (ui.set_calc.itemStatus[set_id][item_id] > 0) {
                                       //If item upgraded
                                       total[key] += Math.ceil(value * level) + Math.round(Math.max(1, Math.ceil(value * level) * 0.1 * lvl));
                                   } else {
                                       total[key] += Math.ceil(value * level);
                                   }
                               } else {
                                   if (ui.set_calc.itemStatus[set_id][item_id] > 0) {
                                       if (value < 1) {
                                           total[key] += Math.round(1e6 * (value * 1 + Math.round(Math.max(1, value * 1000 * lvl)) / 10000)) / 1e6;
                                       } else {
                                           total[key] += Math.round(Math.max(1, value * 0.1 * lvl));
                                       }
                                   } else {
                                       total[key] += value;
                                   }
                               }
                           }
                       }
                   }
                   var item_nb = 0;
                   for (var item_id in ui.set_calc.itemStatus[set_id]) {
                       if (ui.set_calc.itemStatus[set_id][item_id] !== false) {
                           item_nb++;
                       }
                   }
                   for (var key in ui.set_calc.data[set_id].set[item_nb]) {
                       if (!total[key]) {
                           total[key] = 0;
                       }
                       if (ui.set_calc.data[set_id].set[item_nb][key] < 0) {
                           total[key] += Math.ceil(-ui.set_calc.data[set_id].set[item_nb][key] * level);
                       } else {
                           total[key] += ui.set_calc.data[set_id].set[item_nb][key];
                       }
                   }
               }
               //Create the html table

var html = '

<tbody>

' + ui.lang.total + '
Nivel '+ level +''; for (var key in ui.config.set_bonus) {
                   if (total.hasOwnProperty(key)) {
                       if(key == "con" || key == "vig" || key == "tou" || key == "sta" || key == "hea" 
                       || key == "rid" || key == "ref" || key == "dod" || key == "hid" || key == "swi" 
                       || key == "aim" || key == "sho" || key == "pit" || key == "fin" || key == "rep" 
                       || key == "lea" || key == "tac" || key == "tra" || key == "ani" || key == "app"){
html += '
<img src="' + ui.config.set_bonus[key].img + '" style="width: 70px;" >+' + total[key] + (['xp', 'money', 'luck', 'spd', 'regen', 'drop'].indexOf(key) !== -1 ? "%" : "") + '
' + ui.config.set_bonus[key].name + '
';
                       }else{
html += '
<img src="' + ui.config.set_bonus[key].img + '">+' + total[key] + (['xp', 'money', 'luck', 'spd', 'regen', 'drop'].indexOf(key) !== -1 ? "%" : "") + '
' + ui.config.set_bonus[key].name + '
';
                       }
                   }
               }
               for (var key in ui.set_calc.bonus.extra_set_bonus) {
                   if (total.hasOwnProperty(key)) {
html += '
<img src="' + ui.set_calc.bonus.extra_set_bonus[key].img + '">+' + total[key] + (['xp', 'money', 'luck', 'spd', 'regen', 'drop'].indexOf(key) !== -1 ? "%" : "") + '
' + ui.set_calc.bonus.extra_set_bonus[key].name + '
';
                   }
               }
               //Display the result at the bottom of the page
               $('#set_calc').html(html);
           } else {
               $('#set_calc').html("");
           }
       },
       initEvents: function () {
           //Deactivate / activate item on click
           $('.item_container > img').on('click', function () {
               var item_container = $(this).closest('.item_container');
               item_container.toggleClass('item_off');
               var set_id = item_container.closest('.set_container').attr('data-set-id');
               var item_id = JSON.parse(item_container.attr('data-popup')).id;
               if (item_container.hasClass('item_off') || item_container.is(":hidden")) {
                   ui.set_calc.itemStatus[set_id][item_id] = false;
               } else {
                   ui.set_calc.itemStatus[set_id][item_id] = parseInt(item_container.attr('data-lvl'));
               }
               ui.set_calc.calc();
           });
           //Update item level on upgrade / downgrade
           $(document).on('click', '.upgrade, .downgrade', function () {
               var item = $(this).closest('.item_container');
               var set_id = item.closest('.set_container').attr('data-set-id');
               if (!item.hasClass('item_off') && !item.is(":hidden")) {
                   ui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl'));
                   ui.set_calc.calc();
               }
           });
           //Calc again when player level changes
           $("#input_level").bind("propertychange keyup input paste", function () {
               ui.set_calc.calc();
           });
           //Activate/deactivate melee/fire weapon when the switch btn is clicked
           $("#switch").on('click', function () {
               $('#melee, #fire').each(function () {
                   var item = $(this).find('.item_container');
                   var set_id = $(this).closest('.set_container').attr('data-set-id');
                   if ($(this).is(":hidden")) {
                       ui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = false;
                   } else {
                       ui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl'));
                   }
               });
               ui.set_calc.calc();
           });
       },
       init: function () {
           ui.set_calc.initEvents();
           ui.set_calc.getData();
$('#mw-content-text').append('
');
           if ($('#input_level').length === 0)
               ui.set_calc.calc();
       }
   },
   init: function () {
       ui.initPage();
       ui.popup.init();
       if (ui.config.enable_set_calc && $('.infoSet').length !== 0) {
           ui.set_calc.init();
       }
   }

};

ui.init();