您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
KOC All In One Throne Room & Champion Hall
当前为
// ==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.2 // @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 https://raw.githubusercontent.com/sickofit666/1.9.2-themes-base-jquery-ui.css/master/jquery-ui.css // @resource champion_uniques https://koc-cdn.popreach.com/fb/e2/src/pb/resource/champion_uniques.js // @icon https://rycamelot1-a.akamaihd.net/fb/e2/src/img/items/70/845.jpg // @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 https://creativecommons.org/licenses/by-nc-nd/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.2'; 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();