„Popup.js” változatai közötti eltérés

Innen: The-West wiki HU
Jump to navigation
a (Levédte a(z) Popup.js lapot ([Szerkesztés=csak adminisztrátoroknak engedélyezett] (határozatlan) [Átnevezés=csak adminisztrátoroknak engedélyezett] (határozatlan)))
Nincs szerkesztési összefoglaló
1. sor: 1. sor:
westui = {
westui = {
     lang: {
    lang: {     lang: {
         input_level: "Szinted",
        input_level: "Szinted",         input_level: "Szinted",
         input_search: "Keresés",
         input_search: "Keresés",         input_search: "Keresés",
         damages: "Sebzés",
         damages: "Sebzés",         damages: "Sebzés",
         per_level: "Szintenként",
         per_level: "Szintenként",         per_level: "Szintenként",
         speed: "Sebesség",
         speed: "Sebesség",         speed: "Sebesség",
         level: "Szint",
         level: "Szint",         level: "Szint",
         unsalable: "Nem eladható",
         unsalable: "Nem eladható",         unsalable: "Nem eladható",
         auction: "Aukciózható",
        auction: "Aukciózható",         auction: "Aukciózható",
         not_auction: "Nem aukciózható",
        not_auction: "Nem aukciózható",         not_auction: "Nem aukciózható",
         not_upgrade: "Nem fejleszthető",
        not_upgrade: "Nem fejleszthető",         not_upgrade: "Nem fejleszthető",
         upgrade: "Fejleszthető",
        upgrade: "Fejleszthető",         upgrade: "Fejleszthető",
         total: "Összesen",
        total: "Összesen",         total: "Összesen",
         popup: {
        popup: {
            dmg: {
            dmg: {
                dmglvl: '<p class="popup_dmg">+ #1 Sebzés#2</p>'
                dmglvl: '<p class="popup_dmg">+ #1 Damages#2</p>'
            },
            },
            skills: {
skills: {
                str: '<p class="popup_attribute">+ #1 Erő#2</p>',
                str: '<p class="popup_attribute">+ #1 Erő#2</p>',
                mob: '<p class="popup_attribute">+ #1 Mozgékonyság#2</p>',
                mob: '<p class="popup_attribute">+ #1 Mozgékonyság#2</p>',
                dex: '<p class="popup_attribute">+ #1 Ügyesség#2</p>',
                dex: '<p class="popup_attribute">+ #1 Ügyesség#2</p>',
                cha: '<p class="popup_attribute">+ #1 Karizma#2</p>',
                cha: '<p class="popup_attribute">+ #1 Karizma#2</p>',
                con: '<p class="popup_skill">+ #1 Építés#2</p>',
                con: '<p class="popup_skill">+ #1 Építés#2</p>',
                vig: '<p class="popup_skill">+ #1 Ütőerő#2</p>',
                vig: '<p class="popup_skill">+ #1 Ütőerő#2</p>',
                tou: '<p class="popup_skill">+ #1 Szívósság#2</p>',
                tou: '<p class="popup_skill">+ #1 Szívósság#2</p>',
                sta: '<p class="popup_skill">+ #1 Kitartás#2</p>',
                sta: '<p class="popup_skill">+ #1 Kitartás#2</p>',
                hea: '<p class="popup_skill">+ #1 Életerő pont#2</p>',
                hea: '<p class="popup_skill">+ #1 Életerő pont#2</p>',
                rid: '<p class="popup_skill">+ #1 Lovaglás#2</p>',
                rid: '<p class="popup_skill">+ #1 Lovaglás#2</p>',
                ref: '<p class="popup_skill">+ #1 Reflex#2</p>',
                ref: '<p class="popup_skill">+ #1 Reflex#2</p>',
                dod: '<p class="popup_skill">+ #1 Kitérés#2</p>',
                dod: '<p class="popup_skill">+ #1 Kitérés#2</p>',
                hid: '<p class="popup_skill">+ #1 Rejtőzés#2</p>',
                hid: '<p class="popup_skill">+ #1 Rejtőzés#2</p>',
                swi: '<p class="popup_skill">+ #1 Úszás#2</p>',
                swi: '<p class="popup_skill">+ #1 Úszás#2</p>',
                aim: '<p class="popup_skill">+ #1 Célzás#2</p>',
                aim: '<p class="popup_skill">+ #1 Célzás#2</p>',
                sho: '<p class="popup_skill">+ #1 Lövés#2</p>',
                sho: '<p class="popup_skill">+ #1 Lövés#2</p>',
                pit: '<p class="popup_skill">+ #1 Csapdaállítás#2</p>',
                pit: '<p class="popup_skill">+ #1 Csapdaállítás#2</p>',
                fin: '<p class="popup_skill">+ #1 Kézügyesség#2</p>',
                fin: '<p class="popup_skill">+ #1 Kézügyesség#2</p>',
                rep: '<p class="popup_skill">+ #1 Javítás#2</p>',
                rep: '<p class="popup_skill">+ #1 Javítás#2</p>',
                lea: '<p class="popup_skill">+ #1 Irányítás#2</p>',
                lea: '<p class="popup_skill">+ #1 Irányítás#2</p>',
                tac: '<p class="popup_skill">+ #1 Taktika#2</p>',
                tac: '<p class="popup_skill">+ #1 Taktika#2</p>',
                tra: '<p class="popup_skill">+ #1 Kereskedelem#2</p>',
                tra: '<p class="popup_skill">+ #1 Kereskedelem#2</p>',
                ani: '<p class="popup_skill">+ #1 Állati ösztön#2</p>',
                ani: '<p class="popup_skill">+ #1 Állati ösztön#2</p>',
                app: '<p class="popup_skill">+ #1 Fellépés#2</p>'
                app: '<p class="popup_skill">+ #1 Fellépés#2</p>'
            },
            },
            fb: {
            fb: {
                fbdef: '<p class="popup_fb">+ #1 <b>Védekezés</b> (Erődharc bónusz)#2</p>',
                fbdef: '<p class="popup_fb">+ #1 <b>Védekezés</b> (Erődharc bónusz)#2</p>',
                fboff: '<p class="popup_fb">+ #1 <b>Támadás</b> (Erődharc bónusz)#2</p>',
                fboff: '<p class="popup_fb">+ #1 <b>Támadás</b> (Erődharc bónusz)#2</p>',
                fbres: '<p class="popup_fb">+ #1 <b>Ellenállás</b> (Erődharc bónusz)#2</p>',
                fbres: '<p class="popup_fb">+ #1 <b>Ellenállás</b> (Erődharc bónusz)#2</p>',
                fbdefs: '<p class="popup_fb">+ #1 <b>Védekezés</b> (Erődharc szektorbónusz)#2</p>',
                fbdefs: '<p class="popup_fb">+ #1 <b>Védekezés</b> (Erődharc szektorbónusz)#2</p>',
                fboffs: '<p class="popup_fb">+ #1 <b>Támadás</b> (Erődharc szektorbónusz)#2</p>',
                fboffs: '<p class="popup_fb">+ #1 <b>Támadás</b> (Erődharc szektorbónusz)#2</p>',
                fbdmgs: '<p class="popup_fb">+ #1 <b>Sebzés</b> (Erődharc szektorbónusz)#2</p>'
                fbdmgs: '<p class="popup_fb">+ #1 <b>Sebzés</b> (Erődharc szektorbónusz)#2</p>'
            },
            },
            special: {
            special: {
                xp: '<p class="popup_txtgreen">+ #1% tapasztalat a munkákból, párbajokból és az erődharcokból#2</p>',
                xp: '<p class="popup_txtgreen">+ #1% tapasztalat a munkákból, párbajokból és az erődharcokból#2</p>',
                money: '<p class="popup_txtgreen">+ #1% Pénz munkákból és párbajokból#2</p>',
                money: '<p class="popup_txtgreen">+ #1% Pénz munkákból és párbajokból#2</p>',
                luck: '<p class="popup_txtgreen">+ #1% Szerencse#2</p>',
                luck: '<p class="popup_txtgreen">+ #1% Szerencse#2</p>',
                regen: '<p class="popup_txtgreen">+ #1% Regeneráció#2</p>',
                regen: '<p class="popup_txtgreen">+ #1% Regeneráció#2</p>',
                drop: '<p class="popup_txtgreen">+ #1% Találati esély#2</p>',
                drop: '<p class="popup_txtgreen">+ #1% Találati esély#2</p>',
                labor_pts: '<p class="popup_txtgreen">+ #1 munkapont#2</p>',
                labor_pts: '<p class="popup_txtgreen">+ #1 munkapont#2</p>',
                spd: '<p class="popup_txtgreen">+ #1% Sebesség#2</p>'
                spd: '<p class="popup_txtgreen">+ #1% Sebesség#2</p>'
            }
            }
        }
        }
    },
    },
    config: {
    config: {
        enable_set_calc: true,
        enable_set_calc: true,
        plain_popup: true,
        plain_popup: true,
        redirect_on_dblclick: false,
        redirect_on_dblclick: false,
        cdn: "https://westzz.innogamescdn.com",
        link_on_dblclick:true,
        img_buyprice: "/images/5/57/Buy_price.png",
        enable_sorting:true,
        img_sellprice: "/images/f/fc/Sell_price.png",
        cdn: "https://westzz.innogamescdn.com",
        img_male: "/images/c/c5/Gender_m.png",
        img_buyprice: "/images/5/57/Buy_price.png",
        img_female: "/images/4/41/Gender_f.png",
        img_sellprice: "/images/f/fc/Sell_price.png",
        set_bonus: {
        img_male: "/images/c/c5/Gender_m.png",
            str: {
        img_female: "/images/4/41/Gender_f.png",
                name: "Erő",
        set_bonus: {
                img: "/images/f/f4/Erő.png"
            str: {
            },
                name: "Strength",
            mob: {
                img: "/images/thumb/8/8b/Strength.png/40px-Strength.png"
                name: "Mozgékonyság",
            },
                img: "/images/c/c0/Mozgékonyság.png"
            mob: {
            },
                name: "Mobility",
            dex: {
                img: "/images/thumb/5/5a/Mobility.png/40px-Mobility.png"
                name: "Ügyesség",
            },
                img: "/images/f/fe/Ügyesség.png"
            dex: {
            },
                name: "Dexterity",
            cha: {
                img: "/images/thumb/0/0d/Dexterity.png/40px-Dexterity.png"
                name: "Karizma",
            },
                img: "/images/2/2e/Karizma.png"
            cha: {
            },
                name: "Charisma",
            con: {
                img: "/images/thumb/c/c9/Charisma.png/40px-Charisma.png"
                name: "Építés",
            },
                img: "/images/2/2a/Építés.png"
            con: {
            },
                name: "Construction",
            vig: {
                img: "/images/thumb/3/37/Construction.png/40px-Construction.png"
                name: "Ütőerő",
            },
                img: "/images/1/1a/Ütőerő.png"
            vig: {
            },
                name: "Vigor",
            tou: {
                img: "/images/thumb/9/90/Skill_Punch.png/40px-Skill_Punch.png"
                name: "Szívósság",
            },
                img: "/images/7/71/Szívósság.png"
            tou: {
            },
                name: "Toughness",
            sta: {
                img: "/images/thumb/f/f8/Skill_Tough.png/40px-Skill_Tough.png"
                name: "Stamina",
            },
                img: "/images/3/3a/Kitartás.png"
            sta: {
            },
                name: "Stamina",
            hea: {
                img: "/images/thumb/8/8d/Stamina.png/40px-Stamina.png"
                name: "Életerő pont",
            },
                img: "/images/a/a9/Életerő_pont.png"
            hea: {
            },
                name: "Health Points",
            rid: {
                img: "/images/thumb/9/94/Health.png/40px-Health.png"
                name: "Lovaglás",
            },
                img: "/images/2/21/Lovaglás.png"
            rid: {
            },
                name: "Horseback Riding",
            ref: {
                img: "/images/thumb/7/78/Hbr.png/40px-Hbr.png"
                name: "Reflex",
            },
                img: "/images/b/b2/Reflex.png"
            ref: {
            },
                name: "Reflex",
            dod: {
                img: "/images/thumb/e/e9/Skill_Reflex.png/40px-Skill_Reflex.png"
                name: "Kitérés",
            },
                img: "/images/d/d3/Kitérés.png"
            dod: {
            },
                name: "Dodging",
            hid: {
                img: "/images/thumb/0/07/Skill_Dodge.png/40px-Skill_Dodge.png"
                name: "Kitérés",
            },
                img: "/images/f/f3/Rejtőzés.png"
            hid: {
            },
                name: "Hiding",
            swi: {
                img: "/images/thumb/9/97/Hiding.png/40px-Hiding.png"
                name: "Úszás",
            },
                img: "/images/6/69/Úszás.png"
            swi: {
            },
                name: "Swimming",
            aim: {
                img: "/images/thumb/f/f4/Swimming.png/40px-Swimming.png"
                name: "Célzás",
            },
                img: "/images/2/22/Célzás.png"
            aim: {
            },
                name: "Aiming",
            sho: {
                img: "/images/thumb/5/53/Skill_Aim.png/40px-Skill_Aim.png"
                name: "Lövés",
            },
                img: "/images/0/07/Lövés.png"
            sho: {
            },
                name: "Shooting",
            pit: {
                img: "/images/thumb/7/73/Skill_Shot.png/40px-Skill_Shot.png"
                name: "Csapdaállítás",
            },
                img: "/images/4/41/Csapdaállítás.png"
            pit: {
            },
                name: "Setting traps",
            fin: {
                img: "/images/thumb/e/e1/Trapping.png/40px-Trapping.png"
                name: "Kézügyesség",
            },
                img: "/images/3/32/Kézügyesség.png"
            fin: {
            },
                name: "Fine Motor Skills",
            rep: {
                img: "/images/thumb/1/18/Fms.png/40px-Fms.png"
                name: "Javítás",
            },
                img: "/images/6/64/Javítás.png"
            rep: {
            },
                name: "Repairing",
            lea: {
                img: "/images/thumb/d/d5/Repairing.png/40px-Repairing.png"
                name: "Irányítás",
            },
                img: "/images/a/ad/Irányítás.png"
            lea: {
            },
                name: "Leadership",
            tac: {
                img: "/images/thumb/4/44/Leadership.png/40px-Leadership.png"
                name: "Taktika",
            },
                img: "/images/4/41/Taktika.png"
            tac: {
            },
                name: "Tactics",
            tra: {
                img: "/images/thumb/9/91/Skill_Tactic.png/40px-Skill_Tactic.png"
                name: "Kereskedelem",
            },
                img: "/images/c/c5/Kereskedelem_képesség.png"
            tra: {
            },
                name: "Trading",
            ani: {
                img: "/images/thumb/f/f3/Skill_Trading.png/40px-Skill_Trading.png"
                name: "Állati ösztön",
            },
                img: "/images/7/7c/Állati_ösztön.png"
            ani: {
            },
                name: "Animal Instinct",
            app: {
                img: "/images/thumb/9/9d/AnimalInstinct.png/40px-AnimalInstinct.png"
                name: "Fellépés",
            },
                img: "/images/1/1a/Fellépés.png"
            app: {
            },
                name: "Appearance",
            fbdef: {
                img: "/images/thumb/4/4c/Skill_Appearance.png/40px-Skill_Appearance.png"
                name: "<b>Védekezés</b> (Erődharc bónusz)",
            },
                img: "/images/a/a5/Védekezés.png"
            fbdef: {
            },
                name: "<b>Defense</b> (Fort battle bonus)",
            fboff: {
                img: "/images/8/82/Set_Fb_defense.png"
                name: "<b>Támadás</b> (Erődharc bónusz)",
            },
                img: "/images/6/6f/Támadás.png"
            fboff: {
            },
                name: "<b>Attack</b> (Fort battle bonus)",
            fbres: {
                img: "/images/3/30/Set_Fb_offense.png"
                name: "<b>Ellenállás</b> (Erődharc bónusz)",
            },
                img: "/images/8/80/Ellenállás_képesség.png"
            fbres: {
            },
                name: "<b>Resistance</b> (Fort battle bonus)",
            fbdefs: {
                img: "/images/4/4b/Resistance.png"
                name: "<b>Védelem</b> (Erődharc szektorbónusz)",
            },
                img: "/images/b/b9/Védekezés%28szek%29.png"
            fbdefs: {
            },
                name: "<b>Defense</b> (Fort battle sector bonus)",
            fboffs: {
                img: "/images/1/1a/Set_Fb_defense_sec.png"
                name: "<b>Támadás</b> (Erődharc szektorbónusz)",
            },
                img: "/images/9/92/Támadás%28szek%29.png"
            fboffs: {
            },
                name: "<b>Attack</b> (Fort battle sector bonus)",
            fbdmgs: {
                img: "/images/f/fe/Set_Fb_offense_sec.png"
                name: "<b>Sebzés</b> (Erődharc szektorbónusz)",
            },
                img: "/images/7/78/Sebzés%28szek%29.png"
            fbdmgs: {
            },
                name: "<b>Damages</b> (Fort battle sector bonus)",
            xp: {
                img: "/images/b/b3/Damages_sector.png"
                name: "tapasztalat munkákból, párbajokból és az erődharcokból (%)",
            },
                img: "/images/2/26/TPM.png"
            xp: {
            },
                name: "Experience from jobs, duels, and fort battles (%)",
            money: {
                img: "/images/7/71/Set_xp.png"
                name: "Pénz munkákból és párbajokból (%)",
            },
                img: "/images/8/84/Pénz.png"
            money: {
            },
                name: "Money from jobs and duels (%)",
            luck: {
                img: "/images/d/df/Set_money.png"
                name: "Szerencse",
            },
                img: "/images/8/8a/Szerencse.png"
            luck: {
            },
                name: "Increased Luck",
            regen: {
                img: "/images/c/c1/Set_luck.png"
                name: "Regeneráció",
            },
                img: "/images/5/58/Regeneráció.png",
            regen: {
            },
                name: "Regeneration",
            drop: {
                img: "/images/5/53/Regeneration.png",
                name: "Találati esély",
            },
                img: "/images/5/59/Találati_esély.png"
            drop: {
            },
                name: "Improved drop chance",
            spd: {
                img: "/images/thumb/b/b8/Drop.png/40px-Drop.png"
                name: "Sebesség",
            },
                img: "/images/2/25/Sebesség.png"
            spd: {
            }
                name: "Speed",
        }
                img: "/images/thumb/1/1a/QuarterHorse.png/40px-QuarterHorse.png"
    },
            }
    initPage: function () {
        },
        //Append input level
        sorting: {
        if ($("#input_level").length === 1) {
            'Strength':'{"str":1}',
            var input_level = $('<input type="number" style="width:80px;" class="west" placeholder="' + westui.lang.input_level + '" min="0" max="150">').bind("propertychange keyup input paste", function () {
            'Mobility':'{"mob":1}',
                if (this.value > 150) {
            'Dexterity':'{"dex":1}',
                    this.value = 150;
            'Charisma':'{"cha":1}',
                } else if (this.value < 0) {
            'Construction':'{"str":1,"con":1}',
                    this.value = 0;
            'Vigor':'{"str":1,"vig":1}',
                }
            'Toughness':'{"str":1,"tou":1}',
                $(".calc").each(function () {
            'Stamina':'{"str":1,"sta":1}',
                    if (input_level.val() == 0) {
            'Health Points':'{"str":1,"hea":1}',
                        $(this).html(this.id);
            'Horseback Riding':'{"mob":1,"rid":1}',
                        $('.per_level_off').addClass('per_level').removeClass('per_level_off');
            'Reflex':'{"mob":1,"ref":1}',
                    } else {
            'Dodging':'{"mob":1,"dod":1}',
                        $(this).html(Math.ceil(Number(this.id) * input_level.val()));
            'Hiding':'{"mob":1,"hid":1}',
                        $('.per_level').addClass('per_level_off').removeClass('per_level');
            'Swimming':'{"mob":1,"swi":1}',
                    }
            'Aiming':'{"dex":1,"aim":1}',
                });
            'Shooting':'{"dex":1,"sho":1}',
            }).appendTo($("#input_level"));
            'Setting traps':'{"dex":1,"pit":1}',
        }
            'Fine Motor Skills':'{"dex":1,fin":1}',
            'Repairing':'{"dex":1,"rep":1}',
            'Leadership':'{"cha":1,"lea":1}',
            'Tactics':'{"cha":1,"tac":1}',
            'Trading':'{"cha":1,"tra":1}',
            'Animal Instinct':'{"cha":1,"ani":1}',
            'Appearance':'{"cha":1,"app":1}',
            'Labor points towards building':'{"str":3,"con":3,"dex":1,"rep":1,"cha":1,"lea":1}',
            'Experience from jobs, duels, and fort battles (%)':'{"xp":1}',
            'Money from jobs and duels (%)':'{"xp":1}',
            'Increased Luck (%)':'{"luck":1}',
            'Regeneration (%)':'{"regen":1}',
            'Improved drop chance (%)':'{"drop":1}',
            'Speed (%)':'{"spd":1,"hspd":1,"mob":1,"rid":1}',
            'Average damage':'{"dmg_min":0.5,"dmg_max":0.5,"dmglvl":1}',
            'Maximum damage':'{"dmg_max":1,"dmglvl":1}',
        }
    },
    initPage: function () {
        //Append input level
        if ($("#input_level").length === 1) {
            var input_level = $('<input type="number" style="width:80px;" class="west" placeholder="' + westui.lang.input_level + '" 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
        //Search
        if ($("#input_search").length === 1) {
        if ($("#input_search").length === 1) {
            var input_search = $('<input type="search" class="west" placeholder="' + westui.lang.input_search + '">').bind("propertychange keyup input paste", function () {
            var input_search = $('<input type="search" class="west" placeholder="' + westui.lang.input_search + '">').bind("propertychange keyup input paste", function () {
                var val = this.value.toLowerCase();
                var val = this.value.toLowerCase();
                if (val === '') {
                if (val === '') {
                    $('.item_container').show();
                    $('.item_container').show();
                } else {
                } else {
                    $('.item_container').hide();
                    $('.item_container').hide();
                    $('.item_container').filter(function () {
                    $('.item_container').filter(function () {
                        return $(this).attr('data-popup').toLowerCase().indexOf(val) > -1;
                        return $(this).attr('data-popup').toLowerCase().indexOf(val) > -1;
                    }).show();
                    }).show();
                }
                }
            }).appendTo($("#input_search"));
            }).appendTo($("#input_search"));
        }
        }


        //Switch weapons
        //Switch weapons
        if ($("#switch").length === 1) {
        if ($("#switch").length === 1) {
            $("#fire").hide();
            $("#fire").hide();
            $("#switch").on("click", function () {
            $("#switch").on("click", function () {
                $('#melee, #fire').toggle();
                $('#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
        //Switch products
        if (westui.config.plain_popup && (new RegExp(mw.config.get('wgFormattedNamespaces')[10] + '\:Item\_*').test(mw.config.get('wgPageName'))) && ($('.item_container').length === 1)) {
        if ($("#switch_prod").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>');
            $("#prod2").hide();
            $('#popup_plain').hide();
            $("#switch_prod").on("click", function () {
            $('#popup_plain_contents').append(westui.popup.createPopup($('.item_container').attr('data-popup'), $('.item_container').attr('data-cdn-cat'), $('.item_container').attr('data-cdn-img'), 0));
                $('#prod, #prod2').toggle();
            $('#popup_plain').slideDown();
            });
        }
        }


        //On dbl click on item, redirect the user to the template
        //Show a "plain text" popup in the template
        if (westui.config.redirect_on_dblclick) {
        if (westui.config.plain_popup && (new RegExp(mw.config.get('wgFormattedNamespaces')[10] + '\:Item\_*').test(mw.config.get('wgPageName'))) && ($('.item_container').length === 1)) {
            $('.item_container img').on('dblclick', 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>');
                window.location = '/wiki/' + mw.config.get('wgFormattedNamespaces')[10] + ':Item_' + JSON.parse($(this).parent().attr('data-popup')).id / 1000;
            $('#popup_plain').hide();
            });
            $('#popup_plain_contents').append(westui.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
    popup: {
        if (westui.config.redirect_on_dblclick) {
        content: "",
            $('.item_container img').on('dblclick', function () {
        delay: 200,
                window.location = '/wiki/' + mw.config.get('wgFormattedNamespaces')[10] + ':Item_' + JSON.parse($(this).parent().attr('data-popup')).id / 1000;
        active: false,
            });
        show: function (obj) {
        }
            westui.popup.content = westui.popup.createPopup($(obj).attr('data-popup'), $(obj).attr('data-cdn-cat'), $(obj).attr('data-cdn-img'), parseInt($(obj).attr('data-lvl')));
        if (westui.config.link_on_dblclick) {
            westui.popup.active = true;
            $('.item_container img').on('dblclick', function () {
            westui.popup.setTimeout();
                window.location = '/wiki/' + $(this).parent().attr('data-link');
            westui.popup.getContainer().html(westui.popup.content);
            });
        },
        }
        hide: function () {
            westui.popup.getEl().css({
                display: 'none',
                top: 0,
                left: 0
            });
            westui.popup.active = false;
            westui.popup.clearTimeout();
        },
        setTimeout: function () {
            westui.popup.clearTimeout();
            westui.popup.timer = window.setTimeout(function () {
                westui.popup.getEl().css('display', 'block');
            }, westui.popup.delay);
        },
        clearTimeout: function () {
            if (westui.popup.timer) window.clearTimeout(westui.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="' + westui.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 + ' ' + westui.lang.damages + '</p>';
            }
            if (data.text) {
                for (var i = 0; i < data.text.length; i++) {
                    html += '<p class="popup_text">' + data.text[i] + '</p>';
                }
                html += '<br/>';
            }
            for (var cat in westui.lang.popup) {
                var cnt = 0;
                for (var key in westui.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 = " (" + westui.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 += westui.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_txtgreen">' + data.textjob[i] + '</p>';
                }
                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="' + westui.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="' + westui.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="' + westui.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">' + westui.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="' + westui.config.img_buyprice + '"/>' + data.bp + '&nbsp;&nbsp;&nbsp;&nbsp;<img src="' + westui.config.img_sellprice + '"/>&nbsp;' + data.sp + '<br/><br/>';
            } else {
                html += '<i>' + westui.lang.unsalable + '</i><br/><br/>';
            }
            if (data.lvl) html += westui.lang.level + ' <b>' + data.lvl + '</b><br/>';
            if (data.sex) {
                if (data.sex == 0) {
                    html += '<img src="' + westui.config.img_male + '"/>&nbsp;&nbsp;&nbsp;';
                } else {
                    html += '<img src="' + westui.config.img_female + '"/>&nbsp;&nbsp;&nbsp;';
                }
            }
            if (data.auc == 1) {
                html += '<span class="popup_txtgreen">' + westui.lang.auction + '</span><br/>';
            } else {
                html += '<span class="popup_txtred">' + westui.lang.not_auction + '</span><br/>';
            }
            if (data.upg == 0) {
                html += '<span class="popup_txtred">' + westui.lang.not_upgrade + '</span><br/>';
            } else {
                html += '<span class="popup_txtgreen">' + westui.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 = westui.popup.getEl().outerWidth();
            var popup_height = westui.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);
            }
            westui.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>');
    popup: {
        content: "",
        delay: 200,
        active: false,
        show: function (obj) {
            westui.popup.content = westui.popup.createPopup($(obj).attr('data-popup'), $(obj).attr('data-cdn-cat'), $(obj).attr('data-cdn-img'), parseInt($(obj).attr('data-lvl')));
            westui.popup.active = true;
            westui.popup.setTimeout();
            westui.popup.getContainer().html(westui.popup.content);
        },
        hide: function () {
            westui.popup.getEl().css({
                display: 'none',
                top: 0,
                left: 0
            });
            westui.popup.active = false;
            westui.popup.clearTimeout();
        },
        setTimeout: function () {
            westui.popup.clearTimeout();
            westui.popup.timer = window.setTimeout(function () {
                westui.popup.getEl().css('display', 'block');
            }, westui.popup.delay);
        },
        clearTimeout: function () {
            if (westui.popup.timer) window.clearTimeout(westui.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="' + westui.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 + ' ' + westui.lang.damages + '</p>';
            }
            if (data.text) {
                for (var i = 0; i < data.text.length; i++) {
                    html += '<p class="popup_text">' + data.text[i] + '</p>';
                }
                html += '<br/>';
            }
            for (var cat in westui.lang.popup) {
                var cnt = 0;
                for (var key in westui.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 = " (" + westui.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 += westui.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_txtgreen">' + data.textjob[i] + '</p>';
                }
                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="' + westui.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="' + westui.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="' + westui.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">' + westui.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="' + westui.config.img_buyprice + '"/>' + data.bp + '&nbsp;&nbsp;&nbsp;&nbsp;<img src="' + westui.config.img_sellprice + '"/>&nbsp;' + data.sp + '<br/><br/>';
            } else {
                html += '<i>' + westui.lang.unsalable + '</i><br/><br/>';
            }
            if (data.lvl) html += westui.lang.level + ' <b>' + data.lvl + '</b><br/>';
            if (data.sex) {
                if (data.sex == 0) {
                    html += '<img src="' + westui.config.img_male + '"/>&nbsp;&nbsp;&nbsp;';
                } else {
                    html += '<img src="' + westui.config.img_female + '"/>&nbsp;&nbsp;&nbsp;';
                }
            }
            if (data.auc == 1) {
                html += '<span class="popup_txtgreen">' + westui.lang.auction + '</span><br/>';
            } else {
                html += '<span class="popup_txtred">' + westui.lang.not_auction + '</span><br/>';
            }
            if (data.upg == 0) {
                html += '<span class="popup_txtred">' + westui.lang.not_upgrade + '</span><br/>';
            } else {
                html += '<span class="popup_txtgreen">' + westui.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 = westui.popup.getEl().outerWidth();
            var popup_height = westui.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);
            }
            westui.popup.getEl().css({
                top: top,
                left: left
            });
        },
        init: function () {


            //Set events
            //Append popup container
            $(document).on('mouseenter', '.item_container', function (e) {
            $('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>');
                westui.popup.show(this);
                westui.popup.setPosition(e);
            });
            $(document).on('mouseleave', '.item_container', function () {
                westui.popup.hide();
            });
            $(document).on('mousemove', '.item_container', function (e) {
                westui.popup.setPosition(e);
            });


            $('.item_level').mousedown(function (e) {
            //Set events
                e.preventDefault();
            $(document).on('mouseenter', '.item_container', function (e) {
            });
                westui.popup.show(this);
            $(document).on('click', '.upgrade', function () {
                westui.popup.setPosition(e);
                var container = $(this).closest('.item_container');
            });
                var lvl = parseInt(container.attr('data-lvl'));
            $(document).on('mouseleave', '.item_container', function () {
                if (lvl !== 5) {
                westui.popup.hide();
                    container.attr('data-lvl', lvl + 1);
            });
                    container.find('.level').html(lvl + 1);
            $(document).on('mousemove', '.item_container', function (e) {
                }
                westui.popup.setPosition(e);
                westui.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);
                }
                westui.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');
                westui.set_calc.itemStatus[set_id] = {};
                westui.set_calc.data[set_id] = {
                    items: {},
                    set: {}
                };
            });
            //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');
                    westui.set_calc.data[set_id].set[nb] = {};
                    $(this).find('.set_bonus').each(function () {
                        key = $(this).attr('data-type');
                        if ($(this).find('.calc').length !== 0) {
                            westui.set_calc.data[set_id].set[nb][key] = -parseFloat($(this).find('.calc').attr('id'));
                        } else {
                            westui.set_calc.data[set_id].set[nb][key] = parseFloat($(this).find('.val').text());
                        }
                        if (!westui.config.set_bonus.hasOwnProperty(key)) {
                            westui.set_calc.bonus.extra_set_bonus[key] = {
                                img: $(this).find('img').attr('src'),
                                name: $(this).find('#tooltip_content').text()
                            };
                        }
                    });
                });
            });
            //Get bonuses from all item sets
            $('.set_container').each(function () {
                var set_id = $(this).attr('data-set-id');
                $(this).find('.item_container').each(function () {
                    var json = JSON.parse($(this).attr('data-popup'));
                    if ($(this).is(":hidden")) {
                        westui.set_calc.itemStatus[set_id][json.id] = false;
                    } else {
                        westui.set_calc.itemStatus[set_id][json.id] = 0;
                    }
                    for (var prop in json) {
                        if (json.hasOwnProperty(prop) && (westui.config.set_bonus.hasOwnProperty(prop) || westui.set_calc.bonus.extra_set_bonus.hasOwnProperty(prop))) {
                            if (!westui.set_calc.data[set_id].items[prop]) {
                                westui.set_calc.data[set_id].items[prop] = {};
                            }
                            westui.set_calc.data[set_id].items[prop][json.id] = json[prop];
                        }
                    }
                });
            });
        },
        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 westui.set_calc.data) {
                    for (var key in westui.set_calc.data[set_id].items) {
                        for (var item_id in westui.set_calc.data[set_id].items[key]) {
                            if (westui.set_calc.itemStatus[set_id][item_id] !== false) {
                                lvl = westui.set_calc.itemStatus[set_id][item_id];
                                if (!total[key]) {
                                    total[key] = 0;
                                }
                                var value = westui.set_calc.data[set_id].items[key][item_id];


                                if (westui.set_calc.data[set_id].items[key][item_id] < 0) {
            $('.item_level').mousedown(function (e) {
                                    //If bonus (per Level)
                e.preventDefault();
                                    value = -value;
            });
            $(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);
                }
                westui.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);
                }
                westui.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 () {
            $('.set_container').each(function () {
                var set_id = $(this).attr('data-set-id');
                westui.set_calc.itemStatus[set_id] = {};
                westui.set_calc.data[set_id] = {
                    items: {},
                    set: {}
                };
            });
            //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');
                    westui.set_calc.data[set_id].set[nb] = {};
                    $(this).find('.set_bonus').each(function () {
                        key = $(this).attr('data-type');
                        if ($(this).find('.calc').length !== 0) {
                            westui.set_calc.data[set_id].set[nb][key] = -parseFloat($(this).find('.calc').attr('id'));
                        } else {
                            westui.set_calc.data[set_id].set[nb][key] = parseFloat($(this).find('.val').text());
                        }
                        if (!westui.config.set_bonus.hasOwnProperty(key)) {
                            westui.set_calc.bonus.extra_set_bonus[key] = {
                                img: $(this).find('img').attr('src'),
                                name: $(this).find('#tooltip_content').text()
                            };
                        }
                    });
                });
            });
            //Get bonuses from all item sets
            $('.set_container').each(function () {
                var set_id = $(this).attr('data-set-id');
                $(this).find('.item_container').each(function () {
                    var json = JSON.parse($(this).attr('data-popup'));
                    if ($(this).is(":hidden")) {
                        westui.set_calc.itemStatus[set_id][json.id] = false;
                    } else {
                        westui.set_calc.itemStatus[set_id][json.id] = 0;
                    }
                    for (var prop in json) {
                        if (json.hasOwnProperty(prop) && (westui.config.set_bonus.hasOwnProperty(prop) || westui.set_calc.bonus.extra_set_bonus.hasOwnProperty(prop))) {
                            if (!westui.set_calc.data[set_id].items[prop]) {
                                westui.set_calc.data[set_id].items[prop] = {};
                            }
                            westui.set_calc.data[set_id].items[prop][json.id] = json[prop];
                        }
                    }
                });
            });
        },
        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 westui.set_calc.data) {
                    for (var key in westui.set_calc.data[set_id].items) {
                        for (var item_id in westui.set_calc.data[set_id].items[key]) {
                            if (westui.set_calc.itemStatus[set_id][item_id] !== false) {
                                lvl = westui.set_calc.itemStatus[set_id][item_id];
                                if (!total[key]) {
                                    total[key] = 0;
                                }
                                var value = westui.set_calc.data[set_id].items[key][item_id];


                                    if (westui.set_calc.itemStatus[set_id][item_id] > 0) {
                                if (westui.set_calc.data[set_id].items[key][item_id] < 0) {
                                        //If item upgraded
                                    //If bonus (per Level)
                                        total[key] += Math.ceil(value * level) + Math.round(Math.max(1, Math.ceil(value * level) * 0.1 * lvl));
                                    value = -value;
                                    } else {
                                        total[key] += Math.ceil(value * level);
 
                                    }
                                    if (westui.set_calc.itemStatus[set_id][item_id] > 0) {
                                } else {
                                        //If item upgraded
                                    if (westui.set_calc.itemStatus[set_id][item_id] > 0) {
                                        total[key] += Math.ceil(value * level) + Math.round(Math.max(1, Math.ceil(value * level) * 0.1 * lvl));
                                        if (value < 1) {
                                    } else {
                                            total[key] += Math.round(1e6 * (value * 1 + Math.round(Math.max(1, value * 1000 * lvl)) / 10000)) / 1e6;
                                        total[key] += Math.ceil(value * level);
                                        } else {
                                    }
                                            total[key] += Math.round(Math.max(1, value * 0.1 * lvl));
                                } else {
                                        }
                                    if (westui.set_calc.itemStatus[set_id][item_id] > 0) {
                                    } else {
                                        if (value < 1) {
                                        total[key] += value;
                                            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 westui.set_calc.itemStatus[set_id]) {
                                }
                        if (westui.set_calc.itemStatus[set_id][item_id] !== false) {
                            }
                            item_nb++;
                        }
                        }
                    }
                    }
                    var item_nb = 0;
                    for (var key in westui.set_calc.data[set_id].set[item_nb]) {
                    for (var item_id in westui.set_calc.itemStatus[set_id]) {
                        if (!total[key]) {
                        if (westui.set_calc.itemStatus[set_id][item_id] !== false) {
                            total[key] = 0;
                            item_nb++;
                        }
                        }
                        if (westui.set_calc.data[set_id].set[item_nb][key] < 0) {
                    }
                            total[key] += Math.ceil(-westui.set_calc.data[set_id].set[item_nb][key] * level);
                    for (var key in westui.set_calc.data[set_id].set[item_nb]) {
                        } else {
                        if (!total[key]) {
                            total[key] += westui.set_calc.data[set_id].set[item_nb][key];
                            total[key] = 0;
                        }
                        }
                    }
                        if (westui.set_calc.data[set_id].set[item_nb][key] < 0) {
                }
                            total[key] += Math.ceil(-westui.set_calc.data[set_id].set[item_nb][key] * level);
                //Create the html table
                        } else {
                var html = '<center><table class="infoSet"><caption><br><big><b>' + westui.lang.total + '</b></big></caption><tbody><tr><td></center>';
                            total[key] += westui.set_calc.data[set_id].set[item_nb][key];
                for (var key in westui.config.set_bonus) {
                        }
                    if (total.hasOwnProperty(key)) {
                    }
                        html += '<div class="set_bonus tooltip_container"><img src="' + westui.config.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">' + westui.config.set_bonus[key].name + '</div></div></div></div>';
                }
                    }
                //Create the html table
                }
                var html = '<center><table class="infoSet"><caption><br><big><b>' + westui.lang.total + '</b></big></caption><tbody><tr><td></center>';
                for (var key in westui.set_calc.bonus.extra_set_bonus) {
                for (var key in westui.config.set_bonus) {
                    if (total.hasOwnProperty(key)) {
                    if (total.hasOwnProperty(key)) {
                        html += '<div class="set_bonus tooltip_container"><img src="' + westui.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">' + westui.set_calc.bonus.extra_set_bonus[key].name + '</div></div></div></div>';
                        html += '<div class="set_bonus tooltip_container"><img src="' + westui.config.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">' + westui.config.set_bonus[key].name + '</div></div></div></div>';
                    }
                    }
                }
                }
                //Display the result at the bottom of the page
                for (var key in westui.set_calc.bonus.extra_set_bonus) {
                $('#set_calc').html(html);
                    if (total.hasOwnProperty(key)) {
            } else {
                        html += '<div class="set_bonus tooltip_container"><img src="' + westui.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">' + westui.set_calc.bonus.extra_set_bonus[key].name + '</div></div></div></div>';
                $('#set_calc').html("");
                    }
            }
                }
        },
                //Display the result at the bottom of the page
        initEvents: function () {
                $('#set_calc').html(html);
            //Deactivate / activate item on click
            } else {
            $('.item_container > img').on('click', function () {
                $('#set_calc').html("");
                var item_container = $(this).closest('.item_container');
            }
                item_container.toggleClass('item_off');
        },
                var set_id = item_container.closest('.set_container').attr('data-set-id');
        initEvents: function () {
                var item_id = JSON.parse(item_container.attr('data-popup')).id;
            //Deactivate / activate item on click
                if (item_container.hasClass('item_off') || item_container.is(":hidden")) {
            $('.item_container > img').on('click', function () {
                    westui.set_calc.itemStatus[set_id][item_id] = false;
                var item_container = $(this).closest('.item_container');
                } else {
                item_container.toggleClass('item_off');
                    westui.set_calc.itemStatus[set_id][item_id] = parseInt(item_container.attr('data-lvl'));
                var set_id = item_container.closest('.set_container').attr('data-set-id');
                }
                var item_id = JSON.parse(item_container.attr('data-popup')).id;
                westui.set_calc.calc();
                if (item_container.hasClass('item_off') || item_container.is(":hidden")) {
            });
                    westui.set_calc.itemStatus[set_id][item_id] = false;
            //Update item level on upgrade / downgrade
                } else {
            $(document).on('click', '.upgrade, .downgrade', function () {
                    westui.set_calc.itemStatus[set_id][item_id] = parseInt(item_container.attr('data-lvl'));
                var item = $(this).closest('.item_container');
                }
                var set_id = item.closest('.set_container').attr('data-set-id');
                westui.set_calc.calc();
                if (!item.hasClass('item_off') && !item.is(":hidden")) {
            });
                    westui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl'));
            //Update item level on upgrade / downgrade
                    westui.set_calc.calc();
            $(document).on('click', '.upgrade, .downgrade', function () {
                }
                var item = $(this).closest('.item_container');
            });
                var set_id = item.closest('.set_container').attr('data-set-id');
            //Calc again when player level changes
                if (!item.hasClass('item_off') && !item.is(":hidden")) {
            $("#input_level").bind("propertychange keyup input paste", function () {
                    westui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl'));
                westui.set_calc.calc();
                    westui.set_calc.calc();
            });
                }
            //Activate/deactivate melee/fire weapon when the switch btn is clicked
            });
            $("#switch").on('click', function () {
            //Calc again when player level changes
                $('#melee, #fire').each(function () {
            $("#input_level").bind("propertychange keyup input paste", function () {
                    var item = $(this).find('.item_container');
                westui.set_calc.calc();
                    var set_id = $(this).closest('.set_container').attr('data-set-id');
            });
                    if ($(this).is(":hidden")) {
            //Activate/deactivate melee/fire weapon when the switch btn is clicked
                        westui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = false;
            $("#switch").on('click', function () {
                    } else {
                $('#melee, #fire').each(function () {
                        westui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl'));
                    var item = $(this).find('.item_container');
                    }
                    var set_id = $(this).closest('.set_container').attr('data-set-id');
                });
                    if ($(this).is(":hidden")) {
                westui.set_calc.calc();
                        westui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = false;
            });
                    } else {
        },
                        westui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl'));
        init: function () {
                    }
            westui.set_calc.initEvents();
                });
            westui.set_calc.getData();
                westui.set_calc.calc();
            $('#mw-content-text').append('<div id="set_calc"></div>');
            });
            if ($('#input_level').length === 0)
        },
                westui.set_calc.calc();
        init: function () {
        }
            westui.set_calc.initEvents();
    },
            westui.set_calc.getData();
    init: function () {
            $('#mw-content-text').append('<div id="set_calc"></div>');
        westui.initPage();
            if ($('#input_level').length === 0)
        westui.popup.init();
                westui.set_calc.calc();
        if (westui.config.enable_set_calc && $('.infoSet').length !== 0) {
        }
            westui.set_calc.init();
    },
        }
    sorting: {
    }
        sortItems: function(param){
};
            $('.item_container').removeAttr('data-sort');
westui.init();
            function calcSortVal(el){
                var data = JSON.parse($(el).attr('data-popup'));
                var val = 0;
                for (var prop in param){
                    if (data[prop]){
                        if (data[prop]<0){
                            val+=Math.ceil(-data[prop]*($('#input_level input').val()?$('#input_level input').val():150))*param[prop];
                        } else {
                            val+=data[prop]*param[prop];
                        }
                    }
                }
                $(el).attr('data-sort',val);
                if ($(el).find('p.number').length!==0){
                    $(el).find('p.number').html(val);
                } else {
                    $(el).append('<p class="number">'+val+'</p>');
                }
            }
            $('#mw-content-text').find('.item_container').sort(function(a, b) {
                if (!$(a).attr('data-sort')){calcSortVal(a);}
                if (!$(b).attr('data-sort')){calcSortVal(b);}
                return $(b).attr('data-sort') - $(a).attr('data-sort');
            }).appendTo('#mw-content-text');
        },
        init:function(){
            if ($('div#sort_items').length===1){
                var html = "<div id='input_search'><select id='sort_items' class='west'><option selected disabled>Order by :</option>";
                for (var prop in westui.config.sorting){
                    html+= "<option value='"+westui.config.sorting[prop]+"'>"+prop+"</option>";
                }
                html += "</select></div>";
                $('div#sort_items').html(html);
                $('select#sort_items').on('change',function(){
                    westui.sorting.sortItems(JSON.parse($(this).find("option:selected").attr('value')));
                });
            }
        }
    },
    init: function () {
        westui.initPage();
        westui.popup.init();
        if (westui.config.enable_sorting)
            westui.sorting.init();
        if (westui.config.enable_set_calc && $('.infoSet').length !== 0) {
            westui.set_calc.init();
        }
    }
};
westui.init();

A lap 2018. szeptember 18., 17:08-kori változata

westui = {

   lang: {	    lang: {
       input_level: "Szinted",	        input_level: "Szinted",
       input_search: "Keresés",	        input_search: "Keresés",
       damages: "Sebzés",	        damages: "Sebzés",
       per_level: "Szintenként",	        per_level: "Szintenként",
       speed: "Sebesség",	        speed: "Sebesség",
       level: "Szint",	        level: "Szint",
       unsalable: "Nem eladható",	        unsalable: "Nem eladható",
       auction: "Aukciózható",	        auction: "Aukciózható",
       not_auction: "Nem aukciózható",	        not_auction: "Nem aukciózható",
       not_upgrade: "Nem fejleszthető",	        not_upgrade: "Nem fejleszthető",
       upgrade: "Fejleszthető",	        upgrade: "Fejleszthető",
       total: "Összesen",	        total: "Összesen",

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: {

fbdef: '

', fboff: '

', fbres: '

', fbdefs: '

', fboffs: '

', fbdmgs: '

'

}, special: {

xp: '

', money: '

', luck: '

', regen: '

', drop: '

', labor_pts: '

', spd: '

'

} } }, config: { enable_set_calc: true, plain_popup: true, redirect_on_dblclick: false, link_on_dblclick:true, enable_sorting:true, cdn: "https://westzz.innogamescdn.com", img_buyprice: "/images/5/57/Buy_price.png", img_sellprice: "/images/f/fc/Sell_price.png", img_male: "/images/c/c5/Gender_m.png", img_female: "/images/4/41/Gender_f.png", set_bonus: { str: { name: "Strength", img: "/images/thumb/8/8b/Strength.png/40px-Strength.png" }, mob: { name: "Mobility", img: "/images/thumb/5/5a/Mobility.png/40px-Mobility.png" }, dex: { name: "Dexterity", img: "/images/thumb/0/0d/Dexterity.png/40px-Dexterity.png" }, cha: { name: "Charisma", img: "/images/thumb/c/c9/Charisma.png/40px-Charisma.png" }, con: { name: "Construction", img: "/images/thumb/3/37/Construction.png/40px-Construction.png" }, vig: { name: "Vigor", img: "/images/thumb/9/90/Skill_Punch.png/40px-Skill_Punch.png" }, tou: { name: "Toughness", img: "/images/thumb/f/f8/Skill_Tough.png/40px-Skill_Tough.png" }, sta: { name: "Stamina", img: "/images/thumb/8/8d/Stamina.png/40px-Stamina.png" }, hea: { name: "Health Points", img: "/images/thumb/9/94/Health.png/40px-Health.png" }, rid: { name: "Horseback Riding", img: "/images/thumb/7/78/Hbr.png/40px-Hbr.png" }, ref: { name: "Reflex", img: "/images/thumb/e/e9/Skill_Reflex.png/40px-Skill_Reflex.png" }, dod: { name: "Dodging", img: "/images/thumb/0/07/Skill_Dodge.png/40px-Skill_Dodge.png" }, hid: { name: "Hiding", img: "/images/thumb/9/97/Hiding.png/40px-Hiding.png" }, swi: { name: "Swimming", img: "/images/thumb/f/f4/Swimming.png/40px-Swimming.png" }, aim: { name: "Aiming", img: "/images/thumb/5/53/Skill_Aim.png/40px-Skill_Aim.png" }, sho: { name: "Shooting", img: "/images/thumb/7/73/Skill_Shot.png/40px-Skill_Shot.png" }, pit: { name: "Setting traps", img: "/images/thumb/e/e1/Trapping.png/40px-Trapping.png" }, fin: { name: "Fine Motor Skills", img: "/images/thumb/1/18/Fms.png/40px-Fms.png" }, rep: { name: "Repairing", img: "/images/thumb/d/d5/Repairing.png/40px-Repairing.png" }, lea: { name: "Leadership", img: "/images/thumb/4/44/Leadership.png/40px-Leadership.png" }, tac: { name: "Tactics", img: "/images/thumb/9/91/Skill_Tactic.png/40px-Skill_Tactic.png" }, tra: { name: "Trading", img: "/images/thumb/f/f3/Skill_Trading.png/40px-Skill_Trading.png" }, ani: { name: "Animal Instinct", img: "/images/thumb/9/9d/AnimalInstinct.png/40px-AnimalInstinct.png" }, app: { name: "Appearance", img: "/images/thumb/4/4c/Skill_Appearance.png/40px-Skill_Appearance.png" }, fbdef: { name: "Defense (Fort battle bonus)", img: "/images/8/82/Set_Fb_defense.png" }, fboff: { name: "Attack (Fort battle bonus)", img: "/images/3/30/Set_Fb_offense.png" }, fbres: { name: "Resistance (Fort battle bonus)", img: "/images/4/4b/Resistance.png" }, fbdefs: { name: "Defense (Fort battle sector bonus)", img: "/images/1/1a/Set_Fb_defense_sec.png" }, fboffs: { name: "Attack (Fort battle sector bonus)", img: "/images/f/fe/Set_Fb_offense_sec.png" }, fbdmgs: { name: "Damages (Fort battle sector bonus)", img: "/images/b/b3/Damages_sector.png" }, xp: { name: "Experience from jobs, duels, and fort battles (%)", img: "/images/7/71/Set_xp.png" }, money: { name: "Money from jobs and duels (%)", img: "/images/d/df/Set_money.png" }, luck: { name: "Increased Luck", img: "/images/c/c1/Set_luck.png" }, regen: { name: "Regeneration", img: "/images/5/53/Regeneration.png", }, drop: { name: "Improved drop chance", img: "/images/thumb/b/b8/Drop.png/40px-Drop.png" }, spd: { name: "Speed", img: "/images/thumb/1/1a/QuarterHorse.png/40px-QuarterHorse.png" } }, sorting: { 'Strength':'{"str":1}', 'Mobility':'{"mob":1}', 'Dexterity':'{"dex":1}', 'Charisma':'{"cha":1}', 'Construction':'{"str":1,"con":1}', 'Vigor':'{"str":1,"vig":1}', 'Toughness':'{"str":1,"tou":1}', 'Stamina':'{"str":1,"sta":1}', 'Health Points':'{"str":1,"hea":1}', 'Horseback Riding':'{"mob":1,"rid":1}', 'Reflex':'{"mob":1,"ref":1}', 'Dodging':'{"mob":1,"dod":1}', 'Hiding':'{"mob":1,"hid":1}', 'Swimming':'{"mob":1,"swi":1}', 'Aiming':'{"dex":1,"aim":1}', 'Shooting':'{"dex":1,"sho":1}', 'Setting traps':'{"dex":1,"pit":1}', 'Fine Motor Skills':'{"dex":1,fin":1}', 'Repairing':'{"dex":1,"rep":1}', 'Leadership':'{"cha":1,"lea":1}', 'Tactics':'{"cha":1,"tac":1}', 'Trading':'{"cha":1,"tra":1}', 'Animal Instinct':'{"cha":1,"ani":1}', 'Appearance':'{"cha":1,"app":1}', 'Labor points towards building':'{"str":3,"con":3,"dex":1,"rep":1,"cha":1,"lea":1}', 'Experience from jobs, duels, and fort battles (%)':'{"xp":1}', 'Money from jobs and duels (%)':'{"xp":1}', 'Increased Luck (%)':'{"luck":1}', 'Regeneration (%)':'{"regen":1}', 'Improved drop chance (%)':'{"drop":1}', 'Speed (%)':'{"spd":1,"hspd":1,"mob":1,"rid":1}', 'Average damage':'{"dmg_min":0.5,"dmg_max":0.5,"dmglvl":1}', 'Maximum damage':'{"dmg_max":1,"dmglvl":1}', } }, initPage: function () { //Append input level if ($("#input_level").length === 1) { var input_level = $('<input type="number" style="width:80px;" class="west" placeholder="' + westui.lang.input_level + '" 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="' + westui.lang.input_search + '">').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(); }); }


//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 (westui.config.plain_popup && (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(westui.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 (westui.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; }); } if (westui.config.link_on_dblclick) { $('.item_container img').on('dblclick', function () { window.location = '/wiki/' + $(this).parent().attr('data-link'); }); }


}, popup: { content: "", delay: 200, active: false, show: function (obj) { westui.popup.content = westui.popup.createPopup($(obj).attr('data-popup'), $(obj).attr('data-cdn-cat'), $(obj).attr('data-cdn-img'), parseInt($(obj).attr('data-lvl'))); westui.popup.active = true; westui.popup.setTimeout(); westui.popup.getContainer().html(westui.popup.content); }, hide: function () { westui.popup.getEl().css({ display: 'none', top: 0, left: 0 }); westui.popup.active = false; westui.popup.clearTimeout(); }, setTimeout: function () { westui.popup.clearTimeout(); westui.popup.timer = window.setTimeout(function () { westui.popup.getEl().css('display', 'block'); }, westui.popup.delay); }, clearTimeout: function () { if (westui.popup.timer) window.clearTimeout(westui.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 += '

';

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

html += '

';

} html += '
'; } for (var cat in westui.lang.popup) { var cnt = 0; for (var key in westui.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 = " (" + westui.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 += westui.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.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 = westui.popup.getEl().outerWidth(); var popup_height = westui.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); } westui.popup.getEl().css({ top: top, left: left }); }, init: function () {


//Append popup container

$('body').append('

');


//Set events $(document).on('mouseenter', '.item_container', function (e) { westui.popup.show(this); westui.popup.setPosition(e); }); $(document).on('mouseleave', '.item_container', function () { westui.popup.hide(); }); $(document).on('mousemove', '.item_container', function (e) { westui.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); } westui.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); } westui.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 () { $('.set_container').each(function () { var set_id = $(this).attr('data-set-id'); westui.set_calc.itemStatus[set_id] = {}; westui.set_calc.data[set_id] = { items: {}, set: {} }; }); //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'); westui.set_calc.data[set_id].set[nb] = {}; $(this).find('.set_bonus').each(function () { key = $(this).attr('data-type'); if ($(this).find('.calc').length !== 0) { westui.set_calc.data[set_id].set[nb][key] = -parseFloat($(this).find('.calc').attr('id')); } else { westui.set_calc.data[set_id].set[nb][key] = parseFloat($(this).find('.val').text()); } if (!westui.config.set_bonus.hasOwnProperty(key)) { westui.set_calc.bonus.extra_set_bonus[key] = { img: $(this).find('img').attr('src'), name: $(this).find('#tooltip_content').text() }; } }); }); }); //Get bonuses from all item sets $('.set_container').each(function () { var set_id = $(this).attr('data-set-id'); $(this).find('.item_container').each(function () { var json = JSON.parse($(this).attr('data-popup')); if ($(this).is(":hidden")) { westui.set_calc.itemStatus[set_id][json.id] = false; } else { westui.set_calc.itemStatus[set_id][json.id] = 0; } for (var prop in json) { if (json.hasOwnProperty(prop) && (westui.config.set_bonus.hasOwnProperty(prop) || westui.set_calc.bonus.extra_set_bonus.hasOwnProperty(prop))) { if (!westui.set_calc.data[set_id].items[prop]) { westui.set_calc.data[set_id].items[prop] = {}; } westui.set_calc.data[set_id].items[prop][json.id] = json[prop]; } } }); }); }, 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 westui.set_calc.data) { for (var key in westui.set_calc.data[set_id].items) { for (var item_id in westui.set_calc.data[set_id].items[key]) { if (westui.set_calc.itemStatus[set_id][item_id] !== false) { lvl = westui.set_calc.itemStatus[set_id][item_id]; if (!total[key]) { total[key] = 0; } var value = westui.set_calc.data[set_id].items[key][item_id];


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


if (westui.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 (westui.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 westui.set_calc.itemStatus[set_id]) { if (westui.set_calc.itemStatus[set_id][item_id] !== false) { item_nb++; } } for (var key in westui.set_calc.data[set_id].set[item_nb]) { if (!total[key]) { total[key] = 0; } if (westui.set_calc.data[set_id].set[item_nb][key] < 0) { total[key] += Math.ceil(-westui.set_calc.data[set_id].set[item_nb][key] * level); } else { total[key] += westui.set_calc.data[set_id].set[item_nb][key]; } } } //Create the html table

var html = '

<tbody>

' + westui.lang.total + '
';

for (var key in westui.config.set_bonus) { if (total.hasOwnProperty(key)) {

html += '
<img src="' + westui.config.set_bonus[key].img + '">+' + total[key] + (['xp', 'money', 'luck', 'spd', 'regen', 'drop'].indexOf(key) !== -1 ? "%" : "") + '
' + westui.config.set_bonus[key].name + '
';

} } for (var key in westui.set_calc.bonus.extra_set_bonus) { if (total.hasOwnProperty(key)) {

html += '
<img src="' + westui.set_calc.bonus.extra_set_bonus[key].img + '">+' + total[key] + (['xp', 'money', 'luck', 'spd', 'regen', 'drop'].indexOf(key) !== -1 ? "%" : "") + '
' + westui.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")) { westui.set_calc.itemStatus[set_id][item_id] = false; } else { westui.set_calc.itemStatus[set_id][item_id] = parseInt(item_container.attr('data-lvl')); } westui.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")) { westui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl')); westui.set_calc.calc(); } }); //Calc again when player level changes $("#input_level").bind("propertychange keyup input paste", function () { westui.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")) { westui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = false; } else { westui.set_calc.itemStatus[set_id][JSON.parse(item.attr('data-popup')).id] = parseInt(item.attr('data-lvl')); } }); westui.set_calc.calc(); }); }, init: function () { westui.set_calc.initEvents(); westui.set_calc.getData();

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

if ($('#input_level').length === 0) westui.set_calc.calc(); } }, sorting: { sortItems: function(param){ $('.item_container').removeAttr('data-sort'); function calcSortVal(el){ var data = JSON.parse($(el).attr('data-popup')); var val = 0; for (var prop in param){ if (data[prop]){ if (data[prop]<0){ val+=Math.ceil(-data[prop]*($('#input_level input').val()?$('#input_level input').val():150))*param[prop]; } else { val+=data[prop]*param[prop]; } } } $(el).attr('data-sort',val); if ($(el).find('p.number').length!==0){ $(el).find('p.number').html(val); } else {

$(el).append('

'+val+'

');

} } $('#mw-content-text').find('.item_container').sort(function(a, b) { if (!$(a).attr('data-sort')){calcSortVal(a);} if (!$(b).attr('data-sort')){calcSortVal(b);} return $(b).attr('data-sort') - $(a).attr('data-sort'); }).appendTo('#mw-content-text'); }, init:function(){ if ($('div#sort_items').length===1){

var html = "";

$('div#sort_items').html(html); $('select#sort_items').on('change',function(){ westui.sorting.sortItems(JSON.parse($(this).find("option:selected").attr('value'))); }); } } }, init: function () { westui.initPage(); westui.popup.init(); if (westui.config.enable_sorting) westui.sorting.init(); if (westui.config.enable_set_calc && $('.infoSet').length !== 0) { westui.set_calc.init(); } } }; westui.init();