// ==UserScript==
// @name Spawn TrChO
// @namespace Spawn
// @icon https://images2.imgbox.com/e8/e9/CU2F5936_o.jpg
// @homepage https://greasyfork.org/en/scripts/408041-spawn-trcho
// @description KOC All In One Throne Room & Champion Hall
// @version 4.1.4
// @delay 2000
// @priority -10
// @include *.rycamelot.com/*main_src.php*
// @include *.beta.rycamelot.com/*main_src.php*
// @include *apps.facebook.com/kingdomsofcamelot/*
// @include *.rockyou.com/rya/*
// @include *koc-cdn.popreach.com*
// @resource jqcss http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css
// @resource champion_uniques https://koc-cdn.popreach.com/fb/e2/src/pb/resource/champion_uniques.js
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @require https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js
// @connect *
// @connect greasyfork.org
// @grant unsafeWindow
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_addStyle
// @grant GM_xmlhttpRequest
// @grant GM_log
// @grant GM_registerMenuCommand
// @grant GM_getResourceText
// @grant GM_getResourceURL
// @contributionURL https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=CB2MLZCP8FPE8
// @copyright Copyright 2013-2020 KSA CodeSphere - Non-commercial use only. No modifications permitted.
// @license http://creativecommons.org/licenses/by/4.0/
// ==/UserScript==
// *********************************************************************************************************
// * In Hounour Of Mark Branscombe(TCO)& Phil Cazz (MadMaxx) *
// * That Paved The Way For Organizers Like This Thanks Guys !!! *
// * "Parts of this script use code created by Mark Branscombe & used with his *
// * explicit permission. We thank you for your generosity Mark Branscombe" *
// * *
// * *
// *********************************************************************************************************
var STrChOVersion = '4.1.4';
GM_addStyle("._10.uiLayer._4-hy._3qw {display: none;}");
String.prototype.capitalizeFirstLetter = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
};
String.prototype.startsWith = function(starter) {
return this.substring(0,starter.length) == starter;
};
String.prototype.endsWith = function(ender) {
return this.substring(this.length-ender.length) == ender;
};
var ResetAll = false;
var DEBUG_TRACE = false;
var JSON;if(!JSON){JSON={};}(function(){"use strict";function f(n){return n<10?'0'+n:n;}if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z':null;};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}if(typeof rep==='function'){value=rep.call(holder,key,value);}switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null';}v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v;}if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==='string'){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v;}}if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' ';}}else if(typeof space==='string'){indent=space;}rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}return str('',{'':value});};}if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}return reviver.call(holder,key,value);}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);});}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}throw new SyntaxError('JSON.parse');};}}());
var JSON2 = JSON;
var uW = unsafeWindow;
var Seed = uW.seed;
var CM = uW.cm;
var ThroneTemplates = CM.FETemplates.Throne;
var ajfx = uW.g_ajaxparams;
var IMGURL = uW.stimgUrl + "img/";
var STrChORightArrow = IMGURL + "autoAttack/across_arrow.png";
var STrChODownArrow = IMGURL + "autoAttack/down_arrow.png";
var STrChOPlus = IMGURL + "throne/modal/set_buy.png"; //https://rycamelot1-a.akamaihd.net/fb/e2/src/img/throne/modal/set_buy.png
var STrChOBreakBuffer = 50000;
var Cities = {};
var Tabs = {};
var mainPop;
var dlgHeight = 600;
var dlgHeightOffset = 30;
var dlgWidth = 735;
var dlgWidthOffset = 12;
var dlgWidthMenu = 75;
var http = window.location.protocol+"\/\/";
var gameurl=http+"rycamelot1-a.akamaihd.net/fb/e2/src/";
var URL_CASTLE_BUTTON = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAXCAYAAADk3wSdAAAACXBIWXMAAAsSAAALEgHS3X78AAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAA+NJREFUeNqclc9uFEcQxn9d3TuzeG3DLiaIOAcT2wdjgeESKeIQ5ZIokXmPXCLlTSLllEeBByCEIBMrlyzkAFxZC7P2zt/+Uznseo0NkZKUNFOlUvXXX898VW2++uaeLvR6ZFkHKxZjDP/VVJWYIm3rKYsC9/G1a/zw/XdYew5QlaSzkGlgZm9jeG9zVSWlyI8//Yzb2Fin9R6J6UyhqqKq8xjOAhljPlAf2dhYx93Y2iLGSErKgwcPMMagquzu7s7yifv3788Bdnd3SSmdyZ/Up6Tc2NrCbW6u09QlqrC4uIiIAZRLl5aoqgrvPRcvLiEipJTo95epqooQAktLixhjiDGxtLRE01Rsbq7jrly5wsHoNQCDwQDnLKqRXq+HCHjvWFkZYK0lxtN8CIHLlweIOEIILCwsAMryxT6uKAoWFhYQEfr9PnneIaVAnneAnCyzrKxMNwshzvJdYowMBgOsdbStJ89zVCNFUeB+3/+Du59/hjGG5eVlut0MSOzv7xFjwFphMFjGuSmj/f0nhKBY26Hf72OMpWkasmy67vGTX3EPf3nEl1/cxRjhwoUL9Hrd2bEzYmzpdIQ8z+ag3W6O94q1GVmWE6MiIlhrca7Dw18e4YbDZ3N5iAhZluGcpdvNUPVYq2SZxVohhA6dTk6MBmM6GCN4H6nrBmMM1sJw+Az34uUrYowYo6SUAHDO4ZwDHNYmrAVjmDGClASwhKB4H+cSC0F58fIV7vDwDW3rMcYQQiDGBCjGCCJ21j1p5hVjLCKGlGbtGSMhBEIIeN9yePgGZ8VSliUiQtM01HVDltnZ4oRIQlVnJxFSOvEJ7yNN09I0DW3bUlU1VixudXWVsixQhaqq6HY7OAcpOUQUa6eA01Y0pGSIceqbJlCWBVVV0TQNZVmwurqK297eYjweI2IpioIsc4hAShnWKnDynI6UlIQQlKYJFEVBURTUdc1kMmF7ewt35/YOR0dHiFjK8hQ0xhYRUD0dGO8OkBihrj2TyRS0qiqOjyfcub2D27l1k7+e/4mIZTR6TdPUlGWPTse9w/C8TcHrumUyKRiPj3n79i2j0YidWzdxa9fX+O3xIwDG4zGqibZtEJH5yHsPcqZr7wNFUXJ8PKEsCyaTY9aur+G6eT7XZwhhJi/5V6AxRrwPM51Odd7Nc9zo4ICUprLxPlDXDarM5+SHhvQJaEqJtm3x3qM6bYDRwQFuOHyOs1NWG59e56OrV+n1FqeXiCrnyZ78K2PkTL4oS1KMDIfPcXt7T/nk2mVSShgRjo6OKMvilKHqWUGdu0ZOLISIiGFv7ynm62/v/dOn+19mDPw9AD29Ua4OIbBVAAAAAElFTkSuQmCC";
var URL_CASTLE_BUTTON_SELECT = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAXCAYAAADk3wSdAAAACXBIWXMAAAsSAAALEgHS3X78AAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABABJREFUeNqklT1vHGUQx3/Py+7e3tpOYmOBOSQc2S4cK3HSIKEUiIYAUj4GiAaJGiihBlFBPkC+AqGiIYl4cUA0XEKRpEmRWDn77nb39nn2eYbiLmc7QIEYaVajnZn/zOyO/qPeeueqdIuCNE0w2qCU4r+KiBBiwDlPVZbYl9fW+OjDDzDmOUARosxMpoaaPZXib8VFhBgDX3z1NXZzcwPnPTrEE4EigojMbTgJpJT6h/jA5uYG9tz2NiEEYhQ+uXZjHvT5+2/PwT699h3PWv3svStzwI+/+fZEPETObW9jt7Y2aCYVIs/GmyZnmT3W1dGYnU5y1Omx8Y0xGGPZ2trArq6usv/k8cnxFBRFPk84vdTFak0b4/z90fgKEPI8Rylh5YVVbFmWdLtdtNYopQHIMztLno7/6toy1mjaECmKzgxIkXdSJk0LKIqiACJlWWJ//e13Lr/+2rxy3kl4cXmRL69/z0I3o9tJONtbJrEG3wau3/iFsvaMK8dLK6d4PBhRTzx5ngORH279jL156zZvvnEZpTRKwZmlguXTC6yc6rJUZCwWKd08mYOWtWdUeobjhiRJ8CEyaQ5I0xSRwM1bt7H9/t15l9YaFrsdloqc04tdzix1WFpIKXJLmmgaF+lmgTRxGG1ogzCuGqyd7rjWin7/Lvb+g4eEEFBKyBJLllryLKHIUxa6GUtFSpEbkkSTpWB0SxSF95Fx5aY5iSWEAETuP3iIHQye4pyfV9JaYY0iMYrUKhKrSBNNYhWI4OzUZ/VUzSzHOQdEBoOnWKMNVVVN/z6AxGMaUBJREtEolIDiyC8SAUEBVVUBEaMNttfrUVUlIhBCxHtP0zica3BO4xw0JhBajW+FpmlpGkfjGpxr8M4TQmQ8HgORXq+H3dnZ5vDwEK0Nznvq2lHWNaNSk1pBgmdSW6zVtG2kblpGVctoXFNWE6pJg/Oe0WiESGBnZxt76eIuw+EQrQ114xnXNYcjTaIjsXWUnZQsNRilCCI0LlBOHINRw8GwZlzV1I1jNBoSY+DSxV3s7oXz/HnvD7Q2eO85GFZoCbhJzcGhJU8NidVYrWij4NtI7QLVpOWgdByMG7xvefToESDsXjiPXT+7zk8/3gYgxsioakACk4kmSzTZDFBriBHaKLg2MvFC2QTGk5YYhcFggDGa9bPr2E6WEWOckTGEKAyrFudnK2Vma6MgytTfBmhmwGFGj1MMoZNl2Cf7+8QYp9wpM2ARyiZSOYXVoNVUp0WhjTDDmst0+TVP9vex/f49rNGICFfPLyInzskR+59gfEBpzTH6BaXRCvr9e9i9vTu8srYy/wTP3x1E5oXUjLH/7Tgao9nbu4O68u7V55v5X6IU/DUA3uQnItzRr3oAAAAASUVORK5CYII=";
var success_image = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3AgNBDgX+Hd0CAAACkZJREFUWMOtl3uMHdV9x7+/c2buzJ373rvvtb3exYuNDfYaMIkgkNYCFIdScB+CVm4UIWiTIKs0FVSplAqaBiUWbYXSh1CcREkr2lRKrZgoJThYLQWMIY6pjV+7fqx37fU+7t7nPO48zvn1j12btYG0fzDSkWbmjH6f3/m9h/AxXjw+DhoZAY+PL39NH/U5jYx85ObHAadfoQBfUeLjtcAYALosUyzBFxczL4EZRFfujQ8VNLsb1PMoeHb3tVv0oYdhE/BvAhQDDAJIgBYVYGYiIkK+JA6ceF0MWKVwVfcKtaQQyf8HnABIAMayZQIwwWyASIINAdEWICawKcFSAjBYJVInWoh1a2/Y33jl4ef/+e9uOHb4xKltD+wI4baAJWFXH/F9+GXwZXhqCWyAWQIgEBgsEpBOIEIF2VJgAVCOEBNTYTAj+3IPf3f+G1/6p3/44UzhTPHJnV98tI25SwKA+oACy059GZwCsw0gDSANIhuABZIGQEtCOAFTBOKIKYohg4RYKO4e7mnmW3/2l6e+8Dt7/uLlX95Tu/eJF/Z+7zguXGDWimnJm8Zysy8LGhOADWaHOcqQsIts9g6w6ByE2bGCjOwACAYnURXaryCuXxJxZZJUWIMwYwwMrflP77++/Df//c2b3/nH9974HO94Ytcru0/i9GliZk2LQbho8Wt8LpfgaWbOEUd5ZEc3atF/H6ziraTP9qE97iCuSbACkwWkVkZk3+hqlT4l3LP/EWbY+uvJ3Y98/+1/7fP2qEOfLz385Ne/9tWjcKOIQTERxwAxAH0lDZfgYgnuAJwHRCdnNm/V5urHBU+sUtMvQM2OEderoMAHtAIMA7CyEB0DMIYegp/7dPup9x5RP9y/L2O/lr30lY2P/cnjO3e8jbZosbICYjMGQV2Bj4wsxQCDmFgSk8VAhoiLiRzcAhJfRvXF3uDk9+GPTeL0RIDDFxOMuYQIAj22wK19FawfrqARuPyNeJe958dH0HPeCf/8tkde+KM/3T6FWtVkYYIow0hyGiw16EohgqFndoOJiSBMgNJEXIyVU2pWjj6WSTd64+M/wuShi/y374Z0yFYIugF7kJAyJURi4hXXwrrAxOFjh+n4wTrK1RR23f+78lPXdwlEbo6p3SJDSmaficFQhcUEWqqaBhETWMgk4VQcJ7l0Pp8be+2lB4dvHrnZO/Yyzr0zx398XFG8iZHrIHQ6EqmUgZRhwmQLuayDt+bmMLm/jlQd+IM1a/me0aIRq/rO6dNnj3f3FWogmIZhCKYAlHQxrb7rSuk2AIJmLWfnG+lm0y/H/rmhjrL5W62Jw7ww1aRdk4rkbUCulIKdk7DTApZpwDIspMnGa+dmMfGzOrgFdIQONgyVCe1ZTtmZ4vmTr25Plz77Aqswk8vYrmkFIczqYvSPjCylIYHaYSLn5pvZpuuWUZ28rTige4TU+EUtxsJaRld/CrYjIC1C2rFgWyk4lMKrv5zG+L4auAlYvsTarR3Y17iAmysOFTMBEFa2jB058VLvYFeDhDZLliOWesWyGFAartc2kiSxDSnSbb+15uhpP7WfGfb6TbjRIJRzOQz2F9BdBCbrb6MR+jjwbgWn9tXANYB94IZPlJFeyXhvrIKTF4vYPNiDsNXq8uKplUFPfsK2zJRWaRLi6nZiRLGiSqVlhlFkmwIpt97q6x7Iov/wDJ79zpsIshoJAUoA/Wvy+Pz2h3DLiINnf/I8kspiQvV2OejfYqHuBWgjwuGLC9jQ3wnfi7NNv97ZFSe2F0RmSWmZEle3HyNRilpeIJJESdMUorHg5YbXFLD11k68qAowmDBzJsB8JcD8/zTx9SPfhkwDZrRYM2VMWPepAiinEDZiKJ1guhEgijQ8P6F6HGS11jIMI8la07X9TxhSIopiUlozEalarQ3PjRDGhDiMYQ8DN95fwvobOyAjgsWAEQCsAB0C/QNZdG1OwQ1DhGGMOFIQzGi3GW5ToR0xhCAthODF5nV18xOCiP0gUk3XB6QIqy1uNioe2LBQikw0FiKEMsLqbRnctKUMERKQAEgA8oCN9xXg6jZarQhtTyH2NQYyeXhujHo9VjDthmEYkWkaioj0td1XaGaO4kS5XhhL0wgi2JOXLjSRsIFNHR1waxG8Zgg3bGPwM2msHS2CPSDxgOs25iAGFKqVNrxqjHZdId2WuK5cRr3iYqGauFZH57QhRdswRGRIyR9QgDVzqZiNAPKI2LN6uo9NnmuGrZrHd16/Dk5LoDUfoTEfoO75WHWvhcG1GZhtQtctJiqVAM25GMGCQljTGM33omxnMDvR4LmWMX395pEJaRieachIpIwPWiDtWOjrKSaWlXJdL/Juv3v08PiMnpw6MUu92Sz/9rrNaC9oNC/FWLgQoFb3Ud4iMXCTjdCIUb8Ywp+NES5olBIHf3jHJ7k24+L8WI3D3hVv3H7r6mkhhJ9x7BBgDYCXj3oCkjiftZN83vFct+3eccvgVGH0hj0HDs4kp35xhn7/rl/nZx5+EiVagYUJH3NnfXjtCM4GRmM2RO18gGge+OR1n8a/PfU0ty62cPTAJE4E6bOPPr7tpTCIXCmFl8+lYyitL09dVyafp7+yHZlcGm0/RLXuk5WS4p5fWz/z04PnCxPvXVyfNOdpw8AK3n73Q3Td0B2oVpuYn51H24tRTHVj6033Y+dnv4DPdPXiyMuv0pv7jtHxKi9s27H1mw/8xuiR6kKrkcukXcs2I9bQRMAzz+29espl/nfUxqbkkRMXHGIurBnuzi9UWqueeXbvl8Tcpfs2rusRfUNl7h8eoKGNd6J71TqwFvCac7h44iDGDr2D6Ykanxmfo/GWWrj3wdufe+KLd/88jpNKorhRLmU9IoqZmUXvYx8cs9XMtyE683TwlXfNS7N1Z6CvlO3rKRTqzaDv6V0/2VE9PbVtZdHs6u3OUqlkIZNLIYk1Aj9GoxZiZs7HdM2PgnT25P0PfuK7Tz1+92uNZlCPE9Uo5h3fNI0YgLo8eS13wfsjWeMHmJmap5/tP2r5fphZv7Y/vWao2wFzx4t7Do2+9dbYXa1KY1RFcb9g7TBDxppjlrKWLWTHhq8feOOh7Vtev/Outefr861WnGg3n7N9y05F0Kw/DP6+C5Y23HN/j3/Zc1CMnZmxchk7fcumVamucs4xDMqFYVLw/Cg/N98qzle8YhTFZqHguEODXZU1w90LpYLTJEIrUdozDcN30qlQSpEwL0b+tab/yD+dd/Z+FT/6+SExuKJDpm3TZGbbsmTasc10PmunOss52dmRg22nWEqhACRac6SZQ9OQQS6TjiApgWbFzPqjwFea0fKH5//q97DlN7+GqXef0xk7pf0wSl5/ayy6MF1tt7zA15qtXNaW/b1FvXpllyrk0yqbsVQuk45LRScRpqGhtGKlmYhY9D72oWb/lRb48Q924oHPfWtxVuW9OPDTN1EqZumNg2N08vSMUEqLVSs6sGnDKu4qZzmfc/RAbxFSCmZmEBFfBv5fcAD4X6XxV1xnuaXKAAAAAElFTkSuQmCC";
var up_img ="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAaCAYAAACkVDyJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3AgRBjoxAQevPgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAEWUlEQVRIx+2Vb2iVZRTAf+d53/tv2929m3d3a9NN55AMFG0RKhUF9aEEoX0I0rCS0HS0UkEpMJAUSxti/sn6VH0QpI/Wl0CyIhkhzbJ/rsScOXX/t7vt/nvf5/ThbrNlxjKDgg6c5zwHnvf83nOew3ng3y7xTd9M9Vu+++dgZVu/ntxHVny7puHLDgEo3/b9tGOYm8py65nW7KAe6H/f2wZAKDjtb2VagI3tDO5dDEBsy1ePusYceTAQCx9ntDtvWDm0ff7xW5rhJGxze4P1dXdtIhx+bFVc68rdJCqvlG8/Ww0wY2fHrStp2abTRb6vr5VFgw0mXsS+tkGZnXA0UeIstSo7AETM3weWtpwCwPP956IRpymSLKUrrdqdsgyM5plf6RIJytMzdv64qfelBhK7zt08sLT5C4bfuIvSllNLAg6vxqpipEMh9RUZyihXBjxxjdX6hIuItCZ2nVvW++JcKnaf/+vA6LNtDB+8m+iGtkqsfhSbUYxUxjXrqQjg+Up/yuNCb17qywzJYgcfjib3nK/s2TKHRGvn9IHRdSdJHV5CfF1bkbUcjZeGorHbq7U/h8h4X6sqmZzSl/Lp6M7RONPVsogzM+9zINnaGendXDt9YOqtZQDkle3RkLkv0VinPeqKg045p1YZSVv6hj0uDuTkzmqHSNA0+aprq/d0SsXezumXtHjtyRWO+s11S+ulN1gkonbqAVVQxVplcMzSM+wzmvV1QaVjRHg977KoZ2MtFfsu3hhY8tRnBbvm81rx7L76hdWRnni5qur1f6SFDLHg+4XSXh7yJeKq1sUdF5Fjyf2/FPc8P4vkwUvXA4tXf8LIO/dS8uSnAdQeSlaXzs7NrVbPyB9OI51Y1KJWyXlKX8rj6rAnc2Ki0ZDUoBy97d2r0t1cQ/LQld9nqBPrnnA4sDzWOEfHgkFBb1Bz1UkYqqhV0lnL1SGf/jFfFle6qshyO2p3AHRvqKLq8JUCsPiJE4y+dz9Fq08843t2/bx75tIfLcHaPxm2EyXV394njKQtXYMeIxmPpTUuGV+bKw9fbipMbnMtXnjlx4sckQ8al8yq6byjHuspiCAKNptHszlsOo/N5NFMDm8oTa5rABNywTWI62BcB1xDKOSSLAswOxHQtBeQH4b0zKjVpr71lT8ZgKLHj5fHI+6rax+oqnnk4XpFIRwQwi6EXAgHDCF3QmXShh0IOxBxhIgz7ruCAcaylpGMlRcWFuu8EXdBIuW8/NCRgSLZf+xn4yMtCnv7UnnO5gK0pwTHCGIERFBrwSr443dmFc37+GMZTMBBnEKGGAOOQZyCLYk4LCoP037Skhs2DI7qKrezNysVsWDu9IWRSx+e7k97KmCkEMQx1/auAWOuBXcM4rpgDSCFl0IFUQEVUOgfhYvpLDrT4PXYIhzjuF39WT+Tt292dKXfTuctgYAD45lhxlVMwR9XnXi5dWrXCjKlycw424mAJMBT9flf/vPyKztX7pN6V2XmAAAAAElFTkSuQmCC";
var up_glow="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAaCAYAAACkVDyJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3AgRBwMPzyBVGAAABfBJREFUSMe1lNtvnMUZxn/PzPftrk9ZO7HBtkzWSYhjp9RxfABKoZQLKspNpV70phf9F/q3cNmL/gNVL1ArVJFW6YGqUEqECjQnh9QHkpBkE68Pa+96v3l6YWOSEipA6ivNjGakeZ553mfeVzwiXl5d5dzYGGFphVdjEWNW6rN9TPas4RjSrvAm0GOrhPxvoQuWPpbZuNCoFyuT334UNNmjDs+NjQHwaiCErNQFHgHPWLyImRCkkGs77VIBImbRGEktYGmy61Cz/s7b6ZnhEc7Xag9hh/8me2zjBgAvrC4Ts5gLHyF5CvQ0ZgZxkuDJpT+0Zo2nJCaAGcTT2KcRQ93lvPTs8IjO12rMXrv2vwlv940ytv4Jh7OYQxqwdRI0jz0DeiIrh0OLf2xWP/hFs7r8TqsacvokjcmaQZ7HPmno7y3l+fjFy1w4cYInr138IuEzly4dHM7thEx2H+io7LNJnpN0LGT03vpwJ7v9z1b48XOH+PSj3VC/3omIHqBG0qzts7LHReqdOdIbBy6+z+KJKX6wtPQ54eiVK7wzOQnAK6srQUWqGA0D08YLQqcQA1t3O3HxT1uMDVT8k5/2a6QSff3dtlqbKQJV8IRgHpjGjKTk7u9XBwXwZq3Gd68vogNZ713gpcP9qnZVysmMCM8Zv4x5XmK82KXy0W8b6txCQ0f76c0KhmKHCysdl49nOvVi2ba3gWXEW0LnbL0r+War3Wn9rlYzQHhh39TTzunrKmdJ9AufSPYc5gwwikJl9b2tsL3UUfdw1Te3ze2NxP2tXb41mmvtWsEnH3aIpVAGRmzO2J4DT2AGyqUsn75yWbz7D+Lya68x88FFxh6rxiyGvmCfsP2s4HnglIKqjdVWdun1BoO1w97u7tJuu6DdKiiaLYb6I+U8+tpiR9XhoK5DIZP3ykVBO0hrBG0ciqF9vLDj+M3LHO3pDWWpW/CEzRzoe8B0iBpsbRb5hV/W1T/YS350UJvbBSoKinZBa2OHQuLU4yWtt8TKUtLQsaBYUi5TtmXwlkwjxLi1U650wmjK1QVlwRBmCvtp8FMKGuq0XPrwV3X1lHNXp0a51wbtu26bnbapbxRcud1mbiyjO4nFvxekXXKkQeGnZBaA09hDvcHl8FisZFj9wJPAgtAZSSOYyrXzDXVu7TI0X9MdZ0T8UM06mc3tRH29w8r9NrOj0c0b6NbVJJuK9/0E5sETQH9wcp9NDZi1PWs8DvTeudTUzbcb1L5z3HdL3cjp4Q5hg01KZq2ZuLNesNUq9NTj0dffN837DpK60R42cBZUCwSGJaZtLwATkqo7jU688pu6xidHfKf/sGx/seF6TyEJimIvtTcbBV2ZVTsUuPiWKQpHSVXbJ23mbU8H7CmbBaTTko6kjvNLr99Vb97l9slRdYIe2fX92eSEk2l3TH2jw6frHY71i1JHvvq2ZJNJOgKcBhYCaF74DPZoLKty9Y162Lja8sCzx9UslcA8OuwDMmyczHYr8Wmj4F6zYHYkU/0TWPmXggIVpFHEmbDnG+NZJfYs/7kRlv+65smXTupeXy8pgfgywv2U+kE/YXM7cWOtw+ZOh+fGMi9fhburUgjuAdWCpAkFVe9/3Iwfv3lX8wtj3BgexMWXSXsgEgfq9vw0nSLR2ErcWi+QC80N5L59Jaq5oSC7GgyDu5tFfuP39/Wzs0N+9YfHhaGSi0oG5QwqeaCcfTZ0sFYiVCJ0RdEV9/eZCECzldjcSfx8ukdHl3KvvZ/JSXkmOz+2IV6ZGuL2xi7v/WWJbCOgoL0ql8CJmEws0oGSEonU30XII8oCxAgxQAxof6y1Ar++vEO9ntS6mHOv28qAnQ6Of7u1mZ2/3FBhmSARhEJAUQcgKEAUIdsHHihB2H9cDBAEQXt3gtgOcG69ZU9J7SOBvuikH91YXQaGbEr7jevhf6KHlq8Z+vxLG1u0MqNN4V5JhbHM/6i7rx0P3JIt1MokLwL3wNmePH8zMV+J3Z3M0huYbsT/i+hBypTJPidClr553r6ynQL/B2jU9jxyr6MUAAAAAElFTkSuQmCC";
var down_img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAaCAYAAACkVDyJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3AgRBwUywRK+jwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAEi0lEQVRIx+1WXWwUVRT+zrl3drfbdne73e2Wv1WQYDQxwd9UjIiJ0ScfJDEENGp8ofwIgcpviGI0Gk2AaFIEYvwBwyMPRsJTI1FDkYithRCUtkChS7vd0t1u9292Zo4P0xYLrVQTEk38kpk7dyZzvnO+79yZC/yP/zropV0dCFcb1Hohqzp6czAMBSgGMYM0A0wgViBNADNIsftc3bgG0/icePSeIrBSECawwXDyBGuAbD0z7FXRoGflYM7afiFZKFgCwBGAxB0BgBxAGBABREDj6f45dYLcVM1YGLsAWCn4MURbdTziFRvkeXR+YNa8WAV+Mw20ZQmKCcTkBnIc923bgThuIlK2YeeLYFaj1bkKQAlICaAIVRXAwrAXbSccmMOMdE5sAgD/8pZwwO85vPzx6HOxJffKvksgD4+mKYCYNpyiCadQhlM0IcUyrEwe5d7rYK8GaTV6MGAokFLw+xXitQaaHgrL7mNFumI7h+KzVeO4KL4V3y1URN8+3DBnVs/98+BYAhC5ypbKkNIYYRlSNGFlCjATQ2CvBjSDtAJrBWiG16tRV2Pg7oghBcug8xk5k3Nk6eCqWCcDQOXLx1E8/HS7KOw8dfKKObMvBVIkt205dr2jMfmZoBUjWMmoDygRUvTTQDlTEnvn4KpYZ/3+JBgAcl8vQeUrx5E/uOQzpfnT33/sQjg7AmZgSlbCqMcuKYjADFRVMGaGNKp8Gq29FnyKmvsbZxxx7XHAEyK4503FYvlo5vRF8pumTOhETOxKEI83FjGhwsuIBRXCfiVt/RYR5ChX8g4AqNvbh77G+huEuYNPoeq1HzDy1eIyiFcnE8OXPF0J0o7IFAWOVueSejShtlojFtByMSOULUkvCMuuvRqTuuZeJFfXj7swjpEvn3THz5/oEc3ruzsShWj6OhHR1JIyoBShtlphRlBJwSK6nLYtiDyffGN2LvrxFSTXzJpg+6TIHVj0jU2q+XJrt0TMvAjxJJISmAkhPyMaUKj0KjrTbzsieNOw0B7d04OB9XNu6bNbUL3yBADAILydLTnfp05fpihZYt9kKDGhqoJRG9CYU+ORXxI2CqZzRBEdSGyKy8CG+KSNfQuy+xehuvEk0vsb8sxYlh4uZTPnExT2QMYcJSL4PK6UC+o8OH3VoqGCfdVQWJtsihciu3qmXEmTIruvAYE1p5Dd29APpmczgzlIf5q8mkQAaEUIV2vcFTGke8hBMmdDAcuSm+b2Rz+6iFRT/O8RAsBw82MIrPsZw588crJsY2umL4OKUokUQYI+Qn2NFsth6k5ZEJGm1LZ7TkQ+6MLA5rn4i+U7PdRsbPeXHedQOORbGp0dRKW2EVWWtF+zaTAvX6R3Lng98n4nUtvn3/bjNC0M7V6YV4q2DGXNTiedx/qGkFxK2ZQasVuZZAcAiDi3/wFPhyy0oQ3pPQ8CAIKbf31BMx9+xgj6WpBLlhkrMu/c13JHtgc1WzrcBLac2cWLz+bD2869BQDh97qmHYP/CXH6wweavCFaG35RvwsAKJl3bhMU2nh24nzduX/3ru0PInfZcM1Vy/MAAAAASUVORK5CYII=";
var down_glow = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAaCAYAAACkVDyJAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3AgRBwUJcBlXqwAABehJREFUSMe1lklvXNcRhb9z3+uBzeasgZpFkaIkRxEUO7EUOIktwPZCSOBFkI13+QX5K/kFAbLIJousjSSADASWE5OiLEbWQJkSW2JIiaRMtjh193vvnixI04jhYRGogAIuChf31KlTVbh6b3F+VIQ0CjAvzwQyTi29Y7sGCPFSzRBT2VeBQUz6VS4vC488tTUmPAwqG8svD89C7VS4DnTZLoOkrzPU/0Nbe2BYtggp0Dv8LKYvPlkP1+43KSwTJIJQCCgRJAElARQgESENEHZjIaCwc4cgCPrfeJBdBHWWgk7+qCinQDVFyU+H64x2V3w/S3VzPZAEgXbcjhANRcTREI2znPiiTSglKA2QJDugSUCJUWLqXXCxv6Kp65H2UqB0IYbUUvaoJ5b/fneZq0N1XrsyysQchPCV1O4UxFaHuJ0RWx3cysibW2Rr24RKitJk1wOUEpQk1GoJ/RXx6zNVGvdbfnEp0+CFwqlgpVRPyoffHij98Q8LOt8qmVdOqZUZJGSIWcR5JOaRmBvnkTw3nQJCAchIJmjnXEmgVgnUq4HfT2/68YmokxdzKzgLtmcc3Rw4VStOvbvPkxPzHH66sqPd91lgJ6mgL/UiTQJ93YHh3gQr8Y3VTAfGC9d6HC01g6QpwVzeKjaP/6IvHn+jX/euPfDg+gYhfMfyETsgYk/rEKDeFTjcn1Kvplyfz3X8NOw7aseoTXAjgCeNbiEtFG23Tl8dij2nK1r950PXOp1vnwcJtNuJuyy7KoGDfQmDtYSpxdxDR+DYK46OtLAXMLcC0l2JCew7tp+HVNnZ9/Z5I9tW+cGC0+hvnzCxB1pOxVBPysHelEdrppNapy/bErnt58AdYCIQeWozLWkCmLHdrPalxfivhjx3b1H7176wpG8vaYAkEUM9CYf6ErZzufEicu5nIklU2G5KeiAxKWk6KGhdogFM7eipOWBj/9maD13uo/HxQ+3rbGGFbyipCEH01wL7exO6K4lvPys0clHUBhRtb+Gdt4Gb4EZYKlo58hrwOTBhfMv2IqI1eqXP6XCJ5cmG9yun+PrWC6LeFRjqTTk2UGZqoVDtMB4+HSzREixK3AImQTPAWlgImbehbVhG3EX6BHTb0ctpRZ3zvxnyZjtT8+4Cg2WwvyQoquWdUo4fKHNjPmcrmLHXE0KJDHvF6LbFBHAHaXkjqh3mDp1haXk9ZtHbSAtB/Bs8AczEwmuVepJfeH+A1aUN/GzNlVQYSBMx2JNyYl+Jh19EL20WnHszdaVbBdFNwwMFbkhhmqD/FHm2VVpdi8nPZ2f55Ow45fd/68HersJSRzubsyoYwPRW+0plpWjl7qbq9bIzo77UHOo2SZLy2bNcx18v++B4GmPuTcOs4DrWdZn7QLOxuVV8tLFJ+o/RUQDuKOPgdjvv66quRTQbRL/xIKYHx/LR17qrzcVcW0+bOnS8n3oaGEhKTD3J3D+a6sj5lKIT2+zqJnTD1gzyaruTZ9PjZ/zlcuLwzAy89irXRk65lRedgJeBO0ITwGdGy0lZ+dhbddqliNe2/LvL/TxaKpz3Syd/XDKmI1gR3BaawP6MEFeC3f7gxAkDvPHo8x3AhfFxLt27B8AHR49FJ6El/BSYFpowvo9Z7d6XFmNvdjO/2tKf/7TmxVahkZ+UXamHAmiCZgyTwDRiMQRtfdhcMcC7jQYfjYyxN1z/Ont2r91vVGNuaR382NLNYN2w/SjmbAyfr+YHLlTiX66/4OAPSnFoJC0wm0CD4ClJNy3NmbDx6fONYvXcRcZm7/LXEycA9j5Oe3ZgfYH5nsOMzD/OBpN0VfID7F6kAezuvO0jY2/VVCHV0UtlxwxsLyA+lTWJ9ECwtt7JsrlzZ3h1dpap3T753q/KL588CaGU1ISP2b4MXMGMS4qhxHbMqNok4M+BDxXCx5jGVifb+ujpYrw0fIhru8y+E/Cd+Xn+dvQoofGEq0mRJGm5x/aI7FcNI0iZ8AbQbauMPCc0ZemhzPpU83nx5OwPv5HEfwESfwMmXNBW3wAAAABJRU5ErkJggg==";
var gbtn_img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZEsRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTsAIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQdli7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtFehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGXwzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNFhImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH554SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJVgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyCqbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiEj6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhGfDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFpB+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJyeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJCYVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQlnyfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48vvacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0CvpvfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15LWytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AAbWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0zllmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHWztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5sxybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPwYyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmRXVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNmWS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wlxqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33zaEb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2vTqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqbPhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h/HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavrXTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxSfNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wIEQMpM4gtTWsAAAd9SURBVFjDnZddbBzVFcd/987Mzn7Mrje7trNxHD5CI0ETRMqOqVpDBRJp+xIeKKKoERIIISRK6AO8IpEHVImHClEJtUE8IKoS9QGRlgKlrRSRFBppEAKcREhAPhw7NsHr9X7N7Hzs7cPO1JMlhrQr/XV1Z+45//85e+aeewVX+HMcRwNuNU3zzkwmU9c0bbsQoiqE0JRS7SiKzgdB8Innee8qpd6ybXv1SvyKKyAuG4axv1AoPJLP57cahoEQG5tFUUSv1/Nd132t1+s9a9v2h/+XAMdxhKZpDxeLxV8Xi8WKlBKlIAwDTp8+zfz8PGtrLQAsq0CtVuPaa6/FsiyEECilcF1XtVqtV/r9/hO2bX91xQIcxxkzTfOVcrm8N5PJMBgMOHnyFIfffJ13PniHZX+ZMBtSKBaQUuJ5HnhQlVVmb5hl7x17mZmZwTRNBoMBrVbrQqfTubderx/7VgGO49Sy2ezfy+XyLikl58+f57cv/pY3TryBMZXhezt3s3VqK0bOwI1cBgwwpYmMJM1Gk7lP51g6s8Ts1CyP/vxRbrrpJoQQdLvdfqvV+kW9Xn9tQwFx5MfGxsq7hIAjR47w9ItPs1xaZvsN1zGwIs54Z+iIDmQAPTYcAAHogc7WzDTjjHPh9CLyouTxnzzOz+66B9PM0O32gk6nfVe9Xn/7awIcxxG6rh8eGxvbK4Tg8F8Oc+DVA3hTHuYWk1VzFUpAAcgBxtcF0Ad6QBty3RxmK0u0GPLY7GM8eN+DmKZJp9NZc123btv256RcIIR4OJfL7VVKceTIEQ68eoDVyVUYh95YDzYxFJAHsrEALQ4hEeDHAgrgrrm4wkX6kuf/9Twlq8Q9e+8hm82O+b7/suM4P7Jte6Aln5qu6382zWxufn6eJ3/zJIvVRdgCTAITQJWhiLFYSDHORj7OSBYwY2GJOAlKKIIw4MSnJ7h5y81MTm5GSnFVEASfHzx48GMJoJTabxhGJQh8fv/y7/gi+wWMs45KjE0xyt+ASgrV2H4ClowlXvrbSzSbTaSUCCGechxHao7jaEKIP+i6Xjp58iTP/fU53JoLtZHI01HnUlFnUvWgr0eOTNVHBIRwbv4cM1tm2LJ5CqVUVSn1bwncqpTaGgQBb//zbZpWcz3NCakVI0l5PpX63MizfGp9MeWnBL7l8+YHb9LrdeNNLbxXj6LoToBer8fRk0dR42pjsmwq6iTSpAj11Jw4ah9wY1+xKOe8Q7PZpFKpoJTaI8MwrEdRxNmzZ7kYXlwnShOaMWkmlXIjlfpkTL/PpOyz69k61znHSnOFIAgYDAbTMoqi7UEQsLCwgKu7lycxRqo7/T8n0FJI14RxqSiVUcxfnMf3fYIgQA/DsNrv+7TbbUI9XDccLajLkab30dF12gj09XHNXcPzPJRS6FEUaZ7nEkURCvX1TiFGiMQGLU2l3onLIGU7UANc10VKiYwPE2QyGXSlDwtqI6jUmICRubqMXXTpPG/mhwErhQTOh2FIsVikQGG4paYRjiDtUI2QJGuiy9gF69v1ZGmSMAwRQiB1Xf8kDEPK5TIVWQGPIfrxZ5Qg5eASx1GKMBHsp5pTP+XPg03GJiqFCmEYomlaV1qW9a5SCk3TuHHqRujEDSUNL4VRUaPzZJ0bI/HRHeKWq26h3+8TRRG6rr8npZRv5fN5PwxDdn9nN2P+GLSGLZU2Q0Gd2EHaaUKSHnsjhJ0UWkPccf0d+L7PYDCgVCq9Lm3bXrUs67UwDJmcnGSmOgNNhlhLIS2omxq7I/NOvC4mZI3/+qtP1KkVa4RhiGVZvUwmc0gCVKvVZ3O5nBoMBtx+4+1MB9PwFbACNIDVGImw1gZI3ifrGzFWwFwzuf8H99PtdomiiGq1etC27YYEsG37w1qt9koURRSLRe7edTdW04IvgYsMxSSCVlLCLofkfWKzPMQjP3wEPdQJw5BqtdoolUrPkGqaVCqVJzZv3nwhiiKu3nI1+767j8JKAW1Zg6V1R3zJurAEybPlFJZALknEBcEDux/g+ur1+L6PaZpMT0/vT47pl+xrx48fv3Vubu4fKysrplKKC40LHDpxiFahhTFh0M60GRQG33wm7ELOy5HpZAiWAx76/kPsKO/A8zwMw2DXrl0v7Nmz55cbbqzHjh27e25u7lCj0TAAwijk6OmjHL94nMnpSaxxi67o0lEdfOUzQGEInbzIU5QlonbE8vwS1+Su4T77PpSrCMMwIf/TxMTEPtu2w2+8mLz//vs/PXXq1KGFhYWx+MBKKEI+WvyIj7/8GF8PGB8fp1goIqXA9Twaqyu4bZedm3cyu32Wklai3W4DUCgU2Llz5wvVavVXafJvu5pdd+bMmZc/++yzWc/zhg1PSnK5HEIXNNwGvaAHArJGlkq+gmVYrK2t0e/3k5M227Zta+zYsWP/bbfd9sf/+XLqOI70PG/f2bNnn1pYWNjR6/Wu6CataRq1Wq23bdu2g+Pj489sdC+8ottxIkQp9ePFxcV7m83mnl6vN93tdvF9f9jTdZ1cLodlWd1CofDe1NTU67lc7pBt241v8/0fLROqDglVp4YAAAAASUVORK5CYII=";
var remove_img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAABo6AAAaOgG4MgkwAAAAB3RJTUUH3AgSBikNXTI9xQAABK5JREFUaN7t2F2IXHcZx/HPMzM7m81usktC1JJELSSNWEEvOilSbNGLBuldfaFe9KZUrBdKLwIKCiJK9UpBqGClvQoFi60v6I2geOGF3dHYqqmGtKWGqmvK7izZNd3dmTmPF+fM7pZEyE52t6XMDw7nzGH+L9/ze57/GyONNNJII4000khvX7WHKDO7je3HdsLMlhU2kzuT+4I7cDMauJScxc9qPI1Oi3xLgLTRwlmix7HkU8GXY8y+xiRjB6hNlY0UK3QX6C2Xz8mTwWNBu8WVWZx8M0AGDbcZTx4oeLgx7pbpD7H/I3LiVpqHRH0vkfT/S/c1ufoSy7Ni8SyvL1gKztT4bosLNwITNwIxy2TwaMF9kzcZP/IFOdmisU+ooSv1hD76UiH0KJblystcekbMtWWD55OHTvLssDBxA2E1jh8U3D99WBz/HrWZsqNZyOgJBXpUILJPbNwzCzH/tLzwK8Z4AZ9ulffdAaly4vPJd6bfqXnihyIDqzL6pQPZIwYgxdUw68B7xMJP5Yu/FXiqxudaLA7y73rVGCa5exwveHhqxvjxr8pcwirRF4OOvgFikyvxRqDIvjxwmzj8H/75N59InsGPdtyRWSRfqdd889j9cvqkyF7pRG7qqGKTE90NkM3X5v+vdeSLvxbLS87X+ECrxN8ZRyryJr40fZTJI1gkeiJ75eikVpJaxEoF06xa6mOtcqhXxqeiBBqriYOH5ZXzTkin8MsdBUnujJp9+98jG12RndKN6Fedfx4vlaG2Pt1F1dIkprCngovKlRVcZmqxnE1XOL0bIJ8ZazCxH0tEV+Qq8fc6f66zltSvLqSLDhY2vUNkd/CYE0STXOWurfZrmNC6Y2ycZgqL0oqIPzX4+EN8+166a9dXUb3OxYucPi06HYiojMohcncYR95bq1FfQV/4IzrB+27hYx/dWmXnztFsrhsUZKMC2g1HGlEQS/gXXsPYpljZiorimqPoroDgUtF1U//f1OcGHxKXLzM3x9oWQmt+/iqYPjlMaA0zj/xivOaeYw25d60ccSOCo0c5dOhaX/n/tBwl9Pnzsttd78wFskPcvsW+DZMjP+8W7llZY2/VeGaKixfL5B1euUKsloj/2Grh2hAFflxguVyFZG7P7ixjUlyZkqvl70d3HASd5MnBxB1Vlg+z1ctBPL1b9G6TnaYo6AWP7yhItWjM4LHXWbpUrkoiy3dbgknV7PdhGXez1KezQPJIi4X2ToK0NkaIdnBmjpwvIdZhrted2Et+UsbdoluTr/xOFDwXPLGrW902x/FUlw+ewIGqrkHOXCt31gFvlh4Q8S66L8tz3xKrLNT5bKtcxu+OZjfut7f567Pkq+UaqagGgCwoqnt57ZHFMVk8qMifyO4ZxcKDirM1+Xvm23zxTTlF2XT48P6Cr+HeKRoHySlMTIraQRyWjgi3lgdDK3Wu/EF2fiM6f6FIz9X4xsCJre4Mt+U4aBPMTHIq+XqNE000J2RzhsY7hJlyxu4tsfqqWO1QdPWSR4InTlbzxrAQ235A1y4n2FMFp4O7sloADnKmypFXgu8Hj7c2FvVvnePS2SEdbRtppJFGGmmkkUZ62+p/v5QIkkqA6+0AAAAASUVORK5CYII=";
var remove_glow = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAABo6AAAaOgG4MgkwAAAAB3RJTUUH3AgSBioED8PWogAAElBJREFUaN6lmsuvbdl51X/jm3Ot/Tjn3Lq3Xn5QcdmSBZGCQhqmQSMOAYSUEBEgFo8GIpFA4g9IxxItKxLQoUGDSETQiwwNpPQSaKTc4KFYMgiwQ6TEclSSTbmqbt1b995zzt5rzfkNGnOdW9d5SBQsaWvvs7R19hzze40x5lJ+E/EdxIz0Orp56X6026P2Tx0Tq57slpKqZUKlqpdMaqcUp0tV1qgK96juFOHIcCkZshwWkgVAJiCQSCVGaULNqLsprdbC9KB2UO9k044ueve59ay1S3M6lJpufeRJCpJP4adXuPIdpBm1V6TrfhHl0TEuIhX1FOfeSyhqgRKpapca9AquiaqtSqeQTLaL5QIKSwUjmbCMAAKEHCgTDCS4Y5pEN2pI3Xi13WwXVrqDlqW0rtBFWfu0r2I6dK4z3EN+55RXLFmZUX9Fuq5X8fR8GfW8hmqPOlOWUC1LTMIF9aqISdJUUU0zpTVlj0lklVwtFaEiXIxlCBkZQFiywSaUhh6mA82ihWiG1bja2UxZyb6GUZQaciizR1vXlkvA9WWW/T5jvQ7eeezK6+hZv4in58uYjmvUeYmWtZp5Kmol1j710JTSVGjTpDKlNRvPCs+ZnpCr0SRUZRfbYbmgEEhOhHFiC6dEl5U2DdxsGvIisUIsklYHxURpSSFZa+9qc6yLTe+rMumXJygXF2nXqLx0P/ToGPU8QFT3GqJGuIpeA812zAm7bs1ePQvvJGYFU8hzOmZBFZ6MCxFFOGxHGkWMkKRxoixWN25CTVLLkmv2WEFLhM/qZTGuFmdQ2BHdqdK6SpeSSXGxEhU/66J9WKnL9VFHpUrt0XKqIabqqJFMBHOGdqR21Z6N9sg78A6xs7WTPGHmRHOIiijY1RA4YiQVDCgYOxNaSJ0tnUCL0Cq8YCaTZ1uTrSIoUpYklYkEzAER1evSfTqd0HqksjpKnKLOFFOniKjumrJrJ8dYPOxC3hvvLfbgPWhntJc9I3bCE9IkUZyuoAKEAI96N8KCBBrQDc14CWsBLzKL8WQxgc4yBVxMRoSVKkJQZMoarCvsbIiz67xfdc5ellW10Esoa4c5Hbvo2iH2KhyM9rYPlg6CPfYes0caINAOPAHVqCJCWEKyLYSRLZSgjt0QTdJie5V8RjqBJplJuCgUNsqUooiQEHKS7j2ZavV+7nk6r1GfrMtosZ6m6DFJOYfYtdCum/1U4wAc0hxNOQoOgh3iCOwT70PMhhkPICgKcsEEstDAYZOItN1BTdBsr7YX4CSYkCbbI0WhICJi1Jmx0p1myKg40otXryWp6VpKUkSWHkw4ZmAu4R3oAD7YPmIuBEeZg+EAHA172XujGTEbTSQ1lMVWjEL1KA2wRnAS3C2nzSJYJS3ANKLhCbYaSwshSTif11naJCXTPZKcskbPOqESVkW9ptpkYlfMLmBvsbc5Go62LySOiCPmaOsA7EF7wwyaxmI8easPjIxDwChTpfBYiNwQM7CKWEZauppRF5h4zgWQbTtEStERiZ0FdSI61aVW9WKXimIK9SmzzxZ7E3tbhwgdsC8QR6MLjUgckQ+2Dkiz8Iw9b7taNFE0I02IKBKj4t3lPGMWEpPgFVgsKqaCK1CMijSanMC2LcmMiZSyUqnu0puKe7d6zWTQDmmKjNn2DN5Z3ps8JDHqQhyFjxCXkvc2hwgOozaYjSc6k1fmZ28t9x7/+/OD299ux/auZzoq92i7z5fT1RfnD1/6qd2j6UGcCVXjGjAZJo26kFAgY2MGRXDKKamTak530Vvi3nt0HKkn//WVHyp4X6x9oiP4AvnC9hXiUnBh6wp0Zbb0MkfQwXgX8s6d3enbefn418+vfPDV0+teiHoJ82sQVyAgb2F9H9bHo+/e+/H6+OUv7d47/tj0tLwUJzpn8Bk4GW4F18ANcC301OaZ5WfAU5lnFtckN4luKdxU42KrGibbswozsMfajfaaR9DR5oA42D4IDpiDKnO/9uHhV8+fePhvzq/nB7m7/wW490V8+BE0vwblCDL0a1jfg/O34dnX4dFvtftv/5d276W/ND969RcO7xx/tD7Oa4cHbrzNHUQnWUGN9IpYHFptrSGvdaRnqWEXm9rMBJ5lZm3DDvuumMcQNAdCB5udqub+uF989yvXn3361vrg+Dp645fg4s/ieoUIYL0bfVAOML8BF5+E+38GXv2L+N1/R3z/N5ZXTv+rHT/15Yu3r35ifthv7uqCFINUItZBaVgMy9btJoWr7CJHraZW5ApMgaewZ9uT8Cxply8AGoXNjNjltQ/f/cr1Z5+8tT546dPo8/8cl/uIhvwI1Hhhho+XO2h7HV9Fb/4DfPky+r3/kPvv/dKzN3/o6qof/vT0iO4ZaNhN1oq0olwczKQm2bPkmdSUVkWqNXAlXSUqyopi0miLO6Mp8DYjmMEzZibZPfzq7SeevrU+eOl19Kd+GawNwLZQN9AdkBxA9AKY7b5e/WmIBf3u17z//r+4+fQbX7k6l/uRiFlSA0YDsub4aF0noaLIYlNt1xqRMQieq9A0SBvbTGBneQbNg6Z7tjydvp2XD//t+fXjFfr8P8J+yuCpL+76iyBeiIr+QHTc4eUv4DfeQd/9T+2lJ795fvnBX98vSH0kp2ebGWkmGS1eTCnmUExh14SotiNFBdVNT0zGk7SB+UFgEzB9+OvnV/K93L3x96AE8vt/YLf7BmCLBOtHQF4E9ML39doP4w/fRu/9q9tP3v+Z3cOY1cZwpUqabCZro0CogouggCJEqdldLG0EzUW4SBRJZQwoVVJ17ISKF+YPvnp6/f5n4OINzGOktqWSh6TFwGPgtIGZx8/TgWWLUPuojtxhCvTKZ+Dt3/HuydfWB/f/yv7kRsVMtmsExXa1VSRX2SFULEqCalHIRAQuDocdRXZ1+o7FlhDFUFQpz7623PNC3PssrusP1gWPgf8OfBs4b4A2gkQFLoDLQWyYN4HSQSfgCVw+Hrff/9XT6w9+bv+un3kjjmNThzZxRSqZGqMDR6KoKEK2bMt4KLthFRREIBejsInYKT78jeVBDTjcQzwFrWOM6XcK/I8yGmThBy9v6fUI+OCFe4C8Psd7AHbAk2+2Y0xW4rEOO4yLrEDEUMxRwGENhlwta8hSAoUGN4sNjEMoMCNsFd18a72YDzC/kD76bxV+6h/CP/kbsC78X12lwNtvwy/+Inr06Hng5gFRw4VRGLb1SVviBiiGRhsMTEZV/mhzsCShTdFJljQSQNZQCO1dT/sjlNOW898AHgl++E/CX/hJPtb1rW/BPD8P0JaBGnKSeC4sdbccS8OLGfQeCRsYE10y2mpUdzuzLZ8cqIfwtqAz/n4KfA94b+tlzxPkY1yZf+RtvZiT8h0H3u4bNLgxucVIVi3GElbgnowYDPfJm4zYNmbYU+UerZ+Y+v+G8s4Lv/7kCbzzDiwfI7UePvxDYPpH0fGdjvFYiT0+INka/ti4YbmO3Ln7ku0h57z9v5TJ0VhtN3n3+Xrq32hT+z7MbfvR1uBXfgV+7df+2F3+w9uuAfrx4x+IZQNve25kj6zesJi0xkLDsu/yyqIOySmnSQ35OTxVkUhpO7ESlLnaVz8+f/juN9rVaYHjlga20dtvj+L9/7hOo2urvqrFqfT2u8N5cWp87tgJSpKt35Kx2Wbbl9QDukJNoSbcEV2igdNn8qWf3j3qwLMtRf0DOf3/fukCbi7xCXjw13Yf9JMNGotzpp4THXUp0qJbpKRepAz7TkK6S0qhJtMxHauRammn5Yad0wPO935ievxo7KD1g2PhY12+q+zPQPsCfjQhB371b+3f89mdQd03DqAOTkzadJwZUg+i23YkdEItcMduCT2tZqsZNYmGWJBW0EqJ9eWf2723HMh374rnLsU+JgjN4D8H+svwtMMHj+Dlv717t7yiM6bbNNsN7t61IK/glklP3K00kIGiY3VQs92MV8vNsCAW41ViFRpGgVmPPzY9fenPz4++Dzz8qO/zcaKjI/hLA8QS+Pf/I5o/G6eXv7R/aLN6RGIFrZIXxCoxIiSvZjA8kw05Q12d3IAMGtckFolF9urhxy4yC/IS8lruxenVn9+/c3hTt78H/uDO130BkP+YKBjw58BfBv0kLGf82/8S9Uv1135+/87uzXgWikVoCbxKXiytIyu8WFpwrBFeAzUoDUcLq7ckm8kV5SJpwVpIL+CzdNdMfMZDZtJ9Pv7o9PhTX758+/CGzr8LfBe0/BHrf774PfB54O+D/hn0z+FHv4W/9Y9Ru1R/7e/u37n/V/fvjyxg9WBtZ8wZc3JyTmvBXiSvltaGuqxepFbD7qHoNi1FC2kRXowXpNPQJZqwK7hKFIzymrj3xflh+adX/fu/fPPp7/7n9tKHiV7ZCO7hAvQK6E8AbwA/AnwOTgVuvoYf/Sb64H/C/GacPvEL+3fu/+z+PWBxakGcBGdvHVn22ehsc5a8AOMsRSzgJtN18/VX3wx5n/Khw0WRLwQXia6QroBL2VfeSLjko80Rc0Daq6q29/P45K3zy+/969tPrt/zbgZ2B5jv4/o64v7mIjzF57fR6X2w8Mt/Z/fuy1/aP9x9Jp4RnLEWrJPlW8GNhyX0TPiZracWT4WfCT8FXQPXCt0GvtHt1197I8mdox9UdPDqC6SjIi7BVzaXwpfgS6OLULlI8oB9kLTXnedrz149PXlrffD+r96+fvvNfnxulL6QYtNrWu7/7O6DV//m/r3yapxtr+FYLFaLE/ZpKBRfG18LPQvpmTOvLT11+Jms6950HeKmhG8UOtVONtmlUNYQdRHnTQadY7jhZWj6564+MrlRmfRoDjtLPSa1+z+zOz340u7dqNtBwqB1gzJJpjnzbPu8zapxhrgYFpnTMOh8q2HM3Qhu3Dm5cCt8G8kJ+czEucDSe7a20Kt2dFa6s6/NMXRwqERsQgYK6buNxba582KhC6+2OmKY0GdVLy6poWHSEGiwWKVt5TgjcTNumFXBSnI2nCVuQ77FurF1jbhR8Xi3TzJnm3ONXJrKmoqm6K2K3jNogJwUycMNR2U7oAk0XPE7Q3kzArukhrWzaYLJwxSYgIIpRpL8XB7gwZsMg3JYDVhtlk0cn4FboduEG8QN6MbiVnAr6zQagZdMVhdWKVoRvfrcei+lTaVGpNZGD5lwR7YVMc4n7qz9zSLv29BatQ0syZPN7OHGlOenAJJSg3VvH9N2erMgJC3GK+Ik6ww62dxmcorCteXbTG6q4tZwq+CMfFpbrjVypatFV69Za09CGVKUVN6GqqRSoEcnBM4RihBJ0JxsA9QN5Rmzw5qQZ0QRrgy9HXeaTM/tdXJMaN+dIa4Si/N5ez0RvpU4WboVvpV8a5dbo3PPPIPXKXzONdpUepuuslVpyotoPdWjqawlumyx3m0gUm5CTaG0lCa77VWwOjUrPM44thMnQ8EKyyOe+XxSvuB2KTcDbhVaLC3jOJqTrfNWD7cQJ/DtqJ88kzo3xxKRPV27a+8KenXMOR1Sbe1tcacgOYBiiXCOZEqJ9J3ZOZys1dZiNj/YnoxqiGKzHYZup1b6SPXdWXS+O+gRzdaypeeSOaa5xEkeB6SKOLf0mcyzHMtescq5Bn2tqbbe7lxVqpl2PZfTeKKASXMdSjTXcHNAZFqZlnpYDbkjrbYWmdlWFUzbYxxVUIbkIWxE2RSfseyUlEn2QQC1Aqs0aEngszOWqF5sn0UuKE7Q12Yve+W6U670tiI3ec7rLFmPsSTXu+A6M5MeFysR1WUNeu9kAOGh0JLuVHPQDPM4Rs4ZqdpMpAqpsjlb4/hMiITQXcvenkNBOTQPzeSa0iqxRow0y2ApeM30srZcp+AcUbp8B2Lq1Joc9ul6yoreT/f7lMMFl7cQFa/n7nWFqVZ7TVvKUmp3GXqFVAtYBRVpSruiqBEU2SVHRAKQ4iNTBuwckclA3XK33CKiOdUNS+IVaw3n2hSrC2uNXL1G6+49yFWqzXcg4sbHmw+zfmddOT577E9cnbNcJDftwO1JzO7sJ+eiMKFkyi6y9x5d0AKvhiKP2SFcxtkf46Ga5xHZytzDUMpxhJOWurWd7qJWGM+npGhNrNGiOdQkN/fSeultqu6Z0a495cUGwqfHOb3XXc8Nc7XCtNqGx/0SsWPWrU/qscZEnTOpWXrTEP7Fq9WLrOosNQalCZtiUA5AsblPjMfM7hCRFiY2g8NKcsyUgG65Ee69lR60FnJXj66rbHPU/ux29pOM7PWUx5sPsz7s9gn/H47+ChCYwenhAAAAAElFTkSuQmCC";
var STrChOTokenText = { 20060: 'LII', 20059: 'LI',20058: 'L', 20057: 'XLIX', 20056: 'XLVIII', 20055: 'XLVII', 20054: 'XLVI',20053: 'XLV', 20052: 'XLIV',20051: 'XLIII',
20050: 'XLII',20049: 'XLI', 20048: 'XL', 20047: 'XXXIX', 20046: 'XXXVIII', 20045: 'XXXVII',20044: 'XXXVI', 20043: 'XXXV', 20042: 'XXXIV',20041: 'XXXIII',
20040: 'XXXII', 20039: 'XXXI', 20038: 'XXX',20037: 'XXIX', 20036: 'XXVIII', 20035: 'XXVII', 20034: 'XXVI',20033: 'XXV',20032: 'XXIV', 20031: 'XXIII',
20030: 'XXII',20029: 'XXI',20028: 'XX',20027: 'XIX',20026: 'XVIII',20025: 'XVII',20024: 'XVI',20023: 'XV',20021: 'XIV',20020: 'XIII', 20018: 'XII',20017: 'XI',
20016: 'X',20015: 'IX',20014: 'VII',20013: 'V', 20012: 'III'
}
var logValues = { SUCCESS: 0, ACTION: 1, SALVAGE: 2, MAXLOGS: 3 };
var STrChOFactions = ['briton', 'fey', 'druid'];
var STrChOJewelQualities = ['cracked', 'flawed', 'cloudy', 'subdued', 'bright'];
var throneCardTypes = ['chair', 'advisor', 'window', 'banner', 'table', 'trophy', 'candelabrum', 'hero', 'statue', 'pet', 'tapestry', 'pillar'];
var throneCardQualities = ['simple', 'common', 'uncommon', 'rare', 'epic', 'wondrous', 'miraculous'];
var champCardQualities = ['simple', 'common', 'uncommon', 'rare', 'epic', 'wondrous', 'unique'];
var champItemTypes = {'weapon': 1, 'chest': 2, 'helm':3, 'boots':4, 'shield': 5, 'ring': 6, 'pendant': 8, 'cloak': 9};
var champItemUniqueNames = {1: 'weapon', 2: 'chestArmor', 3: 'helm', 4: 'boots', 5: 'shield', 6: 'ring', 8: 'pendant', 9: 'cloak'};
var champItemNames = {1: 'weapon', 2: 'chest', 3: 'helm', 4: 'boots', 5: 'shield', 6: 'ring', 8: 'pendant', 9: 'cloak'};
var STrChORing1 = 6;
var STrChORing2 = 7;
var champTiers = CM.WorldSettings.getSettingAsObject("CE_EFFECTS_TIERS")
var champItemEffects = [201,202,203,204,205,206,207,208,209,1,2,3,4,5,6,7,17,18,19,20,21,22,23,24,26,27,29,31,32,34,35,36,37,39,40,41,44,45,46,47,50,51,52,53,56,57,58,61,62,125,126,127,128,129,130,131,132,133,134,113,114,115,116,117,118,119];
var champEffects = [];
for (var efx = 0; efx < champItemEffects.length; efx++ ) {
var champEffectName = uW.g_js_strings.effects["name_" + champItemEffects[efx]];
champEffectName = champEffectName.split(" Debuff")[0];
if (champEffects.indexOf(champEffectName) < 0) champEffects.push(champEffectName);
}
var STrChOQualityCount = 6;
var STrChOThroneDisplayTimer = null;
var STrChOMaxThroneQuality = 0;
var STrChOMaxThroneLevel = 0;
var STrChOMaxChampLevel = 0;
var STrChOMaxChampQuality = 0;
var STrChOMaxChampions = 0;
var STrChOMaxPresets = 28;
var STrChOMaxInventoryRows = 0;
var STrChOMaxThroneCards = 0;
var STrChOChampStatsGrid = {
"weapon" : {1: {201:1,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:1,2:0,3:0,4:1,5:1,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {201:0,202:1,203:0,204:1,205:1,206:1,207:1,208:1,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:1,2:0,3:0,4:1,5:1,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {201:0,202:1,203:0,204:1,205:1,206:1,207:1,208:1,209:0,1:1,2:0,3:0,4:1,5:1,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"chest" : {1: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:1,20:1,21:0,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {201:0,202:0,203:1,204:1,205:1,206:1,207:1,208:1,209:1,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:1,20:1,21:0,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {201:0,202:0,203:1,204:1,205:1,206:1,207:1,208:1,209:1,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {201:0,202:0,203:1,204:1,205:1,206:1,207:1,208:1,209:1,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:1,20:1,21:0,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"helm" : {1: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:1,2:1,3:1,4:0,5:0,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:0,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {201:0,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {201:0,202:0,203:1,204:1,205:1,206:1,207:1,208:1,209:1,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {201:0,202:1,203:1,204:0,205:1,206:1,207:1,208:1,209:1,1:1,2:1,3:1,4:1,5:0,6:0,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"boots" : {1: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:1,2:1,3:1,4:1,5:0,6:1,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {201:0,202:1,203:1,204:1,205:1,206:0,207:1,208:1,209:1,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:1,2:1,3:1,4:1,5:0,6:1,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {201:0,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {201:0,202:1,203:1,204:1,205:0,206:1,207:1,208:1,209:1,1:1,2:1,3:1,4:1,5:0,6:1,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:0,22:1,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"shield" : {1: {201:0,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {201:0,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {201:0,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"ring" : {1: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"pendant" : {1: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"cloak" : {1: {201:0,202:1,203:0,204:0,205:1,206:1,207:1,208:1,209:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:1,4:0,5:0,6:0,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:0,26:1,27:1,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:1,45:0,46:1,47:1,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {201:0,202:0,203:0,204:0,205:0,206:0,207:0,208:0,209:0,1:0,2:0,3:1,4:1,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:1,35:0,36:1,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:1,57:0,58:0,59:0,60:0,61:0,62:1,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:1,127:0,128:0,129:0,130:1,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {201:0,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {201:0,202:1,203:1,204:1,205:1,206:1,207:1,208:0,209:1,1:0,2:0,3:0,4:0,5:0,6:0,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:1,35:1,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:1,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:1,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:1,126:0,127:0,128:0,129:0,130:0,131:1,132:0,133:1,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}}}
var STrChOThroneStatsGrid = {
"chair" : {1: {1:1,2:1,3:1,4:1,5:0,6:1,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:1,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:1,2:1,3:1,4:1,5:0,6:1,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:1,114:1,115:1,116:1,117:0,118:1,119:1,120:1,121:1,122:1,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:1,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:1,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:1,94:0,95:1,96:0,97:0,98:0,99:1,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:1,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:1,79:1,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:1,114:1,115:1,116:1,117:1,118:0,119:1,120:1,121:0,122:1,123:1,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:1,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:1,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"table" : {1: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:0,22:1,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:1,83:1,84:1,85:1,86:1,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:1,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:1,9:1,10:1,11:1,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:0,22:1,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:1,82:0,83:0,84:0,85:1,86:0,87:0,88:0,89:1,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:1,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:0,2:0,3:0,4:0,5:1,6:0,7:1,8:1,9:1,10:1,11:1,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:1,82:0,83:0,84:0,85:0,86:0,87:1,88:1,89:0,90:1,91:1,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:1,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:1,22:0,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:1,82:0,83:0,84:0,85:0,86:0,87:0,88:1,89:0,90:1,91:1,92:1,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:1,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:1,2:1,3:1,4:1,5:0,6:1,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:1,22:0,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:1,80:0,81:1,82:0,83:0,84:0,85:0,86:0,87:0,88:1,89:0,90:1,91:1,92:1,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:1,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"window" : {1: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:1,17:1,18:1,19:1,20:1,21:0,22:1,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:1,83:1,84:1,85:1,86:1,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:1,102:1,103:1,104:1,105:1,106:1,107:1,108:1,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:1,11:0,12:0,13:0,14:1,15:0,16:1,17:1,18:1,19:1,20:1,21:0,22:1,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:1,83:1,84:1,85:1,86:1,87:0,88:0,89:1,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:1,102:1,103:1,104:1,105:1,106:1,107:1,108:1,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:1,11:0,12:0,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:1,83:1,84:1,85:1,86:1,87:1,88:1,89:1,90:1,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:1,102:1,103:1,104:1,105:1,106:1,107:1,108:1,109:0,110:0,111:0,112:0,113:1,114:0,115:1,116:0,117:0,118:0,119:0,120:1,121:0,122:1,123:1,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:0,2:0,3:0,4:0,5:0,6:0,7:1,8:0,9:0,10:1,11:0,12:0,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:1,83:1,84:1,85:1,86:1,87:1,88:1,89:1,90:1,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:1,102:1,103:1,104:1,105:1,106:1,107:1,108:1,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:1,11:0,12:0,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:1,83:0,84:0,85:1,86:1,87:1,88:1,89:1,90:1,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:1,102:1,103:1,104:1,105:1,106:1,107:1,108:1,109:0,110:0,111:0,112:0,113:0,114:1,115:0,116:1,117:1,118:0,119:1,120:0,121:1,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"banner" : {1: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:1,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:1,26:1,27:1,28:0,29:1,30:1,31:1,32:1,33:0,34:1,35:1,36:1,37:0,38:0,39:1,40:1,41:1,42:0,43:0,44:1,45:1,46:1,47:1,48:1,49:0,50:1,51:1,52:1,53:1,54:1,55:0,56:1,57:1,58:0,59:1,60:0,61:1,62:1,63:0,64:1,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:1,12:1,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:1,26:1,27:1,28:0,29:1,30:1,31:1,32:1,33:0,34:1,35:1,36:1,37:0,38:0,39:1,40:1,41:1,42:0,43:0,44:1,45:1,46:1,47:1,48:1,49:0,50:1,51:1,52:1,53:1,54:1,55:0,56:1,57:1,58:0,59:1,60:0,61:1,62:1,63:0,64:1,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:1,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1,38:0,39:1,40:1,41:1,42:1,43:1,44:1,45:1,46:1,47:1,48:1,49:1,50:1,51:1,52:1,53:1,54:1,55:1,56:1,57:1,58:0,59:1,60:1,61:1,62:1,63:0,64:1,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:1,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:0,38:1,39:1,40:1,41:1,42:1,43:0,44:1,45:1,46:1,47:1,48:1,49:1,50:1,51:1,52:1,53:1,54:1,55:1,56:1,57:1,58:1,59:1,60:1,61:1,62:1,63:1,64:1,65:1,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:1,12:1,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:0,38:1,39:1,40:1,41:1,42:1,43:0,44:1,45:1,46:1,47:1,48:1,49:1,50:1,51:1,52:1,53:1,54:1,55:1,56:1,57:1,58:1,59:1,60:1,61:1,62:1,63:1,64:1,65:1,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"trophy" : {1: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:1,17:1,18:1,19:1,20:1,21:0,22:1,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:1,77:0,78:0,79:0,80:0,81:0,82:1,83:1,84:1,85:1,86:1,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:1,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:1,26:1,27:1,28:0,29:1,30:1,31:1,32:1,33:0,34:1,35:1,36:1,37:0,38:0,39:1,40:1,41:1,42:0,43:0,44:1,45:1,46:1,47:1,48:1,49:0,50:1,51:1,52:1,53:0,54:1,55:0,56:1,57:1,58:0,59:1,60:0,61:0,62:1,63:0,64:1,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:1,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:1,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:1,22:0,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:1,80:0,81:1,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:1,91:1,92:0,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:1,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:1,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"candelabrum" :{1: {1:1,2:1,3:0,4:0,5:0,6:1,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:1,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:1,79:1,80:0,81:0,82:1,83:1,84:1,85:1,86:1,87:0,88:1,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:1,26:1,27:1,28:0,29:0,30:0,31:0,32:0,33:0,34:1,35:1,36:1,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:1,45:0,46:1,47:1,48:1,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:1,57:1,58:0,59:1,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:0,2:0,3:1,4:1,5:1,6:1,7:0,8:0,9:0,10:1,11:1,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:1,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:1,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:1,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:1,92:1,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:0,2:0,3:0,4:1,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:1,26:1,27:1,28:0,29:0,30:0,31:0,32:0,33:0,34:1,35:1,36:1,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:1,45:1,46:1,47:1,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:1,57:1,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:1,70:1,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:1,92:1,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:1,2:1,3:1,4:1,5:1,6:1,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:1,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:1,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:1,92:1,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"advisor" : {1: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:1,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:1,83:1,84:1,85:1,86:1,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:1,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:1,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:1,71:1,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:0,80:0,81:0,82:1,83:1,84:1,85:1,86:1,87:0,88:0,89:1,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:1,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:1,70:1,71:1,72:0,73:0,74:0,75:0,76:0,77:1,78:1,79:0,80:1,81:0,82:1,83:1,84:1,85:1,86:1,87:1,88:0,89:1,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:1,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:1,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:1,70:1,71:1,72:0,73:0,74:0,75:0,76:0,77:1,78:1,79:0,80:1,81:0,82:1,83:1,84:1,85:1,86:1,87:1,88:0,89:1,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:1,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:1,70:1,71:1,72:0,73:0,74:0,75:0,76:0,77:1,78:1,79:0,80:1,81:0,82:1,83:0,84:0,85:1,86:1,87:1,88:0,89:1,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:1,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"hero" : {1: {1:0,2:1,3:1,4:1,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:1,17:1,18:1,19:0,20:0,21:0,22:0,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:1,33:0,34:0,35:0,36:0,37:0,38:0,39:1,40:0,41:0,42:1,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:1,62:0,63:1,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:1,2:0,3:0,4:0,5:1,6:1,7:0,8:1,9:1,10:0,11:0,12:0,13:0,14:0,15:0,16:1,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:1,73:0,74:0,75:0,76:0,77:1,78:0,79:1,80:1,81:0,82:1,83:1,84:1,85:1,86:1,87:0,88:0,89:1,90:1,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:0,2:1,3:0,4:1,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:1,16:1,17:1,18:1,19:0,20:0,21:1,22:0,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:1,33:0,34:0,35:0,36:0,37:0,38:0,39:1,40:0,41:0,42:1,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:1,62:0,63:1,64:0,65:0,66:0,67:0,68:1,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:1,2:0,3:0,4:0,5:0,6:1,7:0,8:1,9:1,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:1,73:0,74:0,75:0,76:0,77:1,78:0,79:1,80:1,81:0,82:1,83:1,84:1,85:1,86:1,87:0,88:0,89:1,90:1,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:0,2:1,3:1,4:1,5:1,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:1,17:1,18:1,19:0,20:0,21:1,22:0,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:1,33:0,34:0,35:0,36:0,37:0,38:0,39:1,40:1,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:1,62:0,63:0,64:0,65:1,66:0,67:0,68:1,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"statue" : {1: {1:0,2:1,3:0,4:1,5:0,6:0,7:0,8:1,9:0,10:1,11:1,12:0,13:0,14:0,15:0,16:0,17:1,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:1,39:0,40:1,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:1,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:1,84:0,85:0,86:0,87:0,88:0,89:1,90:0,91:0,92:0,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:1,2:0,3:0,4:1,5:0,6:0,7:1,8:0,9:0,10:0,11:1,12:1,13:0,14:0,15:0,16:1,17:1,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:1,35:0,36:0,37:0,38:1,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:1,68:0,69:0,70:1,71:0,72:1,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:1,84:0,85:0,86:0,87:0,88:0,89:1,90:0,91:0,92:0,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:0,2:1,3:0,4:1,5:0,6:0,7:1,8:1,9:1,10:1,11:1,12:1,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:1,35:0,36:0,37:1,38:0,39:0,40:1,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:1,82:1,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:0,2:0,3:0,4:0,5:0,6:0,7:1,8:1,9:1,10:1,11:1,12:0,13:0,14:0,15:0,16:1,17:1,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:1,35:0,36:0,37:0,38:0,39:0,40:1,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:1,71:0,72:1,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:1,83:1,84:0,85:0,86:0,87:0,88:1,89:0,90:0,91:1,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:1,2:1,3:0,4:0,5:1,6:0,7:0,8:0,9:1,10:0,11:0,12:1,13:0,14:0,15:0,16:1,17:1,18:1,19:0,20:0,21:1,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:1,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:1,82:1,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:1,92:0,93:1,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"pet" : {1: {1:1,2:0,3:0,4:0,5:1,6:0,7:1,8:0,9:1,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:1,19:1,20:0,21:0,22:0,23:0,24:1,25:0,26:0,27:0,28:0,29:0,30:1,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:1,45:0,46:1,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:1,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:1,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:0,2:1,3:1,4:1,5:0,6:0,7:0,8:1,9:0,10:0,11:0,12:0,13:1,14:1,15:1,16:0,17:1,18:0,19:0,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:1,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:1,2:0,3:0,4:0,5:1,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:1,19:0,20:0,21:0,22:0,23:0,24:1,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:1,35:0,36:0,37:0,38:0,39:0,40:1,41:0,42:0,43:0,44:1,45:0,46:0,47:1,48:0,49:0,50:0,51:1,52:0,53:0,54:0,55:0,56:1,57:0,58:1,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:1,78:0,79:1,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:0,2:1,3:1,4:1,5:0,6:0,7:0,8:1,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:1,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:1,36:1,37:0,38:0,39:1,40:0,41:0,42:1,43:0,44:0,45:1,46:1,47:0,48:0,49:0,50:1,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:1,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:1,89:1,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:1,9:1,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:0,21:1,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:1,36:0,37:1,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"tapestry" : {1: {1:1,2:1,3:1,4:0,5:1,6:0,7:0,8:1,9:0,10:1,11:0,12:0,13:0,14:0,15:0,16:1,17:1,18:1,19:1,20:0,21:0,22:1,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:1,46:0,47:0,48:0,49:0,50:0,51:0,52:1,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:0,68:0,69:1,70:0,71:0,72:1,73:0,74:0,75:0,76:0,77:0,78:1,79:0,80:1,81:1,82:0,83:0,84:0,85:0,86:0,87:0,88:1,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:1,114:1,115:1,116:1,117:0,118:1,119:1,120:1,121:1,122:1,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:1,2:1,3:1,4:0,5:0,6:1,7:0,8:1,9:0,10:0,11:1,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:0,21:0,22:1,23:0,24:0,25:0,26:0,27:0,28:1,29:0,30:0,31:0,32:1,33:1,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:1,46:0,47:0,48:0,49:0,50:0,51:0,52:1,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:0,68:0,69:1,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:1,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:1,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:1,2:1,3:1,4:1,5:0,6:0,7:0,8:1,9:0,10:1,11:0,12:0,13:0,14:0,15:0,16:1,17:1,18:1,19:1,20:0,21:1,22:1,23:0,24:0,25:0,26:0,27:1,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:1,52:0,53:1,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:1,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:1,79:0,80:0,81:1,82:0,83:0,84:0,85:0,86:0,87:0,88:1,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:1,114:1,115:1,116:1,117:0,118:1,119:1,120:1,121:1,122:1,123:1,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:1,2:1,3:1,4:0,5:0,6:0,7:0,8:1,9:0,10:0,11:1,12:0,13:0,14:0,15:0,16:1,17:1,18:1,19:1,20:0,21:0,22:1,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:1,51:0,52:1,53:1,54:1,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:1,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:1,79:0,80:0,81:1,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:1,2:1,3:0,4:1,5:0,6:0,7:0,8:1,9:0,10:0,11:0,12:1,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:0,21:0,22:1,23:0,24:0,25:0,26:0,27:1,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:1,51:1,52:0,53:0,54:1,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:1,73:0,74:0,75:0,76:0,77:0,78:0,79:1,80:1,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:1,89:1,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:1,114:1,115:1,116:1,117:1,118:0,119:1,120:1,121:1,122:1,123:1,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}},
"pillar" : {1: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:1,114:1,115:1,116:1,117:0,118:0,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
2: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:1,25:1,26:1,27:1,28:1,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:1,57:1,58:1,59:1,60:1,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:1,120:1,121:1,122:1,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
3: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:1,114:1,115:1,116:1,117:0,118:1,119:0,120:0,121:0,122:0,123:0,124:0,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
4: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:1,35:1,36:1,37:1,38:1,39:0,40:0,41:0,42:0,43:0,44:1,45:1,46:1,47:1,48:1,49:1,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:0,114:0,115:0,116:0,117:0,118:0,119:1,120:1,121:1,122:1,123:0,124:1,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0},
5: {1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:0,25:0,26:0,27:0,28:0,29:0,30:0,31:0,32:0,33:0,34:0,35:0,36:0,37:0,38:0,39:0,40:0,41:0,42:0,43:0,44:0,45:0,46:0,47:0,48:0,49:0,50:0,51:0,52:0,53:0,54:0,55:0,56:0,57:0,58:0,59:0,60:0,61:0,62:0,63:0,64:0,65:0,66:0,67:0,68:0,69:0,70:0,71:0,72:0,73:0,74:0,75:0,76:0,77:0,78:0,79:0,80:0,81:0,82:0,83:0,84:0,85:0,86:0,87:0,88:0,89:0,90:0,91:0,92:0,93:0,94:0,95:0,96:0,97:0,98:0,99:0,100:0,101:0,102:0,103:0,104:0,105:0,106:0,107:0,108:0,109:0,110:0,111:0,112:0,113:1,114:1,115:1,116:1,117:0,118:1,119:0,120:0,121:0,122:0,123:0,124:1,125:0,126:0,127:0,128:0,129:0,130:0,131:0,132:0,133:0,134:0,135:0,136:0,137:0,138:0,139:0,140:0,141:0,142:0,143:0,144:0}}}
var STrChOThroneUpgradeStats = {
upgradeSuccess: {
0: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
1: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
2: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
3: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
4: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
5: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
6: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 }
},
upgradeFailure: {
0: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
1: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
2: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
3: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
4: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
5: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
6: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 }
},
enhanceSuccess: {
0: { 0: 1, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
1: { 0: 1, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
2: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
3: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
4: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
5: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
6: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 }
},
enhanceFailure: {
0: { 0: 1, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
1: { 0: 1, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
2: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
3: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
4: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
5: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 },
6: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0, 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0 , 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0, 46: 0, 47: 0, 48: 0, 49: 0, 50: 0, 51: 0, 52: 0, 52: 0, 54: 0, 55: 0 }
}
};
var STrChOChampUpgradeStats = {
upgradeSuccess: {
0: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
1: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
2: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
3: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
4: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
5: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0}
},
upgradeFailure: {
0: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
1: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
2: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
3: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
4: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
5: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0}
},
enhanceSuccess: {
0: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
1: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
2: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
3: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
4: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
5: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0}
},
enhanceFailure: {
0: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
1: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
2: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
3: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
4: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0},
5: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 0, 24: 0 , 25: 0, 26: 0, 27: 0, 28: 0, 29: 0, 30: 0, 31: 0, 32: 0, 33: 0, 34: 0, 35: 0, 36: 0, 37: 0, 38: 0, 39: 0, 40: 0, 41: 0, 42: 0, 43: 0, 44: 0, 45: 0}
}
};
//add the new functions to the main window
contentEval(addWatchFunctions);
//add the new functions to this script
addWatchFunctions();
var STrChOThroneSorter = [];
var STrChOSwapTile = null;
var STrChOMassSalvage = [];
var STrChOGlobalOptions = {
update: true,
updateSite: "https://greasyfork.org/en/scripts/408041-spawn-trcho ",
firstrun: true
};
var STrChOGeneralOptions = {
xPos : 0,
yPos : 30,
hidden: true,
disableAnim : true,
draggableThroneItems: false,
throneSorter: false,
showJewels: true,
whisperToMe: false,
sendToInbox: false,
retryInterval : 30,
currentTab : null,
usedAnyCity : true,
usedCityNum : 0,
salvageAnyCity : true,
salvageCityNum : 0,
safetyOn: false,
safetyLimit: 100000,
buffsOff: false,
removeMastersTokens: false,
removeOtherTokens: false,
removeForgedTokens: false,
removeOtherForgedTokens: false,
useMastersTokens: false,
useForgedTokens: false,
multiUpgrade: false,
noEquippedSalvage: false,
noMassSalvage: false,
noForcedSalvage: false,
throneSalvageSafety: false,
champSalvageSafety: false,
throneSalvageSafetyNum: 40,
champSalvageSafetyNum: 40,
minStones: 100000,
overflow : "order",
maxStones : 16000000
};
var STrChOLogData = {
maxEntries: 100,
successLog: [],
actionLog: [],
salvageLog: []
};
var STrChOThroneQueueData = {
list : [],
oneItem : true,
doingRepairs : false,
index : 0,
dataConverted : false
};
var STrChOChampQueueData = {
list: [],
oneItem: true,
doingRepairs: false,
index: 0,
dataConverted: false
};
var STrChOThroneUpgradeData = {
active : false,
useLORB : false,
useORB : false,
useLPS : false,
usePS : false,
useLT : false,
useLLT : false,
useSH : false,
useKH : false,
useGH : false,
useMH : false,
useAH : false,
useWH: false,
useDH: false,
useEH: false,
useQuality : 5,
useLevel : 6,
useAutoTokens: false,
useAutoTokensMin: 4,
useAutoTokensMax: 21,
item: 0,
overrideSpeedUp: false,
hourglassLevelSpecific: false,
hourglassLevel: 0,
hourglassQualitySpecific: false,
hourglassQuality: 0,
useSpeedUp: 0,
enhanceAction: false,
enhanceItem: 0,
enhanceMax : STrChOMaxThroneQuality,
repairAll : false,
effectSelected: "none",
buffSelected: "both",
sortInactive: true,
ignoreBroken: false,
newUpgradeState: 0
};
var STrChOChampUpgradeData = {
active : false,
useLOM : false,
useGOM : false,
useJT : false,
useST : false,
useET : false,
useSH : false,
useKH : false,
useGH : false,
useMH : false,
useAH : false,
useWH: false,
useDH: false,
useEH: false,
useQuality : 1,
useLevel : 1,
useAutoTokens: false,
useAutoTokensMin: 3,
useAutoTokensMax: 14,
item: 0,
overrideSpeedUp: false,
hourglassLevelSpecific: false,
hourglassLevel: 0,
hourglassQualitySpecific: false,
hourglassQuality: 0,
useSpeedUp: 0,
enhanceAction: false,
enhanceItem: 0,
enhanceMax : STrChOMaxChampQuality,
repairAll : false,
effectSelected: "none",
buffSelected: "both",
sortInactive: true,
ignoreBroken: false,
newUpgradeState: 0
};
var STrChOThroneSalvageData = {
active : false,
throneSaveNum : 40,
minQuality : 3,
ruleSet : [{"type":"any","faction":"any","conditions":[{"mustHave":"true","number":"2","effect":"Range","buffType":"e","slots":[true,true,true,true,true]}]},{"type":"any","faction":"any","conditions":[{"mustHave":"true","number":"2","effect":"Troop Training Speed","buffType":"e","slots":[true,true,true,true,true]}]},{"type":"banner","faction":"any","conditions":[{"mustHave":"true","number":"2","effect":"Siege Range","buffType":"e","slots":[true,true,true,true,true]}]}],
numSalvagedItems : 0,
numSalvagedItems2 : 0,
numSalvaged : {0: 0, 1: 0, 2:0, 3:0, 4:0, 5:0, 6:0},
upgradeFirst : false,
upgradeFirstQual : 2,
upgradedToDelete : [],
upgradeManual : false,
upgradeAutoFind : false
};
var STrChOChampSalvageData = {
active : false,
champSaveNum : 40,
minQuality : 3,
ruleSet : [],
numSalvagedItems : 0,
numSalvagedItems2 : 0,
numSalvaged : {0: 0, 1: 0, 2:0, 3:0, 4:0, 5:0, 6:0},
upgradeAutoFind : false
};
var STrChOThroneRepairData = {
active: false,
useSH: false,
useKH: false,
useGH: false,
useMH: false,
useAH: false,
useWH: false,
useDH: false,
useEH: false,
overrideSpeedUp: false,
hourglassLevelSpecific: false,
hourglassLevel: 0,
hourglassQualitySpecific: false,
hourglassQuality: 0,
useSpeedUp: 0,
index: 0,
items: []
};
var STrChOChampRepairData = {
active: false,
useSH: false,
useKH: false,
useGH: false,
useMH: false,
useAH: false,
useWH: false,
useDH: false,
useEH: false,
overrideSpeedUp: false,
hourglassLevelSpecific: false,
hourglassLevel: 0,
hourglassQualitySpecific: false,
hourglassQuality: 0,
useSpeedUp: 0,
index: 0,
items: []
};
var STrChOThronePresetData = {
items: [],
presetNames: ["undefined", "undefined", "undefined", "undefined", "undefined", "undefined", "undefined", "undefined",
"undefined", "undefined", "undefined", "undefined", "undefined", "undefined", "undefined", "undefined",
"undefined", "undefined", "undefined", "undefined", "undefined", "undefined", "undefined", "undefined"],
showThroneMight: true,
showThroneName: true,
presetColor: "#0000FF",
tagColor: "#FFFFFF",
activeColor: "#FFFF00",
taggedItems: {},
taggedItems01: {},
taggedItems02: {},
taggedItems03: {},
taggedItems04: {},
taggedItems05: {},
taggedItems06: {},
taggedItems07: {},
taggedItems08: {},
taggedItems09: {},
taggedItems10: {},
taggedItems11: {},
taggedItems12: {},
taggedItems13: {},
taggedItems14: {},
taggedItems15: {},
taggedItems16: {},
taggedItems17: {},
taggedItems18: {},
taggedItems19: {},
taggedItems20: {},
taggedItems21: {},
taggedItems22: {},
taggedItems23: {},
taggedItems24: {},
previewThrone: {}
};
var STrChOChampPresetData = {
items: [],
presetNames: ["undefined", "undefined", "undefined", "undefined"],
showChampMight: true,
showChampName: true,
presetColor: "#0000FF",
tagColor: "#FFFFFF",
activeColor: "#FFFF00",
taggedItems: {},
taggedItems01: {},
taggedItems02: {},
taggedItems03: {},
taggedItems04: {},
previewChamp: [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ] //had to do array like this because of double ring
};
var STrChOJewelImages = {
1: "http://i.imgur.com/SecBRT5.png",
2: "http://i.imgur.com/dnrId1I.png",
3: "http://i.imgur.com/fjgZUh9.png",
4: "http://i.imgur.com/h7tMQaB.png",
5: "http://i.imgur.com/BZSuCiN.png"
};
var HOURGLASSES_TIME = {
minute1 : 60,
minute15 : 900,
hour1 : 3600,
hour25 : 9000,
hour8 : 28800,
hour15: 54000,
hour24: 86400,
day25: 216000
};
var HOURGLASSES_TIME_MIN_THRESHOLD = {
minute1 : 30, //30 seconds and up will use 1m speedup
minute15 : 301, //5 minute 1 second and up will use 15m speedup
hour1 : 2701, // 45 minutes 1 second and up will use 1hr speedup
hour25 : 7201, // 2 hour 1 second and up will use 2.5hr speedup
hour8 : 26101, // 7 hours 30 minutes 1 second and up will use 8hr speedup
hour15: 50431, // 14 hours 30 minutes 1 second and up will use 15hr speedup
hour24: 82831, // 23 hours 30 minutes 1 second and up will use 24hr speedup
day25: 172800 //48 hours and up will use 2.5 day speedup
};
var STrChOHourGlassTDLabel = {
1: 'Time: 1 Min | Conditions: 30s+',
2: 'Time: 15 Min | Conditions: 5m & 1s+',
3: 'Time: 1 Hour | Conditions: 45m & 1s+',
4: 'Time: 2.5 Hours | Conditions: 2h & 1s+',
5: 'Time: 8 Hours | Conditions: 7h & 30m & 1s+',
6: 'Time: 15 Hours | Conditions: 14h & 30m & 1s+',
7: 'Time: 24 Hours | Conditions: 23h & 30m & 1s+',
8: 'Time: 2.5 Days | Conditions: 48h+'
};
var STrChOHourGlassName = {
1: "Squire's Hourglass",
2: "Knight's Hourglass",
3: "Guinevere's Hourglass",
4: "Morgana's Hourglass",
5: "Arthur's Hourglass",
6: "Merlin's Hourglass",
7: "Divine Hourglass",
8: "Epic Hourglass"
};
// initialise
LOADallData();
var STrChOWinManager = {
wins : {}, // prefix : CPopup obj
get : function (prefix){
var t = STrChOWinManager;
return t.wins[prefix];
},
add : function (prefix, pop){
var t = STrChOWinManager;
t.wins[prefix] = pop;
if (uW.cpopupWins == null)
uW.cpopupWins = {};
uW.cpopupWins[prefix] = pop;
},
delete : function (prefix){
var t = STrChOWinManager;
delete t.wins[prefix];
delete uW.cpopupWins[prefix];
}
}
// creates a 'popup' div
// prefix must be a unique (short) name for the popup window
function STrChOPopup(prefix, x, y, enableDrag, onClose) {
var pop = STrChOWinManager.get(prefix);
if (pop) {
pop.show(false);
return pop;
}
this.BASE_ZINDEX = 111111;
// protos ...
this.show = show;
this.toggleHide = toggleHide;
this.getTopDiv = getTopDiv;
this.getMainDiv = getMainDiv;
this.getLayer = getLayer;
this.setLayer = setLayer;
this.setEnableDrag = setEnableDrag;
this.getLocation = getLocation;
this.setLocation = setLocation;
this.focusMe = focusMe;
this.unfocusMe = unfocusMe;
this.centerMe = centerMe;
this.destroy = destroy;
// object vars ...
this.div = document.createElement('div');
this.prefix = prefix;
this.onClose = onClose;
var t = this;
this.div.className = 'STrChOPopup ' + prefix + '_STrChOPopup';
this.div.id = prefix + '_outer';
this.div.style.background = "#fff";
this.div.style.zIndex = this.BASE_ZINDEX // KOC modal is 100210 ?
this.div.style.display = 'none';
this.div.style.width = dlgWidth + 'px';
this.div.style.height = dlgHeight + 'px';
this.div.style.position = "absolute";
this.div.style.top = y + 'px';
this.div.style.left = x + 'px';
topClass = 'STrChOPopupTop ' + prefix + '_STrChOPopupTop';
var m = '';
m += '<TABLE cellspacing=0 width=100% height=100%>';
m += '<TR id="' + prefix + '_bar" class="' + topClass + '">';
m += '<TD width=99% align=center><b>Spawn TrChO (Version ' + STrChOVersion + ')</b>';
m += '<input type=file id=STrChOSettingsFile style="visibility:hidden; width: 0px; height: 0px;">';
m += '</td>';
m += '<TD id=' + prefix + '_X align=right valign=middle onmouseover="this.style.cursor=\'pointer\'" style="color:#fff; background:#000000; font-weight:bold; font-size:14px; padding:0px 5px;">X';
m += '</td>';
m += '</tr>';
m += '<tr><td valign=top colspan=2><table cellspacing=0 cellpadding=0>';
m += '<TR><TD valign=top colspan=2 id="'+ prefix +'_top"></td>';
m += '<TD valign=top class="STrChOCPopMain ' + prefix + '_STrChOCPopMain" colspan=2 id="' + prefix + '_main"></td></tr>';
m += '</table></td></tr>';
m += '</table>';
document.body.appendChild(this.div);
this.div.innerHTML = m;
document.getElementById(prefix + '_X').addEventListener('click', e_XClose, false);
this.dragger = new CWinDrag(document.getElementById(prefix + '_bar'), this.div, enableDrag);
this.div.addEventListener('mousedown', e_divClicked, false);
STrChOWinManager.add(prefix, this);
function e_divClicked() {
t.focusMe();
}
function e_XClose() {
t.show(false);
if (t.onClose != null)
t.onClose();
}
function focusMe() {
t.setLayer(5);
for (k in uW.cpopupWins) {
if (k != t.prefix)
uW.cpopupWins[k].unfocusMe();
}
}
function unfocusMe() {
t.setLayer(-5);
}
function getLocation() {
return {
x: parseInt(this.div.style.left),
y: parseInt(this.div.style.top)
};
}
function setLocation(loc) {
t.div.style.left = loc.x + 'px';
t.div.style.top = loc.y + 'px';
}
function destroy() {
document.body.removeChild(t.div);
STrChOWinManager.delete(t.prefix);
}
function centerMe(parent) {
if (parent == null) {
var coords = getClientCoords(document.body);
} else
var coords = getClientCoords(parent);
var x = ((coords.width - parseInt(t.div.style.width)) / 2) + coords.x;
var y = ((coords.height - parseInt(t.div.style.height)) / 2) + coords.y;
if (x < 0)
x = 0;
if (y < 0)
y = 0;
t.div.style.left = x + 'px';
t.div.style.top = y + 'px';
}
function setEnableDrag(tf) {
t.dragger.setEnable(tf);
}
function setLayer(zi) {
t.div.style.zIndex = '' + (this.BASE_ZINDEX + zi);
}
function getLayer() {
return parseInt(t.div.style.zIndex) - this.BASE_ZINDEX;
}
function getTopDiv() {
return document.getElementById(this.prefix + '_top');
}
function getMainDiv() {
return document.getElementById(this.prefix + '_main');
}
function show(tf) {
if (tf) {
t.div.style.display = 'block';
t.focusMe();
} else {
t.div.style.display = 'none';
}
return tf;
}
function toggleHide(t) {
if (t.div.style.display == 'block') {
return t.show(false);
} else {
return t.show(true);
}
}
}
function CWinDrag (clickableElement, movingDiv, enabled) {
var t=this;
this.setEnable = setEnable;
this.setBoundRect = setBoundRect;
this.lastX = null;
this.lastY = null;
this.enabled = true;
this.moving = false;
this.theDiv = movingDiv;
this.body = document.body;
this.ce = clickableElement;
this.moveHandler = new CeventMove(this).handler;
this.outHandler = new CeventOut(this).handler;
this.upHandler = new CeventUp(this).handler;
this.downHandler = new CeventDown(this).handler;
this.clickableRect = null;
this.boundRect = null;
this.bounds = null;
this.enabled = false;
if (enabled == null)
enabled = true;
this.setEnable (enabled);
function setBoundRect (b){ // this rect (client coords) will not go outside of current body
this.boundRect = boundRect;
this.bounds = null;
}
function setEnable (enable){
if (enable == t.enabled)
return;
if (enable){
clickableElement.addEventListener('mousedown', t.downHandler, false);
t.body.addEventListener('mouseup', t.upHandler, false);
} else {
clickableElement.removeEventListener('mousedown', t.downHandler, false);
t.body.removeEventListener('mouseup', t.upHandler, false);
}
t.enabled = enable;
}
function CeventDown (that){
this.handler = handler;
var t = that;
function handler (me){
if (t.bounds == null){
t.clickableRect = getClientCoords(clickableElement);
t.bodyRect = getClientCoords(document.body);
if (t.boundRect == null)
t.boundRect = t.clickableRect;
t.bounds = {top:10-t.clickableRect.height, bot:t.bodyRect.height-25, left:40-t.clickableRect.width, right:t.bodyRect.width-25};
}
if (me.button==0 && t.enabled){
t.body.addEventListener('mousemove', t.moveHandler, true);
t.body.addEventListener('mouseout', t.outHandler, true);
t.lastX = me.clientX;
t.lastY = me.clientY;
t.moving = true;
}
}
}
function CeventUp (that){
this.handler = handler;
var t = that;
function handler (me){
if (me.button==0 && t.moving) {
_doneMoving(t);
}
}
}
function _doneMoving (t){
t.body.removeEventListener('mousemove', t.moveHandler, true);
t.body.removeEventListener('mouseout', t.outHandler, true);
t.moving = false;
}
function CeventOut (that){
this.handler = handler;
var t = that;
function handler (me){
if (me.button==0){
t.moveHandler (me);
}
}
}
function CeventMove (that){
this.handler = handler;
var t = that;
function handler (me){
if (t.enabled && !t.wentOut){
var newTop = parseInt(t.theDiv.style.top) + me.clientY - t.lastY;
var newLeft = parseInt(t.theDiv.style.left) + me.clientX - t.lastX;
if (newTop < t.bounds.top){ // if out-of-bounds...
newTop = t.bounds.top;
_doneMoving(t);
} else if (newLeft < t.bounds.left){
newLeft = t.bounds.left;
_doneMoving(t);
} else if (newLeft > t.bounds.right){
newLeft = t.bounds.right;
_doneMoving(t);
} else if (newTop > t.bounds.bot){
newTop = t.bounds.bot;
_doneMoving(t);
}
t.theDiv.style.top = newTop + 'px';
t.theDiv.style.left = newLeft + 'px';
t.lastX = me.clientX;
t.lastY = me.clientY;
}
}
}
}
function getClientCoords(e) {
if (e == null)
return {
x: null,
y: null,
width: null,
height: null
};
var x = 0,
y = 0;
ret = {
x: 0,
y: 0,
width: e.clientWidth,
height: e.clientHeight
};
while (e.offsetParent != null) {
ret.x += e.offsetLeft;
ret.y += e.offsetTop;
e = e.offsetParent;
}
return ret;
}
var tabManager = {
tabList : {}, // {name, obj, div}
currentTab : null,
init : function (mainDiv){
var t = tabManager;
var sorter = [];
for (k in Tabs){
if (!Tabs[k].tabDisabled){
t.tabList[k] = {};
t.tabList[k].name = k;
t.tabList[k].tabColor = Tabs[k].tabColor?Tabs[k].tabColor:'blue';
t.tabList[k].obj = Tabs[k];
if (Tabs[k].tabLabel != null)
t.tabList[k].label = Tabs[k].tabLabel;
else
t.tabList[k].label = k;
if (Tabs[k].tabOrder != null)
sorter.push([Tabs[k].tabOrder, t.tabList[k]]);
else
sorter.push([1000, t.tabList[k]]);
t.tabList[k].div = document.createElement('div');
}
}
sorter.sort (function (a,b){return a[0]-b[0]});
var m = '';
m += '<ul class=STrChOULMenu>';
for (var i=0; i<sorter.length; i++) {
var color = sorter[i][1].tabColor;
m += '<li><input type=button id=nttc'+ sorter[i][1].name +' class="STrChOMenuButton h20 '+color+'" style="width:'+dlgWidthMenu+'px;" value="' + sorter[i][1].label + '"></LI>';
}
m+='</UL>';
mainPop.getTopDiv().innerHTML = m;
var contentDiv = document.createElement('div');
contentDiv.id = 'STrChOMain_content';
mainDiv.appendChild(contentDiv);
for (k in t.tabList) {
if (t.tabList[k].name == STrChOGeneralOptions.currentTab) t.currentTab =t.tabList[k];
document.getElementById('nttc'+ k).addEventListener('click', this.e_clickedTab, false);
var div = t.tabList[k].div;
div.style.display = 'none';
div.style.height = '100%';
contentDiv.appendChild(div);
try {
t.tabList[k].obj.init(div);
} catch (e){
div.innerHTML = "INIT ERROR: "+ e;
}
}
if (t.currentTab == null) t.currentTab = sorter[0][1];
t.currentTab.div.style.display = 'block';
t.setTabStyle(t.currentTab, true);
},
hideTab : function (){
var t = tabManager;
t.currentTab.obj.hide();
STrChOGeneralOptions.hidden = true;
//STrChOGeneralOptions.currentTab = null;
SAVESTrChOGeneralOptions();
},
showTab : function (){
var t = tabManager;
t.currentTab.obj.show();
STrChOGeneralOptions.hidden = false;
//STrChOGeneralOptions.currentTab = t.currentTab.name;
SAVESTrChOGeneralOptions();
},
setTabStyle : function (Tab, selected){
var e = document.getElementById ('nttc'+ Tab.name)
var c = Tab.tabColor?Tab.tabColor:"gray";
if (selected){
e.className = 'STrChOMenuButton h20 gray';
} else {
e.className = 'STrChOMenuButton h20 '+c;
}
},
e_clickedTab : function (e){
var t = tabManager;
mainPop.show (true);
if (e.target.id)
var newTab = t.tabList[e.target.id.substring(4)];
else
var newTab = t.tabList[e.target.parentNode.id.substring(4)];
if (t.currentTab.name != newTab.name){
t.setTabStyle (t.currentTab, false);
t.setTabStyle (newTab, true);
t.currentTab.obj.hide ();
t.currentTab.div.style.display = 'none';
t.currentTab = newTab;
STrChOGeneralOptions.currentTab = newTab.name;
newTab.div.style.display = 'block';
}
newTab.obj.show();
},
}
//TODO
function mouseEventTab (me){ // right-click on main button resets window
if (me.button == 2){
var c = getClientCoords(document.getElementById('main_engagement_tabs'));
mainPop.setLocation ({x: c.x+4, y: c.y+c.height});
}
}
function eventHideShow() {
if (mainPop.toggleHide(mainPop)) {
tabManager.showTab();
} else {
tabManager.hideTab();
}
}
function createButton(label) {
var a = document.createElement('a');
a.className = 'button20';
a.innerHTML = '<span style="color: #ff6">' + label + '</span>';
return a;
}
function AddMainTabLink(text, eventListener, mouseListener) {
var a = createButton(text);
a.className = 'tab';
var tabs = document.getElementById('main_engagement_tabs');
if (!tabs) {
tabs = document.getElementById('topnav_msg');
if (tabs)
tabs = tabs.parentNode;
}
if (tabs) {
var e = tabs.parentNode;
var gmTabs = null;
for (var i = 0; i < e.childNodes.length; i++) {
var ee = e.childNodes[i];
if (ee.tagName && ee.tagName == 'DIV' && ee.className == 'tabs_engagement' && ee.id != 'main_engagement_tabs') {
gmTabs = ee;
break;
}
}
if (gmTabs == null) {
gmTabs = document.createElement('div');
gmTabs.className = 'tabs_engagement';
tabs.parentNode.insertBefore(gmTabs, tabs);
gmTabs.style.whiteSpace = 'normal';
gmTabs.style.width = dlgWidth+'px';
}
gmTabs.style.height = '0%';
gmTabs.style.overflow = 'auto';
if (gmTabs.firstChild)
gmTabs.insertBefore(a, gmTabs.firstChild);
else
gmTabs.appendChild(a);
a.addEventListener('click', eventListener, false);
if (mouseListener != null)
a.addEventListener('mousedown', mouseListener, true);
return a;
}
return null;
}
function ScriptStartup () {
if (uW.STrChOLoaded) return;
var metc = getClientCoords(document.getElementById('main_engagement_tabs'));
if (metc.width==null || metc.width==0) {
setTimeout (ScriptStartup, 1000);
return;
}
STrChOMaxThroneQuality = CM.ThronePanelController.MAX_QUALITY;
STrChOMaxThroneLevel = CM.MAX_MASTERS_TOKEN_LEVEL;
STrChOMaxChampLevel = CM.CHAMPION.MAX_LEVELS;
STrChOMaxChampQuality = CM.CHAMPION.MAX_EFFECTS;
STrChOMaxChampions = Seed.champion.champions.size();
STrChOMaxInventoryRows = Seed.throne.rowNum;
STrChOMaxThroneCards = STrChOMaxInventoryRows * 5;
// initialise
// LOADallData(); //done earlier in the script
var styles = '';
styles += '#itemInventory {min-height: 420px; background-color:#884422;}'; //this expands the height of the champion hall inventory space
styles += '#itemFilter {min-height: 150px; background-color:#884422;}';
styles += 'tr.STrChOPopupTop td {background-color:#000000; border:1px solid #000000; height: 21px; padding:0px; color:#C92C0C;}';
styles += 'td {border: 0px;}';
styles += '.STrChOCPopMain {width:'+dlgWidth+'px; height:'+(dlgHeight-dlgHeightOffset)+'px; background-color:#F7F3E6; border:1px solid #000000; -moz-box-shadow:inset 0px 0px 10px #6a6a6a; -webkit-box-shadow:inset 0px 0px 10px #6a6a6a; box-shadow:inset 0px 0px 10px #6a6a6a; font-size:12px; color:#000000;}';
styles += '.STrChOPopup {border:5px ridge #666; opacity:1; -moz-box-shadow: 1px 1px 5px #000000; -webkit-box-shadow: 1px 1px 5px #000000; box-shadow: 1px 1px 5px #000000;}';
styles += '.STrChOHeader {width:100%; border:0px solid; border-color:#808080; background: -moz-linear-gradient(top, #A9A9A9, #333); background: -webkit-linear-gradient(top, #A9A9A9, #333); background: linear-gradient(top, #A9A9A9, #333); height: 22px; border-bottom:0px solid #000000;font-weight:bold;font-size:12px;opacity:0.75;margin-left:0px;margin-right:0px;margin-top:1px;margin-bottom:0px;padding-top:6px;padding-right:0px; vertical-align:middle;align:center; color:#000000; text-align:center;}';
styles += '.STrChOThroneOrganizer {position: static; overflow-x: auto; overflow-y: auto; width:100%; border:0px solid; border-color:#000000; background: -moz-linear-gradient(top, #A9A9A9, #333); background: -webkit-linear-gradient(top, #A9A9A9, #333); background: linear-gradient(top, #A9A9A9, #333); height: 16px;border-bottom:0px solid #000000;font-weight:bold;font-size:12px;opacity:0.75;margin-left:0px;margin-right:0px;margin-top:1px;margin-bottom:0px;padding-top:0px;padding-right:0px; vertical-align:middle;align:center; color:#000000; text-align:center;}';
styles += '.STrChOChampOrganizer {position: static; overflow-x: auto; overflow-y: auto; width:100%; border:0px solid; border-color:#000000; background: -moz-linear-gradient(top, #A9A9A9, #333); background: -webkit-linear-gradient(top, #A9A9A9, #333); background: linear-gradient(top, #A9A9A9, #333); height: 16px;border-bottom:0px solid #000000;font-weight:bold;font-size:12px;opacity:0.75;margin-left:0px;margin-right:0px;margin-top:1px;margin-bottom:0px;padding-top:0px;padding-right:0px; vertical-align:middle;align:center; color:#000000; text-align:center;}';
styles += '.STrChOThroneOrganizerSection {display:none; position:static; overflow-x:auto; overflow-y:hidden; }';
styles += '.STrChOChampOrganizerSection {display:none; position:static; overflow-x:auto; overflow-y:hidden; }';
styles += '.divNoWrap {white-space: nowrap; display:inline-block;}';
styles += '.indent5 {padding-left:5px}';
styles += '.STrChOButton {background-color:#000000; color:#ffffff;font-weight:bold;font-size:11px;-webkit-box-shadow: 0px 1px 3px rgba(0,0,0,0.5); -moz-box-shadow: 0px 1px 3px rgba(0,0,0,0.5); box-shadow: 0px 1px 3px rgba(0,0,0,0.5);}';
styles += '.STrChOSelect {background-color:#ffffff; color:#000000;font-weight:normal;width:100px;font-size:11px;-webkit-box-shadow: 0px 1px 3px rgba(0,0,0,0.5); -moz-box-shadow: 0px 1px 3px rgba(0,0,0,0.5); box-shadow: 0px 1px 3px rgba(0,0,0,0.5);}';
styles += '.STrChOTextbox {background-color:#ffffff; color:#000000;font-weight:normal;font-size:11px;-webkit-box-shadow: 0px 1px 3px rgba(0,0,0,0.5); -moz-box-shadow: 0px 1px 3px rgba(0,0,0,0.5); box-shadow: 0px 1px 3px rgba(0,0,0,0.5);}';
styles += '.STrChOCheckbox {-webkit-box-shadow: 0px 1px 3px rgba(0,0,0,0.5); -moz-box-shadow: 0px 1px 3px rgba(0,0,0,0.5); box-shadow: 0px 1px 3px rgba(0,0,0,0.5);}';
styles += '.STrChOLinks {font-family: tahoma,verdana,arial,sans-serif; font-size: 12px; font-variant: normal; font-style: normal; font-weight: normal; color: #000000; text-decoration: none;}';
styles += 'td.STrChOTDLinks {background-color:#FFFFCC;}';
styles += 'hr.STrChOHRCenter {width: 80%; align:center;}';
styles += '.STrChOLinksHeader {font-family: tahoma,verdana,arial,sans-serif; font-size: 12px; font-variant: normal; font-style: normal; font-weight: bold; color: #1a1a1a; text-decoration: none;}';
styles += '.STrChOLinksDesc {font-family: tahoma,verdana,arial,sans-serif; font-size: 12px; font-variant: normal; font-style: italic; font-weight: bold; color: #0000FF; text-decoration: none;}';
styles += '.STrChOULMenu {list-style-type: none;padding: 0;margin: 0;display: inline;}';
styles += '.STrChOSectionTable {padding:0px; border-spacing: 0px;width:100%;border:0px;}';
styles += '.STrChOReverseImage {-moz-transform: scaleX(-1); -o-transform: scaleX(-1); -webkit-transform: scaleX(-1); transform: scaleX(-1); filter: FlipH; -ms-filter: "FlipH";}';
styles += '.STrChOSection {display:none;}';
styles += 'table.STrChOStats tr td { background-color: #ffffff; white-space:nowrap; padding:5px; border-bottom:solid black 1px;}';
styles += 'table.STrChOStats tr td:last-child { border-right:solid black 1px; }';
styles += 'table.STrChOStats tr:first-child th { border-top:solid black 1px; }';
styles += 'table.STrChOStats tr td.td0 { background-color: white; }';
styles += 'table.STrChOStats tr td.td1 { background-color: #eeeeee; }';
styles += 'table.STrChOStats tr td.td2 { background-color: white; }';
styles += 'table.STrChOStats tr th {border:solid black 1px; border-top: none; background-color: #357; color: white; white-space:nowrap; padding:5px}';
styles += 'table.STrChOStats tr:last-child td:first-child, table.STrChOStats tr:last-child th:first-child { -moz-border-radius-bottomleft:10px; -webkit-border-bottom-left-radius:10px; border-bottom-left-radius:10px} ';
styles += 'table.STrChOStats tr:last-child td:last-child, table.STrChOStats tr:last-child th:last-child { -moz-border-radius-bottomright:10px; -webkit-border-bottom-right-radius:10px; border-bottom-right-radius:10px} ';
styles += 'table.STrChOStats tr:first-child th:first-child { -moz-border-radius-topleft:10px; -webkit-border-top-left-radius:10px; border-top-left-radius:10px} ';
styles += 'table.STrChOStats tr:first-child th:last-child { -moz-border-radius-topright:10px; -webkit-border-top-right-radius:10px; border-top-right-radius:10px} ';
styles += '.STrChOMenuButton { cursor: pointer; border-width: 2px; border-style: solid; -moz-border-top-colors: none; -moz-border-right-colors: none; -moz-border-bottom-colors: none; -moz-border-left-colors: none; -webkit-border-top-colors: none; -webkit-border-right-colors: none; -webkit-border-bottom-colors: none; -webkit-border-left-colors: none; border-top-colors: none; border-right-colors: none; border-bottom-colors: none; border-left-colors: none; border-image: none; border-color: #FDF4D2 #A69964 #A69964 #FDF4D2; color: #FFF; font: bold 10px Georgia; text-align: center; text-decoration: none; background-color: #C82622 !important; }';
styles += '.STrChOMenuButton.h20 { width: 123px; height: 20px; line-height: 14px; padding: 2px 7px; }';
styles += '.STrChOMenuButton.red { color: #FFF !important; background: -moz-linear-gradient(center top , #B600B6, #5D3A5D 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #747474, #474747 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #FF6E72, #320201 100%) repeat scroll 0% 0% transparent; }';
styles += '.STrChOMenuButton.green { background: -moz-linear-gradient(center top , #B600B6, #5D3A5D 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #747474, #474747 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #4AB900, #3F8803 100%) repeat scroll 0% 0% transparent; }';
styles += '.STrChOMenuButton.brown { background: -moz-linear-gradient(center top , #B600B6, #5D3A5D 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #FE6601, #B3561D 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #C58200, #976300 100%) repeat scroll 0% 0% transparent; }';
styles += '.STrChOMenuButton.blue { background: -moz-linear-gradient(center top , #B600B6, #5D3A5D 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #B600B6, #5D3A5D 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #014DAA, #00397E 100%) repeat scroll 0% 0% transparent; }';
styles += '#STrChOHammer { background-image: url("'+gameurl+'img/throne/modal/sm_hammer.png"); background-repeat: no-repeat; background-color: transparent; display: inline-block; width: 28px; height: 32px; margin: 2px; vertical-align: middle;}';
styles += 'div.STrChOHammer { background-image: url("'+gameurl+'img/throne/modal/sm_hammer.png"); background-repeat: no-repeat; background-color: transparent; display: inline-block; width: 28px; height: 32px; margin: 2px; vertical-align: middle;}';
styles += 'div.STrChOBroken { background-image: url("'+gameurl+'img/throne/modal/sm_fail_overlay.png"); background-repeat: no-repeat; background-color: transparent; display: inline-block; width: 28px; height: 32px; margin: 2px; vertical-align: middle;}';
styles += 'div.STrChOSuccess { background-image: url('+ success_image +'); background-repeat: no-repeat; background-color: transparent; display: inline-block; width: 28px; height: 32px; margin: 2px; vertical-align: middle;}';
styles += 'div.STrChOUpRow { display=inline; background-image: url('+ up_img +'); background-repeat: no-repeat; background-color: transparent; width: 28px; height: 24px; }';
styles += 'div.STrChOUpRow:hover { display=inline; background-image: url('+ up_glow +'); background-repeat: no-repeat; background-color: transparent; width: 28px; height: 24px; }';
styles += 'div.STrChORemove { display=inline; background-image: url('+ remove_img +'); background-repeat: no-repeat; background-color: transparent; width: 50px; height: 50px; }';
styles += 'div.STrChORemove:hover { display=inline; background-image: url('+ remove_glow +'); background-repeat: no-repeat; background-color: transparent; width: 50px; height: 50px; }';
styles += 'div.STrChODownRow { display=inline; background-image: url('+ down_img +'); background-repeat: no-repeat; background-color: transparent; width: 28px; height: 24px; }';
styles += 'div.STrChODownRow:hover { display=inline; background-image: url('+ down_glow +'); background-repeat: no-repeat; background-color: transparent; width: 28px; height: 24px; }';
styles += 'div.STrChOGoButton { display=inline; background-image: url('+ gbtn_img +'); background-repeat: no-repeat; background-color: transparent; width: 32px; height: 32px; margin: 0px; }';
styles += 'div.STrChOSaveSettings { display=inline; background-image: url("'+gameurl+'img/bonus_prestige.png"); background-repeat: no-repeat; background-color: transparent; display: inline-block; width: 20px; height: 20px; margin-left: 20px; vertical-align: middle; float:left}';
styles += 'div.STrChOLoadSettings { display=inline; background-image: url("'+gameurl+'img/bonus_att.png"); background-repeat: no-repeat; background-color: transparent; display: inline-block; width: 20px; height: 20px; margin-left: 2px; vertical-align: middle; float:left}';
styles += 'div.STrChOBlueBorder { border: 2px solid blue; }';
styles += 'div.STrChOYellowBorder { outline: 2px solid yellow; outline-offset:0px; }';
styles += '.swapBorderThrone { margin-right: -100%; margin-bottom: -100%; height: 99%; width: 99%; padding: 4%; background-image: url('+ success_image +'); background-repeat: no-repeat; background-size: 28px; display: inline-block;}';
styles += '.tagBorderThrone { margin-right: -100%; margin-bottom: -100%; height: 72%; width: 72%; padding: 4%; border: 3px solid ' + STrChOThronePresetData.tagColor + '; background: transparent;}';
styles += '.presetBorderThrone { margin-right: -100%; margin-bottom: -100%; height: 72%; width: 72%; padding: 4%; border: 3px solid ' + STrChOThronePresetData.presetColor + '; background: transparent;}';
styles += '.activeBorderThrone { margin-right: -100%; margin-bottom: -100%; height: 72%; width: 72%; padding: 4%; border: 3px solid ' + STrChOThronePresetData.activeColor + '; background: transparent;}';
styles += '.tagBorderChamp { margin-right: -100%; margin-bottom: -100%; height: 72%; width: 72%; padding: 4%; border: 3px solid ' + STrChOChampPresetData.tagColor + '; background: transparent;}';
styles += '.presetBorderChamp { margin-right: -100%; margin-bottom: -100%; height: 72%; width: 72%; padding: 4%; border: 3px solid ' + STrChOChampPresetData.presetColor + '; background: transparent;}';
styles += '.activeBorderChamp { margin-right: -100%; margin-bottom: -100%; height: 72%; width: 72%; padding: 4%; border: 3px solid ' + STrChOChampPresetData.activeColor + '; background: transparent;}';
styles += 'div.champ_item_section ul.effects { margin: 3px 0 0 0; padding: 0; list-style: none; }';
styles += 'div.champ_item_section ul.effects li.effect { padding:0;font-weight:bold;font-size:10px; }';
styles += 'div.champ_item_section ul.effects li.effect.statChamp { color: #3F2300; }';
styles += 'div.champ_item_section ul.effects li.effect.statTroop { color: #1751A5; }';
styles += 'div.champ_item_section ul.effects li.effect.statChamp.disabled { color: #B9A48B; }';
styles += 'div.champ_item_section ul.effects li.effect.statTroop.disabled { color: #A5B1E5; }';
styles += 'div.STrChOCard {width: 180px; height: 200px; font:bold 8px Georiga; overflow: hidden;}';
var icon_size = '50px 50px';
styles += 'div.STrChOCard div.description>div{width:50px;height:50px; }';
styles += 'div.STrChOCard div.description div.briton.advisor{background:transparent url("'+gameurl+'img/throne/icons/70/briton_advisor_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.banner{background:transparent url("'+gameurl+'img/throne/icons/70/briton_banner_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.chair{background:transparent url("'+gameurl+'img/throne/icons/70/briton_chair_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.table{background:transparent url("'+gameurl+'img/throne/icons/70/briton_table_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.window{background:transparent url("'+gameurl+'img/throne/icons/70/briton_window_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.trophy{background:transparent url("'+gameurl+'img/throne/icons/70/briton_trophy_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.hero{background:transparent url("'+gameurl+'img/throne/icons/70/briton_hero_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.statue{background:transparent url("'+gameurl+'img/throne/icons/70/briton_statue_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.candelabrum{background:transparent url("'+gameurl+'img/throne/icons/70/briton_candelabrum_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.pet{background:transparent url("'+gameurl+'img/throne/icons/70/briton_pet_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.tapestry{background:transparent url("'+gameurl+'img/throne/icons/70/briton_tapestry_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.pillar{background:transparent url("'+gameurl+'img/throne/icons/70/briton_pillar_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.weapon{background:transparent url("'+gameurl+'img/champion_hall/wondrous_weapon_briton_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.chest{background:transparent url("'+gameurl+'img/champion_hall/wondrous_chestArmor_briton_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.helm{background:transparent url("'+gameurl+'img/champion_hall/wondrous_helmet_briton_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.boots{background:transparent url("'+gameurl+'img/champion_hall/wondrous_feet_briton_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.shield{background:transparent url("'+gameurl+'img/champion_hall/wondrous_shield_briton_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.ring{background:transparent url("'+gameurl+'img/champion_hall/wondrous_ring1_briton_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.pendant{background:transparent url("'+gameurl+'img/champion_hall/wondrous_pendant_briton_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.briton.cloak{background:transparent url("'+gameurl+'img/champion_hall/wondrous_cloak_briton_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.advisor{background:transparent url("'+gameurl+'img/throne/icons/70/druid_advisor_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.banner{background:transparent url("'+gameurl+'img/throne/icons/70/druid_banner_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.chair{background:transparent url("'+gameurl+'img/throne/icons/70/druid_chair_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.table{background:transparent url("'+gameurl+'img/throne/icons/70/druid_table_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.window{background:transparent url("'+gameurl+'img/throne/icons/70/druid_window_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.trophy{background:transparent url("'+gameurl+'img/throne/icons/70/druid_trophy_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.hero{background:transparent url("'+gameurl+'img/throne/icons/70/druid_hero_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.statue{background:transparent url("'+gameurl+'img/throne/icons/70/druid_statue_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.candelabrum{background:transparent url("'+gameurl+'img/throne/icons/70/druid_candelabrum_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.pet{background:transparent url("'+gameurl+'img/throne/icons/70/druid_pet_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.tapestry{background:transparent url("'+gameurl+'img/throne/icons/70/druid_tapestry_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.pillar{background:transparent url("'+gameurl+'img/throne/icons/70/druid_pillar_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.weapon{background:transparent url("'+gameurl+'img/champion_hall/wondrous_weapon_druid_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.chest{background:transparent url("'+gameurl+'img/champion_hall/wondrous_chestArmor_druid_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.helm{background:transparent url("'+gameurl+'img/champion_hall/wondrous_helmet_druid_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.boots{background:transparent url("'+gameurl+'img/champion_hall/wondrous_feet_druid_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.shield{background:transparent url("'+gameurl+'img/champion_hall/wondrous_shield_druid_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.ring{background:transparent url("'+gameurl+'img/champion_hall/wondrous_ring1_druid_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.pendant{background:transparent url("'+gameurl+'img/champion_hall/wondrous_pendant_druid_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.druid.cloak{background:transparent url("'+gameurl+'img/champion_hall/wondrous_cloak_druid_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.advisor{background:transparent url("'+gameurl+'img/throne/icons/70/fey_advisor_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.banner{background:transparent url("'+gameurl+'img/throne/icons/70/fey_banner_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.chair{background:transparent url("'+gameurl+'img/throne/icons/70/fey_chair_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.table{background:transparent url("'+gameurl+'img/throne/icons/70/fey_table_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.window{background:transparent url("'+gameurl+'img/throne/icons/70/fey_window_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.trophy{background:transparent url("'+gameurl+'img/throne/icons/70/fey_trophy_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.hero{background:transparent url("'+gameurl+'img/throne/icons/70/fey_hero_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.statue{background:transparent url("'+gameurl+'img/throne/icons/70/fey_statue_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.candelabrum{background:transparent url("'+gameurl+'img/throne/icons/70/fey_candelabrum_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.pet{background:transparent url("'+gameurl+'img/throne/icons/70/fey_pet_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.tapestry{background:transparent url("'+gameurl+'img/throne/icons/70/fey_tapestry_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.pillar{background:transparent url("'+gameurl+'img/throne/icons/70/fey_pillar_normal_1_6.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.weapon{background:transparent url("'+gameurl+'img/champion_hall/wondrous_weapon_fey_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.chest{background:transparent url("'+gameurl+'img/champion_hall/wondrous_chestArmor_fey_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.helm{background:transparent url("'+gameurl+'img/champion_hall/wondrous_helmet_fey_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.boots{background:transparent url("'+gameurl+'img/champion_hall/wondrous_feet_fey_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.shield{background:transparent url("'+gameurl+'img/champion_hall/wondrous_shield_fey_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.ring{background:transparent url("'+gameurl+'img/champion_hall/wondrous_ring1_fey_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.pendant{background:transparent url("'+gameurl+'img/champion_hall/wondrous_pendant_fey_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard div.description div.fey.cloak{background:transparent url("'+gameurl+'img/champion_hall/wondrous_cloak_fey_30x30.png") top left no-repeat; background-size: ' + icon_size + ';}';
styles += 'div.STrChOCard .disabled{opacity:.5;}';
styles += 'div.STrChOCard ul{margin:0px;padding:0;list-style:none;}';
styles += 'div.STrChOCard li{padding:0px 0 0 0px;color:#3f2300;font-weight:bold;font-size:10px;}'; //tooltip
styles += 'div.STrChOCard>div{float:left;border:1px solid #a56631;margin:0px;padding:0px;width:200px; height:300px; background:transparent url("'+gameurl+'img/modal/modal_med_bg_4.png") -200px 0 no-repeat;}'; //tooltip
styles += 'div.STrChOTitle{font:bold 11px Georgia;border-bottom:1px solid #703200;padding:4px 3px 5px 8px;background:transparent url("'+gameurl+'img/throne/panel/modal/item_bg.png") -20px -100px no-repeat;}'; //tooltip
styles += 'div.STrChOTitle span.icon{background:transparent url("'+gameurl+'img/throne/modal/equip.png") top right no-repeat;display:block;height:20px;width:20px;top:12px;right:12px;position:absolute;}';
styles += 'div.description {overflow:hidden;border-bottom:1px solid #703200;}';
styles += 'div.portrait {float:left; border:3px solid #deaf69;margin-right:8px;}';
styles += 'div.description>ul{float:left;margin:3px 0 0 0;padding:0;}';
styles += 'div.description>ul li{padding:0;font-weight:bold;font-size:10px;text-transform:capitalize;}'; //tooltip
styles += '.STrChOCastleButton {outline:0px; margin-left:0px; margin-right:0px; width:24px; height:26px; font-size:12px; font-weight:bold; }';
styles += '.STrChOCastleButton:hover {background-image:url("'+ URL_CASTLE_BUTTON_SELECT +'")}';
styles += '.STrChOCastleButtonNot {background-image:url("'+ URL_CASTLE_BUTTON +'")}';
styles += '.STrChOCastleButtonSelect {background-image:url("'+ URL_CASTLE_BUTTON_SELECT +'")}';
styles += 'div.STrChOContextMenu {background-color: #999966; z-index: 10000000; position: absolute; height: 400px; padding: 4px 4px 4px 4px; font: bold 11px Georgia; border-width: 2px; border-style: solid; text-align: center; margin: auto;}';// overflow-y: auto; overflow-x: hidden;}';
styles += 'div.STrChOContextMenuItem {height: 20px; width: 140px; margin-bottom: 2px; cursor: pointer; text-decoration: none; font: bold 12px Georgia; text-align: center; border-style: solid; border-width: 2px; background-color: #B72828 !important; vertical-align: middle; color: #ffffff; border-color: transparent; padding-top: 4px;}';
styles += 'div.STrChOContextMenuSubItem {height: 20px; width: 140px; margin-bottom: 2px; cursor: pointer; text-decoration: none; font: bold 12px Georgia; text-align: center; border-style: solid; border-width: 2px; background-color: #B72828 !important; vertical-align: middle; color: #ffffff; border-color: transparent; padding-top: 4px;}';
styles += 'div.STrChORed {background: -moz-linear-gradient(center top , #FF6E72, #320201 100%) repeat scroll 0% 0% transparent;background: -webkit-linear-gradient(top , #FF6E72, #320201 100%) repeat scroll 0% 0% transparent;background: linear-gradient(center top , #FF6E72, #320201 100%) repeat scroll 0% 0% transparent;}';
styles += 'div.STrChORed:hover {background: -moz-linear-gradient(center top , #320201, #FF6E72 100%) repeat scroll 0% 0% transparent;background: -webkit-linear-gradient(top , #320201, #FF6E72 100%) repeat scroll 0% 0% transparent;background: linear-gradient(center top , #320201, #FF6E72 100%) repeat scroll 0% 0% transparent;}';
styles += 'div.STrChOGreen {background: -moz-linear-gradient(center top , #4AB900, #3F8803 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #4AB900, #3F8803 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #4AB900, #3F8803 100%) repeat scroll 0% 0% transparent; }';
styles += 'div.STrChOGreen:hover {background: -moz-linear-gradient(center top , #3F8803, #4AB900 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #3F8803, #4AB900 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #3F8803, #4AB900 100%) repeat scroll 0% 0% transparent; }';
styles += 'div.STrChOBlue {background: -moz-linear-gradient(center top , #014DAA, #00397E 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #014DAA, #00397E 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #014DAA, #00397E 100%) repeat scroll 0% 0% transparent; }';
styles += 'div.STrChOBlue:hover {background: -moz-linear-gradient(center top , #00397E, #014DAA 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #00397E, #014DAA 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #00397E, #014DAA 100%) repeat scroll 0% 0% transparent; }';
styles += 'div.STrChOBrown {background: -moz-linear-gradient(center top , #976300, #C58200 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #976300, #C58200 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #976300, #C58200 100%) repeat scroll 0% 0% transparent; }';
styles += 'div.STrChOBrown:hover {background: -moz-linear-gradient(center top , #C58200, #976300 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #C58200, #976300 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #C58200, #976300 100%) repeat scroll 0% 0% transparent; }';
styles += 'div.STrChODisabled {background: -moz-linear-gradient(center top , #5D5D5D, #171717 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #5D5D5D, #171717 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #5D5D5D, #171717 100%) repeat scroll 0% 0% transparent; }';
styles += 'div.STrChODisabled:hover {background: -moz-linear-gradient(center top , #5D5D5D, #171717 100%) repeat scroll 0% 0% transparent; background: -webkit-linear-gradient(top , #5D5D5D, #171717 100%) repeat scroll 0% 0% transparent; background: linear-gradient(center top , #5D5D5D, #171717 100%) repeat scroll 0% 0% transparent; }';
styles += 'div.STrChOContextHidden {display: none; }';
styles += 'div.STrChOContextVisible {display: block; }';
if (STrChOGeneralOptions.usedCityNum && STrChOGeneralOptions.usedCityNum > Seed.cities.length -1 ) STrChOGeneralOptions.usedCityNum = 0;
if (STrChOGeneralOptions.salvageCityNum && STrChOGeneralOptions.salvageCityNum > Seed.cities.length -1 ) STrChOGeneralOptions.salvageCityNum = 0;
installThroneHandlerFunctions(); //installHandlerFunctions
setCities();
//window.addEventListener('unload', onUnload, false);
window.addEventListener('beforeunload', onUnload, false);
CM.cheatDetector.detect = foo;
AddMainTabLink('Spawn TrChO', eventHideShow, mouseEventTab);
ThroneAttachTab();
alterChampHall();
if (!STrChOGeneralOptions.xPos) STrChOGeneralOptions.xPos=0;
if (!STrChOGeneralOptions.yPos) STrChOGeneralOptions.yPos=30;
//mainPop = new STrChOPopup('STrChOMain', 0, 30, true, function (){ tabManager.hideTab(); });
mainPop = new STrChOPopup ('STrChOMain', STrChOGeneralOptions.xPos, STrChOGeneralOptions.yPos, true, function (){ tabManager.hideTab(); });
mainPop.getMainDiv().innerHTML = '<STYLE>'+ styles +'</style>';
tabManager.init (mainPop.getMainDiv());
if (!STrChOGeneralOptions.hidden) eventHideShow();
setUpgradeColor();
STrChOThroneDisplayTimer = setInterval(ThroneUpdateTimerDisplay, 1000);
ReplaceToolTips();
uW.STrChOLoaded = true;
}
var foo = function() { };
/*********************************** TABS ***********************************/
Tabs.throneUpgrader = {
tabOrder: 101,
tabLabel: 'UPGRADER',
tabColor: 'red',
tabHeader: 'THRONE ROOM UPGRADER',
myDiv: null,
repairId: 0,
repairEnd: 0,
timerH: null,
clearTimerH: null,
speedup: 0,
upgradePath: {
0: { maxLev: 2, nextQual: 2 },
1: { maxLev: 2, nextQual: 2 },
2: { maxLev: 3, nextQual: 4 },
3: { maxLev: 3, nextQual: 4 },
4: { maxLev: 4, nextQual: 5 },
5: { maxLev: 5, nextQual: 6 }
},
init: function (div) {
var t = Tabs.throneUpgrader;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '<div class=STrChOSaveSettings id=STrChOThroneUpgraderSaveSettings title="Save Upgrader Settings"></div><div class=STrChOLoadSettings id=STrChOThroneUpgraderLoadSettings title="Load Upgrader Settings"></div></div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
if (STrChOThroneUpgradeData.active) {
m += '<td width=33%><input id=STrChOThroneUpgradePower type=button class=STrChOButton value="Upgrader = ON"></td>';
} else {
m += '<td width=33%><input id=STrChOThroneUpgradePower type=button class=STrChOButton value="Upgrader = OFF"></td>';
}
m += '<td width=33%><div class=divNoWrap><input class=STrChOCheckbox id=STrChOThroneOneItem type=checkbox ' + (STrChOThroneQueueData.oneItem ? ' CHECKED' : '') + '/>Upgrade 1 At A Time</div></td>';
m += '<td width=33%><div class=divNoWrap align=center id=STrChOThroneAetherDisplay></div></td>';
m += '</tr>';
m += '<tr><td colspan=3><hr class=STrChOHRCenter></td></tr>';
m += '<tr><td colspan=3><div class=indent5 id=STrChOThroneUpgradeStatus><br></div></td></tr>';
m += '<tr><td colspan=3><div class=indent5 id=STrChOThroneLastResult><br></div></td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> SPEED UPS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOThroneHourglassLevelSpecific ' + (STrChOThroneUpgradeData.hourglassLevelSpecific ? "CHECKED" : "") + '>Only use hourglass for levels ';
m += '<select class=STrChOSelect id=STrChOThroneHourglassLevel>';
for (i = 1; i < STrChOMaxThroneLevel; i++) m += '<option value=' + i + ' ' + (STrChOThroneUpgradeData.hourglassLevel == i ? 'SELECTED' : '') + '>' + i + '</option>';
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOThroneHourglassQualitySpecific ' + (STrChOThroneUpgradeData.hourglassQualitySpecific ? "CHECKED" : "") + '>Only use hourglass for qualities ';
m += '<select class=STrChOSelect id=STrChOThroneHourglassQuality>';
for (i = 1; i <= STrChOMaxThroneQuality-1; i++) m += '<option value=' + i + ' ' + (STrChOThroneUpgradeData.hourglassQuality == i ? 'SELECTED' : '') + '>' + throneCardQualities[i].capitalizeFirstLetter() + '</option>';
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[1] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneUseSH ' + (STrChOThroneUpgradeData.useSH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[1] + ' (<div class=divNoWrap id=STrChOThroneUseSHLabel><font' + (uW.ksoItems[1].count < 100 ? ' color=red>' : '>') + uW.ksoItems[1].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[2] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneUseKH ' + (STrChOThroneUpgradeData.useKH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[2] + ' (<div class=divNoWrap id=STrChOThroneUseKHLabel><font' + (uW.ksoItems[2].count < 100 ? ' color=red>' : '>') + uW.ksoItems[2].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[3] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneUseGH ' + (STrChOThroneUpgradeData.useGH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[3] + ' (<div class=divNoWrap id=STrChOThroneUseGHLabel><font' + (uW.ksoItems[3].count < 100 ? ' color=red>' : '>') + uW.ksoItems[3].count + '</font></div>)</div></td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[4] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneUseMH ' + (STrChOThroneUpgradeData.useMH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[4] + ' (<div class=divNoWrap id=STrChOThroneUseMHLabel><font' + (uW.ksoItems[4].count < 100 ? ' color=red>' : '>') + uW.ksoItems[4].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[5] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneUseAH ' + (STrChOThroneUpgradeData.useAH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[5] + ' (<div class=divNoWrap id=STrChOThroneUseAHLabel><font' + (uW.ksoItems[5].count < 100 ? ' color=red>' : '>') + uW.ksoItems[5].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[6] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneUseWH ' + (STrChOThroneUpgradeData.useWH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[6] + ' (<div class=divNoWrap id=STrChOThroneUseWHLabel><font' + (uW.ksoItems[6].count < 100 ? ' color=red>' : '>') + uW.ksoItems[6].count + '</font></div>)</div></td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[7] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneUseDH ' + (STrChOThroneUpgradeData.useDH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[7] + ' (<div class=divNoWrap id=STrChOThroneUseDHLabel><font' + (uW.ksoItems[7].count < 100 ? ' color=red>' : '>') + uW.ksoItems[7].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[8] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneUseEH ' + (STrChOThroneUpgradeData.useEH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[8] + ' (<div class=divNoWrap id=STrChOThroneUseEHLabel><font' + (uW.ksoItems[8].count < 100 ? ' color=red>' : '>') + uW.ksoItems[8].count + '</font></div>)</div></td>';
m += '<td/>';
m += '</tr>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOThroneOverrideSpeedUps ' + (STrChOThroneUpgradeData.overrideSpeedUp ? "CHECKED" : "") + '>Override hourglasses by using ';
m += '<select class=STrChOSelect id=STrChOThroneSpeedUp>';
m += '<option value=0>None</option>';
for (gls in STrChOHourGlassName) m += '<option value=' + gls + ' ' + (STrChOThroneUpgradeData.useSpeedUp == gls ? 'SELECTED' : '') + '>' + STrChOHourGlassName[gls] + '</option>';
m += '</select> every time</td>';
m += '</tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> BOOST ITEMS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
m += '<td><input class=STrChOCheckbox type=checkbox ' + (STrChOThroneUpgradeData.useLPS ? "CHECKED" : "") + ' id=STrChOThroneUseLPS><div class=divNoWrap>Lesser Protection Stones (<div class=divNoWrap id=STrChOThroneUseLPSLabel>' + uW.ksoItems[20001].count + '</div>)</div></td>';
m += '<td><input class=STrChOCheckbox type=checkbox ' + (STrChOThroneUpgradeData.usePS ? "CHECKED" : "") + ' id=STrChOThroneUsePS><div class=divNoWrap>Protection Stones (<div class=divNoWrap id=STrChOThroneUsePSLabel>' + uW.ksoItems[20002].count + '</div>)</div></td>';
m += '<td/>';
m += '</tr>';
m += '<tr>';
//m += '<td><input class=STrChOCheckbox type=checkbox ' + (STrChOThroneUpgradeData.useLORB ? "CHECKED" : "") + ' id=trUseLORB><div style="white-space:nowrap;display:inline-block;">Lesser Mystic Orb (<div style="white-space:nowrap;display:inline-block;" id=trUseLORBLabel>' + Seed.items['i20003'] + '</div>)</div></td>';
m += '<td><input class=STrChOCheckbox type=checkbox ' + (STrChOThroneUpgradeData.useORB ? "CHECKED" : "") + ' id=STrChOThroneUseORB><div class=divNoWrap>Mystic Orb (<div class=divNoWrap id=STrChOThroneUseORBLabel>' + uW.ksoItems[20004].count + '</div>)</div></td>';
m += '<td/>';
m += '<td>Quality <select class=STrChOSelect id=STrChOThroneUseQuality>';
for (i = 0; i <= STrChOMaxThroneQuality-1; i++) m += '<option value="' + i + '" ' + (STrChOThroneUpgradeData.useQuality == i ? 'SELECTED' : '') + '>' + throneCardQualities[i].capitalizeFirstLetter() + '</option>';
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += '<td><input class=STrChOCheckbox type=checkbox ' + (STrChOThroneUpgradeData.useLLT ? "CHECKED" : "") + ' id=STrChOThroneUseLLT><div class=divNoWrap>Lesser Tokens (<div class=divNoWrap id=STrChOThroneUseLLTLabel>' + uW.ksoItems[20005].count + '</div>)</div></td>';
m += '<td><input class=STrChOCheckbox type=checkbox ' + (STrChOThroneUpgradeData.useLT ? "CHECKED" : "") + ' id=STrChOThroneUseLT><div class=divNoWrap>Lucky Tokens (<div class=divNoWrap id=STrChOThroneUseLTLabel>' + uW.ksoItems[20006].count + '</div>)</div></td>';
m += '<td>Level <select class=STrChOSelect id=STrChOThroneUseLevel>';
for (i = 1; i <= STrChOMaxThroneLevel-1; i++) m += '<option value="' + i + '" ' + (STrChOThroneUpgradeData.useLevel == i ? 'SELECTED' : '') + '>+' + i + '</option>';
m += '</select> & Higher</td>';
m += '</tr>';
m += '<tr><td colspan=3>';
m += '<input class=STrChOCheckbox id=STrChOThroneUseAutoTokens type=checkbox ' + (STrChOThroneUpgradeData.useAutoTokens ? 'CHECKED ' : '') + '/> Use Auto Masters Upgrade When Min Level ';
m += '<select id=STrChOThroneUseAutoTokensMin class=STrChOSelect>';
for (var lvl = 0; lvl < STrChOMaxThroneLevel; lvl++) m += '<option value="' + lvl + '" ' + (STrChOThroneUpgradeData.useAutoTokensMin == lvl ? 'SELECTED ' : '') + '>+' + lvl + '</option>';
m += '</select> & Max Level ';
m += '<select id=STrChOThroneUseAutoTokensMax class=STrChOSelect>';
for (var lvl = 0; lvl < STrChOMaxThroneLevel; lvl++) m += '<option value="' + lvl + '" ' + (STrChOThroneUpgradeData.useAutoTokensMax == lvl ? 'SELECTED ' : '') + '>+' + lvl + '</option>';
m += '</select>';
m += '</td></tr> ';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> UPGRADE ITEMS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
m += '<td colspan=4>Enhance All Quality <select class=STrChOSelect id=STrChOThroneEnhanceAllQuality>';
for (i = 0; i <= STrChOMaxThroneQuality-1; i++) m += '<option value="' + i + '">' + throneCardQualities[i].capitalizeFirstLetter() + '</option>';
m += '</select> To Quality <select class=STrChOSelect id=STrChOThroneEnhanceAllQualityTo>';
for (i = 1; i <= STrChOMaxThroneQuality; i++) m += '<option value="' + i + '">' + throneCardQualities[i].capitalizeFirstLetter() + '</option>';
m += '</select> <input class=STrChOButton type=button value="Add" id=STrChOThroneEnhanceAddAllQuality></td>';
m += '</tr>';
m += '<tr><td colspan=4>Upgrade All Cards Less To Level <select class=STrChOSelect id=STrChOThroneUpgradeAddAllLevelMaxTo>';
for (i = 1; i <= STrChOMaxThroneLevel; i++) m += '<option value="' + i + '"> +' + i + '</option>';
m += '</select> <input class=STrChOButton type=button value="Add" id=STrChOThroneUpgradeAddAllLevelMax></td></tr>';
m += '<tr>';
m += '<td colspan=4>Upgrade All Level <select class=STrChOSelect id=STrChOThroneUpgradeAllLevel>';
for (i = 0; i <= STrChOMaxThroneLevel-1; i++) m += '<option value="' + i + '"> +' + i + '</option>';
m += '</select> To Level <select class=STrChOSelect id=STrChOThroneUpgradeAllLevelTo>';
for (i = 1; i <= STrChOMaxThroneLevel; i++) m += '<option value="' + i + '"> +' + i + '</option>';
m += '</select> <input class=STrChOButton type=button value="Add" id=STrChOThroneUpgradeAddAllLevel></td>';
m += '</tr>';
m += '<tr>';
m += '<td class=divNoWrap>Item: <select class=STrChOSelect style="white-space:nowrap;display:inline-block;max-width: 200px;" id=STrChOThroneUpgradeList>';
m += '<option value="0">--Items--</option>';
for (ThroneID in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[ThroneID];
m += '<option value="' + ThroneID + '">' + throne_item.name + '</option>';
}
m += '</select> ';
m += 'Action: <select class=STrChOSelect style="white-space:nowrap;display:inline-block;" id=STrChOThroneAction>';
m += '<option value="upgrade">Upgrade</option>';
m += '<option value="enhance">Enhance</option>';
m += '<option value="both">Both</option>';
m += '</select> ';
m += '<div class=divNoWrap id=STrChOThroneMaxDiv></div> ';
m += '<input class=STrChOButton id=STrChOThroneQueueAdd type=button value="Add"/>';
m += '</td>';
m += '</tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader>UPGRADE LIST</div>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td colspan=4>';
m += '<div id=STrChOThroneQScroll style="position: static; width: 100%; height: 340px; overflow-x: auto; overflow-y: auto;">';
m += '<div id=STrChOThroneQDiv></div>';
m += '</div>';
m += '</td></tr>';
m += '<tr><td colspan=4><input class=STrChOButton style="float: left;" id=STrChOThroneClearQ type=button value="Clear Queue"></tr>';
m += '</table>';
m += '</div>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOThroneUpgraderSaveSettings').addEventListener('click', function () {
SaveSettingsToFile(STrChOThroneUpgradeData);
}, false);
document.getElementById('STrChOThroneUpgraderLoadSettings').addEventListener('click', function () {
var loader = document.getElementById('STrChOSettingsFile');
loader.addEventListener('change', function () {
LoadSettingsFromFile(STrChOThroneUpgradeData, Tabs.throneUpgrader);
}, false);
loader.click();
}, false);
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
document.getElementById('STrChOThroneUseAutoTokens').addEventListener('change', function () {
STrChOThroneUpgradeData.useAutoTokens = document.getElementById('STrChOThroneUseAutoTokens').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useAutoTokens) t.doAction();
}, false);
document.getElementById('STrChOThroneUseAutoTokensMin').addEventListener('change', function () {
STrChOThroneUpgradeData.useAutoTokensMin = document.getElementById('STrChOThroneUseAutoTokensMin').value;
SAVESTrChOThroneUpgradeData();
}, false);
document.getElementById('STrChOThroneUseAutoTokensMax').addEventListener('change', function () {
STrChOThroneUpgradeData.useAutoTokensMax = document.getElementById('STrChOThroneUseAutoTokensMax').value;
SAVESTrChOThroneUpgradeData();
}, false);
document.getElementById('STrChOThroneUpgradePower').addEventListener('click', function () {
t.togglePower(this);
}, false);
document.getElementById('STrChOThroneHourglassLevelSpecific').addEventListener('change', function () {
STrChOThroneUpgradeData.hourglassLevelSpecific = document.getElementById('STrChOThroneHourglassLevelSpecific').checked;
SAVESTrChOThroneUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOThroneHourglassQualitySpecific').addEventListener('change', function () {
STrChOThroneUpgradeData.hourglassQualitySpecific = document.getElementById('STrChOThroneHourglassQualitySpecific').checked;
SAVESTrChOThroneUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOThroneOverrideSpeedUps').addEventListener('change', function () {
STrChOThroneUpgradeData.overrideSpeedUp = document.getElementById('STrChOThroneOverrideSpeedUps').checked;
SAVESTrChOThroneUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOThroneUseWH').addEventListener('change', function () {
STrChOThroneUpgradeData.useWH = document.getElementById('STrChOThroneUseWH').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useWH) t.doAction();
}, false);
document.getElementById('STrChOThroneUseDH').addEventListener('change', function () {
STrChOThroneUpgradeData.useDH = document.getElementById('STrChOThroneUseDH').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useDH) t.doAction();
}, false);
document.getElementById('STrChOThroneUseEH').addEventListener('change', function () {
STrChOThroneUpgradeData.useEH = document.getElementById('STrChOThroneUseEH').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useEH) t.doAction();
}, false);
document.getElementById('STrChOThroneUseSH').addEventListener('change', function () {
STrChOThroneUpgradeData.useSH = document.getElementById('STrChOThroneUseSH').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useSH) t.doAction();
}, false);
document.getElementById('STrChOThroneUseKH').addEventListener('change', function () {
STrChOThroneUpgradeData.useKH = document.getElementById('STrChOThroneUseKH').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useKH) t.doAction();
}, false);
document.getElementById('STrChOThroneUseGH').addEventListener('change', function () {
STrChOThroneUpgradeData.useGH = document.getElementById('STrChOThroneUseGH').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useGH) t.doAction();
}, false);
document.getElementById('STrChOThroneUseMH').addEventListener('change', function () {
STrChOThroneUpgradeData.useMH = document.getElementById('STrChOThroneUseMH').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useMH) t.doAction();
}, false);
document.getElementById('STrChOThroneUseAH').addEventListener('change', function () {
STrChOThroneUpgradeData.useAH = document.getElementById('STrChOThroneUseAH').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useAH) t.doAction();
}, false);
document.getElementById('STrChOThroneUseQuality').addEventListener('change', function () {
STrChOThroneUpgradeData.useQuality = document.getElementById('STrChOThroneUseQuality').value;
SAVESTrChOThroneUpgradeData();
}, false);
document.getElementById('STrChOThroneUseLevel').addEventListener('change', function () {
STrChOThroneUpgradeData.useLevel = document.getElementById('STrChOThroneUseLevel').value;
SAVESTrChOThroneUpgradeData();
}, false);
document.getElementById('STrChOThroneSpeedUp').addEventListener('change', function () {
STrChOThroneUpgradeData.useSpeedUp = document.getElementById('STrChOThroneSpeedUp').value;
SAVESTrChOThroneUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOThroneHourglassLevel').addEventListener('change', function () {
STrChOThroneUpgradeData.hourglassLevel = document.getElementById('STrChOThroneHourglassLevel').value;
SAVESTrChOThroneUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOThroneHourglassQuality').addEventListener('change', function () {
STrChOThroneUpgradeData.hourglassQuality = document.getElementById('STrChOThroneHourglassQuality').value;
SAVESTrChOThroneUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOThroneUseORB').addEventListener('change', function () {
STrChOThroneUpgradeData.useORB = document.getElementById('STrChOThroneUseORB').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useORB) t.doAction();
}, false);
document.getElementById('STrChOThroneUseLPS').addEventListener('change', function () {
STrChOThroneUpgradeData.useLPS = document.getElementById('STrChOThroneUseLPS').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useLPS) t.doAction();
}, false);
document.getElementById('STrChOThroneUsePS').addEventListener('change', function () {
STrChOThroneUpgradeData.usePS = document.getElementById('STrChOThroneUsePS').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.usePS) t.doAction();
}, false);
document.getElementById('STrChOThroneUseLT').addEventListener('change', function () {
STrChOThroneUpgradeData.useLT = document.getElementById('STrChOThroneUseLT').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useLT) t.doAction();
}, false);
document.getElementById('STrChOThroneUseLLT').addEventListener('change', function () {
STrChOThroneUpgradeData.useLLT = document.getElementById('STrChOThroneUseLLT').checked;
SAVESTrChOThroneUpgradeData();
if (STrChOThroneUpgradeData.useLLT) t.doAction();
}, false);
document.getElementById('STrChOThroneQueueAdd').addEventListener('click', function () {
t.addThroneQueue();
}, false);
document.getElementById('STrChOThroneOneItem').addEventListener('change', function () {
STrChOThroneQueueData.oneItem = document.getElementById('STrChOThroneOneItem').checked;
SAVESTrChOThroneQueueData();
});
document.getElementById('STrChOThroneClearQ').addEventListener('click', function () {
STrChOThroneQueueData.list = [];
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
}, false);
document.getElementById('STrChOThroneEnhanceAddAllQuality').addEventListener('click', function () {
var low_level = parseInt(document.getElementById('STrChOThroneEnhanceAllQuality').value);
var high_level = parseInt(document.getElementById('STrChOThroneEnhanceAllQualityTo').value);
if (low_level >= high_level) return;
for (ThroneId in uW.kocThroneItems) {
var ThroneItem = uW.kocThroneItems[ThroneId];
if (ThroneItem.quality == low_level) {
var qItem = new QueueItem();
qItem.item = ThroneId;
qItem.action = "enhance"
qItem.level = high_level
STrChOThroneQueueData.list.push(qItem);
}
}
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
}, false);
document.getElementById('STrChOThroneUpgradeAddAllLevelMax').addEventListener('click', function () {
var high_level = parseInt(document.getElementById('STrChOThroneUpgradeAddAllLevelMaxTo').value);
for (ThroneId in uW.kocThroneItems) {
var ThroneItem = uW.kocThroneItems[ThroneId];
if (ThroneItem.level < high_level) {
var qItem = new QueueItem();
qItem.item = ThroneId;
qItem.action = "upgrade"
qItem.level = high_level
STrChOThroneQueueData.list.push(qItem);
}
}
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
}, false);
document.getElementById('STrChOThroneUpgradeAddAllLevel').addEventListener('click', function () {
var low_level = parseInt(document.getElementById('STrChOThroneUpgradeAllLevel').value);
var high_level = parseInt(document.getElementById('STrChOThroneUpgradeAllLevelTo').value);
if (low_level >= high_level) return;
for (ThroneId in uW.kocThroneItems) {
var ThroneItem = uW.kocThroneItems[ThroneId];
if (ThroneItem.level == low_level) {
var qItem = new QueueItem();
qItem.item = ThroneId;
qItem.action = "upgrade"
qItem.level = high_level
STrChOThroneQueueData.list.push(qItem);
}
}
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
}, false);
document.getElementById('STrChOThroneAction').addEventListener('change', function () {
t.buildThroneLevelWidget();
}, false);
// wait for the current repair to finish before starting
if (STrChOThroneUpgradeData.active)
t.setStatus("Loading ....");
else
t.setStatus("Powered Off");
t.startTimer();
t.buildThroneLevelWidget();
t.refreshAetherDisplay();
t.buildThroneQueueDisplay();
},
startTimer: function () {
var t = Tabs.throneUpgrader;
var delay = 2 + Math.random() * 8;
if (Seed.queue_throne != null && Seed.queue_throne.end != null) {
var repairTimeLeft = Seed.queue_throne.end - unixTime();
t.repairEnd = Seed.queue_throne.end;
t.repairId = Seed.queue_throne.itemId;
var n = new Date(t.repairEnd * 1000);
var throne_item = uW.kocThroneItems[t.repairId];
t.setStatus("Waiting until " + n.toLocaleTimeString() + " for repair to complete. Item: " + throne_item.name);
if (STrChOThroneUpgradeData.useSH || STrChOThroneUpgradeData.useKH || STrChOThroneUpgradeData.useGH || STrChOThroneUpgradeData.useMH || STrChOThroneUpgradeData.useAH || STrChOThroneUpgradeData.useWH || STrChOThroneUpgradeData.useDH || STrChOThroneUpgradeData.useEH || (STrChOThroneUpgradeData.overrideSpeedUp && STrChOThroneUpgradeData.useSpeedUp > 0)) {
var throneQuality = throne_item.quality;
var throneLevel = throne_item.level;
var useThoseSpeedups = true;
if (STrChOThroneUpgradeData.hourglassQualitySpecific && throneQuality < STrChOThroneUpgradeData.hourglassQuality) useThoseSpeedups = false;
if (STrChOThroneUpgradeData.hourglassLevelSpecific && throneLevel < STrChOThroneUpgradeData.hourglassLevel) useThoseSpeedups = false;
if (STrChOThroneUpgradeData.overrideSpeedUp) useThoseSpeedups = true;
if (useThoseSpeedups) {
setTimeout(function () { t.doSpeedup(); }, 2000);
}
}
setTimeout(t.clearRepair, (repairTimeLeft + 1) * 1000);
if (repairTimeLeft > 0) delay += repairTimeLeft;
}
if (t.timerH == null)
t.timerH = setTimeout(t.doAction, delay * 1000);
},
hide: function () {},
refreshAetherDisplay : function () {
document.getElementById('STrChOThroneAetherDisplay').innerHTML = displayCityAstone();
},
show: function () {
var t = Tabs.throneUpgrader;
t.startTimer();
t.refreshAetherDisplay();
t.buildThroneQueueDisplay();
},
doAction: function () {
var t = Tabs.throneUpgrader;
if (STrChOThroneRepairData.active) {
t.setStatus('Waiting for repair tab to finish...');
return;
}
var retryTime = STrChOGeneralOptions.retryInterval;
try { // check if repair is done
var ti = t.clearRepair();
if (ti <= 0) { // repair is done
if (STrChOThroneQueueData.oneItem || (STrChOThroneQueueData.doingRepairs == true)) {
for (queueItems in STrChOThroneQueueData.list) {
var qItem = STrChOThroneQueueData.list[queueItems];
if (!qItem) continue;
var throneItem = uW.kocThroneItems[qItem.item];
if ((throneItem == null) || (STrChOThroneQueueData.list[queueItems].status == "complete")) continue;
if (throneItem.isBroken) {
t.doRepair(throneItem.id);
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, retryTime * 1000);
return;
} else if (STrChOThroneQueueData.oneItem) {
break;
}
}
}
STrChOThroneQueueData.doingRepairs = false; // all repairs complete
t.selectNext(); // set the index
SAVESTrChOThroneQueueData();
// if we reach the end of the queue, start repair cycle
if (STrChOThroneQueueData.index < 0) {
t.setStatus("Reached end of queue.")
t.setResult("");
if (!STrChOThroneUpgradeData.active) t.setStatus("Powered Off");
STrChOThroneQueueData.doingRepairs = true;
SAVESTrChOThroneQueueData();
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, retryTime * 1000);
return;
}
// upgrade/enhance next item
var qItem = STrChOThroneQueueData.list[STrChOThroneQueueData.index];
if (qItem) {
if (qItem.action == "enhance")
t.doEnhance(qItem.item);
else
t.doUpgrade(+qItem.item, false);
}
} else {
// come back after repair is complete
retryTime = ti + 5;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Waiting until " + n.toLocaleTimeString() + " for repair to complete. Item: " + uW.kocThroneItems[t.repairId].name);
if (STrChOThroneUpgradeData.useSH || STrChOThroneUpgradeData.useKH || STrChOThroneUpgradeData.useGH || STrChOThroneUpgradeData.useMH || STrChOThroneUpgradeData.useAH || STrChOThroneUpgradeData.useWH || STrChOThroneUpgradeData.useDH || STrChOThroneUpgradeData.useEH || (STrChOThroneUpgradeData.overrideSpeedUp && STrChOThroneUpgradeData.useSpeedUp > 0)) {
var throneItem = uW.kocThroneItems[t.repairId];
var trQuality = throneItem.quality;
var trLevel = throneItem.level;
var useThoseSpeedups = true;
if (STrChOThroneUpgradeData.hourglassQualitySpecific && trQuality < STrChOThroneUpgradeData.hourglassQuality) useThoseSpeedups = false;
if (STrChOThroneUpgradeData.hourglassLevelSpecific && trLevel < STrChOThroneUpgradeData.hourglassLevel) useThoseSpeedups = false;
if (STrChOThroneUpgradeData.overrideSpeedUp) useThoseSpeedups = true;
if (useThoseSpeedups) {
setTimeout(function () { t.doSpeedup(); }, 2000);
}
retryTime = 1;
}
}
CM.ThroneView.renderInventory(uW.kocThroneItems);
} catch (e) {
}
// recycle
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, retryTime * 1000);
},
doSpeedup: function () {
var t = Tabs.throneUpgrader;
var endTime = t.repairEnd;
var startTime = unixTime();
var secondsForRepair = endTime - startTime;
var divId = "";
t.speedup = 0;
if (secondsForRepair > 0 && STrChOThroneUpgradeData.overrideSpeedUp && STrChOThroneUpgradeData.useSpeedUp > 0) {
t.speedup = STrChOThroneUpgradeData.useSpeedUp;
} else {
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.day25 && STrChOThroneUpgradeData.useEH && uW.ksoItems[8].count > 0) { t.speedup = 8; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour24 && STrChOThroneUpgradeData.useDH && uW.ksoItems[7].count > 0) { t.speedup = 7; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour15 && STrChOThroneUpgradeData.useWH && uW.ksoItems[6].count > 0) { t.speedup = 6; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour8 && STrChOThroneUpgradeData.useAH && uW.ksoItems[5].count > 0) { t.speedup = 5; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour25 && STrChOThroneUpgradeData.useMH && uW.ksoItems[4].count > 0) { t.speedup = 4; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour1 && STrChOThroneUpgradeData.useGH && uW.ksoItems[3].count > 0) { t.speedup = 3; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.minute15 && STrChOThroneUpgradeData.useKH && uW.ksoItems[2].count > 0) { t.speedup = 2; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.minute1 && STrChOThroneUpgradeData.useSH && uW.ksoItems[1].count > 0) { t.speedup = 1; }
}
switch (t.speedup) {
case "1":
case 1:
secondsForRepair -= HOURGLASSES_TIME.minute1;
divId = 'STrChOThroneUseSHLabel';
break;
case "2":
case 2:
secondsForRepair -= HOURGLASSES_TIME.minute15;
divId = 'STrChOThroneUseKHLabel';
break;
case "3":
case 3:
secondsForRepair -= HOURGLASSES_TIME.hour1;
divId = 'STrChOThroneUseGHLabel';
break;
case "4":
case 4:
secondsForRepair -= HOURGLASSES_TIME.hour25;
divId = 'STrChOThroneUseMHLabel';
break;
case "5":
case 5:
secondsForRepair -= HOURGLASSES_TIME.hour8;
divId = 'STrChOThroneUseAHLabel';
break;
case "6":
case 6:
secondsForRepair -= HOURGLASSES_TIME.hour15;
divId = 'STrChOThroneUseWHLabel';
break;
case "7":
case 7:
secondsForRepair -= HOURGLASSES_TIME.hour24;
divId = 'STrChOThroneUseDHLabel';
break;
case "8":
case 8:
secondsForRepair -= HOURGLASSES_TIME.day25;
divId = 'STrChOThroneUseEHLabel';
break;
}
if (t.speedup != 0) {
t.setResult('Used ' + uW.ksoItems[t.speedup].name);
var divCount = uW.ksoItems[t.speedup].count - 1;
var divSpeedups = document.getElementById(divId);
divSpeedups.innerHTML = divCount;
uW.modal_speedup_apply("throne", t.speedup, t.repairId);
if (secondsForRepair <= 0) {
secondsForRepair = 0;
endTime = startTime;
t.clearTimerH = setTimeout(t.clearRepair, 1000);
t.buildThroneQueueDisplay();
} else {
endTime = unixTime() + secondsForRepair;
t.repairEnd = endTime;
var n = new Date(t.repairEnd * 1000);
var item = uW.kocThroneItems[t.repairId];
t.setStatus("Repair begun ... Repair will be complete at " + n.toLocaleTimeString() + ". Item: " + item.name);
t.clearTimerH = setTimeout(t.clearRepair, secondsForRepair * 1000);
t.buildThroneQueueDisplay();
}
t.repairEnd = endTime;
setTimeout(function () { t.doSpeedup(); }, 1000);
}
},
selectNext: function () {
if (STrChOThroneQueueData.index >= STrChOThroneQueueData.list.length) STrChOThroneQueueData.index = 0;
if (STrChOThroneQueueData.index < 0) STrChOThroneQueueData.index = 0;
// for single item mode, always start from the top
if (STrChOThroneQueueData.oneItem) STrChOThroneQueueData.index = 0;
var l = STrChOThroneQueueData.list.length;
for (i = STrChOThroneQueueData.index; i < l; i++) {
var item = STrChOThroneQueueData.list[i];
if (!item) continue;
var throneItem = uW.kocThroneItems[item.item];
if ((STrChOThroneQueueData.list[i].status != "complete") && (throneItem != null) && (!throneItem.isBroken)) {
if (((item.action == "enhance") && (item.level <= throneItem.quality)) || ((item.action == "upgrade") && (item.level <= throneItem.level))) {
item.status = "complete";
} else {
STrChOThroneQueueData.index = i;
return;
}
}
}
STrChOThroneQueueData.index = -1; // if we get here, the queue is complete
},
doEnhance: function (eItem) {
var t = Tabs.throneUpgrader;
try {
if (STrChOThroneUpgradeData.active == false || eItem == 0) {
t.setStatus("Powered Off");
return;
}
var throne_item = uW.kocThroneItems[eItem];
if (!throne_item) return;
if (throne_item.isBroken) {
// repair and then try again later
t.doRepair(eItem);
return;
}
var num_city = pickAetherUseCity();
if (num_city < 0) {
t.setStatus("Not enough aetherstones to enhance. Minimum of " + STrChOGeneralOptions.minStones + " needed. Waiting for more ...");
return;
}
var t_city = uW.currentcityid;
uW.currentcityid = Seed.cities[num_city][0];
var w = CM.ThronePanelController.calcCost("enhance", throne_item, null, "stones");
uW.currentcityid = t_city;
if ((w.gems.use > 0) || (w.stones.total > parseInt(Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0]))) {
t.setStatus("Not enough aetherstones to enhance.");
return;
}
var qI = STrChOThroneQueueData.list[STrChOThroneQueueData.index];
if (qI) {
qI.triesTotal++;
qI.triesThis++;
}
var buffItemId = 0;
var useDiv = '';
if (STrChOThroneUpgradeData.active && STrChOThroneQueueData.index != -1 && STrChOThroneUpgradeData.useQuality <= throne_item.quality) {
if (STrChOThroneUpgradeData.useORB) {
if (Seed.items['i20004'] > 0) {
buffItemId = 20004;
useDiv = 'STrChOThroneUseORBLabel';
}
}
/* if (TRupgradeData.useLORB) {
if (Seed.items['i20003'] > 0) buffItemId = 20003;
} */
if (STrChOThroneUpgradeData.usePS) {
if (Seed.items['i20002'] > 0) {
buffItemId = 20002;
useDiv = 'STrChOThroneUsePSLabel';
}
}
if (STrChOThroneUpgradeData.useLPS) {
if (Seed.items['i20001'] > 0) {
buffItemId = 20001;
useDiv = 'STrChOThroneUseLPSLabel';
}
}
if (buffItemId) CM.InventoryView.removeItemFromInventory(buffItemId);
}
if (useDiv != '') document.getElementById(useDiv).innerHTML = uW.ksoItems[buffItemId].count;
var params = uW.Object.clone(ajfx);
params.ctrl = 'throneRoom\\ThroneRoomServiceAjax';
params.action = 'upgradeQuality';
params.throneRoomItemId = eItem;
params.payment = "aetherstone";
params.buffItemId = buffItemId;
params.cityId = Seed.cities[num_city][0];
t.setStatus("Sending enhance request");
new AjaxRequest(uW.g_ajaxpath + "ajax/_dispatch53.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
try {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.updateSeed) uW.update_seed(rslt.updateSeed);
if (rslt.ok) {
Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0] = Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0] - rslt.aetherstones;
if (rslt.gems > 0) {
ActionLog('Upgrader accidentally spent gems! Upgrader turned off');
t.setStatus("Error ... shutting down");
STrChOThroneUpgradeData.active = false;
SAVESTrChOThroneUpgradeData();
}
throne_item.level = rslt.item.level;
throne_item.quality = rslt.item.quality
throne_item.status = rslt.item.status;
if (rslt.success) {
throne_item.name = throne_item.createName();
STrChOThroneUpgradeStats.enhanceSuccess[throne_item.quality - 1][throne_item.level]++;
SAVESTrChOThroneUpgradeStats();
t.setResult("Enhance successful. " + addCommas(rslt.aetherstones) + " aetherstones used.");
t.refreshAetherDisplay();
t.setStatus("Attempting next action");
CM.sounds.play("tr_success_build");
// update the cost line
var qItem = STrChOThroneQueueData.list[STrChOThroneQueueData.index];
if (qItem) {
var now = new Date();
qItem.lastUpgrade = "Enhanced to " + throneCardQualities[throne_item.quality] + " " + now.toDateString().substring(3, 10) + " " + now.toTimeString().substring(0, 8) + " in " + qItem.triesThis + " attempts";
if (!qItem.upgrades) qItem.upgrades = [];
qItem.upgrades.push(qItem.lastUpgrade);
var msg = 'Enhanced ' + uW.kocThroneItems[eItem].name + ' [ ' + eItem + '] to quality ' + rslt.item.quality + " in " + qItem.triesThis + " attempts. " + qItem.triesTotal + " total attempts for this item.";
if (STrChOGeneralOptions.whisperToMe) sendChat("/" + Seed.player.name + ' ' + msg);
if (STrChOGeneralOptions.sendToInbox) sendComposedMail(Seed.player.name, 'THRONE: Enhance Success : ' + uW.kocThroneItems[eItem].name, msg);
SuccessLog(msg);
if (qItem.level <= throne_item.quality) {
qItem.status = "complete";
STrChOThroneUpgradeData.newUpgradeState = 2;
}
else {
var now = new Date();
qItem.status = "Partially enhanced";
qItem.triesLast = qItem.triesThis;
qItem.triesThis = 0;
if (STrChOThroneUpgradeData.newUpgradeState != 2) STrChOThroneUpgradeData.newUpgradeState = 1;
}
SAVESTrChOThroneUpgradeData();
setUpgradeColor();
}
}
else {
STrChOThroneUpgradeStats.enhanceFailure[throne_item.quality][throne_item.level]++;
SAVESTrChOThroneUpgradeStats();
ActionLog('Enhance failed. Throne Room item ' + uW.kocThroneItems[eItem].name + (buffItemId > 0 ? ' - (' + Seed.items['i' + buffItemId] + ' ' + uW.itemlist['i' + buffItemId].name + ' remaining)' : ''));
if (rslt["break"]) {
throne_item.isBroken = true;
throne_item.brokenType = "quality";
throne_item.name = throne_item.createName();
}
t.setResult("Enhance failed. " + addCommas(rslt.aetherstones) + " aetherstones used");
t.refreshAetherDisplay();
var qItem = STrChOThroneQueueData.list[STrChOThroneQueueData.index];
if (qItem) if (qItem.status == "not started") qItem.status = "started";
}
CM.ThroneView.renderInventory(uW.kocThroneItems);
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, 10 * 1000);
}
else {
t.setStatus("Unable to enhance at this time ... waiting for next cycle");
}
} catch (e) {
}
return;
},
onFailure: function (rst) {
t.setStatus("Unable to send enhance request. Waiting for next cycle");
return;
}
});
} catch (e) {
}
return;
},
doUpgrade: function (uItemId, bypass) {
var t = Tabs.throneUpgrader;
var throne_item = uW.kocThroneItems[uItemId];
if (uItemId == 0 || throne_item == null) {
t.setStatus("Item not found.");
return;
}
if ((STrChOThroneUpgradeData.active == false) && (bypass != true)) {
t.setStatus("Powered Off");
return;
}
if (bypass == true && Tabs.throneSalvager.deleting != true) {
// delete cycle has been canceled. Don't upgrade this item
return;
}
if (throne_item.isBroken) {
// repair and then try again later
t.doRepair(uItemId);
return;
}
var num_city = pickAetherUseCity();
if (num_city < 0) {
t.setStatus("Not enough aetherstones to upgrade. Minimum of " + STrChOGeneralOptions.minStones + " needed. Waiting for more ...");
return;
}
var t_city = uW.currentcityid;
uW.currentcityid = Seed.cities[num_city][0];
var w = CM.ThronePanelController.calcCost("upgrade", throne_item, null, "stones");
uW.currentcityid = t_city;
if ((w.gems.use > 0) || (w.stones.total > parseInt(Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0]))) {
t.setStatus("Not enough aetherstones to upgrade.");
return;
}
if (bypass != true) {
var qI = STrChOThroneQueueData.list[STrChOThroneQueueData.index];
if (qI) {
qI.triesTotal++;
qI.triesThis++;
}
t.setStatus("Sending upgrade request ...");
}
var buffItemId = 0;
var useDiv = '';
if (STrChOThroneUpgradeData.active && STrChOThroneQueueData.index != -1 && STrChOThroneUpgradeData.useLevel <= throne_item.level) {
if (STrChOThroneUpgradeData.useLT) {
if (Seed.items['i20006'] > 0) {
buffItemId = 20006;
useDiv = 'STrChOThroneUseLTLabel';
}
}
if (STrChOThroneUpgradeData.useLLT) {
if (Seed.items['i20005'] > 0) {
buffItemId = 20005;
useDiv = 'STrChOThroneUseLLTLabel';
}
}
if (STrChOThroneUpgradeData.usePS) {
if (Seed.items['i20002'] > 0) {
buffItemId = 20002;
useDiv = 'STrChOThroneUsePSLabel';
}
}
if (STrChOThroneUpgradeData.useLPS) {
if (Seed.items['i20001'] > 0) {
buffItemId = 20001;
useDiv = 'STrChOThroneUseLPSLabel';
}
}
}
if (STrChOThroneUpgradeData.useAutoTokens) {
if (STrChOThroneUpgradeData.useAutoTokensMin <= STrChOThroneUpgradeData.useAutoTokensMax) {
var throneLevel = throne_item.level;
if (throneLevel >= STrChOThroneUpgradeData.useAutoTokensMin &&
throneLevel < STrChOThroneUpgradeData.useAutoTokensMax) {
var nextMastersID = getNextAvailableMasters(throne_item);
if (nextMastersID != 0) {
buffItemId = nextMastersID;
ActionLog('Using ' + uW.ksoItems[buffItemId].name + ' on item: ' + throne_item.name);
}
}
}
}
if (buffItemId) CM.InventoryView.removeItemFromInventory(buffItemId);
if (useDiv != '') document.getElementById(useDiv).innerHTML = uW.ksoItems[buffItemId].count;
var params = uW.Object.clone(ajfx);
params.ctrl = 'throneRoom\\ThroneRoomServiceAjax';
params.action = 'upgradeLevel';
params.throneRoomItemId = uItemId;
params.buffItemId = buffItemId;
params.payment = "aetherstone";
params.cityId = Seed.cities[num_city][0];
new AjaxRequest(uW.g_ajaxpath + "ajax/_dispatch53.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
try {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
if (rslt.updateSeed) uW.update_seed(rslt.updateSeed);
Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0] = Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0] - rslt.aetherstones;
if (rslt.gems > 0) {
t.setStatus("Error .... Shutting down.");
ActionLog('Upgrader accidentally spent gems! Upgrader turned off');
STrChOThroneUpgradeData.active = false;
SAVESTrChOThroneUpgradeData();
}
if (rslt.success) {
throne_item.level = rslt.item.level;
throne_item.quality = rslt.item.quality;
throne_item.name = throne_item.createName();
if (bypass != true) {
t.show();
STrChOThroneUpgradeStats.upgradeSuccess[throne_item.quality][throne_item.level - 1]++;
SAVESTrChOThroneUpgradeStats();
t.setResult("Upgrade successful. " + addCommas(rslt.aetherstones) + " aetherstones used.");
t.refreshAetherDisplay();
t.setStatus("Attempting next upgrade");
CM.sounds.play("tr_success_build");
var qItem = STrChOThroneQueueData.list[STrChOThroneQueueData.index];
if (qItem) {
var now = new Date();
qItem.lastUpgrade = "Upgraded to +" + throne_item.level + " " + now.toDateString().substring(3, 10) + " " + now.toTimeString().substring(0, 8) + " in " + qItem.triesThis + " attempts";
if (!qItem.upgrades) qItem.upgrades = [];
qItem.upgrades.push(qItem.lastUpgrade);
var msg = 'Upgraded ' + uW.kocThroneItems[uItemId].name + ' [' + uItemId + '] to level ' + rslt.item.level + " in " + qItem.triesThis + " attempts. " + qItem.triesTotal + " total attempts for this item.";
if (STrChOGeneralOptions.whisperToMe) sendChat("/" + Seed.player.name + ' ' + msg);
if (STrChOGeneralOptions.sendToInbox) sendComposedMail(Seed.player.name, 'THRONE: Upgrade Success : ' + uW.kocThroneItems[uItemId].name, msg);
SuccessLog(msg);
if (qItem.level <= throne_item.level) {
qItem.status = "complete";
STrChOThroneUpgradeData.newUpgradeState = 2;
}
else {
var now = new Date();
qItem.status = "Partially upgraded";
qItem.triesLast = qItem.triesThis;
qItem.triesThis = 0;
if (STrChOThroneUpgradeData.newUpgradeState != 2) STrChOThroneUpgradeData.newUpgradeState = 1;
}
SAVESTrChOThroneUpgradeData();
setUpgradeColor();
}
}
} else {
STrChOThroneUpgradeStats.upgradeFailure[throne_item.quality][throne_item.level]++;
SAVESTrChOThroneUpgradeStats();
ActionLog('Upgrade failed Throne Room item ' + uW.kocThroneItems[uItemId].name);
if (!params.buffItemId) {
throne_item.isBroken = true;
throne_item.brokenType = "level";
throne_item.name = throne_item.createName();
throne_item.status = rslt.item.status;
}
if (bypass != true) {
t.setResult("Upgrade failed. " + addCommas(rslt.aetherstones) + " aetherstones used");
t.refreshAetherDisplay();
var qItem = STrChOThroneQueueData.list[STrChOThroneQueueData.index];
if (qItem.status == "not started") qItem.status = "started";
}
}
CM.ThroneView.renderInventory(uW.kocThroneItems);
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, 10 * 1000);
if (rslt.heatupModifier) CM.HeatUpModel.attemptCallback(+(rslt.heatupModifier));
return;
} else {
if (bypass != true) {
t.setStatus("Upgrade request not accepted. Waiting for next cycle.");
} else {
if (rslt.msg && rslt.msg.indexOf("Has status 2") > -1) {
// the object is in the locked rows. Shutdown deleting until the next pass
Tabs.throneSalvager.delItems = [];
Tabs.throneSalvager.deleting = false;
}
}
}
} catch (e) {
}
return;
},
onFailure: function (rrr) {
t.setStatus("Unable to transmitt upgrade request. Waiting for next cycle.");
CM.ThroneView.renderInventory(uW.kocThroneItems);
return;
}
});
return;
},
doRepair: function (rItem) {
var t = Tabs.throneUpgrader;
var params = uW.Object.clone(ajfx);
if (STrChOThroneUpgradeData.active == false || rItem == 0 || uW.kocThroneItems[rItem] == null) return; //repair is turned off
var theItem = uW.kocThroneItems[rItem];
params.action = 'timeRepair';
params.throneRoomItemId = rItem;
params.ctrl = 'throneRoom\\ThroneRoomServiceAjax';
new AjaxRequest(uW.g_ajaxpath + "ajax/_dispatch53.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
var item = uW.kocThroneItems[rItem];
var startTime = unixTime();
var endTime = rslt.eta;
ActionLog('Starting repair for Throne Room item ' + item.name);
Seed.queue_throne.itemId = item.id;
Seed.queue_throne.start = startTime;
Seed.queue_throne.end = endTime;
t.repairId = item.id;
t.repairEnd = endTime;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Repair begun ... Repair will be complete at " + n.toLocaleTimeString() + ". Item: " + item.name);
var secondsForRepair = t.repairEnd - startTime;
if (secondsForRepair < 0) secondsForRepair = 0;
CM.ThroneView.renderInventory(uW.kocThroneItems);
t.clearTimerH = setTimeout(t.clearRepair, (secondsForRepair + 1) * 1000);
t.buildThroneQueueDisplay();
if (STrChOThroneUpgradeData.useSH || STrChOThroneUpgradeData.useKH || STrChOThroneUpgradeData.useGH || STrChOThroneUpgradeData.useMH || STrChOThroneUpgradeData.useAH || STrChOThroneUpgradeData.useWH || STrChOThroneUpgradeData.useDH || STrChOThroneUpgradeData.useEH || (STrChOThroneUpgradeData.overrideSpeedUp && STrChOThroneUpgradeData.useSpeedUp > 0)) {
var throneItem = uW.kocThroneItems[t.repairId];
var trQuality = throneItem.quality;
var trLevel = throneItem.level;
var useThoseSpeedups = true;
if (STrChOThroneUpgradeData.hourglassQualitySpecific && trQuality < STrChOThroneUpgradeData.hourglassQuality) useThoseSpeedups = false;
if (STrChOThroneUpgradeData.hourglassLevelSpecific && trLevel < STrChOThroneUpgradeData.hourglassLevel) useThoseSpeedups = false;
if (STrChOThroneUpgradeData.overrideSpeedUp) useThoseSpeedups = true;
if (useThoseSpeedups) {
setTimeout(function () { t.doSpeedup(); }, 2000);
}
}
}
else {
if (rslt.msg == "Item is not broken") {
uW.kocThroneItems[rItem].isBroken = false;
t.clearRepair();
}
// regrab the end times in case this is caused by a manual repair
if (Seed.queue_throne && Seed.queue_throne.end && Seed.queue_throne.itemId) {
t.repairEnd = Seed.queue_throne.end;
t.repairId = Seed.queue_throne.itemId;
}
}
return;
},
onFailure: function (ttt) {
// this usually means a repair is in progress (such as a manual repair). Grab the seed data (if possible)
if (Seed.queue_throne && Seed.queue_throne.end) {
t.repairEnd = Seed.queue_throne.end;
t.repairId = Seed.queue_throne.itemId;
}
return;
}
});
return;
},
clearRepair: function () {
var t = Tabs.throneUpgrader;
var timeUntilDone = 0;
if (t.repairEnd == 0) {
return timeUntilDone;
}
timeUntilDone = t.repairEnd - unixTime();
if (timeUntilDone <= 0) {
if (t.repairId != 0 && uW.kocThroneItems[t.repairId] != null) {
if (uW.kocThroneItems[t.repairId].isBroken == true) {
t.setStatus("Repair time complete.");
}
uW.kocThroneItems[t.repairId].isBroken = false;
uW.kocThroneItems[t.repairId].brokenType = "";
t.repairId = 0;
}
}
CM.ThroneView.renderInventory(uW.kocThroneItems);
return timeUntilDone;
},
addUpgradeItem: function (throneId) {
var t = Tabs.throneUpgrader;
var qItem = new QueueItem();
qItem.item = throneId;
qItem.action = "upgrade";
qItem.level = STrChOMaxThroneLevel;
STrChOThroneQueueData.list.push(qItem);
SAVESTrChOThroneQueueData();
document.getElementById('throneInventoryItem' + throneId).className = 'STrChOBlueBorder';
t.buildThroneQueueDisplay();
},
addEnhanceItem: function (throneId) {
var t = Tabs.throneUpgrader;
var qItem = new QueueItem();
qItem.item = throneId;
qItem.action = "enhance";
qItem.level = STrChOMaxThroneQuality;
STrChOThroneQueueData.list.push(qItem);
SAVESTrChOThroneQueueData();
document.getElementById('throneInventoryItem' + throneId).className = 'STrChOYellowBorder';
t.buildThroneQueueDisplay();
},
addBothThroneItem: function (throneId) {
var t = Tabs.throneUpgrader;
var throneItem = uW.kocThroneItems[throneId];
if (throneItem == null || !throneItem) return;
var qual = +throneItem.quality;
var lev = +throneItem.level;
if (qual >= STrChOMaxThroneQuality) return;
var maxLev = null;
var nextQual = null;
var qItem = null;
while (qual < STrChOMaxThroneQuality) {
maxLev = t.upgradePath[qual].maxLev;
nextQual = t.upgradePath[qual].nextQual;
if (lev < maxLev) {
qItem = new QueueItem();
qItem.item = throneId;
qItem.action = "upgrade";
qItem.level = maxLev;
STrChOThroneQueueData.list.push(qItem);
document.getElementById('throneInventoryItem' + throneId).className = 'STrChOBlueBorder';
}
qItem = new QueueItem();
qItem.item = throneId;
qItem.action = "enhance";
qItem.level = nextQual;
STrChOThroneQueueData.list.push(qItem);
document.getElementById('throneInventoryItem' + throneId).className = 'STrChOYellowBorder';
lev = maxLev;
qual = nextQual;
}
STrChOThroneQueueData();
t.buildThroneQueueDisplay();
},
addThroneQueue: function () {
var t = Tabs.throneUpgrader;
var action = document.getElementById('STrChOThroneAction').value;
if (action == "both") {
t.addBothThroneItem(document.getElementById('STrChOThroneUpgradeList').value);
return;
}
var qItem = new QueueItem();
qItem.item = document.getElementById('STrChOThroneUpgradeList').value;
qItem.action = document.getElementById('STrChOThroneAction').value;
qItem.level = document.getElementById('STrChOThroneMaxLevel').value;
if (qItem.item == 0) return;
STrChOThroneQueueData.list.push(qItem);
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
},
buildThroneLevelWidget: function () {
var t = Tabs.throneUpgrader;
var m;
var STrChOThroneAction = document.getElementById('STrChOThroneAction');
if (STrChOThroneAction.value == "enhance") {
m = ' Max: <select class=STrChOSelect id=STrChOThroneMaxLevel>';
for (qual = 1; qual <= STrChOMaxThroneQuality; qual++) {
m += '<option value="' + qual + '">' + throneCardQualities[qual] + '</option>';
}
m += '</select>';
} else if (STrChOThroneAction.value == "upgrade") {
m = ' Max: <select class=STrChOSelect id=STrChOThroneMaxLevel>';
for (lvl = 1; lvl <= STrChOMaxThroneLevel; lvl++) {
m += '<option value="' + lvl + '"> +' + lvl + '</option>';
}
m += '</select>';
} else {
m = ' - <select class=STrChOSelect id=STrChOThroneMaxLevel></select>';
}
document.getElementById('STrChOThroneMaxDiv').innerHTML = m;
if (STrChOThroneAction.value == "enhance") {
document.getElementById('STrChOThroneMaxLevel').value = STrChOMaxThroneQuality;
} else if (STrChOThroneAction.value == "upgrade") {
document.getElementById('STrChOThroneMaxLevel').value = STrChOMaxThroneLevel;
}
},
buildThroneQueueDisplay: function () {
var t = Tabs.throneUpgrader;
var STrChOThroneQDiv = document.getElementById('STrChOThroneQDiv');
var m = '<table id=STrChOThroneQueue width=100%>';
m += '<tr><th width=10%>Remove</th>';
m += '<th width=5%>Order</th>';
m += '<th width=8%>Status</th>';
m += '<th width=25%>Item</th>';
m += '<th width=5%>Action</th>';
m += '<th width=5%>Max</th>';
m += '<th width=40%>Status/Last Upgrade/Attempts</th></tr>';
for (var queueIndex = 0; queueIndex < STrChOThroneQueueData.list.length; queueIndex++) {
var queueItem = STrChOThroneQueueData.list[queueIndex];
if (!queueItem) continue;
var throneItem = uW.kocThroneItems[queueItem.item];
var throneCardName = "Unknown / Item removed";
var throneId = 0;
if (throneItem) {
throneCardName = throneItem.name;
throneId = throneItem.id;
}
m += '<tr>';
m += '<td align=center><div id=STrChOThroneQueueRemove' + queueIndex + ' class=STrChORemove></div></td>';
m += '<td align=center><div id=STrChOThroneUpRow' + queueIndex + ' class=STrChOUpRow></div><div class=STrChODownRow id=STrChOThroneDownRow' + queueIndex + '></div></td>';
m += '<td align=center><div id=STrChOThroneState' + queueIndex + '></div></td>';
m += '<td align=center class=STrChOThroneUpdaterItemName><div id=STrChOThroneUpdaterItem' + throneId + ' >' + throneCardName + '</div></td>';
m += '<td align=center>' + queueItem.action + '</td>';
m += '<td>';
if (queueItem.action == "enhance") {
m += '<div style="text-align: center;"><select class=STrChOSelect id=STrChOThroneChangeLevel' + queueIndex + ' style="width:90px; text-align: center;">';
for (qual = 1; qual <= STrChOMaxThroneQuality; qual++) {
m += '<option value="' + qual + '" ' + (queueItem.level == qual ? 'selected' : '') + '>' + throneCardQualities[qual] + '</option>';
}
m += '</select></div>';
} else {
m += '<div style="text-align: center;"><select class=STrChOSelect id=STrChOThroneChangeLevel' + queueIndex + ' style="width:90px; text-align: center;">';
for (lvl = 1; lvl <= STrChOMaxThroneLevel; lvl++) {
m += '<option value="' + lvl + '" ' + (queueItem.level == lvl ? 'selected' : '') + '> +' + lvl + '</option>';
}
m += '</select></div>';
}
m += '</td>';
m += '<td style="text-align: center; white-space: pre-wrap;">' + queueItem.status + ' / ';
if (queueItem.lastUpgrade) m += queueItem.lastUpgrade;
m += ' / ' + queueItem.triesThis + ' tries this level, ' + queueItem.triesTotal + ' tries total';
m += '</td>';
m += '</tr>';
}
m += '</table>';
STrChOThroneQDiv.innerHTML = m;
for (var queueIndex = 0; queueIndex < STrChOThroneQueueData.list.length; queueIndex++) {
var queueItem = STrChOThroneQueueData.list[queueIndex];
if (!queueItem) continue;
var throneItem = uW.kocThroneItems[queueItem.item];
if (throneItem) {
var trId = throneItem.id;
document.getElementById('STrChOThroneUpdaterItem' + trId).addEventListener('mouseover', function(A) {
A.stopPropagation();
var throneId = this.id.split('STrChOThroneUpdaterItem')[1];
var throneItem = uW.kocThroneItems[throneId];
var STrChOCard = document.getElementById('STrChOThroneUpdaterItem' + throneId);
CM.ThroneView.hoverItem(A, STrChOCard, throneItem);
}, false);
}
document.getElementById('STrChOThroneQueueRemove' + queueIndex).setAttribute('v1', queueIndex);
document.getElementById('STrChOThroneQueueRemove' + queueIndex).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.deleteQueueItem(qIndex);
}, false);
document.getElementById('STrChOThroneUpRow' + queueIndex).setAttribute('v1', queueIndex);
document.getElementById('STrChOThroneUpRow' + queueIndex).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.moveUpRow(qIndex);
}, false);
document.getElementById('STrChOThroneDownRow' + queueIndex).setAttribute('v1', queueIndex);
document.getElementById('STrChOThroneDownRow' + queueIndex).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.moveDownRow(qIndex);
}, false);
document.getElementById('STrChOThroneChangeLevel' + queueIndex).setAttribute('v1', queueIndex);
document.getElementById('STrChOThroneChangeLevel' + queueIndex).addEventListener('change', function () {
var qIndex = this.getAttribute('v1');
var itemLevel = this.value;
t.changeLevel(qIndex, itemLevel);
}, false);
if (!throneItem || !(throneItem.id)) {
document.getElementById('STrChOThroneState' + queueIndex).innerHTML = '<div style="text-align:center"> ??</div>';
} else if (queueItem.status == "complete") {
document.getElementById('STrChOThroneState' + queueIndex).className = 'STrChOSuccess';
} else if (throneItem.isBroken) {
if (throneItem.id == t.repairId) {
document.getElementById('STrChOThroneState' + queueIndex).className = 'STrChOHammer';
} else {
document.getElementById('STrChOThroneState' + queueIndex).className = 'STrChOBroken';
}
} else {
document.getElementById('STrChOThroneState' + queueIndex).innerHTML = '<div class=STrChOGoButton></div>';
}
}
},
deleteQueueItem: function (index) {
// delete an item from the queue
var t = Tabs.throneUpgrader;
STrChOThroneQueueData.list.splice(index, 1);
if (index > STrChOThroneQueueData.index) STrChOThroneQueueData.index--;
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
},
moveUpRow: function (index) {
if (index < 1) return;
var t = Tabs.throneUpgrader;
var qItem = STrChOThroneQueueData.list.splice(index, 1);
STrChOThroneQueueData.list.splice(index - 1, 0, qItem[0]);
if (index == STrChOThroneQueueData.index)
STrChOThroneQueueData.index--;
else if (STrChOThroneQueueData.index == index - 1)
STrChOThroneQueueData.index++;
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
},
moveDownRow: function (index) {
if (index > (STrChOThroneQueueData.list.length - 2)) return;
var t = Tabs.throneUpgrader;
var qItem = STrChOThroneQueueData.list.splice(index, 1);
STrChOThroneQueueData.list.splice(index + 1, 0, qItem[0]);
if (index == STrChOThroneQueueData.index)
STrChOThroneQueueData.index++;
else if (STrChOThroneQueueData.index == index + 1)
STrChOThroneQueueData.index--;
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
},
changeLevel: function (index, level) {
var t = Tabs.throneUpgrader;
var queueItem = STrChOThroneQueueData.list[index];
if (!queueItem) return;
queueItem.level = level;
if (queueItem.status == "complete") queueItem.status = "started";
SAVESTrChOThroneQueueData();
t.buildThroneQueueDisplay();
},
setStatus: function (s) {
document.getElementById('STrChOThroneUpgradeStatus').innerHTML = '<div>' + s + '</div>';
},
setResult: function (s) {
document.getElementById('STrChOThroneLastResult').innerHTML = '<div>' + s + '</div>';
},
togglePower: function (obj) {
var t = Tabs.throneUpgrader;
if (!STrChOThroneUpgradeData.active && STrChOThroneRepairData.active) {
alert('You must disable repair tab first');
return;
}
var btn = document.getElementById('STrChOThroneUpgradePower');
if (STrChOThroneUpgradeData.active) {
STrChOThroneUpgradeData.active = false;
btn.value = 'Upgrader = OFF';
t.setStatus('Powered Off');
t.setResult('');
} else {
STrChOThroneUpgradeData.active = true;
btn.value = "Upgrader = ON";
t.setStatus("Powered On");
t.setResult("");
}
if (!STrChOThroneUpgradeData.active) {
}
t.updateThroneMenu();
SAVESTrChOThroneUpgradeData();
},
updateThroneMenu: function () {
if (!document.getElementById('STrChOExecuteUpgrader')) return;
document.getElementById('STrChOExecuteUpgrader').innerHTML = 'Upgrade ' + (STrChOThroneUpgradeData.active ? 'ON' : 'OFF');
},
}
Tabs.throneSalvager = {
tabOrder: 102,
tabLabel: 'SALVAGER',
tabColor: 'red',
tabHeader: 'THRONE ROOM SALVAGER',
delItems: [],
deleting: false,
rowNum: 0,
timer: null,
city: null,
cityNum: 0,
sTimer: null,
delTimer: null,
upgradeProfit: true,
init: function (div) {
var t = Tabs.throneSalvager;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
if (STrChOThroneSalvageData.active) {
m += '<td width=33%><input id=STrChOThroneSalvagePower type=button class=STrChOButton value="Salvager = ON"></td>';
} else {
m += '<td width=33%><input id=STrChOThroneSalvagePower type=button class=STrChOButton value="Salvager = OFF"></td>';
}
m += '<td width=33%><div class=divNoWrap align=center>';
m += 'Keep All: <select id=STrChOThroneSalvageQuality class=STrChOSelect>';
for (i = 1; i <= STrChOMaxThroneQuality; i++) {
m += '<option value="' + i + '">' + throneCardQualities[i].capitalizeFirstLetter() + '+</option>';
}
m += '</select>';
m += '</div></td>';
m += '<td width=33%><div class=divNoWrap>Keep The First <input style="text-align: center;" id=STrChOThroneSaveNum class=STrChOTextbox type=text size=3 maxlength=3 value="' + STrChOThroneSalvageData.throneSaveNum + '"/> Cards</div></td>';
m += '</tr>';
m += '<tr><td colspan=3><hr class=STrChOHRCenter></td></tr>';
m += '<tr><td colspan=3><div class=indent5 id=STrChOThroneSalvageStatus></div></td></tr>';
m += '<tr><td colspan=3><div class=indent5 id=STrChOThroneNumSalv><br></div></td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader id=STrChOThroneSimpleRule onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> SIMPLE RULES <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="position: static; width: 100%; height: 200px; overflow-x: hidden; overflow-y: auto;">';
m += '<table class=STrChOSectionTable>';
m += '<tr><td>';
m += '<table>';
m += '<tr><td><b>Define Throne Items To Keep:</b></td>';
m += '<td alight=left><div><span>Faction: <select id=STrChOThroneFactionType class=STrChOSelect>';
m += ' <option value="any">Any</option>';
for (var fact = 0; fact < STrChOFactions.length; fact++) m += '<option value="' + STrChOFactions[fact] + '">' + STrChOFactions[fact].capitalizeFirstLetter() + '</option>';
m += '</select></span></div></td>';
m += '<td alight=left><div><span>Card Type: <select id=STrChOThroneCardType class=STrChOSelect>';
m += ' <option value="any">Any</option>';
for (var tct = 0; tct < throneCardTypes.length; tct++) m += ' <option value="' + throneCardTypes[tct] + '">' + throneCardTypes[tct].capitalizeFirstLetter() + '</option>';
m += '</select></span></div></td>';
m += '<td align=right><input id=STrChOThroneAddRule type=button class=STrChOButton value="Create Rule"/></td>';
m += '</tr>';
m += '</table>';
m += '</td></tr>';
m += '<tr><td>';
m += '<table id=STrChOThroneConditionTable style="padding-left: 5px;">';
m += '<tr><td align=left colspan=1><input id=STrChOThroneAddRow type=button class=STrChOButton value="Add Row"/></td>';
m += '<td></td><td></td><td></td><td></td><td></td></tr>';
m += '</table>';
m += '</td></tr>';
m += '</table>';
m += '</div>'; //end of STrChOSection
m += '<div class=STrChOHeader id=STrChOThroneAdvancedRule onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> ADVANCED RULES <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td>';
m += '<table>';
m += '<tr><td colspan=4><input class=STrChOButton type=button id=STrChOThroneAdvancedReset value="Reset"></tr>';
m += '<tr>';
m += '<td><b>Define Throne Items To Keep:</b></td>';
m += '<td alight=left><div><span>Faction: <select id=STrChOThroneFactionTypeAdvanced class=STrChOSelect>';
m += ' <option value="any">Any</option>';
for (var fact = 0; fact < STrChOFactions.length; fact++) m += '<option value="' + STrChOFactions[fact] + '">' + STrChOFactions[fact].capitalizeFirstLetter() + '</option>';
m += '</select></span></div></td>';
m += '<td alight=left><div><span>Card Type: <select id=STrChOThroneCardTypeAdvanced class=STrChOSelect>';
m += ' <option value="any">Any</option>';
for (var tct = 0; tct < throneCardTypes.length; tct++) m += ' <option value="' + throneCardTypes[tct] + '">' + throneCardTypes[tct].capitalizeFirstLetter() + '</option>';
m += '</select></span></div></td>';
m += '<td align=right><input id=STrChOThroneAddRuleAdvanced type=button class=STrChOButton value="Create Rule"/></td>';
m += '</tr>';
m += '</table>';
m += '</td></tr>';
m += '<tr><td>';
m += '<table width=100% id=STrChOThroneConditionTableAdvanced>';
m += '<tr>';
m += '<td width=20%>ROW 1</td>';
m += '<td width=20%>ROW 2</td>';
m += '<td width=20%>ROW 3</td>';
m += '<td width=20%>ROW 4</td>';
m += '<td width=20%>ROW 5</td>';
m += '</tr>';
m += '<tr>';
m += '<td width=20%><div><select style="max-width: 125px;" id=STrChOThroneRow1Advanced class=STrChOSelect></select></div></td>';
m += '<td width=20%><div><select style="max-width: 125px;" id=STrChOThroneRow2Advanced class=STrChOSelect></select></div></td>';
m += '<td width=20%><div><select style="max-width: 125px;" id=STrChOThroneRow3Advanced class=STrChOSelect></select></div></td>';
m += '<td width=20%><div><select style="max-width: 125px;" id=STrChOThroneRow4Advanced class=STrChOSelect></select></div></td>';
m += '<td width=20%><div><select style="max-width: 125px;" id=STrChOThroneRow5Advanced class=STrChOSelect></select></div></td>';
m += '</tr>';
m += '</table>';
m += '</td></tr>';
m += '</table>';
m += '</div>'; //end of STrChOSection
m += '<div class=STrChOHeader id=STrChOThroneAdvancedRule onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> AUTO LOAD RULES <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td><b> Define Effect:</b><select id=STrChOThroneAutoLoadEffect class=STrChOSelect>';
m += '<option value="0">--Select--</option>';
for (var efx in CM.thronestats.effects) m += '<option value="' + efx + '">' + CM.thronestats.effects[efx][1] + '</option>';
m += '</select><input type=button class=STrChOButton id=STrChOThroneAutoLoad value="Auto Load">';
m += '</td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader> RULES LIST </div>';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td align=center>';
m += 'Sort By Card Type: <select id=STrChOThroneSalvageSortCard class=STrChOSelect>';
m += '<option value="0">--Select--</option>';
for (tct = 0; tct < throneCardTypes.length; tct++) m += ' <option value="' + throneCardTypes[tct] + '">' + throneCardTypes[tct].capitalizeFirstLetter() + '</option>';
m += '</select>';
m += '</td></tr>';
m += '<tr><td align=center>';
m += '<b>Salvager Will Keep Items Matching These Rules <i><div class=divNoWrap id=STrChOThroneRuleCount></div></i></b>';
m += '</td></tr>';
m += '<tr><td align=center>';
m += '<div align=center>';
m += '<table align=center width=100%>';
m += '<tr>';
m += '<td align=left><input id=STrChOThroneButtonSaveItem type=button class=STrChOButton value="Save Rules"> ';
m += '<input id=STrChOThroneClearAllRules type=button class=STrChOButton value="Clear All Rules"></td>';
m += '<td align=right>'
m += '<input id=STrChOThroneButtonLoadItem type=button class=STrChOButton value="Load Rules">';
m += '<input class=STrChOButton type=button id=STrChOThroneFileDrop onclick="document.getElementById(\'STrChOThroneFileLoadItem\').click()" value="Browse...">';
m += '<input id=STrChOThroneFileLoadItem style="visibility: hidden; height:0px; width: 0px;" type=file>';
m += '</td>';
m += '</tr>';
m += '</table>';
m += '</div>';
m += '</td></tr>';
m += '<tr><td align=center>';
m += '<div id=STrChOThroneRuleScroll style="position: static; width: 100%; height: ' + dlgHeight + '; overflow-x: hidden; overflow-y: auto;" >';
m += '<div id=STrChOThroneRuleDisplay></div>';
m += '</div>';
m += '</td></tr>';
m += '</table>';
m += '</div>'; //end of STrChOSection
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
t.displayNumberSalvaged();
if (STrChOThroneSalvageData.active)
t.setStatus('Loading...');
else
t.setStatus('Powered Off');
document.getElementById('STrChOThroneClearAllRules').addEventListener('click', function() {
STrChOThroneSalvageData.ruleSet = [];
SAVESTrChOThroneSalvageData();
t.buildThroneRuleDisplay();
}, false);
document.getElementById('STrChOThroneAutoLoad').addEventListener('click', function () {
var effectId = document.getElementById('STrChOThroneAutoLoadEffect').value;
if (effectId == 0) return;
for (var category in STrChOThroneStatsGrid) {
var faction = 'any';
var type = category;
var conditions = [];
for (var i = 1; i < 6; i++) {
if (STrChOThroneStatsGrid[category][i][effectId] == 1) {
var slots = [];
for (var slotChecker = 1; slotChecker < 6; slotChecker++) slots.push(slotChecker==i);
var effectName = CM.thronestats.effects[effectId][1];
var buffDebuff = 'b';
if (effectName.indexOf(" Debuff") != -1) buffDebuff = "d";
var effectName = effectName.split(" Debuff")[0];
var c = new ThroneCondition(true, 1, effectName, buffDebuff, slots);
conditions.push(c);
}
}
if (conditions.length > 0) {
var rule = new ThroneRule(type, faction, conditions, true);
t.addRule(rule);
}
}
SAVESTrChOThroneSalvageData();
t.buildThroneRuleDisplay();
}, false);
document.getElementById('STrChOThroneSalvagePower').addEventListener('click', function () {
t.togglePower(this);
}, false);
t.createRow();
t.buildThroneRuleDisplay();
document.getElementById('STrChOThroneSalvageSortCard').addEventListener('change', function() {
t.buildThroneRuleDisplay();
}, false);
document.getElementById('STrChOThroneAddRow').addEventListener('click', function () {
t.createRow();
}, false);
document.getElementById('STrChOThroneSalvageQuality').addEventListener('click', function () {
t.setSalvageQuality(this.value);
}, false);
document.getElementById('STrChOThroneSalvageQuality').value = STrChOThroneSalvageData.minQuality;
document.getElementById('STrChOThroneSaveNum').addEventListener('change', function () {
STrChOThroneSalvageData.throneSaveNum = parseInt(document.getElementById('STrChOThroneSaveNum').value);
if (STrChOThroneSalvageData.throneSaveNum < 0) STrChOThroneSalvageData.throneSaveNum = 0;
SAVESTrChOThroneSalvageData();
}, false);
document.getElementById('STrChOThroneAdvancedReset').addEventListener('click', function() {
var cardtype = document.getElementById('STrChOThroneCardTypeAdvanced');
cardtype.selectedIndex = 0;
t.clearAdvancedStats();
t.setAdvancedStatsToAny();
}, false);
t.setAdvancedStatsToAny();
document.getElementById('STrChOThroneAddRuleAdvanced').addEventListener('click', function() {
t.createAdvancedRule();
}, false);
document.getElementById('STrChOThroneCardTypeAdvanced').addEventListener('change', function() {
var selectedValue = document.getElementById('STrChOThroneCardTypeAdvanced').value;
t.clearAdvancedStats();
if (selectedValue == 'any') {
t.setAdvancedStatsToAny();
} else {
t.filterAdvancedStats(selectedValue);
}
}, false);
document.getElementById('STrChOThroneAddRule').addEventListener('click', function () {
t.createRule();
}, false);
document.getElementById('STrChOThroneButtonSaveItem').addEventListener('click', function () {
var uriContent = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(STrChOThroneSalvageData.ruleSet));
var newWindow = window.open(uriContent, 'file.txt');
}, false);
document.getElementById('STrChOThroneButtonLoadItem').addEventListener('click', function () {
var fileInput = document.getElementById("STrChOThroneFileLoadItem");
var files = fileInput.files;
if (files.length == 0) {
alert('Please Select A File');
return;
}
var file = files[0];
var reader = new FileReader();
reader.onload = function (e) {
var output = e.target.result;
STrChOThroneSalvageData.ruleSet = JSON.parse(output);
STrChOThroneSalvageData.active = false;
clearInterval(Tabs.throneSalvager.sTimer);
clearInterval(Tabs.throneSalvager.delTimer);
Tabs.throneSalvager.deleting = false;
SAVESTrChOThroneSalvageData();
Tabs.throneSalvager.show();
alert('Throne Salvage Settings Now Loaded From File');
};
reader.readAsText(file);
}, false);
if (STrChOThroneSalvageData.upgradedToDelete.length > 0) {
// some items were left over that need to be deleted
for (k = 0; k < STrChOThroneSalvageData.upgradedToDelete.length; k++) {
var id = STrChOThroneSalvageData.upgradedToDelete[k];
// if the item is not longer in the inventory, remove the id
if (!uW.kocThroneItems[id]) {
STrChOThroneSalvageData.upgradedToDelete.splice(k, 1); // Remove item from array
SAVESTrChOThroneSalvageData();
k--;
}
}
// resume deleting things
if (STrChOThroneSalvageData.active) {
t.delItems = STrChOThroneSalvageData.upgradedToDelete;
t.deleting = true;
t.upgradeAndDelete();
}
else {
// if the salvager is Powered Off, clear the list
STrChOThroneSalvageData.upgradedToDelete = [];
SAVESTrChOThroneSalvageData();
}
}
// this check makes sure upgrading before deleting is still profitable
t.upgradeProfit = (5 * CM.WorldSettings.getSettingAsNumber("AETHERSTONE_SALVAGE_MULTIPLIER", 500) > CM.thronestats.upgrade[1]["Stones"]);
t.start();
},
setAdvancedStatsToAny: function() {
for (var i = 1; i < STrChOQualityCount; i++) {
var row = document.getElementById('STrChOThroneRow' + i + 'Advanced');
row.options.add(new Option("none","None"));
for (eff in CM.thronestats.effects) {
var effectName = CM.thronestats.effects[eff][1];
row.options.add(new Option(effectName, effectName));
}
row.options.add(new Option("Any Infantry", "Infantry"));
row.options.add(new Option("Any Ranged", "Ranged"));
row.options.add(new Option("Any Horsed", "Horsed"));
row.options.add(new Option("Any Siege", "Siege"));
row.options.add(new Option("Any Spellcaster", "Spellcaster"));
row.options.add(new Option("Any Tower", "Tower"));
}
},
clearAdvancedStats: function() {
for (var i = 1; i < STrChOQualityCount; i++) {
var row = document.getElementById('STrChOThroneRow' + i + 'Advanced');
row.innerHTML = "";
}
},
filterAdvancedStats: function(cardtype) {
var t = Tabs.throneSalvager;
cardtype = cardtype || 'any';
if (cardtype == 'any') {
t.setAdvancedStatsToAny();
return;
}
document.getElementById("STrChOThroneRow1Advanced").options.add(new Option("none", "none"));
document.getElementById("STrChOThroneRow2Advanced").options.add(new Option("none", "none"));
document.getElementById("STrChOThroneRow3Advanced").options.add(new Option("none", "none"));
document.getElementById("STrChOThroneRow4Advanced").options.add(new Option("none", "none"));
document.getElementById("STrChOThroneRow5Advanced").options.add(new Option("none", "none"));
for (eff in CM.thronestats.effects) {
var effectName = CM.thronestats.effects[eff][1];
if (STrChOThroneStatsGrid[cardtype][1][eff]) { document.getElementById("STrChOThroneRow1Advanced").options.add(new Option(effectName, effectName)); }
if (STrChOThroneStatsGrid[cardtype][2][eff]) { document.getElementById("STrChOThroneRow2Advanced").options.add(new Option(effectName, effectName)); }
if (STrChOThroneStatsGrid[cardtype][3][eff]) { document.getElementById("STrChOThroneRow3Advanced").options.add(new Option(effectName, effectName)); }
if (STrChOThroneStatsGrid[cardtype][4][eff]) { document.getElementById("STrChOThroneRow4Advanced").options.add(new Option(effectName, effectName)); }
if (STrChOThroneStatsGrid[cardtype][5][eff]) { document.getElementById("STrChOThroneRow5Advanced").options.add(new Option(effectName, effectName)); }
}
},
hide: function () {},
show: function () {
var t = Tabs.throneSalvager;
t.displayNumberSalvaged();
t.buildThroneRuleDisplay();
},
updateThroneMenu: function () {
if (!document.getElementById('STrChOExecuteSalvager')) return;
document.getElementById('STrChOExecuteSalvager').innerHTML = 'Salvager ' + (STrChOThroneSalvageData.active ? 'ON' : 'OFF');
},
forceSalvage: function (throneId) {
throneId = throneId || false;
if (!throneId) return;
var throneItem = uW.kocThroneItems[throneId];
if (!throneItem) return;
if (throneItem.jewel) {
if (throneItem.jewel.valid) {
var city_num = pickAetherSalvageCity();
if (city_num == -1) city_num = 0;
var city_id = Seed.cities[city_num][0];
Tabs.STrChOJewels.removeJewel(city_id, throneId);
}
}
SalvageThroneItem(throneId);
CM.ThroneView.renderInventory(uW.kocThroneItems);
},
doDelete: function (id) {
var t = Tabs.throneSalvager;
if (!STrChOThroneSalvageData.active || !t.deleting) {
t.deleting = false;
return;
}
var item = uW.kocThroneItems[id];
if (item == null || !item) return;
if (item) t.setStatus('Salvaging ' + item.name);
SalvageThroneItem(id);
},
removeItem: function (id, cityId, numStones) {
var throne_item = uW.kocThroneItems[id];
if (throne_item == null || !throne_item) return;
var c = +(Seed.resources["city" + cityId]["rec5"][0]);
var b = Seed.throne.slotEquip;
Seed.resources["city" + cityId]["rec5"][0] = c + numStones;
jQuery.each(b, function (g, h) {
a = jQuery.inArray(id, h);
if (a > -1) {
h.splice(a, 1)
}
});
delete uW.kocThroneItems[id];
CM.ThroneView.renderInventory(uW.kocThroneItems);
},
// update items to +1 before deleting
upgradeAndDelete: function () {
var t = Tabs.throneSalvager;
if (!STrChOThroneSalvageData.active || t.delItems.length == 0) {
t.deleting = false;
return;
}
var id = +t.delItems[0];
// since simple +0 can be upgrade w/ near 100% success for 1500 a-stone and then salvaged for 2150
// upgrade all these items 1 level
if (STrChOThroneSalvageData.upgradeFirst && t.upgradeProfit) {
var throne_item = uW.kocThroneItems[id];
if (throne_item) {
if (throne_item.quality <= STrChOThroneSalvageData.upgradeFirstQual && throne_item.level == 0
&& (STrChOThroneSalvageData.upgradedToDelete.indexOf(id) < 0)) {
STrChOThroneSalvageData.upgradedToDelete.push(id);
SAVESTrChOThroneSalvageData();
Tabs.throneUpgrader.doUpgrade(+id, true);
}
}
else {
//item not found
}
}
// delete the item
t.delTimer = setTimeout(function () { t.doDelete(id) }, 4000);
},
// returns true if the item should be saved and not salvaged
applyRules: function (id) {
var t = Tabs.throneSalvager;
for (r in STrChOThroneSalvageData.ruleSet) {
var rule = STrChOThroneSalvageData.ruleSet[r];
if (rule.ThroneApplyRule(id)) return true;
}
return false;
},
// Create the list of items to delete.
// If 'test' is set to true, then broken/equipted items are included.
buildList: function (test) {
var t = Tabs.throneSalvager;
var countItem = 0;
var retList = [];
for (k in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[k];
if (throne_item == null || !throne_item) continue;
countItem++;
// ignore these things
if (throne_item.level != 0) continue;
if (throne_item.unique > 0) continue;
// in test mode, include these items
// These items are at risk if they are repaired or unequiped.
if (test != true) {
if (throne_item.isEquipped) continue;
if (throne_item.isBroken) continue;
}
// keep the first X items
if (countItem <= STrChOThroneSalvageData.throneSaveNum) continue;
// keep things w/ at least minQuality
if (throne_item.quality >= STrChOThroneSalvageData.minQuality) continue;
// check the rules
if (t.applyRules(throne_item.id)) { //item was found
if (STrChOThroneSalvageData.upgradeAutoFind) {
var found = false;
for (var i = 0; i < STrChOThroneQueueData.list.length; i++) {
var qItem = STrChOThroneQueueData.list[i];
if (qItem.item != throne_item.id) continue;
found = true;
break;
}
if (!found) {
ActionLog('Item: ' + throne_item.name + ' found and added to auto upgrade');
Tabs.throneUpgrader.addUpgradeItem(throne_item.id);
}
}
continue;
}
// passes all tests
retList.push(throne_item.id);
}
return retList;
},
// do the actual discard of TR items
doSalvage: function () {
var t = Tabs.throneSalvager;
if (!STrChOThroneSalvageData.active) {
t.deleting = false;
return;
}
if (t.deleting == true) return;
t.deleting = true;
t.setStatus('Salvaging items');
t.delItems = t.buildList(false);
if (t.delItems.length > 0) {
// upgrade items from +0 to +1 first
t.upgradeAndDelete();
} else {
// give enough time for the last delete to finish
setTimeout(function () {
t.deleting = false;
t.setStatus('No items to salvage. Waiting for next cycle.');
}, 3000);
}
},
start: function () {
var t = Tabs.throneSalvager;
if (STrChOThroneSalvageData.active) {
t.sTimer = setInterval(t.doSalvage, 1 * 60 * 1000);
}
},
addRule: function (rule) {
STrChOThroneSalvageData.ruleSet.unshift(rule);
SAVESTrChOThroneSalvageData();
},
readRows: function () {
var t = Tabs.throneSalvager;
var table = document.getElementById('STrChOThroneConditionTable');
var rowCount = table.rows.length;
var cType = document.getElementById('STrChOThroneCardType').value;
var faction = document.getElementById('STrChOThroneFactionType').value;
var conditions = [];
for (i = 0; i < table.rows.length; i++) {
var row = table.rows[i];
if (row.id) {
var s1 = document.getElementById(row.id + "ThroneSel1");
var s2 = document.getElementById(row.id + "ThroneSel2");
var s3 = document.getElementById(row.id + "ThroneSel3");
var s4 = document.getElementById(row.id + "ThroneSel4");
var slots = [];
for (j = 1; j <= 5; j++) {
var ch = document.getElementById(row.id + "ThroneSlot" + j);
slots.push(ch.checked);
}
var c = new ThroneCondition(s1.value, s2.value, s3.value, s4.value, slots);
conditions.push(c);
}
}
var rule1 = new ThroneRule(cType, faction, conditions, false);
t.addRule(rule1);
},
readAdvancedRows: function () {
var t = Tabs.throneSalvager;
var cType = document.getElementById('STrChOThroneCardTypeAdvanced').value;
var faction = document.getElementById('STrChOThroneFactionTypeAdvanced').value;
var conditions = [];
for (var i = 1; i < 6; i++) {
var row = document.getElementById("STrChOThroneRow" + i + "Advanced");
if (row.selectedIndex == 0) continue;
var slots = [];
for (var slotChecker = 1; slotChecker < 6; slotChecker++) {
slots.push(slotChecker==i);
}
var effectName = row.options[row.selectedIndex].value;
var buffDebuff = "b";
if (effectName.indexOf(" Debuff") != -1) buffDebuff = "d";
var effectName = effectName.split(" Debuff")[0];
var c = new ThroneCondition(true, 1, effectName, buffDebuff, slots);
conditions.push(c);
}
if ( conditions.length > 0 ) {
var rule1 = new ThroneRule(cType, faction, conditions, true);
t.addRule(rule1);
}
},
createRule: function () {
var t = Tabs.throneSalvager;
t.readRows();
t.buildThroneRuleDisplay();
},
createAdvancedRule: function() {
var t = Tabs.throneSalvager;
t.readAdvancedRows();
t.buildThroneRuleDisplay();
},
setSalvageQuality: function (qual) {
STrChOThroneSalvageData.minQuality = qual;
SAVESTrChOThroneSalvageData();
},
buildThroneRuleDisplay: function () {
var t = Tabs.throneSalvager;
function innerThroneRuleDisplay(dataset) {
var innerM = '';
for (i = 0; i < dataset.length; i++) {
var rule = dataset[i];
innerM += '<tr>';
innerM += '<td width=90%><div class=STrChOThroneRule>';
innerM += (rule.advancedrule ? 'Advanced Rule<br>' : 'Simple Rule<br>');
innerM += ' Type: ' + rule.type;
innerM += ' Faction: ' + rule.faction;
for (ii = 0; ii < rule.conditions.length; ii++) {
var condition = rule.conditions[ii];
if (ii == 0)
innerM += '<br> Item';
else
innerM += '<br> <u>and</u>';
if (condition.mustHave != 'false')
innerM += ' must have ';
else
innerM += ' must NOT have ';
innerM += condition.number + 'x ';
innerM += condition.effect + ' ';
if (condition.buffType == 'b')
innerM += 'buff ';
else if (condition.buffType == 'd')
innerM += 'debuff ';
else
innerM += 'buff or debuff ';
innerM += ' in slot(s): ';
for (j = 0; j < condition.slots.length; j++) {
if (condition.slots[j]) innerM += (j + 1) + " ";
}
}
innerM += '</div></td>';
innerM += '<td width=20% align=center>';
innerM += '<input id=STrChOThroneEditRule' + i + ' class=STrChOButton type=button value="Edit">';
innerM += '<input id=STrChOThroneDelRule' + i + ' class=STrChOButton type=button value="X">';
innerM += '</td>';
innerM += '</tr>';
}
return innerM;
}
var rd = document.getElementById('STrChOThroneRuleDisplay');
var sortType = document.getElementById('STrChOThroneSalvageSortCard').value;
var ruleCounter = 0;
if (sortType != "0") {
var sortedDataSet = [];
for (var k = 0; k < STrChOThroneSalvageData.ruleSet.length; k++) {
if (sortType == STrChOThroneSalvageData.ruleSet[k].type) {
sortedDataSet.unshift(STrChOThroneSalvageData.ruleSet[k]);
}else {
sortedDataSet.push(STrChOThroneSalvageData.ruleSet[k]);
}
}
rd.innerHTML = '<table width=100%>' + innerThroneRuleDisplay(sortedDataSet);
ruleCounter = sortedDataSet.length;
for (var j = 0; j < sortedDataSet.length; j++) {
document.getElementById('STrChOThroneDelRule' + j).v1 = j;
document.getElementById('STrChOThroneEditRule' + j).v1 = j;
document.getElementById('STrChOThroneDelRule' + j).addEventListener('click', function () { t.deleteRule(this.v1, sortedDataSet); }, false);
document.getElementById('STrChOThroneEditRule' + j).addEventListener('click', function () { t.editRule(this.v1, sortedDataSet); }, false);
}
} else {
ruleCounter = STrChOThroneSalvageData.ruleSet.length;
rd.innerHTML = '<table width=100%>' + innerThroneRuleDisplay(STrChOThroneSalvageData.ruleSet);
for (var j = 0; j < STrChOThroneSalvageData.ruleSet.length; j++) {
document.getElementById('STrChOThroneDelRule' + j).v1 = j;
document.getElementById('STrChOThroneEditRule' + j).v1 = j;
document.getElementById('STrChOThroneDelRule' + j).addEventListener('click', function () { t.deleteRule(this.v1, STrChOThroneSalvageData.ruleSet); }, false);
document.getElementById('STrChOThroneEditRule' + j).addEventListener('click', function () { t.editRule(this.v1, STrChOThroneSalvageData.ruleSet); }, false);
}
}
document.getElementById('STrChOThroneRuleCount').innerHTML = '(Total Rules: ' + ruleCounter + ')';
},
editRule: function (ruleIndex, sortedData)
{
var t = Tabs.throneSalvager;
var rule = sortedData[ruleIndex];
var divExpander = null;
if (rule.advancedrule)
divExpander = document.getElementById('STrChOThroneAdvancedRule');
else
divExpander = document.getElementById('STrChOThroneSimpleRule');
divExpander.click();
if (divExpander.childNodes[0].src == STrChORightArrow) divExpander.click();
if (rule.advancedrule) {
document.getElementById('STrChOThroneFactionTypeAdvanced').value = rule.faction;
document.getElementById('STrChOThroneCardTypeAdvanced').value = rule.type;
t.clearAdvancedStats();
if (rule.type == 'any')
t.setAdvancedStatsToAny();
else
t.filterAdvancedStats(rule.type);
for (row = 0; row < rule.conditions.length; row++) {
var condition = rule.conditions[row];
var slotNumber = 0;
for (s = 0; s < condition.slots.length; s++) {
if (condition.slots[s]) slotNumber = s+1;
}
var cell = document.getElementById('STrChOThroneRow' + slotNumber + 'Advanced');
var STrChOEffect = condition.effect;
if (condition.buffType == 'd') STrChOEffect += ' Debuff';
cell.value = STrChOEffect;
}
} else {
document.getElementById('STrChOThroneFactionType').value = rule.faction;
document.getElementById('STrChOThroneCardType').value = rule.type;
var STrChOThroneConditionTable = document.getElementById('STrChOThroneConditionTable');
while (STrChOThroneConditionTable.rows.length > 1) STrChOThroneConditionTable.deleteRow(0);
for (row = 0; row < rule.conditions.length; row++) {
var condition = rule.conditions[row];
t.createRow();
STrChOThroneConditionTable = document.getElementById('STrChOThroneConditionTable');
STrChOThroneConditionTable.rows[row].cells[0].children[0].value = condition.mustHave;
STrChOThroneConditionTable.rows[row].cells[1].children[0].value = condition.number;
STrChOThroneConditionTable.rows[row].cells[2].children[0].value = condition.effect;
STrChOThroneConditionTable.rows[row].cells[3].children[0].value = condition.buffType;
var slotCells = STrChOThroneConditionTable.rows[row].cells[4];
for (s = 0; s < condition.slots.length; s++) {
if (condition.slots[s])
slotCells.children[s].checked = true;
else
slotCells.children[s].checked = false;
}
}
}
t.deleteRule(ruleIndex, sortedData);
},
// delete a rule from the ruleset
deleteRule: function (ruleIndex, sortedData) {
var t = Tabs.throneSalvager;
sortedData.splice(ruleIndex, 1);
var newDataSet = [];
for (var i = 0; i < STrChOThroneSalvageData.ruleSet.length; i++) {
for (var i2 = 0; i2 < sortedData.length; i2++) {
if (STrChOThroneSalvageData.ruleSet[i] == sortedData[i2]) {
newDataSet.push(STrChOThroneSalvageData.ruleSet[i]);
break;
}
}
}
STrChOThroneSalvageData.ruleSet = newDataSet;
SAVESTrChOThroneSalvageData();
t.buildThroneRuleDisplay();
},
removeRow: function (row) {
var t = Tabs.throneSalvager;
var table = document.getElementById('STrChOThroneConditionTable');
for (i = 0; i < table.rows.length; i++) {
if (table.rows[i] == row) {
table.deleteRow(i);
break;
}
}
},
createRow: function () {
var t = Tabs.throneSalvager;
var table = document.getElementById('STrChOThroneConditionTable');
var rowCount = table.rows.length;
var row = table.insertRow(rowCount - 1);
var rowId = "r" + t.rowNum;
t.rowNum += 1;
row.id = rowId;
var h = '<td> <select class=STrChOSelect id="' + rowId + 'ThroneSel1"> <option value="true"></option><option value="false">NOT</option></select></td>';
h += '<td> <select class=STrChOSelect id="' + rowId + 'ThroneSel2">';
h += ' <option value="1">1x</option>';
h += ' <option value="2">2x</option>';
h += ' <option value="3">3x</option>';
h += ' <option value="4">4x</option>';
h += ' <option value="5">5x</option>';
h += '</select></td>';
h += '<td> <select class=STrChOSelect id="' + rowId + 'ThroneSel3">';
h += '</select></td>';
h += '<td> <select class=STrChOSelect id="' + rowId + 'ThroneSel4">';
h += ' <option value="e">Either</option>';
h += ' <option value="b">Buff</option>';
h += ' <option value="d">Debuff</option>';
h += '</select></td>';
h += '<td>';
h += ' <input class=STrChOCheckbox type=checkbox value="1" checked=true id="' + rowId + 'ThroneSlot1"/>1';
h += ' <input class=STrChOCheckbox type=checkbox value="2" checked=true id="' + rowId + 'ThroneSlot2"/>2';
h += ' <input class=STrChOCheckbox type=checkbox value="3" checked=true id="' + rowId + 'ThroneSlot3"/>3';
h += ' <input class=STrChOCheckbox type=checkbox value="4" checked=true id="' + rowId + 'ThroneSlot4"/>4';
h += ' <input class=STrChOCheckbox type=checkbox value="5" checked=true id="' + rowId + 'ThroneSlot5"/>5';
h += '</td>';
row.innerHTML = h;
var effects = [];
for (e in CM.thronestats.effects) {
var effectName = CM.thronestats.effects[e][1].split(" Debuff")[0];
if (effects.indexOf(effectName) < 0) effects.push(effectName);
}
var select = document.getElementById(rowId + "ThroneSel3");
for (index in effects) {
select.options.add(new Option(effects[index], effects[index]));
}
// add in options for troops specific effects
select.options.add(new Option("Any Infantry", "Infantry"));
select.options.add(new Option("Any Ranged", "Ranged"));
select.options.add(new Option("Any Horsed", "Horsed"));
select.options.add(new Option("Any Siege", "Siege"));
select.options.add(new Option("Any Spellcaster", "Spellcaster"));
select.options.add(new Option("Any Tower", "Tower"));
var c = row.insertCell(5);
//TODO: change to javascript
var btn = $('<input class=STrChOButton type=button value="X" />');
$(btn).click(function () { t.removeRow(row); });
$(c).append(btn);
},
togglePower: function (obj) {
var t = Tabs.throneSalvager;
if (STrChOThroneSalvageData.active) {
var btn = document.getElementById('STrChOThroneSalvagePower');
STrChOThroneSalvageData.active = false;
btn.value = "Salvager = OFF";
t.setStatus('Powered Off');
clearInterval(t.sTimer);
clearInterval(t.delTimer);
t.delItems = [];
STrChOThroneSalvageData.upgradedToDelete = [];
t.deleting = false;
} else {
if (STrChOGeneralOptions.throneSorter) {
if (!confirm('SORTER WARNING: You will likely experience lowered salvage rates and potentially crashing if you have both sorter and salvager enabled. Would you like to continue?')) return;
}
STrChOThroneSalvageData.active = true;
var btn = document.getElementById('STrChOThroneSalvagePower');
btn.value = "Salvager = ON";
t.setStatus('Loading...');
t.doSalvage();
t.start();
}
SAVESTrChOThroneSalvageData();
t.updateThroneMenu();
},
// put out a status message on the trSavlStatus div
setStatus: function (msg) {
document.getElementById('STrChOThroneSalvageStatus').innerHTML = msg;
},
displayNumberSalvaged: function () {
var since = "";
var rate = "";
var now = new Date();
if (!STrChOThroneSalvageData.since) STrChOThroneSalvageData.since = now.valueOf();
var sinceD = new Date(STrChOThroneSalvageData.since);
since = sinceD.toDateString().substring(3, 10) + " " + sinceD.toLocaleTimeString();
var duration = now.valueOf() - STrChOThroneSalvageData.since + 1;
duration = duration / 1000.0;
rate = ' (' + addCommas(Math.round(STrChOThroneSalvageData.numSalvagedItems2 / duration * 86400)) + ' per day)';
var m = "";
m += '<div style="text-align: center;">';
m += addCommas(STrChOThroneSalvageData.numSalvagedItems);
m += ' items salvaged, ';
m += addCommas(STrChOThroneSalvageData.numSalvagedItems2);
m += ' items since ' + since + rate;
m += '<input id=STrChOThroneTripOdometer class=STrChOButton type=button value="<-- Reset" /></div>';
document.getElementById('STrChOThroneNumSalv').innerHTML = m;
document.getElementById('STrChOThroneTripOdometer').addEventListener('click', function () {
Tabs.throneSalvager.tripOdometer();
}, false);
},
tripOdometer: function () {
STrChOThroneSalvageData.numSalvagedItems2 = 0;
var now = new Date();
STrChOThroneSalvageData.since = now.valueOf();
SAVESTrChOThroneSalvageData();
Tabs.throneSalvager.displayNumberSalvaged();
},
}
Tabs.throneRepair = {
tabOrder: 103,
tabLabel: 'REPAIR',
tabColor: 'red',
tabHeader: 'THRONE ROOM REPAIR',
repairId: 0,
repairEnd: 0,
timerH: null,
clearTimerH: null,
init: function (div) {
var t = Tabs.throneRepair;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '<div class=STrChOSaveSettings id=STrChOThroneRepairSaveSettings title="Save Repair Settings"></div><div class=STrChOLoadSettings id=STrChOThroneRepairLoadSettings title="Load Repair Settings"></div></div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
if (STrChOThroneRepairData.active) {
m += '<td width=50%><input id=STrChOThroneRepairPower type=button class=STrChOButton value="Repair = ON"></td>';
} else {
m += '<td width=50%><input id=STrChOThroneRepairPower type=button class=STrChOButton value="Repair = OFF"></td>';
}
m += '<td width=50%><div class=divNoWrap align=center id=STrChOThroneRepairAetherDisplay></div></td>';
m += '</tr>';
m += '<tr><td colspan=2><hr class=STrChOHRCenter></td></tr>';
m += '<tr><td colspan=2><div class=indent5 id=STrChOThroneRepairStatus><br></div></td></tr>';
m += '<tr><td colspan=2><div class=indent5 id=STrChOThroneRepairLastResult><br></div></td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> SPEED UPS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairHourglassLevelSpecific ' + (STrChOThroneRepairData.hourglassLevelSpecific ? "CHECKED" : "") + '>Only use hourglass for levels ';
m += '<select class=STrChOSelect id=STrChOThroneRepairHourglassLevel>';
for (lvl = 1; lvl < STrChOMaxThroneLevel; lvl++) m += '<option value="' + lvl + '" ' + (STrChOThroneRepairData.hourglassLevel == lvl ? 'SELECTED' : '') + '>+' + lvl + '</option>';
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairHourglassQualitySpecific ' + (STrChOThroneRepairData.hourglassQualitySpecific ? "CHECKED" : "") + '>Only use hourglass for qualities ';
m += '<select class=STrChOSelect id=STrChOThroneRepairHourglassQuality>';
for (qual = 1; qual <= STrChOMaxThroneQuality-1; qual++) m += '<option value="' + qual + '" ' + (STrChOThroneRepairData.hourglassQuality == qual ? 'SELECTED' : '') + '>' + throneCardQualities[qual].capitalizeFirstLetter() + '</option>';
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[1] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairUseSH ' + (STrChOThroneRepairData.useSH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[1] + ' (<div class=divNoWrap id=STrChOThroneRepairUseSHLabel><font' + (uW.ksoItems[1].count < 100 ? ' color=red>' : '>') + uW.ksoItems[1].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[2] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairUseKH ' + (STrChOThroneRepairData.useKH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[2] + ' (<div class=divNoWrap id=STrChOThroneRepairUseKHLabel><font' + (uW.ksoItems[2].count < 100 ? ' color=red>' : '>') + uW.ksoItems[2].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[3] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairUseGH ' + (STrChOThroneRepairData.useGH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[3] + ' (<div class=divNoWrap id=STrChOThroneRepairUseGHLabel><font' + (uW.ksoItems[3].count < 100 ? ' color=red>' : '>') + uW.ksoItems[3].count + '</font></div>)</div></td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[4] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairUseMH ' + (STrChOThroneRepairData.useMH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[4] + ' (<div class=divNoWrap id=STrChOThroneRepairUseMHLabel><font' + (uW.ksoItems[4].count < 100 ? ' color=red>' : '>') + uW.ksoItems[4].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[5] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairUseAH ' + (STrChOThroneRepairData.useAH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[5] + ' (<div class=divNoWrap id=STrChOThroneRepairUseAHLabel><font' + (uW.ksoItems[5].count < 100 ? ' color=red>' : '>') + uW.ksoItems[5].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[6] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairUseWH ' + (STrChOThroneRepairData.useWH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[6] + ' (<div class=divNoWrap id=STrChOThroneRepairUseWHLabel><font' + (uW.ksoItems[6].count < 100 ? ' color=red>' : '>') + uW.ksoItems[6].count + '</font></div>)</div></td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[7] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairUseDH ' + (STrChOThroneRepairData.useDH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[7] + ' (<div class=divNoWrap id=STrChOThroneRepairUseDHLabel><font' + (uW.ksoItems[7].count < 100 ? ' color=red>' : '>') + uW.ksoItems[7].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[8] + '"><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairUseEH ' + (STrChOThroneRepairData.useEH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[8] + ' (<div class=divNoWrap id=STrChOThroneRepairUseEHLabel><font' + (uW.ksoItems[8].count < 100 ? ' color=red>' : '>') + uW.ksoItems[8].count + '</font></div>)</div></td>';
m += '<td/>';
m += '</tr>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOThroneRepairOverrideSpeedUps ' + (STrChOThroneRepairData.overrideSpeedUp ? "CHECKED" : "") + '>Override hourglasses by using ';
m += '<select class=STrChOSelect id=STrChOThroneRepairSpeedUp>';
m += '<option value=0>None</option>';
for (gls in STrChOHourGlassName) {
m += '<option value=' + gls + ' ' + (STrChOThroneRepairData.useSpeedUp == gls ? 'SELECTED' : '') + '>' + STrChOHourGlassName[gls] + '</option>';
}
m += '</select> every time</td>';
m += '</tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> REPAIR ITEMS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td>Queue By Level: <select class=STrChOSelect id=STrChOThroneRepairByLevel>';
for (i = 1; i < STrChOMaxThroneLevel; i++) m += '<option value=' + i + '>+' + i + '</option>';
m += '</select> <input id=STrChOThroneRepairByLevelAdd class=STrChOButton type=button value="Add"/></td></tr>';
m += '<tr><td>Queue By Preset Tag: <select class=STrChOSelect id=STrChOThroneRepairPresetTagList>';
var presetSlots = getObjectCollectionCount(Seed.throne.slotEquip);
var presetsList = "";
for (i = 1; i < presetSlots + 1; i++) presetsList += '<option value="' + i + '">' + i + ' (' + STrChOThronePresetData.presetNames[i] + ')</option>';
m += presetsList;
m += "</select> <input id=STrChOThroneRepairPresetTag class=STrChOButton type=button value='Add'/></td></tr>";
m += '<tr><td><div style="max-width:90%;">Item: <select class=STrChOSelect style="white-space:nowrap;display:inline-block;max-width: 200px;" id=STrChOThroneRepairList>';
m += '</select><input id=STrChOThroneRepairAdd type=button class=STrChOButton value="Add"/> <input id=STrChOThroneRepairAddAll class=STrChOButton type=button value="Add All"> <input id=STrChOThroneRepairRefresh class=STrChOButton type=button value="Refresh List"></div></td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader> REPAIR LIST </div>';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td colspan=2>';
m += '<div id=STrChOThroneRepairQScroll style="position: static; width: 100%; height: 350px; overflow-x: auto; overflow-y: auto;">';
m += '<div id=STrChOThroneRepairQDiv></div>';
m += '</div>';
m += '</td></tr>';
m += '<tr align=center><td><div><input style="float: left;" id=STrChOThroneRepairClear class=STrChOButton type=button value="Clear Queue"/></div></td><td><div><input style="float: right;" id=STrChOThroneRepairClearF class=STrChOButton type=button value="Clear Repaired"/></div></td></tr>';
m += '</table>';
m += '</div>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOThroneRepairSaveSettings').addEventListener('click', function () {
SaveSettingsToFile(STrChOThroneRepairData);
}, false);
document.getElementById('STrChOThroneRepairLoadSettings').addEventListener('click', function () {
var loader = document.getElementById('STrChOSettingsFile');
loader.addEventListener('change', function () {
LoadSettingsFromFile(STrChOThroneRepairData, Tabs.throneRepair);
}, false);
loader.click();
}, false);
t.refreshAetherDisplay();
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
document.getElementById('STrChOThroneRepairUseWH').addEventListener('change', function () {
STrChOThroneRepairData.useWH = document.getElementById('STrChOThroneRepairUseWH').checked;
SAVESTrChOThroneRepairData();
if (STrChOThroneRepairData.useWH) t.doAction();
}, false);
document.getElementById('STrChOThroneRepairUseDH').addEventListener('change', function () {
STrChOThroneRepairData.useDH = document.getElementById('STrChOThroneRepairUseDH').checked;
SAVESTrChOThroneRepairData();
if (STrChOThroneRepairUseDH.useDH) t.doAction();
}, false);
document.getElementById('STrChOThroneRepairUseEH').addEventListener('change', function () {
STrChOThroneRepairData.useEH = document.getElementById('STrChOThroneRepairUseEH').checked;
SAVESTrChOThroneRepairData();
if (STrChOThroneRepairData.useEH) t.doAction();
}, false);
document.getElementById('STrChOThroneRepairUseSH').addEventListener('change', function () {
STrChOThroneRepairData.useSH = document.getElementById('STrChOThroneRepairUseSH').checked;
SAVESTrChOThroneRepairData();
if (STrChOThroneRepairData.useSH) t.doAction();
}, false);
document.getElementById('STrChOThroneRepairUseKH').addEventListener('change', function () {
STrChOThroneRepairData.useKH = document.getElementById('STrChOThroneRepairUseKH').checked;
SAVESTrChOThroneRepairData();
if (STrChOThroneRepairData.useKH) t.doAction();
}, false);
document.getElementById('STrChOThroneRepairUseGH').addEventListener('change', function () {
STrChOThroneRepairData.useGH = document.getElementById('STrChOThroneRepairUseGH').checked;
SAVESTrChOThroneRepairData();
if (STrChOThroneRepairData.useGH) t.doAction();
}, false);
document.getElementById('STrChOThroneRepairUseMH').addEventListener('change', function () {
STrChOThroneRepairData.useMH = document.getElementById('STrChOThroneRepairUseMH').checked;
SAVESTrChOThroneRepairData();
if (STrChOThroneRepairData.useMH) t.doAction();
}, false);
document.getElementById('STrChOThroneRepairUseAH').addEventListener('change', function () {
STrChOThroneRepairData.useAH = document.getElementById('STrChOThroneRepairUseAH').checked;
SAVESTrChOThroneRepairData();
if (STrChOThroneRepairData.useAH) t.doAction();
}, false);
document.getElementById('STrChOThroneRepairHourglassLevelSpecific').addEventListener('change', function () {
STrChOThroneRepairData.hourglassLevelSpecific = document.getElementById('STrChOThroneRepairHourglassLevelSpecific').checked;
SAVESTrChOThroneRepairData();
t.doAction();
}, false);
document.getElementById('STrChOThroneRepairHourglassQualitySpecific').addEventListener('change', function () {
STrChOThroneRepairData.hourglassQualitySpecific = document.getElementById('STrChOThroneRepairHourglassQualitySpecific').checked;
SAVESTrChOThroneRepairData();
t.doAction();
}, false);
document.getElementById('STrChOThroneRepairOverrideSpeedUps').addEventListener('change', function () {
STrChOThroneRepairData.overrideSpeedUp = document.getElementById('STrChOThroneRepairOverrideSpeedUps').checked;
SAVESTrChOThroneRepairData();
if (STrChOThroneRepairData.overrideSpeedUp) t.doAction();
}, false);
document.getElementById('STrChOThroneRepairSpeedUp').addEventListener('change', function () {
STrChOThroneRepairData.useSpeedUp = document.getElementById('STrChOThroneRepairSpeedUp').value;
SAVESTrChOThroneRepairData();
}, false);
document.getElementById('STrChOThroneRepairHourglassLevel').addEventListener('change', function () {
STrChOThroneRepairData.hourglassLevel = document.getElementById('STrChOThroneRepairHourglassLevel').value;
SAVESTrChOThroneRepairData();
t.doAction();
}, false);
document.getElementById('STrChOThroneRepairHourglassQuality').addEventListener('change', function () {
STrChOThroneRepairData.hourglassQuality = document.getElementById('STrChOThroneRepairHourglassQuality').value;
SAVESTrChOThroneRepairData();
t.doAction();
}, false);
document.getElementById('STrChOThroneRepairPower').addEventListener('click', function () {
t.togglePower(this);
}, false);
document.getElementById('STrChOThroneRepairByLevelAdd').addEventListener('click', function () {
var t = Tabs.throneRepair;
var level = document.getElementById('STrChOThroneRepairByLevel').value;
for (trId in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
if (!throne_item.isBroken) continue;
if (throne_item.level != level) continue;
t.addQueue(trId);
}
}, false);
document.getElementById('STrChOThroneRepairPresetTag').addEventListener('click', function () {
var t = Tabs.throneRepair;
var presetTagNum = document.getElementById('STrChOThroneRepairPresetTagList').value;
var presetTag = getThronePresetObject(parseInt(presetTagNum));
for (var ptId in presetTag) {
var throne_item = uW.kocThroneItems[ptId];
if (throne_item == null || !throne_item) continue;
if (throne_item.isBroken) t.addQueue(ptId);
}
}, false);
document.getElementById('STrChOThroneRepairClear').addEventListener('click', function () {
t.deleteQueue();
}, false);
document.getElementById('STrChOThroneRepairClearF').addEventListener('click', function () {
var temp = [];
while (STrChOThroneRepairData.items.length > 0) {
var trId = STrChOThroneRepairData.items.pop();
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
if (throne_item.isBroken) temp.push(trId);
}
while (temp.length > 0) STrChOThroneRepairData.items.push(temp.pop());
STrChOThroneRepairData.index = 0
SAVESTrChOThroneRepairData();
t.populateThroneRepairListBox();
t.buildThroneRepairDisplay();
}, false);
document.getElementById('STrChOThroneRepairAdd').addEventListener('click', function () {
t.addQueue();
}, false);
document.getElementById('STrChOThroneRepairAddAll').addEventListener('click', function () {
t.addAllQueue();
}, false);
document.getElementById('STrChOThroneRepairRefresh').addEventListener('click', function () {
t.populateThroneRepairListBox();
}, false);
if (STrChOThroneRepairData.active)
t.setStatus('Loading...');
else
t.setStatus('Powered Off');
t.refreshAetherDisplay();
var d = 2 + Math.random() * 8;
if (Seed.queue_throne != null && Seed.queue_throne.end != null) {
var repairTimeLeft = Seed.queue_throne.end - unixTime();
t.repairEnd = Seed.queue_throne.end;
t.repairId = Seed.queue_throne.itemId;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Waiting until " + n.toLocaleTimeString() + " for repair to complete. Item: " + uW.kocThroneItems[t.repairId].name);
if (STrChOThroneRepairData.useSH || STrChOThroneRepairData.useKH || STrChOThroneRepairData.useGH || STrChOThroneRepairData.useMH || STrChOThroneRepairData.useAH || STrChOThroneRepairData.useWH || STrChOThroneRepairData.useDH || STrChOThroneRepairData.useEH || (STrChOThroneRepairData.overrideSpeedUp && STrChOThroneRepairData.useSpeedUp > 0)) {
var throneItem = uW.kocThroneItems[t.repairId];
var trQuality = throneItem.quality;
var trLevel = throneItem.level;
var useThoseSpeedups = true;
if (STrChOThroneRepairData.hourglassQualitySpecific && trQuality < STrChOThroneRepairData.hourglassQuality) useThoseSpeedups = false;
if (STrChOThroneRepairData.hourglassLevelSpecific && trLevel < STrChOThroneRepairData.hourglassLevel) useThoseSpeedups = false;
if (STrChOThroneRepairData.overrideSpeedUp) useThoseSpeedups = true;
if (useThoseSpeedups) {
setTimeout(function () { t.doSpeedup(); }, 2000);
}
}
setTimeout(t.clearRepair, (repairTimeLeft + 1) * 1000);
if (repairTimeLeft > 0) d += repairTimeLeft;
}
t.populateThroneRepairListBox();
t.buildThroneRepairDisplay();
if (!STrChOThroneRepairData.active) t.setStatus("Powered Off");
if (t.timerH == null) {
t.timerH = setTimeout(t.doAction, d * 1000);
}
},
refreshAetherDisplay : function () {
document.getElementById('STrChOThroneRepairAetherDisplay').innerHTML = displayCityAstone();
},
hide: function () {},
show: function () {
var t = Tabs.throneRepair;
t.refreshAetherDisplay();
t.populateThroneRepairListBox();
t.buildThroneRepairDisplay();
},
doRepair: function (rItem) {
var t = Tabs.throneRepair;
var params = uW.Object.clone(ajfx);
if (STrChOThroneRepairData.active == false || rItem == 0 || uW.kocThroneItems[rItem] == null) return;
var theItem = uW.kocThroneItems[rItem];
params.action = 'timeRepair';
params.throneRoomItemId = rItem;
params.ctrl = 'throneRoom\\ThroneRoomServiceAjax';
new AjaxRequest(uW.g_ajaxpath + "ajax/_dispatch53.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
var item = uW.kocThroneItems[rItem];
var startTime = unixTime();
var endTime = rslt.eta;
ActionLog('Starting repair for Throne Room item ' + item.name);
Seed.queue_throne.itemId = item.id;
Seed.queue_throne.start = startTime;
Seed.queue_throne.end = endTime;
t.repairId = item.id;
t.repairEnd = endTime;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Repair begun ... Repair will be complete at " + n.toLocaleTimeString() + ". Item: " + item.name);
var secondsForRepair = t.repairEnd - startTime;
if (secondsForRepair < 0) secondsForRepair = 0;
CM.ThroneView.renderInventory(uW.kocThroneItems);
t.clearTimerH = setTimeout(t.clearRepair, (secondsForRepair + 1) * 1000);
t.buildThroneRepairDisplay();
if (STrChOThroneRepairData.useSH || STrChOThroneRepairData.useKH || STrChOThroneRepairData.useGH || STrChOThroneRepairData.useMH || STrChOThroneRepairData.useAH || STrChOThroneRepairData.useWH || STrChOThroneRepairData.useDH || STrChOThroneRepairData.useEH || (STrChOThroneRepairData.overrideSpeedUp && STrChOThroneRepairData.useSpeedUp > 0)) {
var throneItem = uW.kocThroneItems[t.repairId];
var trQuality = throneItem.quality;
var trLevel = throneItem.level;
var useThoseSpeedups = true;
if (STrChOThroneRepairData.hourglassQualitySpecific && trQuality < STrChOThroneRepairData.hourglassQuality) useThoseSpeedups = false;
if (STrChOThroneRepairData.hourglassLevelSpecific && trLevel < STrChOThroneRepairData.hourglassLevel) useThoseSpeedups = false;
if (STrChOThroneRepairData.overrideSpeedUp) useThoseSpeedups = true;
if (useThoseSpeedups) {
setTimeout(function () { t.doSpeedup(); }, 2000);
}
}
}
else {
if (rslt.msg == "Item is not broken") {
uW.kocThroneItems[rItem].isBroken = false;
t.clearRepair();
}
// regrab the end times in case this is caused by a manual repair
if (Seed.queue_throne && Seed.queue_throne.end && Seed.queue_throne.itemId) {
t.repairEnd = Seed.queue_throne.end;
t.repairId = Seed.queue_throne.itemId;
}
}
return;
},
onFailure: function (ttt) {
// this usually means a repair is in progress (such as a manual repair). Grab the seed data (if possible)
if (Seed.queue_throne && Seed.queue_throne.end) {
t.repairEnd = Seed.queue_throne.end;
t.repairId = Seed.queue_throne.itemId;
}
return;
}
});
return;
},
togglePower: function (obj) {
var t = Tabs.throneRepair;
var STrChOThroneRepairPower = document.getElementById('STrChOThroneRepairPower');
if (STrChOThroneRepairData.active) {
STrChOThroneRepairData.active = false;
STrChOThroneRepairPower.value = "Repair = OFF";
t.setStatus("Powered Off");
t.setResult("");
} else {
STrChOThroneRepairData.active = true;
STrChOThroneRepairPower.value = "Repair = ON";
t.setStatus("Powered On");
t.setResult("");
STrChOThroneUpgradeData.active = false;
SAVESTrChOThroneUpgradeData();
t.doAction();
}
if (!STrChOThroneRepairData.active) {
}
SAVESTrChOThroneRepairData();
t.updateThroneMenu();
},
clearRepair: function () {
var t = Tabs.throneRepair;
var timeUntilDone = 0;
if (t.repairEnd == 0) {
return timeUntilDone;
}
timeUntilDone = t.repairEnd - unixTime();
if (timeUntilDone <= 0) {
// logit("clearing repair");
if (t.repairId != 0 && uW.kocThroneItems[t.repairId] != null) {
if (!uW.kocThroneItems[t.repairId].isBroken) {
t.setStatus("Repair time complete.");
document.getElementById('STrChOThroneRepairState' + t.repairId).className = "STrChOSuccess";
} else {
uW.kocThroneItems[t.repairId].isBroken = false;
uW.kocThroneItems[t.repairId].brokenType = "";
}
t.repairId = 0;
}
}
CM.ThroneView.renderInventory(uW.kocThroneItems);
return timeUntilDone;
},
setStatus: function (s) {
document.getElementById('STrChOThroneRepairStatus').innerHTML = "<div>" + s + "</div>";
},
setResult: function (s) {
document.getElementById('STrChOThroneRepairLastResult').innerHTML = "<div>" + s + "</div>";
},
updateThroneMenu: function () {
if (!document.getElementById('STrChOExecuteRepair')) return;
document.getElementById('STrChOExecuteRepair').innerHTML = 'Repair ' + (STrChOThroneRepairData.active ? 'ON' : 'OFF');
},
deleteRepairItem: function (index) {
// delete an item from the queue
var t = Tabs.throneRepair;
STrChOThroneRepairData.items.splice(index, 1);
SAVESTrChOThroneRepairData();
t.populateThroneRepairListBox();
t.buildThroneRepairDisplay();
},
moveRepairUpRow: function (index) {
if (index < 1) return;
var t = Tabs.throneRepair;
var q = STrChOThroneRepairData.items.splice(index, 1);
STrChOThroneRepairData.items.splice(index - 1, 0, q);
if (index == STrChOThroneRepairData.index)
STrChOThroneRepairData.index--;
else if (STrChOThroneRepairData.index == index - 1)
STrChOThroneRepairData.index++;
SAVESTrChOThroneRepairData();
t.buildThroneRepairDisplay();
},
moveRepairDownRow: function (index) {
if (index > (STrChOThroneRepairData.items.length - 2)) return;
var t = Tabs.throneRepair;
var q = STrChOThroneRepairData.items.splice(index, 1);
STrChOThroneRepairData.items.splice(index + 1, 0, q);
if (i == STrChOThroneRepairData.index)
STrChOThroneRepairData.index++;
else if (STrChOThroneRepairData.index == i + 1)
STrChOThroneRepairData.index--;
SAVESTrChOThroneRepairData();
t.buildThroneRepairDisplay();
},
buildThroneRepairDisplay: function () {
var t = Tabs.throneRepair;
var STrChOThroneRepairQDiv = document.getElementById('STrChOThroneRepairQDiv');
var totalRepairTime = t.calcRepairTime();
var item_count = STrChOThroneRepairData.items.length;
var m = '<table>';
if (totalRepairTime > 0) m += '<caption><b><i>Total Repair Time (' + item_count + ' items): ' + repairTimeToText(totalRepairTime) + '</i></b></caption>';
m += '<tr>';
m += '<th width=10%>Remove</th>';
m += '<th width=5%>Order</th>';
m += '<th width=8%>Status</th>';
m += '<th width=25%>Item</th>';
m += '</tr>';
if (item_count > 0) {
for (var item_index = 0; item_index < item_count; item_index++) {
var trId = STrChOThroneRepairData.items[item_index];
if (trId == null) {
t.deleteRepairItem(item_index);
return;
}
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) {
t.deleteRepairItem(item_index);
return;
}
m += '<tr>';
m += '<td align=center><div id=STrChOThroneRepairRemove' + trId + ' class=STrChORemove></div></td>';
m += '<td align=center><div class=STrChOUpRow id=STrChOThroneRepairUpRow' + trId + '></div><div class=STrChODownRow id=STrChOThroneRepairDownRow' + trId + '></div></td>';
m += '<td align=center><div id=STrChOThroneRepairState' + trId + '></div></td>';
m += '<td align=center class=STrChOThroneRepairItemName><div id=STrChOThroneRepairItem' + trId + ' >' + throne_item.name + '</div></td>';
m += '</tr>';
}
m += '</table>';
STrChOThroneRepairQDiv.innerHTML = m;
for (var item_index = 0; item_index < item_count; item_index++) {
var trId = STrChOThroneRepairData.items[item_index];
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
document.getElementById('STrChOThroneRepairItem' + trId).addEventListener('mouseover', function(A) {
A.stopPropagation();
var throneId = this.id.split('STrChOThroneRepairItem')[1];
var throneItem = uW.kocThroneItems[throneId];
var STrChOCard = document.getElementById('STrChOThroneRepairItem' + throneId);
CM.ThroneView.hoverItem(A, STrChOCard, throneItem);
}, false);
document.getElementById('STrChOThroneRepairRemove' + trId).setAttribute('v1', item_index);
document.getElementById('STrChOThroneRepairRemove' + trId).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.deleteRepairItem(qIndex);
}, false);
document.getElementById('STrChOThroneRepairUpRow' + trId).setAttribute('v1', item_index);
document.getElementById('STrChOThroneRepairUpRow' + trId).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.moveRepairUpRow(qIndex);
}, false);
document.getElementById('STrChOThroneRepairDownRow' + trId).setAttribute('v1', item_index);
document.getElementById('STrChOThroneRepairDownRow' + trId).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.moveRepairDownRow(qIndex);
}, false);
var throne_item = uW.kocThroneItems[trId];
if (!throne_item || !(throne_item.id)) {
document.getElementById('STrChOThroneRepairState' + trId).innerHTML = '<div style="text-align:center"> ??</div>';
} else if (!throne_item.isBroken) {
document.getElementById('STrChOThroneRepairState' + trId).className = 'STrChOSuccess';
} else if (throne_item.isBroken) {
if (trId == t.repairId) {
document.getElementById('STrChOThroneRepairState' + trId).className = 'STrChOHammer';
} else {
document.getElementById('STrChOThroneRepairState' + trId).className = 'STrChOBroken';
}
}
}
} else {
m += '</table>';
STrChOThroneRepairQDiv.innerHTML = m;
}
},
populateThroneRepairListBox: function () {
var repairList = document.getElementById('STrChOThroneRepairList');
var m = '<option value=0>--Items--</option>';
var item_count = STrChOThroneRepairData.items.length;
for (trId in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
if (!throne_item.isBroken) continue; //item not broken, move on
var foundIt = false;
for (var item_index = 0; item_index < item_count; item_index++) {
if (trId == STrChOThroneRepairData.items[item_index]) {
foundIt = true;
break;
}
}
if (!foundIt) {
var optionText = throne_item.name;
m += '<option value="' + trId + '">' + optionText + '</option>';
}
}
repairList.innerHTML = m;
},
deleteQueue: function () {
var t = Tabs.throneRepair
STrChOThroneRepairData.items = [];
SAVESTrChOThroneRepairData();
t.populateThroneRepairListBox();
t.buildThroneRepairDisplay();
},
addAllQueue: function () {
var t = Tabs.throneRepair;
for (trId in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
if (throne_item.isBroken) {
t.addQueue(trId);
}
}
},
selectNext: function () {
var l = STrChOThroneRepairData.items.length;
for (i = 0; i < l; i++) {
var throne_item = uW.kocThroneItems[STrChOThroneRepairData.items[i]];
if (throne_item == null || !throne_item) continue;
if ((throne_item != null) && (throne_item.isBroken)) {
STrChOThroneRepairData.index = i;
SAVESTrChOThroneRepairData();
return;
}
}
// if we get here, the queue is complete
STrChOThroneRepairData.index = -1;
SAVESTrChOThroneRepairData();
},
calcRepairTime: function () {
var t = Tabs.throneRepair
var item_count = STrChOThroneRepairData.items.length;
var total_time = 0;
for (var item_index = 0; item_index < item_count; item_index++) {
var trId = STrChOThroneRepairData.items[item_index];
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
var item_time = CM.thronestats.repairCostUpgrade[throne_item.level].Time;
total_time += item_time;
}
return total_time;
},
addQueue: function (iD) {
var t = Tabs.throneRepair;
if (iD == null) {
var trId = document.getElementById('STrChOThroneRepairList').value;
} else {
var trId = iD;
}
if (trId == 0 || trId == null) return;
var item_count = STrChOThroneRepairData.items.length;
if (item_count > 0) {
for (var item_index = 0; item_index < item_count; item_index++) {
if (trId == STrChOThroneRepairData.items[item_index]) return;
}
}
STrChOThroneRepairData.items.push(trId);
SAVESTrChOThroneRepairData();
t.populateThroneRepairListBox();
t.buildThroneRepairDisplay();
},
doSpeedup: function () {
var t = Tabs.throneRepair;
var endTime = t.repairEnd;
var startTime = unixTime();
var secondsForRepair = endTime - startTime;
var divId = "";
t.speedup = 0;
if (secondsForRepair > 0 && STrChOThroneRepairData.overrideSpeedUp && STrChOThroneRepairData.useSpeedUp > 0) {
t.speedup = STrChOThroneRepairData.useSpeedUp;
} else {
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.day25 && STrChOThroneRepairData.useAH && uW.ksoItems[8].count > 0) { t.speedup = 8; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour24 && STrChOThroneRepairData.useAH && uW.ksoItems[7].count > 0) { t.speedup = 7; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour15 && STrChOThroneRepairData.useAH && uW.ksoItems[6].count > 0) { t.speedup = 6; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour8 && STrChOThroneRepairData.useAH && uW.ksoItems[5].count > 0) { t.speedup = 5; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour25 && STrChOThroneRepairData.useMH && uW.ksoItems[4].count > 0) { t.speedup = 4; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour1 && STrChOThroneRepairData.useGH && uW.ksoItems[3].count > 0) { t.speedup = 3; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.minute15 && STrChOThroneRepairData.useKH && uW.ksoItems[2].count > 0) { t.speedup = 2; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.minute1 && STrChOThroneRepairData.useSH && uW.ksoItems[1].count > 0) { t.speedup = 1; }
}
switch (t.speedup) {
case "1":
case 1:
secondsForRepair -= HOURGLASSES_TIME.minute1;
divId = 'STrChOThroneRepairUseSHLabel';
break;
case "2":
case 2:
secondsForRepair -= HOURGLASSES_TIME.minute15;
divId = 'STrChOThroneRepairUseKHLabel';
break;
case "3":
case 3:
secondsForRepair -= HOURGLASSES_TIME.hour1;
divId = 'STrChOThroneRepairUseGHLabel';
break;
case "4":
case 4:
secondsForRepair -= HOURGLASSES_TIME.hour25;
divId = 'STrChOThroneRepairUseMHLabel';
break;
case "5":
case 5:
secondsForRepair -= HOURGLASSES_TIME.hour8;
divId = 'STrChOThroneRepairUseAHLabel';
break;
case "6":
case 6:
secondsForRepair -= HOURGLASSES_TIME.hour15;
divId = 'STrChOThroneRepairUseWHLabel';
break;
case "7":
case 7:
secondsForRepair -= HOURGLASSES_TIME.hour24;
divId = 'STrChOThroneRepairUseDHLabel';
break;
case "8":
case 8:
secondsForRepair -= HOURGLASSES_TIME.day25;
divId = 'STrChOThroneRepairUseEHLabel';
break;
}
if (t.speedup != 0) {
t.setResult('Used ' + uW.ksoItems[t.speedup].name);
var divCount = uW.ksoItems[t.speedup].count - 1;
var divSpeedups = document.getElementById(divId);
divSpeedups.innerHTML = divCount;
uW.modal_speedup_apply("throne", t.speedup, t.repairId);
if (secondsForRepair <= 0) {
secondsForRepair = 0;
endTime = startTime;
t.clearTimerH = setTimeout(t.clearRepair, 1000);
} else {
endTime = unixTime() + secondsForRepair;
t.repairEnd = endTime;
var n = new Date(t.repairEnd * 1000);
var item = uW.kocThroneItems[t.repairId];
if (item) {
t.setStatus("Repair begun ... Repair will be complete at " + n.toLocaleTimeString() + ". Item: " + item.name);
t.clearTimerH = setTimeout(t.clearRepair, secondsForRepair * 1000);
}
}
t.buildThroneRepairDisplay();
t.repairEnd = endTime;
setTimeout(function () { t.doSpeedup(); }, 1000);
}
},
doAction: function () {
var t = Tabs.throneRepair;
t.populateThroneRepairListBox();
if (STrChOThroneUpgradeData.active) {
t.setStatus('Waiting for upgrade tab to finish...');
if (STrChOThroneRepairData.active) t.togglePower();
return;
}
if (!STrChOThroneRepairData.active) {
t.setStatus("Powered Off");
return;
} else {
var retryTime = STrChOGeneralOptions.retryInterval;
try {
// check if repair is done
var ti = t.clearRepair();
if (ti <= 0) {
// repair is done
// set the index
t.selectNext();
if (STrChOThroneRepairData.index < 0) {
t.setStatus("Reached end of queue.")
t.setResult("");
SAVESTrChOThroneRepairData();
} else {
var throne_item = uW.kocThroneItems[STrChOThroneRepairData.items[STrChOThroneRepairData.index]];
if (throne_item) {
t.repairId = throne_item.id;
t.doRepair(throne_item.id);
}
}
} else {
// come back after repair is complete
retryTime = ti + 5;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Waiting until " + n.toLocaleTimeString() + " for repair to complete. Item: " + uW.kocThroneItems[t.repairId].name);
if (STrChOThroneRepairData.useSH || STrChOThroneRepairData.useKH || STrChOThroneRepairData.useGH || STrChOThroneRepairData.useMH || STrChOThroneRepairData.useAH || STrChOThroneRepairData.useWH || STrChOThroneRepairData.useDH || STrChOThroneRepairData.useEH || (STrChOThroneRepairData.overrideSpeedUp && STrChOThroneRepairData.useSpeedUp > 0)) {
var throneItem = uW.kocThroneItems[t.repairId];
var trQuality = throneItem.quality;
var trLevel = throneItem.level;
var useThoseSpeedups = true;
if (STrChOThroneRepairData.hourglassQualitySpecific && trQuality < STrChOThroneRepairData.hourglassQuality) useThoseSpeedups = false;
if (STrChOThroneRepairData.hourglassLevelSpecific && trLevel < STrChOThroneRepairData.hourglassLevel) useThoseSpeedups = false;
if (STrChOThroneRepairData.overrideSpeedUp) useThoseSpeedups = true;
if (useThoseSpeedups) {
setTimeout(function () { t.doSpeedup(); }, 2000);
}
retryTime = 1;
}
}
CM.ThroneView.renderInventory(uW.kocThroneItems);
} catch (e) {
}
// recycle
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, retryTime * 1000);
t.buildThroneRepairDisplay();
}
},
}
Tabs.throneOrganizer = {
tabOrder: 104,
tabLabel: 'ORGANIZER',
tabColor: 'red',
tabHeader: 'THRONE ROOM ORGANIZER',
throneItemLists: {},
sortEffect: "none",
buffType: "both",
panelId: -1,
panelType: "upgrade",
panelNextLevel: 2,
switchingPresets: false,
thronePanelOpen: false,
init: function (div) {
var t = Tabs.throneOrganizer;
t.mydiv = div;
t.sortEffect = STrChOThroneUpgradeData.effectSelected;
t.buffType = STrChOThroneUpgradeData.buffSelected;
var throneEffects = [];
for (efx in CM.thronestats.effects) {
var throneEffectName = CM.thronestats.effects[efx][1].split(" Debuff")[0];
if (throneEffects.indexOf(throneEffectName) < 0) throneEffects.push(throneEffectName);
}
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td>';
m += 'Sort: <select class=STrChOSelect id=STrChOThroneSortEffects>';
m += '<option value="none">--Effect--</option>';
for (efx=0;efx<throneEffects.length;efx++) m += '<option value="' + throneEffects[efx] + '">' + throneEffects[efx] + '</option>';
m += '</select>';
m += '<select class=STrChOSelect id=STrChOThroneBuffType>';
m += '<option value="both">Either</option>';
m += '<option value="buff">Buff</option>';
m += '<option value="debuff">Debuff</option>';
m += '</select>';
m += '<input id=STrChOThroneSortInactive class=STrChOCheckbox type=checkbox ' + (STrChOThroneUpgradeData.sortInactive ? ' CHECKED' : '') + '/> Include Inactive ';
m += '<input id=STrChOThroneIgnoreBroken class=STrChOCheckbox type=checkbox ' + (STrChOThroneUpgradeData.ignoreBroken ? ' CHECKED' : '') + '/> Ignore Broken';
m += '</td></tr>';
m += '</table>';
m += '</div>';
m += '<div id=STrChOThroneOrganizerScroll style="position: static; width: ' + (dlgWidth - (dlgWidthOffset + dlgWidthMenu)) + 'px; height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; overflow-x: hidden; overflow-y: auto;">';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> CARD FILTER <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable cellspacing=0 cellpadding=0>';
m += '<tr><td colspan=4>';
m += 'Filter By Effects: <select class=STrChOSelect id=STrChOThroneFilterEffects>';
m += '<option value="none">--Effect--</option>';
for (efx=0;efx<throneEffects.length;efx++) m += '<option value="' + throneEffects[efx] + '">' + throneEffects[efx] + '</option>';
m += '</select>';
m += '<select class=STrChOSelect id=STrChOThroneFilterBuffType>';
m += '<option value="buff">Buff</option>';
m += '<option value="debuff">Debuff</option>';
m += '</select>';
m += '</td></tr>';
m += '<tr><td colspan=4><hr class=STrChOHRCenter></td></tr>';
m += '<tr><td>Faction</td><td>Quality</td><td>Level</td><td>Jewel</td></tr>';
m += '<tr>';
m += '<td><div id=STrChOThroneFactionFilterRow style="float: left; width: 100px; border:2px solid #ccc; height: 105px; overflow-y: scroll; background-color: white;">';
for (var fact=0;fact<STrChOFactions.length;fact++) m += '<input id=STrChOThroneFaction' + STrChOFactions[fact] + ' class=STrChOCheckbox type=checkbox CHECKED />' + String(STrChOFactions[fact]).capitalizeFirstLetter() + '<br />';
m += '</div></td>';
m += '<td><div id=STrChOThroneQualityFilterRow style="float: left; width: 120px; border:2px solid #ccc; height: 105px; overflow-y: scroll; background-color: white;">';
for (var qual = 0; qual < throneCardQualities.length; qual++) m += '<input id=STrChOThroneQuality' + qual + ' class=STrChOCheckbox type=checkbox CHECKED />' + throneCardQualities[qual].capitalizeFirstLetter() + '<br />';
m += '<input id=STrChOThroneQualityUnique class=STrChOCheckbox type=checkbox CHECKED />Uniques<br />';
m += '</div></td>';
m += '<td><div id=STrChOThroneLevelFilterRow style="float: left; width: 120px; border:2px solid #ccc; height: 105px; overflow-y: scroll; background-color: white;">';
for (lvl = 0; lvl <= STrChOMaxThroneLevel; lvl++) {
m += '<input id=STrChOThroneLevel' + lvl + ' class=STrChOCheckbox type=checkbox CHECKED />' + lvl + '<br /> ';
}
m += '</div></td>';
m += '<td><div id=STrChOThroneJewelFilterRow style="float: left; width: 120px; border:2px solid #ccc; height: 105px; overflow-y: scroll; background-color: white;">';
m += '<input id=STrChOThroneJewelNone class=STrChOCheckbox type=checkbox CHECKED />No Jewel<br />';
for (var jwl = 0; jwl < STrChOJewelQualities.length; jwl++) m += '<input id=STrChOThroneJewel' + (jwl+1) + ' class=STrChOCheckbox type=checkbox CHECKED />' + STrChOJewelQualities[jwl].capitalizeFirstLetter() + '<br /> ';
m += '</div></td>';
m += '</tr>';
m += '<tr>';
m += '<td/>';
m += '<td><input style="width:120px;" id=STrChOThroneUnselectAllQualities class=STrChOButton type=button value="Unselect All"></td>';
m += '<td><input style="width:120px;" id=STrChOThroneUnselectAllLevels class=STrChOButton type=button value="Unselect All"></td>';
m += '<td><input style="width:120px;" id=STrChOThroneUnselectAllJewels class=STrChOButton type=button value="Unselect All"></td>';
m += '</tr>';
m += '<tr>';
m += '<td/>';
m += '<td><input style="width:120px;" id=STrChOThroneSelectAllQualities class=STrChOButton type=button value="Select All"></td>';
m += '<td><input style="width:120px;" id=STrChOThroneSelectAllLevels class=STrChOButton type=button value="Select All"></td>';
m += '<td><input style="width:120px;" id=STrChOThroneSelectAllJewels class=STrChOButton type=button value="Select All"></td>';
m += '</tr>';
m += '</table>';
m += '</div>';
for (var tct = 0; tct < throneCardTypes.length; tct++) {
m += '<div class=STrChOThroneOrganizer onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> ' + throneCardTypes[tct].toUpperCase() + ' <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOThroneOrganizerSection id=STrChOThroneCardSection' + throneCardTypes[tct] + '></div>';
}
//m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
var throneOrganizers = document.getElementsByClassName('STrChOThroneOrganizer');
for (var throneOrg=0; throneOrg < throneOrganizers.length; throneOrg++) {
throneOrganizers[throneOrg].addEventListener('click', function () {
var imgs = this.childNodes;
if (imgs[0].src == STrChODownArrow) {
imgs[0].src = STrChORightArrow
imgs[2].src = STrChORightArrow
} else {
imgs[0].src = STrChODownArrow
imgs[2].src = STrChODownArrow
}
var section = this.nextSibling;
if (section.className != 'STrChOThroneOrganizerSection') return;
if (section.style.display == 'block')
section.style.display = 'none';
else
section.style.display = 'block';
}, false);
}
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
document.getElementById('STrChOThroneSortEffects').value = STrChOThroneUpgradeData.effectSelected;
document.getElementById('STrChOThroneBuffType').value = STrChOThroneUpgradeData.buffSelected;
document.getElementById('STrChOThroneSortInactive').checked = STrChOThroneUpgradeData.sortInactive;
document.getElementById('STrChOThroneIgnoreBroken').checked = STrChOThroneUpgradeData.ignoreBroken;
document.getElementById('STrChOThroneFilterBuffType').addEventListener('change', function () {
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneFilterEffects').addEventListener('change', function () {
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneSortEffects').addEventListener('change', function () {
t.sortEffect = this.value;
STrChOThroneUpgradeData.effectSelected = t.sortEffect;
SAVESTrChOThroneUpgradeData();
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneBuffType').addEventListener('change', function () {
t.buffType = this.value;
STrChOThroneUpgradeData.buffSelected = t.buffType;
SAVESTrChOThroneUpgradeData();
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneSortInactive').addEventListener('click', function () {
STrChOThroneUpgradeData.sortInactive = document.getElementById('STrChOThroneSortInactive').checked;
SAVESTrChOThroneUpgradeData();
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneIgnoreBroken').addEventListener('click', function () {
STrChOThroneUpgradeData.ignoreBroken = document.getElementById('STrChOThroneIgnoreBroken').checked;
SAVESTrChOThroneUpgradeData();
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneUnselectAllQualities').addEventListener('click' , function () {
for (var qual = 0; qual < throneCardQualities.length; qual++) document.getElementById('STrChOThroneQuality' + qual).checked = false;
document.getElementById('STrChOThroneQualityUnique').checked = false;
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneSelectAllQualities').addEventListener('click', function () {
for (var qual = 0; qual < throneCardQualities.length; qual++) document.getElementById('STrChOThroneQuality' + qual).checked = true;
document.getElementById('STrChOThroneQualityUnique').checked = true;
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneQualityFilterRow').addEventListener('change', function () {
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneUnselectAllJewels').addEventListener('click' , function () {
for (var jwl = 0 ; jwl < STrChOJewelQualities.length; jwl ++ ) document.getElementById('STrChOThroneJewel' + (jwl+1)).checked = false;
document.getElementById('STrChOThroneJewelNone').checked = false;
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneSelectAllJewels').addEventListener('click', function () {
for (var jwl = 0 ; jwl < STrChOJewelQualities.length; jwl ++ ) document.getElementById('STrChOThroneJewel' + (jwl+1)).checked = true;
document.getElementById('STrChOThroneJewelNone').checked = true;
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneJewelFilterRow').addEventListener('change', function () {
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneUnselectAllLevels').addEventListener('click' , function () {
for (lvl = 0; lvl <= STrChOMaxThroneLevel; lvl++) document.getElementById('STrChOThroneLevel' + lvl).checked = false;
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneSelectAllLevels').addEventListener('click', function () {
for (lvl = 0; lvl <= STrChOMaxThroneLevel; lvl++) document.getElementById('STrChOThroneLevel' + lvl).checked = true;
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneLevelFilterRow').addEventListener('change', function () {
t.createThroneItemList();
t.paintThroneTables();
}, false);
document.getElementById('STrChOThroneFactionFilterRow').addEventListener('change', function () {
t.createThroneItemList();
t.paintThroneTables();
}, false);
t.createThroneItemList();
t.paintThroneTables();
},
hide: function () {},
showNextThroneLevel: function () {
var t = Tabs.throneOrganizer;
if (t.panelId < 0) return;
var X = uW.kocThroneItems[t.panelId];
if (X.level == STrChOMaxThroneLevel) return;
var V = 'next';
var P = t.panelType;
var level = X.level || 0;
var quality = X.quality || 0;
var bump = t.panelNextLevel;
if (P == 'enhance') {
if ((quality + bump) > 5) {
bump = 5 - quality;
}
}
else if ((level + bump) > STrChOMaxThroneLevel) {
bump = STrChOMaxThroneLevel - level;
}
var R = [],
Q, Y, S, U, N = {},
T, W;
if (V == 'next') {
if (P == 'enhance') {
quality += bump;
document.getElementById('nextStatContainer').firstChild.innerHTML = X.createPrefix();
} else {
if (P == "upgrade") {
level += bump;
document.getElementById('nextStatContainer').firstChild.innerHTML = 'Level ' + level;
}
}
}
$.each(X.effects, function (Z, aa) {
Q = +(Z.split('slot')[1]);
Y = CM.thronestats.effects[aa.id];
S = CM.thronestats.tiers[aa.id][aa.tier];
if (!S) CM.thronestats.tiers[aa.id][aa.tier - 1]
var base = S.base || 0;
var growth = S.growth || 0;
U = +(base) + ((level * level + level) * +(growth) / 2);
var wholeNumber = false;
if (Math.round(U) == U) wholeNumber = true;
if (wholeNumber)
U = U.toFixed(0);
else
U = U.toFixed(2);
if (Q % 2 == 0) {
T = 'even'
} else {
T = 'odd'
}
if (Q <= quality) {
if (U > 1) {
R.push('<li class="' + T + '">' + Y[1] + ' +' + U + '%</li>')
} else {
R.push('<li class="' + T + '">' + Y[1] + ' ' + U + '%</li>')
}
} else {
R.push('<li class="disabled ' + T + '">' + Y[1] + ' + ' + U + '%</li>')
}
});
if (V == 'next') {
if (P == 'enhance') {
quality -= bump
} else {
if (P == 'upgrade') {
level -= bump;
}
}
}
if (V === 'next') {
if (CM.ThronePanelController.isLastLevel(X, P)) {
var nextStatContainer = document.getElementById('nextStatContainer');
if (nextStatContainer.children.length < 3) {
W = '<div id=lockedStatIcon class=lock></div>';
nextStatContainer.innerHTML += W;
}
} else {
var elem = document.getElementById('lockedStatIcon');
if (elem) elem.parentNode.removeChild(elem);
}
}
t.panelNextLevel++;
document.getElementById('thronePanelStat2').innerHTML = R.join('');
var lis = document.getElementById('thronePanelStat2').getElementsByTagName('li');
for (var i =0; i<lis.length; i++) {
var li = lis[i];
li.addEventListener('mouseenter', function (Z) {
uW.Tooltip.show(Z, this.innerHTML, [-180, 5]);
}, false);
}
},
createThroneItemList: function () {
var t = Tabs.throneOrganizer;
for (tct = 0; tct < throneCardTypes.length; tct++) t.throneItemLists[throneCardTypes[tct]] = new Array;
for (throneId in uW.kocThroneItems) {
var throneItem = uW.kocThroneItems[throneId];
// apply filters
var faction = throneItem.faction;
var level = throneItem.level;
var thronetype = throneItem.type;
var quality = throneItem.quality;
var unique = throneItem.unique != 0;
var jewelQuality = 0;
var isBroken = throneItem.isBroken;
var noJewel = document.getElementById('STrChOThroneJewelNone').checked;
var hasJewel = (throneItem.jewel == null ? false : true);
if (hasJewel) jewelQuality = throneItem.jewel.quality;
if (jewelQuality > 0) {
if (!(document.getElementById('STrChOThroneJewel' + jewelQuality).checked)) continue;
} else {
if (!noJewel) continue;
}
if (STrChOThroneUpgradeData.ignoreBroken && isBroken) continue;
if (!(document.getElementById('STrChOThroneQualityUnique').checked) && unique) continue;
if (!(document.getElementById('STrChOThroneQuality' + quality).checked) && !unique) continue;
if (!(document.getElementById('STrChOThroneFaction' + faction).checked)) continue;
if (!(document.getElementById('STrChOThroneLevel' + level).checked)) continue;
var filterEffect = document.getElementById('STrChOThroneFilterEffects').value;
if (filterEffect != 'none') {
var filterBuff = document.getElementById('STrChOThroneFilterBuffType').value;
if (filterBuff == 'debuff') filterEffect += ' Debuff';
var foundEffect = false;
for (e in throneItem.effects) {
var N = throneItem.effects[e];
var effect = CM.thronestats.effects[N.id][1];
if (effect == filterEffect) {
foundEffect = true;
break;
}
}
if (!foundEffect) continue;
}
if (throneItem.isEquipped)
t.throneItemLists[thronetype].unshift(throneItem);
else
t.throneItemLists[thronetype].push(throneItem);
}
t.sortThroneOrganizerLists();
},
paintThroneTables: function () {
var t = Tabs.throneOrganizer;
for (tct in t.throneItemLists) {
var m = '<table><tr>';
var divCards = document.getElementById('STrChOThroneCardSection' + tct);
divCards.innerHTML = "<div></div>";
for (idx = 0; idx < t.throneItemLists[tct].length; idx++) {
var throneItem = t.throneItemLists[tct][idx];
m += '<td><div class=STrChOThroneCard id=STrChOThroneCard' + throneItem.id + '>';
m += BuildThroneCard(throneItem);
m += '</div></td>';
}
m += '</tr></table>';
divCards.innerHTML = '<div>' + m + '</div>';
}
var STrChOCards = document.getElementsByClassName('STrChOThroneCard');
for (idx = 0; idx < STrChOCards.length; idx++) {
STrChOCards[idx].addEventListener('click', function (A) {
A.stopPropagation();
var throneId = this.id.split('STrChOThroneCard')[1];
var throneItem = uW.kocThroneItems[throneId];
CardContextMenu(this, throneItem, true);
}, false);
}
Tabs.thronePresets.paintTags();
},
show: function () {
var t = Tabs.throneOrganizer;
t.createThroneItemList();
t.paintThroneTables();
},
sortThroneOrganizerLists: function () {
var t = Tabs.throneOrganizer;
STrChOThroneUpgradeData.sortInactive = document.getElementById('STrChOThroneSortInactive').checked;
for (tct in t.throneItemLists) {
t.throneItemLists[tct].sort(function (item1, item2) {
return t.sortThroneOrganizerValue(item2) - t.sortThroneOrganizerValue(item1);
});
}
},
sortThroneOrganizerValue: function (item) {
var t = Tabs.throneOrganizer;
var retValue = 0.0;
for (e in item.effects) {
try {
var N = item.effects[e];
var effect = CM.thronestats.effects[N.id][1];
var tier = CM.thronestats.tiers[N.id][N.tier];
if (!tier) CM.thronestats.tiers[N.id][N.tier - 1]
var B = +(e.split("slot")[1]);
var base = tier.base || 0;
var level = item.level || 0;
var growth = tier.growth || 0;
var quality = item.quality || 0;
if (B > quality && !STrChOThroneUpgradeData.sortInactive) {
return +retValue;
}
var percent = +(base + ((level * level + level) * growth * 0.5));
if ((effect == (t.sortEffect + " Debuff")) && (t.buffType != "buff")) {
retValue -= percent;
}
else if (effect == t.sortEffect && t.buffType != "debuff") {
retValue += percent;
}
} catch (e) {
}
}
return +retValue;
},
unequipItem: function (I, preset) {
var t = Tabs.throneOrganizer;
if (!I) return;
uW.AjaxCall.gPostRequest("ajax/_dispatch53.php", {
ctrl: "throneRoom\\ThroneRoomServiceAjax",
action: "unequipItem",
itemId: I.id,
presetId: preset
}, function (u) {
if (u.ok === true) {
CM.ThroneView.clickItemUnequip(I);
} else {
CM.ModalManager.alert({
button_text: uW.g_js_strings.commonstr.ok,
text: u.msg,
"class": "craftFailure",
exe: function () {
uW.Modal.hideModalAll();
CM.ModalManager.close()
}
})
}
}, function (u) {
});
},
equipItem: function (I, preset) {
if (!I) return;
uW.AjaxCall.gPostRequest("ajax/_dispatch53.php", {
ctrl: "throneRoom\\ThroneRoomServiceAjax",
action: "equipItem",
itemId: I.id,
presetId: preset
}, function (u) {
if (u.ok === true) {
CM.ThroneView.clickItemEquip(I);
} else {
CM.ModalManager.alert({
button_text: uW.g_js_strings.commonstr.ok,
text: u.msg,
"class": "craftFailure",
exe: function () {
uW.Modal.hideModalAll();
CM.ModalManager.close()
}
})
}
}, function (u) {
})
},
}
Tabs.throneSorter = {
tabOrder: 105,
tabLabel: 'SORTER',
tabColor: 'red',
tabHeader: 'THRONE ROOM SORTER',
STrChOLocalSwapFile: null,
STrChOLocalSwapPresets: [],
init: function (div) {
var t = Tabs.throneSorter;
t.mydiv = div;
},
hide: function () {},
show: function () {
var t = Tabs.throneSorter;
t.STrChOLocalSwapFile = null;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="margin-top: 5px;">';
m += '<table class=STrChOSectionTable>';
m += '<tr><td>';
if (STrChOGeneralOptions.throneSorter) {
m += '<input type=button class=STrChOButton id=STrChOThroneSorterPower value="Sorter = ON">';
} else {
m += '<input type=button class=STrChOButton id=STrChOThroneSorterPower value="Sorter = OFF">';
}
m += '</td></tr>';
m += '<tr><td colspan=3><b><font color=red>WARNINGS!</font></b></td></tr>';
m += '<tr><td colspan=3>Sorter tab and throne panel will not sync until the other is redrawn by closing/reopening it.</td></tr>';
m += '<tr><td colspan=3>Salvaging with throne sorter on, WILL decrease the rate of salvaging</td></tr>';
m += '<tr><td colspan=3><hr class=STrChOHRCenter></td></tr>';
m += '<tr><td class=indent5 colspan=3> ';
m += '<input id=STrChOSorterDefaults type=button class=STrChOButton value="Restore Default Order">';
m += ' '
m += ' '
m += ' '
m += ' '
m += '<input id=STrChOSorterExport type=button class=STrChOButton value="Export"> ';
m += '<input id=STrChOSorterImport type=button class=STrChOButton value="Import"> ';
m += '<input id=STrChOSorterImportTrigger type=button class=STrChOButton value="Browse..." onclick="document.getElementById(\'STrChOSorterImportLoadItem\').click()">';
m += '<input hidden id=STrChOSorterImportLoadItem type=file>';
m += '</td></tr>';
m += '<tr><td colspan=3></td></tr>';
m += '<tr>';
m += '<td width=230px align=center style="vertical-align: top; text-align: middle;">';
m += '<table width=100%>';
m += '<tr><td align=center>';
m += 'Slot: <select id=STrChOThroneSorterPreset class=STrChOSelect><option value="0">--Select--</option>';
var presetSlots = getObjectCollectionCount(Seed.throne.slotEquip);
for (var i = 1; i < presetSlots + 1; i++) {
m += '<option value="' + i + '">' + i + ':' + STrChOThronePresetData.presetNames[i] + '</option>';
}
m += '</select><input type=button class=STrChOButton value="Select" id=STrChOThroneSorterPresetGo>';
m += '</td></tr>';
m += '<tr><td align=center>';
m += '<b>SELECTED CARD:</b><br><div id=STrChOThroneSortCard></div>';
m += '</td></tr>';
m += '</table>';
m += '</td>';
m += '<td width=180px>';
m += '<div id=STrChOThroneSorterInventoryList style="height: 405px; width: 180px; overflow-y: auto;">';
if (STrChOThroneSorter.length == 0) resetThroneSorter();
var row = 0;
for (var idx = 0; idx < STrChOThroneSorter.length; idx++) {
if (idx % 5 == 0) {
row++;
m += '<div id=STrChOThroneSorterInventoryRow' + row + ' class="active">';
}
var throneId = STrChOThroneSorter[idx];
var throneItem = uW.kocThroneItems[throneId];
if (!throneItem) continue;
var className = '';
className += throneItem.type + ' ';
className += throneItem.faction + ' ';
className += 'quality' + throneItem.quality;
if (throneItem.unique > 0) className += ' unique' + throneItem.unique;
img = getThroneImage(throneItem);
if (t.STrChOLocalSwapFile == throneId) img = success_image;
m += '<img id=STrChOThroneSorterInventoryIcon' + throneId + ' class=STrChOThroneSorterItem src="' + img + '" style="height: 30px; width: 30px;">';
if (idx == STrChOThroneSorter.length-1 && idx % 5 != 4) m += '</div>';
if (idx % 5 == 4) m += '</div>';
}
m += '</div>';
m += '</td>';
m += '<td width=230px align=center style="vertical-align: top; text-align: middle;">';
m += '<b>HOVER CARD:</b><br><div id=STrChOThroneSortCardHover></div>';
m += '</td>';
m += '</tr>';
m += '</table>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
t.displaySelectCard();
document.getElementById('STrChOThroneSorterPresetGo').addEventListener('click', function() {
if (!STrChOGeneralOptions.throneSorter) return;
if (t.STrChOLocalSwapFile != null) return;
var STrChOThroneSorterPreset = document.getElementById('STrChOThroneSorterPreset');
if (STrChOThroneSorterPreset.value == 0) return;
var STrChOThroneSorterPresetGo = document.getElementById('STrChOThroneSorterPresetGo');
var STrChOThroneSortCard = document.getElementById('STrChOThroneSortCard');
if (STrChOThroneSorterPresetGo.value == 'Select') {
var equipped_items = Seed.throne.slotEquip[STrChOThroneSorterPreset.value];
STrChOThroneSortCard.innerHTML = equipped_items.length + ' Cards Selected<br>From Slot ' + STrChOThroneSorterPreset.value;
for (var ei = 0; ei < equipped_items.length; ei++) {
var throneId = parseInt(equipped_items[ei]);
t.STrChOLocalSwapPresets.push(throneId);
document.getElementById('STrChOThroneSorterInventoryIcon' + throneId).src = success_image;
}
STrChOThroneSorterPreset.disabled = true;
STrChOThroneSorterPresetGo.value = 'Unselect';
} else {
STrChOThroneSortCard.innerHTML = 'No Card(s) Selected';
for (var ei = 0; ei < t.STrChOLocalSwapPresets.length; ei++) {
var throneId = t.STrChOLocalSwapPresets[ei];
document.getElementById('STrChOThroneSorterInventoryIcon' + throneId).src = getThroneImage(uW.kocThroneItems[throneId]);
}
t.STrChOLocalSwapPresets = [];
STrChOThroneSorterPresetGo.value = 'Select';
STrChOThroneSorterPreset.disabled = false;
}
}, false);
document.getElementById('STrChOThroneSorterPower').addEventListener('click', function () {
t.togglePower(this);
}, false);
var STrChOThroneSorterItems = document.getElementsByClassName('STrChOThroneSorterItem');
for (var idx = 0; idx < STrChOThroneSorterItems.length; idx++) {
var STrChOThroneSorterItem = STrChOThroneSorterItems[idx];
STrChOThroneSorterItem.addEventListener('mouseover', function(A) {
A.stopPropagation();
var throneId = this.id.split('STrChOThroneSorterInventoryIcon')[1];
var throneItem = uW.kocThroneItems[throneId];
document.getElementById('STrChOThroneSortCardHover').innerHTML = howManyThroneSlots(throneId) + '<br>' + BuildThroneCard(throneItem);
}, false);
STrChOThroneSorterItem.addEventListener('mouseout', function(A) {
A.stopPropagation();
var throneId = this.id.split('STrChOThroneSorterInventoryIcon')[1];
var throneItem = uW.kocThroneItems[throneId];
document.getElementById('STrChOThroneSortCardHover').innerHTML = '';
}, false);
STrChOThroneSorterItem.addEventListener('contextmenu', function(A) {
A.preventDefault();
if (!STrChOGeneralOptions.throneSorter) return;
if (t.STrChOLocalSwapPresets.length > 0) {
var thisThroneId = parseInt(this.id.split('STrChOThroneSorterInventoryIcon')[1]);
var foundIndex = 0;
var tempSwapper = [];
for (var i = 0; i < STrChOThroneSorter.length; i++) {
var throneId = parseInt(STrChOThroneSorter[i]);
if (thisThroneId == throneId) {
foundIndex = i;
break;
}
if (t.STrChOLocalSwapPresets.indexOf(throneId) == -1) { //not found in local swap list
tempSwapper.unshift(throneId);
}
}
for (var i = 0; i < t.STrChOLocalSwapPresets.length; i++ ) {
tempSwapper.unshift(parseInt(t.STrChOLocalSwapPresets[i]));
}
for (var i = foundIndex; i < STrChOThroneSorter.length; i++) {
var throneId = parseInt(STrChOThroneSorter[i]);
if (t.STrChOLocalSwapPresets.indexOf(throneId) == -1) { //not found in swap list
tempSwapper.unshift(throneId);
}
}
t.STrChOLocalSwapPresets = [];
STrChOThroneSorter = [];
while (tempSwapper.length > 0) STrChOThroneSorter.push(tempSwapper.pop());
SAVESTrChOThroneSorter();
t.show();
return;
}
var throneId = this.id.split('STrChOThroneSorterInventoryIcon')[1];
var throneItem = uW.kocThroneItems[throneId];
if (!throneItem || throneItem == null) {
if (t.STrChOLocalSwapFile == throneId) $(this).remove();
t.STrChOLocalSwapFile = null;
setThroneSorter(true);
SAVESTrChOThroneSorter();
t.show();
return;
}
if (t.STrChOLocalSwapFile == null) {
t.STrChOLocalSwapFile = throneId;
this.src = success_image;
t.displaySelectCard();
} else {
if (t.STrChOLocalSwapFile == throneId) {
t.STrChOLocalSwapFile = null;
this.src = getThroneImage(throneItem);
t.displaySelectCard();
return;
}
var img = document.getElementById('STrChOThroneSorterInventoryIcon' + t.STrChOLocalSwapFile);
img.src = getThroneImage(uW.kocThroneItems[t.STrChOLocalSwapFile]);
var fromTile = document.getElementById('STrChOThroneSorterInventoryIcon' + t.STrChOLocalSwapFile);
var fromTilePosition = 0;
var child = fromTile;
while( (child = child.previousSibling) != null ) fromTilePosition++;
var toTile = document.getElementById('STrChOThroneSorterInventoryIcon' + throneId);
var toTilePosition = 0;
child = this;
while( (child = child.previousSibling) != null ) toTilePosition++;
var fromParent = fromTile.parentElement;
var toParent = toTile.parentElement;
var fromDelete = fromParent.children[fromTilePosition];
var toDelete = toParent.children[toTilePosition];
if (fromParent != toParent) { //simple swap
$(fromDelete).remove();
$(toDelete).remove();
fromParent.insertBefore(toTile, fromParent.childNodes[fromTilePosition]);
toParent.insertBefore(fromTile, toParent.childNodes[toTilePosition]);
} else { //little more tricky
var newRow = [];
for (var idx = 0; idx < fromParent.children.length; idx++) {
if (idx == fromTilePosition) {
newRow.unshift(toTile);
} else if (idx == toTilePosition) {
newRow.unshift(fromTile);
} else {
newRow.unshift(fromParent.children[idx]);
}
}
while (fromParent.hasChildNodes()) fromParent.removeChild(fromParent.lastChild);
while (newRow.length > 0) fromParent.appendChild(newRow.pop());
}
t.STrChOLocalSwapFile = null;
t.displaySelectCard();
setThroneSorter(true);
SAVESTrChOThroneSorter();
t.show();
}
}, false);
}
document.getElementById('STrChOSorterDefaults').addEventListener('click', function () {
resetThroneSorter();
t.STrChOLocalSwapFile = null;
var cmContainerOpen = (document.getElementsByClassName('cmModalContainer').length == 1 ? true : false);
if (cmContainerOpen) {
var titlebar = document.getElementsByClassName('primarytitlebar')[0];
var closebutton = titlebar.children[2];
closebutton.click();
setTimeout(function () { CM.ThroneView.openThrone(); }, 100);
}
t.show();
}, false);
document.getElementById('STrChOSorterExport').addEventListener('click', function () {
if (STrChOThroneSorter.length == 0) return;
uriContent = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(STrChOThroneSorter));
newWindow = window.open(uriContent, 'file.txt');
}, false);
document.getElementById('STrChOSorterImport').addEventListener('click', function () {
var fileInput = document.getElementById("STrChOSorterImportLoadItem");
var files = fileInput.files;
if (files.length==0) {
alert('Please Select A File');
return;
}
var file = files[0];
var reader = new FileReader();
reader.onload = function (e) {
var output = e.target.result;
STrChOThroneSorter = JSON.parse(output);
SAVESTrChOThroneSorter();
t.show();
alert('Throne Sorted Order Now Loaded From File');
};
reader.readAsText(file);
}, false);
},
togglePower: function (obj) {
var t = Tabs.throneSorter;
var STrChOThroneSorterPower = document.getElementById('STrChOThroneSorterPower');
if (STrChOGeneralOptions.throneSorter) {
STrChOGeneralOptions.throneSorter = false;
STrChOThroneSorterPower.value = "Sorter = OFF";
} else {
if (STrChOThroneSalvageData.active) {
if (!confirm('SORTER WARNING: You will likely experience lowered salvage rates and potentially crashing if you have both sorter and salvager enabled. Would you like to continue?')) return;
}
STrChOGeneralOptions.throneSorter = true;
STrChOThroneSorterPower.value = "Sorter = ON";
}
SAVESTrChOThroneSorter();
var cmContainerOpen = (document.getElementsByClassName('cmModalContainer').length == 1 ? true : false);
if (cmContainerOpen) {
var titlebar = document.getElementsByClassName('primarytitlebar')[0];
var closebutton = titlebar.children[2];
closebutton.click();
setTimeout(function () { CM.ThroneView.openThrone(); }, 100);
}
t.updateThroneMenu();
},
updateThroneMenu: function () {
if (!document.getElementById('STrChOExecuteSorter')) return;
document.getElementById('STrChOExecuteSorter').innerHTML = 'Sorter ' + (STrChOGeneralOptions.throneSorter ? 'ON' : 'OFF');
},
displaySelectCard: function () {
var t = Tabs.throneSorter;
if (t.STrChOLocalSwapFile == null) {
document.getElementById('STrChOThroneSortCard').innerHTML = "No Card(s) Selected";
} else {
var throneItem = uW.kocThroneItems[t.STrChOLocalSwapFile];
document.getElementById('STrChOThroneSortCard').innerHTML = howManyThroneSlots(t.STrChOLocalSwapFile) + '<br>' + BuildThroneCard(throneItem);
}
},
}
Tabs.throneEnhStats = {
tabOrder: 106,
tabLabel: 'ENH STATS',
tabColor: 'red',
tabHeader: 'THRONE ROOM ENHANCEMENT STATS',
init: function (div) {
var t = Tabs.throneEnhStats;
t.mydiv = div;
t.buildThroneEnhStatsDisplay();
},
hide: function () {},
buildThroneEnhStatsDisplay: function () {
var t = Tabs.throneEnhStats;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
// m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - (dlgWidthOffset*2.5)) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table class=STrChOStats align=center cellspacing=0>';
m += '<tr valign=top align=center><th colspan=' + (STrChOMaxThroneQuality + 2) + '>Enhancing Numbers (successes/failures)</th></tr>';
m += '<tr valign=top align=center><th></th>';
for (qual = 0; qual <= STrChOMaxThroneQuality; qual++) m += '<td style="font-weight: bold;" class="td' + (qual % 2 + 1) + '" >' + throneCardQualities[qual].capitalizeFirstLetter() + ' </td>';
m += '</tr>';
var st = [0, 0, 0, 0, 0, 0, 0];
var ft = [0, 0, 0, 0, 0, 0, 0];
for (lvl = 0; lvl <= STrChOMaxThroneLevel; lvl++) {
m += '<tr valign=top align=center>';
m += '<th>';
if (lvl != 0) m += '+';
m += lvl + '</th>';
for (qual = 0; qual < (STrChOMaxThroneQuality+1); qual++) {
if (STrChOThroneUpgradeStats.enhanceSuccess[qual][lvl] == null) STrChOThroneUpgradeStats.enhanceSuccess[qual][lvl] = 0;
if (STrChOThroneUpgradeStats.enhanceFailure[qual][lvl] == null) STrChOThroneUpgradeStats.enhanceFailure[qual][lvl] = 0;
st[qual] += STrChOThroneUpgradeStats.enhanceSuccess[qual][lvl];
ft[qual] += STrChOThroneUpgradeStats.enhanceFailure[qual][lvl];
m += '<td class="td' + (qual % 2) + '" >' + STrChOThroneUpgradeStats.enhanceSuccess[qual][lvl] + ' / ' + STrChOThroneUpgradeStats.enhanceFailure[qual][lvl] + '</td>';
}
m += '</tr>';
}
m += '<tr valign=top align=center><th> Totals: </th>';
for (qual = 0; qual < (STrChOMaxThroneQuality+1); qual++) m += '<td style="font-weight: bold;" class="td' + (qual % 2) + '" >' + st[qual] + ' / ' + ft[qual] + '</td>';
m += '</tr>';
m += '<TR valign=top align=center><th> Percents: </th>';
for (qual = 0; qual < (STrChOMaxThroneQuality+1); qual++) {
m += '<td style="font-weight: bold;" class="td' + (qual % 2) + '" >';
if ((st[qual] + ft[qual]) == 0)
m += "--";
else {
var perc = (100 * st[qual] / (st[qual] + ft[qual]));
m += perc.toFixed(2) + '%';
}
m += '</td>';
}
m += '</tr>';
m += '</table>';
m += '</div>';
m += '<center><input type=button class=STrChOButton value="Clear Stats" id=STrChOThroneEnhStatsClear></center>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOThroneEnhStatsClear').addEventListener('click', function () {
var t = Tabs.throneEnhStats;
for (lvl = 0; lvl <= STrChOMaxThroneLevel; lvl++) {
for (qual = 0; qual < (STrChOMaxThroneQuality+1); qual++) {
STrChOThroneUpgradeStats.enhanceSuccess[qual][lvl] = null;
STrChOThroneUpgradeStats.enhanceFailure[qual][lvl] = null;
}
}
SAVESTrChOThroneUpgradeStats();
t.buildThroneEnhStatsDisplay();
}, false);
},
show: function () {
var t = Tabs.throneEnhStats;
t.buildThroneEnhStatsDisplay();
},
}
Tabs.throneUpgStats = {
tabOrder: 107,
tabLabel: 'UPG STATS',
tabColor: 'red',
tabHeader: 'THRONE ROOM UPGRADE STATS',
init: function (div) {
var t = Tabs.throneUpgStats;
t.mydiv = div;
t.buildThroneUpgStatsDisplay();
},
hide: function () {},
buildThroneUpgStatsDisplay: function () {
var t = Tabs.throneUpgStats;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - (dlgWidthOffset*2.5)) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table class=STrChOStats align=center cellspacing=0>';
m += '<tr valign=top align=center><th colspan=' + (STrChOMaxThroneLevel+2) + '>Upgrading Numbers (successes/failures)</TH></TR>';
m += '<tr valign=top align=center><th></th>';
for (lvl = 0; lvl < STrChOMaxThroneLevel; lvl++) m += '<td style="font-weight: bold;" class="td' + (lvl % 2) + '" > +' + (lvl + 1) + ' </td>';
m += '</tr>';
var st = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0]; //TODO: change when game changes max throne level (currently 52)
var ft = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0];
for (qual = 0; qual <= STrChOMaxThroneQuality; qual++) {
m += '<tr valign=top align=center><th>' + throneCardQualities[qual].capitalizeFirstLetter() + '</th>';
for (lvl = 0; lvl < STrChOMaxThroneLevel; lvl++) {
if (STrChOThroneUpgradeStats.upgradeSuccess[qual][lvl] == null || isNaN(STrChOThroneUpgradeStats.upgradeSuccess[qual][lvl])) STrChOThroneUpgradeStats.upgradeSuccess[qual][lvl] = 0;
if (STrChOThroneUpgradeStats.upgradeFailure[qual][lvl] == null || isNaN(STrChOThroneUpgradeStats.upgradeFailure[qual][lvl])) STrChOThroneUpgradeStats.upgradeFailure[qual][lvl] = 0;
st[lvl] += STrChOThroneUpgradeStats.upgradeSuccess[qual][lvl];
ft[lvl] += STrChOThroneUpgradeStats.upgradeFailure[qual][lvl];
m += '<td class="td' + (lvl % 2) + '" >';
m += STrChOThroneUpgradeStats.upgradeSuccess[qual][lvl] + ' / ' + STrChOThroneUpgradeStats.upgradeFailure[qual][lvl];
m += '</td>';
}
m += '</tr>';
}
m += '<tr valign=top align=center><th> Totals: </th>';
for (lvl = 0; lvl < STrChOMaxThroneLevel; lvl++) m += '<td style="font-weight: bold;" class="td' + (lvl % 2) + '" >' + st[lvl] + " / " + ft[lvl] + '</td>';
m += '</tr>';
m += '<tr valign=top align=center><th> Percents: </th>';
for (lvl = 0; lvl < STrChOMaxThroneLevel; lvl++) {
m += '<td style="font-weight: bold;" class="td' + (lvl % 2) + '" >';
if ((st[lvl] + ft[lvl]) == 0)
m += '--';
else {
var perc = (100 * st[lvl] / (st[lvl] + ft[lvl]));
m += perc.toFixed(2) + '%';
}
m += '</td>';
}
m += '</tr>';
m += '</table>';
m += '</div>';
m += '<center><input type=button class=STrChOButton value="Clear Stats" id=STrChOThroneUpgStatsClear></center>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOThroneUpgStatsClear').addEventListener('click', function () {
var t = Tabs.throneUpgStats;
for (lvl = 0; lvl <= STrChOMaxThroneLevel; lvl++) {
for (qual = 0; qual < (STrChOMaxThroneQuality+1); qual++) {
STrChOThroneUpgradeStats.upgradeSuccess[qual][lvl] = null;
STrChOThroneUpgradeStats.upgradeFailure[qual][lvl] = null;
}
}
SAVESTrChOThroneUpgradeStats();
t.buildThroneUpgStatsDisplay()
}, false);
},
show: function () {
var t = Tabs.throneUpgStats;
t.buildThroneUpgStatsDisplay();
},
}
Tabs.thronePresets = {
tabOrder: 108,
tabLabel: 'PRESETS',
tabColor: 'red',
tabHeader: 'THRONE ROOM PRESETS',
broke_count: 0,
broke_items: 0,
delay: 1000,
init: function (div) {
var t = Tabs.thronePresets;
t.mydiv = div;
//t.show();
},
hide: function () {},
refreshBrokeMightDisplay: function () {
document.getElementById('STrChOThroneMightBroke').innerHTML = getThroneBrokeMight();
},
show: function () {
var t = Tabs.thronePresets;
var m = '<div class=STrChOHeader>' + t.tabHeader + '<div class=STrChOSaveSettings id=STrChOThronePresetsSaveSettings title="Save Presets Settings"></div><div class=STrChOLoadSettings id=STrChOThronePresetsLoadSettings title="Load Presets Settings"></div></div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table>';
m += '<tr><td width=100%>Preset Color: <select class=STrChOSelect id=STrChOThronePresetColor>';
m += '<option ' + (STrChOThronePresetData.presetColor == "#FFFFFF" ? 'SELECTED ' : '') + 'value="#FFFFFF">White</option>';
m += '<option ' + (STrChOThronePresetData.presetColor == "#808080" ? 'SELECTED ' : '') + 'value="#808080">Gray</option>';
m += '<option ' + (STrChOThronePresetData.presetColor == "#FF0000" ? 'SELECTED ' : '') + 'value="#FF0000">Red</option>';
m += '<option ' + (STrChOThronePresetData.presetColor == "#FFFF00" ? 'SELECTED ' : '') + 'value="#FFFF00">Yellow</option>';
m += '<option ' + (STrChOThronePresetData.presetColor == "#00FF00" ? 'SELECTED ' : '') + 'value="#00FF00">Lime</option>';
m += '<option ' + (STrChOThronePresetData.presetColor == "#00FFFF" ? 'SELECTED ' : '') + 'value="#00FFFF">Aqua</option>';
m += '<option ' + (STrChOThronePresetData.presetColor == "#0000FF" ? 'SELECTED ' : '') + 'value="#0000FF">Blue</option>';
m += '<option ' + (STrChOThronePresetData.presetColor == "#FF00FF" ? 'SELECTED ' : '') + 'value="#FF00FF">Fuchsia</option>';
m += '</select>';
m += ' General Color: <select class=STrChOSelect id=STrChOThroneTagColor>';
m += '<option ' + (STrChOThronePresetData.tagColor == "#FFFFFF" ? 'SELECTED ' : '') + 'value="#FFFFFF">White</option>';
m += '<option ' + (STrChOThronePresetData.tagColor == "#808080" ? 'SELECTED ' : '') + 'value="#808080">Gray</option>';
m += '<option ' + (STrChOThronePresetData.tagColor == "#FF0000" ? 'SELECTED ' : '') + 'value="#FF0000">Red</option>';
m += '<option ' + (STrChOThronePresetData.tagColor == "#FFFF00" ? 'SELECTED ' : '') + 'value="#FFFF00">Yellow</option>';
m += '<option ' + (STrChOThronePresetData.tagColor == "#00FF00" ? 'SELECTED ' : '') + 'value="#00FF00">Lime</option>';
m += '<option ' + (STrChOThronePresetData.tagColor == "#00FFFF" ? 'SELECTED ' : '') + 'value="#00FFFF">Aqua</option>';
m += '<option ' + (STrChOThronePresetData.tagColor == "#0000FF" ? 'SELECTED ' : '') + 'value="#0000FF">Blue</option>';
m += '<option ' + (STrChOThronePresetData.tagColor == "#FF00FF" ? 'SELECTED ' : '') + 'value="#FF00FF">Fuchsia</option>';
m += '</select>';
m += ' Active Color: <select class=STrChOSelect id=STrChOThroneActiveColor>';
m += '<option ' + (STrChOThronePresetData.activeColor == "#FFFFFF" ? 'SELECTED ' : '') + 'value="#FFFFFF">White</option>';
m += '<option ' + (STrChOThronePresetData.activeColor == "#808080" ? 'SELECTED ' : '') + 'value="#808080">Gray</option>';
m += '<option ' + (STrChOThronePresetData.activeColor == "#FF0000" ? 'SELECTED ' : '') + 'value="#FF0000">Red</option>';
m += '<option ' + (STrChOThronePresetData.activeColor == "#FFFF00" ? 'SELECTED ' : '') + 'value="#FFFF00">Yellow</option>';
m += '<option ' + (STrChOThronePresetData.activeColor == "#00FF00" ? 'SELECTED ' : '') + 'value="#00FF00">Lime</option>';
m += '<option ' + (STrChOThronePresetData.activeColor == "#00FFFF" ? 'SELECTED ' : '') + 'value="#00FFFF">Aqua</option>';
m += '<option ' + (STrChOThronePresetData.activeColor == "#0000FF" ? 'SELECTED ' : '') + 'value="#0000FF">Blue</option>';
m += '<option ' + (STrChOThronePresetData.activeColor == "#FF00FF" ? 'SELECTED ' : '') + 'value="#FF00FF">Fuchsia</option>';
m += '</select>(Requires Refresh)</td></tr>';
m += '<tr><td>';
m += '<input type=button class=STrChOButton id=STrChOThroneClearTags value="Clear All Tags"> ';
m += '<input type=button class=STrChOButton id=STrChOThroneClearAllPresetTags value="Clear All Preset Tags"> ';
m += '<input type=button class=STrChOButton id=STrChOThroneSaveAllPresetTags value="Save All Preset Tags"> ';
//m += '<input type=button id=trExportPresetTags value="Export Preset Tags">';
m += '</td></tr>';
m += '<tr><td>';
m += '<input type=checkbox class=STrChOCheckbox id=STrChOThroneShowMight ' + (STrChOThronePresetData.showThroneMight ? 'CHECKED' : '') + '/>Show Might on Posts';
m += ' <input type=checkbox class=STrChOCheckbox id=STrChOThroneShowName ' + (STrChOThronePresetData.showThroneName ? 'CHECKED' : '') + '/>Show Preset Name on Posts';
m += '</td></tr>';
m += '</table>';
m += '<div class=STrChOHeader id=STrChOThronePresetNaming onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> PRESET NAMING <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
var presetSlots = getObjectCollectionCount(Seed.throne.slotEquip);
var presetsList = "";
for (i = 1; i < presetSlots + 1; i++) {
presetsList += '<option value="' + i + '">' + i + '</option>';
}
for (i = 1; i < presetSlots + 1; i++) {
m += '<tr>';
m += '<td><input class="STrChOThronePresetSlotPost STrChOButton" type=button id=STrChOThronePreset' + i + ' value="Post Slot"></td>';
m += '<td><input class="STrChOThronePresetTagPost STrChOButton" type=button id=STrChOThronePreset' + i + ' value="Post Tag"></td>';
m += '<td> <b>Preset ' + i + ': </b></td>';
m += '<td><input class=STrChOThronePresetNameEntry type=text size=15 id=STrChOThronePresetName' + i + ' value="' + STrChOThronePresetData.presetNames[i] + '"></td>';
m += '<td><input class="STrChOThronePresetCopyTo STrChOButton" type=button id=STrChOThronePreset' + i + ' value="Copy To"><select class=STrChOSelect id=STrChOThronePresetCopyToWhat' + i + '>' + presetsList + '</select></td>';
m += '<td><input class="STrChOThronePresetSave STrChOButton" type=button id=STrChOThronePreset' + i + ' value="Save"></td>';
if (getThronePresetTagCount(i) != 0) {
m += '<td><input class="STrChOThronePresetClear STrChOButton" type=button id=STrChOThronePreset' + i + ' value="Clear"></td>';
m += '<td><input class="STrChOThronePresetExcel STrChOButton" type=button id=STrChOThronePreset' + i + ' value="Excel"></td>';
} else {
m += '<td/><td/>';
}
m += '</tr>';
}
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> THRONE ROOM BREAKING <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td><div id=STrChOThroneMightBroke>You have 0 throne room might broken</div></td></tr>';
m += '<tr><td><input type=checkbox checked class=STrChOCheckbox id=STrChOThroneExcludePresets>Exclude Tagged Presets</td></tr>';
m += '<tr><td><input type=checkbox checked class=STrChOCheckbox id=STrChOThroneExcludeTags>Exclude Regular Tagged</td></tr>';
m += '<tr><td>Break Items Level <select class=STrChOSelect id=STrChOThroneBreakLevelLow>';
for (lvl = 1; lvl < STrChOMaxThroneLevel; lvl++) {
m += '<option value=' + lvl + '>+' + lvl + '</option>';
}
m += '</select> or Higher</td></tr>';
m += '<tr><td>Break Items Level <select class=STrChOSelect id=STrChOThroneBreakLevelHigh>';
for (lvl = 1; lvl < STrChOMaxThroneLevel; lvl++) {
m += '<option value=' + lvl + (lvl == STrChOMaxThroneLevel - 1 ? ' SELECTED' : '') + '>+' + lvl + '</option>';
}
m += '</select> or Lower</td></tr>';
m += '<tr><td><input type=button class=STrChOButton id=STrChOThroneBreakAll value="Break Now"><font color=red><i>(all options above will reset after refresh)</i></font></td></tr>';
m += '<tr><td><div id=STrChOThroneBreakCounter></div></td></tr>';
m += '<tr><td><hr></td></tr>';
m += '<tr><td>Break Equiped Throne Room Only<select class=STrChOSelect id=STrChOThronePresetEquipBreak>' + presetsList + '</select><input type=button class=STrChOButton id=STrChOThronePresetEquipBreakNow value="Break Now"></td></tr>';
m += '<tr><td>Break Tagged Preset Only<select class=STrChOSelect id=STrChOThronePresetTaggedBreak>' + presetsList + '</select><input type=button class=STrChOButton id=STrChOThronePresetTaggedBreakNow value="Break Now"></td></tr>';
m += '<tr><td>Break <input type=number class=STrChOText id=STrChOThroneMightBreak oncontextmenu="return false;"> Throne Might <input type=button class=STrChOButton id=STrChOThroneMightBreakNow value="Break Now"></td></tr>';
m += '</table>';
m += '</div>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOThronePresetsSaveSettings').addEventListener('click', function () {
SaveSettingsToFile(STrChOThronePresetData);
}, false);
document.getElementById('STrChOThronePresetsLoadSettings').addEventListener('click', function () {
var loader = document.getElementById('STrChOSettingsFile');
loader.addEventListener('change', function () {
LoadSettingsFromFile(STrChOThronePresetData, Tabs.thronePresets);
}, false);
loader.click();
}, false);
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
t.refreshBrokeMightDisplay();
document.getElementById('STrChOThroneShowMight').addEventListener('change', function () {
STrChOThronePresetData.showThroneMight = document.getElementById('STrChOThroneShowMight').checked;
SAVESTrChOThronePresetData();
}, false);
document.getElementById('STrChOThroneShowName').addEventListener('change', function () {
STrChOThronePresetData.showThroneName = document.getElementById('STrChOThroneShowName').checked;
SAVESTrChOThronePresetData();
}, false);
document.getElementById('STrChOThroneSaveAllPresetTags').addEventListener('click', function () {
for (i = 1; i < presetSlots + 1; i++) {
t.addPresetTags(i);
}
t.show();
document.getElementById('STrChOThronePresetNaming').click();
}, false);
document.getElementById('STrChOThroneClearTags').addEventListener('click', function () {
t.clearAllTagItems();
}, false);
document.getElementById('STrChOThroneClearAllPresetTags').addEventListener('click', function () {
t.clearAllPresetTagItems();
t.show();
document.getElementById('STrChOThronePresetNaming').click();
}, false);
document.getElementById('STrChOThroneActiveColor').addEventListener('change', function () {
STrChOThronePresetData.activeColor = document.getElementById('STrChOThroneActiveColor').value;
SAVESTrChOThronePresetData();
}, false);
document.getElementById('STrChOThronePresetColor').addEventListener('change', function () {
STrChOThronePresetData.PresetColor = document.getElementById('STrChOThronePresetColor').value;
SAVESTrChOThronePresetData();
}, false);
document.getElementById('STrChOThroneTagColor').addEventListener('change', function () {
STrChOThronePresetData.tagColor = document.getElementById('STrChOThroneTagColor').value;
SAVESTrChOThronePresetData();
}, false);
document.getElementById('STrChOThroneMightBreak').addEventListener('keydown', function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if (e.keyCode == 46 || e.keyCode == 8 || e.keyCode == 9 || e.keyCode == 27 || e.keyCode == 13 || e.keyCode == 110 || e.keyCode == 190 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39) ||
// Allow: F5
(e.keyCode == 116))
{
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105) || e.keyCode == 190 || e.keyCode == 110 )
{
e.preventDefault();
}
}, false);
document.getElementById('STrChOThroneMightBreak').addEventListener('keyup', function (e) {
document.getElementById('STrChOThroneMightBreak').value = document.getElementById('STrChOThroneMightBreak').value.replace('.','');
document.getElementById('STrChOThroneMightBreak').value = document.getElementById('STrChOThroneMightBreak').value.replace(',','');
}, false);
function BreakIt( cardsToBreak ) {
var t = Tabs.thronePresets;
if (!cardsToBreak || cardsToBreak == null) return;
if (cardsToBreak.length == 0) {
alert('No throne items to break');
return;
}
t.broke_count = cardsToBreak.length;
//t.setBreakStatus();
t.broke_items = 0;
//var items_broke = 0; //this will be the counter for the # of throne items broke
for (var i = 0; i < cardsToBreak.length; i++) { //loop through all the throne items to be broke
var citytobreakfrom = 0; //start at the first city {the index is 0-based}
var throne_item = uW.kocThroneItems[cardsToBreak[i]]; //get the next throne item in the collection
var curr_level = throne_item.level; //get the current level of the throne item
var throne_id = throne_item.id; //get the throne item id
//var curr_might = throne_item
if (curr_level == STrChOMaxThroneLevel) continue; //if for some reason a card at the max level makes it through the list then continue to the next in the list
var cost_to_upgrade = CM.thronestats.upgrade[curr_level + 1].Stones; //get the cost of stones to upgrade to the next level
while (citytobreakfrom < 8) { //loop through all the 8 cities checking for astone to upgrade for the break feature
stones_in_city = parseInt(Seed.resources["city" + Seed.cities[citytobreakfrom][0]]["rec5"][0]); //get the astone count for the city
if (cost_to_upgrade + STrChOBreakBuffer <= stones_in_city) break; //if you have the astone in the city then stop searching cities and do the upgrade
citytobreakfrom = citytobreakfrom + 1; //search to the next city in the loop
}
if (citytobreakfrom == 8) continue; //if you make it to 8, then you've exhausted all the cities astone search for this throne item, move to the next one
var params = uW.Object.clone(ajfx);
params.ctrl = 'throneRoom\\ThroneRoomServiceAjax';
params.action = 'upgradeLevel';
params.throneRoomItemId = throne_id;
params.buffItemId = 0;
params.payment = "aetherstone";
params.cityId = Seed.cities[citytobreakfrom][0];
//items_broke = items_broke + 1;
t.broke_items += 1;
Seed.resources["city" + Seed.cities[citytobreakfrom][0]]["rec5"][0] = Seed.resources["city" + Seed.cities[citytobreakfrom][0]]["rec5"][0] - cost_to_upgrade;
new AjaxRequest(uW.g_ajaxpath + "ajax/_dispatch53.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
try {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
if (rslt.updateSeed) uW.update_seed(rslt.updateSeed);
}
if (rslt.gems > 0) {
alert("UNEXPECTED ERROR: 'BREAK TR' accidentally spent gems.... Stopping now!");
ActionLog('BREAK TR accidentally spent gems! Stopping now!');
RefreshCamelot();
return;
}
//if (rslt.success) i--;
} catch (e) {
}
},
onFailure: function (rrr) {
CM.ThroneView.renderInventory(uW.kocThroneItems);
}
});
}
CM.ThroneView.renderInventory(uW.kocThroneItems);
if (t.broke_items == 0) {
alert('No Items broken. (NOTE: check astone levels if items should have been broke)');
} else {
alert('Breaking TR complete. ' + t.broke_items + ' Throne items were broken. Page will now refresh.');
RefreshCamelot();
}
}
document.getElementById('STrChOThroneBreakAll').addEventListener('click', function () {
if (!confirm('You cannot undo this action, are you sure you want to break your throne room?')) return;
var excludePresets = document.getElementById('STrChOThroneExcludePresets').checked;
var excludeTags = document.getElementById('STrChOThroneExcludeTags').checked;
var breakLevelLow = document.getElementById('STrChOThroneBreakLevelLow').value;
var breakLevelHigh = document.getElementById('STrChOThroneBreakLevelHigh').value;
var allTaggedPresets = [];
if (excludePresets) {
for (i = 1; i < presetSlots + 1; i++) {
if (getThronePresetTagCount(i) != 0) {
var thisPreset = getThronePresetObject(i);
for (throneId in thisPreset) {
var throne_item = uW.kocThroneItems[throneId];
if (throne_item == null || !throne_item) continue;
if (throne_item.level == STrChOMaxThroneLevel) continue;
if (throne_item.level < breakLevelLow || throne_item.level > breakLevelHigh) continue;
allTaggedPresets.push(throneId);
}
}
}
}
var throneToBreak = [];
for (trId in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
if (throne_item.isBroken) continue;
if (excludeTags && STrChOThronePresetData.taggedItems[trId]) continue;
if (allTaggedPresets.indexOf(trId) != -1) continue;
if (throne_item.level == STrChOMaxThroneLevel) continue;
if (throne_item.level < breakLevelLow || throne_item.level > breakLevelHigh) continue;
throneToBreak.push(trId);
}
delete allTaggedPresets;
BreakIt(throneToBreak);
}, false);
document.getElementById('STrChOThroneMightBreakNow').addEventListener('click', function () {
document.getElementById('STrChOThroneMightBreak').value = document.getElementById('STrChOThroneMightBreak').value.replace('.','');
document.getElementById('STrChOThroneMightBreak').value = document.getElementById('STrChOThroneMightBreak').value.replace(',','');
var mightReach = document.getElementById('STrChOThroneMightBreak').value;
if (!isNumeric(mightReach)) return;
if (!confirm('You cannot undo this action, are you sure you want to break?')) return;
var throneToBreak = [];
var mightTally = 0;
for (var throneId in uW.kocThroneItems) {
if (mightTally >= mightReach) break;
var throne_item = uW.kocThroneItems[throneId];
var throne_might = CM.ThroneView.getMightBonus(throne_item);
mightTally += throne_might;
throneToBreak.push(throneId);
};
BreakIt(throneToBreak);
}, false);
document.getElementById('STrChOThronePresetEquipBreakNow').addEventListener('click', function () {
if (!confirm('You cannot undo this action, are you sure you want to break?')) return;
var throneToBreak = [];
var equipped_items = Seed.throne.slotEquip[Seed.throne.activeSlot];
for (ei = 0; ei < equipped_items.length; ei++) { throneToBreak.push(equipped_items[ei]); }
BreakIt(throneToBreak);
}, false);
document.getElementById('STrChOThronePresetTaggedBreakNow').addEventListener('click', function () {
if (!confirm('You cannot undo this action, are you sure you want to break?')) return;
var throneToBreak = [];
var STrChOThronePresetTaggedBreak = document.getElementById('STrChOThronePresetTaggedBreak').value;
var thronePreset = getThronePresetObject(parseInt(STrChOThronePresetTaggedBreak));
for (var throneId in thronePreset) throneToBreak.push(throneId);
BreakIt(throneToBreak);
}, false);
function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); }
// read the preset names and descriptions
var STrChOThronePresetNameEntry = document.getElementsByClassName('STrChOThronePresetNameEntry');
for (var elem=0; elem<STrChOThronePresetNameEntry.length;elem++) {
STrChOThronePresetNameEntry[elem].addEventListener('change', function () {
var id = this.id;
var num = id.split('STrChOThronePresetName')[1];
var presetName = this.value;
if (presetName == "") {
presetName = "undefined";
this.value = presetName;
}
STrChOThronePresetData.presetNames[num] = presetName;
SAVESTrChOThronePresetData();
}, false);
STrChOThronePresetNameEntry[elem].addEventListener('blur', function () {
var id = this.id;
var num = id.split('STrChOThronePresetName')[1];
var presetName = this.value;
if (presetName == "") {
presetName = "undefined";
this.value = presetName;
STrChOThronePresetData.presetNames[num] = presetName;
SAVESTrChOThronePresetData();
}
}, false);
}
var STrChOThronePresetTagPost = document.getElementsByClassName('STrChOThronePresetTagPost');
for (var elem=0; elem<STrChOThronePresetTagPost.length;elem++) {
STrChOThronePresetTagPost[elem].addEventListener('click', function () {
var id = this.id;
var num = id.split('STrChOThronePreset')[1];
postThronePreset(num);
}, false);
}
var STrChOThronePresetSlotPost = document.getElementsByClassName('STrChOThronePresetSlotPost');
for (var elem=0; elem<STrChOThronePresetSlotPost.length;elem++) {
STrChOThronePresetSlotPost[elem].addEventListener('click', function () {
var id = this.id;
var num = id.split('STrChOThronePreset')[1];
postThroneSlot(num);
}, false);
}
var STrChOThronePresetCopyTo = document.getElementsByClassName('STrChOThronePresetCopyTo');
for (var elem=0; elem<STrChOThronePresetCopyTo.length;elem++) {
STrChOThronePresetCopyTo[elem].addEventListener('click', function () {
var id = this.id;
var sourceNum = id.split("STrChOThronePreset")[1];
var destNum = document.getElementById("STrChOThronePresetCopyToWhat" + sourceNum).value;
var copyName = document.getElementById("STrChOThronePresetName" + sourceNum).value;
t.copyPresetTags(sourceNum, destNum, copyName);
t.show();
document.getElementById('STrChOThronePresetNaming').click();
}, false);
}
var STrChOThronePresetClear = document.getElementsByClassName('STrChOThronePresetClear');
for (var elem=0; elem<STrChOThronePresetClear.length;elem++) {
STrChOThronePresetClear[elem].addEventListener('click', function () {
var id = this.id;
var num = id.split("STrChOThronePreset")[1];
t.clearPresetTags(num);
t.show();
document.getElementById('STrChOThronePresetNaming').click();
}, false);
}
var STrChOThronePresetExcel = document.getElementsByClassName('STrChOThronePresetExcel');
for (var elem=0; elem<STrChOThronePresetExcel.length;elem++) {
STrChOThronePresetExcel[elem].addEventListener('click', function () {
var id = this.id;
var num = id.split("STrChOThronePreset")[1];
ExportThronePresetToExcel(num);
}, false);
}
var STrChOThronePresetSave = document.getElementsByClassName('STrChOThronePresetSave');
for (var elem=0; elem<STrChOThronePresetSave.length;elem++) {
STrChOThronePresetSave[elem].addEventListener('click', function () {
var id = this.id;
var num = id.split("STrChOThronePreset")[1];
t.addPresetTags(num);
t.show();
document.getElementById('STrChOThronePresetNaming').click();
}, false);
}
},
paintTags: function () {
var equipped_items = Seed.throne.slotEquip[Seed.throne.activeSlot];
for (ei = 0; ei < equipped_items.length; ei++) {
var throneId = equipped_items[ei];
$("#throneInventoryItem" + throneId).children(".activeBorderThrone").remove(); //remove any tag first before applying the tag to avoid doubling, trippling up on the borders, etc
$("#throneInventoryItem" + throneId).prepend("<div class='activeBorderThrone'></div>");
}
for (p in STrChOThronePresetData.taggedItems) {
$("#throneInventoryItem" + p).children(".tagBorderThrone").remove(); //remove any tag first before applying the tag to avoid doubling, trippling up on the borders, etc
$("div#throneInventoryItem" + p).prepend("<div class='tagBorderThrone'></div>");
}
for (idx = 1; idx < (STrChOMaxPresets+1); idx++) {
var preset = getThronePresetObject(idx);
if (getObjectCollectionCount(preset) > 0) {
for (p in preset) {
$("#throneInventoryItem" + p).children(".presetBorderThrone").remove(); //remove any tag first before applying the tag to avoid doubling, trippling up on the borders, etc
$("#throneInventoryItem" + p).prepend("<div class='presetBorderThrone'></div>");
}
}
}
if (STrChOGeneralOptions.showJewels) {
for (trId in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[trId];
if (!throne_item.jewel) continue;
if (throne_item.jewel.valid && !throne_item.isBroken) {
$("#throneInventoryItem" + throne_item.id).children(".jewelIcon").remove();
$("div#throneInventoryItem" + throne_item.id).append("<div class='jewelIcon'><img style='float:right;' src='" + STrChOJewelImages[throne_item.jewel.quality] + "'></div>");
}
}
}
$("#advisorContainer").click(function () { ThroneMenuPopup('advisorContainer'); });
$("#heroContainer").click(function () { ThroneMenuPopup('heroContainer'); });
$("#chairContainer").click(function () { ThroneMenuPopup('chairContainer'); });
$("#candelabrumContainer").click(function () { ThroneMenuPopup('candelabrumContainer'); });
$("#tableContainer").click(function () { ThroneMenuPopup('tableContainer'); });
$("#windowContainer").click(function () { ThroneMenuPopup('windowContainer'); });
$("#bannerContainer").click(function () { ThroneMenuPopup('bannerContainer'); });
$("#trophyContainer").click(function () { ThroneMenuPopup('trophyContainer'); });
$("#statueContainer").click(function () { ThroneMenuPopup('statueContainer'); });
$("#petContainer").click(function () { ThroneMenuPopup('petContainer'); });
$("#tapestryContainer").click(function () { ThroneMenuPopup('tapestryContainer'); });
$("#pillarContainer").click(function () { ThroneMenuPopup('pillarContainer'); });
function ThroneMenuPopup(displayContainer) {
var throneType = displayContainer.split('Container')[0];
for (var trId in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
if (throne_item.type == throneType && throne_item.isEquipped) {
var thisDiv = document.getElementById(displayContainer);
CardContextMenu(thisDiv, throne_item, false);
break;
}
}
};
},
unequipAllItems: function (presetIndex) {
if (Seed.throne.activeSlot != presetIndex) {
Seed.throne.activeSlot = presetIndex;
}
var t = Tabs.throneOrganizer;
if (t.switchingPresets) {
alert("still unequipping");
return;
}
if (!confirm('Are you sure you want to unequip all items?')) return;
var c = 0;
t.switchingPresets = true;
// grab the list of items equipped in the slot about to be switched to
var delay = 7;
var equipped_items = Seed.throne.slotEquip[presetIndex];
var counter = equipped_items.length;
var items = [];
for (i = 0; i < counter; i++) items.push(equipped_items[i]);
while (counter > 0) {
var throne_item = uW.kocThroneItems[items.pop()];
var goUnequip = function (I2, s) {
return function () {
Tabs.throneOrganizer.unequipItem(I2, s);
};
}
setTimeout(goUnequip(throne_item, presetIndex), c * delay * 1000); // have to wait at least 5 seconds between switches
c++;
counter--;
}
setTimeout(function () {
t.switchingPresets = false;
alert("all throne items unequipped")
}, c * delay * 1000 + 1000);
},
equipPresetTags: function (presetIndex) {
if (Seed.throne.activeSlot != presetIndex) {
Seed.throne.activeSlot = presetIndex;
}
var t = Tabs.throneOrganizer;
var preset = getThronePresetObject(presetIndex);
if (t.switchingPresets) {
alert("still equipping");
return;
}
if (getObjectCollectionCount(preset) == 0) {
alert("preset is empty");
return;
}
var c = 0;
t.switchingPresets = true;
var delay = 7;
var types_equiped = [];
for (p in preset) {
// only equip the items not already equipped
var throne_item = uW.kocThroneItems[p];
types_equiped.push(throne_item.type);
if (!throne_item.isEquipped) {
var goEquip = function (I2, s) {
return function () {
Tabs.throneOrganizer.equipItem(I2, s);
};
}
setTimeout(goEquip(throne_item, presetIndex), c * delay * 1000); // have to wait at least 5 seconds between switches
c++;
}
}
var equipped_items = Seed.throne.slotEquip[presetIndex];
var counter = equipped_items.length;
var items_to_unequip = [];
for (i = 0; i < counter; i++) {
var throne_item = uW.kocThroneItems[equipped_items[i]];
var idx = types_equiped.indexOf(throne_item.type);
if (idx == -1) { //item in equipped items is not found among the types that were equipped, so unequip it
var goUnequip = function (I2, s) {
return function () {
Tabs.throneOrganizer.unequipItem(I2, s);
};
}
setTimeout(goUnequip(throne_item, presetIndex), c * delay * 1000); // have to wait at least 5 seconds between switches
c++;
}
}
setTimeout(function () {
t.switchingPresets = false;
alert("preset #" + presetIndex + " loaded from tagged preset")
}, (c * (delay * 1000)) + 1000);
},
copyPresetTags: function (sourcePresetNumber, destinationPresetNumber, presetName) {
var pSource = getThronePresetObject(parseInt(sourcePresetNumber));
var pDestination = getThronePresetObject(parseInt(destinationPresetNumber));
for (var p in pDestination) delete pDestination[p];
for (var p in pSource) pDestination[p] = true;
STrChOThronePresetData.presetNames[destinationPresetNumber] = presetName + " (copy)";
SAVESTrChOThronePresetData();
},
addPresetTags: function (presetIndex) { //presetIndex should be passed in as base 0 to index into the presetTaggedItems array
var t = Tabs.thronePresets;
var preset = getThronePresetObject(parseInt(presetIndex));
var equipped_items = Seed.throne.slotEquip[parseInt(presetIndex)];
for (var p in preset) delete preset[p];
for (ei = 0; ei < equipped_items.length; ei++) {
var throneId = equipped_items[ei];
preset[throneId] = true;
$("#throneInventoryItem" + throneId).prepend("<div class='presetBorderThrone'></div>");
SAVESTrChOThronePresetData();
}
t.paintTags();
},
clearPresetTags: function (presetIndex) {
var preset = getThronePresetObject(parseInt(presetIndex));
for (var p in preset) {
delete preset[p];
$("#throneInventoryItem" + p).children(".presetBorderThrone").remove();
SAVESTrChOThronePresetData();
}
},
removeTagItem: function (itemId) {
if (STrChOThronePresetData.taggedItems[itemId]) {
delete STrChOThronePresetData.taggedItems[itemId];
$("#throneInventoryItem" + itemId).children(".tagBorderThrone").remove();
SAVESTrChOThronePresetData();
}
},
addTagItem: function (itemId) {
STrChOThronePresetData.taggedItems[itemId] = true;
$("#throneInventoryItem" + itemId).prepend("<div class='tagBorderThrone'></div>");
SAVESTrChOThronePresetData();
},
addAllTagItems: function() {
var t = Tabs.thronePresets;
t.clearAllTagItems();
for (trId in uW.kocThroneItems) {
STrChOThronePresetData.taggedItems[trId] = true;
$("#throneInventoryItem" + trId).prepend("<div class='tagBorderThrone'></div>");
}
SAVESTrChOThronePresetData();
},
clearAllTagItems: function () {
var taggedReverse = [];
for (k in STrChOThronePresetData.taggedItems) taggedReverse.push(k);
var len = taggedReverse.length;
while (len--) {
var trID = taggedReverse[len];
delete STrChOThronePresetData.taggedItems[trID];
$("#throneInventoryItem" + trID).children(".tagBorderThrone").remove();
SAVESTrChOThronePresetData();
}
},
clearAllPresetTagItems: function () {
if (!confirm('Are you sure you want to clear all preset tag items?')) return;
var presetCount = getObjectCollectionCount(Seed.throne.slotEquip) + 1;
for (i = 1; i < presetCount; i++) {
document.getElementById('STrChOThronePresetName' + i).value = "undefined";
STrChOThronePresetData.presetNames[i] = "undefined";
var preset = getThronePresetObject(i);
for (var p in preset) {
delete preset[p];
$("#throneInventoryItem" + p).children(".presetBorderThrone").remove();
SAVESTrChOThronePresetData();
}
}
},
setBreakStatus: function() {
var t = Tabs.thronePresets;
var remaining = t.broke_count - t.broke_items;
var m = "Items Remaining: " + remaining;
m += "<br>Time Remaining: " + (remaining * (t.delay/1000)) + " Seconds";
document.getElementById('STrChOThroneBreakCounter').innerHTML = m;
},
}
Tabs.thronePreview = {
tabOrder: 109,
tabLabel: 'PREVIEW',
tabColor: 'red',
tabHeader: 'THRONE ROOM PREVIEW',
equipingPreview: false,
init: function (div) {
var t = Tabs.thronePreview;
t.mydiv = div;
},
hide: function () {},
show: function () {
var t = Tabs.thronePreview;
var presetSlots = getObjectCollectionCount(Seed.throne.slotEquip);
var presetsTagList = "";
for (i = 1; i < presetSlots + 1; i++) {
presetsTagList += '<option value="' + i + '">' + i + ' (' + STrChOThronePresetData.presetNames[i] + ')</option>';
}
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table>';
m += '<tr>';
m += '<td colspan=3>';
m += '<input type=button class=STrChOButton value="Reset" id=STrChOThronePreviewReset> || ';
m += '<input type=button class=STrChOButton value="Post Stats to Chat" id=STrChOThronePreviewPost> ';
m += '<input type=button class=STrChOButton value="Export to Excel" id=STrChOThronePreviewExcel> ';
m += '<br>';
m += '<input type=button class=STrChOButton value="Export To Text" id=STrChOThronePreviewExport> || ';
m += '<input type=button class=STrChOButton value="Load Text Export" id=STrChOThronePreviewExportLoad>';
m += '<input type=button class=STrChOButton value="Browse..." id=STrChOThronePreviewExportLoadItemTrigger onclick="document.getElementById(\'STrChOThronePreviewExportLoadItem\').click()">';
m += '<input hidden id=STrChOThronePreviewExportLoadItem type=file>';
m += '<br>';
m += '<input type=button class=STrChOButton value="Equip To" id=STrChOThronePreviewEquip><b> Slot </b><select class=STrChOSelect style="width:25%;" id=STrChOThronePreviewEquipValue>' + presetsTagList + '</select> <font color="black"><b>(5 sec/card load)</b></font>';
m += '<br>';
m += '<font color=red><b><i>NOTE: Server will update new slot design, but a refresh will be required to update client side</i></b></font>';
m += '<br>';
m += '<input type=button class=STrChOButton value="Load From" id=STrChOThronePreviewLoadPreset><b> Slot </b><select class=STrChOSelect style="width:25%;" id=STrChOThronePreviewLoadPresetValue>' + presetsTagList + '</select> ';
m += '<br>';
m += '<input type=button class=STrChOButton value="Copy To" id=STrChOThronePreviewCopyTo><b> Preset Tag </b><select class=STrChOSelect style="width:25%;" id=STrChOThronePreviewCopyToValue>' + presetsTagList + '</select> ';
m += '<br>';
m += '<input type=button class=STrChOButton value="Load From" id=STrChOThronePreviewLoadPresetTag><b> Preset Tag </b><select class=STrChOSelect style="width:25%;" id=STrChOThronePreviewLoadPresetTagValue>' + presetsTagList + '</select> ';
m += '<br>';
m += '<input type=button class=STrChOButton value="Auto Build By Effect" id=STrChOThronePreviewAutoBuild><b> Effect </b><select class=STrChOSelect style="width:25%;" id=STrChOThronePreviewAutoBuildEffect>';
m += '<option value="0">--Effects--</option>';
for (efx in CM.thronestats.effects) m += '<option value="' + efx + '">' + CM.thronestats.effects[efx][1] + '</option>';
m += '</select> ';
m += '</td>';
m += '</tr>';
m += '</table>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> PREVIEW STATS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="position: static; width: 100%; height: 380px; overflow-x: auto; overflow-y: auto;">';
m += '<table class=STrChOSectionTable>';
m += '<tr><td>';
m += '<div id=STrChOThronePreviewDetails></div>';
m += '</td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> PREVIEW CARDS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="position: static; width: 100%; height: 380px; overflow-x: auto; overflow-y: auto;">';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
for (idx = 0; idx < throneCardTypes.length; idx++) {
if (idx % 3 == 0) m += '</tr><tr>';
m += '<td width=33% valign=top>';
m += '<div id=STrChOThroneHover' + throneCardTypes[idx] + '>';
m += '<table>';
m += '<tr><td><b>' + throneCardTypes[idx].toUpperCase() + '<b></td></tr>';
m += '<tr><td><select class=STrChOSelect id=STrChOThronePreviewValue' + throneCardTypes[idx] + ' style="white-space:nowrap;display:inline-block;max-width: 150px;">';
m += '<option value=0>--Items--</option>';
m += '</select></td></tr>';
m += '<tr><td><div id=STrChOThronePreviewCard' + throneCardTypes[idx] + '></div></td></tr>';
m += '</table>';
m += '</div>';
m += '</td>';
}
m += '</tr>';
m += '</table>';
m += '</div>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
for (throneId in uW.kocThroneItems) {
var throneItem = uW.kocThroneItems[throneId];
var throneType = throneItem.type;
var elemSelect = document.getElementById('STrChOThronePreviewValue' + throneType);
elemSelect.options.add(new Option(throneItem.name, throneId));
if (STrChOThronePresetData.previewThrone[throneId]) {
elemSelect.value = throneId;
var throneCard = BuildThroneCard(throneItem);
document.getElementById('STrChOThronePreviewCard' + throneType).innerHTML = throneCard;
}
}
for (idx = 0; idx < throneCardTypes.length; idx++) {
document.getElementById('STrChOThronePreviewCard' + throneCardTypes[idx]).addEventListener('click', function(A) {
A.stopPropagation();
var throneType = this.id.split('STrChOThronePreviewCard')[1];
var STrChOPreviewValue = document.getElementById('STrChOThronePreviewValue' + throneType);
var throneId = STrChOPreviewValue.value;
var throneItem = uW.kocThroneItems[throneId];
if (!throneItem || throneItem ==0) return;
CardContextMenu(this, throneItem, true);
}, false);
document.getElementById('STrChOThronePreviewValue' + throneCardTypes[idx]).addEventListener('change', function() {
var throne_Type = this.id.split('STrChOThronePreviewValue')[1];
var trId = this.value;
t.loadThronePreviewCard(trId, throne_Type);
}, false);
document.getElementById('STrChOThronePreviewValue' + throneCardTypes[idx]).addEventListener('keyup', function() {
var throne_Type = this.id.split('STrChOThronePreviewValue')[1];
var trId = this.value;
t.loadThronePreviewCard(trId, throne_Type);
}, false);
}
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
document.getElementById('STrChOThronePreviewDetails').innerHTML = t.getPreviewThroneDetails();
document.getElementById('STrChOThronePreviewExcel').addEventListener('click', function() {
ExportThroneToExcel(true);
}, false);
document.getElementById('STrChOThronePreviewPost').addEventListener('click', function () {
t.postPreviewThroneDetails();
}, false);
document.getElementById('STrChOThronePreviewReset').addEventListener('click', function () {
t.resetPreview();
}, false);
document.getElementById('STrChOThronePreviewExportLoad').addEventListener('click', function () {
var fileInput = document.getElementById("STrChOThronePreviewExportLoadItem");
var files = fileInput.files;
if (files.length==0) {
alert('Please Select A File');
return;
}
var file = files[0];
var reader = new FileReader();
reader.onload = function (e) {
var output = e.target.result;
STrChOThronePresetData.previewThrone = JSON.parse(output);
SAVESTrChOThronePresetData();
t.show();
alert('Preview Throne Now Loaded From File');
};
reader.readAsText(file);
}, false);
document.getElementById('STrChOThronePreviewExport').addEventListener('click', function() {
uriContent = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(STrChOThronePresetData.previewThrone));
newWindow = window.open(uriContent, 'file.txt');
}, false);
document.getElementById('STrChOThronePreviewCopyTo').addEventListener('click', function () {
var presetNum = document.getElementById('STrChOThronePreviewCopyToValue').value;
var presetTag = getThronePresetObject(parseInt(presetNum));
for (var p in presetTag) delete presetTag[p];
for (var p in STrChOThronePresetData.previewThrone) presetTag[p] = true;
STrChOThronePresetData.presetNames[presetNum] = "PREVIEW";
document.getElementById('STrChOThronePresetName' + presetNum).value = "PREVIEW";
SAVESTrChOThronePresetData();
t.show();
}, false);
document.getElementById('STrChOThronePreviewLoadPreset').addEventListener('click', function () {
var presetIndex = document.getElementById('STrChOThronePreviewLoadPresetValue').value;
var equipped_items = Seed.throne.slotEquip[presetIndex];
var counter = equipped_items.length;
t.resetPreview();
for (var ei = 0; ei < counter; ei++) {
var throne_item = uW.kocThroneItems[equipped_items[ei]];
if (throne_item == null || !throne_item) continue;
STrChOThronePresetData.previewThrone[throne_item.id] = true;
}
SAVESTrChOThronePresetData();
t.show();
}, false);
document.getElementById('STrChOThronePreviewAutoBuild').addEventListener('click', function () {
var EffectId = document.getElementById('STrChOThronePreviewAutoBuildEffect').value;
if (EffectId == 0) return;
var EffectName = CM.thronestats.effects[EffectId][1];
var isBuff = true;
if (EffectName.indexOf(" Debuff") != -1) isBuff = false;
function eCard() {
this.id = 0;
this.type = '';
this.total = 0;
}
var EffectedCards = [];
for (tct = 0; tct < throneCardTypes.length; tct++) EffectedCards[throneCardTypes[tct]] = new Array;
for (var throneId in uW.kocThroneItems) {
var throneItem = uW.kocThroneItems[throneId];
var totalEffects = 0;
for (var effect in throneItem.effects) {
var fx = throneItem.effects[effect];
if (fx.id == EffectId) {
var tier = CM.thronestats.tiers[fx.id][fx.tier];
if (!tier) CM.thronestats.tiers[fx.id][fx.tier - 1]
var base = tier.base || 0;
var level = throneItem.level || 0;
var growth = tier.growth || 0;
var percent = +(base + ((level * level + level) * growth * 0.5));
totalEffects += percent;
}
}
if (totalEffects != 0) {
var thisCard = new eCard();
thisCard.id = throneId;
thisCard.total = totalEffects;
thisCard.type = throneItem.type;
if (EffectedCards[thisCard.type].length > 0) {
if (isBuff && EffectedCards[thisCard.type][0].total > thisCard.total) continue;
if (!isBuff && EffectedCards[thisCard.type][0].total < thisCard.total) continue;
EffectedCards[thisCard.type][0] = thisCard;
} else {
EffectedCards[thisCard.type].push(thisCard);
}
}
}
t.resetPreview();
for (tct = 0; tct < throneCardTypes.length; tct++) {
if (EffectedCards[throneCardTypes[tct]].length > 0) {
var thisCard = EffectedCards[throneCardTypes[tct]][0];
t.loadThronePreviewCard(thisCard.id, thisCard.type);
}
}
SAVESTrChOThronePresetData();
}, false);
document.getElementById('STrChOThronePreviewLoadPresetTag').addEventListener('click', function () {
var presetNum = document.getElementById('STrChOThronePreviewLoadPresetTagValue').value;
var presetTag = getThronePresetObject(parseInt(presetNum));
t.resetPreview();
for (var p in presetTag) STrChOThronePresetData.previewThrone[p] = true;
SAVESTrChOThronePresetData();
t.show();
}, false);
document.getElementById('STrChOThronePreviewEquip').addEventListener('click', function () {
var t = Tabs.thronePreview;
var presetIndex = document.getElementById('STrChOThronePreviewEquipValue').value;
if (t.equipingPreview) {
alert("still equipping");
return;
}
if (getObjectCollectionCount(STrChOThronePresetData.previewThrone) == 0) return;
var c = 0;
t.equipingPreview = true;
var delay = 7;
var types_equiped = [];
var goEquip = function (I2, s) {
return function () {
Tabs.throneOrganizer.equipItem(I2, s);
};
}
for (var trId in STrChOThronePresetData.previewThrone) {
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
setTimeout(goEquip(throne_item, presetIndex), c * delay * 1000); // have to wait at least 5 seconds between switches
c++;
}
setTimeout(function () {
t.equipingPreview = false;
alert("equipping to slot " + presetIndex + " from PREVIEW complete")
}, (c * (delay * 1000)) + 1000);
}, false);
},
loadThronePreviewCard: function(throneId, throneType) {
var t = Tabs.thronePreview;
var throneCard = '';
if (throneId != 0) {
var throneItem = uW.kocThroneItems[throneId];
if (!throneItem || throneItem ==0) {
throneCard = '';
} else {
throneCard = BuildThroneCard(throneItem);
}
}
document.getElementById('STrChOThronePreviewCard' + throneType).innerHTML = throneCard;
document.getElementById('STrChOThronePreviewValue' + throneType).value = throneId;
for (pId in STrChOThronePresetData.previewThrone) {
var throne_item = uW.kocThroneItems[pId];
if (throne_item == null || !throne_item) continue;
if (throne_item.type == throneType) {
delete STrChOThronePresetData.previewThrone[pId];
break;
}
}
if (throneId != 0) STrChOThronePresetData.previewThrone[throneId] = true
SAVESTrChOThronePresetData();
document.getElementById('STrChOThronePreviewDetails').innerHTML = t.getPreviewThroneDetails();
},
getPreviewThroneDetails: function () {
var t = Tabs.thronePreview;
var previewPreset = [];
for (var trId in STrChOThronePresetData.previewThrone) previewPreset.push(trId);
var stringPreviewThrone = GenerateThronePresetEffectsString(previewPreset, true);
if (stringPreviewThrone == "") {
stringPreviewThrone = "No Stats To Preview";
} else {
stringPreviewThrone = "<b>PREVIEW STATS:</b>\n" + stringPreviewThrone;
}
return stringPreviewThrone;
},
postPreviewThroneDetails: function () {
var t = Tabs.thronePreview;
var previewPreset = [];
for (var trId in STrChOThronePresetData.previewThrone) previewPreset.push(trId);
var stringPreviewThrone = GenerateThronePresetEffectsString(previewPreset, true);
if (stringPreviewThrone == "") {
return;
} else {
var table = stringPreviewThrone.split("</div><div>");
stringPreviewThrone = table.join("||");
stringPreviewThrone = stringPreviewThrone.replace("<div>", ":::. |TR PREVIEW STATS:||");
stringPreviewThrone = stringPreviewThrone.replace("</div>", "");
sendChat(stringPreviewThrone);
}
return;
},
resetPreview: function () {
var t = Tabs.thronePreview;
for (trId in STrChOThronePresetData.previewThrone) delete STrChOThronePresetData.previewThrone[trId];
SAVESTrChOThronePresetData();
for (idx = 0; idx < throneCardTypes.length; idx++) {
document.getElementById('STrChOThronePreviewCard' + throneCardTypes[idx]).innerHTML = "";
document.getElementById('STrChOThronePreviewValue' + throneCardTypes[idx]).value = 0;
}
document.getElementById('STrChOThronePreviewDetails').innerHTML = t.getPreviewThroneDetails();
},
}
Tabs.throneCompare = {
tabOrder: 110,
tabLabel: 'COMPARE',
tabColor: 'red',
tabHeader: 'THRONE ROOM COMPARE',
init: function (div) {
var t = Tabs.throneCompare;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div>';
m += '<center>';
m += '<table>';
m += '<tr>';
m += '<td align=center><b>CARD 1</b></td>';
m += '<td align=center><b>CARD 2</b></td>';
m += '</tr>';
m += '<tr>';
m += '<td>';
m += '<b>Item Type:</b><select class=STrChOSelect id=STrChOThroneCompareType1 style="width: 40%;">';
m += '<option value="0">--ALL--</option>';
for (var i = 0; i < throneCardTypes.length; i++) m += '<option value="' + throneCardTypes[i] + '">' + throneCardTypes[i].capitalizeFirstLetter() + '</option>';
m += '</select>';
m += '</td>';
m += '<td>';
m += '<b>Item Type:</b><select class=STrChOSelect id=STrChOThroneCompareType2 style="width: 40%;">';
m += '<option value="0">--ALL--</option>';
for (var i = 0; i < throneCardTypes.length; i++) m += '<option value="' + throneCardTypes[i] + '">' + throneCardTypes[i].capitalizeFirstLetter() + '</option>';
m += '</select>';
m += '</td>';
m += '</tr>';
m += '<tr>';
m += '<td>';
m += '<b>Throne Item:</b><br/><select class=STrChOSelect id=STrChOThroneCompareId1 style="width: 95%;">';
m += '<option value="0">--Items--</option>';
for (var throneId in uW.kocThroneItems) m += '<option value="' + throneId + '">' + uW.kocThroneItems[throneId].name + ' </option>';
m += '</select>';
m += '</td>';
m += '<td>';
m += '<b>Throne Item:</b><br/><select class=STrChOSelect id=STrChOThroneCompareId2 style="width: 95%;">';
m += '<option value="0">--Items--</option>';
for (var throneId in uW.kocThroneItems) m += '<option value="' + throneId + '">' + uW.kocThroneItems[throneId].name + ' </option>';
m += '</select>';
m += '</td>';
m += '</tr>';
m += '<tr>';
m += '<td>';
m += '<div id=STrChOThroneCompareCard1></div>';
m += '</td>';
m += '<td>';
m += '<div id=STrChOThroneCompareCard2></div>';
m += '</td>';
m += '</tr>';
m += '</table>';
m += '</center>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOThroneCompareId1').addEventListener('change', function () { t.loadCard(this, 'STrChOThroneCompareCard1'); }, false);
document.getElementById('STrChOThroneCompareId2').addEventListener('change', function () { t.loadCard(this, 'STrChOThroneCompareCard2'); }, false);
document.getElementById('STrChOThroneCompareId1').addEventListener('keyup', function () { t.loadCard(this, 'STrChOThroneCompareCard1'); }, false);
document.getElementById('STrChOThroneCompareId2').addEventListener('keyup', function () { t.loadCard(this, 'STrChOThroneCompareCard2'); }, false);
document.getElementById('STrChOThroneCompareType1').addEventListener('change', function () { t.filterItems(this, 'STrChOThroneCompareId1', 'STrChOThroneCompareCard1'); }, false);
document.getElementById('STrChOThroneCompareType2').addEventListener('change', function () { t.filterItems(this, 'STrChOThroneCompareId2', 'STrChOThroneCompareCard2'); }, false);
document.getElementById('STrChOThroneCompareType1').addEventListener('keyup', function () { t.filterItems(this, 'STrChOThroneCompareId1', 'STrChOThroneCompareCard1'); }, false);
document.getElementById('STrChOThroneCompareType2').addEventListener('keyup', function () { t.filterItems(this, 'STrChOThroneCompareId2', 'STrChOThroneCompareCard2'); }, false);
},
sendToCompare: function (Id) {
var t = Tabs.throneCompare;
var throneItem = uW.kocThroneItems[Id];
var card1 = document.getElementById('STrChOThroneCompareId1');
var card2 = document.getElementById('STrChOThroneCompareId2');
var obj = '';
if (card1.value == 0)
obj = '1';
else if (card2.value == 0)
obj = '2';
else
obj = '1';
document.getElementById('STrChOThroneCompareType' + obj).value = throneItem.type;
t.filterItems(document.getElementById('STrChOThroneCompareType' + obj), ('STrChOThroneCompareId' + obj), ('STrChOThroneCompareCard' + obj));
document.getElementById('STrChOThroneCompareId' + obj).value = Id;
t.loadCard(document.getElementById('STrChOThroneCompareId' + obj), ('STrChOThroneCompareCard' + obj));
},
loadCard: function (objectItem, objectName) {
var div = document.getElementById(objectName);
if (objectItem.value == 0)
div.innerHTML = '';
else
div.innerHTML = BuildThroneCard(uW.kocThroneItems[objectItem.value]);
},
filterItems: function (objectItem, objectIdName, objectName) {
document.getElementById(objectName).innerHTML = '';
var select = document.getElementById(objectIdName);
select.value = 0;
var m = '<option value="0">--Items--</option>';
if (objectItem.value == 0) {
for (var throneId in uW.kocThroneItems) {
m += '<option value="' + throneId + '">' + uW.kocThroneItems[throneId].name + '</option>';
}
} else {
for (var throneId in uW.kocThroneItems) {
if (uW.kocThroneItems[throneId].type == objectItem.value)
m += '<option value="' + throneId + '">' + uW.kocThroneItems[throneId].name + '</option>';
}
}
select.innerHTML = m;
},
hide: function () {},
show: function () {},
}
Tabs.throneUniques = {
tabOrder: 111,
tabLabel: 'UNIQUES',
tabColor: 'red',
tabHeader: 'THRONE ROOM UNIQUES',
UniqueItems : null,
selectedCard: 0,
selectedType: 0,
selectedLevel: 1,
init: function (div) {
var t = Tabs.throneUniques;
t.mydiv = div;
t.UniqueItems = CM.WorldSettings.getSettingAsObject("TR_UNIQUE_ITEMS");
for (k in t.UniqueItems) {
var throne_item = t.UniqueItems[k];
if (parseInt(throne_item.Id) < 29000) delete t.UniqueItems[k];
if (parseInt(throne_item.Id) == 30262 || parseInt(throne_item.Id) == 30264 || parseInt(throne_item.Id) == 30266) { throne_item.Name = throne_item.Name + ' ('+uW.g_js_strings.commonstr[CM.CHAMPION.getFactionClasses(throne_item.Faction)].toLowerCase()+')';};
if (parseInt(throne_item.Id) == 30261 || parseInt(throne_item.Id) == 30263 || parseInt(throne_item.Id) == 30265) { throne_item.Name = throne_item.Name + ' ('+uW.g_js_strings.commonstr[CM.CHAMPION.getFactionClasses(throne_item.Faction)].toLowerCase()+')';};
if (parseInt(throne_item.Id) == 30230 || parseInt(throne_item.Id) == 30240 || parseInt(throne_item.Id) == 30250) { throne_item.Name = throne_item.Name + ' ('+uW.g_js_strings.commonstr[CM.CHAMPION.getFactionClasses(throne_item.Faction)].toLowerCase()+')';};
if (parseInt(throne_item.Id) == 30231 || parseInt(throne_item.Id) == 30241 || parseInt(throne_item.Id) == 30251) { throne_item.Name = throne_item.Name + ' ('+uW.g_js_strings.commonstr[CM.CHAMPION.getFactionClasses(throne_item.Faction)].toLowerCase()+')';};
}
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<center><table>';
m += '<tr><td><div style="max-width:100%;"><b>Item Type:</b><select class=STrChOSelect id=STrChOThroneUniqueType style="width: 40%;">';
m += '<option value="0">--ALL--</option>';
for (var i = 0; i < throneCardTypes.length; i++) m += '<option value="' + throneCardTypes[i] + '">' + throneCardTypes[i].capitalizeFirstLetter() + '</option>';
m += '</select></div></td></tr>';
m += '<tr><td><div style="max-width:100%;"><b>Throne Item:</b><br/><select class=STrChOSelect id=STrChOThroneUnique style="width: 95%;">';
m += '<option value="0">--Items--</option>';
for (k in t.UniqueItems) {
var throne_item = t.UniqueItems[k];
if (throne_item == null || !throne_item) continue;
m += '<option value="' + k + '">' + throne_item.Name + ' </option>';
}
m += '</select></div></td></tr>';
m += '<tr><td><div style="max-width:100%;"><b>Level:</b><select class=STrChOSelect id=STrChOThroneUniqueLevel style="width: 40%;">';
m += '<option value="1" selected>+1</option>';
for (lvl = 2; lvl < STrChOMaxThroneLevel + 1; lvl++) m += '<option value="' + lvl + '">+' + lvl + '</option>';
m += '</select></div></td></tr>';
m += '<tr><td><div id=STrChOThroneUniqueCard></div></td></tr>';
m += '</table>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOThroneUniqueType').addEventListener('change', function () {
t.selectedType = document.getElementById('STrChOThroneUniqueType').value;
t.selectedCard = 0;
t.FilterUniques();
document.getElementById('STrChOThroneUniqueCard').innerHTML = '';
}, false);
document.getElementById('STrChOThroneUnique').addEventListener('change', function () {
t.selectedCard = document.getElementById('STrChOThroneUnique').value;
if (t.selectedCard != 0) t.SwitchUnique();
}, false);
document.getElementById('STrChOThroneUniqueLevel').addEventListener('change', function () {
t.selectedLevel = document.getElementById('STrChOThroneUniqueLevel').value;
if (t.selectedCard != 0) t.SwitchUnique();
}, false);
},
hide: function () {},
show: function () {},
FilterUniques: function (cardType) {
var t = Tabs.throneUniques;
var throneList = document.getElementById('STrChOThroneUnique');
throneList.options.length = 0;
var throneOption = document.createElement('option');
throneOption.text = '--Items--';
throneOption.value = 0;
throneList.add(throneOption);
for (k in t.UniqueItems) {
var throne_item = t.UniqueItems[k];
if (throne_item == null || !throne_item) continue;
if (throneCardTypes[throne_item.Type-1] == t.selectedType || t.selectedType == 0) {
var throneOption = document.createElement('option');
throneOption.text = throne_item.Name;
throneOption.value = k;
throneList.add(throneOption);
}
}
},
SwitchUnique: function () {
var t = Tabs.throneUniques;
var div = document.getElementById('STrChOThroneUniqueCard');
var m = ConvertUniqueAndBuildThroneCard(t.selectedCard, t.selectedLevel);
m += t.GetUniqueInventory(t.selectedCard);
div.innerHTML = m;
var STrChOThroneUseUnique = document.getElementById('STrChOThroneUseUnique');
if (!STrChOThroneUseUnique) return;
STrChOThroneUseUnique.addEventListener('click', function() {
var uniqueId = this.getAttribute('uid');
var uniqueCount = parseInt(document.getElementById('STrChOThroneUniqueCount').innerHTML);
uniqueCount--;
document.getElementById('STrChOThroneUniqueCount').innerHTML = uniqueCount;
CM.ItemController.use(uniqueId);
}, false);
},
GetUniqueInventory: function (uniqueId) {
var m = '<br><b>Throne Room</b><br>';
var throneitems = {};
for (throneId in uW.kocThroneItems) {
var throneItem = uW.kocThroneItems[throneId];
if (throneItem.unique == uniqueId) {
if (throneitems[throneItem.level]) {
throneitems[throneItem.level]++;
} else {
throneitems[throneItem.level] = 1;
}
}
}
var gotitem = false;
for (lvl in throneitems) {
gotitem = true;
m += 'You have ' + throneitems[lvl] + ' at level ' + lvl + '<br>';
}
if (!gotitem) m += 'You have none in your throne room.<br>';
m += '<br><b>Inventory</b><br>';
var inventory = Seed.items['i' + uniqueId];
m += 'You have <div class=divNoWrap id=STrChOThroneUniqueCount>' + (inventory ? inventory : '0') + '</div> in your inventory.';
if ((inventory?inventory:0) != 0) m += '<br><b><a id=STrChOThroneUseUnique uid="' + uniqueId + '">Add To Throne Room</a></b>';
return m;
},
}
Tabs.throneCaps = {
tabOrder: 112,
tabLabel: 'CAPS',
tabColor: 'red',
tabHeader: 'THRONE ROOM CAPS',
init: function (div) {
var t = Tabs.throneCaps;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div class=indent5>';
m += '<table cellpadding=0 cellspacing=0 width=100% align=center>';
m += '<tr><td width=50% align=left><b>Boost</b></td><td width=25% align=left><b>Max</b></td><td width=25% align=left><b>Min</b></td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=indent5 style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table cellpadding=0 cellspacing=0 width=100% align=center>';
for (var boost in CM.thronestats.boosts) {
var cap = CM.thronestats.boosts[boost];
m += '<tr class=trTabLined>';
m += '<td width=50%>' + cap.BoostName + '</td>';
m += '<td width=25%>' + cap.Max + ((cap.CapType == "percent") ? '%' : '') + '</td>';
m += '<td width=25%>' + ((cap.Min == "none") ? 'None' : cap.Min + '%') + '</td>';
m += '</tr>';
}
m += '</table>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
},
hide: function () {},
show: function () {},
}
Tabs.champUpgrader = {
tabOrder: 200,
tabLabel: 'UPGRADER',
tabColor: 'brown',
tabHeader: 'CHAMP HALL UPGRADER',
myDiv: null,
repairId: 0,
repairEnd: 0,
timerH: null,
clearTimerH: null,
speedup: 0,
upgradePath: {
0: { maxLev: 2, nextQual: 2 },
1: { maxLev: 2, nextQual: 2 },
2: { maxLev: 3, nextQual: 4 },
3: { maxLev: 3, nextQual: 4 },
4: { maxLev: 4, nextQual: 5 }
},
init: function (div) {
var t = Tabs.champUpgrader;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '<div class=STrChOSaveSettings id=STrChOChampUpgraderSaveSettings title="Save Upgrader Settings"></div><div class=STrChOLoadSettings id=STrChOChampUpgraderLoadSettings title="Load Upgrader Settings"></div></div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
if (STrChOChampUpgradeData.active) {
m += '<td width=33%><input id=STrChOChampUpgradePower type=button class=STrChOButton value="Upgrader = ON"></td>';
} else {
m += '<td width=33%><input id=STrChOChampUpgradePower type=button class=STrChOButton value="Upgrader = OFF"></td>';
}
m += '<td width=33%><div class=divNoWrap><input class=STrChOCheckbox id=STrChOChampOneItem type=checkbox ' + (STrChOChampQueueData.oneItem ? ' CHECKED' : '') + '/>Upgrade 1 At A Time</div></td>';
m += '<td width=33%><div class=divNoWrap align=center id=STrChOChampAetherDisplay></div></td>';
m += '</tr>';
m += '<tr><td colspan=3><hr class=STrChOHRCenter></td></tr>';
m += '<tr><td colspan=3><div class=indent5 id=STrChOChampUpgradeStatus><br></div></td></tr>';
m += '<tr><td colspan=3><div class=indent5 id=STrChOChampLastResult><br></div></td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> SPEED UPS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOChampHourglassLevelSpecific ' + (STrChOChampUpgradeData.hourglassLevelSpecific ? "CHECKED" : "") + '>Only use hourglass for levels ';
m += '<select class=STrChOSelect id=STrChOChampHourglassLevel>';
for (i = 1; i < STrChOMaxChampLevel; i++) m += '<option value=' + i + ' ' + (STrChOChampUpgradeData.hourglassLevel == i ? 'SELECTED' : '') + '>' + i + '</option>';
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOChampHourglassQualitySpecific ' + (STrChOChampUpgradeData.hourglassQualitySpecific ? "CHECKED" : "") + '>Only use hourglass for qualities ';
m += '<select class=STrChOSelect id=STrChOChampHourglassQuality>';
for (i = 1; i <= STrChOMaxChampQuality-1; i++) {
m += '<option value=' + i + ' ' + (STrChOChampUpgradeData.hourglassQuality == i ? 'SELECTED' : '') + '>' + champCardQualities[i].capitalizeFirstLetter() + '</option>';
}
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[1] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampUseSH ' + (STrChOChampUpgradeData.useSH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[1] + ' (<div class=divNoWrap id=STrChOChampUseSHLabel><font' + (uW.ksoItems[1].count < 100 ? ' color=red>' : '>') + uW.ksoItems[1].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[2] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampUseKH ' + (STrChOChampUpgradeData.useKH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[2] + ' (<div class=divNoWrap id=STrChOChampUseKHLabel><font' + (uW.ksoItems[2].count < 100 ? ' color=red>' : '>') + uW.ksoItems[2].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[3] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampUseGH ' + (STrChOChampUpgradeData.useGH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[3] + ' (<div class=divNoWrap id=STrChOChampUseGHLabel><font' + (uW.ksoItems[3].count < 100 ? ' color=red>' : '>') + uW.ksoItems[3].count + '</font></div>)</div></td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[4] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampUseMH ' + (STrChOChampUpgradeData.useMH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[4] + ' (<div class=divNoWrap id=STrChOChampUseMHLabel><font' + (uW.ksoItems[4].count < 100 ? ' color=red>' : '>') + uW.ksoItems[4].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[5] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampUseAH ' + (STrChOChampUpgradeData.useAH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[5] + ' (<div class=divNoWrap id=STrChOChampUseAHLabel><font' + (uW.ksoItems[5].count < 100 ? ' color=red>' : '>') + uW.ksoItems[5].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[6] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampUseWH ' + (STrChOChampUpgradeData.useWH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[6] + ' (<div class=divNoWrap id=STrChOChampUseWHLabel><font' + (uW.ksoItems[6].count < 100 ? ' color=red>' : '>') + uW.ksoItems[6].count + '</font></div>)</div></td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[7] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampUseDH ' + (STrChOChampUpgradeData.useDH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[7] + ' (<div class=divNoWrap id=STrChOChampUseDHLabel><font' + (uW.ksoItems[7].count < 100 ? ' color=red>' : '>') + uW.ksoItems[7].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[8] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampUseEH ' + (STrChOChampUpgradeData.useEH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[8] + ' (<div class=divNoWrap id=STrChOChampUseEHLabel><font' + (uW.ksoItems[8].count < 100 ? ' color=red>' : '>') + uW.ksoItems[8].count + '</font></div>)</div></td>';
m += '<td/>';
m += '</tr>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOChampOverrideSpeedUps ' + (STrChOChampUpgradeData.overrideSpeedUp ? "CHECKED" : "") + '>Override hourglasses by using ';
m += '<select class=STrChOSelect id=STrChOChampSpeedUp>';
m += '<option value=0>None</option>';
for (gls in STrChOHourGlassName) {
m += '<option value=' + gls + ' ' + (STrChOChampUpgradeData.useSpeedUp == gls ? 'SELECTED' : '') + '>' + STrChOHourGlassName[gls] + '</option>';
}
m += '</select> every time</td>';
m += '</tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> BOOST ITEMS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
m += '<td><input class=STrChOCheckbox type=checkbox ' + (STrChOChampUpgradeData.useLOM ? "CHECKED" : "") + ' id=STrChOChampUseLOM><div class=divNoWrap>Lesser Orb of Metallurgy (<div class=divNoWrap id=STrChOChampUseLOMLabel>' + uW.ksoItems[21001].count + '</div>)</div></td>';
m += '<td><input class=STrChOCheckbox type=checkbox ' + (STrChOChampUpgradeData.useGOM ? "CHECKED" : "") + ' id=STrChOChampUseGOM><div class=divNoWrap>Greater Orb of Metallurgy (<div class=divNoWrap id=STrChOChampUseGOMLabel>' + uW.ksoItems[21002].count + '</div>)</div></td>';
m += '<td>Quality <select class=STrChOSelect id=STrChOChampUseQuality>';
for (i = 0; i <= STrChOMaxChampQuality-1; i++) {
m += '<option value="' + i + '" ' + (STrChOChampUpgradeData.useQuality == i ? 'SELECTED' : '') + '>' + champCardQualities[i].capitalizeFirstLetter() + '</option>';
}
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += "<td><input class=STrChOCheckbox type=checkbox " + (STrChOChampUpgradeData.useJT ? "CHECKED" : "") + " id=STrChOChampUseJT><div style='white-space:nowrap;display:inline-block;'>Journeyman Smith's Token (<div style='white-space:nowrap;display:inline-block;' id=STrChOChampUseJTLabel>" + uW.ksoItems[21051].count + "</div>)</div></td>";
m += "<td><input class=STrChOCheckbox type=checkbox " + (STrChOChampUpgradeData.useST ? "CHECKED" : "") + " id=STrChOChampUseST><div style='white-space:nowrap;display:inline-block;'>Smith's Token (<div style='white-space:nowrap;display:inline-block;' id=STrChOChampUseSTLabel>" + uW.ksoItems[21052].count + "</div>)</div></td>";
m += '<td>Level <select id="STrChOChampUseLevel">';
for (i = 1; i <= STrChOMaxChampLevel-1; i++) {
m += '<option value="' + i + '" ' + (STrChOChampUpgradeData.useLevel == i ? 'SELECTED' : '') + '> +' + i + '</option>';
}
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += "<td><input class=STrChOCheckbox type=checkbox " + (STrChOChampUpgradeData.useET ? "CHECKED" : "") + " id=STrChOChampUseET><div style='white-space:nowrap;display:inline-block;'>Expert Smith's Token (<div style='white-space:nowrap;display:inline-block;' id=STrChOChampUseETLabel>" + uW.ksoItems[21058].count + "</div>)</div></td>";
m += "<td/>";
m += "<td/>";
m += "</tr>";
m += '<tr><td colspan=3>';
m += '<input class=STrChOCheckbox id=STrChOChampUseAutoTokens type=checkbox ' + (STrChOChampUpgradeData.useAutoTokens ? 'CHECKED ' : '') + '/> Use Auto Forged Upgrade When Min Level ';
m += '<select id=STrChOChampUseAutoTokensMin class=STrChOSelect>';
for (var lvl = 0; lvl < STrChOMaxChampLevel; lvl++) m += '<option value="' + lvl + '" ' + (STrChOChampUpgradeData.useAutoTokensMin == lvl ? 'SELECTED ' : '') + '>+' + lvl + '</option>';
m += '</select> & Max Level ';
m += '<select id=STrChOChampUseAutoTokensMax class=STrChOSelect>';
for (var lvl = 0; lvl < STrChOMaxChampLevel; lvl++) m += '<option value="' + lvl + '" ' + (STrChOChampUpgradeData.useAutoTokensMax == lvl ? 'SELECTED ' : '') + '>+' + lvl + '</option>';
m += '</select>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> UPGRADE ITEMS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
m += '<td colspan=4>Enhance All Quality <select class=STrChOSelect id=STrChOChampEnhanceAllQuality>';
for (i = 0; i <= STrChOMaxChampQuality-1; i++) {
m += '<option value="' + i + '">' + champCardQualities[i].capitalizeFirstLetter() + '</option>';
}
m += '</select> To Quality <select class=STrChOSelect id=STrChOChampEnhanceAllQualityTo>';
for (i = 1; i <= STrChOMaxChampQuality; i++) {
m += '<option value="' + i + '">' + champCardQualities[i].capitalizeFirstLetter() + '</option>';
}
m += '</select> <input class=STrChOButton type=button value="Add" id=STrChOChampEnhanceAddAllQuality></td>';
m += '</tr>';
m += '<tr><td colspan=4>Upgrade All Cards Less To Level <select class=STrChOSelect id=STrChOChampUpgradeAddAllLevelMaxTo>';
for (i = 1; i <= STrChOMaxChampLevel; i++) {
m += '<option value="' + i + '"> +' + i + '</option>';
}
m += '</select> <input class=STrChOButton type=button value="Add" id=STrChOChampUpgradeAddAllLevelMax></td></tr>';
m += '<tr>';
m += '<td colspan=4>Upgrade All Level <select class=STrChOSelect id=STrChOChampUpgradeAllLevel>';
for (i = 0; i <= STrChOMaxChampLevel-1; i++) {
m += '<option value="' + i + '"> +' + i + '</option>';
}
m += '</select> To Level <select class=STrChOSelect id=STrChOChampUpgradeAllLevelTo>';
for (i = 1; i <= STrChOMaxChampLevel; i++) {
m += '<option value="' + i + '"> +' + i + '</option>';
}
m += '</select> <input class=STrChOButton type=button value="Add" id=STrChOChampUpgradeAddAllLevel></td>';
m += '</tr>';
m += '<tr>';
m += '<td class=divNoWrap>Item: <select class=STrChOSelect style="white-space:nowrap;display:inline-block;max-width: 200px;" id=STrChOChampUpgradeList>';
m += '<option value="0">--Items--</option>';
for (ChampID in uW.kocChampionItems) {
var champItem = uW.kocChampionItems[ChampID];
m += '<option value="' + ChampID + '">' + champItem.name + '</option>';
}
m += '</select> ';
m += 'Action: <select class=STrChOSelect style="white-space:nowrap;display:inline-block;" id=STrChOChampAction>';
m += '<option value="upgrade">Upgrade</option>';
m += '<option value="enhance">Enhance</option>';
m += '<option value="both">Both</option>';
m += '</select> ';
m += '<div class=divNoWrap id=STrChOChampMaxDiv></div> ';
m += '<input class=STrChOButton id=STrChOChampQueueAdd type=button value="Add"/>';
m += '</td>';
m += '</tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader>UPGRADE LIST</div>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td colspan=4>';
m += '<div id=STrChOChampQScroll style="position: static; width: 100%; height: 340px; overflow-x: auto; overflow-y: auto;">';
m += '<div id=STrChOChampQDiv></div>';
m += '</div>';
m += '</td></tr>';
m += '<tr><td colspan=4><input class=STrChOButton style="float: left;" id=STrChOChampClearQ type=button value="Clear Queue"></tr>';
m += '</table>';
m += '</div>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOChampUpgraderSaveSettings').addEventListener('click', function () {
SaveSettingsToFile(STrChOChampUpgradeData);
}, false);
document.getElementById('STrChOChampUpgraderLoadSettings').addEventListener('click', function () {
var loader = document.getElementById('STrChOSettingsFile');
loader.addEventListener('change', function () {
LoadSettingsFromFile(STrChOChampUpgradeData, Tabs.champUpgrader);
}, false);
loader.click();
}, false);
t.refreshAetherDisplay();
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
document.getElementById('STrChOChampUpgradePower').addEventListener('click', function () {
t.togglePower(this);
t.show();
}, false);
document.getElementById('STrChOChampUseAutoTokens').addEventListener('change', function () {
STrChOChampUpgradeData.useAutoTokens = document.getElementById('STrChOChampUseAutoTokens').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useAutoTokens) t.doAction();
}, false);
document.getElementById('STrChOChampUseAutoTokensMin').addEventListener('change', function () {
STrChOChampUpgradeData.useAutoTokensMin = document.getElementById('STrChOChampUseAutoTokensMin').value;
SAVESTrChOChampUpgradeData();
}, false);
document.getElementById('STrChOChampUseAutoTokensMax').addEventListener('change', function () {
STrChOChampUpgradeData.useAutoTokensMax = document.getElementById('STrChOChampUseAutoTokensMax').value;
SAVESTrChOChampUpgradeData();
}, false);
document.getElementById('STrChOChampHourglassLevelSpecific').addEventListener('change', function () {
STrChOChampUpgradeData.hourglassLevelSpecific = document.getElementById('STrChOChampHourglassLevelSpecific').checked;
SAVESTrChOChampUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOChampHourglassQualitySpecific').addEventListener('change', function () {
STrChOChampUpgradeData.hourglassQualitySpecific = document.getElementById('STrChOChampHourglassQualitySpecific').checked;
SAVESTrChOChampUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOChampOverrideSpeedUps').addEventListener('change', function () {
STrChOChampUpgradeData.overrideSpeedUp = document.getElementById('STrChOChampOverrideSpeedUps').checked;
SAVESTrChOChampUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOChampUseWH').addEventListener('change', function () {
STrChOChampUpgradeData.useWH = document.getElementById('STrChOChampUseWH').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useWH) t.doAction();
}, false);
document.getElementById('STrChOChampUseDH').addEventListener('change', function () {
STrChOChampUpgradeData.useDH = document.getElementById('STrChOChampUseDH').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useDH) t.doAction();
}, false);
document.getElementById('STrChOChampUseEH').addEventListener('change', function () {
STrChOChampUpgradeData.useEH = document.getElementById('STrChOChampUseEH').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useEH) t.doAction();
}, false);
document.getElementById('STrChOChampUseSH').addEventListener('change', function () {
STrChOChampUpgradeData.useSH = document.getElementById('STrChOChampUseSH').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useSH) t.doAction();
}, false);
document.getElementById('STrChOChampUseKH').addEventListener('change', function () {
STrChOChampUpgradeData.useKH = document.getElementById('STrChOChampUseKH').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useKH) t.doAction();
}, false);
document.getElementById('STrChOChampUseGH').addEventListener('change', function () {
STrChOChampUpgradeData.useGH = document.getElementById('STrChOChampUseGH').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useGH) t.doAction();
}, false);
document.getElementById('STrChOChampUseMH').addEventListener('change', function () {
STrChOChampUpgradeData.useMH = document.getElementById('STrChOChampUseMH').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useMH) t.doAction();
}, false);
document.getElementById('STrChOChampUseAH').addEventListener('change', function () {
STrChOChampUpgradeData.useAH = document.getElementById('STrChOChampUseAH').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useAH) t.doAction();
}, false);
document.getElementById('STrChOChampUseQuality').addEventListener('change', function () {
STrChOChampUpgradeData.useQuality = document.getElementById('STrChOChampUseQuality').value;
SAVESTrChOChampUpgradeData();
}, false);
document.getElementById('STrChOChampUseLevel').addEventListener('change', function () {
STrChOChampUpgradeData.useLevel = document.getElementById('STrChOChampUseLevel').value;
SAVESTrChOChampUpgradeData();
}, false);
document.getElementById('STrChOChampSpeedUp').addEventListener('change', function () {
STrChOChampUpgradeData.useSpeedUp = document.getElementById('STrChOChampSpeedUp').value;
SAVESTrChOChampUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOChampHourglassLevel').addEventListener('change', function () {
STrChOChampUpgradeData.hourglassLevel = document.getElementById('STrChOChampHourglassLevel').value;
SAVESTrChOChampUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOChampHourglassQuality').addEventListener('change', function () {
STrChOChampUpgradeData.hourglassQuality = document.getElementById('STrChOChampHourglassQuality').value;
SAVESTrChOChampUpgradeData();
t.doAction();
}, false);
document.getElementById('STrChOChampUseLOM').addEventListener('change', function () {
STrChOChampUpgradeData.useLOM = document.getElementById('STrChOChampUseLOM').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useLOM) t.doAction();
}, false);
document.getElementById('STrChOChampUseGOM').addEventListener('change', function () {
STrChOChampUpgradeData.useGOM = document.getElementById('STrChOChampUseGOM').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useGOM) t.doAction();
}, false);
document.getElementById('STrChOChampUseET').addEventListener('change', function () {
STrChOChampUpgradeData.useET = document.getElementById('STrChOChampUseET').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useET) t.doAction();
}, false);
document.getElementById('STrChOChampUseJT').addEventListener('change', function () {
STrChOChampUpgradeData.useJT = document.getElementById('STrChOChampUseJT').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useJT) t.doAction();
}, false);
document.getElementById('STrChOChampUseST').addEventListener('change', function () {
STrChOChampUpgradeData.useST = document.getElementById('STrChOChampUseST').checked;
SAVESTrChOChampUpgradeData();
if (STrChOChampUpgradeData.useST) t.doAction();
}, false);
document.getElementById('STrChOChampQueueAdd').addEventListener('click', function () {
t.addChampQueue();
}, false);
document.getElementById('STrChOChampOneItem').addEventListener('change', function () {
STrChOChampQueueData.oneItem = document.getElementById('STrChOChampOneItem').checked;
SAVESTrChOChampQueueData();
});
document.getElementById('STrChOChampClearQ').addEventListener('click', function () {
STrChOChampQueueData.list = [];
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
}, false);
document.getElementById('STrChOChampEnhanceAddAllQuality').addEventListener('click', function () {
var low_level = parseInt(document.getElementById('STrChOChampEnhanceAllQuality').value);
var high_level = parseInt(document.getElementById('STrChOChampEnhanceAllQualityTo').value);
if (low_level >= high_level) return;
for (ChampId in uW.kocChampionItems) {
var ChampItem = uW.kocChampionItems[ChampId];
if (ChampItem.rarity == low_level) {
var qItem = new QueueItem();
qItem.item = ChampId;
qItem.action = "enhance"
qItem.level = high_level
STrChOChampQueueData.list.push(qItem);
}
}
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
}, false);
document.getElementById('STrChOChampUpgradeAddAllLevelMax').addEventListener('click', function () {
var high_level = parseInt(document.getElementById('STrChOChampUpgradeAddAllLevelMaxTo').value);
for (ChampId in uW.kocChampionItems) {
var ChampItem = uW.kocChampionItems[ChampId];
if (ChampItem.level < high_level) {
var qItem = new QueueItem();
qItem.item = ChampId;
qItem.action = "upgrade"
qItem.level = high_level
STrChOChampQueueData.list.push(qItem);
}
}
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
}, false);
document.getElementById('STrChOChampUpgradeAddAllLevel').addEventListener('click', function () {
var low_level = parseInt(document.getElementById('STrChOChampUpgradeAllLevel').value);
var high_level = parseInt(document.getElementById('STrChOChampUpgradeAllLevelTo').value);
if (low_level >= high_level) return;
for (ChampId in uW.kocChampionItems) {
var ChampItem = uW.kocChampionItems[ChampId];
if (ChampItem.level == low_level) {
var qItem = new QueueItem();
qItem.item = ChampId;
qItem.action = "upgrade"
qItem.level = high_level
STrChOChampQueueData.list.push(qItem);
}
}
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
}, false);
if (STrChOChampUpgradeData.active)
t.setStatus("Loading ....");
else
t.setStatus("Powered Off");
t.startTimer();
t.buildChampLevelWidget();
t.buildChampQueueDisplay();
document.getElementById('STrChOChampAction').addEventListener('change', function () {
t.buildChampLevelWidget();
}, false);
Tabs.champPresets.paintTags();
},
startTimer: function () {
var t = Tabs.champUpgrader;
var delay = 2 + Math.random() * 8;
if (Seed.queue_champion == null) {
for (champId in uW.kocChampionItems) {
var champItem = uW.kocChampionItems[champId];
if (champItem.status == CM.CHAMPION.STATUS_REPAIRING_ENHANCE || champItem.status == CM.CHAMPION.STATUS_REPAIRING_UPGRADE) {
Seed.queue_champion = {};
Seed.queue_champion.start = parseInt(champItem.start);
Seed.queue_champion.end = parseInt(champItem.eta);
Seed.queue_champion.itemId = champItem.equipmentId;
break;
}
}
}
if (Seed.queue_champion != null && Seed.queue_champion.end != null) {
var repairTimeLeft = Seed.queue_champion.end - unixTime();
t.repairEnd = Seed.queue_champion.end;
t.repairId = Seed.queue_champion.itemId;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Waiting until " + n.toLocaleTimeString() + " for repair to complete. Item: " + uW.kocChampionItems[t.repairId].name);
if (STrChOChampUpgradeData.useAH || STrChOChampUpgradeData.useGH || STrChOChampUpgradeData.useKH || STrChOChampUpgradeData.useMH || STrChOChampUpgradeData.useSH || STrChOChampUpgradeData.useWH || STrChOChampUpgradeData.useDH || STrChOChampUpgradeData.useEH || (STrChOChampUpgradeData.overrideSpeedUp && STrChOChampUpgradeData.useSpeedUp > 0)) {
var champItem = uW.kocChampionItems[t.repairId];
var STrChOChampQuality = champItem.rarity;
var STrChOChampLevel = champItem.level;
var useThoseSpeedups = true;
if (STrChOChampUpgradeData.hourglassQualitySpecific && STrChOChampQuality < STrChOChampUpgradeData.hourglassQuality) useThoseSpeedups = false;
if (STrChOChampUpgradeData.hourglassLevelSpecific && STrChOChampLevel < STrChOChampUpgradeData.hourglassLevel) useThoseSpeedups = false;
if (STrChOChampUpgradeData.overrideSpeedUp) useThoseSpeedups = true;
if (useThoseSpeedups) {
t.doingSpeedup = true;
setTimeout(function () { t.doSpeedup(); }, 2000);
}
}
setTimeout(t.clearRepair, (repairTimeLeft + 1) * 5000);
if (repairTimeLeft > 0) delay += repairTimeLeft;
}
if (t.timerH == null)
t.timerH = setTimeout(t.doAction, delay * 1000);
},
hide: function () {},
refreshAetherDisplay : function () {
document.getElementById('STrChOChampAetherDisplay').innerHTML = displayCityAstone();
},
show: function () {
var t = Tabs.champUpgrader;
t.startTimer();
t.refreshAetherDisplay();
t.buildChampQueueDisplay();
},
doAction: function () {
var t = Tabs.champUpgrader;
if (STrChOChampRepairData.active) {
t.setStatus('Waiting for repair tab to finish...');
return;
}
var retryTime = STrChOGeneralOptions.retryInterval;
try {
// check if repair is done
var ti = t.clearRepair();
if (ti <= 0) {
// repair is done
if (STrChOChampQueueData.oneItem || (STrChOChampQueueData.doingRepairs == true)) {
for (queueItems in STrChOChampQueueData.list) {
var qItem = STrChOChampQueueData.list[queueItems];
if (!qItem) continue;
var champItem = uW.kocChampionItems[qItem.item];
if ((champItem == null) || (STrChOChampQueueData.list[queueItems].status == "complete")) continue;
if (champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE) {
t.doRepair(champItem.equipmentId);
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, retryTime * 1000);
return;
} else if (STrChOChampQueueData.oneItem) {
break;
}
}
//}
}
// all repairs complete
STrChOChampQueueData.doingRepairs = false;
// set the index
t.selectNext();
SAVESTrChOChampQueueData();
// if we reach the end of the queue, start repair cycle
if (STrChOChampQueueData.index < 0) {
t.setStatus("Reached end of queue.")
t.setResult("");
if (!STrChOChampUpgradeData.active) t.setStatus("Powered Off");
STrChOChampQueueData.doingRepairs = true;
SAVESTrChOChampQueueData();
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, retryTime * 1000);
return;
}
// upgrade/enhance next item
var qItem = STrChOChampQueueData.list[STrChOChampQueueData.index];
if (qItem) {
if (qItem.action == "enhance")
t.doEnhance(qItem.item);
else
t.doUpgrade(+qItem.item, false);
}
} else {
// come back after repair is complete
retryTime = ti + 5;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Waiting until " + n.toLocaleTimeString() + " for repair to complete. Item: " + uW.kocChampionItems[t.repairId].name);
if (STrChOChampUpgradeData.useSH || STrChOChampUpgradeData.useKH || STrChOChampUpgradeData.useGH || STrChOChampUpgradeData.useMH || STrChOChampUpgradeData.useAH || STrChOChampUpgradeData.useWH || STrChOChampUpgradeData.useDH || STrChOChampUpgradeData.useEH || (STrChOChampUpgradeData.overrideSpeedUp && STrChOChampUpgradeData.useSpeedUp > 0)) {
var champItem = uW.kocChampionItems[t.repairId];
var STrChOChampQuality = champItem.rarity;
var STrChOChampLevel = champItem.level;
var useThoseSpeedups = true;
if (STrChOChampUpgradeData.hourglassQualitySpecific && STrChOChampQuality < STrChOChampUpgradeData.hourglassQuality) useThoseSpeedups = false;
if (STrChOChampUpgradeData.hourglassLevelSpecific && STrChOChampLevel < STrChOChampUpgradeData.hourglassLevel) useThoseSpeedups = false;
if (STrChOChampUpgradeData.overrideSpeedUp) useThoseSpeedups = true;
if (useThoseSpeedups) {
t.doingSpeedup = true;
setTimeout(function () { t.doSpeedup(); }, 2000);
}
retryTime = 1;
}
}
//CM.ChampView.renderInventory(uW.kocChampionItems);
} catch (e) {
}
// recycle
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, retryTime * 1000);
},
doSpeedup: function () {
var t = Tabs.champUpgrader;
var endTime = t.repairEnd;
var startTime = unixTime();
var secondsForRepair = endTime - startTime;
var divId = "";
t.speedup = 0;
if (secondsForRepair > 0 && STrChOChampUpgradeData.overrideSpeedUp && STrChOChampUpgradeData.useSpeedUp > 0) {
t.speedup = STrChOChampUpgradeData.useSpeedUp;
} else {
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.day25 && STrChOChampUpgradeData.useEH && uW.ksoItems[8].count > 0) { t.speedup = 8; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour24 && STrChOChampUpgradeData.useDH && uW.ksoItems[7].count > 0) { t.speedup = 7; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour15 && STrChOChampUpgradeData.useWH && uW.ksoItems[6].count > 0) { t.speedup = 6; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour8 && STrChOChampUpgradeData.useAH && uW.ksoItems[5].count > 0) { t.speedup = 5; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour25 && STrChOChampUpgradeData.useMH && uW.ksoItems[4].count > 0) { t.speedup = 4; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour1 && STrChOChampUpgradeData.useGH && uW.ksoItems[3].count > 0) { t.speedup = 3; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.minute15 && STrChOChampUpgradeData.useKH && uW.ksoItems[2].count > 0) { t.speedup = 2; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.minute1 && STrChOChampUpgradeData.useSH && uW.ksoItems[1].count > 0) { t.speedup = 1; }
}
switch (t.speedup) {
case "1":
case 1:
secondsForRepair -= HOURGLASSES_TIME.minute1;
divId = 'STrChOChampUseSHLabel';
break;
case "2":
case 2:
secondsForRepair -= HOURGLASSES_TIME.minute15;
divId = 'STrChOChampUseKHLabel';
break;
case "3":
case 3:
secondsForRepair -= HOURGLASSES_TIME.hour1;
divId = 'STrChOChampUseGHLabel';
break;
case "4":
case 4:
secondsForRepair -= HOURGLASSES_TIME.hour25;
divId = 'STrChOChampUseMHLabel';
break;
case "5":
case 5:
secondsForRepair -= HOURGLASSES_TIME.hour8;
divId = 'STrChOChampUseAHLabel';
break;
case "6":
case 6:
secondsForRepair -= HOURGLASSES_TIME.hour15;
divId = 'STrChOChampUseWHLabel';
break;
case "7":
case 7:
secondsForRepair -= HOURGLASSES_TIME.hour24;
divId = 'STrChOChampUseDHLabel';
break;
case "8":
case 8:
secondsForRepair -= HOURGLASSES_TIME.day25;
divId = 'STrChOChampUseEHLabel';
break;
}
if (t.speedup != 0) {
t.setResult('Used ' + uW.ksoItems[t.speedup].name);
var divCount = uW.ksoItems[t.speedup].count - 1;
var divSpeedups = document.getElementById(divId);
divSpeedups.innerHTML = divCount;
uW.modal_speedup_apply("champion", t.speedup, t.repairId);
if (secondsForRepair <= 0) {
secondsForRepair = 0;
endTime = startTime;
t.clearTimerH = setTimeout(t.clearRepair, 1000);
t.buildChampQueueDisplay();
} else {
endTime = unixTime() + secondsForRepair;
t.repairEnd = endTime;
var n = new Date(t.repairEnd * 1000);
var item = uW.kocChampionItems[t.repairId];
t.setStatus("Repair begun ... Repair will be complete at " + n.toLocaleTimeString() + ". Item: " + item.name);
t.clearTimerH = setTimeout(t.clearRepair, secondsForRepair * 1000);
t.buildChampQueueDisplay();
}
t.repairEnd = endTime;
setTimeout(function () { t.doSpeedup(); }, 1000);
}
},
selectNext: function () {
if (STrChOChampQueueData.index >= STrChOChampQueueData.list.length) STrChOChampQueueData.index = 0;
if (STrChOChampQueueData.index < 0) STrChOChampQueueData.index = 0;
// for single item mode, always start from the top
if (STrChOChampQueueData.oneItem) STrChOChampQueueData.index = 0;
var l = STrChOChampQueueData.list.length;
for (i = STrChOChampQueueData.index; i < l; i++) {
var item = STrChOChampQueueData.list[i];
if (!item) continue;
var champItem = uW.kocChampionItems[item.item];
if ((STrChOChampQueueData.list[i].status != "complete")
&& (champItem != null)
&& !(champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE || champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE)) {
if (((item.action == "enhance") && (item.level <= champItem.rarity))
|| ((item.action == "upgrade") && (item.level <= champItem.level))) {
item.status = "complete";
} else {
STrChOChampQueueData.index = i;
return;
}
}
}
// if we get here, the queue is complete
STrChOChampQueueData.index = -1;
},
doEnhance: function (eItemId) {
var t = Tabs.champUpgrader;
try {
if (STrChOChampUpgradeData.active == false || eItemId == 0) {
t.setStatus("Powered Off");
return;
}
var champItem = uW.kocChampionItems[eItemId];
if (!champItem) return;
if (champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE || champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE) {
// repair and then try again later
t.doRepair(eItemId);
return;
}
var num_city = pickAetherUseCity();
if (num_city < 0) {
t.setStatus("Not enough aetherstones to enhance. Minimum of " + STrChOGeneralOptions.minStones + " needed. Waiting for more ...");
return;
}
var z = CM.WorldSettings.getSettingAsObject("CE_ENHANCE_AETHERSTONE_MAP");
var w = z[parseInt(champItem.rarity) + 1].Aetherstones;
if (w > parseInt(Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0])) {
t.setStatus("Not enough aetherstones to enhance.");
return;
}
var qI = STrChOChampQueueData.list[STrChOChampQueueData.index];
if (qI) {
qI.triesTotal++;
qI.triesThis++;
}
var chanceItem = 0;
var useDiv = '';
if (STrChOChampUpgradeData.active && STrChOChampQueueData.index != -1 && STrChOChampUpgradeData.useQuality <= champItem.rarity) {
if (STrChOChampUpgradeData.useLOM) {
if (Seed.items['i21001'] > 0) {
chanceItem = 21001;
useDiv = 'STrChOChampUseLOMLabel';
}
}
if (STrChOChampUpgradeData.useGOM) {
if (Seed.items['i21002'] > 0) {
chanceItem = 21002;
useDiv = 'STrChOChampUseGOMLabel';
}
}
//if (buffItemId) CM.InventoryView.removeItemFromInventory(buffItemId);
}
if (useDiv != '') document.getElementById(useDiv).innerHTML = uW.ksoItems[chanceItem].count;
var params = uW.Object.clone(ajfx);
params.action = '4';
params.cityId = Seed.cities[num_city][0];
params.eid = eItemId;
params.chanceItem = chanceItem;
params.aetherstones = w;
params.gems = 0;
t.setStatus("Sending enhance request");
new AjaxRequest(uW.g_ajaxpath + 'ajax/ceEquipmentManagerAjax.php' + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
try {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0] = Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0] - rslt.aetherstones;
if (rslt.gems > 0) {
ActionLog('Upgrader accidentally spent gems! Upgrader turned off');
t.setStatus("Error ... shutting down");
STrChOChampUpgradeData.active = false;
SAVESTrChOChampUpgradeData();
}
if (rslt.itemConsumed.itemId != "0") uW.ksoItems[rslt.itemConsumed.itemId].subtract()
Seed.player.might += rslt.mightGain;
document.getElementById('topnav_might').innerHTML = Seed.player.might;
if (champItem.rarity != parseInt(rslt.rarity)) {
STrChOChampUpgradeStats.enhanceSuccess[champItem.rarity][champItem.level]++;
SAVESTrChOChampUpgradeStats();
champItem.rarity = rslt.rarity;
champItem.name = champItem.createName();
t.show();
t.setResult("Enhance successful. " + addCommas(rslt.aetherstones) + " aetherstones used.");
t.refreshAetherDisplay();
t.setStatus("Attempting next action");
CM.sounds.play("ch_success_build");
// update the cost line
var qItem = STrChOChampQueueData.list[STrChOChampQueueData.index];
if (qItem) {
var now = new Date();
qItem.lastUpgrade = "Enhanced to " + champCardQualities[champItem.rarity] + " " + now.toDateString().substring(3, 10) + " " + now.toTimeString().substring(0, 8) + " in " + qItem.triesThis + " attempts";
if (!qItem.upgrades) qItem.upgrades = [];
qItem.upgrades.push(qItem.lastUpgrade);
var msg = 'Enhanced ' + uW.kocChampionItems[eItemId].name + ' [ ' + eItemId + '] to quality ' + rslt.rarity + " in " + qItem.triesThis + " attempts. " + qItem.triesTotal + " total attempts for this item.";
if (STrChOGeneralOptions.whisperToMe) sendChat("/" + Seed.player.name + ' ' + msg);
if (STrChOGeneralOptions.sendToInbox) sendComposedMail(Seed.player.name, 'CHAMPION: Enhance Success: ' + uW.kocChampionItems[eItemId].name, msg);
SuccessLog(msg);
if (qItem.level <= champItem.rarity) {
qItem.status = "complete";
STrChOChampUpgradeData.newUpgradeState = 2;
}
else {
var now = new Date();
qItem.status = "Partially enhanced";
qItem.triesLast = qItem.triesThis;
qItem.triesThis = 0;
if (STrChOChampUpgradeData.newUpgradeState != 2) STrChOChampUpgradeData.newUpgradeState = 1;
}
SAVESTrChOChampUpgradeData();
setUpgradeColor();
}
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
clearTimeout(Tabs.champUpgrader.timerH);
t.timerH = setTimeout(t.doAction, 10 * 1000);
}
else {
STrChOChampUpgradeStats.enhanceFailure[champItem.rarity][champItem.level]++;
SAVESTrChOChampUpgradeStats();
ActionLog('Enhance failed Champion item ' + uW.kocChampionItems[eItemId].name);
if (rslt.broken == "yes") {
champItem.status = CM.CHAMPION.STATUS_BROKEN_ENHANCE;
}
champItem.name = champItem.createName();
t.setResult("Enhance failed. " + addCommas(rslt.aetherstones) + " aetherstones used");
t.refreshAetherDisplay();
var qItem = STrChOChampQueueData.list[STrChOChampQueueData.index];
if (qItem) if (qItem.status == "not started") qItem.status = "started";
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, 10 * 1000);
}
}
else {
if (rslt.feedback)
t.setStatus(rslt.feedback);
else
t.setStatus("Unable to enhance at this time ... waiting for next cycle");
}
} catch (e) {
}
return;
},
onFailure: function (rst) {
t.setStatus("Unable to send enhance request. Waiting for next cycle");
return;
}
});
} catch (e) {
}
return;
},
doUpgrade: function (uItemId, bypass) {
var t = Tabs.champUpgrader;
var champItem = uW.kocChampionItems[uItemId];
if (uItemId == 0 || champItem == null) {
t.setStatus("Item not found.");
return;
}
if ((STrChOChampUpgradeData.active == false) && (bypass != true)) {
t.setStatus("Powered Off");
return;
}
if (bypass == true && t.deleting != true) {
// delete cycle has been canceled. Don't upgrade this item
return;
}
if (champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE) {
// repair and then try again later
t.doRepair(uItemId);
return;
}
if (champItem.status == CM.CHAMPION.STATUS_REPAIRING_ENHANCE || champItem.status == CM.CHAMPION.STATUS_REPAIRING_UPGRADE) {
t.setStatus("Item is still being repaired");
return;
}
var num_city = pickAetherUseCity();
if (num_city < 0) {
t.setStatus("Not enough aetherstones to upgrade. Minimum of " + STrChOGeneralOptions.minStones + " needed. Waiting for more ...");
return;
}
var z = CM.WorldSettings.getSettingAsObject("CE_UPGRADE_AETHERSTONE_MAP");
var w = z[parseInt(champItem.level) + 1].Aetherstones;
if (w > Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0]) {
t.setStatus("Not enough aetherstones to upgrade.");
return;
}
if (bypass != true) {
var qI = STrChOChampQueueData.list[STrChOChampQueueData.index];
if (qI) {
qI.triesTotal++;
qI.triesThis++;
}
t.setStatus("Sending upgrade request ...");
}
var chanceItem = 0;
var useDiv = '';
if (STrChOChampUpgradeData.active && STrChOChampQueueData.index != -1 && STrChOChampUpgradeData.useLevel <= champItem.level) {
if (STrChOChampUpgradeData.useET) {
if (Seed.items['i21058'] > 0) {
chanceItem = 21058;
useDiv = 'STrChOChampUseETLabel';
}
}
if (STrChOChampUpgradeData.useST) {
if (Seed.items['i21052'] > 0) {
chanceItem = 21052;
useDiv = 'STrChOChampUseSTLabel';
}
}
if (STrChOChampUpgradeData.useJT) {
if (Seed.items['i21051'] > 0) {
chanceItem = 21051;
useDiv = 'STrChOChampUseJTLabel';
}
}
}
if (STrChOChampUpgradeData.useAutoTokens) {
if (STrChOChampUpgradeData.useAutoTokensMin <= STrChOChampUpgradeData.useAutoTokensMax) {
var champLevel = champItem.level;
if (champLevel >= STrChOChampUpgradeData.useAutoTokensMin &&
champLevel < STrChOChampUpgradeData.useAutoTokensMax) {
var nextForgedID = getNextAvailableForged(champItem);
if (nextForgedID != 0) {
chanceItem = nextForgedID;
ActionLog('Using ' + uW.ksoItems[chanceItem].name + ' on item: ' + champItem.name);
}
}
}
}
if (useDiv != '') document.getElementById(useDiv).innerHTML = uW.ksoItems[chanceItem].count;
var params = uW.Object.clone(ajfx);
params.action = '5';
params.cityId = Seed.cities[num_city][0];
params.eid = uItemId;
params.chanceItem = chanceItem;
params.aetherstones = w;
params.gems = 0;
new AjaxRequest(uW.g_ajaxpath + "ajax/ceEquipmentManagerAjax.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
try {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0] = Seed.resources["city" + Seed.cities[num_city][0]]["rec5"][0] - parseInt(rslt.aetherstones);
if (rslt.gems > 0) {
t.setStatus("Error .... Shutting down.");
ActionLog('Upgrader accidentally spent gems! Upgrader turned off');
STrChOChampUpgradeData.active = false;
SAVESTrChOChampUpgradeData();
}
if (rslt.itemConsumed.itemId != "0") uW.ksoItems[rslt.itemConsumed.itemId].subtract()
Seed.player.might += rslt.mightGain;
document.getElementById('topnav_might').innerHTML = Seed.player.might;
if (parseInt(rslt.level) != champItem.level) {
STrChOChampUpgradeStats.upgradeSuccess[champItem.rarity][champItem.level]++;
SAVESTrChOChampUpgradeStats();
champItem.level = rslt.level;
champItem.name = champItem.createName();
if (bypass != true) {
t.show();
t.setResult("Upgrade successful. " + addCommas(rslt.aetherstones) + " aetherstones used.");
t.refreshAetherDisplay();
t.setStatus("Attempting next upgrade");
CM.sounds.play("ch_success_build");
var qItem = STrChOChampQueueData.list[STrChOChampQueueData.index];
if (qItem) {
var now = new Date();
qItem.lastUpgrade = "Upgraded to +" + champItem.level + " " + now.toDateString().substring(3, 10) + " " + now.toTimeString().substring(0, 8) + " in " + qItem.triesThis + " attempts";
if (!qItem.upgrades) qItem.upgrades = [];
qItem.upgrades.push(qItem.lastUpgrade);
var msg = 'Upgraded ' + uW.kocChampionItems[uItemId].name + ' [' + uItemId + '] to level ' + rslt.level + " in " + qItem.triesThis + " attempts. " + qItem.triesTotal + " total attempts for this item.";
if (STrChOGeneralOptions.whisperToMe) sendChat("/" + Seed.player.name + ' ' + msg);
if (STrChOGeneralOptions.sendToInbox) sendComposedMail(Seed.player.name, 'CHAMPION: Upgrade Success : ' + uW.kocChampionItems[uItemId].name, msg);
SuccessLog(msg);
if (qItem.level <= champItem.level) {
qItem.status = "complete";
STrChOChampUpgradeData.newUpgradeState = 2;
}
else {
var now = new Date();
qItem.status = "Partially upgraded";
qItem.triesLast = qItem.triesThis;
qItem.triesThis = 0;
if (STrChOChampUpgradeData.newUpgradeState != 2) STrChOChampUpgradeData.newUpgradeState = 1;
}
SAVESTrChOChampUpgradeData();
setUpgradeColor();
}
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, 10 * 1000);
}
}
else {
STrChOChampUpgradeStats.upgradeFailure[champItem.rarity][champItem.level]++;
SAVESTrChOChampUpgradeStats();
ActionLog('Upgrade failed Champion item ' + uW.kocChampionItems[uItemId].name);
if (rslt.broken == "yes") champItem.status = CM.CHAMPION.STATUS_BROKEN_UPGRADE;
champItem.name = champItem.createName();
if (bypass != true) {
if (rslt.feedback) {
t.setResult(rslt.feedback);
} else {
t.setResult("Upgrade failed. " + addCommas(rslt.aetherstones) + " aetherstones used");
t.refreshAetherDisplay();
}
var qItem = STrChOChampQueueData.list[STrChOChampQueueData.index];
if (qItem.status == "not started") qItem.status = "started";
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, 10 * 1000);
}
}
return;
}
else {
if (bypass != true) {
t.setResult(rslt.feedback);
}
}
} catch (e) {
}
return;
},
onFailure: function (rrr) {
t.setStatus("Unable to transmitt upgrade request. Waiting for next cycle.");
return;
}
});
return;
},
doRepair: function (rItemId) {
var t = Tabs.champUpgrader;
var params = uW.Object.clone(ajfx);
if (!STrChOChampUpgradeData.active || rItemId == 0 || uW.kocChampionItems[rItemId] == null) {
t.setStatus("Powered Off");
return; //repair is turned off
}
var theItem = uW.kocChampionItems[rItemId];
params.action = "6";
params.eid = rItemId;
params.cityId = uW.currentcityid;
params.gems = 0;
new AjaxRequest(uW.g_ajaxpath + "ajax/ceEquipmentManagerAjax.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
var item = uW.kocChampionItems[rslt.equipmentId];
ActionLog('Starting repair for Champion item ' + item.name);
if (!Seed.queue_champion) Seed.queue_champion = {};
Seed.queue_champion.itemId = rslt.equipmentId;
Seed.queue_champion.start = parseInt(rslt.start);
Seed.queue_champion.end = parseInt(rslt.eta);
t.repairId = parseInt(rslt.equipmentId);
t.repairEnd = rslt.eta;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Repair begun ... Repair will be complete at " + n.toLocaleTimeString() + ". Item: " + item.name);
var x = rslt.eta - unixTime();
t.clearTimerH = setTimeout(t.clearRepair, (x + 1) * 1000);
if (item.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE)
item.status = CM.CHAMPION.STATUS_REPAIRING_ENHANCE;
else
item.status = CM.CHAMPION.STATUS_REPAIRING_UPGRADE;
t.buildChampQueueDisplay();
}
else {
// regrab the end times in case this is caused by a manual repair
if (Seed.queue_champion && Seed.queue_champion.end && Seed.queue_champion.itemId) {
t.repairEnd = Seed.queue_champion.end;
t.repairId = Seed.queue_champion.itemId;
}
if (feedback.index("There is one equipment in repairing queue") > 0) {
// item is still be repaired.
return;
}
if (rslt.feedback) {
t.setStatus(rslt.feedback);
uW.kocChampionItems[rItemId].status = CM.CHAMPION.STATUS_INACTIVE;
t.clearRepair();
}
}
return;
},
onFailure: function (ttt) {
// this usually means a repair is in progress (such as a manual repair). Grab the seed data (if possible)
if (Seed.queue_champion && Seed.queue_champion.end) {
t.repairEnd = Seed.queue_champion.end;
t.repairId = Seed.queue_champion.itemId;
}
return;
}
});
return;
},
clearRepair: function () {
//logit("clear repair");
var t = Tabs.champUpgrader;
var timeUntilDone = 0;
if (t.repairEnd == 0) {
return timeUntilDone;
}
timeUntilDone = t.repairEnd - unixTime();
if (timeUntilDone <= 0) {
if (t.repairId != 0 && uW.kocChampionItems[t.repairId] != null) {
if (uW.kocChampionItems[t.repairId].status != CM.CHAMPION.STATUS_INACTIVE
|| uW.kocChampionItems[t.repairId].status != CM.CHAMPION.STATUS_ACTIVE) {
t.setStatus("Repair time complete.");
}
uW.kocChampionItems[t.repairId].status = CM.CHAMPION.STATUS_INACTIVE;
t.repairId = 0;
t.show();
}
}
return timeUntilDone;
},
addUpgradeItem: function (champId) {
var t = Tabs.champUpgrader;
var qItem = new QueueItem();
qItem.item = champId;
qItem.action = "upgrade";
qItem.level = STrChOMaxChampLevel;
STrChOChampQueueData.list.push(qItem);
SAVESTrChOChampQueueData();
//document.getElementById('champInventoryItem' + champId).className = 'STrChOBlueBorder';
t.buildChampQueueDisplay();
},
addEnhanceItem: function (champId) {
var t = Tabs.champUpgrader;
var qItem = new QueueItem();
qItem.item = champId;
qItem.action = "enhance";
qItem.level = STrChOMaxChampQuality;
STrChOChampQueueData.list.push(qItem);
SAVESTrChOChampQueueData();
//document.getElementById('champInventoryItem' + champId).className = 'STrChOYellowBorder';
t.buildChampQueueDisplay();
},
addBothChampItem: function (champId) {
var t = Tabs.champUpgrader;
var champItem = uW.kocChampionItems[champId];
if (champItem == null || !champItem) return;
var qual = +champItem.rarity;
var lev = +champItem.level;
if (qual >= STrChOMaxChampQuality) return;
var maxLev = null;
var nextQual = null;
var qItem = null;
while (qual < STrChOMaxChampQuality) {
maxLev = t.upgradePath[qual].maxLev;
nextQual = t.upgradePath[qual].nextQual;
if (lev < maxLev) {
qItem = new QueueItem();
qItem.item = champId;
qItem.action = "upgrade";
qItem.level = maxLev;
STrChOChampQueueData.list.push(qItem);
//document.getElementById('champInventoryItem' + champId).className = 'STrChOBlueBorder';
}
qItem = new QueueItem();
qItem.item = champId;
qItem.action = "enhance";
qItem.level = nextQual;
STrChOChampQueueData.list.push(qItem);
//document.getElementById('champInventoryItem' + champId).className = 'STrChOYellowBorder';
lev = maxLev;
qual = nextQual;
}
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
},
addChampQueue: function () {
var t = Tabs.champUpgrader;
var action = document.getElementById('STrChOChampAction').value;
if (action == "both") {
t.addBothChampItem(document.getElementById('STrChOChampUpgradeList').value);
return;
}
var qItem = new QueueItem();
qItem.item = document.getElementById('STrChOChampUpgradeList').value;
qItem.action = document.getElementById('STrChOChampAction').value;
qItem.level = document.getElementById('STrChOChampMaxLevel').value;
if (qItem.item == 0) return;
STrChOChampQueueData.list.push(qItem);
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
},
buildChampLevelWidget: function () {
var t = Tabs.champUpgrader;
var m;
var STrChOChampAction = document.getElementById('STrChOChampAction');
if (STrChOChampAction.value == "enhance") {
m = ' Max: <select class=STrChOSelect id=STrChOChampMaxLevel>';
for (qual = 1; qual <= STrChOMaxChampQuality; qual++) {
m += '<option value="' + qual + '">' + champCardQualities[qual] + '</option>';
}
m += '</select>';
} else if (STrChOChampAction.value == "upgrade") {
m = ' Max: <select class=STrChOSelect id=STrChOChampMaxLevel>';
for (lvl = 1; lvl <= STrChOMaxChampLevel; lvl++) {
m += '<option value="' + lvl + '"> +' + lvl + '</option>';
}
m += '</select>';
} else {
m = ' - <select class=STrChOSelect id=STrChOChampMaxLevel></select>';
}
document.getElementById('STrChOChampMaxDiv').innerHTML = m;
if (STrChOChampAction.value == "enhance") {
document.getElementById('STrChOChampMaxLevel').value = STrChOMaxChampQuality;
} else if (STrChOChampAction.value == "upgrade") {
document.getElementById('STrChOChampMaxLevel').value = STrChOMaxChampLevel;
}
},
buildChampQueueDisplay: function () {
var t = Tabs.champUpgrader;
var STrChOChampQDiv = document.getElementById('STrChOChampQDiv');
var m = '<table id=STrChOChampQueue width=100%>';
m += '<tr><th width=10%>Remove</th>';
m += '<th width=5%>Order</th>';
m += '<th width=8%>Status</th>';
m += '<th width=25%>Item</th>';
m += '<th width=5%>Action</th>';
m += '<th width=5%>Max</th>';
m += '<th width=40%>Status/Last Upgrade/Attempts</th></tr>';
for (var queueIndex = 0; queueIndex < STrChOChampQueueData.list.length; queueIndex++) {
var queueItem = STrChOChampQueueData.list[queueIndex];
if (!queueItem) continue;
var champItem = uW.kocChampionItems[queueItem.item];
var champCardName = "Unknown / Item removed";
var champId = 0;
if (champItem) {
champCardName = champItem.name;
champId = champItem.id;
}
m += '<tr>';
m += '<td align=center><div id=STrChOChampQueueRemove' + queueIndex + ' class=STrChORemove></div></td>';
m += '<td align=center><div id=STrChOChampUpRow' + queueIndex + ' class=STrChOUpRow></div><div class=STrChODownRow id=STrChOChampDownRow' + queueIndex + '></div></td>';
m += '<td align=center><div id=STrChOChampState' + queueIndex + '></div></td>';
m += '<td align=center class=STrChOChampUpdaterItemName><div id=STrChOChampUpdaterItem' + champId + ' >' + champCardName + '</div></td>';
m += '<td align=center>' + queueItem.action + '</td>';
m += '<td>';
if (queueItem.action == "enhance") {
m += '<div style="text-align: center;"><select class=STrChOSelect id=STrChOChampChangeLevel' + queueIndex + ' style="width:90px; text-align: center;">';
for (qual = 1; qual <= STrChOMaxChampQuality; qual++) {
m += '<option value="' + qual + '" ' + (queueItem.level == qual ? 'selected' : '') + '>' + champCardQualities[qual] + '</option>';
}
m += '</select></div>';
} else {
m += '<div style="text-align: center;"><select class=STrChOSelect id=STrChOChampChangeLevel' + queueIndex + ' style="width:90px; text-align: center;">';
for (lvl = 1; lvl <= STrChOMaxChampLevel; lvl++) {
m += '<option value="' + lvl + '" ' + (queueItem.level == lvl ? 'selected' : '') + '> +' + lvl + '</option>';
}
m += '</select></div>';
}
m += '</td>';
m += '<td style="text-align: center; white-space: pre-wrap;">' + queueItem.status + ' / ';
if (queueItem.lastUpgrade) m += queueItem.lastUpgrade;
m += ' / ' + queueItem.triesThis + ' tries this level, ' + queueItem.triesTotal + ' tries total';
m += '</td>';
m += '</tr>';
}
m += '</table>';
STrChOChampQDiv.innerHTML = m;
for (var queueIndex = 0; queueIndex < STrChOChampQueueData.list.length; queueIndex++) {
var queueItem = STrChOChampQueueData.list[queueIndex];
if (!queueItem) continue;
var champItem = uW.kocChampionItems[queueItem.item];
document.getElementById('STrChOChampQueueRemove' + queueIndex).setAttribute('v1', queueIndex);
document.getElementById('STrChOChampQueueRemove' + queueIndex).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.deleteQueueItem(qIndex);
}, false);
document.getElementById('STrChOChampUpRow' + queueIndex).setAttribute('v1', queueIndex);
document.getElementById('STrChOChampUpRow' + queueIndex).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.moveUpRow(qIndex);
}, false);
document.getElementById('STrChOChampDownRow' + queueIndex).setAttribute('v1', queueIndex);
document.getElementById('STrChOChampDownRow' + queueIndex).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.moveDownRow(qIndex);
}, false);
document.getElementById('STrChOChampChangeLevel' + queueIndex).setAttribute('v1', queueIndex);
document.getElementById('STrChOChampChangeLevel' + queueIndex).addEventListener('change', function () {
var qIndex = this.getAttribute('v1');
var itemLevel = this.value;
t.changeLevel(qIndex, itemLevel);
}, false);
if (!champItem || !(champItem.equipmentId)) {
document.getElementById('STrChOChampState' + queueIndex).innerHTML = '<div style="text-align:center"> ??</div>';
} else if (queueItem.status == "complete") {
document.getElementById('STrChOChampState' + queueIndex).className = 'STrChOSuccess';
} else if (champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE) {
document.getElementById('STrChOChampState' + queueIndex).className = 'STrChOBroken';
} else if (champItem.status == CM.CHAMPION.STATUS_REPAIRING_UPGRADE || champItem.status == CM.CHAMPION.STATUS_REPAIRING_ENHANCE) {
document.getElementById('STrChOChampState' + queueIndex).className = 'STrChOHammer';
} else {
document.getElementById('STrChOChampState' + queueIndex).innerHTML = '<div class=STrChOGoButton></div>';
}
}
},
deleteQueueItem: function (index) {
// delete an item from the queue
var t = Tabs.champUpgrader;
STrChOChampQueueData.list.splice(index, 1);
if (index > STrChOChampQueueData.index) STrChOChampQueueData.index--;
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
},
moveUpRow: function (index) {
if (index < 1) return;
var t = Tabs.champUpgrader;
var qItem = STrChOChampQueueData.list.splice(index, 1);
STrChOChampQueueData.list.splice(index - 1, 0, qItem[0]);
if (index == STrChOChampQueueData.index)
STrChOChampQueueData.index--;
else if (STrChOChampQueueData.index == index - 1)
STrChOChampQueueData.index++;
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
},
moveDownRow: function (index) {
if (index > (STrChOChampQueueData.list.length - 2)) return;
var t = Tabs.champUpgrader;
var qItem = STrChOChampQueueData.list.splice(index, 1);
STrChOChampQueueData.list.splice(index + 1, 0, qItem[0]);
if (index == STrChOChampQueueData.index)
STrChOChampQueueData.index++;
else if (STrChOChampQueueData.index == index + 1)
STrChOChampQueueData.index--;
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
},
changeLevel: function (index, level) {
var t = Tabs.champUpgrader;
var queueItem = STrChOChampQueueData.list[index];
if (!queueItem) return;
queueItem.level = level;
if (queueItem.status == "complete") queueItem.status = "started";
SAVESTrChOChampQueueData();
t.buildChampQueueDisplay();
},
setStatus: function (s) {
document.getElementById('STrChOChampUpgradeStatus').innerHTML = '<div>' + s + '</div>';
},
setResult: function (s) {
document.getElementById('STrChOChampLastResult').innerHTML = '<div>' + s + '</div>';
},
togglePower: function (obj) {
var t = Tabs.champUpgrader;
if (!STrChOChampUpgradeData.active && STrChOChampRepairData.active) {
alert('You must disable repair tab first');
return;
}
var btn = document.getElementById('STrChOChampUpgradePower');
if (STrChOChampUpgradeData.active) {
STrChOChampUpgradeData.active = false;
btn.value = 'Upgrader = OFF';
t.setStatus('Powered Off');
t.setResult('');
} else {
STrChOChampUpgradeData.active = true;
btn.value = "Upgrader = ON";
t.setStatus("Powered On");
t.setResult("");
}
if (!STrChOChampUpgradeData.active) {
}
SAVESTrChOChampUpgradeData();
},
}
Tabs.champSalvager = {
tabOrder: 201,
tabLabel: 'SALVAGER',
tabColor: 'brown',
tabHeader: 'CHAMP HALL SALVAGER',
timer : null,
city : null,
cityNum : 0,
delItems : [],
rowNum : 0,
sTimer : null,
delTimer : null,
upgradeProfit: true,
init: function (div) {
var t = Tabs.champSalvager;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
if (STrChOChampSalvageData.active) {
m += '<td width=33%><input id=STrChOChampSalvagerPower type=button class=STrChOButton value="Salvager = ON"></td>';
} else {
m += '<td width=33%><input id=STrChOChampSalvagerPower type=button class=STrChOButton value="Salvager = OFF"></td>';
}
m += '<td width=33%><div class=divNoWrap align=center>';
m += 'Keep All: <select id=STrChOChampSalvageQuality class=STrChOSelect>';
for (i = 1; i <= STrChOMaxChampQuality; i++) m += '<option value="' + i + '" ' + (STrChOChampSalvageData.minQuality == i ? 'SELECTED' : '') + '>' + throneCardQualities[i].capitalizeFirstLetter() + '+</option>';
m += '</select>';
m += '</div></td>';
m += '<td width=33%><div class=divNoWrap>Keep First <input style="text-align: center;" id=STrChOChampSaveNum class=STrChOTextbox type=text size=3 maxlength=3 value="' + STrChOChampSalvageData.champSaveNum + '"/> Items</div></td>';
m += '</tr>';
m += '<tr><td colspan=3><hr class=STrChOHRCenter></td></tr>';
m += '<tr><td colspan=3><div class=indent5 id=STrChOChampSalvageStatus></div></td></tr>';
m += '<tr><td colspan=3><div class=indent5 id=STrChOChampNumSalv><br></div></td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader id=STrChOChampSimpleRule onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> SIMPLE RULES <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="position: static; width: 100%; height: 200px; overflow-x: hidden; overflow-y: auto;">';
m += '<table class=STrChOSectionTable>';
m += '<tr><td>';
m += '<table>';
m += '<tr><td><b>Define Champ Items To Keep:</b></td>';
m += '<td alight=left><div><span>Faction: <select id=STrChOChampFactionType class=STrChOSelect>';
m += ' <option value="any">Any</option>';
for (var fact = 0; fact < STrChOFactions.length; fact++) m += '<option value="' + STrChOFactions[fact] + '">' + STrChOFactions[fact].capitalizeFirstLetter() + '</option>';
m += '</select></span></div></td>';
m += '<td alight=left><div><span>Card Type: <select id=STrChOChampCardType class=STrChOSelect>';
m += ' <option value="any">Any</option>';
for (var ct in champItemNames) m += ' <option value="' + champItemNames[ct] + '">' + champItemNames[ct].capitalizeFirstLetter() + '</option>';
m += '</select></span></div></td>';
m += '<td align=right><input id=STrChOChampAddRule type=button class=STrChOButton value="Create Rule"/></td>';
m += '</tr>';
m += '</table>';
m += '</td></tr>';
m += '<tr><td>';
m += '<table id=STrChOChampConditionTable style="padding-left: 5px;">';
m += '<tr><td align=left colspan=1><input id=STrChOChampAddRow type=button class=STrChOButton value="Add Row"/></td>';
m += '<td></td><td></td><td></td><td></td><td></td></tr>';
m += '</table>';
m += '</td></tr>';
m += '</table>';
m += '</div>'; //end of STrChOSection
m += '<div class=STrChOHeader id=STrChOChampAdvancedRule onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> ADVANCED RULES <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td>';
m += '<table>';
m += '<tr><td colspan=4><input class=STrChOButton type=button id=STrChOChampAdvancedReset value="Reset"></tr>';
m += '<tr>';
m += '<td><b>Define Champ Items To Keep:</b></td>';
m += '<td alight=left><div><span>Faction: <select id=STrChOChampFactionTypeAdvanced class=STrChOSelect>';
m += ' <option value="any">Any</option>';
for (var fact = 0; fact < STrChOFactions.length; fact++) m += '<option value="' + STrChOFactions[fact] + '">' + STrChOFactions[fact].capitalizeFirstLetter() + '</option>';
m += '</select></span></div></td>';
m += '<td alight=left><div><span>Card Type: <select id=STrChOChampCardTypeAdvanced class=STrChOSelect>';
m += ' <option value="any">Any</option>';
for (var ct in champItemNames) m += ' <option value="' + champItemNames[ct] + '">' + champItemNames[ct].capitalizeFirstLetter() + '</option>';
m += '</select></span></div></td>';
m += '<td align=right><input id=STrChOChampAddRuleAdvanced type=button class=STrChOButton value="Create Rule"/></td>';
m += '</tr>';
m += '</table>';
m += '</td></tr>';
m += '<tr><td>';
m += '<table width=100% id=STrChOChampConditionTableAdvanced>';
m += '<tr>';
m += '<td width=20%>ROW 1</td>';
m += '<td width=20%>ROW 2</td>';
m += '<td width=20%>ROW 3</td>';
m += '<td width=20%>ROW 4</td>';
m += '<td width=20%>ROW 5</td>';
m += '</tr>';
m += '<tr>';
m += '<td width=20%><div><select style="max-width: 125px;" id=STrChOChampRow1Advanced class=STrChOSelect></select></div></td>';
m += '<td width=20%><div><select style="max-width: 125px;" id=STrChOChampRow2Advanced class=STrChOSelect></select></div></td>';
m += '<td width=20%><div><select style="max-width: 125px;" id=STrChOChampRow3Advanced class=STrChOSelect></select></div></td>';
m += '<td width=20%><div><select style="max-width: 125px;" id=STrChOChampRow4Advanced class=STrChOSelect></select></div></td>';
m += '<td width=20%><div><select style="max-width: 125px;" id=STrChOChampRow5Advanced class=STrChOSelect></select></div></td>';
m += '</tr>';
m += '</table>';
m += '</td></tr>';
m += '</table>';
m += '</div>'; //end of STrChOSection
m += '<div class=STrChOHeader> RULES LIST </div>';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td align=center>';
m += 'Sort By Card Type: <select id=STrChOChampSalvageSortCard class=STrChOSelect>';
m += '<option value="0">--Select--</option>';
for (var ct in champItemNames) m += ' <option value="' + champItemNames[ct] + '">' + champItemNames[ct].capitalizeFirstLetter() + '</option>';
m += '</select>';
m += '</td></tr>';
m += '<tr><td align=center>';
m += '<b>Salvager Will Keep Items Matching These Rules</b>';
m += '</td></tr>';
m += '<tr><td align=center>';
m += '<div align=center>';
m += '<table align=center width=100%>';
m += '<tr>';
m += '<td align=left><input id=STrChOChampButtonSaveItem type=button class=STrChOButton value="Save Rules"> ';
m += '<input id=STrChOChampClearAllRules type=button class=STrChOButton value="Clear All Rules"></td>';
m += '<td align=right>'
m += '<input id=STrChOChampButtonLoadItem type=button class=STrChOButton value="Load Rules">';
m += '<input class=STrChOButton type=button id=STrChOChampFileDrop onclick="document.getElementById(\'STrChOChampFileLoadItem\').click()" value="Browse...">';
m += '<input id=STrChOChampFileLoadItem style="visibility: hidden; height:0px; width: 0px;" type=file>';
m += '</td>';
m += '</tr>';
m += '</table>';
m += '</div>';
m += '</td></tr>';
m += '<tr><td align=center>';
m += '<div id=STrChOChampRuleScroll style="position: static; width: 100%; height: ' + dlgHeight + '; overflow-x: hidden; overflow-y: auto;" >';
m += '<div id=STrChOChampRuleDisplay></div>';
m += '</div>';
m += '</td></tr>';
m += '</table>';
m += '</div>'; //end of STrChOSection
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
if (STrChOChampSalvageData.active)
t.setStatus('Loading...');
else
t.setStatus('Powered Off');
t.displayNumberSalvaged();
document.getElementById('STrChOChampClearAllRules').addEventListener('click', function() {
STrChOChampSalvageData.ruleSet = [];
SAVESTrChOChampSalvageData();
t.buildChampRuleDisplay();
}, false);
document.getElementById('STrChOChampAdvancedReset').addEventListener('click', function () {
var cardtype = document.getElementById('STrChOChampCardTypeAdvanced');
cardtype.selectedIndex = 0;
t.clearAdvancedStats();
t.setAdvancedStatsToAny();
}, false);
t.setAdvancedStatsToAny();
document.getElementById('STrChOChampAddRuleAdvanced').addEventListener('click', function() {
t.createAdvancedRule();
}, false);
document.getElementById('STrChOChampCardTypeAdvanced').addEventListener('change', function() {
var selectedValue = document.getElementById('STrChOChampCardTypeAdvanced').value;
t.clearAdvancedStats();
if (selectedValue == "any") {
t.setAdvancedStatsToAny();
} else {
t.filterAdvancedStats(selectedValue);
}
}, false);
document.getElementById('STrChOChampSalvagerPower').addEventListener('click', function() {
t.togglePower(this);
} , false);
t.createRow();
t.buildChampRuleDisplay();
document.getElementById('STrChOChampSalvageSortCard').addEventListener('change', function() {
t.buildChampRuleDisplay();
}, false);
document.getElementById('STrChOChampButtonSaveItem').addEventListener('click', function() {
uriContent = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(STrChOChampSalvageData.ruleSet));
newWindow = window.open(uriContent, 'file.txt');
}, false);
document.getElementById('STrChOChampButtonLoadItem').addEventListener('click', function() {
var fileInput = document.getElementById("STrChOChampFileLoadItem");
var files = fileInput.files;
if (files.length==0) {
alert('Please Select A File');
return;
}
var file = files[0];
var reader = new FileReader();
reader.onload = function (e) {
var output = e.target.result;
STrChOChampSalvageData.ruleSet = JSON.parse(output);
STrChOChampSalvageData.active = false;
clearInterval(t.sTimer);
clearInterval(t.delTimer);
t.deleting = false;
SAVESTrChOChampSalvageData();
t.show();
alert('Champ Salvage Settings Now Loaded From File');
};
reader.readAsText(file);
}, false);
document.getElementById('STrChOChampSaveNum').addEventListener('change', function () {
STrChOChampSalvageData.champSaveNum = parseInt(document.getElementById('STrChOChampSaveNum').value);
if (STrChOChampSalvageData.champSaveNum < 0) STrChOChampSalvageData.champSaveNum = 0;
SAVESTrChOChampSalvageData();
}, false);
document.getElementById('STrChOChampSalvageQuality').addEventListener('click', function() {
t.setSalvageLevel(this.value);
}, false);
document.getElementById('STrChOChampAddRow').addEventListener('click', function() {
t.createRow();
}, false);
document.getElementById('STrChOChampAddRule').addEventListener('click', function() {
t.createRule();
}, false);
t.upgradeProfit = (5*CM.WorldSettings.getSettingAsNumber("AETHERSTONE_SALVAGE_MULTIPLIER", 500) > CM.thronestats.upgrade[1]["Stones"]);
t.start();
},
setAdvancedStatsToAny: function() {
for (var r = 1; r < STrChOQualityCount; r++) {
var row = document.getElementById('STrChOChampRow' + r + 'Advanced');
row.options.add(new Option("none","none"));
for (i = 0; i < champItemEffects.length; i++) {
var effectName = uW.g_js_strings.effects["name_" + champItemEffects[i]];
row.options.add(new Option(effectName, effectName));
}
}
},
clearAdvancedStats: function() {
for (var i = 1; i < STrChOQualityCount; i++) {
var row = document.getElementById('STrChOChampRow' + i + 'Advanced');
row.innerHTML = "";
}
},
filterAdvancedStats: function(cardtype) {
var t = Tabs.champSalvager;
cardtype = cardtype || "any";
if (cardtype == "any") {
t.setAdvancedStatsToAny();
return;
}
document.getElementById("STrChOChampRow1Advanced").options.add(new Option("none", "none"));
document.getElementById("STrChOChampRow2Advanced").options.add(new Option("none", "none"));
document.getElementById("STrChOChampRow3Advanced").options.add(new Option("none", "none"));
document.getElementById("STrChOChampRow4Advanced").options.add(new Option("none", "none"));
document.getElementById("STrChOChampRow5Advanced").options.add(new Option("none", "none"));
for (i = 0; i < champItemEffects.length; i++) {
var effectName = uW.g_js_strings.effects["name_" + champItemEffects[i]];
var eff = champItemEffects[i];
if (STrChOChampStatsGrid[cardtype][1][eff]) { document.getElementById("STrChOChampRow1Advanced").options.add(new Option(effectName, effectName)); }
if (STrChOChampStatsGrid[cardtype][2][eff]) { document.getElementById("STrChOChampRow2Advanced").options.add(new Option(effectName, effectName)); }
if (STrChOChampStatsGrid[cardtype][3][eff]) { document.getElementById("STrChOChampRow3Advanced").options.add(new Option(effectName, effectName)); }
if (STrChOChampStatsGrid[cardtype][4][eff]) { document.getElementById("STrChOChampRow4Advanced").options.add(new Option(effectName, effectName)); }
if (STrChOChampStatsGrid[cardtype][5][eff]) { document.getElementById("STrChOChampRow5Advanced").options.add(new Option(effectName, effectName)); }
}
},
hide: function () {},
show: function () {
var t = Tabs.champSalvager;
t.displayNumberSalvaged();
},
tripOdometer : function() {
var t = Tabs.champSalvager;
STrChOChampSalvageData.numSalvagedItems2 = 0;
var now = new Date();
STrChOChampSalvageData.since = now.valueOf();
SAVESTrChOChampSalvageData();
t.show();
},
displayNumberSalvaged : function () {
var t = Tabs.champSalvager;
var since = "";
var rate = "";
var now = new Date();
if (!STrChOChampSalvageData.since) STrChOChampSalvageData.since = now.valueOf();
var sinceD = new Date(STrChOChampSalvageData.since);
since = sinceD.toDateString().substring(3,10) + " " + sinceD.toLocaleTimeString();
var duration = now.valueOf() - STrChOChampSalvageData.since +1;
duration = duration / 1000.0;
rate = " (" + addCommas(Math.round(STrChOChampSalvageData.numSalvagedItems2 / duration * 86400)) + " per day)";
var m = '<div style="text-align: center;">' + addCommas(STrChOChampSalvageData.numSalvagedItems);
m += ' items salvaged, ' + addCommas(STrChOChampSalvageData.numSalvagedItems2);
m += ' items since ' + since + rate + ' <input id=STrChOChampTripOdometer class=STrChOButton type=button value="Reset" /></div>';
document.getElementById('STrChOChampNumSalv').innerHTML = m;
document.getElementById('STrChOChampTripOdometer').addEventListener('click', function () {
t.tripOdometer();
}, false);
},
createRow : function() {
var t = Tabs.champSalvager;
var table = document.getElementById('STrChOChampConditionTable');
var rowCount = table.rows.length;
var row = table.insertRow(rowCount-1);
var rowId = "r" + t.rowNum;
t.rowNum++;
row.id = rowId;
var h = "<td> <select class=STrChOSelect id='" + rowId + "ChampsSel1'> <option value='true'> </option> <option value='false'>NOT</option></select></td>";
h += "<td> <select class=STrChOSelect id='" + rowId + "ChampsSel2'>";
h += " <option value='1'>1x</option>";
h += " <option value='2'>2x</option>";
h += " <option value='3'>3x</option>";
h += " <option value='4'>4x</option>";
h += " <option value='5'>5x</option>";
h += "</select></td>";
h += "<td> <select class=STrChOSelect id='" + rowId + "ChampsSel3'>";
h += "</select></td>";
h += "<td> <select class=STrChOSelect id='" + rowId + "ChampsSel4'>";
h += " <option value='e'>Either</option>";
h += " <option value='b'>Buff</option>";
h += " <option value='d'>Debuff</option>";
h += "</select></td>";
h += "<td> Slots: ";
h += " <input class=STrChOCheckbox type=checkbox value='1' checked=true id='" + rowId + "ChampsSlot1'/>1";
h += " <input class=STrChOCheckbox type=checkbox value='2' checked=true id='" + rowId + "ChampsSlot2'/>2";
h += " <input class=STrChOCheckbox type=checkbox value='3' checked=true id='" + rowId + "ChampsSlot3'/>3";
h += " <input class=STrChOCheckbox type=checkbox value='4' checked=true id='" + rowId + "ChampsSlot4'/>4";
h += " <input class=STrChOCheckbox type=checkbox value='5' checked=true id='" + rowId + "ChampsSlot5'/>5";
h += "</td>";
row.innerHTML = h;
var effects = [];
for (i = 0; i < champItemEffects.length; i++) {
var effectName = uW.g_js_strings.effects["name_" + champItemEffects[i]];
effectName = effectName.split(" Debuff")[0];
if (effects.indexOf(effectName) < 0) effects.push(effectName);
}
var select = document.getElementById(rowId + "ChampsSel3");
for (index in effects) {
select.options.add(new Option(effects[index], effects[index]));
}
var c = row.insertCell(5);
//TODO
// var btn = document.createElement("BUTTON");
// btn.className = 'STrChOButton';
// btn.value = 'X';
// btn.addEventListener('click', function () { t.removeRow(row); }, false);
// c.append(btn);
var btn = $("<input class=STrChOButton type=button value='X'/>");
$(btn).click( function () { t.removeRow(row);});
$(c).append( btn );
},
setSalvageLevel : function(level) {
STrChOChampSalvageData.minQuality = level;
SAVESTrChOChampSalvageData();
},
createAdvancedRule: function() {
var t = Tabs.champSalvager;
t.readAdvancedRows();
t.buildChampRuleDisplay();
},
createRule : function() {
var t = Tabs.champSalvager;
t.readRows();
t.buildChampRuleDisplay();
},
buildChampRuleDisplay : function () {
var t = Tabs.champSalvager;
function innerRuleDisplay(dataset) {
var innerM = "";
for (i = 0; i < dataset.length; i++)
{
var rule = dataset[i];
innerM += '<tr>';
innerM += "<td width=90%><div class='STrChOChampRule'>";
innerM += (rule.advancedrule ? 'Advanced Rule:<br>' : 'Simple Rule:<br>');
innerM += " Type: " + rule.type;
innerM += " Faction: " + rule.faction;
for (ii = 0; ii < rule.conditions.length; ii++)
{
var condition = rule.conditions[ii];
if (ii ==0 )
innerM += "<br> Item";
else
innerM += "<br> <u>and</u>";
if (condition.mustHave != "false")
innerM += " must have ";
else
innerM += " must NOT have ";
innerM += condition.number + "x ";
innerM += condition.effect + " ";
if (condition.buffType == "b")
innerM += "buff ";
else if (condition.buffType == "d")
innerM += "debuff ";
else
innerM += "buff or debuff ";
innerM += " in slot(s): ";
for (j = 0; j < condition.slots.length; j++)
{
if (condition.slots[j] ) innerM += (j+1) + " ";
}
}
innerM += '</div></td>';
innerM += '<td width=20% align=center>';
innerM += '<input id=STrChOChampEditRule' + i + ' type=button class=STrChOButton value="Edit"><br>';
innerM += '<input id=STrChOChampDelRule' + i + ' type=button class=STrChOButton value="X">';
innerM += '</td>';
innerM += '</tr>';
}
return innerM;
}
var rd = document.getElementById('STrChOChampRuleDisplay');
var sortType = document.getElementById('STrChOChampSalvageSortCard').value;
if (sortType != "0") {
var sortedDataSet = [];
for (var k = 0; k < STrChOChampSalvageData.ruleSet.length; k++) {
if (sortType == STrChOChampSalvageData.ruleSet[k].type) {
sortedDataSet.unshift(STrChOChampSalvageData.ruleSet[k]);
}else {
sortedDataSet.push(STrChOChampSalvageData.ruleSet[k]);
}
}
rd.innerHTML = '<table width=100%>' + innerRuleDisplay(sortedDataSet);
for (var j=0; j < sortedDataSet.length; j++)
{
document.getElementById('STrChOChampDelRule' +j).v1 = j;
document.getElementById('STrChOChampEditRule' +j).v1 = j;
document.getElementById('STrChOChampDelRule' +j).addEventListener ('click', function() { t.deleteRule(this.v1, sortedDataSet);}, false);
document.getElementById('STrChOChampEditRule' +j).addEventListener ('click', function() { t.editRule(this.v1, sortedDataSet);}, false);
}
} else {
rd.innerHTML = '<TABLE width=100%>' + innerRuleDisplay(STrChOChampSalvageData.ruleSet);
for (var j=0; j < STrChOChampSalvageData.ruleSet.length; j++)
{
document.getElementById('STrChOChampDelRule' +j).v1 = j;
document.getElementById('STrChOChampEditRule' +j).v1 = j;
document.getElementById('STrChOChampDelRule' +j).addEventListener ('click', function() { t.deleteRule(this.v1, STrChOChampSalvageData.ruleSet);}, false);
document.getElementById('STrChOChampEditRule' +j).addEventListener ('click', function() { t.editRule(this.v1, STrChOChampSalvageData.ruleSet);}, false);
}
}
},
editRule : function(ruleIndex, sortedData)
{
var t = Tabs.champSalvager;
var rule = sortedData[ruleIndex];
var divExpander = null;
if (rule.advancedrule)
divExpander = document.getElementById('STrChOChampAdvancedRule');
else
divExpander = document.getElementById('STrChOChampSimpleRule');
divExpander.click();
if (divExpander.childNodes[0].src == STrChORightArrow) divExpander.click();
if (rule.advancedrule) {
document.getElementById('STrChOChampFactionTypeAdvanced').value = rule.faction;
document.getElementById('STrChOChampCardTypeAdvanced').value = rule.type;
t.clearAdvancedStats();
if (rule.type == 'any')
t.setAdvancedStatsToAny();
else
t.filterAdvancedStats(rule.type);
for (row = 0; row < rule.conditions.length; row++) {
var condition = rule.conditions[row];
var slotNumber = 0;
for (s = 0; s < condition.slots.length; s++) {
if (condition.slots[s]) slotNumber = s+1;
}
var cell = document.getElementById('STrChOChampRow' + slotNumber + 'Advanced');
var STrChOEffect = condition.effect;
if (condition.buffType == 'd') STrChOEffect += ' Debuff';
cell.value = STrChOEffect;
}
} else {
document.getElementById('STrChOChampFactionType').value = rule.faction;
document.getElementById('STrChOChampCardType').value = rule.type;
var STrChOChampConditionTable = document.getElementById('STrChOChampConditionTable');
while (STrChOChampConditionTable.rows.length > 1) STrChOChampConditionTable.deleteRow(0);
for (row = 0; row < rule.conditions.length; row++) {
var condition = rule.conditions[row];
t.createRow();
STrChOChampConditionTable = document.getElementById('STrChOChampConditionTable');
STrChOChampConditionTable.rows[row].cells[0].children[0].value = condition.mustHave;
STrChOChampConditionTable.rows[row].cells[1].children[0].value = condition.number;
STrChOChampConditionTable.rows[row].cells[2].children[0].value = condition.effect;
STrChOChampConditionTable.rows[row].cells[3].children[0].value = condition.buffType;
var slotCells = STrChOChampConditionTable.rows[row].cells[4];
for (s = 0; s < condition.slots.length; s++) {
if (condition.slots[s])
slotCells.children[s].checked = true;
else
slotCells.children[s].checked = false;
}
}
}
t.deleteRule(ruleIndex, sortedData);
},
// delete a rule from the ruleset
deleteRule : function(ruleIndex, sortedData)
{
var t = Tabs.champSalvager;
sortedData.splice(ruleIndex,1);
var newDataSet = [];
for (var i = 0; i < STrChOChampSalvageData.ruleSet.length; i++) {
for (var i2 = 0; i2 < sortedData.length; i2++) {
if (STrChOChampSalvageData.ruleSet[i] == sortedData[i2]) {
newDataSet.push(STrChOChampSalvageData.ruleSet[i]);
break;
}
}
}
STrChOChampSalvageData.ruleSet = newDataSet;
SAVESTrChOChampSalvageData();
t.buildChampRuleDisplay();
},
togglePower: function(obj){
var t = Tabs.champSalvager;
if (STrChOChampSalvageData.active) {
var btn = document.getElementById('STrChOChampSalvagerPower');
STrChOChampSalvageData.active = false;
btn.value = "Salvager = OFF";
clearInterval(t.sTimer);
clearInterval(t.delTimer);
t.delItems = [];
t.deleting = false;
} else {
STrChOChampSalvageData.active = true;
var btn = document.getElementById('STrChOChampSalvagerPower');
btn.value = "Salvager = ON";
t.doSalvage();
t.start();
}
SAVESTrChOChampSalvageData();
},
readAdvancedRows: function () {
var t = Tabs.champSalvager;
var cType = document.getElementById('STrChOChampCardTypeAdvanced').value;
var faction = document.getElementById('STrChOChampFactionTypeAdvanced').value;
var row1 = document.getElementById("STrChOChampRow1Advanced");
var row2 = document.getElementById("STrChOChampRow2Advanced");
var row3 = document.getElementById("STrChOChampRow3Advanced");
var row4 = document.getElementById("STrChOChampRow4Advanced");
var row5 = document.getElementById("STrChOChampRow5Advanced");
var conditions = [];
for (var i = 1; i < STrChOQualityCount; i++) {
var row = document.getElementById("STrChOChampRow" + i + "Advanced");
if (row.selectedIndex == 0) continue;
var slots = [];
for (var slotChecker = 1; slotChecker < STrChOQualityCount; slotChecker++) {
slots.push(slotChecker==i);
}
var effectName = row.options[row.selectedIndex].value;
var buffDebuff = "b";
if (effectName.indexOf(" Debuff") != -1) buffDebuff = "d";
var effectName = effectName.split(" Debuff")[0];
var c = new ChampCondition(true, 1, effectName, buffDebuff, slots);
conditions.push(c);
}
if ( conditions.length > 0 ) {
var rule1 = new ChampRule(cType, faction, conditions, true);
t.addRule(rule1);
}
},
readRows : function()
{
var t = Tabs.champSalvager;
var table = document.getElementById('STrChOChampConditionTable');
var rowCount = table.rows.length;
var cType = document.getElementById('STrChOChampCardType').value;
var faction = document.getElementById('STrChOChampFactionType').value;
var conditions = [];
for (i=0; i < table.rows.length; i++)
{
var row = table.rows[i];
if (row.id)
{
var s1 = document.getElementById(row.id + "ChampsSel1");
var s2 = document.getElementById(row.id + "ChampsSel2");
var s3 = document.getElementById(row.id + "ChampsSel3");
var s4 = document.getElementById(row.id + "ChampsSel4");
var slots = [];
for (j =1; j <= 5; j++)
{
var ch = document.getElementById(row.id + "ChampsSlot" + j);
slots.push(ch.checked);
}
var c = new ChampCondition(s1.value, s2.value, s3.value, s4.value, slots );
conditions.push(c);
}
}
var rule1 = new ChampRule(cType, faction, conditions, false);
t.addRule(rule1);
},
removeRow : function(row)
{
var table = document.getElementById('STrChOChampConditionTable');
for (i=0; i < table.rows.length ; i++ )
{
if (table.rows[i] == row)
{
table.deleteRow(i);
break;
}
}
},
// add a new rule
addRule : function(rule) {
STrChOChampSalvageData.ruleSet.unshift(rule);
SAVESTrChOChampSalvageData();
},
start : function() {
var t = Tabs.champSalvager;
if(STrChOChampSalvageData.active) t.sTimer = setInterval(t.doSalvage, 1*60*1000);
},
// do the actual discard of champion items
doSalvage : function() {
var t = Tabs.champSalvager;
if(!STrChOChampSalvageData.active) {
t.deleting = false;
return;
}
if (t.deleting == true) return;
t.deleting = true;
t.setStatus('Salvaging items');
t.delItems = t.buildList(false);
if (t.delItems.length > 0) {
// upgrade items from +0 to +1 first
t.upgradeAndDelete();
} else {
// give enough time for the last delete to finish
setTimeout( function () {
t.deleting = false;
t.setStatus('No items to salvage. Waiting for next cycle.');
}, 3000);
}
},
// Create the list of items to delete.
// If 'test' is set to true, then broken/equipted items are included.
buildList : function(test){
var t = Tabs.champSalvager;
var champSaveNum = STrChOChampSalvageData.champSaveNum;
var countItem = 0;
var retList = [];
for (k in uW.kocChampionItems) {
var champ_item = uW.kocChampionItems[k];
countItem++;
if (champ_item.level !=0) continue; // ignore these things
if (champ_item.unique > 0) continue;
// in test mode, include these items
// These items are at risk if they are repaired or unequiped.
if (test != true)
if (champ_item.equippedTo) continue;
// keep the first X items
if ( countItem <= champSaveNum) continue;
// keep things w/ at least minQuality
if (champ_item.rarity >= STrChOChampSalvageData.minQuality) continue;
// check the rules
if (t.applyRules(champ_item.equipmentId)) {
if (STrChOChampSalvageData.upgradeAutoFind) {
var found = false;
for (var i = 0; i < STrChOChampQueueData.list.length; i++) {
var qItem = STrChOChampQueueData.list[i];
if (qItem.item != champ_item.equipmentId) continue;
found = true;
break;
}
if (!found) {
ActionLog('Item: ' + champ_item.name + ' found and added to auto upgrade');
Tabs.champUpgrader.addUpgradeItem(champ_item.equipmentId);
}
}
continue;
}
// passes all tests
retList.push(champ_item.equipmentId);
}
return retList;
},
// put out a status message on the chSavlStatus div
setStatus : function(msg) { document.getElementById('STrChOChampSalvageStatus').innerHTML = msg; },
// returns true if the item should be saved and not salvaged
applyRules : function(id) {
var t = Tabs.champSalvager;
for (r in STrChOChampSalvageData.ruleSet) {
var rule = STrChOChampSalvageData.ruleSet[r];
if ( rule.ChampApplyRule(id)) return true;
}
return false;
},
upgradeAndDelete : function () { // update items to +1 before deleting
var t = Tabs.champSalvager;
if(!STrChOChampSalvageData.active || t.delItems.length == 0) {
t.deleting = false;
return;
}
var id = +t.delItems[0];
t.delTimer = setTimeout( function () {t.doDelete(id)}, 4000); // delete the item
},
removeItem : function (id, cityId, numStones) {
var item = uW.kocChampionItems[id];
if (!item) return;
var c = +(Seed.resources["city" + cityId]["rec5"][0]);
delete uW.kocChampionItems[id];
},
doDelete : function(id) {
var t = Tabs.champSalvager;
if(!STrChOChampSalvageData.active || !t.deleting) {
t.deleting = false;
return;
}
var item = uW.kocChampionItems[id];
if (item) t.setStatus('Salvaging ' + item.name);
SalvageChampItem(id);
},
}
Tabs.champRepair = {
tabOrder: 202,
tabLabel: 'REPAIR',
tabColor: 'brown',
tabHeader: 'CHAMP HALL REPAIR',
repairId: 0,
repairEnd: 0,
timerH: null,
clearTimerH: null,
init: function (div) {
var t = Tabs.champRepair;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '<div class=STrChOSaveSettings id=STrChOChampRepairSaveSettings title="Save Repair Settings"></div><div class=STrChOLoadSettings id=STrChOChampRepairLoadSettings title="Load Repair Settings"></div></div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
if (STrChOChampRepairData.active) {
m += '<td width=50%><input id=STrChOChampRepairPower type=button class=STrChOButton value="Repair = ON"></td>';
} else {
m += '<td width=50%><input id=STrChOChampRepairPower type=button class=STrChOButton value="Repair = OFF"></td>';
}
m += '<td width=50%><div class=divNoWrap align=center id=STrChOChampRepairAetherDisplay></div></td>';
m += '</tr>';
m += '<tr><td colspan=2><hr class=STrChOHRCenter></td></tr>';
m += '<tr><td colspan=2><div class=indent5 id=STrChOChampRepairStatus><br></div></td></tr>';
m += '<tr><td colspan=2><div class=indent5 id=STrChOChampRepairLastResult><br></div></td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> SPEED UPS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairHourglassLevelSpecific ' + (STrChOChampRepairData.hourglassLevelSpecific ? "CHECKED" : "") + '>Only use hourglass for levels ';
m += '<select class=STrChOSelect id=STrChOChampRepairHourglassLevel>';
for (lvl = 1; lvl < STrChOMaxChampLevel; lvl++) m += '<option value="' + lvl + '" ' + (STrChOChampRepairData.hourglassLevel == lvl ? 'SELECTED' : '') + '>+' + lvl + '</option>';
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairHourglassQualitySpecific ' + (STrChOChampRepairData.hourglassQualitySpecific ? "CHECKED" : "") + '>Only use hourglass for qualities ';
m += '<select class=STrChOSelect id=STrChOChampRepairHourglassQuality>';
for (qual = 1; qual <= STrChOMaxChampQuality-1; qual++) m += '<option value="' + qual + '" ' + (STrChOChampRepairData.hourglassQuality == qual ? 'SELECTED' : '') + '>' + champCardQualities[qual].capitalizeFirstLetter() + '</option>';
m += '</select> and higher</td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[1] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairUseSH ' + (STrChOChampRepairData.useSH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[1] + ' (<div class=divNoWrap id=STrChOChampRepairUseSHLabel><font' + (uW.ksoItems[1].count < 100 ? ' color=red>' : '>') + uW.ksoItems[1].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[2] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairUseKH ' + (STrChOChampRepairData.useKH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[2] + ' (<div class=divNoWrap id=STrChOChampRepairUseKHLabel><font' + (uW.ksoItems[2].count < 100 ? ' color=red>' : '>') + uW.ksoItems[2].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[3] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairUseGH ' + (STrChOChampRepairData.useGH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[3] + ' (<div class=divNoWrap id=STrChOChampRepairUseGHLabel><font' + (uW.ksoItems[3].count < 100 ? ' color=red>' : '>') + uW.ksoItems[3].count + '</font></div>)</div></td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[4] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairUseMH ' + (STrChOChampRepairData.useMH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[4] + ' (<div class=divNoWrap id=STrChOChampRepairUseMHLabel><font' + (uW.ksoItems[4].count < 100 ? ' color=red>' : '>') + uW.ksoItems[4].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[5] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairUseAH ' + (STrChOChampRepairData.useAH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[5] + ' (<div class=divNoWrap id=STrChOChampRepairUseAHLabel><font' + (uW.ksoItems[5].count < 100 ? ' color=red>' : '>') + uW.ksoItems[5].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[6] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairUseWH ' + (STrChOChampRepairData.useWH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[6] + ' (<div class=divNoWrap id=STrChOChampRepairUseWHLabel><font' + (uW.ksoItems[6].count < 100 ? ' color=red>' : '>') + uW.ksoItems[6].count + '</font></div>)</div></td>';
m += '</tr>';
m += '<tr>';
m += '<td title="' + STrChOHourGlassTDLabel[7] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairUseDH ' + (STrChOChampRepairData.useDH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[7] + ' (<div class=divNoWrap id=STrChOChampRepairUseDHLabel><font' + (uW.ksoItems[7].count < 100 ? ' color=red>' : '>') + uW.ksoItems[7].count + '</font></div>)</div></td>';
m += '<td title="' + STrChOHourGlassTDLabel[8] + '"><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairUseEH ' + (STrChOChampRepairData.useEH ? 'CHECKED' : '') + '><div class=divNoWrap>' + STrChOHourGlassName[8] + ' (<div class=divNoWrap id=STrChOChampRepairUseEHLabel><font' + (uW.ksoItems[8].count < 100 ? ' color=red>' : '>') + uW.ksoItems[8].count + '</font></div>)</div></td>';
m += '<td/>';
m += '</tr>';
m += '<tr>';
m += '<td colspan=3><input class=STrChOCheckbox type=checkbox id=STrChOChampRepairOverrideSpeedUps ' + (STrChOChampRepairData.overrideSpeedUp ? "CHECKED" : "") + '>Override hourglasses by using ';
m += '<select class=STrChOSelect id=STrChOChampRepairSpeedUp>';
m += '<option value=0>None</option>';
for (gls in STrChOHourGlassName) {
m += '<option value=' + gls + ' ' + (STrChOChampRepairData.useSpeedUp == gls ? 'SELECTED' : '') + '>' + STrChOHourGlassName[gls] + '</option>';
}
m += '</select> every time</td>';
m += '</tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> REPAIR ITEMS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td>Queue By Level: <select class=STrChOSelect id=STrChOChampRepairByLevel>';
for (i = 1; i < STrChOMaxChampLevel; i++) m += '<option value=' + i + '>+' + i + '</option>';
m += '</select> <input id=STrChOChampRepairByLevelAdd class=STrChOButton type=button value="Add"/></td></tr>';
m += '<tr><td>Queue By Preset Tag: <select class=STrChOSelect id=STrChOChampRepairPresetTagList>';
var presetsList = "";
if (STrChOMaxChampions != 0) {
for (var i = 1; i < STrChOMaxChampions + 1; i++) {
presetsList += '<option value="' + i + '">' + i + ' (' + STrChOChampPresetData.presetNames[i-1] + ')</option>';
}
}
m += presetsList;
m += "</select> <input id=STrChOChampRepairPresetTag class=STrChOButton type=button value='Add'/></td></tr>";
m += '<tr><td><div style="max-width:90%;">Item: <select class=STrChOSelect style="white-space:nowrap;display:inline-block;max-width: 200px;" id=STrChOChampRepairList>';
m += '</select><input id=STrChOChampRepairAdd type=button class=STrChOButton value="Add"/> <input id=STrChOChampRepairAddAll class=STrChOButton type=button value="Add All"> <input id=STrChOChampRepairRefresh class=STrChOButton type=button value="Refresh List"></div></td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader> REPAIR LIST </div>';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td colspan=2>';
m += '<div id=STrChOChampRepairQScroll style="position: static; width: 100%; height: 350px; overflow-x: auto; overflow-y: auto;">';
m += '<div id=STrChOChampRepairQDiv></div>';
m += '</div>';
m += '</td></tr>';
m += '<tr align=center><td><div><input style="float: left;" id=STrChOChampRepairClear class=STrChOButton type=button value="Clear Queue"/></div></td><td><div><input style="float: right;" id=STrChOChampRepairClearF class=STrChOButton type=button value="Clear Repaired"/></div></td></tr>';
m += '</table>';
m += '</div>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOChampRepairSaveSettings').addEventListener('click', function () {
SaveSettingsToFile(STrChOChampRepairData);
}, false);
document.getElementById('STrChOChampRepairLoadSettings').addEventListener('click', function () {
var loader = document.getElementById('STrChOSettingsFile');
loader.addEventListener('change', function () {
LoadSettingsFromFile(STrChOChampRepairData, Tabs.champRepair);
}, false);
loader.click();
}, false);
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
t.refreshAetherDisplay();
document.getElementById('STrChOChampRepairUseWH').addEventListener('change', function () {
STrChOChampRepairData.useWH = document.getElementById('STrChOChampRepairUseWH').checked;
SAVESTrChOChampRepairData();
if (STrChOChampRepairData.useWH) t.doAction();
}, false);
document.getElementById('STrChOChampRepairUseDH').addEventListener('change', function () {
STrChOChampRepairData.useDH = document.getElementById('STrChOChampRepairUseDH').checked;
SAVESTrChOChampRepairData();
if (STrChOChampRepairUseDH.useDH) t.doAction();
}, false);
document.getElementById('STrChOChampRepairUseEH').addEventListener('change', function () {
STrChOChampRepairData.useEH = document.getElementById('STrChOChampRepairUseEH').checked;
SAVESTrChOChampRepairData();
if (STrChOChampRepairData.useEH) t.doAction();
}, false);
document.getElementById('STrChOChampRepairUseSH').addEventListener('change', function () {
STrChOChampRepairData.useSH = document.getElementById('STrChOChampRepairUseSH').checked;
SAVESTrChOChampRepairData();
if (STrChOChampRepairData.useSH) t.doAction();
}, false);
document.getElementById('STrChOChampRepairUseKH').addEventListener('change', function () {
STrChOChampRepairData.useKH = document.getElementById('STrChOChampRepairUseKH').checked;
SAVESTrChOChampRepairData();
if (STrChOChampRepairData.useKH) t.doAction();
}, false);
document.getElementById('STrChOChampRepairUseGH').addEventListener('change', function () {
STrChOChampRepairData.useGH = document.getElementById('STrChOChampRepairUseGH').checked;
SAVESTrChOChampRepairData();
if (STrChOChampRepairData.useGH) t.doAction();
}, false);
document.getElementById('STrChOChampRepairUseMH').addEventListener('change', function () {
STrChOChampRepairData.useMH = document.getElementById('STrChOChampRepairUseMH').checked;
SAVESTrChOChampRepairData();
if (STrChOChampRepairData.useMH) t.doAction();
}, false);
document.getElementById('STrChOChampRepairUseAH').addEventListener('change', function () {
STrChOChampRepairData.useAH = document.getElementById('STrChOChampRepairUseAH').checked;
SAVESTrChOChampRepairData();
if (STrChOChampRepairData.useAH) t.doAction();
}, false);
document.getElementById('STrChOChampRepairHourglassLevelSpecific').addEventListener('change', function () {
STrChOChampRepairData.hourglassLevelSpecific = document.getElementById('STrChOChampRepairHourglassLevelSpecific').checked;
SAVESTrChOChampRepairData();
t.doAction();
}, false);
document.getElementById('STrChOChampRepairHourglassQualitySpecific').addEventListener('change', function () {
STrChOChampRepairData.hourglassQualitySpecific = document.getElementById('STrChOChampRepairHourglassQualitySpecific').checked;
SAVESTrChOChampRepairData();
t.doAction();
}, false);
document.getElementById('STrChOChampRepairOverrideSpeedUps').addEventListener('change', function () {
STrChOChampRepairData.overrideSpeedUp = document.getElementById('STrChOChampRepairOverrideSpeedUps').checked;
SAVESTrChOChampRepairData();
if (STrChOChampRepairData.overrideSpeedUp) t.doAction();
}, false);
document.getElementById('STrChOChampRepairSpeedUp').addEventListener('change', function () {
STrChOChampRepairData.useSpeedUp = document.getElementById('STrChOChampRepairSpeedUp').value;
SAVESTrChOChampRepairData();
}, false);
document.getElementById('STrChOChampRepairHourglassLevel').addEventListener('change', function () {
STrChOChampRepairData.hourglassLevel = document.getElementById('STrChOChampRepairHourglassLevel').value;
SAVESTrChOChampRepairData();
t.doAction();
}, false);
document.getElementById('STrChOChampRepairHourglassQuality').addEventListener('change', function () {
STrChOChampRepairData.hourglassQuality = document.getElementById('STrChOChampRepairHourglassQuality').value;
SAVESTrChOChampRepairData();
t.doAction();
}, false);
document.getElementById('STrChOChampRepairPower').addEventListener('click', function () {
t.togglePower(this);
}, false);
document.getElementById('STrChOChampRepairByLevelAdd').addEventListener('click', function () {
var t = Tabs.champRepair;
var level = document.getElementById('STrChOChampRepairByLevel').value;
for (chId in uW.kocChampionItems) {
var champItem = uW.kocChampionItems[chId];
if (champItem == null || !champItem) continue;
if (!(champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE)) continue;
if (champItem.level != level) continue;
t.addQueue(chId);
}
}, false);
document.getElementById('STrChOChampRepairPresetTag').addEventListener('click', function () {
var t = Tabs.champRepair;
var presetTagNum = document.getElementById('STrChOChampRepairPresetTagList').value;
var presetTag = getChampPresetObject(parseInt(presetTagNum));
for (var ptId in presetTag) {
var champItem = uW.kocChampionItems[ptId];
if (champItem == null || !champItem) continue;
if (champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE) t.addQueue(ptId);
}
}, false);
document.getElementById('STrChOChampRepairClear').addEventListener('click', function () {
t.deleteQueue();
}, false);
document.getElementById('STrChOChampRepairClearF').addEventListener('click', function () {
var temp = [];
while (STrChOChampRepairData.items.length > 0) {
var chId = STrChOChampRepairData.items.pop();
var champItem = uW.kocChampionItems[chId];
if (champItem == null || !champItem) continue;
if (champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE) temp.push(chId);
}
while (temp.length > 0) STrChOChampRepairData.items.push(temp.pop());
STrChOChampRepairData.index = 0
SAVESTrChOChampRepairData();
t.populateChampRepairListBox();
t.buildChampRepairDisplay();
}, false);
document.getElementById('STrChOChampRepairAdd').addEventListener('click', function () {
t.addQueue();
}, false);
document.getElementById('STrChOChampRepairAddAll').addEventListener('click', function () {
t.addAllQueue();
}, false);
document.getElementById('STrChOChampRepairRefresh').addEventListener('click', function () {
t.populateChampRepairListBox();
}, false);
if (STrChOChampRepairData.active)
t.setStatus('Loading...');
else
t.setStatus('Powered Off');
var d = 2 + Math.random() * 8;
if (Seed.queue_champion == null) {
for (chId in uW.kocChampionItems) {
var champItem = uW.kocChampionItems[chId];
if (champItem.status == CM.CHAMPION.STATUS_REPAIRING_ENHANCE || champItem.status == CM.CHAMPION.STATUS_REPAIRING_UPGRADE) {
Seed.queue_champion = {};
Seed.queue_champion.start = parseInt(champItem.start);
Seed.queue_champion.end = parseInt(champItem.eta);
Seed.queue_champion.itemId = champItem.equipmentId;
break;
}
}
}
if (Seed.queue_champion != null && Seed.queue_champion.end != null) {
var repairTimeLeft = Seed.queue_champion.end - unixTime();
t.repairEnd = Seed.queue_champion.end;
t.repairId = Seed.queue_champion.itemId;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Waiting until " + n.toLocaleTimeString() + " for repair to complete. Item: " + uW.kocChampionItems[t.repairId].name);
if (STrChOChampRepairData.useAH || STrChOChampRepairData.useGH || STrChOChampRepairData.useKH || STrChOChampRepairData.useMH || STrChOChampRepairData.useSH || STrChOChampRepairData.useWH || STrChOChampRepairData.useDH || STrChOChampRepairData.useEH || (STrChOChampRepairData.overrideSpeedUp && STrChOChampRepairData.useSpeedUp > 0)) {
var champItem = uW.kocChampionItems[t.repairId];
var chQuality = champItem.rarity;
var chLevel = champItem.level;
var useThoseSpeedups = true;
if (STrChOChampRepairData.hourglassQualitySpecific && chQuality < STrChOChampRepairData.hourglassQuality) useThoseSpeedups = false;
if (STrChOChampRepairData.hourglassLevelSpecific && chLevel < STrChOChampRepairData.hourglassLevel) useThoseSpeedups = false;
if (STrChOChampRepairData.overrideSpeedUp) useThoseSpeedups = true;
if (useThoseSpeedups) {
t.doingSpeedup = true;
setTimeout(function () { t.doSpeedup(); }, 2000);
}
}
setTimeout(t.clearRepair, (repairTimeLeft + 1) * 5000);
if (repairTimeLeft > 0) d += repairTimeLeft;
}
t.populateChampRepairListBox();
t.buildChampRepairDisplay();
if (t.timerH == null) t.timerH = setTimeout(t.doAction, d * 1000);
},
hide: function () {},
refreshAetherDisplay : function () {
document.getElementById('STrChOChampRepairAetherDisplay').innerHTML = displayCityAstone();
},
show: function () {
var t = Tabs.champRepair;
t.refreshAetherDisplay();
t.populateChampRepairListBox();
t.buildChampRepairDisplay();
},
deleteQueue: function () {
var t = Tabs.champRepair
STrChOChampRepairData.items = [];
SAVESTrChOChampRepairData();
t.populateChampRepairListBox();
t.buildChampRepairDisplay();
},
doSpeedup: function () {
var t = Tabs.champRepair;
var endTime = t.repairEnd;
var startTime = unixTime();
var secondsForRepair = endTime - startTime;
var divId = "";
t.speedup = 0;
if (secondsForRepair > 0 && STrChOChampRepairData.overrideSpeedUp && STrChOChampRepairData.useSpeedUp > 0) {
t.speedup = STrChOChampRepairData.useSpeedUp;
} else {
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.day25 && STrChOChampRepairData.useAH && uW.ksoItems[8].count > 0) { t.speedup = 8; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour24 && STrChOChampRepairData.useAH && uW.ksoItems[7].count > 0) { t.speedup = 7; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour15 && STrChOChampRepairData.useAH && uW.ksoItems[6].count > 0) { t.speedup = 6; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour8 && STrChOChampRepairData.useAH && uW.ksoItems[5].count > 0) { t.speedup = 5; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour25 && STrChOChampRepairData.useMH && uW.ksoItems[4].count > 0) { t.speedup = 4; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.hour1 && STrChOChampRepairData.useGH && uW.ksoItems[3].count > 0) { t.speedup = 3; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.minute15 && STrChOChampRepairData.useKH && uW.ksoItems[2].count > 0) { t.speedup = 2; }
if (t.speedup == 0 && secondsForRepair >= HOURGLASSES_TIME_MIN_THRESHOLD.minute1 && STrChOChampRepairData.useSH && uW.ksoItems[1].count > 0) { t.speedup = 1; }
}
switch (t.speedup) {
case "1":
case 1:
secondsForRepair -= HOURGLASSES_TIME.minute1;
divId = 'STrChOChampRepairUseSHLabel';
break;
case "2":
case 2:
secondsForRepair -= HOURGLASSES_TIME.minute15;
divId = 'STrChOChampRepairUseKHLabel';
break;
case "3":
case 3:
secondsForRepair -= HOURGLASSES_TIME.hour1;
divId = 'STrChOChampRepairUseGHLabel';
break;
case "4":
case 4:
secondsForRepair -= HOURGLASSES_TIME.hour25;
divId = 'STrChOChampRepairUseMHLabel';
break;
case "5":
case 5:
secondsForRepair -= HOURGLASSES_TIME.hour8;
divId = 'STrChOChampRepairUseAHLabel';
break;
case "6":
case 6:
secondsForRepair -= HOURGLASSES_TIME.hour15;
divId = 'STrChOChampRepairUseWHLabel';
break;
case "7":
case 7:
secondsForRepair -= HOURGLASSES_TIME.hour24;
divId = 'STrChOChampRepairUseDHLabel';
break;
case "8":
case 8:
secondsForRepair -= HOURGLASSES_TIME.day25;
divId = 'STrChOChampRepairUseEHLabel';
break;
}
if (t.speedup != 0) {
t.setResult('Used ' + uW.ksoItems[t.speedup].name);
var divCount = uW.ksoItems[t.speedup].count - 1;
var divSpeedups = document.getElementById(divId);
divSpeedups.innerHTML = divCount;
uW.modal_speedup_apply("champion", t.speedup, t.repairId);
if (secondsForRepair <= 0) {
secondsForRepair = 0;
endTime = startTime;
t.clearTimerH = setTimeout(t.clearRepair, 1000);
} else {
endTime = unixTime() + secondsForRepair;
t.repairEnd = endTime;
var n = new Date(t.repairEnd * 1000);
var champItem = uW.kocChampionItems[t.repairId];
if (champItem) {
t.setStatus("Repair begun ... Repair will be complete at " + n.toLocaleTimeString() + ". Item: " + champItem.name);
t.clearTimerH = setTimeout(t.clearRepair, secondsForRepair * 1000);
}
}
t.buildChampRepairDisplay();
t.repairEnd = endTime;
setTimeout(function () { t.doSpeedup(); }, 1000);
}
},
selectNext: function () {
var l = STrChOChampRepairData.items.length;
for (i = 0; i < l; i++) {
var champItem = uW.kocChampionItems[STrChOChampRepairData.items[i]];
if (champItem == null || !champItem) continue;
if ((champItem != null) && (champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE || champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE)) {
STrChOChampRepairData.index = i;
SAVESTrChOChampRepairData();
return;
}
}
// if we get here, the queue is complete
STrChOChampRepairData.index = -1;
SAVESTrChOChampRepairData();
},
doAction: function () {
var t = Tabs.champRepair;
t.populateChampRepairListBox();
if (STrChOChampUpgradeData.active) {
t.setStatus('Waiting for upgrade tab to finish...');
if (STrChOChampRepairData.active) t.togglePower();
return;
}
if (!STrChOChampRepairData.active) {
t.setStatus("Powered Off");
return;
} else {
var retryTime = STrChOGeneralOptions.retryInterval;
try { // check if repair is done
var ti = t.clearRepair();
if (ti <= 0) { // repair is done
t.selectNext();
if (STrChOChampRepairData.index < 0) {
t.setStatus("Reached end of queue.")
t.setResult("");
SAVESTrChOChampRepairData();
} else {
var champItem = uW.kocChampionItems[STrChOChampRepairData.items[STrChOChampRepairData.index]];
if (champItem) {
t.repairId = champItem.equipmentId;
t.doRepair(champItem.equipmentId);
}
}
} else { // come back after repair is complete
retryTime = ti + 5;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Waiting until " + n.toLocaleTimeString() + " for repair to complete. Item: " + uW.kocChampionItems[t.repairId].name);
if (STrChOChampRepairData.useSH || STrChOChampRepairData.useKH || STrChOChampRepairData.useGH || STrChOChampRepairData.useMH || STrChOChampRepairData.useAH || STrChOChampRepairData.useWH || STrChOChampRepairData.useDH || STrChOChampRepairData.useEH || (STrChOChampRepairData.overrideSpeedUp && STrChOChampRepairData.useSpeedUp > 0)) {
var champItem = uW.kocChampionItems[t.repairId];
var STrChOChampQuality = champItem.rarity;
var STrChOChampLevel = champItem.level;
var useThoseSpeedups = true;
if (STrChOChampRepairData.hourglassQualitySpecific && STrChOChampQuality < STrChOChampRepairData.hourglassQuality) useThoseSpeedups = false;
if (STrChOChampRepairData.hourglassLevelSpecific && STrChOChampLevel < STrChOChampRepairData.hourglassLevel) useThoseSpeedups = false;
if (STrChOChampRepairData.overrideSpeedUp) useThoseSpeedups = true;
if (useThoseSpeedups) {
t.doingSpeedup = true;
setTimeout(function () { t.doSpeedup(); }, 2000);
}
retryTime = 1;
}
}
} catch (e) {
}
// recycle
clearTimeout(t.timerH);
t.timerH = setTimeout(t.doAction, retryTime * 1000);
t.buildChampRepairDisplay();
}
},
addQueue: function (Id) {
var t = Tabs.champRepair;
if (Id == null) {
var chId = document.getElementById('STrChOChampRepairList').value;
} else {
var chId = Id;
}
if (chId == 0) return;
var item_count = STrChOChampRepairData.items.length;
if (item_count > 0) {
for (var item_index = 0; item_index < item_count; item_index++) {
if (chId == STrChOChampRepairData.items[item_index]) return;
}
}
STrChOChampRepairData.items.push(chId);
SAVESTrChOChampRepairData();
t.populateChampRepairListBox();
t.buildChampRepairDisplay();
},
addAllQueue: function () {
var t = Tabs.champRepair;
for (chId in uW.kocChampionItems) {
var champItem = uW.kocChampionItems[chId];
if (champItem == null || !champItem) continue;
if (champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE) {
t.addQueue(chId);
}
}
},
populateChampRepairListBox: function () {
var repairList = document.getElementById('STrChOChampRepairList');
var m = '<option value=0>--Items--</option>';
var item_count = STrChOChampRepairData.items.length;
for (chId in uW.kocChampionItems) {
var champItem = uW.kocChampionItems[chId];
if (champItem == null || !champItem) continue;
if (champItem.status != CM.CHAMPION.STATUS_BROKEN_ENHANCE && champItem.status != CM.CHAMPION.STATUS_BROKEN_UPGRADE) continue; //item not broken, move on
var foundIt = false;
for (var item_index = 0; item_index < item_count; item_index++) {
if (chId == STrChOChampRepairData.items[item_index]) {
foundIt = true;
break;
}
}
if (!foundIt) {
var optionText = champItem.name;
m += '<option value="' + chId + '">' + optionText + '</option>';
}
}
repairList.innerHTML = m;
},
deleteRepairItem: function (index) { // delete an item from the queue
var t = Tabs.champRepair;
STrChOChampRepairData.items.splice(index, 1);
SAVESTrChOChampRepairData();
t.populateChampRepairListBox();
t.buildChampRepairDisplay();
},
moveRepairUpRow: function (index) {
if (index < 1) return;
var t = Tabs.champRepair;
var q = STrChOChampRepairData.items.splice(index, 1);
STrChOChampRepairData.items.splice(index - 1, 0, q);
if (index == STrChOChampRepairData.index)
STrChOChampRepairData.index--;
else if (STrChOChampRepairData.index == index - 1)
STrChOChampRepairData.index++;
SAVESTrChOChampRepairData();
t.buildChampRepairDisplay();
},
moveRepairDownRow: function (index) {
if (index > (STrChOChampRepairData.items.length - 2)) return;
var t = Tabs.champRepair;
var q = STrChOChampRepairData.items.splice(index, 1);
STrChOChampRepairData.items.splice(index + 1, 0, q);
if (i == STrChOChampRepairData.index)
STrChOChampRepairData.index++;
else if (STrChOChampRepairData.index == i + 1)
STrChOChampRepairData.index--;
SAVESTrChOChampRepairData();
t.buildChampRepairDisplay();
},
setStatus: function (s) { document.getElementById('STrChOChampRepairStatus').innerHTML = "<div>" + s + "</div>"; },
setResult: function (s) { document.getElementById('STrChOChampRepairLastResult').innerHTML = "<div>" + s + "</div>"; },
togglePower: function (obj) {
var t = Tabs.champRepair;
var STrChOChampRepairPower = document.getElementById('STrChOChampRepairPower');
if (STrChOChampRepairData.active) {
STrChOChampRepairData.active = false;
STrChOChampRepairPower.value = "Repair = OFF";
t.setStatus("Powered Off");
t.setResult("");
} else {
STrChOChampRepairData.active = true;
STrChOChampRepairPower.value = "Repair = ON";
t.setStatus("Power On");
t.setResult("");
STrChOChampUpgradeData.active = false;
SAVESTrChOChampUpgradeData();
t.doAction();
}
if (!STrChOChampRepairData.active) {
}
SAVESTrChOChampRepairData();
},
clearRepair: function () {
var t = Tabs.champRepair;
var timeUntilDone = 0;
if (t.repairEnd == 0) {
return timeUntilDone;
}
timeUntilDone = t.repairEnd - unixTime();
if (timeUntilDone <= 0) {
if (t.repairId != 0 && uW.kocChampionItems[t.repairId] != null) {
if (uW.kocChampionItems[t.repairId].status != CM.CHAMPION.STATUS_INACTIVE
|| uW.kocChampionItems[t.repairId].status != CM.CHAMPION.STATUS_ACTIVE) {
t.setStatus("Repair time complete.");
document.getElementById('STrChOChampRepairState' + t.repairId).className = 'STrChOSuccess';
} else {
}
t.repairId = 0;
}
}
return timeUntilDone;
},
doRepair: function (rItemId) {
var t = Tabs.champRepair;
var params = uW.Object.clone(ajfx);
if (STrChOChampRepairData.active == false || rItemId == 0 || uW.kocChampionItems[rItemId] == null) return;
var theItem = uW.kocChampionItems[rItemId];
params.action = "6";
params.eid = rItemId;
params.cityId = uW.currentcityid;
params.gems = 0;
new AjaxRequest(uW.g_ajaxpath + "ajax/ceEquipmentManagerAjax.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
var item = uW.kocChampionItems[rslt.equipmentId];
ActionLog('Starting repair for Champion item ' + item.name);
if (!Seed.queue_champion) Seed.queue_champion = {};
Seed.queue_champion.itemId = rslt.equipmentId;
Seed.queue_champion.start = parseInt(rslt.start);
Seed.queue_champion.end = parseInt(rslt.eta);
t.repairId = parseInt(rslt.equipmentId);
t.repairEnd = rslt.eta;
var n = new Date(t.repairEnd * 1000);
t.setStatus("Repair begun ... Repair will be complete at " + n.toLocaleTimeString() + ". Item: " + item.name);
var x = rslt.eta - unixTime();
t.clearTimerH = setTimeout(t.clearRepair, (x + 1) * 1000);
if (item.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE)
item.status = CM.CHAMPION.STATUS_REPAIRING_ENHANCE;
else
item.status = CM.CHAMPION.STATUS_REPAIRING_UPGRADE;
t.buildChampRepairDisplay();
}
else {
// regrab the end times in case this is caused by a manual repair
if (Seed.queue_champion && Seed.queue_champion.end && Seed.queue_champion.itemId) {
t.repairEnd = Seed.queue_champion.end;
t.repairId = Seed.queue_champion.itemId;
}
if (feedback.index("There is one equipment in repairing queue") > 0) return; // item is still be repaired
if (rslt.feedback) {
t.setStatus(rslt.feedback);
uW.kocChampionItems[rItemId].status = CM.CHAMPION.STATUS_INACTIVE;
t.clearRepair();
}
}
return;
},
onFailure: function (ttt) { // this usually means a repair is in progress (such as a manualrepair). Grab the seed data (if possible)
if (Seed.queue_champion && Seed.queue_champion.end) {
t.repairEnd = Seed.queue_champion.end;
t.repairId = Seed.queue_champion.itemId;
}
return;
}
});
return;
},
buildChampRepairDisplay: function () {
var t = Tabs.champRepair;
STrChOChampRepairQDiv = document.getElementById('STrChOChampRepairQDiv');
var m = '<table id=STrChOChampRepair width=100% class=trTabPad>';
var item_count = STrChOChampRepairData.items.length;
//TODO
//var totalRepairTime = t.calcRepairTime();
//if (totalRepairTime > 0) $("#trRepair").append("<caption><b><i>Total Repair Time (" + item_count + " items): " + repairTimeToText(totalRepairTime) + "</i></b></caption>");
m += '<tr><th width=10%>Remove</th><th width=5%>Reorder</th><th width=8%>Status</th><th width=25%>Item</th></tr>';
if (item_count > 0) {
for (var item_index = 0; item_index < item_count; item_index++) {
var chId = STrChOChampRepairData.items[item_index];
if (chId == null) {
t.deleteRepairItem(item_index);
return;
}
var champItem = uW.kocChampionItems[chId];
if (champItem == null || !champItem) {
t.deleteRepairItem(item_index);
return;
}
m += '<tr>';
m += '<td align=center><div class=STrChORemove id=STrChOChampRepairRemove' + chId + '></div></td>';
m += '<td align=center><div class=STrChOUpRow id=STrChOChampRepairUpRow' + chId + '></div><div class=STrChODownRow id=STrChOChampRepairDownRow' + chId + '></div></td>';
m += '<td align=center><div id=STrChOChampRepairState' + chId + '></div></td>';
m += '<td align=center><div id=STrChOChampRepairItem' + chId + '>' + champItem.name + '</div></td>';
m += '</tr>';
}
m += '</table>';
STrChOChampRepairQDiv.innerHTML = m;
for (var item_index = 0; item_index < item_count; item_index++) {
var chId = STrChOChampRepairData.items[item_index];
var champItem = uW.kocChampionItems[chId];
if (champItem == null || !champItem) continue;
document.getElementById('STrChOChampRepairRemove' + chId).setAttribute('v1', item_index);
document.getElementById('STrChOChampRepairRemove' + chId).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.deleteRepairItem(qIndex);
}, false);
document.getElementById('STrChOChampRepairUpRow' + chId).setAttribute('v1', item_index);
document.getElementById('STrChOChampRepairUpRow' + chId).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.moveRepairUpRow(qIndex);
}, false);
document.getElementById('STrChOChampRepairDownRow' + chId).setAttribute('v1', item_index);
document.getElementById('STrChOChampRepairDownRow' + chId).addEventListener('click', function () {
var qIndex = this.getAttribute('v1');
t.moveRepairDownRow(qIndex);
}, false);
var champItem = uW.kocChampionItems[chId];
if (!champItem || !(champItem.equipmentId)) {
document.getElementById('STrChOChampRepairState' + chId).innerHTML = '<div style="text-align:center"> ??</div>';
} else if (champItem.status == CM.CHAMPION.STATUS_ACTIVE) {
document.getElementById('STrChOChampRepairState' + chId).className = 'STrChOSuccess';
} else if (champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE) {
document.getElementById('STrChOChampRepairState' + chId).className = 'STrChOBroken';
} else if (champItem.status == CM.CHAMPION.STATUS_REPAIRING_UPGRADE || champItem.status == CM.CHAMPION.STATUS_REPAIRING_ENHANCE) {
document.getElementById('STrChOChampRepairState' + chId).className = 'STrChOHammer';
} else {
document.getElementById('STrChOChampRepairState' + chId).innerHTML = '<div class=STrChOGoButton></div>';
}
}
} else {
m += '</table>';
STrChOChampRepairQDiv.innerHTML = m;
}
},
}
Tabs.champOrganizer = {
tabOrder: 203,
tabLabel: 'ORGANIZER',
tabColor: 'brown',
tabHeader: 'CHAMP HALL ORGANIZER',
champItemLists: [],
sortEffect: "none",
buffType: "both",
panelId: -1,
panelType: "upgrade",
panelNextLevel: 2,
switchingPresets: false,
init: function (div) {
var t = Tabs.champOrganizer;
t.mydiv = div;
t.sortEffect = STrChOChampUpgradeData.effectSelected;
t.buffType = STrChOChampUpgradeData.buffSelected;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td align=center><b>You Have <i><div class=divNoWrap id=STrChOCountChampCards></div></i> Champ Cards</b></td></tr>';
m += '<tr><td>';
m += 'Sort: <select class=STrChOSelect id=STrChOChampSortEffects>';
m += '<option value="none">--Effect--</option>';
for (efx in champEffects) m += '<option value="' + champEffects[efx] + '">' + champEffects[efx] + '</option>';
m += '</select>';
m += '<select class=STrChOSelect id=STrChOChampBuffType>';
m += '<option value="both">Either</option>';
m += '<option value="buff">Buff</option>';
m += '<option value="debuff">Debuff</option>';
m += '</select>';
m += '<input id=STrChOChampSortInactive class=STrChOCheckbox type=checkbox ' + (STrChOChampUpgradeData.sortInactive ? ' CHECKED' : '') + '/> Include Inactive ';
m += '<input id=STrChOChampIgnoreBroken class=STrChOCheckbox type=checkbox ' + (STrChOChampUpgradeData.ignoreBroken ? ' CHECKED' : '') + '/> Ignore Broken';
m += '</td></tr>';
m += '</table>';
m += '</div>';
m += '<div id=STrChOChampOrganizerScroll style="position: static; width: ' + (dlgWidth - (dlgWidthOffset + dlgWidthMenu)) + 'px; height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; overflow-x: hidden; overflow-y: auto;">';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> CARD FILTER <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable cellspacing=0 cellpadding=0>';
m += '<tr><td colspan=3>';
m += 'Filter By Effects: <select class=STrChOSelect id=STrChOChampFilterEffects>';
m += '<option value="none">--Effect--</option>';
for (efx in champEffects) m += '<option value="' + champEffects[efx] + '">' + champEffects[efx] + '</option>';
m += '</select>';
m += '<select class=STrChOSelect id=STrChOChampFilterBuffType>';
m += '<option value="buff">Buff</option>';
m += '<option value="debuff">Debuff</option>';
m += '</select>';
m += '</td></tr>';
m += '<tr><td colspan=3><hr class=STrChOHRCenter></td></tr>';
m += '<tr><td>Faction</td><td>Quality</td><td>Level</td></tr>';
m += '<tr>';
m += '<td><div id=STrChOChampFactionFilterRow style="float: left; width: 100px; border:2px solid #ccc; height: 105px; overflow-y: scroll; background-color: white;">';
for (var fact = 0; fact < STrChOFactions.length; fact++) m += '<input id=STrChOChampFaction' + STrChOFactions[fact] + ' class=STrChOCheckbox type=checkbox CHECKED />' + STrChOFactions[fact].capitalizeFirstLetter() + '<br />';
m += '</div></td>';
m += '<td><div id=STrChOChampQualityFilterRow style="float: left; width: 120px; border:2px solid #ccc; height: 105px; overflow-y: scroll; background-color: white;">';
for (var qual = 0; qual < champCardQualities.length; qual++) m += '<input id=STrChOChampQuality' + qual + ' class=STrChOCheckbox type=checkbox CHECKED />' + champCardQualities[qual].capitalizeFirstLetter() + '<br />';
m += '</div></td>';
m += '<td><div id=STrChOChampLevelFilterRow style="float: left; width: 120px; border:2px solid #ccc; height: 105px; overflow-y: scroll; background-color: white;">';
for (lvl = 0; lvl <= STrChOMaxChampLevel; lvl++) {
m += '<input id=STrChOChampLevel' + lvl + ' class=STrChOCheckbox type=checkbox CHECKED />' + lvl + '<br /> ';
}
m += '</div></td>';
m += '</tr>';
m += '<tr>';
m += '<td/>';
m += '<td><input style="width:120px;" id=STrChOChampUnselectAllQualities class=STrChOButton type=button value="Unselect All"></td>';
m += '<td><input style="width:120px;" id=STrChOChampUnselectAllLevels class=STrChOButton type=button value="Unselect All"></td>';
m += '</tr>';
m += '<tr>';
m += '<td/>';
m += '<td><input style="width:120px;" id=STrChOChampSelectAllQualities class=STrChOButton type=button value="Select All"></td>';
m += '<td><input style="width:120px;" id=STrChOChampSelectAllLevels class=STrChOButton type=button value="Select All"></td>';
m += '</tr>';
m += '</table>';
m += '</div>';
for (champItemCardType in champItemNames) {
m += '<div class=STrChOChampOrganizer onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> ' + champItemNames[champItemCardType].toUpperCase() + ' <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOChampOrganizerSection id=STrChOChampCardSection' + champItemNames[champItemCardType] + '></div>';
}
t.mydiv.innerHTML = '<div>' + m + '</div>';
var champOrganizers = document.getElementsByClassName('STrChOChampOrganizer');
for (var champOrg=0; champOrg < champOrganizers.length; champOrg++) {
champOrganizers[champOrg].addEventListener('click', function () {
var imgs = this.childNodes;
if (imgs[0].src == STrChODownArrow) {
imgs[0].src = STrChORightArrow
imgs[2].src = STrChORightArrow
} else {
imgs[0].src = STrChODownArrow
imgs[2].src = STrChODownArrow
}
var section = this.nextSibling;
if (section.className != 'STrChOChampOrganizerSection') return;
if (section.style.display == 'block')
section.style.display = 'none';
else
section.style.display = 'block';
}, false);
}
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
document.getElementById('STrChOChampSortEffects').value = STrChOChampUpgradeData.effectSelected;
document.getElementById('STrChOChampBuffType').value = STrChOChampUpgradeData.buffSelected;
document.getElementById('STrChOChampSortInactive').checked = STrChOChampUpgradeData.sortInactive;
document.getElementById('STrChOChampIgnoreBroken').checked = STrChOChampUpgradeData.ignoreBroken;
document.getElementById('STrChOChampFilterBuffType').addEventListener('change', function () {
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampFilterEffects').addEventListener('change', function () {
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampSortEffects').addEventListener('change', function () {
t.sortEffect = this.value;
STrChOChampUpgradeData.effectSelected = t.sortEffect;
SAVESTrChOChampUpgradeData();
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampBuffType').addEventListener('change', function () {
t.buffType = this.value;
STrChOChampUpgradeData.buffSelected = t.buffType;
SAVESTrChOChampUpgradeData();
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampSortInactive').addEventListener('click', function () {
STrChOChampUpgradeData.sortInactive = document.getElementById('STrChOChampSortInactive').checked;
SAVESTrChOChampUpgradeData();
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampIgnoreBroken').addEventListener('click', function () {
STrChOChampUpgradeData.ignoreBroken = document.getElementById('STrChOChampIgnoreBroken').checked;
SAVESTrChOChampUpgradeData();
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampUnselectAllQualities').addEventListener('click' , function () {
for (var qual = 0; qual < champCardQualities.length; qual++) document.getElementById('STrChOChampQuality' + qual).checked = false;
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampSelectAllQualities').addEventListener('click', function () {
for (var qual = 0; qual < champCardQualities.length; qual++) document.getElementById('STrChOChampQuality' + qual).checked = true;
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampQualityFilterRow').addEventListener('change', function () {
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampUnselectAllLevels').addEventListener('click' , function () {
for (lvl = 0; lvl <= STrChOMaxChampLevel; lvl++) document.getElementById('STrChOChampLevel' + lvl).checked = false;
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampSelectAllLevels').addEventListener('click', function () {
for (lvl = 0; lvl <= STrChOMaxChampLevel; lvl++) document.getElementById('STrChOChampLevel' + lvl).checked = true;
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampLevelFilterRow').addEventListener('change', function () {
t.createChampItemList();
t.paintChampTables();
}, false);
document.getElementById('STrChOChampFactionFilterRow').addEventListener('change', function () {
t.createChampItemList();
t.paintChampTables();
}, false);
t.createChampItemList();
t.paintChampTables();
},
hide: function () {
},
createChampItemList: function () {
var t = Tabs.champOrganizer;
for (var champItemTypeValue in champItemNames) t.champItemLists[champItemTypeValue] = new Array;
for (champId in uW.kocChampionItems) {
var champItem = uW.kocChampionItems[champId];
// apply filters
var faction = STrChOFactions[champItem.faction -1];
var level = champItem.level;
var champtype = champItem.type;
var quality = champItem.rarity;
var isBroken = champItem.status;
if (STrChOChampUpgradeData.ignoreBroken && (isBroken == CM.CHAMPION.STATUS_BROKEN_UPGRADE || isBroken == CM.CHAMPION.STATUS_BROKEN_ENHANCE)) continue;
if (!document.getElementById('STrChOChampQuality' + quality)) continue;
if (!document.getElementById('STrChOChampQuality' + quality).checked) continue;
if (!document.getElementById('STrChOChampFaction' + faction)) continue;
if (!document.getElementById('STrChOChampFaction' + faction).checked) continue;
if (!document.getElementById('STrChOChampLevel' + level)) continue;
if (!document.getElementById('STrChOChampLevel' + level).checked) continue;
var filterEffect = document.getElementById('STrChOChampFilterEffects').value;
if (filterEffect != 'none') {
var filterBuff = document.getElementById('STrChOChampFilterBuffType').value;
if (filterBuff == 'debuff') filterEffect += ' Debuff';
var foundEffect = false;
for (e in champItem.effects) {
var N = champItem.effects[e];
var effect = uW.g_js_strings.effects["name_" + N.id];
if (effect == filterEffect) {
foundEffect = true;
break;
}
}
if (!foundEffect) continue;
}
if (champItem.equippedTo > 0)
t.champItemLists[champtype].unshift(champItem);
else
t.champItemLists[champtype].push(champItem);
}
t.sortChampOrganizerLists();
},
sortChampOrganizerLists: function () {
var t = Tabs.champOrganizer;
STrChOChampUpgradeData.sortInactive = document.getElementById('STrChOChampSortInactive') == null ? false : document.getElementById('STrChOChampSortInactive').checked;
for (i = 0; i < t.champItemLists.length; i++) {
if (!t.champItemLists[i]) continue;
t.champItemLists[i].sort(function (item1, item2) {
return t.sortChampOrganizerValue(item2) - t.sortChampOrganizerValue(item1);
});
}
},
sortChampOrganizerValue: function (item) {
var t = Tabs.champOrganizer;
var retValue = 0.0;
for (e in item.effects) {
try {
var N = item.effects[e];
var id = item.effects[e].id;
var effect = "";
var quality = item.rarity;
effect = uW.g_js_strings.effects["name_" + id];
var S = champTiers;
var P = id + "," + N.tier;
var tier = S[P];
var base = tier.Base || 0;
var growth = tier.Growth || 0;
var level = item.level || 0;
// slot number
var B = +e;
if (B > quality && !STrChOChampUpgradeData.sortInactive) {
return +retValue;
}
var percent = +(base + ((level * level + level) * growth * 0.5));
if ((effect == (t.sortEffect + " Debuff")) && (t.sortType != "buff")) {
retValue -= percent;
}
else if (effect == t.sortEffect && t.sortType != "debuff") {
retValue += percent;
}
} catch (e) {
}
}
return +retValue;
},
paintChampTables: function () {
var t = Tabs.champOrganizer;
for (champItemTypeValue in t.champItemLists) {
var m = '<table><tr>';
var divCards = document.getElementById('STrChOChampCardSection' + champItemNames[champItemTypeValue]);
if (!divCards) continue;
divCards.innerHTML = "<div></div>";
for (idx = 0; idx < t.champItemLists[champItemTypeValue].length; idx++) {
var champItem = t.champItemLists[champItemTypeValue][idx];
m += '<td><div class=STrChOChampCard id=STrChOChampCard' + champItem.equipmentId + '>';
m += BuildChampCard(champItem);
m += '</div></td>';
}
m += '</tr></table>';
divCards.innerHTML = '<div>' + m + '</div>';
}
var STrChOCards = document.getElementsByClassName('STrChOChampCard');
for (idx = 0; idx < STrChOCards.length; idx++) {
STrChOCards[idx].addEventListener('click', function (A) {
A.stopPropagation();
var champId = this.id.split('STrChOChampCard')[1];
var champItem = uW.kocChampionItems[champId];
var STrChOCard = document.getElementById('STrChOChampCard' + champId);
CardContextMenu(this, champItem, true);
},false);
}
},
show: function () {
var t= Tabs.champOrganizer;
if (document.getElementById('STrChOCountChampCards') != null) document.getElementById('STrChOCountChampCards').innerHTML = countHowManyChampCards();
t.createChampItemList();
t.paintChampTables();
},
showNextChampLevel: function () {
var t = Tabs.champOrganizer;
if (t.panelNextLevel + 1 > STrChOMaxChampLevel) return;
var elemStatTitle = document.getElementsByClassName('upgEnhStatsTitle')[1];
t.panelNextLevel++;
elemStatTitle.innerHTML = "Level " + t.panelNextLevel + (t.panelNextLevel == STrChOMaxChampLevel ? "" : " (<i>Next</i>)");
var elemStatBody = document.getElementById('upgEnhStatsBodyTarget');
var elemStatItems = elemStatBody.getElementsByTagName("li");
var champ_item = uW.kocChampionItems[t.panelId];
for (var elemIndex = 0; elemIndex < elemStatItems.length; ++elemIndex) {
var elemItem = elemStatItems[elemIndex];
var slotNumber = elemIndex + 1;
var effectLine = champ_item.effects[slotNumber];
var effect = CM.ChampionManager.getEffect(effectLine, t.panelNextLevel);
elemItem.innerHTML = effect.name + " " + effect.amount;
}
},
}
Tabs.champEnhStats = {
tabOrder: 204,
tabLabel: 'ENH STATS',
tabColor: 'brown',
tabHeader: 'CHAMP HALL ENHANCEMENT STATS',
init: function (div) {
var t = Tabs.champEnhStats;
t.mydiv = div;
t.buildChampEnhStatsDisplay();
},
hide: function () {},
buildChampEnhStatsDisplay: function () {
var t = Tabs.champEnhStats;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - (dlgWidthOffset*2.5)) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table class=STrChOStats align=center cellspacing=0>';
m += '<tr valign=top align=center><th colspan=' + (STrChOMaxChampQuality + 2) + '>Enhancing Numbers (successes/failures)</th></tr>';
m += '<tr valign=top align=center><th></th>';
for (qual = 0; qual <= STrChOMaxChampQuality; qual++) m += '<td style="font-weight: bold;" class="td' + (qual % 2 + 1) + '" >' + champCardQualities[qual].capitalizeFirstLetter() + ' </td>';
m += '</tr>';
var st = [0, 0, 0, 0, 0, 0];
var ft = [0, 0, 0, 0, 0, 0];
for (lvl = 0; lvl <= STrChOMaxChampLevel; lvl++) {
m += '<tr valign=top align=center>';
m += '<th>';
if (lvl != 0) m += '+';
m += lvl + '</th>';
for (qual = 0; qual < (STrChOMaxChampQuality+1); qual++) {
if (STrChOChampUpgradeStats.enhanceSuccess[qual][lvl] == null) STrChOChampUpgradeStats.enhanceSuccess[qual][lvl] = 0;
if (STrChOChampUpgradeStats.enhanceFailure[qual][lvl] == null) STrChOChampUpgradeStats.enhanceFailure[qual][lvl] = 0;
st[qual] += STrChOChampUpgradeStats.enhanceSuccess[qual][lvl];
ft[qual] += STrChOChampUpgradeStats.enhanceFailure[qual][lvl];
m += '<td class="td' + (qual % 2) + '" >' + STrChOChampUpgradeStats.enhanceSuccess[qual][lvl] + ' / ' + STrChOChampUpgradeStats.enhanceFailure[qual][lvl] + '</td>';
}
m += '</tr>';
}
m += '<tr valign=top align=center><th> Totals: </th>';
for (qual = 0; qual < (STrChOMaxChampQuality+1); qual++) m += '<td style="font-weight: bold;" class="td' + (qual % 2) + '" >' + st[qual] + ' / ' + ft[qual] + '</td>';
m += '</tr>';
m += '<tr valign=top align=center><th> Percents: </th>';
for (qual = 0; qual < (STrChOMaxChampQuality+1); qual++) {
m += '<td style="font-weight: bold;" class="td' + (qual % 2) + '" >';
if ((st[qual] + ft[qual]) == 0)
m += "--";
else {
var perc = (100 * st[qual] / (st[qual] + ft[qual]));
m += perc.toFixed(2) + '%';
}
m += '</td>';
}
m += '</tr>';
m += '</table>';
m += '</div>';
m += '<center><input type=button class=STrChOButton value="Clear Stats" id=STrChOChampEnhStatsClear></center>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOChampEnhStatsClear').addEventListener('click', function () {
var t = Tabs.champEnhStats;
for (lvl = 0; lvl <= STrChOMaxChampLevel; lvl++) {
for (qual = 0; qual < (STrChOMaxChampQuality+1); qual++) {
STrChOChampUpgradeStats.enhanceSuccess[qual][lvl] = null;
STrChOChampUpgradeStats.enhanceFailure[qual][lvl] = null;
}
}
SAVESTrChOChampUpgradeStats();
t.buildChampEnhStatsDisplay();
}, false);
},
show: function () {
var t = Tabs.champEnhStats;
t.buildChampEnhStatsDisplay();
},
}
Tabs.champUpgStats = {
tabOrder: 205,
tabLabel: 'UPG STATS',
tabColor: 'brown',
tabHeader: 'CHAMP HALL UPGRADE STATS',
init: function (div) {
var t = Tabs.champUpgStats;
t.mydiv = div;
t.buildChampUpgStatsDisplay();
},
hide: function () {},
buildChampUpgStatsDisplay: function () {
var t = Tabs.champUpgStats;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - (dlgWidthOffset*2.5)) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table class=STrChOStats align=center cellspacing=0>';
m += '<tr valign=top align=center><th colspan=' + (STrChOMaxChampLevel+2) + '>Upgrading Numbers (successes/failures)</TH></TR>';
m += '<tr valign=top align=center><th></th>';
for (lvl = 0; lvl < STrChOMaxChampLevel; lvl++) m += '<td style="font-weight: bold;" class="td' + (lvl % 2) + '" > +' + (lvl + 1) + ' </td>';
m += '</tr>';
var st = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ]; //TODO: increase when game increases max champ levels (currently 45)
var ft = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ];
for (qual = 0; qual <= STrChOMaxChampQuality; qual++) {
m += '<tr valign=top align=center><th>' + champCardQualities[qual].capitalizeFirstLetter() + '</th>';
for (lvl = 0; lvl < STrChOMaxChampLevel; lvl++) {
if (STrChOChampUpgradeStats.upgradeSuccess[qual][lvl] == null || isNaN(STrChOChampUpgradeStats.upgradeSuccess[qual][lvl])) STrChOChampUpgradeStats.upgradeSuccess[qual][lvl] = 0;
if (STrChOChampUpgradeStats.upgradeFailure[qual][lvl] == null || isNaN(STrChOChampUpgradeStats.upgradeFailure[qual][lvl])) STrChOChampUpgradeStats.upgradeFailure[qual][lvl] = 0;
st[lvl] += STrChOChampUpgradeStats.upgradeSuccess[qual][lvl];
ft[lvl] += STrChOChampUpgradeStats.upgradeFailure[qual][lvl];
m += '<td class="td' + (lvl % 2) + '" >';
m += STrChOChampUpgradeStats.upgradeSuccess[qual][lvl] + ' / ' + STrChOChampUpgradeStats.upgradeFailure[qual][lvl];
m += '</td>';
}
m += '</tr>';
}
m += '<tr valign=top align=center><th> Totals: </th>';
for (lvl = 0; lvl < STrChOMaxChampLevel; lvl++) m += '<td style="font-weight: bold;" class="td' + (lvl % 2) + '" >' + st[lvl] + " / " + ft[lvl] + '</td>';
m += '</tr>';
m += '<tr valign=top align=center><th> Percents: </th>';
for (lvl = 0; lvl < STrChOMaxChampLevel; lvl++) {
m += '<td style="font-weight: bold;" class="td' + (lvl % 2) + '" >';
if ((st[lvl] + ft[lvl]) == 0)
m += '--';
else {
var perc = (100 * st[lvl] / (st[lvl] + ft[lvl]));
m += perc.toFixed(2) + '%';
}
m += '</td>';
}
m += '</tr>';
m += '</table>';
m += '</div>';
m += '<center><input type=button class=STrChOButton value="Clear Stats" id=STrChOChampUpgStatsClear></center>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOChampUpgStatsClear').addEventListener('click', function () {
var t = Tabs.champUpgStats;
for (lvl = 0; lvl <= STrChOMaxChampLevel; lvl++) {
for (qual = 0; qual < (STrChOMaxChampQuality+1); qual++) {
STrChOChampUpgradeStats.upgradeSuccess[qual][lvl] = null;
STrChOChampUpgradeStats.upgradeFailure[qual][lvl] = null;
}
}
SAVESTrChOChampUpgradeStats();
t.buildChampUpgStatsDisplay()
}, false);
},
show: function () {
var t = Tabs.champUpgStats;
t.buildChampUpgStatsDisplay();
},
}
Tabs.champPresets = {
tabOrder: 206,
tabLabel: 'PRESETS',
tabColor: 'brown',
tabHeader: 'CHAMP HALL PRESETS',
broke_items: 0,
broke_count: 0,
delay: 2000,
init: function (div) {
var t = Tabs.champPresets;
t.mydiv = div;
},
hide: function () {},
refreshBrokeMightDisplay: function () {
document.getElementById('STrChOChampMightBroke').innerHTML = getChampBrokeMight();
},
show: function () {
var t = Tabs.champPresets;
var m = '<div class=STrChOHeader>' + t.tabHeader + '<div class=STrChOSaveSettings id=STrChOChampPresetsSaveSettings title="Save Presets Settings"></div><div class=STrChOLoadSettings id=STrChOChampPresetsLoadSettings title="Load Presets Settings"></div></div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table>';
m += '<tr><td width=100%>Preset Color: <select class=STrChOSelect id=STrChOChampPresetColor>';
m += '<option ' + (STrChOChampPresetData.presetColor == "#FFFFFF" ? 'SELECTED ' : '') + 'value="#FFFFFF">White</option>';
m += '<option ' + (STrChOChampPresetData.presetColor == "#808080" ? 'SELECTED ' : '') + 'value="#808080">Gray</option>';
m += '<option ' + (STrChOChampPresetData.presetColor == "#FF0000" ? 'SELECTED ' : '') + 'value="#FF0000">Red</option>';
m += '<option ' + (STrChOChampPresetData.presetColor == "#FFFF00" ? 'SELECTED ' : '') + 'value="#FFFF00">Yellow</option>';
m += '<option ' + (STrChOChampPresetData.presetColor == "#00FF00" ? 'SELECTED ' : '') + 'value="#00FF00">Lime</option>';
m += '<option ' + (STrChOChampPresetData.presetColor == "#00FFFF" ? 'SELECTED ' : '') + 'value="#00FFFF">Aqua</option>';
m += '<option ' + (STrChOChampPresetData.presetColor == "#0000FF" ? 'SELECTED ' : '') + 'value="#0000FF">Blue</option>';
m += '<option ' + (STrChOChampPresetData.presetColor == "#FF00FF" ? 'SELECTED ' : '') + 'value="#FF00FF">Fuchsia</option>';
m += '</select>';
m += ' General Color: <select class=STrChOSelect id=STrChOChampTagColor>';
m += '<option ' + (STrChOChampPresetData.tagColor == "#FFFFFF" ? 'SELECTED ' : '') + 'value="#FFFFFF">White</option>';
m += '<option ' + (STrChOChampPresetData.tagColor == "#808080" ? 'SELECTED ' : '') + 'value="#808080">Gray</option>';
m += '<option ' + (STrChOChampPresetData.tagColor == "#FF0000" ? 'SELECTED ' : '') + 'value="#FF0000">Red</option>';
m += '<option ' + (STrChOChampPresetData.tagColor == "#FFFF00" ? 'SELECTED ' : '') + 'value="#FFFF00">Yellow</option>';
m += '<option ' + (STrChOChampPresetData.tagColor == "#00FF00" ? 'SELECTED ' : '') + 'value="#00FF00">Lime</option>';
m += '<option ' + (STrChOChampPresetData.tagColor == "#00FFFF" ? 'SELECTED ' : '') + 'value="#00FFFF">Aqua</option>';
m += '<option ' + (STrChOChampPresetData.tagColor == "#0000FF" ? 'SELECTED ' : '') + 'value="#0000FF">Blue</option>';
m += '<option ' + (STrChOChampPresetData.tagColor == "#FF00FF" ? 'SELECTED ' : '') + 'value="#FF00FF">Fuchsia</option>';
m += '</select>';
m += ' Active Color: <select class=STrChOSelect id=STrChOChampActiveColor>';
m += '<option ' + (STrChOChampPresetData.activeColor == "#FFFFFF" ? 'SELECTED ' : '') + 'value="#FFFFFF">White</option>';
m += '<option ' + (STrChOChampPresetData.activeColor == "#808080" ? 'SELECTED ' : '') + 'value="#808080">Gray</option>';
m += '<option ' + (STrChOChampPresetData.activeColor == "#FF0000" ? 'SELECTED ' : '') + 'value="#FF0000">Red</option>';
m += '<option ' + (STrChOChampPresetData.activeColor == "#FFFF00" ? 'SELECTED ' : '') + 'value="#FFFF00">Yellow</option>';
m += '<option ' + (STrChOChampPresetData.activeColor == "#00FF00" ? 'SELECTED ' : '') + 'value="#00FF00">Lime</option>';
m += '<option ' + (STrChOChampPresetData.activeColor == "#00FFFF" ? 'SELECTED ' : '') + 'value="#00FFFF">Aqua</option>';
m += '<option ' + (STrChOChampPresetData.activeColor == "#0000FF" ? 'SELECTED ' : '') + 'value="#0000FF">Blue</option>';
m += '<option ' + (STrChOChampPresetData.activeColor == "#FF00FF" ? 'SELECTED ' : '') + 'value="#FF00FF">Fuchsia</option>';
m += '</select>(Requires Refresh)</td></tr>';
m += '<tr><td>';
m += '<input type=button class=STrChOButton id=STrChOChampClearTags value="Clear All Tags"> ';
m += '<input type=button class=STrChOButton id=STrChOChampClearAllPresetTags value="Clear All Preset Tags"> ';
m += '<input type=button class=STrChOButton id=STrChOChampSaveAllPresetTags value="Save All Preset Tags"> ';
//m += '<input type=button id=trExportPresetTags value="Export Preset Tags">';
m += '</td></tr>';
m += '<tr><td>';
m += '<input type=checkbox class=STrChOCheckbox id=STrChOChampShowMight ' + (STrChOChampPresetData.showChampMight ? 'CHECKED' : '') + '/>Show Might on Posts';
m += ' <input type=checkbox class=STrChOCheckbox id=STrChOChampShowName ' + (STrChOChampPresetData.showChampName ? 'CHECKED' : '') + '/>Show Preset Name on Posts';
m += '</td></tr>';
m += '</table>';
m += '<div class=STrChOHeader id=STrChOChampPresetNaming onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> PRESET NAMING <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
if (STrChOMaxChampions == 0) {
m += '<tr><td>No Champions</td></tr>';
} else {
var presetsList = "";
for (var i = 1; i < STrChOMaxChampions + 1; i++) {
presetsList += '<option value="' + i + '">' + i + '</option>';
}
for (var i = 1; i < STrChOMaxChampions+1; i++) {
var thisChampion = Seed.champion.champions[i-1];
m += '<tr>';
m += '<td><input class="STrChOChampPresetSlotPost STrChOButton" type=button id=STrChOChampPreset' + i + ' value="Post Slot"></td>';
m += '<td><input class="STrChOChampPresetTagPost STrChOButton" type=button id=STrChOChampPreset' + i + ' value="Post Tag"></td>';
if (thisChampion.name == "") {
m += '<td><b>Champ ' + i + ':</b></td>';
} else {
m += '<td><b>' + thisChampion.name + ':</b></td>';
}
m += '<td><input class="STrChOChampPresetNameEntry STrChOTextbox" type=text size=15 id=STrChOChampPresetName' + i + ' value="' + STrChOChampPresetData.presetNames[i-1] + '"></td>';
m += '<td><input class="STrChOChampPresetCopyTo STrChOButton" type=button id=STrChOChampPreset' + i + ' value="Copy To"><select class=STrChOSelect id=STrChOChampPresetCopyToWhat' + i + '>' + presetsList + '</select></td>';
m += '<td><input class="STrChOChampPresetSave STrChOButton" type=button id=STrChOChampPreset' + i + ' value="Save"></td>';
if (getChampPresetTagCount(i) != 0) {
m += '<td><input class="STrChOChampPresetClear STrChOButton" type=button id=STrChOChampPreset' + i + ' value="Clear"></td>';
m += '<td><input class="STrChOChampPresetExcel STrChOButton" type=button id=STrChOChampPreset' + i + ' value="Excel"></td>';
} else {
m += '<td/><td/>';
}
m += '</tr>';
}
}
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> CHAMP HALL BREAKING <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td><div id=STrChOChampMightBroke>You have 0 champ hall might broken</div></td></tr>';
m += '<tr><td><input type=checkbox checked class=STrChOCheckbox id=STrChOChampExcludePresets>Exclude Tagged Presets</td></tr>';
m += '<tr><td><input type=checkbox checked class=STrChOCheckbox id=STrChOChampExcludeTags>Exclude Regular Tagged</td></tr>';
m += '<tr><td>Break Items Level <select class=STrChOSelect id=STrChOChampBreakLevelLow>';
for (lvl = 1; lvl < STrChOMaxChampLevel; lvl++) {
m += '<option value=' + lvl + '>+' + lvl + '</option>';
}
m += '</select> or Higher</td></tr>';
m += '<tr><td>Break Items Level <select class=STrChOSelect id=STrChOChampBreakLevelHigh>';
for (lvl = 1; lvl < STrChOMaxChampLevel; lvl++) {
m += '<option value=' + lvl + (lvl == STrChOMaxChampLevel - 1 ? ' SELECTED' : '') + '>+' + lvl + '</option>';
}
m += '</select> or Lower</td></tr>';
m += '<tr><td><input type=button class=STrChOButton id=STrChOChampBreakAll value="Break Now"><font color=red><i>(all options above will reset after refresh)</i></font></td></tr>';
m += '<tr><td><div id=STrChOChampBreakCounter></div></td></tr>';
// m += '<tr><td><hr></td></tr>';
// m += '<tr><td>Break Equiped Throne Room Only<select class=STrChOSelect id=STrChOThronePresetEquipBreak>' + presetsList + '</select><input type=button class=STrChOButton id=STrChOThronePresetEquipBreakNow value="Break Now"></td></tr>';
// m += '<tr><td>Break Tagged Preset Only<select class=STrChOSelect id=STrChOThronePresetTaggedBreak>' + presetsList + '</select><input type=button class=STrChOButton id=STrChOThronePresetTaggedBreakNow value="Break Now"></td></tr>';
// m += '<tr><td>Break <input type=number class=STrChOText id=STrChOThroneMightBreak oncontextmenu="return false;"> Throne Might <input type=button class=STrChOButton id=STrChOThroneMightBreakNow value="Break Now"></td></tr>';
m += '</table>';
m += '</div>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOChampPresetsSaveSettings').addEventListener('click', function () {
SaveSettingsToFile(STrChOChampPresetData);
}, false);
document.getElementById('STrChOChampPresetsLoadSettings').addEventListener('click', function () {
var loader = document.getElementById('STrChOSettingsFile');
loader.addEventListener('change', function () {
LoadSettingsFromFile(STrChOChampPresetData, Tabs.champPresets);
}, false);
loader.click();
}, false);
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
t.refreshBrokeMightDisplay();
document.getElementById('STrChOChampShowMight').addEventListener('change', function () {
STrChOChampPresetData.showChampMight = document.getElementById('STrChOChampShowMight').checked;
SAVESTrChOChampPresetData();
}, false);
document.getElementById('STrChOChampShowName').addEventListener('change', function () {
STrChOChampPresetData.showChampName = document.getElementById('STrChOChampShowName').checked;
SAVESTrChOChampPresetData();
}, false);
document.getElementById('STrChOChampBreakAll').addEventListener('click', function () {
if (!confirm('You cannot undo this action, are you sure you want to break your champ hall?')) return;
var excludePresets = document.getElementById('STrChOChampExcludePresets').checked;
var excludeTags = document.getElementById('STrChOChampExcludeTags').checked;
var breakLevelLow = document.getElementById('STrChOChampBreakLevelLow').value;
var breakLevelHigh = document.getElementById('STrChOChampBreakLevelHigh').value;
var allTaggedPresets = [];
if (excludePresets) {
for (i = 1; i < STrChOMaxChampions + 1; i++) {
if (getChampPresetTagCount(i) != 0) {
var thisPreset = getChampPresetObject(i);
for (var champId in thisPreset) {
var champ_item = uW.kocChampionItems[champId];
if (champ_item == null || !champ_item) continue;
if (champ_item.level == STrChOMaxChampLevel) continue;
if (champ_item.level < breakLevelLow || champ_item.level > breakLevelHigh) continue;
allTaggedPresets.push(champId);
}
}
}
}
var champToBreak = [];
for (chId in uW.kocChampionItems) {
var champ_item = uW.kocChampionItems[chId];
if (champ_item == null || !champ_item) continue;
if (champ_item.status != 1) continue;//card broken?
if (excludeTags && STrChOChampPresetData.taggedItems[chId]) continue;
if (allTaggedPresets.indexOf(chId) != -1) continue;
if (champ_item.level == STrChOMaxChampLevel) continue;
if (champ_item.level < breakLevelLow || champ_item.level > breakLevelHigh) continue;
champToBreak.push(chId);
}
delete allTaggedPresets;
if (champToBreak.length == 0) {
alert('No champ items to break');
return;
}
t.broke_count = champToBreak.length;
t.setBreakStatus();
t.broke_items = 0;
for (var i = 0; i < champToBreak.length; i++) { //loop through all the champ items to be broke
var citytobreakfrom = 0; //start at the first city {the index is 0-based}
var champ_item = uW.kocChampionItems[champToBreak[i]]; //get the next champ item in the collection
var curr_level = champ_item.level; //get the current level of the champ item
var champ_id = champ_item.equipmentId; //get the champ item id
if (curr_level == STrChOMaxChampLevel) continue; //if for some reason a card at the max level makes it through the list then continue to the next in the list
var z = CM.WorldSettings.getSettingAsObject("CE_UPGRADE_AETHERSTONE_MAP");
var cost_to_upgrade = z[curr_level + 1].Aetherstones; //get the cost of stones to upgrade to the next level
while (citytobreakfrom < 8) { //loop through all the 8 cities checking for astone to upgrade for the break feature
stones_in_city = parseInt(Seed.resources["city" + Seed.cities[citytobreakfrom][0]]["rec5"][0]); //get the astone count for the city
if (cost_to_upgrade + STrChOBreakBuffer <= stones_in_city) break; //if you have the astone in the city then stop searching cities and do the upgrade
citytobreakfrom = citytobreakfrom + 1; //search to the next city in the loop
}
if (citytobreakfrom == 8) continue; //if you make it to 8, then you've exhausted all the cities astone search for this champ item, move to the next one
var city = Seed.cities[citytobreakfrom][0];
setTimeout(
(function(cy, id, uc) {
return function () {
upgradeIt(cy, id, uc);
}
}) (city, champ_id, cost_to_upgrade), (i+1) * t.delay);
}
setTimeout(function() {
var t = Tabs.champPresets;
if (t.broke_items == 0) {
alert('No Items broken.');
} else {
alert('Breaking CH complete. ' + t.broke_items + ' Champ items were broken. Page will now refresh.');
RefreshCamelot();
}
}, champToBreak.length * t.delay + t.delay);
}, false);
document.getElementById('STrChOChampClearAllPresetTags').addEventListener('click', function () {
t.clearAllPresetTagItems();
t.show();
document.getElementById('STrChOChampPresetNaming').click();
}, false);
document.getElementById('STrChOChampSaveAllPresetTags').addEventListener('click', function () {
for (i = 1; i < STrChOMaxChampions + 1; i++) {
t.addPresetTags(i);
}
t.show();
document.getElementById('STrChOChampPresetNaming').click();
}, false);
document.getElementById('STrChOChampClearTags').addEventListener('click', function () {
t.removeAllTagItems();
}, false);
document.getElementById('STrChOChampActiveColor').addEventListener('change', function () {
STrChOChampPresetData.activeColor = document.getElementById('STrChOChampActiveColor').value;
SAVESTrChOChampPresetData();
}, false);
document.getElementById('STrChOChampPresetColor').addEventListener('change', function () {
STrChOChampPresetData.presetColor = document.getElementById('STrChOChampPresetColor').value;
SAVESTrChOChampPresetData();
}, false);
document.getElementById('STrChOChampTagColor').addEventListener('change', function () {
STrChOChampPresetData.tagColor = document.getElementById('STrChOChampTagColor').value;
SAVESTrChOChampPresetData();
}, false);
var STrChOChampPresetSave = document.getElementsByClassName('STrChOChampPresetSave');
for (var idx=0;idx<STrChOChampPresetSave.length;idx++) {
STrChOChampPresetSave[idx].addEventListener('click', function() {
var id = this.id;
var num = id.split("STrChOChampPreset")[1];
t.addPresetTags(num);
t.show();
document.getElementById('STrChOChampPresetNaming').click();
}, false);
}
var STrChOChampPresetSlotPost = document.getElementsByClassName('STrChOChampPresetSlotPost');
for (var idx=0; idx<STrChOChampPresetSlotPost.length; idx++) {
STrChOChampPresetSlotPost[idx].addEventListener('click', function() {
var id = this.id;
var num = id.split('STrChOChampPreset')[1];
postChampSlot(num);
}, false);
}
var STrChOChampPresetTagPost = document.getElementsByClassName('STrChOChampPresetTagPost');
for (var idx=0; idx<STrChOChampPresetTagPost.length; idx++) {
STrChOChampPresetTagPost[idx].addEventListener('click', function () {
var id = this.id;
var num = id.split('STrChOChampPreset')[1];
postChampPreset(num);
}, false);
}
var STrChOChampPresetClear = document.getElementsByClassName('STrChOChampPresetClear');
for (var idx=0; idx<STrChOChampPresetClear.length; idx++) {
STrChOChampPresetClear[idx].addEventListener('click', function () {
var id = this.id;
var num = id.split('STrChOChampPreset')[1];
t.clearPresetTags(num);
t.show();
document.getElementById('STrChOChampPresetNaming').click();
}, false);
}
var STrChOChampPresetExcel = document.getElementsByClassName('STrChOChampPresetExcel');
for (var idx=0; idx<STrChOChampPresetExcel.length; idx++) {
STrChOChampPresetExcel[idx].addEventListener('click', function () {
var id = this.id;
var num = id.split('STrChOChampPreset')[1];
ExportChampPresetToExcel(num);
}, false);
}
var STrChOChampPresetCopyTo = document.getElementsByClassName('STrChOChampPresetCopyTo');
for (var idx=0; idx<STrChOChampPresetCopyTo.length; idx++) {
STrChOChampPresetCopyTo[idx].addEventListener('click', function () {
var id = this.id;
var sourceNum = id.split('STrChOChampPreset')[1];
var destNum = document.getElementById('STrChOChampPresetCopyToWhat' + sourceNum).value;
var copyName = document.getElementById('STrChOChampPresetName' + sourceNum).value;
t.copyPresetTags(sourceNum, destNum, copyName);
t.show();
document.getElementById('STrChOChampPresetNaming').click();
}, false);
}
var STrChOChampPresetNameEntry = document.getElementsByClassName('STrChOChampPresetNameEntry');
for (var idx=0; idx<STrChOChampPresetNameEntry.length; idx++) {
STrChOChampPresetNameEntry[idx].addEventListener('change', function () {
var id = this.id;
var num = id.split('STrChOChampPresetName')[1];
var presetName = this.value;
if (presetName == "") {
presetName = "undefined";
document.getElementById(id).value = presetName;
}
STrChOChampPresetData.presetNames[num-1] = presetName;
SAVESTrChOChampPresetData();
}, false);
STrChOChampPresetNameEntry[idx].addEventListener('blur', function () {
var id = this.id;
var num = id.split('STrChOChampPresetName')[1];
var presetName = this.value;
if (presetName == "") {
presetName = "undefined";
document.getElementById(id).value = presetName;
STrChOChampPresetData.presetNames[num-1] = presetName;
SAVESTrChOChampPresetData();
}
}, false);
}
},
setBreakStatus: function() {
var t = Tabs.champPresets;
var remaining = t.broke_count - t.broke_items;
var m = "Items Remaining: " + remaining;
m += "<br>Time Remaining: " + (remaining * (t.delay/1000)) + " Seconds";
document.getElementById('STrChOChampBreakCounter').innerHTML = m;
},
unequipAllItems: function (presetIndex) {
var t = Tabs.champPresets;
if (!confirm('Are you sure you want to unequip all items?')) return;
var championID = uW.seed.champion.champions[presetIndex-1].championId;// = 11007
var equipped_items = [];
for (chId in uW.kocChampionItems) {
if (uW.kocChampionItems[chId].equippedTo != championID) continue;
equipped_items.push(chId);
}
var el = equipped_items.length;
if ( el == 0 ) return;
function unequipLoop(counter, id) {
setTimeout(function() { t.unequipItem(id); }, (counter + 1) * 2000);
}
for (ei = 0; ei < el; ei++) {
var chId = equipped_items[ei];
unequipLoop(ei, chId);
}
setTimeout(function () { alert("all champ items unequipped") }, el * 2000 + 2000);
},
unequipItem: function(chId) {
var t = Tabs.champPresets;
CM.ChampionManager.unequipItem(chId);
t.paintTags();
},
equipItem: function(chId) {
CM.ChampionManager.equipItem(chId);
},
clearPresetTags: function (presetIndex) {
var t = Tabs.champPresets;
var preset = getChampPresetObject(parseInt(presetIndex));
for (var p in preset) delete preset[p];
SAVESTrChOChampPresetData();
t.paintTags();
},
clearAllPresetTagItems: function () {
var t = Tabs.champPresets;
if (!confirm('Are you sure you want to clear all preset tag items?')) return;
for (i = 1; i < STrChOMaxChampions + 1; i++) t.clearPresetTags(i);
},
equipPresetTags: function (presetIndex) {
var t = Tabs.champPresets;
var equipLoop = function (id) { return function() { t.equipItem(id); }; }
var unequipLoop = function (id) { return function() { t.unequipItem(id) }; }
var c = 1;
var championID = Seed.champion.champions[presetIndex-1].championId;// = 11007
var equipped_items = [];
for (chId in uW.kocChampionItems) {
if (uW.kocChampionItems[chId].equippedTo != championID) continue;
equipped_items.push(chId);
}
var el = equipped_items.length;
if (el > 0) {
for (ei = 0; ei < el; ei++) {
var chId = equipped_items[ei];
setTimeout(unequipLoop(chId), c * 2000);
c += 1;
}
}
var preset = getChampPresetObject(parseInt(presetIndex));
for (var p in preset) {
setTimeout(equipLoop(p), c * 2000);
c += 1;
}
setTimeout(function () { alert("all champ items equipped") }, c * 2000 + 2000);
},
copyPresetTags: function (sourcePresetNumber, destinationPresetNumber, presetName) {
var pSource = getChampPresetObject(parseInt(sourcePresetNumber));
var pDestination = getChampPresetObject(parseInt(destinationPresetNumber));
for (var p in pDestination) delete pDestination[p];
for (var p in pSource) pDestination[p] = true;
STrChOChampPresetData.presetNames[destinationPresetNumber-1] = presetName + " (copy)";
SAVESTrChOChampPresetData();
},
addPresetTags: function (presetIndex) { //presetIndex should be passed in as base 1 to index into the presetTaggedItems array
var t = Tabs.champPresets;
var preset = getChampPresetObject(parseInt(presetIndex));
var championID = Seed.champion.champions[presetIndex-1].championId;// = 11007
var equipped_items = [];
for (chId in uW.kocChampionItems) {
if (uW.kocChampionItems[chId].equippedTo != championID) continue;
equipped_items.push(chId);
}
if ( equipped_items.length == 0 ) return;
for (var p in preset) delete preset[p];
for (ei = 0; ei < equipped_items.length; ei++) {
var chId = equipped_items[ei];
preset[chId] = true;
SAVESTrChOChampPresetData();
}
t.paintTags();
},
paintTags: function () {
for (ii in uW.kocChampionItems) {
$("div#" + ii + ".champItem").children(".ioverlay").children(".tagBorderChamp").remove();
$("div#" + ii + ".champItem").children(".ioverlay").children(".presetBorderChamp").remove();
$("div#" + ii + ".champItem").children(".ioverlay").children(".activeBorderChamp").remove();
if ( STrChOChampPresetData.taggedItems[ii] ) {
$("div#" + ii + ".champItem").children(".ioverlay").prepend("<div class='tagBorderChamp'></div>");
}
$("div#" + ii + ".equipSelected ").children(".ioverlay").prepend("<div class='activeBorderChamp'></div>");
if ( STrChOChampPresetData.taggedItems01[ii] || STrChOChampPresetData.taggedItems02[ii] || STrChOChampPresetData.taggedItems03[ii] || STrChOChampPresetData.taggedItems04[ii] ) {
$("div#" + ii + ".champItem").children(".ioverlay").prepend("<div class='presetBorderChamp'></div>");
}
}
$("#itemInvetory div").removeClass('STrChOBlueBorder');
$("#itemInvetory div").removeClass('STrChOYellowBorder');
for (ii in STrChOChampQueueData.list) {
var list_item = STrChOChampQueueData.list[ii];
if (!list_item) continue;
if (list_item.status != "complete") {
var id = list_item.item;
if (list_item.action == "upgrade") $("div#" + id + ".champItem").addClass('STrChOBlueBorder');
if (list_item.action == "enhance") $("div#" + id + ".champItem").addClass('STrChOYellowBorder');
}
}
},
removeAllTagItems: function () {
var t = Tabs.champPresets;
var taggedReverse = [];
for (k in STrChOChampPresetData.taggedItems) taggedReverse.push(k);
var len = taggedReverse.length;
while (len--) {
var chID = taggedReverse[len];
delete STrChOChampPresetData.taggedItems[chID];
}
SAVESTrChOChampPresetData();
t.paintTags();
},
removeTagItem: function (itemId) {
var t = Tabs.champPresets;
if (STrChOChampPresetData.taggedItems[itemId]) {
delete STrChOChampPresetData.taggedItems[itemId];
SAVESTrChOChampPresetData();
}
t.paintTags();
},
addAllTagItems: function () {
var t = Tabs.champPresets;
t.removeAllTagItems();
for (chId in uW.kocChampionItems) {
STrChOChampPresetData.taggedItems[chId] = true;
}
SAVESTrChOChampPresetData();
t.paintTags();
},
addTagItem: function (itemId) {
var t = Tabs.champPresets;
STrChOChampPresetData.taggedItems[itemId] = true;
SAVESTrChOChampPresetData();
t.paintTags();
},
}
Tabs.champPreview = {
tabOrder: 207,
tabLabel: 'PREVIEW',
tabColor: 'brown',
tabHeader: 'CHAMP HALL PREVIEW',
champItemNamesForPreview: {1: 'weapon', 2: 'chest', 3: 'helm', 4: 'boots', 5: 'shield', 6: 'ring1', 7: 'ring2', 8: 'pendant', 9: 'cloak'},
champItemTypesForPreview: {'weapon': 1, 'chest': 2, 'helm':3, 'boots':4, 'shield': 5, 'ring1': 6, 'ring2': 7, 'pendant': 8, 'cloak': 9},
lastRing1: 0,
lastRing2: 0,
init: function (div) {
var t = Tabs.champPreview;
t.mydiv = div;
},
hide: function () {},
show: function () {
var t = Tabs.champPreview;
var presetsTagList = "";
if (STrChOMaxChampions != 0) {
for (var i = 1; i < STrChOMaxChampions + 1; i++) {
presetsTagList += '<option value="' + i + '">' + i + ' (' + STrChOChampPresetData.presetNames[i-1] + ')</option>';
}
}
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table>';
m += '<tr>';
m += '<td colspan=3>';
m += '<input type=button class=STrChOButton value="Reset" id=STrChOChampPreviewReset> || ';
// m += '<input type=button value="Equip Now" id=chPreviewEquip><font color=black><b>(5 sec per card to load)</b></font> || ';
m += '<input type=button class=STrChOButton value="Post Stats to Chat" id=STrChOChampPreviewPost> ';
m += '<input type=button class=STrChOButton value="Export to Excel" id=STrChOChampPreviewExcel> ';
m += '<br>';
m += '<input type=button class=STrChOButton value="Export To Text" id=STrChOChampPreviewExport> || ';
m += '<input type=button class=STrChOButton value="Load Text Export" id=STrChOChampPreviewExportLoad>';
m += '<input type=button class=STrChOButton value="Browse..." id=STrChOChampPreviewExportLoadItemTrigger onclick="document.getElementById(\'STrChOChampPreviewExportLoadItem\').click()">';
m += '<input hidden id=STrChOChampPreviewExportLoadItem type=file>';
m += '<br>';
m += '<input type=button class=STrChOButton value="Load Champ Preset" id=STrChOChampPreviewLoadPreset> <select class=STrChOSelect style="width:25%;" id=STrChOChampPreviewLoadPresetValue>' + presetsTagList + '</select> ';
m += '<br>';
m += '<input type=button class=STrChOButton value="Copy To" id=STrChOChampPreviewCopyTo><b> Preset Tag </b><select class=STrChOSelect style="width:25%;" id=STrChOChampPreviewCopyToValue>' + presetsTagList + '</select> ';
m += '<br>';
m += '<input type=button class=STrChOButton value="Load Champ From" id=STrChOChampPreviewLoadPresetTag><b> Preset Tag </b><select class=STrChOSelect style="width:25%;" id=STrChOChampPreviewLoadPresetTagValue>' + presetsTagList + '</select> ';
m += '</td>';
m += '</tr>';
m += '</tr>';
m += '</table>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> PREVIEW STATS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="position: static; width: 100%; height: 380px; overflow-x: auto; overflow-y: auto;">';
m += '<table class=STrChOSectionTable>';
m += '<tr><td>';
m += '<div id=STrChOChampPreviewDetails></div>';
m += '</td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> PREVIEW CARDS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="position: static; width: 100%; height: 380px; overflow-x: auto; overflow-y: auto;">';
m += '<table class=STrChOSectionTable>';
m += '<tr>';
var idx = 0;
for (var itemIdx in t.champItemNamesForPreview) {
if (idx % 3 == 0) m += '</tr><tr>';
m += '<td width=33% valign=top>';
m += '<table>';
m += '<tr><td><b>' + t.champItemNamesForPreview[itemIdx].toUpperCase() + '<b></td></tr>';
m += '<tr><td>';
m += '<select class=STrChOSelect id=STrChOChampPreviewValue' + t.champItemNamesForPreview[itemIdx] + ' style="white-space:nowrap;display:inline-block;max-width: 150px;"></select>';
m += '</td></tr>';
m += '<tr><td><div id=STrChOChampPreviewCard' + t.champItemNamesForPreview[itemIdx] + '></div></td></tr>';
m += '</table>';
m += '</td>';
idx += 1;
}
m += '</tr>';
m += '</table>';
m += '</div>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
t.buildChampPreviewValueDisplay();
for (var idx in t.champItemNamesForPreview) {
document.getElementById('STrChOChampPreviewCard' + t.champItemNamesForPreview[idx]).addEventListener('click', function(A) {
A.stopPropagation();
var champType = this.id.split('STrChOChampPreviewCard')[1];
var STrChOPreviewValue = document.getElementById('STrChOChampPreviewValue' + champType);
var champId = STrChOPreviewValue.value;
if (champId == 0) return;
var champItem = uW.kocChampionItems[champId];
if (!champItem || champItem ==0) return;
CardContextMenu(this, champItem, true);
}, false);
document.getElementById('STrChOChampPreviewValue' + t.champItemNamesForPreview[idx]).addEventListener('change', function(A) {
var champ_Type = this.id.split('STrChOChampPreviewValue')[1];
var chId = this.value;
t.loadChampPreviewCard(chId, champ_Type);
}, false);
document.getElementById('STrChOChampPreviewValue' + t.champItemNamesForPreview[idx]).addEventListener('keyup', function(A) {
var champ_Type = this.id.split('STrChOChampPreviewValue')[1];
var chId = this.value;
t.loadChampPreviewCard(chId, champ_Type);
}, false);
}
document.getElementById('STrChOChampPreviewDetails').innerHTML = t.getPreviewChampDetails();
document.getElementById('STrChOChampPreviewReset').addEventListener('click', function () {
t.resetPreview();
t.buildChampPreviewValueDisplay();
}, false);
document.getElementById('STrChOChampPreviewExcel').addEventListener('click', function() {
if (STrChOChampPresetData.previewChamp.length > 0 )
ExportChampToExcel(true);
else
alert('Nothing To Export');
}, false);
document.getElementById('STrChOChampPreviewPost').addEventListener('click', function () {
if (STrChOChampPresetData.previewChamp.length == 0) return;
t.postPreviewChampDetails();
}, false);
document.getElementById('STrChOChampPreviewExport').addEventListener('click', function() {
uriContent = 'data:application/octet-stream,' + encodeURIComponent(JSON.stringify(STrChOChampPresetData.previewChamp));
newWindow = window.open(uriContent, 'file.txt');
}, false);
document.getElementById('STrChOChampPreviewExportLoad').addEventListener('click', function () {
var fileInput = document.getElementById("STrChOChampPreviewExportLoadItem");
var files = fileInput.files;
if (files.length==0) {
alert('Please Select A File');
return;
}
var file = files[0];
var reader = new FileReader();
reader.onload = function (e) {
var output = e.target.result;
STrChOChampPresetData.previewChamp = JSON.parse(output);
SAVESTrChOChampPresetData();
t.show();
alert('Preview Champ Now Loaded From File');
};
reader.readAsText(file);
}, false);
document.getElementById('STrChOChampPreviewLoadPresetTag').addEventListener('click', function () {
var presetNum = document.getElementById('STrChOChampPreviewLoadPresetTagValue').value;
var presetTag = getChampPresetObject(parseInt(presetNum));
t.resetPreview();
for (var p in presetTag) t.loadChampPreviewCard(p)//STrChOChampPresetData.previewChamp[p] = true;
}, false);
document.getElementById('STrChOChampPreviewCopyTo').addEventListener('click', function () {
var presetNum = document.getElementById('STrChOChampPreviewCopyToValue').value;
var presetTag = getChampPresetObject(parseInt(presetNum));
for (var p in presetTag) delete presetTag[p];
for (var idx = 0; idx < STrChOChampPresetData.previewChamp.length; idx++) {
presetTag[STrChOChampPresetData.previewChamp[idx]] = true;
}
STrChOChampPresetData.presetNames[presetNum] = "PREVIEW";
document.getElementById('STrChOChampPresetName' + presetNum).value = "PREVIEW";
SAVESTrChOChampPresetData();
t.show();
}, false);
document.getElementById('STrChOChampPreviewLoadPreset').addEventListener('click', function () {
var t = Tabs.champPreview;
var presetIndex = document.getElementById('STrChOChampPreviewLoadPresetValue').value;
var championID = Seed.champion.champions[presetIndex-1].championId;// = 11007
var equipped_items = [];
for (chId in uW.kocChampionItems) {
if (uW.kocChampionItems[chId].equippedTo != championID) continue;
equipped_items.push(chId);
}
var el = equipped_items.length;
if (el > 0) {
for (ei = 0; ei < el; ei++) {
var chId = equipped_items[ei];
champItem = uW.kocChampionItems[chId];
t.loadChampPreviewCard(chId);
}
}
}, false);
},
buildChampPreviewValueDisplay: function () {
var t = Tabs.champPreview;
var elemSelect = null;
for (var champType in t.champItemNamesForPreview) { //fill the default selection "--Items--"
elemSelect = document.getElementById('STrChOChampPreviewValue' + t.champItemNamesForPreview[champType]);
elemSelect.innerHTML = '';
elemSelect.options.add(new Option('--Items--', '0'));
}
for (var champId in uW.kocChampionItems) { //fill with all the champ cards
var champItem = uW.kocChampionItems[champId];
if (champItem.type == 6) {
elemSelect = document.getElementById('STrChOChampPreviewValuering1');
elemSelect.options.add(new Option(champItem.name, champId));
elemSelect = document.getElementById('STrChOChampPreviewValuering2');
elemSelect.options.add(new Option(champItem.name, champId));
} else {
elemSelect = document.getElementById('STrChOChampPreviewValue' + t.champItemNamesForPreview[champItem.type]);
elemSelect.options.add(new Option(champItem.name, champId));
}
}
for (var idx = 0; idx < STrChOChampPresetData.previewChamp.length; idx++) { //select and display the champion cards in the preview preset
if (STrChOChampPresetData.previewChamp[idx] != 0) {
var champItem = uW.kocChampionItems[STrChOChampPresetData.previewChamp[idx]];
if (champItem == null || !champItem) {
STrChOChampPresetData.previewChamp[idx] = 0;
SAVESTrChOChampPresetData();
continue;
}
if (idx == STrChORing1) t.lastRing1 = STrChOChampPresetData.previewChamp[idx];
if (idx == STrChORing2) t.lastRing2 = STrChOChampPresetData.previewChamp[idx];
var champCard = BuildChampCard(champItem);
document.getElementById('STrChOChampPreviewValue' + t.champItemNamesForPreview[idx]).value = STrChOChampPresetData.previewChamp[idx];
document.getElementById('STrChOChampPreviewCard' + t.champItemNamesForPreview[idx]).innerHTML = champCard;
}
}
},
postPreviewChampDetails: function () {
var t = Tabs.champPreview;
var previewPreset = [];
for (var idx = 0; idx < STrChOChampPresetData.previewChamp.length; idx++) {
if (STrChOChampPresetData.previewChamp[idx] != 0) previewPreset.push(STrChOChampPresetData.previewChamp[idx]);
}
var stringPreviewChamp = GenerateChampPresetEffectsString(previewPreset, true);
if (stringPreviewChamp == "") {
return;
} else {
var table = stringPreviewChamp.split("</div><div>");
stringPreviewChamp = table.join("||");
stringPreviewChamp = stringPreviewChamp.replace("<div>", ":::. |CHAMP PREVIEW STATS:||");
stringPreviewChamp = stringPreviewChamp.replace("</div>", "");
stringPreviewChamp = stringPreviewChamp.replace("<b>","").replace("<i>","").replace("</i>","").replace("</b>","").replace("<b>","").replace("<i>","").replace("</i>","").replace("</b>","");
sendChat(stringPreviewChamp);
}
return;
},
resetPreview: function () {
var t = Tabs.champPreview;
for (var idx = 0; idx < STrChOChampPresetData.previewChamp.length; idx++) STrChOChampPresetData.previewChamp[idx] = 0;
SAVESTrChOChampPresetData();
for (var champType in t.champItemNamesForPreview) {
document.getElementById('STrChOChampPreviewValue' + t.champItemNamesForPreview[champType]).value = 0;
document.getElementById('STrChOChampPreviewCard' + t.champItemNamesForPreview[champType]).innerHTML = '';
}
document.getElementById('STrChOChampPreviewDetails').innerHTML = t.getPreviewChampDetails();
},
clearChampPreviewCard: function(champId) {
var t = Tabs.champPreview;
for (var idx = 0; idx < STrChOChampPresetData.previewChamp.length; idx++)
if (STrChOChampPresetData.previewChamp[idx] == champId) {
STrChOChampPresetData.previewChamp[idx] = 0;
SAVESTrChOChampPresetData();
for (var item in t.champItemTypesForPreview) {
if (document.getElementById('STrChOChampPreviewValue' + item).value == champId) {
document.getElementById('STrChOChampPreviewValue' + item).value = 0;
document.getElementById('STrChOChampPreviewCard' + item).innerHTML = '';
if (item == 'ring1') t.lastRing1 = 0;
if (item == 'ring2') t.lastRing2 = 0;
if (item == 'ring1' || item == 'ring2') {
var elemSelect = document.getElementById('STrChOChampPreviewValuering1');
for (var i = 0; i < elemSelect.length; i++)
if (elemSelect.options[i].value == champId) $(elemSelect).remove(i);
elemSelect = document.getElementById('STrChOChampPreviewValuering2');
for (var i = 0; i < elemSelect.length; i++)
if (elemSelect.options[i].value == champId) $(elemSelect).remove(i);
} else {
var elemSelect = document.getElementById('STrChOChampPreviewValue' + item);
for (var i = 0; i < elemSelect.length; i++)
if (elemSelect.options[i].value == champId) $(elemSelect).remove(i);
}
return;
}
}
return;
}
},
loadChampPreviewCard: function(champId, champTypeName) {
var t = Tabs.champPreview;
if (typeof(champTypeName) == 'undefined') champTypeName = '';
if (champId == 0 && champTypeName == "") return;
var t = Tabs.champPreview;
var champCard = '';
if (champId == 0) {
document.getElementById('STrChOChampPreviewCard' + champTypeName).innerHTML = champCard;
document.getElementById('STrChOChampPreviewValue' + champTypeName).value = champId;
STrChOChampPresetData.previewChamp[t.champItemTypesForPreview[champTypeName]] = champId;
} else { //champ id is NOT 0, so load the champ
var champItem = uW.kocChampionItems[champId];
if (!champItem || champItem ==0) return;
champCard = BuildChampCard(champItem);
if (champTypeName != "") { //champ type name is known
if (champTypeName == 'ring1') {
if (document.getElementById('STrChOChampPreviewValuering2').value == champId) {
document.getElementById('STrChOChampPreviewValuering1').value = t.lastRing1;
} else {
document.getElementById('STrChOChampPreviewCardring1').innerHTML = champCard;
document.getElementById('STrChOChampPreviewValuering1').value = champId;
STrChOChampPresetData.previewChamp[t.champItemTypesForPreview[champTypeName]] = champId;
t.lastRing1 = champId;
}
} else if (champTypeName == 'ring2') {
if (document.getElementById('STrChOChampPreviewValuering1').value == champId) {
document.getElementById('STrChOChampPreviewValuering2').value = t.lastRing2;
} else {
document.getElementById('STrChOChampPreviewCardring2').innerHTML = champCard;
document.getElementById('STrChOChampPreviewValuering2').value = champId;
STrChOChampPresetData.previewChamp[t.champItemTypesForPreview[champTypeName]] = champId;
t.lastRing2 = champId;
}
} else {
document.getElementById('STrChOChampPreviewCard' + champTypeName).innerHTML = champCard;
document.getElementById('STrChOChampPreviewValue' + champTypeName).value = champId;
STrChOChampPresetData.previewChamp[t.champItemTypesForPreview[champTypeName]] = champId;
}
} else { //champ type name is not known so we get it from the champ.type
if (champItem.type != 6) { //champ is not a ring
champTypeName = t.champItemNamesForPreview[champItem.type];
document.getElementById('STrChOChampPreviewCard' + champTypeName).innerHTML = champCard;
document.getElementById('STrChOChampPreviewValue' + champTypeName).value = champId;
STrChOChampPresetData.previewChamp[t.champItemTypesForPreview[champTypeName]] = champId;
} else { //most of the time this is coming from the "Send to Preview" option from the context menu
if (document.getElementById('STrChOChampPreviewValuering1').value == champId) return;
if (document.getElementById('STrChOChampPreviewValuering2').value == champId) return;
if (document.getElementById('STrChOChampPreviewValuering1').value == 0) { //if ring1 is empty load it here
document.getElementById('STrChOChampPreviewValuering1').value = champId;
document.getElementById('STrChOChampPreviewCardring1').innerHTML = champCard;
STrChOChampPresetData.previewChamp[t.champItemTypesForPreview['ring1']] = champId;
t.lastRing1 = champId;
} else if (document.getElementById('STrChOChampPreviewValuering2').value == 0) { //if ring1 was full and ring2 is empty load it here
document.getElementById('STrChOChampPreviewValuering2').value = champId;
document.getElementById('STrChOChampPreviewCardring2').innerHTML = champCard;
STrChOChampPresetData.previewChamp[t.champItemTypesForPreview['ring2']] = champId;
t.lastRing2 = champId;
} else { //if both ring1 and ring2 are full, overwrite ring1
document.getElementById('STrChOChampPreviewValuering1').value = champId;
document.getElementById('STrChOChampPreviewCardring1').innerHTML = champCard;
STrChOChampPresetData.previewChamp[t.champItemTypesForPreview['ring1']] = champId;
t.lastRing1 = champId;
}
}
}
}
SAVESTrChOChampPresetData();
document.getElementById('STrChOChampPreviewDetails').innerHTML = t.getPreviewChampDetails();
},
getPreviewChampDetails: function () {
var t = Tabs.champPreview;
var previewPreset = [];
for (var idx = 0; idx < STrChOChampPresetData.previewChamp.length; idx++)
if (STrChOChampPresetData.previewChamp[idx] != 0) previewPreset.push(STrChOChampPresetData.previewChamp[idx]);
var stringPreviewChamp = GenerateChampPresetEffectsString(previewPreset, true);//GenerateThronePresetEffectsString(previewPreset);
if (stringPreviewChamp == "") {
stringPreviewChamp = "No Stats To Preview";
} else {
stringPreviewChamp = "<b>PREVIEW STATS:</b>\n" + stringPreviewChamp;
}
return stringPreviewChamp;
},
}
Tabs.champCompare = {
tabOrder: 208,
tabLabel: 'COMPARE',
tabColor: 'brown',
tabHeader: 'CHAMP HALL COMPARE',
init: function (div) {
var t = Tabs.champCompare;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div>';
m += '<center>';
m += '<table>';
m += '<tr>';
m += '<td align=center><b>CARD 1</b></td>';
m += '<td align=center><b>CARD 2</b></td>';
m += '</tr>';
m += '<tr>';
m += '<td>';
m += '<b>Item Type:</b><select class=STrChOSelect id=STrChOChampCompareType1 style="width: 40%;">';
m += '<option value="0">--ALL--</option>';
for (var champType in champItemNames) m += '<option value="' + champType + '">' + champItemNames[champType].capitalizeFirstLetter() + '</option>';
m += '</select>';
m += '</td>';
m += '<td>';
m += '<b>Item Type:</b><select class=STrChOSelect id=STrChOChampCompareType2 style="width: 40%;">';
m += '<option value="0">--ALL--</option>';
for (var champType in champItemNames) m += '<option value="' + champType + '">' + champItemNames[champType].capitalizeFirstLetter() + '</option>';
m += '</select>';
m += '</td>';
m += '</tr>';
m += '<tr>';
m += '<td>';
m += '<b>Champ Item:</b><br/><select class=STrChOSelect id=STrChOChampCompareId1 style="width: 95%;">';
m += '<option value="0">--Items--</option>';
for (var champId in uW.kocChampionItems) m += '<option value="' + champId + '">' + uW.kocChampionItems[champId].name + ' </option>';
m += '</select>';
m += '</td>';
m += '<td>';
m += '<b>Champ Item:</b><br/><select class=STrChOSelect id=STrChOChampCompareId2 style="width: 95%;">';
m += '<option value="0">--Items--</option>';
for (var champId in uW.kocChampionItems) m += '<option value="' + champId + '">' + uW.kocChampionItems[champId].name + ' </option>';
m += '</select>';
m += '</td>';
m += '</tr>';
m += '<tr>';
m += '<td>';
m += '<div id=STrChOChampCompareCard1></div>';
m += '</td>';
m += '<td>';
m += '<div id=STrChOChampCompareCard2></div>';
m += '</td>';
m += '</tr>';
m += '</table>';
m += '</center>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOChampCompareId1').addEventListener('change', function () { t.loadCard(this, 'STrChOChampCompareCard1'); }, false);
document.getElementById('STrChOChampCompareId2').addEventListener('change', function () { t.loadCard(this, 'STrChOChampCompareCard2'); }, false);
document.getElementById('STrChOChampCompareId1').addEventListener('keyup', function () { t.loadCard(this, 'STrChOChampCompareCard1'); }, false);
document.getElementById('STrChOChampCompareId2').addEventListener('keyup', function () { t.loadCard(this, 'STrChOChampCompareCard2'); }, false);
document.getElementById('STrChOChampCompareType1').addEventListener('change', function () { t.filterItems(this, 'STrChOChampCompareId1', 'STrChOChampCompareCard1'); }, false);
document.getElementById('STrChOChampCompareType2').addEventListener('change', function () { t.filterItems(this, 'STrChOChampCompareId2', 'STrChOChampCompareCard2'); }, false);
document.getElementById('STrChOChampCompareType1').addEventListener('keyup', function () { t.filterItems(this, 'STrChOChampCompareId1', 'STrChOChampCompareCard1'); }, false);
document.getElementById('STrChOChampCompareType2').addEventListener('keyup', function () { t.filterItems(this, 'STrChOChampCompareId2', 'STrChOChampCompareCard2'); }, false);
},
sendToCompare: function (Id) {
var t = Tabs.champCompare;
var champItem = uW.kocChampionItems[Id];
var card1 = document.getElementById('STrChOChampCompareId1');
var card2 = document.getElementById('STrChOChampCompareId2');
var obj = '';
if (card1.value == 0)
obj = '1';
else if (card2.value == 0)
obj = '2';
else
obj = '1';
document.getElementById('STrChOChampCompareType' + obj).value = champItem.type;
t.filterItems(document.getElementById('STrChOChampCompareType' + obj), ('STrChOChampCompareId' + obj), ('STrChOChampCompareCard' + obj));
document.getElementById('STrChOChampCompareId' + obj).value = Id;
t.loadCard(document.getElementById('STrChOChampCompareId' + obj), ('STrChOChampCompareCard' + obj));
},
loadCard: function (objectItem, objectName) {
var div = document.getElementById(objectName);
if (objectItem.value == 0)
div.innerHTML = '';
else
div.innerHTML = BuildChampCard(uW.kocChampionItems[objectItem.value]);
},
filterItems: function (objectItem, objectIdName, objectName) {
document.getElementById(objectName).innerHTML = '';
var select = document.getElementById(objectIdName);
select.value = 0;
var m = '<option value="0">--Items--</option>';
if (objectItem.value == 0) {
for (var champId in uW.kocChampionItems) {
m += '<option value="' + champId + '">' + uW.kocChampionItems[champId].name + '</option>';
}
} else {
for (var champId in uW.kocChampionItems) {
if (uW.kocChampionItems[champId].type == objectItem.value)
m += '<option value="' + champId + '">' + uW.kocChampionItems[champId].name + '</option>';
}
}
select.innerHTML = m;
},
hide: function () {},
show: function () {},
}
Tabs.champUniques = {
tabOrder: 209,
tabLabel: 'UNIQUES',
tabColor: 'brown',
tabHeader: 'CHAMP HALL UNIQUES',
UniqueItems : null,
selectedCard: 0,
selectedType: 0,
selectedLevel: 1,
init: function (div) {
var t = Tabs.champUniques;
t.mydiv = div;
var UniqueItems = {};
eval(GM_getResourceText("champion_uniques"));
t.UniqueItems = UniqueItems;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*2.5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<center><table>';
m += '<tr><td><div style="max-width:100%;"><b>Item Type:</b><select class=STrChOSelect id=STrChOChampUniqueType style="width: 40%;">';
m += '<option value="0">--ALL--</option>';
for (var champType in champItemNames) m += '<option value="' + champType + '">' + champItemNames[champType].capitalizeFirstLetter() + '</option>';
m += '</select></div></td></tr>';
m += '<tr><td><div style="max-width:100%;"><b>Champ Item:</b><br/><select class=STrChOSelect id=STrChOChampUnique style="width: 95%;">';
m += '<option value="0">--Items--</option>';
for (Id in t.UniqueItems) {
var champItem = t.UniqueItems[Id];
if (champItem == null || !champItem) continue;
m += '<option value="' + Id + '">' + champItem.Name + ' </option>';
}
m += '</select></div></td></tr>';
m += '<tr><td><div style="max-width:100%;"><b>Level:</b><select class=STrChOSelect id=STrChOChampUniqueLevel style="width: 40%;">';
m += '<option value="1" selected>+1</option>';
for (lvl = 2; lvl < STrChOMaxChampLevel + 1; lvl++) m += '<option value="' + lvl + '">+' + lvl + '</option>';
m += '</select></div></td></tr>';
m += '<tr><td><div id=STrChOChampUniqueCard></div></td></tr>';
m += '</table>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOChampUniqueType').addEventListener('change', function () {
t.selectedType = document.getElementById('STrChOChampUniqueType').value;
t.selectedCard = 0;
t.FilterUniques();
document.getElementById('STrChOChampUniqueCard').innerHTML = '';
}, false);
document.getElementById('STrChOChampUnique').addEventListener('change', function () {
t.selectedCard = document.getElementById('STrChOChampUnique').value;
if (t.selectedCard != 0) t.SwitchUnique();
}, false);
document.getElementById('STrChOChampUniqueLevel').addEventListener('change', function () {
t.selectedLevel = document.getElementById('STrChOChampUniqueLevel').value;
if (t.selectedCard != 0) t.SwitchUnique();
}, false);
},
hide: function () {},
show: function () {},
FilterUniques: function (cardType) {
var t = Tabs.champUniques;
var champList = document.getElementById('STrChOChampUnique');
champList.options.length = 0;
var champOption = document.createElement('option');
champOption.text = '--Items--';
champOption.value = 0;
champList.add(champOption);
for (Id in t.UniqueItems) {
var champItem = t.UniqueItems[Id];
if (champItem == null || !champItem) continue;
if (champItem.Type == t.selectedType || t.selectedType == 0) {
var champOption = document.createElement('option');
champOption.text = champItem.Name;
champOption.value = Id;
champList.add(champOption);
}
}
},
SwitchUnique: function () {
var t = Tabs.champUniques;
var div = document.getElementById('STrChOChampUniqueCard');
var m = ConvertUniqueAndBuildChampCard(t.selectedCard, t.selectedLevel);
m += t.GetUniqueInventory(t.selectedCard);
div.innerHTML = m;
var STrChOChampUseUnique = document.getElementById('STrChOChampUseUnique');
if (!STrChOChampUseUnique) return;
STrChOChampUseUnique.addEventListener('click', function() {
var uniqueId = this.getAttribute('uid');
var uniqueCount = parseInt(document.getElementById('STrChOChampUniqueCount').innerHTML);
uniqueCount--;
document.getElementById('STrChOChampUniqueCount').innerHTML = uniqueCount;
CM.ItemController.use(uniqueId);
}, false);
},
GetUniqueInventory: function (uniqueId) {
var m = '<br><b>Champ Hall</b><br>';
var champitems = {};
for (champId in uW.kocChampionItems) {
var champItem = uW.kocChampionItems[champId];
if (champItem.unique == uniqueId) {
if (champitems[champItem.level]) {
champitems[champItem.level]++;
} else {
champitems[champItem.level] = 1;
}
}
}
var gotitem = false;
for (lvl in champitems) {
gotitem = true;
m += 'You have '+champitems[lvl]+' at level '+lvl+'<br>';
}
if (!gotitem) m += 'You have none in your throne room.<br>';
m += '<br><b>Inventory</b><br>';
var inventory = Seed.items['i'+uniqueId];
m += 'You have <div class=divNoWrap id=STrChOChampUniqueCount>'+(inventory?inventory:'0')+'</div> in your inventory.';
if ((inventory?inventory:0) != 0) m += '<br><b><a id=STrChOChampUseUnique uid="' + uniqueId + '">Add To Champ Hall</a></b>';
return m;
},
}
Tabs.STrChOLog = {
tabOrder: 300,
tabLabel: 'LOGS',
tabColor: 'blue',
tabHeader: 'LOGGING RECORDS',
init: function (div) {
var t = Tabs.STrChOLog;
t.mydiv = div;
//t.buildLogDisplay();
},
hide: function () {},
show: function () {
var t = Tabs.STrChOLog;
t.buildLogDisplay();
},
buildLogDisplay: function () {
var t = Tabs.STrChOLog;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div style="margin-top: 5px; margin-bottom: 5px;">';
m += ' Max Log Entries Per Section <input type=textbox class=STrChOTextbox id=STrChOLogMaxEntries value="' + STrChOLogData.maxEntries + '"> ';
m += '<input type=button class=STrChOButton id=STrChOLogClear value="Clear All Logs">';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> SUCCESS LOG <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="height: ' + (dlgHeight - 140) + 'px; width: ' + (dlgWidth - dlgWidthMenu - dlgWidthOffset) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table class=STrChOSectionTable id=STrChOSuccessLog>';
if (STrChOLogData.successLog.length == 0) {
m += '<tr><td>NO LOG DATA</td></tr>';
} else {
m += '<tr><td><input id=STrChOClearSuccessLog type=button class=STrChOButton value="Clear Success Log"></td></tr>';
for (logIndex=0; logIndex < STrChOLogData.successLog.length; logIndex++) {
var logVar = STrChOLogData.successLog[logIndex];
var logDate = logVar.split(",")[0];
var logMsg = logVar.split(",")[1];
m += '<tr>';
m += '<td width=20%>' + logDate + '</td>';
m += '<td width=80%>' + logMsg + '</td>';
m += '</tr>';
}
}
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> ACTION LOG <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="height: ' + (dlgHeight - 140) + 'px; width: ' + (dlgWidth - dlgWidthMenu - dlgWidthOffset) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table class=STrChOSectionTable id=STrChOActionLog>';
if (STrChOLogData.actionLog.length == 0) {
m += '<tr><td>NO LOG DATA</td></tr>';
} else {
m += '<tr><td><input id=STrChOClearActionLog type=button class=STrChOButton value="Clear Action Log"></td></tr>';
for (logIndex=0; logIndex < STrChOLogData.actionLog.length; logIndex++) {
var logVar = STrChOLogData.actionLog[logIndex];
var logDate = logVar.split(",")[0];
var logMsg = logVar.split(",")[1];
m += '<tr>';
m += '<td width=20%>' + logDate + '</td>';
m += '<td width=80%>' + logMsg + '</td>';
m += '</tr>';
}
}
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> SALVAGE LOG <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="height: ' + (dlgHeight - 140) + 'px; width: ' + (dlgWidth - dlgWidthMenu - dlgWidthOffset) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<table class=STrChOSectionTable id=STrChOSalvageLog>';
if (STrChOLogData.salvageLog.length == 0) {
m += '<tr><td>NO LOG DATA</td></tr>';
} else {
m += '<tr><td><input id=STrChOClearSalvageLog type=button class=STrChOButton value="Clear Salvage Log"></td></tr>';
for (logIndex=0; logIndex < STrChOLogData.salvageLog.length; logIndex++) {
var logVar = STrChOLogData.salvageLog[logIndex];
var logDate = logVar.split(",")[0];
var logMsg = logVar.split(",")[1];
m += '<tr>';
m += '<td width=20%>' + logDate + '</td>';
m += '<td width=80%>' + logMsg + '</td>';
m += '</tr>';
}
}
m += '</table>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
if (document.getElementById('STrChOClearActionLog')) {
document.getElementById('STrChOClearActionLog').addEventListener('click', function () {
STrChOLogData.actionLog = [];
SAVESTrChOLogData();
t.buildLogDisplay();
}, false);
}
if (document.getElementById('STrChOClearSuccessLog')) {
document.getElementById('STrChOClearSuccessLog').addEventListener('click', function () {
STrChOLogData.successLog = [];
SAVESTrChOLogData();
t.buildLogDisplay();
}, false);
}
if (document.getElementById('STrChOClearSalvageLog')) {
document.getElementById('STrChOClearSalvageLog').addEventListener('click', function () {
STrChOLogData.salvageLog = [];
SAVESTrChOLogData();
t.buildLogDisplay();
}, false);
}
document.getElementById('STrChOLogMaxEntries').addEventListener('change', function () {
STrChOLogData.maxEntries = parseInt(document.getElementById('STrChOLogMaxEntries').value);
SAVESTrChOLogData();
t.buildLogDisplay();
}, false);
document.getElementById('STrChOLogClear').addEventListener('click', function () {
STrChOLogData.actionLog = [];
STrChOLogData.salvageLog = [];
STrChOLogData.successLog = [];
SAVESTrChOLogData();
t.buildLogDisplay();
}, false);
},
removeLogEntry: function (logValue) {
if (logValue == logValues.SUCCESS) {
while (STrChOLogData.successLog.length >= STrChOLogData.maxEntries) STrChOLogData.successLog.pop();
} else if (logValue == logValues.SALVAGE) {
while (STrChOLogData.salvageLog.length >= STrChOLogData.maxEntries) STrChOLogData.salvageLog.pop();
} else if (logValue == logValues.ACTION) {
while (STrChOLogData.actionLog.length >= STrChOLogData.maxEntries) STrChOLogData.actionLog.pop();
} else return;
},
addLogEntry: function (logValue, msg) {
var t = Tabs.STrChOLog;
if (logValue == logValues.SUCCESS) {
if (STrChOLogData.successLog.length >= STrChOLogData.maxEntries) t.removeLogEntry(logValue);
STrChOLogData.successLog.unshift(t.createTimeStamp() + "," + msg);
} else if (logValue == logValues.SALVAGE) {
if (STrChOLogData.salvageLog.length >= STrChOLogData.maxEntries) t.removeLogEntry(logValue);
STrChOLogData.salvageLog.unshift(t.createTimeStamp() + "," + msg);
} else if (logValue == logValues.ACTION) {
if (STrChOLogData.actionLog.length >= STrChOLogData.maxEntries) t.removeLogEntry(logValue);
STrChOLogData.actionLog.unshift(t.createTimeStamp() + "," + msg);
} else return;
SAVESTrChOLogData();
},
createTimeStamp: function () {
var d = new Date();
var ts = d.toDateString().substring(3,10) + " " + d.toTimeString().substring(0,8);
return ts;
},
}
Tabs.STrChOOptions = {
tabOrder: 301,
tabLabel: 'OPTIONS',
tabColor: 'blue',
tabHeader: 'STrChO OPTIONS',
init: function (div) {
var t = Tabs.STrChOOptions;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '<div class=STrChOSaveSettings id=STrChOOptionsSaveSettings title="Save Options Settings"></div><div class=STrChOLoadSettings id=STrChOOptionsLoadSettings title="Load Options Settings"></div></div>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td width=100%><input class=STrChOCheckbox id=STrChODisableAnim type=checkbox ' + (STrChOGeneralOptions.disableAnim ? 'CHECKED ' : '') + '/> Disable Failure Animation (Big Red X) </td></tr>';
m += '<tr><td><input class=STrChOCheckbox id=STrChODraggableThroneItems type=checkbox ' + (STrChOGeneralOptions.draggableThroneItems ? 'CHECKED ' : '') + '/> Enable Draggable Throne Room Items </td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChOShowJewels type=checkbox ' + (STrChOGeneralOptions.showJewels ? 'CHECKED ' : '') + '/> Show Jewels Icon In Throne Room Inventory </td></tr> ';
m += '</table>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> SALVAGER OPTIONS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td><b>Put Aetherstones: </b><div style="display: inline;" id=STrChOSalvageCity></div></td></tr>';
m += '<tr><td><div style="white-space: pre;" ><input class=STrChOCheckbox id=STrChOSalvageAnyCity type=checkbox ' + (STrChOGeneralOptions.salvageAnyCity ? ' CHECKED' : '') + '> When Full, Put Aetherstones In Any City.</td></tr>';
m += '<tr><td> Maximum Number Of Aetherstones: <input class=STrChOTextbox id=STrChOMaxStones type=text size=7 maxlength=7 value="' + STrChOGeneralOptions.maxStones + '"></div></td></tr>';
m += '<tr><td> Overflow Method: <select class=STrChOSelect id=STrChOOverflow><option value="order" ' + (STrChOGeneralOptions.overflow=='order' ? 'SELECTED' : '') + '>City Order</option><option value="lowest" ' + (STrChOGeneralOptions.overflow=='lowest' ? 'SELECTED' : '') + '>Lowest City</option> </select></td></tr>';
m += '<tr><td><div>Load Throne Room Salvager Settings From Domain Number: <input class=STrChOTextbox id=STrChOThroneLoadDomain type=text size=3 maxlength=3 /><input class=STrChOButton id=STrChOThroneLoadDomainRules type=button value="Load"></div></td></tr>';
m += '<tr><td><div>Load Champ Hall Salvager Settings From Domain Number: <input class=STrChOTextbox id=STrChOChampLoadDomain type=text size=3 maxlength=3 /><input class=STrChOButton id=STrChOChampLoadDomainRules type=button value="Load"></div></td></tr>';
m += '<tr><td><div style="white-space: pre;" ><input class=STrChOCheckbox id=STrChOThroneSalvageUpgradeFirst type=checkbox ' + (STrChOThroneSalvageData.upgradeFirst ? ' CHECKED' : '') + '> Upgrade Items To +1 Before Deleting.</td></tr>';
m += '<tr><td> Maximum Quality: <select class=STrChOSelect id=STrChOThroneUpgradeFirstQual>';
for (qual = 0; qual < throneCardQualities.length; qual++) m += '<option value="' + qual + '" ' + (STrChOThroneSalvageData.upgradeFirstQual == qual ? 'SELECTED' : '') + '>' + throneCardQualities[qual].capitalizeFirstLetter() + '</option>';
m += '</select> (Throne Room Only)</td></tr>';
m += '<tr><td><div style="white-space: pre;" ><input class=STrChOCheckbox id=STrChOThroneSalvageUpgradeManual type=checkbox ' + (STrChOThroneSalvageData.upgradeManual ? ' CHECKED' : '') + '/> Upgrade Items To +1 On Manual Delete. (Throne Room Only)</td></tr>';
m += '<tr><td><div style="white-space: pre;" ><input class=STrChOCheckbox id=STrChOThroneSalvageUpgradeAutoFind type=checkbox ' + (STrChOThroneSalvageData.upgradeAutoFind ? ' CHECKED' : '') + '/> Add Items To Throne Upgrader Automatically When A Rule Is Matched</td></tr>';
m += '<tr><td><div style="white-space: pre;" ><input class=STrChOCheckbox id=STrChOChampSalvageUpgradeAutoFind type=checkbox ' + (STrChOChampSalvageData.upgradeAutoFind ? ' CHECKED' : '') + '/> Add Items To Champ Upgrader Automatically When A Rule Is Matched</td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> ENHANCE/UPGRADE OPTIONS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="width: 100%; height: 360px; overflow-x: hidden; overflow-y: auto;">';
m += '<table class=STrChOSectionTable>';
m += '<tr><td><b>Use Aetherstones: </b><div style="display: inline;" id=STrChOUseCity></div></td></tr>';
m += '<tr><td width=25%>Retry interval (seconds): <input class=STrChOTextbox id=STrChORetryInterval type=text size=3 maxlength=3 value="' + STrChOGeneralOptions.retryInterval + '"/></td></tr>';
m += '<tr><td><div style="white-space: pre;"><input class=STrChOCheckbox id=STrChOUseAnyCity type=checkbox ' + (STrChOGeneralOptions.useAnyCity ? ' CHECKED' : '') + '/> When Full, Use Aetherstones From Any City.</td></tr>';
m += '<tr><td> Minimum Number Of Aetherstones: <input class=STrChOTextbox id=STrChOMinStones type=text size=7 maxlength=7 value="' + STrChOGeneralOptions.minStones + '"/> </div></td></tr>';
m += '<tr><td><input class=STrChOCheckbox id=STrChOWhisperCheck type=checkbox ' + (STrChOGeneralOptions.whisperToMe ? 'CHECKED ' : '') + '/> Whisper Myself Successful Upgrades/Enhancements</td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChOSendInbox type=checkbox ' + (STrChOGeneralOptions.sendToInbox ? 'CHECKED ' : '') + '/> Send To Inbox Successful Upgrades/Enhancements</td></tr>';
m += '<tr><td><input class=STrChOCheckbox id=STrChOSafetyCheck type=checkbox ' + (STrChOGeneralOptions.safetyOn ? 'CHECKED ' : '') + '/> Disable Manual Upgrades If Less Than <input class=STrChOTextbox type=text id=STrChOSafetyLimit size=10 maxlength=10 value="' + STrChOGeneralOptions.safetyLimit + '"> Aetherstone</td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChOBuffsCheck type=checkbox ' + (STrChOGeneralOptions.buffsOff ? 'CHECKED ' : '') + '/> Prevent Automatic Upgrade Token Selection (Throne Room Only)</td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChOMastersTokenCheck type=checkbox ' + (STrChOGeneralOptions.removeMastersTokens ? 'CHECKED ' : '') + '/> Remove Master & Lucky Tokens From Upgrade Panel (Throne Room Only)</td></tr>';
m += '<tr><td><input class=STrChOCheckbox id=STrChOOtherTokenCheck type=checkbox ' + (STrChOGeneralOptions.removeOtherTokens ? 'CHECKED ' : '') + '/> Remove All Other Tokens From Upgrade Panel (Not LLT Or Stones) (Throne Room Only)</td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChOUseMastersToken type=checkbox ' + (STrChOGeneralOptions.useMastersTokens ? 'CHECKED ' : '') + '/> Use Next Masters On Manual Upgrade (Overrides Above 2 Options If Checked, Throne Room Only) </td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChOForgedTokenCheck type=checkbox ' + (STrChOGeneralOptions.removeForgedTokens ? 'CHECKED ' : '') + '/> Remove Forged Tokens From Upgrade Panel (Champ Hall Only)</td></tr>';
m += '<tr><td><input class=STrChOCheckbox id=STrChOOtherForgedTokenCheck type=checkbox ' + (STrChOGeneralOptions.removeOtherForgedTokens ? 'CHECKED ' : '') + '/> Remove All Other Tokens From Upgrade Panel (Champ Hall Only)</td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChOUseForgedToken type=checkbox ' + (STrChOGeneralOptions.useForgedTokens ? 'CHECKED ' : '') + '/> Use Next Forged On Manual Upgrade (Overrides Above 2 Options If Checked, Champ Hall Only) </td></tr> ';
//m += '<tr><td><input class=STrChOCheckbox id=STrChOMultiUpgrade type=checkbox ' + (STrChOGeneralOptions.multiUpgrade ? 'CHECKED ' : '') + '/> Add Button For Combined Upgrade/Enhancement (Throne Room Only)</td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChONoEquippedSalvage type=checkbox ' + (STrChOGeneralOptions.noEquippedSalvage ? 'CHECKED ' : '') + '/> Remove Salvage Button When Item Is Equipped In Any Slot</td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChONoMassSalvage type=checkbox ' + (STrChOGeneralOptions.noMassSalvage ? 'CHECKED ' : '') + '/> Remove Mass Salvage Button</td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChONoForcedSalvage type=checkbox ' + (STrChOGeneralOptions.noForcedSalvage ? 'CHECKED ' : '') + '/> Remove Forced Salvage Button (Throne Room Only)</td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChOThroneSalvageSafety type=checkbox ' + (STrChOGeneralOptions.throneSalvageSafety ? 'CHECKED ' : '') + '/> Remove Salvage Button For 1st <input class=STrChOTextbox id=STrChOThroneSafetyNum type=text size=3 maxlength=3 value="' + STrChOGeneralOptions.throneSalvageSafetyNum + '"> Throne Room Items</td></tr> ';
m += '<tr><td><input class=STrChOCheckbox id=STrChOChampSalvageSafety type=checkbox ' + (STrChOGeneralOptions.champSalvageSafety ? 'CHECKED ' : '') + '/> Remove Salvage Button For 1st <input class=STrChOTextbox id=STrChOChampSafetyNum type=text size=3 maxlength=3 value="' + STrChOGeneralOptions.champSalvageSafetyNum + '"> Champion Items</td></tr> ';
m += '</table>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOOptionsSaveSettings').addEventListener('click', function () {
SaveSettingsToFile(STrChOGeneralOptions);
}, false);
document.getElementById('STrChOOptionsLoadSettings').addEventListener('click', function () {
var loader = document.getElementById('STrChOSettingsFile');
loader.addEventListener('change', function () {
LoadSettingsFromFile(STrChOGeneralOptions, Tabs.STrChOOptions);
}, false);
loader.click();
}, false);
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
new CdispCityPicker('salcitysel', document.getElementById('STrChOSalvageCity'), true, t.SalvageCityButton, STrChOGeneralOptions.salvageCityNum);
new CdispCityPicker('upcitysel', document.getElementById('STrChOUseCity'), true, t.UsedCityButton, STrChOGeneralOptions.usedCityNum);
document.getElementById('STrChOSendInbox').addEventListener('change', function () {
STrChOGeneralOptions.sendToInbox = document.getElementById('STrChOSendInbox').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOShowJewels').addEventListener('change', function () {
STrChOGeneralOptions.showJewels = document.getElementById('STrChOShowJewels').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOMinStones').addEventListener('change', function () {
STrChOGeneralOptions.minStones = document.getElementById('STrChOMinStones').value;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOOverflow').addEventListener('change', function () {
STrChOGeneralOptions.overflow = document.getElementById('STrChOOverflow').value;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOMaxStones').addEventListener('change', function () {
STrChOGeneralOptions.maxStones = document.getElementById('STrChOMaxStones').value;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOUseAnyCity').addEventListener('change', function () {
STrChOGeneralOptions.useAnyCity = document.getElementById('STrChOUseAnyCity').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOThroneSalvageUpgradeFirst').addEventListener('change', function () {
STrChOThroneSalvageData.upgradeFirst = document.getElementById('STrChOThroneSalvageUpgradeFirst').checked;
SAVESTrChOThroneSalvageData();
}, false);
document.getElementById('STrChOThroneUpgradeFirstQual').addEventListener('change', function () {
STrChOThroneSalvageData.upgradeFirstQual = document.getElementById('STrChOThroneUpgradeFirstQual').value;
SAVESTrChOThroneSalvageData();
}, false);
document.getElementById('STrChOThroneSalvageUpgradeManual').addEventListener('change', function () {
STrChOThroneSalvageData.upgradeManual = document.getElementById('STrChOThroneSalvageUpgradeManual').checked;
SAVESTrChOThroneSalvageData();
}, false);
document.getElementById('STrChOThroneSalvageUpgradeAutoFind').addEventListener('change', function () {
STrChOThroneSalvageData.upgradeAutoFind = document.getElementById('STrChOThroneSalvageUpgradeAutoFind').checked;
SAVESTrChOThroneSalvageData();
}, false);
document.getElementById('STrChOChampSalvageUpgradeAutoFind').addEventListener('change', function () {
STrChOChampSalvageData.upgradeAutoFind = document.getElementById('STrChOChampSalvageUpgradeAutoFind').checked;
SAVESTrChOChampSalvageData();
}, false);
document.getElementById('STrChOSalvageAnyCity').addEventListener('change', function () {
STrChOGeneralOptions.salvageAnyCity = document.getElementById('STrChOSalvageAnyCity').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChORetryInterval').addEventListener('change', function () {
STrChOGeneralOptions.retryInterval = parseInt(document.getElementById('STrChORetryInterval').value);
if (STrChOGeneralOptions.retryInterval < 15) STrChOGeneralOptions.retryInterval = 15;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOThroneSafetyNum').addEventListener('change', function () {
STrChOGeneralOptions.throneSalvageSafetyNum = parseInt(document.getElementById('STrChOThroneSafetyNum').value);
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOChampSafetyNum').addEventListener('change', function () {
STrChOGeneralOptions.champSalvageSafetyNum = parseInt(document.getElementById('STrChOChampSafetyNum').value);
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOBuffsCheck').addEventListener('change', function () {
STrChOGeneralOptions.buffsOff = document.getElementById('STrChOBuffsCheck').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOSafetyLimit').addEventListener('change', function () {
STrChOGeneralOptions.safetyLimit = parseInt(document.getElementById('STrChOSafetyLimit').value);
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChODisableAnim').addEventListener('change', function () {
STrChOGeneralOptions.disableAnim = document.getElementById('STrChODisableAnim').checked;
disableAnimation(STrChOGeneralOptions.disableAnim);
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChODraggableThroneItems').addEventListener('change', function () {
STrChOGeneralOptions.draggableThroneItems = document.getElementById('STrChODraggableThroneItems').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOWhisperCheck').addEventListener('change', function () {
STrChOGeneralOptions.whisperToMe = document.getElementById('STrChOWhisperCheck').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOSafetyCheck').addEventListener('change', function () {
STrChOGeneralOptions.safetyOn = document.getElementById('STrChOSafetyCheck').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOMastersTokenCheck').addEventListener('change', function () {
STrChOGeneralOptions.removeMastersTokens = document.getElementById('STrChOMastersTokenCheck').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOOtherTokenCheck').addEventListener('change', function () {
STrChOGeneralOptions.removeOtherTokens = document.getElementById('STrChOOtherTokenCheck').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOUseMastersToken').addEventListener('change', function () {
STrChOGeneralOptions.useMastersTokens = document.getElementById('STrChOUseMastersToken').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOForgedTokenCheck').addEventListener('change', function () {
STrChOGeneralOptions.removeForgedTokens = document.getElementById('STrChOForgedTokenCheck').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOOtherForgedTokenCheck').addEventListener('change', function () {
STrChOGeneralOptions.removeOtherForgedTokens = document.getElementById('STrChOOtherForgedTokenCheck').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOUseForgedToken').addEventListener('change', function () {
STrChOGeneralOptions.useForgedTokens = document.getElementById('STrChOUseForgedToken').checked;
SAVESTrChOGeneralOptions();
}, false);
// document.getElementById('STrChOMultiUpgrade').addEventListener('change', function () {
// STrChOGeneralOptions.multiUpgrade = document.getElementById('STrChOMultiUpgrade').checked;
// SAVESTrChOGeneralOptions();
// }, false);
document.getElementById('STrChONoForcedSalvage').addEventListener('change', function () {
STrChOGeneralOptions.noForcedSalvage = document.getElementById('STrChONoForcedSalvage').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChONoEquippedSalvage').addEventListener('change', function () {
STrChOGeneralOptions.noEquippedSalvage = document.getElementById('STrChONoEquippedSalvage').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChONoMassSalvage').addEventListener('change', function () {
STrChOGeneralOptions.noMassSalvage = document.getElementById('STrChONoMassSalvage').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOThroneSalvageSafety').addEventListener('change', function () {
STrChOGeneralOptions.throneSalvageSafety = document.getElementById('STrChOThroneSalvageSafety').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOChampSalvageSafety').addEventListener('change', function () {
STrChOGeneralOptions.champSalvageSafety = document.getElementById('STrChOChampSalvageSafety').checked;
SAVESTrChOGeneralOptions();
}, false);
document.getElementById('STrChOThroneLoadDomainRules').addEventListener('click', function () {
var d = document.getElementById('STrChOThroneLoadDomain').value;
if (d != null) ThroneLoadDomainSalvageData(d);
}, false);
document.getElementById('STrChOChampLoadDomainRules').addEventListener('click', function () {
var d = document.getElementById('STrChOChampLoadDomain').value;
if (d != null) ChampLoadDomainSalvageData(d);
}, false);
disableAnimation(STrChOGeneralOptions.disableAnim);
},
hide: function () {},
show: function () {},
SalvageCityButton: function (city, x, y) {
STrChOGeneralOptions.salvageCityNum = city.idx;
SAVESTrChOGeneralOptions();
},
UsedCityButton: function (city, x, y) {
STrChOGeneralOptions.usedCityNum = city.idx;
SAVESTrChOGeneralOptions();
},
}
Tabs.STrChOJewels = {
tabOrder: 302,
tabLabel: 'JEWELS',
tabColor: 'blue',
tabHeader: 'JEWEL ORGANIZER',
jewelEffects: [],
totalInventroy: 0,
inventoryList: [],
init: function (div) {
var t = Tabs.STrChOJewels;
t.mydiv = div;
},
hide: function () {},
show: function () {
var t = Tabs.STrChOJewels;
t.buildJewelList();
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td><b>Effects</b></td><td><b>Quality</b></td></tr>';
m += '<tr>';
m += '<td><div id=STrChOJewelEffectFilterRow style="float: left; width: 250px; border:2px solid #ccc; height: 110px; overflow-y: scroll; background-color: white;">';
for (fx=0;fx<t.jewelEffects.length;fx++) {
var effect = t.jewelEffects[fx];
effect = effect.split(' ').join('');
effect = effect.split('.').join('');
m += '<input class=STrChOCheckbox id=STrChOJewelEffect' + effect + ' type=checkbox CHECKED />' + t.jewelEffects[fx] + '<br />';
}
m += '</div></td>';
m += '<td><div id=STrChOJewelQualityFilterRow style="float: left; width: 120px; border:2px solid #ccc; height: 110px; overflow-y: scroll; background-color: white;">';
for (jwl=0;jwl<STrChOJewelQualities.length;jwl++) {
m += '<input class=STrChOCheckbox id=STrChOJewelQuality' + String(STrChOJewelQualities[jwl]).capitalizeFirstLetter() + ' type=checkbox CHECKED />' + String(STrChOJewelQualities[jwl]).capitalizeFirstLetter() + '<br />';
}
m += '</div></td>';
m += '</tr>';
m += '<tr><td><input style="width:120px;" class=STrChOButton type=button id=STrChOJewelEffectsUnselectAll value="Unselect All"></td>';
m += '<td><input style="width:120px;" class=STrChOButton type=button id=STrChOJewelQualitiesUnselectAll value="Unselect All"></td></tr>';
m += '<tr><td><input style="width:120px;" class=STrChOButton type=button id=STrChOJewelEffectsSelectAll value="Select All"></td>';
m += '<td><input style="width:120px;" class=STrChOButton type=button id=STrChOJewelQualitiesSelectAll value="Select All"></td></tr>';
m += '<tr><td colspan=2 align=center><div class=divNoWrap id=STrChOJewelBuffFilterRow><input id=STrChOJewelBuff' + true + ' type=checkbox CHECKED />Buff <input id=STrChOJewelBuff' + false + ' type=checkbox CHECKED />Debuff</div></td></tr>';
m += '</table></div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> JEWEL INVENTORY <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table cellpadding=0 cellspacing=0 width=100%>';
m += '<thead>';
m += '<tr>';
m += '<th align=left width=60%>Effect</th>';
m += '<th align=left width=10%>Quality</th>';
m += '<th align=left width=10%>Type</th>';
m += '<th align=center width=10%>Amount</th>';
m += '<th align=center width=10%>In Stock</th>';
m += '</tr>';
m += '</thead>';
m += '</table>';
m += '<div style="position: static; width: 100%; height: 225px; overflow-x: hidden; overflow-y: auto;">';
m += '<table id=STrChOJewelInventory cellpadding=0 cellspacing=0 width=100%>';
m += '<tbody>';
m += '</tbody>';
m += '</table>';
m += '</div>';
m += '<hr/>';
m += '<input class=STrChOButton id=STrChOJewelRefresh type=button value="Refresh"/> <i>(new jewels found may take a couple seconds to add to total)</i> <b>Total:</b><div class=divNoWrap id=STrChOJewelTotal></div>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
t.buildInventory();
document.getElementById('STrChOJewelEffectFilterRow').addEventListener('change', function () {
t.buildInventory();
}, false);
document.getElementById('STrChOJewelQualityFilterRow').addEventListener('change', function () {
t.buildInventory();
}, false);
document.getElementById('STrChOJewelBuffFilterRow').addEventListener('change', function () {
t.buildInventory();
}, false);
document.getElementById('STrChOJewelRefresh').addEventListener('click', function () {
t.buildJewelList();
t.buildInventory();
}, false);
document.getElementById('STrChOJewelQualitiesUnselectAll').addEventListener('click', function () {
for (qly=0;qly<=STrChOJewelQualities.length;qly++) {
var quality = STrChOJewelQualities[qly];
var ch = document.getElementById("STrChOJewelQuality" + quality.capitalizeFirstLetter());
ch.checked = false;
}
t.buildInventory();
}, false);
document.getElementById('STrChOJewelQualitiesSelectAll').addEventListener('click', function () {
for (qly=0;qly<=STrChOJewelQualities.length;qly++) {
var quality = STrChOJewelQualities[qly];
var ch = document.getElementById("STrChOJewelQuality" + quality.capitalizeFirstLetter());
ch.checked = true;
}
t.buildInventory();
}, false);
document.getElementById('STrChOJewelEffectsUnselectAll').addEventListener('click', function () {
for (ef=0;ef<t.jewelEffects.length;ef++) {
var effect = t.jewelEffects[ef];
effect = effect.split(' ').join('');
effect = effect.split('.').join('');
var ch = document.getElementById("STrChOJewelEffect" + effect);
ch.checked = false;
}
t.buildInventory();
}, false);
document.getElementById('STrChOJewelEffectsSelectAll').addEventListener('click', function () {
for (ef=0;ef<t.jewelEffects.length;ef++) {
var effect = t.jewelEffects[ef];
effect = effect.split(' ').join('');
effect = effect.split('.').join('');
var ch = document.getElementById("STrChOJewelEffect" + effect);
ch.checked = true;
}
t.buildInventory();
}, false);
},
addJewel: function (jewel_id, jewel_quality, throne_item_id) {
var params = uW.Object.clone(ajfx);
params.ctrl = 'throneRoom\\ThroneRoomServiceAjax';
params.action = 'addJewel';
params.itemId = throne_item_id;
params.quality = jewel_quality;
params.effectId = jewel_id;
new AjaxRequest(uW.g_ajaxpath + "ajax/_dispatch53.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
try {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
}
else {
return 'Error Adding Jewel';
}
} catch (e) {
}
return;
},
onFailure: function (rst) {
return;
}
});
CM.ThronePanelView.removeSpinny();
},
removeJewel: function (city_id, throne_item_id) {
var params = uW.Object.clone(ajfx);
params.ctrl = 'throneRoom\\ThroneRoomServiceAjax';
params.action = 'removeJewel';
params.cityId = city_id;
params.itemId = throne_item_id;
new AjaxRequest(uW.g_ajaxpath + "ajax/_dispatch53.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
try {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
var astone_gain = rslt.aetherstones * -1;
Seed.resources["city" + rslt.cityId]["rec5"][0] += astone_gain;
} else {
return 'Error Removing Jewel';
}
} catch (e) {
}
return;
},
onFailure: function (rst) {
return;
}
});
CM.ThronePanelView.removeSpinny();
},
buildInventory: function () {
var t = Tabs.STrChOJewels;
var inv = "";
for (i = 0; i < t.inventoryList.length; i++) {
var jewel_item = t.inventoryList[i];
var qlty = CM.thronestats.jewelGrowthLimit[jewel_item.quality];
var amt = CM.ThroneController.getEffectAmount(jewel_item, qlty);
var name = CM.ThroneController.jewelName(jewel_item);
var buffed = true;
if (name.indexOf("Debuff") > 0) buffed = false;
var effect = CM.ThroneController.getEffectName(jewel_item.id);
var qty = CM.ThroneController.getJewelQuantity(jewel_item);
var qualityName = CM.ThroneController.jewelQualityName(jewel_item.quality);
var tmpEffect = CM.ThroneController.getEffectName(jewel_item.id);
tmpEffect = tmpEffect.split(' ').join('');
tmpEffect = tmpEffect.split('.').join('');
if (!(document.getElementById('STrChOJewelEffect' + tmpEffect).checked)) continue;
if (!(document.getElementById('STrChOJewelQuality' + qualityName).checked)) continue;
if (!(document.getElementById('STrChOJewelBuff' + buffed).checked)) continue;
inv += '<tr><td width=62%>' + effect + '</td>';
inv += '<td width=10%>' + qualityName + '</td>';
inv += '<td width=10%>' + (buffed ? 'Buff ' : 'Debuff') + '</td>';
inv += '<td align=center width=10%>' + amt + '%</td>';
inv += '<td align=right width=8%>' + qty + '</td></tr>';
}
var jwl_inv = document.getElementById('STrChOJewelInventory').tBodies[0];
jwl_inv.innerHTML = inv;
var jwl_total = document.getElementById('STrChOJewelTotal');
jwl_total.innerHTML = t.totalInventroy;
},
buildJewelList: function () {
var t = Tabs.STrChOJewels;
t.inventoryList = [];
t.totalInventroy = 0;
for (var jwl=0;jwl<uW.kocJewelItems.length;jwl++) {
var jewel_item = uW.kocJewelItems[jwl];
var qlty = CM.thronestats.jewelGrowthLimit[jewel_item.quality];
var amt = CM.ThroneController.getEffectAmount(jewel_item, qlty);
var effect = CM.ThroneController.getEffectName(jewel_item.id);
if (amt == 0) break;
if (t.jewelEffects.indexOf(effect) < 0) t.jewelEffects.push(effect);
var jewel_quantity = CM.ThroneController.getJewelQuantity(jewel_item);
t.totalInventroy += jewel_quantity;
t.inventoryList.push(jewel_item);
}
},
}
Tabs.STrChONews = {
tabOrder: 303,
tabLabel: 'NEWS',
tabColor: 'blue',
tabHeader: 'BREAKING NEWS',
init: function (div) {
var t = Tabs.STrChONews;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<table cellpadding=0 cellspacing=0 width=100% height=35px>';
m += '<tr><td align=center>';
// m += '<a href="https://www.facebook.com/tco4koc" target="_BLANK" style="font-family: tahoma,verdana,arial,sans-serif; font-size: 11px; font-variant: normal; font-style: normal; font-weight: normal; color: #3B5998; text-decoration: none;" title="KoC Throne & Champ Organizer by Ne0"><img src="https://www.facebookbrand.com/img/assets/asset.find.us.on.facebook.lg.png" style="border: 0px;" /></a> ';
//m += '<iframe src="//www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2Ftco4koc&width&layout=standard&action=like&show_faces=false&share=true&height=15" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:15px;" allowTransparency="true"></iframe> ';
m += '</td></tr>';
m += '<tr></tr><tr><td align=center><b>In Hounour Of<br><br>Mark Branscombe (TCO)<br><br>Phil Cazz (MadMaxx)<br><br>That Paved The Way For Organizers Like This Thanks Guys !!! </b></td></tr>';
m += '</table>';
m += '<div style="height: ' + (dlgHeight - (dlgHeightOffset*5)) + 'px; width: ' + (dlgWidth - dlgWidthMenu) + 'px; margin-top:5px; margin-bottom:5px; overflow-x: auto; overflow-y: auto; position: static;">';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> WHATS NEW <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection style="position: static; width: 100%; overflow-x: auto; overflow-y: auto;">';
m += '<table class=STrChOSectionTable>';
m += NewsItemRow('<b>2020</b>');
m += NewsItemRow('Spawn STrChO (Throne And Champ Organizer)');
m += '</table>';
m += '</div>';
m += '</table>';
m += '</div>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
},
hide: function () {},
show: function () {
},
}
Tabs.STrChOLinks = {
tabOrder: 304,
tabLabel: 'LINKS',
tabColor: 'blue',
tabHeader: 'MY FAVORITE LINKS',
init: function (div) {
var t = Tabs.STrChOLinks;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div>';
m += '<table class=STrChOSectionTable>';//cellpadding=0 cellspacing=0 width=100%>';
m += '<tr><td align=center><div id=STrChOLink1 class=STrChOLinksClass style="cursor:pointer;"><font class=STrChOLinksHeader>STrChO (Throne And Champ Organizer)</td></tr>';
m += '<tr><td align=center class=STrChOTDLinks><div id=STrChOLink1data class=STrChOLinkData style="display:none;">';
m += '<a target="_blank" href="https://greasyfork.org/en/scripts/408041-spawn-trcho "><font class=STrChOLinks>https://greasyfork.org/en/scripts/408041-spawn-trcho </a><br>';
m += '<font class=STrChOLinksDesc>An advanced organizer that upgrades and salvages KOC throne room and champion items, with many extra features</font>';
m += '</div></td></tr>';
m += '<tr><td align=center><div id=STrChOLink2 class=STrChOLinksClass style="cursor:pointer;"><font class=STrChOLinksHeader>Demon Spawn koc bot</td></tr>';
m += '<tr><td align=center class=STrChOTDLinks><div id=STrChOLink2data class=STrChOLinkData style="display:none;">';
m += '<a target="_blank" href="https://greasyfork.org/en/scripts/407074-demon-spawn-koc-bot"><font class=STrChOLinks>https://greasyfork.org/en/scripts/407074-demon-spawn-koc-bot</a><br>';
m += '<font class=STrChOLinksDesc>A powerful bot that automates features for KOC</font>';
m += '</div></td></tr>';
m += '<tr><td align=center><div id=STrChOLink3 class=STrChOLinksClass style="cursor:pointer;"><font class=STrChOLinksHeader>Tampermonkey</td></tr>';
m += '<tr><td align=center class=STrChOTDLinks><div id=STrChOLink3data class=STrChOLinkData style="display:none;">';
m += '<a target="_blank" href="https://www.tampermonkey.net/"><font class=STrChOLinks>https://www.tampermonkey.net/</a><br>';
m += '<font class=STrChOLinksDesc> A extension that allows users to install scripts that make on-the-fly changes to web page content after or before the page is loaded in the browser</font>';
m += '</div></td></tr>';
m += '<tr><td align=center><div id=STrChOLink4 class=STrChOLinksClass style="cursor:pointer;"><font class=STrChOLinksHeader>Throne Room Spreadsheet</td></tr>';
m += '<tr><td align=center class=STrChOTDLinks><div id=STrChOLink4data class=STrChOLinkData style="display:none;">';
m += '<a target="_blank" href="https://docs.google.com/spreadsheets/d/1gs02x8aURak1D4MGTBzrYc5_ZDAg6cB_Kq2xiRU6kfE/edit?pli=1#gid=0"><font class=STrChOLinks>https://docs.google.com/spreadsheets/d/1gs02x8aURak1D4MGTBzrYc5_ZDAg6cB_Kq2xiRU6kfE/edit?pli=1#gid=0</a><br>';
m += '<font class=STrChOLinksDesc>Great spreadsheet to view what stats are available on throne cards, and some other throne/champ related items</font>';
m += '</div></td></tr>';
m += '<tr><td align=center><div id=STrChOLink5 class=STrChOLinksClass style="cursor:pointer;"><font class=STrChOLinksHeader>Google Translator for Firefox</td></tr>';
m += '<tr><td align=center class=STrChOTDLinks><div id=STrChOLink5data class=STrChOLinkData style="display:none;">';
m += '<a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/google-translator-for-firefox/"><font class=STrChOLinks>https://addons.mozilla.org/en-US/firefox/addon/google-translator-for-firefox/</a><br>';
m += '<font class=STrChOLinksDesc>With this addon you can translate any text to your own language</font>';
m += '</div></td></tr>';
m += '<tr><td align=center><div id=STrChOLink6 class=STrChOLinksClass style="cursor:pointer;"><font class=STrChOLinksHeader>Tab Reloader for Chrome</td></tr>';
m += '<tr><td align=center class=STrChOTDLinks><div id=STrChOLink6data class=STrChOLinkData style="display:none;">';
m += '<a target="_blank" href="https://chrome.google.com/webstore/detail/tab-reloader-page-auto-re/dejobinhdiimklegodgbmbifijpppopn?hl=en"><font class=STrChOLinks>https://chrome.google.com/webstore/detail/tab-reloader-page-auto-re/dejobinhdiimklegodgbmbifijpppopn?hl=en</a><br>';
m += '<font class=STrChOLinksDesc>Reloads web pages every so many seconds or minutes</font>';
m += '</div></td></tr>';
m += '<tr><td align=center><div id=STrChOLink7 class=STrChOLinksClass style="cursor:pointer;"><font class=STrChOLinksHeader>Tab Reloader for Firefox</td></tr>';
m += '<tr><td align=center class=STrChOTDLinks><div id=STrChOLink7data class=STrChOLinkData style="display:none;">';
m += '<a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/tab-reloader/?src=search"><font class=STrChOLinks>https://addons.mozilla.org/en-US/firefox/addon/tab-reloader/?src=search</a><br>';
m += '<font class=STrChOLinksDesc>Reloads web pages every so many seconds or minutes</font>';
m += '</div></td></tr>';
m += '</table>';
m += '</div>';
m += '<div class=STrChOHeader onmouseover="this.style.cursor=\'pointer\'"><img src="'+STrChORightArrow+'"/> TUTORIAL LINKS <img class=STrChOReverseImage src="'+STrChORightArrow+'"/></div>';
m += '<div class=STrChOSection>';
m += '<table class=STrChOSectionTable>';
m += '<tr><td align=center>';
m += '<a target="_blank" href="http://www.youtube.com/embed/fXlHAzszico?rel=0&autoplay=1"><font class=STrChOLinks>Preview/Preset/Repair Tabs Tutorial</font></a>';
m += '</td></tr>';
m += '<tr><td align=center>';
m += '<a target="_blank" href="http://www.youtube.com/embed/-maykvcbk4o?rel=0&autoplay=1"><font class=STrChOLinks>Throne Organizer-Preview Tutorial</font></a>';
m += '</td></tr>';
m += '</table>';
m += '</div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
var STrChOLinkClick = function() {
var id = this.getAttribute("id");
var linkNumber = id.split("STrChOLink")[1];
var divLinkName = 'STrChOLink' + linkNumber + 'data';
var divLink = document.getElementById(divLinkName);
var hidden = (divLink.style.display == "none");
var links = document.getElementsByClassName("STrChOLinkData");
for (i = 1; i < links.length + 1; i++) {
document.getElementById('STrChOLink' + i + 'data').style.display = "none";
}
if (hidden) {
divLink.style.display = "block";
} else {
divLink.style.display = "none";
}
};
var STrChOLinksClass = document.getElementsByClassName("STrChOLinksClass");
for(var i = 0; i < STrChOLinksClass.length; i++){
STrChOLinksClass[i].addEventListener('click', STrChOLinkClick, false);
};
var header = document.getElementsByClassName('STrChOHeader');
for (var head=0;head<header.length;head++) {
header[head].addEventListener('click', sectionOpener, false);
}
},
hide: function () {},
show: function () {},
}
Tabs.STrChODonate = {
tabOrder: 305,
tabLabel: 'DONATE',
tabColor: 'blue',
tabHeader: 'DONATIONS',
init: function (div) {
var t = Tabs.STrChODonate;
t.mydiv = div;
var m = '<div class=STrChOHeader>' + t.tabHeader + '</div>';
m += '<div class=indent5><b>';
m +='Hi there, thanks for taking the time to consider donating. I never ask for handouts, although a thank you is nice. And sometimes a monetary thank you is nicer.';
m +='Because it lets me continue working on the KoC script. You may or may not spend a few dollars on gems in support of the game you love. Maybe you can send a ';
m +='little our way and support the coders who make your life a bit easier by automating it? If you would like to donate, please press the donate button';
m +='below and I will be a very happy coder! All donations are processed through PayPal on my behalf. Thanks again for your support, without people like you, I would lose interest in this game';
m += '</b></div>';
m += '<div align=center><table><tr><td width=100% align=center>';
m += '<a id=STrChOPayPalLink><img onmouseover="this.style.cursor=\'pointer\'" id=STrChOPayPalImage /></a>';
m += '</td></tr></table></div>';
t.mydiv.innerHTML = '<div>' + m + '</div>';
document.getElementById('STrChOPayPalLink').setAttribute('href', 'https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=CB2MLZCP8FPE8');
document.getElementById('STrChOPayPalLink').setAttribute('target', '_blank');
document.getElementById('STrChOPayPalImage').setAttribute('src', 'https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif');
document.getElementById('STrChOPayPalImage').setAttribute('alt', 'donate');
},
hide: function () {},
show: function () {},
}
/***********************************************************************************************************************************************************************************/
function QueueItem() { //class definition for upgrade queue items
this.item = 0;
this.action = "upgrade";
this.level = 1;
this.status = "not started";
this.triesTotal = 0;
this.triesThis = 0;
this.triesLast = 0;
this.lastUpgrade = "none";
this.upgrades = [];
}
function ThroneRule(type, faction, conditions, advancedrule) { //class definition for rules and conditions
this.type = type;
this.faction = faction;
this.advancedrule = advancedrule;
if (conditions)
this.conditions = conditions;
else
this.conditions = [];
this.ThroneAddCondition = ThroneAddCondition;
this.ThroneApplyRule = ThroneApplyRule;
}
function ThroneCloneRule(rule) {
this.type = rule.type;
this.faction = rule.faction;
this.advancedrule = rule.advancedrule;
this.conditions = [];
if (rule.conditions) this.conditions = rule.conditions;
this.ThroneAddCondition = ThroneAddCondition;
this.ThroneApplyRule = ThroneApplyRule;
}
function ThroneAddCondition(c) {
this.conditions.push(c);
}
function ThroneApplyRule(id) {
var ThroneItem = uW.kocThroneItems[id];
if (this.type != 'any' && (this.type != ThroneItem.type)) return false;
if (this.faction != 'any' && (this.faction != ThroneItem.faction)) return false;
for (r in this.conditions) {
if (!this.conditions[r].ThroneCheckCondition(id)) return false;
}
return true;
}
function ThroneCondition(mustHave, number, effect, buffType, slots ) {
this.mustHave = mustHave;
this.number = number;
this.effect = effect;
this.buffType = buffType;
this.slots = slots;
this.ThroneCheckCondition = ThroneCheckCondition;
}
function ThroneCheckCondition(id) {
var numberFound = 0;
var effectsFound = false;
// get card
var ThroneItem = uW.kocThroneItems[id];
if (!ThroneItem) return false;
// for loop for stat
// count up occurances
for (i in ThroneItem.effects) {
var CardEffect = CM.thronestats.effects[ThroneItem.effects[i].id][1];
var slotid = i.split("slot")[1];
if (!this.slots[slotid-1]) continue;
var eff = this.effect + " ";
if (CardEffect.indexOf(" Debuff") < 0) CardEffect += " ";
if (!CardEffect.startsWith(eff)) continue;
// special rule for Chance to Find Items
if ( (CardEffect == "Chance to Find Items ") && (CardEffect != eff ) ) continue;
// If we do not care about buff/debuff then we are done
if (this.buffType == "e") {
numberFound++;
} else {
// Does the description end with a Debuff
if (CardEffect.endsWith(" Debuff")) {
// Are we looking for a debuff
if (this.buffType == "d") numberFound++;
} else {
if (this.buffType == "b") numberFound++;
}
}
}
if ( numberFound >= this.number) effectsFound = true;
if (this.mustHave != "false")
return effectsFound;
else
return (!effectsFound);
}
function ChampRule(type, faction, conditions, advancedrule) { //class definition for rules and conditions
this.type = type;
this.faction = faction;
this.advancedrule = advancedrule;
if (conditions)
this.conditions = conditions;
else
this.conditions = [];
this.ChampAddCondition = ChampAddCondition;
this.ChampApplyRule = ChampApplyRule;
}
function ChampCloneRule(rule) {
this.type = rule.type;
this.faction = rule.faction;
this.advancedrule = rule.advancedrule;
this.conditions = [];
if (rule.conditions) this.conditions = rule.conditions;
this.ChampAddCondition = ChampAddCondition;
this.ChampApplyRule = ChampApplyRule;
}
function ChampAddCondition(c) {
this.conditions.push(c);
}
function ChampApplyRule(id) {
var champItem = uW.kocChampionItems[id];
if (this.type != "any" && (champItemTypes[this.type] != champItem.type)) return false;
if (this.faction != "any" && (this.faction != champItem.faction)) return false;
for (r in this.conditions)
{
if (!this.conditions[r].ChampCheckCondition(id)) return false;
}
return true;
}
function ChampCondition(mustHave, number, effect, buffType, slots ) {
this.mustHave = mustHave;
this.number = number;
this.effect = effect;
this.buffType = buffType;
this.slots = slots;
this.ChampCheckCondition = ChampCheckCondition;
}
function ChampCheckCondition(id) {
var numberFound = 0;
var effectsFound = false;
// get card
var champItem = uW.kocChampionItems[id];
if (!champItem) return false;
// for loop for stat
// count up occurances
for (i in champItem.effects) {
var id = champItem.effects[i].id;
var card_effect = "";
card_effect = uW.g_js_strings.effects["name_" + id];
var slotid = +i;
if (!this.slots[slotid-1]) continue;
var eff = this.effect + " ";
if (card_effect.indexOf(" Debuff") < 0) card_effect += " ";
if (!card_effect.startsWith(eff)) continue;
// If we do not care about buff/debuff then we are done
if (this.buffType == "e") {
numberFound++;
} else {
// Does the description end with a Debuff
if (card_effect.endsWith(" Debuff")) {
// Are we looking for a debuff
if (this.buffType == "d")
{
numberFound++;
}
} else {
if (this.buffType == "b")
{
numberFound++;
}
}
}
}
if ( numberFound >= this.number) {
effectsFound = true;
}
if (this.mustHave != "false")
return effectsFound;
else
return (!effectsFound);
}
function ReplaceToolTips() {
var TToldF = CM.ThroneView.boostsTooltip;
var ThroneToolTip = function (L, E, K) {
var J = new Array();
var slot = L.innerHTML;
slot = slot.replace("<span>","").replace("</span>","").trim();
if (L.id == "maparea_boosts_throneroom") slot = Seed.throne.activeSlot;
J.push("<div id='boosts_tooltip'><b>Throne Room:</b><br/>");
J.push("<b><i>(" + STrChOThronePresetData.presetNames[slot] + ")</i></b>");
J.push("<br/>");
var equipped_items = Seed.throne.slotEquip[slot];
if (equipped_items.length > 0) {
J.push(GenerateThronePresetEffectsString(equipped_items, true));
} else {
J.push("<div>This Preset has no Items equipped</div>");
}
J.push("</div>");
if (L.id == "maparea_boosts_throneroom") {
uW.showTooltip(J.join(""), L, E, K)
} else {
uW.Tooltip.show(E, J.join(""), [10, 10], null)
}
}
CM.ThroneView.boostsTooltip = ThroneToolTip;
}
function alterChampHall() {
function addNewHover() {
$(".Champion div[hover_id]").unbind("hover").hover(function () {
if ($(this).hasClass("edit_container") && $(this).attr("champion_idx")) {
$(".mini_tooltip").remove();
$(".tooltip").remove();
var champSlot = $(this).attr("champion_idx");
var topVal = parseInt(champSlot) * 100 + 47;
var leftVal = 150;
champSlot++;
var champId = getChampID(champSlot);
var D = [];
for (var chId in uW.kocChampionItems) if (uW.kocChampionItems[chId].equippedTo == champId) D.push(chId);
var champStats = GenerateChampPresetEffectsString(D, false);
champStats = champStats.split('||').join('<br>');
D = [];
D.push("Champ Hall Slot #" + champSlot);
D.push(getChampName(champSlot));
if (STrChOChampPresetData.showChampName) D.push("(" + STrChOChampPresetData.presetNames[champSlot-1] + ")");
if (STrChOChampPresetData.showChampMight) D.push(getChampMight());
D.push(champStats);
var champText = D.join('<br>');
$(".Champion").append('<div class="tooltip" style="pointer-events: none; left: ' + leftVal + "px; top: " + topVal + 'px;">' + champText + "</div>");
$(this).append('<div class="mini_tooltip"></div>')
this.addEventListener('mouseout', function () {
$(".mini_tooltip").remove();
$(".tooltip").remove();
});
}
});
}
function addPostChamp() {
var button_sizes = '38px';
var assign_button = document.getElementsByClassName('assign_city')[0];
assign_button.style.width = button_sizes;
assign_button.className += ' divNoWrap';
assign_button.parentElement.className += ' divNoWrap';
if (!document.getElementById('STrChOHideShow')) {
var STrChO_button = document.createElement('div');
STrChO_button.className = 'buttonv2 brown divNoWrap';
STrChO_button.innerHTML = 'STrChO';
STrChO_button.id = 'STrChOHideShow';
STrChO_button.style.width = button_sizes;
assign_button.parentElement.appendChild(STrChO_button);
STrChO_button.addEventListener('click', function () {
eventHideShow();
}, false);
}
if (!document.getElementById('STrChOPostChamp')) {
var post_button = document.createElement('div');
post_button.className = 'buttonv2 red divNoWrap';
post_button.innerHTML = 'POST';
post_button.id = 'STrChOPostChamp';
post_button.style.width = button_sizes;
assign_button.parentElement.appendChild(post_button);
post_button.addEventListener('click', function () {
var champDiv = document.getElementsByClassName('name active')[0];
var champClass = champDiv.className;
var champIndex = parseInt(champClass.replace(' name active', '').replace('name', ''));
postChampSlot(champIndex+1);
}, false);
}
}
function addMenus() {
$(".champItem").click(function (A) {
CardContextMenu(this, uW.kocChampionItems[this.id], false);
});
}
function addBorders() {
Tabs.champPresets.paintTags();
var dv = document.getElementById('STrChOChampMight')
if (!dv) {
var modContainers = document.getElementsByClassName("cmModalContainer Champion");
if (modContainers == null || !modContainers) return;
var modContainer = modContainers[0];
if (modContainer == null || !modContainer) return;
var elem = modContainer.getElementsByClassName("primarytitlebar")[0];
dv = document.createElement('div');
dv.id = "STrChOChampMight";
dv.style.whiteSpace='nowrap';
dv.style.position='absolute';
dv.style.overflow='visible';
dv.style.top = '15px';
dv.style.left = '435px';
dv.style.zIndex=2005;
elem.insertBefore(dv, elem.childNodes[1].nextSibling);
}
dv.innerHTML = getChampMight();
}
var oldOpen = CM.ChampionModalController.open;
CM.ChampionModalController.open = function (j) {
oldOpen(j);
addBorders();
addPostChamp();
addNewHover();
}
var rfi = CM.ChampionModalView.renderFilteredItems;
CM.ChampionModalView.renderFilteredItems = function () {
rfi();
addMenus();
addBorders();
}
var rdr = CM.ChampionModalView.render;
CM.ChampionModalView.render = function (ab,aa) {
rdr(ab,aa);
addMenus();
addBorders();
addPostChamp();
addNewHover();
}
var oldUpgEnh = CM.ChampionModalView.renderUpgEnh;
CM.ChampionModalView.renderUpgEnh = function (ag, aa) {
oldUpgEnh(ag, aa);
var NextClick = document.getElementById('upgEnhStatsTarget');
var t = Tabs.champOrganizer;
t.panelId = ag; //this is the champ item ID
t.panelNextLevel = uW.kocChampionItems[ag].level + 1;
NextClick.removeEventListener("click", t.showNextChampLevel);
var Locked = document.getElementById('chLockedStatIcon');
if (Locked != null) return;
NextClick.addEventListener("click", t.showNextChampLevel);
var champUpgTab = document.getElementById('champUpgTab');
if (!champUpgTab) return;
var clearForgedTokens = function () {
// remove options for tokens
var removeItems = [
uW.ksoItems[21093].name, //45s
uW.ksoItems[21092].name, //44s
uW.ksoItems[21091].name, //43s
uW.ksoItems[21090].name, //42s
uW.ksoItems[21089].name, //41s
uW.ksoItems[21088].name, //40s
uW.ksoItems[21087].name, //39s
uW.ksoItems[21086].name, //38s
uW.ksoItems[21085].name, //37s
uW.ksoItems[21084].name, //36s
uW.ksoItems[21083].name, //35s
uW.ksoItems[21082].name, //34s
uW.ksoItems[21081].name, //33s
uW.ksoItems[21080].name, //32s
uW.ksoItems[21079].name, //31s
uW.ksoItems[21078].name, //30s
uW.ksoItems[21077].name, //29s
uW.ksoItems[21076].name, //28s
uW.ksoItems[21075].name, //27s
uW.ksoItems[21074].name, //26s
uW.ksoItems[21073].name, //25s
uW.ksoItems[21072].name, //24s
uW.ksoItems[21071].name, //23s
uW.ksoItems[21070].name, //22s
uW.ksoItems[21069].name, //21s
uW.ksoItems[21068].name, //20s
uW.ksoItems[21067].name, //19s
uW.ksoItems[21066].name, //18s
uW.ksoItems[21065].name, //17s
uW.ksoItems[21064].name, //16s
uW.ksoItems[21063].name, //15s
uW.ksoItems[21062].name, //14s
uW.ksoItems[21061].name, //13s
uW.ksoItems[21060].name, //12s
uW.ksoItems[21059].name, //11s
uW.ksoItems[21055].name, //10s
uW.ksoItems[21054].name, //9s
uW.ksoItems[21057].name, //8s
uW.ksoItems[21053].name, //7s
uW.ksoItems[21056].name //6s
];
$(document.querySelector("#upgEnhBuffSelect")).children("option").each(function () {
if ($.inArray($(this).text(), removeItems) > -1) $(this).remove();
});
}
var clearOtherForgedTokens = function () {
// remove options for tokens
var removeItems = [uW.ksoItems[21051].name, // Journeyman Smith's Token
uW.ksoItems[21052].name, // Smith's Token
uW.ksoItems[21058].name // Expert Smith's Token
];
$(document.querySelector("#upgEnhBuffSelect")).children("option").each(function () {
if ($.inArray($(this).text(), removeItems) > -1) $(this).remove();
});
}
if (champUpgTab.className == 'upgEnhTab active') {
if (STrChOGeneralOptions.useForgedTokens) autoSelectForged();
if (STrChOGeneralOptions.removeForgedTokens && !STrChOGeneralOptions.useForgedTokens) clearForgedTokens();
if (STrChOGeneralOptions.removeOtherForgedTokens && !STrChOGeneralOptions.useForgedTokens) clearOtherForgedTokens();
}
}
};
var ThroneOldRenderMenu = CM.ContextualMenuThrone.renderMenu;
function installThroneHandlerFunctions() {
// add some new functionality here ...
var oldThroneRenderPanel = CM.ThronePanelView.renderPanel;
var newThroneRenderPanel = function (v1, v2) {
oldThroneRenderPanel(v1, v2);
// save off this data ...
Tabs.throneOrganizer.panelId = v2.id;
Tabs.throneOrganizer.panelType = v1;
Tabs.throneOrganizer.panelNextLevel = 2;
var clearMasterTokens = function () {
// remove options for tokens
var removeItems = [uW.ksoItems[20012].name, // +3 master
uW.ksoItems[20013].name, // +5 master
uW.ksoItems[20014].name, // +7
uW.ksoItems[20015].name, // +9
uW.ksoItems[20016].name, // +10
uW.ksoItems[20017].name, // +11
uW.ksoItems[20018].name, // +12
uW.ksoItems[20020].name, // +13
uW.ksoItems[20021].name, // +14
uW.ksoItems[20023].name, // +15
uW.ksoItems[20024].name, // +16
uW.ksoItems[20025].name, // +17
uW.ksoItems[20026].name, // +18
uW.ksoItems[20027].name, // +19
uW.ksoItems[20028].name, // +20
uW.ksoItems[20029].name, // +21
uW.ksoItems[20030].name, // +22
uW.ksoItems[20031].name, // +23
uW.ksoItems[20032].name, // +24
uW.ksoItems[20033].name, // +25
uW.ksoItems[20034].name, // +26
uW.ksoItems[20035].name, // +27
uW.ksoItems[20036].name, // +28
uW.ksoItems[20037].name, // +29
uW.ksoItems[20038].name, // +30
uW.ksoItems[20039].name, // +31
uW.ksoItems[20040].name, // +32 master
uW.ksoItems[20041].name, // +33master
uW.ksoItems[20042].name, // +34
uW.ksoItems[20043].name, // +35
uW.ksoItems[20044].name, // +36
uW.ksoItems[20045].name, // +37
uW.ksoItems[20046].name, // +38
uW.ksoItems[20047].name, // +39
uW.ksoItems[20048].name, // +40
uW.ksoItems[20049].name, // +41
uW.ksoItems[20050].name, // +42
uW.ksoItems[20051].name, // +43
uW.ksoItems[20052].name, // +44
uW.ksoItems[20053].name, // +45
uW.ksoItems[20054].name, // +46
uW.ksoItems[20055].name, // +47
uW.ksoItems[20056].name, // +48
uW.ksoItems[20057].name, // +49
uW.ksoItems[20058].name, // +50
uW.ksoItems[20059].name, // +51
uW.ksoItems[20060].name // +52
];
$(document.querySelector("#buffDropDown")).children("option").each(function () {
if ($.inArray($(this).text(), removeItems) > -1) $(this).remove();
});
$(document.querySelector("#thronePanelBuffIcon")).removeClass().addClass('icon').addClass('i0');
if (!STrChOGeneralOptions.useMastersTokens) $(document.querySelector("#thronePanelBuffPrice")).children("span.items").html('');
}
var clearOtherTokens = function () {
// remove options for tokens
var removeItems = [uW.ksoItems[20006].name, // lucky token
uW.ksoItems[20007].name, // common master
uW.ksoItems[20008].name, // uncommon
uW.ksoItems[20009].name, // rare
uW.ksoItems[20010].name, // epic
uW.ksoItems[20011].name, // wondrous
uW.ksoItems[20019].name, // super lucky token
uW.ksoItems[20022].name, // apprentice token
uW.ksoItems[20101].name, //Fortune's Token +19
uW.ksoItems[20102].name, //Opportunity's Token +19
uW.ksoItems[20103].name, //Prospector's Token +19
uW.ksoItems[20104].name, //Fortune's Token +20
uW.ksoItems[20105].name, //Opportunity's Token +20
uW.ksoItems[20106].name, //Prospector's Token +20
uW.ksoItems[20107].name, //Fortune's Token +21
uW.ksoItems[20108].name, //Opportunity's Token +21
uW.ksoItems[20109].name, //Prospector's Token +21
uW.ksoItems[20110].name, //Fortune's Token +22
uW.ksoItems[20111].name, //Opportunity's Token +22
uW.ksoItems[20112].name, //Prospector's Token +22
uW.ksoItems[20113].name, //Fortune's Token +23
uW.ksoItems[20114].name, //Opportunity's Token +23
uW.ksoItems[20115].name, //Prospector's Token +23
uW.ksoItems[20116].name, //Fortune's Token +24
uW.ksoItems[20117].name, //Opportunity's Token +24
uW.ksoItems[20118].name, //Prospector's Token +24
uW.ksoItems[20119].name, //Fortune's Token +25
uW.ksoItems[20120].name, //Opportunity's Token +25
uW.ksoItems[20121].name, //Prospector's Token +25
uW.ksoItems[20122].name, //Fortune's Token +26
uW.ksoItems[20123].name, //Opportunity's Token +26
uW.ksoItems[20124].name, //Prospector's Token +26
uW.ksoItems[20125].name, //Fortune's Token +27
uW.ksoItems[20126].name, //Opportunity's Token +27
uW.ksoItems[20127].name, //Prospector's Token +27
uW.ksoItems[20128].name, //Fortune's Token +28
uW.ksoItems[20129].name, //Opportunity's Token +28
uW.ksoItems[20130].name, //Prospector's Token +28
uW.ksoItems[20131].name, //Fortune's Token +29
uW.ksoItems[20132].name, //Opportunity's Token +29
uW.ksoItems[20133].name, //Prospector's Token +29
uW.ksoItems[20134].name, //Fortune's Token +30
uW.ksoItems[20135].name, //Opportunity's Token +30
uW.ksoItems[20136].name, //Prospector's Token +30
uW.ksoItems[20137].name, //Fortune's Token +31
uW.ksoItems[20138].name, //Opportunity's Token +31
uW.ksoItems[20139].name, //Prospector's Token +31
uW.ksoItems[20140].name, //Fortune's Token +32
uW.ksoItems[20141].name, //Opportunity's Token +32
uW.ksoItems[20142].name, //Prospector's Token +32
uW.ksoItems[20143].name, //Fortune's Token +33
uW.ksoItems[20144].name, //Opportunity's Token +33
uW.ksoItems[20145].name, //Prospector's Token +33
uW.ksoItems[20146].name, //Fortune's Token +34
uW.ksoItems[20147].name, //Opportunity's Token +34
uW.ksoItems[20148].name, //Prospector's Token +34
uW.ksoItems[20149].name, //Fortune's Token +35
uW.ksoItems[20150].name, //Opportunity's Token +35
uW.ksoItems[20151].name, //Prospector's Token +35
uW.ksoItems[20152].name, //Fortune's Token +36
uW.ksoItems[20153].name, //Opportunity's Token +36
uW.ksoItems[20154].name, //Prospector's Token +36
uW.ksoItems[20155].name, //Fortune's Token +37
uW.ksoItems[20156].name, //Opportunity's Token +37
uW.ksoItems[20157].name, //Prospector's Token +37
uW.ksoItems[20158].name, //Fortune's Token +38
uW.ksoItems[20159].name, //Opportunity's Token +38
uW.ksoItems[20160].name, //Prospector's Token +38
uW.ksoItems[20161].name, //Fortune's Token +39
uW.ksoItems[20162].name, //Opportunity's Token +39
uW.ksoItems[20163].name, //Prospector's Token +39
uW.ksoItems[20164].name, //Fortune's Token +40
uW.ksoItems[20165].name, //Opportunity's Token +40
uW.ksoItems[20166].name, //Prospector's Token +40
uW.ksoItems[20167].name, //Fortune's Token +41
uW.ksoItems[20168].name, //Opportunity's Token +41
uW.ksoItems[20169].name, //Prospector's Token +41
uW.ksoItems[20170].name, //Fortune's Token +42
uW.ksoItems[20171].name, //Opportunity's Token +42
uW.ksoItems[20172].name, //Prospector's Token +42
uW.ksoItems[20173].name, //Fortune's Token +43
uW.ksoItems[20174].name, //Opportunity's Token +43
uW.ksoItems[20175].name, //Prospector's Token +43
uW.ksoItems[20176].name, //Fortune's Token +44
uW.ksoItems[20177].name, //Opportunity's Token +44
uW.ksoItems[20178].name, //Prospector's Token +44
uW.ksoItems[20179].name, //Fortune's Token +45
uW.ksoItems[20180].name, //Opportunity's Token +45
uW.ksoItems[20181].name, //Prospector's Token +45
uW.ksoItems[20182].name, //Fortune's Token +46
uW.ksoItems[20183].name, //Opportunity's Token +46
uW.ksoItems[20184].name, //Prospector's Token +46
uW.ksoItems[20185].name, //Fortune's Token +47
uW.ksoItems[20186].name, //Opportunity's Token +47
uW.ksoItems[20187].name, //Prospector's Token +47
uW.ksoItems[20188].name, //Fortune's Token +48
uW.ksoItems[20189].name, //Opportunity's Token +48
uW.ksoItems[20190].name, //Prospector's Token +48
uW.ksoItems[20191].name, //Fortune's Token +49
uW.ksoItems[20192].name, //Opportunity's Token +49
uW.ksoItems[20193].name, //Prospector's Token +49
uW.ksoItems[20194].name, //Fortune's Token +50
uW.ksoItems[20195].name, //Opportunity's Token +50
uW.ksoItems[20196].name, //Prospector's Token +50
uW.ksoItems[20197].name, //Fortune's Token +51
uW.ksoItems[20198].name, //Opportunity's Token +51
uW.ksoItems[20199].name //Prospector's Token +51
];
$(document.querySelector("#buffDropDown")).children("option").each(function () {
if ($.inArray($(this).text(), removeItems) > -1) $(this).remove();
});
$(document.querySelector("#thronePanelBuffIcon")).removeClass().addClass('icon').addClass('i0');
if (!STrChOGeneralOptions.useMastersTokens) $(document.querySelector("#thronePanelBuffPrice")).children("span.items").html('');
}
var doUpdradeChecks = function () {
if (STrChOGeneralOptions.useMastersTokens) autoSelectMasters(); //v2.id is the throneItemID
if (!STrChOGeneralOptions.useMastersTokens && STrChOGeneralOptions.removeMastersTokens) clearMasterTokens();
if (!STrChOGeneralOptions.useMastersTokens && STrChOGeneralOptions.removeOtherTokens) clearOtherTokens();
if (!STrChOGeneralOptions.useMastersTokens && STrChOGeneralOptions.buffsOff) unselectToken();
if (STrChOGeneralOptions.safetyOn) throneSafetyCheck();
}
var doEnhanceChecks = function () {
if (!STrChOGeneralOptions.useMastersTokens && STrChOGeneralOptions.buffsOff) unselectToken();
if (STrChOGeneralOptions.safetyOn) throneSafetyCheck();
}
var addTabButtonChecks = function () {
// register some callbacks when the buttons are pushed
var pc = document.querySelector('#thronePanelContainer');
$(pc).find("div.navigation ul").children("li.upgrade").click(function() {
doUpdradeChecks();
addTabButtonChecks();
});
$(pc).find("div.navigation ul").children("li.enhance").click(function() {
doEnhanceChecks();
addTabButtonChecks();
});
$(pc).find("div.navigation ul").children("li.jewel").click(function() {
addTabButtonChecks();
});
}
if (v1 == "upgrade") doUpdradeChecks();
if (v1 == "enhance") doEnhanceChecks();
addTabButtonChecks();
}
// hook up to the new function
CM.ThronePanelView.renderPanel = newThroneRenderPanel;
var oldAddJewel = CM.ThroneController.addJewel; //fixes the issue with adding/removing jewels and having it get stuck with the spinney
var newAddJewel = function (aj, ai) {
oldAddJewel(aj, ai);
CM.ThronePanelView.removeSpinny();
}
CM.ThroneController.addJewel = newAddJewel;
var oldRemoveJewel = CM.ThroneController.removeJewel;
var newRemoveJewel = function (ak, ai) {
oldRemoveJewel(ak, ai);
CM.ThronePanelView.removeSpinny();
}
CM.ThroneController.removeJewel = newRemoveJewel;
// override the salvageItem function to allow upgrade to +1 first
var oldSalvageItem = CM.ThroneController.salvageItem;
var newSalvageItem = function (item) {
if ( STrChOThroneSalvageData.upgradeManual )
{
if (item && item.quality <= STrChOThroneSalvageData.upgradeFirstQual && item.level==0 )
{
var status = Tabs.throneSalvager.deleting;
Tabs.throneSalvager.deleting = true;
Tabs.throneUpgrader.doUpgrade(item.id,true);
Tabs.throneSalvager.deleting = status;
}
}
oldSalvageItem(item);
};
CM.ThroneController.salvageItem = newSalvageItem;
var oldRenderInventory = CM.ThroneView.renderInventory;
var newRenderInventory = function(l) {
oldRenderInventory(l);
$("ul#throneInventoryList > li > div").removeClass('STrChOBlueBorder');
$("ul#throneInventoryList > li > div").removeClass('STrChOYellowBorder');
for (ii in STrChOThroneQueueData.list) {
var list_item = STrChOThroneQueueData.list[ii];
if (!list_item) continue;
if (list_item.status != "complete") {
var id = list_item.item;
if (list_item.action == "upgrade") $("div#throneInventoryItem" + id).addClass('STrChOBlueBorder');
if (list_item.action == "enhance") $("div#throneInventoryItem" + id).addClass('STrChOYellowBorder');
}
}
Tabs.thronePresets.paintTags();
}
CM.ThroneView.renderInventory = newRenderInventory;
var oldOpenThrone = CM.ThroneView.openThrone;
var newOpenThrone = function (F) {
oldOpenThrone(F);
STrChOSwapTile = null;
if (STrChOGeneralOptions.draggableThroneItems) {
$("#advisorContainer").draggable();
$("#heroContainer").draggable();
$("#chairContainer").draggable();
$("#candelabrumContainer").draggable();
$("#tableContainer").draggable();
$("#windowContainer").draggable();
$("#bannerContainer").draggable();
$("#trophyContainer").draggable();
$("#statueContainer").draggable();
$("#petContainer").draggable();
$("#tapestryContainer").draggable();
$("#pillarContainer").draggable();
}
Tabs.throneSalvager.updateThroneMenu();
Tabs.throneUpgrader.updateThroneMenu();
Tabs.throneRepair.updateThroneMenu();
Tabs.throneSorter.updateThroneMenu();
$("ul#throneInventoryList > li > div").removeClass('STrChOBlueBorder');
$("ul#throneInventoryList > li > div").removeClass('STrChOYellowBorder');
for (ii in STrChOThroneQueueData.list) {
var list_item = STrChOThroneQueueData.list[ii];
if (!list_item) continue;
if (list_item.status != "complete") {
var id = list_item.item;
if (list_item.action == "upgrade") $("div#throneInventoryItem" + id).addClass('STrChOBlueBorder');
if (list_item.action == "enhance") $("div#throneInventoryItem" + id).addClass('STrChOYellowBorder');
}
}
Tabs.thronePresets.paintTags();
//these next few lines expands the throne inventory list
var h = 564;
var el1 = document.getElementById('throneStatList');
if (el1) { h=h-el1.clientHeight; }
$("ul#throneInventoryList").css('height', h+'px');
$("div#throneInventoryContainer").css('height', h+'px');
if (STrChOGeneralOptions.throneSorter) {
if (STrChOThroneSorter.length == 0) resetThroneSorter();
sortThroneSorter(false);
}
}
CM.ThroneView.openThrone = newOpenThrone;
CM.ContextualMenuThrone.renderMenu = CardContextMenu;
}
function STrChOThroneSorterEventListener(obj) {
var throneId = obj.id.split('throneInventoryItem')[1];
var throneItem = uW.kocThroneItems[throneId];
if (STrChOSwapTile == null) { //this means i haven't clicked the first tile to swap yet, so set it and wait for the second to swap with
STrChOSwapTile = throneId
$(obj).prepend("<div class='swapBorderThrone'></div>");
} else {
if (throneId == STrChOSwapTile) {
$('#throneInventoryItem' + STrChOSwapTile).children(".swapBorderThrone").remove();
STrChOSwapTile = null;
return;
}
$('#throneInventoryItem' + STrChOSwapTile).children(".swapBorderThrone").remove();
var fromTile = document.getElementById('throneInventoryItem' + STrChOSwapTile);
var fromTilePosition = 0;
var child = fromTile;
while( (child = child.previousSibling) != null ) fromTilePosition++;
var toTile = document.getElementById('throneInventoryItem' + throneId);
var toTilePosition = 0;
child = obj;
while( (child = child.previousSibling) != null ) toTilePosition++;
var fromParent = fromTile.parentElement;
var toParent = toTile.parentElement;
var fromDelete = fromParent.children[fromTilePosition];
var toDelete = toParent.children[toTilePosition];
if (fromParent != toParent) { //simple swap
$(fromDelete).remove();
$(toDelete).remove();
fromParent.insertBefore(toTile, fromParent.childNodes[fromTilePosition]);
toParent.insertBefore(fromTile, toParent.childNodes[toTilePosition]);
} else { //little more tricky
var newRow = [];
for (var idx = 0; idx < fromParent.children.length; idx++) {
if (idx == fromTilePosition) {
newRow.unshift(toTile);
} else if (idx == toTilePosition) {
newRow.unshift(fromTile);
} else {
newRow.unshift(fromParent.children[idx]);
}
}
while (fromParent.hasChildNodes()) fromParent.removeChild(fromParent.lastChild);
while (newRow.length > 0) fromParent.appendChild(newRow.pop());
}
STrChOSwapTile = null;
setThroneSorter(false);
SAVESTrChOThroneSorter();
}
}
function resetThroneSorter() {
STrChOThroneSorter = [];
counter = 0;
for (var throneId in uW.kocThroneItems) {
STrChOThroneSorter.push(throneId);
counter++;
if (counter == STrChOMaxThroneCards) break;
}
SAVESTrChOThroneSorter();
}
function sortThroneSorter(fromOrganizer) { //you should never really call this function from the sorter tab because it won't do anything
if (STrChOThroneSorter.length == 0) resetThroneSorter();
var reorder = [];
if (!fromOrganizer) {
//store all the TILES in the sorter array and remove them from inventory
for (var idx = 0; idx < STrChOThroneSorter.length; idx++) {
var throneTile = document.getElementById('throneInventoryItem' + STrChOThroneSorter[idx]);
if (!throneTile) continue;
reorder.unshift(throneTile);
$(throneTile).remove();
}
//check for any remaining TILES and store them temp and remove from inventory
var throneInventoryList = document.getElementById('throneInventoryList');
var throneRows = throneInventoryList.getElementsByClassName('active');
for (var row = 0; row < throneRows.length; row++) {
var throneRow = throneRows[row];
if (throneRow.children.length > 0) {
for (var c = 0; c < throneRow.children.length; c++) {
var throneTile = throneRow.children[c];
if (!throneTile) continue;
reorder.unshift(throneTile);
}
while (throneRow.firstChild) throneRow.removeChild(throneRow.firstChild);
}
}
//by now, ALL TILES should be in the reorder array, time to put them back up on the display
var throneInventoryList = document.getElementById('throneInventoryList');
var throneRows = throneInventoryList.getElementsByClassName('active');
for (var row = 0; row < throneRows.length; row++) {
var throneRow = throneRows[row];
for (var c = 0; c < 5; c++) {
var throneTile = reorder.pop();
if (!throneTile) continue;
throneTile.addEventListener('contextmenu', function(evt) {
evt.preventDefault();
STrChOThroneSorterEventListener(this);
}, false);
throneRow.appendChild(throneTile);
}
}
setThroneSorter(fromOrganizer);
}
}
function setThroneSorter(fromOrganizer) {
if (STrChOThroneSorter.length == 0) resetThroneSorter();
var reorder = [];
var notIn = [];
if (fromOrganizer) {
var STrChOThroneSorterInventoryList = document.getElementById('STrChOThroneSorterInventoryList');
var throneRows = STrChOThroneSorterInventoryList.getElementsByClassName('active');
for (var row = 0; row < throneRows.length; row++) {
var throneRow = throneRows[row];
if (throneRow.children.length > 0) {
for (var col = 0; col < throneRow.children.length; col++) {
var throneDiv = throneRow.children[col];
if (!throneDiv) continue;
var cellId = throneDiv.id;
var throneId = cellId.split('STrChOThroneSorterInventoryIcon')[1];
if (STrChOThroneSorter.indexOf(throneId) == -1) {
notIn.unshift(throneId);
} else {
reorder.unshift(throneId);
}
}
}
}
} else {
var throneInventoryList = document.getElementById('throneInventoryList');
var throneRows = throneInventoryList.getElementsByClassName('active');
for (var row = 0; row < throneRows.length; row++) {
var throneRow = throneRows[row];
if (throneRow.children.length > 0) {
for (var col = 0; col < throneRow.children.length; col++) {
var cellId = throneRow.children[col].id;
var throneId = cellId.split('throneInventoryItem')[1];
if (STrChOThroneSorter.indexOf(throneId) == -1) {
notIn.unshift(throneId);
} else {
reorder.unshift(throneId);
}
}
}
}
}
STrChOThroneSorter = [];
while (reorder.length > 0) STrChOThroneSorter.push(reorder.pop());
while (notIn.length > 0) STrChOThroneSorter.push(notIn.pop());
}
function isUndefined(obj) {
if (typeof(obj) == 'undefined')
return true;
else
return false;
}
function indexOfChampCard(Id) {
var counter = 0;
for (var champId in uW.kocChampionItems) {
counter += 1;
if (champId == Id) return counter;
}
return counter;
}
function indexOfThroneCard(Id) {
var counter = 0;
for (var throneId in uW.kocThroneItems) {
counter += 1;
if (throneId == Id) return counter;
}
return counter;
}
function countHowManyThroneCards() {
var counter = 0;
for (var throneId in uW.kocThroneItems) counter ++;
return counter;
}
function countHowManyChampCards() {
var counter = 0;
for (var champId in uW.kocChampionItems) counter++;
return counter;
}
function countHowManyThroneSlots(Id) {
var presetSlots = getObjectCollectionCount(Seed.throne.slotEquip);
var counter = 0;
for (var slot = 1; slot < presetSlots + 1; slot++) {
var throneItems = Seed.throne.slotEquip[slot];
for (itemIdx = 0; itemIdx < throneItems.length; itemIdx++)
if (Id == throneItems[itemIdx]) counter++;
}
return counter;
}
function howManyThroneSlots(Id) {
var presetSlots = getObjectCollectionCount(Seed.throne.slotEquip);
var presetSlotsFound = [];
var presetSlotMsg = '';
for (var slot = 1; slot < presetSlots + 1; slot++) {
var throneItems = Seed.throne.slotEquip[slot];
for (itemIdx = 0; itemIdx < throneItems.length; itemIdx++) {
if (Id == throneItems[itemIdx]) {
if (presetSlotsFound.length % 8 == 0) {
presetSlotsFound.push('<br>' + slot);
} else {
presetSlotsFound.push(slot);
}
}
}
}
if (presetSlotsFound.length > 0) {
presetSlotMsg = 'Card Found In The<br>Following Preset Slots:' + presetSlotsFound.join(', ');
} else {
presetSlotMsg = 'Not In Any Presets';
}
return presetSlotMsg;
}
function whichChampSlot(Id) {
var presetSlotMsg = '';
var champItem = uW.kocChampionItems[Id];
var championId = champItem.equippedTo;
for (var i = 1; i < STrChOMaxChampions+1; i++) {
var thisChampion = Seed.champion.champions[i-1];
if (thisChampion.championId == championId) {
presetSlotMsg = 'Item Equipped To<br> Champ In Slot ' + i + '<br>Name: ' + thisChampion.name;
break;
}
}
return presetSlotMsg;
}
var CardContextMenu = function (tileDiv, theItem, fromOrganizer) {
if (typeof(fromOrganizer) == 'undefined') fromOrganizer = false;
if (theItem == null) {
ThroneOldRenderMenu(tileDiv, theItem);
return;
}
var lastMenuItem = null;
var throneItem = theItem;
var champItem = theItem;
var isThrone = (typeof(champItem.equipmentId) == 'undefined');
var hasJewel = false;
var cmContainerOpen = (document.getElementsByClassName('cmModalContainer').length == 1 ? true : false);
var itemIndex = 0;
var isBroken = false;
var isRepairing = false;
var isRepairAll = false;
var itemId = null;
var itemLevel = 0;
var presetSlot = 1;
var championId = Seed.champion.champions[presetSlot-1].championId;
var presetTagCount = 0;
var howManyMessage = '';
var inPresets = false;
if (isThrone) {
if (!fromOrganizer) ThroneOldRenderMenu(tileDiv, theItem);
if (throneItem.jewel) {
if (throneItem.jewel.valid) hasJewel = true;
}
//hasJewel = throneItem.jewel.valid;
isBroken = throneItem.isBroken
presetSlot = Seed.throne.activeSlot;
isRepairAll = isAnyThroneBroke();
presetTagCount = getThronePresetTagCount(presetSlot);
itemId = throneItem.id;
itemIndex = indexOfThroneCard(itemId);
itemLevel = throneItem.level;
howManyMessage = howManyThroneSlots(itemId);
if (countHowManyThroneSlots(itemId) > 0) inPresets = true;
} else {
isBroken = (champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE);
isRepairing = (champItem.status == CM.CHAMPION.STATUS_REPAIRING_ENHANCE || champItem.status == CM.CHAMPION.STATUS_REPAIRING_UPGRADE);
if (!fromOrganizer) {
for (i = 0; i < STrChOMaxChampions; i++) {
var champClass = $(".champion_states").children(".name" + i).attr('class');
if ( champClass.indexOf("active") == -1) continue;
presetSlot = i + 1;
break;
}
}
isRepairAll = isAnyChampBroke();
presetTagCount = getChampPresetTagCount(presetSlot);
itemId = champItem.equipmentId;
itemIndex = indexOfChampCard(itemId);
itemLevel = champItem.level;
howManyMessage = whichChampSlot(itemId);
if (howManyMessage != '') {
inPresets = true;
} else {
howManyMessage = 'Not Equipped';
}
}
if (!fromOrganizer) {
uW.removeTooltip();
uW.Tooltip.hide();
}
function ContextMenuExpandCollapse(menuItem, isExpanding) {
var menuSubItemClass = menuItem.id + "_SubItem";
var SubItems = document.getElementsByClassName(menuSubItemClass);
for (var idx = 0; idx < SubItems.length; idx++) {
var menuSubItem = SubItems[idx];
if (isExpanding)
menuSubItem.className = menuSubItem.className.replace('STrChOContextHidden', 'STrChOContextVisible');
else
menuSubItem.className = menuSubItem.className.replace('STrChOContextVisible', 'STrChOContextHidden');
}
}
var STrChOContextMenu = document.getElementById("contextMenu");
if (STrChOContextMenu) {
while (STrChOContextMenu.hasChildNodes()) STrChOContextMenu.removeChild(STrChOContextMenu.lastChild);
} else {
STrChOContextMenu = document.createElement('div');
STrChOContextMenu.addEventListener('mouseleave', function () {
$(this).remove();
}, false);
}
if (isThrone)
STrChOContextMenu.innerHTML = throneItem.type.capitalizeFirstLetter() + '+' + itemLevel; //throneItem.name.replace(/ /g, '<br>');
else
STrChOContextMenu.innerHTML = champItemNames[champItem.type].capitalizeFirstLetter() + '+' + itemLevel; //champItem.name.replace(/ /g, '<br>');
STrChOContextMenu.className = 'STrChOContextMenu';
var STrChOContextMenuUpgrading = document.createElement('div');
STrChOContextMenuUpgrading.className = 'STrChOContextMenuItem STrChOBrown';
STrChOContextMenuUpgrading.innerHTML = 'UPGRADING';
STrChOContextMenuUpgrading.id = 'STrChOContextMenuUpgrading';
STrChOContextMenuUpgrading.addEventListener('click', function(A) {
A.stopPropagation();
if (lastMenuItem == this) {
ContextMenuExpandCollapse(this, false);
lastMenuItem = null;
return;
}
if (lastMenuItem == null) lastMenuItem = this;
if (lastMenuItem.id != this.id) ContextMenuExpandCollapse(lastMenuItem, false);
ContextMenuExpandCollapse(this, true);
lastMenuItem = this;
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuUpgrading);
var STrChOContextMenuUpgrading_AutoUpg = document.createElement('div');
STrChOContextMenuUpgrading_AutoUpg.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuUpgrading_SubItem';
STrChOContextMenuUpgrading_AutoUpg.innerHTML = 'Auto Upgrade';
if ( (isThrone && throneItem.level < STrChOMaxThroneLevel) || (!isThrone && champItem.level < STrChOMaxChampLevel) ) {
STrChOContextMenuUpgrading_AutoUpg.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
Tabs.throneUpgrader.addUpgradeItem(itemId);
else
Tabs.champUpgrader.addUpgradeItem(itemId);
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuUpgrading_AutoUpg.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuUpgrading_AutoUpg);
var STrChOContextMenuUpgrading_Upgrade = document.createElement('div');
STrChOContextMenuUpgrading_Upgrade.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuUpgrading_SubItem';
STrChOContextMenuUpgrading_Upgrade.innerHTML = 'Upgrade';
if ( ( (isThrone && throneItem.level < STrChOMaxThroneLevel) || (!isThrone && champItem.level < STrChOMaxChampLevel) ) && !isBroken ) {
STrChOContextMenuUpgrading_Upgrade.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
if (!cmContainerOpen) CM.ThroneView.openThrone();
CM.ThronePanelView.renderPanel("upgrade", throneItem)
} else {
if (!cmContainerOpen) CM.ChampionModalController.open();
CM.ChampionModalView.upgEnhSlideIn(itemId, "upg");
}
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuUpgrading_Upgrade.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuUpgrading_Upgrade);
var STrChOContextMenuEnhancing = document.createElement('div');
STrChOContextMenuEnhancing.className = 'STrChOContextMenuItem STrChOBrown';
STrChOContextMenuEnhancing.innerHTML = 'ENHANCING';
STrChOContextMenuEnhancing.id = 'STrChOContextMenuEnhancing';
STrChOContextMenuEnhancing.addEventListener('click', function(A) {
if (lastMenuItem == this) {
ContextMenuExpandCollapse(this, false);
lastMenuItem = null;
return;
}
A.stopPropagation();
if (lastMenuItem == null) lastMenuItem = this;
if (lastMenuItem.id != this.id) ContextMenuExpandCollapse(lastMenuItem, false);
ContextMenuExpandCollapse(this, true);
lastMenuItem = this;
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuEnhancing);
var STrChOContextMenuEnhancing_AutoEnh = document.createElement('div');
STrChOContextMenuEnhancing_AutoEnh.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuEnhancing_SubItem';
STrChOContextMenuEnhancing_AutoEnh.innerHTML = 'Auto Enhance';
if ( (isThrone && throneItem.quality < STrChOMaxThroneQuality) || (!isThrone && champItem.rarity < STrChOMaxChampQuality) ) {
STrChOContextMenuEnhancing_AutoEnh.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
Tabs.throneUpgrader.addEnhanceItem(itemId);
else
Tabs.champUpgrader.addEnhanceItem(itemId);
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuEnhancing_AutoEnh.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuEnhancing_AutoEnh);
var STrChOContextMenuEnhancing_Enhance = document.createElement('div');
STrChOContextMenuEnhancing_Enhance.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuEnhancing_SubItem';
STrChOContextMenuEnhancing_Enhance.innerHTML = 'Enhance';
if (!fromOrganizer) {
if ( ( (isThrone && throneItem.quality < STrChOMaxThroneQuality) || (!isThrone && champItem.rarity < STrChOMaxChampQuality) ) && !isBroken ) {
STrChOContextMenuEnhancing_Enhance.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
if (!cmContainerOpen) CM.ThroneView.openThrone();
CM.ThronePanelView.renderPanel("enhance", throneItem)
} else {
if (!cmContainerOpen) CM.ChampionModalController.open();
CM.ChampionModalView.upgEnhSlideIn(itemId, "enh");
}
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuEnhancing_Enhance.className += ' STrChODisabled';
}
} else {
STrChOContextMenuEnhancing_Enhance.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuEnhancing_Enhance);
var STrChOContextMenuEnhancing_Jewel = document.createElement('div');
STrChOContextMenuEnhancing_Jewel.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuEnhancing_SubItem';
STrChOContextMenuEnhancing_Jewel.innerHTML = 'Jewel';
if (isThrone && !isBroken) {
STrChOContextMenuEnhancing_Jewel.addEventListener('click', function(A) {
A.stopPropagation();
if (!cmContainerOpen) CM.ThroneView.openThrone();
CM.ThronePanelView.renderPanel("jewel", throneItem)
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuEnhancing_Jewel.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuEnhancing_Jewel);
var STrChOContextMenuEquipping = document.createElement('div');
STrChOContextMenuEquipping.className = 'STrChOContextMenuItem STrChOBrown';
STrChOContextMenuEquipping.innerHTML = 'EQUIPPING';
STrChOContextMenuEquipping.id = 'STrChOContextMenuEquipping';
STrChOContextMenuEquipping.addEventListener('click', function(A) {
if (lastMenuItem == this) {
ContextMenuExpandCollapse(this, false);
lastMenuItem = null;
return;
}
A.stopPropagation();
if (lastMenuItem == null) lastMenuItem = this;
if (lastMenuItem.id != this.id) ContextMenuExpandCollapse(lastMenuItem, false);
ContextMenuExpandCollapse(this, true);
lastMenuItem = this;
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuEquipping);
var STrChOContextMenuEquipping_Equip = document.createElement('div');
STrChOContextMenuEquipping_Equip.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOGreen STrChOContextMenuEquipping_SubItem';
STrChOContextMenuEquipping_Equip.innerHTML = 'Equip';
if (!isBroken) {
if ( (!throneItem.isEquipped && isThrone) || (!isThrone && champItem.equippedTo != championId) ) {
STrChOContextMenuEquipping_Equip.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
CM.ThroneController.equipItem(throneItem);
else
Tabs.champPresets.equipItem(itemId);
//CM.ChampionManager.equipItem(chId);
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuEquipping_Equip.className += ' STrChODisabled';
}
} else {
STrChOContextMenuEquipping_Equip.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuEquipping_Equip);
var STrChOContextMenuEquipping_Unequip = document.createElement('div');
STrChOContextMenuEquipping_Unequip.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOGreen STrChOContextMenuEquipping_SubItem';
STrChOContextMenuEquipping_Unequip.innerHTML = 'Unequip';
if (!isBroken) {
if ( (throneItem.isEquipped && isThrone) || (!isThrone && champItem.equippedTo != 0) ) {
STrChOContextMenuEquipping_Unequip.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
CM.ThroneController.unequipItem(throneItem);
else
Tabs.champPresets.unequipItem(itemId);
//CM.ChampionManager.unequipItem(itemId);
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuEquipping_Unequip.className += ' STrChODisabled';
}
} else {
STrChOContextMenuEquipping_Unequip.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuEquipping_Unequip);
var STrChOContextMenuEquipping_UnequipAll = document.createElement('div');
STrChOContextMenuEquipping_UnequipAll.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOGreen STrChOContextMenuEquipping_SubItem';
STrChOContextMenuEquipping_UnequipAll.innerHTML = 'Unequip All';
STrChOContextMenuEquipping_UnequipAll.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
Tabs.thronePresets.unequipAllItems(presetSlot);
else
Tabs.champPresets.unequipAllItems(presetSlot);
$(STrChOContextMenu).remove();
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuEquipping_UnequipAll);
var STrChOContextMenuRepair = document.createElement('div');
STrChOContextMenuRepair.className = 'STrChOContextMenuItem STrChOBrown';
STrChOContextMenuRepair.innerHTML = 'REPAIR';
STrChOContextMenuRepair.id = 'STrChOContextMenuRepair';
STrChOContextMenuRepair.addEventListener('click', function(A) {
if (lastMenuItem == this) {
ContextMenuExpandCollapse(this, false);
lastMenuItem = null;
return;
}
A.stopPropagation();
if (lastMenuItem == null) lastMenuItem = this;
if (lastMenuItem.id != this.id) ContextMenuExpandCollapse(lastMenuItem, false);
ContextMenuExpandCollapse(this, true);
lastMenuItem = this;
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuRepair);
var STrChOContextMenuRepair_Repair = document.createElement('div');
STrChOContextMenuRepair_Repair.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuRepair_SubItem';
STrChOContextMenuRepair_Repair.innerHTML = 'Repair Card';
if (isBroken || (isRepairing && !isThrone) ) {
STrChOContextMenuRepair_Repair.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
CM.ThronePanelView.renderBroken(throneItem);
else
CM.ChampionPanelView.renderBroken(champItem);
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuRepair_Repair.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuRepair_Repair);
var STrChOContextMenuRepair_AutoRepair = document.createElement('div');
STrChOContextMenuRepair_AutoRepair.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuRepair_SubItem';
STrChOContextMenuRepair_AutoRepair.innerHTML = 'Auto Repair';
if (isBroken) {
STrChOContextMenuRepair_AutoRepair.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
Tabs.throneRepair.addQueue(itemId);
Tabs.throneRepair.buildThroneRepairDisplay();
} else {
Tabs.champRepair.addQueue(itemId);
Tabs.champRepair.buildChampRepairDisplay();
}
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuRepair_AutoRepair.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuRepair_AutoRepair);
var STrChOContextMenuRepair_AutoRepairAll = document.createElement('div');
STrChOContextMenuRepair_AutoRepairAll.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuRepair_SubItem';
STrChOContextMenuRepair_AutoRepairAll.innerHTML = 'Auto Repair All';
if (isRepairAll) {
STrChOContextMenuRepair_AutoRepairAll.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
Tabs.throneRepair.addAllQueue();
Tabs.throneRepair.buildThroneRepairDisplay();
} else {
Tabs.champRepair.addAllQueue();
Tabs.champRepair.buildChampRepairDisplay();
}
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuRepair_AutoRepairAll.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuRepair_AutoRepairAll);
var STrChOContextMenuSalvaging = document.createElement('div');
STrChOContextMenuSalvaging.className = 'STrChOContextMenuItem STrChOBrown';
STrChOContextMenuSalvaging.innerHTML = 'SALVAGING';
STrChOContextMenuSalvaging.id = 'STrChOContextMenuSalvaging';
STrChOContextMenuSalvaging.addEventListener('click', function(A) {
if (lastMenuItem == this) {
ContextMenuExpandCollapse(this, false);
lastMenuItem = null;
return;
}
A.stopPropagation();
if (lastMenuItem == null) lastMenuItem = this;
if (lastMenuItem.id != this.id) ContextMenuExpandCollapse(lastMenuItem, false);
ContextMenuExpandCollapse(this, true);
lastMenuItem = this;
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuSalvaging);
var STrChOContextMenuSalvaging_Salvage = document.createElement('div');
STrChOContextMenuSalvaging_Salvage.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuSalvaging_SubItem';
STrChOContextMenuSalvaging_Salvage.innerHTML = 'Salvage';
if (!isBroken) {
if (!(inPresets && STrChOGeneralOptions.noEquippedSalvage)) {
if (((!STrChOGeneralOptions.throneSalvageSafety) || (STrChOGeneralOptions.throneSalvageSafety && itemIndex > STrChOGeneralOptions.throneSalvageSafetyNum)) ||
((!STrChOGeneralOptions.champSalvageSafety) || (STrChOGeneralOptions.champSalvageSafety && itemIndex > STrChOGeneralOptions.champSalvageSafetyNum))) {
if (!isThrone || (isThrone && !hasJewel)) {
STrChOContextMenuSalvaging_Salvage.addEventListener('click', function(A) {
A.stopPropagation();
if (confirm('Are you sure you want to salvage this item?')) {
if (isThrone) {
SalvageThroneItem(itemId);
} else {
SalvageChampItem(itemId);
if (cmContainerOpen) CM.ChampionModalController.open()
Tabs.champPreview.clearChampPreviewCard(itemId);
Tabs.champOrganizer.paintChampTables();
}
}
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuSalvaging_Salvage.className += ' STrChODisabled';
}
} else {
STrChOContextMenuSalvaging_Salvage.className += ' STrChODisabled';
}
} else {
STrChOContextMenuSalvaging_Salvage.className += ' STrChODisabled';
}
} else {
STrChOContextMenuSalvaging_Salvage.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuSalvaging_Salvage);
var STrChOContextMenuSalvaging_Forced = document.createElement('div');
STrChOContextMenuSalvaging_Forced.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuSalvaging_SubItem';
STrChOContextMenuSalvaging_Forced.innerHTML = 'Forced Salvage';
if (!isBroken && isThrone && hasJewel && !STrChOGeneralOptions.noForcedSalvage) {
if (!(inPresets && STrChOGeneralOptions.noEquippedSalvage)) {
STrChOContextMenuSalvaging_Forced.addEventListener('click', function(A) {
A.stopPropagation();
if (confirm('Are you sure you want to forced salvage this item?')) Tabs.throneSalvager.forceSalvage(itemId);
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuSalvaging_Forced.className += ' STrChODisabled';
}
} else {
STrChOContextMenuSalvaging_Forced.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuSalvaging_Forced);
var STrChOContextMenuSalvaging_Mass = document.createElement('div');
STrChOContextMenuSalvaging_Mass.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOBlue STrChOContextMenuSalvaging_SubItem';
STrChOContextMenuSalvaging_Mass.innerHTML = 'Mass Salvage';
if (!STrChOGeneralOptions.noMassSalvage) {
STrChOContextMenuSalvaging_Mass.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
CM.ThroneView.renderMassSalvage();
else
CM.ChampionModalView.renderMassSalvage();
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuSalvaging_Mass.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuSalvaging_Mass);
var STrChOContextMenuStats = document.createElement('div');
STrChOContextMenuStats.className = 'STrChOContextMenuItem STrChOBrown';
STrChOContextMenuStats.innerHTML = 'STATS';
STrChOContextMenuStats.id = 'STrChOContextMenuStats';
STrChOContextMenuStats.addEventListener('click', function(A) {
if (lastMenuItem == this) {
ContextMenuExpandCollapse(this, false);
lastMenuItem = null;
return;
}
A.stopPropagation();
if (lastMenuItem == null) lastMenuItem = this;
if (lastMenuItem.id != this.id) ContextMenuExpandCollapse(lastMenuItem, false);
ContextMenuExpandCollapse(this, true);
lastMenuItem = this;
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuStats);
var STrChOContextMenuStats_Copy = document.createElement('div');
STrChOContextMenuStats_Copy.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChORed STrChOContextMenuStats_SubItem';
STrChOContextMenuStats_Copy.innerHTML = 'Copy Stats';
STrChOContextMenuStats_Copy.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
var displayText = getThroneItemStats(itemId, " ");
if (displayText != "") window.prompt("Copy to clipboard: Ctrl+C", displayText);
} else {
var displayText = getChampItemStats(itemId, " ");
if (displayText != "") window.prompt("Copy to clipboard: Ctrl+C", displayText);
}
$(STrChOContextMenu).remove();
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuStats_Copy);
var STrChOContextMenuStats_Post = document.createElement('div');
STrChOContextMenuStats_Post.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChORed STrChOContextMenuStats_SubItem';
STrChOContextMenuStats_Post.innerHTML = 'Post Stats';
STrChOContextMenuStats_Post.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
sendChat(getThroneItemStats(itemId, '||'));
else
sendChat(getChampItemStats(itemId, '||'));
$(STrChOContextMenu).remove();
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuStats_Post);
var STrChOContextMenuStats_Export = document.createElement('div');
STrChOContextMenuStats_Export.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChORed STrChOContextMenuStats_SubItem';
STrChOContextMenuStats_Export.innerHTML = 'Export Cards';
STrChOContextMenuStats_Export.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
ExportThroneToExcel(false);
else
ExportChampToExcel(false);
$(STrChOContextMenu).remove();
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuStats_Export);
var STrChOContextMenuStats_Compare = document.createElement('div');
STrChOContextMenuStats_Compare.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChORed STrChOContextMenuStats_SubItem';
STrChOContextMenuStats_Compare.innerHTML = 'Send To Compare';
STrChOContextMenuStats_Compare.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
Tabs.throneCompare.sendToCompare(itemId);
else
Tabs.champCompare.sendToCompare(itemId);
$(STrChOContextMenu).remove();
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuStats_Compare);
var STrChOContextMenuPresets = document.createElement('div');
STrChOContextMenuPresets.className = 'STrChOContextMenuItem STrChOBrown';
STrChOContextMenuPresets.innerHTML = 'PRESETS';
STrChOContextMenuPresets.id = 'STrChOContextMenuPresets';
STrChOContextMenuPresets.addEventListener('click', function(A) {
if (lastMenuItem == this) {
ContextMenuExpandCollapse(this, false);
lastMenuItem = null;
return;
}
A.stopPropagation();
if (lastMenuItem == null) lastMenuItem = this;
if (lastMenuItem.id != this.id) ContextMenuExpandCollapse(lastMenuItem, false);
ContextMenuExpandCollapse(this, true);
lastMenuItem = this;
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuPresets);
var STrChOContextMenuPresets_EquipPreset = document.createElement('div');
STrChOContextMenuPresets_EquipPreset.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChORed STrChOContextMenuPresets_SubItem';
STrChOContextMenuPresets_EquipPreset.innerHTML = 'Equip Tag #' + presetSlot;
if (presetTagCount != 0) {
STrChOContextMenuPresets_EquipPreset.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone)
Tabs.thronePresets.equipPresetTags(presetSlot);
else
Tabs.champPresets.equipPresetTags(presetSlot);
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuPresets_EquipPreset.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuPresets_EquipPreset);
var STrChOContextMenuPresets_ClearPreset = document.createElement('div');
STrChOContextMenuPresets_ClearPreset.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChORed STrChOContextMenuPresets_SubItem';
STrChOContextMenuPresets_ClearPreset.innerHTML = 'Clear Tag #' + presetSlot;
if (presetTagCount != 0) {
STrChOContextMenuPresets_ClearPreset.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
Tabs.thronePresets.clearPresetTags(presetSlot);
Tabs.thronePresets.paintTags();
} else {
Tabs.champPresets.clearPresetTags(presetSlot);
Tabs.champPresets.paintTags();
}
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuPresets_ClearPreset.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuPresets_ClearPreset);
var STrChOContextMenuPresets_SavePreset = document.createElement('div');
STrChOContextMenuPresets_SavePreset.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChORed STrChOContextMenuPresets_SubItem';
STrChOContextMenuPresets_SavePreset.innerHTML = 'Save Tag #' + presetSlot;
STrChOContextMenuPresets_SavePreset.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
Tabs.thronePresets.addPresetTags(presetSlot);
Tabs.thronePresets.paintTags();
} else {
Tabs.champPresets.addPresetTags(presetSlot);
Tabs.champPresets.paintTags();
}
$(STrChOContextMenu).remove();
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuPresets_SavePreset);
var STrChOContextMenuPresets_LoadToPreview = document.createElement('div');
STrChOContextMenuPresets_LoadToPreview.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChORed STrChOContextMenuPresets_SubItem';
STrChOContextMenuPresets_LoadToPreview.innerHTML = 'Send To Preview';
STrChOContextMenuPresets_LoadToPreview.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
Tabs.thronePreview.loadThronePreviewCard(itemId, throneItem.type);
//Tabs.thronePreview.buildThronePreviewValueDisplay();
} else {
Tabs.champPreview.loadChampPreviewCard(itemId);
Tabs.champPreview.buildChampPreviewValueDisplay();
}
$(STrChOContextMenu).remove();
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuPresets_LoadToPreview);
var STrChOContextMenuTagging = document.createElement('div');
STrChOContextMenuTagging.className = 'STrChOContextMenuItem STrChOBrown';
STrChOContextMenuTagging.innerHTML = 'TAGGING';
STrChOContextMenuTagging.id = 'STrChOContextMenuTagging';
STrChOContextMenuTagging.addEventListener('click', function(A) {
if (lastMenuItem == this) {
ContextMenuExpandCollapse(this, false);
lastMenuItem = null;
return;
}
A.stopPropagation();
if (lastMenuItem == null) lastMenuItem = this;
if (lastMenuItem.id != this.id) ContextMenuExpandCollapse(lastMenuItem, false);
ContextMenuExpandCollapse(this, true);
lastMenuItem = this;
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuTagging);
var STrChOContextMenuTagging_TagItem = document.createElement('div');
STrChOContextMenuTagging_TagItem.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOGreen STrChOContextMenuTagging_SubItem';
STrChOContextMenuTagging_TagItem.innerHTML = 'Tag Item';
if ( (!STrChOThronePresetData.taggedItems[itemId] && isThrone) || (!STrChOChampPresetData.taggedItems[itemId] && !isThrone) ) {
STrChOContextMenuTagging_TagItem.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
Tabs.thronePresets.addTagItem(itemId);
Tabs.thronePresets.paintTags();
} else {
Tabs.champPresets.addTagItem(itemId);
Tabs.champPresets.paintTags();
}
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuTagging_TagItem.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuTagging_TagItem);
var STrChOContextMenuTagging_RemoveTag = document.createElement('div');
STrChOContextMenuTagging_RemoveTag.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOGreen STrChOContextMenuTagging_SubItem';
STrChOContextMenuTagging_RemoveTag.innerHTML = 'Remove Tag';
if ( (STrChOThronePresetData.taggedItems[itemId] && isThrone) || (STrChOChampPresetData.taggedItems[itemId] && !isThrone) ) {
STrChOContextMenuTagging_RemoveTag.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
Tabs.thronePresets.removeTagItem(itemId);
Tabs.thronePresets.paintTags();
} else {
Tabs.champPresets.removeTagItem(itemId);
Tabs.champPresets.paintTags();
}
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuTagging_RemoveTag.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuTagging_RemoveTag);
var STrChOContextMenuTagging_TagItemAll = document.createElement('div');
STrChOContextMenuTagging_TagItemAll.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOGreen STrChOContextMenuTagging_SubItem';
STrChOContextMenuTagging_TagItemAll.innerHTML = 'Tag All';
STrChOContextMenuTagging_TagItemAll.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
Tabs.thronePresets.addAllTagItems();
Tabs.thronePresets.paintTags();
} else {
Tabs.champPresets.addAllTagItems();
Tabs.champPresets.paintTags();
}
$(STrChOContextMenu).remove();
}, false);
STrChOContextMenu.appendChild(STrChOContextMenuTagging_TagItemAll);
var STrChOContextMenuTagging_RemoveTagAll = document.createElement('div');
STrChOContextMenuTagging_RemoveTagAll.className = 'STrChOContextMenuSubItem STrChOContextHidden STrChOGreen STrChOContextMenuTagging_SubItem';
STrChOContextMenuTagging_RemoveTagAll.innerHTML = 'Remove All Tags';
if ( (isThrone && getObjectCollectionCount(STrChOThronePresetData.taggedItems) > 0) ||
(!isThrone && getObjectCollectionCount(STrChOChampPresetData.taggedItems) > 0) ) {
STrChOContextMenuTagging_RemoveTagAll.addEventListener('click', function(A) {
A.stopPropagation();
if (isThrone) {
Tabs.thronePresets.clearAllTagItems();
Tabs.thronePresets.paintTags();
} else {
Tabs.champPresets.removeAllTagItems();
Tabs.champPresets.paintTags();
}
$(STrChOContextMenu).remove();
}, false);
} else {
STrChOContextMenuTagging_RemoveTagAll.className += ' STrChODisabled';
}
STrChOContextMenu.appendChild(STrChOContextMenuTagging_RemoveTagAll);
var STrChOContextMenuCardInfo = document.createElement('div');
STrChOContextMenuCardInfo.innerHTML = howManyMessage;
STrChOContextMenu.appendChild(STrChOContextMenuCardInfo);
if (fromOrganizer) tileDiv.insertBefore(STrChOContextMenu, tileDiv.firstChild);
}
var sectionOpener = function() {
var imgs = this.childNodes;
if (imgs[0].src == STrChODownArrow) {
imgs[0].src = STrChORightArrow
imgs[2].src = STrChORightArrow
} else {
imgs[0].src = STrChODownArrow
imgs[2].src = STrChODownArrow
}
var section = this.nextSibling;
if (section.className != "STrChOSection") return;
var sections = document.getElementsByClassName('STrChOSection');
for (var sect=0;sect<sections.length;sect++) {
if (section != sections[sect]) {
sections[sect].style.display = "none";
var nextImgs = sections[sect].previousSibling.childNodes;
nextImgs[0].src = STrChORightArrow
nextImgs[2].src = STrChORightArrow
}
}
if (section.style.display == "block") {
section.style.display = "none";
} else {
section.style.display = "block";
}
};
//onClick (city{name, id, x, y}, x, y) city may be null!
function CdispCityPicker (id, span, dispName, notify, selbut){
function CcityButHandler (t) {
var that = t;
function clickedCityBut (e){
if (that.selected != null)
that.selected.className = "STrChOCastleButton STrChOCastleButtonNot";
that.city = Cities.cities[e.target.id.substr(that.prefixLen)];
if (that.dispName)
document.getElementById(that.id+'cname').innerHTML = that.city.name;
e.target.className = "STrChOCastleButton STrChOCastleButtonSelect";
that.selected = e.target;
if (that.coordBoxX){
that.coordBoxX.value = that.city.x;
that.coordBoxY.value = that.city.y;
var evt = document.createEvent("HTMLEvents");
evt.initEvent('change', true, true ); // event (type,bubbling,cancelable)
that.coordBoxX.dispatchEvent(evt);
that.coordBoxY.dispatchEvent(evt);
that.coordBoxX.style.backgroundColor = '#ffffff';
that.coordBoxY.style.backgroundColor = '#ffffff';
}
if (that.notify != null)
that.notify(that.city, that.city.x, that.city.y);
}
this.clickedCityBut = clickedCityBut;
}
function selectBut (idx){
document.getElementById(this.id+'_'+idx).click();
}
function bindToXYboxes (eX, eY){
function CboxHandler (t){
var that = t;
this.eventChange = eventChange;
if (that.city){
eX.value = that.city.x;
eY.value = that.city.y;
}
function eventChange (){
var xValue=that.coordBoxX.value.trim();
var xI=/^\s*([0-9]+)[\s|,|-|.]+([0-9]+)/.exec(xValue);
if(xI) {
that.coordBoxX.value=xI[1]
that.coordBoxY.value=xI[2]
}
var x = parseInt(that.coordBoxX.value, 10);
var y = parseInt(that.coordBoxY.value, 10);
if (isNaN(x) || x<0 || x>750){
that.coordBoxX.style.backgroundColor = '#ff8888';
return;
}
if (isNaN(y) || y<0 || y>750){
that.coordBoxY.style.backgroundColor = '#ff8888';
return;
}
that.coordBoxX.style.backgroundColor = '#ffffff';
that.coordBoxY.style.backgroundColor = '#ffffff';
if (that.notify != null)
that.notify (null, x, y);
}
return false;
}
this.coordBoxX = eX;
this.coordBoxY = eY;
var bh = new CboxHandler(this);
eX.maxLength=8;
eY.maxLength=3;
eX.style.width='2em';
eY.style.width='2em';
eX.addEventListener('change', bh.eventChange, false);
eY.addEventListener('change', bh.eventChange, false);
}
this.selectBut = selectBut;
this.bindToXYboxes = bindToXYboxes;
this.coordBoxX = null;
this.coordBoxY = null;
this.id = id;
this.dispName = dispName;
this.prefixLen = id.length+1;
this.notify = notify;
this.selected = null;
this.city = null;
var m = '';
for (var i=0; i < Cities.cities.length; i++)
m += '<input class="STrChOCastleButton STrChOCastleButtonNot" id="'+ id +'_'+ i +'" value="'+ (i+1) +'" type=button />';
if (dispName)
m += ' <span style="display:inline-block; width:85px; font-weight:bold;" id='+ id +'cname' +'></span>';
span.innerHTML = m;
var handler = new CcityButHandler(this);
for (var i=0; i < Cities.cities.length; i++)
document.getElementById (id+'_'+i).addEventListener('click', handler.clickedCityBut, false);
if (selbut != null)
this.selectBut(selbut);
};
function upgradeIt(citynum, chId, cost) {
var t = Tabs.champPresets;
var params = uW.Object.clone(ajfx);
params.action = '5';
params.cityId = citynum;
params.eid = chId;
params.chanceItem = 0;
params.aetherstones = cost;
params.gems = 0;
new AjaxRequest(uW.g_ajaxpath + "ajax/ceEquipmentManagerAjax.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
try {
var rslt = eval("(" + transport.responseText + ")");
if (rslt.ok) {
t.broke_items += 1;
t.setBreakStatus();
Seed.resources["city" + citynum]["rec5"][0] = Seed.resources["city" + citynum]["rec5"][0] - parseInt(rslt.aetherstones);
if (rslt.updateSeed) uW.update_seed(rslt.updateSeed);
}
if (rslt.gems > 0) {
alert("UNEXPECTED ERROR: 'BREAK CH' accidentally spent gems.... Refreshing to stop the feature now!");
ActionLog('BREAK CH accidentally spent gems! Stopping now!');
RefreshCamelot();
return false;
}
} catch (e) {
}
},
onFailure: function (rrr) {
}
});
return true;
}
function repairTimeToText(total_time) {
var secondsInMinutes = 60;
var secondsInHours = 3600;
var secondsInDays = 43200;
var totalDays = 0;
var totalHours = 0;
var totalMinutes = 0;
if (total_time > secondsInDays) {
totalDays = (total_time - (total_time % secondsInDays)) / secondsInDays;
total_time = total_time % secondsInDays;
}
if (total_time > secondsInHours) {
totalHours = (total_time - (total_time % secondsInHours)) / secondsInHours;
total_time = total_time % secondsInHours;
}
if (total_time > secondsInMinutes) {
totalMinutes = (total_time - (total_time % secondsInMinutes)) / secondsInMinutes;
total_time = total_time % secondsInMinutes;
}
var totalSeconds = total_time;
return (totalDays + " Days " + totalHours + " Hours " + totalMinutes + " Minutes " + totalSeconds + " Seconds");
};
function ExportChampPresetToExcel(presetNumber) {
var headers = [ "ID", "NAME", "FACTION", "QUALITY", "TYPE", "LEVEL", "MIGHT", "ROW 1", "ROW 2", "ROW 3", "ROW 4", "ROW 5"];
var ExcelTable = document.createElement('table');
var ExcelBody = document.createElement('tbody');
var ExcelRow = document.createElement('tr');
var ExcelColumn = "";
for (i = 0; i < headers.length; i++) {
ExcelColumn = document.createElement('th');
ExcelColumn.appendChild(document.createTextNode(headers[i]));
ExcelRow.appendChild(ExcelColumn);
}
ExcelBody.appendChild(ExcelRow);
var columns = [];
var preset = getChampPresetObject(parseInt(presetNumber));
for (chId in preset) {
var champ_item = uW.kocChampionItems[chId];
if (!champ_item) continue;
columns = [];
columns.push(chId);
columns.push(champ_item.name);
columns.push(CM.CHAMPION.getFactionClasses(champ_item.faction));
if (champ_item.unique) {
columns.push("unique");
} else {
columns.push(CM.CHAMPION.getRarityClasses(champ_item.rarity));
}
columns.push(CM.CHAMPION.getEquipmentNames(champ_item.type));
columns.push(champ_item.level);
columns.push(champ_item.might);
for (var slotNumber = 1; slotNumber < STrChOMaxChampQuality + 1; slotNumber++) {
var effectLine = champ_item.effects[slotNumber];
var effect = CM.ChampionManager.getEffect(effectLine, champ_item.level);
columns.push(effect.amount + " " + effect.name);
}
columns.reverse();
ExcelRow = document.createElement('tr');
while (columns.length > 0) {
ExcelColumn = document.createElement('td');
ExcelColumn.appendChild(document.createTextNode(columns.pop()));
ExcelRow.appendChild(ExcelColumn);
}
ExcelBody.appendChild(ExcelRow);
}
ExcelTable.appendChild(ExcelBody);
window.open('data:application/vnd.ms-excel,' + encodeURIComponent(ExcelTable.outerHTML));
}
function ExportChampToExcel(preview) {
var headers = [ "ID", "NAME", "FACTION", "QUALITY", "TYPE", "LEVEL", "MIGHT", "ROW 1", "ROW 2", "ROW 3", "ROW 4", "ROW 5"];
var ExcelTable = document.createElement('table');
var ExcelBody = document.createElement('tbody');
var ExcelRow = document.createElement('tr');
var ExcelColumn = "";
for (i = 0; i < headers.length; i++) {
ExcelColumn = document.createElement('th');
ExcelColumn.appendChild(document.createTextNode(headers[i]));
ExcelRow.appendChild(ExcelColumn);
}
ExcelBody.appendChild(ExcelRow);
var columns = [];
for (chId in uW.kocChampionItems) {
if (preview && STrChOChampPresetData.previewChamp.indexOf(chId) == -1 ) continue;
var champ_item = uW.kocChampionItems[chId];
if (!champ_item) continue;
columns = [];
columns.push(chId);
columns.push(champ_item.name);
columns.push(CM.CHAMPION.getFactionClasses(champ_item.faction));
if (champ_item.unique) {
columns.push("unique");
} else {
columns.push(CM.CHAMPION.getRarityClasses(champ_item.rarity));
}
columns.push(CM.CHAMPION.getEquipmentNames(champ_item.type));
columns.push(champ_item.level);
columns.push(champ_item.might);
for (var slotNumber = 1; slotNumber < STrChOMaxChampQuality + 1; slotNumber++) {
var effectLine = champ_item.effects[slotNumber];
var effect = CM.ChampionManager.getEffect(effectLine, champ_item.level);
columns.push(effect.amount + " " + effect.name);
}
columns.reverse();
ExcelRow = document.createElement('tr');
while (columns.length > 0) {
ExcelColumn = document.createElement('td');
ExcelColumn.appendChild(document.createTextNode(columns.pop()));
ExcelRow.appendChild(ExcelColumn);
}
ExcelBody.appendChild(ExcelRow);
}
ExcelTable.appendChild(ExcelBody);
window.open('data:application/vnd.ms-excel,' + encodeURIComponent(ExcelTable.outerHTML));
};
function ExportThronePresetToExcel(presetNumber) {
var headers = [ "ID", "NAME", "FACTION", "QUALITY", "TYPE", "LEVEL", "MIGHT", "JEWEL", "ROW 1", "ROW 2", "ROW 3", "ROW 4", "ROW 5", "ROW 6"];
var ExcelTable = document.createElement('table');
var ExcelBody = document.createElement('tbody');
var ExcelRow = document.createElement('tr');
var ExcelColumn = "";
for (i = 0; i < headers.length; i++) {
ExcelColumn = document.createElement('th');
ExcelColumn.appendChild(document.createTextNode(headers[i]));
ExcelRow.appendChild(ExcelColumn);
}
ExcelBody.appendChild(ExcelRow);
var columns = [];
var preset = getThronePresetObject(parseInt(presetNumber));
for (trId in preset) {
var throne_item = uW.kocThroneItems[trId];
if (!throne_item) continue;
columns = [];
columns.push(trId);
columns.push(throne_item.name);
columns.push(throne_item.faction);
columns.push(throne_item.quality);
columns.push(throne_item.type);
columns.push(throne_item.level);
columns.push(CM.ThroneView.getMightBonus(throne_item));
if (throne_item.jewel.valid) {
var jewel_item = throne_item.jewel;
var qlty = CM.thronestats.jewelGrowthLimit[jewel_item.quality];
var amt = CM.ThroneController.getEffectAmount(jewel_item, qlty);
var jewelName = CM.ThroneController.jewelName(jewel_item);
if (amt == 0) jewelName = "none";
columns.push(jewelName);
} else {
columns.push("none");
}
for (var O in throne_item["effects"]) {
var slotNumber = +(O.split("slot")[1]);
var id = throne_item["effects"]["slot" + slotNumber]["id"];
var tier = parseInt(throne_item["effects"]["slot" + slotNumber]["tier"]);
var level = throne_item.level;
p = CM.thronestats.tiers[id][tier];
var effectName = CM.thronestats["effects"][id]["1"];
while (!p && (tier > 0)) { tier--; p = CM.thronestats.tiers[id][tier]; }
if (!p) continue; // can't find stats for tier
if (slotNumber == 6) {
JewelQuality = throne_item["effects"]["slot" + slotNumber].quality;
GrowthLimit = CM.thronestats.jewelGrowthLimit[JewelQuality];
if (GrowthLimit <= level) level = GrowthLimit
}
var Current = p.base + ((level * level + level) * p.growth * 0.5);
columns.push(Current + "% " + effectName);
}
columns.reverse();
ExcelRow = document.createElement('tr');
while (columns.length > 0) {
ExcelColumn = document.createElement('td');
ExcelColumn.appendChild(document.createTextNode(columns.pop()));
ExcelRow.appendChild(ExcelColumn);
}
ExcelBody.appendChild(ExcelRow);
}
ExcelTable.appendChild(ExcelBody);
window.open('data:application/vnd.ms-excel,' + encodeURIComponent(ExcelTable.outerHTML));
};
function getThroneMight() {
var totMight = 0;
for (trId in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
totMight += CM.ThroneView.getMightBonus(throne_item);
}
return addCommas(totMight);
};
function postThroneSlot( slot ) {
var throneStats = GenerateThronePresetEffectsString(Seed.throne.slotEquip[slot], false);
var D = [];
D.push("Throne Room Slot #" + slot);
if (STrChOThronePresetData.showThroneName) D.push("(" + STrChOThronePresetData.presetNames[slot] + ")");
if (STrChOThronePresetData.showThroneMight) D.push("TR Might: " + getThroneMight());
D.push(throneStats);
sendChat(":::. |" + D.join("||"));
};
function postThronePreset( presetIndex ) {
var trP = getThronePresetObject(parseInt(presetIndex));
var D = [];
for (var p in trP) D.push(p);
var throneStats = GenerateThronePresetEffectsString(D, false);
D = [];
D.push("Throne Room Tag #" + presetIndex);
if (STrChOThronePresetData.showThroneName) D.push("(" + STrChOThronePresetData.presetNames[presetIndex] + ")");
if (STrChOThronePresetData.showThroneMight) D.push("TR Might: " + getThroneMight());
D.push(throneStats);
sendChat(":::. |" + D.join("||"));
};
function GenerateThronePresetEffectsString(presetObject, htmlEffects ) {
var J = new Array();
var Effects = [];
for (var effect in CM.thronestats.effects) Effects[effect] = 0;
var counter = presetObject.length;
var items = [];
for (i = 0; i < counter; i++) items.push(presetObject[i]);
while (items.length > 0) {
var throne_item = uW.kocThroneItems[items.pop()];
if (throne_item == null || !throne_item) continue;
for (var O in throne_item["effects"]) {
var slotNumber = +(O.split("slot")[1]);
var id = throne_item["effects"]["slot" + slotNumber]["id"];
var tier = parseInt(throne_item["effects"]["slot" + slotNumber]["tier"]);
var level = throne_item.level;
p = CM.thronestats.tiers[id][tier];
while (!p && (tier > 0)) { tier--; p = CM.thronestats.tiers[id][tier]; }
if (!p) continue; // can't find stats for tier
if (slotNumber == 6) {
JewelQuality = throne_item["effects"]["slot" + slotNumber].quality;
GrowthLimit = CM.thronestats.jewelGrowthLimit[JewelQuality];
if (GrowthLimit <= level) level = GrowthLimit
}
var Current = p.base + ((level * level + level) * p.growth * 0.5);
if (slotNumber <= parseInt(throne_item.quality)) Effects[id] += Current;
}
}
for (effect in Effects) {
if (Effects[effect] && (Effects[effect] != 0) && CM.thronestats["effects"][effect]) {
var effectName = CM.thronestats["effects"][effect]["1"];
if (htmlEffects == true) {
J.push("<div>" + (Math.round(Effects[effect] * 100) / 100) + '% ' + effectName + "</div>");
} else {
J.push((Math.round(Effects[effect] * 100) / 100) + '% ' + effectName);
}
}
}
if (htmlEffects == true) {
return J.join("");
} else {
return J.join("||");
}
};
function getObjectCollectionCount( objColl ) {
var c = 0;
for (var k in objColl) {
c++;
}
return c;
};
function getChampPresetTagCount(presetIndex) {
switch(presetIndex) {
case 1:
return getObjectCollectionCount(STrChOChampPresetData.taggedItems01);
break;
case 2:
return getObjectCollectionCount(STrChOChampPresetData.taggedItems02);
break;
case 3:
return getObjectCollectionCount(STrChOChampPresetData.taggedItems03);
break;
case 4:
return getObjectCollectionCount(STrChOChampPresetData.taggedItems04);
break;
}
return 0;
};
function getThronePresetTagCount(presetIndex) {
switch(presetIndex) {
case 1:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems01);
break;
case 2:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems02);
break;
case 3:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems03);
break;
case 4:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems04);
break;
case 5:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems05);
break;
case 6:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems06);
break;
case 7:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems07);
break;
case 8:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems08);
break;
case 9:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems09);
break;
case 10:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems10);
break;
case 11:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems11);
break;
case 12:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems12);
break;
case 13:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems13);
break;
case 14:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems14);
break;
case 15:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems15);
break;
case 16:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems16);
break;
case 17:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems17);
break;
case 18:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems18);
break;
case 19:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems19);
break;
case 20:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems20);
break;
case 21:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems21);
break;
case 22:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems22);
break;
case 23:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems23);
break;
case 24:
return getObjectCollectionCount(STrChOThronePresetData.taggedItems24);
break;
};
return 0;
};
function getThronePresetObject(presetIndex) {
switch(presetIndex) {
case 1:
return STrChOThronePresetData.taggedItems01;
break;
case 2:
return STrChOThronePresetData.taggedItems02;
break;
case 3:
return STrChOThronePresetData.taggedItems03;
break;
case 4:
return STrChOThronePresetData.taggedItems04;
break;
case 5:
return STrChOThronePresetData.taggedItems05;
break;
case 6:
return STrChOThronePresetData.taggedItems06;
break;
case 7:
return STrChOThronePresetData.taggedItems07;
break;
case 8:
return STrChOThronePresetData.taggedItems08;
break;
case 9:
return STrChOThronePresetData.taggedItems09;
break;
case 10:
return STrChOThronePresetData.taggedItems10;
break;
case 11:
return STrChOThronePresetData.taggedItems11;
break;
case 12:
return STrChOThronePresetData.taggedItems12;
break;
case 13:
return STrChOThronePresetData.taggedItems13;
break;
case 14:
return STrChOThronePresetData.taggedItems14;
break;
case 15:
return STrChOThronePresetData.taggedItems15;
break;
case 16:
return STrChOThronePresetData.taggedItems16;
break;
case 17:
return STrChOThronePresetData.taggedItems17;
break;
case 18:
return STrChOThronePresetData.taggedItems18;
break;
case 19:
return STrChOThronePresetData.taggedItems19;
break;
case 20:
return STrChOThronePresetData.taggedItems20;
break;
case 21:
return STrChOThronePresetData.taggedItems21;
break;
case 22:
return STrChOThronePresetData.taggedItems22;
break;
case 23:
return STrChOThronePresetData.taggedItems23;
break;
case 24:
return STrChOThronePresetData.taggedItems24;
break;
};
return null;
};
function getChampPresetObject(presetIndex) {
switch(presetIndex) {
case 1:
return STrChOChampPresetData.taggedItems01;
break;
case 2:
return STrChOChampPresetData.taggedItems02;
break;
case 3:
return STrChOChampPresetData.taggedItems03;
break;
case 4:
return STrChOChampPresetData.taggedItems04;
break;
};
return null;
};
function logit (msg) {
var now = new Date();
GM_log (getServerId() +' @ '+ now.toTimeString().substring (0,8) +'.' + now.getMilliseconds() +': '+ msg);
};
function addCommas(nStr){
nStr += '';
var x = nStr.split('.');
var x1 = x[0];
var x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
};
function setCities(){
Cities.numCities = Seed.cities.length;
Cities.cities = [];
Cities.byID = {};
for (i=0; i<Cities.numCities; i++){
city = {};
city.idx = i;
city.id = parseInt(Seed.cities[i][0]);
city.name = Seed.cities[i][1];
city.x = parseInt(Seed.cities[i][2]);
city.y = parseInt(Seed.cities[i][3]);
city.tileId = parseInt(Seed.cities[i][5]);
city.provId = parseInt(Seed.cities[i][4]);
Cities.cities[i] = city;
Cities.byID[Seed.cities[i][0]] = city;
}
};
function isAnyChampBroke() {
for (champId in uW.kocChampionItems) {
var champItem = uW.kocChampionItems[champId];
if (champItem == null || !champItem) return false;
if (champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE) return true;
}
return false;
}
function isAnyThroneBroke() {
for (trId in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) return false;
if (throne_item.isBroken) return true;
}
return false;
};
function getChampItemStats(chId, separater) {
separater = separater || " ";
var champ_item = uW.kocChampionItems[chId];
var D = [];
D.push(champ_item.name);
D.push("Faction: " + CM.CHAMPION.getFactionClasses(champ_item.faction));
var quality = (champ_item.unique > 0) ? "Unique" : CM.CHAMPION.getRarityClasses(champ_item.rarity);
D.push("Quality: " + quality);
D.push("Type: " + uW.g_js_strings.champ[CM.CHAMPION.getEquipmentNames(champ_item.type)]);
D.push("Level: " + champ_item.level);
D.push("Might: " + champ_item.might);
for (var slotNumber = 1; slotNumber < STrChOMaxChampQuality + 1; slotNumber++) {
var effectLine = champ_item.effects[slotNumber];
var effect = CM.ChampionManager.getEffect(effectLine, champ_item.level);
D.push("Row " + slotNumber + ": " + effect.amount + " " + effect.name);
}
var cText = D.join(separater);
if (separater == "||") cText = ":::. |" + cText;
return cText;
}
function getThroneItemStats(trId, separater) {
separater = separater || " ";
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) return "";
var D = [];
D.push(throne_item.name);
D.push("Faction: " + throne_item.faction);
D.push("Quality: " + throne_item.createPrefix());
D.push("Type: " + throne_item.type);
D.push("Level: " + throne_item.level);
D.push("Might: " + CM.ThroneView.getMightBonus(throne_item));
for (slot in throne_item.effects) {
try {
var N = throne_item.effects[slot];
effect = CM.thronestats.effects[N.id];
tier = CM.thronestats.tiers[N.id][N.tier];
if (!tier) tier = CM.thronestats.tiers[N.id][N.tier - 1];
var base = tier.base || 0;
var level = throne_item.level || 0;
var growth = tier.growth || 0;
if (slot == 'slot6') { //if it has a slot 6, it automatically has a jewel
JewelQuality = throne_item["effects"]['slot6'].quality;
GrowthLimit = CM.thronestats.jewelGrowthLimit[JewelQuality];
if (GrowthLimit <= level) level = GrowthLimit
}
percent = +(base + ((level * level + level) * growth * 0.5));
var wholeNumber = false;
if (Math.round(parseFloat(percent)) == parseFloat(percent)) wholeNumber = true;
percent = (percent > 0) ? "+" + percent : +percent;
if (wholeNumber)
percent = parseFloat(percent) .toFixed(0);
else
percent = parseFloat(percent).toFixed(2);
css = (slot % 2 === 0) ? "even" : "odd";
B = +(slot.split("slot")[1]);
effect[1] = effect[1];
D.push("Row " + B + ": " + percent + "% " + effect[1]);
}
catch (e) { }
}
var cText = D.join(separater);
if (separater == "||") cText = ":::. |" + cText;
return cText;
}
function displayCityAstone() {
var city = pickAetherUseCity();
var m = '';
if (city == -1) {
m = '<div>No Aetherstone Available</div>';
} else {
var aether = parseInt(Seed.resources["city" + Seed.cities[city][0]]["rec5"][0]);
m = '<div>AETHER: City #' + (city + 1) + ' = ' + addCommas(aether) + '</div>';
}
return m;
};
function pickAetherUseCity() {
if (parseInt(Seed.resources["city" + Seed.cities[STrChOGeneralOptions.usedCityNum][0]]["rec5"][0]) >= STrChOGeneralOptions.minStones) return STrChOGeneralOptions.usedCityNum;
if (STrChOGeneralOptions.usedAnyCity) {
for (i = 0; i < Seed.cities.length; i++) {
if (parseInt(Seed.resources["city" + Seed.cities[i][0]]["rec5"][0]) >= STrChOGeneralOptions.minStones) return i;
}
}
return -1;
};
function getThroneBrokeMight() {
var totMight = 0;
for (trId in uW.kocThroneItems) {
var throne_item = uW.kocThroneItems[trId];
if (throne_item == null || !throne_item) continue;
if (throne_item.isBroken) totMight += CM.ThroneView.getMightBonus(throne_item);
}
return "<b>You have " + addCommas(totMight) + " in broken throne might</b>";
};
function contentEval(source) {
// Check for function input.
if ('function' == typeof source) {
// Execute this function with no arguments, by adding parentheses.
// One set around the function, required for valid syntax, and a
// second empty set calls the surrounded function.
source = '(' + source + ')();'
}
// Create a script node holding this source code.
var script = document.createElement('script');
script.setAttribute("type", "application/javascript");
script.textContent = source;
// Insert the script node into the page, so it will run, and immediately
// remove it to clean up.
document.body.appendChild(script);
document.body.removeChild(script);
};
function addWatchFunctions() {
// object.watch
if (!Object.prototype.multiWatch) {
Object.defineProperty(Object.prototype, "multiWatch", {
enumerable: false,
configurable: true,
writable: false,
value: function (prop, watcher) {
var obj = this,
oldval = this[prop],
newval = oldval,
getter = function () {
return newval;
},
setter = function (val) {
oldval = newval;
for (var f=0; f < obj.watchers[prop].length; f++) {
obj.watchers[prop][f](prop, oldval, val);
}
newval = val;
return newval;
};
if (delete obj[prop]) { // can't watch constants
Object.defineProperty(this, prop, {
get: getter,
set: setter,
enumerable: true,
configurable: true
});
if (!obj.watchers) obj.watchers = {};
if (!obj.watchers[prop]) obj.watchers[prop] = [];
// check for duplicates
for (var i=0; i < obj.watchers[prop].length; i++){
if(obj.watchers[prop][i] === watcher){
return;
}
}
//obj.watchers[prop].push( eval(watcher)); //add the new watcher in the watchers array
obj.watchers[prop].push(watcher);
}
}
});
}
// object.unwatch
if (!Object.prototype.multiUnwatch) {
Object.defineProperty(Object.prototype, "multiUnwatch", {
enumerable: false,
configurable: true,
writable: false,
value: function (prop, watcher) {
var obj = this;
// if a watcher is supplied, just remove it
if(arguments.length == 2) {
for(var i=0; i < obj.watchers[prop].length; i++){
var w = obj.watchers[prop][i];
if(w == watcher) {
obj.watchers[prop].splice(i, 1);
}
}
} else {
obj.watchers[prop] = [];
}
if (obj.watchers[prop].length == 0 )
{
delete obj.watchers[prop];
var val = this[prop];
delete this[prop]; // remove accessors
this[prop] = val;
}
}
});
}
}
function matTypeof (v){
if (typeof (v) == 'object') {
if (!v)
return 'null';
else if (v.constructor.toString().indexOf("Array")>=0 && typeof(v.splice)=='function')
return 'array';
else return 'object';
}
return typeof (v);
};
function inspect(obj, maxLevels, level, doFunctions){
var str = '', type, msg;
if(level == null) level = 0;
if(maxLevels == null) maxLevels = 1;
if(maxLevels < 1) return 'Inspect Error: Levels number must be > 0';
if(obj == null) return 'ERROR: Object is NULL\n';
var indent = '';
for (var i=0; i<level; i++) indent += ' ';
for(property in obj) {
try {
type = matTypeof(obj[property]);
if (doFunctions==true && (type == 'function')) {
str += indent + '(' + type + ') ' + property + "[FUNCTION]\n";
} else if (type != 'function') {
str += indent + '(' + type + ') ' + property + ( (obj[property]==null)?(': null'):('')) +' = '+ obj[property] +"\n";
}
if((type=='object' || type=='array') && (obj[property] != null) && (level+1 < maxLevels))
str += inspect(obj[property], maxLevels, level+1, doFunctions); // recurse
} catch(err) {
// Is there some properties in obj we can't access? Print it red.
if(typeof(err) == 'string') msg = err;
else if(err.message) msg = err.message;
else if(err.description) msg = err.description;
else msg = 'Unknown';
str += '(Error) ' + property + ': ' + msg +"\n";
}
}
str += "\n";
return str;
};
function setUpgradeColor() {
//TODO
if (STrChOThroneUpgradeData.newUpgradeState == 0)
$("#STrChOTab>span").css('color', '#FFFF66');
else if (STrChOThroneUpgradeData.newUpgradeState == 1)
$("#STrChOTab>span").css('color', 'cyan');
else if (STrChOThroneUpgradeData.newUpgradeState == 2)
$("#STrChOTab>span").css('color', 'red');
};
function sendChat (msg){ //Simple method, as if it were typed in thru DOM
document.getElementById('mod_comm_input').value = msg;
uW.Chat.sendChat ();
};
function sendComposedMail (sendTo, subject, msg) {
var params = uW.Object.clone(ajfx);
params.emailTo = sendTo;
params.subject = subject;
params.message = msg;
params.requestType = "COMPOSED_MAIL";
new AjaxRequest(uW.g_ajaxpath + "ajax/getEmail.php" + uW.g_ajaxsuffix, {
method:"post",
parameters:params,
onSuccess:function(message){
},
onFailure:function(){
}
})
};
function unixTime () {
return parseInt (new Date().getTime() / 1000) + uW.g_timeoff;
};
function parseIntNan (n){
x = parseInt(n, 10);
if (isNaN(x))
return 0;
return x;
};
function implodeUrlArgs (obj){
var a = [];
for (var k in obj) a.push (k +'='+ encodeURI(obj[k]) );
return a.join ('&');
};
function addUrlArgs (url, args){
if (!args) return url;
if (url.indexOf('?') < 0)
url += '?';
else if (url.substr(url.length-1) != '&')
url += '&';
if (matTypeof(args == 'object')) return url + implodeUrlArgs (args);
return url + args;
};
var myServerId = null; //example: https://www150.kingdomsofcamelot.com
function getServerId() {
if (myServerId == null){
var m=/^[a-zA-Z]+([0-9]+)\./.exec(document.location.hostname);
if (m)
myServerId = m[1];
else
myServerId = '??';
}
return myServerId;
};
var withAnim = null;
if (CM && CM.ThronePanelView) withAnim = CM.ThronePanelView.statusAnim;
function noAnim(result) {
if (result == "success") {
var isChamp = true;
var champUpgEnhContainer = document.getElementById('champUpgEnhContainer');
if (!champUpgEnhContainer || champUpgEnhContainer == null) isChamp = false;
var msg = "Manual";
if (isChamp) {
var attempt_type = document.getElementById('upgEnhButton');
msg += ' ' + attempt_type.innerHTML.replace('--', '').trim() + ' successful. Item:';
var upgEnhTitle = document.getElementById('upgEnhTitle');
msg += ' ' + upgEnhTitle.innerHTML;
} else {
var thronePanelItemRequirementsContainer = document.getElementById('thronePanelItemRequirementsContainer');
attempt_type = thronePanelItemRequirementsContainer.getElementsByClassName('gemButtonv2')[0];
msg += ' ' + attempt_type.innerHTML + ' successful. Item:';
var thronePanelName = document.getElementById('thronePanelName');
msg += ' ' + thronePanelName.innerHTML;
}
SuccessLog(msg);
//if (!OrganizerDisableSuccessCheck) {
if (withAnim) withAnim(result);
//} else {
// unsafeWindow.cm.ThroneView.renderInventory(unsafeWindow.kocThroneItems);
//}
}
//$("div.thronePanelItemContainer").append("<div>" + result + "</div>");
}
function autoSelectForged() {
var ChampID = 0;
ChampID = Tabs.champOrganizer.panelId;
var champItem = uW.kocChampionItems[ChampID];
var nextForgedID = getNextAvailableForged(champItem);
if (nextForgedID != 0) {
var selected_index = 0;
$(document.querySelector("#upgEnhBuffSelect")).children("option").each(function () {
if ( $(this).text() == uW.ksoItems[nextForgedID].name ) {
selected_index = $(this).val();
return false;
}
});
$('#upgEnhBuffSelect').val(selected_index).change();
CM.ChampionModalView.renderCosts();
CM.ChampionUpgEnhManager.calcCosts();
if (selected_index > 0) {
var upgEnhCostNum = document.getElementsByClassName('upgEnhCostNum')[1];
$(upgEnhCostNum).text(uW.ksoItems[nextForgedID].count + "/1");
$(upgEnhCostNum).css('opacity', 1);
var upgEnhCostIconItem = document.getElementById('upgEnhCostIconItem');
upgEnhCostIconItem.className = 'upgEnhCostIcon i' + nextForgedID;
}
}
// not needed as champ have a built in safety already, unlike throne
// if (STrChOGeneralOptions.safetyOn) {
// setTimeout(function() {
// safetyCheck();
// }, 2000);
// }
}
//var champSafetyCheck = function () {
// var sel = document.getElementById('upgEnhCostSelect');
// $(sel).remove(1);
// if (champCheckAstoneLevel()) {
// $(document.getElementById('upgEnhButton')).click(function() {
// champCheckAstoneLevel();
// champSafetyCheck();
// });
// }
//}
//var champCheckAstoneLevel = function () {
// var stones = parseInt(Seed.resources["city" + unsafeWindow.currentcityid]["rec5"][0]);
// if (stones < STrChOGeneralOptions.safetyLimit || isNaN(stones) ) {
// champDisableUpgradeButton();
// return false;
// } else {
// return true;
// }
//}
//var champDisableUpgradeButton = function() {
// var container = document.querySelector('#upgEnhBody');
// $(container).chilren('div.gemButtonv2').remove();
// var an = $('<a/>');
// an.addClass('gemButtonv2 gray');
// an.html('Low A-Stone');
// $(container).append(an);
//}
function autoSelectMasters() {
var ThroneID = 0;
ThroneID = Tabs.throneOrganizer.panelId;
var throneItem = uW.kocThroneItems[ThroneID];
var nextMastersID = 0;
nextMastersID = getNextAvailableMasters(throneItem);
if (nextMastersID == 0) {
unselectToken();
} else {
var selected_index = 0;
$(document.querySelector("#buffDropDown")).children("option").each(function () {
if ( $(this).text() == uW.ksoItems[nextMastersID].name ) {
selected_index = $(this).val();
return false;
}
});
$('#buffDropDown').val(selected_index).change();
if (selected_index > 0) {
var thronePanelBuffPrice = document.getElementById('thronePanelBuffPrice');
thronePanelBuffPrice.innerHTML = '<span class="items">' + uW.ksoItems[nextMastersID].count + '/1</span>';
var thronePanelBuffIcon = document.getElementById('thronePanelBuffIcon');
thronePanelBuffIcon.className = 'icon mastersToken i' + nextMastersID;
thronePanelBuffIcon.style.backgroundImage = "url('"+gameurl+"img/items/70/masters_token_bg.png')";
thronePanelBuffIcon.innerHTML = '<div class="mastersTokenLevel">' + STrChOTokenText[nextMastersID] + '</div>';
}
}
if (STrChOGeneralOptions.safetyOn) {
setTimeout(function() {
throneSafetyCheck();
}, 2000);
}
}
var throneSafetyCheck = function () {
// var sel = document.getElementById("costDropDown"); // remove the gem option
// $(sel).remove(1);
if (throneCheckAstoneLevel()) { // see if we have enough a-stone
$(document.querySelector("#thronePanelItemRequirementsContainer")).children("a.gemButtonv2").click(function () { // every time the button is pushed, check the levels
throneCheckAstoneLevel();
throneSafetyCheck();
});
}
}
var throneCheckAstoneLevel = function () {
// check limit
var stones = parseInt(Seed.resources["city" + uW.currentcityid]["rec5"][0]);
if (stones < STrChOGeneralOptions.safetyLimit || isNaN(stones) ) {
throneDisableUpgradeButton();
return false;
} else {
return true;
}
}
var throneDisableUpgradeButton = function () {
// change the appearance
var container = document.querySelector('#thronePanelItemRequirementsContainer');
$(container).children("a.gemButtonv2").remove();
var an = $("<a/>");
an.addClass("gemButtonv2 gray");
an.html("Low A-Stone");
$(container).append(an);
}
function getMastersText(ksoID) {
switch(ksoID) {
case 20060:
return "LII"; //52T
case 20059:
return "LI";
case 20058:
return "L";
case 20057:
return "XLIX";
case 20056:
return "XLVIII";
case 20055:
return "XLVII";
case 20054:
return "XLVI"; //46T
case 20053:
return "XLV";
case 20052:
return "XLIV";
case 20051:
return "XLIII";
case 20050:
return "XLII";
case 20049:
return "XLI";
case 20048:
return "XL";
case 20047:
return "XXXIX";
case 20046:
return "XXXVIII";
case 20045:
return "XXXVII";
case 20044:
return "XXXVI";
case 20043:
return "XXXV";
case 20042:
return "XXXIV";
case 20041:
return "XXXIII";
case 20040:
return "XXXII"; //32t
case 20039:
return "XXXI";
case 20038:
return "XXX";
case 20037:
return "XXIX";
case 20036:
return "XXVIII";
case 20035:
return "XXVII";
case 20034:
return "XXVI";
case 20033:
return "XXV";
case 20032:
return "XXIV";
case 20031:
return "XXIII";
case 20030:
return "XXII";
case 20029:
return "XXI";
case 20028:
return "XX";
case 20027:
return "XIX";
case 20026:
return "XVIII";
case 20025:
return "XVII";
case 20024:
return "XVI";
case 20023:
return "XV";
case 20021:
return "XIV";
case 20020:
return "XIII";
case 20018:
return "XII";
case 20017:
return "XI";
case 20016:
return "X";
case 20015:
return "IX";
case 20014:
return "VII";
case 20013:
return "V";
case 20012:
return "III";
default:
return "";
}
}
var buffChanged = false;
function unselectToken() {
//TODO
// if the user manually selected a buff, leave it alone
if (!buffChanged) {
// set the pull down to nothing when first displayed
$(document.querySelector("#buffDropDown")).val(0);
// set the pull down to nothing when first displayed
$(document.querySelector("#costDropDown")).val(0);
// remove the icon ....
$(document.querySelector("#thronePanelBuffIcon")).removeClass().addClass('icon').addClass('i0');
$(document.querySelector("#thronePanelBuffPrice")).children("span.items").html('');
// install an action to track when a buff is selected
$(document.querySelector("#buffDropDown")).change(function () {
buffChanged = true;
});
// install an action to track when a buff is selected
$(document.querySelector("#costDropDown")).change(function () {
buffChanged = true;
});
// reset once the dialog is closed
$(".throneContainer").children("div.close").click(function () {
buffChanged = false;
});
}
}
function getNextAvailableForged(champItem) {
var curCode = 0;
if (uW.ksoItems[21093].count > 0 && champItem.level <= 44) curCode = 21093; //45s
if (uW.ksoItems[21092].count > 0 && champItem.level <= 43) curCode = 21092; //44s
if (uW.ksoItems[21091].count > 0 && champItem.level <= 42) curCode = 21091; //43s
if (uW.ksoItems[21090].count > 0 && champItem.level <= 41) curCode = 21090; //42s
if (uW.ksoItems[21089].count > 0 && champItem.level <= 40) curCode = 21089; //41s
if (uW.ksoItems[21088].count > 0 && champItem.level <= 39) curCode = 21088; //40s
if (uW.ksoItems[21087].count > 0 && champItem.level <= 38) curCode = 21087; //39s
if (uW.ksoItems[21086].count > 0 && champItem.level <= 37) curCode = 21086; //38s
if (uW.ksoItems[21085].count > 0 && champItem.level <= 36) curCode = 21085; //37s
if (uW.ksoItems[21084].count > 0 && champItem.level <= 35) curCode = 21084; //36s
if (uW.ksoItems[21083].count > 0 && champItem.level <= 34) curCode = 21083; //35s
if (uW.ksoItems[21082].count > 0 && champItem.level <= 33) curCode = 21082; //34s
if (uW.ksoItems[21081].count > 0 && champItem.level <= 32) curCode = 21081; //33s
if (uW.ksoItems[21080].count > 0 && champItem.level <= 31) curCode = 21080; //32s
if (uW.ksoItems[21079].count > 0 && champItem.level <= 30) curCode = 21079; //31s
if (uW.ksoItems[21078].count > 0 && champItem.level <= 29) curCode = 21078; //30s
if (uW.ksoItems[21077].count > 0 && champItem.level <= 28) curCode = 21077; //29s
if (uW.ksoItems[21076].count > 0 && champItem.level <= 27) curCode = 21076; //28s
if (uW.ksoItems[21075].count > 0 && champItem.level <= 26) curCode = 21075; //27s
if (uW.ksoItems[21074].count > 0 && champItem.level <= 25) curCode = 21074; //26s
if (uW.ksoItems[21073].count > 0 && champItem.level <= 24) curCode = 21073; //25s
if (uW.ksoItems[21072].count > 0 && champItem.level <= 23) curCode = 21072; //24s/////////////
if (uW.ksoItems[21071].count > 0 && champItem.level <= 22) curCode = 21071; //23s
if (uW.ksoItems[21070].count > 0 && champItem.level <= 21) curCode = 21070; //22s
if (uW.ksoItems[21069].count > 0 && champItem.level <= 20) curCode = 21069; //21s
if (uW.ksoItems[21068].count > 0 && champItem.level <= 19) curCode = 21068; //20s
if (uW.ksoItems[21067].count > 0 && champItem.level <= 18) curCode = 21067; //19s
if (uW.ksoItems[21066].count > 0 && champItem.level <= 17) curCode = 21066; //18s
if (uW.ksoItems[21065].count > 0 && champItem.level <= 16) curCode = 21065; //17s
if (uW.ksoItems[21064].count > 0 && champItem.level <= 15) curCode = 21064; //16s
if (uW.ksoItems[21063].count > 0 && champItem.level <= 14) curCode = 21063; //15s
if (uW.ksoItems[21062].count > 0 && champItem.level <= 13) curCode = 21062; //14s
if (uW.ksoItems[21061].count > 0 && champItem.level <= 12) curCode = 21061; //13s
if (uW.ksoItems[21060].count > 0 && champItem.level <= 11) curCode = 21060; //12s
if (uW.ksoItems[21059].count > 0 && champItem.level <= 10) curCode = 21059; //11s
if (uW.ksoItems[21055].count > 0 && champItem.level <= 9) curCode = 21055; //10s
if (uW.ksoItems[21054].count > 0 && champItem.level <= 8) curCode = 21054; //9s
if (uW.ksoItems[21057].count > 0 && champItem.level <= 7) curCode = 21057; //8s
if (uW.ksoItems[21053].count > 0 && champItem.level <= 6) curCode = 21053; //7s
if (uW.ksoItems[21056].count > 0 && champItem.level <= 5) curCode = 21056; //6s
return curCode;
}
function getNextAvailableMasters(throneItem) {
var curCode = 0;
if (uW.ksoItems[20060].count > 0 && throneItem.level <= 51) curCode = 20060; // +52master
if (uW.ksoItems[20059].count > 0 && throneItem.level <= 50) curCode = 20059; // +51
if (uW.ksoItems[20058].count > 0 && throneItem.level <= 49) curCode = 20058; // +50
if (uW.ksoItems[20059].count > 0 && throneItem.level <= 48) curCode = 20057; // +49
if (uW.ksoItems[20056].count > 0 && throneItem.level <= 47) curCode = 20056; // +48
if (uW.ksoItems[20055].count > 0 && throneItem.level <= 46) curCode = 20055; // +47
if (uW.ksoItems[20054].count > 0 && throneItem.level <= 45) curCode = 20054; // +46
if (uW.ksoItems[20053].count > 0 && throneItem.level <= 44) curCode = 20053; // +45
if (uW.ksoItems[20052].count > 0 && throneItem.level <= 43) curCode = 20052; // +44
if (uW.ksoItems[20051].count > 0 && throneItem.level <= 42) curCode = 20051; // +43
if (uW.ksoItems[20050].count > 0 && throneItem.level <= 41) curCode = 20050; // +42
if (uW.ksoItems[20049].count > 0 && throneItem.level <= 40) curCode = 20049; // +41
if (uW.ksoItems[20048].count > 0 && throneItem.level <= 39) curCode = 20048; // +40
if (uW.ksoItems[20047].count > 0 && throneItem.level <= 38) curCode = 20047; // +39
if (uW.ksoItems[20046].count > 0 && throneItem.level <= 37) curCode = 20046; // +38
if (uW.ksoItems[20045].count > 0 && throneItem.level <= 36) curCode = 20045; // +37
if (uW.ksoItems[20044].count > 0 && throneItem.level <= 35) curCode = 20044; // +36
if (uW.ksoItems[20043].count > 0 && throneItem.level <= 34) curCode = 20042; // +35
if (uW.ksoItems[20042].count > 0 && throneItem.level <= 33) curCode = 20042; // +34
if (uW.ksoItems[20041].count > 0 && throneItem.level <= 32) curCode = 20041; // +33
if (uW.ksoItems[20040].count > 0 && throneItem.level <= 31) curCode = 20040; // +32
if (uW.ksoItems[20039].count > 0 && throneItem.level <= 30) curCode = 20039; // +31
if (uW.ksoItems[20038].count > 0 && throneItem.level <= 29) curCode = 20038; //30s
if (uW.ksoItems[20037].count > 0 && throneItem.level <= 28) curCode = 20037; //29s
if (uW.ksoItems[20036].count > 0 && throneItem.level <= 27) curCode = 20036; //28s
if (uW.ksoItems[20035].count > 0 && throneItem.level <= 26) curCode = 20035; //27s
if (uW.ksoItems[20034].count > 0 && throneItem.level <= 25) curCode = 20034; //26s
if (uW.ksoItems[20033].count > 0 && throneItem.level <= 24) curCode = 20033; //25s
if (uW.ksoItems[20032].count > 0 && throneItem.level <= 23) curCode = 20032; //24s
if (uW.ksoItems[20031].count > 0 && throneItem.level <= 22) curCode = 20031; //23s
if (uW.ksoItems[20030].count > 0 && throneItem.level <= 21) curCode = 20030; //22s
if (uW.ksoItems[20029].count > 0 && throneItem.level <= 20) curCode = 20029; //21s
if (uW.ksoItems[20028].count > 0 && throneItem.level <= 19) curCode = 20028; //20s
if (uW.ksoItems[20027].count > 0 && throneItem.level <= 18) curCode = 20027; //19s
if (uW.ksoItems[20026].count > 0 && throneItem.level <= 17) curCode = 20026; //18s
if (uW.ksoItems[20025].count > 0 && throneItem.level <= 16) curCode = 20025; //17s
if (uW.ksoItems[20024].count > 0 && throneItem.level <= 15) curCode = 20024; //16s
if (uW.ksoItems[20023].count > 0 && throneItem.level <= 14) curCode = 20023; //15s
if (uW.ksoItems[20021].count > 0 && throneItem.level <= 13) curCode = 20021; //14s
if (uW.ksoItems[20020].count > 0 && throneItem.level <= 12) curCode = 20020; //13s
if (uW.ksoItems[20018].count > 0 && throneItem.level <= 11) curCode = 20018; //12s
if (uW.ksoItems[20017].count > 0 && throneItem.level <= 10) curCode = 20017; //11s
if (uW.ksoItems[20016].count > 0 && throneItem.level <= 9) curCode = 20016; //10s
if (uW.ksoItems[20015].count > 0 && throneItem.level <= 8) curCode = 20015; //9s
if (uW.ksoItems[20015].count > 0 && throneItem.level <= 7) curCode = 20015; //9s
if (uW.ksoItems[20014].count > 0 && throneItem.level <= 6) curCode = 20014; //7s
if (uW.ksoItems[20014].count > 0 && throneItem.level <= 5) curCode = 20014; //7s
if (uW.ksoItems[20013].count > 0 && throneItem.level <= 4) curCode = 20013; //5s
if (uW.ksoItems[20013].count > 0 && throneItem.level <= 3) curCode = 20013; //5s
if (uW.ksoItems[20012].count > 0 && throneItem.level <= 2) curCode = 20012; //3s
if (uW.ksoItems[20012].count > 0 && throneItem.level <= 1) curCode = 20012; //3s
return curCode;
}
function disableAnimation(disable) {
if (disable) {
// override the success failure animations
CM.ThronePanelView.statusAnim = noAnim;
} else {
if (withAnim) CM.ThronePanelView.statusAnim = withAnim;
}
};
function getChampName( presetIndex ) { //presetIndex is 1 based but needs to be 0 based for champ name so we will minus 1
var thisChampion = Seed.champion.champions[presetIndex-1];
return thisChampion.name;
};
function getChampID( presetIndex ) { //presetIndex is 1 based but needs to be 0 based for champ name so we will minus 1
var thisChampion = Seed.champion.champions[presetIndex-1];
return thisChampion.championId;
};
function postChampSlot ( slot ) {
var champId = getChampID(slot);
var D = [];
for (var chId in uW.kocChampionItems) if (uW.kocChampionItems[chId].equippedTo == champId) D.push(chId);
var champStats = GenerateChampPresetEffectsString(D, false);
D = [];
D.push("Champ Hall Slot #" + slot);
D.push(getChampName(slot));
if (STrChOChampPresetData.showChampName) D.push("(" + STrChOChampPresetData.presetNames[slot-1] + ")");
if (STrChOChampPresetData.showChampMight) D.push(getChampMight());
D.push(champStats);
sendChat(":::. |" + D.join("||"));
};
function postChampPreset ( presetIndex ) {
var chP = getChampPresetObject(parseInt(presetIndex));
var D = [];
for (var p in chP) D.push(p);
var champStats = GenerateChampPresetEffectsString(D, false);
D = [];
D.push("Champ Hall Tag #" + presetIndex);
D.push(getChampName(presetIndex));
if (STrChOChampPresetData.showChampName) D.push("(" + STrChOChampPresetData.presetNames[presetIndex-1] + ")");
if (STrChOChampPresetData.showChampMight) D.push(getChampMight());
D.push(champStats);
sendChat(":::. |" + D.join("||"));
};
function getChampMight() {
var totMight = 0;
for (chId in uW.kocChampionItems) {
var champ_item = uW.kocChampionItems[chId];
var q = champ_item.rarity;
if (champ_item.unique != 0) q -= 1;
var l = champ_item.level;
totMight += CM.thronestats.mightByQuality[q].Might + CM.thronestats.mightByLevel[l].Might;
}
return "Approx Might: " + addCommas(totMight);
};
function GenerateChampPresetEffectsString( presetObject, htmlEffects ) {
var ChampStats = [];
var TroopStats = [];
for (var eff in CM.thronestats.effects) TroopStats[eff] = 0;
//base stats for champ with no items
ChampStats[201] = 30;
ChampStats[202] = 0;
ChampStats[203] = 7;
ChampStats[204] = 27;
ChampStats[205] = 27;
ChampStats[206] = 60;
ChampStats[207] = 4;
ChampStats[208] = 3;
ChampStats[209] = 3;
var counter = presetObject.length;
var items = [];
for (i = 0; i < counter; i++) items.push(presetObject[i]);
var SetBonus = {};
for (var y in items) { // calculate unique set bonuses
var champ_item = uW.kocChampionItems[items[y]];
if (champ_item == null || !champ_item) continue;
for (var O in champ_item["effects"]) {
var effectLine = champ_item["effects"][O];
var id = effectLine["id"];
if (id >= 300) {
var effect = CM.ChampionManager.getEffect(effectLine, champ_item.level);
if (!SetBonus[champ_item.set]) { SetBonus[champ_item.set] = 0; }
SetBonus[champ_item.set] += effect.amount;
}
}
}
while (items.length > 0) {
var champ_item = uW.kocChampionItems[items.pop()];
if (champ_item == null || !champ_item) continue;
for (var O in champ_item["effects"]) {
var effectLine = champ_item["effects"][O];
var id = effectLine["id"];
var effect = CM.ChampionManager.getEffect(effectLine, champ_item.level);
var bonus = 0;
if (id<300) bonus = SetBonus[champ_item.set] || 0;
if (id >= 200) {
if (!ChampStats[id]) { ChampStats[id] = 0; }
ChampStats[id] += effect.amount + (effect.amount*bonus);
} else {
TroopStats[id] += effect.amount;
}
}
}
var J = new Array();
if (htmlEffects) {
J.push("<div><b><i>CHAMP STATS</i></b></div>");
} else {
J.push("CHAMP STATS");
}
for (stat in ChampStats) {
var effectName = uW.g_js_strings.effects["name_"+ stat];
if (ChampStats[stat] && ChampStats[stat] != 0) {
if (stat>= 300) {
str = 'Inc. Bonus '+effectName.split(" equipment")[0];
var champvalue = +((ChampStats[stat]*100).toFixed(2))+"%";
if (htmlEffects) {
J.push("<div> " + str + " " + champvalue + "</div>");
} else {
J.push(" " + str + " " + champvalue);
}
}
else {
if (htmlEffects) {
J.push("<div> " + effectName + " " + ChampStats[stat].toFixed(2) + "</div>");
} else {
J.push(" " + effectName + " " + ChampStats[stat].toFixed(2));
}
}
}
}
if (htmlEffects) {
J.push("<div><b><i>TROOP STATS</i></b></div>");
} else {
J.push("TROOP STATS");
}
for (stat in TroopStats) {
var effectName = CM.thronestats.effects[stat][1];
if (TroopStats[stat] && TroopStats[stat] != 0) {
if (htmlEffects) {
J.push("<div> " + effectName + " " + (Math.round(TroopStats[stat]*100)/100) + "</div>");
} else {
J.push(" " + effectName + " " + (Math.round(TroopStats[stat]*100)/100));
}
}
}
if (htmlEffects) {
return J.join("");
} else {
return J.join("||");
}
}
function getChampBrokeMight() {
var totMight = 0;
for (chId in uW.kocChampionItems) {
var champ_item = uW.kocChampionItems[chId];
if (champ_item.status == 1) continue;
var q = champ_item.rarity;
if (champ_item.unique != 0) q -= 1;
var l = champ_item.level;
totMight += CM.thronestats.mightByQuality[q].Might + CM.thronestats.mightByLevel[l].Might;
}
return "<b>You have approx " + addCommas(totMight) + " in broken champ might</b>";
};
function ChampLoadDomainSalvageData(domainId) {
var t = Tabs.champSalvager;
s = GM_getValue('STrChOChampSalvageData_'+ domainId + uW.tvuid);
if (s==null) {
alert("Unable to find data from domain: " + domainId);
return;
}
if (s != null){
opts = JSON2.parse (s);
for (k in opts){
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOChampSalvageData[k][kk] = opts[k][kk];
else
STrChOChampSalvageData[k] = opts[k];
}
}
// recreate the objects w/ functions
for (k in STrChOChampSalvageData.ruleSet)
{
var r = STrChOChampSalvageData.ruleSet[k];
var rule = new ChampRule(r.type, r.faction, r.conditions, r.advancedrule);
for (j in rule.conditions) {
rule.conditions[j].ChampCheckCondition = ChampCheckCondition;
}
STrChOChampSalvageData.ruleSet[k] = rule;
}
// turn off
STrChOChampSalvageData.active = false;
clearInterval(t.sTimer);
clearInterval(t.delTimer);
t.deleting = false;
SAVESTrChOChampSalvageData();
alert('Salvage settings loaded from domain ' + domainId);
t.buildChampRuleDisplay();
};
function ThroneLoadDomainSalvageData(domainId) {
var t = Tabs.throneSalvager;
s = GM_getValue ('STrChOThroneSalvageData_'+ domainId + uW.tvuid);
if (s==null) {
alert("Unable to find data from domain: " + domainId);
return;
}
if (s != null){
opts = JSON2.parse (s);
for (k in opts){
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOThroneSalvageData[k][kk] = opts[k][kk];
else
STrChOThroneSalvageData[k] = opts[k];
}
}
// recreate the objects w/ functions
for (k in STrChOThroneSalvageData.ruleSet)
{
var r = STrChOThroneSalvageData.ruleSet[k];
var rule = new ThroneRule(r.type, r.faction, r.conditions, r.advancedrule);
for (j in rule.conditions) {
rule.conditions[j].ThroneCheckCondition = ThroneCheckCondition;
}
STrChOThroneSalvageData.ruleSet[k] = rule;
}
// turn off
STrChOThroneSalvageData.active = false;
clearInterval(t.sTimer);
clearInterval(t.delTimer);
t.deleting = false;
SAVESTrChOThroneSalvageData();
alert('Salvage settings loaded from domain ' + domainId);
t.buildThroneRuleDisplay();
};
function secondsToTime(seconds) {
if (seconds == 0) return "Complete";
var remainderSeconds = seconds % 60;
seconds = seconds - remainderSeconds;
var remainderMinutes = seconds / 60;
return (remainderMinutes + 'm ' + remainderSeconds + 's');
};
function onUnload (){
if (uW.STrChOLoaded) {
if (mainPop) {
var pos = mainPop.getLocation();
STrChOGeneralOptions.xPos = pos.x;
STrChOGeneralOptions.yPos = pos.y;
//STrChOGeneralOptions.xPos = mainPop.getLocation.x;
//STrChOGeneralOptions.yPos = mainPop.getLocation.y;
SAVESTrChOGeneralOptions();
}
}
};
function RefreshCamelot() { //This piece of code was taken from KoC Power BOT. All credit goes to them for this piece. Thanks guys/gals!
var serverId = getServerId();
var goto = window.location.protocol + '//apps.facebook.com/kingdomsofcamelot/?s=' + serverId;
if (document.URL.match(/standalone=1/i)) {
goto = window.location.protocol + '//www.kabam.com/games/kingdoms-of-camelot/play?s=' + serverId;
};
setTimeout (function (){window.top.location = goto;}, 0);
};
// emulate protoype's Ajax.Request ...
function AjaxRequest (url, opts) { //emulate protoype's Ajax.Request ...
var headers = {
'X-Requested-With': 'XMLHttpRequest',
'X-Prototype-Version': '1.6.1',
'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
};
var ajax = null;
if (window.XMLHttpRequest)
ajax=new XMLHttpRequest();
else
ajax=new ActiveXObject("Microsoft.XMLHTTP");
if (opts.method==null || opts.method=='')
method = 'GET';
else
method = opts.method.toUpperCase();
if (method == 'POST'){
headers['Content-type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
} else if (method == 'GET'){
addUrlArgs (url, opts.parameters);
}
ajax.onreadystatechange = function(){
// ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; states 0-4
if (ajax.readyState==4) {
if (ajax.status >= 200 && ajax.status < 305)
if (opts.onSuccess) opts.onSuccess(ajax);
else
if (opts.onFailure) opts.onFailure(ajax);
} else {
if (opts.onChange) opts.onChange (ajax);
}
}
ajax.open(method, url, true); // always async!
for (var k in headers)
ajax.setRequestHeader (k, headers[k]);
if (matTypeof(opts.requestHeaders)=='object')
for (var k in opts.requestHeaders)
ajax.setRequestHeader (k, opts.requestHeaders[k]);
if (method == 'POST'){
var a = [];
for (k in opts.parameters){
if(matTypeof(opts.parameters[k]) == 'object')
for(var h in opts.parameters[k])
a.push (k+'['+h+'] ='+ opts.parameters[k][h] );
else
a.push (k +'='+ opts.parameters[k] );
}
ajax.send (a.join ('&'));
} else {
ajax.send();
}
};
function MyAjaxRequest (url, o, noRetryX) {
if (DEBUG_TRACE) logit (" 0 myAjaxRequest: "+ url +"\n" + inspect (o, 2, 1));
var opts = uW.Object.clone(o);
var wasSuccess = o.onSuccess;
var wasFailure = o.onFailure;
var retry = 0;
var delay = 10;
var noRetry = noRetry===true?true:false;
opts.onSuccess = mySuccess;
opts.onFailure = myFailure;
new AjaxRequest(url, opts);
return;
function myRetry(){
++retry;
new AjaxRequest(url, opts);
delay = delay * 2.25;
}
function myFailure(){
var o = {};
o.ok = false;
o.errorMsg = "AJAX Communication Failure";
wasFailure (o);
}
function mySuccess (msg){
var rslt = eval("(" + msg.responseText + ")");
if (!rslt)
{
logit("Message error: " + inspect(msg,3,1));
return;
}
var x;
if (window.EmulateAjaxError){
rslt.ok = false;
rslt.error_code=8;
}
if (rslt.ok){
if (rslt.updateSeed)
uW.update_seed(rslt.updateSeed);
wasSuccess (rslt);
return;
}
rslt.errorMsg = uW.printLocalError((rslt.error_code || null), (rslt.msg || null), (rslt.feedback || null));
if (!noRetry && (rslt.error_code==0 || rslt.error_code==8 || rslt.error_code==1 || rslt.error_code==3)){
dialogRetry (inspect(rslt.errorMsg), delay, function(){myRetry()}, function(){wasSuccess (rslt)}, rslt.error_code);
} else {
wasSuccess (rslt);
}
}
};
function ExportThroneToExcel(isPreview) {
var headers = [ "ID", "NAME", "FACTION", "QUALITY", "TYPE", "LEVEL", "MIGHT", "JEWEL", "ROW 1", "ROW 2", "ROW 3", "ROW 4", "ROW 5", "ROW 6"];
var ExcelTable = document.createElement('table');
var ExcelBody = document.createElement('tbody');
var ExcelRow = document.createElement('tr');
var ExcelColumn = "";
for (i = 0; i < headers.length; i++) {
ExcelColumn = document.createElement('th');
ExcelColumn.appendChild(document.createTextNode(headers[i]));
ExcelRow.appendChild(ExcelColumn);
}
ExcelBody.appendChild(ExcelRow);
var columns = [];
for (trId in uW.kocThroneItems) {
if (isPreview && !STrChOThronePresetData.previewThrone[trId]) continue;
var throne_item = uW.kocThroneItems[trId];
if (!throne_item) continue;
columns = [];
columns.push(trId);
columns.push(throne_item.name);
columns.push(throne_item.faction);
columns.push(throne_item.quality);
columns.push(throne_item.type);
columns.push(throne_item.level);
columns.push(CM.ThroneView.getMightBonus(throne_item));
if (throne_item.jewel != null) {
if (throne_item.jewel.valid) {
var jewel_item = throne_item.jewel;
var qlty = CM.thronestats.jewelGrowthLimit[jewel_item.quality];
var amt = CM.ThroneController.getEffectAmount(jewel_item, qlty);
var jewelName = CM.ThroneController.jewelName(jewel_item);
if (amt == 0) jewelName = "none";
columns.push(jewelName);
} else {
columns.push("none");
}
} else {
columns.push("none");
}
for (var O in throne_item["effects"]) {
var slotNumber = +(O.split("slot")[1]);
var id = throne_item["effects"]["slot" + slotNumber]["id"];
var tier = parseInt(throne_item["effects"]["slot" + slotNumber]["tier"]);
var level = throne_item.level;
p = CM.thronestats.tiers[id][tier];
var effectName = CM.thronestats["effects"][id]["1"];
while (!p && (tier > 0)) { tier--; p = CM.thronestats.tiers[id][tier]; }
if (!p) continue; // can't find stats for tier
if (slotNumber == 6) {
JewelQuality = throne_item["effects"]["slot" + slotNumber].quality;
GrowthLimit = CM.thronestats.jewelGrowthLimit[JewelQuality];
if (GrowthLimit <= level) level = GrowthLimit
}
var Current = p.base + ((level * level + level) * p.growth * 0.5);
columns.push(Current + "% " + effectName);
}
columns.reverse();
ExcelRow = document.createElement('tr');
while (columns.length > 0) {
ExcelColumn = document.createElement('td');
ExcelColumn.appendChild(document.createTextNode(columns.pop()));
ExcelRow.appendChild(ExcelColumn);
}
ExcelBody.appendChild(ExcelRow);
}
ExcelTable.appendChild(ExcelBody);
window.open('data:application/vnd.ms-excel,' + encodeURIComponent(ExcelTable.outerHTML));
}
function ConvertUniqueAndBuildChampCard (champId, lvl) {
var t = Tabs.champUniques;
var ChampCard = {};
ChampCard = t.UniqueItems[champId];
ChampCard.id = ChampCard.Id;
ChampCard.name = ChampCard.Name;
if (ChampCard.Faction != 0) {
ChampCard.faction = ChampCard.Faction;
ChampCard.type = ChampCard.Type;
}
else {
ChampCard.faction = 'unknown';
ChampCard.type = 'unknown';
ChampCard.unknown = true;
}
ChampCard.unique = ChampCard.id;
ChampCard.level = parseInt(lvl);
ChampCard.rarity = 5;
ChampCard.createPrefix = function () { return ""; };
ChampCard.createSuffix = function () { return ""; };
ChampCard.effects = {};
var effects = eval(ChampCard.Effects);
var slot = 0;
for (k in effects) {
slot++
ChampCard.effects["slot"+slot] = {};
ChampCard.effects["slot"+slot].id = effects[k].type;
ChampCard.effects["slot"+slot].tier = effects[k].tier;
}
return BuildChampCard(ChampCard);
};
function ConvertUniqueAndBuildThroneCard(throneID, lvl) {
var t = Tabs.throneUniques;
var ThroneCard = {};
ThroneCard = t.UniqueItems[throneID];
ThroneCard.id = ThroneCard.Id;
ThroneCard.name = ThroneCard.Name;
ThroneCard.faction = uW.g_js_strings.commonstr[CM.CHAMPION.getFactionClasses(ThroneCard.Faction)].toLowerCase();
ThroneCard.type = throneCardTypes[parseInt(ThroneCard.Type)-1].toLowerCase();
ThroneCard.unique = ThroneCard.id;
ThroneCard.level = parseInt(lvl);
ThroneCard.quality = STrChOMaxThroneQuality;
ThroneCard.createPrefix = function () { return ""; };
ThroneCard.createSuffix = function () { return ""; };
ThroneCard.effects = {};
var effects = eval(ThroneCard.Effects);
var slot = 0;
for (k in effects) {
slot++
ThroneCard.effects["slot"+slot] = {};
ThroneCard.effects["slot"+slot].id = effects[k].type;
ThroneCard.effects["slot"+slot].tier = effects[k].tier;
if (slot==6) {
ThroneCard.effects["slot"+slot].quality = 5; // assume bright jewel
ThroneCard.effects["slot"+slot].fromJewel = true;
ThroneCard.jewel = {};
ThroneCard.jewel.valid = true;
ThroneCard.jewel.id = ThroneCard.effects["slot"+slot].id;
ThroneCard.jewel.quality = 5; // assume bright jewel
ThroneCard.jewel.tier = ThroneCard.effects["slot"+slot].tier;
ThroneCard.jewel.fromJewel = true;
ThroneCard.jewel.gift = false;
ThroneCard.jewel.quantity = 1;
}
}
return BuildThroneCard(ThroneCard);
};
function BuildChampCard(champItem) {
var D = [];
if (champItem == null) {
D.push('<div>');
D.push('</div>');
return D.join('');
}
D.push('<div class=STrChOCard style="white-space: normal; padding: 0px;">');
D.push('<div class=section style="overflow: visible;" id=idsection>');
D.push('<div div class="champ_item_section">');
var champName = champItem.name;
champName = champName.replace(champItem.createPrefix(), '');
champName = champName.replace('Chest Armor of', 'Chest Of');
champName = champName.trim();
D.push('<div class="STrChOTitle ' + champCardQualities[champItem.rarity] + '" title="' + champName + '" style="text-transform: capitalize;">');
if (champItem.status == CM.CHAMPION.STATUS_BROKEN_UPGRADE || champItem.status == CM.CHAMPION.STATUS_BROKEN_ENHANCE) D.push('<font color=red><b>BROKEN</b></font><br>');
D.push(champName);
D.push('</div>');
D.push('<div class=description>');
var uniquestyle = "";
if (champItem.unique != 0) uniquestyle = "background:transparent url('" + IMGURL +"champion_hall/unique_" + champItemUniqueNames[champItem.type] + "_" + STrChOFactions[champItem.faction-1] + "_70x70_" + champItem.unique + ".png'); top left no-repeat; background-size: cover;";
D.push('<div class="portrait ' + STrChOFactions[champItem.faction-1] + ' ' + champItemNames[champItem.type] + '" style="'+uniquestyle+'"></div>');
D.push('<ul>');
D.push('<li>Faction: ' + STrChOFactions[champItem.faction-1] + '</li>');
D.push('<li>Quality: ' + champCardQualities[champItem.rarity] + '</li>');
D.push('<li>Might: ' + (champItem.might > 0 ? champItem.might : '') + '</li>');
D.push('</ul>');
D.push('</div>');
D.push('<ul class="effects">');
for (var ef in champItem["effects"]) {
var effectLine = champItem["effects"][ef];
var effect = CM.ChampionManager.getEffect(effectLine, champItem.level);
D.push('<li class="effect ' + (effect.id >= 200 ? 'statChamp' : 'statTroop') + '">' + effect.amount + ' ' + uW.g_js_strings.effects["name_" + effect.id ] + '</li>');
}
D.push('</ul>');
D.push('</div>');
D.push('</div>');
D.push('</div>');
D.push('</div>');
return D.join('');
};
function BuildThroneCard(throneItem) {
var D = [];
var w = CM.thronestats.mightByQuality;
var z = CM.thronestats.mightByLevel;
if (throneItem == null) {
D.push('<div>');
D.push('</div>');
return D.join('');
}
D.push('<div class=STrChOCard style="white-space: normal; padding: 0px;">');
D.push('<div class=section style="overflow: visible;" id=idsection>');
D.push('<div div class="throne_item_section">');
var throneName = throneItem.name;
throneName = throneName.replace(throneItem.createPrefix(), '');
throneName = throneName.trim();
D.push('<div class="STrChOTitle ' + throneItem.createPrefix().toLowerCase() + '" title="' + throneName + '" style="text-transform: capitalize;">');
if (throneItem.isBroken) D.push('<font color=red><b>BROKEN</b></font><br>');
D.push(throneName + (throneItem.unique ? ' +' + throneItem.level : ''));
D.push('</div>');
D.push('<div class=description>');
var uniquestyle = '';
if (throneItem.unique > 29000) {
uniquestyle = "background:transparent url('"+gameurl+"img/throne/icons/70/"+throneItem.faction+"_"+throneItem.type+"_unique_"+throneItem.unique + ".png'); top left no-repeat; background-size: 70px 70px;";
if (throneItem.unique == 30262 || throneItem.unique == 30264 || throneItem.unique == 30266) { uniquestyle = "background:transparent url('"+gameurl+"img/throne/icons/70/christmas_advisor_normal_1.png'); top left no-repeat; background-size: 70px 70px;";};
if (throneItem.unique == 30261 || throneItem.unique == 30263 || throneItem.unique == 30265) { uniquestyle = "background:transparent url('"+gameurl+"img/throne/icons/70/christmas_candelabrum_normal_1.png'); top left no-repeat; background-size: 70px 70px;";};
if (throneItem.unique == 30230 || throneItem.unique == 30240 || throneItem.unique == 30250) { uniquestyle = "background:transparent url('"+gameurl+"img/throne/icons/70/halloween_table_normal_1.png'); top left no-repeat; background-size: 70px 70px;";};
if (throneItem.unique == 30231 || throneItem.unique == 30241 || throneItem.unique == 30251) { uniquestyle = "background:transparent url('"+gameurl+"img/throne/icons/70/halloween_chair_normal_1.png'); top left no-repeat; background-size: 70px 70px;";};
}
D.push('<div class="portrait ' + throneItem.faction + ' ' + throneItem.type + '" style="'+uniquestyle+'"></div>');
D.push('<ul>');
D.push('<li>Faction: ' + throneItem.faction + '</li>');
D.push('<li>Quality: ' + throneItem.createPrefix() + '</li>');
//D.push('<li>' + uW.g_js_strings.commonstr.type + ': ' + throneItem.type + '</li>');
//D.push('<li>' + uW.g_js_strings.commonstr.level + ': ' + throneItem.level + '</li>');
D.push('<li>Might: ' + CM.ThroneView.getMightBonus(throneItem) + '</li>');
var hasJewel = false;
if (throneItem.jewel) {
if (throneItem.jewel.valid) hasJewel = true;
}
D.push('<li>Jewel: ' + (!hasJewel ? 'None' : STrChOJewelQualities[throneItem.jewel.quality-1]) + '</li>');
D.push('</ul>');
D.push('</div>');
D.push('<ul>');
for (slot in throneItem.effects) {
try {
var N = throneItem.effects[slot];
effect = CM.thronestats.effects[N.id];
tier = CM.thronestats.tiers[N.id][N.tier];
if (!tier) tier = CM.thronestats.tiers[N.id][N.tier - 1];
var base = tier.base || 0;
var level = throneItem.level;
var growth = tier.growth || 0;
if (slot == 'slot6') { //if it has a slot 6, it automatically has a jewel
JewelQuality = throneItem['effects']['slot6'].quality;
GrowthLimit = CM.thronestats.jewelGrowthLimit[JewelQuality];
if (GrowthLimit <= level) level = GrowthLimit
}
percent = +(base + ((level * level + level) * growth * 0.5));
var wholeNumber = false;
if (Math.round(parseFloat(percent)) == parseFloat(percent)) wholeNumber = true;
percent = (percent > 0) ? "+" + percent : +percent;
if (wholeNumber)
percent = parseFloat(percent).toFixed(0);
else
percent = parseFloat(percent).toFixed(2);
css = (slot % 2 === 0) ? 'even' : 'odd';
B = +(slot.split("slot")[1]);
if (B <= throneItem.quality) {
D.push('<li class="effect ' + css + '"> ' + percent + '% ' + effect[1] + '</li>');
} else {
D.push('<li class="effect disabled ' + css + '"> ' + percent + '% ' + effect[1] + '</li>');
}
}
catch (e) { }
}
D.push('</ul>');
D.push('</div>');
D.push('</div>');
D.push('</div>');
D.push('</div>');
return D.join('');
};
function NewsItemRow(msg) {
var m = '<tr><td>•';
m += msg;
m += '</td></tr>';
return m;
};
function pickAetherSalvageCity() {
if (parseInt(Seed.resources["city" + Seed.cities[STrChOGeneralOptions.salvageCityNum][0]]["rec5"][0]) <= STrChOGeneralOptions.maxStones) return STrChOGeneralOptions.salvageCityNum;
var ind = -1;
var lowest = 16000000;
if (STrChOGeneralOptions.salvageAnyCity) {
for (i = 0; i < Seed.cities.length; i++) {
if (STrChOGeneralOptions.overflow == "lowest") {
// put in the city w/ the lowest number of a-stone
if (parseInt(Seed.resources["city" + Seed.cities[i][0]]["rec5"][0]) < lowest) {
ind = i;
lowest = +Seed.resources["city" + Seed.cities[ind][0]]["rec5"][0];
}
} else {
// put in the first city with low stones
if (parseInt(Seed.resources["city" + Seed.cities[i][0]]["rec5"][0]) <= STrChOGeneralOptions.maxStones) {
return i;
}
}
}
}
return ind;
};
function SalvageChampItem(id) {
var t = Tabs.champSalvager;
var params = uW.Object.clone(ajfx);
var num_city = pickAetherSalvageCity();
if ( num_city < 0)
{
num_city = +STrChOGeneralOptions.salvageCityNum;
t.setStatus("All cities are (nearly) full of aetherstone");
}
params.action = "8";
params.eids = id;
params.cityId = Seed.cities[num_city][0];
new AjaxRequest(uW.g_ajaxpath + "ajax/ceEquipmentManagerAjax.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
try {
var rslt = eval("(" + transport.responseText + ")");
var champ_item = uW.kocChampionItems[id];
if(rslt.ok == true) {
var eid = rslt.equipmentIds[0];
champ_item = uW.kocChampionItems[eid];
if (champ_item) SalvageLog('Deleted Champion item '+ champ_item.name);
STrChOChampSalvageData.numSalvagedItems++;
STrChOChampSalvageData.numSalvagedItems2++;
SAVESTrChOChampSalvageData();
if (champ_item) {
STrChOChampSalvageData.numSalvaged[champ_item.rarity]++;
SAVESTrChOChampSalvageData();
t.removeItem(eid , Seed.cities[num_city][0], parseInt(rslt.aetherstones));
}
t.displayNumberSalvaged();
}
else
{
//logit("rslt: " + inspect(rslt,3,1));
if (champ_item) t.setStatus('Unable to salvage item ' + champ_item.name);
}
var idx = t.delItems.indexOf(id);
if (idx >=0)
{
t.delItems.splice(idx,1);
// Remove item from array regardless
// of success. Catch on next refresh
}
if (t.delItems.length > 0) { // Check if the array is empty
t.upgradeAndDelete();
} else {
t.deleting = false;
t.setStatus('Salvaging complete. Waiting for next cycle.');
return;
}
} catch (e) {
t.deleting = false;
}
},
onFailure: function () {
t.delIems = [];
t.deleting = false;
//if (uW.kocChampionItems[id] ) logit("salvage failed for item " + unsafeWindow.kocChampionItems[id].name );
return;
}
});
}
function ThroneUpdateTimerDisplay () {
if (!document.getElementById('STrChOTimerDisplay')) return;
var t = Tabs.throneUpgrader;
var timeUntilDone = 0;
if (t.repairEnd != 0) timeUntilDone = t.repairEnd - unixTime();
if (timeUntilDone > 0)
document.getElementById('STrChOTimerDisplay').innerHTML = '<span id=STrChOHammer></span> ' + rectime(timeUntilDone);
else
document.getElementById('STrChOTimerDisplay').innerHTML = 'DONE';
}
function rectime(secs) {
var min = Math.floor((secs)/60);
var sec = Math.ceil(secs - (min * 60));
if (sec < 10) {sec = "0" + sec;}
return min + ':' + sec;
}
function getThroneImage(item) {
var img = '';
if (item.unique == 30262 || item.unique == 30264 || item.unique == 30266) {
img = "https://rycamelot1-a.akamaihd.net/fb/e2/src/img/throne/icons/70/christmas_advisor_normal_1.png";
} else if (item.unique == 30261 || item.unique == 30263 || item.unique == 30265) {
img = "https://rycamelot1-a.akamaihd.net/fb/e2/src/img/throne/icons/70/christmas_candelabrum_normal_1.png";
} else if (item.unique == 30230 || item.unique == 30240 || item.unique == 30250) {
img = "https://rycamelot1-a.akamaihd.net/fb/e2/src/img/throne/icons/70/halloween_table_normal_1.png";
} else if (item.unique == 30231 || item.unique == 30241 || item.unique == 30251) {
img = "https://rycamelot1-a.akamaihd.net/fb/e2/src/img/throne/icons/70/halloween_chair_normal_1.png";
} else if (item.unique > 0) {
img = "https://rycamelot1-a.akamaihd.net/fb/e2/src/img/throne/icons/30/" + item.faction + "/" + item.faction + "_" + item.type + "_unique_normal_" + item.unique + ".png";
} else {
img = "https://rycamelot1-a.akamaihd.net/fb/e2/src/img/throne/icons/30/" + item.faction + "/" + item.faction + "_" + item.type + "_normal_1_" + item.quality + ".png";
}
if (item.isBroken) img = "https://rycamelot1-a.akamaihd.net/fb/e2/src/img/throne/modal/sm_fail_overlay.png";
return img;
}
function SalvageThroneItem(id) {
var t = Tabs.throneSalvager;
var params = uW.Object.clone(ajfx);
var num_city = pickAetherSalvageCity();
if (num_city < 0) {
num_city = +STrChOGeneralOptions.salvageCityNum;
t.setStatus("All cities are (nearly) full of aetherstone");
}
params.ctrl = 'throneRoom\\ThroneRoomServiceAjax';
params.action = 'salvage';
params.itemId = id;
params.cityId = Seed.cities[num_city][0];
new AjaxRequest(uW.g_ajaxpath + "ajax/_dispatch53.php" + uW.g_ajaxsuffix, {
method: "post",
parameters: params,
loading: true,
onSuccess: function (transport) {
try {
var rslt = eval("(" + transport.responseText + ")");
var throne_item = uW.kocThroneItems[id];
if (rslt.ok) {
if (throne_item) SalvageLog('Deleted Throne Room item ' + throne_item.name);
STrChOThroneSalvageData.numSalvagedItems++;
STrChOThroneSalvageData.numSalvagedItems2++;
SAVESTrChOThroneSalvageData();
if (throne_item) {
STrChOThroneSalvageData.numSalvaged[throne_item.quality]++;
SAVESTrChOThroneSalvageData();
Tabs.throneSalvager.removeItem(id, Seed.cities[num_city][0], rslt.aetherstones);
}
Tabs.throneSalvager.displayNumberSalvaged();
var sidx = STrChOThroneSalvageData.upgradedToDelete.indexOf(id);
if (sidx >= 0) {
STrChOThroneSalvageData.upgradedToDelete.splice(sidx, 1); // Remove item from array
SAVESTrChOThroneSalvageData();
}
if (STrChOGeneralOptions.throneSorter) {
var cmContainerOpen = (document.getElementsByClassName('cmModalContainer').length == 1 ? true : false);
sortThroneSorter(!cmContainerOpen);
setThroneSorter(!cmContainerOpen);
SAVESTrChOThroneSorter();
}
} else {
if (throne_item) Tabs.throneSalvager.setStatus('Unable to salvage item ' + throne_item.name);
CM.ThroneView.renderInventory(uW.kocThroneItems);
}
var idx = t.delItems.indexOf(id);
if (idx >= 0) t.delItems.splice(idx, 1); // Remove item from array regardless of success. Catch on next refresh
if (t.delItems.length > 0) { // Check if the array is empty
t.upgradeAndDelete();
} else {
t.deleting = false;
t.setStatus('Salvaging complete. Waiting for next cycle.');
return;
}
} catch (e) {
t.deleting = false;
}
},
onFailure: function () {
t.delIems = [];
t.deleting = false;
CM.ThroneView.renderInventory(uW.kocThroneItems);
return;
}
});
};
function ThroneAttachTab() {
uW.hideShow = eventHideShow;
uW.execSalvager = Tabs.throneSalvager.togglePower;
uW.execUpgrader = Tabs.throneUpgrader.togglePower;
uW.execRepair = Tabs.throneRepair.togglePower;
uW.execSorter = Tabs.throneSorter.togglePower;
uW.clickNextThroneLevel = Tabs.throneOrganizer.showNextThroneLevel;
var str = ThroneTemplates.mainThrone.replace(
'<li id="throneStatTab" class="inactive"> #{stats} </li>',
'<li id="throneStatTab" class="inactive"> #{stats} </li>' +
'<li id="STrChOControls" class="inactive" style="font-size: 12px;" onclick="hideShow()">STrChO</li>' +
'<li id="STrChOExecuteSorter" class="inactive" style="font-size: 10px;" onclick="execSorter()">Sorter ' + (STrChOGeneralOptions.throneSorter ? 'ON' : 'OFF') + '</li>' +
'<li id="STrChOExecuteRepair" class="inactive" style="font-size: 10px;" onclick="execRepair()">Repair ' + (STrChOThroneRepairData.active ? 'ON' : 'OFF') + '</li>' +
'<li id="STrChOExecuteUpgrader" class="inactive" style="font-size: 10px;" onclick="execUpgrader()">Upgrader ' + (STrChOThroneUpgradeData.active ? 'ON' : 'OFF') + '</li>' +
'<li id="STrChOExecuteSalvager" class="inactive" style="font-size: 10px;" onclick="execSalvager()">Salvager ' + (STrChOThroneSalvageData.active ? 'ON' : 'OFF') + '</li>' +
'<li id="STrChOTimerDisplay" class="inactive" style="font-size: 10px;">Done</li>');
str = str.replace( '<div id="thronePanelContainer">', '<div id="thronePanelContainer" style="z-index: 101">');
//str = str.replace( '<li id="throneInventoryTab" class="inactive"> #{inventory} </li>', '<li id="throneInventoryTab" class="inactive" style="font-size: 12px;"> #{inventory} </li>');
ThroneTemplates.mainThrone = str;
ThroneTemplates.throneInfo = ThroneTemplates.throneInfo.replace (
'<div id="throneInfoContainer">',
'<div id="throneInfoContainer" style="z-index: 100;">');
ThroneTemplates.mainThrone = ThroneTemplates.mainThrone.replace (
'<div id="throneInfoContainer">',
'<div id="throneInfoContainer" style="z-index: 100;">');
ThroneTemplates.thronePanel = ThroneTemplates.thronePanel.replace(
'<div class="thronePanelContainer">',
'<div class="thronePanelContainer" style="z-index: 101;">');
ThroneTemplates.thronePanel = ThroneTemplates.thronePanel.replace(
'<div id="nextStatContainer" class="nextStat">',
'<div id="nextStatContainer" class="nextStat" onclick="clickNextThroneLevel()">');
ThroneTemplates.mainThrone = ThroneTemplates.mainThrone.replace(
'<ul id="throneStatDisplay"></ul>',
'<div style="width: 70%; margin-left: auto; margin-right: auto;"><input class=STrChOButton type="button" value="Post to Chat" onclick="postThroneStats()"></input></div><ul id="throneStatDisplay"></ul>');
GM_addStyle( "div#throneMainContainer div#throneInfoContainer div.infoContainer div.statContainer div.stats > ul {height: 345px }");
function postThroneStats() { postThroneSlot(Seed.throne.activeSlot); }
uW.postThroneStats = postThroneStats;
}
function SAVESTrChOGlobalOptions() {
setTimeout(function () { GM_setValue('STrChOGlobalOptions_' + uW.tvuid, JSON2.stringify(STrChOGlobalOptions)); }, 0);
}
function SAVESTrChOGeneralOptions() {
setTimeout(function () { GM_setValue('STrChOGeneralOptions_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOGeneralOptions)); }, 0);
}
function SAVESTrChOLogData() {
setTimeout(function () { GM_setValue('STrChOLogData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOLogData)); }, 0);
}
function SAVESTrChOThroneUpgradeStats() {
setTimeout(function () { GM_setValue('STrChOThroneUpgradeStats_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOThroneUpgradeStats)); }, 0);
}
function SAVESTrChOThroneUpgradeData() {
setTimeout(function () { GM_setValue('STrChOThroneUpgradeData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOThroneUpgradeData)); }, 0);
}
function SAVESTrChOThroneQueueData() {
setTimeout(function () { GM_setValue('STrChOThroneQueueData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOThroneQueueData)); }, 0);
}
function SAVESTrChOThronePresetData() {
setTimeout(function () { GM_setValue('STrChOThronePresetData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOThronePresetData)); }, 0);
uW.STrChOPresetNames = STrChOThronePresetData.presetNames;
}
function SAVESTrChOThroneRepairData() {
setTimeout(function () { GM_setValue('STrChOThroneRepairData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOThroneRepairData)); }, 0);
}
function SAVESTrChOThroneSalvageData() {
setTimeout(function () { GM_setValue('STrChOThroneSalvageData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOThroneSalvageData)); }, 0);
}
function SAVESTrChOChampUpgradeStats() {
setTimeout(function () { GM_setValue('STrChOChampUpgradeStats_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOChampUpgradeStats)); }, 0);
}
function SAVESTrChOChampUpgradeData() {
setTimeout(function () { GM_setValue('STrChOChampUpgradeData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOChampUpgradeData)); }, 0);
}
function SAVESTrChOChampQueueData() {
setTimeout(function () { GM_setValue('STrChOChampQueueData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOChampQueueData)); }, 0);
}
function SAVESTrChOChampPresetData() {
setTimeout(function () { GM_setValue('STrChOChampPresetData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOChampPresetData)); }, 0);
}
function SAVESTrChOChampRepairData() {
setTimeout(function () { GM_setValue('STrChOChampRepairData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOChampRepairData)); }, 0);
}
function SAVESTrChOChampSalvageData() {
setTimeout(function () { GM_setValue('STrChOChampSalvageData_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOChampSalvageData)); }, 0);
}
function SAVESTrChOThroneSorter() {
setTimeout(function () { GM_setValue('STrChOThroneSorter_' + getServerId() + uW.tvuid, JSON2.stringify(STrChOThroneSorter)); }, 0);
}
function LOADSTrChOGlobalOptions() {
var s = GM_getValue('STrChOGlobalOptions_' + uW.tvuid);
if (s != null) STrChOGlobalOptions = JSON2.parse(s);
}
function LOADSTrChOGeneralOptions() {
var s = GM_getValue('STrChOGeneralOptions_' + getServerId() + uW.tvuid);
if (s != null) STrChOGeneralOptions = JSON2.parse(s);
}
function LOADSTrChOLogData() {
var s = GM_getValue('STrChOLogData_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOLogData[k][kk] = opts[k][kk];
else
STrChOLogData[k] = opts[k];
}
}
}
function LOADSTrChOThroneUpgradeStats() {
var s = GM_getValue('STrChOThroneUpgradeStats_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOThroneUpgradeStats[k][kk] = opts[k][kk];
else
STrChOThroneUpgradeStats[k] = opts[k];
}
}
}
function LOADSTrChOThronePresetData() {
var s = GM_getValue('STrChOThronePresetData_'+ getServerId() + uW.tvuid);
if (s != null){
opts = JSON2.parse (s);
for (k in opts){
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOThronePresetData[k][kk] = opts[k][kk];
else
STrChOThronePresetData[k] = opts[k];
}
}
// for (var i in STrChOThronePresetData.previewThrone) {
// var throne_item = uW.kocThroneItems[i];
// if (throne_item == null || !throne_item) delete STrChOThronePresetData.previewThrone[i];
// }
uW.STrChOPresetNames = STrChOThronePresetData.presetNames;
}
function LOADSTrChOThroneSalvageData() {
var s = GM_getValue('STrChOThroneSalvageData_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOThroneSalvageData[k][kk] = opts[k][kk];
else
STrChOThroneSalvageData[k] = opts[k];
}
}
for (k in STrChOThroneSalvageData.ruleSet)
{
var r = STrChOThroneSalvageData.ruleSet[k];
var rule = new ThroneRule(r.type, r.faction, r.conditions, r.advancedrule);
for (j in rule.conditions)
{
rule.conditions[j].ThroneCheckCondition = ThroneCheckCondition;
}
STrChOThroneSalvageData.ruleSet[k] = rule;
}
}
function LOADSTrChOThroneUpgradeData() {
var s = GM_getValue('STrChOThroneUpgradeData_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOThroneUpgradeData[k][kk] = opts[k][kk];
else
STrChOThroneUpgradeData[k] = opts[k];
}
}
}
function LOADSTrChOThroneRepairData() {
var s = GM_getValue('STrChOThroneRepairData_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOThroneRepairData[k][kk] = opts[k][kk];
else
STrChOThroneRepairData[k] = opts[k];
}
}
}
function LOADSTrChOThroneQueueData() {
var s = GM_getValue('STrChOThroneQueueData_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOThroneQueueData[k][kk] = opts[k][kk];
else
STrChOThroneQueueData[k] = opts[k];
}
}
}
function LOADSTrChOChampUpgradeStats() {
var s = GM_getValue('STrChOChampUpgradeStats_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOChampUpgradeStats[k][kk] = opts[k][kk];
else
STrChOChampUpgradeStats[k] = opts[k];
}
}
}
function LOADSTrChOChampPresetData() {
var s = GM_getValue('STrChOChampPresetData_'+ getServerId() + uW.tvuid);
if (s != null){
opts = JSON2.parse (s);
for (k in opts){
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOChampPresetData[k][kk] = opts[k][kk];
else
STrChOChampPresetData[k] = opts[k];
}
}
}
function LOADSTrChOChampSalvageData() {
var s = GM_getValue('STrChOChampSalvageData_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOChampSalvageData[k][kk] = opts[k][kk];
else
STrChOChampSalvageData[k] = opts[k];
}
}
for (k in STrChOChampSalvageData.ruleSet) {
var r = STrChOChampSalvageData.ruleSet[k];
var rule = new ChampRule(r.type, r.faction, r.conditions, r.advancedrule);
for (j in rule.conditions) rule.conditions[j].ChampCheckCondition = ChampCheckCondition;
STrChOChampSalvageData.ruleSet[k] = rule;
}
}
function LOADSTrChOChampUpgradeData() {
var s = GM_getValue('STrChOChampUpgradeData_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOChampUpgradeData[k][kk] = opts[k][kk];
else
STrChOChampUpgradeData[k] = opts[k];
}
}
}
function LOADSTrChOChampRepairData() {
var s = GM_getValue('STrChOChampRepairData_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOChampRepairData[k][kk] = opts[k][kk];
else
STrChOChampRepairData[k] = opts[k];
}
}
}
function LOADSTrChOChampQueueData() {
var s = GM_getValue('STrChOChampQueueData_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOChampQueueData[k][kk] = opts[k][kk];
else
STrChOChampQueueData[k] = opts[k];
}
}
}
function LOADSTrChOThroneSorter() {
var s = GM_getValue('STrChOThroneSorter_' + getServerId() + uW.tvuid);
if (s != null) {
opts = JSON2.parse(s);
for (k in opts) {
if (matTypeof(opts[k]) == 'object')
for (kk in opts[k])
STrChOThroneSorter[k][kk] = opts[k][kk];
else
STrChOThroneSorter[k] = opts[k];
}
}
}
function LOADallData() {
LOADSTrChOChampPresetData();
LOADSTrChOChampQueueData();
LOADSTrChOChampRepairData();
LOADSTrChOChampSalvageData();
LOADSTrChOChampUpgradeData();
LOADSTrChOChampUpgradeStats();
LOADSTrChOGeneralOptions();
LOADSTrChOGlobalOptions();
LOADSTrChOLogData();
LOADSTrChOThronePresetData();
LOADSTrChOThroneQueueData();
LOADSTrChOThroneRepairData();
LOADSTrChOThroneSalvageData();
LOADSTrChOThroneUpgradeData();
LOADSTrChOThroneUpgradeStats();
LOADSTrChOThroneSorter();
}
function SAVEallData() {
SAVESTrChOChampPresetData();
SAVESTrChOChampQueueData();
SAVESTrChOChampRepairData();
SAVESTrChOChampSalvageData();
SAVESTrChOChampUpgradeData();
SAVESTrChOChampUpgradeStats();
SAVESTrChOGeneralOptions();
SAVESTrChOGlobalOptions();
SAVESTrChOLogData();
SAVESTrChOThronePresetData();
SAVESTrChOThroneQueueData();
SAVESTrChOThroneRepairData();
SAVESTrChOThroneSalvageData();
SAVESTrChOThroneUpgradeData();
SAVESTrChOThroneUpgradeStats();
SAVESTrChOThroneSorter();
}
function SaveSettingsToFile(objSettings) {
var uriContent = 'data:application/octet-stream,' + encodeURIComponent(JSON2.stringify(objSettings));
var newWindow = window.open(uriContent, 'file.txt');
}
function LoadSettingsFromFile(objSettings, objTab) {
var fileInput = document.getElementById("STrChOSettingsFile");
var files = fileInput.files;
if (files.length == 0) {
alert('Failed To Select A File');
return;
}
var file = files[0];
var reader = new FileReader();
reader.onload = function (e) {
var output = e.target.result;
if (output != null) {
opts = JSON2.parse(output);
for (k in opts) {
if (matTypeof(opts[k]) == 'object') {
for (kk in opts[k]) objSettings[k][kk] = opts[k][kk];
} else {
objSettings[k] = opts[k];
}
}
SAVEallData();
objTab.show();
}
};
reader.readAsText(file);
}
function SuccessLog(msg) {
var t = Tabs.STrChOLog;
msg = msg.replace(',', '\,');
t.addLogEntry(logValues.SUCCESS, msg);
t.show();
}
function ActionLog(msg) {
var t = Tabs.STrChOLog;
msg = msg.replace(',', '\,');
t.addLogEntry(logValues.ACTION, msg);
t.show();
}
function SalvageLog(msg) {
var t = Tabs.STrChOLog;
msg = msg.replace(',', '\,');
t.addLogEntry(logValues.SALVAGE, msg);
t.show();
}
if (document.location.toString().match('src/main_src.php')) ScriptStartup();