Popup.js
westui = {
lang: { input_level: "Nivelul tău", input_search: "Caută", damages: "Daună", per_level: "per nivel", speed: "Viteză", level: "Nivel", unsalable: "Nevandabil", auction: "Licitabil", not_auction: "Nevandabil", not_upgrade: "Nu poate fi upgradat", upgrade: "Upgradabil", total: "Total", popup: { dmg: {
dmglvl: '
+ #1 Damages#2
'
}, skills: {
str: '
+ #1 Putere#2
', mob: '
+ #1 Mobilitate#2
', dex: '
+ #1 Dexteritate#2
', cha: '
+ #1 Carismă#2
', con: '
+ #1 Construcție#2
', vig: '
+ #1 Vigoare#2
', tou: '
+ #1 Rezistență#2
', sta: '
+ #1 Perseverență#2
', hea: '
+ #1 Puncte de viață#2
', rid: '
+ #1 Călărie#2
', ref: '
+ #1 Reflex#2
', dod: '
+ #1 Ferire#2
', hid: '
+ #1 Ascundere#2
', swi: '
+ #1 Înot#2
', aim: '
+ #1 Țintire#2
', sho: '
+ #1 Împușcare#2
', pit: '
+ #1 Pune capcane#2
', fin: '
+ #1 Îndemânare motrică#2
', rep: '
+ #1 Reparare#2
', lea: '
+ #1 Conducere#2
', tac: '
+ #1 Tactică#2
', tra: '
+ #1 Comerț#2
', ani: '
+ #1 Instinct pentru animale#2
', app: '
+ #1 Aspect#2
'
}, fb: {
fbdef: '
+ #1 Apărare (Bonus pentru bătălia la fort)#2
', fboff: '
+ #1 Atac (Bonus pentru bătălia la fort)#2
', fbres: '
+ #1 Rezistenţă (Bonus pentru bătălia la fort)#2
', fbdefs: '
+ #1 Apărare (Bonus pentru sectorul bătăliei pentru fort)#2
', fboffs: '
+ #1 Atac (Bonus pentru sectorul bătăliei pentru fort)#2
', fbdmgs: '
+ #1 Daune (Bonus pentru sectorul bătăliei pentru fort)#2
'
}, special: {
xp: '
+ #1% Experiență la munci, dueluri și bătălii la fort#2
', money: '
+ #1% Bani de la munci și dueluri#2
', luck: '
+ #1% spor de noroc#2
', regen: '
+ #1% Regenerare#2
', drop: '
+ #1% Improved drop chance#2
', labor_pts: '
+ #1 puncte de muncă#2
', spd: '
+ #1% Viteză#2
'
} } }, 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: "Putere", img: "/images/thumb/8/8b/Strength.png/40px-Strength.png" }, mob: { name: "Mobilitate", img: "/images/thumb/5/5a/Mobility.png/40px-Mobility.png" }, dex: { name: "Dexteritate", img: "/images/thumb/0/0d/Dexterity.png/40px-Dexterity.png" }, cha: { name: "Carismă", img: "/images/thumb/c/c9/Charisma.png/40px-Charisma.png" }, con: { name: "Construcție", img: "/images/thumb/3/37/Construction.png/40px-Construction.png" }, vig: { name: "Vigoare", img: "/images/thumb/9/90/Skill_Punch.png/40px-Skill_Punch.png" }, tou: { name: "Rezistenţă", img: "/images/thumb/f/f8/Skill_Tough.png/40px-Skill_Tough.png" }, sta: { name: "Perseverență", img: "/images/thumb/8/8d/Stamina.png/40px-Stamina.png" }, hea: { name: "Puncte de viață", img: "/images/thumb/9/94/Health.png/40px-Health.png" }, rid: { name: "Călărie", 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: "Ferire", img: "/images/thumb/0/07/Skill_Dodge.png/40px-Skill_Dodge.png" }, hid: { name: "Ascundere", img: "/images/thumb/9/97/Hiding.png/40px-Hiding.png" }, swi: { name: "Înot", img: "/images/thumb/f/f4/Swimming.png/40px-Swimming.png" }, aim: { name: "Țintire", img: "/images/thumb/5/53/Skill_Aim.png/40px-Skill_Aim.png" }, sho: { name: "Împușcare", img: "/images/thumb/7/73/Skill_Shot.png/40px-Skill_Shot.png" }, pit: { name: "Pune capcane", img: "/images/thumb/e/e1/Trapping.png/40px-Trapping.png" }, fin: { name: "Îndemânare motrică", img: "/images/thumb/1/18/Fms.png/40px-Fms.png" }, rep: { name: "Reparare", img: "/images/thumb/d/d5/Repairing.png/40px-Repairing.png" }, lea: { name: "Conducere", img: "/images/thumb/4/44/Leadership.png/40px-Leadership.png" }, tac: { name: "Tactică", img: "/images/thumb/9/91/Skill_Tactic.png/40px-Skill_Tactic.png" }, tra: { name: "Comerț", img: "/images/thumb/f/f3/Skill_Trading.png/40px-Skill_Trading.png" }, ani: { name: "Instinct pentru animale", img: "/images/thumb/9/9d/AnimalInstinct.png/40px-AnimalInstinct.png" }, app: { name: "Aspect", img: "/images/thumb/4/4c/Skill_Appearance.png/40px-Skill_Appearance.png" }, fbdef: { name: "Apărare (Bonus pentru bătălia la fort)", img: "/images/8/82/Set_Fb_defense.png" }, fboff: { name: "Atac (Bonus pentru bătălia la fort)", img: "/images/3/30/Set_Fb_offense.png" }, fbres: { name: "Rezistenţă Bonus pentru bătălia la fort", img: "/images/4/4b/Resistance.png" }, fbdefs: { name: "Apărare (Bonus pentru sectorul bătăliei pentru fort)", img: "/images/1/1a/Set_Fb_defense_sec.png" }, fboffs: { name: "Atac (Bonus pentru sectorul bătăliei pentru fort)", img: "/images/f/fe/Set_Fb_offense_sec.png" }, fbdmgs: { name: "Daună (Bonus pentru sectorul bătăliei pentru fort)", img: "/images/b/b3/Damages_sector.png" }, xp: { name: "Experiență de la munci, dueluri și bătălii de fort (%)", img: "/images/7/71/Set_xp.png" }, money: { name: "Bani de la munci și dueluri (%)", img: "/images/d/df/Set_money.png" }, luck: { name: "Spor de noroc", img: "/images/c/c1/Set_luck.png" }, regen: { name: "Regenerare", img: "/images/5/53/Regeneration.png", }, drop: { name: "Improved drop chance", img: "/images/thumb/b/b8/Drop.png/40px-Drop.png" }, spd: { name: "Viteză", img: "/images/thumb/1/1a/QuarterHorse.png/40px-QuarterHorse.png" } }, sorting: { 'Putere': '{"str":1}', 'Mobilitate': '{"mob":1}', 'Dexteritate': '{"dex":1}', 'Carismă': '{"cha":1}', 'Construcție': '{"str":1,"con":1}', 'Vigoare': '{"str":1,"vig":1}', 'Rezistenţă': '{"str":1,"tou":1}', 'Perseverență': '{"str":1,"sta":1}', 'Puncte de viață': '{"str":1,"hea":1}', 'Călărie': '{"mob":1,"rid":1}', 'Reflex': '{"mob":1,"ref":1}', 'Ferire': '{"mob":1,"dod":1}', 'Ascundere': '{"mob":1,"hid":1}', 'Înot': '{"mob":1,"swi":1}', 'Țintire': '{"dex":1,"aim":1}', 'Împușcare': '{"dex":1,"sho":1}', 'Pune capcane': '{"dex":1,"pit":1}', 'Îndemânare motrică': '{"dex":1,"fin":1}', 'Reparare': '{"dex":1,"rep":1}', 'Conducere': '{"cha":1,"lea":1}', 'Tactică': '{"cha":1,"tac":1}', 'Comerț': '{"cha":1,"tra":1}', 'Instinct pentru animale': '{"cha":1,"ani":1}', 'Aspect': '{"cha":1,"app":1}', 'Puncte de muncă pentru construire': '{"str":3,"con":3,"dex":1,"rep":1,"cha":1,"lea":1}', 'Experiență de la munci, dueluri și bătălii de fort (%)': '{"xp":1}', 'Bani de la munci și dueluri (%)': '{"money":1}', 'Increased Luck (%)': '{"luck":1}', 'Regenerare (%)': '{"regen":1}', 'Spor de noroc (%)': '{"drop":1}', 'Viteză (%)': '{"spd":1,"hspd":1,"mob":1,"rid":1}', 'Daună medie': '{"dmg_min":0.5,"dmg_max":0.5,"dmglvl":1}', 'Daună maximă': '{"dmg_max":1,"dmglvl":1}', 'Iteme upgradabile': '{"bool":true,"upg":1}', 'Nu poate fi upgradat': '{"bool":true,"upg":0}', 'Licitabil': '{"bool":true,"auc":1}', 'Nevandabil': '{"bool":true,"auc":0}' } }, 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 = '
' + data.name + '
' + data.type + '
';
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 += '
' + data.dmg_min + '-' + data.dmg_max + ' ' + westui.lang.damages + '
';
} if (data.text) { for (var i = 0; i < data.text.length; i++) {
html += '
' + data.text[i] + '
';
} 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 += '
' + data.textjob[i] + '
';
} html += '
'; } if (data.bonus) { for (var i = 0; i < data.bonus.length; i++) {
html += '
' + data.bonus[i] + '
';
} html += '
'; } if (data.jobs) {
html += '
for (var i = 0; i < data.jobs.length; i++) {html += '';
}html += '
<img src="' + westui.config.cdn + '/images/jobs/' + data.jobs[i][1] + '.png"/> | ' + data.jobs[i][0] + ' |
';
} if (data.craft) {
html += '
<img src="' + westui.config.cdn + '/images/crafting/profsymbol_' + data.craft.id + '_small.png"/> | ';
for (var i = 0; i < data.craft.req.length; i++) {html += ''; }html += ''; for (var i = 0; i < data.craft.req.length; i++) { html += ''; }html += '
|
';
}
html += '
if (data.hspd) { if (upgraded) { data.hspd += Math.round(Math.max(1, data.hspd * 0.1 * lvl)); }html += '
' + westui.lang.speed + ': +' + data.hspd + '%
';
}if (data.set) html += '
<a class="popup_set" href="/wiki/' + data.set + '">' + data.set + '</a>
';
if (data.sp) { html += '<img src="' + westui.config.img_buyprice + '"/>' + data.bp + ' <img src="' + westui.config.img_sellprice + '"/> ' + data.sp + 'html += '
'; } else { html += '' + westui.lang.unsalable + '
'; } if (data.lvl) html += westui.lang.level + ' ' + data.lvl + '
'; if (data.sex) { if (data.sex == 0) { html += '<img src="' + westui.config.img_male + '"/> '; } else { html += '<img src="' + westui.config.img_female + '"/> '; } } if (data.auc == 1) { html += '' + westui.lang.auction + '
'; } else { html += '' + westui.lang.not_auction + '
'; } if (data.upg == 0) { html += '' + westui.lang.not_upgrade + '
'; } else { html += '' + westui.lang.upgrade + '
'; }
[item=' + data.id + ']
';
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] += value + 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 = '
';
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').show(); function calcSortVal(el) { var data = JSON.parse($(el).attr('data-popup')); var char_lvl = $('#input_level input').val(); char_lvl = (char_lvl ? char_lvl : 150); var none = (Object.keys(param).indexOf('id') !== -1 || (param.bool && param.bool === true)); var val = 0; if (param.bool && param.bool === true) { val = 1; for (var prop in param) { if (prop !== "bool" && data[prop] !== param[prop]) { val = 0; } } } else { for (var prop in param) { if (prop === "id") { val -= data[prop]; } else if ((!data.lvl || data.lvl <= char_lvl)) { if (data[prop]) { if (data[prop] < 0) { val += Math.ceil(-data[prop] * char_lvl) * param[prop]; } else { val += data[prop] * param[prop]; } } } } } $(el).attr('data-sort', val); if (val == 0) { $(el).hide(); } if ($(el).find('.number').length !== 0) { if (none) { $(el).find('.number').html(); } else { $(el).find('.number').html(val); } } else if (!none) {$(el).append(' ' + val + ' ');} } $('#mw-content-text').find('.sorting_hidden').hide(); $('.sorting_container').each(function() { $(this).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($(this)); }) }, init: function() { if ($('div#sort_items').length === 1) {var html = " <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#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(); |