Popup.js

Από Wiki The-West GR
Jump to navigation

westui = {

   lang: {
       input_level: "Το επίπεδό σου",
       input_search: "Αναζήτηση: ID, Σετ ή Όνομα",
       damages: "Ζημιά",
       per_level: "ανά επίπεδο",
       speed: "Ταχύτητα",
       level: "Επίπεδο",
       unsalable: "Μη εμπορεύσιμο",
       auction: "Με δυνατότητα δημοπρασίας",
       not_auction: "Χωρίς δυνατότητα δημοπρασίας",
       not_upgrade: "Χωρίς δυνατότητα αναβάθμισης",
       upgrade: "Με δυνατότητα αναβάθμισης",
       total: "Σύνολο",
       popup: {
           dmg: {

dmglvl: '

'

           },
           skills: {

str: '

', mob: '

', dex: '

', cha: '

', con: '

', vig: '

', tou: '

', sta: '

', hea: '

', rid: '

', ref: '

', dod: '

', hid: '

', swi: '

', aim: '

', sho: '

', pit: '

', fin: '

', rep: '

', lea: '

', tac: '

', tra: '

', ani: '

', app: '

'

           },
           fb: {

fbdef: '

', fboff: '

', fbres: '

', fbdmgs: '

', fbdefs: '

', fboffs: '

'

           },
           special: {

pray: '

', labor_pts: '

', spd: '

', regen: '

', xp: '

', money: '

', luck: '

', drop: '

'

           }
       }
   },
   config: {
       enable_set_calc: !0,
       plain_popup: !0,
       redirect_on_dblclick: !1,
       link_on_dblclick: !1,
       enable_sorting: !0,
       cdn: "//westgr.innogamescdn.com",
       media_cdn: "https://media.innogamescdn.com/com_WEST_GR/wiki/event_offers",
       input_lvl: '$("#input_level input").val()',
       img_buyprice: "/images/5/57/Buy_price.png",
       img_sellprice: "/images/f/fc/Sell_price.png",
       img_male: "/images/e/ed/Ανδρικό.png",
       img_female: "/images/b/b5/Γυναικείο.png",
       img_prof: ['c/c0','c/c3','2/2d','9/9a','f/fc'],
       img_job: {
           all: ['d/d1', 'Οποιαδήποτε εργασία']
       },

cat_img: '

'), $("#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
       })
   },
   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 wl = westui.lang,
           wc = westui.config,

s = '

',

               p = !1;
               d = t.dmg && t.dmg.split( '-' );
               var l = 0;
           if (t.ico) {

s += '

";

               s += ""
           }
           if (t.typeW) {
               for (n = 0; n < t.typeW.length; n++);

s += '

";

               s += ""
           }
           if (t.type) {
               for (n = 0; n < t.type.length; n++);

s += '

";

               s += ""
           }

t.unique ? s += '


