MediaWiki:Common.js: Difference between revisions

From Wiki The-West EN
Jump to navigation
No edit summary
Tag: Manual revert
No edit summary
Tag: Reverted
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
westui = {
$(document).ready(function() {
    lang: {
        input_level: "Your level",
var currentUrl = window.location.pathname.split('/').pop();
        input_search: "Search",
        damages: "Damages",
if (currentUrl == 'Main_Page') {
        per_level: "per Level",
$.getScript("/wiki/QuestsCalendar.js?action=raw", function() {
        speed: "Speed",
// Script loaded
        level: "Level",
});
        unsalable: "Unsalable",
}
        auction: "Auctionable",
        not_auction: "Not auctionable",
if (currentUrl == 'Category:Questlines') {
        not_upgrade: "Not upgradeable",
$.getScript("/wiki/Quests.js?action=raw", function() {
        upgrade: "Upgradeable",
// Script loaded
        total: "Total",
});
        popup: {
}
            dmg: {
 
                dmglvl: '<p class="popup_dmg">+ #1 Damages#2</p>'
    $('body').append($('<div></div>').load('https://wiki.the-west.net/wiki/Dock.html?action=raw'));
            },
 
            skills: {
    if ($('.item_container').length !== 0) {
                str: '<p class="popup_attribute">+ #1 Strength#2</p>',
        $('.item_container').each(function() {
                mob: '<p class="popup_attribute">+ #1 Mobility#2</p>',
            $(this).append('<img src="https://westzz.innogamescdn.com/images/items/' + $(this).attr('data-url') + '?1">');
                dex: '<p class="popup_attribute">+ #1 Dexterity#2</p>',
        });
                cha: '<p class="popup_attribute">+ #1 Charisma#2</p>',
        $.getScript("/wiki/Popup.js?action=raw");
                con: '<p class="popup_skill">+ #1 Construction#2</p>',
    }
                vig: '<p class="popup_skill">+ #1 Vigor#2</p>',
});
                tou: '<p class="popup_skill">+ #1 Toughness#2</p>',
 
                sta: '<p class="popup_skill">+ #1 Stamina#2</p>',
$(window).scroll(function() {
                hea: '<p class="popup_skill">+ #1 Health Points#2</p>',
    if ($(this).scrollTop() > 300) {
                rid: '<p class="popup_skill">+ #1 Horseback Riding#2</p>',
        $('#back-top').fadeIn();
                ref: '<p class="popup_skill">+ #1 Reflex#2</p>',
    } else {
                dod: '<p class="popup_skill">+ #1 Dodging#2</p>',
        $('#back-top').fadeOut();
                hid: '<p class="popup_skill">+ #1 Hiding#2</p>',
    }
                swi: '<p class="popup_skill">+ #1 Swimming#2</p>',
});
                aim: '<p class="popup_skill">+ #1 Aiming#2</p>',
// Scroll body to top on click
                sho: '<p class="popup_skill">+ #1 Shooting#2</p>',
$('#back-top a').click(function() {
                pit: '<p class="popup_skill">+ #1 Setting traps#2</p>',
    $('body,html').animate({
                fin: '<p class="popup_skill">+ #1 Fine Motor Skills#2</p>',
            scrollTop: 0,
                rep: '<p class="popup_skill">+ #1 Repairing#2</p>',
        },
                lea: '<p class="popup_skill">+ #1 Leadership#2</p>',
        800
                tac: '<p class="popup_skill">+ #1 Tactics#2</p>',
    );
                tra: '<p class="popup_skill">+ #1 Trading#2</p>',
    return false;
                ani: '<p class="popup_skill">+ #1 Animal Instinct#2</p>',
});
                app: '<p class="popup_skill">+ #1 Appearance#2</p>'
// Embed youtube videos
             },
if ($('.youtube_video').length !== 0) {
            fb: {
    $('.youtube_video').each(function() {
                fbdef: '<p class="popup_fb">+ #1 <b>Defense</b> (Fort battle bonus)#2</p>',
        $(this).html(
                fboff: '<p class="popup_fb">+ #1 <b>Attack</b> (Fort battle bonus)#2</p>',
            '<iframe width="100%" height="100%" src="https://www.youtube.com/embed/' +
                fbres: '<p class="popup_fb">+ #1 <b>Resistance</b> (Fort battle bonus)#2</p>',
            $(this).attr('data-id') +
                fbdefs: '<p class="popup_fb">+ #1 <b>Defense</b> (Fort battle sector bonus)#2</p>',
            '?cc_load_policy=1&cc_lang_pref=' +
                fboffs: '<p class="popup_fb">+ #1 <b>Attack</b> (Fort battle sector bonus)#2</p>',
            $(this).attr('data-subtitles') +
                fbdmgs: '<p class="popup_fb">+ #1 <b>Damages</b> (Fort battle sector bonus)#2</p>'
            '" frameborder="0" allowfullscreen></iframe>'
             },
        );
             special: {
    });
                xp: '<p class="popup_txtgreen">+ #1% Experience from jobs, duels and fort battles#2</p>',
}
                money: '<p class="popup_txtgreen">+ #1% Money from jobs and duels#2</p>',
//calculate box - n3mesis
                 luck: '<p class="popup_txtgreen">+ #1% Improved Luck#2</p>',
if ($('.calculate_box').length) {
                 regen: '<p class="popup_txtgreen">+ #1% Regeneration#2</p>',
    $.getScript('/wiki/Calculate.js?action=raw');
                drop: '<p class="popup_txtgreen">+ #1% Improved drop chance#2</p>',
};
                labor_pts: '<p class="popup_txtgreen">+ #1 labor point#2</p>',
//crafting
                spd: '<p class="popup_txtgreen">+ #1% Speed#2</p>'
if ($('.target_input').length) {
             }
    $('.target_input p').each(function() {
        var id = $(this).attr('id');
        var phrase = $(this).text();
        var newInput = "<input type='number' name='input_new' value='" +
            phrase + "' class='target' max='50000' min='' />";
        $(this).replaceWith(newInput);
    });
    var multiplierValue = 1;
    var currentAmountsArray = [];
    $('.amount').each(function(index) {
        currentAmountsArray[index] = parseInt($(this).text());
    });
    $("input[name='input_new']").on('input paste keyup', function() {
        this.value > 50000 ? (this.value = 50000) : this.value < 0 && (this.value = 0);
        multiplierValue = this.value;
        $('.amount').each(function(index) {
             $(this).text(currentAmountsArray[index] * multiplierValue);
        });
        $('.craft_extra').show();
        $('.craft_extra .item_container').each(function() {
            $(this).children().addClass('OverlayItem');
        });
    });
}
 
// As seen on https://bitbucket.org/cmcqueen1975/htmlfloatingtableheader/overview
function UpdateTableHeaders() {
    $("div.divTableWithFloatingHeader").each(function() {
        var originalHeaderRow = $(".tableFloatingHeaderOriginal", this);
        var floatingHeaderRow = $(".tableFloatingHeader", this);
        var offset = $(this).offset();
        var scrollTop = $(window).scrollTop();
        if ((scrollTop > originalHeaderRow.offset().top) && (scrollTop < offset.top + $(this).height() - originalHeaderRow.height())) {
             floatingHeaderRow.css("visibility", "visible");
             floatingHeaderRow.css("top", "0px");
 
            // Copy cell widths from original header
            $("th", floatingHeaderRow).each(function(index) {
                 var cellWidth = $("th", originalHeaderRow).eq(index).css('width');
                 $(this).css('width', cellWidth);
            });
 
            // Copy row width from whole table
            floatingHeaderRow.css("width", $(this).css("width"));
        } else {
            floatingHeaderRow.css("visibility", "hidden");
             floatingHeaderRow.css("top", "0px");
         }
         }
     });
     },
};
     config: {
 
         enable_set_calc: !0,
$(function() {
         plain_popup: !0,
     $("table.tableWithFloatingHeader").each(function() {
         redirect_on_dblclick: !1,
         $(this).wrap("<div class=\"divTableWithFloatingHeader\" style=\"position:relative\"></div>");
         link_on_dblclick: !0,
 
         enable_sorting: !0,
         var cls = "tr.floatingHeader";
         cdn: "https://westzz.innogamescdn.com",
         if ($(cls, this).length == 0) {
         img_buyprice: "/images/5/57/Buy_price.png",
            cls = "tr";
         img_sellprice: "/images/f/fc/Sell_price.png",
         }
         img_male: "/images/c/c5/Gender_m.png",
         var originalHeaderRow = $(cls, this).first();
         img_female: "/images/4/41/Gender_f.png",
         var clonedHeaderRow = originalHeaderRow.clone().insertBefore(originalHeaderRow);
         set_bonus: {
 
            str: {
         clonedHeaderRow.addClass("tableFloatingHeader");
                name: "Strength",
         clonedHeaderRow.css("position", "fixed");
                img: "/images/thumb/8/8b/Strength.png/40px-Strength.png"
         clonedHeaderRow.css("top", "0px");
            },
         clonedHeaderRow.css("left", $(this).offset().left);
            mob: {
         clonedHeaderRow.css("visibility", "hidden");
                name: "Mobility",
        clonedHeaderRow.css("z-index", 1);
                img: "/images/thumb/5/5a/Mobility.png/40px-Mobility.png"
 
            },
        originalHeaderRow.addClass("tableFloatingHeaderOriginal");
            dex: {
    });
                name: "Dexterity",
    UpdateTableHeaders();
                img: "/images/thumb/0/0d/Dexterity.png/40px-Dexterity.png"
    $(window).on('scroll', UpdateTableHeaders);
            },
    $(window).on('resize', UpdateTableHeaders);
            cha: {
});
                name: "Charisma",
 
                img: "/images/thumb/c/c9/Charisma.png/40px-Charisma.png"
(function($) {
            },
    $(document).ready(function() {
            con: {
        $('.radioButtonsHere').replaceWith('<center><input id="normal" type="radio" value="0" class="selectRadio" name="selectRadio"/> Normal Job <input id="silver" type="radio" value="50" class="selectRadio" name="selectRadio"/> Silver <input id="aura" type="radio" value="100" class="selectRadio" name="selectRadio"/> Gold</center>');
                name: "Construction",
        var multiplierValue = 1;
                img: "/images/thumb/3/37/Construction.png/40px-Construction.png"
        var currentXPArray = [];
            },
        var currentCashArray = [];
            vig: {
        $('.xp').each(function(index) {
                name: "Vigor",
             currentXPArray[index] = parseInt($(this).text());
                img: "/images/thumb/9/90/Skill_Punch.png/40px-Skill_Punch.png"
        });
            },
        $('.money').each(function(index) {
            tou: {
            var getNumber = $(this).text().replace(/[^0-9]/gi, '');
                name: "Toughness",
             currentCashArray[index] = parseFloat(getNumber, 10);
                img: "/images/thumb/f/f8/Skill_Tough.png/40px-Skill_Tough.png"
        });
            },
        $("input[name='selectRadio']").change(function() {
            sta: {
             multiplierValue = $(this).val();
                name: "Stamina",
             $('.xp').each(function(index) {
                img: "/images/thumb/8/8d/Stamina.png/40px-Stamina.png"
                 var finalXP = currentXPArray[index] + (currentXPArray[index] * (multiplierValue / 100));
            },
                 $(this).text(Math.round(finalXP));
            hea: {
                $(this).css({
                name: "Health Points",
                    'font-weight': 'bold'
                img: "/images/thumb/9/94/Health.png/40px-Health.png"
                 });
             },
             });
            rid: {
             $('.money').each(function(index) {
                name: "Horseback Riding",
                 var finalCash = currentCashArray[index] + (currentCashArray[index] * (multiplierValue / 100));
                img: "/images/thumb/7/78/Hbr.png/40px-Hbr.png"
                var cashSymbol = "$ ";
             },
                 $(this).text(cashSymbol + Math.round(finalCash));
            ref: {
                $(this).css({
                name: "Reflex",
                    'font-weight': 'bold'
                img: "/images/thumb/e/e9/Skill_Reflex.png/40px-Skill_Reflex.png"
                 });
             },
             });
             dod: {
        });
                 name: "Dodging",
        $('.appImage').replaceWith('<img src="https://wiki.the-west.net/images/8/8c/Transparent.png" class="job_Type" style="position:absolute;margin-top:-6px;margin-left:-6px;" />');
                 img: "/images/thumb/0/07/Skill_Dodge.png/40px-Skill_Dodge.png"
        $("input[name='selectRadio']").change(
            },
             function() {
            hid: {
                 var $src = "";
                name: "Hiding",
                 if ($(this).val() == '50') {
                 img: "/images/thumb/9/97/Hiding.png/40px-Hiding.png"
                    $src = "https://wiki.the-west.net/images/a/ac/Silverjob_small.png";
             },
                } else if ($(this).val() == '100') {
             swi: {
                    $src = "https://wiki.the-west.net/images/a/a6/Goldjob_small.png";
                 name: "Swimming",
                } else {
                 img: "/images/thumb/f/f4/Swimming.png/40px-Swimming.png"
                    $src = "https://wiki.the-west.net/images/8/8c/Transparent.png"
            },
                    $('.money').css({
            aim: {
                        'font-weight': 'normal'
                name: "Aiming",
                    });
                 img: "/images/thumb/5/53/Skill_Aim.png/40px-Skill_Aim.png"
                    $('.xp').css({
            },
                        'font-weight': 'normal'
             sho: {
                    });
                name: "Shooting",
                }
                img: "/images/thumb/7/73/Skill_Shot.png/40px-Skill_Shot.png"
                 $('.job_Type').attr('src', $src);
            },
             });
            pit: {
    });
                name: "Setting traps",
})(jQuery);
                img: "/images/thumb/e/e1/Trapping.png/40px-Trapping.png"
 
            },
//Page translator - Criminus 2023
            fin: {
(function($) {
                name: "Fine Motor Skills",
    $(document).ready(function() {
                img: "/images/thumb/1/18/Fms.png/40px-Fms.png"
        //$('#p-Language > div.border-1 > div > div').append(
            },
        $('#module-page-navigation').append(
            rep: {
             $('<div>')
                name: "Repairing",
            .addClass('inner-body')
                img: "/images/thumb/d/d5/Repairing.png/40px-Repairing.png"
        );
             },
        //$('#p-Language > div.border-1 > div > div > div').append(
            lea: {
        $('#module-page-navigation').append(
                 name: "Leadership",
             $('<div>')
                 img: "/images/thumb/4/44/Leadership.png/40px-Leadership.png"
            .addClass('langPicker')
            },
        );
            tac: {
 
                name: "Tactics",
        var languages = [{
                img: "/images/thumb/9/91/Skill_Tactic.png/40px-Skill_Tactic.png"
                 lang: 'en',
            },
                 title: 'English',
            tra: {
                 src: 'https://wiki.the-west.net/images/c/ce/Gb.png',
                name: "Trading",
                 //link: 'https://wiki.the-west.net/wiki/Main_Page'
                img: "/images/thumb/f/f3/Skill_Trading.png/40px-Skill_Trading.png"
                 link: 'https://wiki.the-west.net/wiki/Main_Page'
            },
            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: "<b>Defense</b> (Fort battle bonus)",
                img: "/images/8/82/Set_Fb_defense.png"
            },
            fboff: {
                 name: "<b>Attack</b> (Fort battle bonus)",
                img: "/images/3/30/Set_Fb_offense.png"
             },
            fbres: {
                name: "<b>Resistance</b> (Fort battle bonus)",
                img: "/images/4/4b/Resistance.png"
            },
            fbdefs: {
                name: "<b>Defense</b> (Fort battle sector bonus)",
                img: "/images/1/1a/Set_Fb_defense_sec.png"
            },
             fboffs: {
                name: "<b>Attack</b> (Fort battle sector bonus)",
                img: "/images/f/fe/Set_Fb_offense_sec.png"
            },
             fbdmgs: {
                name: "<b>Damages</b> (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: {
                 lang: 'dk',
                 name: "Improved drop chance",
                 title: 'Danish',
                 img: "/images/thumb/b/b8/Drop.png/40px-Drop.png"
                src: 'https://wiki.the-west.net/images/0/06/Dk.png',
                //link: 'https://wiki.the-west.net/wiki/Forside'
                link: 'https://wiki.the-west.net/wiki/Forside'
             },
             },
             {
             spd: {
                 lang: 'se',
                 name: "Speed",
                 title: 'Swedish',
                 img: "/images/thumb/1/1a/QuarterHorse.png/40px-QuarterHorse.png"
                src: 'https://wiki.the-west.net/images/d/d0/Se.png',
                //link: 'https://wiki.the-west.net/wiki/Huvudsida'
                link: 'https://wiki.the-west.net/wiki/Huvudsida'
            }
        ];
 
        var translations = {
            en: {
                //Search Box Translation
                searchNav: 'Search',
                searchNavAdv: 'Advanced search',
                searchNavFText: 'Search Wiki The-West EN',
                searchNavFTitle: 'Search Wiki The-West EN [alt-shift-f]',
                //Main Page Translation
                mainPage: 'Main Page',
                mainPageLink: '/wiki/Main_Page',
                //Navigation Categories Translation
                navigationText: 'Navigation',
                gettingStartedText: 'Getting Started',
                gameFeaturesText: 'Game Features',
                newToWikiText: 'New to the Wiki',
                toolsText: 'Tools',
                quickAccessText: 'Quick access',
                moreGamesText: 'More games',
                followUSText: 'Follow us',
                // Navigation links
                rulesText: 'Game rules',
                rulesLink: 'https://wiki.the-west.net/wiki/Game_Rules',
             },
             },
             dk: {
             labor_pts: {
                 //Search Box Translation
                 name: "Labor points (all jobs)",
                searchNav: 'Søg',
                 img: "/images/5/5e/Labor_pts.png"
                searchNavAdv: 'Avanceret søgning',
                searchNavFText: 'Søg på Wiki The-West DK',
                searchNavFTitle: 'Søg på Wiki The-West DK [alt-shift-f]',
                //Main Page Translation
                mainPage: 'Forside',
                mainPageLink: '/wiki/Forside',
                //Navigation Categories Translation
                navigationText: 'Naviger',
                gettingStartedText: 'Kom godt i gang',
                gameFeaturesText: 'Spilfunktioner',
                newToWikiText: 'Nyt på wikien',
                toolsText: 'Værktøjer',
                 quickAccessText: 'Genveje',
                moreGamesText: 'Flere spil',
                followUSText: 'Følg os',
                // Navigation links
                rulesText: 'Regler',
                rulesLink: 'https://wiki.the-west.net/wiki/Regler_pr._September_2020',
             },
             },
             se: {
             building_pts: {
                 //Search Box Translation
                 name: "Labor points towards Construction",
                searchNav: 'Sök',
                img: "/images/2/2c/Building_pts.png" 
                searchNavAdv: 'Avancerad sökning',
            }
                searchNavFText: 'Sök på Wiki The-West SE',
        },
                searchNavFTitle: 'Sök på Wiki The-West SE [alt-shift-f]',
        img_job: {
                 //Main Page Translation
            tailor: ['d/de', 'Tailor'],
                mainPage: 'Huvudsida',
            gunsmith: ['2/21', 'Gunsmith'],
                mainPageLink: '/wiki/Huvudsida',
            general: ['e/ef', 'General store'],
                //Navigation Categories Translation
            all: ['d/d1', 'All jobs'],
                navigationText: 'Navigering',
        },
                gettingStartedText: 'Börja',
        jobIcon: function(p, q) {
                gameFeaturesText: 'Spelfunktioner',
            var wip = this.img_job[p],
                newToWikiText: 'Nytt på wikin',
                 ji = wip ? ['/images/' + wip[0] + '/Job_', wip[1] + (q || '')] : [this.cdn + '/images/jobs/', q];
                toolsText: 'Verktyg',
            ji[0] += p + '.png';
                quickAccessText: 'Genvägar',
            return ji;
                 moreGamesText: 'Fler spel',
        },
                 followUSText: 'Följ oss',
        sorting: {
                 // Navigation links
            Strength: '{"str":1}',
                 rulesText: 'Spelregler',
            Mobility: '{"mob":1}',
                 rulesLink: 'https://wiki.the-west.net/wiki/Game_Rules',
            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 (%)": '{"money":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}',
            "Upgradeable items": '{"bool":true,"upg":1}',
            "Not upgradeable items": '{"bool":true,"upg":0}',
            "Auctionable items": '{"bool":true,"auc":1}',
            "Not auctionable items": '{"bool":true,"auc":0}'
        }
    },
    initPage: function() {
        if (1 === $("#input_level").length) var t = $('<input type="number" style="width:80px;" class="west" placeholder="' + westui.lang.input_level + '" min="0" max="250">').bind("propertychange keyup input paste", function() {
            this.value > 250 ? this.value = 250 : this.value < 0 && (this.value = 0), $(".calc").each(function() {
                 0 == t.val() ? ($(this).html(this.id), $(".per_level_off").addClass("per_level").removeClass("per_level_off")) : ($(this).html(Math.ceil(Number(this.id) * t.val())), $(".per_level").addClass("per_level_off").removeClass("per_level"))
            })
        }).appendTo($("#input_level"));
        if (1 === $("#input_search").length) $('<input type="search" class="west" placeholder="' + westui.lang.input_search + '">').bind("propertychange keyup input paste", function() {
            var t = this.value.toLowerCase();
            "" === t ? $(".item_container").show() : ($(".item_container").hide(), $(".item_container").filter(function() {
                 return $(this).attr("data-popup").toLowerCase().indexOf(t) > -1
            }).show())
        }).appendTo($("#input_search"));
        1 === $("#switch").length && ($("#fire").hide(), $("#switch").on("click", function() {
            $("#melee, #fire").toggle()
        })), 1 === $("#switch_prod").length && ($("#prod2").hide(), $("#switch_prod").on("click", function() {
            $("#prod, #prod2").toggle()
        })), westui.config.plain_popup && new RegExp(mw.config.get("wgFormattedNamespaces")[10] + ":Item_*").test(mw.config.get("wgPageName")) && 1 === $(".item_container").length && ($("#mw-content-text").append('<center><div id="popup_plain" class="popup_window"><div class="popup_front"><div class="tw_bg_tl"></div><div class="tw_bg_tr"></div><div class="tw_bg_bl"></div><div class="tw_bg_br"></div></div><div id="popup_plain_contents" class="popup_contents"></div></div></center>'), $("#popup_plain").hide(), $("#popup_plain_contents").append(westui.popup.createPopup($(".item_container").attr("data-popup"), $(".item_container").attr("data-cdn-cat"), $(".item_container").attr("data-cdn-img"), 0)), $("#popup_plain").slideDown()), 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 / 1e3
        }), westui.config.link_on_dblclick && $(".item_container img").on("dblclick", function() {
            window.location = "/wiki/" + $(this).parent().attr("data-link")
        })
    },
    popup: {
        content: "",
        delay: 200,
        active: !1,
        show: function(t) {
            westui.popup.content = westui.popup.createPopup($(t).attr("data-popup"), $(t).attr("data-cdn-cat"), $(t).attr("data-cdn-img"), parseInt($(t).attr("data-lvl"))), westui.popup.active = !0, 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 = !1, 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() {
            westui.popup.timer && window.clearTimeout(westui.popup.timer)
        },
        getEl: function() {
            return $("#popup_window")
        },
        getContainer: function() {
            return $("#popup_contents")
        },
        createPopup: function(t, e, i, a) {
            t = JSON.parse(t);
            var wc = westui.config,
s = '<div class="popup_image"><img src="' + westui.config.cdn + "/images/items/" + t.cdn_cat + "/" + t.cdn_img + '.png"/></div><div class="popup_divider"></div><p class="popup_name">' + t.name + '</p><p class="popup_type">' + t.type + "</p><br/>",
                 n = !1;
            if (a >= 1 && a <= 5 && (n = !0, t.auc = !1), t.dmg_min && t.dmg_max && (n && (t.dmg_min += Math.round(Math.max(1, .1 * t.dmg_min * a)), t.dmg_max += Math.round(Math.max(1, .1 * t.dmg_max * a))), s += '<p class="popup_dmg">' + t.dmg_min + "-" + t.dmg_max + " " + westui.lang.damages + "</p>"), t.text) {
                 for (var p = 0; p < t.text.length; p++) s += '<p class="popup_text">' + t.text[p] + "</p>";
                s += "<br/>"
            }
            for (var o in westui.lang.popup) {
                var l = 0;
                for (var c in westui.lang.popup[o])
                    if (t.hasOwnProperty(c)) {
                        l++;
                        var r = "";
                        t[c] < 0 ? $("#input_level input").val() > 0 ? (t[c] = Math.ceil($("#input_level input").val() * -t[c]), n && (t[c] += Math.round(Math.max(1, .1 * t[c] * a)))) : (t[c] = -t[c], r = " (" + westui.lang.per_level + ")", n && (t[c] = Math.round(1e6 * (1 * t[c] + Math.round(Math.max(1, 1e3 * t[c] * a)) / 1e4)) / 1e6)) : n && (t[c] < 1 ? t[c] = Math.round(1e6 * (1 * t[c] + Math.round(Math.max(1, 1e3 * t[c] * a)) / 1e4)) / 1e6 : t[c] += Math.round(Math.max(1, .1 * t[c] * a))), s += westui.lang.popup[o][c].replace("#1", t[c]).replace("#2", r)
                    } l > 0 && (s += "<br/>")
             }
             }
        };


        function updateLinks(language) {
             if (t.textjob) {
             if (translations[language]) {
                 for (p = 0; p < t.textjob.length; p++) s += '<p class="popup_txtgreen">' + t.textjob[p] + "</p>";
                 //Logo redirects
                 s += "<br/>"
                $('.tbbox-logo')
                    .wrap('<a href=' + translations[language].mainPageLink + '></a>');
                // Search Box
                $('h3#p-search-label')
                    .text(translations[language].searchNav);
                $('#searchform > a')
                    .text(translations[language].searchNavAdv);
                $('input#searchInput')
                    .attr('placeholder', translations[language].searchNavFText)
                    .attr('title', translations[language].searchNavFTitle);
                // Navigation Categories and Links
                $('#n-Main-Page > a')
                    .text(translations[language].mainPage)
                    .attr('href', translations[language].mainPageLink);
                $('h3#p-Navigation-label')
                    .text(translations[language].navigationText);
                $('h3#p-Getting_Started-label')
                    .text(translations[language].gettingStartedText);
                $('h3#p-Game_Features-label')
                    .text(translations[language].gameFeaturesText);
                $('h3#p-New_to_the_Wiki-label')
                    .text(translations[language].newToWikiText);
                 $('h3#p-tb-label')
                    .text(translations[language].toolsText);
                $('span#Quick_access')
                    .text(translations[language].quickAccessText);
                $('span#More_games')
                    .text(translations[language].moreGamesText);
                $('span#Follow_us')
                    .text(translations[language].followUSText);
                //Navigation links
                $('#n-Game-rules > a')
                    .text(translations[language].rulesText)
                    .attr('href', translations[language].rulesLink);
             }
             }
        }
            if (t.bonus) {
 
                for (p = 0; p < t.bonus.length; p++) s += '<p class="popup_bonus">' + t.bonus[p] + "</p>";
        var storedLanguage = localStorage.getItem('selectedLanguage');
                 s += "<br/>"
 
        if (storedLanguage) {
            updateLinks(storedLanguage);
        }
 
        for (var i = 0; i < languages.length; i++) {
            var imageElement = $('<img>').attr('src', languages[i].src).attr('title', languages[i].title);
            var linkElement = $('<a>')
                .attr('href', languages[i].link)
                .append(imageElement)
                .on('click', {
                    lang: languages[i].lang
                }, function(event) {
                    localStorage.setItem('selectedLanguage', event.data.lang);
                    updateLinks(event.data.lang);
                 });
            $('.langPicker').append(linkElement);
        }
    });
})(jQuery);
 
(function($) {
    $(document).ready(function() {
        var elementToMove = $("#module-site-navigation").detach();
 
        elementToMove.insertAfter("#mirage-fixed-header");
 
    });
})(jQuery);
 
 
(function($) {
    $(document).ready(function() {
        $('.contact_team-btn').click(function() {
            var url = $(this).data('url');
            if (url) {
                window.open(url, '_blank');
             }
             }
        });
            if (t.jobs) {
        $('.normal_quest').click(function() {
                s += '<div style="text-align:center;"><table class="popup_job">';
            var url = $(this).data('url');
                for (p = 0; p < t.jobs.length; p++) s += '<tr><td><img src="' + westui.config.cdn + "/images/jobs/" + t.jobs[p][1] + '.png"/></td><td><span>&nbsp;&nbsp;' + t.jobs[p][0] + "</span></td></tr>";
            if (url) {
                s += "</table></div>"
                window.open(url, '_blank');
             }
             }
        });
        $('.repeatable_quest').click(function() {
if (t.requi) {
            var url = $(this).data('url');
                s += '<div style="text-align:center;"><table class="popup_job">';
            if (url) {
                for (p in t.requi)
                window.open(url, '_blank');
                    if (p == 'req') {
                        s += '<tr><td colspan="2">';
                        for (var q of t.requi[p]) {
                            q = q.split(',');
                            s += '<div class="item_req"><img src="' + wc.cdn + '/images/items/' + (q[0].includes('/') ? '' : 'yield/') + q[0] + '.png"><div class="item_flag ' + q[2] + '"/>' + (q[2] == 'eqp' ? '' : '<div class="number">' + q[1] + '</div>') + '</div>';
                        }
                        s += '</td></tr>';
                    } else {
                        var ji = wc.jobIcon(p, t.requi[p]);
                        s += '<tr><th><img src="' + ji[0] + '"></th><td>&nbsp;' + ji[1] + '</td></tr>';
                    }
                s += '</table></div><br>';
             }
             }
        });
            if (t.craft) {
    });
                s += '<div style="text-align:center;"><table  class="popup_crafteditem"><tr><td><img src="' + westui.config.cdn + "/images/crafting/profsymbol_" + t.craft.id + '_small.png"/></td><td><table><tr>';
})(jQuery);
                for (p = 0; p < t.craft.req.length; p++) s += '<td><img style="width:36px;height:36px;" src="' + westui.config.cdn + "/images/items/yield/" + t.craft.req[p][0] + '.png"/></td>';
 
                s += "</tr><tr>";
(function($) {
                for (p = 0; p < t.craft.req.length; p++) s += "<td><span>x" + t.craft.req[p][1] + "</span></td>";
    $(document).on('click', '.dock-toggler', function() {
                s += "</tr></table></td></tr></table></div>"
        const dockItems = $('.dock-items-container');
            }
        const toggler = $('.dock-toggler');
            return s += '<div class="popup_infos">', t.hspd && (n && (t.hspd += Math.round(Math.max(1, .1 * t.hspd * a))), s += '<p class="popup_speed">' + westui.lang.speed + ": +" + t.hspd + "%</p><br/>"), t.set && (s += '<p><a class="popup_set" href="/wiki/' + t.set + '">' + t.set + "</a></p><br/>"), t.sp ? s += '<img src="' + westui.config.img_buyprice + '"/>' + t.bp + '&nbsp;&nbsp;&nbsp;&nbsp;<img src="' + westui.config.img_sellprice + '"/>&nbsp;' + t.sp + "<br/><br/>" : s += "<i>" + westui.lang.unsalable + "</i><br/><br/>", t.lvl && (s += westui.lang.level + " <b>" + t.lvl + "</b><br/>"), t.sex && (0 == t.sex ? s += '<img src="' + westui.config.img_male + '"/>&nbsp;&nbsp;&nbsp;' : s += '<img src="' + westui.config.img_female + '"/>&nbsp;&nbsp;&nbsp;'), 1 == t.auc ? s += '<span class="popup_txtgreen">' + westui.lang.auction + "</span><br/>" : s += '<span class="popup_txtred">' + westui.lang.not_auction + "</span><br/>", 0 == t.upg ? s += '<span class="popup_txtred">' + westui.lang.not_upgrade + "</span><br/>" : s += '<span class="popup_txtgreen">' + westui.lang.upgrade + "</span><br/>", s += '<br/><p class="popup_id">[item=<b>' + t.id + "</b>]</p></div>", s
        const toggleDockIcon = $('.toggle-dock');
        },
 
        setPosition: function(t) {
         dockItems.toggleClass('toggled');
            var e, i, a = $(window).width(),
        toggler.toggleClass('toggled');
                s = $(window).height(),
        toggleDockIcon.toggleClass('toggled');
                n = westui.popup.getEl().outerWidth(),
    });
                p = westui.popup.getEl().outerHeight(),
})(jQuery);
                o = t.clientX,
 
                l = t.clientY,
(function($) {
                c = 20,
    $(document).ready(function() {
                r = 20;
        function adjustColspan() {
            i = o + n + r > a ? o - n - r + (t.pageX - t.clientX) : o + r + (t.pageX - t.clientX), e = l + p + c > s ? s - p + (t.pageY - t.clientY) : l + c + (t.pageY - t.clientY), westui.popup.getEl().css({
            var screenWidth = $(window).width();
                top: e,
 
                left: i
            var threshold = 768;
            })
 
        },
             $('quest.table td, quest.table th').each(function() {
         init: function() {
                 if (!$(this).data('original-colspan') && $(this).attr('colspan')) {
            $("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>'), $(document).on("mouseenter", ".item_container", function(t) {
                    $(this).data('original-colspan', $(this).attr('colspan'));
                westui.popup.show(this), westui.popup.setPosition(t)
            }), $(document).on("mouseleave", ".item_container", function() {
                westui.popup.hide()
            }), $(document).on("mousemove", ".item_container", function(t) {
                westui.popup.setPosition(t)
            }), $(".item_level").mousedown(function(t) {
                t.preventDefault()
            }), $(document).on("click", ".upgrade", function() {
                var t = $(this).closest(".item_container"),
                    e = parseInt(t.attr("data-lvl"));
                5 !== e && (t.attr("data-lvl", e + 1), t.find(".level").html(e + 1)), westui.popup.show(t[0])
             }), $(document).on("click", ".downgrade", function() {
                 var t = $(this).closest(".item_container"),
                    e = parseInt(t.attr("data-lvl"));
                0 !== e && (t.attr("data-lvl", e - 1), t.find(".level").html(e - 1)), westui.popup.show(t[0])
            })
        }
    },
    set_calc: {
        bonus: {
            extra_set_bonus: {}
        },
        data: {},
        itemStatus: {},
        getData: function() {
            $(".set_container").each(function() {
                var t = $(this).attr("data-set-id");
                westui.set_calc.itemStatus[t] = {}, westui.set_calc.data[t] = {
                    items: {},
                    set: {}
                 }
                 }
 
            }), $(".infoSet").each(function() {
                 if (screenWidth <= threshold) {
                var t = $(this).attr("data-set-id");
                     if ($(this).attr('colspan') && parseInt($(this).attr('colspan'), 10) === 3) {
                 $(this).find(".infosetatt").each(function() {
                        $(this).attr('colspan', '1');
                     var e = $(this).attr("data-nb");
                     }
                    westui.set_calc.data[t].set[e] = {}, $(this).find(".set_bonus").each(function() {
                 } else {
                        key = $(this).attr("data-type"), 0 !== $(this).find(".calc").length ? westui.set_calc.data[t].set[e][key] = -parseFloat($(this).find(".calc").attr("id")) : westui.set_calc.data[t].set[e][key] = parseFloat($(this).find(".val").text()), westui.config.set_bonus.hasOwnProperty(key) || (westui.set_calc.bonus.extra_set_bonus[key] = {
                     if ($(this).data('original-colspan')) {
                            img: $(this).find("img").attr("src"),
                        $(this).attr('colspan', $(this).data('original-colspan'));
                            name: $(this).find("#tooltip_content").text()
                     }
                        })
                     })
                 })
            }), $(".set_container").each(function() {
                var t = $(this).attr("data-set-id");
                $(this).find(".item_container").each(function() {
                     var e = JSON.parse($(this).attr("data-popup"));
                    for (var i in $(this).is(":hidden") ? westui.set_calc.itemStatus[t][e.id] = !1 : westui.set_calc.itemStatus[t][e.id] = 0, e) e.hasOwnProperty(i) && (westui.config.set_bonus.hasOwnProperty(i) || westui.set_calc.bonus.extra_set_bonus.hasOwnProperty(i)) && (westui.set_calc.data[t].items[i] || (westui.set_calc.data[t].items[i] = {}), westui.set_calc.data[t].items[i][e.id] = e[i])
                })
            })
        },
        calc: function() {
            if (0 === $("#input_level").length | "" !== $("#input_level input").val()) {
                var t = parseInt($("#input_level input").val());
                for (var e in total = {}, westui.set_calc.data) {
                    for (var i in westui.set_calc.data[e].items)
                        for (var a in westui.set_calc.data[e].items[i])
                            if (!1 !== westui.set_calc.itemStatus[e][a]) {
                                lvl = westui.set_calc.itemStatus[e][a], total[i] || (total[i] = 0);
                                var s = westui.set_calc.data[e].items[i][a];
                                westui.set_calc.data[e].items[i][a] < 0 ? (s = -s, westui.set_calc.itemStatus[e][a] > 0 ? total[i] += Math.ceil(s * t) + Math.round(Math.max(1, .1 * Math.ceil(s * t) * lvl)) : total[i] += Math.ceil(s * t)) : westui.set_calc.itemStatus[e][a] > 0 ? total[i] += s < 1 ? Math.round(1e6 * (1 * s + Math.round(Math.max(1, 1e3 * s * lvl)) / 1e4)) / 1e6 : s + Math.round(Math.max(1, .1 * s * lvl)) : total[i] += s
                            } var n = 0;
                     for (var a in westui.set_calc.itemStatus[e]) !1 !== westui.set_calc.itemStatus[e][a] && n++;
                    for (var i in westui.set_calc.data[e].set[n]) total[i] || (total[i] = 0), westui.set_calc.data[e].set[n][i] < 0 ? total[i] += Math.ceil(-westui.set_calc.data[e].set[n][i] * t) : total[i] += westui.set_calc.data[e].set[n][i]
                 }
                 }
             });
                var p = '<center><table class="infoSet"><caption><br><big><b>' + westui.lang.total + "</b></big></caption><tbody><tr><td></center>";
                for (var i in westui.config.set_bonus) total.hasOwnProperty(i) && (p += '<div class="set_bonus tooltip_container"><img src="' + westui.config.set_bonus[i].img + '"><b>+' + total[i] + (-1 !== ["xp", "money", "luck", "spd", "regen", "drop"].indexOf(i) ? "%" : "") + '</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[i].name + "</div></div></div></div>");
                for (var i in westui.set_calc.bonus.extra_set_bonus) total.hasOwnProperty(i) && (p += '<div class="set_bonus tooltip_container"><img src="' + westui.set_calc.bonus.extra_set_bonus[i].img + '"><b>+' + total[i] + (-1 !== ["xp", "money", "luck", "spd", "regen", "drop"].indexOf(i) ? "%" : "") + '</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[i].name + "</div></div></div></div>");
                $("#set_calc").html(p)
            } else $("#set_calc").html("")
        },
        initEvents: function() {
            $(".item_container > img").on("click", function() {
                var t = $(this).closest(".item_container");
                t.toggleClass("item_off");
                var e = t.closest(".set_container").attr("data-set-id"),
                    i = JSON.parse(t.attr("data-popup")).id;
                t.hasClass("item_off") || t.is(":hidden") ? westui.set_calc.itemStatus[e][i] = !1 : westui.set_calc.itemStatus[e][i] = parseInt(t.attr("data-lvl")), westui.set_calc.calc()
             }), $(document).on("click", ".upgrade, .downgrade", function() {
                var t = $(this).closest(".item_container"),
                    e = t.closest(".set_container").attr("data-set-id");
                t.hasClass("item_off") || t.is(":hidden") || (westui.set_calc.itemStatus[e][JSON.parse(t.attr("data-popup")).id] = parseInt(t.attr("data-lvl")), westui.set_calc.calc())
            }), $("#input_level").bind("propertychange keyup input paste", function() {
                westui.set_calc.calc()
            }), $("#switch").on("click", function() {
                $("#melee, #fire").each(function() {
                    var t = $(this).find(".item_container"),
                        e = $(this).closest(".set_container").attr("data-set-id");
                    $(this).is(":hidden") ? westui.set_calc.itemStatus[e][JSON.parse(t.attr("data-popup")).id] = !1 : westui.set_calc.itemStatus[e][JSON.parse(t.attr("data-popup")).id] = parseInt(t.attr("data-lvl"))
                }), westui.set_calc.calc()
            })
        },
        init: function() {
            westui.set_calc.initEvents(), westui.set_calc.getData(), $("#mw-content-text").append('<div id="set_calc"></div>'), 0 === $("#input_level").length && westui.set_calc.calc()
         }
         }
 
    },
         adjustColspan();
    sorting: {
 
         sortItems: function(t) {
        $(window).resize(adjustColspan);
            function e(e) {
    });
                var i = JSON.parse($(e).attr("data-popup")),
})(jQuery);
                    a = $("#input_level input").val();
 
                a = a || 250;
(function($) {
                var s = -1 !== Object.keys(t).indexOf("id") || t.bool && !0 === t.bool,
    $(document).ready(function() {
                    n = 0;
        var currentUrl = window.location.pathname.split('/').pop();
                if (t.bool && !0 === t.bool)
 
                    for (var p in n = 1, t) "bool" !== p && i[p] !== t[p] && (n = 0);
         if (currentUrl !== 'MediaWiki:Common.css' || currentUrl !== 'MediaWiki:Common.js') {
                else
            $('#firstHeading').hide();
                    for (var p in t) "id" === p ? n -= i[p] : (!i.lvl || i.lvl <= a) && i[p] && (i[p] < 0 ? n += Math.ceil(-i[p] * a) * t[p] : n += i[p] * t[p]);
                $(e).attr("data-sort", n), 0 == n && $(e).hide(), 0 !== $(e).find(".number").length ? s ? $(e).find(".number").html("") : $(e).find(".number").html(n) : s || $(e).append('<p class="number">' + n + "</p>")
            }
            $(".item_container").removeAttr("data-sort").show(), $("#mw-content-text").find(".sorting_hidden").hide(), $(".sorting_container").each(function() {
                $(this).find(".item_container").sort(function(t, i) {
                    return $(t).attr("data-sort") || e(t), $(i).attr("data-sort") || e(i), $(i).attr("data-sort") - $(t).attr("data-sort")
                }).appendTo($(this))
            })
        },
         init: function() {
            if (1 === $("div#sort_items").length) {
                var t = "<div id='input_search'><select id='sort_items' class='west'><option selected disabled>Order by :</option>";
                for (var e in westui.config.sorting) t += "<option value='" + westui.config.sorting[e] + "'>" + e + "</option>";
                t += "</select></div>", $("div#sort_items").html(t), $("select#sort_items").on("change", function() {
                    westui.sorting.sortItems(JSON.parse($(this).find("option:selected").attr("value")))
                })
            }
         }
         }
        if (currentUrl == 'Category:Item_sets' || currentUrl == 'Category:Questlines') {
    },
            $('.mw-category-generated').hide();
     init: function() {
        }
        westui.initPage(), westui.popup.init(), westui.config.enable_sorting && westui.sorting.init(), westui.config.enable_set_calc && 0 !== $(".infoSet").length && westui.set_calc.init()
     });
    }
})(jQuery);
}, westui.init();
 
