'));if(r)i.push({fort_id:n[0],x:n[1],y:n[2],name:r[1]})}if(i.length>0)w.setTimeout(function(){T()},Timer.getTimeout())});else Ajax.remoteCallMode("alliance","get_data",{alliance_id:w.Character.homeTown.alliance_id},function(e){if(e.error)return(new UserMessage(e.error)).show();i=e.data.forts;if(i.length>0)w.setTimeout(function(){T()},Timer.getTimeout())})};var T=function(){try{if(i.length<=0){return}var t=i.pop();var n=t.fort_id;if(!isDefined(s[n])){s[n]={time:0,stage:0}}e.extend(s[n],{id:n,x:t.x,y:t.y,name:t.name});if(s[n].stage!==5&&s[n].time+o*86400>(new Date).getTime()/1e3){r.push(s[n]);if(i.length>0){w.setTimeout(function(){T()},Timer.getTimeout())}else{Cache.save("barracks",s)}return}Ajax.remoteCallMode("fort_building_barracks","index",{fort_id:n},function(e){if(e.error){(new UserMessage(e.error)).show()}else{s[n].time=Number((new Date).getTime()/1e3).round(0);if(isDefined(e.barrackStage)){s[n].stage=e.barrackStage}}r.push(s[n]);if(i.length>0){w.setTimeout(function(){T()},Timer.getTimeout())}else{Cache.save("barracks",s)}})}catch(u){Error.report(u,"getFortData")}};return t}($);Debugger.Sleep=Sleep;var Analyser=function(e){var t={};var n=false;var r=null;var s=null;var o=false;var u=[];var a=[];var f=0;var l={};var c={};t.extra=false;var h={};var p=function(){if(h.ready){return}TWDB.Util.addCss(".messages-analyser-job .item img.tw_item { width: 30px; height: 27px; }"+".messages-analyser-job .item .count { bottom: -4px; }"+".messages-analyser-job .item span.usable { display: none; }"+"div.tw2gui_window .messages-analyser-job div.fancytable .row > div { display: none; vertical-align: top; }"+".messages-analyser-job.view-rewards div.fancytable .row > div.view-rewards { display: inline-block; }"+".messages-analyser-job.view-items div.fancytable .row > div.view-items { display: inline-block; }"+"div.tw2gui_window .messages-analyser-job div.fancytable div.trows div.tbody div.row { height: auto; }");var t=Cache.load("statistic");if(typeof t=="object"&&t!==null){r=t}else{d("all",true)}if(!r.ver){d("all",true)}switch(r.ver){case 1:d("job",true,1);d("duel",true,1);r.ver=2;case 2:d("job",true,1);d("duel",true,1);r.ver=3;case 3:d("chest",true,1);r.ver=4}s=e.extend(true,{},r);GameInject.addTabOnMessagesWindow("Analyzér práce","analyser-job",function(){T("job")});if(Settings.get("chestanalyser",true)){GameInject.ItemUse(v.add);GameInject.addTabOnMessagesWindow("Analyzátor truhel","analyser-chest",function(){v.show()})}h.ready=true};h=Loader.add("Analyser","tw-db Job-Analyser",p,{Cache:true,Settings:true,Jobs:true});t.restore=function(){r=e.extend(true,{},s)};t.debug=function(){console.log(r);console.log(c)};var d=function(t,n,i){if(n==true){if(!i){var i=0}else{var s=/\[report=([0-9]+)([A-Fa-f0-9]{10})\]/;var o=String(i).match(s);if(o){var i=o[1]}}if(isNaN(parseInt(i,10))){var u=0}else{var u=parseInt(i,10)-1}switch(t){case"job":r[t]={last:u,items:{last:0}};break;case"duel":r[t]={last:u};break;case"chest":r[t]={};break;case"all":r={ver:4};d("job",true,u+1);d("duel",true,u+1);d("chest",true,u+1);break}}else{var a=e('
Do you really want to reset the ReportAnalyser statistics?
Give Report-Link of first Report which should be read after Reset');var f=(new west.gui.Textfield("twdb_analyser_last")).setSize(40);f.setLabel("Report-Link:");a.append(f.getMainDiv());var l=new west.gui.Checkbox("or use all reports ");var c=new west.gui.Checkbox("or use only future reports");l.setCallback(function(e){if(e){c.setSelected(false);f.setValue("")}});c.setCallback(function(e){if(e){l.setSelected(false);f.setValue("")}});e(f.getMainDiv()).find("span").css("font-size","12px");e(f.getMainDiv()).find("input").keyup(function(){l.setSelected(false);c.setSelected(false)});a.append(e('
').append(l.getMainDiv()).append(c.getMainDiv()));var h=new west.gui.Dialog("ReportAnalyser - Vynulovat",a);h.addButton("ok",function(){if(l.isSelected()){d(t,true)}else if(c.isSelected()){d(t,true,r[t].last+1)}else{d(t,true,f.getValue())}h.hide();MessagesWindow.open("analyser-"+t)});h.addButton("cancel");h.show()}};var v=function(e){var t={};t.add=function(e,t){var n=false;for(i=0;i
').append(o.getMainDiv()));var u=0;var a=e('
');for(var f in s.items){u++;var o=(new tw2widget.Item(ItemManager.get(f),"item_inventory")).setCount(s.items[f]);o.getImgEl().addClass("item_inventory_img");a.append(o.getMainDiv())}n.appendContent('
').appendContent(a).appendContent('
')}MessagesWindow.window.hideLoader()};return t}(e);var m=function(e){if(o){return}o=true;u=[];g(e)};var g=function(e,t){if(!t){t=1}f=t;Ajax.remoteCall("reports","get_reports",{page:t,folder:e},function(t){y(e,t)})};var y=function(e,t){var n=true;if(typeof t.reports!=="object"){t.reports=[];n=false}if(typeof t.page=="undefined"||f!==t.page){t.reports=[];n=false}for(var i=0;i
0){l.bar.setValue(l.bar.getValue()+1);w(u.pop())}else{Cache.save("statistic",r);o=false;T(e,true)}};var w=function(t){e.post("game.php?window=reports&mode=show_report",{flash:null,hash:t.hash,report_id:t.id},function(e){E(t.type,e)},"json")};var E=function(e,t){if(!t||!t.report_id||!t.publishHash){(new UserMessage("empty Server Response",UserMessage.TYPE_ERROR)).show();return false}if(typeof t.page!=="string"||typeof t.title!=="string"||typeof t.js!=="string"){a.push(t.report_id)}else{switch(e){case"job":x(t);break;case"duel":S(t);break}r[e].last=t.report_id}window.setTimeout(function(){b(e)},Timer.getTimeout())};var S=function(e){};var x=function(n){try{data={id:null,hash:null,job:null,motivation:null,duration:null,wage:null,bond:null,experience:null,injury:0,killed:false,date_received:null,items:{}};data.id=n.report_id;data.hash=n.publishHash;var i=Jobs.getJobByName(n.title.slice(n.title.indexOf(":")+1));if(!i){a.push(data.id);return false}data.job=i.id;data.date_received=n.date_received;var s=e(n.page);s.find(".rp_row_jobdata").each(function(t){var n=e.trim(e(this).children("span:last-child").html());n=n.split(" ").join(" ");switch(t){case 0:data.motivation=parseInt(n.slice(0,n.indexOf(" ")),10);break;case 1:var r=parseFloat(n);data.duration=r==1?3600:r==10?600:r==15?15:null;if(!data.duration)Error.report({message:"Unrecognized time on report:"+n},"Job-Analyser");break;case 2:data.wage=parseInt(n.slice(n.indexOf(" ")+1),10);break;case 3:data.bond=parseInt(n,10);break;case 4:data.experience=parseInt(n.slice(0,n.indexOf(" ")),10);break}});s.find(".rp_hurtmessage_text").each(function(){var t=new RegExp("[0-9]+");data.injury=Number(t.exec(e(this).html()))});s.find(".rp_row_killmessage").each(function(){data.killed=true});var s=n.js.split(";");e(s).each(function(){var e=new RegExp(/\s*ItemManager\.get\(([0-9]+)\)\s*\)\.setCount\(([0-9]+)\)/m);var t=e.exec(this);if(t){data.items[Number(t[1])]=Number(t[2])}});if(!r.job[data.job]){r.job[data.job]={count:0,products:{}}}var o=r.job[data.job];o.count++;if(!o[data.motivation]){o[data.motivation]={count:0,duration:0,wage:0,bond:0,experience:0,injury:{},killed:0,items:{},extraitems:{}}}var u=o[data.motivation];if(!isDefined(u.duration)){u.duration=0}u.count++;u.duration+=data.duration;u.wage+=data.wage;u.bond+=data.bond;u.experience+=data.experience;if(!u.injury[data.injury]){u.injury[data.injury]=0}u.injury[data.injury]++;if(data.killed){u.killed++}for(var f in data.items){var l=Number(f);var c=138e3;if(l===c){if(!isDefined(r.extra)){r.extra={count:0};t.extra=true}r.extra.count++;r.extra[r.extra.count]=data}var h=data.items[l];var p=ItemManager.get(l);if(Jobs.isProduct(l)!==-1){if(!o.products[l]){o.products[l]={last:0}}var s=o.products[l];for(var d=0;do*1?n:-n}else{return s>o?n:-n}};l.rows.sort(r);for(var i=0;i'+''+''+''+''+''+'
'+'
'+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+'
'+'
'+''+""+"
"+"
"+"
"+'
"+'"+"
"+" ");t.find(".row_head > div").each(function(){var t=e(this).attr("class").match(/cell_(\d+|reset)/)[1],n=e(this).find("img");if(t=="reset"){e(this).click(function(){d("job")})}else{e(this).click(function(e){return function(){N(e)}}(t*1))}});t.find(".row_head").find("img").css("cursor","pointer");var n=0;var i={jobs:0,count:0,duration:0,experience:0,wage:0,bond:0,motivation:0,injury:0,killed:0,products:0,items:0,luck:0};var s=r.job;var o=e();l.rows=[];for(var u in s){var a=Jobs.getJobById(u);if(!a){continue}var f={count:0,duration:0,experience:0,wage:0,bond:0,motivation:0,injury:0,killed:0,products:0,items:0,luck:0,all_products:{},all_items:{}};var h=s[u];f.count=h.count;var p=0;for(var n=0;n