' : s += "
";

           if (a >= 1 && a <= 5 && (p = !0, t.auc = !1), t.text) {

for (var n = 0; n < t.text.length; n++) s += '

";

               s += ""
           }
           if ((t.text && t.unique) || (t.text && t.dmg_max) || (t.text && t.textjob) || (t.text && t.bonus) || (t.text && t.jobs) || (t.text && t.craft) || (t.text && wl.popup)) {
               s += "
" }

if (a >= 1 && a <= 5 && (p = !0, t.auc = !1), d && ( l = 1 ) && ( p && ( d[ 0 ] = d[ 0 ] * 1 + Math.round( Math.max( 1, .1 * d[ 0 ] * a ) ), d[ 1 ] = d[ 1 ] * 1 + Math.round( Math.max( 1, .1 * d[ 1 ] * a ) ) ), s += '

' )) {

               t.dmglvl ? s += "" : s += "
" } var yy = (d[ 0 ] + d[ 1 ]), uu = yy / 2, ii = Math.round(uu);
           console.log(d[0],d[1],t.dmglvl,yy,uu,ii);

if (a >= 1 && a <= 5 && (p = !0, t.auc = !1), t.dmg_min && t.dmg_max && (p && (t.dmg_min = t.dmg_min *1 + Math.round(Math.max(1, .1 * t.dmg_min * a)), t.dmg_max = t.dmg_max *1 + Math.round(Math.max(1, .1 * t.dmg_max * a))), s += '

")) {

               t.dmglvl ? s += "" : s += "
" } for (var o in wl.popup) { var l = 0; for (var c in wl.popup[o]) if (t.hasOwnProperty(c)) { l++; var u = ""; t[c] < 0 ? wc.input_lvl > 0 ? (t[c] = Math.ceil(wc.input_lvl * -t[c]), p && (t[c] += Math.round(Math.max(1, .1 * t[c] * a)))) : (t[c] = -t[c], u = " (" + wl.per_level + ")", p && (t[c] = Math.round(1e6 * (1 * t[c] + Math.round(Math.max(1, 1e3 * t[c] * a)) / 1e4)) / 1e6)) : p && (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 += wl.popup[o][c].replace("#1", t[c]).replace("#2", u) } l > 0 && (s += "
") } if (t.textjob) {

for (n = 0; n < t.textjob.length; n++) s += '

";

               s += "
" } if (t.bonus) {

s += '

'; for (n = 0; n < t.bonus.length; n++) s += '

";

               s += "
" } if (t.jobs) {

s += '

Από την εργασία:

';
               for (p in t.jobs){
                   if (p == 'req'){
s += ''; } else{ var ji = wc.jobIcon( p, t.jobs[ p ] ); s += '";
                   }
               }
s += "


"

           }
           if (t.craft) {

s += '

Χρειάζονται για την Δημιουργία:


"
           }


           var upgLvL = a,
               upgItems = Math.pow(3, upgLvL),
               upgFees = (Math.pow(3, Number(upgLvL) + Number(1)) - 3 - 2 * upgLvL) / 4,
               upgTotal = t.bp * (upgItems + upgFees),
               upgPrice = upgTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
return s += '
'
       },
       setPosition: function(t) {
           var e, i, a = $(window).width(),
               s = $(window).height(),
               p = westui.popup.getEl().outerWidth(),
               n = westui.popup.getEl().outerHeight(),
               o = t.clientX,
               l = t.clientY;
           i = o + p + 10 > a ? o - p - 10 + (t.pageX - t.clientX) : o + 10 + (t.pageX - t.clientX), e = l + n + 10 > s ? s - n + (t.pageY - t.clientY) : l + 10 + (t.pageY - t.clientY), westui.popup.getEl().css({
               top: e,
               left: i
           })
       },
       init: function() {
$("body").append(''), $(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: {}
               }, $(this).find(".item_container").each(function() {
                   var e = JSON.parse($(this).attr("data-popup"));
                   $(this).is(":hidden") ? westui.set_calc.itemStatus[t][e.id] = !1 : westui.set_calc.itemStatus[t][e.id] = 0;
                   for (var i in e) e.hasOwnProperty(i) && westui.config.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])
               })
           }), $(".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()
                       })
                   })
               })
           })
       },
       calc: function() {
           if (0 === $("#input_level").length | "" !== wc.input_lvl) {
               var t = parseInt(wc.input_lvl);
               total = {};
               for (var e in 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 : Math.round(Math.max(1, .1 * s * lvl)) : total[i] += s
                           } var p = 0;
                   for (var a in westui.set_calc.itemStatus[e]) !1 !== westui.set_calc.itemStatus[e][a] && p++;
                   for (var i in westui.set_calc.data[e].set[p]) total[i] || (total[i] = 0), westui.set_calc.data[e].set[p][i] < 0 ? total[i] += Math.ceil(-westui.set_calc.data[e].set[p][i] * t) : total[i] += westui.set_calc.data[e].set[p][i]
               }
var n = '
<tbody>

' + westui.lang.total + "
"; for (var i in westui.config.set_bonus) total.hasOwnProperty(i) && (n += '
<img src="' + westui.config.set_bonus[i].img + '">+' + total[i] + '
' + westui.config.set_bonus[i].name + "
"); for (var i in westui.set_calc.bonus.extra_set_bonus) total.hasOwnProperty(i) && (n += '
<img src="' + westui.set_calc.bonus.extra_set_bonus[i].img + '">+' + total[i] + (-1 !== ["xp", "money", "luck", "spd", "regen", "drop"].indexOf(i) ? "%" : "") + '
' + westui.set_calc.bonus.extra_set_bonus[i].name + "
");
               $("#set_calc").html(n)
           } 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('
'), 0 === $("#input_level").length && westui.set_calc.calc()
       }
   },
   sorting: {
       sortItems: function(e) {
           function t(t) {
               var a = JSON.parse($(t).attr("data-popup")),
                   i = wc.input_lvl;
               i = i || 150;
               var s = -1 !== Object.keys(e).indexOf("id") || e.bool && !0 === e.bool,
                   p = 0;
               if (e.bool && !0 === e.bool)
                   for (var n in p = 1, e) "bool" !== n && a[n] !== e[n] && (p = 0);
               else
                   for (var n in e) "id" === n ? p -= a[n] : (!a.lvl || a.lvl <= i) && a[n] && (a[n] < 0 ? p += Math.round(Math.round(-a[n] * i) * e[n]) : p += Math.round(Math.round(a[n]) * e[n]));
$(t).attr("data-sort", p), 0 == p && $(t).hide(), 0 !== $(t).find(".sortval").length ? s ? $(t).find(".sortval").html("") : $(t).find(".sortval").html(p) : s || $(t).append('
' + p + "
")
           }
           $(".item_container").removeAttr("data-sort").show(), $("#mw-content-text").find(".sorting_hidden").hide(), $(".sorting_container").each(function() {
               $(this).find(".item_container").sort(function(e, a) {
                   return $(e).attr("data-sort") || t(e), $(a).attr("data-sort") || t(a), $(a).attr("data-sort") - $(e).attr("data-sort")
               }).appendTo($(this))
           })
       },
       init: function() {
           if (1 === $("div#sort_items").length) {
var e = "", $("div#sort_items").html(e), $("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();