(function($) {
$(document).ready(function() {
$('.quickSearchQuest').append('<span class="textfield_wrapper textfield_flex"><span class="textfield_label"></span><span class="textfield"><span><input type="text" id="QsearchBox" placeholder="Quick Search Quest"></span></span></span>');
});
})(jQuery);

Revision as of 18:51, 25 October 2023

westui = {
    lang: {
        input_level: "Your level",
        input_search: "Search",
        damages: "Damages",
        per_level: "per Level",
        speed: "Speed",
        level: "Level",
        unsalable: "Unsalable",
        auction: "Auctionable",
        not_auction: "Not auctionable",
        not_upgrade: "Not upgradeable",
        upgrade: "Upgradeable",
        total: "Total",
        popup: {
            dmg: {
                dmglvl: '<p class="popup_dmg">+ #1 Damages#2</p>'
            },
            skills: {
                str: '<p class="popup_attribute">+ #1 Strength#2</p>',
                mob: '<p class="popup_attribute">+ #1 Mobility#2</p>',
                dex: '<p class="popup_attribute">+ #1 Dexterity#2</p>',
                cha: '<p class="popup_attribute">+ #1 Charisma#2</p>',
                con: '<p class="popup_skill">+ #1 Construction#2</p>',
                vig: '<p class="popup_skill">+ #1 Vigor#2</p>',
                tou: '<p class="popup_skill">+ #1 Toughness#2</p>',
                sta: '<p class="popup_skill">+ #1 Stamina#2</p>',
                hea: '<p class="popup_skill">+ #1 Health Points#2</p>',
                rid: '<p class="popup_skill">+ #1 Horseback Riding#2</p>',
                ref: '<p class="popup_skill">+ #1 Reflex#2</p>',
                dod: '<p class="popup_skill">+ #1 Dodging#2</p>',
                hid: '<p class="popup_skill">+ #1 Hiding#2</p>',
                swi: '<p class="popup_skill">+ #1 Swimming#2</p>',
                aim: '<p class="popup_skill">+ #1 Aiming#2</p>',
                sho: '<p class="popup_skill">+ #1 Shooting#2</p>',
                pit: '<p class="popup_skill">+ #1 Setting traps#2</p>',
                fin: '<p class="popup_skill">+ #1 Fine Motor Skills#2</p>',
                rep: '<p class="popup_skill">+ #1 Repairing#2</p>',
                lea: '<p class="popup_skill">+ #1 Leadership#2</p>',
                tac: '<p class="popup_skill">+ #1 Tactics#2</p>',
                tra: '<p class="popup_skill">+ #1 Trading#2</p>',
                ani: '<p class="popup_skill">+ #1 Animal Instinct#2</p>',
                app: '<p class="popup_skill">+ #1 Appearance#2</p>'
            },
            fb: {
                fbdef: '<p class="popup_fb">+ #1 <b>Defense</b> (Fort battle bonus)#2</p>',
                fboff: '<p class="popup_fb">+ #1 <b>Attack</b> (Fort battle bonus)#2</p>',
                fbres: '<p class="popup_fb">+ #1 <b>Resistance</b> (Fort battle bonus)#2</p>',
                fbdefs: '<p class="popup_fb">+ #1 <b>Defense</b> (Fort battle sector bonus)#2</p>',
                fboffs: '<p class="popup_fb">+ #1 <b>Attack</b> (Fort battle sector bonus)#2</p>',
                fbdmgs: '<p class="popup_fb">+ #1 <b>Damages</b> (Fort battle sector bonus)#2</p>'
            },
            special: {
                xp: '<p class="popup_txtgreen">+ #1% Experience from jobs, duels and fort battles#2</p>',
                money: '<p class="popup_txtgreen">+ #1% Money from jobs and duels#2</p>',
                luck: '<p class="popup_txtgreen">+ #1% Improved Luck#2</p>',
                regen: '<p class="popup_txtgreen">+ #1% Regeneration#2</p>',
                drop: '<p class="popup_txtgreen">+ #1% Improved drop chance#2</p>',
                labor_pts: '<p class="popup_txtgreen">+ #1 labor point#2</p>',
                spd: '<p class="popup_txtgreen">+ #1% Speed#2</p>'
            }
        }
    },
    config: {
        enable_set_calc: !0,
        plain_popup: !0,
        redirect_on_dblclick: !1,
        link_on_dblclick: !0,
        enable_sorting: !0,
        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: "<b>Defense</b> (Fort battle bonus)",
                img: "/images/8/82/Set_Fb_defense.png"
            },
            fboff: {
                name: "<b>Attack</b> (Fort battle bonus)",
                img: "/images/3/30/Set_Fb_offense.png"
            },
            fbres: {
                name: "<b>Resistance</b> (Fort battle bonus)",
                img: "/images/4/4b/Resistance.png"
            },
            fbdefs: {
                name: "<b>Defense</b> (Fort battle sector bonus)",
                img: "/images/1/1a/Set_Fb_defense_sec.png"
            },
            fboffs: {
                name: "<b>Attack</b> (Fort battle sector bonus)",
                img: "/images/f/fe/Set_Fb_offense_sec.png"
            },
            fbdmgs: {
                name: "<b>Damages</b> (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"
            },
            labor_pts: {
                name: "Labor points (all jobs)",
                img: "/images/5/5e/Labor_pts.png"
            },
            building_pts: {
                name: "Labor points towards Construction",
                img: "/images/2/2c/Building_pts.png"  
            }
        },
        img_job: {
            tailor: ['d/de', 'Tailor'],
            gunsmith: ['2/21', 'Gunsmith'],
            general: ['e/ef', 'General store'],
            all: ['d/d1', 'All jobs'],
        },
        jobIcon: function(p, q) {
            var wip = this.img_job[p],
                ji = wip ? ['/images/' + wip[0] + '/Job_', wip[1] + (q || '')] : [this.cdn + '/images/jobs/', q];
            ji[0] += p + '.png';
            return ji;
        },
        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 (%)": '{"money":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}',
            "Upgradeable items": '{"bool":true,"upg":1}',
            "Not upgradeable items": '{"bool":true,"upg":0}',
            "Auctionable items": '{"bool":true,"auc":1}',
            "Not auctionable items": '{"bool":true,"auc":0}'
        }
    },
    initPage: function() {
        if (1 === $("#input_level").length) var t = $('<input type="number" style="width:80px;" class="west" placeholder="' + westui.lang.input_level + '" min="0" max="250">').bind("propertychange keyup input paste", function() {
            this.value > 250 ? this.value = 250 : this.value < 0 && (this.value = 0), $(".calc").each(function() {
                0 == t.val() ? ($(this).html(this.id), $(".per_level_off").addClass("per_level").removeClass("per_level_off")) : ($(this).html(Math.ceil(Number(this.id) * t.val())), $(".per_level").addClass("per_level_off").removeClass("per_level"))
            })
        }).appendTo($("#input_level"));
        if (1 === $("#input_search").length) $('<input type="search" class="west" placeholder="' + westui.lang.input_search + '">').bind("propertychange keyup input paste", function() {
            var t = this.value.toLowerCase();
            "" === t ? $(".item_container").show() : ($(".item_container").hide(), $(".item_container").filter(function() {
                return $(this).attr("data-popup").toLowerCase().indexOf(t) > -1
            }).show())
        }).appendTo($("#input_search"));
        1 === $("#switch").length && ($("#fire").hide(), $("#switch").on("click", function() {
            $("#melee, #fire").toggle()
        })), 1 === $("#switch_prod").length && ($("#prod2").hide(), $("#switch_prod").on("click", function() {
            $("#prod, #prod2").toggle()
        })), westui.config.plain_popup && new RegExp(mw.config.get("wgFormattedNamespaces")[10] + ":Item_*").test(mw.config.get("wgPageName")) && 1 === $(".item_container").length && ($("#mw-content-text").append('<center><div id="popup_plain" class="popup_window"><div class="popup_front"><div class="tw_bg_tl"></div><div class="tw_bg_tr"></div><div class="tw_bg_bl"></div><div class="tw_bg_br"></div></div><div id="popup_plain_contents" class="popup_contents"></div></div></center>'), $("#popup_plain").hide(), $("#popup_plain_contents").append(westui.popup.createPopup($(".item_container").attr("data-popup"), $(".item_container").attr("data-cdn-cat"), $(".item_container").attr("data-cdn-img"), 0)), $("#popup_plain").slideDown()), 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 / 1e3
        }), westui.config.link_on_dblclick && $(".item_container img").on("dblclick", function() {
            window.location = "/wiki/" + $(this).parent().attr("data-link")
        })
    },
    popup: {
        content: "",
        delay: 200,
        active: !1,
        show: function(t) {
            westui.popup.content = westui.popup.createPopup($(t).attr("data-popup"), $(t).attr("data-cdn-cat"), $(t).attr("data-cdn-img"), parseInt($(t).attr("data-lvl"))), westui.popup.active = !0, 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 = !1, 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() {
            westui.popup.timer && window.clearTimeout(westui.popup.timer)
        },
        getEl: function() {
            return $("#popup_window")
        },
        getContainer: function() {
            return $("#popup_contents")
        },
        createPopup: function(t, e, i, a) {
            t = JSON.parse(t);
            var wc = westui.config,
				s = '<div class="popup_image"><img src="' + westui.config.cdn + "/images/items/" + t.cdn_cat + "/" + t.cdn_img + '.png"/></div><div class="popup_divider"></div><p class="popup_name">' + t.name + '</p><p class="popup_type">' + t.type + "</p><br/>",
                n = !1;
            if (a >= 1 && a <= 5 && (n = !0, t.auc = !1), t.dmg_min && t.dmg_max && (n && (t.dmg_min += Math.round(Math.max(1, .1 * t.dmg_min * a)), t.dmg_max += Math.round(Math.max(1, .1 * t.dmg_max * a))), s += '<p class="popup_dmg">' + t.dmg_min + "-" + t.dmg_max + " " + westui.lang.damages + "</p>"), t.text) {
                for (var p = 0; p < t.text.length; p++) s += '<p class="popup_text">' + t.text[p] + "</p>";
                s += "<br/>"
            }
            for (var o in westui.lang.popup) {
                var l = 0;
                for (var c in westui.lang.popup[o])
                    if (t.hasOwnProperty(c)) {
                        l++;
                        var r = "";
                        t[c] < 0 ? $("#input_level input").val() > 0 ? (t[c] = Math.ceil($("#input_level input").val() * -t[c]), n && (t[c] += Math.round(Math.max(1, .1 * t[c] * a)))) : (t[c] = -t[c], r = " (" + westui.lang.per_level + ")", n && (t[c] = Math.round(1e6 * (1 * t[c] + Math.round(Math.max(1, 1e3 * t[c] * a)) / 1e4)) / 1e6)) : n && (t[c] < 1 ? t[c] = Math.round(1e6 * (1 * t[c] + Math.round(Math.max(1, 1e3 * t[c] * a)) / 1e4)) / 1e6 : t[c] += Math.round(Math.max(1, .1 * t[c] * a))), s += westui.lang.popup[o][c].replace("#1", t[c]).replace("#2", r)
                    } l > 0 && (s += "<br/>")
            }

            if (t.textjob) {
                for (p = 0; p < t.textjob.length; p++) s += '<p class="popup_txtgreen">' + t.textjob[p] + "</p>";
                s += "<br/>"
            }
            if (t.bonus) {
                for (p = 0; p < t.bonus.length; p++) s += '<p class="popup_bonus">' + t.bonus[p] + "</p>";
                s += "<br/>"
            }
            if (t.jobs) {
                s += '<div style="text-align:center;"><table class="popup_job">';
                for (p = 0; p < t.jobs.length; p++) s += '<tr><td><img src="' + westui.config.cdn + "/images/jobs/" + t.jobs[p][1] + '.png"/></td><td><span>&nbsp;&nbsp;' + t.jobs[p][0] + "</span></td></tr>";
                s += "</table></div>"
            }
			
			if (t.requi) {
                s += '<div style="text-align:center;"><table class="popup_job">';
                for (p in t.requi)
                    if (p == 'req') {
                        s += '<tr><td colspan="2">';
                        for (var q of t.requi[p]) {
                            q = q.split(',');
                            s += '<div class="item_req"><img src="' + wc.cdn + '/images/items/' + (q[0].includes('/') ? '' : 'yield/') + q[0] + '.png"><div class="item_flag ' + q[2] + '"/>' + (q[2] == 'eqp' ? '' : '<div class="number">' + q[1] + '</div>') + '</div>';
                        }
                        s += '</td></tr>';
                    } else {
                        var ji = wc.jobIcon(p, t.requi[p]);
                        s += '<tr><th><img src="' + ji[0] + '"></th><td>&nbsp;' + ji[1] + '</td></tr>';
                    }
                s += '</table></div><br>';
            }
            if (t.craft) {
                s += '<div style="text-align:center;"><table  class="popup_crafteditem"><tr><td><img src="' + westui.config.cdn + "/images/crafting/profsymbol_" + t.craft.id + '_small.png"/></td><td><table><tr>';
                for (p = 0; p < t.craft.req.length; p++) s += '<td><img style="width:36px;height:36px;" src="' + westui.config.cdn + "/images/items/yield/" + t.craft.req[p][0] + '.png"/></td>';
                s += "</tr><tr>";
                for (p = 0; p < t.craft.req.length; p++) s += "<td><span>x" + t.craft.req[p][1] + "</span></td>";
                s += "</tr></table></td></tr></table></div>"
            }
            return s += '<div class="popup_infos">', t.hspd && (n && (t.hspd += Math.round(Math.max(1, .1 * t.hspd * a))), s += '<p class="popup_speed">' + westui.lang.speed + ": +" + t.hspd + "%</p><br/>"), t.set && (s += '<p><a class="popup_set" href="/wiki/' + t.set + '">' + t.set + "</a></p><br/>"), t.sp ? s += '<img src="' + westui.config.img_buyprice + '"/>' + t.bp + '&nbsp;&nbsp;&nbsp;&nbsp;<img src="' + westui.config.img_sellprice + '"/>&nbsp;' + t.sp + "<br/><br/>" : s += "<i>" + westui.lang.unsalable + "</i><br/><br/>", t.lvl && (s += westui.lang.level + " <b>" + t.lvl + "</b><br/>"), t.sex && (0 == t.sex ? s += '<img src="' + westui.config.img_male + '"/>&nbsp;&nbsp;&nbsp;' : s += '<img src="' + westui.config.img_female + '"/>&nbsp;&nbsp;&nbsp;'), 1 == t.auc ? s += '<span class="popup_txtgreen">' + westui.lang.auction + "</span><br/>" : s += '<span class="popup_txtred">' + westui.lang.not_auction + "</span><br/>", 0 == t.upg ? s += '<span class="popup_txtred">' + westui.lang.not_upgrade + "</span><br/>" : s += '<span class="popup_txtgreen">' + westui.lang.upgrade + "</span><br/>", s += '<br/><p class="popup_id">[item=<b>' + t.id + "</b>]</p></div>", s
        },
        setPosition: function(t) {
            var e, i, a = $(window).width(),
                s = $(window).height(),
                n = westui.popup.getEl().outerWidth(),
                p = westui.popup.getEl().outerHeight(),
                o = t.clientX,
                l = t.clientY,
                c = 20,
                r = 20;
            i = o + n + r > a ? o - n - r + (t.pageX - t.clientX) : o + r + (t.pageX - t.clientX), e = l + p + c > s ? s - p + (t.pageY - t.clientY) : l + c + (t.pageY - t.clientY), westui.popup.getEl().css({
                top: e,
                left: i
            })
        },
        init: function() {
            $("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>'), $(document).on("mouseenter", ".item_container", function(t) {
                westui.popup.show(this), westui.popup.setPosition(t)
            }), $(document).on("mouseleave", ".item_container", function() {
                westui.popup.hide()
            }), $(document).on("mousemove", ".item_container", function(t) {
                westui.popup.setPosition(t)
            }), $(".item_level").mousedown(function(t) {
                t.preventDefault()
            }), $(document).on("click", ".upgrade", function() {
                var t = $(this).closest(".item_container"),
                    e = parseInt(t.attr("data-lvl"));
                5 !== e && (t.attr("data-lvl", e + 1), t.find(".level").html(e + 1)), westui.popup.show(t[0])
            }), $(document).on("click", ".downgrade", function() {
                var t = $(this).closest(".item_container"),
                    e = parseInt(t.attr("data-lvl"));
                0 !== e && (t.attr("data-lvl", e - 1), t.find(".level").html(e - 1)), westui.popup.show(t[0])
            })
        }
    },
    set_calc: {
        bonus: {
            extra_set_bonus: {}
        },
        data: {},
        itemStatus: {},
        getData: function() {
            $(".set_container").each(function() {
                var t = $(this).attr("data-set-id");
                westui.set_calc.itemStatus[t] = {}, westui.set_calc.data[t] = {
                    items: {},
                    set: {}
                }
            }), $(".infoSet").each(function() {
                var t = $(this).attr("data-set-id");
                $(this).find(".infosetatt").each(function() {
                    var e = $(this).attr("data-nb");
                    westui.set_calc.data[t].set[e] = {}, $(this).find(".set_bonus").each(function() {
                        key = $(this).attr("data-type"), 0 !== $(this).find(".calc").length ? westui.set_calc.data[t].set[e][key] = -parseFloat($(this).find(".calc").attr("id")) : westui.set_calc.data[t].set[e][key] = parseFloat($(this).find(".val").text()), 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()
                        })
                    })
                })
            }), $(".set_container").each(function() {
                var t = $(this).attr("data-set-id");
                $(this).find(".item_container").each(function() {
                    var e = JSON.parse($(this).attr("data-popup"));
                    for (var i in $(this).is(":hidden") ? westui.set_calc.itemStatus[t][e.id] = !1 : westui.set_calc.itemStatus[t][e.id] = 0, e) e.hasOwnProperty(i) && (westui.config.set_bonus.hasOwnProperty(i) || westui.set_calc.bonus.extra_set_bonus.hasOwnProperty(i)) && (westui.set_calc.data[t].items[i] || (westui.set_calc.data[t].items[i] = {}), westui.set_calc.data[t].items[i][e.id] = e[i])
                })
            })
        },
        calc: function() {
            if (0 === $("#input_level").length | "" !== $("#input_level input").val()) {
                var t = parseInt($("#input_level input").val());
                for (var e in total = {}, westui.set_calc.data) {
                    for (var i in westui.set_calc.data[e].items)
                        for (var a in westui.set_calc.data[e].items[i])
                            if (!1 !== westui.set_calc.itemStatus[e][a]) {
                                lvl = westui.set_calc.itemStatus[e][a], total[i] || (total[i] = 0);
                                var s = westui.set_calc.data[e].items[i][a];
                                westui.set_calc.data[e].items[i][a] < 0 ? (s = -s, westui.set_calc.itemStatus[e][a] > 0 ? total[i] += Math.ceil(s * t) + Math.round(Math.max(1, .1 * Math.ceil(s * t) * lvl)) : total[i] += Math.ceil(s * t)) : westui.set_calc.itemStatus[e][a] > 0 ? total[i] += s < 1 ? Math.round(1e6 * (1 * s + Math.round(Math.max(1, 1e3 * s * lvl)) / 1e4)) / 1e6 : s + Math.round(Math.max(1, .1 * s * lvl)) : total[i] += s
                            } var n = 0;
                    for (var a in westui.set_calc.itemStatus[e]) !1 !== westui.set_calc.itemStatus[e][a] && n++;
                    for (var i in westui.set_calc.data[e].set[n]) total[i] || (total[i] = 0), westui.set_calc.data[e].set[n][i] < 0 ? total[i] += Math.ceil(-westui.set_calc.data[e].set[n][i] * t) : total[i] += westui.set_calc.data[e].set[n][i]
                }
                var p = '<center><table class="infoSet"><caption><br><big><b>' + westui.lang.total + "</b></big></caption><tbody><tr><td></center>";
                for (var i in westui.config.set_bonus) total.hasOwnProperty(i) && (p += '<div class="set_bonus tooltip_container"><img src="' + westui.config.set_bonus[i].img + '"><b>+' + total[i] + (-1 !== ["xp", "money", "luck", "spd", "regen", "drop"].indexOf(i) ? "%" : "") + '</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[i].name + "</div></div></div></div>");
                for (var i in westui.set_calc.bonus.extra_set_bonus) total.hasOwnProperty(i) && (p += '<div class="set_bonus tooltip_container"><img src="' + westui.set_calc.bonus.extra_set_bonus[i].img + '"><b>+' + total[i] + (-1 !== ["xp", "money", "luck", "spd", "regen", "drop"].indexOf(i) ? "%" : "") + '</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[i].name + "</div></div></div></div>");
                $("#set_calc").html(p)
            } else $("#set_calc").html("")
        },
        initEvents: function() {
            $(".item_container > img").on("click", function() {
                var t = $(this).closest(".item_container");
                t.toggleClass("item_off");
                var e = t.closest(".set_container").attr("data-set-id"),
                    i = JSON.parse(t.attr("data-popup")).id;
                t.hasClass("item_off") || t.is(":hidden") ? westui.set_calc.itemStatus[e][i] = !1 : westui.set_calc.itemStatus[e][i] = parseInt(t.attr("data-lvl")), westui.set_calc.calc()
            }), $(document).on("click", ".upgrade, .downgrade", function() {
                var t = $(this).closest(".item_container"),
                    e = t.closest(".set_container").attr("data-set-id");
                t.hasClass("item_off") || t.is(":hidden") || (westui.set_calc.itemStatus[e][JSON.parse(t.attr("data-popup")).id] = parseInt(t.attr("data-lvl")), westui.set_calc.calc())
            }), $("#input_level").bind("propertychange keyup input paste", function() {
                westui.set_calc.calc()
            }), $("#switch").on("click", function() {
                $("#melee, #fire").each(function() {
                    var t = $(this).find(".item_container"),
                        e = $(this).closest(".set_container").attr("data-set-id");
                    $(this).is(":hidden") ? westui.set_calc.itemStatus[e][JSON.parse(t.attr("data-popup")).id] = !1 : westui.set_calc.itemStatus[e][JSON.parse(t.attr("data-popup")).id] = parseInt(t.attr("data-lvl"))
                }), westui.set_calc.calc()
            })
        },
        init: function() {
            westui.set_calc.initEvents(), westui.set_calc.getData(), $("#mw-content-text").append('<div id="set_calc"></div>'), 0 === $("#input_level").length && westui.set_calc.calc()
        }
    },
    sorting: {
        sortItems: function(t) {
            function e(e) {
                var i = JSON.parse($(e).attr("data-popup")),
                    a = $("#input_level input").val();
                a = a || 250;
                var s = -1 !== Object.keys(t).indexOf("id") || t.bool && !0 === t.bool,
                    n = 0;
                if (t.bool && !0 === t.bool)
                    for (var p in n = 1, t) "bool" !== p && i[p] !== t[p] && (n = 0);
                else
                    for (var p in t) "id" === p ? n -= i[p] : (!i.lvl || i.lvl <= a) && i[p] && (i[p] < 0 ? n += Math.ceil(-i[p] * a) * t[p] : n += i[p] * t[p]);
                $(e).attr("data-sort", n), 0 == n && $(e).hide(), 0 !== $(e).find(".number").length ? s ? $(e).find(".number").html("") : $(e).find(".number").html(n) : s || $(e).append('<p class="number">' + n + "</p>")
            }
            $(".item_container").removeAttr("data-sort").show(), $("#mw-content-text").find(".sorting_hidden").hide(), $(".sorting_container").each(function() {
                $(this).find(".item_container").sort(function(t, i) {
                    return $(t).attr("data-sort") || e(t), $(i).attr("data-sort") || e(i), $(i).attr("data-sort") - $(t).attr("data-sort")
                }).appendTo($(this))
            })
        },
        init: function() {
            if (1 === $("div#sort_items").length) {
                var t = "<div id='input_search'><select id='sort_items' class='west'><option selected disabled>Order by :</option>";
                for (var e in westui.config.sorting) t += "<option value='" + westui.config.sorting[e] + "'>" + e + "</option>";
                t += "</select></div>", $("div#sort_items").html(t), $("select#sort_items").on("change", function() {
                    westui.sorting.sortItems(JSON.parse($(this).find("option:selected").attr("value")))
                })
            }
        }
    },
    init: function() {
        westui.initPage(), westui.popup.init(), westui.config.enable_sorting && westui.sorting.init(), westui.config.enable_set_calc && 0 !== $(".infoSet").length && westui.set_calc.init()
    }
}, westui.init();