// ==UserScript== // @name Darksoul KOC Power Tools // @namespace darksoul // @version 20140404a // @include *.kingdomsofcamelot.com/*main_src.php* // @description Enhancements and bug fixes for Kingdoms of Camelot // @icon http://www.gravatar.com/avatar/f9c545f386b902b6fe8ec3c73a62c524?r=PG&s=60&default=identicon // @downloadURL https://update.greasyfork.icu/scripts/743/Darksoul%20KOC%20Power%20Tools.user.js // @updateURL https://update.greasyfork.icu/scripts/743/Darksoul%20KOC%20Power%20Tools.meta.js // ==/UserScript== //Fixed weird bug with koc game if (window.self.location != window.top.location) { if (window.self.location.href == window.parent.location.href) { return; //If iframe source is same as the parent don't load script } } //This value is used for statistics (https://nicodebelder.eu/kocReportView/Stats.html). //Please change it to your Userscript project name. var SourceName = "Darksoul Power Tools (SVN)"; var Version = '20140404a'; var Title = 'KOC Power Tools'; var DEBUG_BUTTON = true; var DEBUG_TRACE = false; var DEBUG_TRACE_DRAG = false; var DEBUG_TRACE_AJAX = false; var MAP_DELAY = 1500; var DISABLE_POST_KNIGHT_SKILLS = false; var DISABLE_POST_DEFENSES = false; var ENABLE_TEST_TAB = false; var SEND_ALERT_AS_WHISPER = false; var TEST_WIDE = false; var TEST_WIDE_CITIES = 7; var ENABLE_ALERT_TO_CHAT = true; var History = []; var throttle = 10; var FFVersion = getFirefoxVersion(); if (typeof SOUND_FILES == 'undefined') var SOUND_FILES = new Object(); if (typeof SOUND_FILES.whisper == 'undefined') { SOUND_FILES.whisper = new Object(); SOUND_FILES.whisper.MP3 = 'data:audio/mp3;base64,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'; SOUND_FILES.whisper.OGG = 'data:audio/ogg;base64,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4Rg6v/Djqaqvm64rDKcsC7/t68az+76yjK7r+6osC78q28Kx677z/L6wLKPs+sJqy8Kw2rYx3L5uLL9wHMtr68ox675RtnV8X3gKw/N0dV15Zl3H9nV040c4fsoAAIABBwCAABPKQKEhKwKAOAEAjySJomRZoihZliiKpui6omi6rqRppqlpnmlammeapmmqsimarixpmmlanmaamqeZpmiarmuapqyKpinLpmrKsmmasuy6sm27rmzbomnKsmmasmyapiy7sqvbruzquqRZpql5nmlqnmeapmrKsmmarqt5nmp6nmiqniiqqmqqqq2qqixbnmeamuippieKqmqqpq2aqirLpqrasmmqtmyqqm27quz6sm3rummqsm2qpi2bqmrbruzqsizbui9pmmlqnmeamueZpmmasmyaqitbnqeaniiqquaJpmqqqiybpqrKlueZqieKquqJnmuaqirLpmraqmmatmyqqi2bpirLrm37vuvKsm6qqmybqmrrpmrKsmzLvu/Kqu6KpinLpqrasmmqsi3bsu/Lsqz7omnKsmmqsm2qqi7Lsm0bs2z7umiasm2qpi2bqirbsi37uizbuu/Krm+rqqzrsi37uu76rnDrujC8smz7qqz6uivbum/rMtv2fUTTlGVTNW3bVFVZdmXZ9mXb9n3RNG1bVVVbNk3VtmVZ9n1Ztm1hNE3ZNlVV1k3VtG1Zlm1htmXhdmXZt2Vb9nXXlXVf133j12Xd5rqy7cuyrfuqq/q27vvCcOuu8AoAABhwAAAIMKEMFBqyEgCIAgAAjGGMMQiNUs45B6FRyjnnIGTOQQghlcw5CCGUkjkHoZSUMucglJJSCKGUlFoLIZSUUmsFAAAUOAAABNigKbE4QKEhKwGAVAAAg+NYlueZomrasmNJnieKqqmqtu1IlueJommqqm1bnieKpqmqruvrmueJommqquvqumiapqmqruu6ui6aoqmqquu6sq6bpqqqriu7suzrpqqqquvKriz7wqq6rivLsm3rwrCqruvKsmzbtm/cuq7rvu/7wpGt67ou/MIxDEcBAOAJDgBABTasjnBSNBZYaMhKACADAIAwBiGDEEIGIYSQUkohpZQSAAAw4AAAEGBCGSg0ZCUAEAMAABABIYMQQgghhBBCCCGEEEIIIYQQQuecc84555xzzgkA2I9wAJB6MDExhYWGrAQA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'; SOUND_FILES.whisper.DEFAULT = ''; } if (typeof SOUND_FILES.whisper2 == 'undefined') { SOUND_FILES.whisper2 = new Object(); SOUND_FILES.whisper2.MP3 = 'data:audio/mp3;base64,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'; SOUND_FILES.whisper2.OGG = 'data:audio/ogg;base64,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'; SOUND_FILES.whisper2.DEFAULT = ''; } if (typeof SOUND_FILES.allianceattack == 'undefined') { SOUND_FILES.allianceattack = new Object(); SOUND_FILES.allianceattack.MP3 = 'data:audio/mp3;base64,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DDjAkinqvrffaHptCYupuacokAazVds3epLqkh+Yl28+////////y/uv////////l21E1GqZ0gqAMaaNW8ObYO/mOFBNYbMcFLWs1RCMaaNSyNy+NQpM4RAQ1S2UMqXc6y+QaA0uOdj3w+6PNDigFGb5pSYygzjTbWVhV2tdl0y/r+w7elUNP9GbNyGn+f6XZwy/z/Q9Ls5TDLsuS/0PU2WWWf/zgsRxKlImaAPawAFlljjj+sqaVRqU0tLS481lTUuOqaVRqm7jWpqaXU2WMpjMal1ruNLS2ebq0tLjzWVNVxNyCgn4Q1UwWCoiGQ8NlQzIgiiEHIqE0aBWOAlmbl83PdPhKHEchSJhDBQLhgWJiEsdKFyh0ZEQhGg+MEYoHxMKREMh4bGCMgUXSTSTg2ZFIWEI0HxgRkArRu3/+MkSEsVOHSiNAJ//BQmmGBn//pgaqoMt/+hCaYYGf/+FA1VQY7/8FCaYYGt/9hA1VQYrVVVF//OCxIsnAY0wCEsSOaaaQNammmiqqocrVVVXTTSJTEFNRTMuOTdVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuOTdVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/84LEswAAA0gAAAAAVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy45N1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zgsT/AAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjk3VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//OCxP8AAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuOTdVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/84LE/wAAA0gAAAAAVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy45N1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/zgsT/AAADSAAAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjk3VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//OCxP8AAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUQUdzdWJtYXJpbmVfZGl2ZV9ob3JuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/w=='; SOUND_FILES.allianceattack.OGG = 'data:audio/ogg;base64,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'; SOUND_FILES.allianceattack.DEFAULT = ''; } if (typeof SOUND_FILES.alert == 'undefined') { SOUND_FILES.alert = new Object(); SOUND_FILES.alert.OGG = 'data:audio/ogg;base64,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'; SOUND_FILES.alert.DEFAULT = ''; } var URL_CASTLE_WARN = "data:image/png;base64,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"; var URL_CASTLE_BUT = "data:image/png;base64,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"; var URL_CASTLE_BUT_SEL = "data:image/png;base64,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"; var URL_PROVINCE_MAP = "data:image/gif;base64,R0lGODlhxgLEAvcAAP%2F%2F%2F%2Ff%2F%2F%2Fv%2F8%2Ff3%2F%2Ff39%2Ff37%2F%2F%2Fpe%2F39%2F%2F%2FnO%2F37%2F%2F%2FlPf%2FnPf%2FlPHv9%2B%2Fv7%2F%2F3lO%2Fv5ubv7%2Ff3lPf3jO%2Fm7%2B%2F3jO%2F0lPfvlObm7%2Bb3jObm5u%2FvjN7m5ubvlObvjN7e5t3whN7e3ubmjObmhNbe1tbb3t7mjN7mhNbmhNbW1t7ehM7W1tTfe9TchM7O1s7OztbWe8XOzsXOxc7We8XWesXFzsXFxc7Oe73FxcXOe8XOc73Oc7XFtb69xdHYAL29vbW9vb3Fc7bGa7XFc7W1vbW1tbXSALW9a6rCY629a6yurq3KALXFAJjCWq21Y6uza6W1Y7W9AJy1Y6Okpa29AJ%2BtY621CJytWq21AJq9AKWwG5ucnJylWpSlWo2oUoylWpytAJSUlHyrSoyUlI%2BcWoycUoyUc4SeUoStAIyMlIyMjIyUUoSMjI2gAYSUUoSUSoSEjHuUSoSEhICEe3OhAHuEhHuMSoSUAHKOQnOMSmKYNHuUAHl7fHOEQmuSAGuEQnOMAHJzc3OEAGt7Omh7Qnt8AGN7Ompralp7Omt7AGNzOlpzOltzMVJ3MmN3AF9rOmFiY2trAEp6AFJrMUpsMSx%2BG1JrGVlbWmdjACh%2FAkprCEpjMUprAEpjKUJjKUJdQkpjCFBRU0hjAEJbOkJjCEJaKUdSRTpaOkJaGTpaKUJSOjpaIUpKSjpSOkJKSjFfBUJKQgB3ADpSITFSMR9eGDFSIQhrCAhrAEBBQzFQGTFSCClSGQBrADFSADFKIRlbBAhjAClKISlKGTg8OQBjAAhdCClKCCBLGAhaAEI6AClCGQBaABtKCCFCIQhSCCFCGSlBBwhSACFCEBlCISFCCCFCAC8xMgBSABlCEAhKCCA5GSE6EANKABk6EAhCCCkxABE7CBA6ECcpKQBCCAFAAAg6CBIwEAA6CBAxCCEhKQgxCB4hIQAxCAIxAAgpCAgpABkZIQApCBkZGQApABAZGQAhCAAhABAQGRAQEAAZAAgQEAgIEAgICAAICAAACAAAACwAAAAAxgLEAgAI%2FgABCBxIsKDBgwBCHAqlhgDChxAhFglEkY8DACkWhnEYsSNBG6xeCCSwJdShFCNLnvTIUuAhOQOnUAw0x%2BELSKG2tOyoQU4oSD9GjjFZQijRnRGLXArF5iKALTPlOLSBcwrSg0qWWhVINdRWAF2%2FXjXIgU%2BoQBoEpph5SKQDn2jHQpwSqiiAH5cuKRmIV6%2FchxouqRH4YmYglA7M8onw16AaiofCCFR6KejkvJb%2FEngc6JBOAmwg6wSQtXLjggTC%2FBQJQEOgUHKcuobt9DRXnBsBEJADeStdSDZsC1RyyLBIhQw5Im%2FYmLhhlBMrXswYKrfwgQ6GyWPFj8%2F1iJf4%2Fq2DJ06DA2vwuMO8%2FsIaP8th%2BLlaVx5A%2FPn1hRMI5C%2FUQFfiyWONAxqIkw4u%2FEhmGwGs6BOKOPj0AIAc%2FLACzzAXUciKPBgKpwQ%2F1nAHiUDD7LMOhwSEQB%2BCYl314TAsYkQeLvvslcKM%2FOxlW3b0hHIPLg085Y88J%2B51iD6s3MMKR8LdiI9IL9BjzTD4BPXCPVNW%2BR0Ah%2FwzIgBsDHliUJfgwwo%2Bl1ynATz4nJjmD%2FgMYw0%2BwcEpJ52NaSBPm%2FSMqCefIxahj5z0sGYbJA6us44GDNLDyj6H6OaKo5BeZ4OUrvwzWAr40LMOPYEAMAU%2FuIizDkq28eHpOvi8R4B2%2F9x5l9123TUWyKqtBhfeeOWdlx4%2F631XRD%2BSsbJObVsSRIA1oTjQwEVK9KNTqcj%2BFQY9ewa17DCk9WPVlN2OdloIVKIpkAPpQNLAs0%2F1s9eUTP5VQjqh2tAdAeLg0m4R%2BOq7hbvCHSJOCACEIk8Eegay7kVquJpvYyURoAE9aVJogwPrsDIhPxdnLFwIXgEQCD8oHbJOCM9KLE%2BadXB8HYP6yCNSIPikoGeaNNu88ndK4KNPpABcUl7KnEZ6SM3C2aDPFgQ4cBEk9GhQNABQS40P0HL1sM8Uz16k9RRNX3SJPFLrE6ptL5gNViAh2AvT2A64HTTZwo2dVh1WFcFPEf4pA8BKOgTIvaDTL6wT6bDFrkMA4n6nU%2B1OYb8AT6jLNstutNOK83hjDQcViD6GJjtQCBxewjYAfLh8NKqnvURhUKSnuQI%2BaO38Au1Js1JEOv4BMDsul%2FCR1upzp7WjQ0TwM0YIV4PFjxrMRyr4aQ0wBkCpgZt5SWxB00OwsZvvpAEc9%2Bhk9%2FXiEHA%2Btd%2F1AONF80EC3F3AhnudGutA8mTjF1ljDYOOA4D%2F4vUXDaQrf7oZhjjkJ5JoSeZfOjrNFvYRikvkRk66yder%2FtevxoSBghYMgH0cZEHdgAtjGrPNFp6nhtxAcGMveKHFbNOAfCmBD8GZEJouoRMHPOxmW%2F4SWFrY8B6R1axzIgPdoTSXkNKdrmXBId53Uhec1ElIdASBE7Pi5IDPzYwfodOMfYo4tRJczYyR4tSXTuMQjPVOCfsYRijwgQsCQOIeRdEf62wTAmss6gX78A4g%2BfCCWsVAbd%2BRQz9gskJchIKCBAjFogpGt8bI4R%2FDSAv4%2FLYoY2kSHsbj4zqWBgAfruNBhWKc3gaDNnpMIQz7U6BDqCWnICkwSLa5xDBU5Kd18G48KZiCt0QlLeF8jhUICgS%2BuLWt8zBzgH85EjJrJU0E8aGDNeSWbdRgIlzQo44NKwIA1NCPH4yBH0AY595sUyApzWkvZQrFMJ7nAHj4RwMeY%2F8PPhTEh31UEYxURJ3LGqO00WhxjhjyYhLDeJqABhSL2LnYOP1RBD4oMRD7YKi1yIiPERWNeR7t6HcwcMpzSZQP%2FejB0fKID7vwcU7iVFqoYhBIQNYLkcJR5CXaaAOHHAKMlwAlJUMpFw38QBxL2iT4PMlJ6y1oLVUKwAsIprRDAEF5AFglDXGBi55U6VXpA4ACsyMOW4b1NFPAhxJCAI9LOIAAU6VfHaJlFWGKK0%2BsmU8fn4khcG2LgDsJgUgIgItjCVY3hQ3Bw3yozdOowR%2BhEqYS4iNOcv6AsuoU52kMeLIGgOuwnrWGijS2phQas5IOBSMUUefP1k2ylBJ97A3%2BL6rE74ShH%2BmUIkRLSbCs%2BmMKDQsO1HornPgEBYiArIMDbBfIkZaUtwKZgj9mKxJJErWA2kknANBIvzBooHk%2FeN79%2BLFGB3xAIGko59EIxj65HJZq%2BNAAJOiGwfmmRU6AvYoDYnCRQl5TA0G6WSFhIswWjaWQ9ICHPOhBjx9Isn%2Fc2iS4bBOKfpyIHmhKkUOiF17J3FazmzWeHrGHQvQ1LZ9FFbH3NGC8S9CjBBisZ%2B%2FQ6g%2FJFDIM0dpLP4MJsH5qFCnLsoZAHkQg4xmrj%2FoKwT3WyEZmDeScQVmvcbmEtL%2F4ME3n6m0R%2FLGF%2BEjojsRNGj%2FQAs3dPmUfYXDAT1%2F%2B0IPuFGgY%2BZXLlK%2BXjhCQU5y4qPOdnds7NehjCg4oUwiiBT0UNyaS%2FDiEDX6QgiBrIKD%2Be%2FRAT1MEfIijCD%2F4AQH4gI8iOGBDGvjXFlKws7%2B42AZ9TN9tpxClEa261WI%2BRE9%2BSzpIOGBUasBYV%2FXITjXIAQ5zPEQIKFQEG%2BCO2MY%2B22mUIAc58IFDSjD2IRxw2y3oKRQaMFiY%2FyLJqQ7wcz3QG0zALe7G%2FC0Fih1GA0KRDnSLA85Hs8GHWHmaEjhKA3dOgT4goQHs6Zvf7W2dPoqg2CXhQrQp8JiLeXzXxnCK3vYis5AjroEyyyVtCnqKPtK8ZnsJD15bsmPM8GH%2FYNH1Wx%2Bj9I76Rh5B4ajhH5Ypgjzk4SCHyJzmoYjzWK4tEHK1CR8wWXfM5JGZxoRXH%2Frgxz8ilVZ57AMSDmn603W%2BE1z0o1X9iFoKIMQqyTgAF51aRw7lYoN04GPBVuk3Pu6xDpGone0%2FBvIh9gEPCl4Eo6xixUVg6XRl368fKOkjPiwd%2BDkRfksO6JNuICEeB2UoZvoI1ml%2BMPOZi3PrgxctRiCED83%2F5ebygEdQQC%2F6zQ8%2Bk%2FeD%2FE6TuCcFfW5PDf9LCuYU%2BqBM4R4zFztYPkXH8F2lCP%2BIoMj3ZJXhk3zZwR%2FIyVOum0uwXHQEUIIaxm7mUgI3M9FXQwySVQIl%2FoTyBWMA9EDAL%2F7vLG7sGgDu2G89hrgjZdBKiL8SWBMDNSiBSfW%2F%2F3WAIH8l8Ks1W5AG6%2FdKe%2BReXcY6DnCA2KGAwmJ%2FTPIDalB%2BANADagBi35ECSiAbXUZcoRYG27YgRcAai%2BOAfFGBW5ICYRAGrPMBYWBto9OC1zUWKKiCAzGDrBMCMLglFKh%2Fk6EGRVcEPrglHcg6L9CCxIWCW%2BB7V6EB3qcs0jd22Ud97tWE2HF9AxGF1ZeFWriFXNiFXviFYBiGYjiGZFiGZniGaJiGariGbNiGbviGcBiHcjiHdIhFXQSGKSB5XKgG7rdbwvOFd%2FiFU9Bye9iHEPWHXvgC%2F%2FTWhfEHhnz4hY8GhoMGhjYghVsYCEoIUZiohRpgWl1oA1jmhUABhqwQg1nYiY6YcV04il%2FICh%2BYhUXAZHu4iFzIil0YAp7IhT8gi1uoBrSohQySiVhUigsyBZERPqj4hVQBhrbYhdgGiLnYi6rIhYdQdFwYCq9YfT%2BANV2YgmBYjV8IMmC4jWDojV4YjK1oikiROtagD6tnEMnohcv4hc14jepoZp%2BWit9ojVuIjV9Ijl9ojl4Ijl4ojv%2FIjVwokFyIjl5IjHkiDzk3MpbYGtGohfMoivyohc%2Fohfn4hS20j2Doj14IkF4YBmogAAIwkBlZfQY5kgi5hQq5hQzZhf8O%2BRfhBROYcxAdmYi8qIWKRor3uFs72Y3TuIWHcEVeuJFdSJJE%2BY1IyYXZBoYqVY5FqYWsgEs0GZQeoQQ1llX1UwJFEJZhOQXDIANmeZZomZZquZZsuZZb8AltGZdyOZcywEN0eZd4KQOPwAN52ZdtyQOt4JeCqZaBwAeDeZhmSQhbgJiHeQpFwJiCGQaXAJmCaQZmQJl%2BaUGYmZdKcAqbmZeS%2BZl4SRGieZetwJelKZewoJUdwZWSUW5FcAiyOZvdoA62eZu4mZu6uZu8uZvecAvu0JvCOZzD6Q7A4A3EmZzKiZtMYAzBuZzQ2ZvlwAvRWZ276Q7I4AzPaZ3cGQ%2F%2FYAAK8cCd4qkOvFAO48md2UAM23meyxkPgAAI4cme0Gmc2SCf0Tmd9gmd8UAKbRCf%2BUmc7uAM2vmfykmdBJqczSCMEXGT3VKVABAM6oAOEjqhFFqhFnqhGGqh3mALGdqhHvqh6AAM2QCiJEqiERoFxhChJbqiGVoOt8CiMIqhxeAMMVqjE%2BqdmuAONmqjt1AOO1qj2QAMPxqj7gmfQwqjInqkLOqiSrqi7qAJYBAPTVqixVAMU1qiPXqlH6oOCTouELlpk0YQCdAMKqqlHbqhZvqhSZqmHYqiZcqmFcqkcCqjNDqnFuoOYJCjdmqhWbqnFBqkfkqhRSqlgSqha1qo%2F3JaqE8KBjpaqOggoI4qoX0aqFyqoBExMu34jgUxpm%2Fqp2gaqYdaqG7qqIlaqDMaqXiqp446qYEKqI46qKA6oqT6oo66qI1aqJAaqay6p5W6IFsACbmGEJwaqZ%2FqqKEaqKOKqLTqqKdaq3l6q4G6q3vqqoUKq8Yqq8qKqlAKrX6aq6vqo4Xaq1k4rI5arIV6rH6arIFaqoHarIr6rLoKroVKrYFqreeKreu6rIFqq5HqrYUqrXMqrtVHroVqroGKrnuqrn7Krn7qrvsKr98aqfTqp%2FZ6sPi6sPrqp%2FzqqP4arfLqpwJrZgQbqAbrpwhrpwq7pwy7pw6rsRD7rx%2Frp%2F8Tu6cVa7IXq7IZu6cbi6t1GrHh2qXjSqbEyqGxGqnokLJ2urJ22rI6%2B7IeK7FC%2BqrvSaj3GqlKC6c7G6gd66cAC6chu1sj66lEe61Gi7RzerVwyrR2mqrcuqddC6cza6c1u6cnC6dom6ZZ2609C7OO%2BrUQFbZ7WrJ0e7MJm6KzarRqO6dsG69QG6lza6d1y6Z3a6Z5u6db67Yxa6d%2Bi0WAa6eCC7mEi7KGm62RmrhY67Rcm7l2Grdz%2BrhzGrlpOrlaWrl2erl2%2BrZpurmi07lz%2BrmvG7pzarZ2m7Msu7cuq6p866isC6euC6ewa6aye6W0O6e2O6e4a6a6myy8C6f%2Fvuu8wAunwiu5xLu0xtu0yPu0yhu11Tq1RXu4tbqt%2FVq%2BmNu3QDuwQluuY1u1kRq%2BsTu%2Bc2q6bLq4Pjuv6luv7Eu27quo8Mux8nu7quu19Suy91uw%2BWuxZTu6%2BYq4DXy655u6jSu1RorApKvAjBq%2FRnu9Wpq9W7K9bNq9bPq8Zsq%2F0Ou%2FabvBAYy685u%2BjnvA%2BjvC%2B7rAPHvCD8ymKvwdLJymLpymMKylMqyl0XulAIy3OOzAH7y%2BIdzDGfy%2BJczAQky%2FlnoaR2ymSWymS3ylTXylTzylUUy5U2y9Q8ymy8umzfvC39u%2F2rrFQcy44RoMCaCFYaylY6ylZTylZzyl%2F2ncpGs8u20MpyispXGcpnOsxHU8w3fctrVrw2zayFOqDnzsxxNMshVssxfcqUlLw2yayNK7yJn8xmn6yGYayWQ8yU5sypQLxFqLyWmqyU3KyV%2FcGH98pYF8pYPcpIXcpIespKg8pQKcvAS8w1dswQn8w3h8y138s738F788pcE8pcOspMWspMd8pMncpMuMvs0MwlQLzT6ssbast9VMqREMtp8stkbbzUf6zUcazkM6zkpazh6sw%2Bjcvuuss%2B1subhsprqspEV8HdncpNvcpPY8pPg8pPr8o%2Fx8pP6cw%2BdsxeksytHMztPsznoMz9csFw2tpA%2BtpBH9oxP9oxW9o%2F8XPaQZTcUAzdECncUkbMnUe9BamtBHutDCcdJHmtJHutI72tI7%2BtI2GtM%2FOtNuXMUG%2FMwePdBrW9CX%2FM4gG89%2FO8%2BBG8qDO8of3bA8rcyqnMusbKaurKWwLMiyjMa0PLtWvdNYzatazblc7bleDbpgTdXki6pljdBn7cgFTLE8rM44Lc06DafVy8iBvcnBUNJjIdRDStRDatQ2itQ2qtQ1ytQ76tSMDdWELdVfHdZVHdIGPdeaW9e7e9e9m9e%2Fu9eH3a5jTc5%2F3dONPaVpfaVrLcxtbchvLb1xrdiz3aQ%2BPaRAbRuS%2FaOU%2FaOWXaOYXaOaHaOcbaOevcqgTbOFPdX%2FsU3Qpn3VI53VkH0Vyb2jy72jzR2jzx2j0Q2j012j1W3W1y232T3afI21wc2mi23d1uzJpIzX9dzbhIzBGKvBft3BGt2qg43doq3XpK24952m%2BQ3f%2Bx20%2Fd3a%2Fw3bA166w43RtX2lxT2kuT2lu83NAA7Ov63MD26mEQ7YXszfQ3vh%2ByvgOEvgzmrgNL3RUd3R9L3dpZ3Y%2BL3hR%2FrhO8rJfUzhL37TyCrjpUzj72rjT13TOY7kM67FPg7hQD6kQm6jxw3GrM29ru29GD7lzHrlnd3hU5rlNhriTTriEF3i%2BXzi5JziWrritt3iRo6%2FMO6o6Q2j682i7R2j783iUB7a%2FzrO4PUdwHJ%2BpXTu4bet0J0MZAQQ6QTBKA8x3jZa3jZ63jC650sK54hM5tRt5sTd6Eqq5krK5irt5hTt6Rid6FO66GdO6sat2g8BY%2F4jDlYBMgJigWLa5S385XQc5kuu4QVe5YKO44Qu5cOe0yb83XR9zR%2FiSK4AT%2FjABtaQDqZo6TWK6TWq6SzK6Sva5yv65zAa6HU%2B6Ape6K%2Fd4Pbd3XLt7Kl9zXJAD40mEEAkWQdBAL6OxMAuycJ%2BtqwuzqDu3qKupGgOpAku3wu%2B7oeOt67epLA%2B6nbeEmUiDuJwTWnjHeE1GGHjNAQCoeUQ8iI%2F8iRf8iZ%2F8iSPDtnAoSjf8v8u7%2FLoYAsj%2BvI0X%2FMi35zqYPM67%2FI9uvM%2BX%2FLoUKXo8PNEH%2FLqkKc5X%2FREfwveoPQ%2Fr%2FIs7%2FQ7zw7vyQ5Sv%2FMxP%2FNXb%2FO%2FufU6rw5QmvRe%2F%2FJBb6VjX%2FM9f%2FYuv%2BW6IU9hAAnE4l%2FOMweiwgp2f%2Fe2wAu3sPd83%2Fd%2B%2F%2FeAH%2Fh%2FHwuxIPiGf%2FiIfwuEn%2FiMz%2Fh6bwSZoPeNP%2FmCzwuFT%2FmYD%2FiLn%2Fmcv%2Fe8kAWSIPmdn%2FmbP%2FqYX%2FqmP%2Fm8QAd0IPqp3%2Fio%2F%2FqJH%2Fuyf%2Fi8IAlZ4Pq1f%2Fi0v%2FuCHwu67%2FuAzwuVUOSQU0oZUwP6oPH1E%2BnOLzEQKrH9HstGi%2FPsnrb%2BVtq3SK%2Br3hDfc0r1gMAOyt67Af%2BjYA8GFY79kQoOBw%2BjvLwTDRBtGeSKikdXB6HtMcrtMertKwruJQoQ5W6hI1jQ4EGECRUmLOZs4UOIEd2B0eQu4kWMBW%2BVy9gRYjZgHkUmjAcIULyRKQsCy6ZSpUCXKd1pAmMxpkhnDm%2BK3Lizo7pmDgAMJVrUKAAH4tL9UMNPDQBc64qEkhfiKIAEzdT57OjNFteOLMFmjGJs61iIMNFGbLgW4sSKbh%2F2lKsQZF2FJU%2FiTSiW70G1fwvOrCnYYE7DBukaBir06mMARcThuwepAYAa1vTJC%2FM469nEXhOvbDkaXVnQggMnbjv%2BGq7NxIsN3x2tF%2BVov4lXCyYM2zBi07L%2FNoYM2YGNFEWPW%2FWs1bRo07kTox69W3DrxK%2BDcxxNO7Ht6KV1D3RN07dg4KOF8yVe3P17op%2Bffw1v%2BrTZ6uRHYzesXT33xLwzDDzcxDPMOr56My292AAUrD34ImwuNcGgK9A%2B6sazjz%2FeKDrvr%2FX4ElAwAhOTTjX9%2BjNvQZ3%2BGw1CCWOMz7nRLDTRQMMyPDBFwzj8y78GTRvxrxINO%2FEvBPFScDQGDQuxLhhljFG%2BGum70DQdUdywxf483E7IkGoz6bYbTUuyriUTa1KwJ%2BWKUsoIqQzNyjKxxE9D03xM0EsXuwvzuzH%2F68vPtDR%2F49JJB4cLCk4p5TTMRiNxFCxLl9RxJx5M4%2FmQoDPr0vOgS%2BM5K1QKMwISUTBNKxIjUlM6kq9O3SoUvUPZTJS9RRmdksY57XuVL0plEiaPKq64goxN1Ck1Vrc%2BLUgdO6qoohR3uumiWGFKvejUtTKFrc2EtF2oVYOGfNatVSPqpgxsxYXo17qYRWvWkdTJVFN3CVozIXJvEq7fsd7UtThHb1L2YIQRRscbYtzJN9yY4D1I4ZuCFckdQ0RAYGOOg1jlPHnRcpYgdWYwwIA%2F4nlGAgMQkOVhhbgdqxs3yCBjkbPANcjSbjJSxxCbJ0nNXHTcCSecbgP1uZsN%2Flr2BOa%2BJIWVxx9XVMnSWuKwmYw%2BglF2oX13ppmMM7CBOiLZfra5lLM9EnjgCblyp48cgrD77rtzICOcJGgIIluMlK0lYqkRcmeTHHK4YieLO3LnD44RkCDyE55JLeSxRkZHnRw2JkTlDRBQoJa2DZJZ7k02NkCEbrbSmWSagzCH1SNOLoNMdIZU1pAZAB8r3YfU6UZjBNgeyS%2Bo81X%2BLOu%2BXqh0fq2uFx03Jo%2Fcgi7CETfsZ6WxoOVUoFco7RxOTnmtt%2BE%2BqmCX4rmi5cgjNyCHcDzY2JNNEVInmCNmIHxbQ5xsBuJDSOMClwrriaBrmzgCx64AG3WwgxfuoGBq%2Fi7lMAo6zF6islQGSYYpCGIKNBS8hk4ueMFndQ4Bn3tG6EZHwNP5xB1ViNwiLPI6ddSiBQZogamcsDE34G5EwmugBHwHFuA9b3gbM97OPPisJwLDGyhpnahMV0EK9sxhOxNVFVNjL%2BF1g4KBuVQ4uhGOCnJReJYiYNGkNxIacsx6CDBAFfLHPZJhw34ICN9OyGc%2B3HElfeorCvtUEo8uiE4BCuCYAhjAyCCEo2kIwF9E1LGJ7%2FnPJRIbjCE2NsCK3UkmUNiYCGoxDzYGoWUt6FnRuoEIMTzBDZvQHkHCsYg%2FEEIYf4DCH7CxiT%2F48hmEgEIZNrG5ZwRzESTzRDCb%2FohLPdDCYZuwwxN6SYnNbU6FLHQh6UYSQ4O1MHJBcB2ALAVC0MxjEp%2Bk4BU1tUWCuOOHCAgiydxBjmWksWjC2JgFnmFFJCotcEssngUXkYQncAFpm%2FPEE56QPXQQgxZu0IEJgtAFWdhEHWdwaCkmkYQT5MANrSPZM8gQhBMEIQ7P0KgwTnqCExwhDtjgRTw3UYUZnKAFUEBELZFJ0Zi6wXLffGNH4pEHjt1gEbX4wwk4RgkIXvAa1wAVFjGlx42lQlP4mhgFuQpFDaqDF%2B2A58%2B60IWnQRGdlcoVIQnGq3DWQq6TsF4f5FoLYZgDEXowhOU26DAOAnQei%2Fgkpuxp%2F5OvHrZolloGOaK6FX1i7JNtNIgBLSlOes5jMKWYpTBItokWxG8GtXCYMBjQshmobhNJaBkZRAA%2FBNhRGAowgBGVpUoDkDOHdGQALcyRhPgh4Aja45znQCc6b16MT2iJRx82xkjJka4nypJFH6T1B09sTh2pSCQCTGCItG5lE8SapU%2FlCUSUqAMbk%2FBCE8qwiFw4LBh5YIDk%2BrAIswV0L0sjXhPj6QmOUQsd8ajCyZJAQT3sUY5u2ErJWqYC2nJMB0hzxyqcGjkTpMJhviAebFlQid0tgI6whUKDa6GC%2BKkguY4r6kAvPIRwiGoetbDAxrpgE3c8YxFkqEI0tyi8Rf4YYhPPsAOypLHHVKTCDV1YBElJFo5JxKELhhCGRmthCEPU4pZN%2BMIkfOqJRSzCd%2B4QBiKuZYhg5O8ig3QrVuBqMGXFIxjWmwQqlRWOOHihDFUWxlkJgY0%2BJEFvGf3ZEDbmgS64QXvhIAROZ8CFPEjjLOoIhyGgMIM9K6IJXRDa5roR6BlUgRC1lCwCQBkTy0JEHbmw3iZ808EGI5BjClYBn2tMOXTMs5S35qM7grAxQ6hsjx6QRjwIsbEdcKPAhw7dxmxY3BUe94XfXC5aUouAMlz7dhuhdBUmd7KNQSHGUICtAY7gsFoYOnIt0HDR5hnEHIaWjoc2xDz6ANusUv%2BWJAJdM0H9SzIdbOx2wrvwJOIhawRsIAgKDja0E34EeSPAhuFQoQeOAINPxjiOOciDa%2BmIhHhgQ2PY6wMp6TgJo11bBUe48Ax8aqoWb4uwTISNO%2FLQ2Qb%2FgXgbk0AXtFsLOopA3h4QhsYUcO2NtUDAOUR6wvuwFQKfLAgB59hwlVU%2BlN0mDwpGgAXi0EY2u9WQBquF9WwIu0l64uB0bAHWN7aBUsyDtRwzwAbMqELYtsCv3fi16jzwWgMMXBjyBncOLFfqU7sk1Q85XD%2BPqL%2B%2BV0AP3VhEjesYD2HcWgKE6EMe5M7zRYRDFnu0gz0gF1t7pI5jm%2Fg8AvRwDShYQAL%2BhjhaA2Mrqm1Ke8WOq7bcAIwABtSiDBs7QTd4UY7HtUwCiWOkAbpgD3LT%2FQjxkEbEeW1KS707Ht1AseQqYD27%2FwHffNQ3QpKoEOH1l0LGTjoa14mAFqARuKau8jPmH39oe0AW83iGCTZW%2BpkzJXtABxrYGJTru6%2Bzh1Q4gjNoBHdIBeILH3twgypwg1qIh5lTgWewh2e4NlfzCHq5iOYiPif7oC1yh2PjOV6rAsGZIzq6gm5QMAVoNvgzm26QNwagwTy4lDjqpzkiBIehupR5HI6xAF5DuXppqza7irGLiRwyO40iKLWDQI5pAaQLgnmoAhHjuR56H8mZgRloPjv%2FEJW5g7%2BmKwP%2BG7ocCJ06uhRPMrXyuw%2FKKjULeLydKbuNQQRiUId5SEEPwIZnuDU0xKD5mz57mScumIfMQ4ATQIfu2pg4QAeN2QBacIhuWAV0eIZN6LsqwD3jEqdpU664YK4r2JggcAdZMDtiQD6TKz17IAQLwLQcGj5GnAStKkXJibRJ2KMhOEQgUkARkAAVoAVbGD3JWYVkmpzNm4QS3InzCxd%2FoxB1EIZmKwV7iKMu4L9mWwSUcAdfsB5qUSEo0Cx3sL08uEZTrIVSkAVcPAN7sD1GTII%2F8IV22MNFTLoq6Ct7sJc4cgJZKIVaiCMyCCSJiDmJoEVyeh5q%2FKRU%2F3gGXEQAg8NDBFCBReACT4jBpEuFbiAE6zlHN9gYFdDIPmCk4iMwjiGDZ6gEFgg3URHC7SOeKhAGYWAtA9AkkQg7QmrCSpHIs%2FM04plCjjmDzemuHBAe54I%2FmVQHN5iBDViEebCH7kqCGbMeO7CUPtjCMrAHpGJEYZgHY5SAU3rDxFOJxXseifxAg0Ajh6HCDaCpzVnE0QlEYMOx%2BauneOACG%2FPEBUiFgPOAGjsC1TuCEnrALsgBXrs9aOMm5IKh3tsJ9SIeQrCHeOi7IDg%2BdzC5DTiCPEiFKrMIdWKnaiGeOEClz4yuedA%2BdMCGYPAFb6iERSCeRbAHYZgcfyLIm%2F94Rv2JRsMxuTJAB6eSAK2iwjo8C%2B7bmJRRoTEsGiHYmHPsu%2BBCgCCIB0yKHwnYARBTBzIIrg0gg24wyec0ACiwTcYzyLeYv1Mcl9MTAWHQFG7YgY1xgnjAQwlgPYfBKgSoN3t5go05N6qrJ3TwQHScyM0hhjNgSXUQQnv4PdahoGCogjw4piR0jCVkwjfziSd0tij8ybVLOEmLhzcUAWwYrMmCrBzrhlTog2tLAnughFIiLnSQt6ycvyt4hlqwv43pA3sQyzgsS%2FSbzRslE3eYhBbogk5Qh1U4NLdUB1Cs0VszBLpErwHDxS7QlI%2BMLfupAlI6gVacKjv4Nvjrvk7%2FTEzdY8xRBItSk4A8MISD4rlKQL6Z4xgGaAFFs5SZ6yElrbFpIzgDtAftU5ZJqIIWYBmOMbhv7Do7dEZ%2BsyTdBJX3m4H3K8oKY6Th9LTu%2BxwVclLlZE576DsPUAGYaoEWUIESc4da4IKd%2ByTtmoQhoEE6coMA3QBPPQEVUAETKAM1ixnyfIh4sAOQbMY4s5c42JgkuI1r0IPJwkN%2FajD7XAXIOsoJuzARmNUW2MYABSVi8AIDRdCtVIFaspd2itAJjRu0uFCJy9D72dA%2FVJZVUMb1nDmbRIdFQKl5E1Z7CFZGJLV3e4e%2BW6RFUh0uyNHJCiV9O9CNoQExOpjaWR3R%2F%2BO5Vagpd%2FAEdpVLBECEJ6UnlHCfvDTSydkARsIynpMcWbgGWqixBbBAdaDFMM29JSXTW00Jgn3OjWkCdigaQug%2B6RuwOkWmbmowdOg%2BSuBT9OqGBjqZ5bs1QqXNQ73NRFU1glqFecigNAqH0JIAjEOAPnAYgiIEVIoHT9hCDbtUi3CH5USAc8TFJKA0dEiFGkWaZxCGTsAGT4gDFSqeTFTHZ5iEMpC3GcBYBCixo5GrM7qYXF2IeDg92xqMMgiCPlhPez0wgijWY0VaZUUyyHrDZ4VZbAtQJ7CIa81W47SHAp3Ibn0nl1XCcJ2ROAwXnjRXSkJXs1k1pMVAVN0cWv9EAIujOhWt0hOopXjQT3pSB3mTgA0YXg%2Fwy6zUUYF1CRTsGGEIB2yo3U4kKCSwhWrpuwFaRLAclbq8WCm9DaQLvlqor4JFB8i13W6QTNtL2U%2FcWWorUwtFOJg9AbO5FGHgrByYI9bL2TvdGEpIr4VEgE0AWnrK0ZYRAT0AsWs7WkNN3YPAzYkhqAedBAmW4FIYMHt9O8Bxh%2Fk7gVLohlpQIRjQHrDNVLK1h5mzALXrhhmwABXoqxOYnEmwB3ugsY1hKtkzgQ20h6OcAXeYuQ3Yv2dQAQtogT9oWcMZXPSTSHgrmmewnzqq1xFFB24Qg43JAVKV3M2xzw%2BMhyqVne7%2Fi4NU8ARP2IRS4EzvHMiIwta%2BbcnPfT%2FWUZZnKANC6ISFchvTPV03Y%2BCJWV3Y0VAqTNcLrUPZhcMcqzEJ%2BIPz5VUEUNH32wCWqhb%2Fy9z5K4NweAZsqIVgeAYxQl5UEyWXNbmuawEFE4HDu2AWkFcDxDxDTi4NhlK%2BnVIL5hj%2FCYcLQ4A4iIdrqIQH2M9F8F3EVFn2FUUjBsHu8oAyOOZj7sEmg4IcEAFPyIcZIx5EMOGk%2B5priyRRwUUQjYd3C1AyaIdlCIY9ikhlVAZ1mB39Ek%2F0I6jnHCByFS6NQjgJ8ADrsQBXgzZMFVvmRIlrk4AgCF7Smj8LCAKQQlUaZkS7%2F2m2MQyHa1O47tuA3dsWJEY%2FeIyDnhEGdZO40ty8S1mFDBC4qYQ%2Fc5hcYeVDbIBRe5i%2FcbQHvhuCPcvCjUHjzl3jl%2F2DeVhXYJuHeRC%2FhGvGwLnj09XJq%2BFjnzzXP35dZF3PN2SlZygF2gyGfbS9Yf3fI3gG%2FuGYrKzSGTjfZ2gBEQiCVJgHTlY8T54eUI4cERCwzcFL1eG5r5vGCGPlhL2dASswA7iC9JIF1cHrGYIf0sqJ2lGduqMj%2F3GwrFuZlnmZ9h1m%2FrIxycwU4DXF%2F3ywNC0Ddh1kf04CdEhBU0sCpLMDCurm7jJgPYg4g7tHHdCBiI4JBxYbVpUfUFIHeP%2FsyaJBBK5DABEwuM0xGQMAwqLBrTHcLsIr4GfDhr4DN0YEsR7eI%2BROAuIKBsLrJyQEwYkOl2CIZNxmyqq7MxVSgCA4gj0i5StGgKLMIwUTqe5jgLB%2BUyjoA%2FdMuGeAaQSQaTUOz5pGib6zgCM4AuuxI3DF40KqUMck6vQzaiRtQUOVTo4xgRkIhluT07k9sHgoA%2FjZABdEw2BoNlGVN0f20IDt5DjcikUYgllVAUyrsmdRB0pIAhSY1SeoJHWQBiytgqHanJKDgrNDQSiAAkwVni7Y8WQ5nB3vTXRoiG6oAmklg1r4cRpXyh3Hn27gAiiISZY10wDaGLQkiHg4A7%2F%2FroUOm9cyUJZ7rDsxql3YqoJ4okkMp0Hla1VRKUCO6SOuaO20XARCwDI8xzJCmASCmAdafGODkKgbhwI3QHGCmARCIASv2ZxNSHRvMsodLyZDFx5DwNId%2F7OaYuI8iPQqWKZJS6ZIt0DGBpXq5pdaqOXIMbwGG7zgsgCU262anDTvkRwPwLeqXGu64zmUiwdycz6UIIYuOBn7xrqUmcaIk%2BUat2MJBfA8Rh%2Bgo6OeFJ60WzsDsABJg3UEqDKRU50N6IbQPRkeCrrWCQeTOxkd6LvbcQdE6ADB7jobwpiTaYEdLWuVcJijobBScRhbOBp4iidNmRgRepaAH4yB%2FyuC%2F2iIOwsHc8Cgfy%2Bagb%2BgNgKnbwq0JPC5iRGGJxCCJHBKYaiCExABkD%2BCTtucRfBqEbC6S3oCEwD5IMCZBsuDJNh4CvKEGQD5GciDj0oCBtuuZhaB3tHjAVtaiYBaorcI4bm2GzsIKQqVxCoafXL6fj%2BntVIrbwkMqQehrvKWiC91fnmGM%2FDqERABjitB4bGDmhcBFJAC0kImJ0iCMIedKqj4VUgCmzeESUOHPOj5k%2F9AdfiDmPdtXjCEmH86pYz5ZNknLlABkB%2FSZFd2Zkdd9CGyOIiDFTMHPBADO8iWZ5j8PkAa9bKDOMiD1tmuJ7CbLrCcPLCbI%2FiDZJr8Z0AHMf8arzgwBHSII98m1cQ1%2FbXPocmn%2FeQVJOdRiHLgheC%2FDp0ofjRpTCd8oq7iBXZosGrpBum3FNMxo1aKpzBqnVfTp63oBmagXlgjGdg%2FI6AP%2Bv2SoZOyWbUmDTOhmgTh%2BnAxGunXImm0COkvhmvwjaePpwoKIzQCCHQCBbpD1%2B2guoICE7pTJ%2FAWQ4foIg5MGO5guIYDN3LsWLGZAwAiR5IsafIkSgAJmkn06PKlx3gyWwokRyyeQ3UyFQqUGa9iw4QOg7pr6G7msxY5jniyZ69bCwQINikUqk5oxZ0wt26MYowm17Bcy90Sa1ZsMWdn1750B0YTT7ZyH5bbePWqx7v%2BHfWGVZcN2Eu8c2HGAwTo5%2BCO7oIYkIqgClh0wLIlnku2slx3msDETcw3MDpnatcKzlva5a26fT%2FPVQcyJezYJ1dGxszVmy3bLtV189B4gxs7M6RuEFZbt0uvx5F3vMwc7ejnW93Clc41tfWtf7MTNoxYtzs3M2bkyBMu8mTuL52rV7y5c3uBouN7xE7%2FY0jZ%2BmPTvr8Rt3ru9OGYAY1JhQd88Snnn0DsMZgWgwS9lWB79jG4XYSFHfZcSxp1lF6EDt6nGWcRhhYdgxbe51p%2B%2B7loUn8RAqieOps8cQKOJxyhhzcmorMggyLeB2GE1FGonor3Ycight%2F5B2KQZRX%2B%2BZ6J85mYZHwsvrglSTEyOGOA7hx0kDvEUGYikP4JSR%2BRDBp5pWoXApahdyZCqaaUblIZoZURYtmellxy6aV%2FYAKq153%2BpXnfmvG16d%2Bbfsbp35L%2BNWnnmVGaSOKR3PWZ4qT0BSroi4TeZ%2BiTmTK4KH2NtvfoiBPCaWKl910aYaKt5gnpngx%2B6t%2BfNL5GaqksmYjqfbnSx2p8rqoHK32RgkrrnEzWiauqjO46Yq%2F%2B%2FXpfsNyNSqx%2BptKHLH3KKvhViNsOiWKs1UlKrYm3Mqiues5mx2mV8IIbapbDkluusTLmhqmPzLanb3bQxictsADHVyt99qZqIsPS8cunv%2FT%2BhZvduCgVEUoIIhEQRih8aGAyyiqjZG586MaHr3oK5%2Bsumx23B%2FG%2F9NK5IbYY47xzt%2Fd967HEwraIkg3p4JOCSHXwg8s9rhAAAB9T48PK1TAW%2FOXBQaPJrqYmOryzrPNGSHF8Fiebra6bFk3f0fF9bF3IJalBDz3yQO3AOqwAoAY%2FPwAuuByFz%2FZ1oWHfC%2FeyZOPp49kBpj3t2tVaeu3jQstdIsc%2B3i1d3iSFIschTwPwwj6BAABEP2GksA8fABTBTxgnBdBMp9l5o%2FmTPY7du3QZS1e35aAQL93o0rHdntvpQr7w0AGCArqvOle4qcAnhcSH6j%2FwIwcANoxvPvn%2B4pP%2Fwhbttx8GLaLJPz%2F99dt%2F%2F%2F3FxII%2F%2F%2F3770ws0vK%2FARKQCb8gIAL9t78EMtB%2BtrBFAyMov2xkQRLZkKAEA4jBCOpvgw3MBh3ocEEPJlCDJERgB09IwGxIIgsjVOH%2FHghDAi5whv6jRQJkAz6oqQ8APeAHHNAHgB7%2BQA5GNCIfioGMYjCxiU58IhSjKEUoAiOAU7wiFrMYC2BksYtedKIRMvHFMWqRjGaU4i1uccY1NtEZFVwGG9loxTie0RZzpOMYnRFCZ%2BDRjLGwRR%2F9GMgxLqOFfBykF9OIyC%2FecZFTRAYOdai6F%2BjDdUXoxxZSUEnbYRIlvDsW8JIlvAj%2BeWV5z6meepDHHbcob1aZqxfngue5Il3PlMxRJXdQua%2FuoWSHAHCAOIbhgEDw4wUECOYw9%2FGCxS2HOzJrD824YzPuGO85lVvl5SLmM2sBrXPt%2BpwtkYPL7DSPOaUrSSD6ATUAhAEf69gHJEQSBn28M57MPJbjLja2Zlqnmsy55r6y2bNX%2FsxJb5ulnrDnLe0hKWni4uVJXjCFFv2gDlPo2hDncNGXMe5U%2BTzoPr9pNoYGVF6YkxMsu6nPsiU0nLoZp3XKiZxzDsxr%2FLTOM9UTzexMMzv%2BRA5ArcMzpG1zcyoFKUt5pVCjkZScDgUZRGt6T4P5aKfW6Wk%2Fddmwpmr%2FTKBEJSg3DSo9hCrVpbaBKfOeireoSrUkMGtPTrljVelgtXhatU5Qu2pSbYLVqGKd2fRuBs5%2BiU6tpGNrW0fyVvXENTtzfU5dn%2FNT3eT1OUO1m2GdF8q2xRKpk5vSUunG1bRGiKaJVUlHz%2FXRsYY0qf6pLHMuW6HMPud56okeYMnKrdDGB62npO1MEXvaxTpztblt7WcjBFvkyLahRbVVZ1nr2mjNrbej%2FW1phZtY4vrOuNAMbM0kpy3KXZe5XsXscysW3eNO92HVbY9vmSNT3Zh2u6mNmXd1Cl5pijduI93UeWebXs4eVbrJLSthXemf%2BraVuzjNr1z3y9P%2BNuuu%2FtJZLngC7Ny%2BQrfA7D3wbs2KmfgiZ762YbBUHSydxlrnscyJLHMmaxsM26a5uQQucmzLHdx%2BV7fU5S18y1tiHJ9Yuw2%2BL1wh7FgJX5XC1CMvgPc6UJQWFGEibWmC1bZgI6cYyYxVcouZTFcnC%2Fa%2FRdLwjQcMvfX2%2BMoIDp2CV8Tlmqr4OSyWjouRA2PkyBgzNMaMjZ2q5tuyWb8%2Bdi%2BQUylk3ZgYMyims5eLW1UxQ5bM1LSwNRcNaDQLmsPq9XCb20u0RHtK05hpdGUePbA6M%2BfOz8mzbvasmz5X5s%2BVCXRMiWwbHWeHx4Z2c4izfFI5L%2B20bo10dyedMEv7FNP%2F%2FjR1YnBNWk8T%2BK%2BhBvGPRVwZEjNa16me86qR%2FWBlI3e8ZnYTp3M96B0XOsKHHrW2E8Nt26DaM%2BAmF6uR42rmwNo2srYNrRNj62ine9pUDquVRR2g9yq6sNkttrEVK%2B4VgxnPlH4xs7MK5TNL%2BasH92vCsY3oeA9m3qf2tr0hHnHU3pTi5CZlxu26cXR3HL3UXjOof63wVTK81A5nkKrxPXE7V%2FzVF9dzzCXrbKBCezDSxu7NCZ1zdwM728Lm65ZVHvF862bfyOk3Zv6NmYAPZuBOLzjUP95ha%2Btc5PC%2B%2BpSJvXKb4vPlq0p6jJdO2abP5enyRXlieG0dX1N95%2Fvq%2Fnl2TF6Zeg8m6MTium28rhuwV0bslSH7XMzed7T%2Ffd29bveS371wUiee73NhfGvu%2Ffiht7ro%2FD56rPHOZ73P2PRs8fuQPT940IdZ9DwnvXUUnxjUy8XxpII8ZiRvG8onxvKJwbxcNJ8Zzuc%2B6uyeeuirPnK4e1zuc%2B8S6%2FXt%2Bq%2FD3t%2BynzXt%2FWz7teC%2B27qXDuGzb3ihIj74618L8dlifEEhvzLKxwzzDYbzDQb0sYX03R71uZ%2F1fR729Z72vR2caZn3fZ9I9F9i%2FF9lBOBcDKBlpF%2Bt3Z9ZtB%2B9Ad5gCB788Z7F%2Bd7hAd%2FxgKBZ5B9pqN7xhV%2FXjd%2FklV%2FYnR%2FA%2F3mgwLlgWIjgyb3fc8SfA86fxtRfC%2F5c1lGgxLUc0dmdoujg2PFg2fkgVwDh4pHgXJjgEKKg0akg%2FbHgcwjfYMDgWezfoNBg5Nng8uFg5Unh5VFh5lnhdCTgCAohcxBhCj7g6JHcXJDh6Wmh%2Fskg%2F6lh8rEhALph88Hh88lh9NEhTGDh8AkiW3BhHnrh64HhEYrhLUEiTJihWaDhlljgYGBgYmigXHCgXBTgWhwg%2B9lhEC7g7jXgHhqhZSHhGHriS4CiWIhisThh60HhfagiW7DiWbjiWUhiGVLiWlgicujhF%2FLh7%2FmhXACiXPBiXxgZAYQARhGANzZA12yj1rFc3f%2BFXBQCI%2FrNHKTAYhbi4TNiIvlp4i1yojjpImowYygaGR%2F4jUjYgDWIgziswxQAQArgAj2IgxJwFDrWoDBGzkJOoTrGCzWyBTaGhTPqBjRmojSu4ESuhTVSJD72onA5AB%2FoAz2s0xbwQyhAQij8AACEgjyEwTCsw8rQHVWZ4zAyIgE6ogHao2Kw4yS6I0bC4w3KY2zhYicq4QSeBExaw0mKxCGsQwg0gEiEwD3E0xT0Q0KaBAGwxF18JViGpViOJVl6AzGQJVqmpVqqAzF4w1q%2BJVyqg3LEJV2OZTnwQl3mZViKhl72pU6AASjghF%2FmJS%2BUw2DmZTac5WHSZZMsJl3%2FmoljxuVdRiZcxsP1CCZlqiVfZuZaFiZnqqVwqcEL%2BBIA4AI%2BpMM68AEBmE8dDBE%2FqAEAEIAGzOZshkAtUANu5qZu7iZv9qZv9uYvZMJvDidxFic1ZMIvGKdyLic1MIEuMCd0%2FiYzCGd0Vudu%2FkJyWqd2doMVOIJ2fmcmMMN3Wucv2MJ4Vmc33MEddMN5RqctZGd7Lud0xid0OoIVsCd9Kid25udyhid%2FGmctjONI%2BFIDsAIrTAEkYJIQic8cAMAUGCiEhoIVMAGFVqiFXiiGZqiGaqgRbKiHfiiIMkGHhiiJligT%2BICJpuiHjqiKtqiFGgGLumiLRoEP%2BEAUyKiM%2F8Yojqqoju4oidKojfoojwppi%2FYokXookN7okZIojC5piRqpk2poAUjSOo2EBshDKCwoP7CB9wSDj2QDIlaGLSjiYDCBMZgIOPBkKxaDiajDWzzkqYEDrYRp4xkGnIopmcpFmrbpZtypwLHplchphOij6jjAFtjAL8EDyeDDIThoPwykTX7JZn2YqPyITloGL%2FjIR55FPABmR55FYQqlbWRkPIZIpoIW2%2FmciYQq0BlZIOgD1GgAPIhDERDTFpSmQOKCPJRMpDZOQ66Ln3ZgREYLUC6jqGIGqRblRobhp5rFpp5FRW4Fg8nBOqxTEVgDPsiDaq7OMLgTpPaqR%2F1qe%2F8Q41oYo1kgYwgWayAea2UkaxsaJXMhZT0qpaho49I4QArUpMnka0qQ4lyY4mCgIluQ61mYK3REWbOKRbRqx6RKXarKn9v1IffZ3BIyITnepNjAXLCuopoeo09yhDKuqyyeIC1Goy0eJT2%2B1MdyxMIGBiGm4cbKBcDOhcCuBcGahcGGBbqKRcheY0iKxUWOKlG%2B67JuYsKGxbO%2B4M9yhS%2B6iL%2FKLJ0GbJ6m4qVy7LA%2BjLr6LLsmhrsmIryCh7yqLL0GjIDaV8yyxczKRc2exc2KRc5yxc7%2BYNaC5NYORtdm4NSWa8fybNie1cpuRMvuxsuOoiH6X9TSbN7abNUW497%2FHizHHe11LC1XBC2yDq3XFu08Qu5WJK3CSi5MNO1%2BPC3aHq7aJi7bLq7eXi3a1JyAjWwXlqxGnmy8pqzfji2gDO4vlmPG3t3ZFmzj6uzfSgjrbpjafdrDFmHETuPEtm7FMqHorkXassXamkXbhsXbbkXcXuHc4p%2FnwgTltqvl4u3X1ljfjljw0sXDWezFgo24hlfv4uzvwu359izduu4lwm6pyi7Y0q752q7SqO%2FznkX0rsX0ikX1jkX8Yu%2F8bi%2B0du9LfC%2FXhu8pmq7bJnBblO%2B2nS86BG5e4K7TFu4Fkq70UrABo67vqq7lDG%2Ba2e874q%2By6i%2F58m8G%2B%2B9Dle2R%2F72vWQzwWRRwWBzwVlwvTGRvHapwpxVvteFkhQ1WBA5bvdpwl%2BGwWOiwWfAwV%2FgwTADxSwhxJDKw0tbtXNztBI8voGGwvGkwB%2B%2BFB4cuCJeiCBMwCfewCcMvCmMTEasbCw%2BlCxMtDI%2BxDJcxDYNMMOSQxQZwDrfxDr9xFcdxBc9xSWnuJzqwS0Cw3Uqw1IrxrZFxyZkxJO9FMDgxpEFxWEixWFDxVljxelhwFi9wHRscpTTs9R1vLSYvRy4v8S7l9xFyFBvyFCNyKSuy9aKyS2hxW3Bx53qxXIBxJWMuyjryS3BuWJwxR4AuwYDybejyKPMyTJiyS2BxMKsyM9%2BjMf%2BzBTIjriVHGyb%2FoSan7yCv8b9ac1iQcjb7MgIzslAR8zNvckdI8hdTMjkr8%2Bx%2Bs0c4c%2BSqs%2FOyM9S2L39R8xUDs0cIs0vQL%2FeG81qMc%2BmWs9OdczWmc6t6crgpNEyI8jtj80tos0dwc0N7c5wpiSszICybrCwzKy2vcPNSIC6HsjtzBTyPtDz%2FMEN3hEN7BEQ3sERzKj9XtD%2FvL0B3hEBvBTTbRRpPs%2B56k8Ye9d4hbErThz4fc1GPsEX3HUazxVI%2Fcml1MgAb9Ogi9IR59Db3NEf89E%2Buctq1ckq1dOy%2BtNHGdBHb8tzVdDWjdZOpdUmz9Ua4Ncja80DfsdDm8eX%2F7vEl93Em%2F%2FFacbTQAbZHgDROi3Ry7PRC07NeJTXL4jNHZLU4b7Ubd3VmfLVHavRM37JZQ%2B9Nb0VOZzZlc4RJ%2BzRKS6BKzzUSPxloefZGhPUugjZ%2BlPVsc4RlwzZmewRJN4dgDwRhb0RQdzFiV65iiy9V87FvDwRwg%2FNGE3dUrxTvXrf6WTVuY%2FVKzyJd569dZy5e2%2FFq73VrC%2FBrw0RsK7dmnzJnW5ZhM7VwD4RoTzRpH7Jp3x5qn8V210d%2FT0QgezfGSnV4M%2FYHkjcTm7du7665YdkSY51erxxfb8Vx03dyd8Ry03ZzC8RzD0R0F%2FN0g291h7F4m7NjozNkH5Zk%2F69ecf%2FHfL9EfYv4fa91fsfWfov1ikdwiyczhF90jGf0jHPIgq%2FzjQ%2FEh%2Bt4iHPEiG9Ebbf1bU%2F4xJw3yab3C6%2F3Mrc3KzcxbGgAH7jCJbgkADSAHLjCIfAqm7s5r4Kravn1mD05Olz5YGe5hud2lVm4f2F49iy5OSEWAZhmKIgDPSBq1rCCPOACVRKTo%2BMCRoEfnqNDlLvEjlN5jwf2j5sXXHfekE9ykffzkXt1koO1am%2B4SKRAarqmHBzO4BQO4ITCrKv5sV16pnvEpndFpzP3p2dYqFefEeOcl%2BsxmP%2BzmMc1maeEA1yNEmDS7NTOD8TOtNsO7pxEV2a3QPxOVf%2BN0t1xu55r9wK3UnlveYU7%2BIVDSi0tu6hDipGlAEBqgBChj5aSjxJcgr7vuy3wwgP9O8AHvMAPPMEP%2FC38UcEnvMIvfCzcwsI%2FPMQDfBgBQ8RXvMIjvMVnvMDHAsZrvMcTQwURg8ePvB2R%2FMhzvMlrPDGEkMinvMU3vMtnfMfH%2FMITQwu1PM0%2FPMrnPMTPPM8TPDBUgiCnRAo4pUuKT2v%2BEBvcOwBowAs8%2FdPjwDF4A9VXvdVfPdZnvdZnvTPcwtZ%2FPdiHvTfcgjOIvdmfvTc4J9qv%2FdZnQyywPdxjPRPFPd17wzmAgSTUPd3HQjboPdw7gy34Pdufwx7swTkI%2Ftr%2BQxDio73bLz7aSwIYHL7ji%2F3cT77Y873lh%2F0uDP1JhIA1rIOaa5IlSfsmRfutcmV85zCXx%2FI5vrgfn5m5a3l7%2FDdRl7pRn%2Fppp3pqE3pwjSMBsAI%2FBEIPFEEJANMwaMCrGlMwacAh6MMy0Tl%2B2Xml4fm4mzifx52fIxygJ3Fvuzuxszq264M%2B8MM%2FuM4UZOs%2BNCoAbAH6qz%2F0J5n0Yxz1lzg6nLjwcvsGJzg60L5ZUDRXAwQ6gQMJFjR4EGHBcrcSNnT40J0mMO4eVrQ40Jmzixsf3irHEaRBdc0cADB58mQIJUVYKklh0oYaJQROxpyJEmWCZupC9hzozZZPocD%2Bsgn1GcUYT6McFy4NWUyj043uwGiiKPWiR6wXswHbajEeIEDxvlYkWvZhU7QNI05c2zDj24Za5YokiRNvXr17TepUWrcgUMAHzw4uiPSvYbWGB0JlPJCq1ccC6T7uOhld2LGYCz9ezLjt1cdxMVc2PLIkX9WrT%2FrFLJhzUcyIJ39m7HhyZNGMTRu%2BPFkz2cmdGdseHBoz6cm9AaNm%2FZyv68mwh8ueTNszQ8y4H%2Bsu%2FXHy78fBY2M2Dhj5ZOWPmdd1Dh0%2BTumPqT8mzhh7ce2TuYOuutuw9uoSjzHyqjNvP9AkAnCw9XgDj7H34ptwPsbqY%2Bw%2Bw%2FJTLMHbouruv%2B%2F%2FMCPQMAPts04%2FzNIb7UP2IDztrgkp3Om1oMqbLanaOjSsP8O8W%2B5F37wCTizhTkRQxQWTa%2FHBySSUEboKDbvQsAwH23Cw8wDr8bgQgRxxyPGKvDG7JN1Sj8kAg2wuRiijpHE6Gw%2FEMbGN1HEHT3fqbEhLoe7UU6A%2F%2F%2BISJEEt%2BtFFMDEzca0%2F8eTJyrrOM7SsFRlzUE0n23STNSkHo3KwSOvC8tBuPNkEVWEATWtHo9TBBtVS0FHnGVRrUYpQO4NJdc%2BDEH1LnWCFFVAuEgdj9Ks7a0XVE2ncIQZFDkVaNhW0LG1UWJ4w7SnbiohtdFNOVfP0InfiOTeebh2CTZ1z%2F3stS1S5SHUoWEJUQABfBDaoQph3CeqzJ3c2wfeEcOKJwwAEkrgq13KPwDcPI9nyslF3nikF41KE4WVNwIwFDFms1AnHDRHyRUCELmzxBsmC3PkD3xz89elatLpJBeNu0Nk2JFlynpmyjuV6Utzo4ASpG0P%2BWPqPVGqpJZhgGxJMnVSWpgRop%2BKll0GL5m1InS5OPlmEVLr%2Bt1WhBCbYYDcMMGBhgRq2SJ0gIJY4oV%2BT7aYMk%2FPdAIljsv7q47pCdkqdboYYO18UBNfRIHcIwVeHwTmq%2Bat48sg3Dnd45iicFvCd5GyCvkWL6KL1IvehqhlXAAELqujGX8HicduAI%2F5Kx2rrvEnuHKSvEXLHjXxTtiOHfGcI5y9BlVpI2EBXnfVRke6UWqC1ESg4HkNMMKELhp3JE%2FtApb5%2BoGD1rPvuivT%2B6mHGEVDhGculKlyuw5dSJ4l8W3DjDKLDVxUS4zyCRI965Ttg9Q5SDl5MDx2So5z9yqWkoenAf%2Bb43EZCN7rdBU1TqVGd0SiYvlTID18GEALzEGI73OkOML07iDo2MQMDXAFvFRGeSISxAXwF4RnuEhsCDEC6WalDGJNYRC3qp46FYEMYwpiVLyZxqzthYxKbwMZu3BGOVSyxG1fRXsES5wtfPGMg1%2FhFLRaxiWeEQzTPEEb9qCjFCIYjFf6TCGL8IuY%2Bin3FHYvI1w7skAe74St8C1zfAc8HqOihL32P%2Bstl1KfAtehPbQNDpMHi0Y1DIsAXPOEJGycRjC0OBIpSpNUkSkE7Rj6DEpMQBhxdho1KLEKKYpwcAipXKQuuxR2pgF2%2BJnGNqCAwfeVTHwQ7iAAjRhKCHkEgJFEXrhHihXX0OiG%2BoOAGN3TBbwgwxFXudC48CcYdhghCENwgSkeaq3nxgCD6KOUyYpADgtR75%2FTscYWEdcEeJdxhQeJhB3xZIBjk7MYM2CmLO9ViBxbAlwQ68IVulIMYVbCABf5wBAkgQAJOeIYdTIAvEYwze4uYwUcl0AJCUGSMBv6zw0ahQBF1xAEEH41dCxahp260wAItiINELUCJeCyiBR%2Fd1wzaB5E%2FbuV2MUMXOoLwNhVABh3CQNUbRdONZ9QPG55Ao1fHuolaZA8dy%2BKqQLJBDHdI41SrCGMJOYJJmkEBXy1gYQRX0QIkxKF%2B7pjESicqgj5krwsb%2FYMTJDo%2FrGVPGFDwwEFzMAml8MQOJ4CdBXLQ0wjuspeA%2FCVa4sGFsT3BmOggq84IIo2vmuOOWhVrBAXSzGfeSRpbxd4twvHVMIZDFp6YazVFeM28ZBNs20SAJ%2BwRj3nUwocIqAJMTZWHOExCFt4gxqyekYpU5GJkODMbNgyRh2pRpBR2wP%2FlVbqBsVvVghB%2FsGIkn9GIOBhCFrMK1MVKUb9aLG2%2BteifwpxGwYESxB1OmOABaZcuJJ6AcQbogjqIMWAinuxeCZvoKu5kCPnZAU%2Ba5J7bFIYnDzNOAqVwRzfCSUQPdIMSKERAH50qGdIaFGWbyMw8StGEL9ghUJPIQXQ30AJDiDIJHRBBHCC8gU2UoQMeyANTJWCHeVBiyPgq8h944o1KPGGyIDVBGVx5yTGVRYBdwJs57hksTzR2bC%2BNRxUOqmEt90sdtSgp44CnjiugmHQS5CVdITLaZD3DZAqowmYrcQ139MECG9ABZAzRgQ3MgHaEACq%2BPFBZntgWpqtIgt%2F%2BNjAEs6GDF5TYQAe6UMOPioDMhKaXNY3bmqPZSbmbuEo8MIiAmgbyXvlagBAq0a7iKSwe2PChCv6wZ1%2Bn4pMbWESwagG7HMRBpxJIQv1mZQ47hBkBC5hBJ8iiOXyVwQnZLsPIIHyyuF3kwJCJXxnw9hd3IMwAPJ3EE35IYQUjct%2FG%2B0MedPqHeTwjulWYxBAlIIx4iLht%2BEoCWWzo60kYot1x6GS7ERCEIVzBHUxFmSEWsYN80dgh75NKIE82AzdsIhzEaAdMO6HTsZGOfWOrxZ8RMExnpsLmJ9M1M1CQL5sfAbZm3sxWEhdszxbkLO5IQsKOsIhF9Brkc84XFBb%2Bni9DkKXXHjgDIUQugVQ8PF9emAReEbC8eIBW1mwx9FYELQJhtFsMjvaFTnU9q0MC9MRjk4AnuihAnKeixRMdZ6o5rQA7G6AMHwxJ6mrdl1tfxHX4Yq5zZeG3KjwXzvkyQE2jimxsTJYBKB7bBp7hjlqkPuhETIKwoGDnfFmgE%2BbaHEgZZ9kW507yBIn3rLrRbjfkMH3CWIQdVtHcSZgUG8T4t%2B7soUkELKK58auCPfrww3nYwx4D%2FkP12Vb6uKVCD2JQhz2kji%2BNFx9fuhtZLXSK%2FXkII8won5iN18J2DDdhFWzqCBJmBgzBXgZITz5JB3RAd%2BiMYJIA0waQlwz%2BUIA%2BT5NaQGP6APYcSumQz0%2Foz4MMojBqwRDiABuaa%2FdkRus6rl3UQeQIwR5KYaIoYR7iIRxEDgrswQGhYBmaK3kQoBPsAe586UxQ5wcBigzwBQQ0gn8GKF1AUAIcquKGQGnajd5sq5OCzQPKwA60UBiIIcYOKg80La%2FCoSwor%2FKQKyEyDwGOoAu4oAqi6%2FrsAccwsBaGaMQkLtnCTASqaHHwZQdkwRB0ahKeS6c2wBBWwf9KYR4ECV%2BEwBMmod30ytwGSBYWIbrIwB0Q4Qd14A8sayOGz%2B%2FwBeRcZlXcYR58gRCqgLD05RikD1%2BOTx2C4aMsoF%2FiIQmlyx5Mq%2B3%2FuuAKuuAHn4D8tifiSiwznKES7AAKVGCY3q%2FdPOuoCMaV3OGQ9C9vnorpuiGxGMcCjEgW%2FqALngH8cvEJEhBflidxVvAEgggb0OG%2FukAY7GEeyiD%2B5uH5UKYPoiaL7KgDD81vXsqeZIPz8mAZh0kFHZAMyEIdeg0Gj01mBCIeYGZ%2BwqHXdKAJuKALBCgPhHDBRKsIkwUEEaAUYnAB8KUR8OQeReAZ5uEM%2Bg0dSiEPuiAc5NEBr9Dw7OHEBq8GhcFvygAM8wX77MERPQAb4g4h0LDW1PAolSvCnGBWwoGNcmEewkEi89D0wswNwE8ibZEsgq0QQ3IR5kFPRK4Mwu%2BH%2F%2B4pHlahsSbBHnavBSJoHthOzexhiAAq%2BIQvR8Di3x6SIMawibABCj4qYQ7xFf9NFkHQFttliLZviIjobRImd4bRKhcmmETnbXgPAZxR82DKEWfgsqrRA10GG0UGFYPhD5bxZPQqguJBGAyBFXWqpnLODhRyBXFIv1CRBKsgqepxFVJvolqg1fSrH9GMFI0kcdxAD5iB2h7mMhvrIBFJIX8QBhdTOARLy2oh0RxTwySMIweNCO8SJOKBHrdHGKRBGIJt9kZGgI4MBvAFGl3vD66gFW1ydHQw%2FnZtiITgJxHAA5pom0SgzESG1tLw8uiGKfNFAWCNhdzMDbKs%2FI5t4v9OD190rRJPgHZsyxBjh9vEE1%2BcIB5ecBmKghpjsS1%2FiCLiYYhUkOfULHjysiIK6qASKnt8IfUsABHoMmE2oNU2AXY2oDBj8Qlr8RYXcxfP0Q3KoAy8yQ0WAe2I0fzi4Rn2bAbyYBWOTTMRoO9Ybnum8Q%2BtcXhG0ynCARtKwRMMZsU2QQjyxaiewaMuzDdj85D%2BQDhWkN4CpRbiJ2F8U3e8QQxir%2BMCNHPOjOnYTq%2BUIh7u0QQCsKrmxw2sJmbaxQFZVB2k0x4c0lC7b3ueIdh2QAyQVEkLcQg9EjztBP5AagNONdtu5WA6tBOkkdpygAEuU6fo05nsge2ODyKP7QT%2FGA8BVFMdZBBlABVxBjQpC7Qi2NANlGgRUsFZRMmTHBNlHlQPJRQBUqFddi8IggVDEXNDjw0KXBBfFCFEM8MwS5QFI%2BjEPDMeVjQ0E0IU80ynciCIbDB%2Blgsd2o0t7SEMfRQWEeAwhVQxB8gexvMIwA8n%2F0CsYsr85kGTiBL8%2Fm02S7Xv1GEVdIoGk63dvNRXwNRVnkGAmHRWoLSx%2FsAd0rRXyWAThghO8aUP5hQhhcMcek0FumASCNYdxmEZhAF55HDGRnUj7CpgHNHXOMljtQwbEDMe7SEOHnUFJZVSNckCGNEGfzAH%2F80LenAelqYUDCZU6W7unEJLZYzekMiH%2F0QgfhIycdqz7dzAE46NVtmS7aYLIsczCPZTBczwV01KWPeHWI1LKWdIuTxBLBcpe6qAAOXrHidzD%2FHFWisxW9VzdDK04XgCFzv0Q%2FGFEMYVHUTODsw1W9H1HNuFXVuUgojHf66gDEQOAZ4gcfyGDG5GgIiyX%2F81doZ0gDLUX4NhESTgbcYP4hYWaicBG%2F6gsY5PYkXjB09gWT9JYyOHY42imTBNnq6MEJ%2BBpWoB%2FMZzZRGgZSHyZWeFFmPHF%2BwhH5a2Dd2BEvQAZQ%2BOEkTu3coCaLnFwmagC7qA4%2BJgHlYhX%2F6gGyYhup4TAZwWcztJgFQgDwyhXtnyxCxAD3Q2X%2F9SYR66FiswZ39MtshUAINbILosFFJPJgqDBVhZD%2FzY7m3tQSJV8lwWCpHsFm%2BBFUCNcob69pr%2BViRyrWvA9fryQSil9SoZ91r7DXKdCXfdoAZLNSvZbgZsgRzs4R6Xy3N5Ip1Cd10RKaA4QhQDpTFPxgBmILAMt%2FGMbhcqjIjGttpAakjfpgrkaTx7Ll9yAI5%2Bl8QidM8UgGeDYMX8JveyZxNiT6eaVzT5L3OOrVfjYBG4YIO7QRhGNhw2Yc%2B2t3sz43vhlWXDoRPQcxcTRgVKAYoOCVdJS1Cz8ZPGBgm8gSd%2BMFr9x2AiNToxF08owU8zU2oWFTMRwAnaRSL50mv%2FP1IqJBkBuCwcflkdhLan3METTuZz8xakJqEbFiHMEhILg8E5Se6QJGAVWHhWXHhvXUWGR4iGC4IN%2B04kRC4IBDHY7vZJqbVxsVVbDQ93JeAKDMHkQKoWHq4kEYAFvECjfigz1Bl02y5gt6cL2ikUXZRu1KELT0Z2uC1xLMwCuuAIPKADDCGjOqADQGwWRcADTqBfiIeiE0kd3ADcJGAImsgTPMAD3M4OKHq6BMvZZuAPTuCk32gGTLoU7G0RnK2bIJpk%2FQiQmY4iZYwQ4sEcRE4BOK5XI%2BiQHnkFE7K2VNeodcAddgEE8sUDdMoCOGw4z1AbwQ1l1sAWigKJVFcE%2F9xgpstmHsiAos9AACHaswQmB2zOpcgpsuCsoWknnaLsCGDYV77WKFa1dpunG4LtcTfX62yqVCXgqUfGK%2FEEUxmnD9yBV%2B%2F2mjktm%2F1km1Wnmw%2FIhn2lDGzvZGShUt%2FmCJItutL5bR43HCCsiHD3wvIFxCIIx8ZGBVQ1D04big3hbTwzkLYThuCNoMvFVFBlE1SledDhVIa7i74KG26hG1yLtdABG6ShHQVitSBjWcwKe8JBGqSBtXqLu7OHFhoBVcKoud8IurfbDBGMWkbmGaQhvWvMZ%2B3kGaqAqxEABVBKHTxBgPgzDlTAAjzg7I5AscQosSzADcgpFZxtrIFKBP%2BCgRwq4QbGZgaeyZOXDnUsRrjd6FlkI3GEu%2FXK2wyb%2B7upG72xahWEO4wWaBfEG7uVQrtHXFTLIhxyYKNKkSBuZ6NEQFUhLajKjKXz5QQyywLoZ3M3KksNYb97FaVSbaOWZ1ZSYaNUoLJ9Ain91lhbpxZmQMutdYbCoQyqWgJUwBC4YAZYICz%2FQMsjz5O0%2FFY2UcsnTB3MAQJnwBPiAQQ3wA6SSgJMYKcDZROGwAIkQAJE4Aq4LZDeHIoHawa%2BNXGgINAlIJF8W9YcJZ%2Byp3qEBXoUCJmOqIDIx5uVqXyQwdEcCXs2HZouy35UjjSfYRJafRI8wRbYIX36t9VV5av%2FnkFnbv25Vcu31NvVW%2B%2BrZqmtzKEUXH1r4%2FtnP%2FnCPb0zHEWUSl3TLUmfKh0dHIiBkkmv91qXpULXD6IYaEGOuvvWXYbVW91Zgj3Xv%2Bq9uygSs4iW0IG3xr225D1ZLrtoMrtQLCYYgmGuvCFMPrAW3XvfTwnB3KESaCEYWo%2BCgkUYgmGWrPi3AQNg3mJugOl5dzlP8IRjFInUUb1O1AWaOh4dKMnTDUfZQyVasiRt5IKCXcXUBcIZHK2ApN3ZOd18Pj7j%2F0Kaoj3b7aK4Ks%2FWeh5sEMjfEQdpQb4giMEbqP1Ypf0hrtgpJn4tKt5aLh4tTgct8Oct4hdeUl7iV%2F4t%2Flr%2BLTboLbC%2B3n8e6AEA350CVAqljCfXIWSoLKB%2BKaQeLai%2BUqy%2BLMyecP69RE4%2BhrxeUsAemPhaLsh%2BLfheQNEe6Nd%2BKdqeI%2FLMAyxgBLitIeT%2BK%2BjeKOy%2BLPAekPT%2BKxQfK7Q%2BqzFE8OWC83MZ2Y0C8a9eaIDF3sXF8Y0C8jnCHOj98k9fXiJ%2B8DEDHTyf7kB%2FK0T%2Ffvz%2BWAC%2FLjAfK1J%2Fgg1%2F7NNkMIifbxmfQIX%2BImo%2F8p1eBHX%2FLTRfKJgfK4B%2FgoUfK6R%2FKUi%2Fwtt1LZRfKsAfbJ1%2FLVp%2F718fXKi%2FWK3fIrB%2F%2Fbl%2FLbzfJwCi3C10BAsaPIgwocKExZwt%2FnwIMaI7MJrcRbyIseCtchk7QswGzKPIhPEAAYo3MmVBYNlUqhToMqU7TWAsxhTpzOFNkRt3dlTXzAGAoUSLGj2KNCmABM3U%2BezozdbTjiynZoxizKlViDC3RmzoFeLEimEf9iyrECRahSVPrk1Y9e3BrnILzqxZ12DOvAbP5gUqVCmACC9KFNWAWAOBoQ5eaFDKVCvfqHxXtqyMDqvkunT5gq081iZfv3nVVm6LsnJcvp3r3hWddy9m0nIBC56SDt%2B9Q4ttrJMnD98UADas4YO3JWlkzJQxr%2BaruXLrup%2F5hp7NsbJpvqidX2Y9EDRN2HVlV6b91nbSEPesFTnU%2F294GH2H%2BASyQQDXOiWs5IVAulxlzan2HXRZSRdeZdXldd152fG1XV7dEYjZdG%2B9hpl5oz1Yl3pIhRBIEQC8wM8cAByyTgqPAVACPocAMEV8SBHQFHMheYdZZgeCl6OGroEBCnlyofdWhHVNyNdznCXI4HgZ6uRgZR4Kxgc%2FIuKiDzz4QEKADfzUAcAP%2FLABgAYpnHnmC8eU402bbr4JZ5xyzhmnMxvRiWeeeQrkjJ5%2B%2FvkmE7qwCWiheMZiaKJyllNMMYQqCuk5FD0KqaKxZFNppc7YQmmmgJ6zByDneJpoObb0Saqh2fCSqqHl0DRqq38y6qisgCJqq5%2Fl7JKAYP9DhcHPJQQQcAkkQPDRzxheyhFmiTCGAm20tvBiS7XWXottttpum20ssXALbrji2uLtuOaea4sRmVCLbrva3vKtu%2FJiW%2B689hKThSTs2itvLLfwO2%2B9ALdLDB10EDOwuwInbC68DKPLiyRZIPywuQtXHK6%2FGIvLSyW9CgZsKIER5QA8oXgJpphqzFijgDdSiFl0PD6J2URBYoe\ ZkXIhmZeSclm4FoaV%2BVgXkWhNedQU%2B4SyWJlyiKiBPJewBwkAW%2FSjBIAtTyYVjjHvmBfQay34I1lRaveyhCallmSBS9bs5NBQbihlUEqFsM4%2BrlwSyhQOpIMcJPxkHYo8agyzzor%2BRgXIdY4%2ByyVz2EzmRbZcDdKNNmY81%2FX4WmKXJTRfRA%2FJYW12J6WEONasns7KNuAijzhjDJVCf%2B4pt3VeA7adY%2BRvY1b5hRQJ%2BZbRaOn81uZydY7W52GFHtvceRkfFtJFDYt900NpMPL22h%2FFuO5dw1yZ7z9PTp30lg%2BPc%2Banre31zNbFLbr6pNfdva%2F6CxZ%2BXbv37La6mO8tzgtL8ILGvrNBKG1Hgh%2F5JAc3vMgtR9TzivX2h8Gi9E8u%2F%2BNcACEHtt8pyH4INBvmFqg5B%2FIOQREk3lpGV7zSped0GayhBnPnv%2FGtsHwhPF%2BODoiWy01PhkVi4M5UCMAKoe9C9Iv%2FHgWJeDQa2tCGG3xLB5f3wbcM0HNLfAsQQZfAE5bGiMlDogeV2EKate8vUpxiBqu4liu%2BhXlo2WLzujg2EgYxjEPMGRnXorw5ZvGOaZzgGjvURjfuD45okeNa6FgWO5algF754vP4WDQoHu%2BPaAnkIwc5STyCronl0SNaKriVCyqSfzjkoA6T%2BLXN%2BBB4prykCfvoPu6YEYtoFI8E6%2FdE%2FK2yhowsiyPRAsmwSDIslNyKJb0ixEz6MYVueaAIm%2FRLJx7SdPkbJitl6UrHgTKSPSSgKMvyzK1E8365VFs1dwhBX7oQLTBcCyqtokpvgq%2BVVnzlGWPJQlrWDJPsROH7%2Ft4JS%2Flhc55lqecpNVm9ROpTa%2BDspzh7V04u%2FrCW0CRoDKd5ULYlNJ7zy2Ypg8mXfE6UKMUMyzHLkkyvLNMrzbRKOq2yzo%2B2s4EI%2FadCXUNKuTi0LPecikpXuhR%2BxtGfvAToT9M30FtKc6dH7GlTn8pEkwqVo14p6lOOutKWeuWlYYnpVma6lZpO5aZTyak9IRoW5AFyl4LsZUkZGpahhsWrPgHrRMW6FbJ6xaxWQatV1PoUtj7FrQ8FqS6tWteA3lWNCkRkN5F6w4ou9aJOJalnuIpTj77Vse4UqU89C1StvkWvXYVrKiWK2aEA1iqC3Qphp2LYqSDWJ4r1CWOJ%2Furarci1k3T9pF0XSlkxcjO2uNNsI5kaWR46l5nnNCBo2yraxlK1jJA1rmSRa8jKLpe5%2B5yuS6HrXel%2Bl3LXXWx2gUtanpr2qqi1XFBX296n8HUnftXnbKdSW6vc9im5fcpud9Lbnfx2r8G1ynDL4klkjpOm1VXnfV%2BYX5%2Fs9yb99eZ%2FnxLgqQzYJwX2yYFvkuCbLLi18a3qfKNb36zi1Sus3cqGY9LhYX7YJyF%2Byoh3UuKdnDgmKY7Jim3c4Kk8OCwRhumE01phnF6YnhneyY1dkuNV7ngnPfbJj28S5JsM2SVFdsmRrXJllyzZK00u65MPG%2BW2TrmhVb5JmlOS%2F2VFbvkmXd7Jl2MS5piMWSVlVsmZp3LnlKx5K20e7Jt1G%2BfFzjmvdY5JokWSZzfuOSZ9vsmfXRJolww6JYWWyXsZ3GLuvji9MQ7apGlcaZdc2iOZnuKmXdLpmHxaJaF%2BSaQTG2tTS7WgY6TmqiV83NTOeCs1RnOS%2Bwrb2N5aJbl2ya5T0uuUjHokpR7JofX7bJ8s2iqNtu2jDfxrBb%2Ba2cFOyax%2FEm3MTjsl1VbJtUeS7ZFsWyTdFsm3NRzunYx7KuUW8LlNnG4Vr9sqzUZ0wHEcb6TOeyT1Tsm9RZJvkezbI%2F32yL%2Bt%2FPCYDPwpBRfxwYWccCMvfCoNB7cwybs4pf4%2Bl7PqxaoX2%2B3vU7N4u3PtLrLXa1%2FVYhilbLwscycukoqP5OIeybhHNt6Rjnfk43YOuZo5CeHi%2FtzmQVz5U1oO8JfDnKUyNyZ6t24g80J5o1FdtrNT3fNjOznZQXc7y3HOE6vjOeJhLft5aZ52oMtF6hmhuqX1rmisM1nrcxe8q4VOZaJbduyZZc7ZG1%2FzVuex7duUy8h9UnIfn1zMKTez130CdpCLnfJI94jSRcL0jji9I1DPCOExYnhZI34kn99J6L08ekGX3tCn30nqq776o4TgEMO4RAoYw4fmPx8ADgiE9JtrecDnZfYZqT1Gbn%2BR3Kvk3R3p%2FU1%2B7%2Bfgi%2F56%2BDIp%2Fk2Of%2FjkXw8X94DEOqzxmEDs4xLrGIZQDrF%2F8OB%2FFJV98RN4XIcW4CcROodkcEdcPod5mjdKkEdnkjdeSIEBkDAcctAPL%2BAA6xAKABAG%2FfADJROCI0gEBCggl%2BdmGKV2cMZ2oMGAb8dzDyh3Leh4XUeBlGaBM2R0RfEDw4ALjbEPfNAsYeACRQgARcAPs3MUNOIO6iCFU0iFVWiFV4iFVegO3kAMUZiFXwiGX%2BgOxOANXhiGZ4iG6hAF1GCGaeiGWMgLbyiHV%2BgOOdGGcyiH8QAk8YCHfagOvFAOfjiHW9iFgpiHa2OIbziGZZiIblgOcdiIaRgPoAAGfP4YiWdYh85wh5eYhZDIiWDoDhGnAeLADysjJsyyLMvSLMwyBdECLZdgBVQgi7NIi7Voi7eIi7i4BLnIi73oi1Swi78ojMNIBT7ABMSIjLwYjMnIjLS4BMvYjMxoBT5gBNFojdVojc34jNnYjD7gA7HIjcgIjeE4jONIjr5oBN94juVojuuYi%2B3ojrdoBQWgPyEgB%2FugBCjTLGqgiqdYJmiSJqigCwNJkAVpkAeJkAmJkK%2BQCQrpkA8JkbqQCa8QkRVpkbrABKBwkRvpkA3JkR9pkJngkSAJksZABZjwDSmpkivJki3pki%2FpktAAkzNJkzVpkzeJkyt5B21gDCRJkv8T6ZMgyZBB%2BZHGkAhW0JNEuZEiqZQcOZJNWZGo8IMO8AOPEQL4EAhXGQhL2A9bUAL6sJVK0JUss4mfqIVcWJZmOYWLmJZqKYVr2JZu6YluaYWZGJdmqYfJ8A97yZd96Zd%2FCZiBKZiDSZiFaZiHiZiFGQknQZd0SIZ3%2BYmP2JhXOImVOJlaaIeXWYVzqZnuoA0%2FmAL6MDVy4A9hQACrUwKHgA8vcJrWEAKQgA8uoIKNY4Dbl1GEJFAyqJeJyZu96Zu%2FCZy%2FuZg36Gh0J2PJhUtFJxh1gA%2F0sDRCoQT0gA9gORRTIJ3UOZvio30CdJuhFIPWAQa7GZzjSZ7laZ6DOZz%2FtTlLkxVeyuWDvmIDW1AE2vMCW%2FADRVGf94l9K7idIPSCkPadDBKe50mgBWqgvZme1rSe4AVMnbcWtUZFfjdWLFicnXVN7DVQ4nmgG8qhHJqg8HShdYecU6WclCdbEhpYFGpuLpiDCYh3UzegHSqjM2qeHzpSIXqc7Zmck2eiSfWfAKaiBseiCIhOL1p4MUqjSaqkiWmjp4Wjj2d3X2ekGUF%2BGAGhxISitBWkJjekElikGbqkYSqmgtmk9PWkOhilqDelGFGlF3Glb5SlQNqfWtSd1BWgP6KhY6qnYVqmMHamE5imxremF9GmEfGmGNR6ULGlotelf%2Fqlurmnkcqn%2FxCIg0QKTe4XE%2FCne%2FJHXomaEa%2FnEbF3FXVKYXe6Pnkqqam6oX3Kao56qTsIaz34oHz3V3EKYosKfI26oBgKqarqq6tKqRVqqRYGq%2Bwmq1H0g%2FJmqzyGq%2Bmnq%2BZkqsKDqr9KrePJqmjnqsQaqO83qBFRqBBxqIu0rFzWrJ6mfqBGqmuXm%2BA5rdXqrggarCvaos%2BDqS6hqeO3e7RGq%2F41rnxWrrp2rryWrjC4rgLaru%2BKsIZ5rRGYrVJWrAzXrRDxrQ8RrvrjqRgBqlQRsNg2sABasHiasCHLmwtbqV76qtuaqRFrFvkKb8kqcf3Kaf9qbRuLbx2LbtGKQAcrsjvbl%2F8kK6wmq60jSmwXyHowi2sya280i3E2i3A4u0c6y7M867PyOqwOi7L2qrILMbELoQ7B8DEmerEXkbEZIaoYwX0Y4X0XoYBigaRR67Y9G69COq8nK7Q69RfB4LJ996O3OqdrcbYXkbZfkbUJMRFQ%2B7YJO7VyW7Vy9rB3d6xlUbG%2BErYRMbYYUbYX8bcREbgQsbYPUbiHC7r%2FkLhcOrdBq6MkyqNga7TUhrQWp7RNx7Qo57RgZLihW62jy6ila7V1O1opta8etrr01rpL97qyF7ukN7uXVLu2%2B6u4m6u6y7hXqxL36m4smxGR%2B00FqKD%2BCb1rNbgI8bnMG7XO66zd61v%2F9Tq934sQW6sQ2AsZwUtxwwt7xTuqeyu7H3uq4ju%2BcUu6iytpjSuljxtReVur9kuufVtHxyt8ydtRy6u%2Fkkq%2B5mqcUMq72lWiqmvA%2ForA5JTB68fA6tS2D4ywEQywE4ymFQxfKYW3Peqj2gui3NnBvvbBoeXAIqynJDyzJgyoKIxqvkvA%2FBrDrLvByqTAHoy%2F0mrDIYvDSavD9ArAairAFvS7Oga%2FSSe%2FoUq%2FZlvEMnzEOZvEiMu%2Fueu%2F5%2FvEghrFr%2FXDwBvEwjvEMrXF2sZ%2BpKa%2BBhG%2BX%2ByuS%2By6TUy3pzu079mjkwsRlXsRlxsRmcsVccxtc2wXIWzHvorHxKvH%2F6bboOLlxxjswjcKw%2BbLW4pMEHXcyM0bxs87xupWxtx6xvg0xVpWxa53xRr7rBrVxU%2F7ybcbyuU7ygpXyil7ykbltSwMyA8hyBFByBBhyA%2BxuQ%2FRuQvhybOcqo88v5G8u3xst6lbtGscv218Vm%2Bsb4jMb5yMDsvMzJHqzFgMzdHLwzt3wdV8yU6aybeMYt4MzuF8w7UswZqMy9KbEtQ7EuybEF37terMn%2BrJve5MZPDMyPI8puPsyvascrmMtbv8Vb0sGEUgB1PQNA6gBBk9Bf8RJhX9PZUX0NtLp9b8dNzMcQZdwwgNrMRJtUAbzZPsnrOarIHAD%2BsgmovBhPzAD%2F%2F%2FkBxboA95UzXZmUPYXFjarHEmHXUordIQTM8lzNCm59DpC9HQ9oMaYA2H4ACHwA8vAABycA9KEAM9wD3iMAwaoH9cXV7rbKbt7NI2pdRLvacKTbZZrLlIjXvom8%2FejA78jBAq5QAE4ACXAA%2F%2FwX9bsAWP8QLUWQRjiRTNgM8Up3hl5Q0Y9dgl3SNvDdcJ3dTWNtlPbWiUWNkeoc88UTMR5wDWwA9hAACnqQ%2FigA%2FiUAL9yA%2BoGAa1XdtqQAvIkBO7zdu97du%2FDdy%2FXQyxENzFbdzH7QyxAAzIzdzN7QxL8ArOLd3BPdwNMd3Xzdu3cAvYzd05kQUpndnnGQl00N3%2F3K3c5X3dw43e1y0x6z3d2u3ezl3d8d3ctPDPSOEAWxAK4sCaW%2BA3SrAP9zHbq0gctn3buU3fzK3eCY7c583gxw3dD27cCy7hwQ3fFR7c3x3eCU3eGA7cDu7hvU3hIc7b7U3ivX3hJ54T863iOWHfghEYKcAPW0kUDbAOrJDYRrjYqt3YoQ0VkT1Ync1DPo62do0Row2j4L3h5CnXlivkbb1YoH3ONlbaP%2FgC4gAHS8gPfKABw2CEL%2BAiH8gKAKAG%2FKCfMUfSrEzUuGXUlh3LtLvkk8rSigvlZEzkR67XfH0Q%2BeQArqAP%2FZEOKUAAocAPrCAO8MDVNI0L9OAKH32i%2F2muqGtOYG1Oe0autpgd5zTa5INM14dcSDC9o0R7FBEgB6FwCNPnAKV%2BCGhNAGkQCoGgOGiu1n7K1g3r1mCa6Um66cLc6cZs6WKB1yOB5B2h5wbhvvtJmyLtt5Tefb%2FOuZie6x266xAxzAtxzAoBPSfloMjqy6sc6QI90p5NaNAe7SsN7rjJnqCOuqIOc7%2B8EMFM7b3%2BEMVs7c6OzORe7gY67Q9R7Qpx7YQb7DiR59ZrpamsZ97%2Bqa0816%2BM7p%2BF6%2FnuoZvNxOLubQEv2gPPqUeH8Bir8JYr7wthyFZoEJIphSpBhQQxhff%2B8BB%2FoHJdhQsRUyePDim%2FzZ%2BuTZQs0%2F%2FdDukJL%2Bkkxux20Q21IPS18AxRSBCmIvTCoBLCIPTdoA7hMPThsBBkow7kUfXYpeQsf5jjbBFDXwvdYPQIkUzqgA1C%2FwxOEQxCL%2FVHbfN7LvNub8DDTrElv9cE76YGr2njWvXuwPcGDO8PQQzkcOeY%2B%2FNO0QctIAGJLwEeUAVnP%2FOVwAALcATbqg45sAALYAjx8AwbwAASUAuaVR3qEA%2B14AZOP%2FOj%2FwdYr%2FXmjmPqQAgzoPgS0AJxYPoHkUzucAWX7wbxEA4tsAASsAmB%2Bu%2Fge19RKAzHHwxnDxvhIAzJL%2FD9HPY%2BIQ3BEAzdUPcZL222WvXPMAndPwnCEP1i2%2FH%2F%2FSwZ3aAHjTAJa2%2BbO%2B8OXYAA7w%2F%2F738CwiCFlfD%2BQkD5M%2FD%2Bmf8MFoAAACGhljp0BQ0WLOasoLpubjZIkKaOoR0LMAgexJhR40F3YJL9AxlS5EiSJU2eRJlS5UqWLVVGAhRv40yN6sogwJkT5wxhFw0Cy0azoDsnOMvEC6cC5yR3QjWWu%2BVU6lSD7jSBaXpQ4qQgFiR83RBkUVZ3hr4e8TnVmUKM7sIRepaWas0gX8feKjdX70Z1zRwAABxY8GDChQ0DSNBMLk2CcUTotAClJ1VvtvbudSesSiqJtXBKiHtZNLooxhaPVlcqZwsybnTk7OJOXSWcQppK5CsxrboZ%2FjgNxXtmAYHA3bgTDk2F0wM2dfEWGUCQA%2Fdojh5dXseeXfv27TBlUncXJ%2BcGKFxM5Eyym5i36Rh1u4NiFGmLpbLbL7yvGyq66bjv4z9tLquw0iqcKnRCsAyC4ukDpyACnGmtjDbJAYGBqMOoNwTuygtDvfr66zARRyQsMQjdCycJBHMSYZWsnKrMQ6HU%2BWMDAzqRrRYGELAgNBmnKu1Evdz5AycVwpknHnWOgM6DbmarbR50aqkFnRetROeZUlLpBkv%2BNPwtuOEu5M8dbEqpxZxr2EpNAQQ8ECYcdQjZKZxwfuzoI%2B725LNPP1Pyjjp1hNkAJx2CiSeebo7IqRSC%2FyTqphJPugnnSome4dKe%2BBA4Khz6ENgkHmG4lM2gbk496NRuoAoH1SlraZVSjFTFcMAr3ekiJwl04GIGN%2Btj0MHiAlTHnTW1ElOCXOTSzan%2FNByLl%2F8%2BFNI9v0jElkQTp3LnitXi6KNCnHIwRyt37NPKG2LKfLS%2FUhc6d7Fi4zVInXA8wKkUJXXkMa5iT5uXWXenzSjIH9GJJw%2FlNmlunlSqqIIMOWlD4IhJZvhqBkIuUmcSHfBVQAQdKHkUTOCEI85KT5J4TIIWmqBFNi4eQyDkJLro4DMTdJDTwzz%2FBDpoobELdLTwcNpAGLJq8WCGLgZSpxaWaxahhT8ucqeUI%2F4KNaGMIOTz1KitETiBjCfVeaYFE1TwRaJSTDAhB2yI%2BQPuPJKQwIIWTjBhBuasrNuEIGq96kV1PMkpiIGUnEQ4A2ZAuEEEHhyKISrl9KnYcGqphBYv1QkG5SrrdaebWnxBOC07rRw0GC%2FRgXYeW1Y52yA777R99YJWR7vK2zNHR%2FeFrs22%2BMK2dVYWCXCCoptE1fEWJ4b529wQQ1Lp6aJndqkEHWGuD%2BcZX3y5s5bry3xmkUWUJv2ZTQzZRBj%2BgpeF5vWj3tECbMIpxRCo6x3UIiaRPYMIY3z8MV8punEljRgMT5vICQNyEAdPoMMe87gNxUQgAejkZCzu2MTyEP5EHN745mRjKtYihIOgGTwjHjnoIAIex6ScGEAEPauVdYa2Qx728B9FE407huAgBspPSWg7wYoQYIgcFQonMeTUfGpYwyPw5xnLU8BAQIgTEcwtDk3KiQ6cyBQrMQoBsQFP4QwSj1y9SRjfQcc83GCCI0gsWJN71CaCYAIFSEAFRyjFbbrRhRYsTwQ56EOlFsHHmp2gBbIoliyqoAIGWGAGZYiIlRahAhX8YRI5sIAFcmCIi2ioD2VAAQNEAIXQQI%2BTTLRXEDjpiXjUogUqqEIePCCBGbTAl5u4TTBmoIJHcox4xkMmYJAnFHeQgYuZtGIOnvCHuLjDExjLiQW6cP%2B2I%2BTNITjpAxm%2BYoduOqgWdqCZBeLwKGxwAV%2BfmUEq5hFCXW3gGfzagB0%2BJQEo9AxtT1ihBIaQi9vUxQKTeIIIW0BKmjjwR%2Bo4EIJYQ1D%2BUAwBIrBDHJyYBNnsADpB6AM6ceIGJZksWbXIjBNFEIcuiPAI7siDuCQQhDLYQUMbOEIVcJdDPfnQpz%2FlDhAvo46vIYCk7qlKF6DTAjHgQVxJUJIZJeCGmOakU59iQBX6oCKcLOKExLEmTk4wNztkMwge8MSmqiCbZxQqZUZT4%2B4%2BVYXv6MZe7pDJHR%2BUNRFCJhVuKSqCumCPP0DRAKWYRyneqROeNKewCFAKFD3RFA3%2BOW41EXHH1wxgByWFI4kIoEQtkSbCE%2FTGAHS1kuRO8KThhSiZyFwmTTKLk5cWCK%2BdcaJODHAUoq6oFG2UoU5ymxNguqMKUDRSNzaB3Hvu6Ik1jI06pKEhnaggezvAiQWgqCwIOVRG9urCCnXigbFAaTibsIc9FIaAGRCkE3GAgjTSG1G6lnCJX62FHMXqi3nMwyz5skct3OQkd8xjEeM6F550CFQGN3glQv0QNmjWBzhmJDV26EIqrtGOA1cMOO8kRH%2Bf8c6rMi9R6HgqfouFOLKRNSeGmIf8JsFFbMTDEOPyWVzR9k4mFqQbzwCyNIAcDr1KJAjQmUEcykCzMtj%2Fo8Mz2EQlmpBd9%2BXATQrIgeIkrJwyVEGEPItHkcTqhjI4kQsyoe4MxAAFEcbGHULASR46qxRQ1dK57O1ah1dbLDgjIA5wBNFrkxnbmajjNQjg7EyaaQADjGwTXH1pbw11hRygI6IIIEMnuMAiQhhihWWYRy20i4A8vE%2BE2Asv89xgOueeAH5DREALzBGPMkDHBITwmAyhIJvAVuG9CwAnAw%2FiXRkVuBZ3O09O9kwxJxXrxtFZUKgX0QVsIuAKJTXhSd0hLjdIyUpFjYM9UjFgzD5bOgf7mYPVve6RQHgu9oLBSCtspXe5wx7PmIQYduBEFaCDxfZcUFGiGDYEkPGO%2Fv0%2B6YrF6uI3nc1en5rEPMyY6DQSiD%2BqwclkrUSGDnjA4x7YgCfsITnKTYIMSXhGejeNacLuZBO0uEYfFjEpdyTrjfEo60XlGQ9CiHASLR9OKdIbvfbatwXdIMY8bkK2BfZZzvaic6j4hYD0ALkbNJvEh4cDyXodU9DZInRN2grOeWNEGJP4gzDsMScjVaqoLSCy8yIqnVCLMA%2FpbSNH%2BbcIQtgDOBrSFzo%2Bm4q1T90QFyzF8iQQp89OIh%2F2EIZwRLDAokonUUU96kaIjaHNpYLIpZsErDc0D4rB3dnj6kw5ofOra9s3TKLbNk4QkZV4CNwN4ib36aGN7gWz2%2FcN%2Fna3gIpa24PAD3PdgILjYniEebadIPABG8Sb4g5K4KQFWRKdwltMjJzrwCe0xkkVulEoC0ym4lkB3Qp7HI%2FjIgi9JF%2FQvScRByE4kQz2mHFOKqADN%2BRXIpFHIUkDtYKIB1hrMjGDHCt5NsixLzKIh1tQh1TYEQWQJ6ebM%2Bmxs646IuPCiSuwh2fzPq3wuq%2FTFsWYCg05iraoN3dIBTtIgs9CABOgPBPjD%2FbDiS5QkoSLBzfAiSdoinmQhkXgAjFqlNKhmcnCHx7JHjFhgGAQBixKAiiAgoTCiVSIh6LCQSvhqsxrINN4qG7QgeX5A5lojqsbKdKjrekzN4IQFxW4%2FoJF2JTWMynY0xBC%2BA53MKPbG7c3KTfU472e%2Br1A9Kngowpc4SLWshLPiLVNmAel4hEkQIRncwJ7gKCLYq142JQSK7jp6zCEy76w2r6cIz4EWh4VkBy0yDGLs5fPSkF3mCMVGAHiGjlh%2BadCYbSccEB1AC5d4QL%2BAEASOjQ7JMBMBDrKcYcn%2B5Kucge8MEMEQCwLhDoM5Je3codOEKsUwYkxFEHXIsESrBYrgbUguBJzKIO088UhukUnWq3ZIrXvsMEzUpJfXBweRAAfVIc8UL6vyBcjzLgcyR9%2F%2BcVguKInYrQYssKi0kZ32MKyM4jNQw1xObp4MLYV%2BgM0RADb%2F1BABFuFAXuGebCHNpLDbBMdTDSUYhGVd0IEhxkw5ymLcZFIBQNEQZTJoSFEbmExa0MYpIA1gcCGMVqGdlAEnEiCuluKeVAHc%2FgUTewCo7SHiLKNZAmGAsu%2FseK%2BNNSK15CAdyIjwrE4%2FuAqFWCt1UkO6ZnFyQEssaoCQ6DHXIyHTbiCQtIJO5RHiRAXbbSSJzCKYnw%2BZLSvo4DAsXPGeYDGpJDGHQG4g6jDx0ia3RjBbjyMsNMIV1SOZyALjDuoeXgCW3ODVJjKGWxHAowoHByU7NvBHpwHa6StRVAGMwqkZkRCfumR%2F0MZJ8SimooDO8iD3KRMhJQJhZS3mXBI0f9ImJyYATvYBDegs%2FJrB4rByJaMDhb8jElAh06gGdGcwzGJh%2FxDACighEXQkBHABhZ0kw0QIOcUgUkwhJ0Cj96byfb8k5qcCnXYlMnBTeq6gnkQEwTog2WghXiLNTkpKhXYhGe4NE2UAEIQBorIRuCwv25IBQ2hSlG8FTphkb%2FhyhehPvSYtURxB8kBlbIMgnhYhezKr4%2BUj1qYBDtAKVrQAzqrghhDGWFIkk2RDrx6Bpr5A73UpJ1IRjziBQNDGhfqsz4wymaUOsP0EYQRj4tyk12zFm50zMc0QWdZBecaghqLB2kQFwaohfEDsA8UK8%2BUM9C8wXgkTXp8AntYOub%2FkxI6%2B6tmJDx3gE2ARBlfaMZFeDxhoKpNeBLe1MLf1DwvfChzEALkygk3kA3mVEPUG7HP%2BBTmkY3rfACouTSdkIDyGlFlQ4ex5CIcWs%2BYdM9QDaqYwBCGED2Jyp4%2B4yXxmrwtyiad6BQ6y67LMrLx%2BJWLYrhRtCKaQYC1Kra4Wggzio44UMtDI0uSi4extABPSA06G6wkWCphcIZiMCMygNGa%2BYNFcJ%2BcqAJP8ISi8oCOFDNj5EvqKgNboASaSQ921IFnwAbgOlIEOMyFCB2dGIsnjVJv5JalizUouAI6MwAcBMwycB%2BaOQG3izN3DE0zRaHSrEc1tb5a0AwPUhSa%2F4ECO2iufpHNMWlE6BCBRVgFJrGh8PRT3zQqhiyI4BQNtKmC4bqodaqos1DDr%2FC%2BY1whA9iAMtglFWCOMJQARPiwvPkfndUJFJg96gms8kMHMzKAI%2FlGZmJPUZVaoiHVUu2GKxCv4WClR7GlJ5KASfoKZi2LxcoBcZoqpIABCRiBbxqXYHgUT4BBC0BOPyKrr%2BAojGCjnNC4VLQUYaAuJTqCjiQ5M4lFHvlbHYgHShChDUCBd7IAlCLMIqxUnfgDvBKzEDxGHrUvnMiAX5GAQJJMpBkuqRvPJC0jZUPEroPSfC2RKXUW6FEiAwiCs4GCDsraHrlCRhtThDmugI1HLP9anDNgtKHEuOEYNRnqFOoygAH6DIAE3syQVZ2ApdcwAAr7UwPgwoIR1IP5v0WwHkPQ1qwoB1s4nWcwlfGRH1%2BMREPoCQOCFe8ZnycJh2DwhWDYqZrzXvgphmuol27I31SgHvQ8n2KL2qk14Aer2lLNjPw1BEjKHGzwXj1wEfGpBWwYiu8BXzsZn0wyoJ4IBuuZBE%2BVLu%2B9nw4uB17ohvExXwBSOutTz%2FNzj4bg1c%2FQgUWQiDATlrK42Q3ogkIRgTdahE%2FpoBYgo9DdR3QoM504AUJoChzGox1lrx4lpPFgYv7ABmOlOjOSuuWZ16HoMEwru0BjXSl92vnJg0e9KLP%2FeZRFYZE8OAITOM95gAK4qWIrKQO4QVS0URsVcFuYgpvosoN3WgAomCMTeAJNopkFiB%2B%2BaQF%2FSZu16eNaqIucUIEeU4cngJse6xa46QNha8jtPZgyORd6KYgTbhYAyZxRbheOOeVTJp1RRga2gBdSnpd38ZkCPuBcNgn4%2FJBRtuVXXgZv4A9XrmW7YuVHUWX3SGb9gEBX9h58%2BzSUxQxgrRfgWIQ%2FwGb%2F%2BZx7ktih8AVs%2FgNfkNNakIUnAb0%2FwAM8WIQFqhdKwOZFuJNi%2BZ53Zmf%2BkAYqSV%2FLOZ2C8AVyDgds0ANsjsp6CYdr%2FgNmfQZZ6FJ7oZL3xY94KN693cYx%2FybjIXHQUsBoabBlgkgFjKbMWLmTcGAGWygX2zmVnaKV3TnpC8ZoqElptGnpgrAFZugSU3GVYa4FjCYVk5YVle7pQC3jH9mPUJ6K4yBqp0g3XVbqk%2BDlo0YHoHBqoRhq9wiC3OriC%2BULvOJQgWmP5nieYU5lY7mGX7YSDjWXrdYKYm5lu%2BKFdlCSjNDqVQagtMCGZxCGQ6u0mmhMilYm16UKYwaYtTYIdbGwYUnrtO6Prj5lYsgGw0bs%2F4BsIVHZqJ7qqN4Io7bsyMTlpV7qpj5qqM7sp4iKjGC%2FDpKAHsMTag5tg5CQ1c4IvCg2XcqtOsZXvm7doP6RGHFtjADt3f%2F%2BZNz2kMr2bcz27aTm7OMGCc8m6t72beFeiGnrgs0EbtlSbddubd8uCNj2mUmIIScotL3ma8gMbd3G7qcOivImDVB2bed2beLebeNGbs5W7lBm7t1m7xr86lC2FfS%2BbuzW7lKtBYhJS0%2BtbdsWDPHObPLG7vre7cl26vsObfd2bfiOb6We74Nh8NWGcMve7%2FLub9%2F%2B71JNlJf87tW1bQS3bAX37QxfbQc%2F6g23bAlfbQqv8Fy%2B8B9h8cyGcafucOz%2B8N0OcdcWYwMPDBSPahXf7RzPbBcn6h13ahkPbRqvcQO%2BcRlRcsoebezucd%2F%2BcdcO8tUeciJHDL%2FebSR37Sv%2Fj2omD2UnP2ooz2wpn3KprXIPQfMXz%2FLiru7V7vLV%2FvLQDnMiN3KnNvPVrvOjVvODYXOidnMO3%2Bw4D9U5x5BCX%2FM7f%2B88D%2B09D%2B0%2Bz%2Bw%2FN%2FBAP%2BpBD21JD%2BVDF2pK3%2B1Fj2o4d3T3hHTqEPVSR%2B8t321Mz2xNt2xOP3Eyd21Qz%2BxX%2FxFSl5FED2VU5%2FFGX%2FWZbPXR8PXgNvUZt%2FTMpnXLtvWoxnXCSIEUCAwHeAENEAxt53bD8HSi5nXLXnYPAXZmR290IPajVvVjl8lkF41ypw5hT%2B2u5HJZ9u8O8e1qF4wXkAdWAAwbsAZ8gIctCPiBL3hw1%2FXVHveolnfqOHcM%2F6H3H1l3om53dw9EeL%2BMhxeNiedb%2FsZ3ENf33eZ3wCAAVugHgAcAXFgHJWAFeQiBlW%2F5l4%2F520bvhndqjheNiJ%2F3Zl%2FtitdvY8f439P4vdD5vfB4rPbwkAfykRdy8A4MNZAHeAD4EMAHSAAAJeiHKdAAfDgEAJiCrT%2BehR9vy0Dvo98Lnh%2BNpMcQoP%2FDoZ%2FaotcLtJ8Ltocre591pvdypwdzqAeAF6CHMBgGgLcBfuADAPgBflCDF%2BCHOkB8fmCDwnAAt715sy9vup8Lte94n49wvY9yoYf7dZP7ucD8qbD7lX32GC%2BGdJ92pwYdEwcMB8CFSwCAwX98OQCAwpcD3f5%2F%2FDkAe1YA%2FuC3BV64heI3%2FuNH%2FuRX%2FuVP%2FliIBeaH%2FuiX%2Fltw%2Fum3%2Fuu%2FBSPIBOLH%2Fu5f%2Fuf3%2FvBH%2FuoX%2F%2FLnhSwA1dAXxEigA%2B4v%2F%2FAn%2F%2Ff3%2FviXf%2BznBUnIAvev%2F%2Bun%2F%2F23foCIdWsgwYIGDyJMeJBXpQQAHkKEGIZfoDDprE2xwY8PgB%2F81LzgV6fjRwAENKBEGSJYuZYuX8KMKXOmzGy2aOLMqbOcrWw7fwItx8RY0KI0vd0yqhQmuGLFwC2Nqg5Msn9Wr2LNqnUr165ev4INK3Ys2EiA2EVdCq5n2qVI2ypVpwmMOrhFmz61W%2FSWN71BjzmIKJjPPXn06P7hG5ZCHiQAU%2Fop0YCv8RbIgh8SaKYOHefOnj%2BDDi0atDdbo0%2BjTo0OWDbVrl%2Bji2JsM%2Bzaocvdsq0bdDFnu3%2Bjc0eVLPHixo8jR242HvDdrJvrxg3dtru57qbXduYbO%2Byk3F2raxb48kMHIc6LG6YBQCh6aoatW9%2F%2Bfbr1lxNo%2Fu66tH7Xz%2FunJhttAIomHYGn9XbgaMJVlZyDD0IY4VfLKSjafxV%2BZiCGnlUHxnUbeqYdiJ95NyI64Y1HXkShNAZACKzIY00RD5UAo4wq4jfgiPyZyNmFJgrYo4YmJtgjgxIimaSSxVHY448gDglihx%2BaKGKP6JQ4IooqCkYAAf8RafAlmGKSl%2BOVPDrZ2pVBmhgliEWaeOSSc9JZ5z9Nmvjkhm5iOOWVVvaYJYhbclmooffl1yOaearZI5sj8okhnCPKaaellyaH54h6Yhipgn72CKiJgm5I6KGnFmqmoqZdySmGj0KZ25WTSjkcprfiKpamILqqoKcHglrldoGW06OpqCIrmKomLrppo0DOJqSsPdK6YaW5YpvtVbtu2OuBvxIY7Iiijkgqhscmm%2B6yO7Ka5pWxRdvmtEQOS6mt2uKbK7cYeksguACKCyK5IJpbIbrpIrsuiM3y%2BuyIsO4574jV9nlvvhdbum%2BF%2FQL4b38BbzjwhgUreDDCpyq8IcP%2F3ToMIsSdSvxmvbU2iLHNdGqsIMf9eawfyBiKjCHJB5p8sqEpY7gyvy1v%2BHKFPetHcYXX3ly1hDkfuLN%2BUHP3c4VBVzg0gUUbzSXSFSq9MdOvxgtpzBtK%2FanFVtPtINYEav0d19h5rSDYCooNINlll5kos%2B0y%2Bq7Tvr4t6czWzl235EwCwpy70l7Z94F%2FHxh4f4MTrqzh7L6b93eLf9t4hXEDG%2Fnkr4d1N4CmY7f3dJoTyDmBnusHeugQna1g2jqvXSHq%2FqquIOvhug6781zJ3h%2Ft09kOHe4A6g4g79%2F5%2FjsAwR84fNbFK3h8x8kfuDzAzT%2Ff%2FraVt0o%2B8plb9%2Bfj%2FiMXa2L3v4NPoPh4y49A5uMZ%2Bgikvo%2Bxz33ti55%2Bpged6jXnev3JXn%2B2x539ha5%2FAPrf7AIIoAFurYAAOqDPEqhA5zHwOw5sDgSBI0H9UFA%2FFsQOBgmnwf5wUHoe7A8I9SbC%2FpDwO1Q7oQJTyJ0VAqeFv3nhd2L4nRlOp4Zlu6F%2BctjAHeqnh9xR4m%2BC2DUTEnFyRsQOEn%2FDRd0wkTtO5A4UoSNFo1HxO1ZUIRZP17ZYvcuLfANjGOs2xumUcTdnpE79QnU%2FoeVPS%2BLx3qHiyJ05HrGO3NFi7X4YtUPKrWZ9dN8foRPI6Fiya4UU1rva2Jw3nsyR2IEkGSWJHUpS%2Fy%2BU3NHj7fi4yap1sjmftM0ga5NG7KwRO6YEDioRpsrpsBKQrpwOLB8oS%2BzQ0nq2vKXNcgmcXdaml7D55XSCOZ1h%2FqaY6hrdwhDnLMXdMWJ5xGTrNElN2FnzN9iEjTZfw03oeBM64NyNOJN1TOgk05PLhE4zWfjM6UQzgtN8Z77i6ZyBJvGgERzluNjZuUQOapGMTBU5VWbOhqFTR%2BqclUXX506GSs6hupnna%2Brpmns2J5%2FN2adu%2BpmwjibtoywLKeZImrmFojRbKrUNS13jUtXAFDgyBQ5NbWNTVP2zOQHVJUSBU9CIrvOnJw2q1YZam6Kq5qipSepvlvqbptbmqf4owynadLo0nsorq0YCKldx5VXYgDU1YkUNWXdj1t2gFTZqbSRbhedWtcHVbXKNE13riqm7viavqNnrafqqm7%2FqJrCvGezRChu%2BwxIvsXj06Vy36liMQdY%2FVRWkRF1IUYGVVHsYLZVGN4ojz%2FoPtOMT7UipFdsSmva0DYXf5eJqpNeG7LcynO25amtbRInUo6Vb7W6uasbWAiehLmyscOuUWtVI9jSUXRBygabcJzLXYM59bkSiCpypXpO6urEuaxdrr%2BB2V6jETVxP41Ter52Xjekt2XrZ%2BxD3%2Fga%2B8pSvbegLSvvSLL%2B43O85%2B0up%2F%2FotwMIcMNEKbGAE70bBD%2F7lLcwgDDn8StiuFAaphaWE4c1p%2BJscHpuH2Qti3Yh4pQyujYN5id0uxlihKE7xY1e80xZb68W5C%2FJMZyy4Gj%2F3xrbJMVF3DJseZ%2FPHu9HuErlLZCR9NzXhHc14RWNZ22DWNpoFD5Qh4oBQHIJGkLgEnX8AAAcEYhiXSMFto5vT6ZL4aVrWDZd3M8Qv68vIb0Vyn5SMPSYz1cmfa%2FND%2BPAPVjzkMesQxzqmAIBD6OMS8BhGitqL2w3qFoCBZpyJKzZkRHtX0Yhl9NQcPUFIn1XSvaP0D%2B6BD0wDgA%2FyCIGXAKABeYQCAGHoBxEK5%2Be2AnpN6SwxaRn7aljPKcyoGf9zgQbtS1vDENeA1TX32uwAa1zCGsAOBbJDoQQA2GAfHCkCP8ZAngBMIx763je%2F%2B%2B3vfwP83%2BcgRsALbvCDx4MY40A4wxsejyhQw%2BESDzg7eDHxi%2FfbHde4hjsw7vF6eBnbdhNEPTyOcXcsY%2BEmvzg7CL7yidcDFGAo%2BcsdrnGO11zivGBHzh0%2BjVJfJhDi0MAwME0Aa6wDEtbQRxE0IgeSPP0Hcpj61Odwh6tjPeta3zrXu971NqDB62IfO9nvgIY2lD3tar%2BDD9C%2B9rd7Pexwn7vW0SB3utN9D20vBN%2F77ve%2FAz7wgh884Qtv%2BMMjPvGGxwIT9oB3vJ%2F98ZCX%2FNz%2F9wAGHzie8m%2B3u%2BbhfvfOp70NBeASEfAxhhBYAxfrCcF6UnCPSzgd6gB4wRZqb3tBJCL3ut8973vv%2B9%2F73g90AD7xi2%2F8RPjBD8dfPvMTgfnmQ5%2F4w48%2B9Xmf%2FOpjPxGOYEIbHOH974M%2F%2FOIfP%2FnH74fyoz%2F96vf%2B%2Bdfv%2FvdjwQqOyH71r09%2F6k%2F%2F%2Fs13RBuYMH%2F9N5%2F9ASDz5d8AHp8gjJ6KBMI%2FGAZikFoKrIcDrEMopAA%2BBAIAKEE%2FbAF5ZEY8uMMHgmAIiuAIkmAJjuDAmWAKquAKuoPCseALvqAHQpwHwmANmmDF2WAOluDG6WAPgiDIkUI9%2BKAP7twQ9uA4%2FxCDEepgPQACySlhDqbcE9ogDkohDMbczFUhDPJgFrKgOhQhF6pgPGgD0EWEDYTBGV6EEpSAPLCCBkwBP8jB0VlDCUACPriAs51JqnXQqqVOq00NGGgClZQLuX1HNgDDlcQDIMhaaNHap4BbE4lbZhEiDVHaQ6TeQ7ABPsjDrwXGFCCGPlwgHq5KtDnKtAmaH8pNIF7JmrmGISKiIloOfxmXf3mI%2FZTSJEZRJcLbC0AE7RUBmdCenfVZHpIitDxbH1abvagisVyJK%2FZIIi7ibjUisDyiGkWimuGiG%2Bki%2F5waDumhDvHh%2FCRjrSzjqGQjdDijiUBjLFbYLF5YLRrSLf8ayzZmUDdW0TdeUTieDyq2TjkOYjMe4jPCYvxcSZmFxpllxzXWBiumBmdx1DF%2BVjE%2BjCmy2jhCjj8SzDk2RzqOyDoS5DSGSzUCk0J2h0aGEz3akD3KET7SkT4SED8yD0biD0C%2BYjSqGkgCjEh2E0m%2BBkOihkOajUo%2BEktGkkuGEEyuj0wiEk0KpE3uIU5%2BjE7iE0%2B6hk%2BeBlAO4yh%2BZClC5D5aZMUoZdiY5G9wJIh4ZHEp1nHBIymt4ljWFEpOkVCuElG2klH6EFIiUFgCjlvqRlluyFnKYlrSoiDCljzqD1zCkVwiE10qk11ukbfVRqGhESAS5kz2iF9iCGC2o2D%2FvmNlmpdhKhIZfphiAhRjCpRjVhJelpBeXhRTquNAouVoDaYttuU8iqaNkaZUmSZVoWYsqaYQUWZtXmZAvqZTgiNU%2BoxUxhRVqoZVjgZWiuLhSKTLUCQy%2BtZPsebu8KVtYGaFaCaLuaOLrWVFgWZG3WaU5eZ77WZ89aYz%2FeYXZadsuWZHwmZgymZn0iYzHuZ52paU1QaVfZWVvQaW0RNkwoZkUkdw6qeJdKeCfOeRhWeSjWdhCmdoGhh0EeNWGiNyXhJ2eqZYzqdZ1udm3qd4fmiGlWepBINDXKipdSWqTWfTVKc4XudcxWcFbWdtNOiBPOiiRWijTWhypei5rGiL%2F7pohsYmdb7oUX7lH97ocoXoX44oeHKmieanOdqmkQJPeibYei5YexrUe%2B7Rk6JXlGbmlEJolUroicLYkKoXf26Uf8IGgOKVgLoGgbaUgb4GgvqSgmLpcNYkO1Jpia7plf7jfmrpgXFpiHnpiEnbkt5lk6Yim2qnmXonmvqomgIppT6amxIYnDKSnL4GnUaWnaoGnhqVnroGn26Tnx4qgxInfRpnPnKoKAXpZ1aoeSbq9ywqjjWqjoEpVklqP3Iqjlqqg2LqrP1ord0qgHlqh4Gq94jqfvxqlQXrdYlpLZGpgB0rjyYrIy6rIzYriuYqbUUrN0LqSsYo26Rrag5rTP8WK5QCalMKapoS6qYaakZmaaJOq2qQqmpda329a1LGa5nOa3HWa6beK7MWrDU%2BK42daz2261yuq%2FHMqFfWKGNt64Z1K4H0qLJqKsPmq2VaKL%2F26pRVa4AG7IMNbF42LMcerKwmLMgurLi%2B7E4%2B7JNFbEpO7GJWbPlc7Eu27GrerD7lKGzsqMd%2BqzSGKzWOa5uWa3PtbFz2bGn%2B7IGgalipqmqwqj25qr7GrIjOakvWKt8op1IxZ2o4p2hAJ4ZqZZLKaNUKa8YqY9E2WccCyMeCa8ja7MguJaKarNyq59UKUNAyKd2So91GGt72h94yLd86reKWVdqixtqGhjoUaeD%2FIql9KmnZQhPlLsjXkuyIJG3eLu1NNm1IPu2S5eyksaiW9mtq%2FCt4mWqAGG6kIu5FSu64Ma5%2BOC7qQq7q7u5lge5oWC5otK3oCG6XEu4H3e5jZqs0bayM9e53%2FO5Tpm5Orm6nRu2b7mrsosbsilntokbW6tXWpkbXvpTo%2Fi2sBqqG1mzk%2Bi2I6k%2FmqogDKMEU5G8IPITUTQGZ%2BC%2BZKO%2FmkmjnZu8IFe9Bsi%2F9ui%2B9wm9v4Wc8du%2BnFgq98QM%2F%2FMMGboE%2BrMM%2BtMgGd3CLuK10PnDcei5CJTBoCMf0Gm31csf1HucBJ%2Bf23lrr7hp%2FqgE%2BKMEL2IAGNIA1qEcg8MML%2FxBAemhAIOwDL44w6ZQwu54wdKgvUi3wXrowdsAwrcqwEJ3t5NpwufEnJKxD7bWeBQJAEWhgCYBiGWsgB57sf8ZqAZtwFkPiT4HC8GJjFU%2FHFZOtHJstDYdbF18QlB2dPogDPohDCmjESPQAP7BB7HnE02nAC0iyJOPAMXjDJWNyJmvyJnNyJ3OyM%2FCFJ4vyKJPyLTgDKaNyKmcyE%2BiCKrvyKGdDLLzyLHcyMBQDLeMyJp8DGEhCLvtyLGSDL%2BOyM9iCMNPyOezBHpyDMc%2ByLZwyM7tyLEPzK0sCGCzzNKeyU2CzKgPzNqMyYHAJAWzBFDhAEezDIcSe0zkyHGIgnf%2B58yXYAi%2FYwjzTcz3b8z3jcz7f8y3Egj778z8DtC0IREATdEHbghFkAjAY9ELrcz8z9EPbcyw4NERDNDFkgSQQA0VT9ERrNEPzAkd3dEETAx3QQUaH9EIP9EmjtEobNDFIQhaYNEsHtETLdEGDdE3nMzA0xKk4QDqwwgvoA0cQQT%2BEQQrImxqHARvbsRuXjjeg01Ln6bukWavW8QQrSOk27ulib%2FACjMxB9WtMdXdkDpSFwDBwxAvgwyFIIKapAT%2F8wFoDABu4dXQyMdw6MR9%2Froda9YFgte9qdQxzdVT68Rzvtc6GcyjwAyuIAzzwIh%2FwAy7QAy58iWPjwj24ggD%2Fb%2BnyMmrz8tDzumvuguVXV%2BXRvkZfW%2B9fY3Fgz7Boq0ZY9yRpq8bgOAAbwJkSE0AYhEIg2AcBjEFu28cSlxNnZ5Fn%2B%2BbQAicL323YSunYFuUTu9ZgO2xhT9rUJqZm%2B6pw25F1Z1n0KhRyL65ynylz16VzL9EW%2B1UKg8bxfkbyHunbcm4cq3aH2ihrqy1sq4ZpvzBq73F82yp9o4Zrj%2Fa%2Bwm4bz2nK1unK%2Bhh3b5d35xoeQ4ceNzdeW495Ey8gUyJ1pxKBj6qBlyqCb7dxw6d%2Fn4Z6fwZ%2BW7F%2BRzh%2F97GIjwaAN6d9%2FyRiZrh2%2FyeHA%2ByjkjeQ6fWCku4bL%2FfM7m38%2Fwrv%2FFIx4A44jRc4dk8ScbsniI8pi4sGiXuGiecxio%2B3hE8UdI%2BkhecihhuThlOrkr8Sk4epk2srlIeGlHcGlT%2B4lTdmjqMRhaMZepMIjF%2BljH85km%2B4mDMTmc8tvez4nzYwwjZxRc6mBPO4uX4vmPurjdOuh7MtCf6LOnwgkkfxWE1xa4L3pYo3eFR6aHDbbaBvZcl5QnK5Nnr5OOl5mBc60K56Z6hDOCzCEwyBEAzBEfwBNvDCT5ZBEARBKdD4pfNVphPIF36gvrnDq0%2B5j4c3kAPHFfg6sINGqIOGQaqwnI8gRP4VpSf7awu4kYpqsofDuKNDPEQXgI57ODw6jv9%2FzDPkAALAe7wjwAnoQVeqAAIYwCIstbBXFrH3DjYgQRIIfBJAQR78wSJgg4izeXNA%2BGvce75XJrVnyKiTl5YjrzpsQhcMfBcA%2B7OZlTtMgsDHAaSq%2BYnguarTEDoQQhCoQMvngB0k%2FGfkmDssQstDwYtK%2FGeYrzo8wwzIuwdIgLwvgrO3ALxPwr7TeWesMJp7hjoIQ9DLe7ybwCY4O3AsPHA0vGsUPQIc%2FbQ%2FizpAJNg35MV3xpCAvbJzyBbHOhREPbxXwTP4mVnFgx0YgAEEQbyWPHtndhR1wxG0PQK0wCYI4swTArznAM6T72nsvBDEexKkwjPUQhx4ALyLgDD%2BbEbHJXuyM8fWd33H6RtnIHtwaL5IqYO5U%2Fo1bIfn64jqHzfTw%2FozWMDfw7sFCD6AXP1vZL1qcH7Etwalo4MwwH23w%2Fp1CEM4JPvZc8bZg%2F0zhMNmUDrPBz86SMfzP4MwdIPvDzk%2FhUMS%2FLy8B4FoyL0dwPsR4L2dP%2BfJ%2B1OvqkM3BEG8W4AOTD68e4Dld4Y3AIPYXyXyckjhI8DhrzdAoBM4EFi2gQLVHVQ4MOFChw8FRjHWEGLFh%2Bo8IdBYxZ07dermTZKgsUy8bnHI5AnGJYcbYTM0TvJIiEyZMsK6uSHTB92iKjrIlKLorlacJDnIVLr28Q8ZMpMaqqP5lKL%2BRavo3IHR5O5q16vqnlkgWcqToSojEajoRlFdvI%2FxuDKM51Zdx7h1PcJFlw2YV78W4wECFO9v1xYx4x4s6C5YmRkWRATpEy5qODs5LLQgUytIjip1L%2BcwBGVDi0Um4%2BTw4CHIInTlbqmzrNrCiSCGPha%2B6k4TmMSF49nRiGCIJ2ybcgwndBeuu2vXfqPD27aqu7l1684TjuBIYuvTFcam6%2FZgW712yetG2MwBAPfv4ceXP58%2BgATNqqp3tx1BFWFgy9DIgCvicoccW7oJp6OoFqwrHAU%2F4mqtAgnRKIeoCEtwQYGAIWdBjyZkqMEMO1IvoolMfCieODSyIJjqjrD%2BUB1pLDAgs%2BFKgQmBSezpQ8Au1BEGAQNOiNEAjRbIgyt3FhFrOAagCCceKAwwYIaEwNpgSEOiSzGrrVIsDCwnDbGno3kMGW6RAmux44gj3JhEOumEcSPOVKo4whDKwvEpiDJc4ytM3QIbbFCHDtuxyw47EWG44Y6gTLYYBbRSASvbquJIJw34A50gHtUoiXJ4QYfSUMnI71CseuuyK3W6OUFU7OKRxlEJuljSlz6SCKIJMUrxTpg%2FnjjCDlkS%2B8POVf7485k8NOpOOnUmcSOILgjpJjF1eClqCDg9yU2dWuzc06wk8nhGVa%2FUYa%2B%2Bd%2BGd7751%2FYJVBVE9ks4dIRD%2BMOEzrDyRggURWjBWUlne7KOWKlqYgYwE%2B8ghskUScqdCBC7EqpYuJIYhiTKw%2BYgWJI5wQhg7dIjMU%2BlqeTOPbsiY4YQnoDJRInpNdCcJGRWKxw2NTggHGw9CncGcRDfxxMlI3RHGSQREmAGtE9ZyWiMRYFBAozjmKUUjCWqpaxGg11oVK61cNXuhMTVaDiF0EuVIujKejlZddyapcgZHEbAAG2l0CPUIZohRu6tCCTMcbsQWIoYWWfvOczgo2vpjuB04Hu7CeK4YboMTPOjGx8ihcBIPYrxGwIM%2BfBouFZxzblW%2FSXD0jhBCagkHq0m0fFSCP5Y0hOjhJHCjoRb%2BjkzUAEIs5y5fKIr2hKuEvKgbgSsmXOTIDUAdTgSh1Gu3vXjJh3feMDEaTiaGgimlbLzRejQIBTfRyIMNjtQoiCCqHI5Li2WkjlXw7VE5wIY7KqG1tAxpOGXoSP0Q0ALk5Q8BwFPPzQynjsAhAAqJGwiTvlaLbgxPBZ2YBMUSVYbeReojVsPYM9yRJgQoIBXzIINGhqAtkUAtZBuMA1yeoJEuePBQX0qb4hASlrZ5B3oImAFWRtc3AuagG%2FGA4HAMwJHuSaAFThJCX5BYEcQhMVHrU8gyxGA%2FT8zDHSzSSCfckRzuoGMe6JDj5jqHgA2kohulCMe9EFAme9DOicD%2BuJgKPEFHO8RhEt1AIm98ox8ZUq06%2BQLL8Ag2PKoRxUkiUIEC14QOHRHvWdHqSIA0ogJM3g2VeuSbASgHwuGcAHIISALsKiK%2B8u2SPufzEgQ3oK7yiGtoGqGBE7qHgFpYkXi9UiACTpCE3umgLRe7kDlmkDwnCAEtp6kEA4bTAifwzQLCYOZwgpAEJz3xgihSmwY10kGFAFCPOBleHMzElcMoAC0woAydnHQadRRTAatQh47iIA1hPENHpbDHdi7UjVsFS21GDONFlIgAtwmEcxq50jOGlwSc%2FAEtebDHFWeQijysghL2E4on%2BFaJI4ZxjIorY5eIwQKS1PEjPkT%2FB9%2FgiI54NA%2BPGnGCW%2BKRipEoIA%2BLWIQhtJQBW6TiUTMjxDPmgUv9yI5QqMzYRTbRAg%2FMQFu0qIAeYbgzBARBGuoYHTtHaYdN%2FHA7R4jHM3pHiIF2Lw%2FzqAVauvAMbPwsJvMYWzwdWQWyadUhuuTlY9%2Fjy5xtJ2j0AssVgrADYNgjHnKcxDyuWKZwQK4Fz7AHtHgYD2sOtAudMa09KPWHeHxTf%2BEYJFpScU4EkMEdPdJIMBm7EAy%2Bs3tfHYjPgCa04ZlxcY%2FaQNgAigCwfQSkM5QFNnonAe1KQIGEiIcwtCQBX2TEiYqz6EXXltGNClWxTsSb%2FWAIkvbewB1X%2FKx1%2FtoLhW48IxztjcNMkVhTw920cTTQCJcE4g4nbO2nGgFfDGXUUQQMESstxSIFESDTLoSqb10IIyQBDJF4tNe4DDHxfvsYhwxoJJGQW8R%2BhXGrF%2BnIrh0JTrRCArRnPKMbzQvCPNzYgmm5g1JQsMdhxduRTixWN46F7GMlqx%2FKlo0hbJnLMSpBiCr0rg8nTW5dKFUSdchCa8FUbQDjMY9u1GIRXTCBRrhgD9oG0i0EXcU5FVALj9SizMIszHDNhty%2B%2Fac83btSMRHwuoEk6lFCwJLVJPCiS1oXuzO0wKUtsIEKWOCHRNZIHlDpBiIWEW3oTa%2BT1ivhGQj6q%2B%2BFJjog%2FijeigVRuhuwNVquMGpTC1Uwuj4UgRWS0wMnTmcM5htF4yHDok6YMPX9mg50kAMd7C8HlYDLJKBAwAOHuDAg1k%2FzRNDWgzyIPGCJQxC0RMFJBAMtmbY1KN2hIy4k7sbcsYcbJWDrDayz2NejtxthIEu11AWClGyyu54MZfyEydnWZQs2aoEVOlXhzf3TyB%2B8DE3KeBoBdnALn9F6ZoxRtwuftPiE5QxOBGzCI3id4Z0hKIK1CLDPwVUIoFflDvIiwAkjat5u5yGN4SlaIIkyTe%2FWFCSxRJq6RCsoOgC5CGwIQxmVoAWPsXLYGdzLAtCtaKl3zRD1bmuDRvZqQ9yx%2F%2BRXQ1AF%2F3QHrRmw3e1SOOzH7TUZY8LZuczFHcTgFwez6g6Jtg0dkOuCmeJBqWVTWB3BEEs54fKMSdQCG7wQRioWIUJPxAFyR7C5V7ytG1lKYBWJiUcXWtAFoTyD0SpAwooR4IlaEE%2Fu2l0TQuld13trJO61D51az5B7jbRAHVpPcMGp%2FBcnJ7x8UW7yKtBiCA%2FGgwwLyEEewAJICwzBDjrCeME3TimPj6vPIs%2BYDo4kAR24YQhCTLl0%2F5Oll5%2BzsjRH6%2BcHgnOzJfMJ7jsZWjxAGNxB6DSC6JprEezhhiKIMiBN0qqLhuahiW7JHmTBA4okbOxFfvBvN8Cu7tgmkP%2ByCiQ8AS0IwR5kqO0SYh4I60rYzu1o7QqeIReEQRZqgRZsoe4OQsDUJlGw5Q980AcXgRj0AEnKoBZSof1CLo8koAxKob1GTsLoTpREZS0UkAZsIY8MqCOaKFfMi6vExOX87S2EgWgMIAnsgbBaYBPM4RpQQI%2BkAdEM4RmCoRZKoRawTkdCSah072JmQBiCQRhWQRaCQV3OLiHiYcE46Mg0AgaOj8nEBOGYr%2FkWblB0pLSQKhjIcAfeoXlYQKbsYYO%2B78s4bvxAzsysKR4I6XvUwR64wP1oSwLiz%2BUKiv5mbhVqTjf071Aab3iuJn7obEaGjiLK6Lv4hmsasOlmKLf%2FrmgHuACQVCBkhKqVAonb%2FuK8PDCj7EAOg4EQIEcEYOivhOgjBmhrMg4FoSiVTCscdKAFdgARqDHQ7s6mOExARMAWsuFUVO7TPGIM5%2FEJ84juZAmaWkCB4oAYlMZ%2BcgCQFKULI0k%2FWlGIcCIVYOBrKGEekJAM7MEeKAGcJCBY5KgL5sEeSuEEZqAKQgYP46Le7KoWOHITMpIMVCAH%2BkC39EodDCH6FBEBGBErkG8DpQMSIzFenE%2F0ZMiJFgHzGA0BNwwBdoAY6mGHKijjKmsUP678rGkemqft%2FIpvDu8VY1FLZrEn7Q%2B4cNGdMkgWRulRREAPsIRGjsQAT6BK1iQe%2F%2Fog%2FYRBSDTCF6irRhKtLgiLgfpFFqJCqexH3AzHGsPuA%2BWOeNxROpywYZzkGc%2FJHMGCbzQjmWQKBzkqHgesH9PCFryhG6DAFz1ASTgqFeQIY5Zyc9orCtXBDsSif5aQVPBmePrHAoznkbxQTLohNSXgBPIRCqxDATfADeKAgHikKIWADGTFAHLAHKQQAfJQJT2CUjagC5JgJJaHK7pHAWZAajTiBqrosHay4QzuEccnKIVyEtFHGn3xMyBMI3bACZ6my8APzDSCFK3SQuIhdZyoCnixKznyK%2BdPLG3x%2FsrSJ3ejGwgBCqBt2vLgGEpFILrBDuzEz9ChD%2BwEA0%2FCTv88oUPdABor9EIrhhKe4EG9gBZ%2B46CM6h39AjF3LUh8US0RIXHAIpmGwwRYDm%2BqRAT%2BqcI4ZTjwYBk0czMNRXFSYROUdEmXtBTs8SNSwULd4A9gCCFk4RmEwRM8YRN6wqM%2BohaU1OsSrE3sxA2CBTawYljK9A8E8MN28ws3SHBmrhZs0wAUYMUMwOPQoYkAUwT0DG7kMiXjoEqCYB%2BVJ3%2BAhE50KlRy4G60xwBUoBENIHR8cvnUsz6GssnUwQ2sRwKqQFLCoYmqRAJgwgCC4Jx8tC6EoEp%2BaMy%2B5hmGSm8%2BYimrRAECx0rQIYE0wgGdRBmvZuaoqm8w1C9y0Wym4yP%2F6gJNP%2Bg6DsI60sM8yGPvmpVZE8wj6uIanAEh3AG00IISXBT0OjAxu0EMvsApzJUMrmpFzWERguA7W6JKx8Up4kB3PghPvnMGaGYcwEgzddBY7eJf7aIgEGLv8iXBhMACPOAIpMEe1KG95AY8FAJayUNZ64JgFXQ33lRMwoEQhuBej8A1ogJhvvMIGqESnKIme6Jdv7MM%2FMwOnEIwEWITThZLnqEMcuA7dQBlpcMW8EBlc8AOyiZeycAOECIY5JVe0fNS1%2FNiF4Io4qAKrqAKyuB1KiMPpKAJphYbnEpOnmFrEcITnIpDnWoRGNCpuPQjzKIKuqAT%2BsSpusEWEMFt%2FwWibaUOLLYWOgdqbJH2L4oVvZS1SIshW8clCbZs%2BH70MMO17niBHfbOYh3CWiPEyvQiYiG3IwSlSPs17AS2ItzBDfLnBJxglPLQL%2F4WB0MvRbADWesiYpHVOaAjPbBCdQsWK6h1YCdXX2RXIRZXdiV3W%2FjORCxVaeUjU4HXWWtXW8mBGOjCLvSlRLR1dpm3eb2DYLGiRDrEeavVkqJXem3GLOuudHEwcKUjGC5FTb4VXMGkSG%2BhHIp0L%2FYVBzN31zYXIgYqNSnICdQDfMPudHHQGbK1fde3SINXeOGDeNHLG26wfedXM%2Fv2ovQ37MQXVvYmanDjomA07AK4SC%2BXX%2F85EwcX%2BCL6BAre5AiqgBLmpDAe2NT4t%2B78t33RIYNxcIAJ2D0M%2BKIQ2IU%2FuO4aOIxS2NTEl0K7wZHO90UTF4PZV4Pft%2B7i19RyuLEAFntR%2BBbad4XDroUB%2BIhjGChnuIDZEwdvWIENon13GIl6GL1%2BeFqYtisueNdgGAc3GH47uO6a2NTK2E0bUjOtWH2x2AO1eItpuIvr7ouLdI5NbYwVp47D6IxNt4jZeI%2Fr7o2VOI41N4w1E5EZcojDJI81s40Ts4%2F9uIbDSJA1k5DRy5ANx5IVR5Hrbo1NjZPDDpLDbonRi5R5WIqLlIp3TZNx0JVNTYZnGJSRSJQ9mJIZ2Hv%2Fww6VDUeV95eRW9mRXzmJY1mS5ZeYv9eWNROXTU2X646X0cuXH6sB3gWYFUeY5ZiaddiYdw2Z1UaZd42V0Yub0QuWd02WL4qWydiaTTdjc%2Fl%2F9ViAPfk9UoAVXAEXcKEIACCgCbqgAUADIEEcXMEGegmQw46cJ9mFTVlt1Nls2FmFmfmdnXnX5NnU6DmM7PmQ8XmV9Tmb%2BXmTP7qb%2F9k9poAfrGEYrEEJAGALZJqmbRoS8CEQxMEa0pOL01g3KHqaLRqd6fik626j0cudLwqeLyqk0WukkaikT1mp2zml0Uubjdifg1o%2BAkEeQgA%2BAmEdNOA9NEAeLuGm%2B8Ggh1ei%2F3etqJnYnMPuos0mo1eFqS24o5%2B6peMZmudZmue6ffF6ULB5q1d6l%2F06jLyZFehhGIYhDNzDsSFbsm2AH%2FgAAICAH9SAPpoBk1PEGwBbfr3hqEE7f7F6n6cYDEDhtNUDqsNIqi%2BKqhUHGEq7SAub4UDhjvs3sbd5il%2BaAHDBGviAFfhhCgiApvnAFfhBCS5bDgDgB%2FhhDgCgCA7hurHbFoBhu7m7u737u8E7vMHbFmJBvM37vNEbGGLhFtK7vd0bGIwgE4rhvelbvMu7vvHbu2PhvvM7v5chCyRhvvs7v2NBuwccv2%2BBvw%2F8vZeBDuhgGRa8vtc7wumbvCn8vYtBEv%2ByAMIvvL33u8PdW8FB3LxpIQHexQHaI61DAQBQHAA%2BQK2fO7r5AbpLoAhs3MaVgBayYcd5vMd9%2FMeBPMiB3BluQciN%2FMiRPBtuoRiSvMmdPBuY4BWefMqF3Bligcqx%2FMe3O8u5PBvGAcC9ocuzPBacQcyxvBjs0cynfBz2YA%2FGQc2n3BaYHM6d3Mrp3Mm9QcPf%2FM6TfMv5PMnJ%2FM%2BRvMTrowF%2BoARYfB1YgQAOPdFDIQXw4RAAQAn6YQrmgwA%2Bu31FG4dvu0glwrWj2IW5mqNb%2B4rbV7ZpSrBnma6Teop3G9QLY9Sb%2BZZfmgPkYRheIAw4O61xfQw4O7nFwQYuAR%2F%2FUkBe4NrU5HrVj3qo%2FyK3w0SvP4yvwwi2kQjVA0zV65nV%2FTa1m1qrL0rWPdqr32UL5AEf8OES2oPczR3dq3sd9AEfOtvYmf0vkj3blx23ud2MfbudpR2JqF1xrF1xaNtwrBqj892OYf0vwL2vxf1dQqAIIPo9Hj4G4EMDiuAFMPXYDziBB1nbSxmpt92Fof2R%2Bl1x%2Ft1wAt5wBl5tCv6uD143eZuF972RG96PhVrTOX6UPf6i7HpVnD1FRt68St5wTl5tUl5tVt5sWt7nX%2F6S23fhp32xkcibhVecDafeSXrnw6jnD%2BXnTSToETd9WfrUR3uqsT3rCbvpD9Pbwwjq%2Fv1d6hWH6pXW6tUG66ta65GI6wfF69UD7L9O7BWb7Ns36Vdl6bte7SuK7ZHI7U0e7jPopQmY7s3G7msb7xVH78OE73XD783GqaNe8DH37O8%2B7adY8RWH8Yne8d8J8qte420454f53isZ8dd55pt66NWm6M3m6OHxSHWe9G%2FZ9A0H9XNf9Y2V9efe9UMZ9stZ9nFQ8wuD83MO981G91eF91eF8A%2FF8Pee9nNO%2BNWG%2BKvf%2BFdF7i9V8leF8gne8g0H81ME%2Bv9C%2BkkN8LeZ%2FK%2B%2F7Gdb9Csf%2BK8Z%2FM0GIJw5Q0ewoMGDCBMqTHir3MKHECGqa%2BYAgMWLGDNq3MgRQIJm%2FuoiihxZ0JstkigjAsuWsqXCKMZCupyJrtwtmjiLDcTp0h0YTe54umwotGU2YEVTxgMEKF5SlCufkrQpdaQ7TWCCVo0ocKtIol4XTqzYsaxZjR9lhlVocu3DqG5fxoyLkCpdhDrvHvQJVK9BsH7RHQ1McGlTwujgBrYb%2BGpWxF0RA9Y79qzls2kRt0WsODBMtXoZB85LmK%2FWwJP1DiZs2CnhzqFvlsZ62m9kwqnpVr7Me2Nmwptfs0T8mbBov6Qb%2F6ytNzfd1YFbcx6%2BWHZj2pB34nYYeHfv7xZ%2FBw4eGLbe4tURo0vu17Rk7oGh%2B5UuHPHxu46Z372NGj5liuAF%2FiieX%2BT5Zd5d6Pl1313s6eXedojJpxd95VGnoHXtYUcYf34555Z3AfI2oF4F6nUgXQnGpl6D%2BC33XoRIscaUaxXah6GDGgbGYXP%2B3QViiJaNeFeJd50YV4p3LUgXi3Q92B%2BMiFFooIUqzvbYhto92R2AQIoIkmYnTaceknQpGReTcTnZYY93SXiXlCZSmeSN%2BOVoW5ZrEvZjl2UJSReRdBnpFplxmekWmm6pySOUMh5Wn3F0NmmnXjve5eFae%2FLJkZ9xARqXoGsR6pahayG6lqKWsvlcjNHNKCakiOWXnXqXhpWppmh9CVyYjxIm6lqkhmVqWKjSVWtYbtIFZ5Fy%2FpYZaZqT7ofnoluShWufuo7Ha43EzZUeYsN6VWxcx3qVbFzLBtpsoc8mGi1dlRqr6odcXtsRp2556haoYf0aVrBehbvVuG6Vu9W5bqX76bqjtnvqu3HFS%2B68mNZrr2%2FZErjtlGN6e%2BGK0zbpIoSEIbyWwvsyDKzDxELslsQFU2yrxRdnhO9a%2Bq7Fr1f%2BegXwVgJXRfBaBldlclgo66zyvyyL6%2FJaMBMts1e31nxzWDmHtfNWPW%2F1c1VBSzV0WEVLdbRXSWu9tM9ND%2Fx0WFGTPfVWVV98tVdZe7V1VV1X9bVUYT81tldlP3X2VmnrvbbXbQv9tldxEz53VXXbe%2FdW%2F3lvtbdUfUv191OBJzX4VoUndXhViWu%2BuN%2BNi%2F34VpGTPrlUlV97eVWZV7X5U50%2F9XlSoRc1elWlF3W6VKnrvrrnrQv%2BelWxEz%2F7U7XjertUuUu1e1K9J%2FV7UcELNbxUxQt1%2FFPJa7%2B8782L%2FrxU0ZM%2FfVLVa3r9U9k%2FtX1R3Rf1vVDh48n4nlI%2BnpwvKenT3%2Fq81z7hve8p8SPg%2FIpSPz7dLyn5S8r%2BhNI%2FofyPJwHEyQCTUkCcHLAoCdTgAv3XQPE9MCkRJOEEhVLBLl2wKBksygZ50kGefDAnIUvTyLQUH1bNx1W9%2BpiV9AOvIE5MTzSr2UVuKJQcCmWHOOkhTv5%2BSJMQ0mSERSkhTU4olBTqcIUebKEAX1iUGIZxhjypIZCoyBMr8gSLNNEiTbg4Ey%2FOBIxCEeNMyMgTM14RjT5UowjZKBQ3BhKOOJFjiOiIEzviBI8z0eNM%2BOgSP%2FZkiHkqmREnhERufes6V9KRE2MGRWtJESOUpIklaYJJl2jSJZxsiSdbAkieCNIlhMSJIe%2BIyC0q8ouM5IkjfQlJmlTuBXXgwwouooRAhMFa1dyCK2GZMRJtLE4dA82cQBYrUFKriFEqJcdgtcRZvahaZSkCPdYhD3m8AABh2Ic49HEJAuBTn%2Fz0Z67EOaRvMiuc7CTMLlPSS5z80iijfJM6wf6Z0Ayl8k60auZMqkaAYVjDAS%2FAhRIIIA5cOIAP%2FLABSU2KUhtgjKB%2FMqi6EHrK0aySWOZMFaNa5ShTKhGVTIzYTeXWyo6kAB%2BHsEERKvICfQQCAEXoxxZS4FSo9iMMGyFAM%2BKhjq569atgDatYxwpWd4yDGO4gq1rXulZ3EGMcaWWrXOfa1ShQg6t0zetY08oLvfpVrO64xjXi%2BtfC1gMMoMBrYQvLi3IQdrF5NStaIfvXegBCEPWgrF%2FdClfNRrYcvHisZ9kaD1CAIbOjnWtgB5tauvZVtK0VazymsU2M2AAf4hDHPYahARvwQw4A6AE%2F4OBb4P7gtwAIwQ%2BWu%2F%2FcIlgCFNCNrnSnS93qWre6mpDEdbfL3e6CQhLa9a54x%2BsDR4z3vNzNribQy97qgre98I0uKZgACFLEN76SWO992%2Fve%2FbKXFGAAg339i97%2BEni82T3weUmxhygMWMHeNTCE05vfCXvXEgXoiA30YY0QAGEfciguAIor4uMCVwmQSHGKDxHgFrv4xTCOsYxnDIYs0PjGOKaxjXPM4x6DwQdW8LGQdTzkIsM4Czs2spJ9wAQlOznJTh4ykqNsZB%2F4gMpFnjKWhQzlLeeYCVf2co%2B1LOYcd7nMM9ZChjnyAnxAAgAkvQRVnxrVMKRgH3ywKlY1EoCtuuPPgA60oAdN6EL%2BD%2FocaDW0ohfN6Lcy%2BtGQ%2FnM83GHXSUf60oZmR2gxzWlCC7bToAb0YUlRj1CHmhfsMDWox7EMVXfasph1NaeXAVdZX5odibY1pOth2lLrGtKf%2FjWkUS1sRsdDG7W9iAOs8dGjHsIB63AFAeSQUmizYtopfSmY1FPLltyyJblMyUJR0lCaPDQlwaTJMC9ZzD0e84%2FJxMkyHapRl9RtC%2FpMBzzuSe1h4OPaAKgDP%2FwdCoHarJsF5Xa78%2BixKil0qAPLqbx2esSerrOmOLoopSAuu6LGExKBuCectwAJOWjAIgQguck3hfCYKpymP7VpOftCMnQ2ikYXj3nGg%2Foyjkv%2Fz%2BOv5CZMOyXThcHc4TIvjcSfKMp0WpyiGK%2BTxqWVUaAHPTwtJ%2FrLuzX0lZFT6TQnol%2FSPZN103LhuHx3T%2BJNk3mbu94tkaSAsp6voqfs6OMEl88Ft3RWNv3mr4q6pKbexKrD8%2BpTpDvO7K40vDvr68o\ JeyhtzlOcQ13nUuc51PYuQatfPZYzmeVMup2Sb6ck3CgZN0nKPZNzo4TsLjH76NEObrXzku0zcXvr4Z4SuYMH9C4RvUtIjxLTowT1JFG9VfouNYqT8ukHrejO3Vnz%2FyRbisBvifBbQnySGH8qttcl54XHfKL%2BvfKBx%2FzgNQ%2B38b%2FR80HPfkq2n5Luj%2BT7%2FiNB%2FkiULxLWD4X36BZRyjJR0Sd40EJ4QmV4fuF73yF%2FKEF%2FUEF73tZwefdwM8d%2BkuN8EgV9MyV9mUd9YucjUfRKDkgSEEgS9icS%2BCcS%2BicS%2FBcR%2FtcSrkcSsNcSsjd8Enh84UduuOcSuvd%2F8EeCioc1jKc2jscukNce5ZeB51dxlleA6neAGAg77vdIQYh9Q4g3Rag4R9gwSeggS9hxTfh8T9iBBuguCNhzCmh9iJd4Xbd4W%2BcrFPh4eneB70R5Tph%2BSDd9WLKGInh9VpOFmLOFqtOFXleHYDeFPzeGG1iGRueB6weCk0cZwZAAbYh1b0iEcegZc4iEiBh5iig%2F%2Fxo4gBz4iGf4MGm4eX6oG5V4iR4hiLhDiMpjiEzzhS0ieec0dgKILgRohlGIhqEIQVXITHoSDIBoN7CIPbKoPrTINrYoMrioU4xIio54d5AohZKYi3%2FoiiU4Eic4EikYESsYES0YES8IETGYEjM4EjWoFL1oir%2BIisEIQ8NIb1cYiJmohZvoF%2BMIEeUIEef4EOmIEusoEu2IEjfIfTkIfrHSgy3xgzIIgCTBgL3RjSLxjSIRjhDRjw%2Fxjw8RkAsxkCRRkBFxkCSRkPW3kPm3g6vnkCkBkeookSNBkV6Sj4O4j%2BfRiV74iUoYjRM3jbxYitZ4ii2Tiu23inFBk5dhkf8RgZEqoZL3p5OHaIGJeIe66HTV2HjXCIzZKI0LOIJYaJOxiJMIIpW1yJNg6JNMh4dkqIcVaFHz2Eb1%2BHb3iIxiqYxkiSJm6YxoeYtxaYVAmTDvOJTxWJR%2FqUxzuXvFeIyWk4z4s4wK1IyM84xCpJZ%2Bx5aN6JZ0CFRd%2BZNfyZi245gYBJkqJJmsQ5mJEoaLiJnUqJmeyJl9aJXbeIlMCRFOCREa%2BRAcuRAeuRAgqRAiORIkCREmORIoGYE20pBGCTmJCYSH14a1%2BRC3%2BRZQqYJ7OZl9CY2HaY%2BBeTKDqZVE6TTLSYVISS%2BgaT2iiUOkeUamyTyoeSqqKYrdiTTfaYT%2FWymPnbmWbEib6VlF63lI7ck%2B74lTltl884k29cmF92mY%2BXmZ%2Bwmd%2FVlH%2F0lMAcpAAyou8dl5B4o4CVqICyqe29l2zRmRxWiJ%2FHmXj5mXR3Kdp5mdlRmiirmhqNOhs%2FihbjOe0DOiMVmXjYmio6mig8Ki7umiqVmg5seaQZmV9hmeNwqjPqijBCmTIqGUQRKhlTSh7FahLHShEWekTIikgimU4FmYINqgBrqArVgWBGADKoVyIfCmJUAWGvADKXAvVipLWHp2WppGXCo0GSpDo5ikrrmTsKlK5VkxxxgCuIAP%2BsAKFfED8oAP%2BMAPWwAAP5AO%2BkAPezZQ2zaoQeqj%2F3xKpPDppWIIpt4ppktKpk1qpkf6oBtxCfRQBGGAD5U6q3ygBnLwAh0lDj8QCvRQAtq2K0AaKkI6k2J1EB%2FUVX00EMqalk5KojKKPDTKjDbqODgKP1A6klIaEVXDAfLwZhoQAhUBCevwAsAKAM4GAErQD1MQrNoyrP1SrCLRDfRar%2FSKDpNGEP8TDvQaDj5YDP3ak8%2B6o9GKPtMamdXqOtcqjIc6M4B4W7gwDOvAB%2F40DPsQqaHgACWGXATQsR6rAcEAquaTp7OnHkwgrxABDkEgAifQsi1rAjRQBZ0QEt%2BjDlAgAiJgCKB6DXqAs0cgsvb2E0DrUN4QqG7BDkzBDv%2BeijUsOZNYMbRdVAyIAQ7DKRZgGVz4sA5TMAeUSgCHkFRy0A9ssLFzAABTwApom7a2wAu30LZu%2B7ZwG7dyO7dxGwuxQLd4m7d6ewt2u7d%2B67dsawSZwLZ%2Fi7e8YAsogACKu7iMqwe80LeF27a8sAMIYABiQLiFGwt6YAAGwAK8gLmRG7m8kAWSALqhe7p8e7eou7qQu7qnywt0QAem67p%2F27q0m7mqe7uFywuSkAWzq7t5a7vAu7ex8LvDK7e8UAkmuhFNdQkAAG2hgBHQ61t5BgT8oAZw5gDaq70gqw7l8L3gG77iO77kW77iKxgnYb7qu77riw62wBLsG7%2FyC77%2FJ%2Bu986u%2B6gAOLaC4FoCzOKsAiusBz2AT4etV5vtVQaC4eMAO49tVBezADsGzPmu%2FD0zB94u%2FQnvBGky%2Bt1C0G%2FzBDpEN6QvCG4y0gMDAJKzB7gu%2FKXy%2F6OANN9HCF6wOTyvDLlwMUmvD90sUOhy%2F6mCMHaEB0fa88AAJGhAI7aoB8nAJGkAPb7YF%2FaAEWXWnoUeyOLinD7G%2FCHAF5tCvhiABijsJ6iAbaSUNz4ANf3YQ6uAO2PAM4TAPCYwAfeAUf7bG6PAMz%2BBV7tANz9ANWuEMxWAO4eCv6LDGaRUUeGzHovOn71ewCHSwpZmwzrOw9NiwVHO1AHAI%2FHAIl8AP%2F0rQAOIgD2oQCvtQBAAQCvjAB9YgDifHqcK6tPEKtQihxV0wD12VVicQxmPcVYuQBB6wASLwBKVwGu5QC0kgAhswA4sQx30wD6sQBEEQB6kQBBvgAUkgDOFQBiewASqQBwRxDY0AzV2wxnkAzaUwCTlQzUcwzItMqqt5lYCXRHv4gbFZfbPJEQ5wCOkgDmNgES%2FACutgDZWaXJewDsPwAywny8FnxQqJxQtBy%2BowyN1ACGAsAb6gDn1VBYyruBLQByGhDqkgAotrAAgAxnJsD5uguBsgASStuC2QA5y7uHkQWJtrADOgDvFQBSSdA5W7uBsgDAqNDsH5FdtakrsYpv9KqqBMaq0DixIwGaU8%2BrwGZxEOMNXPGwB2GtTzx9Ap6dAKocXcrAIqINIl%2FQfuAFp%2FsLgtUAW5rLibEBQzwL9VUAUbsLh9gNKLawFQcAQA7NJVoMUtYA48q7g5gNNX4NNVIASLGwfPOtQRUbULUZwicZwoWJ3%2B2LT955JOna3CWdQPQaWYQcULDa88g7IQocUbrbgiMAlnbQttDQVv%2FAxxjQA54A6pYNKLMA%2FzsAkLoLh3ndKKawj24A48jQAm8Ax4jQAW8AzcoAeEbdj86wnz4A5xDAWNzciAaar0iapKrapMzapf6qqfJ9rax9XIyXVSocUncAQ74AEeYNIIkNv%2FlcC%2FtRAU8QDcy70ILl3IBDHbv63SeewOSaC4UMBVtQDGG8Dczk3b0I0AQWDfbkDg1%2B3O8qndCMrdHrrUCtvUJPHU2hrV6KnVD2jele3VCUHL9qAO0oANtTDbMFAO840AItANHy0MFlDSwqDfCHDTBEHdvp3cJxAOazzgCBAHBo7gCv7c8XDYCNAFThEPZSDh5Efh9vZVBVEuVl7IXhV3koWVsIydhYpRsqkbmNyjnSrPOSni6EDLTtFV89AHKo0NMe4B2FDjNy4BOa64PF7IzAzkNC7gimvk6nDgCJDgza3kTO7k%2BBrlCGDdU87hBuEO4bAKqVDpz5BW6HAs6vAM%2F5UO1OogDJ2Oop%2BeCp5QCV5OP1tOnTaS6vRsqGOelGUemmrujSQOjpa9kaadxYr7BcP9Z%2FPA6Bsg5329CbY8D2ld6N0wCQF86eqADR7w48B9An9O5IJO6Ia%2B4IW95Iqr6FAu5eKD3dy6CDPAAIvrAV1w6cfiDoaguGUQD9re5EltEPHQBdse79KK4QQxyISMEJteC7UgDLg5HGs86wpRDrbg77Ww79hIGWu8I6me5QkB8Y%2Ft2VZ7nvZjpYYMaBKfENO5EEZiyASPf1osBItgCIawCFxg0jkADrYw2y2wCcIwCWRd4M9Q1whQBd2ADfQO7Yor7UMe6Ede6EnO4O%2FO7f%2BM7ujfTuUzGeGpbdyp0FjouO4I0O5Fb%2B%2BFcQWcywVW%2F8gY%2Fukz0AIzkMcI0e03r3lRIel%2FUAsEXxe2INIMkAprjxCyohfCEAzB0CDdYPcAf8d2%2FwwL8Qx23w0f%2FpyIR0cqPgmIPwmUIAx47MfSWesZuS6fPgmLAPd8k%2BsP3fSMuwiaRgnwDd8iANTusPMyTtY8jwA%2BD%2BhFHvTXjuj1vujeLkDgHpJwrtJV4AazveO2AB%2B3DBrqzu7unuiKVRAQr8dlIAIecAa1MfAE0az3Hu%2BDDsB4TlBQzrlIrxAroQ6bENelEPcGYfA2b%2FmR2CSTIAHmLwbXEOmLYP45sOjmr%2FX%2BCSHg5p8H9g7ZER%2FrIV52hNDS%2FLsBFgAQKv64Q1fQoEFvtg4uZNjQ4cODwLI5dIfIAIIZEDU%2BjGJM3UaQBlUgIFmypAdC6srdUrdopMkcqT4WvFLSwIkjCAzksbeJpIhu6twdMWDATTx1tUhKeMZNz8UZ6uJVKdolHrp4ZYo6IRgSojswmrp61ajumQiSOYLFu9qFpAE97NAJ7VbKkzR1M90ZIlmGbU0EXdxJe9bNYLdnhQ8%2Fk4buWTBaCgsSrLUJm7twicORBRkPEKCrG5NKQGBB2MyD7txYsMBlbF7YBSV280Ay1diCsRfmNci7oe6C5Wy12LBhFWrYqHcD9%2Br%2BThMY3JzJuoNSEsQv1O4WkYSB1S2CKqEXugtC0o54jbfKSWd%2FUF0zBwDkz6df3%2F59%2FAASNFNONt4fkwJEwI7%2BEJKsPQQloggRklpAkCOPHmSok0kqtLDCTZ4haCV03OnGEDJCXCSc19SZJMQ4nhGmwtOewTC3VCr05aNuLDTHGVoq9GQuWSqs5aOkKjxOwsnCik5CdwBEQAJZQlMHGxVyIKOScj5y4wSSPEjCF4L26usvksgQRgQPZgjKHS466EAwdaRpwQMRnnGjAw%2FKIEgdT3IgTQQyzlCTkCMf9Aw0kEYr7bSGpAkmmGdy8zCVUmQh0R2JlEELgU3CMWeycIL%2BKQUv1MLpphsS0alFUtzykqaUYEpFRzhhFt1sLnWEKaWURlP1sJRaSCzwq%2BcCJXI3YSwwCZGxtCMpo3i%2BC485d5JgrQ%2F0aC2Ql%2FVy821Yh96LLz9ww7Vvv187I2QpKK64IgjSlsxlprzckTeh3ngTCkjf7u1N3gLj3XYyYryZi1%2BD3KFkhhmuUE4od8oFqSOH2ZN3YoobDu4WR9mKx%2BLxNI7XYoZfI3gyedEpxpmRGUZuZCLBEovbgqZalqFnpMIWneoCPOFHLxHwKx7AulCnBZI8weylFkjcDoEW1OGCJC423qTdktqlFmasPqu221pIM61Ad%2BwwwQQyGu6GCxX%2BFFiyhS6eWaYREdRGAM5NGv6jBWNFSGJI7UQQwQ5CZpBAghYM6codYaBAy4IW8phLuBlM2FmoTXTYgKQNZjAE3me4WFwFN8KJeLxgsXYoHjsCDCK7pZn97gp7upEFm22fqaUWbPY1VZaglLNF07xs99V09%2BAT93hxyW0vnnMR2KCbedhqHoE%2FrvKwFkMMqeUYYgyyvRZ0hFmkV2FqmRGdUrSnVXxKNEztmVIISaUb8cLxpRJaPPTEkBln6uZ2YRQsHKsghCc0NDqHQIx4GuHQAjVyMgd%2BxUhYc4cTSCKY3RTkFuzgy5LKYIjyIOAIUungz4JmjzKQxA32KAUDllL%2Fi3kA5gz2%2BI5V0BFCD%2FThDzkoydVgNqit%2FaZrhypQVooChaskQUAGOEIxGnERmywChQKygEx6hhYoImABk2hYMIgWIMEI53IISEU8PGEsARnOLDMQ0BNEFxLnQCeCuQkHG0VIGgn8aDKt8w5JqhCHtIkACrW40xVa0AJAzSUccZiBBRRggiPcZi7CYIEKoCCMJIiAASooQ1Ac6C3khRI%2FymMP8zBXs7nQhiR5QIohVNAuCXhADJNJggQs0IXaLMAQOojlJEIogScIowtoFMHmDOKG2jSIEDCSwAKS0IdLSaAKotPO4HIwmU7kQG4b6MIbOaPAOTKkgeFkCATJOZ4J%2FsIsHC%2Fxi0PUkxOf5cMe5sBSHudRQjAFxh6eIIkOwmaSzRGNAamg4QXnMUQESHEe0jABSXzILSAWaohfY0hWSAKFeZSiQZ6ohR3kVolVDKFdOjiCLFLRLij8AZ46wEoHEaACO7hhjM8KYQv6UIZ2TaIdtkhmKuaRszLUohQhXJ07AHOCPKyGJAOBY%2Bnm6A6fLEkWX2xnh%2FjYLJIYK4si4Fl5DHCeJ%2B1AQBLoQ8NqobYNeCCLBqiCsIgESlHGdT6klI4pnQe9eMxjakvtiYCWKi94mqQUbFSABLLovADlUSgpFJAdGpaKrArIDfLiozvOKKAkmAOBCwHnOS%2Fm2YWY%2FxO0HUont9QRwraOp2G8wAaWEACFMsT2JZOwBz6BZtBuLO4ZSpRbFYbougvaY2kn8ORQHBpEBEVUNBNF1EIs%2Blp7TIIkAglGSyaRClt4wxyXWkX0qnBRe9hjaLa5Z5aCMQ97AKYK8zip84SRj3ykDjw77Wk8dHBRSiDmD6wyy%2BUkkAr4ShcBq2uqHJ%2BaMyHMgwwkIe5HlIWRPi4rDl1o1wiNOyCkKHFJSSiDay2winggFAFXsIMdN4BK4sFVrnGlK2fsKoEyxGHCY1RALeLhhIsEYROb4CECkgDYkhwBCkdAhx0lEIdOaBgBIliEIZLZh4OikQydwOmh4gHZBi1iEv4vyYFQ%2BFhkkhxhE4QY4yLcmsAIjXacoxUtaF125rp%2BFyMLM8QipMHaSxWlKG8hRG2%2FdNvAbEzOeRhJEHg4AzeQ5AxsqaE9GISAG8wkHolGwEOHpdyyMLeIjMWoL6hGuC4YjRjZyC1JSkGQHg8hpiVepZ8R0GWsMDYH7hCwCGQcB8C0ABw8JS8ZsriBIOThGRvjp%2FPcIGMyoBXFGokjnCVklmRKEaFmturMsLrkZ8xjHvK1wFrgaYeDyo2V8XjGF50Q4naRIR72aG%2BNNysdFa84lC32z%2FT8SoaPrMgOz7CHOxh7BCC%2FOi%2BGsWMS0EuJkig0hDyJA0mCEF57yPkP7P5dik%2Ft0TwaeHlZliWJCcIR3g5CwdmcTTNo1wzaNnv2zRTMQ1aD0RWz7EkP4LhUErrAhS6EqAuLKK%2FP8mkVWi%2BLNHZIoQWwtACZXLsLws0S7ToET0sTCdMQMRRFnctppOQBjSYJQnZLjYBTf10ne9YJ7DoI6werQB1KGvueDbABbPCajO54RghN0gEoF7vtUGTKZps9x%2F9gThjmqCNJhODgqzrrKv0t2jy%2BbQ8lqeCN8ehDg9Dh6SWdmvGKXWC85X08envFrgLygBt481g7DOEEcgP4hY8yFzBTb2MClkB1T%2BtQewiBwVDgvR27QPG5nensGsdIzzzAeyiEUPLfLP%2B5Z9XBC4%2B5R2NIMV3Kz7lymKkD8yKkXxJLogd19NgO8nRHHhaBKtsGDSliJ6PeEdBgpR%2B0XRM%2F6BijLqGpP6TqzT3Ic0WuDnuQkxwYI50QA3L4ulNbp2WpAt5TlyowhJ5DOwFrmg7aAOSrgiuoAjLYtZ6SClqDgrQpiRPTqNKAAgbEwCroAk%2FaiL%2Bbox6TgBM4ARVAI8V6MOAascVDQMczD3toOB87nKWRAGEQBq%2Bpmc3ToxQzns%2BbN%2F5YnuY5sj%2Fogz4wIJgTBh7aMzRqvW8TDzsys6BjGtG5vUqbh%2Ft6Cz3TiRy4sizBi57pMhvsmb3TiROYFa%2ForOubhCZwQC7%2FmoxJwMAMnIR3CwnrIyfsgxnVKIkZIIM4KMMBs4V2oDQLWIRn8EF7Sr8Lsh45e7%2FMIMDUUrqrKEMYswPXqjTkWh6tkagijJ7pcwf%2FC7FFsAOee4ZNCKEdOEDuih54IoN8iB5DmARfIJHh65AJNBEGA0B7qIVF%2BBTh6MBJQIROMhWtKxrMM43wEh8D2hSQaMHOKwWq8Su%2FsMEIu4IcvBRP2MEB6UGHk7Th6hSvOY0jDESy8LwlBJfQCwm7eh5V5JiCCKEcyANZoDQtNA8uJAkvnMAwDCEoC6EjyAM7sIM86APzcwcs8wA2HL437KATaEiHhEhDkA47JCcjeguuoCUo%2FzKAOChF9hjEcCpE01IHwBAQFRAGbCm3qimJsomHDlI3mQm0aiOJH1MHsSKJPYyHp0GAqFGHVNg6knAhUsSa%2FOMaPLqCEJlKMoBATqOhixCB%2BemGnGkCW1QhRBCG5tmARfiQpfAEV5NAy5OGZOIC2%2FmiJzgHuUuFcBCBouACbKgLY1GA2yjDIxCGZxCCi8gBOmQ2p1ogNFkKD1jMxUSjE5CGeEi8BukGVtyrPIqHx6M9GJKXnAkCd9C0d%2Bw8JZzH5GnCUhrLZeuNZ9hLXwivfwu48zCILpQXg8wLhLQHSksCiJMxSZTINRQKi2wdqFrD8JoENzAEWfDI5gNJSvuJ3v95hmQSSKxRyacqrexDhzi4lKXYEndQD3cIhh7LKnzrEERgjclyh2GyADuZJBGYFnmJA9ZogeIiA9b4AoLYJ8uxgL8pw%2FsTlFNcrm40CSaaoteaB2FIJgnYABqsBG9whyGwiUlAhy9yHrUxgCRoqWVxMAGTvCQpCQuApVJgh7mcBx90ng1olyQQCkqApa3bw2w8TNOBtjDpBmmQhm0oBj0oiT6TzIsqHzu6pgs7D2y4lBmYhFJYMJKAQNB8Bv9CwhgdTdKkR9OsK9Tsl9VUoWdYhEsJSAyTTYKkzQY5SIeaB1lol6BqHgMgBOCjSOBMC%2BKLinCAgTArBUowgSOCR3T%2F%2BMhwmrQAMZrhNInYdBSK%2BQ2KWRh3uIZrGNTrs04KwoYL%2BZGPUA%2FYKwUL4T%2FEUAx0uFTD8J7E2NRLdbqCQIzIaBPkTAVG6YbcWyWUrKv%2FzLQTHRxYhVUowM3BaSt3KIXw%2FIlFWIZsqKaSmLhaeNCqqQLa2YvB0QENHZwZ2Iwkic6X4iLhOIHBkSRkCpAhQKW%2BMQkPYKoCGzmJcanbgI1rKIYfBcdry6p22SJ5EdbzgMMAgYK8WNK9dFKskccoHZcpdbE%2FuIi%2BcwhGJMAlox%2FdM0nx%2BKKCnC4x3YmN6YLD8skOwbINqMgMfbDuoLUARQATSM2HWc49bU6B5FNADQ3E%2F7GDJLA5T9iWvEiFMyjZMlgFkEmFP8ADSpiEJ6gCQFzUl%2FmkQjUISRVUfdQWeGEO4EgO91CHbCAGuhujJzAMT7gUSvBWe2xVjQiHWFkUq7XamlEURpkM9MmeXtQQBUHK7JmERsmLTvBamfCfRQmgUF3bgsnSsb2MV7GFqp0Vumuy7EkF2JsMF8me3pwOGK1X3RuwhXCGa0idwooRa0NSMpjQDTCcp1NVq5rQ0uimeCWNDXBH6FwSes0%2BKL3X%2B6jHbFwEyYEBjc0NX7A7gcgBGSyFqRgbbkUHIRgbLoKqsQmCMISCsVGjRWqorFLBeI1BM%2FGysUlRWhsbIhPGFpAbCf%2FQAZdVTjzFP0qTVhGyzSVxrUCVqQB5AlRSh27IxKUog7kISQ8gDQOANUJk1HPq2dHKBmCYCyUTgRBcMrxwSqkti%2BTIX3z5l5CxGAUZGJbZ2XrhX%2F4V4JUQWgF2jwTu1gi6nVpITWdwhv%2B5HWmY4GCYi%2B8RFUP4gz8QhrEonwfWixrhYEPw4JkIh0q4nVkJBwcuzHr9XNCtD9EFCVEZFapDh1VIhflxh2ywBVJBhxouzBrGxkz94YII4twgNx02VX3sBltgBoMwh1GZFSk24g4JhyUGn%2BjNU44FPEobAqI5MWyojRYIoXaVryWJTtzNiyuAIgsgQMEAWZtgJZyFWpj%2FYV%2FQct%2B5wAa7g6IW2IQthoinJKf%2FVTOMGa0OCdx6ZQ50iGBr2V%2BgjZeNWRgEZoufRQdeIOBALhQYjuG5yld4%2B5duiQ1vIAbk6BdKpuTlYGR1GLWifeWiZWSy0FMvvqic2QQBqwILGhADRaMkqIVuYCwEyIN50LsuAMyc%2Ba95aM4g8AQ7qK46RmR0wGPP0mNF8oQ4cANtngTKJJ5BDqdCNrlDHi1tBC1HlmZqJid79WT9AOVzohdpDmfQouUIAtkqUJJsJglC2GU7gLyfuAypeIJ%2BUjA35Q07KgPcFLxJVjn1Jad0JidrHphV3GRBvt9zkudzOrnrU2RyOmdEfug5%2F1pnT57hCIJnRMboc6JnBwJZKJCFBUAAHeChPNKwfpYvgIuZDpqBCvqSmMnNhH4pb2LonB0tkJ6jiAatb54jlA4njSZEjg4njybqbAEtkY5hknYgkx6tpQ4nlV4gkHUCdMASBVAbFUAHmrYHmwbCjQOq0ABZ3ZzeFRRqO%2BaWoo6go%2FaspI6grY6gpl7Jp56jqAatuhbNb2FnGXZncspq0NrrCOpqb%2FZpJUMAJzDHfm45CPuIZV6WnTwCkRXWWaW0jEBklvSswV6guz6nvHYgxl6gvn6qv46gwCbtqXa%2BTmbnq14gxfas1V4gxzYdt7YHy%2Barb5uHVRA3oViFZEJoJf%2BJRNpsF0P4aSQS7YYOp9ImntMGSYsm5IlA5NaOoHL2rNhe39k%2Bp6oG3dsmnty%2B6O1G5N52ytzMqJIYKMyUzsHFiCAYoxPI2i9iAB3gpbQIB5ae65aZ7jmqbtO57j3NbnBeb3GW5u8%2Bp%2FB26PFW59oeacQOp%2FTWbmnmYoquK61gonj4ujmMhyAoipP0XrsTwbrpkFWg3GX5ESOyUAFHEgKPIAPHGgQHPAVXagb3rO52oAfvaGfY8Bs3rQq36gufowxf8A1vb0NsBCSAgj7ICzvgvTzIizzgvT1Uh3D4gyBQARVIxFx4DWywgxwAc0QrrkWoAiTAgxl%2FkNEWb2nO8Xr%2F3nG97vGMHmc3e20HinDqnvBwKu97PW%2FTWXIeb%2FIuDmno0wtLngy2WBkuZ9b%2BEAog3gzqcxREdfAad6Ai5xY6X2k7V208J6cfR0w%2BXyA%2FL3BAD%2BkjN%2B8kL%2BkD0epRJycnh5lSXyDq9O5NX6BOH5ZP9%2BpQX6DdNp1bN50gh%2BohR%2BdVjyCRdoAfePZnTwH5eIEt%2BAH6oHZrH6VXx%2BpYX%2BxZ5%2BpE52s9R7lkJ%2BddJ55eJ5Jf9%2BZgJ55hx5pip6BTJ55Ut%2FFl%2F6QK%2FwF%2F4Ad%2BwId%2BOAQAUIJ7uAd9CAT5mIKBL3ht73D2MPQ7R3SG54x4n85yd7NzN510l5B19%2B12N513%2F7f1cd9oAxuteuf0eyfs%2FNAAJVCCIggFerABArAGawiBQ9CHF4j5mYcEfHiB0N123O523f72Oap1bpl4mMl1IL94rMn4B9l4%2ByWUkxZ6BzL6YTl2wK54wT75JCzs%2FAgBeJADAEgBfAD4IuiHLQgBfDB4JTD7%2ByCAZnjzB%2FGG941ngZHmjoD79qD6YSl54gELUMD79mB6BHH6H%2Bp4rPn4og95QgSFkTdnrCdtB291ALgEcYiPHuCHOQCAy1cDG%2BAHsP8BzweAF5gC0if9LaCFCE591V991m9913f9YoiF15992q99Z4iFk7F93d99JniFbNh94Kd92Q9%2B4m99W7CF4v9P%2FtTPhiyQhN9X%2FuQffugv%2FmLghekv%2FmygAzp4%2FusHfl7I%2Fe4HfukPf9vPBknIAu4n%2F9o%2FfvXf%2FfFv%2F9fPBlpIgHARezWQD9AH%2B86Xg%2F0HgPwHCAA%2F%2BBAkGKgYsmIKFzJs6PAhRIfAYkWsaPFisVi2MHLsWMxIJo8iK1IcabIhr1snVxZblkXSMpYnYwGTadJWSZsel9GhE1OnR41APU4c2nGZpCw%2FjV7kxYspx5xQIyKjlQAA1qxaAajBlwJrDH58BPIL80IsgCL8xmzN2swdurhy59Kta%2FduXW%2FA8PLt6xcdMG9%2FBxNGF8UY3MKK795a7LiuM2ePJ6NzBwZUYsr%2Bi2%2BV0%2Bw4217PiuMBAhRPtOLAqAuXa7x6sDtQYDK%2F7hu59mDXuPm6a%2Bag7VZW1ghg1QAvFIAw%2FX44kIdcORDgCZqp293Xmy3rfYFl0873cHXvdVuLv1tMcnm6ljXRTo%2BOs%2Fu5oOPLJW2aflzu%2BNGRx%2B9O02z73bYffPSp4xtwWTmwDnJZHbLPJesM89sh%2BlwCz4TSUbcfdvsB1t1%2B4OHXH37n7bdee%2BkVSN98%2BNl3Gn76jahbfP8FiN%2BA%2BK3o3oG%2FJQiAA5BsoZUDfAxzyVdAGolkgtOFR1%2BH%2B8mIn4j0kUifif6BwR6BneHXIn0vSgmilTS6Z2OK5eVI347p9fj%2BI5xxavhkfFHGSCZ9VcZ3ZXxZ0odil%2FuBGZ%2BYd%2B7HZ3poCoiejl7G96ackcbpJIfZjemhnu4hmp6fNW6Zpnhtpjeoe4XSN%2BWeZiYKIKjerRmfqOJBKimtbVGKn52n4hlfpultWl6nZ34a6JehhVkajLoeqmp5iuLIKJuO8ohgrdVmdSuUlhoaojF0%2BsossNAKy2WjghpLKLKXzngiq4t6GKt3s1pbK7Z1aqsst96W96t4wSY6bLnF7mdqfKhqCq53ztL3qnvwaifvvJLW616uBe%2FqXq%2F7Iuydv80CHK25A6e7bZns3riwuA1L6ya1EdM6cXoVu2cwxt2uu1%2FH4gH%2FGjCL55Y6Mr4l%2B9fus%2B%2BuXB7ELk%2B6Ia73WoypzUKXmLLH5IIssItAP33zn0SjbDR%2BSSv9I8zlyZwezellLB6%2FHFOt88ewHl0eqekRPPPFGpvcqnYMqzh3vC2PvbS%2BZjuNN9SFe9e2djknHLfKIWd9H8mp7u0usY8KPjjZTGfrYdrlrb34xo2%2F%2FbjVckt%2BLOVBWz70yfH5XZ7D1onN%2BVZli3d2eaGLN7p2jFvnuHY7X92zyK1vLXWNXst%2Bune173Y77td6bi%2FoeYse9etTnwj536ujqzziXDcfu3uzhwr4w5tXn%2Fv1FB%2BOtva%2Fc3%2Bwh8RbZ7zqWLOe7PK6dz6%2BWUd9%2FtFjn%2B3c9z7rKc47vBOP77wDPOsIbzf62w3%2FIue%2F8QGwfMw7k%2FPSBz3tSA831Huf7hw4v97VT4L3%2B1b%2BRohB8NEOgdapW3nuRr9lXa5omZuWjxZoq%2FjFbIUQbKF2JribCuLmgrjJYPg2%2BDPy7dB8IERfegxIQhuaUIFCTKF2HuidCCbxhXrDmQyfSMP1iW%2BKHaziB1eFRTWlETclrM0JqwdG64hRO2S0jhJxw8TaOLE2UKxhG%2B2mNQ8K8IoE3I0WrXPH1%2BQRd3vcTR%2Bt88fdBLI2g3xNIV9zSDZKUZFUZCEPYfdI3ERyN5NcTSU5d0ncZHI3m8RNJ1%2FzydWEcjWj%2FjxgInO4SDg2Uo6rrE0r7chFPHpxgbOsTS1xc8va5HI1u0RNL1Hzyy0GUzw6RKUVjYk5ngFRiHOqVPYSF05O1VGUawRmKYV5yiOmsmtzFE8ya%2FNK1MRycM98TTRrM83XVBM11xRNNkWzTUkuszY49OYwwRnHZoUwi%2B18zT5F08%2Bx%2FXM1AX3NQFdTUNEc1DMJ9cxCXdnQ1zzUO9%2Bk5zp1VlE6gs1AzUQhEQ2XznzFtF8X1eY7uRlPiM5zjEhcYukwOFN8%2FhQ1GfXMRpXWUdR8dDUhRc1IPVNSzZxUMylVZjddGlGYTlSm93RVU0XzVM1E1WVTFU1VUXNV0WRVM1ul%2F0xXKfNVfa50NS3VzkuNWs8BjvN45TQn%2FBoYRiMKlqdl9en3UqdB5E3ujRItJkXP2re0ematlGlrxN7qmbiKZq6eqStl7jqZvE5mrxjtK2r%2Bap3A%2BvGogkzqE5eK1ppqLoiIxYpoNUNaz5hWM6idjGofw9rHuHY1nqWMbHdDW03a1pO4NaRuN8vbw%2F4WuDndHWNrq87Hui2yx3xtWAE71saSd3%2FZLSBnNfPcx4B2XsGlzHA1U1zKHPcxyXXMch3TXKfCVjTRxc10bVldXV5XlO%2BFZHwpM1%2FH1Nda951Mfimz38n01zH%2FXUyAFzNgtRbYMweuTYKluWBrNtiXD2ZlhP4nM%2BHFVLhaF35Mhiez4cd0eDEfVkyIFTPizpZYMyd%2BTYoFumKDtlibL0ZmjB8zY8VQLwWXuPKVh5QCSFw5FD8AUiCOlKQhKpaP4aXueDEbLvP%2B0D1HXk2SQbpkkjZZoU9%2BTT7Ra1PfbsUG4vjzOv4xlin0Ix3iWIcSAFChCGWIzOhUF5XMyLY6IzTKIg4qQ9M72%2FWKt6fFu%2FNq8uzcIk%2FmhAQggANYkSE%2ByCMExAGABpyTnH4UATgE%2BK4KdxrpMt82hmwmp5t9ZkrLklXNCQM1akRN4LDdFCtT0MeXARAK57Ai0TZAi1rSACQNcJvbJWjGPNwh7nGTu9zmPje6zf7tDV6ku93ufrc7iOENeNO73u5gAjXiYe99o1sdvFAHvwNe7mVEQ%2BAGd0c9wCAKfR884LwoR8MDzg1iRJzf9ShNPSq%2Bb2JwQ%2BP2Lge7yw1wj587HqIAQ8ZJDu9rXMPjI3%2B3v1%2B%2Bb5nbex7NJoA1GoTzdEBiGPoowrXlQBahT4EVRj%2B6OVrxiVGM4hNOf%2FonVHGKpbei6U5XRSumDnWot0IVXof6Kbw%2BC1pInelWP8UpRuF1prci62k3%2Byfargq1Nx3rbm97062uClrM4utPP4Xcrb71q6tdFVdvO%2BLRXnWnmz3sWtjE1AUP9a%2BPAu1PH0XXB%2F90rPud8VI%2FBS3ezv50xqfd61NPvNnr3vXCO73tis%2F60q9OC7Ib%2FvKAX7zmo856qiP%2B7mlfutlb0QZGKF3ym5%2F7JyzP%2BMznnvOdVzvaQz%2F30S%2B99Gu3u%2BibDvi5h731d8%2B83sfe%2Berjnfpb97rfMd97xf8%2B9a0YxCCKr%2Fm1Jx%2F5S8e68Tff9eejfe99F331Md31uV7qJR%2FedV%2FUud3tUV%2Fl0R7UVR4BNh%2F6ed76bV%2FeBd8gaIH8DR7dUZ3VqR3uceD%2B1V71hR0lUELZUd%2FbDaDbwZ36CeDhfR%2FcJZ%2F0bd3t%2FZ7mFR7ygWDvQeAHsl2zqUWiYUUIaAAAlAA9XELQDR1waAArdNeP2AAkQP5hghxCtFHhVoSCEWIhkTwhF2qFGoTBF2qFFY5hVmihGQrEIaRhcohhGpahGYZAg5ihDYxFGm7BkKQhK%2FAZFrLCFv7IIcDDFhJAChjhgoRCCuBDIACAEvRDHm5FqrGhFLIhJFzhGKKhGUZiGoYhG8KhGWLiGP7AGqZhGLihGXriF8ohG4oiG4aBGrDhHurhH9raMOBCVoSAPLBCCEwBP8gBzlnDlnlFE3ohHU5hGlYiG4LiF2qiGXLiG1riF4ZCCKQhK5KiKY4hKnKhKlLjKJphKaYhAcSiGfohnDSHMWJFV8gDPsSiEtADPuiDHbaFE0riOY4hMqahMnIhM46hM%2F%2BeIjRyoTRyYyte4xdmIxZuoxlWozcSJBaGIx9SITn%2BCAHYwJhhxQtsQRG8GgCkwBb8Y1bMYxpO4jF6JBXmIxbu4xf2IzaSJBQGZEJ24xh%2B4zOmIUKGIkx%2BoUyOoUPKIhZqACxI4iVQIkt2V0SOoQbY4ia%2B4kjC4jSaYRHUY0oqpRne4xiGADGGIlRyoRpI5RcSAC48JBTCwix2lw2woQOUZRq%2BwFhyoQ1o5BiiZRw2JR2uJRa2ZRo6wAuwYQjI5Ri%2BAFh210Tq5RSs4lD%2BFly%2BpVv%2BlgbYAF8C5l7u5atpwA80JucwZlZM5GFiZmIOTgj0wKsRwF5qgKsR4Q98wPv%2FnKUNBNFEroBWTGRevk8K%2FEAJKMhjjiYAhMAP0KW1pEAPzGIJ5KZW%2FKZuRsxZviYRhqaPFKcQEcBkZkUKpKZW8OZfusxz3uJjJidFnmZtOid0cud0SooDbCeQPOYfvkB34o5mfmQPzKZ6ViTn4KZcimZoZoV5bmbEgGZt%2Bshi8qVkUma1NEBthsBv4GcRRmZzCtEPpIM%2ByANDmpMS3AM%2BvGOiFcE6LOgjco4S9CJWOEAovGMo%2FAaHeuh31ooD4MI6%2BMgWRGiEftkUyIM%2BIBruvIA1RKg15KUT6gM%2BXMJv3GiONgDnEEAgRCg9CB1XqOg95OUWuOg6RIfLAGmEikOt%2FyUHPeiDOERbGExpleLOD4hDhB4CcWgAl%2BIDPyxiCPgcPnjp%2B8iBP7ihHNwDlaKlHLyjONTA%2B4TAOgzHRq5DhGpoClgDjsbj4ByCiqbDb%2FDBOwIjVhiqPiCq0kCCiorDbzjqk%2F5GkOrDMLiny4QALkQoOfqZPtCDUnoqqFaPGqijPAymtEWopZ6ao%2BoDLpjm4BTBPkSoOo7FD1SoPOThrVqo0mQoreLDHDCiO0poWuDqhf7oMFQpK7QaFRoqH6iBHKTAL%2F6AiQ4niY4BPWhocpTFFvDDK4ZBWYArVyrNC%2BACP0AqVhyCPMgBtApoOgzDDyTriEbKpirBFOADcsgBP%2F9sgRo4IgDoK7%2F6a6z%2BAyTYQCjoQ15GiBywgRxwWy5u6TDYp6T8QD%2FwgZ8Nw206B8RmrJeJQ8RyDi6kQw8EQj8k2g%2FoAyRAa60JqhLwAT9EaWVmqxi%2BQI7e6hPS7CXY7PtcQj%2FgqRLowyGoQR182SXQQxEcAj8cZpMOgzVAqxpMJD8cQhEkIQBcm9RSbZNawzBA6xicmtZyLXOOaRHgQ1ZGzCXggxKk6JCY6A%2Bc7VewrdtyTg%2FsQ8EOQ8Q6gDjgArSKYYbOwbMt4uCkgByw66ZmZLL%2BwLJqAAEc7rL6p6QILuHiw5fVAT48a7ROa7XCpiICAKENYXeFAjA2ZViMxRb%2F0BrnbIGF4AORhsKJEoA4PCHrOgABpMNVugze2i26AgAuXGpT%2FgA%2FaBsbJO3gEEAY5KHW6q44AIk8BCUuiAOqLS%2FnvAAfTGPp1towsEIJbGEjDmYgIKzLSCZxMC3n9sNgCmoIbK%2BiCePgvEBeToE%2FJFoY4EMRJAnOYWwiAu7gNECy4oMYKketXYI8OEDpRgcAw%2BrgJKk44Gmc%2FkCSLMgThgWRjk2sHUIKQABW6GtZssI6EAAGA4AGz2uC4GIgpICPiDAJJ%2Bo%2B5KUr5K7SxFpQimZ43sMUFoEjaoAMp4XAjk2QknARbqTqnnD6TiPTSuy8aMA6jEUK6MMidm4JKPH4%2F3pupq7D6oauRe4D6Zpu9fguG6SFt0Kh6%2BKDOkICAdAw3%2FZDg1qLDdjAC%2BiD0C0unlqDNTjAELsxEdMKASiBA0TIb2CAnqqjlxLaYG6BP6Aq7qgFH9QvADRA3jrA8eItUqInLghirIFx5c5arfUrzEZMCgyDPNRa8H4ZBqcBP4DyKFcPHyQhcUACP6jjpRoHcsTaHI4NH4jDvYqhy8YAAHRvCvDBPpRlIKQw56SAPKgB6BJHKKwyPrxqCNxwIpattfiuPNwDgwKAo36Fo4aAoFozPrDnvAABMsPDkHizOoIzNd%2FDNBat49YKze7uEQNADVhx1fbiC8DztQGqy0wb6%2F%2FiQvsiM4yGgiB68DpYa7VAAqECgDe%2FolqEwbUhdBePzSWgK85RshgnNCPmMOfQ8Cv6bgQjVpAEgg2QLEaacUWf8bzMcxvDcfjG8RADANOCcKTELqxdgsUeQskCMgAIMiEPzg%2FIgzVogCLbousOQwTkbSJrbR3XCgFcQlncZijIgRSOMrjWWhpgscsYbDvr65cFbw%2BoQSmzwXKYst3mpRzk7L1eAizD2nFwzg8YbQrsw5AEAj%2FkJS9Lr%2FfCtdLOSzjCrjUkasFuwT4cQgmQ7UbSgzNXi8FugQ1sagg46mwKaglAwj1oM6bSCuIiNid3ZihYdqsB8DRe8%2BDYAD6swxT%2FAOzoxjMfnMVY2AA8D84xQ4ISJPAYh8IU%2FIA1BLQGG%2BG0CTStJCKRqkVG%2Fy7FMvQWK80K4INSdnQdOiIZczFJz4tG43BzL5AGEDbFlvGxkus%2BEOkcGzUuDEf9HnWtwHR0KiL6li4UK81Oi8NXIDLeukIDNDJR%2FyjPbjRWBF31AsAnc44c9IMNgGt06OsLKAcRAEAdCG%2F1nLVWNG8KMEjGBuXYeCU8yIGgssIPdHD3loCF44NxukyGXoIc1PbTagXTCvMUJuJNHvD77nA5a0A2UzM9pHOtmLdWhIE%2FHC0%2BnLM86LacrHFQzu4lrPEiXhsbJPEi9oC2OrT3Bu%2BG77cN%2F1yIEbrCieIOG6iv78IBFyM2P2zxcisN5XLzR1L371b0dStNYE%2Bh%2F0JhCARCrZl4YC8iVxemOmc3VgCwBjhAWtO5nccya0d5CpThtdXBWQgdH3jv%2Bt7pmGkwAdjwFCK6Bgg25yCtVL7AIeQlEJhxdaevl1dLEVzCbIbBPxQBDQ8JJNCDBoS6i8M4eAYtkKwDLnCwUra0%2BKL28JooPMiDO8JB50rbibpvorGujsfJFsDDOtQ6PlhDCdSBGAa1IwtEP4xrxBytEY7BcoDrlzUvAfRrtbOwtShBIBghthdBt%2BM3f3N1Wa60BLP6qps19HZucwSlTQ%2BOy4LyPqQAtxcqP%2F%2BswKB%2FhTU88uC4wsf68Boqx2SeqSWPze7eopoDfJtzBT%2F0wAKFAj3UQQK7dMQYxzqoASvgg8O7wrpOfPXEQD8QaYer8mCOPD%2Fk9J7%2FRgrcgzikAS7QwwssrhSzOnjLSTj2gziEgiusYbdy2cveND%2F4fCZzOD%2BsIyvggg2swKKOgTXAg4D%2BmRzImsv4Li7IwTqIQ50ncB3cwwtrPdf%2FKC7Ao1KL4THzAdIKnb4GQsZvuO3WuVr4op0Og6FOYQhgyNz%2FaLc1r%2BLiQnarshjCNR%2FggjxM9rb%2FAyuowZ02QArQAy647CIufuOPqdJMwT%2BEAuJHLOVbvoQQwDoDPu7A9SH%2BkDwAnC0f1LYRkr7pRy89WIPVt7qnX0KpPqEN6EMoQDru2LmDA0AAsMKQejzvy4HHf688nKMRX3zGfxnHA38cL1AIPDTS1yUr5O0QpkAovC7bj00K4MIjMr01sMEAYEUawDEb1DytBMKHYsUPrDAuROkLVD8ico4T4oL8D8MUcjAcu6H9W0N004oa4IIrAAQuXMN%2BACiCSxyrHgAA2GAl7lIIhhMpVrQ4ccowcaFeMLThCqLEhiAjXjR5kmEISOKsqSEAQMMhlnJeNggkbtgUlDtNpsClhOEPhJA0MAQytChPpRMDXUq5suUAAA5kDgO6lOcWjZdSMFSi8ZADr2CtxWK9GGZrVwBoIZYYKy5QWbMmHQSyZm0MQw0rcRWEydfvXJMHIXYloMaaOEgitYrj81LwRQ2swlAMcUmcKxspMWuOTJEDri0UHYr7ybBEqIQdP%2B%2FUALn13NcVZ8dW6iDpRNy2lQbgAFsvb6Ua5OotLvwigdwMlSNvTvH5xOjIYR4nTvs4dejLAUzXjh289t3bK3pvPV43d%2FTUr1OsPfG9c%2FXzv5uMDxP49%2Fu1AwIAOw%3D%3D"; var provMapCoords = { imgWidth: 710, imgHeight: 708, mapWidth: 670, mapHeight: 670, leftMargin: 31, topMargin: 19 }; //raw deflate code (function(e){var t=32768;var n=0;var r=1;var i=2;var s=6;var o=true;var u=32768;var a=64;var f=1024*8;var l=2*t;var c=3;var h=258;var p=16;var d=8192;var v=13;if(d>u)alert("error: zip_INBUFSIZ is too small");if(t<<1>1<p-1)alert("error: zip_HASH_BITS is too large");if(v<8||h!=258)alert("error: Code too clever");var m=d;var g=1<9)e=9;ct=e;R=false;ut=false;if(U!=null)return;F=I=q=null;U=new Array(f);V=new Array(l);$=new Array(m);J=new Array(u+a);K=new Array(1<>>8}else{nn(e&255);nn(e>>>8)}};var sn=function(){Z=(Z<>7)])&255};var an=function(e,t,n){return e[t].fcx?st-x:w;var a=st+h;var f=V[n+s-1];var l=V[n+s];if(it>=ht)t>>=2;do{r=e;if(V[r+s]!=l||V[r+s-1]!=f||V[r]!=V[n]||V[++r]!=V[n+1]){continue}n+=2;r++;do{}while(V[++n]==V[++r]&&V[++n]==V[++r]&&V[++n]==V[++r]&&V[++n]==V[++r]&&V[++n]==V[++r]&&V[++n]==V[++r]&&V[++n]==V[++r]&&V[++n]==V[++r]&&ns){ot=e;s=i;if(o){if(i>=h)break}else{if(i>=pt)break}f=V[n+s-1];l=V[n+s]}}while((e=K[e&b])>u&&--t!=0);return s};var hn=function(){var e,n;var r=l-at-st;if(r==-1){r--}else if(st>=t+x){for(e=0;e=t?n-t:w)}for(e=0;e=t?n-t:w}r+=t}if(!ut){e=fn(V,st+at,r);if(e<=0)ut=true;else at+=e}};var pn=function(){while(at!=0&&I==null){var e;sn();if(et!=w&&st-et<=x){rt=cn(et);if(rt>at)rt=at}if(rt>=c){e=An(st-ot,rt-c);at-=rt;if(rt<=lt){rt--;do{st++;sn()}while(--rt!=0);st++}else{st+=rt;rt=0;Z=V[st]&255;Z=(Z<at)rt=at;if(rt==c&&st-ot>E){rt--}}if(it>=c&&rt<=it){var e;e=An(st-1-tt,it-c);at-=it-1;it-=2;do{st++;sn()}while(--it!=0);nt=0;rt=c-1;st++;if(e){Ln(0);Y=st}}else if(nt!=0){if(An(0,V[st-1]&255)){Ln(0);Y=st}st++;at--}else{nt=1;st++;at--}while(atI.len)i=I.len;for(s=0;sz-W)i=z-W;for(s=0;s>=7;for(;rs){l=s;p++}t[a].dl=l;if(a>i)continue;St[l]++;c=0;if(a>=r)c=n[a-r];h=t[a].fc;jt+=h*(l+c);if(o!=null)Ft+=h*(o[a].dl+c)}if(p==0)return;do{l=s-1;while(St[l]==0)l--;St[l]--;St[l+1]+=2;St[s]--;p-=2}while(p>0);for(l=s;l!=0;l--){a=St[l];while(a!=0){f=xt[--u];if(f>i)continue;if(t[f].dl!=l){jt+=(l-t[f].dl)*t[f].fc;t[f].fc=l}a--}}};var Sn=function(e,t){var n=new Array(N+1);var r=0;var i;var s;for(i=1;i<=N;i++){r=r+St[i-1]<<1;n[i]=r}for(s=0;s<=t;s++){var o=e[s].dl;if(o==0)continue;e[s].fc=Dn(n[o]++,o)}};var xn=function(e){var t=e.dyn_tree;var n=e.static_tree;var r=e.elems;var i,s;var o=-1;var u=r;Tt=0;Nt=B;for(i=0;i>1;i>=1;i--)wn(t,i);do{i=xt[T];xt[T]=xt[Tt--];wn(t,T);s=xt[T];xt[--Nt]=i;xt[--Nt]=s;t[u].fc=t[i].fc+t[s].fc;if(Ct[i]>Ct[s]+1)Ct[u]=Ct[i];else Ct[u]=Ct[s]+1;t[i].dl=t[s].dl=u;xt[T]=u++;wn(t,T)}while(Tt>=2);xt[--Nt]=xt[T];En(e);Sn(t,o)};var Tn=function(e,t){var n;var r=-1;var i;var s=e[0].dl;var o=0;var u=7;var a=4;if(s==0){u=138;a=3}e[t+1].dl=65535;for(n=0;n<=t;n++){i=s;s=e[n+1].dl;if(++o=3;e--){if(yt[Jt[e]].dl!=0)break}jt+=3*(e+1)+5+5+4;return e};var kn=function(e,t,n){var r;_n(e-257,5);_n(t-1,5);_n(n-4,4);for(r=0;r>3;s=Ft+3+7>>3;if(s<=t)t=s;if(u+4<=t&&Y>=0){var a;_n((n<<1)+e,3);Pn();rn(u);rn(~u);for(a=0;a2&&(_t&4095)==0){var n=_t*8;var r=st-Y;var i;for(i=0;i>=3;if(Dt>=1}while(i<_t);on(A,e)};var Mn=16;var _n=function(e,t){if(G>Mn-t){Q|=e<>Mn-G;G+=t-Mn}else{Q|=e<>=1;n<<=1}while(--t>0);return n>>1};var Pn=function(){if(G>8){rn(Q)}else if(G>0){nn(Q)}Q=0;G=0};var Hn=function(){if(z!=0){var e,t;e=Zt();if(I==null)I=q=e;else q=q.next=e;e.len=z-W;for(t=0;t0){var u=new Array(n);for(r=0;r', foodImgTiny: '', woodImgTiny: '', stoneImgTiny: '', oreImgTiny: '', astoneImgTiny: '', goldImg: '', foodImg: '', woodImg: '', stoneImg: '', oreImg: '', astoneImg: '', RightArrow: 'https://kabam1-a.akamaihd.net/kingdomsofcamelot/fb/e2/src/img/autoAttack/across_arrow.png', DownArrow: 'https://kabam1-a.akamaihd.net/kingdomsofcamelot/fb/e2/src/img/autoAttack/down_arrow.png', transport: '', reinforce: '', scouting: '', attacking: '', raidStopped: '', raidResting: '', returning: '', }; 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 0) { var cityId = Math.random() * 1234567; Seed.cities.push(Seed.cities[0]); } } setCities(); // TODO: Make sure WinPos is visible on-screen ? if (Options.ptWinPos == null || Options.ptWinPos.x == null || Options.ptWinPos.x == '' || isNaN(Options.ptWinPos.x)) { //logit ( 'Options.ptWinPos: '+ inspect (Options.ptWinPos, 5, 1)); var c = getClientCoords(document.getElementById('main_engagement_tabs')); Options.ptWinPos.x = c.x + 4; Options.ptWinPos.y = c.y + c.height; saveOptions(); } mainPop = new CPopup('ptmain', Options.ptWinPos.x, Options.ptWinPos.y, 750, 800, Options.ptWinDrag, function () { tabManager.hideTab(); Options.ptWinIsOpen = false; saveOptions(); }); GM_addStyle(gmstyles); if (Options.MoveFurniture) { GM_addStyle(trstyles); } mainPop.getMainDiv().innerHTML = ''; // FoodAlerts.init(); TowerAlerts.init(); MapDistanceFix.init(); AllianceReports.init(); messageNav.init(); PageNavigator.init(); ChatStuff.init(); AttackDialog.init(); battleReports.init(); CoordBox.init(); GMTclock.init(); DispReport.init(); mapinfoFix.init(); MarchUnitsFix.init(); LoadCapFix.init(); ApothTimeFix.init(); TRAetherCostFix.init(); mmbImageFix.init(); ChatTimeFix.init(); bypassMulti.init(); BarbRaidMarchPatch.init(); MapDoubleClickFix.init(); towho.init(); cdtd.init(); tabManager.init(mainPop.getMainDiv()); AudioManager.init(); AllianceReportsCheck.init(); // uW.cm.unitFrontendType["9"] = "specialist"; //change type of wagons from siege to avoid siege load bug uW.cm.unitFrontendType["15"] = "specialist"; //change type of siege walls from siege to avoid siege load bug if (Options.ptWinIsOpen) { mainPop.show(true); tabManager.showTab(); } window.addEventListener('unload', onUnload, false); if (Options.fixTower) TowerAlerts.enableFixTarget(true); if (Options.fixTower2) TowerAlerts.enableFixFalseReports(true); AddMainTabLink('TOOLS', eventHideShow, mouseMainTab); // var ss_onload = unsafeWindow.seed.ss; // multiBrowserOverride(); //TestSomething.init (); //setInterval (function(){logit (inspect (getClientCoords (mainPop.getMainDiv()), 3, 1))}, 2000); uW.ptLoaded = true; } function multiBrowserOverride() { return; //disabled until fix? // get a pointer to the function var old_usa = unsafeWindow.update_seed_ajax; // create a new own var usa = function (marchForceUpdateFlag, updateSeedDoneCallback, isCancelTraining) { if (Options.allowMultiBroswer) { // remove a variable //delete unsafeWindow.seed.ss; // unsafeWindow.seed.ss = ss_onload; } // call the original function old_usa(marchForceUpdateFlag, updateSeedDoneCallback, isCancelTraining); } // install our override unsafeWindow.update_seed_ajax = usa; } function ToggleDivDisplay(h, w, div) { var dc = uW.jQuery('#' + div).attr('class'); if (dc) { if (dc.indexOf('ptdivHide') >= 0) { uW.jQuery('#' + div).attr('class', ''); uW.jQuery('#' + div + 'Arrow').attr('src', GameIcons.DownArrow); } else { uW.jQuery('#' + div).attr('class', 'ptdivHide'); uW.jQuery('#' + div + 'Arrow').attr('src', GameIcons.RightArrow); } } else { uW.jQuery('#' + div).attr('class', 'ptdivHide'); uW.jQuery('#' + div + 'Arrow').attr('src', GameIcons.RightArrow); } } function onUnload() { Options.ptWinPos = mainPop.getLocation(); saveOptions(); if (!ResetColors) saveColors(); } var knightRoles = [ ['Foreman', 'politics', 'Pol'], ['Marshall', 'combat', 'Com'], ['Alchemystic', 'intelligence', 'Int'], ['Steward', 'resourcefulness', 'Res'], ]; var rats = ["2466324", "5801935", "14737553", "2915086"]; //people who openly tried to destroy script development including reporting scripters to kabam. now the joke is on them. var scripters = ["7552815", "10681588", "1747877", "14909786", "2865067", "10153485", "15182839", "1550996", "1617431819", "9688786", "8184813", "9863346", "11107993", "9751486", "5614388", "424090", "14845619", "8480468", "7042380", "731589"]; Tabs.Notes = { tabOrder: 999, tabLabel: "Notes", myDiv: null, show: function () { var h = "
Saved Notes
"; h += "
"; h += ""; h += ""; for (player in Tabs.Notes.noteValues) { var note = Tabs.Notes.noteValues[player]; h += ""; h += ""; h += "'; h += ""; h += ""; } h += "
PlayerNotesAction
" + player + " / " + note.id + "
" + note.text + "
"; h += '


"; myDiv.innerHTML = h; }, hide: function () {}, init: function (div) { myDiv = div; unsafeWindow.removeNote = Tabs.Notes.removeNote; unsafeWindow.editNoteLink = Tabs.Notes.editNoteLink; // override the map tooltips var oldSMTT = unsafeWindow.showMapTileTooltip; var newSMTT = function (j, h, n, f, l, k) { // add our stuff to the tooltip var j2 = Tabs.Notes.updateTooltip(unescape(j)); if (j2) { j = escape(j2); } oldSMTT(j, h, n, f, l, k); }; unsafeWindow.showMapTileTooltip = newSMTT; // create a regular expression object to use Tabs.Notes.re = new RegExp(unsafeWindow.g_js_strings.MapObject.ownedby + ": (\\w*)"); // add a new option to the context menus var cityType = unsafeWindow.cm.CITY_STATUS.ANOTHER_PLAYER_CITY_AND_NOT_IN_YOUR_ALLIANCE; uW.cm.ContextMenuMapController.prototype.MapContextMenus.City[cityType].push("ttMod"); cityType = unsafeWindow.cm.CITY_STATUS.ANOTHER_PLAYER_CITY_AND_IN_YOUR_ALLIANCE; uW.cm.ContextMenuMapController.prototype.MapContextMenus.City[cityType].push("ttMod"); var wildContext; wildContext = uW.cm.ContextMenuMapController.prototype.MapContextMenus.EnemyWilderness; for (wild in wildContext) { wildContext[wild].push("ttMod"); } wildContext = uW.cm.ContextMenuMapController.prototype.MapContextMenus.Wilderness; for (wild in wildContext) { wildContext[wild].push("ttMod"); } wildContext = uW.cm.ContextMenuMapController.prototype.MapContextMenus.FriendlyWilderness; for (wild in wildContext) { wildContext[wild].push("ttMod"); } wildContext = uW.cm.ContextMenuMapController.prototype.MapContextMenus.AllianceWilderness; for (wild in wildContext) { wildContext[wild].push("ttMod"); } // add actions to the menu item var mod = new CalterUwFunc('cm.ContextMenuMapController.prototype.calcButtonInfo', [ ['default:', 'case "ttMod":' + ' b.text = "Player Notes"; b.color = "green"; ' + ' b.action = function () { ' + ' edit_notes(e.user); ' + ' }; ' + ' if (e.user.id) d.push(b); break; ' + ' default: ' ] ]); mod.setEnable(true); // callback function for the context menu option unsafeWindow.edit_notes = Tabs.Notes.createPopup; // load saved values Tabs.Notes.load(); Tabs.Notes.show(); }, save: function () { var serverID = GetServerId(); var s = JSON2.stringify(Tabs.Notes.noteValues); if (s) { // use setTimeout to fix the context setTimeout(function () { GM_setValue('PlayerNotes_' + serverID, s); }, 0); } }, load: function () { var serverID = GetServerId(); try { var s = JSON.parse(GM_getValue('PlayerNotes_' + serverID)); if (s) Tabs.Notes.noteValues = s; } catch (e) { logit(e); } }, editNoteLink: function (name, id) { uW.ptuser = {}; uW.ptuser.id = id; uW.ptuser.username = name; uW.edit_notes(uW.ptuser); }, createPopup: function (user) { Tabs.Notes.ToolsOpen = false; if (Options.ptWinIsOpen == true) { Tabs.Notes.ToolsOpen = true; eventHideShow(); } // get the current note var notes = ""; if (Tabs.Notes.noteValues[user.username]) { notes = Tabs.Notes.noteValues[user.username]; notes = notes.text.replace(//g, "\n"); } // popup unsafeWindow.Modal.multiButton({ buttons: [{ txt: "Save", exe: function b() { Tabs.Notes.saveNote(user); unsafeWindow.Modal.hideModal(); if (Tabs.Notes.ToolsOpen == true) { eventHideShow(); } } }, { txt: unsafeWindow.g_js_strings.commonstr.cancel, exe: function () { unsafeWindow.Modal.hideModal() if (Tabs.Notes.ToolsOpen == true) { eventHideShow(); } } }], body: " Enter notes for player: " + user.username + "

", title: "Player Notes" }); }, // callback for the save button saveNote: function (user) { var player = user.username; if (player) { var noteData = {}; var notes = unsafeWindow.jQuery("#notes_text").val(); noteData.text = notes.replace(/\n/g, "
"); noteData.id = user.id; Tabs.Notes.noteValues[player] = noteData; Tabs.Notes.save(); var nl = document.getElementById('ptplayernotes'); if (nl) { nl.innerHTML = notes; } } }, // callback for the delete button removeNote: function (player) { if (player && Tabs.Notes.noteValues[player]) { delete Tabs.Notes.noteValues[player]; Tabs.Notes.save(); } Tabs.Notes.show(); }, // add the notes to the map tooltip updateTooltip: function (ttHtml) { var newTT = null; var result = Tabs.Notes.re.exec(ttHtml); if (result && result[1]) { var note; if (note = Tabs.Notes.noteValues[result[1]]) { var element_class = ""; var id = "" + note.id; if (rats.indexOf(id) >= 0 && id != uW.tvuid) { element_class = 'ptChatRat'; } if (scripters.indexOf(id) >= 0) { element_class = 'ptChatScripter'; } newTT = ttHtml.replace("
Might:", "
" + note.text + "
Might:"); } } return newTT; }, // object to store the notes noteValues: {}, ToolsOpen: false, }; var CoordBox = { init: function () { var t = CoordBox; t.boxDiv = searchDOM(document.getElementById('maparea_map'), 'node.className=="mod_coord"', 3, false); t.setEnable(Options.mapCoordsTop); }, setEnable: function (tf) { var t = CoordBox; if (t.boxDiv == null) return; if (tf) t.boxDiv.style.zIndex = '100000'; else t.boxDiv.style.zIndex = '10011'; }, isAvailable: function () { var t = CoordBox; return !(t.boxDiv == null); }, }; var TestSomething = { init: function () { t = TestSomething; return; var ft = uW.modal_messages.toString().replace(/}\s*$/, 'TESTmyHook(); }'); // logit ('FT: modal_messages = '+ ft); uW.TESTmyHook = t.hook; /*** var scr = document.createElement('script'); scr.innerHTML = 'modal_messages = '+ ft; document.body.appendChild(scr); setTimeout ( function (){document.body.removeChild(scr);}, 500); ***/ //with (unsafeWindow){ // eval ('uW.modal_messages = '+ ft); // eval ('modal_messages = function (){alert("xxx")}'); logit("WITH"); uW.modal_messages = eval('function (){alert("xxx")}'); logit("EVALED"); //} setTimeout(function () { var ft = uW.modal_messages.toString(); logit('uW.modal_messages:\n' + ft.substr(ft.length - 500)); }, 100); }, hook: function () { logit('TestSomething.hook'); logit('tvuid: ' + tvuid); logit('uW.tvuid: ' + uW.tvuid); }, } var battleReports = { init: function () { var t = battleReports; // t.getReportDisplayFunc = new CalterUwFunc ('getReportDisplay', [['return K.join("")', 'var themsg=K.join(""); themsg=getReportDisplay_hook(themsg, arguments[1]); return themsg']]); //Alliance report battle rounds function t.getReportDisplayFunc = new CalterUwFunc ('getReportDisplay', [['return K.join("")', 'var themsg=K.join(""); themsg=getReportDisplay_hook(themsg, arguments[1]); themsg=getReportDisplay_hookz(themsg, arguments[1]); return themsg']]); //Alliance report battle rounds function uW.getReportDisplay_hook = t.hook; uW.getReportDisplay_hookz = t.hookz; t.getReportDisplayFunc.setEnable(true); t.renderBattleReportFunc = new CalterUwFunc ('Messages.viewMarchReport', [[/\$\("modal_msg_list"\)\.innerHTML\s*=\s*cm\.MarchReportController\.getMarchReport\(c,\s*y\)/, 'var msg = cm.MarchReportController.getMarchReport(c, y); $("modal_msg_list").innerHTML = renderBattleReport_hook(msg,c,y);']]); //March reports battle rounds function uW.renderBattleReport_hook = t.hook2; t.renderBattleReportFunc.setEnable(true); uW.deleteAreport = t.e_deleteReport; uW.MoreReport = t.e_MoreReport; uW.PostReport = t.e_PostReport; }, setEnable: function () {}, isRoundsAvailable: function () { var t = battleReports; return t.getReportDisplayFunc.isAvailable() || t.renderBattleReportFunc.isAvailable(); }, e_deleteReport: function (rptid) { var t = battleReports; t.ajaxDeleteMyReport(rptid); }, e_MoreReport: function (rptid, side) { var t = battleReports; alert('WIP ;)'); }, e_PostReport: function (rptid) { var msg = 'Report No: ' + rptid; sendChat("/a " + msg); }, SendChat: function (name, mess) { var inp = document.getElementById('mod_comm_input'); inp.value = "@" + name + ' ' + mess; unsafeWindow.Chat.sendChat(); }, ajaxDeleteMyReport: function (rptid, isUnread, side, isCityReport, notify) { var params = uW.Object.clone(uW.g_ajaxparams); params.s0rids = rptid; params.s1rids = ''; params.cityrids = ''; new MyAjaxRequest(uW.g_ajaxpath + "ajax/deleteCheckedReports.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.ok && isUnread) { uW.seed.newReportCount = parseInt(seed.newReportCount) - 1; uW.messages_notify_bug() } if (notify) notify(rslt.errorMsg); }, onFailure: function () { if (notify) notify('AJAX ERROR'); }, }); }, hookz: function (msg, rslt) { msg = msg.replace(/(\bReport\sNo\:\s([0-9]+))/g, '$1'); return msg; }, hook2: function (msg, args, rslt) { //alert('hook2 '+rslt); if (rslt.rnds && Options.dispBattleRounds) { msg = msg.replace(/<\/ul>.*\s*<\/div>.*\s*
/im, '
  • Rounds: ' + rslt.rnds + '
  • '); } if (Options.reportDeleteButton) { msg = msg.replace(/Reports<\/span><\/a>/im, 'ReportsPost To Chat'); //Post to Chat button msg = msg.replace(/Reports<\/span><\/a>/im, 'ReportsMore'); //More button msg = msg.replace(/Reports<\/span><\/a>/im, 'Reports' + uW.g_js_strings.commonstr.deletetx + ''); //Delete button } return msg; }, hook: function (msg, rslt) { //alert('hook '+rslt); if (rslt.rnds && Options.dispBattleRounds) { msg = msg.replace(/(Attackers /im, '$1
    Rounds: ' + rslt.rnds + '
    '); } return msg; }, } var mapinfoFix = { init: function () { var t = mapinfoFix; t.calcButtonInfo = new CalterUwFunc('cm.ContextMenuMapController.prototype.calcButtonInfo', [[/case\s*"reassign":b\.text\s*=\s*g_js_strings\.commonstr\.reassign;b\.color\s*=\s*"blue";b\.action\s*=\s*function\s*\(\)\s*{modal_attack\(2,\s*e\.tile\.x,\s*e\.tile\.y\);*};d\.push\(b\);break;/, 'case "reassign":b.text=g_js_strings.commonstr.reassign;b.color="blue";b.action=function(){modal_attack(5,e.tile.x,e.tile.y);};d.push(b);break;']]); t.bookMarkMod = new CalterUwFunc('cm.ContextMenuMapController.prototype.calcButtonInfo', [[/case\s*"bookmark":/, 'case "bookmark": try { if (e.city && cm.tileInfo[e.tile.id] && cm.tileInfo[e.tile.id].cityName ) {e.tile.name = e.user.username + "/" + cm.tileInfo[e.tile.id].cityName;}} catch (err1) {} ']]); t.MapContextMenus = new CalterUwFunc ('cm.ContextMenuMapController.prototype.calcCityType', [['return c', 'c = calcCityTypeFix(c,d);return c']]); t.calcButtonInfo.setEnable(Options.mapInfo); t.MapContextMenus.setEnable(Options.mapInfo2); t.bookMarkMod.setEnable(Options.mapInfo3); uW.cm.ContextMenuMapController.prototype.MapContextMenus.City["2"].splice(4, 0, "reassign"); // add reinforcement of wilds for (jj in uW.cm.ContextMenuMapController.prototype.MapContextMenus.AllianceWilderness) { uW.cm.ContextMenuMapController.prototype.MapContextMenus.AllianceWilderness[jj] = ["profile", "throne", "reinforce", "reinforcements", "message", "bookmark"]; } uW.calcCityTypeFix = t.calcCityType_hook; // add the city status (Normal/Truce) to the tooltips uW.ptGetProvince = function (N) { return '
    ' + uW.provincenames['p' + N.tileProvinceId] + '
    '; } if (FFVersion.substring(0, 4) > 16) { t.dispStatusMod = new CalterUwFunc('MapObject.prototype.populateSlots', [ [/var\s*Q\s*=\s*"";/, ' var Q = ""; if (G) g += "
    Status: " + G + "
    ";'], [/var\s*g\s*=""/, 'var g = ""; g+=ptGetProvince(N);'] ]); } else { t.dispStatusMod = new CalterUwFunc('MapObject.prototype.populateSlots', [ [/var\s*Q\s*=\s*"";/, ' var Q = ""; if (G) g += "
    Status: " + G + "
    ";'], ['var g = "";', 'var g = "";g+=ptGetProvince(N);'] ]); } t.dispStatusMod.setEnable(Options.dispStatus); }, setEnable: function (tf) { var t = mapinfoFix; t.calcButtonInfo.setEnable(tf); }, setEnable2: function (tf) { var t = mapinfoFix; t.MapContextMenus.setEnable(tf); }, setEnable3: function (tf) { var t = mapinfoFix; t.bookMarkMod.setEnable(tf); }, setEnableDispStatus: function (tf) { var t = mapinfoFix; t.dispStatusMod.setEnable(tf); }, calcCityType_hook: function (c, d) { if (Cities.byID[d.city.id] && c != 1) c = uW.cm.CITY_STATUS.MY_CITY_AND_NOT_CURRENT_CITY; return c; }, isAvailable: function () { var t = mapinfoFix; return t.calcButtonInfo.isAvailable(); }, isAvailable2: function () { var t = mapinfoFix; return t.MapContextMenus.isAvailable(); }, isAvailable3: function () { var t = mapinfoFix; return t.bookMarkMod.isAvailable(); }, isAvailableDispStatus: function () { var t = mapinfoFix; return t.dispStatusMod.isAvailable(); }, } var ApothTimeFix = { apothFix: null, apothFixCB: null, init: function () { t = ApothTimeFix; t.apothFix = new CalterUwFunc('cm.RevivalModel.getRevivalStats', [ [/&&\s*h\.isDruid/im, '|| h.id === 23'], [/try/im, 'var insert=getRevivalStats_hook(insert); var ff = insert.f; var equippedItems = insert.equippedItems; var dd = insert.d; g = dd[k]["Cost"] * j; try'], [/g\s*=\s*e\(k\)\s*\*\s*j,/im, ' '], [/hasFactionBonus\(\)/im, 'hasFactionBonus(equippedItems)'], [/\[7]\s*\*\s*j/im, '[7] * parseInt(j)'], [/o\s*-\s*\(o\s*\*/img, 'o / (1 +'], [/afford\s*:\s*f\(\)/im, 'afford : ff'] ]); t.apothFixCB = new CalterUwFunc('cm.RevivalModel.getRevivalStats', [ [/o\s*-\s*o\s*\*\s*\(/im, 'o / (1 +'], [/o\s*-\s*o\s*\*\s*\cm/im, 'o / (1 + cm'], [/currentcityid\)\);/im, 'currentcityid)));'] ]); //fix for cometbird // TODO: seems like getMaximumTrainable breaks the bonus calculations in getRevivalStats - need to find a workaround uW.getRevivalStats_hook = t.hook; t.apothFix.setEnable(Options.fixApothTime); t.apothFixCB.setEnable(Options.fixApothTime); }, setEnable: function (tf) { var t = ApothTimeFix; t.apothFix.setEnable(tf); t.apothFixCB.setEnable(tf); }, isAvailable: function () { var t = ApothTimeFix; return t.apothFix.isAvailable(); return t.apothFixCB.isAvailable(); }, hook: function (insert) { var t = ApothTimeFix; var insert = {}; insert.f = parseInt(uW.seed.citystats["city" + uW.currentcityid].gold[0]); insert.d = uW.cm.WorldSettings.getSettingAsObject("APOTHECARY_COST"); var equippedItems = equippedthroneItems(equippedItems); insert.equippedItems = equippedItems; return insert; }, } var TRAetherCostFix = { aethercostFix: null, init: function () { t = TRAetherCostFix; t.aethercostFix = new CalterUwFunc('cm.ThronePanelController.calcCost', [ [/if\(k\(/im, 'if(cm.ThronePanelController.isLastLevel('], [/D\.stones\.use\s*=\s*D\.stones\.total/im, 'D.stones.use = A'], [/if\(D\.stones\.use\s*==/im, 'if(D.stones.use >='], [/D\.gems\.use\s*=\s*b\(D\.stones\.total\s*-\s*A\)/im, 'var x = + (cm.WorldSettings.getSetting("TR_AETHERSTONE_CONVERSION_COST")), y; D.gems.use = Math.ceil((D.stones.total - A)/x)'], [/D\.gems\.use\s*=\s*b\(y\[C]\.Stones\)/im, 'var x = + (cm.WorldSettings.getSetting("TR_AETHERSTONE_CONVERSION_COST")), y; D.gems.use = Math.ceil((y[C].Stones)/x)'], [/if\s*\(k\(/im, 'if(cm.ThronePanelController.isLastLevel('], //fix for cometbird [/if\s*\(D\.stones\.use\s*==/im, 'if(D.stones.use >='] ]); //fix for cometbird t.aethercostFix.setEnable(Options.fixTRAetherCost); }, setEnable: function (tf) { var t = TRAetherCostFix; t.aethercostFix.setEnable(tf); }, isAvailable: function () { var t = TRAetherCostFix; return t.aethercostFix.isAvailable(); }, } var mmbImageFix = { imageFix: null, init: function () { t = mmbImageFix; t.imageFix = new CalterUwFunc('cm.mww.mmb_share', [ [/img\/items\/130/im, 'img/items/70/'], [/common_postToProfile\(\"85\"/im, 'template_data_85.img1=template_data_85.media[0].src; common_postToProfile(\"85\"'] ]); t.imageFix.setEnable(Options.fixMMBImage); }, setEnable: function (tf) { var t = mmbImageFix; t.imageFix.setEnable(tf); }, isAvailable: function () { var t = mmbImageFix; return t.imageFix.isAvailable(); }, } var MapDoubleClickFix = { doubleClickFix: null, init: function () { t = MapDoubleClickFix; // t.doubleClickFix = new CalterUwFunc ('g_mapObject.populateSlots', [[/that\.controller\.onTileClick\(this\)/im,'setTimeout(that.controller.onTileClick(this),1000)}).off("dblclick", "**").on("dblclick", "a", function(){that.controller.onTileDblClick(this)']]); // replace with previous map mouse event handler coding t.doubleClickFix = new CalterUwFunc ('g_mapObject.populateSlots', [[/map1.*Tooltip/img,'map1 a").unbind("click").clicks(function(){setTimeout(that.controller.onTileClick(this),200)}, function(){that.controller.onTileDblClick(this)}).unbind("hover").hover(function(i){that.controller.onTileEnter(this, i)}, function(){removeTooltip']]); t.doubleClickFix.setEnable(Options.fixMapDblClick); }, setEnable: function (tf) { var t = MapDoubleClickFix; t.doubleClickFix.setEnable(tf); }, isAvailable: function () { var t = MapDoubleClickFix; return t.doubleClickFix.isAvailable(); }, } var ChatTimeFix = { ChatTime: null, init: function () { t = ChatTimeFix; uW.ptConvertTime = function (timestr) { time = timestr.split(/:/); var AddMins = 480-parseInt(getDST(new Date())/60)-(new Date().getTimezoneOffset()); // convert from local pacific time var min = (parseInt(time[0]) * 60) + parseInt(time[1]) + AddMins; if (min >= 1440) { min = min - 1440; } return parseInt(min / 60) + ':' + ('00' + parseInt(min % 60).toString()).slice(-2); } t.ChatTime = new CalterUwFunc("Chat.getChat", [ ['rslt.data.newChats[i][j][1],', 'ptConvertTime(rslt.data.newChats[i][j][1]),'], ['rslt.data.newChats[i][j][1],', 'ptConvertTime(rslt.data.newChats[i][j][1]),'] ]); t.ChatTime.setEnable(Options.fixChatTime); }, setEnable: function (tf) { var t = ChatTimeFix; t.ChatTime.setEnable(tf); }, isAvailable: function () { var t = ChatTimeFix; return t.ChatTime.isAvailable(); }, } var bypassMulti = { MultiBrowserBypass: null, init: function () { t = bypassMulti; // t.MultiBrowserBypass = new CalterUwFunc ('update_seed_ajax', [[/if\(typeof\s*isCancelTraining/im,'var l_lastCallTime = 0; var reload_requests = 0; var l_callIntervalMin = 10; if(typeof isCancelTraining'],[/if\(rslt\.error_code\s*==\s*60\)/im,'return; if(rslt.error_code == 60)']]); t.MultiBrowserBypass = new CalterUwFunc('update_seed_ajax', [ [/if\s*\(typeof\s*isCancelTraining/im, 'var l_lastCallTime = cm.l_lastCallTime; var reload_requests = cm.reload_requests; var l_callIntervalMin = cm.l_callIntervalMin; if(typeof isCancelTraining'], [/if\s*\(rslt\.error_code\s*==\s*60\)/im, 'return; if(rslt.error_code == 60)'] ]); t.MultiBrowserBypass.setEnable(Options.allowMultiBroswer); }, setEnable: function (tf) { var t = bypassMulti; t.MultiBrowserBypass.setEnable(tf); }, isAvailable: function () { var t = bypassMulti; return t.MultiBrowserBypass.isAvailable(); }, } var BarbRaidMarchPatch = { marchFix: null, init: function () { t = BarbRaidMarchPatch; if (FFVersion.substring(0, 4) > 16) t.marchFix = new CalterUwFunc ('update_march', [[/D\.toTileLevel,\s*n,\s*M\)/im,'D.toTileLevel, n, M, Math.floor(unixtime()+D.returnEta-D.marchUnixTime))']]); else t.marchFix = new CalterUwFunc ('update_march', [['D.toTileLevel, n, M)','D.toTileLevel, n, M, Math.floor(unixtime()+D.returnEta-D.marchUnixTime))']]); t.marchFix.setEnable(Options.togRaidPatch); }, setEnable: function (tf) { var t = BarbRaidMarchPatch; t.marchFix.setEnable(tf); }, isAvailable: function () { var t = BarbRaidMarchPatch; return t.marchFix.isAvailable(); }, } var anticd = { isInited: false, KOCversion: '?', init: function () { if (this.isInited) return this.KOCversion; uW.cm.cheatDetector.detect = eval('function a (){}'); var scripts = document.getElementsByTagName('script'); for (var i = 0; i < scripts.length; i++) { if (scripts[i].src.indexOf('camelotmain') >= 0) { break; } } if (i < scripts.length) { var m = scripts[i].src.match(/camelotmain-(.*).js/); if (m) this.KOCversion = m[1]; } this.isInited = true; // more coming soon :) }, getKOCversion: function () { return this.KOCversion; }, } anticd.init(); /***
    if ur really bored try it
    Lady Aerwyn says to the alliance: 17:32
    ok, heading out to dinner with family... be back laters
    WHISPER (chatDivContentHook) .....
    Lord Jetson whispers to you: 17:46
    test
    Lord Jetson whispers to jetson: 20:47
    test
    ****/ var ChatStuff = { chatDivContentFunc: null, getChatFunc: null, leaders: {}, init: function () { var t = ChatStuff; if (getMyAlliance()[0] > 0) t.getAllianceLeaders(); // [[/h\s*=\s*cm.formatModel\.exe\(h,\s*true\);/,'h=chatDivContent_hook2(h);h = cm.formatModel.exe(h, true);'], t.chatDivContentFunc = new CalterUwFunc ('Chat.chatDivContent', [['return f.join("")', 'var msg = f.join("");\n msg=chatDivContent_hook(msg,d);\n return msg;']]); uW.chatDivContent_hook = t.chatDivContentHook; uW.chatDivContent_hook2 = t.chatDivContentHook2; uW.ptChatIconClicked = t.e_iconClicked; uW.ptChatReportClicked = Rpt.FindReport; t.setEnable(Options.chatEnhance); if (Options.chatglobal) { document.getElementById('mod_comm_list1').className += ' ptChatGlobal '; } if (Options.chatalliance) { document.getElementById('mod_comm_list2').className += ' ptChatAlliance '; } }, isAvailable: function () { var t = ChatStuff; t.chatDivContentFunc.isAvailable(); }, setEnable: function (tf) { var t = ChatStuff; t.chatDivContentFunc.setEnable(tf); }, e_iconClicked: function (name) { if (document.getElementById('bot_comm_input')) var e = document.getElementById('bot_comm_input'); else var e = document.getElementById('mod_comm_input'); name = name.replace(/°°/g, "'"); e.value = '@' + name + ' '; }, chatDivContentHook2: function (msg) { var div = document.createElement('div'); div.innerHTML = msg; div.innerText = div.innerHTML; msg = div.innerHTML.toString(); return msg.htmlSpecialCharsDecode(); }, chatDivContentHook: function (msg, type) { var t = ChatStuff; var element_class = ''; var alliance = false; var whisper = false; var m = /div class=\'info\'>.*<\/div>/im.exec(msg); if (m == null) return msg; if (type != null) { if (type.indexOf('says to the alliance') > 0) { alliance = true; } if (type.indexOf('whispers to you') > 0) { whisper = true; } } var whisp = m[0]; if (whisper) { if (Options.chatwhisper) { element_class += ' ptChatWhisper '; } } else { //Global & Alliance if (Options.chatbold) element_class += ' ptChatBold '; } var suid = /viewProfile\(this,([0-9]+),false/i.exec(m[0]); if (!suid) suid = uW.tvuid; else suid = suid[1]; if (Options.chatLeaders) { if (t.leaders[suid]) element_class += ' ptChat' + t.leaders[suid]; } if (rats.indexOf(suid) >= 0 && suid != uW.tvuid) element_class += ' ptChatRat'; if (scripters.indexOf(suid) >= 0) { //msg = msg.replace (/\bhttps\:\/\/[-a-z].*\'\/\>/i, 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAIAAABLixI0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDwArAkRAgZ4AAAPXSURBVDjLrVRNSDJdFL4zjpqiWZROlkEtsk20cGPqQkQpKIRykTu37aKgFi1cRxZUixat3BQkRCX9UrsUQ0TEhH6IMBcVbpRB58fRmfsubu+UvV98Hx/vszj3cM55zjn3nnsvlkwmBUGo1+s8z/M8z3Ecy7Isy9I0TdN09TcqlQpSGIahaZrjOI7jeJ6v1+uNRkMQBAghkclk6vU69xssyzIMgzjVapWmaYZhGIaRyIgvCIIgCKAZWDabFQRBFEUIYaPREEVRkoiAXAiiKGIYhvTPFBgGIcQwjDg6OhJFUUqBukV8AMBX+a/AdDod4n9t4Vuu/whZo9Hged5kMg0ODjYajXK5TBCEzWbr7e0VBKFSqfzEtFgsfr9/aGioWCw2ha2vr0MIl5aWAAAHBwcQwufnZwzD/jGLXC6Px+PSIV5cXCA7gRa0TZ7nZ2ZmpqamKIoaHh7+aYPRaNRut7Msu729rdVqSZJscq+trUEIw+EwKtXf34/sGo0mEomwLFur1aLRaEdHh8FgQDEmkwnFtLa2fs8lTTAUCkn2+/t7COHDw0M2m4UQvr29ORwOCGE+n/9xBKiv/f19VHNkZAQAQJIkhLBcLqOYQqEAIfT7/d/ulwRc0iCEiUQCHX8sFjMYDNVqFW1TpVIBANra2gAAV1dX7+/voiimUqmxsTGfz7e1tfW9L1EUFxcXUbQoiq+vrwCAnZ0d+AXn5+cAgIGBAY7jJOPx8fHH/foYJ0EUCoXr6+tCoRCJRBQKRSaT0Wq1y8vL+XxeFMXHx8fNzc35+XkAQKlUCoVCtVqtVqvlcrlwOPz4+Aj+Lj76crvdXq83mUwGAgGbzabRaFwu1+3trdPptNvtZrO5q6vL4/F0d3e73W6ZTOb1ejUazcvLSzAYpCiqWCx+5orFYnNzc4FAgCTJm5ubYDCYTqddLtfk5KTH46nX6xRFLSwsJBIJs9l8eHi4urpqtVqVSqVarU4kEk1vaGJi4unp6eTkhCAIdLPv7u5Iktzd3c3lcmdnZzKZLB6POxyOdDo9OjpKUdTp6SkazsrKStMb8vl8FEVtbGxcXl7GYjG1Wr23t4cqUxQ1Pj4OAFCpVDiOl0qlSqWSSqWMRuP09HQmk7FarU3HptfrDQYDUvr6+jo7OwEARqOxvb0d6cjV0tLS09Oj0+n0er1arVYqlRaL5fP/+isTRD8KNjs7+//I6F+WEgEACKfT+WeFP+MAADiOo2eIYZjklYDjOPZTWRzHcRyXfQFBEJKUy+WSgqBQKDCZTIZqYhiGQgmCkCKUSqVCoUDyKxBZoVAQBCFZfgGv35yL3q6pzwAAAABJRU5ErkJggg=='+'\'\/\>'); element_class += ' ptChatScripter'; } if (Options.ChatIcons) { if (ChatIcons[suid]) { msg = msg.replace(/\bhttps\:\/\/[-a-z].*\'\/\>/i, "https://graph.facebook.com/" + ChatIcons[suid] + "/picture\'\/\>"); } else { t.getfbid(suid); } } var fchar = new RegExp(atob('rQ=='), "g"); msg = msg.replace(fchar, "").replace(/\&\#8232\;/g, ""); if (alliance) { if (m[0].indexOf('My embassy has') >= 0 && Options.chatAttack) element_class = ' ptChatAttack'; if (m[0].indexOf('My wilderness at') >= 0 && Options.chatAttack) element_class = ' ptChatAttack'; //barcode style catch if (m[0].indexOf('..:.') >= 0 && Options.chatAttack) { element_class = ' ptChatAttack'; var f = msg.indexOf('
    '); if (f >= 0) { msg = msg.replace(/
    /, '
    ') msg = msg.replace(/\|\|/g, '
    '); var a = msg.indexOf('', f); msg = msg.slice(0, a) + '
    ' + msg.slice(a); } msg = msg.replace(/\|/g, '
    '); msg = msg.replace('..:.', ''); if (Options.enableTowerAlert) { AudioManager.setSource(SOUND_FILES.alert); AudioManager.play(); setTimeout(function () { AudioManager.stop(); }, 5000); } } if (m[0].indexOf('.::.') >= 0 && Options.chatAttack) { element_class = ' ptChatRecall'; var f = msg.indexOf('
    '); if (f >= 0) { msg = msg.replace(/
    /, '
    ') msg = msg.replace(/\|\|/g, '
    '); var a = msg.indexOf('', f); msg = msg.slice(0, a) + '
    ' + msg.slice(a); } msg = msg.replace(/\|/g, '
    '); msg = msg.replace('.::.', ''); } } //tables for other use if (m[0].indexOf(':::.') >= 0) { var f = msg.indexOf('
    '); if (f >= 0) { msg = msg.replace(/
    /, '
    ') msg = msg.replace(/\|\|/g, '
    '); var a = msg.indexOf('', f); msg = msg.slice(0, a) + '
    ' + msg.slice(a); } msg = msg.replace(/\|/g, '
    '); msg = msg.replace(':::.', ''); } msg = msg.replace("class=\'content\'", "class='content " + element_class + "'"); msg = msg.replace(/(\bReport\sNo\:\s([0-9]+))/g, '$1'); msg = msg.replace(/(\bRpt\:([0-9]+))/g, '$1'); msg = msg.replace(/#([0-9]+)#/g, '$1'); msg = msg.replace(/(\byoutu([0-9a-z\.\?\/\=\-\_]+))/gi, '$1'); msg = msg.replace(/(\W)(bot)(\W)/gi, '$1$2$3'); msg = msg.replace(/(\W)(tools)(\W)/gi, '$1$2$3'); msg = msg.replace(/(\W)(tro)(\W)/gi, '$1$2$3'); msg = msg.replace(/(\W)(kocers\.com)(\W)/gi, '$1kocscripters.com $3'); msg = msg.replace(/(\W)(forums)(\W)/gi, '$1$2$3'); var m = /(Lord|Lady) (.*?))/img, ''); if (whisper && Options.enableWhisperAlert) { AudioManager.setSource(eval('SOUND_FILES.' + Options.whisperplay)); AudioManager.play(); setTimeout(function () { AudioManager.stop(); }, 2500); } if (alliance) { if (whisp.indexOf('My embassy has') >= 0 && Options.enableTowerAlert) { AudioManager.setSource(SOUND_FILES.alert); AudioManager.play(); setTimeout(function () { AudioManager.stop(); }, 5000); } if (whisp.indexOf('My wilderness at') >= 0 && Options.enableTowerAlert) { AudioManager.setSource(SOUND_FILES.alert); AudioManager.play(); setTimeout(function () { AudioManager.stop(); }, 5000); } t.sendToIRC(suid, m[2], msg); } //lets remove the null character which could be a problem when copy and paste web addresses Null:"­",UnicodeLS:"
", return msg; }, getAllianceLeaders: function () { var t = ChatStuff; var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); new MyAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/allianceGetLeaders.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, loading: true, onSuccess: function (rslt) { if (rslt.officers) { for (uid in rslt.officers) { var user = rslt.officers[uid]; t.leaders[user.userId] = user.type.substr(0, 4); } } }, onFailure: function () {} }); }, getfbid: function (uid) { Tabs.AllianceList.fetchPlayerCourt(uid, ChatStuff.addfbuid); }, addfbuid: function (rslt) { var t = ChatStuff; if (rslt.ok) { var uid = parseInt(rslt.playerInfo.userId); var fbid = parseInt(rslt.playerInfo.fbuid); ChatIcons[uid] = fbid; saveChatIconsOptions(); } }, sendToIRC: function (uid, name, msg) { Tabs.IRC.grabChat(uid, name, msg); }, } var AudioManager = { player: null, volume: 100, type: 'html5', alertdiv: null, init: function () { var t = AudioManager; if ( !! document.createElement("audio").canPlayType) { t.player = new Audio(); t.type = 'html5'; t.player.addEventListener("ended", function () { t.player.currentTime = 0 }, false); t.setVolume(t.volume); } else { t.creatediv(); t.type = 'swf'; } }, setVolume: function (vol) { var t = AudioManager; t.volume = vol; t.player.volume = t.volume * 0.01; }, play: function () { var t = AudioManager; if (t.type == 'html5') { if (!t.player.paused) { t.stop(); } t.player.play(); } else { t.alertdiv.innerHTML = t.source; } }, stop: function () { var t = AudioManager; if (t.type == 'html5') { t.player.pause(); if (t.player.readyState === 4) { t.player.currentTime = 0 } } else { t.alertdiv.innerHTML = 'Audio Alert Played'; } }, pause: function () { var t = AudioManager; t.player.pause(); }, setSource: function (src) { var t = AudioManager; if (t.type == 'html5') { t.player.src = src.OGG; t.source = src.OGG; } else t.source = src.DEFAULT; }, toggleMute: function () { var t = AudioManager; t.player.muted = !t.player.muted; }, creatediv: function () { var t = AudioManager; var div = document.getElementsByTagName('div'); for (var i = 0; i < div.length - 1; i++) if (div[i].className == 'mod_comm_forum') e = div[i]; t.alertdiv = document.createElement("span"); e.appendChild(t.alertdiv); }, } var Rpt = { FindReport: function (rpId, pageNum) { var t = Rpt; var params = uW.Object.clone(uW.g_ajaxparams); params.rid = rpId; new MyAjaxRequest(uW.g_ajaxpath + "ajax/fetchReport.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { var rpt = rslt['index']; rpt.Side0PlayerId = rslt['index']['side0PlayerId']; rpt.Side0AllianceId = rslt['index']['side0AllianceId']; rpt.Side1PlayerId = rslt['index']['side1PlayerId']; t.GetNames(rpId, rpt); }, onFailure: function () { alert('kabam is having issues'); }, }, false); }, GetNames: function (rpId, rpt) { var t = Rpt; var params = uW.Object.clone(uW.g_ajaxparams); params.uid = rpt.Side1PlayerId; new MyAjaxRequest(uW.g_ajaxpath + "ajax/getUserGeneralInfo.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { rpt.side1Name = rslt['userInfo']['0']['name']; if (rpt.Side0PlayerId) { if (rpt.Side0PlayerId != 0) { var params = uW.Object.clone(uW.g_ajaxparams); params.uid = rpt.Side0PlayerId; new MyAjaxRequest(uW.g_ajaxpath + "ajax/getUserGeneralInfo.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { rpt.side0Name = rslt['userInfo']['0']['name']; t.GetReport(rpId, rpt); }, onFailure: function () { alert('kabam is having issues'); }, }, false); } else { rpt.side0Name = "Enemy"; t.GetReport(rpId, rpt); } } else { rpt.side0Name = "Enemy"; t.GetReport(rpId, rpt); } }, onFailure: function () { alert('kabam is having issues'); }, }, false); }, GetReport: function (rpId, rpt) { var t = Rpt; var params = uW.Object.clone(uW.g_ajaxparams); params.side = 1; if (rpt.Side0PlayerId == uW.tvuid) { params.side = 0; } else { if (rpt.Side1PlayerId == uW.tvuid) { params.side = 1; } else { if (Seed.allianceDiplomacies) { if (parseInt(rpt.side0AllianceId) == parseInt(Seed.allianceDiplomacies.allianceId)) { params.side = 0; } else { params.side = 1; } } } } rpt.sideId = params.side; params.rid = rpId; new MyAjaxRequest(uW.g_ajaxpath + "ajax/fetchReport.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.error_code) alert('found report but kabam would not let me see it'); else t.ReportPopup(rslt, rpt, rpId); }, onFailure: function (rslt) {}, }, false); }, ReportPopup: function (rslt, rpt, reportId) { var t = Rpt; var popReport = null; //need the info from the list query var m = ''; var unitImg = []; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; unitImg[i] = '' + uW.unitcost['unt' + i][0]; } unitImg[53] = 'Crossbows'; unitImg[55] = 'Trebuchet'; unitImg[60] = 'Trap'; unitImg[61] = 'Caltrops'; unitImg[62] = 'Spiked Barrier'; for (var i = 101; i < 111; i++) unitImg[i] = '' + eval("uW.g_js_strings.monsterUnitsNames.m" + i); goldImg = GameIcons.goldImg + 'Gold'; foodImg = GameIcons.foodImg + 'Food'; woodImg = GameIcons.woodImg + 'Wood'; stoneImg = GameIcons.stoneImg + 'Stone'; oreImg = GameIcons.oreImg + 'Ore'; astoneImg = GameIcons.astoneImg + 'Aetherstone'; var unitImg2 = []; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; unitImg2[i] = ''; } unitImg2[53] = ''; unitImg2[55] = ''; unitImg2[60] = ''; unitImg2[61] = ''; unitImg2[62] = ''; for (var i = 101; i < 111; i++) unitImg2[i] = ''; var trEffect = []; /* trEffect[1] = 'Attack'; trEffect[2] = 'Defense'; trEffect[3] = 'Life'; trEffect[4] = 'Combat Speed'; trEffect[5] = 'Range'; trEffect[6] = 'Load'; trEffect[7] = 'Accuracy'; trEffect[8] = 'Bonus to PvP on Defense'; trEffect[9] = 'Bonus to PvP on Offense'; trEffect[10] = 'Bonus vs. Wilds'; trEffect[11] = 'Bonus vs. Barbarian Camps'; trEffect[12] = 'Bonus vs. Dark Forests'; trEffect[13] = 'Bonus to Traps'; trEffect[14] = 'Bonus to Spiked Barriers'; trEffect[15] = 'Bonus to Wall Mounted Crossbows'; trEffect[16] = 'Bonus to Wall'; trEffect[17] = 'Attack Debuff'; trEffect[18] = 'Defense Debuff'; trEffect[19] = 'Life Debuff'; trEffect[20] = 'Combat Speed Debuff'; trEffect[21] = 'Range Debuff'; trEffect[22] = 'Load Debuff'; trEffect[23] = 'Accuracy Debuff'; trEffect[24] = 'Infantry Attack'; trEffect[25] = 'Infantry Defense'; trEffect[26] = 'Infantry Life'; trEffect[27] = 'Infantry Combat Speed'; trEffect[28] = 'Infantry Accuracy Bonus'; trEffect[29] = 'Infantry Attack Debuff'; trEffect[30] = 'Infantry Defense Debuff'; trEffect[31] = 'Infantry Life Debuff'; trEffect[32] = 'Infantry Combat Speed Debuff'; trEffect[33] = 'Infantry Accuracy Bonus Debuff'; trEffect[34] = 'Ranged Attack'; trEffect[35] = 'Ranged Defense'; trEffect[36] = 'Ranged Life'; trEffect[37] = 'Ranged Range'; trEffect[38] = 'Ranged Accuracy Bonus'; trEffect[39] = 'Ranged Attack Debuff'; trEffect[40] = 'Ranged Defense Debuff'; trEffect[41] = 'Ranged Life Debuff'; trEffect[42] = 'Ranged Range Debuff'; trEffect[43] = 'Ranged Accuracy Bonus Debuff'; trEffect[44] = 'Horsed Attack'; trEffect[45] = 'Horsed Defense'; trEffect[46] = 'Horsed Life'; trEffect[47] = 'Horsed Combat Speed'; trEffect[48] = 'Horsed Load'; trEffect[49] = 'Horsed Accuracy Bonus'; trEffect[50] = 'Horsed Attack Debuff'; trEffect[51] = 'Horsed Defense Debuff'; trEffect[52] = 'Horsed Life Debuff'; trEffect[53] = 'Horsed Combat Speed Debuff'; trEffect[54] = 'Horsed Load Debuff'; trEffect[55] = 'Horsed Accuracy Bonus Debuff'; trEffect[56] = 'Siege Attack'; trEffect[57] = 'Siege Combat Speed'; trEffect[58] = 'Siege Range'; trEffect[59] = 'Siege Load'; trEffect[60] = 'Siege Accuracy'; trEffect[61] = 'Siege Attack Debuff'; trEffect[62] = 'Siege Combat Speed Debuff'; trEffect[63] = 'Siege Range Debuff'; trEffect[64] = 'Siege Load Debuff'; trEffect[65] = 'Siege Accuracy Debuff'; trEffect[66] = 'March Size'; trEffect[67] = 'March Speed'; trEffect[68] = 'Attack March Speed'; trEffect[69] = 'Reinforcement March Speed'; trEffect[70] = 'Transport March Speed'; trEffect[71] = 'Reassign March Speed'; trEffect[72] = 'Scout March Speed'; trEffect[73] = 'Combat'; trEffect[74] = 'Intelligence'; trEffect[75] = 'Politics'; trEffect[76] = 'Resourcefulness'; trEffect[77] = 'Troop Training Speed'; trEffect[78] = 'Construction Speed'; trEffect[79] = 'Upkeep Reduction'; trEffect[80] = 'Research Speed'; trEffect[81] = 'Crafting Speed'; trEffect[82] = 'Resource Production'; trEffect[83] = 'Food Production'; trEffect[84] = 'Wood Production'; trEffect[85] = 'Stone Production'; trEffect[86] = 'Ore Production'; trEffect[87] = 'Broad Resource Cap'; trEffect[88] = 'Aetherstone Cap'; trEffect[89] = 'Storehouse Protection'; trEffect[90] = 'Morale Boost'; trEffect[91] = 'Chance to Find Items'; trEffect[92] = 'Chance to Find Items in Dark Forests'; trEffect[93] = 'Chance to Find Items in PvP'; trEffect[94] = 'Druid Bonus 1' trEffect[95] = 'Fey Bonus 1' trEffect[96] = 'Briton Bonus 1' */ for (var k in uW.cm.thronestats.effects) trEffect[k] = uW.cm.thronestats.effects[k][1]; var chEffect = ["hpm", "hpr", "dam", "arm", "str", "dex", "con", "hit", "cri", "blk"]; var chEffectName = [uW.g_js_strings.champion_stats.hp, uW.g_js_strings.report_view.hp_remaining, uW.g_js_strings.champion_stats.damage, uW.g_js_strings.effects.name_203, uW.g_js_strings.effects.name_204, uW.g_js_strings.effects.name_205, uW.g_js_strings.effects.name_206, uW.g_js_strings.effects.name_207, uW.g_js_strings.effects.name_208, uW.g_js_strings.effects.name_209]; rpt.marchName = '?'; if (rpt.marchType == 0) rpt.marchName = 'Desertion'; else if (rpt.marchType == 1) rpt.marchName = 'Transport'; else if (rpt.marchType == 2) rpt.marchName = 'Reinforce'; else if (rpt.marchType == 3) { if (rpt.sideId == 0) rpt.marchName = 'Anti-Scout'; else rpt.marchName = 'Scout'; } else if (rpt.marchType == 4) { if (rpt.sideId == 0) rpt.marchName = 'Defend'; else rpt.marchName = 'Attack'; } else if (rpt.marchType == 9) rpt.marchName = 'Raid'; else if (rpt.marchType == 10) rpt.marchName = 'Dark Forest'; if (parseInt(rpt.side0TileType) == 10) rpt.side0TileTypeText = 'Grass'; else if (parseInt(rpt.side0TileType) == 11) rpt.side0TileTypeText = 'Lake'; else if (parseInt(rpt.side0TileType) == 20) rpt.side0TileTypeText = 'Woods'; else if (parseInt(rpt.side0TileType) == 30) rpt.side0TileTypeText = 'Hills'; else if (parseInt(rpt.side0TileType) == 40) rpt.side0TileTypeText = 'Mount'; else if (parseInt(rpt.side0TileType) == 50) rpt.side0TileTypeText = 'Plain'; else if (parseInt(rpt.side0CityId) == 0) rpt.side0TileTypeText = 'Barb'; else rpt.side0TileTypeText = 'City'; function MonitorLink(n, cl) { var m = []; if (uW.btLoaded) { if (cl) m.push(''); m.push(n); m.push(''); } else { m.push(n); } return m.join(''); } function MonitorLinkUID(n, cl) { var m = []; if (uW.btLoaded) { if (cl) m.push(''); m.push(n); m.push(''); } else { m.push(n); } return m.join(''); } function buildHeader() { var h = '
    '; h += '
    '; h += formatUnixTime(rpt.reportUnixTime, '24hour'); h += '
    '; h += 'Glory Gained: '; if (rslt['glory']) h += addCommas(rslt['glory']); else h += '0'; h += '
    '; h += '
    '; if (rpt.side0TileTypeText != 'City' && rpt.side0TileTypeText != 'Barb' && rpt.marchName == 'Attack') { if (rslt['conquered'] == 1) h += 'Conquered'; else if (rslt['conquered'] == 0) h += 'Secured'; } else if ((rslt['winner'] == 1 && rpt.sideId == 0) || (rslt['winner'] == 0 && rpt.sideId == 1)) { if (rpt.marchName == 'Scout') h += 'Scouting Failed'; else h += 'You were defeated'; } else if (rslt['winner'] == 0 && rpt.sideId == 0) h += 'You defended successfully!'; else if (rslt['winner'] == 1 && rpt.sideId == 1) { if (rpt.marchName == 'Scout') h += 'Scouting Report'; else h += 'You were victorious!'; } h += '
    '; h += '
    '; h += 'Report No: ' + reportId; h += '
    '; h += '
    '; return h; } function buildBattle() { var m = ''; //header m += '
    Battle Results:
    '; //summary m += '
    '; //summary - attacker m += '
    '; m += 'Attackers: ' + MonitorLink(rpt.side1Name) + ' (' + rpt.side1XCoord + ',' + rpt.side1YCoord + ') '; if (rslt['winner'] == 1) m += ' Winner'; m += '
    '; if (rpt.side1PlayerId && (rpt.side1PlayerId != 0)) m += 'UID:' + MonitorLinkUID(rpt.side1PlayerId) + '
    '; if (rpt.marchName == 'Attack' || rpt.marchName == 'Defend') m += 'Knight Combat Skill: ' + rslt['s1KCombatLv'] + '
    '; if (rslt['fght']["s1"]) { var atkmight = 0; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (rslt['fght']["s1"]['u' + i]) { if (rslt['fght']["s1"]['u' + i][0] > rslt['fght']["s1"]['u' + i][1]) { atkmight += parseInt(uW.unitmight['unt' + i] * (parseInt(rslt['fght']["s1"]['u' + i][0]) - parseInt(rslt['fght']["s1"]['u' + i][1]))); } else { atkmight += 0; } } } } if (rslt['s1spell'] && (rslt['s1spell'] != "0")) { m += 'Spell Used: ' + eval('uW.g_js_strings.spells.name_' + rslt['s1spell']) + '
    '; } m += 'Might Lost: ' + addCommas(atkmight) + '
    '; //summary - defender m += '
    '; m += 'Defenders ' + MonitorLink(rpt.side0Name) + ' (' + rpt.side0XCoord + ',' + rpt.side0YCoord + ') '; if (rslt['winner'] == 0) m += ' Winner'; m += '
    '; if (rpt.side0PlayerId && (rpt.side0PlayerId != 0)) m += 'UID:' + MonitorLinkUID(rpt.side0PlayerId) + '
    '; if (rpt.marchName == 'Attack' || rpt.marchName == 'Defend') m += 'Knight Combat Skill: ' + rslt['s0KCombatLv'] + '
    '; if (rslt['s0spell'] && (rslt['s0spell'] != "0")) { m += 'Spell Used: ' + eval('uW.g_js_strings.spells.name_' + rslt['s0spell']) + '
    '; } if (rslt['fght']["s0"]) { var defmight = 0; if (rslt.overwhelmed) { for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (rslt['fght']["s0"]['u' + i]) { if (rslt['fght']["s0"]['u' + i][0] > rslt['fght']["s0"]['u' + i][1]) { defmight += parseInt(uW.unitmight['unt' + i] * parseInt(rslt['fght']["s0"]['u' + i][0])); } else { defmight += 0; } } } for (var i = 53; i <= 55; i++) { if (rslt['fght']["s0"]['f' + i]) { if (rslt['fght']["s0"]['f' + i][0] > rslt['fght']["s0"]['f' + i][1]) { if (i == 53) { defmight += 4 * (parseInt(rslt['fght']["s0"]['f53'][0])) }; if (i == 55) { defmight += 7 * (parseInt(rslt['fght']["s0"]['f55'][0])) }; } else { defmight += 0; } } } for (var i = 60; i < 63; i++) { if (rslt['fght']["s0"]['f' + i]) { if (rslt['fght']["s0"]['f' + i][0] > rslt['fght']["s0"]['f' + i][1]) { if (i == 60) { defmight += 3 * (parseInt(rslt['fght']["s0"]['f60'][0])) }; if (i == 61) { defmight += (parseInt(rslt['fght']["s0"]['f61'][0])) }; if (i == 62) { defmight += 2 * (parseInt(rslt['fght']["s0"]['f62'][0])) }; } else { defmight += 0; } } } } else { for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (rslt['fght']["s0"]['u' + i]) { if (rslt['fght']["s0"]['u' + i][0] > rslt['fght']["s0"]['u' + i][1]) { defmight += parseInt(uW.unitmight['unt' + i] * (parseInt(rslt['fght']["s0"]['u' + i][0]) - parseInt(rslt['fght']["s0"]['u' + i][1]))); } else { defmight += 0; } } } for (var i = 53; i <= 55; i++) { if (rslt['fght']["s0"]['f' + i]) { if (rslt['fght']["s0"]['f' + i][0] > rslt['fght']["s0"]['f' + i][1]) { if (i == 53) { defmight += 4 * (parseInt(rslt['fght']["s0"]['f53'][0]) - parseInt(rslt['fght']["s0"]['f53'][1])) }; if (i == 55) { defmight += 7 * (parseInt(rslt['fght']["s0"]['f55'][0]) - parseInt(rslt['fght']["s0"]['f55'][1])) }; } else { defmight += 0; } } } for (var i = 60; i < 63; i++) { if (rslt['fght']["s0"]['f' + i]) { if (rslt['fght']["s0"]['f' + i][0] > rslt['fght']["s0"]['f' + i][1]) { if (i == 60) { defmight += 3 * (parseInt(rslt['fght']["s0"]['f60'][0]) - parseInt(rslt['fght']["s0"]['f60'][1])) }; if (i == 61) { defmight += (parseInt(rslt['fght']["s0"]['f61'][0]) - parseInt(rslt['fght']["s0"]['f61'][1])) }; if (i == 62) { defmight += 2 * (parseInt(rslt['fght']["s0"]['f62'][0]) - parseInt(rslt['fght']["s0"]['f62'][1])) }; } else { defmight += 0; } } } } m += 'Might Lost: ' + addCommas(defmight) + '
    '; } m += 'Rounds: ' + rslt['rnds'] + '
    '; if (rslt['darkForestConflict']) { m += 'The forests twisted and changed.'; } else { if (rpt.side0TileTypeText != 'City' && rpt.sideId == 0) { if (rslt['conquered'] == 1) m += 'Attackers conquered the wilderness.'; else if (rslt['conquered'] == 0) m += 'Attackers did not conquer the wilderness.'; } else { if (rslt['wall']) { if (rslt['wall'] == 100) m += 'Attackers breached the walls.'; else m += 'Attackers did not breach the walls. The walls are ' + rslt['wall'] + '% damaged'; } } } m += '
    '; m += '
    '; //end battlesummary div //troops m += '
    '; //troops - attacker m += '
    '; if (rslt['fght']["s1"]) { m += ''; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (rslt['fght']["s1"]['u' + i]) { if (rslt['fght']["s1"]['u' + i][0] > rslt['fght']["s1"]['u' + i][1]) { m += ''; m += ''; m += ''; m += ''; } else { m += ''; m += ''; m += ''; } } } } m += '
    TroopsFoughtSurvivedKilled
    ' + unitImg[i] + '' + addCommas(rslt['fght']["s1"]['u' + i][0]) + '' + addCommas(rslt['fght']["s1"]['u' + i][1]) + '(' + addCommas((rslt['fght']["s1"]['u' + i][0]) - (rslt['fght']["s1"]['u' + i][1])) + ')
    ' + unitImg[i] + '' + addCommas(rslt['fght']["s1"]['u' + i][0]) + '' + addCommas(rslt['fght']["s1"]['u' + i][1]) + '
    '; //troops - defender m += '
    '; m += ''; if (rslt['fght']["s0"]) { if (rslt.overwhelmed) { m += ''; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (rslt['fght']["s0"]['u' + i] && (rslt['fght']["s0"]['u' + i][0] != null)) { m += ''; m += ''; m += ''; if (rslt['fght']["s0"]['u' + i][0] > 0) { m += ''; } else { m += ''; } } } for (var i = 53; i <= 55; i++) { if (rslt['fght']["s0"]['f' + i]) { m += ''; m += ''; m += ''; if (rslt['fght']["s0"]['f' + i][0] > 0) { m += ''; } else { m += ''; } } } for (var i = 60; i <= 63; i++) { if (rslt['fght']["s0"]['f' + i]) { m += ''; m += ''; m += ''; if (rslt['fght']["s0"]['f' + i][0] > 0) { m += ''; } else { m += ''; } } } for (var i = 101; i <= 110; i++) { if (rslt['fght']["s0"]['m' + i]) { m += ''; m += ''; m += ''; if (rslt['fght']["s0"]['m' + i][0] > 0) { m += ''; } else { m += ''; } } } } else { m += ''; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (rslt['fght']["s0"]['u' + i] && (rslt['fght']["s0"]['u' + i][0] != null)) { if (rslt['fght']["s0"]['u' + i][0] > rslt['fght']["s0"]['u' + i][1]) { m += ''; m += ''; m += ''; m += ''; } else { m += ''; m += ''; m += ''; } } } for (var i = 53; i <= 55; i++) { if (rslt['fght']["s0"]['f' + i]) { if (rslt['fght']["s0"]['f' + i][0] > rslt['fght']["s0"]['f' + i][1]) { m += ''; m += ''; m += ''; m += ''; } else { m += ''; m += ''; m += ''; } } } for (var i = 60; i <= 63; i++) { if (rslt['fght']["s0"]['f' + i]) { if (rslt['fght']["s0"]['f' + i][0] > rslt['fght']["s0"]['f' + i][1]) { m += ''; m += ''; m += ''; m += ''; } else { m += ''; m += ''; m += ''; } } } for (var i = 101; i <= 110; i++) { if (rslt['fght']["s0"]['m' + i]) { if (rslt['fght']["s0"]['m' + i][0] > rslt['fght']["s0"]['m' + i][1]) { m += ''; m += ''; m += ''; m += ''; } else { m += ''; m += ''; m += ''; } } } } } else m += ''; m += '
    TroopsFoughtSurvivedKilled
    ' + unitImg[i] + '??????(' + addCommas(rslt['fght']["s0"]['u' + i][0]) + ')
    0
    ' + unitImg[i] + '??????(' + addCommas(rslt['fght']["s0"]['f' + i][0]) + ')
    0
    ' + unitImg[i] + '??????(' + addCommas(rslt['fght']["s0"]['f' + i][0]) + ')
    0
    ' + unitImg[i] + '??????(' + addCommas(rslt['fght']["s0"]['m' + i][0]) + ')
    0
    TroopsFoughtSurvivedKilled
    ' + unitImg[i] + '' + addCommas(rslt['fght']["s0"]['u' + i][0]) + '' + addCommas(rslt['fght']["s0"]['u' + i][1]) + '(' + addCommas((rslt['fght']["s0"]['u' + i][0]) - (rslt['fght']["s0"]['u' + i][1])) + ')
    ' + unitImg[i] + '' + addCommas(rslt['fght']["s0"]['u' + i][0]) + '' + addCommas(rslt['fght']["s0"]['u' + i][1]) + '
    ' + unitImg[i] + '' + addCommas(rslt['fght']["s0"]['f' + i][0]) + '' + addCommas(rslt['fght']["s0"]['f' + i][1]) + '(' + addCommas((rslt['fght']["s0"]['f' + i][0]) - (rslt['fght']["s0"]['f' + i][1])) + ')
    ' + unitImg[i] + '' + addCommas(rslt['fght']["s0"]['f' + i][0]) + '' + addCommas(rslt['fght']["s0"]['f' + i][1]) + '
    ' + unitImg[i] + '' + addCommas(rslt['fght']["s0"]['f' + i][0]) + '' + addCommas(rslt['fght']["s0"]['f' + i][1]) + '(' + addCommas((rslt['fght']["s0"]['f' + i][0]) - (rslt['fght']["s0"]['f' + i][1])) + ')
    ' + unitImg[i] + '' + addCommas(rslt['fght']["s0"]['f' + i][0]) + '' + addCommas(rslt['fght']["s0"]['f' + i][1]) + '
    ' + unitImg[i] + '' + addCommas(rslt['fght']["s0"]['m' + i][0]) + '' + addCommas(rslt['fght']["s0"]['m' + i][1]) + '(' + addCommas((rslt['fght']["s0"]['m' + i][0]) - (rslt['fght']["s0"]['m' + i][1])) + ')
    ' + unitImg[i] + '' + addCommas(rslt['fght']["s0"]['m' + i][0]) + '' + addCommas(rslt['fght']["s0"]['m' + i][1]) + '
    No Troops Defended
    '; m += '
    '; m += '
    '; //end troops div m += '
    '; return m; } function buildTroopStats() { var m = ''; if (rslt['bonus']) { //header m += ''; //stats m += '
    '; //troops - attacker - stats m += '
    '; if (rslt['fght']["s1"]) { for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (rslt['fght']["s1"]['u' + i]) { m += '
    ' + unitImg2[i] + '
    '; m += '
    '; if (rslt['bonus']['mod']['s1']['u' + i]['atk']) m += ''; if (rslt['bonus']['mod']['s1']['u' + i]['def']) m += ''; if (rslt['bonus']['mod']['s1']['u' + i]['spd']) m += ''; if (rslt['bonus']['mod']['s1']['u' + i]['rng']) m += ''; if (rslt['bonus']['mod']['s1']['u' + i]['ld']) m += ''; m += '
    HP: ' + addCommas(rslt['bonus']['mod']['s1']['u' + i]['hp'][1]) + 'Atk: ' + addCommas(rslt['bonus']['mod']['s1']['u' + i]['atk'][1]) + 'Def: ' + addCommas(rslt['bonus']['mod']['s1']['u' + i]['def'][1]) + '
    Spd: ' + addCommas(rslt['bonus']['mod']['s1']['u' + i]['spd'][1]) + 'Rng: ' + addCommas(rslt['bonus']['mod']['s1']['u' + i]['rng'][1]) + 'Ld: ' + addCommas(rslt['bonus']['mod']['s1']['u' + i]['ld'][1]) + '
    '; } } } m += '
    '; //troops - defender - stats m += '
    '; if (rslt['fght']["s0"]) { for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (rslt['fght']["s0"]['u' + i]) { if (rslt['fght']["s0"]['u' + i] && rslt['bonus']['mod']["s0"]['u' + i]) { m += '
    ' + unitImg2[i] + '
    '; m += '
    '; if (rslt['bonus']['mod']['s0']['u' + i]['atk']) m += ''; if (rslt['bonus']['mod']['s0']['u' + i]['def']) m += ''; if (rslt['bonus']['mod']['s0']['u' + i]['spd']) m += ''; if (rslt['bonus']['mod']['s0']['u' + i]['rng']) m += ''; m += '
    HP: ' + addCommas(rslt['bonus']['mod']['s0']['u' + i]['hp'][1]) + 'Atk: ' + addCommas(rslt['bonus']['mod']['s0']['u' + i]['atk'][1]) + 'Def: ' + addCommas(rslt['bonus']['mod']['s0']['u' + i]['def'][1]) + '
    Spd: ' + addCommas(rslt['bonus']['mod']['s0']['u' + i]['spd'][1]) + 'Rng: ' + addCommas(rslt['bonus']['mod']['s0']['u' + i]['rng'][1]) + '
    '; } } } for (var i = 53; i <= 55; i++) { if (rslt['fght']["s0"]['f' + i]) { m += '
    ' + unitImg2[i] + '
    '; m += '
    '; m += ''; m += ''; m += ''; m += '
    HP: ' + addCommas(rslt['bonus']['mod']['s0']['f' + i]['hp'][1]) + 'Atk: ' + addCommas(rslt['bonus']['mod']['s0']['f' + i]['atk'][1]) + 'Def: ' + addCommas(rslt['bonus']['mod']['s0']['f' + i]['def'][1]) + '
    Spd: ' + addCommas(rslt['bonus']['mod']['s0']['f' + i]['spd'][1]) + 'Rng: ' + addCommas(rslt['bonus']['mod']['s0']['f' + i]['rng'][1]) + '
    '; } } for (var i = 60; i <= 63; i++) { if (rslt['fght']["s0"]['f' + i]) { m += '
    ' + unitImg2[i] + '
    '; m += '
    '; m += ''; m += ''; m += ''; m += '
    HP: ' + addCommas(rslt['bonus']['mod']['s0']['f' + i]['hp'][1]) + 'Atk: ' + addCommas(rslt['bonus']['mod']['s0']['f' + i]['atk'][1]) + 'Def: ' + addCommas(rslt['bonus']['mod']['s0']['f' + i]['def'][1]) + '
    Spd: ' + addCommas(rslt['bonus']['mod']['s0']['f' + i]['spd'][1]) + 'Rng: ' + addCommas(rslt['bonus']['mod']['s0']['f' + i]['rng'][1]) + '
    '; } } for (var i = 101; i <= 110; i++) { if (rslt['fght']["s0"]['m' + i]) { m += '
    ' + unitImg2[i] + '
    '; m += '
    '; if (rslt['bonus']['mod']['s0']['m' + i]['atk']) m += ''; if (rslt['bonus']['mod']['s0']['m' + i]['def']) m += ''; if (rslt['bonus']['mod']['s0']['m' + i]['spd']) m += ''; if (rslt['bonus']['mod']['s0']['m' + i]['rng']) m += ''; m += '
    HP: ' + addCommas(rslt['bonus']['mod']['s0']['m' + i]['hp'][1]) + 'Atk: ' + addCommas(rslt['bonus']['mod']['s0']['m' + i]['atk'][1]) + 'Def: ' + addCommas(rslt['bonus']['mod']['s0']['m' + i]['def'][1]) + '
    Spd: ' + addCommas(rslt['bonus']['mod']['s0']['m' + i]['spd'][1]) + 'Rng: ' + addCommas(rslt['bonus']['mod']['s0']['m' + i]['rng'][1]) + '
    '; } } } m += '
    '; m += '
     
    '; m += '
    '; //end reportTroopStats div } return m; } function buildChampDuel() { var m = ''; if (rslt['champion_stats']) { s1name = rslt.champion_stats['s1'].nam; s1win = rslt.champion_stats['s1'].won; s0name = rslt.champion_stats['s0'].nam; s0win = rslt.champion_stats['s0'].won; if ((s1name != '') || (s0name != '')) { //header m += ''; //summary m += '
    '; m += '
    '; m += '
    '; if (s1name == '') { s1name = 'No Champion'; } if (s1win) { s1name += ' (Winner)'; } m += '' + s1name + '
    '; for (var i = 1; i < chEffect.length; i++) { if (rslt.champion_stats['s1'][chEffect[i]]) { m += chEffectName[i] + ': ' + rslt.champion_stats['s1'][chEffect[i]] + '
    '; } } m += '
    '; //attacker m += '
    '; if (s0name == '') { s0name = 'No Champion'; } if (s0win) { s0name += ' (Winner)'; } m += '' + s0name + '
    '; for (var i = 1; i < chEffect.length; i++) { if (rslt.champion_stats['s0'][chEffect[i]]) { m += chEffectName[i] + ': ' + rslt.champion_stats['s0'][chEffect[i]] + '
    '; } } m += '
    '; //defender m += '
    '; //ChampStatContainer m += '
     
    '; if (rslt.bonus) { if (rslt.bonus['cmp']) { m += '
    '; m += '
    '; // rather than fix the index for life, kabam remapped efects // 0:g_js_strings.effects.name_3, // 1:g_js_strings.effects.name_1, // 2:g_js_strings.effects.name_2, // 3:g_js_strings.commonstr.speed, // 4:g_js_strings.effects.name_5, // 5:g_js_strings.effects.name_6, // 6:g_js_strings.effects.name_7 m += 'Champion Adjustments
    '; for (var i = 0; i < 24; i++) { if (rslt.bonus['cmp']['s1'][i]) { if (i == 0) m += ''; else if (i < 3) m += ''; else m += ''; } } m += '
    Life: ' + rslt.bonus['cmp']['s1'][i] + '
    ' + trEffect[i] + ': ' + rslt.bonus['cmp']['s1'][i] + '
    ' + trEffect[i + 1] + ': ' + rslt.bonus['cmp']['s1'][i] + '

    ' m += '
    '; //attacker m += '
    '; m += 'Champion Adjustments
    '; for (var i = 0; i < 24; i++) { if (rslt.bonus['cmp']['s0'][i]) { if (i == 0) m += ''; else if (i < 3) m += ''; else m += ''; } } m += '
    Life: ' + rslt.bonus['cmp']['s0'][i] + '
    ' + trEffect[i] + ': ' + rslt.bonus['cmp']['s0'][i] + '
    ' + trEffect[i + 1] + ': ' + rslt.bonus['cmp']['s0'][i] + '

    ' m += '
    '; //defender m += '
    '; //ChampAdjContainer m += '
     
    '; } } m += '
    '; //reportChampDuel } } return m; } function buildThroneStats() { var m = ''; var LineStyle = ''; var EndStyle = ''; var GlobalEffects = [1, 2, 3, 4, 5, 6, 7, 17, 18, 19, 20, 21, 22, 23, 102, 103, 8, 9, 73]; var AttackEffects = [1, 17, 24, 29, 34, 39, 44, 50, 56, 61, 102]; var DefenceEffects = [2, 18, 25, 30, 35, 40, 45, 51, 104]; var LifeEffects = [3, 19, 26, 31, 36, 41, 46, 52]; var RangeEffects = [5, 21, 37, 42, 58, 63]; var SpeedEffects = [4, 20, 27, 32, 47, 53, 57, 62]; var AccuracyEffects = [7, 23, 28, 33, 38, 43, 49, 55, 60, 65]; var OtherCombatEffects = [8, 9, 13, 14, 15, 16, 73]; var OtherPVPEffects = [6, 22, 48, 54, 59, 64]; var DebuffEffects = [17, 18, 19, 20, 22, 21, 23, 29, 39, 50, 54, 61, 30, 40, 51, 31, 41, 52, 42, 63, 64, 32, 53, 62]; //header m += ''; //summary m += '
    '; m += '
    '; if (rslt['s1ThroneRoomBoosts']) { for (var i = 1; i < trEffect.length + 1; i++) { if (rslt['s1ThroneRoomBoosts'][i]) { LineStyle = ''; if (AttackEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (DefenceEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (LifeEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (RangeEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (SpeedEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (AccuracyEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (OtherCombatEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (GlobalEffects.indexOf(parseInt(i)) > -1) { LineStyle = LineStyle + ''; EndStyle = '' + EndStyle; } if (DebuffEffects.indexOf(parseInt(i)) > -1) { LineStyle = LineStyle + ''; EndStyle = '' + EndStyle; } m += LineStyle + trEffect[i] + ': ' + rslt['s1ThroneRoomBoosts'][i] + '%' + EndStyle + '
    '; } } } m += '
    '; //attacker m += '
    '; if (rslt['s0ThroneRoomBoosts']) { for (var i = 1; i < trEffect.length + 1; i++) { if (rslt['s0ThroneRoomBoosts'][i]) { LineStyle = ''; if (AttackEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (DefenceEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (LifeEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (RangeEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (SpeedEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (AccuracyEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (OtherCombatEffects.indexOf(parseInt(i)) > -1) LineStyle = ''; if (GlobalEffects.indexOf(parseInt(i)) > -1) { LineStyle = LineStyle + ''; EndStyle = '' + EndStyle; } if (DebuffEffects.indexOf(parseInt(i)) > -1) { LineStyle = LineStyle + ''; EndStyle = '' + EndStyle; } m += LineStyle + trEffect[i] + ': ' + rslt['s0ThroneRoomBoosts'][i] + '%' + EndStyle + '
    '; } } } m += '
    '; //defender m += '
     
    '; m += '
    '; //throne container return m; } function buildBoosts() { var m = ''; //header m += ''; //summary m += '
    '; if (rslt['s1atkBoost'] || rslt['s1defBoost'] || rslt['s0atkBoost'] || rslt['s0defBoost']) { m += '
    '; m += 'Item Boosts
    '; if (rslt['s1atkBoost']) m += 'Attack Boosted: ' + 100 * rslt['s1atkBoost'] + '%
    '; if (rslt['s1defBoost']) m += 'Defense Boosted: ' + 100 * rslt['s1defBoost'] + '%
    '; m += '
    '; //attacker m += '
    '; m += 'Item Boosts
    '; if (rslt['s0atkBoost']) m += 'Attack Boosted: ' + 100 * rslt['s0atkBoost'] + '%
    '; if (rslt['s0defBoost']) m += 'Defense Boosted: ' + 100 * rslt['s0defBoost'] + '%
    '; m += '
    '; //defender m += '
     
    '; } if (rslt['s1guardianAtkBoost'] || rslt['s1guardianDefBoost'] || rslt['s1guardianMarchBoost'] || rslt['s1guardianTrainBoost'] || rslt['s0guardianAtkBoost'] || rslt['s0guardianDefBoost'] || rslt['s0guardianMarchBoost'] || rslt['s0guardianTrainBoost']) { m += '
    '; m += 'Guardian Boosts
    '; if (rslt['s1guardianAtkBoost']) m += 'Guardian Attack Boost: ' + parseFloat(100 * rslt['s1guardianAtkBoost']).toFixed(1) + '%
    '; if (rslt['s1guardianDefBoost']) m += 'Guardian Life Boost: ' + parseFloat(100 * rslt['s1guardianDefBoost']).toFixed(1) + '%
    '; if (rslt['s1guardianMarchBoost']) m += 'Guardian March Speed Boost: ' + parseFloat(100 * rslt['s1guardianMarchBoost']).toFixed(1) + '%
    '; if (rslt['s1guardianTrainBoost']) m += 'Guardian Training Boost: ' + parseFloat(100 * rslt['s1guardianTrainBoost']).toFixed(1) + '%
    '; m += '
    '; //attacker m += '
    '; m += 'Guardian Boosts
    '; if (rslt['s0guardianAtkBoost']) m += 'Guardian Attack Boost: ' + parseFloat(100 * rslt['s0guardianAtkBoost']).toFixed(1) + '%
    '; if (rslt['s0guardianDefBoost']) m += 'Guardian Life Boost: ' + parseFloat(100 * rslt['s0guardianDefBoost']).toFixed(1) + '%
    '; if (rslt['s0guardianMarchBoost']) m += 'Guardian March Speed Boost: ' + parseFloat(100 * rslt['s0guardianMarchBoost']).toFixed(1) + '%
    '; if (rslt['s0guardianTrainBoost']) m += 'Guardian Training Boost: ' + parseFloat(100 * rslt['s0guardianTrainBoost']).toFixed(1) + '%
    '; m += '
    '; //defender m += '
     
    '; } if (rslt.bonus) { if (rslt.bonus['tch'] || rslt.bonus['tch2']) { m += '
    '; m += 'Research
    '; if (rslt.bonus['tch']) { for (var t1l in rslt.bonus.tch.s1) { var normaltech = ''; if (t1l == 'hp') normaltech = 'Health'; if (t1l == 'atk') normaltech = 'Attack'; if (t1l == 'def') normaltech = 'Defense'; if (t1l == 'spd') normaltech = 'Speed'; if (t1l == 'rng') normaltech = 'Range'; if (t1l == 'ld') normaltech = 'Load'; if (normaltech != '') m += normaltech + ': ' + parseFloat(rslt.bonus.tch.s1[t1l] * 100).toFixed(0) + '%
    '; } } if (rslt.bonus['tch2']) { for (var t2l in rslt.bonus.tch2.s1) { var britontech = ''; if (t2l == 'ic') britontech = 'Improved Cartography'; if (t2l == 'id') britontech = 'Improved Defenses'; if (t2l == 'sr') britontech = 'Strengthen Ranks'; if (t2l == 'if') britontech = 'Improved Fletching'; if (britontech != '') m += britontech + ': ' + parseFloat(rslt.bonus.tch2.s1[t2l] * 100).toFixed(0) + '%
    '; } } m += '
    '; //attacker m += '
    '; m += 'Research
    '; if (rslt.bonus['tch']) { for (var t1l in rslt.bonus.tch.s0) { var normaltech = ''; if (t1l == 'hp') normaltech = 'Health'; if (t1l == 'atk') normaltech = 'Attack'; if (t1l == 'def') normaltech = 'Defense'; if (t1l == 'spd') normaltech = 'Speed'; if (t1l == 'rng') normaltech = 'Range'; if (normaltech != '') m += normaltech + ': ' + parseFloat(rslt.bonus.tch.s0[t1l] * 100).toFixed(0) + '%
    '; } } if (rslt.bonus['tch2']) { for (var t2l in rslt.bonus.tch2.s0) { var britontech = ''; if (t2l == 'ic') britontech = 'Improved Cartography'; if (t2l == 'id') britontech = 'Improved Defenses'; if (t2l == 'sr') britontech = 'Strengthen Ranks'; if (t2l == 'if') britontech = 'Improved Fletching'; if (britontech != '') m += britontech + ': ' + parseFloat(rslt.bonus.tch2.s0[t2l] * 100).toFixed(0) + '%
    '; } } } m += '
    '; //defender m += '
     
    '; } m += '
    '; //boosts m += '
    '; return m; } function handleLoot() { var m = ''; if (rslt['loot']) { m += '
    Loot:
    '; m += ''; else m += '0' m += ''; else m += '0'; m += ''; else m += '0' m += ''; else m += '0'; m += ''; else m += '0' m += ''; else m += '0 '; m += '' if (rslt['loot'][5]) { for (var crest = 1101; crest < 1116; crest++) { if (rslt['loot'][5][crest] == 1) m += ''; } } //if (rslt['throneRoomDrop'] { } // to do ... throne room items m += '
    ' + GameIcons.goldImgTiny; if (rslt['loot'][0] > 0) m += addCommas(parseFloat(rslt['loot'][0]).toFixed(0)) + '' + GameIcons.foodImgTiny; if (rslt['loot'][1] > 0) m += addCommas(parseFloat(rslt['loot'][1]).toFixed(0)) + '' + GameIcons.woodImgTiny; if (rslt['loot'][2] > 0) m += addCommas(parseFloat(rslt['loot'][2]).toFixed(0)) + '' + GameIcons.stoneImgTiny; if (rslt['loot'][3] > 0) m += addCommas(parseFloat(rslt['loot'][3]).toFixed(0)) + '' + GameIcons.oreImgTiny; if (rslt['loot'][4] > 0) m += addCommas(parseFloat(rslt['loot'][4]).toFixed(0)) + '' + GameIcons.astoneImgTiny; if (rslt['loot'][6] > 0) m += addCommas(parseFloat(rslt['loot'][6]).toFixed(0)) + '
    ' + crestname[crest] + '

    '; } return m; } function handleTransportLoot() { var m = ''; m += '
    Loot:
    '; m += ''; else m += '0' m += ''; else m += '0'; m += ''; else m += '0' m += ''; else m += '0'; m += ''; else m += '0' m += ''; else m += '0'; m += '' m += '
    ' + GameIcons.goldImgTiny; if (rslt['gold'] > 0) m += addCommas(rslt['gold']) + '' + GameIcons.foodImgTiny; if (rslt['resource1'] > 0) m += addCommas(rslt['resource1']) + '' + GameIcons.woodImgTiny; if (rslt['resource2'] > 0) m += addCommas(rslt['resource2']) + '' + GameIcons.stoneImgTiny; if (rslt['resource3'] > 0) m += addCommas(rslt['resource3']) + '' + GameIcons.oreImgTiny; if (rslt['resource4'] > 0) m += addCommas(rslt['resource4']) + '' + GameIcons.astoneImgTiny; if (rslt['resource5'] > 0) m += addCommas(rslt['resource5']) + '

    '; return m; } function handleunts() { // Troops sent to Reinforce or troops found on a Scout (also show destination for transports) var m = ''; //header if (rpt.marchName == 'Reinforce') m += '
    Reinforcement:
    '; else if (rpt.marchName == 'Transport') m += '
    Destination:
    '; else m += '
    Scout Report:
    '; //summary m += '
    '; //summary - attacker m += '
    '; if (rpt.marchName == 'Reinforce') m += 'Ally: ' + MonitorLink(rpt.side1Name) + ' (' + rpt.side1XCoord + ',' + rpt.side1YCoord + ')
    '; if (rslt['unts'] != undefined) { m += ''; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (rslt['unts']['u' + i] != undefined) m += ''; } m += '
    ' + unitImg[i] + '' + addCommas(rslt['unts']['u' + i]) + '
    '; } if (rpt.marchName != 'Reinforce') m += handlefrt(); m += ' 
    '; //summary - defender m += '
    '; if ((rpt.marchName == 'Reinforce') || (rpt.marchName == 'Transport')) m += 'Destination ' + MonitorLink(rpt.side0Name) + ' (' + rpt.side0XCoord + ',' + rpt.side0YCoord + ')
    '; else { m += ''; m += ''; if (rslt['lstlgn']) { if (!rslt['lstlgn']) m += ''; else m += ''; } m += ''; if (rslt['pop']) m += ''; if (rslt['hap']) m += '
    ' + MonitorLink(rpt.side0Name) + ' (' + rpt.side0XCoord + ',' + rpt.side0YCoord + ')
    Last Login: Not recorded
    Last Login: ' + formatUnixTime(rslt['lstlgn']) + '
    Marshall Combat: '; if (rslt['knt']) m += rslt['knt']['cbt']; else m += 'None'; m += '
    Population: ' + addCommas(rslt['pop']) + '
    Happiness: ' + addCommas(rslt['hap']) + '
    '; if (rslt['blds']) { if (rslt['blds']['b1'] || rslt['blds']['b2'] || rslt['blds']['b3'] || rslt['blds']['b4']) { m += ''; for (var i = 1; i < 5; i++) if (rslt['blds']['b' + i]) m += handleblds(i); m += '
    Fields
    '; } } if (rslt['tch']) { m += ''; for (var tl in rslt.tch) { tid = /[0-9]+/.exec(tl); m += ''; } m += '
    Research
    ' + uW.techcost['tch' + tid[0]][0] + '' + rslt.tch[tl] + '
    '; } m += ''; } m += '
    '; m += '
    '; //end battlesummary div m += '
    '; return m; } function handlersc() { // Resources brought with reinforcements or found on a Scout var m = ''; if (rslt['rsc'] != undefined) { if (rslt['rsc']['r1'] > 0 || rslt['rsc']['r2'] > 0 || rslt['rsc']['r3'] > 0 || rslt['rsc']['r4'] > 0) { if (rpt.marchName == 'Reinforce') m += '
    Goodies Brought:
    '; else m += '
    Goodies Found:
    '; m += ''; else m += '0'; m += ''; else m += '0'; m += ''; else m += '0'; m += ''; else m += '0'; m += ''; else m += '0'; m += ''; else m += '0'; m += '
    ' + GameIcons.goldImgTiny; if (rslt['gld'] > 0) m += addCommas(parseFloat(rslt['gld']).toFixed(0)) + '' + GameIcons.foodImgTiny; if (rslt['rsc']['r1'] > 0) m += addCommas(parseFloat(rslt['rsc']['r1']).toFixed(0)) + '' + GameIcons.woodImgTiny; if (rslt['rsc']['r2'] > 0) m += addCommas(parseFloat(rslt['rsc']['r2']).toFixed(0)) + '' + GameIcons.stoneImgTiny; if (rslt['rsc']['r3'] > 0) m += addCommas(parseFloat(rslt['rsc']['r3']).toFixed(0)) + '' + GameIcons.oreImgTiny; if (rslt['rsc']['r4'] > 0) m += addCommas(parseFloat(rslt['rsc']['r4']).toFixed(0)) + '' + GameIcons.astoneImgTiny; if (rslt['rsc']['r5'] > 0) m += addCommas(parseFloat(rslt['rsc']['r5']).toFixed(0)) + '
    '; } } return m; } function handlefrt() { // Fortifications found on a Scout var hfrt = '', th = '', tc = '', tf = ''; if (rslt['frt']) { if (rslt['frt']['f53'] != undefined || rslt['frt']['f55'] != undefined || rslt['frt']['f60'] != undefined || rslt['frt']['f61'] != undefined || rslt['frt']['f62'] != undefined) { th = ''; if (rslt['frt']['f53'] != undefined) tc += ''; if (rslt['frt']['f55'] != undefined) tc += ''; if (rslt['frt']['f60'] != undefined) tc += ''; if (rslt['frt']['f61'] != undefined) tc += ''; if (rslt['frt']['f62'] != undefined) tc += ''; tf = '
    Defenses Found
    ' + unitImg[53] + '' + addCommas(rslt['frt']['f53']) + '
    ' + unitImg[55] + '' + addCommas(rslt['frt']['f55']) + '
    ' + unitImg[60] + '' + addCommas(rslt['frt']['f60']) + '
    ' + unitImg[61] + '' + addCommas(rslt['frt']['f61']) + '
    ' + unitImg[62] + '' + addCommas(rslt['frt']['f62']) + '
    '; } } if (tc != '') hfrt = th + tc + tf; return hfrt; } function handleblds(bType) { if (rslt['blds']) { var blds = rslt['blds']['b' + bType]; b = ''; arField = [], firstbld = true; if (bType == 1) b += 'Farm'; else if (bType == 2) b += 'Sawmill'; else if (bType == 3) b += 'Quarry'; else if (bType == 4) b += 'Mine'; b += ''; for (var i = 1; i < 12; i++) arField[i] = 0; for (var i = 0; i < blds.length; i++) arField[blds[i]]++ for (var i = 11; i > 0; i--) { if (arField[i] > 0) { if (firstbld) firstbld = false; else b += ', '; if (arField[i] > 1) b += arField[i] + ' x '; b += ' ' + i; } } b += ''; return b; } } if (t.popReport) { t.popReport.show(false); if (t.popReport.onClose) t.popReport.onClose(); t.popReport.destroy(); t.popReport = null; } if (rpt.marchName == 'Reinforce') { t.popReport = new CPopup('pbReportPopup', reportpos.x, reportpos.y, 750, 240, true, function () { reportpos = t.popReport.getLocation(); clearTimeout(1000); }); m += '
    '; } else if (rpt.marchName == 'Transport') { t.popReport = new CPopup('pbReportPopup', reportpos.x, reportpos.y, 750, 240, true, function () { reportpos = t.popReport.getLocation(); clearTimeout(1000); }); m += '
    '; } else if (rpt.marchName == 'Scout' && rslt['winner'] == 1 && rpt.sideId == 1) { t.popReport = new CPopup('pbReportPopup', reportpos.x, reportpos.y, 750, 680, true, function () { reportpos = t.popReport.getLocation(); clearTimeout(1000); }); m += '
    '; } else { t.popReport = new CPopup('pbReportPopup', reportpos.x, reportpos.y, 750, 680, true, function () { reportpos = t.popReport.getLocation(); clearTimeout(1000); }); m += '
    '; } if ((reportpos.x == -999) && (reportpos.y == -999)) { t.popReport.centerMe(mainPop.getMainDiv()); } m += buildHeader(); if (rpt.marchName == 'Transport') { // Transport m += handleTransportLoot(); m += handleunts(); } m += handleLoot(); if (rpt.marchName == 'Reinforce') { m += handlersc(); m += handleunts(); } if (rpt.marchName == 'Scout' && rslt['winner'] == 1) { m += handlersc(); m += handleunts(); } if (rslt['fght']) { m += buildBattle(); m += buildTroopStats(); m += buildChampDuel(); m += buildThroneStats(); m += buildBoosts(); } m += '
    '; t.popReport.getMainDiv().innerHTML = m; t.popReport.getTopDiv().innerHTML = '
    ' + rpt.marchName + ' Report
    '; if (document.getElementById('reportTroopStatsHdr')) { document.getElementById('reportTroopStatsHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "reportTroopStats"); }, false); } if (document.getElementById('reportChampDuelHdr')) { document.getElementById('reportChampDuelHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "reportChampDuel"); }, false); } if (document.getElementById('reportThroneHdr')) { document.getElementById('reportThroneHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "reportThrone"); }, false); } if (document.getElementById('reportBoostsHdr')) { document.getElementById('reportBoostsHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "reportBoosts"); }, false); } t.popReport.show(true); }, }; /********************** Tournament Tab *******************************************/ // useless :( ...... /***/ /*** RSLT: (string) s0Kid = 57526 (string) s1Kid = 35216 (string) s1KLv = 1 (number) s0KCombatLv = 0 (string) s1KCombatLv = Higher (object) fght = [object Object] (object) s1 = [object Object] (array) u2 = 89000,89000 (string) 0 = 89000 (number) 1 = 89000 (array) u9 = 1000,1000 (string) 0 = 1000 (number) 1 = 1000 (number) rnds = 3 (number) winner = 1 (number) wall = 100 (number) s0atkBoost = 0 (number) s0defBoost = 0 (number) s1atkBoost = 0 (number) s1defBoost = 0.2 (boolean) conquered = false (array) loot = 111139,763000,643000,78000,138000 (number) 0 = 111139 (number) 1 = 763000 (number) 2 = 643000 (number) 3 = 78000 (number) 4 = 138000 (string) errorMsg = Something has gone wrong! Please try again, or refresh if this message reappear ***/ Tabs.Tournament = { tabOrder: 100, cont: null, displayTimer: null, init: function (div) { var t = Tabs.Tournament; t.cont = div; t.tourneyPos = 0; uW.ptSetTourneyPos = function (tab) { var t = Tabs.Tournament; t.tourneyPos = tab; t.show(); }; }, hide: function () { var t = Tabs.Tournament; clearTimeout(t.displayTimer); }, getContent: function () { var t = Tabs.Tournament; return t.cont; }, show: function () { var t = Tabs.Tournament; t.cont.style.overflowY = 'auto'; t.cont.style.maxHeight = '650px'; clearTimeout(t.displayTimer); t.cont.innerHTML = "
    "; var mhtl = "
    POPULATION AND PRODUCTION INFORMATION
    "; for (var i = 0; i < Cities.numCities; i++) { mhtl += ""; } mhtl += ""; var temps = []; for (var i = 0; i < Cities.numCities; i++) { temps[i] = ((Cities.cities[i]['Troop' + Options.TourneyTroopType + 'Time'] > 0) ? (3600 / Cities.cities[i]['Troop' + Options.TourneyTroopType + 'Time']) : 0); temps[i] = temps[i] + parseInt(temps[i] * equippedthronestats(77) / 100); mhtl += ""; } mhtl += ""; var pop = []; for (var i = 0; i < Cities.numCities; i++) { cityID = 'city' + Cities.cities[i].id; pop[i] = parseInt(Seed.citystats[cityID]["pop"][1]) / 2; mhtl += ""; } mhtl += ""; var diff = 0; for (var i = 0; i < Cities.numCities; i++) { if (temps[i] <= 0) { diff = 'N/A'; } diff = parseInt(pop[i] - temps[i]); var couleur = " style='font-color:green' "; if (diff < 0) couleur = " style='background-color:red' "; if (temps[i] <= 0) { mhtl += ""; } else { mhtl += ""; } } mhtl += ""; for (var i = 0; i < Cities.numCities; i++) { cityID = 'city' + Cities.cities[i].id; var bon = parseInt(Seed.citystats[cityID]["pop"][2]); var bonc = "red"; if (bon > 99) bonc = "green"; mhtl += ""; } var now = unixTime(); mhtl += ""; for (var i = 0; i < Cities.numCities; i++) { cityID = 'city' + Cities.cities[i].id; var totTime = 0; var q = Seed.queue_unt[cityID]; if (q != null && q.length > 0) totTime = q[q.length - 1][3] - now; if (totTime < 0) totTime = 0; if (totTime < 3600) var bonc = "style='background-color:red'"; else var bonc = ""; mhtl += ""; } mhtl += "
     
    " + Cities.cities[i].name + "
    "; mhtl += ''; mhtl += " /h" + addCommas(parseInt(temps[i])) + "
    Population/h" + addCommas(parseInt(pop[i])) + "
    Difference
    n/a
    " + addCommas(parseInt(diff)) + "
    happiness
    " + bon + "
    Queue
    " + timestr(totTime) + "

    "; t.cont.innerHTML += mhtl; var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.format = 2; params.tournyPos = t.tourneyPos; new AjaxRequest(unsafeWindow.g_ajaxpath + "ajax/getLeaderboard.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (transport) { var rslt = eval("(" + transport.responseText + ")"); if (rslt.ok) { var prevs = []; for (var s = 0; s < 4; s++) { w = rslt["previous" + s]; if (w && w > -1) { prevs.push(uW.formatDateByUnixTime(w)); } } if (!rslt.data) { t.cont.innerHTML += "
    TOURNAMENT CHECK

    No Active Tournaments!
    "; for (var s = 0; s < prevs.length; s++) { t.cont.innerHTML += ""; } } else { // rslt.data var tournyhtml = new Array(); if (rslt.name) { tournyhtml.push("
    " + rslt.name.replace('The Tournament of Might', 'THE TOURNAMENT OF MIGHT') + "
    ") } else { tournyhtml.push("
    " + unsafeWindow.g_js_strings.commonstr.tournament + "
    ") } tournyhtml.push("
    "); if (t.tourneyPos != 0) { tournyhtml.push(""); } for (var s = 0; s < prevs.length; s++) { if (t.tourneyPos != (s + 1)) { tournyhtml.push(""); } } tournyhtml.push("
     
    "); if (rslt.startDate && rslt.endDate) { var startTime = rslt.startDate; var endTime = rslt.endDate; var now = parseInt(new Date().getTime() / 1000); tournyhtml.push(""); dt = new Date(); dt.setTime(startTime * 1000); dtf = new Date(); dtf.setTime(endTime * 1000); var restant = endTime - now; tournyhtml.push("
    StartsEndsTime Left
    "); tournyhtml.push("" + dt.toLocaleDateString() + " - " + dt.toLocaleTimeString()); tournyhtml.push(""); tournyhtml.push("" + dtf.toLocaleDateString() + " - " + dtf.toLocaleTimeString()); if (restant > 0) { tournyhtml.push("" + timestr(restant, 1) + "
    "); } else { tournyhtml.push("ENDED!"); } tournyhtml.push("
    "); } if ((Options.TourneyBoardType != 2) || !rslt.worldData) { tourneystats = rslt.data; Options.TourneyBoardType = 1; saveOptions(); } else { tourneystats = rslt.worldData; } mhtl = '
       '; if (Options.TourneyBoardType != 2) { mhtl += rslt.bracketName; } else { mhtl += 'Domain Leaders'; } mhtl += '
    '; if (rslt.worldData) { mhtl += "
    "; } mhtl += '
    '; if (rslt.lastUpdated && (t.tourneyPos == 0)) { var now = parseInt(new Date().getTime() / 1000); var updated = now - rslt.lastUpdated; mhtl += "
    Last updated " + timestr(updated, 1) + " ago.
    "; } mhtl += '
    '; tournyhtml.push(mhtl); tournyhtml.push("
    "); tournyhtml.push(""); tournyhtml.push(""); if (rslt.type == 24) { tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push("") } else { tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push("") } tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); var nb = tourneystats.length; var votrepuissance = 0; for (var i = 0; i < tourneystats.length; i++) { var row = tourneystats[i]; if (rslt.type == 24) { // Tournament if (getMyAlliance()[1] == row.alliance) { votrepuissance = row.contestValue; break; } } else { if (Seed.player.prefix + ' ' + Seed.player.name == row.name) { votrepuissance = row.contestValue; break; } } } for (var i = 0; i < Options.TournoiLigne; i++) { if (tourneystats[i] == null) break; var row = tourneystats[i]; var rewardString = " "; if (row.itemType) { rewardString = row.itemCount + " "; if (row.itemType == 0) { rewardString += unsafeWindow.g_js_strings.commonstr.gems; } else { rewardString += unsafeWindow.itemlist["i" + row.itemType].name; } } var couleur = ""; if (rslt.type == 24) { //Alliance Tournament if (getMyAlliance()[1] == row.alliance) { couleur = " style='background-color:#FF0000' "; } } else { if (Seed.player.prefix + ' ' + Seed.player.name == row.name) { couleur = " style='background-color:#FF0000' "; } } if (i % 2 == 1) { tournyhtml.push("") } else { tournyhtml.push("") } tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push("") } // fin du for if (rslt.type != 24) { for (var i = Options.TournoiLigne; i < tourneystats.length; i++) { if (tourneystats[i] == null) break; var row = tourneystats[i]; var couleur = ""; if (Seed.player.prefix + ' ' + Seed.player.name == row.name) { couleur = " style='background-color:#FF0000' "; var rewardString = " "; if (row.itemType) { rewardString = row.itemCount + " "; if (row.itemType == 0) { rewardString += unsafeWindow.g_js_strings.commonstr.gems; } else { rewardString += unsafeWindow.itemlist["i" + row.itemType].name; } } tournyhtml.push("") tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push(""); tournyhtml.push("") } } } tournyhtml.push(""); tournyhtml.push("
    "); tournyhtml.push("
     " + unsafeWindow.g_js_strings.commonstr.ranking + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    Chancellor
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + unsafeWindow.g_js_strings.commonstr.alliance + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + unsafeWindow.g_js_strings.modal_tourny_changetab.mightgained + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + unsafeWindow.g_js_strings.modal_tourny_changetab.rewardperplayer + "
    "); tournyhtml.push("
    "); tournyhtml.push("
     " + unsafeWindow.g_js_strings.commonstr.ranking + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    Player
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + unsafeWindow.g_js_strings.commonstr.alliance + "
    "); tournyhtml.push("
    "); if (rslt.type == 31) tournyhtml.push("
    " + unsafeWindow.g_js_strings.modal_tourny_changetab.mightgained + "
    "); else tournyhtml.push("
    " + rslt.contestcategory + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + unsafeWindow.g_js_strings.commonstr.reward + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + row.ranking + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + row.name + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + (row.alliance || "----") + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + addCommas(row.contestValue)); if (votrepuissance > 0) { var ecartavecvous = parseInt(row.contestValue - votrepuissance); if (ecartavecvous > 0) { tournyhtml.push(" (+" + addCommas(ecartavecvous) + ")"); } if (ecartavecvous < 0) { tournyhtml.push(" (" + addCommas(ecartavecvous) + ")"); } } tournyhtml.push("
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + rewardString + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + row.ranking + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + row.name + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + (row.alliance || "----") + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + addCommas(row.contestValue) + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    " + rewardString + "
    "); tournyhtml.push("
    "); tournyhtml.push("
    "); t.cont.innerHTML += tournyhtml.join(""); document.getElementById('BOTournoiPM').addEventListener('click', function () { var lg = tourneystats.length; if (rslt.type != 24) lg = 250; t.plusmoins(lg); }, false); if ((Options.TournoiLigne == 5 && rslt.type != 24) || (Options.TournoiLigne == 5 && rslt.type == 24)) { document.getElementById('BOTournoiPM').value = "Maximize"; } else { document.getElementById('BOTournoiPM').value = "Minimize"; } if (Options.TourneyBoardType != 2) { document.getElementById('BTLeaders').value = "Show Domain Leaders"; } else { document.getElementById('BTLeaders').value = "Show Your Bracket (" + rslt.bracketName + ")"; } document.getElementById('BTLeaders').addEventListener('click', function () { t.leadertoggle(); }, false); } // fin rslt.data } else { t.cont.innerHTML = "
    No Info
    "; } document.getElementById('TTroopsPerHr').addEventListener('change', function () { t.changetroops(this); }, false); }, onFailure: function () { t.cont.innerHTML = "
    No Info
    "; } }); t.displayTimer = setTimeout(t.show, 240000); }, plusmoins: function (lg) { var t = Tabs.Tournament; if (document.getElementById('BOTournoiPM').value == "Maximize") { document.getElementById('BOTournoiPM').value = "Minimize"; Options.TournoiLigne = lg; } else { document.getElementById('BOTournoiPM').value = "Maximize"; Options.TournoiLigne = 5; } saveOptions(); clearTimeout(t.displayTimer); t.show(); }, leadertoggle: function () { var t = Tabs.Tournament; if (document.getElementById('BTLeaders').value == "Show Domain Leaders") { Options.TourneyBoardType = 2; } else { Options.TourneyBoardType = 1; } saveOptions(); clearTimeout(t.displayTimer); t.show(); }, changetroops: function (el) { var t = Tabs.Tournament; Options.TourneyTroopType = el.value; saveOptions(); clearTimeout(t.displayTimer); t.show(); }, /* checktourney: function() { var t = Tabs.Tournament; var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.format=2; params.tournyPos=0; new AjaxRequest(unsafeWindow.g_ajaxpath+"ajax/getLeaderboard.php"+unsafeWindow.g_ajaxsuffix, { method:"post", parameters:params, onSuccess:function(transport){ var rslt=eval("("+transport.responseText+")"); if(rslt.name){ var t = Tabs.Tournament; AddTowerTab('Turnier', t.showTournament, 10); }; }, }); }, showTournament: function() { // Options.currentTab = culang.tournament; // saveOptions(); mainPop.show (true); // setTimeout(function(){document.getElementById('pbtc'+culang.tournament).e_clickedTab}, 3000); // tabManager.e_clickedTab(e); }, */ } /*************** WILDS TAB *********************/ var wildNames = { 0: 'Bog', 10: 'Grassland', 11: 'Lake', 20: 'Woods', 30: 'Hills', 40: 'Mountain', 50: 'Plain', }; var mercNames = { 0: 'None', 1: 'Novice', 2: 'Intermediate', 3: 'Veteran', }; Tabs.Wilds = { tabOrder: 35, tabLabel: 'Wilds', cont: null, // state : null, upGoldTimer: null, wildList: [], buildList: {}, init: function (div) { var t = Tabs.Wilds; t.cont = div; uW.ptButMaxTraps = t.e_butMaxTraps; uW.ptInpWildTraps = t.e_inpTraps; uW.ptButWildSet = t.e_butWildSet; uW.ptButAbandon = t.e_abandon; t.cont.innerHTML = '
    '; // t.show (); }, hide: function () { var t = Tabs.Wilds; clearTimeout(t.upGoldTimer); }, show: function () { var t = Tabs.Wilds; clearTimeout(t.upGoldTimer); m = '
    ' + strButton20('RESET', 'id=ptwref') + '
    '; for (var c = 0; c < Cities.numCities; c++) { var city = Cities.cities[c]; var cWilds = Seed.wilderness['city' + city.id]; t.wildList[c] = []; var castle = parseInt(Seed.buildings['city' + city.id].pos0[1]); if (castle == 11) castle = 12; else if (castle == 12) castle = 14; var totw = 0; if (matTypeof(cWilds) == 'object') { for (var k in cWilds) ++totw; } m += ''; m += ''; var row = 0; var sortem = []; if (matTypeof(cWilds) != 'array') { m += '\ '; for (var k in Seed.wilderness['city' + city.id]) sortem.push(Seed.wilderness['city' + city.id][k]); sortem.sort(function (a, b) { var x; if ((x = b.tileLevel - a.tileLevel) != 0) return x; return a.tileType - b.tileType; }); for (i = 0; i < sortem.length; i++) { var wild = sortem[i]; var wildDef = Seed.wildDef['t' + wild.tileId]; if (wildDef == undefined || !wildDef) wildDef = { fort60Count: 0, mercLevel: 0 }; var maxTraps = parseInt(wild.tileLevel) * 100; var maxBuild = maxTraps - parseInt(wildDef.fort60Count); t.wildList[c][i] = [wild.tileId, maxBuild]; // m += '\ \ \ ' if (wildDef.fort60Count < maxTraps) m += ''; else m += ''; m += ''; } m += ''; } else { m += ''; } } document.getElementById('wildContent').innerHTML = m + '
    HELP
    ' + city.name + '   (' + city.x + ',' + city.y + ')Wilds: ' + totw + ' of ' + castle + '  
    Wild TypeCoordsTrapsMercsAbandon' + htmlTitleLine(' CHANGE DEFENSES ') + '
    ' + wildNames[wild.tileType] + '' + wild.tileLevel + '' + wild.xCoord + ',' + wild.yCoord + '' + wildDef.fort60Count + '' + mercNames[wildDef.mercLevel] + '' + strButton14('Abandon', 'onclick="ptButAbandon(' + wild.tileId + ',' + wild.xCoord + ',' + wild.yCoord + ',' + city.id + ')" id=tileId_' + wild.tileId) + 'Build Traps: ' + strButton14('Max', 'id=ptwx_' + c + '_' + i + ' onclick="ptButMaxTraps(this)"') + '     Mercs: ' + htmlSelector(mercNames, wildDef.mercLevel, 'id=ptwm_' + c + '_' + i) + '    
    \
    Cost: 0' + strButton20("SET DEFENSES", 'onclick="ptButWildSet(' + c + ')"') + 'Gold: 0
     
    '; document.getElementById('ptwref').addEventListener('click', t.show, false); t.updateGold(); }, e_abandon: function (tileId, xCoord, yCoord, cityId) { var t = Tabs.Wilds; var params = uW.Object.clone(uW.g_ajaxparams); params.tid = tileId; params.x = xCoord; params.y = yCoord; params.cid = cityId; new MyAjaxRequest(uW.g_ajaxpath + "ajax/abandonWilderness.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.ok) { delete Seed.wilderness["city" + cityId]["t" + tileId]; t.show(); if (rslt.updateSeed) { uW.update_seed(rslt.updateSeed); } } }, onFailure: function () {}, }); }, e_butWildSet: function (c) { var t = Tabs.Wilds; var totTraps = 0; var cid = Cities.cities[c].id; t.buildList = { cityId: cid, list: [] }; for (var w = 0; w < t.wildList[c].length; w++) { var wild = Seed.wilderness['city' + cid]['t' + t.wildList[c][w][0]]; var wildDef = Seed.wildDef['t' + t.wildList[c][w][0]]; // TODO: Seed.wildDef is null if just aquired if (wildDef == undefined || !wildDef) wildDef = { fort60Count: 0, mercLevel: 0 }; var numTraps = parseInt(document.getElementById('ptwt_' + c + '_' + w).value, 10); if (isNaN(numTraps)) numTraps = 0; totTraps += numTraps; if (numTraps > 0) t.buildList.list.push(['T', wild.tileId, numTraps]); var mercId = document.getElementById('ptwm_' + c + '_' + w).value; if (wildDef.mercLevel != mercId) t.buildList.list.push(['M', wild.tileId, mercId, wildDef.mercLevel]); } var totCost = totTraps * 200; if (totCost > parseInt(Seed.citystats['city' + cid].gold[0])) { document.getElementById('ptwgc_' + c).innerHTML = '' + addCommasInt(totCost) + ''; return; } if (t.buildList.list.length == 0) return; t.setCurtain(true); var popDiv = t.setPopup(true); popDiv.innerHTML = '
    \
    Setting Wilderness Defenses
    \
    \
    ' + strButton20('CANCEL', 'id=ptWildCancel') + '
    '; document.getElementById('ptWildCancel').addEventListener('click', t.e_buildCancel, false); t.processQue(null); }, e_buildCancel: function () { var t = Tabs.Wilds; t.setCurtain(false); t.setPopup(false); t.show(); }, processQue: function (errMsg) { var t = Tabs.Wilds; var what = t.buildList.list.shift(); var div = document.getElementById('ptWildBuildDiv'); if (what == null || errMsg) { if (errMsg) div.innerHTML += '
    ERROR: ' + errMsg + ''; else div.innerHTML += 'Done.
    '; document.getElementById('ptWildCancel').firstChild.innerHTML = 'CLOSE'; return; } if (div.innerHTML != '') div.innerHTML += 'Done.
    '; var wild = Seed.wilderness['city' + t.buildList.cityId]['t' + what[1]]; if (what[0] == 'T') { div.innerHTML += 'Building ' + what[2] + ' traps for ' + Cities.byID[t.buildList.cityId].name + '\'s wilderness at ' + wild.xCoord + ',' + wild.yCoord + ' ... '; t.postBuyTraps(t.buildList.cityId, what[1], what[2], t.processQue); } else { div.innerHTML += 'Setting Mercenaries to ' + mercNames[what[2]] + ' for ' + Cities.byID[t.buildList.cityId].name + '\'s wilderness at ' + wild.xCoord + ',' + wild.yCoord + ' ... '; t.postHireMercs(t.buildList.cityId, what[1], what[2], what[3], t.processQue); } }, setPopup: function (onoff) { var t = Tabs.Wilds; if (onoff) { var div = document.createElement('div'); div.id = 'ptWildPop'; div.style.backgroundColor = '#fff'; div.style.zindex = mainPop.div.zIndex + 2; div.style.opacity = '1'; div.style.border = '3px outset red'; div.style.width = '550px'; div.style.height = '300px'; div.style.display = 'block'; div.style.position = 'absolute'; div.style.top = '100px'; div.style.left = '100px'; t.cont.appendChild(div); return div; } else { t.cont.removeChild(document.getElementById('ptWildPop')); } }, setCurtain: function (onoff) { var t = Tabs.Wilds; if (onoff) { var off = getAbsoluteOffsets(t.cont); var curtain = document.createElement('div'); curtain.id = 'ptWildCurtain'; curtain.style.zindex = mainPop.div.zIndex + 1; curtain.style.backgroundColor = "#000000"; curtain.style.opacity = '0.5'; curtain.style.width = t.cont.clientWidth + 'px'; curtain.style.height = t.cont.clientHeight + 'px'; curtain.style.display = 'block'; curtain.style.position = 'absolute'; curtain.style.top = off.top + 'px'; curtain.style.left = off.left + 'px'; t.cont.appendChild(curtain); } else { t.cont.removeChild(document.getElementById('ptWildCurtain')); } }, e_butMaxTraps: function (e) { var t = Tabs.Wilds; var c = e.id.substr(5, 1); var w = e.id.substr(7); var inp = document.getElementById('ptwt_' + c + '_' + w); inp.value = t.wildList[c][w][1]; t.e_inpTraps(inp); }, e_inpTraps: function (e) { var t = Tabs.Wilds; var c = e.id.substr(5, 1); var w = e.id.substr(7); var tot = 0; for (var i = 0; i < t.wildList[c].length; i++) { var val = parseInt(document.getElementById('ptwt_' + c + '_' + i).value, 10); if (isNaN(val)) val = 0; tot += val; } document.getElementById('ptwgc_' + c).innerHTML = addCommasInt(tot * 200); if (isNaN(e.value) || e.value < 0 || e.value > t.wildList[c][w][1]) { e.value = ''; e.style.backgroundColor = '#ffaaaa'; } else e.style.backgroundColor = null; }, updateGold: function () { var t = Tabs.Wilds; for (var c = 0; c < Cities.numCities; c++) { var e = document.getElementById('ptwgt_' + c + ''); if (e) e.innerHTML = addCommasInt(Seed.citystats['city' + Cities.cities[c].id].gold[0]); } t.upGoldTimer = setTimeout(t.updateGold, 2000); }, postBuyTraps: function (cid, tid, quant, notify) { if (DISABLE_POST_DEFENSES) { setTimeout(function () { notify(null) }, 1500); return; } var params = uW.Object.clone(uW.g_ajaxparams); params.cid = cid; params.tid = tid; params.quant = quant; new MyAjaxRequest(uW.g_ajaxpath + "ajax/buyWildTraps.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.ok) { if (!Seed.wildDef["t" + tid]) Seed.wildDef["t" + tid] = { tileId: tid, fort60Count: 0, mercLevel: 0 }; Seed.wildDef["t" + tid].fort60Count = parseInt(Seed.wildDef["t" + tid].fort60Count) + parseInt(quant); } if (notify) notify(rslt.errorMsg); }, onFailure: function () { if (notify) notify('AJAX ERROR'); }, }); }, postHireMercs: function (cid, tid, newLevel, oldLevel, notify) { if (DISABLE_POST_DEFENSES) { setTimeout(function () { notify('OK, so it\'s not really an error, it\'s just George playing around to see how the error message looks. It\'s a long one, how does it fit? Is it OK? Are you sure? JANE! Get me off of this thing!') }, 1500); return; } var params = uW.Object.clone(uW.g_ajaxparams); params.cid = cid; params.tid = tid; params.lv = newLevel; params.olv = oldLevel; new MyAjaxRequest(uW.g_ajaxpath + "ajax/hireWildMerc.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.ok) { if (!Seed.wildDef["t" + tid]) Seed.wildDef["t" + tid] = { tileId: tid, fort60Count: 0, mercLevel: 0 }; Seed.wildDef["t" + tid].mercLevel = newLevel; } if (notify) notify(rslt.errorMsg); }, onFailure: function () { if (notify) notify('AJAX ERROR'); }, }); }, } /*************** KNIGHTS TAB *********************/ Tabs.Knights = { tabOrder: 30, tabLabel: uW.g_js_strings.commonstr.knight, cont: null, displayTimer: null, action: 0, init: function (div) { var t = Tabs.Knights; t.cont = div; uW.ptAssignSkill = t.clickedAssignPoints; uW.ptAssignTunes = t.clickedAssignTune; uW.ptButDismiss = t.postDismissKnight; t.cont.innerHTML = '\
    '; }, hide: function () { var t = Tabs.Knights; clearTimeout(t.displayTimer); }, show: function () { var t = Tabs.Knights; clearTimeout(t.displayTimer); function _dispKnight(roleId, knight, numcid) { var rid = roleId; if (roleId == null) rid = 1; var sty = ''; if (row++ % 2) sty = 'class=ptOddrow '; m = '' + (roleId == null ? '' : knightRoles[rid][0]) + ''; if (knight == null) { m += '--------'; } else { var level = parseInt(Math.sqrt(parseInt(knight.experience) / 75)) + 1; var unpoints = level - parseInt(knight.skillPointsApplied); var salary = (parseInt(knight.skillPointsApplied) + 1) * 20; totSalary += salary; var ass = ''; if (knight.knightStatus == 10) { ass = 'Marching'; } else { if (unpoints > 0) { unpoints = '' + unpoints + ''; for (var i = 0; i < 4; i++) { var sty = 'padding-left:1px;'; if (i == rid) // bold it sty += 'font-weight:bold;color:#116654'; if (t.action == 2) { t.clickedAssignPoints(null, cid, knight.knightId, i); } if (t.action == 1) { t.clickedAssignPoints(null, cid, knight.knightId, 1); } ass += ''; if (knight[knightRoles[i][1]] < 300) { ass += '[' + knightRoles[i][2] + ']'; } else { ass += '(max)'; } ass += ''; } } else ass = ''; } var skills = []; for (var i = 0; i < 4; i++) { if (i == rid) skills[i] = '' + knight[knightRoles[i][1]] + ''; else skills[i] = knight[knightRoles[i][1]]; } var item211 = "0"; var item221 = "0"; var item231 = "0"; var item241 = "0"; if (Seed.items.i211) item211 = '' + Seed.items.i211 + ''; if (Seed.items.i221) item221 = '' + Seed.items.i221 + ''; if (Seed.items.i231) item231 = '' + Seed.items.i231 + ''; if (Seed.items.i241) item241 = '' + Seed.items.i241 + ''; m += '' + knight.knightName + '' + strButton14('Dismiss', 'onclick="ptButDismiss(' + knight.knightId + ',' + cid + ')" id=tileId_') + '' + skills[0] + ' (' + item211 + ')' + skills[1] + ' (' + item221 + ')' + skills[2] + ' (' + item231 + ')' + skills[3] + ' (' + item241 + ')' + unpoints + '' + ass + '' + level + '' + knight.loyalty + '' + addCommas(salary) + ''; } return m; } var totSalary = 0; var m = ''; m += ''; for (var c = 0; c < Cities.numCities; c++) { var cid = Cities.cities[c].id; m += '\ \ '; totSalary = 0; var did = {}; var row = 0; for (var i = 0; i < knightRoles.length; i++) { var leader = Seed.leaders['city' + cid][knightRoles[i][1] + 'KnightId']; if (leader == 0) m += _dispKnight(i, null, c); else { m += _dispKnight(i, Seed.knights['city' + cid]['knt' + leader], c); did['knt' + leader] = true; } } var list = []; for (k in Seed.knights['city' + cid]) { if (!did[k]) list.push(Seed.knights['city' + cid][k]); } list.sort(function (a, b) { return parseInt(b.combat) - parseInt(a.combat) }); for (i = 0; i < list.length; i++) m += _dispKnight(null, list[i], c, cid); m += ''; } document.getElementById('ptknightdiv').innerHTML = m + '
    Knight Assign Methods -
    ' + Cities.cities[c].name + '
    RoleNameDismissPolComIntRes--- Unassigned ---LevelLoyalty Salary
    Total Salary:' + addCommas(totSalary) + '
    '; t.action = 0; document.getElementById('ptknight_com').addEventListener('click', function () { t.action = 1; t.show(); }, false); document.getElementById('ptknight_def').addEventListener('click', function () { t.action = 2; t.show(); }, false); t.displayTimer = setTimeout(t.show, 10000); }, postDismissKnight: function (kid, cid) { var t = Tabs.Knights; var params = uW.Object.clone(uW.g_ajaxparams); params.cid = cid; params.kid = kid; new MyAjaxRequest(uW.g_ajaxpath + "ajax/fireKnight.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.ok) { if (rslt.updateSeed) { delete Seed.knights["city" + cid]["knt" + kid]; if (rslt.updateSeed) { uW.update_seed(rslt.updateSeed) } t.show(); } } }, onFailure: function () {}, }); }, clickedAssignPoints: function (e, cid, kid, rid) { var t = Tabs.Knights; clearTimeout(t.displayTimer); var knight = Seed.knights['city' + cid]['knt' + kid]; if (knight.knightStatus == 10 && e != null) { var row = e.parentNode.parentNode; row.childNodes[7].innerHTML = 'Marching'; return; } sk = []; var unassigned = parseInt(Math.sqrt(parseInt(knight.experience) / 75)) + 1 - parseInt(knight.skillPointsApplied); for (var i = 0; i < 4; i++) { sk[i] = parseInt(knight[knightRoles[i][1]]); if (i == rid) sk[i] += unassigned; if (sk[i] > 300) { sk[i] = 300; unassigned = parseInt(300 - parseInt(knight[knightRoles[i][1]])); } } if (unassigned == 0) return; if (e != null) { var row = e.parentNode.parentNode; for (i = row.cells.length - 1; i >= 1; i--) row.deleteCell(i); var newCell = row.insertCell(-1); newCell.colSpan = 12; newCell.align = 'left'; newCell.style.padding = '1px 5px 1px 10px'; var div = document.createElement('div'); div.style.backgroundColor = '#ffffff'; div.style.textAlign = 'center'; div.style.border = '1px solid'; div.style.width = '98%'; div.style.whiteSpace = 'normal'; newCell.appendChild(div); div.innerHTML = 'Assigning ' + unassigned + ' skill points to ' + knightRoles[rid][1] + ' ... '; } t.postSkillPoints(cid, kid, sk[0], sk[1], sk[2], sk[3], function (r) { t.postDone(r, div) }); }, postDone: function (rslt, div) { var t = Tabs.Knights; clearTimeout(t.displayTimer); if (rslt.ok) { div.innerHTML += 'Done.'; t.displayTimer = setTimeout(t.show, 5000); } else { div.innerHTML += '
    ERROR: ' + rslt.errorMsg + ''; t.displayTimer = setTimeout(t.show, 10000); } }, postSkillPoints: function (cid, kid, pol, com, int, res, notify) { var params = uW.Object.clone(uW.g_ajaxparams); params.cid = cid; params.kid = kid; params.p = pol; params.c = com; params.i = int; params.r = res; if (DISABLE_POST_KNIGHT_SKILLS) { setTimeout (function (){notify({ok:true})}, 1500); // setTimeout ( function (){notify({ok:false, errorMsg:"FAKE ERROR message, a long one, to test how it will fit and overflow! Perhaps you'll need to retry?"})} , 2000); return; } new MyAjaxRequest(uW.g_ajaxpath + "ajax/skillupKnight.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.ok) { var knight = Seed.knights["city" + cid]["knt" + kid]; var up = pol + com + int + res - knight.politics - knight.combat - knight.intelligence - knight.resourcefulness; knight.politics = pol; knight.combat = com; knight.intelligence = int; knight.resourcefulness = res; knight.skillPointsApplied = (parseInt(knight.skillPointsApplied) + up).toString(); } if (notify) notify(rslt); }, onFailure: function () { if (notify) notify(rslt); }, }); }, }; /**************/ var towho = { mmFunc: null, init: function () { t = towho; t.mmFunc = new CalterUwFunc('cm.messageController.messageWide', [ [/params\.subject\s*=\s*..".modal_msg_write_subj".\.val.../im, 'params.subject = cm.messageController.escape\(allianceall?"{"+g_js_strings.commonstr.alliance+"}"+document.getElementById(\'modal_msg_write_subj\').value:"{"+g_js_strings.commonstr.officers+"}"+document.getElementById(\'modal_msg_write_subj\').value\);'], [/\$\("#modal_msg_write_to/im, 'jQuery("#modal_msg_write_to'] ]); t.mmFunc.setEnable(true); } } var messageNav = { mmFunc: null, mmsFunc: null, init: function () { t = messageNav; t.mmFunc = new CalterUwFunc ('modal_messages', [[/}\s*$/, 'setTimeout(messageNav_hook,0); }']]); t.mmsFunc = new CalterUwFunc ('modal_messages_send', [[/{\s*var params/i, '{\nif (modal_messages_send_hook()) return;\nvar params']]); uW.messageNav_hook = messageNav.hook; uW.modal_messages_send_hook = messageNav.msgSendHook; // t.mmFunc.setEnable (true); // t.mmsFunc.setEnable (true); }, setEnable : function (tf){ }, isAvailable: function () { t = messageNav; //return t.mmFunc.isAvailable(); return false; }, hook: function () { if (!Options.enhanceMsging) return; var div = document.getElementById('modal_msg_view_actions'); var but = makeButton20('Forward'); div.appendChild(but); but.addEventListener('click', messageNav.eventForward, false); div = document.getElementById('modal_msg_write_to').parentNode; div.innerHTML = '
    To:
    '; var button = makeButton20('All Officers'); document.getElementById('ptfwdbut').appendChild(button); button.addEventListener('click', function () { document.getElementById("modal_msg_write_to").value = "" }, false); }, eventForward: function () { document.getElementById('modal_msg_write_subj').value = "fwd: " + document.getElementById('modal_msg_view_subj').innerHTML.toString().stripTags(); document.getElementById('modal_msg_write_to').value = ''; var from = document.getElementById('modal_msg_view_from').children[0].innerHTML; var body = document.getElementById('modal_msg_view_body').innerHTML.replace(/\n/g, '').replace(/
    /gi, '\n').stripTags().replace(/back$/i, ''); document.getElementById('modal_msg_write_txt').value = '[Original message from ' + from + ' follows:]\n' + body; uW.modal_messages_compose(); }, msgSendHook: function () { if (!Options.enhanceMsging) return; var to = document.getElementById("modal_msg_write_to").value.trim(); if (to.toLowerCase() != '' || getMyAlliance()[0] == 0) return false; var params = uW.Object.clone(uW.g_ajaxparams); params.toIds = getMyAlliance()[0]; params.subject = document.getElementById("modal_msg_write_subj").value + ' [Sent to all officers]'; params.message = document.getElementById("modal_msg_write_txt").value; params.type = 'alliance'; new AjaxRequest(uW.g_ajaxpath + "ajax/sendMessage.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (message) { var rslt = eval("(" + message.responseText + ")"); if (rslt.ok) { uW.Modal.showAlert(uW.g_js_strings.modal_messages_send.msgsent); document.getElementById('modal_msg_write_to').value = ""; document.getElementById('modal_msg_write_subj').value = ""; document.getElementById('modal_msg_write_txt').value = "" } else { uW.Modal.showAlert(uW.g_js_strings.modal_messages_send.enterexistingname) } }, onFailure: function () { uW.Modal.showAlert(uW.g_js_strings.modal_messages_send.oopscompose) }, }); return true; }, } var AttackDialog = { init: function () { var t = AttackDialog; t.modal_attackFunc = new CalterUwFunc ('modal_attack', [[/}\s*$/, '; attackDialog_hook(); }']]); uW.attackDialog_hook = t.modalAttackHook; t.modal_attackFunc.setEnable(true); }, setEnable : function (){ }, isKnightSelectAvailable: function () { var t = AttackDialog; return t.modal_attackFunc.isAvailable(); }, isAttackCityPickerAvailable: function () { var t = AttackDialog; return t.modal_attackFunc.isAvailable(); }, modalAttackHook: function () { var t = AttackDialog; if (Options.fixKnightSelect || Options.attackCityPicker) { for (var i = 1; i < 6; i++) document.getElementById('modal_attack_tab_' + i).addEventListener('click', t.e_changeMarchType, false); } if (Options.attackCityPicker) { setTimeout(t.initCityPicker, 0); } }, initCityPicker: function () { var t = AttackDialog; var div = document.getElementById('modal_attack_target_numflag'); // as of KofC version 96; var mySpan; if (div) { div.parentNode.innerHTML += '   '; } else { var span = document.getElementById('modal_attack_target_coords'); // KofC version 116+; span.parentNode.parentNode.firstChild.innerHTML += '   '; } new CdispCityPicker('ptatp', document.getElementById('modal_attack_citybuts'), false, t.e_CityButton); var cityIdx = Cities.byID[uW.currentcityid].idx; thisCityBut = document.getElementById('ptatp_' + cityIdx); thisCityBut.style.opacity = '0.5'; thisCityBut.disabled = true; if (document.getElementById('modal_attack_tab_4').className == 'selected' || document.getElementById('modal_attack_tab_3').className == 'selected') // don't do for attack or scout document.getElementById('modal_attack_citybuts').style.display = 'none'; }, e_CityButton: function (city) { document.getElementById('modal_attack_target_coords_x').value = city.x; document.getElementById('modal_attack_target_coords_y').value = city.y; uW.modal_attack_update_time(); }, e_changeMarchType: function (evt) { var t = AttackDialog; var marchType = parseInt(evt.target.id.substr(17)); if (Options.attackCityPicker) { if (marchType == 3 || marchType == 4) document.getElementById('modal_attack_citybuts').style.display = 'none'; else document.getElementById('modal_attack_citybuts').style.display = 'inline'; } if (Options.fixKnightSelect) { var knightVal = 0; var selector = document.getElementById('modal_attack_knight'); if (selector.length > 1 && (marchType == 4 || marchType == 2)) // if 'attack' or 'reinforce' knightVal = 1; selector.selectedIndex = knightVal; } }, } var DispReport = { init: function () { var t = DispReport; t.modal_InboxFunc = new CalterUwFunc ('modal_messages_listshow', [['msghtml.join("");', 'msghtml.join("");dispInbox_hook(rslt,boxType,msghtml);']]); uW.dispInbox_hook = t.ModalInboxHook; t.modal_InboxFunc.setEnable(Options.enhancedinbox); t.modal_RptFunc = new CalterUwFunc ('Messages.handleListReports', [['n.join("");', 'n.join("");dispRpt_hook(l,n);']]); uW.dispRpt_hook = t.ModalReportListHook; t.modal_RptFunc.setEnable(Options.enhancedinbox); }, setEnable: function (tf) { var t = DispReport; t.modal_InboxFunc.setEnable(tf); }, isDispReportAvailable: function () { var t = DispReport; return t.modal_InboxFunc.isAvailable(); }, ModalInboxHook: function (rslt, boxType, msghtml) { var t = DispReport; if (boxType == 'inbox') { msgBody = document.getElementById('modal_msg_list'); var a = document.createElement('a'); a.className = 'buttonDown20'; a.innerHTML = 'Delete Gift Report'; a.style.float = 'left'; a.addEventListener('click', t.checkinbox, false); var div = document.createElement('span'); div.appendChild(a); msgBody.appendChild(div); var mml = document.getElementById('modal_msg_list'); if (mml != null) mml.style.minHeight = '400px'; } }, checkinbox: function () { var t = DispReport; var body = document.getElementById('tbl_messages'); var trs = body.getElementsByTagName('tr'); var reports = []; for (var i = 0; i < trs.length; i++) { var tds = trs[i].getElementsByTagName('td'); for (var j = 0; j < tds.length; j++) { if (tds[j].className == 'chkcol') { var checkbox = tds[j]; } if (tds[j].className == 'nmcol') { var sender = tds[j]; } if (tds[j].className == 'subjcol') { var subject = tds[j]; } } reports.push({ checkbox: checkbox, sender: sender, subject: subject }); } t.parseGiftReport(reports); }, parseGiftReport: function (rpts) { var t = DispReport; for (var i = 0; i < rpts.length; i++) { // logit(inspect(rpts[i].subject)); // logit(inspect(rpts[i].sender)); if ((rpts[i].subject.innerHTML.indexOf('¡Nuevo regalo recibido!') >= 0 || rpts[i].subject.innerHTML.indexOf('New Gift Received!') >= 0) && rpts[i].sender.innerHTML.indexOf('Kingdoms Of Camelot') >= 0) { rpts[i].checkbox.firstChild.checked = true; } } uW.messages_action("delete", "tbl_messages"); }, ModalReportListHook: function (rslt, msghtml) { var t = DispReport; unsafeWindow.makeReportLink = makeReportLink; unsafeWindow.makeReportPopup = makeReportPopup; if (rslt.ok) { msgBody = document.getElementById('modal_msg_reports_tablediv'); var a = document.createElement('a'); a.className = 'buttonDown20'; a.innerHTML = 'Delete Wild/Barb/Transport'; a.style.float = 'left'; a.addEventListener('click', t.checkreportlist, false); var div = document.createElement('span'); div.appendChild(a); msgBody.appendChild(div); var mml = document.getElementById('modal_msg_list'); if (mml != null) mml.style.minHeight = '400px'; var trs = msgBody.getElementsByTagName('tr'); for (var i = 0; i < trs.length; i++) { var tds = trs[i].getElementsByTagName('td'); for (var j = 0; j < tds.length; j++) { if (tds[j].className == 'subjcol') { var original = tds[j].innerHTML; original = original.replace("
    ", ""); original = original.replace("
    ", ""); var popup = original.replace("View Report", "Pop-up"); popup = popup.replace("View", "Pop-up"); popup = popup.replace("Messages.viewMarchReport", "makeReportPopup"); var makelink = original.replace("View Report", "Link"); makelink = makelink.replace("View", "Link to FB  "); makelink = makelink.replace("Messages.viewMarchReport", "makeReportLink"); var newContent = original + " | " + popup + " | " + makelink; tds[j].innerHTML = "
    " + newContent + "
    "; } } } } }, checkreportlist: function () { var t = DispReport; var body = document.getElementById('modal_msg_reports_tablediv'); var trs = body.getElementsByTagName('tr'); var reports = []; for (var i = 0; i < trs.length; i++) { var tds = trs[i].getElementsByTagName('td'); for (var j = 0; j < tds.length; j++) { if (tds[j].className == 'chkcol') { var checkbox = tds[j]; } if (tds[j].className == 'nmcol') { var type = tds[j]; } if (tds[j].className == 'subjcol') { var view = tds[j]; } } reports.push({ checkbox: checkbox, type: type, view: view }); } t.parseBarbReport(reports); }, parseBarbReport: function (rpts) { var t = DispReport; //Messages.viewMarchReport("25175",1,51,7,0,"Enemy","0","oftheNOOBS","M",4,518,355,1349852870,1,517,346,0,1550996);return false; // var regex = /Messages.viewMarchReport\((["0-9]+),(["0-9]+),(["0-9]+),(["0-9]+),(["0-9]+),("[^"]+"),("[^"]+"),("[^"]+"),("[^"]+"),(["0-9]+),(["0-9]+),(["0-9]+),(["0-9]+),(["0-9]+),(["0-9]+),(["0-9]+),(["0-9]+),(["0-9]+)\)/; var regex = /Messages.viewMarchReport\(([^"]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([^"]+),([^"]+),([^"]+),([^"]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+)/; for (var i = 0; i < rpts.length; i++) { var m = regex.exec(rpts[i].view.innerHTML); if (m) { if (m[6] == m[8] && m[7] == m[9]) { //Source and target id the same. // continue; //Infer transport to self } else if (m[5] != 0) { continue; } rpts[i].checkbox.firstChild.checked = true; } } uW.Messages.deleteCheckedReports(); } } function makeReportLink(rptid, side, tiletype, tilelv, defid, defnm, defgen, atknm, atkgen, marchtype, xcoord, ycoord, timestamp, unread, atkxcoord, atkycoord, side0AllianceName, side1AllianceName, link) { var domain = GetServerId(); var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); var Sversion = ""; var tvuid = parseInt(unsafeWindow.tvuid); params.rid = rptid; if (tiletype != 999) params.side = side; new AsyncAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/fetchReport.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (transport) { var rslt = eval("(" + transport.responseText + ")"); if (rslt.ok == false) { alert(rslt.msg); return; } if (!rslt.error) { if (typeof GM_getMetadata !== "undefined") Sversion = JSON.stringify(GM_getMetadata("version", true)); if (typeof GM_info !== "undefined") Sversion = JSON.stringify(GM_info.script.version); var url = '//apps.facebook.com/kocreportview/putData.php?Sname=' + JSON.stringify(SourceName) + '&Sversion=' + Sversion + '&domain=' + domain + '&reportUnixTime=' + timestamp + '&tvuid=' + tvuid + '&side0Player=' + defnm + '&side1Player=' + atknm + '&marchType=' + marchtype + '&tileType=' + tiletype + '&report=' + JSON.stringify(rslt); window.open(url, '_blank'); } else alert('kabam is having issues with reports...'); }, onFailure: function () { alert('kabam is having issues with reports...'); }, }, false); } function makeReportPopup(rptid, side, tiletype, tilelv, defid, defnm, defgen, atknm, atkgen, marchtype, xcoord, ycoord, timestamp, unread, atkxcoord, atkycoord, side0AllianceName, side1AllianceName, link) { Rpt.FindReport(rptid, 0); } var AllianceReports = { checkPeriod: 300, allianceNames: [], saveArfunc: uW.allianceReports, init: function () { t = AllianceReports; t.enable(Options.enhanceARpts); t.marvFunc = new CalterUwFunc ('modal_alliance_report_view', [['getReportDisplay', 'getReportDisplay_hook2']]); t.memListFunc = new CalterUwFunc ('membersInfo', [['commonstr.might','commonstr.might + "" + g_js_strings.commonstr.cities + "" + g_js_strings.membersInfo.lastonline'],['memberInfo[key].prestige\)', 'memberInfo[key].prestige)+ "");memhtml.push("" + memberInfo[key].cities + "");memhtml.push("" + memberInfo[key].lastLogin']]); uW.getReportDisplay_hook2 = t.getReportDisplayHook; uW.getmembersInfo_hook = t.getMembersInfoHook; t.marvFunc.setEnable(true); t.enable_viewmembers(Options.enhanceViewMembers); }, getReportDisplayHook: function (a, b) { var x = ''; try { x = uW.getReportDisplay(a, b); } catch (e) { x = 'Error formatting report: ' + e; } return x; }, enable_viewmembers: function (tf) { t = AllianceReports; t.memListFunc.setEnable(tf); }, enable: function (tf) { t = AllianceReports; if (tf) uW.allianceReports = t.myAllianceReports; else uW.allianceReports = t.saveArfunc; }, myAllianceReports: function (pageNum) { var params = uW.Object.clone(uW.g_ajaxparams); if (pageNum) params.pageNo = pageNum; params.group = "a"; new MyAjaxRequest(uW.g_ajaxpath + "ajax/listReports.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { //logit (inspect (rslt, 1, 1)); displayReports(rslt.arReports, rslt.arPlayerNames, rslt.arAllianceNames, rslt.arCityNames, rslt.totalPages); }, onFailure: function (rslt) {}, }, false); function displayReports(ar, playerNames, allianceNames, cityNames, totalPages) { var msg = new Array(); var myAllianceId = getMyAlliance()[0]; msg.push(""); msg.push(""); document.getElementById('allianceContent').innerHTML = msg.join(""); if (pageNum) { uW.ctrlPagination("modal_report_list_pagination", totalPages, "allianceReports", pageNum) } else { uW.ctrlPagination("modal_report_list_pagination", totalPages, "allianceReports") } } }, } // end AllianceReports singleton unsafeWindow.FindReport = Rpt.FindReport; /************************ Food Alerts *************************/ /* var FoodAlerts = { init : function (){ var f = FoodAlerts; f.e_eachMinute(); }, minuteTimer : null, e_eachMinute : function (){ var f = FoodAlerts; var now = unixTime(); row = []; for(i=0; i < Cities.numCities; i++) { var rp = getResourceProduction (Cities.cities[i].id); var foodleft = parseInt(Seed.resources["city" + Cities.cities[i].id]['rec1'][0])/3600; var usage = rp[1] - parseInt(Seed.resources["city" + Cities.cities[i].id]['rec1'][3]); row[i] = rp[1] - usage; var timeLeft = parseInt(Seed.resources["city" + Cities.cities[i].id]['rec1'][0]) / 3600 / (0-usage) * 3600; var msg = ''; if (usage < 0) { if (Options.enableFoodTower && timeLeft<(6*3600)) { msg += 'My city ' + Cities.cities[i].name.substring(0,10) + ' (' + Cities.cities[i].x +','+ Cities.cities[i].y + ')'; msg += ' is low on food. Remaining: '+addCommasWhole(foodleft)+' ('+timestrShort(timeLeft)+') Upkeep: '+addCommas(usage); sendChat ("/a " + msg); } } } f.minuteTimer = setTimeout (f.e_eachMinute, 1800000); }, } */ /************************ Tower Alerts ************************/ var TowerAlerts = { viewImpendingFunc: null, generateIncomingFunc: null, fixTargetEnabled: false, towerMarches: {}, // track all marches that have been posted to alliance chat init: function () { var t = TowerAlerts; var s = GM_getValue('towerMarches_' + GetServerId()); if (s != null) t.towerMarches = JSON2.parse(s); t.viewImpendingFunc = new CalterUwFunc ('attack_viewimpending_view', [[/Modal.showModal\((.*)\)/im, 'Modal.showModal\($1\); ptViewImpending_hook(a);']]); uW.ptViewImpending_hook = t.viewImpending_hook; t.viewImpendingFunc.setEnable(true); t.generateIncomingFunc = new CalterUwFunc ('attack_generateincoming', [[/d\s*=\s*true/i, 'd = ptGenerateIncoming_hook();']]); uW.ptGenerateIncoming_hook = t.generateIncoming_hook; }, // fix 'target', add button viewImpending_hook: function (atkinc) { var t = TowerAlerts; var div = document.getElementById('modal_attackimpending_view'); var isFalse = false; if (t.fixTargetEnabled) { var city = Cities.byID[atkinc.toCityId]; var target = ''; if (!city || (atkinc.marchType != 3 && atkinc.marchType != 4)) { target = 'FALSE REPORT!'; isFalse = true; } else if (city.tileId == atkinc.toTileId) { target = city.name + ' (' + city.x + ',' + city.y + ')'; } else { wilds = Seed.wilderness['city' + atkinc.toCityId]; m = ''; for (k in wilds) { if (wilds[k].tileId == atkinc.toTileId) { m = 'at ' + wilds[k].xCoord + ',' + wilds[k].yCoord; break; } } target = city.name + ', WILD ' + m + ''; } div.childNodes[0].innerHTML = 'Target: ' + target; } if (!isFalse) { var d = document.createElement('div'); d.innerHTML = '
    Post to Alliance Chat
    '; div.appendChild(d); document.getElementById('towerPostToChat').addEventListener('click', function () { t.e_buttonPostToChat(atkinc) }, false); } }, // fix false reports generateIncoming_hook: function () { return false; }, enableFixFalseReports: function (tf) { var t = TowerAlerts; t.generateIncomingFunc.setEnable(tf); }, enableFixTarget: function (tf) { var t = TowerAlerts; t.fixTargetEnabled = tf; }, isFixTargetAvailable: function () { var t = TowerAlerts; return t.viewImpendingFunc.isAvailable(); }, isFixFalseReportsAvailable: function () { var t = TowerAlerts; return t.generateIncomingFunc.isAvailable(); }, postToChatOptions: { aChat: false }, setPostToChatOptions: function (obj) { var t = TowerAlerts; t.postToChatOptions = obj; clearTimeout(t.secondTimer); }, e_buttonPostToChat: function (march) { var t = TowerAlerts; t.postToChat(march, true); uW.Modal.hideModal(); }, postToChat: function (m, force) { var t = TowerAlerts; if (DEBUG_TRACE) logit("checkTower(): INCOMING at " + unixTime() + ": \n" + inspect(m, 8, 1)); if (m.marchType == null) // bogus march (returning scouts) return; if (ENABLE_TEST_TAB) Tabs.Test.addDiv("Incoming!
    " + inspect(m, 8, 1) + '
    '); if (m.marchType == 3) { if (!t.postToChatOptions.scouting && !force) return; atkType = 'scouted'; } else if (m.marchType == 4) { atkType = 'attacked'; } else { return; } var target, atkType, who; var city = Cities.byID[m.toCityId]; if (city.tileId == m.toTileId) target = 'city at ' + city.x + ',' + city.y; else { if (!t.postToChatOptions.wilds && !force) return; target = 'wilderness'; for (k in Seed.wilderness['city' + m.toCityId]) { if (Seed.wilderness['city' + m.toCityId][k].tileId == m.toTileId) { target += ' at ' + Seed.wilderness['city' + m.toCityId][k].xCoord + ',' + Seed.wilderness['city' + m.toCityId][k].yCoord; break; } } } if (Seed.players['u' + m.pid]) who = Seed.players['u' + m.pid].n; else if (m.players && m.players['u' + m.pid]) who = m.players['u' + m.pid].n; else who = 'Unknown'; if (m.fromXCoord) who += ' at ' + m.fromXCoord + ',' + m.fromYCoord; var msg = ''; if (!force) msg = t.postToChatOptions.aPrefix + ' '; msg += 'My ' + target + ' is being ' + atkType + ' by ' + who + '. Incoming Troops (arriving in ' + uW.timestr(parseInt(m.arrivalTime - unixTime())) + ') : '; var totTroops = 0; for (k in m.unts) { var uid = parseInt(k.substr(1)); msg += m.unts[k] + ' ' + uW.unitcost['unt' + uid][0] + ', '; totTroops += m.unts[k]; } if ((totTroops < t.postToChatOptions.minTroops) && !force) return; msg = msg.slice(0, -2); msg += '.'; if (city.tileId == m.toTileId) { var emb = getCityBuilding(m.toCityId, 8); if (emb.count > 0) { var availSlots = emb.maxLevel; for (k in Seed.queue_atkinc) { if (Seed.queue_atkinc[k].marchType == 2 && Seed.queue_atkinc[k].toCityId == m.toCityId && Cities.byID[Seed.queue_atkinc[k].fromCityId] == null) { // if (Seed.queue_atkinc[k].marchType==2 && Cities.byID[Seed.queue_atkinc[k].fromCityId]==null){ --availSlots; } } msg += ' My embassy has ' + availSlots + ' of ' + emb.maxLevel + ' slots available.'; } } if (ENABLE_TEST_TAB) Tabs.Test.addDiv(msg); if (SEND_ALERT_AS_WHISPER) sendChat("/" + Seed.player.name + ' ' + msg); // Whisper to myself else sendChat("/a " + msg); // Alliance chat }, } function parseIntNan(n) { x = parseInt(n, 10); if (isNaN(x)) return 0; return x; } function parseIntZero(n) { if (n == '') return 0; return parseInt(n, 10); } /*********************************** Players TAB ***********************************/ function officerId2String(oid) { if (oid == null) return ''; else if (oid == 3) return uW.allianceOfficerTypeMapping[3]; else if (oid == 2) return uW.allianceOfficerTypeMapping[2]; else if (oid == 1) return uW.allianceOfficerTypeMapping[1]; else if (oid == 4) return uW.allianceOfficerTypeMapping[4]; return ''; } Tabs.AllianceList = { tabOrder: 25, tabLabel: uW.g_js_strings.commonstr.player, cont: null, dat: [], clickedAlly: false, lastLogin: 0, warStatus: 0, /*** ajax/viewCourt.php: (boolean) ok = true (array) courtItems = (string) dailyActionFlag = 0 (object) playerInfo = [object Object] (string) datejoinUnixTime = 1294440708 (string) truceExpireUnixTime = 0 (string) userId = 4394121 (string) displayName = Vakasade (string) email = (string) fbuid = 100000977751880 (string) playerSex = F (string) usertype = 1 (string) status = 1 (string) dateJoined = 2011-01-07 14:51:48 (string) lastLogin = 2011-03-13 13:11:34 (string) eventTimestamp = 0000-00-00 00:00:00 (string) eventStatus = 1 (string) warStatus = 1 (string) allianceId = 85 (number) might = 1192710 (string) title = 57 (string) truceExpireTimestamp = 0000-00-00 00:00:00 (string) fogExpireTimestamp = 0000-00-00 00:00:00 (string) cnt_newmsg = 0 (string) cnt_friendreq = 0 (string) cnt_logins = 3910 (string) cnt_passreset = 0 (string) cnt_connections = 0 (string) avatarId = 11 (undefined) photo_host: null = null (undefined) photo_dir: null = null (undefined) photo_subdir: null = null (undefined) photo_name: null = null (string) allianceName = The Flying Circus (number) cityCount = 2 (undefined) errorMsg: null = null ***/ fetchPlayerCourt: function (uid, notify) { var params = uW.Object.clone(uW.g_ajaxparams); params.pid = uid; new MyAjaxRequest(uW.g_ajaxpath + "ajax/viewCourt.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { new Sendcourtdata(rslt); //logit ("ajax/viewCourt.php\n"+ inspect (rslt, 3, 1)); notify(rslt); }, onFailure: function (rslt) { notify(rslt); }, }); }, fetchTEST: function (pageNum, notify) { // as in alliance list, sorted by rank, 10 per page var params = uW.Object.clone(uW.g_ajaxparams); params.pageNo = 1; params.numPerPage = 100; params.perPage = 100; params.results = 100; params.numResults = 100; new MyAjaxRequest(uW.g_ajaxpath + "ajax/allianceGetMembersInfo.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { logit("ajax/allianceGetMembersInfo.php:\n" + inspect(rslt, 5, 1)); notify(rslt); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, init: function (div) { var t = Tabs.AllianceList; t.cont = div; uW.PTgetMembers = t.eventGetMembers; uW.PTPaintMembers = t.GetDataForMap; uW.PTpd = t.clickedPlayerDetail; uW.PTpl = t.clickedPlayerLeaderboard; uW.PTpl2 = t.clickedPlayerLeaderboard2; uW.PTalClickPrev = t.eventListPrev; uW.PTalClickNext = t.eventListNext; uW.PCplo = t.clickedPlayerGetLastLogin; uW.PTPlayClick = t.clickedPlayerInAll; Lastlogin = 0; t.show(); }, hide: function () {}, show: function () { var t = Tabs.AllianceList; if (t.state == null) { if (getMyAlliance()[0] == 0) { t.cont.innerHTML = '

    ' + uW.g_js_strings.membersInfo.youmustbelong + '
    '; t.state = 1; return; } var m = '
    '; m += ''; m += ''; m += ' \ \ \ \ \ \ \ \ \ \
    HELP
    ' + uW.g_js_strings.modal_fow_leaderboard.searchuser + ':    '; m += '  
    ' + uW.g_js_strings.setDiplomacyWindow.srchalli + ':    
    \ Show Friendlys  Show Hostiles' + uW.g_js_strings.attack_generateincoming.estimatedarrival + ': \
    \
    '; t.cont.innerHTML = m; document.getElementById('allPlayName').addEventListener('keypress', function (e) { if (e.which == 13) document.getElementById('playSubmit').click(); }, false); document.getElementById('allAllName').addEventListener('keypress', function (e) { if (e.which == 13) document.getElementById('allSubmit').click(); }, false); document.getElementById('pbShowFriendlies').addEventListener('change', function () { if (this.checked) { t.paintFriendlyDiv(); } else { document.getElementById('pbFriendlyDivs').innerHTML = ''; } }); document.getElementById('pbShowHostiles').addEventListener('change', function () { if (this.checked) { t.paintHostilesDiv(); } else { document.getElementById('pbHostilesDivs').innerHTML = ''; } }); document.getElementById('allSubmit').addEventListener('click', t.eventSubmit, false); document.getElementById('playSubmit').addEventListener('click', t.eventPlayerSubmit, false); document.getElementById('ffbuidsubmit').addEventListener('click', t.eventPlayerUIDSubmit, false); document.getElementById('allAllName').addEventListener('focus', function () { document.getElementById('ptallErr').innerHTML = ''; }, false); document.getElementById('allPlayName').addEventListener('focus', function () { document.getElementById('ptplayErr').innerHTML = ''; }, false); document.getElementById('allListSubmit').addEventListener('click', t.eventListSubmit, false); document.getElementById('idMyAllSubmit').addEventListener('click', t.showMyAlliance, false); document.getElementById('idFindETASelect').addEventListener('click', t.handleEtaSelect, false); document.getElementById('idFindETASelect').disabled = true; t.ModelCity = Cities.cities[0]; t.curPage = 0; t.MaxPage = -1; t.state = 1; } }, paintFriendlyDiv: function () { var t = Tabs.AllianceList; var mess = ' ----- Friendlys -----
    '; for (k in Seed.allianceDiplomacies.friendly) { mess += ' '; // } document.getElementById('pbFriendlyDivs').innerHTML = mess; for (q in Seed.allianceDiplomacies.friendly) { document.getElementById('pbFriendly_' + q).addEventListener('click', function () { //alert(this.id.substr(12)) uW.PTgetMembers(this.id.substr(12)) }); } }, paintHostilesDiv: function () { var t = Tabs.AllianceList; var mess = ' ----- Hostiles -----
    '; for (k in Seed.allianceDiplomacies.hostile) { mess += ' '; // } document.getElementById('pbHostilesDivs').innerHTML = mess; for (q in Seed.allianceDiplomacies.hostile) { document.getElementById('pbHostile_' + q).addEventListener('click', function () { //alert(this.id.substr(11)) uW.PTgetMembers(this.id.substr(11)) }); } }, pName: '', eventPlayerSubmit: function () { var t = Tabs.AllianceList; document.getElementById('ptplayErr').innerHTML = ''; var name = document.getElementById('allPlayName').value; name = name.replace(/\'/g, "_").replace(/\,/g, "_").replace(/\-/g, "_"); t.pName = name; if (name.length < 3) { document.getElementById('ptplayErr').innerHTML = uW.g_js_strings.getAllianceSearchResults.entryatleast3; return; } document.getElementById('altInput').innerHTML = ''; document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.commonstr.loadingddd + '
    '; t.fetchPlayerList(name, t.eventGotPlayerList); }, eventGotPlayerList: function (rslt) { var t = Tabs.AllianceList; if (!rslt.ok) { // document.getElementById('allListOut').innerHTML = rslt.errorMsg; document.getElementById('allListOut').innerHTML = rslt.msg; return; } t.playerList = rslt.matchedUsers; var uList = []; for (k in rslt.matchedUsers) uList.push(rslt.matchedUsers[k].userId); t.fetchPlayerStatus(uList, function (r) { t.eventGotPlayerOnlineList(r) }); }, eventGotPlayerOnlineList: function (rslt) { var t = Tabs.AllianceList; if (!rslt.ok) { document.getElementById('allListOut').innerHTML = rslt.errorMsg; return; } var m = '
    ' + uW.g_js_strings.recommendSelectedFriends.playersrch + ': "' + t.pName + '"
    \
    \ \ '; var row = 0; var cl = ''; for (k in t.playerList) { var u = t.playerList[k]; if (++row % 2) cl = 'class=ptOddrow '; else cl = ''; m += '\ \ \ '; } m += '
    ' + uW.g_js_strings.commonstr.nametx + '                  UID              ' + uW.g_js_strings.commonstr.might + '       ' + uW.g_js_strings.commonstr.online + '  Facebook   ' + uW.g_js_strings.commonstr.search + '
    ' + u.genderAndName + '' + u.userId + '' + addCommas(u.might) + '' + (rslt.data[u.userId] ? " " + uW.g_js_strings.commonstr.online + "" : "") + '' + uW.g_js_strings.commonstr.profile + '' + uW.g_js_strings.modaltitles.memberdetails + '  
    ' + uW.g_js_strings.modaltitles.leaderboard + '
    ' + uW.g_js_strings.modal_messages_viewreports_view.lastlogin + '
    '; document.getElementById('allListOut').innerHTML = m; }, asName: '', eventPlayerUIDSubmit: function () { var t = Tabs.AllianceList; document.getElementById('ptplayErr').innerHTML = ''; var uid = document.getElementById('allPlayName').value; var params = uW.Object.clone(uW.g_ajaxparams); params.uid = uid; AjaxRequest(uW.g_ajaxpath + "ajax/getUserGeneralInfo.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (transport) { var rslt = eval("(" + transport.responseText + ")"); if (rslt.ok) test = rslt.userInfo[0].name; else document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.barbarian.erroroccured + '
    '; }, onFailure: function (rslt) { document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.errorcode.err_602 + '
    '; return; }, }); t.pName = t.asName; document.getElementById('altInput').innerHTML = ''; document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.commonstr.loadingddd + '
    '; setTimeout(t.fetchPlayerList, 500, test, t.eventGotPlayerList); }, clickedPlayerDetail: function (span, uid) { var t = Tabs.AllianceList; span.onclick = ''; span.innerHTML = uW.g_js_strings.commonstr.search + ': ' + uW.g_js_strings.modaltitles.memberdetails + " ..."; t.fetchPlayerInfo(uid, function (r) { t.gotPlayerDetail(r, span) }); }, clickedPlayerLeaderboard: function (span, uid) { var t = Tabs.AllianceList; span.onclick = ''; span.innerHTML = uW.g_js_strings.commonstr.search + ': ' + uW.g_js_strings.modaltitles.leaderboard + " ..."; t.fetchLeaderboard(uid, function (r) { t.gotPlayerLeaderboard(r, span) }); }, clickedPlayerLeaderboard2: function (span, uid, status) { var t = Tabs.AllianceList; span.onclick = ''; span.innerHTML = uW.g_js_strings.commonstr.search + ': ' + uW.g_js_strings.modaltitles.leaderboard + " ..."; t.fetchLeaderboard(uid, function (r) { t.gotPlayerLeaderboard2(r, span, uid, status) }); }, clickedPlayerGetLastLogin: function (span, uid) { var t = Tabs.AllianceList; span.onclick = ''; span.innerHTML = uW.g_js_strings.commonstr.search + ': ' + uW.g_js_strings.modal_messages_viewreports_view.lastlogin + " ..."; t.fetchPlayerLastLogin(uid, function (r) { t.gotPlayerLastLogin(r, span) }); }, gotPlayerLeaderboard2: function (rslt, span, uid, status) { var t = Tabs.AllianceList; var prestige = ""; if (!rslt.ok) { span.innerHTML = rslt.errorMsg; return; } t.dat = []; var myA = getMyAlliance(); if (rslt.totalResults == 0) { t.fetchPlayerLastLogin(uid, function (r) { t.displayPlayer("", r) }); return; } var p = rslt.results[0]; if (myA[0] == p.allianceId) t.friendEta = true; else t.friendEta = false; for (var c = 0; c < p.cities.length; c++) { if (p.cities[c].prestigeType == 0) prestige = ""; if (p.cities[c].prestigeType == 1) prestige = "Druid"; if (p.cities[c].prestigeType == 2) prestige = "Fey"; if (p.cities[c].prestigeType == 3) prestige = "Briton"; if (p.cities[c].prestigeLevel == 0) { prestigelvl = ""; } else { prestigelvl = " (" + p.cities[c].prestigeLevel + ")"; } ExpTime = t.convertTime(new Date(p.cities[c].prestigeBuffExpire.replace(" ", "T"))); if ((ExpTime + (3600 * 24) < unixTime()) || isNaN(ExpTime)) { prestigeexp = ""; } else { prestigeexp = t.getDuration(p.cities[c].prestigeBuffExpire); } t.dat.push([p.displayName, parseInt(p.might), p.officerType, parseInt(p.numCities), parseInt(p.cities[c].tileLevel), parseInt(p.cities[c].xCoord), parseInt(p.cities[c].yCoord), p.cities[c].cityName, 0, status, 0, p.userId, prestige, p.userId, prestigelvl, prestigeexp, p.cities[c].prestigeBuffExpire, prestige + prestigelvl ]); } t.setDistances(Cities.cities[0].x, Cities.cities[0].y); t.ModelCity = Cities.cities[0]; t.setEta(); t.fetchPlayerLastLogin(uid, function (r) { t.displayPlayer(p.allianceName, r) }); //t.fetchPlayerLastLogin(); //t.displayPlayer (p.allianceId); }, gotPlayerLeaderboard: function (rslt, span) { var t = Tabs.AllianceList; if (!rslt.ok) { span.innerHTML = rslt.errorMsg; return; } if (rslt.totalResults == 0) { span.innerHTML = '' + uW.g_js_strings.commonstr.leaderboard + ': ' + uW.itemlist.i10021.name + '?
    '; return; } var p = rslt.results[0]; var an = p.allianceName; if (!an || an == '') an = 'none'; else an += ' (' + officerId2String(p.officerType) + ')'; pStr = JSON2.stringify(p); //logit (pStr); m = ''; for (var i = 0; i < p.cities.length; i++) { var c = p.cities[i]; var created = ''; if (c.dateCreated && c.dateCreated.substr(0, 2) == '20') created = '   created: ' + c.dateCreated.substr(0, 10); m += ''; } span.innerHTML = m + '
    ' + uW.g_js_strings.commonstr.leaderboard + ': ' + uW.g_js_strings.commonstr.might + ': ' + p.might + '   ' + uW.g_js_strings.commonstr.alliance + ': ' + an + '
    City #' + (i + 1) + ':   ' + c.cityName + ' (' + c.xCoord + ',' + c.yCoord + ')   level: ' + c.tileLevel + '   status: ' + cityStatusString(c.cityStatus) + created + '
    '; }, gotPlayerDetail: function (rslt, span) { var t = Tabs.AllianceList; if (!rslt.ok) { span.innerHTML = rslt.errorMsg; return; } var u = rslt.userInfo[0]; var a = 'None'; if (u.allianceName) a = u.allianceName + ' (' + getDiplomacy(u.allianceId) + ')'; var m = '
    Details:   ' + uW.g_js_strings.commonstr.alliance + ': ' + a + '   ' + uW.g_js_strings.commonstr.cities + ': ' + u.cities + '   ' + uW.g_js_strings.commonstr.population + ': ' + u.population + '
    ' + uW.g_js_strings.commonstr.province + ': '; var pids = u.provinceIds.split(','); var p = []; for (var i = 0; i < pids.length; i++) p.push(uW.provincenames['p' + pids[i]]); span.innerHTML = m + p.join(', ') + '
    '; }, eventMyAllianceSubmit: function () { var t = Tabs.AllianceList; document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.commonstr.loadingddd + '
    '; t.fetchAllianceMemberList(getMyAlliance()[0], null, t.eventGotMemberList); }, aName: '', eventSubmit: function () { var t = Tabs.AllianceList; document.getElementById('ptallErr').innerHTML = ''; if (t.clickedAlly) { t.aName = t.clickedAllyName; } else { t.aName = document.getElementById('allAllName').value; } if (t.aName.length < 3) { document.getElementById('ptallErr').innerHTML = uW.g_js_strings.getAllianceSearchResults.entryatleast3; return; } var myA = getMyAlliance(); document.getElementById('altInput').innerHTML = ''; document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.commonstr.loadingddd + '
    '; if (myA[0] != 0 && myA[1].toLowerCase().indexOf(t.aName.toLowerCase()) >= 0) t.fetchAllianceList(t.aName, myA[0], t.eventGotAllianceList); else t.fetchAllianceList(t.aName, null, t.eventGotAllianceList); }, eventListSubmit: function () { var t = Tabs.AllianceList; var myA = getMyAlliance(); document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.commonstr.loadingddd + '
    '; if (myA[0] != 0) { t.curPage = 1; t.fetchOtherAllianceInfo(1, t.eventGotOtherAlliancePage); //document.getElementById('allGotoPage').disabled = false; } else { document.getElementById('allListOut').innerHTML = uW.g_js_strings.membersInfo.youmustbelong; } }, eventGotAllianceList: function (rslt) { var t = Tabs.AllianceList; if (!rslt.ok) { document.getElementById('allListOut').innerHTML = rslt.errorMsg; return; } var m = '
    ' + uW.g_js_strings.commonstr.alliances + '"' + t.aName + '"
    \ \ '; for (k in rslt.alliancesMatched) { var all = rslt.alliancesMatched[k]; var dip = ''; if (all.relation && all.relation == 1) dip = uW.g_js_strings.commonstr.friendly; else if (all.relation && all.relation == 2) dip = uW.g_js_strings.commonstr.hostile; m += '\ \ \ '; } document.getElementById('allListOut').innerHTML = m; }, showMyAlliance: function () { var t = Tabs.AllianceList; var myA = getMyAlliance(); document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.commonstr.loadingddd + '
    '; if (myA[0] != 0) { t.eventGetMembers(myA[0], false); } else { document.getElementById('allListOut').innerHTML = uW.g_js_strings.membersInfo.youmustbelong; } }, curPage: 0, MaxPage: 0, eventListNext: function (amt) { var t = Tabs.AllianceList; if (parseInt(amt) >= 9999) t.curPage = t.MaxPage; else { t.curPage = parseInt(t.curPage) + parseInt(amt); if (t.curPage > t.MaxPage) { t.curPage = t.MaxPage; } } document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.commonstr.loadingddd + '
    '; t.fetchOtherAllianceInfo(t.curPage, t.eventGotOtherAlliancePage); }, eventListPrev: function (amt) { var t = Tabs.AllianceList; if (amt <= -1) t.curPage = 1; else { t.curPage -= amt; if (t.curPage < 1) { t.curPage = 1; } } document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.commonstr.loadingddd + '
    '; t.fetchOtherAllianceInfo(t.curPage, t.eventGotOtherAlliancePage); }, eventGotOtherAlliancePage: function (rslt) { var t = Tabs.AllianceList; if (!rslt.ok) { document.getElementById('allListOut').innerHTML = rslt.errorMsg; return; } // document.getElementById('idPageNum').value = t.curPage; t.MaxPage = rslt.noOfPages; //document.getElementById('idMaxPageNum').innerHTML = 'of ' + t.MaxPage; var m = '
    ' + uW.g_js_strings.commonstr.alliance + '' + uW.g_js_strings.commonstr.rank + '' + uW.g_js_strings.commonstr.members + '' + uW.g_js_strings.commonstr.might + '' + uW.g_js_strings.getAllianceSearchResults.currdiplo + '' + uW.g_js_strings.commonstr.members + '' + uW.g_js_strings.commonstr.viewmap + '
    ' + all.allianceName + '' + all.ranking + '' + all.membersCount + '' + addCommasInt(all.might) + '' + dip + '' + uW.g_js_strings.commonstr.members + '' + uW.g_js_strings.commonstr.viewmap + '
    \ \ '; document.getElementById('allListOut').innerHTML = m; for (var i = 0; i < rslt.otherAlliances.length; i++) { var alliance = rslt.otherAlliances[i]; var dip = ''; dip = getDiplomacy(alliance.allianceId); m += '\ \ \ '; } m += '
    ' + uW.g_js_strings.modaltitles.alliance + '' + uW.g_js_strings.commonstr.rank + '' + uW.g_js_strings.commonstr.members + '' + uW.g_js_strings.commonstr.might + '' + uW.g_js_strings.getAllianceSearchResults.currdiplo + '' + uW.g_js_strings.commonstr.members + '' + uW.g_js_strings.commonstr.viewmap + '
    ' + alliance.name + '' + alliance.ranking + '' + alliance.membersCount + '' + addCommasInt(alliance.might) + '' + dip + '' + uW.g_js_strings.commonstr.members + '' + uW.g_js_strings.commonstr.viewmap + '
    '; m += '
    '; document.getElementById('allListOut').innerHTML = m; }, showCurrentPage: function () { var t = Tabs.AllianceList; var myA = getMyAlliance(); document.getElementById('allListOut').innerHTML = '

    ' + uW.g_js_strings.commonstr.loadingddd + '
    '; if (myA[0] != 0) { t.fetchOtherAllianceInfo(t.curPage, t.eventGotOtherAlliancePage); } else { t.fetchOtherAllianceInfo(t.curPage, t.eventGotOtherAlliancePage); } }, eventGotMemberList: function (rslt) { var t = Tabs.AllianceList; if (!rslt.ok) { document.getElementById('allListOut').innerHTML = rslt.errorMsg; return; } t.memberListRslt = rslt; var uList = []; for (k in rslt.results) uList.push(rslt.results[k].userId); t.fetchPlayerStatus(uList, function (r) { t.eventGotMemberOnlineList(r) }); }, eventGotMemberOnlineList: function (rslt) { var t = Tabs.AllianceList; var numInvalid = 0; var numPlayers = 0; var myA = getMyAlliance(); var prestige = ""; t.dat = []; for (var i = 0; i < t.memberListRslt.results.length; i++) { p = t.memberListRslt.results[i]; if (p.userId == 0) { ++numInvalid; } else { ++numPlayers; if (myA[0] == p.allianceId) t.friendEta = true; else t.friendEta = false; for (var c = 0; c < p.cities.length; c++) { if (p.cities[c].prestigeType == 0) prestige = ""; if (p.cities[c].prestigeType == 1) prestige = "Druid"; if (p.cities[c].prestigeType == 2) prestige = "Fey"; if (p.cities[c].prestigeType == 3) prestige = "Briton"; if (p.cities[c].prestigeLevel == 0) { prestigelvl = ""; } else { prestigelvl = " (" + p.cities[c].prestigeLevel + ")"; } ExpTime = t.convertTime(new Date(p.cities[c].prestigeBuffExpire.replace(" ", "T"))); if ((ExpTime + (3600 * 24) < unixTime()) || isNaN(ExpTime)) { prestigeexp = ""; } else { prestigeexp = t.getDuration(p.cities[c].prestigeBuffExpire); } t.dat.push([p.displayName, parseInt(p.might), p.officerType, parseInt(p.numCities), parseInt(p.cities[c].tileLevel), parseInt(p.cities[c].xCoord), parseInt(p.cities[c].yCoord), p.cities[c].cityName, 0, rslt.data[p.userId] ? 1 : 0, '--', p.userId, prestige, p.userId, prestigelvl, prestigeexp, p.cities[c].prestigeBuffExpire, prestige + prestigelvl ]); } } } t.setDistances(Cities.cities[0].x, Cities.cities[0].y); t.ModelCity = Cities.cities[0]; t.setEta(); t.displayMembers(t.memberListRslt.allianceName, numPlayers); }, convertTime: function (datestr) { // KOC Timestamps are in Local Pacific Time, so need to convert to unixtime and add 8 hours for PST // Then adjust for Daylight Savings Time on both sides... return parseInt(datestr.getTime()/1000)-(datestr.getTimezoneOffset()*60)+(480*60)-getDST(datestr); }, getDuration: function (datestr) { var t = Tabs.AllianceList; var Interval = t.convertTime(new Date(datestr.replace(" ", "T"))) - unixTime(); if (Interval >= 0) { return uW.timestr(Interval); } else return 'Expired ' + uW.timestr(Interval * (-1)) + ' Ago'; }, // sort and display reDisp: function () { var t = Tabs.AllianceList; //alert(t.dat.toSource()); function sortFunc(a, b) { var t = Tabs.AllianceList; if (typeof (a[t.sortColNum]) == 'number') { if (t.sortDir > 0) return a[t.sortColNum] - b[t.sortColNum]; else return b[t.sortColNum] - a[t.sortColNum]; } else if (typeof (a[t.sortColNum]) == 'boolean') { // TODO !! return 0; } else { if (t.sortDir > 0) return a[t.sortColNum].localeCompare(b[t.sortColNum]); else return b[t.sortColNum].localeCompare(a[t.sortColNum]); } } t.dat.sort(sortFunc); var m = ''; var cityName = ""; for (var i = 0; i < t.dat.length; i++) { cityName = t.dat[i][5].toString() + t.dat[i][6].toString(); var status = ''; if (t.dat[i][9] == 1) status = ''; m += '' + status + '' + t.dat[i][0] + '' + addCommasInt(t.dat[i][1]); m += '' + t.dat[i][12] + t.dat[i][14] + '' + t.dat[i][15] + '' + officerId2String(t.dat[i][2]); m += '' + t.dat[i][7] + '' + t.dat[i][4]; m += ''; m += '' + t.dat[i][8].toFixed(2) + '' m += '' + (t.dat[i][10] ? '' + (t.dat[i][10] > 0 ? timestr(t.dat[i][10], 1) : '--') + '' : '--') + 'Login'; } var tbody = document.getElementById('allBody'); tbody.style.maxHeight = ''; tbody.innerHTML = m; if (parseInt(tbody.clientHeight) > 470) { tbody.style.height = '470px'; tbody.style.maxHeight = '470px'; } }, clickedPlayerInAll: function (span, uid, status) { var t = Tabs.AllianceList; t.clickedPlayerLeaderboard2(span, uid, status); }, setDistances: function (x, y) { var t = Tabs.AllianceList; for (var i = 0; i < t.dat.length; i++) t.dat[i][8] = distance(x, y, t.dat[i][5], t.dat[i][6]); }, friendEta: false, setEta: function () { var t = Tabs.AllianceList; for (var i = 0; i < t.dat.length; i++) { if (t.dat[i][8]) { var eta = t.estETA(parseFloat(t.dat[i][8])); if (t.friendEta) t.dat[i][10] = eta.friendETA; else t.dat[i][10] = eta.ETA; } } }, handleEtaSelect: function () { var t = Tabs.AllianceList; t.setEta(); t.reDisp(); }, sortColNum: 8, sortDir: 1, displayMembers: function (allName, numPlayers) { var t = Tabs.AllianceList; function alClickSort(e) { var t = Tabs.AllianceList; var newColNum = e.id.substr(8); document.getElementById('clickCol' + t.sortColNum).className = 'clickable'; e.className = 'clickable clickableSel'; if (newColNum == t.sortColNum) t.sortDir *= -1; else t.sortColNum = newColNum; t.reDisp(); } uW.PTalClickSort = alClickSort; var m = '\
    \
      ' + allName + '' + uW.g_js_strings.commonstr.distance + uW.g_js_strings.commonstr.from + ' ' + Cities.cities[0].name + ' (' + Cities.cities[0].x + ',' + Cities.cities[0].y + ')' + numPlayers + uW.g_js_strings.commonstr.members + ' 
    \ '; document.getElementById('allListOut').innerHTML = m; //style="top:670px; left:0px; position:absolute; m = '
    '; m += ''; m += '
    Show distance from:   X: Y:   Or, choose city:
    '; document.getElementById('altInput').innerHTML = m; document.getElementById('clickCol' + t.sortColNum).className = 'clickable clickableSel'; document.getElementById('ToggleScoutCheckbox').addEventListener('change', t.doSelectall, false); t.reDisp(); new CdispCityPicker('plyrdcp', document.getElementById('dmcoords'), true, t.eventCoords, 0).bindToXYboxes(document.getElementById('plyrX'), document.getElementById('plyrY')); document.getElementById('dmcoords').addEventListener('click', function () { //alert(t.eventCoords); //t.clickCity(CdispCityPicker); }, false); document.getElementById('idFindETASelect').disabled = false; }, displayPlayer: function (allName, rslt) { var t = Tabs.AllianceList; var status = ""; function alClickSort(e) { var t = Tabs.AllianceList; var newColNum = e.id.substr(8); document.getElementById('clickCol' + t.sortColNum).className = 'clickable'; e.className = 'clickable clickableSel'; // alert(t.dat[0].toSource()); if (newColNum == t.sortColNum) t.sortDir *= -1; else t.sortColNum = newColNum; t.reDisp(); } uW.PTalClickSort = alClickSort; switch (parseInt(rslt.playerInfo.warStatus)) { case 1: status = uW.g_js_strings.commonstr.normal; break; case 2: status = uW.g_js_strings.MapObject.begprotect; break; case 3: status = uW.g_js_strings.commonstr.truce; break; case 4: status = uW.g_js_strings.commonstr.vacation; break; default: status = uW.g_js_strings.commonstr.normal } var m = '\
    \ \
    '; document.getElementById('allListOut').innerHTML = m; //style="top:670px; left:0px; position:absolute; m = '
    '; m += ''; m += '
    Show distance from:   X: Y:   Or, choose city:
    '; document.getElementById('altInput').innerHTML = m; m = ''; m += ''; m += ''; now = unixTime(); if (rslt.playerInfo.warStatus > 1 && ((rslt.playerInfo.truceExpireUnixTime - now) > 0)) m += ''; if (t.dat.length == 0) m += ''; m += ''; // create notes link uW.ptuser = {}; uW.ptuser.id = rslt.playerInfo.userId; uW.ptuser.username = rslt.playerInfo.displayName; var notes = ""; if (Tabs.Notes.noteValues[uW.ptuser.username]) { notes = Tabs.Notes.noteValues[uW.ptuser.username]; notes = notes.text.replace(//g, "\n"); } m += ''; if (uW.btLoaded) m += '
    Alliance:' + rslt.playerInfo.allianceName + '
    Last Login:' + rslt.playerInfo.lastLogin + '
    Status:' + status + 'Expires: ' + rslt.playerInfo.truceExpireTimestamp + ' (' + timestr(rslt.playerInfo.truceExpireUnixTime - now) + ')
    MISTED?Expires: ' + rslt.playerInfo.fogExpireTimestamp + '
    Glory:
    Max Glory:
    Player Notes:' + notes + '

    Compare Throne Room :

    '; else m += '
    Compare Throne Room :

    '; document.getElementById('playerInfo').innerHTML = m; document.getElementById('ToggleScoutCheckbox').addEventListener('change', t.doSelectall, false); document.getElementById('CompareTR').addEventListener('click', function () { t.TRStats(rslt.playerInfo.userId, rslt.playerInfo.displayName, "Compare") }, false); document.getElementById('CalcTR').addEventListener('click', function () { t.TRStats(rslt.playerInfo.userId, rslt.playerInfo.displayName, "Calc") }, false); if (uW.btLoaded) document.getElementById('MonitorTR').addEventListener('click', function () { uW.btMonitorExternalCallUID(rslt.playerInfo.userId) }, false); document.getElementById('clickCol' + t.sortColNum).className = 'clickable clickableSel'; t.PaintGlory(rslt.playerInfo.userId); t.reDisp(); new CdispCityPicker('plyrdcp', document.getElementById('dmcoords'), true, t.eventCoords, 0).bindToXYboxes(document.getElementById('plyrX'), document.getElementById('plyrY')); document.getElementById('idFindETASelect').disabled = false; }, PaintGlory: function (uid) { var t = Tabs.AllianceList; var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.userId = uid; params.ctrl = 'PlayerProfile'; params.action = 'get'; new AjaxRequest(unsafeWindow.g_ajaxpath + "ajax/_dispatch.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (transport) { var rslt = eval("(" + transport.responseText + ")"); if (rslt.ok) { document.getElementById('PaintGlory').innerHTML = addCommas(rslt.profile.glory); document.getElementById('PaintMaxGlory').innerHTML = addCommas(rslt.profile.maxGlory); } else t.PaintGlory(uid); }, onFailure: function () {}, }); }, HisStatEffects: [], MyStatEffects: [], TRStats: function (uid, name, what) { var t = Tabs.AllianceList; var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.ctrl = 'throneRoom\\ThroneRoomServiceAjax'; params.action = 'getEquipped'; params.playerId = uid; new AjaxRequest(unsafeWindow.g_ajaxpath + "ajax/_dispatch53.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, loading: true, onSuccess: function (transport) { var rslt = eval("(" + transport.responseText + ")"); if (rslt.ok) { for (k in uW.cm.thronestats.effects) t.HisStatEffects[k] = 0; for (kk = 0; kk <= 8; kk++) { y = rslt.items[kk]; if (y != undefined) { for (var O in y["effects"]) { var i = +(O.split("slot")[1]); id = y["effects"]["slot" + i]["id"]; tier = parseInt(y["effects"]["slot" + i]["tier"]); level = y["level"]; p = unsafeWindow.cm.thronestats.tiers[id][tier]; while (!p && (tier > 0)) { tier--; p = unsafeWindow.cm.thronestats.tiers[id][tier]; } if (!p) continue; // can't find stats for tier Current = p.base + ((level * level + level) * p.growth * 0.5); if (i <= parseInt(y["quality"])) t.HisStatEffects[id] += Current; } } } for (k in uW.cm.thronestats.effects) t.MyStatEffects[k] = 0; for (k in uW.kocThroneItems) { y = uW.kocThroneItems[k]; for (var O in y["effects"]) { var i = +(O.split("slot")[1]); id = y["effects"]["slot" + i]["id"]; tier = parseInt(y["effects"]["slot" + i]["tier"]); level = y["level"]; p = unsafeWindow.cm.thronestats.tiers[id][tier]; while (!p && (tier > 0)) { tier--; p = unsafeWindow.cm.thronestats.tiers[id][tier]; } if (!p) continue; // can't find stats for tier Current = p.base + ((level * level + level) * p.growth * 0.5); if (y.isEquipped && i <= y["quality"]) t.MyStatEffects[id] += Current } } if (what == "Compare") t.PaintTRCompare(name); if (what == "Calc") t.PaintTRCalc(name); } else t.TRStatsCompare(); }, onFailure: function () { return; }, }); }, TRlineHolder: { 1:{1:"Attack",2:null},2:{1:1,2:17},3:{1:24,2:29},4:{1:34,2:39},5:{1:44,2:50},6:{1:56,2:61},7:{1:17,2:1},8:{1:29,2:24},9:{1:39,2:34},10:{1:50,2:44},11:{1:61,2:56}, 12:{1:"Defense",2:null},13:{1:2,2:18},14:{1:25,2:30},15:{1:35,2:40},16:{1:45,2:51},17:{1:18,2:2},18:{1:30,2:25},19:{1:40,2:35},20:{1:51,2:45}, 21:{1:"Life",2:null},22:{1:3,2:19},23:{1:26,2:31},24:{1:36,2:41},25:{1:46,2:52},26:{1:19,2:3},27:{1:31,2:26},28:{1:41,2:36},29:{1:52,2:46}, 30:{1:"Combat Speed",2:null},31:{1:4,2:20},32:{1:27,2:32},33:{1:47,2:53},34:{1:57,2:62},35:{1:20,2:4},36:{1:32,2:27},37:{1:53,2:47},38:{1:62,2:57}, 39:{1:"Range",2:null},40:{1:5,2:21},41:{1:37,2:42},42:{1:58,2:63},43:{1:21,2:5},44:{1:42,2:37},45:{1:63,2:58}, 46:{1:"Load",2:null},47:{1:6,2:22},48:{1:48,2:54},49:{1:59,2:64},50:{1:22,2:6},51:{1:54,2:48},52:{1:64,2:59}, 52:{1:"Accuracy",2:null},53:{1:7,2:23},54:{1:28,2:33},55:{1:38,2:43},56:{1:49,2:55},57:{1:60,2:65},58:{1:23,2:7},59:{1:33,2:28},60:{1:43,2:38},61:{1:55,2:49},62:{1:65,2:60}, 63:{1:"Other",2:null},64:{1:8,2:8},65:{1:9,2:9},65:{1:10,2:10},66:{1:11,2:11},67:{1:12,2:12},68:{1:13,2:13},69:{1:14,2:14},70:{1:15,2:15},71:{1:16,2:16},72:{1:66,2:66},73:{1:67,2:67},74:{1:68,2:68},75:{1:69,2:69},76:{1:70,2:70},77:{1:71,2:71},78:{1:72,2:72},79:{1:73,2:73},80:{1:74,2:74},81:{1:75,2:75},82:{1:76,2:76},83:{1:77,2:77},84:{1:78,2:78},85:{1:79,2:79},86:{1:80,2:80},87:{1:81,2:81},88:{1:82,2:82},89:{1:83,2:83},90:{1:84,2:84},91:{1:85,2:85},92:{1:86,2:86},93:{1:87,2:87},94:{1:88,2:88},95:{1:89,2:89},96:{1:90,2:90},97:{1:91,2:91},98:{1:92,2:92},99:{1:93,2:93},100:{1:94,2:94},101:{1:95,2:95},102:{1:96,2:96},103:{1:97,2:97},104:{1:98,2:98},105:{1:99,2:99},106:{1:100,2:100},107:{1:101,2:101},108:{1:102,2:102},109:{1:103,2:103},110:{1:104,2:104},111:{1:105,2:105},112:{1:106,2:106},113:{1:107,2:107},114:{1:108,2:108},115:{1:109,2:109},116:{1:110,2:10},117:{1:111,2:111},118:{1:112,2:112}, }, PaintTRCalc: function (name) { var t = Tabs.AllianceList; m = '

    '; for (z = 1; z <= 118; z++) { var HisContent = ""; var MyContent = ""; var His = t.TRlineHolder[z][1]; var My = t.TRlineHolder[z][2]; var diff = 0; var color = "black"; if (t.TRlineHolder[z][2] == null) { m += ''; } else { if (t.HisStatEffects[His] != 0) HisContent = t.HisStatEffects[His] + '% ' + uW.cm.thronestats["effects"][His]["1"]; if (t.MyStatEffects[My] != 0) MyContent = t.MyStatEffects[My] + '% ' + uW.cm.thronestats["effects"][My]["1"]; if (t.HisStatEffects[His] != 0 && t.MyStatEffects[My] != 0) { if (z < 63) diff = (parseInt(t.HisStatEffects[His]) + parseInt(t.MyStatEffects[My])); if (z > 63) diff = (parseInt(t.MyStatEffects[My]) - parseInt(t.HisStatEffects[His])); if (MyContent.indexOf("Debuff") != -1 && diff > 0) color = "red"; else if (MyContent.indexOf("Debuff") != -1 && diff < 0) color = "green"; else if (HisContent.indexOf("Debuff") != -1 && diff > 0) color = "green"; else if (HisContent.indexOf("Debuff") != -1 && diff < 0) color = "red"; else if (diff < 0) color = "red"; else color = "green"; m += ''; } else if (t.HisStatEffects[His] != 0 || t.MyStatEffects[His] != 0) m += ''; m += ''; } } m += '
    ' + name + '' + Seed.player.name + '
     
    ' + t.TRlineHolder[z][1] + '
    ' + diff + '' + HisContent + '' + MyContent + '
    ' + HisContent + '' + MyContent + '
    '; var popMsg = null; t.popMsg = new CPopup('pbMailBody', 0, 0, 550, 750, true, function () { clearTimeout(1000); }); t.popMsg.centerMe(mainPop.getMainDiv()); t.popMsg.getMainDiv().innerHTML = m; t.popMsg.getTopDiv().innerHTML = '
    Throne Room Compare
    '; t.popMsg.show(true); }, PaintTRCompare: function (name) { var t = Tabs.AllianceList; m = '

    '; for (k = 1; k < t.MyStatEffects.length; k++) { var HisContent = ""; var MyContent = ""; if (t.HisStatEffects[k] != 0) HisContent = t.HisStatEffects[k] + '% ' + uW.cm.thronestats["effects"][k]["1"]; if (t.MyStatEffects[k] != 0) MyContent = t.MyStatEffects[k] + '% ' + uW.cm.thronestats["effects"][k]["1"]; if (t.HisStatEffects[k] != 0 || t.MyStatEffects[k] != 0) m += ''; } m += '
    ' + name + '' + Seed.player.name + '
     
    ' + HisContent + '' + MyContent + '
    '; var popMsg = null; t.popMsg = new CPopup('pbMailBody', 0, 0, 550, 750, true, function () { clearTimeout(1000); }); t.popMsg.centerMe(mainPop.getMainDiv()); t.popMsg.getMainDiv().innerHTML = m; t.popMsg.getTopDiv().innerHTML = '
    Throne Room Compare
    '; t.popMsg.show(true); }, rallypointlevel: 0, MaxScouts: function (city) { var t = Tabs.AllianceList; var othertroops = 0; var max = 0; var maxsend = 0; t.getRallypoint("city" + city.id); RallypointMax = (t.rallypointlevel * 10000); maxsend = RallypointMax + ((RallypointMax / 100) * uW.cm.ThroneController.effectBonus(66)); for (i = 1; i <= 12; i++) othertroops += parseInt(document.getElementById('Unt' + 3).value); if (othertroops < maxsend) max = (maxsend - othertroops); if (max > Seed.units["city" + city.id]["unt" + 3]) max = Seed.units["city" + city.id]["unt" + 3]; document.getElementById('numScouts').value = max; }, getRallypoint: function (cityId) { var t = Tabs.AllianceList; for (var o in Seed.buildings[cityId]) { var buildingType = parseInt(Seed.buildings[cityId][o][0]); var buildingLevel = parseInt(Seed.buildings[cityId][o][1]); if (buildingType == 12) t.rallypointlevel = parseInt(buildingLevel); } if (t.rallypointlevel == 11) t.rallypointlevel = 15; if (t.rallypointlevel == 12) t.rallypointlevel = 20; }, doSelectall: function () { var t = Tabs.AllianceList; var city = ""; for (var k = 0; k < t.dat.length; k++) { city = t.dat[k][5].toString() + t.dat[k][6].toString(); if (document.getElementById('ToggleScoutCheckbox').checked) document.getElementById('ScoutCheckbox_' + city).checked = true; else document.getElementById('ScoutCheckbox_' + city).checked = false; } }, doAddScout: function () { var t = Tabs.AllianceList; var count = -1; var city = ""; document.getElementById('ptscoutprogress').className = ""; document.getElementById('ptscoutprogress').innerHTML = ""; for (var k = 0; k < t.dat.length; k++) { if (t.dat[k][5] != undefined && t.dat[k][6] != undefined) { var x = t.dat[k][5]; var y = t.dat[k][6]; count++; city = t.dat[k][5].toString() + t.dat[k][6].toString(); var box = 'ScoutCheckbox_' + city; if (document.getElementById(box).checked) setTimeout(t.doScout,5000*count, x,y,box); } } }, doScout: function (x, y, box) { var t = Tabs.AllianceList; openslots = document.getElementById('openSlots').value; slots = CheckCityMarches(t.ScoutInfo.id); rallypointlevel = getRallypoint(t.ScoutInfo.id); slotsend = rallypointlevel - slots - openslots; if (slotsend <= 0) { setTimeout(t.doScout, 30000, x, y, box); // try again in 30 secs.. document.getElementById('ptscoutprogress').innerHTML = "Waiting for free rally point slots..."; return; } var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.cid = t.ScoutInfo.id; params.type = 3 params.kid = 0 params.xcoord = x; params.ycoord = y; params.u3 = document.getElementById('numScouts').value; params.gold = 0; params.r1 = 0; params.r2 = 0; params.r3 = 0; params.r4 = 0; params.r5 = 0; new MyAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/march.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, loading: true, onSuccess: function (rslt) { var t = Tabs.AllianceList; logit(rslt.toSource()); if (rslt.ok) { var timediff = parseInt(rslt.eta) - parseInt(rslt.initTS); var rtimediff = parseInt(rslt.returnTS) - parseInt(rslt.initTS); var ut = unsafeWindow.unixtime(); var unitsarr = {}; for (var ui in unsafeWindow.cm.UNIT_TYPES){ i = unsafeWindow.cm.UNIT_TYPES[ui]; if (params["u" + i]) unitsarr[i] = params["u" + i]; else unitsarr[i] = 0; } var resources = [0,0,0,0,0,0]; var currentcityid = params.cid; unsafeWindow.attach_addoutgoingmarch(rslt.marchId, rslt.marchUnixTime, ut + timediff, params.xcoord, params.ycoord, unitsarr, params.type, params.kid, resources, rslt.tileId, rslt.tileType, rslt.tileLevel, currentcityid, true, ut + rtimediff); unsafeWindow.update_seed(rslt.updateSeed) if (rslt.updateSeed) { unsafeWindow.update_seed(rslt.updateSeed) }; document.getElementById(box).checked = false; document.getElementById('ptscoutprogress').innerHTML = "Scouting ("+params.xcoord+","+params.ycoord+") ..."; } }, onFailure: function () {}, }); }, eventCoords: function (city, x, y) { var t = Tabs.AllianceList; t.ScoutInfo = new Array; t.ScoutInfo = city; if (t.ScoutInfo != null) { var scoutexport = ""; if (uW.ShowScoutList) { scoutexport = ' ' } document.getElementById('PaintScout').innerHTML = 'Scout selected cities from: ' + t.ScoutInfo.name + ' with Scout(s); Rally point slots to keep open: '+scoutexport+'
    '; document.getElementById('scoutAllSelected').addEventListener('click', function () { t.doAddScout(); }, false); document.getElementById('MaxScout').addEventListener('click', function () { t.MaxScouts(city); }, false); if (uW.ShowScoutList) { document.getElementById('ptscoutexport').addEventListener('click', function (){t.generateScoutList();},false); } } var m = ''; if (city != null) m = city.name + ' (' + city.x + ',' + city.y + ')'; else m = x + ',' + y; var distFrom = document.getElementById('distFrom'); if (distFrom) distFrom.innerHTML = m; t.ModelCity = city; if (city != null) t.JumpCity(city.name); t.setDistances(x, y); t.setEta(); t.reDisp(); }, generateScoutList : function (){ var t = Tabs.AllianceList; var bulkScout = []; for (var k=0;k'; t.fetchAllianceMemberList(aid, null, t.eventGotMemberList); }, fetchAllianceMemberList: function (allianceId, allianceName, notify) { var t = Tabs.AllianceList; var params = uW.Object.clone(uW.g_ajaxparams); params.type = "might"; params.page = 1; params.perPage = 100; if (allianceName) params.allianceName = allianceName; if (allianceId && allianceId != 0) params.allianceId = allianceId; new MyAjaxRequest(uW.g_ajaxpath + "ajax/getUserLeaderboard.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { notify(rslt); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, GetDataForMap: function (allianceId) { var t = Tabs.AllianceList; var params = uW.Object.clone(uW.g_ajaxparams); var Data = []; params.perPage = 100; params.allianceId = allianceId; params.type = "might"; params.page = 1; new MyAjaxRequest(uW.g_ajaxpath + "ajax/getUserLeaderboard.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { var city = ''; for (var i = 0; i < rslt.results.length; i++) { //alert(rslt.results[i].toSource()); if (rslt.results[i]['userId'] != 0) { player = rslt.results[i]['cities']; for (var ii = 0; ii < player.length; ii++) Data.push({ X: player[ii]['xCoord'], Y: player[ii]['yCoord'] }); } } if (Data != []) t.PaintDataOnMap(Data); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, PaintDataOnMap: function (Data) { var provMapCoordsA = { imgWidth: 710, imgHeight: 708, mapWidth: 670, mapHeight: 670, leftMargin: 31, topMargin: 19 }; var map = '
    '; //alert(Data.toSource()); //Data = [{X:"700", Y:"700"}, {X:"600", Y:"600"}, {X:"500", Y:"500"},{X:"400", Y:"400"},{X:"300", Y:"300"},{X:"200", Y:"200"},{X:"100", Y:"100"},{X:"0", Y:"0"},{X:"750", Y:"750"}, {X:"650", Y:"650"}, {X:"550", Y:"550"},{X:"450", Y:"450"},{X:"350", Y:"350"},{X:"250", Y:"250"},{X:"150", Y:"150"},{X:"50", Y:"50"}]; document.getElementById('allListOut').innerHTML = map; var eMap = document.getElementById('ptAlliProvMap'); for (var cc = 0; cc < Seed.cities.length; cc++) { var city = Seed.cities; var Xplot = parseInt((provMapCoordsA.mapWidth * parseInt(city[cc][2])) / 750); var Yplot = parseInt((provMapCoordsA.mapHeight * parseInt(city[cc][3])) / 750); var cf = document.createElement('div'); cf.style.background = 'black'; cf.style.opacity = '1.0'; cf.style.position = 'relative'; cf.style.display = 'block'; cf.style.width = '14px'; cf.style.height = '16px'; cf.style.border = '1px solid #fff'; cf.style.color = 'white'; cf.style.textAlign = 'center'; cf.style.top = (Yplot + provMapCoordsA.topMargin - (cc * 16) - 8) + 'px'; cf.style.left = (Xplot + provMapCoordsA.leftMargin - 7) + 'px'; cf.innerHTML = (cc + 1) + ''; eMap.appendChild(cf); } for (var i = 0; i < Data.length; i++) { var x = parseInt(Data[i]['X']); var y = parseInt(Data[i]['Y']); var xplot = parseInt((provMapCoordsA.mapWidth * x) / 750); var yplot = parseInt((provMapCoordsA.mapHeight * y) / 750); var ce = document.createElement('div'); ce.style.background = 'red'; ce.style.opacity = '1.0'; ce.style.position = 'relative'; ce.style.display = 'block'; ce.style.width = '4px'; ce.style.height = '4px'; ce.style.color = 'white'; ce.style.textAlign = 'center'; ce.style.top = (yplot + provMapCoordsA.topMargin - (4 * i) - ((Seed.cities.length) * 18)) + 'px'; ce.style.left = (xplot + provMapCoordsA.leftMargin - 2) + 'px'; //ce.innerHTML = 'A'; ce.innerHTML = '
     
    '; eMap.appendChild(ce); } }, fetchLeaderboard: function (uid, notify) { var t = Tabs.AllianceList; var params = uW.Object.clone(uW.g_ajaxparams); params.userId = uid; params.type = "might"; params.page = 1; new MyAjaxRequest(uW.g_ajaxpath + "ajax/getUserLeaderboard.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { notify(rslt); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, fetchAllianceList: function (allianceName, myAid, notify) { // at least 3 chars :) var t = Tabs.AllianceList; function combineResults(rsltA, rsltM, notify) { if (!rsltA.ok) { if (rsltA.msg.indexOf("No alliance found under") != 0 || !rsltM.ok) { notify(rsltA); return; } rsltA.ok = true; rsltA.count = 0; rsltA.alliancesMatched = {}; } if (rsltM.ok) { rsltA.alliancesMatched['a' + rsltM.allianceInfo.allianceId] = { allianceId: rsltM.allianceInfo.allianceId, allianceName: rsltM.allianceInfo.allianceName, membersCount: rsltM.allianceInfo.members, relation: null, might: rsltM.allianceInfo.might, ranking: rsltM.allianceInfo.ranking }; ++rsltA.count; } notify(rsltA); } var params = uW.Object.clone(uW.g_ajaxparams); params.allianceName = allianceName; new MyAjaxRequest(uW.g_ajaxpath + "ajax/allianceGetSearchResults.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (myAid != null && myAid > 0) t.fetchMyAllianceInfo(function (r) { combineResults(rslt, r, notify) }); else notify(rslt); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, fetchOtherAllianceInfo: function (pageNum, notify) { // as in alliance list, sorted by rank, 10 per page var params = uW.Object.clone(uW.g_ajaxparams); params.pageNo = pageNum; params.cityId = uW.currentcityid; new MyAjaxRequest(uW.g_ajaxpath + "ajax/allianceGetOtherInfo.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { notify(rslt); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, fetchMyAllianceInfo: function (notify) { var params = uW.Object.clone(uW.g_ajaxparams); new MyAjaxRequest(uW.g_ajaxpath + "ajax/allianceGetInfo.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { notify(rslt); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, fetchPlayerList: function (name, notify) { // at least 3 chars!! var params = uW.Object.clone(uW.g_ajaxparams); params.searchName = name; params.subType = "ALLIANCE_INVITE"; new MyAjaxRequest(uW.g_ajaxpath + "ajax/searchPlayers.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { notify(rslt); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, fetchPlayerInfo: function (uid, notify) { var params = uW.Object.clone(uW.g_ajaxparams); params.uid = uid; new MyAjaxRequest(uW.g_ajaxpath + "ajax/getUserGeneralInfo.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { notify(rslt); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, /*** ajax/getOnline.php: (string) ok = true (object) data = [object Object] (boolean) 4394121 = false (undefined) errorMsg: null = null ***/ fetchPlayerStatus: function (uidArray, notify) { var params = uW.Object.clone(uW.g_ajaxparams); params.checkArr = uidArray.join(','); new MyAjaxRequest(uW.g_ajaxpath + "ajax/getOnline.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { notify(rslt); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, fetchPlayerLastLogin: function (uid, notify) { var params = uW.Object.clone(uW.g_ajaxparams); params.pid = uid; new MyAjaxRequest(uW.g_ajaxpath + "ajax/viewCourt.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { new Sendcourtdata(rslt); notify(rslt); }, onFailure: function (rslt) { notify({ errorMsg: 'AJAX error' }); }, }); }, gotPlayerLastLogin: function (rslt, span) { var t = Tabs.AllianceList; if (!rslt.ok) { span.innerHTML = rslt.errorMsg; return; } var p = rslt.playerInfo; var lastLogin = rslt.playerInfo.lastLogin; if (lastLogin) { m = '' + uW.g_js_strings.modal_messages_viewreports_view.lastlogin + ': ' + lastLogin + ''; } else { m = 'No login date found: ' + lastLogin + ''; } span.innerHTML = m + ''; }, ModelCity: {}, estETA: function (dist) { // Need Relief Station Levels to estimate transport, reinf, or reassign times. var t = Tabs.AllianceList; var ret = { ETA: 0, etaStr: 'NA', friendETA: 0, friendEtaStr: 'NA' }; var cityID; if (dist <= 0) return ret; var EtaType = document.getElementById('idFindETASelect'); var baseSpeedSel = EtaType.options[EtaType.selectedIndex].value; var m = baseSpeedSel.split(','); var horse = 0; var baseSpeed = 0; if (m) { horse = parseInt(m[0]); baseSpeed = parseInt(m[1]); } if (baseSpeed == 0) return ret; var mmLvl = parseInt(Seed.tech.tch11); //Magical Mapping var Speed = 0; if (horse) { //HorsesSiegeSpeed = Base * (1 + MM/10) * (1 + AH/20) var hsLvl = parseInt(Seed.tech.tch12); //Alloy Horse Shoes Speed = baseSpeed * (1 + mmLvl / 10.0) * (1 + hsLvl / 20.0); } else { //FootSpeed = Base * (1 + MM/10) Speed = baseSpeed * (1 + mmLvl / 10.0); } //Grid Speed (tiles/second) = Speed (100ths/min) / 6000 var gSpeed = 0; var estSec; if (Speed > 0) { gSpeed = Speed / 6000.0; //0.48333 mm=10, hs=9 estSec = (parseFloat(dist) / gSpeed).toFixed(0); } ret.ETA = (parseInt((estSec + '')) + 30); ret.etaStr = timestr(ret.ETA, 1); //ret.etaStr = ret.ETA + ', ' + timestr (ret.ETA,1); //RS - Cities Relief Station Level //Friendly Speed = Speed * (1 + RS/2) if (t.ModelCity) { cityID = t.ModelCity.id; var building = getCityBuilding(cityID, 18); if (building) { fSpeed = Speed * (1 + parseInt(building.maxLevel) / 2); gSpeed = fSpeed / 6000; estSec = (dist / gSpeed).toFixed(0); ret.friendETA = parseInt((estSec + '')) + 30; ret.friendEtaStr = timestr((ret.friendETA + ''), 1); } } return ret; }, JumpCity: function (city) { var t = Tabs.AllianceList; for (i = 0; i < Seed.cities.length; i++) { if (Seed.cities[i][1] == city) var cityNum = i; } cityNum++; var obj = document.getElementById('citysel_' + cityNum); return t.ClickWin(window, obj, 'click'); }, ClickWin: function (win, obj, evtName) { var evt = win.document.createEvent("MouseEvents"); evt.initMouseEvent(evtName, true, true, win, 0, 0, 0, 0, 0, false, false, false, false, 0, null); return !obj.dispatchEvent(evt); }, }; /*********************************** Test TAB ***********************************/ Tabs.Test = { tabOrder: 100, tabDisabled: !ENABLE_TEST_TAB, cont: null, init: function (div) { var t = Tabs.Test; t.cont = div; var citySelect = ' '; var m = '\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
    Scout:
    Wild:
    False Report:
    Seconds:
    # of Supply:
    # of Militia:
    # of Scouts:
    # of Pikes:
    # of Swords:
    # of Archers:
    # of Calvary:
    # of Heavy Cav:
    # of Wagons:
    # of Ballistas:
    # of Battering Ram:
    # of Catapults:
    # of Bloodthorns:
    # of Executioners:
    # of Siege Walls:
    # of Flame Archers:
    # of Hussars:
    # of Halberdiers:
    # of Onagers:
    Fake name to use:
    Target city: ' + citySelect + '
    \ \
    '; t.cont.innerHTML = m; document.getElementById('testSendMarch').addEventListener('click', t.clickFakeAttack, false); document.getElementById('ptReloadKOC').addEventListener('click', t.reloadKOC, false); function xyNotify(city, x, y) { var m = '[ Notified: ' + (city ? city.name : 'null') + ', x=' + x + ', y=' + y + ' ]'; document.getElementById('testNotify').innerHTML = m; } }, hide: function () {}, show: function () {}, reloadKOC: function () { var goto = 'https://apps.facebook.com/kingdomsofcamelot/?s=' + GetServerId(); var t = '
    '; var e = document.createElement('div'); e.innerHTML = t; document.body.appendChild(e); setTimeout(function () { document.getElementById('xxptButReload').click(); }, 0); }, writeDiv: function (msg) { var t = Tabs.Test; if (t.state != null) document.getElementById('testDiv').innerHTML = msg; }, addDiv: function (msg) { var t = Tabs.Test; if (t.state != null) document.getElementById('testDiv').innerHTML += msg; }, createFakeAttack: function (cityNum, isScout, isWild, isFalse, secs, troops, name) { var marchId = 'm' + (88888 + Math.floor(Math.random() * 11111)); var march = {}; if (matTypeof(Seed.queue_atkinc) == 'array') Seed.queue_atkinc = {}; if (isFalse) march.marchType = 0; else if (isScout) march.marchType = 3; else march.marchType = 4; march.toCityId = Cities.cities[cityNum].id; if (isWild) { keys = uW.Object.keys(Seed.wilderness['city' + Cities.cities[cityNum].id]); march.toTileId = Seed.wilderness['city' + Cities.cities[cityNum].id][keys[0]].tileId; } else { march.toTileId = Cities.cities[cityNum].tileId; } secs = parseInt(secs); march.arrivalTime = unixTime() + secs; march.departureTime = unixTime() - 10; march.unts = {} var unitsarr = []; for (j in unsafeWindow.unitcost) unitsarr.push(0); for (i = 0; i < unitsarr.length; i++) { if (troops[i] > 0) if (i < 18) march.unts["u" + (i + 1)] = addCommas(troops[i]); else march.unts["u" + (i + 3)] = addCommas(troops[i]); } march.pid = 1234567; march.score = 9; march.mid = marchId.substr(1); march.players = {} march.players.u1234567 = {} march.players.u1234567.n = name; march.players.u1234567.t = 60; march.players.u1234567.m = 5441192; march.players.u1234567.s = 'M'; march.players.u1234567.w = 1; march.players.u1234567.a = 1; march.players.u1234567.i = 5; Seed.queue_atkinc[marchId] = march; Seed.players.u1234567 = march.players.u1234567; }, clickFakeAttack: function () { var t = Tabs.Test; var isScout = document.getElementById('fakeIsScout').checked; var isWild = document.getElementById('fakeIsWild').checked; var isFalse = document.getElementById('fakeFalse').checked; var troops = []; var unitsarr = []; for (j in unsafeWindow.unitcost) unitsarr.push(0); for (i = 0; i < unitsarr.length; i++) troops[i] = parseInt(document.getElementById('faketroop' + i).value); var secs = parseInt(document.getElementById('fakeSeconds').value); var name = document.getElementById('fakeName').value; var city = document.getElementById('fakeCity').value; t.createFakeAttack(city, isScout, isWild, isFalse, secs, troops, name); }, } /*********************************** Info tab ***********************************/ Tabs.Info = { tabOrder: 20, tabLabel: document.getElementById('mod_views_map').innerHTML, cont: null, init: function (div) { var t = Tabs.Info; t.cont = div; fortmight = { u53: "4", u55: "7", u60: "1", u61: "2", u62: "3", }; var t = Tabs.Info; var m = '
    PROVINCE MAP
    '; m += '
    DISTANCE CALCULATOR
    \ \ \
    Plot coords on map.
    First Location: X: Y: Or, choose city:
    Second Location: X: Y: Or, choose city:
    \
    \
    '; t.cont.innerHTML = m + '
    '; for (var c = 0; c < Cities.numCities; c++) t.makeCityImg(c, document.getElementById('ptProvMap')); new CdispCityPicker('ptloc1', document.getElementById('ptloc1'), true, t.eventLocChanged, 0).bindToXYboxes(document.getElementById('calcX'), document.getElementById('calcY')); new CdispCityPicker('ptloc2', document.getElementById('ptloc2'), true, t.eventLocChanged, 0).bindToXYboxes(document.getElementById('calcX2'), document.getElementById('calcY2')); t.eventLocChanged(Cities.cities[0], Cities.cities[0].x, Cities.cities[0].y); document.getElementById('plot').addEventListener('change', function () { t.plotCityImg(0, document.getElementById('ptProvMap'), document.getElementById('calcX').value, document.getElementById('calcY').value); t.plotCityImg(1, document.getElementById('ptProvMap'), document.getElementById('calcX2').value, document.getElementById('calcY2').value); }, false); }, hide: function () {}, show: function () {}, // var provMapCoords = {imgWidth:680, imgHeight:654, mapWidth:595, mapHeight:595, leftMargin:44, topMargin:39}; makeCityImg: function (cityNum, eMap) { //logit ('makeCityImg: '+ cityNum); var t = Tabs.Info; var city = Cities.cities[cityNum]; // var off = getAbsoluteOffsets (eMap); var x = parseInt((provMapCoords.mapWidth * city.x) / 750); var y = parseInt((provMapCoords.mapHeight * city.y) / 750); var ce = document.createElement('div'); ce.style.background = 'black'; ce.style.opacity = '1.0'; ce.style.position = 'relative'; ce.style.display = 'block'; ce.style.width = '14px'; ce.style.height = '16px'; ce.style.border = '1px solid #fff'; ce.style.color = 'white'; ce.style.textAlign = 'center'; ce.style.top = (y + provMapCoords.topMargin - (cityNum * 16) - 8) + 'px'; ce.style.left = (x + provMapCoords.leftMargin - 7) + 'px'; eMap.appendChild(ce); ce.innerHTML = (cityNum + 1) + ''; }, plotCityImg: function (cityNum, eMap, x, y) { //logit ('makeCityImg: '+ cityNum); var t = Tabs.Info; var xplot = parseInt((provMapCoords.mapWidth * x) / 750); var yplot = parseInt((provMapCoords.mapHeight * y) / 750); if (document.getElementById('plotmap_' + cityNum) == null) { var ce = document.createElement('div'); ce.style.background = 'white'; ce.id = 'plotmap_' + cityNum; ce.style.opacity = '1.0'; ce.style.position = 'relative'; ce.style.display = 'block'; ce.style.width = '14px'; ce.style.height = '16px'; ce.style.border = '1px solid #fff'; ce.style.color = 'black'; ce.style.textAlign = 'center'; } else { ce = document.getElementById('plotmap_' + cityNum); } ce.style.top = (yplot + provMapCoords.topMargin - ((Cities.numCities + cityNum) * 16) - 8) + 'px'; ce.style.left = (xplot + provMapCoords.leftMargin - 7) + 'px'; eMap.appendChild(ce); ce.innerHTML = (cityNum + 1) + ''; }, eventLocChanged: function (city, x, y) { var t = Tabs.Info; var x1 = parseInt(document.getElementById('calcX').value); var x2 = parseInt(document.getElementById('calcX2').value); if (isNaN(x2)) return; var y1 = parseInt(document.getElementById('calcY').value); var y2 = parseInt(document.getElementById('calcY2').value); var m = 'The distance from ' + x1 + ',' + y1 + ' to ' + x2 + ',' + y2 + ' is:  ' + distance(x1, y1, x2, y2).toFixed(2) + ''; document.getElementById('ptdistout').innerHTML = m; if (document.getElementById('plot').checked) { t.plotCityImg(0, document.getElementById('ptProvMap'), x1, y1); t.plotCityImg(1, document.getElementById('ptProvMap'), x2, y2); } }, } /*********************************** Options Tab ***********************************/ Tabs.Options = { tabOrder: 40, tabLabel: 'Options', cont: null, curTabBut: null, curTabName: null, fixAvailable: {}, refreshTimer: null, AscensionTimer: null, init: function (div) { var t = Tabs.Options; t.cont = div; var main = ''; main += '

    '; main += 'HELP'; main += '
    '; t.cont.innerHTML = main; t.Overv = document.getElementById('ptOptOutput'); document.getElementById('ptmrchSubU').addEventListener('click', e_butSubtab, false); document.getElementById('ptmrchSubV').addEventListener('click', e_butSubtab, false); changeSubtab(document.getElementById('ptmrchSub' + Options.curOptTab)); function e_butSubtab(evt) { changeSubtab(evt.target); } function changeSubtab(but) { if (but == t.curTabBut) return; if (t.curTabBut) { t.curTabBut.className = 'pbSubtab'; t.curTabBut.disabled = false; } t.curTabBut = but; but.className = 'pbSubtab pbSubtabSel'; but.disabled = true; t.curTabName = but.id.substr(9); Options.curOptTab = t.curTabName; t.show(); } }, SetOptions: function () { var t = Tabs.Options; try { m = ''; m += ''; m += ''; m += ''; m += ''; // m+=''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += '
    Config:
    Enable window drag (move window by dragging top bar with mouse)
    Hide window when clicking on map coordinates.
    Show \'food left\' in RED if food will run out in less than'; m += ' hours, does NOT affect the food alert anymore!
    Enable Tower food alert. (Warning set to 6 hours, checked every 30min.)
    Disabled Tower food alert in Power Tools - instead, use the Power Bot function.
    Enable sound alert on whisper' + htmlSelector({ whisper: 'arrow', whisper2: 'doorbell' }, Options.whisperplay, 'id=ptwhisplay') + '
    Enable sound alert on tower alert in chat
    Check updates on ' + htmlSelector({ 0: 'Userscripts', 1: 'Google Code' }, GlobalOptions.ptupdatebeta, 'id=ptupdatebeta') + ' (all domains)    
    Refresh data/marches every '; m += ' minutes

    KofC Features:
    Enable enhanced Alliance Reports.
    Allow other scripts to change format of Alliance Reports.
    Enable enhanced alliance members view.
    Enhanced page navigation for messages and reports.
    Enable GMT clock next to "Camelot Time"
    Enable target city picker in attack dialog (reinforce, reassign and transport)
    Display # of rounds in battle reports
    Enable delete button when displaying battle report
    Enable delete gifts report button in inbox
    Display Province and Truce Status in map tooltips
    Enable enhanced city buttons
    Enable hide/defend by double clicking city icon
    Enable color icon for city type (refresh required)
    Highlight when Ascension Protection will expire within '; m += ' hours

    KofC Bug Fixes:
    Fix tower report to show exact target (city, wild or invalid)
    Do not automatically select a knight when changing march type to scout, transport or reassign
    Keep map coordinate box/bookmarks on top of troop activity
    Fix reassign button on maptile info
    Add reassign button when clicked on own city
    Include player name / city name in new bookmarks
    Fix march size calculation in march screen
    Limit load capacity to not exceed throne room load cap
    Fix revival time calculator (not working for max button clicked)
    Fix display of aetherstones for throne room upgrade/enhance
    Post correct image to facebook for Merlin Box
    Always show local time on chat posts
    Disable Multi-Browser check v2 (experimental)
    Fix stuck raid marches (experimental)
    Rearrange throne room furniture for better visibility (needs refresh)
    Restore double click map tile

    Auto Training:
    minutes between auto-training.



    Note that if a checkbox is greyed out there has probably been a change of KofC\'s code, rendering the option inoperable.'; t.Overv.innerHTML = m; t.togOpt('ptEnableFoodWarn', 'enableFoodWarn'); t.togOpt('ptEnableFoodTower', 'enableFoodTower'); t.togOpt('ptEnableWisperAlert', 'enableWhisperAlert'); t.togOpt('ptEnableTowerAlert', 'enableTowerAlert'); t.togOpt('ptHideOnGoto', 'hideOnGoto'); t.togOpt('ptAllowWinMove', 'ptWinDrag', mainPop.setEnableDrag); t.togOpt('togAllowAlter', 'allowAlterAR'); t.togOpt('togAllRpts', 'enhanceARpts', AllianceReports.enable); t.togOpt('togAllMembers', 'enhanceViewMembers', AllianceReports.enable_viewmembers); t.togOpt('togTowerFix', 'fixTower', TowerAlerts.enableFixTarget, TowerAlerts.isFixTargetAvailable); t.togOpt('togPageNav', 'fixPageNav', PageNavigator.enable, PageNavigator.isAvailable); t.togOpt('togGmtClock', 'gmtClock', GMTclock.setEnable); t.togOpt('togKnightSelect', 'fixKnightSelect', AttackDialog.setEnable, AttackDialog.isKnightSelectAvailable); t.togOpt('togAttackPicker', 'attackCityPicker', AttackDialog.setEnable, AttackDialog.isCityPickerAvailable); t.togOpt('togRptGift', 'enhancedinbox', DispReport.setEnable, DispReport.isDispReportAvailable); t.togOpt('togCV', 'EnhCBtns', t.e_WarnAscensionChanged); t.togOpt('togDbClkDef', 'DbClkDefBtns'); t.togOpt('togColrCty', 'ColrCityBtns'); t.togOpt('togCoordBox', 'mapCoordsTop', CoordBox.setEnable, CoordBox.isAvailable); t.togOpt('togMapInfo', 'mapInfo', mapinfoFix.setEnable, mapinfoFix.isAvailable); t.togOpt('togMapInfo2', 'mapInfo2', mapinfoFix.setEnable2, mapinfoFix.isAvailable2); t.togOpt('togMapInfo3', 'mapInfo3', mapinfoFix.setEnable3, mapinfoFix.isAvailable3); t.togOpt('togMapInfo4', 'dispStatus', mapinfoFix.setEnableDispStatus, mapinfoFix.isAvailableDispStatus); t.togOpt('togMarchUnits', 'fixMarchUnits', MarchUnitsFix.setEnable, MarchUnitsFix.isAvailable); t.togOpt('togLoadCapFix', 'fixLoadCap', LoadCapFix.setEnable, LoadCapFix.isAvailable); t.togOpt('togApothTimeFix', 'fixApothTime', ApothTimeFix.setEnable, ApothTimeFix.isAvailable); t.togOpt('togTRAetherCostFix', 'fixTRAetherCost', TRAetherCostFix.setEnable, TRAetherCostFix.isAvailable); t.togOpt('togMMBImageFix', 'fixMMBImage', mmbImageFix.setEnable, mmbImageFix.isAvailable); t.togOpt('togChatTimeFix', 'fixChatTime', ChatTimeFix.setEnable, ChatTimeFix.isAvailable); t.togOpt('togBatRounds', 'dispBattleRounds', null, battleReports.isRoundsAvailable); t.togOpt('togAtkDelete', 'reportDeleteButton', null, battleReports.isRoundsAvailable); t.togOpt('togAllowMulti', 'allowMultiBroswer', bypassMulti.setEnable, bypassMulti.isAvailable); t.togOpt('togRaidPatch', 'raidPatch', BarbRaidMarchPatch.setEnable, BarbRaidMarchPatch.isAvailable); t.togOpt('MoveFurnitureChk', 'MoveFurniture'); t.togOpt('togMapDblClickFix', 'fixMapDblClick', MapDoubleClickFix.setEnable, MapDoubleClickFix.isAvailable); document.getElementById('ptupdate').addEventListener('change', t.e_updateChanged, false); document.getElementById('ptEnableMiniRefresh').addEventListener('change', t.e_miniRefreshChanged, false); document.getElementById('ptWarnAscension').addEventListener('change', t.e_WarnAscensionChanged, false); document.getElementById('ptupdatebeta').addEventListener('change', function () { GlobalOptions.ptupdatebeta = document.getElementById('ptupdatebeta').value; GM_setValue('Options_??', JSON2.stringify(GlobalOptions)); }, false); document.getElementById('ptwhisplay').addEventListener('change', function () { Options.whisperplay = this.value; saveOptions(); }, false); document.getElementById('ptupdatenow').addEventListener('click', function () { AutoUpdater_116541.call(true, true); }, false); document.getElementById('optFoodHours').addEventListener('change', function () { var x = document.getElementById('optFoodHours').value; if (isNaN(x) || x < 0.01 || x > 99999) { document.getElementById('optFoodHours').value = Options.foodWarnHours; return; } Options.foodWarnHours = x; saveOptions(); }, false); document.getElementById('optMiniRefreshIntvl').addEventListener('change', function () { var x = document.getElementById('optMiniRefreshIntvl').value; if (isNaN(x) || x < 2 || x > 999) { document.getElementById('optMiniRefreshIntvl').value = Options.miniRefreshIntvl; return; } Options.miniRefreshIntvl = x; saveOptions(); }, false); document.getElementById('ptWarnAscensionInterval').addEventListener('change', function () { var x = document.getElementById('ptWarnAscensionInterval').value; if (isNaN(x) || x < 1 || x > 999) { document.getElementById('ptWarnAscensionInterval').value = Options.WarnAscensionInterval; return; } Options.WarnAscensionInterval = x; saveOptions(); }, false); if (Options.EnhCBtns && Options.WarnAscension) { Tabs.Options.checkAscension(); clearInterval(t.WarnAscensionTimer); t.WarnAscensionTimer = setInterval(function () { Tabs.Options.checkAscension(); }, 60 * 1000); } document.getElementById('optAutoTrainMins').addEventListener('change', function () { AutoTrainOptions.intervalSecs = 60 * document.getElementById('optAutoTrainMins').value; saveAutoTrainOptions(); }, false); if (Options.miniRefresh) { clearInterval(t.refreshTimer); t.refreshTimer = setInterval(function () { Tabs.Options.updateAll(); }, Options.miniRefreshIntvl * 60 * 1000); } } catch (e) { new CdialogCancelContinue('
    ' + e + '
    ', null, null, true); t.Overv.innerHTML = '
    ' + e + '
    '; } }, Layout: function () { var t = Tabs.Options; try { m = ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += ''; m += '
    Chat Layout:
    Enable Chat Enable Chat enhancements (clickable coords, click on icon to whisper, colors).
    Enable Global chat background color.
    Enable Alliance chat background color.
    Enable Whisper in Color Font.
    Enable Chat in Bold Font.
    Enable background color on tower alert.
    Enable background for alliance Leaders.
    Enable facebook profile pictures in chat instead of kabam avatars. (NEW)
    '; m += '
    '; m += ' '; m += ' '; m += ' '; m += ' '; m += ' '; m += ' '; m += ' '; m += ' '; m += ' '; m += ' '; m += ''; m += '
    Colors:  (Refresh for effect)
    Chat Color - Global:  
    Chat Color - Alliance:  
    Chat Color - Tower Alert:  
    Chat Color - Whisper Alert:  
    Chat Color - Chancy:  
    Chat Color - Vice-C:  
    Chat Color - Officers:  
    General - Dark Row:  
    General - Button Selected:  
    Overview - Dark Rows: 
    Transparency:  (0.7 - 2)


    HTML colors:   '; m += 'Color Picker   /   '; m += 'Colors'; m += '


    To apply colors you need to REFRESH!
    '; m += strButton20('Reset Colors', 'id=ResetALL'); t.Overv.innerHTML = m; t.togOpt('togChatStuff', 'chatEnhance', ChatStuff.setEnable, ChatStuff.isAvailable); t.togOpt('togChatGlobal', 'chatglobal'); t.togOpt('togChatAlliance', 'chatalliance'); t.togOpt('togChatWhisper', 'chatwhisper'); t.togOpt('togChatBold', 'chatbold'); t.togOpt('togChatAttack', 'chatAttack'); t.togOpt('togChatLead', 'chatLeaders'); t.togOpt('togChatIcon', 'ChatIcons'); document.getElementById('togGlobal').addEventListener('change', function () { Colors.ChatGlobal = document.getElementById('togGlobal').value; t.Layout() }, false); document.getElementById('togChatLeaders').addEventListener('change', function () { Colors.ChatLeaders = document.getElementById('togChatLeaders').value; t.Layout() }, false); document.getElementById('togChatC').addEventListener('change', function () { Colors.ChatChancy = document.getElementById('togChatC').value; t.Layout() }, false); document.getElementById('togChatVC').addEventListener('change', function () { Colors.ChatVC = document.getElementById('togChatVC').value; t.Layout() }, false); document.getElementById('togDarkRow').addEventListener('change', function () { Colors.DarkRow = document.getElementById('togDarkRow').value; t.Layout() }, false); document.getElementById('togButClick').addEventListener('change', function () { Colors.ButtonSelected = document.getElementById('togButClick').value; t.Layout() }, false); document.getElementById('togOverDarkRow').addEventListener('change', function () { Colors.OverviewDarkRow = document.getElementById('togOverDarkRow').value; t.Layout() }, false); document.getElementById('togAll').addEventListener('change', function () { Colors.ChatAll = document.getElementById('togAll').value; t.Layout() }, false); document.getElementById('togChatAtt').addEventListener('change', function () { Colors.ChatAtt = document.getElementById('togChatAtt').value; t.Layout() }, false); document.getElementById('togWhisper').addEventListener('change', function () { Colors.ChatWhisper = document.getElementById('togWhisper').value; t.Layout() }, false); document.getElementById('togOpacity').addEventListener('change', function () { Colors.Opacity = document.getElementById('togOpacity').value; t.Layout() }, false); document.getElementById('ResetALL').addEventListener('click', function () { RemoveList = (GM_listValues()); for (i = 0; i < RemoveList.length; i++) { if (RemoveList[i] == "Colors") GM_deleteValue(RemoveList[i]); } ResetColors = true; reloadKOC(); }, false); } catch (e) { new CdialogCancelContinue('
    ' + inspect(e, 3, 1) + '
    ', null, null, true); t.cont.innerHTML = '
    ' + e.name + ' : ' + e.message + '
    '; } }, hide: function () {}, show: function () { var t = Tabs.Options; if (t.curTabName == 'U') t.SetOptions(); else if (t.curTabName == 'V') t.Layout(); }, togOpt: function (checkboxId, optionName, callEnable, callIsAvailable) { var t = Tabs.Options; var checkbox = document.getElementById(checkboxId); if (callIsAvailable && callIsAvailable() == false) { checkbox.disabled = true; return; } if (Options[optionName]) checkbox.checked = true; checkbox.addEventListener('change', new eventToggle(checkboxId, optionName, callEnable).handler, false); function eventToggle(checkboxId, optionName, callOnChange) { this.handler = handler; var optName = optionName; var callback = callOnChange; function handler(event) { Options[optionName] = this.checked; saveOptions(); if (callback != null) callback(this.checked); } } }, e_updateChanged: function () { GlobalOptions.ptupdate = document.getElementById('ptupdate').checked; GM_setValue('Options_??', JSON2.stringify(GlobalOptions)); }, e_miniRefreshChanged: function () { Options.miniRefresh = document.getElementById('ptEnableMiniRefresh').checked; saveOptions(); clearInterval(t.refreshTimer); if (Options.miniRefresh) { Tabs.Options.updateAll(); t.refreshTimer = setInterval(function () { Tabs.Options.updateAll(); }, Options.miniRefreshIntvl * 60 * 1000); } }, e_WarnAscensionChanged: function () { Options.WarnAscension = document.getElementById('ptWarnAscension').checked; saveOptions(); clearInterval(t.WarnAscensionTimer); if (Options.EnhCBtns && Options.WarnAscension) { t.WarnAscensionTimer = setInterval(function () { Tabs.Options.checkAscension(); }, 60 * 1000); // every min? } Tabs.Options.checkAscension(); }, checkAscension: function () { logit('checking ascension...'); var t = Tabs.Options; for (i = 0; i < uW.seed.cities.length; i++) { var cityidx = i + 1; var city = document.getElementById('citysel_' + cityidx); if (!city) { setTimeout(t.checkAscension, 2000); return; } if (!Options.WarnAscension || !Options.EnhCBtns) { uW.jQuery('#citysel_' + cityidx).removeClass('city_warning'); } else { var cityExpTime = uW.seed.cityData.city[uW.seed.cities[i][0]].prestigeInfo.prestigeBuffExpire; if (!isNaN(cityExpTime) && (cityExpTime >= unixTime()) && ((cityExpTime - unixTime()) <= (Options.WarnAscensionInterval * 3600))) { if (uW.jQuery('#citysel_' + cityidx).hasClass('city_unselected')) { uW.jQuery('#citysel_' + cityidx).addClass('city_warning'); } } else { uW.jQuery('#citysel_' + cityidx).removeClass('city_warning'); } } } }, // This function grabs a fresh copy of the main_src and replaces the seed variable with the returned data. // This refreshes the data without a full web page refresh. updateAll: function () { // stop update_seed_ajax while this is happening. This is a kabam indicator (but it does still fire on a cancel training.. who knows why they've done it like that) uW.g_update_seed_ajax_do = true; //potential fix for missing troop recalls: true flag forces troop march update //unsafeWindow.update_seed_ajax(true); // update the timestamps var ts = (new Date().getTime() / 1000) + uW.g_timeoff; var cts = parseInt((ts - 25.1) * 1000); var upd = window.self.location.href; upd = upd.replace(/ts=\d*\.\d+/, "ts=" + ts); upd = upd.replace(/cts=\d*/, "cts=" + cts); //logit("Request: " + upd); var params = uW.Object.clone(uW.g_ajaxparams); new AjaxRequest( upd, { method: "POST", parameters: params, onSuccess: function (rslt) { // let update_seed_ajax run again in game uW.g_update_seed_ajax_do = false; var mainSrcHTMLCode = rslt.responseText; var myregexp = /var seed=\{.*?\};/; var match = myregexp.exec(mainSrcHTMLCode); if (match != null) { //logit("found match"); result = match[0]; result = result.substr(4); var seed2 = eval(result); for (jj in seed2) { if (jj != 'resources') if (seed2.hasOwnProperty(jj)) { Seed[jj] = seed2[jj]; } } // delete Seed.ss; for (var o = 0; o < Seed.cities.length; o++) { var n = Seed.cities[o][0]; Seed.citystats["city" + n].pop[0] = parseInt(Seed.citystats["city" + n].pop[0]); Seed.citystats["city" + n].pop[1] = parseInt(Seed.citystats["city" + n].pop[1]); Seed.citystats["city" + n].pop[2] = parseInt(Seed.citystats["city" + n].pop[2]); Seed.citystats["city" + n].gold[0] = parseInt(Seed.citystats["city" + n].gold[0]); Seed.citystats["city" + n].gold[1] = parseInt(Seed.citystats["city" + n].gold[1]); Seed.newTradeReports = parseInt(Seed.newTradeReports); for (var m = 1; m < 5; m++) { Seed.resources["city" + n]["rec" + m][0] = parseInt(Seed.resources["city" + n]["rec" + m][0]); Seed.resources["city" + n]["rec" + m][1] = parseInt(Seed.resources["city" + n]["rec" + m][1]); Seed.resources["city" + n]["rec" + m][2] = parseInt(Seed.resources["city" + n]["rec" + m][2]); Seed.resources["city" + n]["rec" + m][3] = parseInt(Seed.resources["city" + n]["rec" + m][3]); } var b = Seed.queue_con["city" + n]; var d = unsafeWindow.Object.keys(Seed.buildings["city" + n]); for (var h = 0; h < b.length; h++) { for (var m = 0; m < d.length; m++) { if (Seed.buildings["city" + n][d[m]][3] == b[h][2]) { b[h][7] = Seed.buildings["city" + n][d[m]][2]; break; } } } } if (Seed.queue_throne.length == 0) { Seed.queue_throne = {} } unsafeWindow.kocThroneItems = {}; unsafeWindow.createThroneItems(); unsafeWindow.cm.ThroneView.renderInventory(unsafeWindow.kocThroneItems); unsafeWindow.seed.player.g = seed_player_g; } }, onFailure: function () { // let update_seed_ajax run again in game uW.g_update_seed_ajax_do = false; logit("ERROR ********: ", inspect(rslt, 3, 1)); if (notify != null) notify(rslt.errorMsg); }, }); }, } /******************* KOC Map interface ****************/ Map = { /*** 0: bog 10: grassland 11: lake 20: woods 30: hills 40: mountain 50: plain 51: city / barb 53: misted city ***/ generateBlockList: function (left, top, width) { var width5 = parseInt(width / 5); var bl = []; for (x = 0; x < width5; x++) { xx = left + (x * 5); if (xx > 745) xx -= 750; for (y = 0; y < width5; y++) { yy = top + (y * 5); if (yy > 745) yy -= 750; bl.push('bl_' + xx + '_bt_' + yy); } } return bl.join(","); }, callback: null, request: function (left, top, width, cb) { if (DEBUG_TRACE) logit(" 1 Map.request(): " + left + ' , ' + top + ' , ' + width); left = parseInt(left / 5) * 5; top = parseInt(top / 5) * 5; width = parseInt((width + 4) / 5) * 5; var blockString = this.generateBlockList(left, top, width); Map.callback = cb; if (uW.SANDBOX) return RequestMAPTEST(left, top, width, callback); var params = uW.Object.clone(uW.g_ajaxparams); params.blocks = blockString; new MyAjaxRequest(uW.g_ajaxpath + "ajax/fetchMapTiles.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (DEBUG_TRACE) logit(" 2 Map.request Map = " + inspect(Map, 2, 1, 2)); Map.callback(left, top, width, rslt); }, onFailure: function (rslt) { Map.callback(left, top, width, rslt); } }); }, }; /*************************************** Train Tab ***********************************************/ Tabs.Train = { tabOrder: 15, tabLabel: uW.g_js_strings.commonstr.train, cont: null, timer: null, stats: {}, selectedCity: {}, cityNum: 0, trainTimer: null, running: false, gamble: { "1": { "min": "5", "max": "15", "cost": "2" }, "2": { "min": "10", "max": "25", "cost": "4" } }, nextAuto: null, defenseOptions: "", prevCityNo: 0, init: function (div) { var t = Tabs.Train; t.cont = div; uW.cancelTrain = t.butcancelTrain; uW.cancelFort = t.butcancelFort; s = "
    \
    " + uW.g_js_strings.modal_openBarracks.trainttl + " & " + uW.g_js_strings.modal_openWalls.builddefenses + "
    \
    \
    " + uW.g_js_strings.commonstr.city + ":  
    \
    \ \ \ \ \ \ \ \ \
    " + uW.g_js_strings.modal_messages_viewdesertionreports.trooptypes + ": \   (" + uW.g_js_strings.commonstr.max + " )
    " + uW.g_js_strings.modal_barracks_train.numtotrain + ":   (\ " + uW.g_js_strings.commonstr.max + " 0)
    " + uW.buildingcost.bdg13[0] + ":  \ (" + uW.g_js_strings.commonstr.max + " 1)
    \ " + uW.g_js_strings.commonstr.use + " " + uW.g_js_strings.commonstr.workers + "\
    \

    \
    \ \ \ \ \ \ \ \ \ \ \ \
    " + uW.g_js_strings.modal_openWalls.builddefenses + ": \   ()
    " + uW.g_js_strings.modal_walls_train.numdefbuild + ":   (" + uW.g_js_strings.commonstr.max + "\ 0)
    " + uW.g_js_strings.commonstr.space + "(" + uW.buildingcost.bdg19[0] + "):   (\ " + uW.g_js_strings.commonstr.max + " 1)
    Max Traps (Min=1 Max=5)
    Max Caltraps (Min=1 Max=5)
    Max Spikes (Min=1 Max=5)
    Max Xbows (Min=1 Max=5)
    \
    \
    \
    \
    \
    \ \ \ \ "; t.cont.innerHTML = s; t.clickCitySelect; if (document.getElementById('ptttInpPS').value != "") t.dispTroopTrainTimes(); document.getElementById('ptttInpPS').addEventListener('keyup', function () { if (document.getElementById('ptttInpPS').value != "") { t.dispTroopTrainTimes(); } else { document.getElementById('ptttInpPS').value = "0" t.dispTroopTrainTimes(); } }); document.getElementById('ptttType').addEventListener('change', function () { if (document.getElementById('ptttInpPS').value > 0) { t.dispTroopTrainTimes(); } t.lastQueString = null; t.displayCityStats(); }); t.TTspMax = document.getElementById('ptttSpMax'); t.TTspMaxPS = document.getElementById('ptttSpMaxPS'); t.TTspMaxSlots = document.getElementById('ptttSpMaxSlots'); t.TTbutMaxSlots = document.getElementById('ptttButMaxSlots'); t.TTbutMaxPerSlot = document.getElementById('ptttButMaxPS'); t.TTinpPerSlot = document.getElementById('ptttInpPS'); t.TTinpSlots = document.getElementById('ptttInpSlots'); t.TTselType = document.getElementById('ptttType'); t.TTbutDo = document.getElementById('ptttButDo'); t.TDspMax = document.getElementById('pttdSpMax'); t.TDspMaxPS = document.getElementById('pttdSpMaxPS'); t.TDspMaxSlots = document.getElementById('pttdSpMaxSlots'); t.TDbutMaxSlots = document.getElementById('pttdButMaxSlots'); t.TDbutMaxPerSlot = document.getElementById('pttdButMaxPS'); t.TDinpPerSlot = document.getElementById('pttdInpPS'); t.TDinpSlots = document.getElementById('pttdInpSlots'); t.TDselType = document.getElementById('pttdType'); t.TDbutDo = document.getElementById('pttdButDo'); t.TDspSpace = document.getElementById('pttdSpace'); t.divTrainStatus = document.getElementById('ptTrainStatus'); t.TTinpSlots.addEventListener('change', t.updateTopTroops, false); t.TTbutMaxPerSlot.addEventListener('click', t.clickTroopMaxPS, false); t.TTbutMaxSlots.addEventListener('click', t.clickTroopMaxSlots, false); t.TTselType.addEventListener('change', t.changeTroopSelect, false); t.TTbutDo.addEventListener('click', t.clickTroopDo, false); t.TDinpSlots.addEventListener('change', t.updateTopDef, false); t.TDselType.addEventListener('change', t.changeDefSelect, false); t.TDbutMaxPerSlot.addEventListener('click', t.clickDefMaxPS, false); t.TDbutMaxSlots.addEventListener('click', t.clickDefMaxSlots, false); t.TDbutDo.addEventListener('click', t.clickDefDo, false); var dcp = new CdispCityPicker('ptspeed', document.getElementById('ptspeedcity'), true, t.clickCitySelect, 0); document.getElementById('chkPop').addEventListener('change', t.clickCheckIdlePop, false); document.getElementById('chkDoTraps').addEventListener('change', t.clickCheckDoTraps, false); document.getElementById('chkDoCaltrops').addEventListener('change', t.clickCheckDoCaltrops, false); document.getElementById('chkDoSpikes').addEventListener('change', t.clickCheckDoSpikes, false); document.getElementById('chkDoXbows').addEventListener('change', t.clickCheckDoXbows, false); document.getElementById('pttrgamble').addEventListener('change', t.changeTroopSelect, false); document.getElementById('chkPop').addEventListener('change', t.clickCheckIdlePop, false); t.changeTroopSelect(); t.changeDefSelect(); t.doAutoTrain(1); }, dispTroopTrainTimes: function () { var t = Tabs.Train; var TroopTypeID = parseInt(document.getElementById('ptttType').value); var NumOfTroops = parseInt(document.getElementById('ptttInpPS').value); var TroopTime = unsafeWindow.modal_barracks_traintime(TroopTypeID, NumOfTroops); var TroopName = unsafeWindow.unitcost['unt' + TroopTypeID][0]; var TotalTime2x5 = TroopTime * 0.95; var TotalTime2x15 = TroopTime * 0.85; var TotalTime4x10 = TroopTime * 0.9; var TotalTime4x25 = TroopTime * 0.75; var TotalTimeLancelot = TroopTime * 0.7; var TotalTimeArthur = TroopTime * 0.5; var TotalTimeMerlin = TroopTime * 0.3; var TotalTTS = unsafeWindow.cm.ThroneController.effectBonus(77); var baseTime = t.calcBaseTrainTime(TroopTypeID, NumOfTroops); message = '
    \ " + uW.g_js_strings.commonstr.troops + " (" + uW.g_js_strings.modal_openBarracks.trainingttl + ")\   ()

    " + uW.g_js_strings.modal_openWalls.defqueue + "  ()

    '; message += ''; message += ''; message += ''; message += ''; message += ''; message += ''; message += '
    Base Time NO TR: ' + timestr(baseTime, true) + '
    Time with ' + TotalTTS + '% Throne Boost : ' + timestr(TroopTime, true) + '
    Time with Lacelot\'s : ' + timestr(TotalTimeLancelot, true) + '
    Time with Arthur\'s : ' + timestr(TotalTimeArthur, true) + '
    Time with Merlin\'s : ' + timestr(TotalTimeMerlin, true) + '
    Time with 2x Reso : ' + timestr(TotalTime2x15, true) + ' - ' + timestr(TotalTime2x5, true) + '
    Time with 4x Reso : ' + timestr(TotalTime4x25, true) + ' - ' + timestr(TotalTime4x10, true) + '
    '; document.getElementById('pbTroopTimeEst').innerHTML = message; }, calcBaseTrainTime: function (d, f) { var t = Tabs.Train; var cityId = t.selectedCity.id; var uw = unsafeWindow; var c = +(uw.unitcost["unt" + d][7]) * f, e, k = {}, h = uw.seed.buildings["city" + uw.currentcityid], j = {}, l = uw.seed.knights["city" + uw.currentcityid], a, g = uw.seed.leaders["city" + uw.currentcityid]; k.barracks = 0; k.workshop = 0; k.stable = 0; k.tech = 0; k.knight = 0; k.ultimate = 0; unsafeWindow.jQuery.each(h, function (n, m) { m.id = +(m[0]); m.level = +(m[1]); if (d < 13 || d == 16) { if (m.id === 13 && m.level > 0) { k.barracks += (m.level + 9); } } else if (d == 13) { if (m.id === 22 && m.level > 0) { k.barracks += (m.level + 9); } } else if (d == 14) { if (m.id === 24 && m.level > 0) { k.barracks += (m.level + 9); } } else if (d == 15) { if (m.id === 26 && m.level > 0) { k.barracks += (m.level + 9); } } else {} if (m.id === 16 && m.level > 0) { if (+(d) >= 9 && +(d) <= 12) { k.workshop = m.level; } } if (m.id === 17 && m.level > k.stable) { if (+(d) >= 7 && +(d) <= 8) { k.stable = m.level; } } }); e = k.barracks / 10; c = Math.max(1, Math.ceil(c / e)); e = 1; if (l) { a = l["knt" + g.combatKnightId]; if (a) { k.knight = (+(a.combatBoostExpireUnixtime) - uw.unixtime() > 0) ? (a.combat * 1.25) : a.combat; } else { k.knight = 0; } } if (uw.seed.tech) { // k.tech = uw.seed.tech.tch5; k.tech = parseInt(uw.seed.tech.tch5); } k.ultimate = k.workshop + k.stable + k.tech; e = e * (1 + (0.1 * k.ultimate) + (0.005 * k.knight)); if (uw.cm.WorldSettings.isOn("GUARDIAN_MARCH_EFFECT")) { var b = uw.cm.guardianModalModel.getStoneTrainingSpeedBonus(); e = e * (1 + b); } c = Math.max(1, Math.ceil(c / e)); return c; }, calcTRBoosts: function (StatID) { var equipped = Seed.throne.slotEquip[1]; var total = 0; for (var k = 0; k < equipped.length; k++) { var item_id = equipped[k]; var y = unsafeWindow.kocThroneItems[item_id]; for (var O in y["effects"]) { var i = +(O.split("slot")[1]); var id = y["effects"]["slot" + i]["id"]; if (id == StatID) { tier = parseInt(y["effects"]["slot" + i]["tier"]); level = y["level"]; p = unsafeWindow.cm.thronestats.tiers[id][tier]; while (!p && (tier > 0)) { tier--; p = unsafeWindow.cm.thronestats.tiers[id][tier]; } if (!p) continue; // can't find stats for tier if (i <= y["quality"]) var Percent = p.base + ((level * level + level) * p.growth * 0.5); total += Percent; } } } return total; }, hide: function () { var t = Tabs.Train; clearTimeout(t.timer); }, show: function () { var t = Tabs.Train; clearTimeout(t.timer); t.displayCityStats(); t.changeTroopSelect(); t.changeDefSelect(); t.timer = setTimeout(t.show, 2000); }, /******* TROOPS ******/ updateTopTroops: function () { var t = Tabs.Train; var slots = parseInt(t.TTinpSlots.value, 10); if (isNaN(slots) || slots < 0) slots = 0; t.TTspMax.innerHTML = t.stats.MaxTrain; // t.TTspMaxSlots.innerHTML = t.stats.barracks - t.stats.queued; if (t.lastTroopSelect > 12 && t.lastTroopSelect < 16) t.TTspMaxSlots.innerHTML = t.stats.barracks - t.stats.spqueued; else t.TTspMaxSlots.innerHTML = t.stats.barracks - t.stats.queued; // if (slots<1 || (t.stats.barracks-t.stats.queued < 1)) if (slots < 1 || t.TTspMaxSlots.innerHTML < 1) t.TTspMaxPS.innerHTML = 0; else t.TTspMaxPS.innerHTML = parseInt(t.stats.MaxTrain / slots); }, clickTroopMaxPS: function () { var t = Tabs.Train; var slots = parseInt(t.TTinpSlots.value, 10); var queued; if (t.lastTroopSelect > 12 && t.lastTroopSelect < 16) queued = t.stats.spqueued; else queued = t.stats.queued; if (slots < 1 || (t.stats.barracks - queued < 1)) t.TTinpPerSlot.value = 0; else t.TTinpPerSlot.value = parseInt(t.stats.MaxTrain / slots); t.dispTroopTrainTimes(); }, clickTroopMaxSlots: function () { var t = Tabs.Train; if (t.lastTroopSelect > 12 && t.lastTroopSelect < 16) t.TTinpSlots.value = t.stats.barracks - t.stats.spqueued; else t.TTinpSlots.value = t.stats.barracks - t.stats.queued; }, clickCitySelect: function (city) { var t = Tabs.Train; t.selectedCity = city; t.lastQueString = null; t.lastDQueString = null; t.displayCityStats(); t.changeTroopSelect(); t.changeDefSelect(); t.JumpCity(city.name); }, JumpCity: function (city) { var t = Tabs.AllianceList; for (i = 0; i < Seed.cities.length; i++) { if (Seed.cities[i][1] == city) var cityNum = i; } cityNum++; var obj = document.getElementById('citysel_' + cityNum); return t.ClickWin(window, obj, 'click'); }, ClickWin: function (win, obj, evtName) { var evt = win.document.createEvent("MouseEvents"); evt.initMouseEvent(evtName, true, true, win, 0, 0, 0, 0, 0, false, false, false, false, 0, null); return !obj.dispatchEvent(evt); }, clickCheckIdlePop: function () { var t = Tabs.Train; if (document.getElementById('chkPop').checked) Options.maxIdlePop = true; else Options.maxIdlePop = false; saveOptions(); t.displayCityStats(); t.changeTroopSelect(); }, clickCheckDoTraps: function () { var t = Tabs.Train; var cityNo = Cities.byID[t.selectedCity.id].idx + 1; AutoTrainOptions.doTraps[cityNo] = (document.getElementById('chkDoTraps').checked) saveAutoTrainOptions(); t.displayCityStats(); t.changeDefSelect(); }, clickCheckDoCaltrops: function () { var t = Tabs.Train; var cityNo = Cities.byID[t.selectedCity.id].idx + 1; AutoTrainOptions.doCalrops[cityNo] = (document.getElementById('chkDoCaltrops').checked) saveAutoTrainOptions(); t.displayCityStats(); t.changeDefSelect(); }, clickCheckDoSpikes: function () { var t = Tabs.Train; var cityNo = Cities.byID[t.selectedCity.id].idx + 1; AutoTrainOptions.doSpikes[cityNo] = (document.getElementById('chkDoSpikes').checked) saveAutoTrainOptions(); t.displayCityStats(); t.changeDefSelect(); }, clickCheckDoXbows: function () { var t = Tabs.Train; var cityNo = Cities.byID[t.selectedCity.id].idx + 1; AutoTrainOptions.doXbows[cityNo] = (document.getElementById('chkDoXbows').checked) saveAutoTrainOptions(); t.displayCityStats(); t.changeDefSelect(); }, limitingFactor: null, changeTroopSelect: function () { var t = Tabs.Train; var cityId = t.selectedCity.id; // unitcost: NAME, Food, Wood, Stone, Ore, Gold, Pop, ? var id = t.TTselType.value; t.lastTroopSelect = id; t.limitingFactor = null; var uc = uW.unitcost['unt' + id]; var actualuc = []; for (var r = 1; r < 5; r++) { if (document.getElementById('pttrgamble').value > 0) actualuc[r] = uc[r] * t.gamble[document.getElementById('pttrgamble').value].cost; else actualuc[r] = uc[r]; } if (id == 16) actualuc[5] = uc[11]["34001"]; var max = 9999999999; if ((t.stats.food / actualuc[1]) < max) { max = t.stats.food / actualuc[1]; t.limitingFactor = uW.resourceinfo['rec1']; } if ((t.stats.wood / actualuc[2]) < max) { max = t.stats.wood / actualuc[2]; t.limitingFactor = uW.resourceinfo['rec2']; } if ((t.stats.stone / actualuc[3]) < max) { max = t.stats.stone / actualuc[3]; t.limitingFactor = uW.resourceinfo['rec3']; } if ((t.stats.ore / actualuc[4]) < max) { max = t.stats.ore / actualuc[4]; t.limitingFactor = uW.resourceinfo['rec4']; } if (id == 16) if ((t.stats.yew / actualuc[5]) < max) { max = t.stats.yew / actualuc[5]; t.limitingFactor = 'yew'; } if ((t.stats.idlePop / uc[6]) < max) { max = t.stats.idlePop / uc[6]; t.limitingFactor = 'pop'; } t.stats.MaxTrain = parseInt(max); if (t.stats.MaxTrain < 0) t.stats.MaxTrain = 0; if (matTypeof(uc[8]) == 'object') { for (k in uc[8]) { // check building requirement var isPrestige = getCityPrestige(cityId); var b = getCityBuilding(cityId, k.substr(1)); if (isPrestige) { var bid = parseInt(k.substr(1)); switch (bid) { case 17: //Stable b.maxLevel = 12; case 16: //Workshop b.maxLevel = 12; case 15: //Blacksmith b.maxLevel = 12; } } if (b.maxLevel < uc[8][k][1]) { t.stats.MaxTrain = 0; t.limitingFactor = null; break; } } } if (matTypeof(uc[9]) == 'object') { for (k in uc[9]) { // check tech requirement if (parseInt(Seed.tech['tch' + k.substr(1)]) < uc[9][k][1]) { t.stats.MaxTrain = 0; t.limitingFactor = null; break; } } } if (t.lastTroopSelect == 13) { var numdruidbarrack = getCityBuilding(cityId, 22).count; if (numdruidbarrack == 0) { t.stats.MaxTrain = 0; t.limitingFactor = null; } } else if (t.lastTroopSelect == 14) { var numfeybarrack = getCityBuilding(cityId, 24).count; if (numfeybarrack == 0) { t.stats.MaxTrain = 0; t.limitingFactor = null; } } else if (t.lastTroopSelect == 15) { var numbritonbarrack = getCityBuilding(cityId, 26).count; if (numbritonbarrack == 0) { t.stats.MaxTrain = 0; t.limitingFactor = null; } } else if (t.lastTroopSelect > 16) { t.stats.MaxTrain = 0; t.limitingFactor = null; } if (t.limitingFactor) { document.getElementById('ptttr_' + t.limitingFactor).className = 'boldRed'; document.getElementById('ptttr2_' + t.limitingFactor).className = 'boldRed'; } t.updateTopTroops(); if (isPrestige && t.lastTroopSelect > 12 && t.lastTroopSelect < 16) t.TTspMaxSlots.innerHTML++; }, clickTroopDo: function () { var t = Tabs.Train; var cityId = t.selectedCity.id; var unitId = t.TTselType.value; var perSlot = parseInt(t.TTinpPerSlot.value, 10); var numSlots = parseInt(t.TTinpSlots.value, 10); var queued; if (t.lastTroopSelect > 12 && t.lastTroopSelect < 16) queued = t.stats.spqueued; else queued = t.stats.queued; t.displayCityStats(); if (t.running) { t.stopTraining('Training cancelled by user'); return; } if (perSlot < 1) { t.divTrainStatus.innerHTML = '' + uW.g_js_strings.commonstr.invalid + ' (' + uW.g_js_strings.modal_barracks_train.numtotrain + ')'; return; } if (perSlot * numSlots > t.stats.MaxTrain) { t.divTrainStatus.innerHTML = 'Can\'t train that many troops (max is ' + t.stats.MaxTrain + ' total)'; return; } if (numSlots < 1 || numSlots > t.stats.barracks - queued) { t.divTrainStatus.innerHTML = '' + uW.g_js_strings.commonstr.invalid + ' (' + uW.buildingcost.bdg13[0] + ')'; return; } var tut = document.getElementById('tutelage').value; var gamble = document.getElementById('pttrgamble').value; t.TDbutDo.disabled = true; t.TTbutDo.className = 'ptButCancel'; t.TTbutDo.value = 'CANCEL'; var que = []; for (var i = 0; i < numSlots; i++) que.push(['T', unitId, parseInt(perSlot)]); t.divTrainStatus.innerHTML = ''; t.running = true; t.doQueue(cityId, tut, gamble, que); }, /******* DEF ******/ updateTopDef: function () { var t = Tabs.Train; var slots = parseInt(t.TDinpSlots.value, 10); if (isNaN(slots) || slots < 0) slots = 0; t.TDspMax.innerHTML = uW.g_js_strings.commonstr.max + ':' + t.stats.MaxDefTrain + '  ' + uW.g_js_strings.commonstr.owned + ':' + t.stats.defOwned; t.TDspMaxSlots.innerHTML = t.stats.wallLevel - t.stats.Dqueued; if (slots < 1) t.TDspMaxPS.innerHTML = 0; else t.TDspMaxPS.innerHTML = parseInt(t.stats.MaxDefTrain / slots); t.TDspSpace.innerHTML = uW.buildingcost.bdg19[0] + ' (' + uW.g_js_strings.guardian.cl1 + '): ' + t.stats.wallLevel + '\
    ' + uW.g_js_strings.modal_openWalls.walldef + ': \ ' + (t.stats.wallSpaceUsed + t.stats.wallSpaceQueued) + '/' + t.stats.wallSpace + '
    \ ' + uW.g_js_strings.modal_openWalls.fielddef + ': ' + (t.stats.fieldSpaceUsed + t.stats.fieldSpaceQueued) + '/' + t.stats.fieldSpace + ''; }, changeDefSelect: function () { var t = Tabs.Train; var cityId = t.selectedCity.id; // unitcost: NAME, Food, Wood, Stone, Ore, Gold, Pop, ? var id = t.TDselType.value; t.lastDefSelect = id; t.stats.defOwned = parseInt(Seed.fortifications['city' + cityId]['fort' + id]); // // Check if ascended city var isPrestige = Seed.cityData.city[cityId].isPrestigeCity; // var uc = uW.fortcost['frt' + id]; var max = 9999999999; if ((t.stats.food / uc[1]) < max) max = t.stats.food / uc[1]; if ((t.stats.wood / uc[2]) < max) max = t.stats.wood / uc[2]; if ((t.stats.stone / uc[3]) < max) max = t.stats.stone / uc[3]; if ((t.stats.ore / uc[4]) < max) max = t.stats.ore / uc[4]; if ((t.stats.idlePop / uc[6]) < max) max = t.stats.idlePop / uc[6]; t.stats.MaxDefTrain = parseIntNan(max); if (t.stats.MaxDefTrain < 0) t.stats.MaxDefTrain = 0; if (matTypeof(uc[8]) == 'object') { for (k in uc[8]) { // check building requirement var b = getCityBuilding(cityId, k.substr(1)); if (isPrestige) { var bid = parseInt(k.substr(1)); logit(bid); switch (bid) { case 17: //Stable b.maxLevel = 12; case 16: //Workshop b.maxLevel = 12; case 15: //Blacksmith b.maxLevel = 12; } } logit(isPrestige); logit(inspect(b, 3, 1)); if (b.maxLevel < uc[8][k][1]) { t.stats.MaxDefTrain = 0; break; } } } if (matTypeof(uc[9]) == 'object') { for (k in uc[9]) { // check tech requirement if (parseInt(Seed.tech['tch' + k.substr(1)]) < uc[9][k][1]) { t.stats.MaxDefTrain = 0; break; } } } var spaceEach = parseInt(uW.fortstats["unt" + id][5]); if (id < 60) var spaceAvail = t.stats.wallSpace - t.stats.wallSpaceUsed - t.stats.wallSpaceQueued; else var spaceAvail = t.stats.fieldSpace - t.stats.fieldSpaceUsed - t.stats.fieldSpaceQueued; if (t.stats.MaxDefTrain * spaceEach > spaceAvail) t.stats.MaxDefTrain = parseInt(spaceAvail / spaceEach); t.updateTopDef(); }, clickDefMaxPS: function () { var t = Tabs.Train; var slots = parseInt(t.TDinpSlots.value, 10); if (slots < 1) t.TDinpPerSlot.value = 0; else t.TDinpPerSlot.value = parseInt(t.stats.MaxDefTrain / slots); }, clickDefMaxSlots: function () { var t = Tabs.Train; t.TDinpSlots.value = t.stats.wallLevel - t.stats.Dqueued; }, clickDefDo: function () { var t = Tabs.Train; var cityId = t.selectedCity.id; var unitId = t.TDselType.value; var perSlot = parseInt(t.TDinpPerSlot.value, 10); var numSlots = parseInt(t.TDinpSlots.value, 10); t.displayCityStats(); if (t.running) { t.stopTraining('' + uW.g_js_strings.commonstr.cancelled + ''); return; } if (perSlot < 1) { //t.divTrainStatus.innerHTML = 'Number of units per slot must be greater than 0.'; return; } if (perSlot * numSlots > t.stats.MaxDefTrain) { t.divTrainStatus.innerHTML = '' + uW.g_js_strings.modal_attack.maxtroops + ': ' + t.stats.MaxDefTrain + ''; return; } if (numSlots < 1 || numSlots > t.stats.wallLevel - t.stats.Dqueued) { t.divTrainStatus.innerHTML = '' + uW.g_js_strings.commonstr.invalid + ' ()'; return; } var siege = document.getElementById('siege').value; t.TTbutDo.disabled = true; t.TDbutDo.className = 'ptButCancel'; t.TDbutDo.value = 'CANCEL'; var que = []; for (var i = 0; i < numSlots; i++) que.push(['T', unitId, parseInt(perSlot)]); t.divTrainStatus.innerHTML = ''; t.running = true; t.doDefQueue(cityId, siege, que); }, doDefQueue: function (cityId, siege, que, errMsg) { var t = Tabs.Train; clearTimeout(t.trainTimer); try { t.displayCityStats(); if (errMsg) { t.stopTraining('ERROR: ' + errMsg + ''); return; } var cmd = que.shift(); if (!cmd) { t.stopTraining('Done queueing defenses.'); return; } if (cmd[0] == 'T') { t.dispTrainStatus('Training ' + cmd[2] + ' ' + fortNamesShort[cmd[1]] + ' at ' + Cities.byID[cityId].name + ' (' + que.length + ' slots remaining)
    '); doDefTrain(cityId, siege, cmd[1], cmd[2], function (errMsg) { t.trainTimer = setTimeout(function () { Tabs.Train.doDefQueue(cityId, siege, que, errMsg); }, (Math.random() * 3500) + 1500); }); } } catch (err) { logit(inspect(err, 8, 1)); t.stopTraining('PROGRAM ERROR: ' + err.message + ''); } }, // fix KofC bugs .... // if first start time > now, make it now // if any end time != next start time, fix it fixQueTimes: function (q) { var now = unixTime(); if (q[0][2] > now) q[0][2] = now; for (var i = 0; i < q.length; i++) { if (q[i + 1] != null && q[i + 1][2] != q[i][3]) q[i][3] = q[i + 1][2]; } }, expireTheQueue: function (q) { if (q == null) return; var now = unixTime(); while (q.length > 0 && (q[0][3] - now) < 1) q.shift(); }, displayCityStats: function () { var t = Tabs.Train; var cityId = t.selectedCity.id; var isSpecial = false; if (t.TTselType.value > 12 && t.TTselType.value < 16) { isSpecial = true; } t.stats.food = parseInt(Seed.resources['city' + cityId].rec1[0] / 3600); t.stats.wood = parseInt(Seed.resources['city' + cityId].rec2[0] / 3600); t.stats.stone = parseInt(Seed.resources['city' + cityId].rec3[0] / 3600); t.stats.ore = parseInt(Seed.resources['city' + cityId].rec4[0] / 3600); t.stats.yew = parseInt(Seed.items.i34001); t.stats.gold = Seed.citystats['city' + cityId].gold[0]; if (Options.maxIdlePop) t.stats.idlePop = parseInt(Seed.citystats['city' + cityId].pop[0]); else t.stats.idlePop = parseInt(Seed.citystats['city' + cityId].pop[0]) - parseInt(Seed.citystats['city' + cityId].pop[3]); t.stats.barracks = (isSpecial) ? (getCityBuilding(cityId, 22).count + getCityBuilding(cityId, 24).count + getCityBuilding(cityId, 26).count) : getCityBuilding(cityId, 13).count; var m = '
    ' + Cities.byID[cityId].name + '   (' + Cities.byID[cityId].x + ',' + Cities.byID[cityId].y + ')

    '; m += ''; for (i = 1; i <= 9; i++) { m += ''; m += ''; if (i <= 4) m += ''; if (i == 5) m += ''; if (i == 6) m += ''; if (i == 7) m += ''; if (i > 7) m += ''; m += ''; } m += ''; m += ''; m += '
    ' + uW.unitcost['unt' + i][0] + '' + addCommas(parseInt(Seed.units['city' + cityId]['unt' + i])) + '' + uW.unitcost['unt' + (i + 9)][0] + '' + addCommas(parseInt(Seed.units['city' + cityId]['unt' + (i + 9)])) + '' + uW.resourceinfo['rec' + i] + '' + addCommas(parseInt(Seed.resources['city' + cityId]['rec' + i][0] / 3600)) + '' + uW.resourceinfo['rec0'] + '' + addCommas(Seed.citystats['city' + cityId].gold[0]) + 'Available Population' + addCommas(t.stats.idlePop) + 'Pristine Yew Branch' + addCommas(t.stats.yew) + '
    ' + uW.unitcost['unt' + (21)][0] + '' + addCommas(parseInt(Seed.units['city' + cityId]['unt' + (21)])) + '
    '; document.getElementById('divSTtop').innerHTML = m; // troop queue .... var totTime = 0; var q = Seed.queue_unt['city' + cityId]; t.expireTheQueue(q); var qs = q.toString(); var now = unixTime(); // if (q!=null && q.length>0) // totTime = q[q.length-1][3] - now; if (qs == t.lastQueString) { if (q != null && q.length > 0) { var cur = q[0][3] - now; // var cur = 0; for (var i = 0; i < q.length; i++) { if (q[i][7] && isSpecial) { cur = q[i][3] - now; break; } if (!q[i][7] && isSpecial) { cur = q[i][3] - now; break; } } if (document.getElementById('ptttfq')) document.getElementById('ptttfq').innerHTML = timestr(cur, true); } } else { t.lastQueString = qs; t.stats.queued = 0; t.stats.spqueued = 0; m = ''; if (q != null && q.length > 0) { if (!getCityPrestige(cityId)) t.fixQueTimes(q); // t.stats.queued = q.length; first = true; first_special = true; for (var i = 0; i < q.length; i++) { var now = unixTime(); // if(isSpecial && q[i][0] < 13){ // continue; // } // if(!isSpecial && q[i][0] >= 13){ // continue; // } start = q[i][2]; end = q[i][3]; if (end > totTime) totTime = end; // if (first) // if (first || (q[i][7] && first_special)) if (first || first_special) actual = end - now; else actual = end - lastEnd; if (actual < 0) actual = 0; q[i][6] = cityId; //q[i][7] If true means special troop training m += ''; m += ''; lastEnd = end; if (first && !q[i][7]) first = false; // if(q[i][7]) // first_special = false; // t.stats.queued++; if (q[i][7]) { first_special = false; t.stats.spqueued++; } else { t.stats.queued++; } } } m += '
    X
    ' + q[i][1] + ' ' + uW.unitcost['unt' + q[i][0]][0]; // if (first) // if (first || (q[i][7] && first_special)) if (first || first_special) m += '   ' + timestr(end - start, true) + ' (' + timestr(actual, true) + ')'; else m += '   ' + timestr(actual, true) + '
    '; document.getElementById('divSTleft').innerHTML = m; t.totTime = totTime; } // m = t.stats.queued +' ' + uW.g_js_strings.commonstr.oftx +' '; // if (t.stats.queued >= 0) t.stats.qtotal = t.stats.queued + t.stats.spqueued; m = t.stats.qtotal + ' ' + uW.g_js_strings.commonstr.oftx + ' '; if (t.stats.qtotal >= 0) m += t.stats.barracks; // if (totTime > 0) // m += ' - '+ uW.g_js_strings.commonstr.time + ': '+ uW.timestr(totTime); if ((t.totTime - now) > 0) m += ' - ' + uW.g_js_strings.commonstr.time + ': ' + uW.timestr(t.totTime - now); document.getElementById('statTTtot').innerHTML = m; // defense queue .... getWallInfo(cityId, t.stats); var totTime = 0; var q = Seed.queue_fort['city' + cityId]; t.expireTheQueue(q); var qs = q.toString(); if (q != null && q.length > 0) totTime = q[q.length - 1][3] - now; if (qs == t.lastDQueString) { if (q != null && q.length > 0) { var cur = q[0][3] - now; document.getElementById('pttdfq').innerHTML = timestr(cur, true); } } else { t.lastDQueString = qs; t.stats.Dqueued = 0; t.stats.wallSpaceQueued = 0; t.stats.fieldSpaceQueued = 0; m = ''; if (q != null && q.length > 0) { t.fixQueTimes(q); t.stats.Dqueued = q.length; first = true; for (i = 0; i < q.length; i++) { if (q[i][0] < 60) t.stats.wallSpaceQueued += parseInt(uW.fortstats["unt" + q[i][0]][5]) * parseInt(q[i][1]); else t.stats.fieldSpaceQueued += parseInt(uW.fortstats["unt" + q[i][0]][5]) * parseInt(q[i][1]); start = q[i][2]; end = q[i][3]; if (first) actual = end - now; else actual = end - lastEnd; if (actual < 0) actual = 0; q[i][7] = cityId; m += '' m += ''; lastEnd = end; first = false; } } m += '
    X
    ' + q[i][1] + ' ' + fortNamesShort[q[i][0]]; if (first) m += '   ' + timestr(end - start, true) + ' (' + timestr(actual, true) + ')'; else m += '   ' + timestr(actual, true) + '
    '; document.getElementById('divSTright').innerHTML = m; } m = t.stats.Dqueued + ' slots'; if (totTime > 0) m += ', ' + uW.timestr(totTime); document.getElementById('statDTtot').innerHTML = m; }, dispTrainStatus: function (msg) { var t = Tabs.Train; t.divTrainStatus.innerHTML = msg + t.divTrainStatus.innerHTML; }, butcancelTrain: function (typetrn, numtrptrn, trnTmp, trnETA, trnNeeded, cityId, trainingId) { var t = Tabs.Train; var params = uW.Object.clone(uW.g_ajaxparams); params.pf = 0; params.requestType = "CANCEL_TRAINING"; params.cityId = cityId; params.typetrn = typetrn; params.numtrptrn = numtrptrn; params.trnETA = trnETA; params.trnTmp = trnTmp; params.trnNeeded = trnNeeded; new AjaxRequest(uW.g_ajaxpath + "ajax/cancelTraining.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (message) { var rslt = eval("(" + message.responseText + ")"); if (rslt.updateSeed) unsafeWindow.update_seed(rslt.updateSeed); if (rslt.ok) { var k = 0; for (var j = 0; j < Seed.queue_unt["city" + cityId].length; j++) { if (j > trainingId) { Seed.queue_unt["city" + cityId][j][2] = parseInt(rslt.dateTraining[k]["start"]); Seed.queue_unt["city" + cityId][j][3] = parseInt(rslt.dateTraining[k]["end"]); k++; } } Seed.queue_unt["city" + cityId].splice(trainingId, 1); for (var i = 1; i < 5; i++) { var totalReturn = parseInt(uW.unitcost["unt" + typetrn][i]) * parseInt(numtrptrn) * 3600 / 2; Seed.resources["city" + cityId]["rec" + i][0] = parseInt(Seed.resources["city" + cityId]["rec" + i][0]) + totalReturn; } } }, onFailure: function () {}, }); }, butcancelFort: function (typefrt, numtrpfrt, frtTmp, frtETA, frtNeeded, frtid, cityId, queueId) { var t = Tabs.Train; var params = uW.Object.clone(uW.g_ajaxparams); params.pf = 0; params.requestType = "CANCEL_FORTIFICATIONS"; params.cityId = cityId; params.typefrt = typefrt; params.numtrpfrt = numtrpfrt; params.frtETA = frtETA; params.frtTmp = frtTmp; params.frtNeeded = frtNeeded; params.frtid = frtid; new AjaxRequest(uW.g_ajaxpath + "ajax/cancelFortifications.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (message) { if (rslt.updateSeed) unsafeWindow.update_seed(rslt.updateSeed); var rslt = eval("(" + message.responseText + ")"); if (rslt.ok) { var k = 0; for (var j = 0; j < Seed.queue_fort["city" + cityId].length; j++) { if (j > queueId) { Seed.queue_fort["city" + cityId][j][2] = parseInt(rslt.dateFortifications[k]["start"]); Seed.queue_fort["city" + cityId][j][3] = parseInt(rslt.dateFortifications[k]["end"]); k++; } } uW.update_seed(rslt.updateSeed); Seed.queue_fort["city" + cityId].splice(queueId, 1); for (var i = 1; i < 5; i++) { Seed.resources["city" + cityId]["rec" + i][0] = parseInt(Seed.resources["city" + cityId]["rec" + i][0]) + totalReturn; } } }, onFailure: function () {}, }); }, stopTraining: function (msg) { var t = Tabs.Train; clearTimeout(t.trainTimer); t.trainTimer = null; t.dispTrainStatus(msg + '
    '); t.TDbutDo.disabled = false; t.TTbutDo.disabled = false; t.TTbutDo.value = uW.g_js_strings.modal_openBarracks.trainttl; t.TDbutDo.value = uW.g_js_strings.modal_openWalls.builddefenses; t.TTbutDo.className = ''; t.TDbutDo.className = ''; t.running = false; }, doQueue: function (cityId, tut, gamble, que, errMsg) { var t = Tabs.Train; clearTimeout(t.trainTimer); try { t.displayCityStats(); if (errMsg) { t.stopTraining('' + errMsg + ''); return; } var cmd = que.shift(); if (!cmd) { t.stopTraining('' + uW.g_js_strings.update_queue.troopqueue + ''); return; } if (cmd[0] == 'T') { t.dispTrainStatus(uW.g_js_strings.modal_barracks_train.starttraining + ': ' + cmd[2] + ' ' + uW.unitcost['unt' + cmd[1]][0] + ' at ' + Cities.byID[cityId].name + ' (' + que.length + ' slots remaining)
    '); doTrain(cityId, tut, gamble, cmd[1], cmd[2], function (errMsg) { if (t.running) t.trainTimer = setTimeout(function () { Tabs.Train.doQueue(cityId, tut, gamble, que, errMsg); }, (Math.random() * 2500) + 1000); } ); } } catch (err) { logit(inspect(err, 8, 1)); t.stopTraining('' + uW.g_js_strings.barbarian.erroroccured + ' ' + err.message + ''); } }, doAutoTraps: function (cityNo) { var t = Tabs.Train; wall = {}; var cityId = Cities.cities[cityNo - 1].id var cityID = 'city' + cityId; getWallInfo(cityId, wall); availableSpace = wall.fieldSpace - wall.fieldSpaceUsed; if (availableSpace > 0 && wall.slotsBusy < 3) { var food = parseInt(Seed.resources['city' + cityId].rec1[0] / 3600); var wood = parseInt(Seed.resources['city' + cityId].rec2[0] / 3600); var stone = parseInt(Seed.resources['city' + cityId].rec3[0] / 3600); var ore = parseInt(Seed.resources['city' + cityId].rec4[0] / 3600); availableSlots = 3 - wall.slotsBusy; var foodRes = AutoTrainOptions.keepFood[cityNo]; var woodRes = AutoTrainOptions.keepWood[cityNo]; var stoneRes = AutoTrainOptions.keepStone[cityNo]; var oreRes = AutoTrainOptions.keepOre[cityNo]; var availFood = food - foodRes; var availWood = wood - woodRes; var availStone = stone - stoneRes; var availOre = ore - oreRes; secsPerTrap = Cities.byID[cityId]['Def60Time']; if (secsPerTrap > 0 && availableSpace > 2 && availableSlots > 0) { if (availFood > 400 && availWood > 800 & availStone > 200 & availOre > 400) { var numberToTrain = 9999999999; if ((availFood / 400) < numberToTrain) numberToTrain = parseInt(availFood / 400); if ((availWood / 800) < numberToTrain) numberToTrain = parseInt(availWood / 800); if ((availStone / 200) < numberToTrain) numberToTrain = parseInt(availStone / 200); if ((availOre / 400) < numberToTrain) numberToTrain = parseInt(availOre / 400); if (numberToTrain > 5) numberToTrain = 5; if (wall.Trap + wall.TrapTraining < 10 || availableSpace < 15) { numberToTrain = 1; actionLog('Building 1 Trap in city ' + Cities.byID[cityId].name); } else actionLog('Building ' + numberToTrain + ' Traps in city ' + Cities.byID[cityId].name); try { doDefTrain(cityId, 60, numberToTrain); } catch (err) { logit(inspect(err, 8, 1)); } } } } }, doAutoCaltrops: function (cityNo) { var t = Tabs.Train; wall = {}; var cityId = Cities.cities[cityNo - 1].id var cityID = 'city' + cityId; getWallInfo(cityId, wall); availableSpace = wall.fieldSpace - wall.fieldSpaceUsed; if (availableSpace > 0 && wall.slotsBusy < 3) { var food = parseInt(Seed.resources['city' + cityId].rec1[0] / 3600); var wood = parseInt(Seed.resources['city' + cityId].rec2[0] / 3600); var stone = parseInt(Seed.resources['city' + cityId].rec3[0] / 3600); var ore = parseInt(Seed.resources['city' + cityId].rec4[0] / 3600); availableSlots = 3 - wall.slotsBusy; var foodRes = AutoTrainOptions.keepFood[cityNo]; var woodRes = AutoTrainOptions.keepWood[cityNo]; var stoneRes = AutoTrainOptions.keepStone[cityNo]; var oreRes = AutoTrainOptions.keepOre[cityNo]; var availFood = food - foodRes; var availWood = wood - woodRes; var availStone = stone - stoneRes; var availOre = ore - oreRes; secsPerCaltrop = Cities.byID[cityId]['Def61Time']; if (secsPerCaltrop > 0 && availableSpace > 2 && availableSlots > 0) { if (availFood > 100 && availWood > 400) { var numberToTrain = 9999999999; if ((availFood / 100) < numberToTrain) numberToTrain = parseInt(availFood / 100); if ((availWood / 400) < numberToTrain) numberToTrain = parseInt(availWood / 400); if (numberToTrain > 5) numberToTrain = 5; if (wall.Caltrops + wall.CaltropsTraining < 10 || availableSpace < 15) { numberToTrain = 1; actionLog('Building 1 Caltrop in city ' + Cities.byID[cityId].name); } else actionLog('Building ' + numberToTrain + ' Caltrops in city ' + Cities.byID[cityId].name); try { doDefTrain(cityId, 61, numberToTrain); } catch (err) { logit(inspect(err, 8, 1)); } } } } }, doAutoSpikes: function (cityNo) { var t = Tabs.Train; wall = {}; var cityId = Cities.cities[cityNo - 1].id var cityID = 'city' + cityId; getWallInfo(cityId, wall); availableSpace = wall.fieldSpace - wall.fieldSpaceUsed; if (availableSpace > 0 && wall.slotsBusy < 3) { var food = parseInt(Seed.resources['city' + cityId].rec1[0] / 3600); var wood = parseInt(Seed.resources['city' + cityId].rec2[0] / 3600); var stone = parseInt(Seed.resources['city' + cityId].rec3[0] / 3600); var ore = parseInt(Seed.resources['city' + cityId].rec4[0] / 3600); availableSlots = 3 - wall.slotsBusy; var foodRes = AutoTrainOptions.keepFood[cityNo]; var woodRes = AutoTrainOptions.keepWood[cityNo]; var stoneRes = AutoTrainOptions.keepStone[cityNo]; var oreRes = AutoTrainOptions.keepOre[cityNo]; var availFood = food - foodRes; var availWood = wood - woodRes; var availStone = stone - stoneRes; var availOre = ore - oreRes; secsPerSpike = Cities.byID[cityId]['Def62Time']; if (secsPerSpike > 0 && availableSpace > 2 && availableSlots > 0) { if (availFood > 150 && availWood > 750 & availStone > 50) { var numberToTrain = 9999999999; if ((availFood / 150) < numberToTrain) numberToTrain = parseInt(availFood / 150); if ((availWood / 750) < numberToTrain) numberToTrain = parseInt(availWood / 750); if ((availStone / 50) < numberToTrain) numberToTrain = parseInt(availStone / 50); if (numberToTrain > 5) numberToTrain = 5; if (wall.SpikedBarrier + wall.SpikedBarrierTraining < 10 || availableSpace < 15) { numberToTrain = 1; actionLog('Building 1 Spike in city ' + Cities.byID[cityId].name); } else actionLog('Building ' + numberToTrain + ' Spikes in city ' + Cities.byID[cityId].name); try { doDefTrain(cityId, 61, numberToTrain); } catch (err) { logit(inspect(err, 8, 1)); } } } } }, doAutoCrossbows: function (cityNo) { var t = Tabs.Train; wall = {}; var cityId = Cities.cities[cityNo - 1].id var cityID = 'city' + cityId; getWallInfo(cityId, wall); availableSpace = wall.wallSpace - wall.wallSpaceUsed; if (availableSpace > 0 && wall.slotsBusy < 2) { var food = parseInt(Seed.resources['city' + cityId].rec1[0] / 3600); var wood = parseInt(Seed.resources['city' + cityId].rec2[0] / 3600); var stone = parseInt(Seed.resources['city' + cityId].rec3[0] / 3600); var ore = parseInt(Seed.resources['city' + cityId].rec4[0] / 3600); availableSlots = 2 - wall.slotsBusy; var foodRes = AutoTrainOptions.keepFood[cityNo]; var woodRes = AutoTrainOptions.keepWood[cityNo]; var stoneRes = AutoTrainOptions.keepStone[cityNo]; var oreRes = AutoTrainOptions.keepOre[cityNo]; var availFood = food - foodRes; var availWood = wood - woodRes; var availStone = stone - stoneRes; var availOre = ore - oreRes; secsPerXbow = Cities.byID[cityId]['Def53Time']; if (secsPerXbow > 0 && availableSpace > 2 && availableSlots > 0) { if (availFood > 250 && availWood > 2000 & availStone > 750 & availOre > 500) { var numberToTrain = 9999999999; if ((availFood / 250) < numberToTrain) numberToTrain = parseInt(availFood / 250); if ((availWood / 2000) < numberToTrain) numberToTrain = parseInt(availWood / 2000); if ((availStone / 750) < numberToTrain) numberToTrain = parseInt(availStone / 750); if ((availOre / 500) < numberToTrain) numberToTrain = parseInt(availOre / 500); if (numberToTrain > 5) numberToTrain = 5; if (wall.Crossbows + wall.CrossbowsTraining < 10 || availableSpace < 15) { numberToTrain = 1; actionLog('Building 1 Crossbow in city ' + Cities.byID[cityId].name); } else actionLog('Building ' + numberToTrain + ' Crossbows in city ' + Cities.byID[cityId].name); try { doDefTrain(cityId, 53, numberToTrain); } catch (err) { logit(inspect(err, 8, 1)); } } } } }, doAutoTrain: function (cityNo) { var t = Tabs.Train; clearTimeout(t.nextAuto); var cityId = Cities.cities[cityNo - 1].id var cityID = 'city' + cityId; var troopType = AutoTrainOptions.troopType[cityNo]; if (troopType > 0) { var unitQ = Seed.queue_unt['city' + cityId]; var queued = 0; if (unitQ != null && unitQ.length > 0) queued = unitQ.length; var slots = Cities.byID[cityId].numBarracks - queued; secsPerTroop = Cities.byID[cityId]['Troop' + troopType + 'Time']; if (slots > 0 && secsPerTroop > 0) t.doAutoTroopTrain(cityNo); } if (AutoTrainOptions.doTraps[cityNo]) t.doAutoTraps(cityNo); if (AutoTrainOptions.doCalrops[cityNo]) t.doAutoCaltrops(cityNo); if (AutoTrainOptions.doSpikes[cityNo]) t.doAutoSpikes(cityNo); if (AutoTrainOptions.doXbows[cityNo]) t.doAutoCrossbows(cityNo); if (cityNo == Cities.numCities) t.nextAuto = setTimeout(function () { t.doAutoTrain(1); }, (AutoTrainOptions.intervalSecs * 1000)); else t.nextAuto = setTimeout(function () { t.doAutoTrain(cityNo + 1); }, 7000); }, } /*************************************** OVERVIEW TAB ************************************************/ var GMTclock = { span: null, timer: null, init: function () { this.span = document.createElement('span'); this.span.style.fontWeight = 'bold'; document.getElementById('kochead_time').parentNode.appendChild(this.span); this.setEnable(Options.gmtClock); }, setEnable: function (tf) { var t = GMTclock; if (tf) { setTimeout(function () { t.everySecond(); }, 1000); } else { t.span.innerHTML = ''; } }, everySecond: function () { var t = GMTclock; var now = new Date(); now.setTime(now.getTime() + (now.getTimezoneOffset() * 60000)); GMTclock.span.innerHTML = '   (' + now.toLocaleFormat('%H:%M') + ')'; if (Options.gmtClock) { setTimeout(function () { t.everySecond(); }, 1000); } else { GMTclock.span.innerHTML = ''; } }, } function getResourceProduction(cityId) { var ret = [0, 0, 0, 0, 0]; var now = unixTime(); var search = 'type==10 || type==11'; var wilds = [0, 0, 0, 0, 0]; var w = Seed.wilderness["city" + cityId]; for (var k in w) { var type = parseInt(w[k].tileType); if (type == 10 || type == 11) wilds[1] += parseInt(w[k].tileLevel); else wilds[type / 10] += parseInt(w[k].tileLevel); } knight = 0; var s = Seed.knights["city" + cityId]; if (s) { s = s["knt" + Seed.leaders["city" + cityId].resourcefulnessKnightId]; if (s) { var knight = parseInt(s.resourcefulness); if (s.resourcefulnessBoostExpireUnixtime > now) knight *= 1.25; } } var workerFactor = 1; var c = parseInt(Seed.citystats["city" + cityId]["pop"][0]); // Current population var w = parseInt(Seed.citystats["city" + cityId]["pop"][3]); // Labor force if (w > c) workerFactor = c / w; for (var i = 1; i < 5; i++) { var usage = Seed.resources["city" + cityId]["rec" + i]; var items = 0; if (parseInt(Seed.playerEffects["r" + i + "BstExp"]) > now) { items = 0.25; } var tech = Seed.tech["tch" + i]; ret[i] = parseInt((usage[2] * (1 + tech / 10 + knight / 100 + items + 0.05 * wilds[i]) * workerFactor + 100)); } return ret; } function getWallInfo(cityId, objOut) { objOut.wallSpaceUsed = 0; objOut.fieldSpaceUsed = 0; objOut.wallLevel = 0; objOut.wallSpace = 0; objOut.fieldSpace = 0; var b = Seed.buildings["city" + cityId]; if (b.pos1 == null) return; objOut.wallLevel = parseInt(b.pos1[1]); var spots = 0; for (var i = 1; i < (objOut.wallLevel + 1); i++) spots += (i * 1500); objOut.wallSpace = spots; objOut.fieldSpace = spots; var fort = Seed.fortifications["city" + cityId]; for (k in fort) { var id = parseInt(k.substr(4)); if (id < 60) objOut.wallSpaceUsed += parseInt(uW.fortstats["unt" + id][5]) * parseInt(fort[k]); else objOut.fieldSpaceUsed += parseInt(uW.fortstats["unt" + id][5]) * parseInt(fort[k]); } } Tabs.OverView = { tabOrder: 1, tabLabel: uW.g_js_strings.commonstr.overview, cont: null, displayTimer: null, curTabBut: null, curTabName: null, resTotal: {}, troopTotal: {}, init: function (div) { var t = Tabs.OverView; dt = new Date(); dt.setTime(Seed.player.datejoinUnixTime * 1000); t.cont = div; var main = '
    '; main += ''; main += ''; main += ''; main += '
    Joined on: ' + dt.toLocaleDateString() + 'Might: ' + addCommas(Seed.player.might) + 'Alliance: ' + getMyAlliance()[1] + 'Domain: ' + uW.domainName + '
    '; main += ''; main += ''; main += ''; main += ''; main += ''; main += '


    '; main += '
    '; main += 'HELP'; t.cont.innerHTML = main; t.Overv = document.getElementById('ptOverOutput'); document.getElementById('ptmrchSubS').addEventListener('click', e_butSubtab, false); document.getElementById('ptmrchSubA').addEventListener('click', e_butSubtab, false); document.getElementById('ptmrchSubB').addEventListener('click', e_butSubtab, false); document.getElementById('ptmrchSubC').addEventListener('click', e_butSubtab, false); document.getElementById('ptmrchSubD').addEventListener('click', e_butSubtab, false); changeSubtab(document.getElementById('ptmrchSub' + Options.curOverTab)); function e_butSubtab(evt) { changeSubtab(evt.target); } function changeSubtab(but) { if (but == t.curTabBut) return; if (t.curTabBut) { t.curTabBut.className = 'pbSubtab'; t.curTabBut.disabled = false; } t.curTabBut = but; but.className = 'pbSubtab pbSubtabSel'; but.disabled = true; t.curTabName = but.id.substr(-1); Options.curOverTab = t.curTabName; t.show(); } }, hide: function () { var t = Tabs.OverView; clearTimeout(t.displayTimer); }, show: function () { var t = Tabs.OverView; clearTimeout(t.displayTimer); if (t.curTabName == 'S') t.paintOverview(); else if (t.curTabName == 'A') t.showResources(); else if (t.curTabName == 'B') t.showTroops(); else if (t.curTabName == 'C') t.showBuilds(); else if (t.curTabName == 'D') t.showInfo(); }, showResources: function () { var t = Tabs.OverView; t.Overv.innerHTML = null; t.Overv.style.maxHeight = '745px'; t.Overv.style.overflowY = 'scroll'; t.Overv.style.maxWidth = '745px'; t.Overv.style.overflowX = 'scroll'; clearTimeout(t.displayTimer); var z = "
    "; for (i = 0; i < Cities.numCities; i++) { z += "'; else z += '
    Defending'; } // boosts var trupkeepreduce = 0; trupkeepreduce = Math.min(equippedthronestats(79), 33); var trprodres = equippedthronestats(82); var trprod = [0, 0, 0, 0, 0]; trprod[1] = Math.min(equippedthronestats(83) + trprodres, 2000); trprod[2] = Math.min(equippedthronestats(84) + trprodres, 2000); trprod[3] = Math.min(equippedthronestats(85) + trprodres, 2000); trprod[4] = Math.min(equippedthronestats(86) + trprodres, 2000); var trkntres = Math.min(equippedthronestats(76), 165); for (var a = 1; a <= 5; a++) { var total = 0; z += ''; for (b = 0; b < Cities.numCities; b++) total += parseInt((a != 5) ? Seed.resources["city" + Seed.cities[b][0]]['rec' + a][0] / 3600 : Seed.resources["city" + Seed.cities[b][0]]['rec' + a][0]); z += ''; for (b = 0; b < Cities.numCities; b++) z += ''; z += ''; for (b = 0; b < Cities.numCities; b++) { z += ''; } if (a != 5) { z += ''; for (b = 0; b < Cities.numCities; b++) { var rp = getResourceProduction(Seed.cities[b][0]); var bp = uW.cm.Resources.getProductionBase(a, Seed.cities[b][0]); var upkbase = uW.cm.Resources.getUpkeep(a, Seed.cities[b][0]) / (1 - trupkeepreduce / 100); var usage = parseInt(Seed.resources["city" + Seed.cities[b][0]]['rec' + a][3]); // adjust for throne room upkeep reduction if (a == 1) usage = parseInt(usage - upkbase * trupkeepreduce / 100); z += ''; } } z += ''; if (a == 1) { z += ''; for (b = 0; b < Cities.numCities; b++) { var rp = getResourceProduction(Seed.cities[b][0]); var bp = uW.cm.Resources.getProductionBase(a, Seed.cities[b][0]); var usage = parseInt(Seed.resources["city" + Seed.cities[b][0]]['rec' + a][3]); var upkbase = uW.cm.Resources.getUpkeep(a, Seed.cities[b][0]) / (1 - trupkeepreduce / 100); // adjust for throne room bonuses usage = parseInt(usage - upkbase * trupkeepreduce / 100); var prod = rp[a] - usage + bp * (trprod[a]) / 100; var timeLeft = parseInt(Seed.resources["city" + Seed.cities[b][0]]['rec' + a][0]) / 3600 / (0 - prod) * 3600; if (prod > 0) z += ''; else { if (Options.enableFoodWarn && timeLeft < (Options.foodWarnHours * 3600)) z += ''; } } } var totalmarching = 0; for (b = 0; b < Cities.numCities; b++) { var march = Seed.queue_atkp['city' + Seed.cities[b][0]]; if (march != []) for (c in march) if (march[c]['resource' + a] != undefined && march[c]['marchType'] != 9) totalmarching += parseInt(march[c]['resource' + a]); } if (totalmarching > 0) { z += ''; for (b = 0; b < Cities.numCities; b++) { var recmarching = 0; var march = Seed.queue_atkp['city' + Seed.cities[b][0]]; if (march != []) for (c in march) if (march[c]['resource' + a] != undefined && march[c]['marchType'] != 9) recmarching += (parseInt(march[c]['resource' + a])); if (recmarching != 0) z += ''; else z += ''; } } } z += ''; var goldtotal = 0; for (b = 0; b < Cities.numCities; b++) goldtotal += parseInt(Seed.citystats["city" + Seed.cities[b][0]]['gold'][0]); z += ''; for (b = 0; b < Cities.numCities; b++) { z += ''; } z += ''; for (b = 0; b < Cities.numCities; b++) { var f = 1; if (parseInt(Seed.playerEffects.r0BstExp) > unixTime()) f = 2; var g = parseInt(parseInt(Seed.citystats["city" + Seed.cities[b][0]]['gold'][1] * Seed.citystats["city" + Seed.cities[b][0]]['pop'][0]) * 0.01) * f; var h = parseInt(Seed.citystats["city" + Seed.cities[b][0]]["gold"][2] * 10 * -1); z += ''; } z += ''; for (b = 0; b < Cities.numCities; b++) { var i = Seed.citystats["city" + Seed.cities[b][0]]['pop'][0]; var j = Seed.citystats["city" + Seed.cities[b][0]]['pop'][3]; var k = i - j; if (k > 0) z += ''; else z += ''; } z += ''; for (b = 0; b < Cities.numCities; b++) { var totWilds = 0; dat = Seed.wilderness['city' + Seed.cities[b][0]]; if (dat != null && matTypeof(dat) == 'object') for (k in dat) ++totWilds; var castle = parseInt(Seed.buildings['city' + Seed.cities[b][0]].pos0[1]); if (castle == 11) castle = 12; else if (castle == 12) castle = 14; if (totWilds < castle) z += ''; for (c in uW.cm.WILDERNESS_TYPES) { var wildtype = ''; switch (c) { case 'GRASSLAND': wildtype = uW.g_js_strings.commonstr.grassland; break; case 'LAKE': wildtype = uW.g_js_strings.commonstr.lake; break; case 'WOODS': wildtype = uW.g_js_strings.commonstr.woods; break; case 'HILLS': wildtype = uW.g_js_strings.commonstr.hills; break; case 'MOUNTAIN': wildtype = uW.g_js_strings.commonstr.mountain; break; case 'PLAIN': wildtype = uW.g_js_strings.commonstr.plain; break; } var grandtotal = 0; for (b = 0; b < Cities.numCities; b++) { dat = Seed.wilderness['city' + Seed.cities[b][0]]; if (dat != null && matTypeof(dat) == 'object') for (k in dat) if (dat[k]['tileType'] == uW.cm.WILDERNESS_TYPES[c]) grandtotal++; } if (grandtotal > 0) { z += ''; for (b = 0; b < Cities.numCities; b++) { var total = 0; dat = Seed.wilderness['city' + Seed.cities[b][0]]; if (dat != null && matTypeof(dat) == 'object') for (k in dat) if (dat[k]['tileType'] == uW.cm.WILDERNESS_TYPES[c]) ++total; if (total > 0) z += ''; else z += ''; } z += ''; } } var totboosts = false; var l = Seed.playerEffects; for (p in l) if (l[p] > unixTime()) totboosts = true; if (totboosts) { z += ''; for (p in l) { if (p == 'r0BstExp' && l[p] > unixTime()) z += ''; if (p == 'r1BstExp' && l[p] > unixTime()) z += ''; if (p == 'r2BstExp' && l[p] > unixTime()) z += ''; if (p == 'r3BstExp' && l[p] > unixTime()) z += ''; if (p == 'r4BstExp' && l[p] > unixTime()) z += ''; if (p == 'atkExpire' && l[p] > unixTime()) z += ''; if (p == 'defExpire' && l[p] > unixTime()) z += ''; if (p == 'loadExpire' && l[p] > unixTime()) z += ''; if (p == 'returnExpire' && l[p] > unixTime()) z += ''; if (p == 'troopUpkeepReductExp' && l[p] > unixTime()) z += ''; if (p == 'fogExpire' && l[p] > unixTime()) z += ''; } } z += '
    " + Cities.cities[i].name.substring(0, 11) + '
    ' + coordLink(Cities.cities[i].x, Cities.cities[i].y) + "
    " + uW.provincenames['p' + Cities.cities[i].provId]; cityID = 'city' + Cities.cities[i].id; Gate = parseInt(Seed.citystats[cityID].gate); if (Gate == 0) z += '
    Hiding
    ' + ((a != 5) ? uW.resourceinfo['rec' + a] : uW.resourceinfo['7']) + ':
    ' + addCommas(total) + '' + addCommasInt((a != 5) ? Seed.resources["city" + Seed.cities[b][0]]['rec' + a][0] / 3600 : Seed.resources["city" + Seed.cities[b][0]]['rec' + a][0]) + '
    ' + uW.g_js_strings.showResourceTooltip.caplimit + ':'; var kntId = uW.seed.leaders["city" + Seed.cities[b][0]].resourcefulnessKnightId; var kntresful = 0; if (kntId > 0) trkntresful = trkntres; if (a == 5) { var aethcapinc = 0; aethcapinc += equippedthronestats(88); var equippedItems = equippedthroneItems(equippedItems); var currSet = uW.cm.ThroneController.hasFactionBonus(equippedItems); if (currSet.hazBonus && currSet.faction === "fey") aethcapinc += uW.cm.ThroneController.effectBonus(95); var aethercap = Math.round(2000000 * (1 + Math.min(aethcapinc, unsafeWindow.cm.thronestats.boosts["ResourceCap"].Max) / 100)); z += (aethercap > parseInt(Seed.resources["city" + Seed.cities[b][0]]['rec' + a][0])) ? '' : ''; z += addCommas(aethercap); } else { if (parseInt(Seed.resources["city" + Seed.cities[b][0]]['rec' + a][1] / 3600) > parseInt(Seed.resources["city" + Seed.cities[b][0]]['rec' + a][0] / 3600)) z += ''; else z += ''; z += addCommas(parseInt(Seed.resources["city" + Seed.cities[b][0]]['rec' + a][1] / 3600)); } z += '
    ' + uW.g_js_strings.showResourceTooltip.hrprod + ':' + addCommas(parseInt(rp[a] - usage + bp * (trprod[a]) / 100)) + '
    ' + uW.g_js_strings.commonstr.upkeep + ':----'; else z += ' '; z += timestrShort(timeLeft) + '
    ' + uW.g_js_strings.commonstr.marching + ':' + addCommas(recmarching) + '
     
    ' + uW.g_js_strings.commonstr.gold + ':
    ' + addCommas(goldtotal) + '' + addCommas(Seed.citystats["city" + Seed.cities[b][0]]['gold'][0]) + '
    ' + uW.g_js_strings.showGoldTooltip.netincome + ':' + addCommas(g + h) + '
     
    ' + uW.g_js_strings.showPopTooltip.idlepop + ':' + addCommas(k) + '' + addCommas(k) + '
     
    ' + uW.g_js_strings.showMyWilderness.conqueredwild + ':' + totWilds + '/' + castle + ''; else z += '' + totWilds + '/' + castle + ''; } z += '
    ' + wildtype + '' + total + '
     
    ' + uW.g_js_strings.commonstr.boost + ':
    ' + uW.resourceinfo['rec' + 0] + '' + timestr((l[p] - unixTime())) + '
    ' + uW.resourceinfo['rec' + 1] + '' + timestr((l[p] - unixTime())) + '
    ' + uW.resourceinfo['rec' + 2] + '' + timestr((l[p] - unixTime())) + '
    ' + uW.resourceinfo['rec' + 3] + '' + timestr((l[p] - unixTime())) + '
    ' + uW.resourceinfo['rec' + 4] + '' + timestr((l[p] - unixTime())) + '
    ' + uW.g_js_strings.commonstr.attack + '' + timestr((l[p] - unixTime())) + '
    ' + uW.g_js_strings.commonstr.defend + '' + timestr((l[p] - unixTime())) + '
    ' + uW.g_js_strings.modal_barracks_train.load + '' + timestr((l[p] - unixTime())) + '
    ' + uW.g_js_strings.commonstr.returning + '' + timestr((l[p] - unixTime())) + '
    ' + uW.g_js_strings.commonstr.upkeep + '' + timestr((l[p] - unixTime())) + '
    ' + uW.itemlist.i10021.name + '' + timestr((l[p] - unixTime())) + '
    '; t.Overv.innerHTML = z; t.displayTimer = setTimeout(t.showResources, 1000); }, showTroops: function () { var t = Tabs.OverView; t.Overv.innerHTML = null; t.Overv.style.maxHeight = '650px'; t.Overv.style.overflowY = 'scroll'; t.Overv.style.maxWidth = '745px'; t.Overv.style.overflowX = 'scroll'; var n = ""; for (i = 0; i < Cities.numCities; i++) { n += ""; } for (var ui in uW.cm.UNIT_TYPES) { a = uW.cm.UNIT_TYPES[ui]; var total = 0; var marching = 0; var raiding = 0; var tottraining = 0; for (b = 0; b < Cities.numCities; b++) { var train = Seed.queue_unt['city' + Seed.cities[b][0]]; if (train != []) for (c in train) if (train[c][0] == a) tottraining += parseInt(train[c][1]); } if (tottraining > 0) var rowsp = 3; else var rowsp = 2; n += ''; for (b = 0; b < Cities.numCities; b++) total += parseInt(Seed.units['city' + Seed.cities[b][0]]['unt' + a]); if (total > 0) n += ''; else n += ''; for (b = 0; b < Cities.numCities; b++) { if (Seed.units['city' + Seed.cities[b][0]]['unt' + a] > 0) n += ''; else n += ''; } n += ''; for (b = 0; b < Cities.numCities; b++) { marching = 0; raiding = 0; var atkp = Seed.queue_atkp['city' + Seed.cities[b][0]]; if (atkp != []) { for (c in atkp) { if (atkp[c]['marchType'] == 9) raiding += (parseInt(atkp[c]['unit' + a + 'Count']) + parseInt(atkp[c]['unit' + a + 'Return'])); else if (atkp[c]['marchType'] != undefined) marching += parseInt(atkp[c]['unit' + a + 'Count']); } if (marching > 0 || raiding > 0) { n += ''; } else n += ''; } } if (tottraining > 0) { n += ''; for (b = 0; b < Cities.numCities; b++) { training = 0; var train = Seed.queue_unt['city' + Seed.cities[b][0]]; if (train != []) { for (c in train) if (train[c][0] == a) training += parseInt(train[c][1]); if (training > 0) { n += ''; } else n += ''; } } n += ''; } } n += ''; n += ''; for (b = 0; b < Cities.numCities; b++) { var knights = 0; var knightscity = Seed.knights['city' + Seed.cities[b][0]]; if (knightscity != []) for (c in knightscity) if (knightscity[c]['knightId'] > 0) knights++; n += ''; } n += ''; for (b = 0; b < Cities.numCities; b++) { var combat = 0; var knightscity = Seed.knights['city' + Seed.cities[b][0]]; if (knightscity != []) for (c in knightscity) if (knightscity[c]['combat'] > combat) if (Seed.leaders['city' + Seed.cities[b][0]]['combatKnightId'] != knightscity[c]['knightId']) combat = knightscity[c]['combat']; n += ''; } n += ''; n += ''; for (b = 0; b < Cities.numCities; b++) { var time = 0; now = unixTime(); var unt = Seed.queue_unt['city' + Seed.cities[b][0]]; //alert(unt.length); if (unt != null && unt.length > 0) time = (unt[unt.length - 1][3] - now); if (time < 0) time = 0; if (time < 3600) n += ''; else n += ''; } n += '
    " + Cities.cities[i].name.substring(0, 11) + '
    ' + coordLink(Cities.cities[i].x, Cities.cities[i].y) + "
    " + uW.provincenames['p' + Cities.cities[i].provId] + "
    ' + addCommas(total) + ' ' + addCommas(Seed.units['city' + Seed.cities[b][0]]['unt' + a]) + '
    ' + uW.g_js_strings.commonstr.marching + '' + addCommas(marching) + ' / '; n += addCommas(raiding) + '
    ' + uW.g_js_strings.modal_openBarracks.trainingttl + '' + addCommas(training) + '
     
    ' + uW.g_js_strings.openKnights.myknights + ':' + knights + '
    ' + uW.g_js_strings.commonstr.combat + ':' + combat + '
     
    ' + uW.g_js_strings.modal_barracks_trainingtab.totaltraintime + ':' + timestr(time) + '' + timestr(time) + '
    '; t.Overv.innerHTML = n; document.getElementById('TEST').addEventListener('click', function () { /* var params = uW.Object.clone(uW.g_ajaxparams); new AjaxRequest(uW.g_ajaxpath + "/fb/e2/src/main_src.php?g=&y=0&n=nan001&l=nl_NL&messagebox=&standalone=0&res=1&iframe=1&lang=en&ts=1304248288.7067&s=250&appBar=" + uW.g_ajaxsuffix, { method: "POST", parameters: params, onSuccess: function (rslt) { var mainSrcHTMLCode = rslt.responseText; var myregexp = /var seed=\{.*?\};/; var match = myregexp.exec(mainSrcHTMLCode); if (match != null) { result = match[0]; result = result.substr(4); var seed = eval(result); uW.document.seed = seed; Seed = seed; uW.seed = seed; document.getElementById('update').style.background ='#99FF99'; setTimeout(function(){ (document.getElementById('update').style.background ='#FFFFF'); }, 1000); } }, onFailure: function () { if (notify != null) notify(rslt.errorMsg); }, }); */ Tabs.Options.updateAll(); }, false); t.displayTimer = setTimeout(t.showTroops, 1000); }, showBuilds: function () { var t = Tabs.OverView; clearTimeout(t.displayTimer); t.Overv.innerHTML = null; t.Overv.style.maxHeight = '650px'; t.Overv.style.overflowY = 'scroll'; t.Overv.style.maxWidth = '745px'; t.Overv.style.overflowX = 'scroll'; var wall = 0; var blacksmith = 0; var fletching = 0; var geometry = 0; var metalalloys = 0; var logging = 0; var poisonededge = 0; var FieldSpace = { 1: 13, 2: 16, 3: 19, 4: 22, 5: 25, 6: 28, 7: 31, 8: 34, 9: 37, 10: 40, 11: 41, 12: 42 }; fertilizer = Seed.tech['tch1']; logging = Seed.tech['tch2']; stoneworking = Seed.tech['tch3']; mining = Seed.tech['tch4']; geometry = Seed.tech['tch5']; eagleeyes = Seed.tech['tch6']; poisonededge = Seed.tech['tch8']; metalalloys = Seed.tech['tch9']; featherweightpowder = Seed.tech['tch10']; magicalmapping = Seed.tech['tch11']; alloyhorseshoes = Seed.tech['tch12']; fletching = Seed.tech['tch13']; shrinkingpowder = Seed.tech['tch14']; healingpotions = Seed.tech['tch15']; giantsstrength = Seed.tech['tch16']; var m = '
    '; m += ""; for (i = 0; i < Cities.numCities; i++) { m += ""; } m += ''; for (i = 0; i < Seed.cities.length; i++) { city = 'city' + Seed.cities[i][0]; m += ''; } m += ''; m += ''; for (i = 0; i < Seed.cities.length; i++) { city = 'city' + Seed.cities[i][0]; m += ''; } m += ''; m += ''; for (i = 0; i < Seed.cities.length; i++) { city = 'city' + Seed.cities[i][0]; for (y in Seed.buildings[city]) { if (Seed.buildings[city][y][0] == 15) blacksmith = Seed.buildings[city][y][1]; } if (Seed.buildings[city].pos1 == null) wall = 0; else wall = parseInt(Seed.buildings[city].pos1[1]); var WallSpace = 0; for (var b = 1; b < (wall + 1); b++) { WallSpace += (b * 3000) }; max = WallSpace / 2 / 2 - parseInt(Seed.fortifications[city]["fort53"]) - parseInt(Seed.fortifications[city]["fort55"]); m += ''; else if (t.showReq) { if (wall < 6) m += '
    Wall: ' + wall + '(6)'; if (blacksmith < 6) m += '
    BlackS.: ' + blacksmith + '(6)'; if (fletching < 5) m += '
    Fletch.: ' + fletching + '(5)'; m += ''; } } m += ''; for (i = 0; i < Seed.cities.length; i++) { city = 'city' + Seed.cities[i][0]; for (y in Seed.buildings[city]) { if (Seed.buildings[city][y][0] == 15) blacksmith = Seed.buildings[city][y][1]; } if (Seed.buildings[city].pos1 == null) wall = 0; else wall = parseInt(Seed.buildings[city].pos1[1]); var WallSpace = 0; for (var b = 1; b < (wall + 1); b++) { WallSpace += (b * 3000) }; max = WallSpace / 2 / 4 - parseInt(Seed.fortifications[city]["fort53"]) - parseInt(Seed.fortifications[city]["fort55"]); m += ''; else if (t.showReq) { if (wall < 8) m += '
    Wall: ' + wall + '(8)'; if (blacksmith < 8) m += '
    BlackS.: ' + blacksmith + '(8)'; if (fletching < 7) m += '
    Fletch.: ' + fletching + '(7)'; if (geometry < 7) m += '
    Geomet.: ' + geometry + '(7)'; m += ''; } } m += ''; for (i = 0; i < Seed.cities.length; i++) { city = 'city' + Seed.cities[i][0]; if (Seed.buildings[city].pos1 == null) wall = 0; else wall = parseInt(Seed.buildings[city].pos1[1]); build = (parseInt(Seed.fortifications[city]["fort53"]) * 2) + (parseInt(Seed.fortifications[city]["fort55"]) * 4); var WallSpace = 0; for (var b = 1; b < (wall + 1); b++) { WallSpace += (b * 3000) }; max = WallSpace / 2; if (build < max) m += ''; } m += ''; for (i = 0; i < Seed.cities.length; i++) { city = 'city' + Seed.cities[i][0]; for (y in Seed.buildings[city]) { if (Seed.buildings[city][y][0] == 15) blacksmith = Seed.buildings[city][y][1]; } if (Seed.buildings[city].pos1 == null) wall = 0; else wall = parseInt(Seed.buildings[city].pos1[1]); var WallSpace = 0; for (var b = 1; b < (wall + 1); b++) { WallSpace += (b * 3000) }; max = WallSpace / 2 / 4 - (parseInt(Seed.fortifications[city]["fort60"]) * 4) - (parseInt(Seed.fortifications[city]["fort61"]) * 1) - (parseInt(Seed.fortifications[city]["fort62"]) * 3); m += ''; else if (t.showReq) { if (wall < 4) m += '
    Wall: ' + wall + '(4)'; if (blacksmith < 4) m += '
    BlackS.: ' + blacksmith + '(4)'; if (poisonededge < 4) m += '
    Poison.: ' + poisonededge + '(4)'; m += ''; } } m += ''; for (i = 0; i < Seed.cities.length; i++) { city = 'city' + Seed.cities[i][0]; for (y in Seed.buildings[city]) { if (Seed.buildings[city][y][0] == 15) blacksmith = Seed.buildings[city][y][1]; } if (Seed.buildings[city].pos1 == null) wall = 0; else wall = parseInt(Seed.buildings[city].pos1[1]); var WallSpace = 0; for (var b = 1; b < (wall + 1); b++) { WallSpace += (b * 3000) }; max = WallSpace / 2 / 1 - (parseInt(Seed.fortifications[city]["fort60"]) * 4) - (parseInt(Seed.fortifications[city]["fort61"]) * 1) - (parseInt(Seed.fortifications[city]["fort62"]) * 3); m += ''; else if (t.showReq) { if (wall < 1) m += '
    Wall: ' + wall + '(1)'; if (metalalloys < 1) m += '
    Metal.: ' + metalalloys + '(1)'; m += ''; } } m += ''; for (i = 0; i < Seed.cities.length; i++) { city = 'city' + Seed.cities[i][0]; for (y in Seed.buildings[city]) { if (Seed.buildings[city][y][0] == 15) blacksmith = Seed.buildings[city][y][1]; } if (Seed.buildings[city].pos1 == null) wall = 0; else wall = parseInt(Seed.buildings[city].pos1[1]); var WallSpace = 0; for (var b = 1; b < (wall + 1); b++) { WallSpace += (b * 3000) }; max = (WallSpace / 2 / 3).toFixed(0) - (parseInt(Seed.fortifications[city]["fort60"]) * 4) - (parseInt(Seed.fortifications[city]["fort61"]) * 1) - (parseInt(Seed.fortifications[city]["fort62"]) * 3); m += ''; else if (t.showReq) { if (wall < 2) m += '
    Wall: ' + wall + '(2)'; if (blacksmith < 2) m += '
    BlackS.: ' + blacksmith + '(2)'; if (logging < 2) m += '
    Logg.: ' + logging + '(2)'; m += ''; } } m += ''; for (i = 0; i < Seed.cities.length; i++) { city = 'city' + Seed.cities[i][0]; if (Seed.buildings[city].pos1 == null) wall = 0; else wall = parseInt(Seed.buildings[city].pos1[1]); build = (parseInt(Seed.fortifications[city]["fort60"]) * 4) + (parseInt(Seed.fortifications[city]["fort61"]) * 1) + (parseInt(Seed.fortifications[city]["fort62"]) * 3); var WallSpace = 0; for (var b = 1; b < (wall + 1); b++) { WallSpace += (b * 3000) }; max = WallSpace / 2; if (build < max) m += ''; } m += ''; // to do: change to match ascended cities (city center) m += ''; for (i = 0; i < Seed.cities.length; i++) { var count = 0; city = 'city' + Seed.cities[i][0]; for (y in Seed.buildings[city]) { if (Seed.buildings[city][y][0] >= 5 && Seed.buildings[city][y][0] <= 21 && Seed.buildings[city][y][0] != 19) count++; } if (count == 31) m += ''; } m += ''; // to do: change to match ascended cities (fields vs. resource points) m += ''; for (i = 0; i < Seed.cities.length; i++) { var count = 0; var castle = 0; city = 'city' + Seed.cities[i][0]; for (y in Seed.buildings[city]) { if (Seed.buildings[city][y][0] == 0) castle = Seed.buildings[city][y][1]; if (Seed.buildings[city][y][0] >= 1 && Seed.buildings[city][y][0] <= 4) count++; } if (count == FieldSpace[castle]) m += ''; } m += ''; for (b = 0; b <= 27; b++) { m += ''; for (c = 0; c < Seed.cities.length; c++) { var cid = Seed.cities[c][0]; var fid = 0; if (Seed.cityData.city[cid].isPrestigeCity == true) { fid = Seed.cityData.city[cid].prestigeInfo.prestigeType; } m += ''; } m += ''; } m += ''; for (i = 0; i < Cities.numCities; i++) {} m += ''; for (i = 0; i < Seed.cities.length; i++) { for (g = 0; g < Seed.guardian.length; g++) { if (Seed.guardian[g]['cityId'] == Seed.cities[i][0] && Seed.guardian[g]['level'] != 0) { m += '"; if (Seed.guardian[g]['level'] >= 9) m += ''; } else { if (Seed.guardian[g]['cityId'] == Seed.cities[i][0] && Seed.guardian[g]['level'] == 0) m += '' }; } } m += '
    Show missing req." + Cities.cities[i].name.substring(0, 11) + "
    " + coordLink(Cities.cities[i].x, Cities.cities[i].y) + "
    Building'; if (Seed.queue_con[city][0] != undefined) { m += uW.buildingcost['bdg' + Seed.queue_con[city][0][0]][0]; m += ' (' + Seed.queue_con[city][0][1] + ')'; m += '
    ' + timestr((Seed.queue_con[city][0][4] - unixTime()), true); } m += '
    Researching'; if (Seed.queue_tch[city][0] != undefined) { m += uW.techcost['tch' + Seed.queue_tch[city][0][0]][0]; m += ' (' + Seed.queue_tch[city][0][1] + ')'; m += '
    ' + timestr((Seed.queue_tch[city][0][3] - unixTime()), true); } m += '
     
    ' + uW.fortcost['frt53'][0] + '' + Seed.fortifications[city]["fort53"]; if (wall >= 6 && blacksmith >= 6 && fletching >= 5 && max > 0) m += '
    Left: ' + max + '
    ' + uW.fortcost['frt55'][0] + '' + Seed.fortifications[city]["fort55"]; if (wall >= 8 && blacksmith >= 8 && fletching >= 7 && geometry >= 7 && max > 0) m += '
    Left: ' + max + '
    Wall defences'; else m += ''; m += build + ''; m += '/' + max + '
    ' + uW.fortcost['frt60'][0] + '' + Seed.fortifications[city]["fort60"]; if (wall >= 4 && blacksmith >= 4 && poisonededge >= 4 && max > 0) m += '
    Left: ' + max + '
    ' + uW.fortcost['frt61'][0] + '' + Seed.fortifications[city]["fort61"]; if (wall >= 1 && metalalloys >= 1 && max > 0) m += '
    Left: ' + max + '
    ' + uW.fortcost['frt62'][0] + '' + Seed.fortifications[city]["fort62"]; if (wall >= 2 && blacksmith >= 2 && logging >= 2 && max > 0) m += '
    Left: ' + max + '
    Field defences'; else m += ''; m += build + ''; m += '/' + max + '
     
    City space'; else m += ''; m += count + ' (31)
    Field space'; else m += ''; m += count + ' (' + FieldSpace[castle] + ')
    ' + uW.buildingcost['bdg' + b][0] + ''; city = 'city' + Seed.cities[c][0]; var count = 0; for (y in Seed.buildings[city]) { if (Seed.buildings[city][y][0] == b) { count++; if (count > 1) m += ","; if (Seed.buildings[city][y][1] >= 9) m += ''; m += Seed.buildings[city][y][1]; if (Seed.buildings[city][y][1] >= 9) m += ''; } } if (count == 0) { if ((b == 21 && fid == 1) || ((b == 22 || b == 23) && fid != 1) || ((b == 24 || b == 25) && fid != 2) || ((b == 26 || b == 27) && fid != 3)) { m += '-'; } else { m += '0'; } } m += '
     
    Guardians'; if (Seed.guardian[g]['level'] >= 9) m += ''; m += Seed.guardian[g]['level'] + "(" + Seed.guardian[g]['type'] + ")0


    '; for (i in uW.techcost) { m += ''; break; case '2': if (alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (sawmill < Seed.tech[i]) m += '
    Sawmill ' + sawmill + '(' + (Seed.tech[i]) + ')'; break; case '3': if (alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (quarry < Seed.tech[i]) m += '
    Quarry ' + quarry + '(' + (Seed.tech[i]) + ')'; break; case '4': if (alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (mine < Seed.tech[i]) m += '
    Mine ' + mine + '(' + (Seed.tech[i]) + ')'; break; case '5': if (alchemylab < 3) m += '
    Alchemy Lab ' + alchemylab + '(3)'; if (alchemylab >= 3 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (workshop < Seed.tech[i]) m += '
    Workshop ' + workshop + '(' + (Seed.tech[i]) + ')'; if (stoneworking < 2) m += '
    Stoneworking ' + stoneworking + '(2)'; break; case '6': if (alchemylab < 3) m += '
    Alchemy Lab ' + alchemylab + '(3)'; if (alchemylab >= 3 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; break; case '8': if (alchemylab < 2) m += '
    Alchemy Lab ' + alchemylab + '(2)'; if (alchemylab >= 2 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (barracks < 2) m += '
    Barracks ' + barracks + '(2)'; break; case '9': if (alchemylab < 3) m += '
    Alchemy Lab ' + alchemylab + '(3)'; if (alchemylab >= 3 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (blacksmith < Seed.tech[i]) m += '
    Blacksmith ' + blacksmith + '(' + (Seed.tech[i]) + ')'; if (mining < Seed.tech[i]) m += '
    Mining ' + mining + '(' + (Seed.tech[i]) + ')'; break; case '10': if (alchemylab < 4) m += '
    Alchemy Lab ' + alchemylab + '(4)'; if (alchemylab >= 4 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; break; case '11': if (alchemylab < 4) m += '
    Alchemy Lab ' + alchemylab + '(4)'; if (alchemylab >= 4 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; break; case '12': if (alchemylab < 5) m += '
    Alchemy Lab ' + alchemylab + '(5)'; if (alchemylab >= 5 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (stable < Seed.tech[i]) m += '
    Stable ' + stable + '(' + (Seed.tech[i] + 1) + ')'; if (metalalloys < Seed.tech[i]) m += '
    Metal Alloys ' + metalalloys + '(' + (Seed.tech[i] + 1) + ')'; break; case '13': if (alchemylab < 4) m += '
    Alchemy Lab ' + alchemylab + '(4)'; if (alchemylab >= 4 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (logging < 4) m += '
    Logging ' + logging + '(4)'; break; case '14': if (alchemylab < 6) m += '
    Alchemy Lab ' + alchemylab + '(6)'; if (alchemylab >= 6 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (storehouse < Seed.tech[i]) m += '
    Storehouse ' + storehouse + '(' + (Seed.tech[i]) + ')'; if (logging < 3) m += '
    Logging ' + logging + '(3)'; break; case '15': if (alchemylab < 6) m += '
    Alchemy Lab ' + alchemylab + '(6)'; if (alchemylab >= 6 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (featherweightpowder < 3) m += '
    Featherweight Powder ' + featherweightpowder + '(3)'; break; case '16': if (alchemylab < 5) m += '
    Alchemy Lab ' + alchemylab + '(5)'; if (alchemylab >= 5 && alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (logging < 5) m += '
    Logging ' + logging + '(5)'; if (geometry < 2) m += '
    Geometry ' + geometry + '(2)'; break; } m += ''; } m += ''; } m += '
    ' + uW.techcost[i][0] + ''; if (Seed.tech[i] >= 9) m += ''; if (Seed.tech[i] == 0) m += ''; m += Seed.tech[i]; if (Seed.tech[i] >= 9 || Seed.tech[i] == 0) m += ''; if (t.showReq) { for (z = 0; z < Seed.cities.length; z++) { city = 'city' + Seed.cities[z][0]; for (y in Seed.buildings[city]) { var farm, sawmill, quarry, mine, alchemylab, workshop, blacksmith, stable, storehouse, barracks = 0; if (Seed.buildings[city][y][0] == 1 && Seed.buildings[city][y][0] > farm) farm = Seed.buildings[city][y][1]; if (Seed.buildings[city][y][0] == 2 && Seed.buildings[city][y][0] > sawmill) sawmill = Seed.buildings[city][y][1]; if (Seed.buildings[city][y][0] == 3 && Seed.buildings[city][y][0] > quarry) quarry = Seed.buildings[city][y][1]; if (Seed.buildings[city][y][0] == 4 && Seed.buildings[city][y][0] > mine) mine = Seed.buildings[city][y][1]; if (Seed.buildings[city][y][0] == 9) storehouse = Seed.buildings[city][y][1]; if (Seed.buildings[city][y][0] == 11) alchemylab = Seed.buildings[city][y][1]; if (Seed.buildings[city][y][0] == 13 && Seed.buildings[city][y][0] > barracks) barracks = Seed.buildings[city][y][1]; if (Seed.buildings[city][y][0] == 15) blacksmith = Seed.buildings[city][y][1]; if (Seed.buildings[city][y][0] == 16) workshop = Seed.buildings[city][y][1]; if (Seed.buildings[city][y][0] == 17) stable = Seed.buildings[city][y][1]; } } m += ''; switch (i) { case '1': if (alchemylab < Seed.tech[i]) m += '
    Alchemy Lab ' + alchemylab + '(' + (Seed.tech[i]) + ')'; if (farm < Seed.tech[i]) m += '
    Farm ' + farm + '(' + (Seed.tech[i] + 1) + ')

    '; m += ''; for (i in uW.techcost2) { m += ''; m += ''; } m += '
    ' + uW.techcost2[i][0] + ''; if (Seed.tech2[i] >= 9) m += ''; if (Seed.tech2[i] == 0) m += ''; m += Seed.tech2[i]; if (Seed.tech2[i] >= 9 || Seed.tech2[i] == 0) m += ''; // to do: show missing requirements //if (t.showReq) {} m += '
    '; t.Overv.innerHTML = m; document.getElementById('showReq').addEventListener('change', function () { t.showReq = document.getElementById('showReq').checked; t.showBuilds(); }, false); t.displayTimer = setTimeout(t.showBuilds, 1000); }, showInfo: function () { var t = Tabs.OverView; t.Overv.innerHTML = null; t.Overv.style.maxHeight = '650px'; t.Overv.style.overflowY = 'scroll'; t.Overv.style.maxWidth = '745px'; t.Overv.style.overflowX = 'scroll'; clearTimeout(t.displayTimer); //Useful links var u = '
    USEFULL LINKS

    '; //Crest info var crestreq = { 3:{1101:4, 1102:2, 1103:1}, 4:{1103:4, 1104:3, 1105:1}, 5:{1106:4, 1107:3, 1108:2}, 6:{1109:4, 1110:3, 1111:2}, 7:{1112:4, 1113:3, 1114:2}, 8:{1115:4, 1120:3, 1121:2} }; u += '
    CREST INFO
    '; t.Overv.innerHTML = u; document.getElementById('ptButDebug').addEventListener('click', function () { debugWin.doit() }, false); }, paintOverview: function () { var rownum = 0; var t = Tabs.OverView; clearTimeout(Tabs.OverView.displayTimer); t.Overv.innerHTML = null; t.Overv.style.maxHeight = '650px'; t.Overv.style.overflowX = Options.overviewAllowOverflow ? 'visible' : 'scroll'; t.Overv.style.width = Options.overviewAllowOverflow ? '' : '745px'; t.Overv.style.maxWidth = Options.overviewAllowOverflow ? '' : '745px'; function _row(name, row, noTotal) { var t = Tabs.OverView; if (rownum++ % 2) style = ''; else style = ' style = "background: #e8e8e8"'; var tot = 0; var m = []; m.push(''); m.push(name); m.push('   '); if (noTotal) { m.push('  '); } else { for (i = 0; i < row.length; i++) tot += row[i]; m.push(''); if (name == 'Gold' || name == 'Food' || name == 'Wood' || name == 'Stone' || name == 'Ore' || name == 'Aetherstone') t.resTotal[name] = tot; else t.troopTotal[name] = tot; if (TEST_WIDE) m.push('X,'); m.push(addCommas(tot)); m.push(''); } for (i = 0; i < row.length; i++) { m.push(''); if (TEST_WIDE) m.push('X,'); m.push(addCommas(row[i])); m.push(''); } m.push(''); return m.join(''); } //DebugTimer.start(); try { if (Options.includeMarching) march = getMarchInfo(); if (Options.includeTrainingExt) train = getTrainInfo(); dt = new Date(); dt.setTime(Seed.player.datejoinUnixTime * 1000); str = "
    "; for (i = 0; i < Cities.numCities; i++) { str += ""; } if (Options.includeMarching) str += ''; if (Options.includeTrainingExt) str += ''; str += ""; str += ''; for (i = 0; i < Cities.numCities; i++) { cityID = 'city' + Cities.cities[i].id; Gate = parseInt(Seed.citystats[cityID].gate); if (Gate == 0) str += ''; else str += ''; } rows = []; rows[0] = []; for (i = 0; i < Cities.numCities; i++) { cityID = 'city' + Cities.cities[i].id; rows[0][i] = parseInt(Seed.citystats[cityID].gold[0]); } for (r = 1; r < 5; r++) { rows[r] = []; for (i = 0; i < Cities.numCities; i++) { cityID = 'city' + Cities.cities[i].id; rows[r][i] = parseInt(Seed.resources[cityID]['rec' + r][0] / 3600); } } rows[5] = []; for (i = 0; i < Cities.numCities; i++) { //Aetherstone cityID = 'city' + Cities.cities[i].id; rows[5][i] = parseInt(Seed.resources[cityID]['rec5'][0]); } if (Options.includeMarching) { for (var i = 0; i < 5; i++) rows[i][Cities.numCities] = march.resources[i]; //Aetherstone does not show up in march info } str += _row('Gold', rows[0]); str += _row('Food', rows[1]); str += _row('Wood', rows[2]); str += _row('Stone', rows[3]); str += _row('Ore', rows[4]); str += _row('Aetherstone', rows[5]); str += ''; for (r = 1; r < nTroopType + 1; r++) { rows[r] = []; for (i = 0; i < Cities.numCities; i++) { cityID = 'city' + Cities.cities[i].id; if (r < 19) rows[r][i] = parseIntNan(Seed.units[cityID]['unt' + r]); else rows[r][i] = parseIntNan(Seed.units[cityID]['unt' + (r + 2)]); } } var colnum = Cities.numCities; if (Options.includeMarching) { for (var i = 1; i < nTroopType + 1; i++) { if (i < 19) rows[i][colnum] = parseIntNan(march.marchUnits[i]); else rows[i][colnum] = parseIntNan(march.marchUnits[i + 2]); } colnum++; } if (Options.includeTrainingExt) { for (var i = 1; i < nTroopType + 1; i++) { if (i < 19) rows[i][colnum] = parseIntNan(train.trainUnts[i]); else rows[i][colnum] = parseIntNan(train.trainUnts[i + 2]); } } if (Options.includeTraining) { var q = Seed.queue_unt; for (i = 0; i < Cities.numCities; i++) { q = Seed.queue_unt['city' + Cities.cities[i].id]; if (q && q.length > 0) { for (qi = 0; qi < q.length; qi++) rows[q[qi][0]][i] += parseIntNan(q[qi][1]); } } } rownum = 0; str += _row('SupTrp', rows[1]); str += _row('Militia', rows[2]); str += _row('Scout', rows[3]); str += _row('Pike', rows[4]); str += _row('Sword', rows[5]); str += _row('Archer', rows[6]); str += _row('Cavalry', rows[7]); str += _row('Heavy', rows[8]); str += _row('Wagon', rows[9]); str += _row('Ballista', rows[10]); str += _row('Ram', rows[11]); str += _row('Catapult', rows[12]); str += _row('Bloodthorn', rows[13]); str += _row('Executioner', rows[14]); str += _row('Siege Wall', rows[15]); str += _row('Flame Archer', rows[16]); str += _row('Hussar', rows[17]); str += _row('Halberdier', rows[18]); str += _row('Onager', rows[19]); str += ''; row = []; for (i = 0; i < Cities.numCities; i++) { var rp = getResourceProduction(Cities.cities[i].id); var usage = parseInt(Seed.resources["city" + Cities.cities[i].id]['rec1'][3]); var bp = uW.cm.Resources.getProductionBase(1, Cities.cities[i].id); // // adjust for throne room bonuses var trupkeepreduce = 0; trupkeepreduce = Math.min(equippedthronestats(79), 33); var trprodres = equippedthronestats(82); var trprod = [0, 0, 0, 0, 0]; trprod[1] = Math.min(equippedthronestats(83) + trprodres, 2000); var upkbase = uW.cm.Resources.getUpkeep(1, Cities.cities[i].id) / (1 - trupkeepreduce / 100); usage = parseInt(usage - upkbase * trupkeepreduce / 100); row[i] = parseInt(rp[1] - usage + bp * trprod[1] / 100); } str += _row('Food +/-', row, true); for (i = 0; i < Cities.numCities; i++) { if (row[i] >= 0) row[i] = '----'; else { var timeLeft = parseInt(Seed.resources["city" + Cities.cities[i].id]['rec1'][0]) / 3600 / (0 - row[i]) * 3600; if (timeLeft > 86313600) row[i] = '----'; else { if (Options.enableFoodWarn && timeLeft < (Options.foodWarnHours * 3600)) row[i] = '' + timestrShort(timeLeft) + ''; else row[i] = timestrShort(timeLeft); } } } str += _row('Food left', row, true); row = []; for (i = 0; i < Cities.numCities; i++) { var cityAscended = []; cityAscended[i] = false; if (Seed.cityData.city[Cities.cities[i].id].isPrestigeCity) cityAscended[i] = true; //if (cityAscended[i]){ var baseValsByLevel = { 1: 100000, 2: 200000, 3: 300000, 4: 400000, 5: 500000, 6: 600000, 7: 700000, 8: 800000, 9: 900000, 10: 1000000, 11: 5000000, 12: 50000000 } var baseSthProt = []; for (k in Seed.buildings['city' + Cities.cities[i].id]) { if (Seed.buildings['city' + Cities.cities[i].id][k][0] == 9) { baseSthProt[i] = baseValsByLevel[Seed.buildings['city' + Cities.cities[i].id][k][1]]; } } //tch14 = shrinking powder.. var SthPrtResearch = parseInt(Seed.tech.tch14) var TRStHsBoost = Math.min(equippedthronestats(89), 1250); var totalSthPrt = [] var researchToApply = ((SthPrtResearch / 10) + 1) var TRBoostToApply = ((TRStHsBoost / 100) + 1) if (TRStHsBoost == 0) TRStHsBoost = 1 totalSthPrt[i] = addCommas(parseInt((baseSthProt[i] * researchToApply) * TRBoostToApply)) row[i] = totalSthPrt[i] /*}else{ row[i] = 'Not Coded'; } // if ascended */ } str += _row('StrHse Prot', row, true) str += ''; for (i = 0; i < Cities.numCities; i++) { var totWilds = 0; dat = Seed.wilderness['city' + Cities.cities[i].id]; if (dat != null && matTypeof(dat) == 'object') for (k in dat) ++totWilds; var castle = parseInt(Seed.buildings['city' + Cities.cities[i].id].pos0[1]); if (castle == 11) castle = 12; else if (castle == 12) castle = 14; if (totWilds < castle) row[i] = '' + totWilds + '/' + castle + ''; else row[i] = totWilds + '/' + castle; } str += _row('#Wilds', row, true); row = []; for (i = 0; i < Cities.numCities; i++) { totKnights = 0; dat = Seed.knights['city' + Cities.cities[i].id]; for (k in dat) ++totKnights; row[i] = totKnights; } str += _row('#Knights', row, true); var now = unixTime(); var row = []; var rowsp = []; var rowrev = []; for (i = 0; i < Cities.numCities; i++) { var totTime = 0; var totTime2 = 0; var q = Seed.queue_unt['city' + Cities.cities[i].id]; if (q != null && q.length > 0) totTime = q[q.length - 1][3] - now; if (totTime < 0) totTime = 0; row[i] = 0; rowsp[i] = 0; if (q != null && q.length > 0) { if (q[q.length - 1][7]) { row[i] = 0; if (totTime < 3600) rowsp[i] = '' + timestr(totTime) + ''; else rowsp[i] = timestr(totTime); } else { if (totTime < 3600) row[i] = '' + timestr(totTime) + ''; else row[i] = timestr(totTime); if (q.length > 1) { for (j = 2; j < q.length + 1; j++) { if (q[q.length - j][7]) { totTime2 = q[q.length - j][3] - now; if (totTime2 < 0) totTime2 = 0; if (totTime2 < 3600) rowsp[i] = '' + timestr(totTime2) + ''; else rowsp[i] = timestr(totTime2); break; } } } } } var qr = Seed.queue_revive['city' + Cities.cities[i].id]; if (qr != null && qr.length > 0) totTime = qr[qr.length - 1][3] - now; if (totTime < 0) totTime = 0; rowrev[i] = 0; if (qr != null && qr.length > 0) { if (totTime < 3600) rowrev[i] = '' + timestr(totTime) + ''; else rowrev[i] = timestr(totTime); } } str += _row('TroopQ', row, true); str += _row('SpecialTroopQ', rowsp, true); str += _row('ReviveQ', rowrev, true); var row = []; for (i = 0; i < Cities.numCities; i++) { var wall = {}; getWallInfo(Cities.cities[i].id, wall); var totTime = 0; var q = Seed.queue_fort['city' + Cities.cities[i].id]; if (q != null && q.length > 0) totTime = q[q.length - 1][3] - now; if (totTime < 0) totTime = 0; if (totTime < 1 && (wall.wallSpaceUsed < wall.wallSpace - 4 || wall.fieldSpaceUsed < wall.fieldSpace - 4)) row[i] = '' + timestr(totTime) + ''; else row[i] = timestr(totTime); } str += _row('WallQue', row, true); str += ''; str += ''; str += ''; str += '
    '; str += "
    TOTAL" + Cities.cities[i].name.substring(0, 11) + '
    ' + coordLink(Cities.cities[i].x, Cities.cities[i].y) + "
    " + unsafeWindow.provincenames['p' + Cities.cities[i].provId] + "
    MarchingTraining          
    HidingDefending




    Include Marching Troops/Resources
    Include troops in training in cities
    Include troops in training total
    Allow width overflow \     FONT SIZE: ' + htmlSelector({ 9: 9, 10: 10, 11: 11, 12: 12 }, Options.overviewFontSize, 'id=ptoverfont') + '
    "; str += 'Koc Power Tools Version:' + Version; t.Overv.innerHTML = str; document.getElementById('idCheck').addEventListener('click', e_clickEnableMarch, false); document.getElementById('ptoverIncTrain').addEventListener('click', e_clickEnableTraining, false); document.getElementById('ptoverIncTrainExt').addEventListener('click', e_clickEnableTrainingExt, false); document.getElementById('ptOverOver').addEventListener('click', e_allowWidthOverflow, false); document.getElementById('ptoverfont').addEventListener('change', e_fontSize, false); document.getElementById('ptpostres').addEventListener('click', postRes, false); document.getElementById('ptposttroop').addEventListener('click', postTroop, false); //DebugTimer.display ('Draw Overview'); } catch (e) { new CdialogCancelContinue('
    ' + inspect(e, 3, 1) + '
    ', null, null, true); t.Overv.innerHTML = '
    ' + e.name + ' : ' + e.message + ' on ' + e.lineNumber + '
    '; } t.displayTimer = setTimeout(t.paintOverview, 5000); function e_clickEnableMarch() { var t = Tabs.OverView; Options.includeMarching = document.getElementById('idCheck').checked; t.paintOverview(); } function e_clickEnableTraining() { var t = Tabs.OverView; Options.includeTraining = document.getElementById('ptoverIncTrain').checked; t.paintOverview(); } function e_clickEnableTrainingExt() { var t = Tabs.OverView; Options.includeTrainingExt = document.getElementById('ptoverIncTrainExt').checked; t.paintOverview(); } function e_fontSize(evt) { document.getElementById('ptOverOutput').style.fontSize = evt.target.value + 'px'; Options.overviewFontSize = evt.target.value; t.paintOverview(); } function e_allowWidthOverflow(evt) { var t = Tabs.OverView; var tf = document.getElementById('ptOverOver').checked; Options.overviewAllowOverflow = tf; if (tf) t.Overv.style.overflowX = 'visible'; else t.Overv.style.overflowX = 'auto'; t.paintOverview(); } function postRes() { var t = Tabs.OverView; var msg = ':::. Total Resources |' for (var key in t.resTotal) { msg += '||' + key + ': ' + addCommas(t.resTotal[key]); } msg += '|'; var automsg = sendChat('/a ' + msg); } function postTroop() { var t = Tabs.OverView; var msg = ':::. Total Troops |' for (var key in t.troopTotal) { msg += '||' + key + ': ' + addCommas(t.troopTotal[key]); } msg += '|'; var automsg = sendChat('/a ' + msg); } }, }; /*************** March Tab **********/ Tabs.Attaque = { cont: null, displayTimer: null, tabLabel: 'March', state: null, curTabBut: null, curTabName: null, BOAttackTimer: null, sourceCity: {}, destinationCity: {}, rows: [], iused: new Array(), init: function (div) { var t = Tabs.Attaque; t.cont = div; t.state = null; clearTimeout(t.displayTimer); }, getContent: function () { var t = Tabs.Attaque; return t.cont; }, hide: function () { var t = Tabs.Attaque; t.state = null; clearTimeout(t.displayTimer); }, show: function () { var t = Tabs.Attaque; setTimeout(t.Refreshtroops, 10000); var rownum = 0; var ModelCity = {}; if (t.state == null) { m = "
    QUICK MARCH TOOL
    "; m += "
    "; m += "\ \ \ \ \ \
    Auto select knight
        
    Source
    Destination
    X: Y:
    Fetch Members :
    Distance
     
    Closest City
    \
    "; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; m += ''; } var itemlist = [55, 57, 931, 932]; var BOitems = ""; for (var i = 0; i < itemlist.length; i++) { BOitems += "" + unsafeWindow.ksoItems[itemlist[i]].count + " "; } m += "
    Units SelectedAttack TimeReinforce Time
    ' + unsafeWindow.unitcost['unt' + r][0] + '  
    Knight : Champion : (use only for Attack)
    " + BOitems + "
    \
    Saved Unit Configuration :
    New :  \
    \
    Auto Attack - Work in Progress
    \ \
    Heure arrivée :
    "; t.cont.innerHTML = m; t.statpourRAA = ById('statpourRAA'); //Gestion des favoris t.Favoris = ById('BO_AT_Fav'); function metajourfavori() { t.Favoris.innerHTML = ""; var lisf = Options.AttackFav; for (var m in lisf) { var lis = lisf[m]; t.Favoris.innerHTML += ""; } } ById("ptmarch_autoknight").addEventListener('click', function () { Options.marchautoknight = this.checked; saveOptions(); t.show(); }, false); ById("BO_AT_Fav_RESET").addEventListener('click', function () { Options.AttackFav = {}; saveOptions(); metajourfavori(); }, false); ById("BO_AT_Fav_Sup").addEventListener('click', function () { numfav = ById("BO_AT_Fav").value; if (numfav != "") { Options.AttackFav[numfav] = {}; delete Options.AttackFav[numfav]; //Options.AttackFav=unset(Options.AttackFav, numfav); saveOptions(); metajourfavori(); } }, false); ById("BO_RAZ_Units").addEventListener('click', function () { for (var ui in uW.cm.UNIT_TYPES) ById("RAAnbunit" + uW.cm.UNIT_TYPES[ui]).value = 0; }, false); ById("BO_AT_Fav_ajou").addEventListener('click', function () { if (ById("BO_AT_Fav_Nom").value == "") { alert("Please fill in a name!"); return; } var a = ById("BO_AT_Fav_Nom").value; Options.AttackFav[a] = {}; var lisf = Options.AttackFav[a]; lisf[0] = ById("BO_AT_Fav_Nom").value; for (var ui in uW.cm.UNIT_TYPES) lisf[uW.cm.UNIT_TYPES[ui]] = ById("RAAnbunit" + uW.cm.UNIT_TYPES[ui]).value; ById("BO_AT_Fav_Nom").value = ""; saveOptions(); metajourfavori(); }, false); ById("BO_AT_Fav").addEventListener('change', function () { numfav = ById("BO_AT_Fav").value; if (numfav == "") { for (var ui in uW.cm.UNIT_TYPES) ById("RAAnbunit" + uW.cm.UNIT_TYPES[ui]).value = 0; } else { var lisf = Options.AttackFav[numfav]; for (var m in lisf) { if (m > 0) if (ById("RAAnbunit" + m)) ById("RAAnbunit" + m).value = lisf[m]; } } }, false); // Fin gestion des favoris ById("BOitem_55").addEventListener('click', function () { ById("BOitem_57").checked = false; t.estimerRes(); }, false); ById("BOitem_57").addEventListener('click', function () { ById("BOitem_55").checked = false; t.estimerRes(); }, false); t.statutRAA = ById('ptRAAStatus'); t.destinationCityx = ById('RAAtypetrpx'); t.destinationCityy = ById('RAAtypetrpy'); t.destinationCityx.value = Options.Xrenfort; t.destinationCityy.value = Options.Yrenfort; if (ById('maparea_map').style.display != "none") { t.destinationCityx.value = ById('mapXCoor').value; t.destinationCityy.value = ById('mapYCoor').value; } t.listeFavoris = ById('listeFavori'); t.listeFavoris.addEventListener('change', t.SelectFavoris, false); t.chargelistelieux = ById('BOchargelistelieux'); t.chargelistelieux.addEventListener('click', t.chercherFavoris, false); t.actionREN = ById('RENaction'); t.actionRENB = ById('RENBaction'); t.actionREE = ById('REEaction'); t.actionRAA = ById('RAAaction'); t.actionRAR = ById('RARaction'); t.actionREN.addEventListener('click', function () { t.clickATTAQUEDo(2, 0); }, false); t.actionRAA.addEventListener('click', function () { t.clickATTAQUEDo(4, 0); }, false); t.actionRAR.addEventListener('click', function () { t.clickATTAQUEDo(5, 0); }, false); t.actionRENB.addEventListener('click', function () { t.clickATTAQUEDo(2, 1); }, false); t.actionREE.addEventListener('click', function () { t.clickATTAQUEDo(3, 0); }, false); t.destinationCityx.addEventListener('change', function () { t.estimerRes(); }, false); t.destinationCityy.addEventListener('change', function () { t.estimerRes(); }, false); var dcp0 = new CdispCityPicker('ptRAA0', ById('RAAsrcRptspeedcity'), false, t.clickRAACitySourceSelect, Cities.byID[unsafeWindow.currentcityid].idx); t.estimerRes(); t.BOAttackProg = ById('BOAttackProg'); t.BOHorloge = ById('BOHorloge'); t.BOSaveAttack = ById('BOSaveAttack'); t.BOEditAttack = ById('BOEditAttack'); t.BOCompAttack = ById('BOCompAttack'); t.BOActiveAttack = ById('BOActiveAttack'); t.BOActiveAttack.addEventListener('click', t.AutoattackOnOff, false); t.BOSaveAttack.addEventListener('click', function () { var itemlist = [55, 57, 931, 932]; for (var i = 0; i < itemlist.length; i++) { ById('BOitemSpan_' + itemlist[i]).checked = false; } t.enregistreAttack(); }, false); if (Options.AttackCibleX != 0 && Options.AttackCibleY != 0) { t.BOEditAttack.disabled = false; } t.BOEditAttack.addEventListener('click', function () { t.destinationCityx.value = Options.AttackCibleX; t.destinationCityy.value = Options.AttackCibleY; ById("RAApiKnight").value = Options.AttackKnight; ById("RAApiChampion").value = Options.AttackChampion; nHtml.Click(ById("ptRAA0_" + Cities.byID[Options.AttackFromCity].idx)); for (var ui in uW.cm.UNIT_TYPES) ById("RAAnbunit" + uW.cm.UNIT_TYPES[ui]).value = Options.AttackUnits[parseInt(uW.cm.UNIT_TYPES[ui]) - 1]; }, false); metajourfavori(); if (Options.AttackOnOff) { t.BOActiveAttack.value = 'ACTIVER : ON'; t.activeAttack(); } t.clickRAACitySourceSelect(t.sourceCity); var closestNum = t.getclosestcity(); t.dcp1 = new CdispCityPicker('ptmarch_citydest', ById('BOVilleProche'), false, t.estimerRes, null).bindToXYboxes(ById("RAAtypetrpx"), ById("RAAtypetrpy")); } }, getclosestcity: function () { var t = Tabs.Attaque; var x1 = parseInt(t.sourceCity.x); var x2 = parseInt(t.destinationCityx.value); var y1 = parseInt(t.sourceCity.y); var y2 = parseInt(t.destinationCityy.value); var dist = distance(x1, y1, x2, y2); var closestDist = 999999; var closestLoc = null; var closestNum = 1; for (var c = 0; c < Cities.numCities; c++) { var city = Cities.cities[c]; var dist = distance(city.x, city.y, x2, y2); if (dist < closestDist) { closestDist = dist; closestLoc = city.x + ',' + city.y; closestNum = c; } } return closestNum; }, AutoattackOnOff: function () { // click click sur le bouton Activer le compte à rebour ! var t = Tabs.Attaque; t.BOCompAttack.innerHTML = ''; clearTimeout(t.BOAttackTimer); if (t.BOActiveAttack.value == 'ACTIVER : OFF') { t.BOActiveAttack.value = 'ACTIVER : ON'; Options.AttackOnOff = true; saveOptions(); t.activeAttack(); } else { Options.AttackOnOff = false; saveOptions(); t.BOActiveAttack.value = 'ACTIVER : OFF'; } }, activeAttack: function () { var t = Tabs.Attaque; clearTimeout(t.BOAttackTimer); if (Options.AttackGoHorloge) { var depart = new Date() depart.setTime(Options.AttackGoHorloge); var now = unixTime() * 1000; if (now >= Options.AttackGoHorloge) { t.BOCompAttack.innerHTML = '
    LANCEMENT ATTAQUE EFFECTUE
    '; t.destinationCityx.value = Options.AttackCibleX; t.destinationCityy.value = Options.AttackCibleY; ById("RAApiKnight").value = Options.AttackKnight; ById("RAApiChampion").value = Options.AttackChampion; nHtml.Click(ById("ptRAA0_" + Cities.byID[Options.AttackFromCity].idx)); for (var ui in uW.cm.UNIT_TYPES) ById("RAAnbunit" + uW.cm.UNIT_TYPES[ui]).value = Options.AttackUnits[parseInt(uW.cm.UNIT_TYPES[ui]) - 1]; t.clickATTAQUEDo(4, 0); clearTimeout(t.BOAttackTimer); Options.AttackGoHorloge = null; saveOptions(); } if (now > depart.getTime()) { t.BOCompAttack.innerHTML = '
    IMPOSSIBLE
    '; clearTimeout(t.BOAttackTimer); Options.AttackGoHorloge = null; saveOptions(); return false; } t.BOAttackTimer = setTimeout(function () { var depart = new Date(); depart.setTime(Options.AttackGoHorloge); var now = unixTime() * 1000; var tempsrestant = depart.getTime() - now; t.BOCompAttack.innerHTML = '
    ATTAQUE DANS ' + timestr(tempsrestant / 1000) + '
    '; t.activeAttack(); }, 1000); } }, enregistreAttack: function () { var t = Tabs.Attaque; if (t.BOHorloge.value.match("^[0-9]{2}:[0-9]{2}:[0-9]{2}$")) { var horloge = t.BOHorloge.value; Options.AttackHorloge = horloge; var ndate = new Date(); ndate.setHours(horloge.substr(0, 2)); ndate.setMinutes(horloge.substr(3, 2)); ndate.setSeconds(0); var atunits = new Array(); for (var ui in uW.cm.UNIT_TYPES) atunits.push(parseInt(ById("RAAnbunit" + uW.cm.UNIT_TYPES[ui]).value)); Options.AttackUnits = atunits; Options.AttackFromCity = t.sourceCity.id; Options.AttackKnight = ById("RAApiKnight").value; Options.AttackChampion = ById("RAApiChampion").value; Options.AttackCibleX = t.destinationCityx.value; Options.AttackCibleY = t.destinationCityy.value; var x1 = parseInt(t.sourceCity.x); var x2 = parseInt(t.destinationCityx.value); var y1 = parseInt(t.sourceCity.y); var y2 = parseInt(t.destinationCityy.value); var dist = distance(x1, y1, x2, y2); var tempplusgrand = 0; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; if (parseInt(ById("RAAnbunit" + r).value) > 0) { var m = estETA(dist, r, t.sourceCity.id); if (tempplusgrand < m.ETA) tempplusgrand = m.ETA; } } var departtime = ndate.getTime() - (tempplusgrand * 1000); var depart = new Date() depart.setTime(departtime); var now = unixTime() * 1000; if (now > depart.getTime()) { t.BOAttackProg.innerHTML = "Depart impossible !"; return false; } Options.AttackGoHorloge = depart.getTime(); saveOptions(); t.BOAttackProg.innerHTML = "Attaque sur " + Options.AttackCibleX + "," + Options.AttackCibleY + " enregistrée"; t.BOEditAttack.disabled = false; } else { t.BOAttackProg.innerHTML = "Mauvais format de l'horloge."; } }, clickATTAQUEDo: function (typemarche, bouffe) { var t = Tabs.Attaque; var totalunit = 0; if (typemarche == 3 && ById("RAAnbunit3").value == 0) ById("RAAnbunit3").value = 1; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; if (typemarche == 3 && r != 3) { ById("RAAnbunit" + r).value = 0; } if (parseInt(ById("RAAnbunit" + r).value) > parseInt(ById("RAAdestunit" + r).value)) { ById("RAAnbunit" + r).style.backgroundColor = "red"; return false; } totalunit = totalunit + parseInt(ById("RAAnbunit" + r).value); ById("RAAnbunit" + r).style.backgroundColor = ""; } var errMsg = ""; if (isNaN(t.destinationCityx.value) || t.destinationCityx.value < 0 || t.destinationCityx.value > 749) errMsg = "X coordinates must be between 0 and 749
    "; if (isNaN(t.destinationCityy.value) || t.destinationCityy.value < 0 || t.destinationCityy.value > 749) errMsg += "Y coordinates must be between 0 and 749
    "; if (ById("RAApiKnight").value == 0 && typemarche == 4) { errMsg += "No knight selected!
    "; } if (errMsg != "") { t.statutRAA.innerHTML = "" + errMsg + ""; return; } var x = t.destinationCityx.value; var y = t.destinationCityy.value; // On sauvegardes les coordonnes en cas de F5 t.SaveCoordsOptions(x, y); // Les objets pour l'attaque ! var e = 1; var f = unsafeWindow.unixtime(); if (Seed.playerEffects.aurasExpire) { if (Seed.playerEffects.aurasExpire > f) { e = 1.15 } } if (Seed.playerEffects.auras2Expire) { if (Seed.playerEffects.auras2Expire > f) { e = 1.3 } } var l_elem = ById("BOitem_931"); if (l_elem && l_elem.checked && parseInt(Seed.items["i931"]) > 0) { e += 0.25; } var l_elem = ById("BOitem_932"); if (l_elem && l_elem.checked && parseInt(Seed.items["i932"]) > 0) { e += 0.5; } var trmarchsizebuff = Math.floor(equippedthronestats(66)); if (trmarchsizebuff > unsafeWindow.cm.thronestats.boosts.MarchSize.Max) trmarchsizebuff = unsafeWindow.cm.thronestats.boosts.MarchSize.Max; if (trmarchsizebuff > 0) // e+=(trmarchsizebuff/100); e *= (1 + trmarchsizebuff / 100); if (unsafeWindow.seed.cityData.city[t.sourceCity.id].isPrestigeCity) { var b = unsafeWindow.seed.cityData.city[t.sourceCity.id].prestigeInfo.prestigeLevel; var r = unsafeWindow.cm.WorldSettings.getSetting("ASCENSION_RALLYPOINT_BOOST"), m = JSON.parse(r), u = m.values[b - 1][1], k = parseFloat(u); e *= k if (unsafeWindow.seed.cityData.city[t.sourceCity.id].prestigeInfo.blessings.indexOf(207) != -1) e *= 1.1; } var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); if (totalunit == 0) { t.statutRAA.innerHTML = 'You have no available units!'; return; } var niveauPointRall = parseInt(getCityBuilding(t.sourceCity.id, 12).maxLevel); // 12=Point de ralliement var maxtroupe = Math.round(niveauPointRall * 10000 * e - 0.001); if (niveauPointRall == 11) maxtroupe = Math.round(150000 * e - 0.001); if (niveauPointRall == 12) maxtroupe = Math.round(200000 * e - 0.001); if (totalunit > maxtroupe) { t.statutRAA.innerHTML = 'You can only send ' + maxtroupe + ' units.'; return; } var iused = new Array(); var itemlist = [55, 57, 931, 932]; for (var i = 0; i < itemlist.length; i++) { var l_elem = ById("BOitem_" + itemlist[i]); if (l_elem && l_elem.checked && parseInt(Seed.items["i" + itemlist[i]]) > 0) { iused.push(itemlist[i]); } } var res = 0; if (bouffe == 1) { for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; res += parseInt(unsafeWindow.unitstats['unt' + i][5] * ById("RAAnbunit" + i).value * (1 + (0.10 * Seed.tech.tch10) + Math.min(equippedthronestats(6) / 100, 6.25))); } } params.items = iused.join(","); params.cid = t.sourceCity.id; params.type = typemarche; // 5 = REASSIGNER - 4 = ATTAQUE - 2 = RENFORCER params.xcoord = x; params.ycoord = y; params.kid = ById("RAApiKnight").value; params.r1 = res - 1; // reduce max by 1 to avoid load capacity errors due to roundoff params.r2 = 0; params.r3 = 0; params.r4 = 0; params.gold = 0; params.champid = 0; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; params["u" + i] = 0; } if (typemarche != 3) { for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (ById("RAAnbunit" + i).value > 0) params["u" + i] = ById("RAAnbunit" + i).value; } } else { params.u3 = ById("RAAnbunit3").value; ById("RAAnbunit3").value = 0; } if (typemarche == 4) if (ById('RAApiChampion').value != "") { var championidx = ""; for (i = 0; i < Seed.champion.champions.length; i++) { if (Seed.champion.champions[i].championId == ById('RAApiChampion').value) championidx = i; } params.champid = ById('RAApiChampion').value; } t.actionRAA.disabled = true; t.actionREN.disabled = true; t.actionREE.disabled = true; t.statutRAA.innerHTML = "Sending march...."; new MyAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/march.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, loading: true, onSuccess: function (transport) { var t = Tabs.Attaque; var rslt = transport; if (rslt.ok) { var timediff = parseInt(rslt.eta) - parseInt(rslt.initTS); var rtimediff = parseInt(rslt.returnTS) - parseInt(rslt.initTS); var ut = unsafeWindow.unixtime(); var unitsarr = {}; for (var ui in unsafeWindow.cm.UNIT_TYPES){ i = unsafeWindow.cm.UNIT_TYPES[ui]; if (params["u" + i]) unitsarr[i] = params["u" + i]; else unitsarr[i] = 0; } var resources = new Array(); resources[0] = params.gold; for (i = 1; i <= 5; i++) { resources[i] = params["r" + i]; } var currentcityid = t.sourceCity.id; unsafeWindow.attach_addoutgoingmarch(rslt.marchId, rslt.marchUnixTime, ut + timediff, params.xcoord, params.ycoord, unitsarr, params.type, params.kid, resources, rslt.tileId, rslt.tileType, rslt.tileLevel, currentcityid, true, ut + rtimediff); if (rslt.updateSeed) { unsafeWindow.update_seed(rslt.updateSeed) }; for (var i = 0; i < iused.length; i++) { Seed.items["i" + iused[i]] = parseInt(Seed.items["i" + iused[i]]) - 1; unsafeWindow.ksoItems[iused[i]].subtract(); } var typeattaque = ""; switch (typemarche) { case 2: typeattaque = "Reinforce successful"; break; case 3: typeattaque = "Scout successful"; break; case 4: typeattaque = "Attack successful"; break; case 5: typeattaque = "Reassign successful"; break; default: typeattaque = "March successful"; } t.statutRAA.innerHTML = "
    " + typeattaque + "
    "; if (params.champid) uW.cm.ChampionManager.setIsMarching(championidx, true); t.clickRAACitySourceSelect(t.sourceCity); } else { t.statutRAA.innerHTML = "Error sending march!"; if (rslt.error_code && (rslt.error_code == 212 || rslt.error_code == 213)) { Seed.knights['city' + params.cid]['knt' + params.kid].knightStatus = 10; }; if (rslt.msg) { t.statutRAA.innerHTML += "
    " + rslt.msg + ""; } else { t.statutRAA.innerHTML += "
    Waiting for 2 seconds!"; //setTimeout(function() { t.clickATTAQUEDo(); }, 2000); } } t.actionRAA.disabled = false; t.actionREN.disabled = false; t.actionREE.disabled = false; }, onFailure: function () { var t = Tabs.Attaque; t.statutRAA.innerHTML = "Error communicating with server!"; t.actionRAA.disabled = false; t.actionREN.disabled = false; t.actionREE.disabled = false; } }, true); }, estimerRes: function () { var t = Tabs.Attaque; // CAlcul de ETA = Estimation du temps de marches var x1 = parseInt(t.sourceCity.x); var x2 = parseInt(t.destinationCityx.value); var y1 = parseInt(t.sourceCity.y); var y2 = parseInt(t.destinationCityy.value); var dist = distance(x1, y1, x2, y2); ById("BOEstimationD").innerHTML = '' + dist + ' (' + t.destinationCityx.value + ',' + t.destinationCityy.value + ')'; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; var m = estETA(dist, r, t.sourceCity.id); ById("BOEstimationTT" + r).innerHTML = "" + m.etaStr + ""; ById("BOEstimationTZ" + r).innerHTML = "" + m.friendEtaStr + ""; } }, SelectFavoris: function () { var t = Tabs.Attaque; if (t.listeFavoris.value != '') { var valeur = t.listeFavoris.value; var x = valeur.substr(0, valeur.lastIndexOf(',')); var y = valeur.substr(valeur.lastIndexOf(',') + 1, valeur.length); t.destinationCityx.value = x; t.destinationCityy.value = y; } t.estimerRes(); }, chercherFavoris: function () { var t = Tabs.Attaque; var myA = getMyAlliance(); if (myA[0] != 0) { var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.perPage = 100; params.allianceId = myA[0]; new MyAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/getUserLeaderboard.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { // on vide la liste //t.listeFavoris.innerHTML=null; if (rslt.ok) { var z = 0; var m = ""; for (var i = 0; i < rslt.results.length; i++) { p = rslt.results[i]; if (p.userId != 0) { for (var c = 0; c < p.cities.length; c++) { if (Seed.player.name != p.displayName) { m += ""; } } //fin for cities } //fin if user } //fin for resultat t.listeFavoris.innerHTML = "" + m; } // fin }, onFailure: function (rslt) { t.listeFavoris.innerHTML = ""; }, }); } else { // Si pas d'alliance ! t.listeFavoris.innerHTML = ""; } }, SaveCoordsOptions: function (x, y) { Options.Xrenfort = x; Options.Yrenfort = y; saveOptions(); }, Refreshtroops: function () { if (!ById("RAAstatsource")) return; var t = Tabs.Attaque; var cityID = 'city' + t.sourceCity.id; for (var ui in uW.cm.UNIT_TYPES) ById('RAAdestunit' + uW.cm.UNIT_TYPES[ui]).value = parseInt(Seed.units[cityID]['unt' + uW.cm.UNIT_TYPES[ui]]); setTimeout(t.Refreshtroops, 1000); }, clickRAACitySourceSelect: function (city) { var t = Tabs.Attaque; if (t.sourceCity != city) { t.sourceCity = city; } var m = ""; m = ""; var cityID = 'city' + t.sourceCity.id; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; m += '\ '; } m += "
    Units Available
    ' + unsafeWindow.unitcost['unt' + r][0] + ' \
    "; ById("RAAstatsource").innerHTML = m; var knt = new Array(); for (k in Seed.knights['city' + t.sourceCity.id]) { if (Seed.knights['city' + t.sourceCity.id][k]["knightStatus"] == 1 && Seed.leaders['city' + t.sourceCity.id]["resourcefulnessKnightId"] != Seed.knights['city' + t.sourceCity.id][k]["knightId"] && Seed.leaders['city' + t.sourceCity.id]["politicsKnightId"] != Seed.knights['city' + t.sourceCity.id][k]["knightId"] && Seed.leaders['city' + t.sourceCity.id]["combatKnightId"] != Seed.knights['city' + t.sourceCity.id][k]["knightId"] && Seed.leaders['city' + t.sourceCity.id]["intelligenceKnightId"] != Seed.knights['city' + t.sourceCity.id][k]["knightId"]) { knt.push({ Name: Seed.knights['city' + t.sourceCity.id][k]["knightName"], Combat: Seed.knights['city' + t.sourceCity.id][k]["combat"], ID: Seed.knights['city' + t.sourceCity.id][k]["knightId"], }); } } knt = knt.sort(function sort(a, b) { a = parseInt(a['Combat']); b = parseInt(b['Combat']); return a == b ? 0 : (a > b ? -1 : 1); }); ById('RAApiKnight').options.length = 0; var o = document.createElement("option"); o.text = "--Select a Knight--" o.value = 0; ById("RAApiKnight").options.add(o); for (k in knt) { if (knt[k]["Name"] != undefined) { var o = document.createElement("option"); o.text = (knt[k]["Name"] + ' (' + knt[k]["Combat"] + ')') o.value = knt[k]["ID"]; ById("RAApiKnight").options.add(o); } } if (ById('RAApiKnight').options.length > 0) { if (Options.marchautoknight) ById('RAApiKnight').selectedIndex = 1; } ById('RAApiChampion').options.length = 0; var o = document.createElement("option"); o.text = "--Select a Champion--"; o.value = 0; ById("RAApiChampion").options.add(o); var c = uW.cm.ChampionModalController.getCastleViewData(); var d = uW.cm.ChampionManager.getCityChampion(t.sourceCity.id); if ((c != null) && (d != null)) { var champname = c.champions[d].name; var champstatus = c.champions[d].status; if (champstatus == "Defending") { var o = document.createElement("option"); o.text = champname; o.value = c.champions[d].id; ById("RAApiChampion").options.add(o); } } var itemlist = [55, 57, 931, 932]; for (var i = 0; i < itemlist.length; i++) { ById('BOitemSpan_' + itemlist[i]).innerHTML = unsafeWindow.ksoItems[itemlist[i]].count; } for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; ById("RAApdestunit" + r).addEventListener('click', function () { var nomcha = this.id.replace("RAApdest", "RAAdest"); var nomcha2 = this.id.replace("RAApdestunit", "RAAnbunit"); ById(nomcha2).value = 0; var e = 1; var f = unsafeWindow.unixtime(); if (Seed.playerEffects.aurasExpire) { if (Seed.playerEffects.aurasExpire > f) { e = 1.15 } } if (Seed.playerEffects.auras2Expire) { if (Seed.playerEffects.auras2Expire > f) { e = 1.3 } } var l_elem = ById("BOitem_931"); if (l_elem && l_elem.checked && parseInt(Seed.items["i931"]) > 0) e += 0.25; var l_elem = ById("BOitem_932"); if (l_elem && l_elem.checked && parseInt(Seed.items["i932"]) > 0) e += 0.5; var trmarchsizebuff = Math.floor(equippedthronestats(66)); if (trmarchsizebuff > unsafeWindow.cm.thronestats.boosts.MarchSize.Max) trmarchsizebuff = unsafeWindow.cm.thronestats.boosts.MarchSize.Max; if (trmarchsizebuff > 0) // e+=(trmarchsizebuff/100); e *= (1 + trmarchsizebuff / 100); if (unsafeWindow.seed.cityData.city[t.sourceCity.id].isPrestigeCity) { var b = unsafeWindow.seed.cityData.city[t.sourceCity.id].prestigeInfo.prestigeLevel; var r = unsafeWindow.cm.WorldSettings.getSetting("ASCENSION_RALLYPOINT_BOOST"), m = JSON.parse(r), u = m.values[b - 1][1], k = parseFloat(u); e *= k if (unsafeWindow.seed.cityData.city[t.sourceCity.id].prestigeInfo.blessings.indexOf(207) != -1) e *= 1.1; } var niveauPointRall = parseInt(getCityBuilding(t.sourceCity.id, 12).maxLevel); // 12=Point de ralliement var maxtroupe = Math.round(niveauPointRall * 10000 * e - 0.001); if (niveauPointRall == 11) maxtroupe = Math.round(150000 * e - 0.001); if (niveauPointRall == 12) maxtroupe = Math.round(200000 * e - 0.001); var nbunitto = 0; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; nbunitto += parseInt(ById("RAAnbunit" + r).value); } var libre = parseInt(maxtroupe - nbunitto); if (ById(nomcha).value >= libre) { ById(nomcha2).value = libre; } else { ById(nomcha2).value = ById(nomcha).value; } }, false); } if (t.sourceCity != city) { for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; ById("RAAnbunit" + r).value = "0"; } } else { for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; if (ById("RAAnbunit" + r).value == "") ById("RAAnbunit" + r).value = "0"; if (ById("RAAdestunit" + r).value == "") ById("RAAdestunit" + r).value = "0"; if (parseInt(ById("RAAnbunit" + r).value) > parseInt(ById("RAAdestunit" + r).value)) { ById("RAAnbunit" + r).value = "0"; } } } t.estimerRes(); var closestNum = t.getclosestcity(); //if(t.dcp1) //t.dcp1.selectBut(closestNum); }, } function equippedthronestats(stat_id) { var current_slot = Seed.throne.activeSlot; var equip_items = Seed.throne.slotEquip[current_slot]; var total = 0; for (var k = 0; k < equip_items.length; k++) { var item_id = equip_items[k]; var y = unsafeWindow.kocThroneItems[item_id]; for (var O in y["effects"]) { var i = +(O.split("slot")[1]); var id = y["effects"]["slot" + i]["id"]; if (id == stat_id) { tier = parseInt(y["effects"]["slot" + i]["tier"]); level = y["level"]; p = unsafeWindow.cm.thronestats.tiers[id][tier]; while (!p && (tier > 0)) { tier--; p = unsafeWindow.cm.thronestats.tiers[id][tier]; } if (!p) continue; // can't find stats for tier if (i <= y["quality"]) var Percent = p.base + ((level * level + level) * p.growth * 0.5); total += Percent; } } } return total; } var equippedthroneItems = function (throneSet) { var thronePreset = Seed.throne.activeSlot; var equippedItems = {}; for (itm = 0; itm < Seed.throne.slotEquip[thronePreset].length; itm++) { // equippedItems[Seed.throne.slotEquip[thronePreset][itm]] = Seed.throne.inventory[Seed.throne.slotEquip[thronePreset][itm]]; equippedItems[Seed.throne.slotEquip[thronePreset][itm]] = unsafeWindow.kocThroneItems[Seed.throne.slotEquip[thronePreset][itm]]; } return equippedItems; } function estETA(dist, unit, cityID) { var ret = { ETA: 0, etaStr: 'N/D', friendETA: 0, friendEtaStr: 'N/D' }; if (dist <= 0) return ret; var troop_type = unit; var horse = 0; // if(troop_type>6) horse=1; if (troop_type > 6 && troop_type < 13) horse = 1; var troop_speed = parseInt(unsafeWindow.unitstats["unt" + troop_type][3]) * (1 + 0.1 * parseInt(Seed.tech.tch11)); if (horse) { troop_speed = troop_speed * (1 + 0.05 * parseInt(Seed.tech.tch12)) } var Speed = troop_speed; var gi = unsafeWindow.cm.guardianModalModel.getMarchBonus(); var multiplier = 1 + (gi * 0.01); Speed = Speed * multiplier; var gSpeed = 0; var estSec; if (Speed > 0) { gSpeed = Speed / 6000; estSec = Math.ceil(parseFloat(dist) / gSpeed); } var e = 1; if (ById("BOitem_55")) { var l_elem = ById("BOitem_55"); if (l_elem && l_elem.checked > 0) { e = 0.75; } } if (ById("BOitem_57")) { var l_elem = ById("BOitem_57"); if (l_elem && l_elem.checked) { e = 0.5; } } ret.ETA = (parseInt((estSec * e + '')) + 30); if (Seed.playerEffects.returnExpire > unsafeWindow.unixtime()) { ret.ETA = parseInt(ret.ETA * 0.5); } ret.etaStr = timestr(ret.ETA, 1); var building = getCityBuilding(cityID, 18); if (building) { fSpeed = Speed * (1 + parseInt(building.maxLevel) / 2); gSpeed = fSpeed / 6000; estSec = (dist / gSpeed).toFixed(0); ret.friendETA = parseInt((estSec * e + '')) + 30; ret.friendEtaStr = timestr((ret.friendETA + ''), 1); } var isPrestige = Seed.cityData.city[cityID].isPrestigeCity; if (isPrestige) { fSpeed = Speed * (1 + 5.5); gSpeed = fSpeed / 6000; estSec = (dist / gSpeed).toFixed(0); ret.friendETA = parseInt((estSec * e + '')) + 30; ret.friendEtaStr = timestr((ret.friendETA + ''), 1); } return ret; } /********************************* Messages Tab *************************************/ Tabs.Rpt = { tabOrder: 90, tabLabel: 'Reports', cont: null, state: null, minPages: parseInt(Options.arPageFrom), maxPages: parseInt(Options.arPageTo), data: [], report: [], totalPages: parseInt(Options.arPageTo), what: '', whatNot: '', content: '', init: function (div) { var t = Tabs.Rpt; t.cont = div; unsafeWindow.getmsg = t.getMailBody; unsafeWindow.getReport = t.getReportBody; var tc = '
    SEARCH INBOX, OUTBOX, PLAYER AND ALLIANCE REPORTS
    '; tc += ''; tc += ''; tc += ''; tc += ''; tc += ''; tc += ''; tc += '
    HELP
    Type: '; tc += '
    Pages: 
    Attacker: '; tc += '
    Target: 
    Contains: 
    '; tc += 'But not: 
     Attack
    '; tc += ' Scout
     Reinforce
    '; tc += ' Transport
    '; tc += '
    '; tc += ''; tc += '
     
    '; tc += '
    '; t.cont.innerHTML = tc; document.getElementById('idRptType').addEventListener('change', t.handleRptType, false); document.getElementById('idRptPageFrom').addEventListener('change', t.handleRptPages, false); document.getElementById('idRptPageTo').addEventListener('change', t.handleRptPages, false); document.getElementById('idRptAttacker').addEventListener('change', t.handleRptAttacker, false); document.getElementById('idRptTarget').addEventListener('change', t.handleRptTarget, false); document.getElementById('idRptWhat').addEventListener('keyup', t.handleRptWhat, false); document.getElementById('idRptWhatNot').addEventListener('keyup', t.handleRptWhatNot, false); document.getElementById('idRptSearch').addEventListener('click', t.handleRptSearch, false); t.togOpt('idRptAttack', 'arAttack'); t.togOpt('idRptScout', 'arScout'); t.togOpt('idRptReinforce', 'arReinforce'); t.togOpt('idRptTransport', 'arTransport'); return this.cont; }, togOpt: function (checkboxId, optionName) { var t = Tabs.Rpt; var checkbox = document.getElementById(checkboxId); checkbox.addEventListener('change', eventHandler, false); function eventHandler() { Options[optionName] = this.checked; saveOptions(); if (t.data.length > 0) if (Options.rptType == 'alliance' || Options.rptType == 'player') t.DisplayRpt(); else t.DisplayMail(); } }, handleRptType: function () { var t = Tabs.Rpt; Options.rptType = document.getElementById("idRptType").value; saveOptions(); document.getElementById("idRptSearched").innerHTML = ''; document.getElementById("idRptStatus").innerHTML = ' '; document.getElementById("idRptFound").innerHTML = ''; document.getElementById("idRptResultsDiv").innerHTML = ''; }, handleRptPages: function () { var t = Tabs.Rpt; t.minPages = parseInt(document.getElementById("idRptPageFrom").value); t.maxPages = parseInt(document.getElementById("idRptPageTo").value); if (t.maxPages < t.minPages) { t.maxPages = t.minPages; document.getElementById("idRptPageTo").value = t.maxPages; } Options.arPageFrom = t.minPages; Options.arPageTo = t.maxPages; saveOptions(); t.totalPages = t.maxPages; }, handleRptAttacker: function () { var t = Tabs.Rpt; Options.arAttacker = document.getElementById("idRptAttacker").value; saveOptions(); if ((Options.rptType == 'alliance' || Options.rptType == 'player') && t.data.length > 0) t.DisplayRpt(); }, handleRptTarget: function () { var t = Tabs.Rpt; Options.arTarget = document.getElementById("idRptTarget").value; saveOptions(); if ((Options.rptType == 'alliance' || Options.rptType == 'player') && t.data.length > 0) t.DisplayRpt(); }, handleRptWhat: function () { var t = Tabs.Rpt; t.what = document.getElementById("idRptWhat").value; if (t.data.length > 0) if (Options.rptType == 'alliance' || Options.rptType == 'player') t.DisplayRpt(); else t.DisplayMail(); }, handleRptWhatNot: function () { var t = Tabs.Rpt; t.whatNot = document.getElementById("idRptWhatNot").value; if (t.data.length > 0) if (Options.rptType == 'alliance' || Options.rptType == 'player') t.DisplayRpt(); else t.DisplayMail(); }, handleRptSearch: function () { var t = Tabs.Rpt; if (t.searchRunning) { t.searchRunning = false; t.stopSearch('SEARCH CANCELLED!'); return; } t.handleRptPages(); document.getElementById('idRptSearch').value = 'Stop Search'; document.getElementById('idRptStatus').innerHTML = 'Searching page ' + t.minPages + ' of ' + t.maxPages; t.searchRunning = true; t.data = []; t.report = []; if (Options.rptType == 'alliance' || Options.rptType == 'player') t.getRpt(t.minPages); else t.getMail(t.minPages); }, stopSearch: function (msg) { var t = Tabs.Rpt; if (t.searchRunning || msg == 'SEARCH CANCELLED!') document.getElementById('idRptStatus').innerHTML = '' + msg + ''; document.getElementById('idRptSearch').value = 'Start Search'; t.searchRunning = false; if (Options.rptType == 'alliance' || Options.rptType == 'player') t.DisplayRpt(); else t.DisplayMail(); }, getMail: function (pageNum) { var t = Tabs.Rpt; var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.pf = 0; params.requestType = "GET_MESSAGE_HEADERS_FOR_USER_INBOX"; params.boxType = document.getElementById('idRptType').value; params.pageNo = pageNum; new MyAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/getEmail.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { t.getMailCallback(rslt, pageNum); }, onFailure: function () {}, }, false); }, getMailCallback: function (rslt, page) { var t = Tabs.Rpt; if (rslt) { if (!rslt.ok) { document.getElementById("idRptStatus").innerHTML = '' + rslt.errorMsg + ''; return; } t.totalPages = parseInt(rslt.noOfPages); if (t.totalPages < t.maxPages) t.maxPages = t.totalPages; if (rslt.message && page) { var ml = rslt.message; if (rslt.messageCount > 0) { var rptkeys = unsafeWindow.Object.keys(ml); for (var i = 0; i < rptkeys.length; i++) { var rpt = ml[rptkeys[i]]; rpt.page = page; t.data.push(rpt); } } } if (parseInt(page) + 1 <= t.maxPages && t.searchRunning) { document.getElementById("idRptStatus").innerHTML = 'Searching page ' + (parseInt(page) + 1) + ' of ' + t.maxPages; t.getMail(parseInt(page) + 1); if (t.data.length > 0) t.DisplayMail(); } else if (page) t.stopSearch('Done!'); } }, getRpt: function (pageNum) { var t = Tabs.Rpt; var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.pageNo = pageNum; if (Options.rptType == 'alliance') params.group = "a"; new MyAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/listReports.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { t.getRptCallback(rslt, pageNum); }, onFailure: function (rslt) { t.getRptCallback(rslt, pageNum); }, }, false); }, getRptCallback: function (rslt, page) { var t = Tabs.Rpt; if (rslt) { if (!rslt.ok) { document.getElementById("idRptStatus").innerHTML = '' + rslt.errorMsg + ''; return; } t.totalPages = parseInt(rslt.totalPages); if (t.totalPages < t.maxPages) t.maxPages = t.totalPages; if (rslt.arReports && page) { var ar = rslt.arReports; if (ar.length == 0) t.stopSearch('Empty pages found from page ' + page + ' onwards - Kabam glitch'); var rptkeys = unsafeWindow.Object.keys(ar); for (var i = 0; i < rptkeys.length; i++) { var rpt = ar[rptkeys[i]]; var reportId = parseInt(rpt.reportId); t.report[reportId] = []; // Attacker t.report[reportId].side1Name = rslt.arPlayerNames['p' + rpt.side1PlayerId]; t.report[reportId].side1AllianceId = parseInt(rpt.side1AllianceId); if (rpt.side1AllianceId > 0) t.report[reportId].side1AllianceName = rslt.arAllianceNames['a' + rpt.side1AllianceId]; else t.report[reportId].side1AllianceName = 'unaligned'; if (rpt.side1CityId > 0) t.report[reportId].side1CityName = rslt.arCityNames['c' + rpt.side1CityId]; else t.report[reportId].side1CityName = 'none'; t.report[reportId].side1XCoord = rpt.side1XCoord; t.report[reportId].side1YCoord = rpt.side1YCoord; // Target if (parseInt(rpt.side0PlayerId) == 0) { // Kabam t.report[reportId].side0Name = 'Enemy'; t.report[reportId].side0AllianceName = ''; t.report[reportId].side0CityName = ''; } else { // Player t.report[reportId].side0Name = rslt.arPlayerNames['p' + rpt.side0PlayerId]; if (rpt.side0AllianceId > 0) t.report[reportId].side0AllianceName = rslt.arAllianceNames['a' + rpt.side0AllianceId]; else t.report[reportId].side0AllianceName = 'unaligned'; if (rpt.side0CityId > 0) t.report[reportId].side0CityName = rslt.arCityNames['c' + rpt.side0CityId]; else t.report[reportId].side0CityName = 'none'; } t.report[reportId].side0AllianceId = parseInt(rpt.side0AllianceId); t.report[reportId].side0XCoord = rpt.side0XCoord; t.report[reportId].side0YCoord = rpt.side0YCoord; if (parseInt(rpt.side0TileType) == 10) t.report[reportId].side0TileTypeText = 'Grass'; else if (parseInt(rpt.side0TileType) == 11) t.report[reportId].side0TileTypeText = 'Lake'; else if (parseInt(rpt.side0TileType) == 20) t.report[reportId].side0TileTypeText = 'Woods'; else if (parseInt(rpt.side0TileType) == 30) t.report[reportId].side0TileTypeText = 'Hills'; else if (parseInt(rpt.side0TileType) == 40) t.report[reportId].side0TileTypeText = 'Mount'; else if (parseInt(rpt.side0TileType) == 50) t.report[reportId].side0TileTypeText = 'Plain'; else if (parseInt(rpt.side0CityId) == 0) t.report[reportId].side0TileTypeText = 'Barb'; else t.report[reportId].side0TileTypeText = 'City'; t.report[reportId].side0TileTypeLevel = t.report[reportId].side0TileTypeText + ' ' + rpt.side0TileLevel; t.report[reportId].side0TileType = rpt.side0TileType; t.report[reportId].side0TileLevel = rpt.side0TileLevel; // Miscellaneous t.report[reportId].page = page; t.report[reportId].reportUnixTime = rpt.reportUnixTime; if (rpt.side0AllianceId == parseInt(getMyAlliance()[0])) t.report[reportId].sideId = 0; else if (rpt.side1AllianceId == parseInt(getMyAlliance()[0])) { t.report[reportId].sideId = 1; } else { // if we're here then this is a player report from when they were in another alliance if (rpt.side0PlayerId == uW.tvuid) t.report[reportId].sideId = 0; else if (rpt.side1PlayerId == uW.tvuid) t.report[reportId].sideId = 1; else // shouldn't get here but we'll catch it if the report body is requested t.report[reportId].sideId = -1; } if (rpt.marchType == 0) t.report[reportId].marchName = 'Desertion'; else if (rpt.marchType == 1) t.report[reportId].marchName = 'Transport'; else if (rpt.marchType == 2) t.report[reportId].marchName = 'Reinforce'; else if (rpt.marchType == 3) { if (t.report[reportId].sideId == 0) t.report[reportId].marchName = 'Anti-Scout'; else t.report[reportId].marchName = 'Scout'; } else if (rpt.marchType == 4) { if (t.report[reportId].sideId == 0) t.report[reportId].marchName = 'Defend'; else t.report[reportId].marchName = 'Attack'; } else t.report[reportId].marchName = '?'; t.data.push({ reportId: reportId, }); } } if (parseInt(page) + 1 <= t.maxPages && t.searchRunning) { document.getElementById("idRptStatus").innerHTML = 'Searching page ' + (parseInt(page) + 1) + ' of ' + t.maxPages; t.getRpt(parseInt(page) + 1); if (t.data.length > 0) t.DisplayRpt(); } else if (page) t.stopSearch('Done!'); } }, DisplayMail: function () { var t = Tabs.Rpt; var results = document.getElementById("idRptResultsDiv"); if (!t.data.length) { results.innerHTML = '
    None found
    '; return; } reportsSearched = t.data.length; reportsFound = 0; t.content = ''; for (var i = 0; i < reportsSearched; i++) { var rpt = t.data[i]; if ((t.what == '' || (rpt.subject.search(t.what, "i") != -1) || (rpt.displayName.search(t.what, "i") != -1)) && (t.whatNot == '' || ((rpt.subject.search(t.whatNot, "i") == -1) && (rpt.displayName.search(t.whatNot, "i") == -1)))) { reportsFound++; if (reportsFound == 1) t.content += '
    '; t.content += ''; t.content += ''; } } if (reportsFound > 1) t.content += '
    PDateFromSubject
    ' + rpt.page + '' + rpt.dateSent + '' + rpt.displayName + '' + rpt.subject + '
    '; if (reportsFound == 0 && reportsSearched > 0) t.content = '
    None found
    '; results.innerHTML = t.content; document.getElementById("idRptSearched").innerHTML = ' Searched: ' + reportsSearched; document.getElementById("idRptFound").innerHTML = 'Found: ' + reportsFound; }, getMailBody: function (ID, dataI) { var t = Tabs.Rpt; var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.messageId = ID; params.requestType = "GET_MESSAGE_FOR_ID"; new MyAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/getEmail.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.ok) t.displayMailBody(rslt.messageBody); }, onFailure: function () {}, }, false); }, displayMailBody: function (messageBody) { var t = Tabs.Rpt; var popMsg = null; t.popMsg = new CPopup('pbMailBody', 0, 0, 670, 600, true, function () { clearTimeout(1000); }); t.popMsg.centerMe(mainPop.getMainDiv()); var m = '
    '; m += messageBody + '
    '; t.popMsg.getMainDiv().innerHTML = m; t.popMsg.getTopDiv().innerHTML = '
    Message
    '; t.popMsg.show(true); }, DisplayRpt: function () { var t = Tabs.Rpt; var results = document.getElementById("idRptResultsDiv"); if (!t.data.length) { results.innerHTML = '
    None found
    '; return; } var myAllianceId = parseInt(getMyAlliance()[0]); reportsSearched = t.data.length; reportsFound = 0; t.content = ''; for (var i = 0; i < reportsSearched; i++) { var reportId = t.data[i].reportId; var rpt = t.report[reportId]; if ((rpt.side0Name == 'undefined') && (rpt.marchName != 'Desertion')) continue; if ((((myAllianceId == parseInt(rpt.side1AllianceId) && Options.arAttacker != 'Them') || (myAllianceId != parseInt(rpt.side1AllianceId) && Options.arAttacker != 'Us') || Options.arAttacker == 'Both') && ((myAllianceId == parseInt(rpt.side0AllianceId) && Options.arTarget != 'Them') || (myAllianceId != parseInt(rpt.side0AllianceId) && Options.arTarget != 'Us') || Options.arTarget == 'Both') && ((Options.arAttack && (rpt.marchName == 'Attack' || rpt.marchName == 'Defend')) || (Options.arScout && (rpt.marchName == 'Scout' || rpt.marchName == 'Anti-Scout')) || (Options.arReinforce && rpt.marchName == 'Reinforce') || (Options.arTransport && rpt.marchName == 'Transport'))) || (rpt.marchName == 'Desertion')) { if (((t.what == '' || (rpt.side1Name.search(t.what, "i") != -1) || (rpt.side1AllianceName.search(t.what, "i") != -1) || (rpt.side0Name.search(t.what, "i") != -1) || (rpt.side0AllianceName.search(t.what, "i") != -1) || (rpt.side0TileTypeText.search(t.what, "i") != -1)) && (t.whatNot == '' || ((rpt.side1Name.search(t.whatNot, "i") == -1) && (rpt.side1AllianceName.search(t.whatNot, "i") == -1) && (rpt.side0Name.search(t.whatNot, "i") == -1) && (rpt.side0AllianceName.search(t.whatNot, "i") == -1) && (rpt.side0TileTypeText.search(t.whatNot, "i") == -1)))) || (rpt.marchName == 'Desertion')) { reportsFound++; if (reportsFound == 1) { if (Options.enableReportNumber) t.content += '
    '; else t.content += '
    PDateReportAttackerFrom
    '; if (Options.arAttacker != 'Us') t.content += ''; t.content += ''; if (Options.arTarget != 'Us') t.content += ''; t.content += ''; } var closestDist = 999999; var closestLoc = null; var closestNum = 1; for (var c = 0; c < Cities.numCities; c++) { var city = Cities.cities[c]; city.x + ',' + city.y var dist = distance(city.x, city.y, rpt.side0XCoord, rpt.side0YCoord); if (dist < closestDist) { closestDist = dist; closestLoc = city.x + ',' + city.y; closestNum = c + 1; } } if (rpt.marchName == 'Anti-Scout' || rpt.marchName == 'Defend') style = ' style="background-color:#EF9999;"'; else if (rpt.marchName == 'Reinforce') style = ' style="background-color:#99EF99;"'; else style = ""; t.content += ''; if (Options.enableReportNumber) t.content += ''; if (rpt.marchName == 'Desertion') { t.content += ''; if (Options.arAttacker != 'Us') t.content += ''; t.content += ''; if (Options.arAttacker != 'Us') t.content += ''; t.content += ''; } else { t.content += ''; if (Options.arAttacker != 'Us') t.content += ''; t.content += ''; t.content += ''; t.content += ''; if (Options.arTarget != 'Us') t.content += ''; t.content += ''; } } } } if (reportsFound > 1) t.content += '
    PDateAttackerFromAllianceActionTargetTypeAtAllianceDistNearest
    ' + rpt.page + '' + formatUnixTime(rpt.reportUnixTime, '24hour') + '' + reportId + '' + rpt.marchName + '' + rpt.side1Name + '' + rpt.side1XCoord + ',' + rpt.side1YCoord + '' + rpt.side1AllianceName + '' + rpt.marchName + '' + rpt.side0Name + '' + rpt.side0TileTypeLevel + '' + rpt.side0XCoord + ',' + rpt.side0YCoord + '' + rpt.side0AllianceName + '' + Math.floor(closestDist) + '' + closestLoc + '
    '; if (reportsFound == 0 && reportsSearched > 0) t.content = '
    None found
    '; results.innerHTML = t.content; document.getElementById("idRptSearched").innerHTML = ' Searched: ' + reportsSearched; document.getElementById("idRptFound").innerHTML = 'Found: ' + reportsFound; }, show: function () {}, hide: function () {}, }; /*********************************** Alliance TAB ***********************************/ Tabs.Alliance = { tabOrder: 120, tabLabel: uW.g_js_strings.commonstr.alliance, myDiv: null, alliancemembers: [], number: 0, totalmembers: 0, error: false, sortType: 1, sortBy: 'Name', init: function (div) { var t = Tabs.Alliance; t.myDiv = div; t.myDiv.style.overflowY = 'scroll'; t.myDiv.style.maxHeight = '730px'; t.totalmembers = 0; t.alliancemembers = []; uW.getdetails = t.getMemberDetails; var m = '
    ALLIANCE FUNCTIONS
    '; m += 'HELP'; m += ''; m += ''; m += ''; m += '
    List Alliance MembersSort by: ' + htmlSelector({ Name: 'Name', Might: 'Might', glory: 'Glory', Cities: 'Cities', Position: 'Position', dip: 'Days in Position', uid: 'User Id', fbuid: 'Facebook id' }, null, 'id=searchAlli') + '
    Show alliance diplomaties
    '; m += '
    OVERVIEW
    '; m += '
    '; t.myDiv.innerHTML = m; document.getElementById('alList').addEventListener('click', function () { if (!t.searching) { t.totalmembers = 0; t.alliancemembers = []; document.getElementById('alOverviewTab').innerHTML = ""; document.getElementById('progress').innerHTML = ""; document.getElementById('progress').innerHTML = uW.g_js_strings.commonstr.loadingddd; document.getElementById('alList').disabled = true; t.error = false; t.fetchAllianceMemberPage(); } }, false); document.getElementById('searchAlli').addEventListener('click', function () { if (t.alliancemembers != "") { document.getElementById('alOverviewTab').innerHTML = ""; t.paintMembers(); } }, false); document.getElementById('aldiplo').addEventListener('click', function () { t.paintDiplomacy(); }, false); //window.addEventListener('unload', t.onUnload, false); }, paintMembers: function () { var t = Tabs.Alliance; if (document.getElementById('searchAlli').value == t.sortBy) { t.sortType *= -1; } else { t.sortType = 1; } t.sortBy = document.getElementById('searchAlli').value; var sortmembers = t.alliancemembers.sort(function (a, b) { var sortA = a[t.sortBy], sortB = b[t.sortBy]; if (t.sortType > 0) { if (typeof (sortA) == 'number' && typeof (sortB) == 'number') { return sortA - sortB; } else { return sortA.localeCompare(sortB); } } else { if (typeof (sortA) == 'number' && typeof (sortB) == 'number') { return sortB - sortA; } else { return sortB.localeCompare(sortA); } } }); for (var y = (sortmembers.length - 1); y >= 0; y--) { t._addTab(sortmembers[y].Name, sortmembers[y].Might, sortmembers[y].LastLogin, sortmembers[y].Position, sortmembers[y].dip, sortmembers[y].uid, sortmembers[y].fbuid, sortmembers[y].Cities, sortmembers[y].avatarurl, sortmembers[y].glory, sortmembers[y].dateJoined); t.myDiv.style.overflowY = 'scroll'; } t._addTabHeader(); }, _addTab: function (Name, Might, LastLogin, Position, dip, uid, fbuid, Cities, avatar, gloire, arrive) { var t = Tabs.Alliance; var row = document.getElementById('alOverviewTab').insertRow(0); row.vAlign = 'top'; row.insertCell(0).innerHTML = ''; row.insertCell(1).innerHTML = 'profile'; row.insertCell(2).innerHTML = Name; var cell2 = row.insertCell(3); cell2.width = "60"; cell2.align = "right"; cell2.vAlign = "top"; cell2.innerHTML = addCommas(Might); var cell2 = row.insertCell(4); cell2.width = "60"; cell2.align = "right"; cell2.vAlign = "top"; cell2.innerHTML = addCommas(gloire); row.insertCell(5).innerHTML = Cities; row.insertCell(6).innerHTML = officerId2String(Position); row.insertCell(7).innerHTML = dip; row.insertCell(8).innerHTML = LastLogin; row.insertCell(9).innerHTML = arrive; }, _addTabHeader: function () { var t = Tabs.Alliance; var row = document.getElementById('alOverviewTab').insertRow(0); row.vAlign = 'top'; row.insertCell(0).innerHTML = "Avatar"; row.insertCell(1).innerHTML = "Facebook"; row.insertCell(2).innerHTML = "Name"; row.insertCell(3).innerHTML = "Might"; row.insertCell(4).innerHTML = "Glory"; row.insertCell(5).innerHTML = "Cities"; row.insertCell(6).innerHTML = "Position"; row.insertCell(7).innerHTML = "DIP"; row.insertCell(8).innerHTML = "Last Login"; row.insertCell(9).innerHTML = "Joined"; }, paintDiplomacy: function () { document.getElementById('alOverviewTab').innerHTML = ""; document.getElementById('progress').innerHTML = ""; var m = 'Friendly: '; if (Seed.allianceDiplomacies['friendly'] == null) m += 'No Friendlies found...'; else m += ''; for (k in Seed.allianceDiplomacies['friendly']) { m += ''; m += ''; } m += '
    Alliance NameMembers
    ' + Seed.allianceDiplomacies['friendly'][k]['allianceName'] + '' + Seed.allianceDiplomacies['friendly'][k]['membersCount'] + '
    '; m += 'Hostile: '; if (Seed.allianceDiplomacies['hostile'] == null) m += 'No Hostiles found...'; else m += ''; for (k in Seed.allianceDiplomacies["hostile"]) { m += ''; m += ''; } m += '
    Alliance NameMembers
    ' + Seed.allianceDiplomacies["hostile"][k]['allianceName'] + '' + Seed.allianceDiplomacies["hostile"][k]['membersCount'] + '
    '; m += 'Friendly towards us: '; if (Seed.allianceDiplomacies['friendlyToYou'] == null) m += 'No Friendlies towards us found...'; else m += ''; for (k in Seed.allianceDiplomacies["friendlyToYou"]) { m += ''; m += ''; } m += '
    Alliance NameMembers
    ' + Seed.allianceDiplomacies["friendlyToYou"][k]['allianceName'] + '' + Seed.allianceDiplomacies["friendlyToYou"][k]['membersCount'] + '
    '; document.getElementById('alOverviewTab').innerHTML = m; }, fetchAllianceMemberPage: function () { var t = Tabs.Alliance; document.getElementById('alList').disabled = true; var params = uW.Object.clone(uW.g_ajaxparams); params.pf = 0; new AjaxRequest(uW.g_ajaxpath + "ajax/allianceGetInfo.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (transport) { var rslt = eval("(" + transport.responseText + ")"); t.totalmembers = (rslt["allianceInfo"]["members"]); for (var i = 1; i <= 10; i++) { params.pageNo = i; params.pf = 0; new AjaxRequest(uW.g_ajaxpath + "ajax/allianceGetMembersInfo.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (transport) { var info = eval("(" + transport.responseText + ")"); if (info.ok) { for (var k in info["memberInfo"]) { if (info["memberInfo"][k]["might"] != undefined && !t.error) { t.alliancemembers.push({ Name: info["memberInfo"][k]["name"], Might: parseInt(info["memberInfo"][k]["might"]), Cities: parseInt(info["memberInfo"][k]["cities"]), Position: parseInt(info["memberInfo"][k]["positionType"]), dip: parseInt(info["memberInfo"][k]["daysInPosition"]), LastLogin: info["memberInfo"][k]["lastLogin"], uid: parseInt(info["memberInfo"][k]["userId"]), fbuid: parseInt(info["memberInfo"][k]["fbuid"]), avatarurl: info["memberInfo"][k]["avatarurl"], glory: parseInt(info["memberInfo"][k]["glory"]), dateJoined: info["memberInfo"][k]["dateJoined"], }); } document.getElementById('alOverviewTab').innerHTML = ""; t.paintMembers(); } if (!t.error) document.getElementById('progress').innerHTML = '(' + (t.alliancemembers.length) + '/' + t.totalmembers + ')'; if (t.alliancemembers.length >= t.totalmembers) document.getElementById('alList').disabled = false; } else if (info.error) { document.getElementById('alList').disabled = false; document.getElementById('progress').innerHTML = "ERROR!"; t.error = true; } }, onFailure: function (rslt) {; notify({ errorMsg: 'AJAX error' }); }, }); } }, onFailure: function (rslt) {; notify({ errorMsg: 'AJAX error' }); }, }); }, hide: function () { mainPop.div.style.width = 750 + 'px'; }, show: function () { var t = Tabs.Alliance; mainPop.div.style.width = 750 + 'px'; }, }; /*********************************** IRC TAB ***********************************/ Tabs.IRC = { tabOrder: 1000, tabLabel: "IRC", myDiv: null, seenLog: {}, init: function (div) { var t = Tabs.IRC; t.myDiv = div; t.myDiv.style.maxHeight = '730px'; var m = '
    IRC Bot Command Server
    '; m += ' Global Enable (this must be checked for all other options to work)
    '; m += '
    IRC Bot Options
    '; m += ' Respond to "!seen " command
    '; m += ' Respond to "!rules" command. '; m += ' Rules message: '; t.myDiv.innerHTML = m; document.getElementById('ptIRCcmdEnable').addEventListener('change', function (e) { IRCOptions.IRCCmdEnable = e.target.checked; saveIRCOptions(); }, false); document.getElementById('ptIRCcmdSeen').addEventListener('change', function (e) { IRCOptions.IRCCmdSeen.enable = e.target.checked; saveIRCOptions(); }, false); document.getElementById('ptIRCcmdRules').addEventListener('change', function (e) { IRCOptions.IRCCmdRules.enable = e.target.checked; saveIRCOptions(); }, false); document.getElementById('ptIRCcmdRulesMsg').addEventListener('change', function (e) { IRCOptions.IRCCmdRules.message = e.target.value; saveIRCOptions(); }, false); var a = JSON2.parse(localStorage.getItem('IRCSeen_log_' + GetServerId())); if (matTypeof(a) == 'object') { t.seenLog = a; } window.addEventListener('unload', t.onUnload, false); }, onUnload: function () { var t = Tabs.IRC; localStorage.setItem('IRCSeen_log_' + GetServerId(), JSON2.stringify(t.seenLog)); }, grabChat: function (uid, name, msg) { var t = Tabs.IRC; var time = ""; var lastPost = ""; if (!IRCOptions.IRCCmdEnable) return; if (name == null) return; if (msg == null) return; var a = msg.indexOf(""); var b = msg.indexOf('', a); if (b > a) time = msg.slice(a + 19, b); var c = msg.indexOf("
    "); var d = msg.indexOf("
    ", c); if (d > c) lastPost = msg.slice(c + 16, d); t.logChat(uid, name, time, lastPost); if (IRCOptions.IRCCmdSeen.enable) { if (msg.indexOf("!seen") >= 0) { t.processSeen(msg); } } if (IRCOptions.IRCCmdRules.enable) { if (msg.indexOf("!rules") >= 0) { t.processRules(); } } }, logChat: function (uid, name, time, lastPost) { var t = Tabs.IRC; if (lastPost.indexOf("I need help building my") >= 0) return; if (lastPost.indexOf("My embassy has") >= 0) return; if (lastPost.indexOf("My wilderness at") >= 0) return; if (lastPost.indexOf("has been scouted by") >= 0) return; if (lastPost.indexOf("has been attacked by") >= 0) return; if (lastPost.indexOf("is low on food") >= 0) return; if (lastPost.indexOf("Encamped Allies") >= 0) return; if (lastPost.indexOf("Estimated Arrival") >= 0) return; var updateSeen = { "name": name, "timestamp": time, "lastpost": lastPost }; t.seenLog[uid] = updateSeen; localStorage.setItem('IRCSeen_log_' + GetServerId(), JSON2.stringify(t.seenLog)); }, processSeen: function (msg) { var t = Tabs.IRC; var username_string = msg.slice(msg.indexOf("!seen") + 6); var username = username_string.split('<'); if (username[0].length > 2) Tabs.AllianceList.fetchPlayerList(username[0], t.eventGotPlayerList); }, processRules: function () { var t = Tabs.IRC; var automsg = sendChat('/a ' + IRCOptions.IRCCmdRules.message); }, eventGotPlayerList: function (rslt) { var t = Tabs.IRC; if (!rslt.ok) { var autoerrormsgPNF = sendChat("/a Player not found. Enter a valid Player."); return; } var uid = rslt.matchedUsers[Object.keys(rslt.matchedUsers)[0]].userId; if (Object.keys(t.seenLog).length > 0) if (uid in t.seenLog) { var automsg = sendChat('/a ' + t.seenLog[uid].name + ' last seen saying: ' + t.seenLog[uid].lastpost + ' @' + t.seenLog[uid].timestamp); } else var autoerrormsg = sendChat("/a I haven't seen that user"); }, hide: function () { mainPop.div.style.width = 750 + 'px'; }, show: function () { var t = Tabs.IRC; mainPop.div.style.width = 750 + 'px'; }, }; /**************************** Unit Stats Calculator Tab ******************************/ Tabs.UnitCalc = { tabOrder: 1100, // order to place tab in top bar tabLabel: 'UnitCalc', // label to show in main window tabs myDiv: null, timer: null, init: function (div) { // called once, upon script startup var t = Tabs.UnitCalc; t.myDiv = div; div.innerHTML = '
    \ \
    '; div.innerHTML += '
    '; t.paintUnitStatsCalc(); }, hide: function () { // called whenever the main window is hidden, or another tab is selected var t = Tabs.UnitCalc; }, show: function () { // called whenever this tab is shown var t = Tabs.UnitCalc; }, paintUnitStatsCalc: function () { var t = Tabs.UnitCalc; var msg = ''; msg += ''; msg += ''; msg += '
    \ '; msg += '
    '; msg += '\ \ \ \ \
    Healing Potions
    Poisoned Edge
    Metal Alloys
    Alloy Horseshoes
    Fletching
    '; msg += ''; msg += '
    '; msg += '\ \ \ \
    GuardiansLevelsActive
    Wood
    Ore*
    Food
    Stone
    '; msg += 'Set Bonus
    '; msg += ''; msg += '
    '; msg += '\ \ \ \
    +20atk+50atk
    +20def+50def
    '; msg += ''; msg += '
    '; msg += '\
    Fey Altar Active:
    Bonus Amount
    \ Empowered Iron Blessing
    \ Blood Lust*
    '; msg += ''; msg += '
    '; msg += '\ \
    Strengthen Ranks
    Improved Fletching
    '; msg += '
    ' msg += ''; msg += '
    '; msg += 'Combat Points
    '; msg += ''; msg += '
    '; msg += 'Subscriber
    '; msg += '
    Defender Stats
    \ Troops on Defense
    *Active only when attacking'; msg += '
    ' msg += ''; msg += '
    '; msg += '\ \ \ \ \ \
    TR StatsLifeAtkDefSpdRng
    TR All Buff
    TR Infantry Buff
    TR Ranged Buff
    TR Siege Buff
    TR Horsed Buff
    ' msg += ''; msg += '
    '; msg += '\ \ \
    Champ StatsLifeAtkDefSpdRng
    ' msg += '
    Unit Stat
    '; msg += '
    '; msg += '' var ui; for (var iu in uW.cm.UNIT_TYPES) { ui = uW.cm.UNIT_TYPES[iu]; cost = uW.unitcost['unt' + ui]; // NAME, Food, Wood, Stone, Ore, ?, IdlePop, Time stats = uW.unitstats['unt' + ui]; // Attack, Defense, Speed, Range, Life msg += '\ \ \ \ '; } msg += '
    UnitLifeAtkDefSpeedRange
    ' + cost[0].substr(0, 16) + '' + stats[0] + '' + stats[1] + '' + stats[2] + '' + stats[3] + '' + stats[4] + '
    '; msg += '
    '; document.getElementById('unitStatsDiv').innerHTML = msg; document.getElementById('cfgResearchHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "cfgResearch"); }, false); document.getElementById('cfgGuardianHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "cfgGuardian"); }, false); document.getElementById('cfgItemsHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "cfgItems"); }, false); document.getElementById('cfgFeyHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "cfgFey"); }, false); document.getElementById('cfgBritonHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "cfgBriton"); }, false); document.getElementById('cfgThroneHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "cfgThrone"); }, false); document.getElementById('cfgChampHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "cfgChamp"); }, false); document.getElementById('cfgKnightHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "cfgKnight"); }, false); document.getElementById('cfgOrderHdr').addEventListener('click', function () { ToggleDivDisplay(500, 500, "cfgOrder"); }, false); // Event listener Order of the Round Table document.getElementById('ptucOrder').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); // Event listener Knight Level document.getElementById('ptucKnightLevel').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 1; if (e.target.value < 1) alert('Enter positive numbers!'); t.modifyUnitResearch(); }, false); // Event listener Fey Altar document.getElementById('ptucFeyAltarActive').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucFeyAltarBonus').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 1; if (e.target.value < 1 || e.target.value > 40) alert('Enter a numbers between 1-40!'); t.modifyUnitResearch(); }, false); // Event listener Guardian document.getElementById('ptucWood').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.vale > 12) alert('Enter a number between 0-12!'); t.modifyUnitResearch(); }, false); document.getElementById('ptucOre').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.vale > 12) alert('Enter a number between 0-12!'); t.modifyUnitResearch(); }, false); document.getElementById('ptucFood').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.vale > 12) alert('Enter a number between 0-12!'); t.modifyUnitResearch(); }, false); document.getElementById('ptucStone').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.vale > 12) alert('Enter a number between 0-12!'); t.modifyUnitResearch(); }, false); document.getElementById('ptucWoodAct').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucOreAct').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucFoodAct').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucStoneAct').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucGuardSet').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucDefending').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucOreBless').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucBloodBless').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); //Event listener Item Boosts document.getElementById('ptucItemAtk20').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucItemAtk50').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucItemDef20').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); document.getElementById('ptucItemDef50').addEventListener('change', function (e) { t.modifyUnitResearch(); }, false); // Event listener Research Level document.getElementById('ptucResHP').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.value < 0 || e.target.vale > 12) alert('Enter a number between 0-12!'); t.modifyUnitResearch(); }, false); document.getElementById('ptucResPE').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.value < 0 || e.target.vale > 12) alert('Enter a number between 0-12!'); t.modifyUnitResearch(); }, false); document.getElementById('ptucResMA').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.value < 0 || e.target.vale > 12) alert('Enter a number between 0-12!'); t.modifyUnitResearch(); }, false); document.getElementById('ptucResAH').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.value < 0 || e.target.vale > 12) alert('Enter a number between 0-12!'); t.modifyUnitResearch(); }, false); document.getElementById('ptucResFL').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.value < 0 || e.target.vale > 12) alert('Enter a number between 0-12!'); t.modifyUnitResearch(); }, false); document.getElementById('ptucResSR').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.value < 0 || e.target.vale > 10) alert('Enter a number between 0-10!'); t.modifyUnitResearch(); }, false); document.getElementById('ptucResIF').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; if (e.target.value < 0 || e.target.vale > 10) alert('Enter a number between 0-10!'); t.modifyUnitResearch(); }, false); // Event listener Throne document.getElementById('ptucLifeMod').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucLifeModInf').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucLifeModRng').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucLifeModSig').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucLifeModHor').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucAtkMod').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucAtkModInf').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucAtkModRng').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucAtkModSig').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucAtkModHor').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucDefMod').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucDefModInf').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucDefModRng').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucDefModSig').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucDefModHor').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucSpdMod').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucSpdModInf').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucSpdModRng').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucSpdModSig').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucSpdModHor').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucRngMod').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucRngModInf').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucRngModRng').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucRngModSig').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucRngModHor').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); // Event listener Champ document.getElementById('ptucLifeChampMod').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucAtkChampMod').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucDefChampMod').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucSpdChampMod').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); document.getElementById('ptucRngChampMod').addEventListener('change', function (e) { if (isNaN(e.target.value)) e.target.value = 0; t.modifyUnitResearch(); }, false); t.modifyUnitResearch(); }, modifyUnitResearch: function () { var t = Tabs.UnitCalc; var resLife = (5 * parseInt(document.getElementById('ptucResHP').value) / 100); var resAtk = (5 * parseInt(document.getElementById('ptucResPE').value) / 100); var resDef = (5 * parseInt(document.getElementById('ptucResMA').value) / 100); var resSpd = (5 * parseInt(document.getElementById('ptucResAH').value) / 100); var resRng = (5 * parseInt(document.getElementById('ptucResFL').value) / 100); resRng += (2 * parseInt(document.getElementById('ptucResIF').value) / 100); var knight = parseFloat(document.getElementById('ptucKnightLevel').value) / 200; var guardLife = t.woodGuardTable(parseInt(document.getElementById('ptucWood').value)); var guardAtk = t.oreGuardTable(parseInt(document.getElementById('ptucOre').value)); var guardLifeAct = document.getElementById('ptucWoodAct').checked ? 1 : 0; var guardAtkAct = document.getElementById('ptucOreAct').checked ? 1 : 0; var guardSetAct = document.getElementById('ptucGuardSet').checked ? 1 : 0; var guardOreBless = document.getElementById('ptucOreBless').checked ? 1 : 0; var bloodLustBlessLife = document.getElementById('ptucBloodBless').checked ? 0.75 : 1; var bloodLustBlessAtkSpd = document.getElementById('ptucBloodBless').checked ? 1.5 : 1; var defending = document.getElementById('ptucDefending').checked ? 1 : 0; var itemAtk = 0; var itemDef = 0; var feyAltarAct = document.getElementById('ptucFeyAltarActive').checked ? 1 : 0; var feyAltar = parseFloat(document.getElementById('ptucFeyAltarBonus').value) / 100; var orderDef = 0; var champLife = parseFloat(document.getElementById('ptucLifeChampMod').value); var champAtk = parseFloat(document.getElementById('ptucAtkChampMod').value); var champDef = parseFloat(document.getElementById('ptucDefChampMod').value); var champSpd = parseFloat(document.getElementById('ptucSpdChampMod').value); var champRng = parseFloat(document.getElementById('ptucRngChampMod').value); if (document.getElementById('ptucOrder').checked) orderDef = 0.15; if (document.getElementById('ptucItemAtk20').checked) itemAtk = 0.2 + itemAtk; if (document.getElementById('ptucItemAtk50').checked) itemAtk = 0.5 + itemAtk; if (document.getElementById('ptucItemDef20').checked) itemDef = 0.2 + itemDef; if (document.getElementById('ptucItemDef50').checked) itemDef = 0.5 + itemDef; if (defending) bloodLustBlessAtkSpd = 1; // calculate guardian if (guardSetAct) { //if you have set bonus if (guardLifeAct && defending) { //if your want defending troop stats guardLife = (guardLife / 2 + guardLife) / 100; guardAtk = 0; } else if (guardAtkAct) { if (defending) { guardAtk = 0; guardLife = guardLife / 200; } else { guardAtk = (1.5 * guardAtk / 100) + guardOreBless * 0.15 + guardOreBless * (1.5 * guardAtk / 100); guardLife = 0; } } else { if (defending) { guardAtk = 0; guardLife = guardLife / 200; } else { guardAtk = (guardAtk / 200) + guardOreBless * 0.15 + guardOreBless * 0.15 * (guardAtk / 200); guardLife = 0; } } } else { // don't have set bonus if (guardLifeAct && defending) { guardLife = guardLife / 100; guardAtk = 0; } else if (guardAtkAct && !defending) { guardAtk = (guardAtk / 100) + guardOreBless * 0.15 + guardOreBless * 0.15 * (guardAtk / 100); guardLife = 0; } else { guardAtk = 0; guardLife = 0; } } // for (ui=1; ui unsafeWindow.cm.thronestats.boosts[stat].Max) return unsafeWindow.cm.thronestats.boosts[stat].Max; else if (a + b < unsafeWindow.cm.thronestats.boosts[stat].Min) return unsafeWindow.cm.thronestats.boosts[stat].Min; else return a + b; }, round1decimals: function (number) { return Math.round(number * 10) / 10; }, woodGuardTable: function (number) { if (number == '1') return 1; else if (number == '2') return 2; else if (number == '3') return 3; else if (number == '4') return 4; else if (number == '5') return 6; else if (number == '6') return 8; else if (number == '7') return 10; else if (number == '8') return 13; else if (number == '9') return 16; else if (number == '10') return 20; else if (number == '11') return 25; else if (number == '12') return 35; else return 0; }, oreGuardTable: function (number) { if (number == '1') return 2; else if (number == '2') return 4; else if (number == '3') return 6; else if (number == '4') return 8; else if (number == '5') return 12; else if (number == '6') return 16; else if (number == '7') return 20; else if (number == '8') return 26; else if (number == '9') return 32; else if (number == '10') return 40; else if (number == '11') return 50; else if (number == '12') return 65; else return 0; }, } /*********************************** Accuracy Matrix Tab ***********************************/ Tabs.Accuracy = { tabOrder: 1200, tabLabel: 'Accuracy', cont: null, init: function (div) { var t = Tabs.Accuracy; t.cont = div; var main = '
    ACCURACY MATRIX
    '; main += '
    '; main += ''; main += ''; var z = uW.cm.WorldSettings.getSettingAsObject("UNIT_ACCURACY_MODIFIER"); var keyz = unsafeWindow.Object.keys(z); var troopa, troopb; var unitsarr = []; for (j in unsafeWindow.unitcost) unitsarr.push(0); for (iu = 1; iu < unitsarr.length + 2; iu++) if (iu < 13) main += ''; else if (iu == 13) main += ''; else if (iu > 19) main += ''; else main += ''; main += ''; for (iu = 1; iu < unitsarr.length + 2; iu++) { if (iu < 13) main += ''; else if (iu == 13) main += ''; else if (iu > 19) main += ''; else main += ''; troopa = keyz[iu - 1]; for (ju = 1; ju < unitsarr.length + 2; ju++) { troopb = keyz[ju - 1]; main += ''; } main += ''; } main += '
    Target
    ' + uW.unitcost['unt' + iu][0] + 'WM Crossbow' + uW.unitcost['unt' + (iu + 1)][0] + '' + uW.unitcost['unt' + (iu - 1)][0] + '
    ' + uW.unitcost['unt' + iu][0] + '
    WM Crossbow
    ' + uW.unitcost['unt' + (iu + 1)][0] + '
    ' + uW.unitcost['unt' + (iu - 1)][0] + '' + z[troopa][troopb] + '
    '; t.cont.innerHTML = main; }, hide: function () {}, show: function () {}, } /*************** Defend Tab **********/ Tabs.Defend = { cont: null, displayTimer: null, tabLabel: 'Defend', state: null, curTabBut: null, curTabName: null, BOAttackTimer: null, sourceCity: {}, destinationCity: {}, champion: {}, rows: [], iused: new Array(), init: function (div) { var t = Tabs.Defend; t.cont = div; t.state = null; clearTimeout(t.displayTimer); uW.ptDefendFav = Options.DefendFav; }, getContent: function () { var t = Tabs.Defend; return t.cont; }, hide: function () { var t = Tabs.Defend; t.state = null; clearTimeout(t.displayTimer); }, show: function () { var t = Tabs.Defend; setTimeout(t.Refreshtroops, 10000); var rownum = 0; var ModelCity = {}; if (t.state == null) { m = "
    QUICK MARCH TOOL
    "; m += "
    "; m += "\ \ \ \ "; m += "
     
    City Select
    \ \ "; m += "
    \
    Saved Unit Configuration :
    New :  \
    "; t.cont.innerHTML = m; t.statpourRAA = ById('statpourDAA'); //Gestion des favoris t.Favoris = ById('DBO_AT_Fav'); function metajourfavori() { t.Favoris.innerHTML = ""; var lisf = Options.DefendFav; for (var m in lisf) { var lis = lisf[m]; t.Favoris.innerHTML += ""; } } ById("DBO_AT_Fav_RESET").addEventListener('click', function () { Options.DefendFav = {}; saveOptions(); metajourfavori(); }, false); ById("DBO_AT_Fav_Sup").addEventListener('click', function () { numfav = ById("DBO_AT_Fav").value; if (numfav != "") { Options.DefendFav[numfav] = {}; delete Options.DefendFav[numfav]; saveOptions(); metajourfavori(); } }, false); ById("DBO_AT_Fav_ajou").addEventListener('click', function () { if (ById("DBO_AT_Fav_Nom").value == "") { alert("Please fill in a name!"); return; } var a = ById("DBO_AT_Fav_Nom").value; Options.DefendFav[a] = {}; var lisf = Options.DefendFav[a]; lisf[0] = ById("DBO_AT_Fav_Nom").value; for (var ui in uW.cm.UNIT_TYPES) lisf[uW.cm.UNIT_TYPES[ui]] = ById("DAAnbunit" + uW.cm.UNIT_TYPES[ui]).value; ById("DBO_AT_Fav_Nom").value = ""; saveOptions(); metajourfavori(); }, false); ById("DBO_AT_Fav").addEventListener('change', function () { numfav = ById("DBO_AT_Fav").value; if (numfav == "") { for (var ui in uW.cm.UNIT_TYPES) ById("DAAnbunit" + uW.cm.UNIT_TYPES[ui]).value = 0; } else { var lisf = Options.DefendFav[numfav]; for (var m in lisf) { if (m > 0) if (ById("DAAnbunit" + m)) ById("DAAnbunit" + m).value = lisf[m]; } } }, false); // Fin gestion des favoris t.statutRAA = ById('ptDAAStatus'); t.destinationCityx = 0; t.destinationCityy = 0; t.destinationCityx.value = 0; t.destinationCityy.value = 0; t.actionRAA = ById('DAAaction'); t.actionRAA.addEventListener('click', function () { t.clickATTAQUEDo(4, 0); }, false); var dcp0 = new CdispCityPicker('ptDAA0', ById('DAAsrcRptspeedcity'), false, t.clickRAACitySourceSelect, Cities.byID[unsafeWindow.currentcityid].idx); metajourfavori(); t.clickRAACitySourceSelect(t.sourceCity); // var closestNum = t.getclosestcity(); // t.dcp1 = new CdispCityPicker ('ptmarch_citydest', ById('DBOVilleProche'), false, t.estimerRes, null).bindToXYboxes(ById("DAAtypetrpx"),ById("DAAtypetrpy")); } }, getclosestcity: function () { var t = Tabs.Defend; var x1 = parseInt(t.sourceCity.x); var x2 = parseInt(t.destinationCityx.value); var y1 = parseInt(t.sourceCity.y); var y2 = parseInt(t.destinationCityy.value); var dist = distance(x1, y1, x2, y2); var closestDist = 999999; var closestLoc = null; var closestNum = 1; for (var c = 0; c < Cities.numCities; c++) { var city = Cities.cities[c]; var dist = distance(city.x, city.y, x2, y2); if (dist < closestDist) { closestDist = dist; closestLoc = city.x + ',' + city.y; closestNum = c; } } return closestNum; }, enregistreAttack: function () { var t = Tabs.Defend; if (t.BOHorloge.value.match("^[0-9]{2}:[0-9]{2}:[0-9]{2}$")) { var horloge = t.BOHorloge.value; Options.DefendHorloge = horloge; var ndate = new Date(); ndate.setHours(horloge.substr(0, 2)); ndate.setMinutes(horloge.substr(3, 2)); ndate.setSeconds(0); var atunits = new Array(); for (var ui in uW.cm.UNIT_TYPES) atunits.push(parseInt(ById("DAAnbunit" + uW.cm.UNIT_TYPES[ui]).value)); Options.DefendUnits = atunits; Options.DefendFromCity = t.sourceCity.id; Options.DefendKnight = ById("DAApiKnight").value; Options.DefendCibleX = t.destinationCityx.value; Options.DefendCibleY = t.destinationCityy.value; var x1 = parseInt(t.sourceCity.x); var x2 = parseInt(t.destinationCityx.value); var y1 = parseInt(t.sourceCity.y); var y2 = parseInt(t.destinationCityy.value); var dist = distance(x1, y1, x2, y2); var tempplusgrand = 0; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; if (parseInt(ById("DAAnbunit" + r).value) > 0) { var m = estETA(dist, r, t.sourceCity.id); if (tempplusgrand < m.ETA) tempplusgrand = m.ETA; } } var departtime = ndate.getTime() - (tempplusgrand * 1000); var depart = new Date() depart.setTime(departtime); var now = unixTime() * 1000; if (now > depart.getTime()) { t.BOAttackProg.innerHTML = "Depart impossible !"; return false; } Options.DefendGoHorloge = depart.getTime(); saveOptions(); t.BOAttackProg.innerHTML = "Attaque sur " + Options.DefendCibleX + "," + Options.DefendCibleY + " enregistrée"; t.BOEditAttack.disabled = false; } else { t.BOAttackProg.innerHTML = "Mauvais format de l'horloge."; } }, clickATTAQUEDo: function (typemarche, bouffe) { var t = Tabs.Defend; var totalunit = 0; if (typemarche == 3 && ById("DAAnbunit3").value == 0) ById("DAAnbunit3").value = 1; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; if (typemarche == 3 && r != 3) { ById("DAAnbunit" + r).value = 0; } if (parseInt(ById("DAAnbunit" + r).value) > parseInt(ById("DAAdestunit" + r).value)) { ById("DAAnbunit" + r).style.backgroundColor = "red"; return false; } totalunit = totalunit + parseInt(ById("DAAnbunit" + r).value); ById("DAAnbunit" + r).style.backgroundColor = ""; } var errMsg = ""; if (errMsg != "") { t.statutRAA.innerHTML = "" + errMsg + ""; return; } var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.cid = t.sourceCity.id; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; params["u" + i] = 0; } if (typemarche != 3) { for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (ById("DAAnbunit" + i).value > 0) params["u" + i] = ById("DAAnbunit" + i).value; } } else { params.u3 = ById("DAAnbunit3").value; ById("DAAnbunit3").value = 0; } t.actionRAA.disabled = true; t.statutRAA.innerHTML = "Setting defense ...."; new MyAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/cityDefenseSet.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, loading: true, onSuccess: function (transport) { var t = Tabs.Defend; var rslt = transport; if (rslt.ok) { var unitsarr = []; for (j in unsafeWindow.unitcost) unitsarr.push(0); for (i = 0; i <= unitsarr.length; i++) if (params["u" + i]) unitsarr[i] = params["u" + i]; if (rslt.updateSeed) { unsafeWindow.update_seed(rslt.updateSeed) }; if (rslt.def != null) { var unitlist = unsafeWindow.seed.defunits["city" + t.sourceCity.id]; uW.jQuery.each(rslt.def, function (key, val) { var key1 = key.replace("u", "unt"); unitlist[key1] = val }) } if (rslt.res != null) { var unitlist = unsafeWindow.seed.units["city" + t.sourceCity.id]; uW.jQuery.each(rslt.res, function (key, val) { var key1 = key.replace("u", "unt"); unitlist[key1] = val }) } var typeattaque = "Defense set successful"; t.statutRAA.innerHTML = "
    " + typeattaque + "
    "; t.clickRAACitySourceSelect(t.sourceCity); } else { t.statutRAA.innerHTML = "Error setting defense!"; if (rslt.msg) { t.statutRAA.innerHTML += "
    " + rslt.msg + ""; } else { t.statutRAA.innerHTML += "
    Waiting for 2 seconds!"; //setTimeout(function() { t.clickATTAQUEDo(); }, 2000); } } t.actionRAA.disabled = false; }, onFailure: function () { var t = Tabs.Defend; t.statutRAA.innerHTML = "Error communicating with server!"; t.actionRAA.disabled = false; } }); }, SelectFavoris: function () { var t = Tabs.Defend; if (t.listeFavoris.value != '') { var valeur = t.listeFavoris.value; var x = valeur.substr(0, valeur.lastIndexOf(',')); var y = valeur.substr(valeur.lastIndexOf(',') + 1, valeur.length); t.destinationCityx.value = x; t.destinationCityy.value = y; } }, chercherFavoris: function () { var t = Tabs.Defend; var myA = getMyAlliance(); if (myA[0] != 0) { var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.perPage = 100; params.allianceId = myA[0]; new MyAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/getUserLeaderboard.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { // on vide la liste //t.listeFavoris.innerHTML=null; if (rslt.ok) { var z = 0; var m = ""; for (var i = 0; i < rslt.results.length; i++) { p = rslt.results[i]; if (p.userId != 0) { for (var c = 0; c < p.cities.length; c++) { if (Seed.player.name != p.displayName) { m += ""; } } //fin for cities } //fin if user } //fin for resultat t.listeFavoris.innerHTML = "" + m; } // fin }, onFailure: function (rslt) { t.listeFavoris.innerHTML = ""; }, }); } else { // Si pas d'alliance ! t.listeFavoris.innerHTML = ""; } }, SaveCoordsOptions: function (x, y) { Options.Xrenfort = x; Options.Yrenfort = y; saveOptions(); }, Refreshtroops: function () { if (!ById("DAAstatsource")) return; var t = Tabs.Defend; var cityID = 'city' + t.sourceCity.id; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; ById('DAAdestunit' + r).value = parseInt(Seed.units[cityID]['unt' + r]) + parseInt(Seed.defunits[cityID]['unt' + r]); } setTimeout(t.Refreshtroops, 1000); }, clickRAACitySourceSelect: function (city) { var t = Tabs.Defend; if (t.sourceCity != city) { t.sourceCity = city; } var m = ""; m = ""; var cityID = 'city' + t.sourceCity.id; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; m += '\ \ '; m += '\ '; } m += "
    Total Units AvailableCurrent Defending UnitsUnits to ReserveUnits Selected
      \  \
    "; ById("DAAstatsource").innerHTML = m; for (var ui in uW.cm.UNIT_TYPES) { r = uW.cm.UNIT_TYPES[ui]; ById("DAApdestunit" + r).addEventListener('click', function () { var nomcha = this.id.replace("DAApdest", "DAAdest"); var nomcha2 = this.id.replace("DAApdestunit", "DAAnbunit"); var nomcha3 = this.id.replace("DAApdestun", "DAArsrvun"); ById(nomcha2).value = 0; ById(nomcha2).value = ById(nomcha).value - ById(nomcha3).value; if (ById(nomcha2).value < 0) ById(nomcha2).value = 0; }, false); ById("DAArsrvunit" + r).addEventListener('change', function () { if (isNaN(this.value)) this.value = 0; var unt = this.id.replace("DAArsrvunit", ""); Options.DefendRsrv[unt] = this.value; }, false); } ById("BO_DAZ_Units").addEventListener('click', function () { for (var ui in uW.cm.UNIT_TYPES) ById("DAAnbunit" + uW.cm.UNIT_TYPES[ui]).value = 0; }, false); ById("BO_DRSRV_Units").addEventListener('click', function () { for (var ui in uW.cm.UNIT_TYPES) ById("DAArsrvunit" + uW.cm.UNIT_TYPES[ui]).value = 0; }, false); }, } /*************************************** MARCHES TAB ************************************************/ Tabs.Marches = { tabOrder: 5, tabLabel: uW.g_js_strings.commonstr.marching, cont: null, displayTimer: null, displayPopupTimer: null, curTabBut: null, curTabName: null, widescreen: true, init: function (div) { var t = Tabs.Marches; uW.pr56Recall = t.butRecall; uW.r8x6Home = t.butSendHome; uW.cancelMarch = t.butcancelmarch; t.MarchDivP = null; t.cont = div; var main = ''; main += ''; main += ''; main += '

    '; main += 'HELP'; main += '
    '; t.cont.innerHTML = main; t.marchDiv = document.getElementById('ptMarchOutput'); t.marchDivP = document.getElementById('ptMarchOutput'); document.getElementById('ptmrchSubN').addEventListener('click', e_butSubtab, false); document.getElementById('ptmrchSubP').addEventListener('click', e_butSubtab, false); document.getElementById('ptmrchSubR').addEventListener('click', e_butSubtab, false); document.getElementById('ptmrchSubM').addEventListener('click', e_butSubtab, false); changeSubtab(document.getElementById('ptmrchSub' + Options.curMarchTab)); function e_butSubtab(evt) { changeSubtab(evt.target); } function changeSubtab(but) { if (but == t.curTabBut) return; if (t.curTabBut) { t.curTabBut.className = 'pbSubtab'; t.curTabBut.disabled = false; } t.curTabBut = but; but.className = 'pbSubtab pbSubtabSel'; but.disabled = true; t.curTabName = but.id.substr(9); Options.curMarchTab = t.curTabName; saveOptions(); t.show(); } }, hide: function () { var t = Tabs.Marches; clearTimeout(t.displayTimer); }, show: function () { var t = Tabs.Marches; clearTimeout(t.displayTimer); if (t.curTabName == 'R') t.showReinforcements(); else if (t.curTabName == 'M') t.showMarches(); else if (t.curTabName == 'P') { t.showIncoming('popup'); Options.curMarchTab = 'N'; saveOptions(); } else t.showIncoming(''); }, /*** Incoming SUBTAB ***/ showIncoming: function (target) { var t = Tabs.Marches; if (target == 'popup') { t.marchDivP = new CPopup('ptShowIncoming', 0, 0, 650, 340, true, function () { clearTimeout(1000); }); t.marchDivP.getMainDiv().innerHTML = m; } else t.marchDiv.innerHTML = null; var z = ''; for (k in Seed.queue_atkinc) { if (Seed.queue_atkinc.length != 0) { var now = unixTime(); var icon, status, FROM, cityname, FROMmight, marchdir, marchtime; var marchType = parseInt(Seed.queue_atkinc[k]["marchType"]); if (marchType == 10) marchType = 4; //MARCH_TYPE_DARK_FOREST: 10 var marchStatus = parseInt(Seed.queue_atkinc[k]["marchStatus"]); for (var i = 0; i < Seed.cities.length; i++) { if (Seed.cities[i][0] == Seed.queue_atkinc[k]["toCityId"]) cityname = Seed.cities[i][1]; } if (Seed.queue_atkinc[k]["destinationUnixTime"] < now || marchStatus == 8) marchdir = "returning"; else marchdir = "going"; var destinationUnixTime = Seed.queue_atkinc[k]["arrivalTime"] - now; if (destinationUnixTime > 0) marchtime = timestr(destinationUnixTime, true) else marchtime = 'Arrived'; if (marchType != 3 && marchType != 4) { var player = Seed.players['u' + Seed.queue_atkinc[k]["fromPlayerId"]] FROM = player.n; FROMmight = player.m; } else { for (players in Seed.players) { if (marchType == 3 || marchType == 4) { if (('u' + Seed.queue_atkinc[k]["pid"]) == players) { FROM = Seed.players[players]["n"]; FROMmight = Seed.players[players]["m"]; } } } } if (marchType == 2 && marchStatus == 2) marchType = 102; switch (marchType) { case 1: icon = "https://kabam1-a.akamaihd.net/silooneofcamelot/fb/e2/src/img/transporting.jpg"; status = uW.g_js_strings.commonstr.transport; break; case 2: icon = "https://kabam1-a.akamaihd.net/silooneofcamelot/fb/e2/src/img/reinforce.jpg"; status = uW.g_js_strings.commonstr.reinforce; break; case 3: icon = "https://kabam1-a.akamaihd.net/silooneofcamelot/fb/e2/src/img/scouting.jpg"; status = uW.g_js_strings.commonstr.scout; break; case 4: icon = "https://kabam1-a.akamaihd.net/silooneofcamelot/fb/e2/src/img/attacking.jpg"; status = uW.g_js_strings.commonstr.attack; break; case 9: icon = "https://kabam1-a.akamaihd.net/silooneofcamelot/fb/e2/src/img/attacking.jpg"; status = uW.g_js_strings.commonstr.attack; break; case 5: icon = "https://kabam1-a.akamaihd.net/silooneofcamelot/fb/e2/src/img/transporting.jpg"; status = uW.g_js_strings.commonstr.reassign; break; case 100: icon = "https://kabam1-a.akamaihd.net/silooneofcamelot/fb/e2/src/img/returning.jpg"; status = uW.g_js_strings.commonstr.returning; break; case 102: icon = "https://kabam1-a.akamaihd.net/silooneofcamelot/fb/e2/src/img/reinforce.jpg"; status = uW.g_js_strings.commonstr.encamped; break; } if (status == uW.g_js_strings.commonstr.encamped) z += ''; else z += ''; z += ''; z += ''; z += ''; z += ''; z += ''; if (Seed.queue_atkinc[k]["knt"] != undefined) z += ''; if (Seed.queue_atkinc[k]["gold"] > 0) z += ''; if (Seed.queue_atkinc[k]["resource1"] > 0) z += ''; if (Seed.queue_atkinc[k]["resource2"] > 0) z += ''; if (Seed.queue_atkinc[k]["resource3"] > 0) z += ''; if (Seed.queue_atkinc[k]["resource4"] > 0) z += ''; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (Seed.queue_atkinc[k]["unit" + i + "Count"] > 0 && marchdir == "going") z += ''; if (Seed.queue_atkinc[k]["unit" + i + "Return"] > 0 && marchdir == "returning") z += ''; } if (marchType == 3) if (Object.keys(Seed.queue_atkinc[k]["unts"]).length > 0) if (Seed.queue_atkinc[k]["unts"]["u3"] > 0) z += ''; if (marchType == 4) { if (Object.keys(Seed.queue_atkinc[k]["unts"]).length > 0) for (var i in uW.cm.UNIT_TYPES) { ui = uW.cm.UNIT_TYPES[i]; if (Seed.queue_atkinc[k]["unts"]["u" + ui] > 0) z += ''; } } z += ''; } } z += '
    ' + status + '' + cityname + '' + marchtime + '' + uW.g_js_strings.commonstr.from + ': ' + FROM + '' + uW.g_js_strings.commonstr.might + ': ' + addCommas(FROMmight) + '' + uW.g_js_strings.commonstr.knight + ': ' + Seed.queue_atkinc[k]["knt"]["cbt"] + '' + GameIcons.goldImgTiny + addCommas(Seed.queue_atkinc[k]["gold"]) + '' + GameIcons.foodImgTiny + addCommas(Seed.queue_atkinc[k]["resource1"]) + '' + GameIcons.woodImgTiny + addCommas(Seed.queue_atkinc[k]["resource2"]) + '' + GameIcons.stoneImgTiny + addCommas(Seed.queue_atkinc[k]["resource3"]) + '' + GameIcons.oreImgTiny + addCommas(Seed.queue_atkinc[k]["resource4"]) + '' + uW.unitcost['unt' + i][0] + ': ' + addCommas(Seed.queue_atkinc[k]["unit" + i + "Count"]) + '' + uW.unitcost['unt' + i][0] + ': ' + addCommas(Seed.queue_atkinc[k]["unit" + i + "Return"]) + '' + uW.unitcost.unt3[0] + ': ' + addCommas(Seed.queue_atkinc[k]["unts"]["u3"]) + '' + uW.unitcost['unt' + ui][0] + ': ' + addCommas(Seed.queue_atkinc[k]["unts"]["u" + ui]) + '
    '; if (target == 'popup') { t.marchDivP.getMainDiv().innerHTML = z; t.marchDivP.getTopDiv().innerHTML = '
    INCOMING!
    '; t.marchDivP.show(true); t.displayPopupTimer = setTimeout(function () { t.showIncoming('popup'); }, 1000); t.marchDivP.onClose = function () { clearTimeout(t.displayPopupTimer); } } else { t.marchDiv.innerHTML = z; t.displayTimer = setTimeout(function () { t.showIncoming(''); }, 500); } }, /*** MARCHES SUBTAB ***/ showMarches: function () { var t = Tabs.Marches; t.marchDiv.innerHTML = null; var updatemarch = Seed.queue_atkp; var m = ''; for (var c = 0; c < Seed.cities.length; c++) { cityname = Seed.cities[c][1]; cityID = 'city' + Seed.cities[c][0]; var raidNumber = 0; var marchNumber = 0; var tmpMsg = ''; var raidMarchMsg = ''; var marchMsg = '
    Attack/Scout/Reinforce/Transport
    '; m += '
    ' + cityname + '
    '; //raidMarchMsg += ''; raidMarchMsg += '
    '; for (k in Seed.queue_atkp[cityID]) { if (Seed.queue_atkp[cityID].length != 0) { var marchID = new String(k); marchID = marchID.substr(1); //marchType 1 = transport //marchType 2 = reinforce //marchType 3 = scouting //marchType 4 = attacking //marchType 9 = barb raid var marchType = parseInt(Seed.queue_atkp[cityID][k]["marchType"]); if (marchType == 10) marchType = 4; //MARCH_TYPE_DARK_FOREST: 10 //marchStatus 1 = marching //marchStatus 2 = encamped //marchStatus 5 = waiting for report //marchStatus 8 = returning //matchStatus 10 = raid stopped var marchStatus = parseInt(Seed.queue_atkp[cityID][k]["marchStatus"]); var now = unixTime(); cityTo = null; var icon, status, type, cityTo, knight, marchtime; for (var i = 0; i < Seed.cities.length; i++) { if (Seed.cities[i][2] == Seed.queue_atkp[cityID][k]["toXCoord"] && Seed.cities[i][3] == Seed.queue_atkp[cityID][k]["toYCoord"]) cityTo = Seed.cities[i][1]; } var destinationUnixTime = Seed.queue_atkp[cityID][k]["destinationUnixTime"] - now; var returnUnixTime = Seed.queue_atkp[cityID][k]["returnUnixTime"] - now; var encampedUnixTime = now - Seed.queue_atkp[cityID][k]["destinationUnixTime"]; var restingUnixTime = now - Seed.queue_atkp[cityID][k]["returnUnixTime"]; if (Seed.queue_atkp[cityID][k]["destinationUnixTime"] > now) marchtime = timestr(destinationUnixTime, true); else marchtime = timestr(returnUnixTime, true); if (Seed.queue_atkp[cityID][k]["destinationUnixTime"] < now && marchType == 2) marchtime = timestr(encampedUnixTime, true); if (Seed.queue_atkp[cityID][k]["returnUnixTime"] < now && marchType == 9) marchtime = timestr(restingUnixTime, true); if (Seed.queue_atkp[cityID][k]["destinationUnixTime"] < now || marchStatus == 8) type = "returning"; else type = "going"; if (Seed.queue_atkp[cityID][k]["destinationUnixTime"] < now) { if (marchStatus == 8) marchtime = timestr(returnUnixTime, true); if (type == "returning" && marchType == 2 && marchStatus != 2) marchtime = timestr(returnUnixTime, true); if (type == "returning" && marchType == 4 && marchStatus == 2) marchtime = timestr(returnUnixTime, true); if (marchStatus == 2 && marchType != 2) marchtime = timestr(returnUnixTime, true); } if (marchType == 4 && marchStatus == 2) marchtime = timestr(destinationUnixTime, true);; var iconType = marchType; if (type == "returning" && marchType != 2) iconType = 8; if (type == "returning" && marchType == 2 && marchStatus == 2) iconType = 102; if (type == "returning" && marchType == 2 && marchStatus != 2) iconType = 8; if (marchStatus == 10) iconType = 103; if (marchStatus == 4) iconType = 104; if (marchType == 4 && marchStatus == 2) { iconType = 102; marchtime = timestr(encampedUnixTime, true) } switch (iconType) { case 1: icon = GameIcons.transport; status = uW.g_js_strings.commonstr.transport; break; case 2: icon = GameIcons.reinforce; status = uW.g_js_strings.commonstr.reinforce; break; case 3: icon = GameIcons.scouting; status = uW.g_js_strings.commonstr.scout; break; case 4: icon = GameIcons.attacking; status = uW.g_js_strings.commonstr.attack; break; case 5: icon = GameIcons.transport; status = uW.g_js_strings.commonstr.reassign; break; case 8: icon = GameIcons.returning; status = uW.g_js_strings.commonstr.returning; break; case 9: icon = GameIcons.attacking; status = uW.g_js_strings.commonstr.raid; break; case 102: icon = GameIcons.reinforce; status = uW.g_js_strings.commonstr.encamped; break; case 103: icon = GameIcons.raidStopped; status = uW.g_js_strings.attack_generatequeue.raidstopped; break; case 104: icon = GameIcons.raidResting; status = uW.g_js_strings.attack_generatequeue.raidresting; break; } if (Seed.queue_atkp[cityID][k]["knightId"] != 0) { for (i in Seed.knights[cityID]) { if (i == ("knt" + Seed.queue_atkp[cityID][k]["knightId"])) knight = Seed.knights[cityID][i]["combat"]; } } else knight = null; tmpMsg = ''; if (marchType == 9) { raidNumber++; raidMarchMsg += ''; } else { marchNumber++; marchMsg += '
    ' + raidNumber + '' + icon + '' + status + '' + marchtime + '
    '; else if (status == 'Encamped' && t.isMyself(Seed.queue_atkp[cityID][k].fromPlayerId)) marchMsg += ''; else if (status == 'Returning' || status == "Raid Stopped") marchMsg += ''; else marchMsg += ''; marchMsg += ''; } if (cityTo == null) tmpMsg += ''; else tmpMsg += ''; if (knight != null) tmpMsg += ''; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (Seed.queue_atkp[cityID][k]["unit" + i + "Count"] > 0 && type == "going") tmpMsg += ''; if (Seed.queue_atkp[cityID][k]["unit" + i + "Return"] > 0 && type == "returning") tmpMsg += ''; } if (Seed.queue_atkp[cityID][k]["toTileType"] == 11) tmpMsg += ''; else if (Seed.queue_atkp[cityID][k]["toTileType"] == 20) tmpMsg += ''; else if (Seed.queue_atkp[cityID][k]["toTileType"] == 30) tmpMsg += ''; else if (Seed.queue_atkp[cityID][k]["toTileType"] == 40) tmpMsg += ''; else if (Seed.queue_atkp[cityID][k]["toTileType"] == 50) tmpMsg += ''; else if (Seed.queue_atkp[cityID][k]["toCityId"] == 0) tmpMsg += ''; tmpMsg += '
    ' + marchNumber + ''; if (status == "Encamped" && !t.isMyself(Seed.queue_atkp[cityID][k].fromPlayerId)) marchMsg += '' + icon + '' + icon + '' + icon + '' + icon + '' + status + '' + marchtime + '' + coordLink(Seed.queue_atkp[cityID][k]["toXCoord"], Seed.queue_atkp[cityID][k]["toYCoord"]) + '' + cityTo + '' + uW.g_js_strings.commonstr.knight + ': ' + knight + '' + uW.unitcost['unt' + i][0] + ': ' + addCommas(Seed.queue_atkp[cityID][k]["unit" + i + "Count"]) + '' + uW.unitcost['unt' + i][0] + ': ' + addCommas(Seed.queue_atkp[cityID][k]["unit" + i + "Return"]) + 'Lake Lvl: ' + Seed.queue_atkp[cityID][k]["toTileLevel"] + 'Grassland Lvl: ' + Seed.queue_atkp[cityID][k]["toTileLevel"] + 'Hills Lvl: ' + Seed.queue_atkp[cityID][k]["toTileLevel"] + 'Mountain Lvl: ' + Seed.queue_atkp[cityID][k]["toTileLevel"] + 'Plain Lvl: ' + Seed.queue_atkp[cityID][k]["toTileLevel"] + '' + uW.g_js_strings.commonstr.barbariancamp + ' ' + uW.g_js_strings.commonstr.lvl + ': ' + Seed.queue_atkp[cityID][k]["toTileLevel"] + '' if (Seed.queue_atkp[cityID][k]["gold"] > 0) tmpMsg += GameIcons.goldImgTiny + addCommas(Seed.queue_atkp[cityID][k]["gold"]); if (Seed.queue_atkp[cityID][k]["resource1"] > 0) tmpMsg += GameIcons.foodImgTiny + addCommas(Seed.queue_atkp[cityID][k]["resource1"]); if (Seed.queue_atkp[cityID][k]["resource2"] > 0) tmpMsg += GameIcons.woodImgTiny + addCommas(Seed.queue_atkp[cityID][k]["resource2"]); if (Seed.queue_atkp[cityID][k]["resource3"] > 0) tmpMsg += GameIcons.stoneImgTiny + addCommas(Seed.queue_atkp[cityID][k]["resource3"]); if (Seed.queue_atkp[cityID][k]["resource4"] > 0) tmpMsg += GameIcons.oreImgTiny + addCommas(Seed.queue_atkp[cityID][k]["resource4"]); tmpMsg += '
    '; if (marchType == 9) { raidMarchMsg += tmpMsg; } else { marchMsg += tmpMsg; } } } m += '' m += raidMarchMsg + '
    '; m += marchMsg; } t.marchDiv.innerHTML = m; for (var c = 0; c < Seed.cities.length; c++) { cityID = 'city' + Seed.cities[c][0]; (function (cityID, c) { document.getElementById('ptRaidHdr' + cityID).addEventListener('click', function () { ToggleDivDisplay(500, 500, "ptRaid" + cityID); Options.marchRaidState[c] = !(Options.marchRaidState[c]); saveOptions(); }, false); if (Options.marchRaidState[c]) { ToggleDivDisplay(500, 500, "ptRaid" + cityID); } })(cityID, c); } t.displayTimer = setTimeout(t.showMarches, 500); }, isMyself: function (userID) { if (!Seed.players["u" + userID]) return false; if (Seed.players["u" + userID].n == Seed.player.name) return true; else return false; return false; }, butcancelmarch: function (marchID) { var t = Tabs.Marches; var params = uW.Object.clone(uW.g_ajaxparams); params.mid = marchID; for (var c = 0; c < Cities.numCities; c++) { var que = Seed.queue_atkp['city' + Cities.cities[c].id]; if (matTypeof(que) == 'array') continue; for (k in que) { if (k == 'm' + marchID) { params.cid = Cities.cities[c].id; break; } } } new AjaxRequest(uW.g_ajaxpath + "ajax/cancelMarch.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { var march = uW.seed.queue_atkp["city" + params.cid]["m" + params.mid]; march.marchStatus = 8; var marchtime = parseInt(march.returnUnixTime) - parseInt(march.destinationUnixTime); var ut = unixTime(); if (uW.seed.playerEffects.returnExpire > unixTime()) marchtime *= 0.5 march.returnUnixTime = ut + marchtime; march.destinationUnixTime = ut; march.marchUnixTime = ut - marchtime; if (rslt.updateSeed) { update_seed(rslt.updateSeed) } if (notify != null) notify(rslt.errorMsg); }, onFailure: function () { if (notify != null) notify(rslt.errorMsg); }, }); }, /*** REINFORCEMENTS SUBTAB ***/ showReinforcements: function () { var rownum = 0; var names = ['Supply', 'Mil', 'Scout', 'Pike', 'Sword', 'Archer', 'Cav', 'Heavy', 'Wagon', 'Balli', 'Ram', 'Cat', 'BloodT', 'Exec', 'SWall', 'FlArcher']; var t = Tabs.Marches; clearTimeout(t.displayTimer); // TODO FIX: Troops show as encamped even if they are here yet (check destinationUnixTime) // - Added 5/9/2013 /*** var s = 'OUTGOING:
    '; for (var c=0; c'; for (k in que){ march = que[k]; var mid = k.substr(1); s += mid +' DEST: '+ march.toXCoord +','+ march.toYCoord + '
    ' } } t.cont.innerHTML = s; t.displayTimer = setTimeout (t.show, 10000); return; ***/ function clickShowRemaining() { checkBox = document.getElementById('idCheck2'); if (checkBox.checked) Options.encRemaining = false; else Options.encRemaining = true; t.show(); } enc = {}; numSlots = 0; if (matTypeof(Seed.queue_atkinc) != 'array') { for (k in Seed.queue_atkinc) { march = Seed.queue_atkinc[k]; var now = unixTime(); if (march["destinationUnixTime"] < now) if (march.marchType == 2) { ++numSlots; city = march.toCityId; from = march.fromPlayerId; if (!enc[city]) enc[city] = {}; if (!enc[city][from]) enc[city][from] = []; s = {}; s.knight = parseInt(march.knightCombat); s.marchId = k.substr(1); s.troops = []; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; if (Options.encRemaining) s.troops[i] = parseInt(march['unit' + i + 'Return']); else s.troops[i] = parseInt(march['unit' + i + 'Count']); } enc[city][from].push(s); } } } //logit ("enc: "+ inspect (enc, 6, 1)); s = '
    Showing troops encamped at each of your embassies.

    '; if (numSlots == 0) { s += '
    No troops encamped.
    '; } else { s += ''; s += ''; for (k = 0; k < names.length; k++) s += ''; s += ''; tot = []; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; tot[i] = 0; } for (c in Cities.cities) { dest = Cities.cities[c].id; if (enc[dest]) { s += ''; s += ''; for (p in enc[dest]) { try { player = Seed.players['u' + p].n; } catch (err) { player = '???'; } for (m = 0; m < enc[dest][p].length; m++) { var march = enc[dest][p][m]; knight = ''; if (march.knight > 0) knight = ' (' + march.knight + ')'; // TODO: Only allow 'send home' if troops are here now (marchStatus = ?) s += '' for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; s += ''; tot[i] += march.troops[i]; } s += ''; } } } } s += ''; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; s += ''; } s += '
    Player (knight)' + names[k] + '

    ' + Cities.cities[c].name + '
    ' + player + knight + ' X' + march.troops[i] + '


    TOTALS:' + tot[i] + '
    '; } s += '

    Show Original Troops'; s += '

    NOTE: You will need to refresh KofC to show new encampments or remaining troops after a battle.
    '; t.marchDiv.innerHTML = s; checkBox = document.getElementById('idCheck2'); checkBox.addEventListener('click', clickShowRemaining, false); t.displayTimer = setTimeout(t.show, 10000); }, butRecall: function (marchId) { var t = Tabs.Marches; logit("CANCELLING: " + marchId); t.ajaxRecall(marchId); }, butSendHome: function (marchId) { var t = Tabs.Marches; //alert("Sent Home march#"+marchId); logit("SEND HOME: " + marchId); t.ajaxSendHome(marchId, function (r) { t.show(); logit("AJAX RESULT: " + r) }); }, /*** // not working, returns 'invalid parameters' :( ajaxCancelMarch : function (marchId, notify){ var params = uW.Object.clone(uW.g_ajaxparams); logit ('ajaxCancelMarch: '+ marchId); for (var c=0; c unixTime()) marchtime *= 0.5 march.returnUnixTime = ut + marchtime; march.destinationUnixTime = ut; march.marchUnixTime = ut - marchtime; if (notify != null) notify(rslt.errorMsg); }, onFailure: function () { if (notify != null) notify(rslt.errorMsg); }, }); }, }; /*******************************************/ var PageNavigator = { modalMessagesFunc: null, ctrlPaginationOld: null, loadPage_paginationOld: null, cpPager: null, init: function () { var t = PageNavigator; t.modalMessagesFunc = new CalterUwFunc('modal_messages', [ [/pageNavigatorModel\s*=.*?;/i, 'var pager=new ptPagerHook(0,5);pageNavigatorModel=pager;'], [/pageNavigatorView\s*=.*?;/i, 'pageNavigatorView=pager;'], [/pageNavigatorController\s*=.*?;/i, 'pageNavigatorController=pager;'] ]); uW.ptPagerHook = t.Cpager; t.ctrlPaginationOld = uW.ctrlPagination; t.loadPage_paginationOld = uW.loadPage_pagination; t.cpPager = new t.Cpager(0, 0); t.cpPager.oldStyle = true; t.enable(Options.fixPageNav); }, // called on 'back' ... loadPage_pagination: function (divId, currentPage, callbackFunction, totalPages) { var t = PageNavigator; var curPage = parseInt(currentPage); //logit ('loadPage_pagination: '+ divId +','+ t.cpPager.divId +','+ currentPage +','+ callbackFunction +','+ totalPages +','+ t.cpPager.getCurrentPage()); if (divId == t.cpPager.divId) // if 'old' style ... unsafeWindow[callbackFunction](t.cpPager.getCurrentPage()); else unsafeWindow[callbackFunction](currentPage); }, ctrlPagination: function (navDivId, numPages, notify, curPage) { var t = PageNavigator; //logit ('ctrlPagination (divid:'+ navDivId +')'); if (document.getElementById(navDivId).firstChild == null) document.getElementById(navDivId).appendChild(t.cpPager.getHtmlElement()); t.cpPager.setPageCount(numPages); t.cpPager.divId = navDivId; if (!curPage) curPage = 1; t.cpPager.gotoPage(curPage); t.cpPager.onClick = unsafeWindow[notify]; uW.pageNavigatorView = t.cpPager; }, enable: function (tf) { var t = PageNavigator; t.modalMessagesFunc.setEnable(tf); if (tf) { uW.ctrlPagination = t.ctrlPagination; uW.loadPage_pagination = t.loadPage_pagination; } else { uW.ctrlPagination = t.ctrlPaginationOld; uW.loadPage_pagination = t.loadPage_paginationOld; } }, isAvailable: function () { var t = PageNavigator; return t.modalMessagesFunc.isAvailable(); }, Cpager: function (a, b) { // public function protos ... this.getHtmlElement = getHtmlElement; this.setPageCount = setPageCount; this.getPageCount = getPageCount; this.getCurrentPage = getCurrentPage; this.gotoPage = gotoPage; this.e_but = e_but; this.e_inp = e_inp; // var t = this; this.onClick = null; this.numPages = b; this.curPage = a; this.oldStyle = false; function getHtmlElement() { function aButton(msg, evtPage) { return '' + msg + ''; } var div = document.createElement('div'); div.id = 'ptPageNavBar'; div.innerHTML = '\ \ \ \ \ \ \
    ' + aButton('▏▏◄', 'F') + '' + aButton('◄', '-') + '' + aButton('►', '+') + '' + aButton('►▕▕', 'L') + 'Page OF ?
    '; var mml = document.getElementById('modal_msg_list'); if (mml != null) mml.style.minHeight = '400px'; return div; } function getPageCount() { // koc needs for 'back' return t.numPages; } function getCurrentPage() { // koc needs for 'back' return t.curPage; } function setPageCount(c) { t.numPages = c; document.getElementById('ptPagerNumPages').innerHTML = c; var mml = document.getElementById('modal_msg_list'); if (mml != null) { if (document.getElementById('modal_msg_tabs_report').className.indexOf('selected') >= 0) mml.style.minHeight = '460px'; else mml.style.minHeight = '400px'; } } function gotoPage(p) { t.curPage = parseIntZero(p); document.getElementById('ptPagerPageNum').value = t.curPage; } function e_but(p) { if (p == 'F' && t.curPage != 1) loadPage(1); else if (p == '-' && t.curPage > 1) loadPage(t.curPage - 1); else if (p == '+' && t.curPage < t.numPages) loadPage(t.curPage + 1); else if (p == 'L' && t.curPage != t.numPages) loadPage(t.numPages); function loadPage(p) { if (t.oldStyle) t.gotoPage(p); t.onClick(p); } } function e_inp(p) { var pageNum = parseIntZero(document.getElementById('ptPagerPageNum').value); t.onClick(pageNum); } }, } function addScript(scriptText) { var scr = document.createElement('script'); scr.innerHTML = scriptText; document.body.appendChild(scr); // setTimeout ( function (){document.body.removeChild(scr);}, 500); } addScript('uwuwuwFunc = function (text){ eval (text); }'); /************* Updater code *************/ // Function for displaying a confirmation message modal popup similar to the default javascript confirm() function // but with the advantage being that it won't halt all other javascript being executed on the page. // Original Author: Thomas Chapin (April 6, 2011) function display_confirm(confirm_msg, ok_function, cancel_function) { if (!confirm_msg) { confirm_msg = ""; } var container_div = document.getElementById('modal_js_confirm'); var div; if (!container_div) { container_div = document.createElement('div'); container_div.id = 'modal_js_confirm'; container_div.style.position = 'absolute'; container_div.style.top = '0px'; container_div.style.left = '0px'; container_div.style.width = '100%'; container_div.style.height = '1px'; container_div.style.overflow = 'visible'; container_div.style.zIndex = 100000; div = document.createElement('div'); div.id = 'modal_js_confirm_contents'; div.style.zIndex = 100000; div.style.backgroundColor = '#eee'; div.style.fontFamily = '"lucida grande",tahoma,verdana,arial,sans-serif'; div.style.fontSize = '11px'; div.style.textAlign = 'center'; div.style.color = '#333333'; div.style.border = '2px outset #666'; div.style.padding = '10px'; div.style.position = 'relative'; div.style.width = '300px'; div.style.height = '100px'; div.style.margin = '300px auto 0px auto'; div.style.display = 'block'; container_div.appendChild(div); document.body.appendChild(container_div); div.innerHTML = '
    ' + confirm_msg + '

    Press OK to continue.

    '; var ok_button = document.getElementById('modal_js_confirm_ok_button'); ok_button.addEventListener('click', function () { if (ok_function && typeof (ok_function) == "function") { ok_function(); } container_div.parentNode.removeChild(container_div); }, false); var cancel_button = document.getElementById('modal_js_confirm_cancel_button'); cancel_button.addEventListener('click', function () { if (cancel_function && typeof (cancel_function) == "function") { cancel_function(); } container_div.parentNode.removeChild(container_div); }, false); } } // The following code is released under public domain. var AutoUpdater_116541 = { id: 116541, days: 1, name: "KOC Power Tools", version: Version, beta: GlobalOptions.ptupdatebeta, betaUrl: 'https://koc-power-tools.googlecode.com/svn/trunk/koc_power_tools.user.js', time: new Date().getTime(), call: function (response, secure) { GM_xmlhttpRequest({ method: 'GET', url: this.beta ? this.betaUrl : 'http' + (secure ? 's' : '') + '://userscripts.org/scripts/source/' + this.id + '.meta.js', onload: function (xpr) { AutoUpdater_116541.compare(xpr, response); }, onerror: function (xpr) { if (secure) AutoUpdater_116541.call(response, false); } }); }, enable: function () { GM_registerMenuCommand("Enable " + this.name + " updates", function () { GM_setValue('updated_116541', new Date().getTime() + ''); AutoUpdater_116541.call(true, true) }); }, compareVersion: function (r_version, l_version) { var r_parts = r_version.split(''), l_parts = l_version.split(''), r_len = r_parts.length, l_len = l_parts.length, r = l = 0; for (var i = 0, len = (r_len > l_len ? r_len : l_len); i < len && r == l; ++i) { r = +(r_parts[i] || '0'); l = +(l_parts[i] || '0'); } return (r !== l) ? r > l : false; }, compare: function (xpr, response) { this.xversion = /\/\/\s*@version\s+(.+)\s*\n/i.exec(xpr.responseText); this.xname = /\/\/\s*@name\s+(.+)\s*\n/i.exec(xpr.responseText); if ((this.xversion) && (this.xname[1] == this.name)) { this.xversion = this.xversion[1]; this.xname = this.xname[1]; } else { if ((xpr.responseText.match("the page you requested doesn't exist")) || (this.xname[1] != this.name)) { //GM_setValue('updated_116541', 'off'); } return false; } var updated = this.compareVersion(this.xversion, this.version); if (updated) { display_confirm('A new version of ' + this.xname + ' is available.\nDo you wish to install the latest version?', // Ok function () { try { location.href = this.beta ? this.betaUrl : 'https://userscripts.org/scripts/source/' + this.id + '.user.js'; } catch (e) {} }, // Cancel function () { if (AutoUpdater_116541.xversion) { if (confirm('Do you want to turn off auto updating for this script?')) { //GM_setValue('updated_116541', 'off'); GlobalOptions.ptupdate = false; GM_setValue('Options_??', JSON2.stringify(GlobalOptions)); AutoUpdater_116541.enable(); alert('Automatic updates can be re-enabled for this script from the User Script Commands submenu.'); } } } ); } else if (response) { alert('No updates available for ' + this.name); } }, check: function (tf) { if (!tf) { this.enable(); } else { if (+this.time > (+GM_getValue('updated_116541', 0) + 1000 * 60 * 60 * 24 * this.days)) { GM_setValue('updated_116541', this.time + ''); this.call(false, true); } GM_registerMenuCommand("Check " + this.name + " for updates", function () { GM_setValue('updated_116541', new Date().getTime() + ''); AutoUpdater_116541.call(true, true) }); } } }; if (typeof (GM_xmlhttpRequest) !== 'undefined' && typeof (GM_updatingEnabled) === 'undefined') { // has an updater? try { if (unsafeWindow.frameElement === null) { AutoUpdater_116541.check(GlobalOptions.ptupdate); } } catch (e) { AutoUpdater_116541.check(GlobalOptions.ptupdate); } } /********* End updater code *************/ //**************************** //This is a new implementation of the CalterUwFunc class to modify a function of the 'unsafewWindow' object. //For reverse compatibility this implementation operates like the original, but multiple CalterUwFunc objects can be created for the same function. //Each CalterUwFunc can be enabled or diabled independently. (Of course, the repalcement strings must be compatibile with each other to work //simulataneously). //The implementation uses a worker class CalterFuncModifier. One and only one CalterFuncModifier is created for each uw function modified. //CalterFuncModifier allows multiple modifier string pairs to be applied. For individual control of specific mods, access the 'modIndex' //member to determine the index of the first mod and then directly call the operations of the 'funcModifier' member. //This implementation creates/uses a registry of CalterFuncModifier's that is added to the unsafeWindow object so that changes //to the same function in different scripts is possible. //**************************** var CalterUwFunc = function (funcName, findReplace) { this.isAvailable = isAvailable; this.setEnable = setEnable; this.funcName = funcName; this.funcModifier = null; this.modIndex = 0; this.numberMods = 0; // find an existing CalterUwFunc if it already exists if (!unsafeWindow.calterRegistry) unsafeWindow.calterRegistry = {}; var calterF = null; if (unsafeWindow.calterRegistry[funcName]) { // use the existing function modifier calterF = unsafeWindow.calterRegistry[funcName]; for (i = 0; i < findReplace.length; i++) { calterF.addModifier(findReplace[i]); } } else { // create and register the new calter calterF = new CalterFuncModifier(funcName, findReplace); unsafeWindow.calterRegistry[funcName] = calterF; } this.funcModifier = calterF; if (findReplace != null) { this.numberMods = findReplace.length; this.modIndex = this.funcModifier.numModifiers() - this.numberMods; } function isAvailable() { // check if any of the replace strings matched the original function var avail = false; for (i = this.modIndex; i < this.modIndex + this.numberMods; i++) { if (this.funcModifier.testModifier(i)) avail = true; } return avail; } function setEnable(tf) { this.funcModifier.enableModifier(this.modIndex, tf, this.numberMods); } } var CalterFuncModifier = function (funcName, findReplace) { // (second argument is now optional ) this.applyModifiers = applyModifiers; this.addModifier = addModifier; this.enableModifier = enableModifier; this.testModifier = testModifier; this.modEnabled = modEnabled; this.numModifiers = numModifiers; this.funcName = funcName; this.funcOld = null; this.funcOldString = null; this.funcNew = null; this.modifiers = []; this.modsActive = []; try { var x = this.funcName.split('.'); var f = unsafeWindow; for (var i = 0; i < x.length; i++) f = f[x[i]]; ft = f.toString(); this.funcOld = f; this.funcOldString = ft.replace('function ' + this.funcName, 'function'); if (findReplace) { this.modifiers = findReplace; this.modsActive = new Array(findReplace.length); for (var i = 0; i < findReplace.length; i++) { this.modsActive[i] = false; } } } catch (err) { logit("CalterFuncModifier " + this.funcName + " " + err); } // test if this modifier works on the original function. // true = match found / replace possible // false = does not match function testModifier(modNumber) { x = this.funcOldString.replace(this.modifiers[modNumber][0], this.modifiers[modNumber][1]); if (x != this.funcOldString) { return true; } return false; } // use the active modifiers to create/apply a new function function applyModifiers() { try { var rt = this.funcOldString; var active = false; for (var i = 0; i < this.modifiers.length; i++) { if (!this.modsActive[i]) continue; x = rt.replace(this.modifiers[i][0], this.modifiers[i][1]); if (x == rt) // if not found { // print out an error message when the match fails. // These messages get lost on a refresh, so wait a few seconds to put it in the error log. setTimeout(function (fname, repStr, ftstr) { return function () { logit("Unable to replace string in function " + fname); logit("Replacment string:" + repStr); logit("Function listing: " + ftstr); return; } }(this.funcName, this.modifiers[i][0], ft), 3000); } else {} rt = x; active = true; } this.funcNew = rt; if (active) { // apply the new function uW.uwuwuwFunc(this.funcName + ' = ' + this.funcNew); } else { // set to the original function var x1 = this.funcName.split('.'); var f1 = unsafeWindow; for (var i = 0; i < x1.length - 1; i++) f1 = f1[x1[i]]; f1[x1[x1.length - 1]] = this.funcOld; } } catch (err) { logit("CalterFuncModifier " + this.funcName + " " + err); } } // add additional modifiers. The index of the modifier is returned so the caller can enable/disable it specificially function addModifier(fr) { this.modifiers.push(fr); this.modsActive.push(false); // return the index of the newly added modifier return this.modifiers.length - 1; } // turn on/off some of the modifiers. // 'len' allows setting consectutive modifiers to the same value. // If len is null, 1 is used function enableModifier(modNumber, value, len) { if (len == null) len = 1; for (i = modNumber; i < modNumber + len; i++) { if (i < this.modsActive.length) { this.modsActive[i] = value; } } this.applyModifiers(); } function modEnabled(modNumber) { if (modNumber < this.modsActive.length) return this.modsActive[modNumber]; } function numModifiers() { return this.modifiers.length; } }; function ShowExtraInfo() { alert('ineter'); content = document.getElementById('mod_citylist').innerHTML content += "O"; document.getElementById('mod_citylist').innerHTML = content; } var MarchUnitsFix = { init: function () { var t = MarchUnitsFix; t.fixrallymarchsize = new CalterUwFunc('modal_attack_update_unt_max', [ ['\}\)\)\;', '})*(1 + Math.min(cm.ThroneController.effectBonus(66),150)/100)-0.001);'] ]); t.fixrallymarchsize.setEnable(Options.fixMarchUnits); }, setEnable: function (tf) { var t = MarchUnitsFix; t.fixrallymarchsize.setEnable(tf); }, isAvailable: function () { var t = MarchUnitsFix; return t.fixrallymarchsize.isAvailable(); }, } var LoadCapFix = { init: function () { var t = LoadCapFix; // t.capLoadEffect = new CalterUwFunc ('cm.MarchModal.updateTroopResource', [[/\$\("#modal/ig, 'jQuery("#modal'] , [/1\s*\+\s*loadBoost\)/i, '1 + Math.min(loadBoost,6.25+loadEffectBoost+techLoadBoost)); for(var sacIndex = 0; sacIndex < seed.queue_sacr["city" + currentcityid].length; sacIndex ++ ) if(seed.queue_sacr["city" + currentcityid][sacIndex]["unitType"] == untid) load *= seed.queue_sacr["city" + currentcityid][sacIndex]["multiplier"][0]; load=Math.floor(load-1);'] ]); if (FFVersion.substring(0, 4) > 16) t.capLoadEffect = new CalterUwFunc('cm.MarchModal.updateTroopResource', [ [/\$\("#modal/ig, 'jQuery("#modal'], [/if\(jQuery/i, 'loadBoost = Math.min(loadBoost,6.25+techLoadBoost); for(var sacIndex = 0; sacIndex < seed.queue_sacr["city" + currentcityid].length; sacIndex ++ ) if(seed.queue_sacr["city" + currentcityid][sacIndex]["unitType"] == untid) unit_number *= seed.queue_sacr["city" + currentcityid][sacIndex]["multiplier"][0]; if(jQuery'], [/var\s*resources/i, 'load=load-1;var resources'] ]); else t.capLoadEffect = new CalterUwFunc('cm.MarchModal.updateTroopResource', [ [/\$\("#modal/ig, 'jQuery("#modal'], ['if (jQuery', 'loadBoost = Math.min(loadBoost,6.25+techLoadBoost); for(var sacIndex = 0; sacIndex < seed.queue_sacr["city" + currentcityid].length; sacIndex ++ ) if(seed.queue_sacr["city" + currentcityid][sacIndex]["unitType"] == untid) unit_number *= seed.queue_sacr["city" + currentcityid][sacIndex]["multiplier"][0]; if(jQuery'], ['var resources', 'load=load-1;var resources'] ]); t.capLoadEffect.setEnable(Options.fixLoadCap); }, setEnable: function (tf) { var t = LoadCapFix; t.capLoadEffect.setEnable(tf); }, isAvailable: function () { var t = LoadCapFix; return t.capLoadEffect.isAvailable(); }, } function distance(d, f, c, e) { var a = 750; var g = a / 2; var b = Math.abs(c - d); if (b > g) b = a - b; var h = Math.abs(e - f); if (h > g) h = a - h; return Math.round(100 * Math.sqrt(b * b + h * h)) / 100; }; var MapDistanceFix = { popSlotsFunc: null, init: function () { var t = MapDistanceFix; t.popSlotsFunc = new CalterUwFunc('MapObject.prototype.populateSlots', [ ['this.distance', 'fixMapDistance_hook'] ]); if (t.popSlotsFunc.isAvailable()) { uW.fixMapDistance_hook = t.fixMapDistance_hook; if (Options.fixMapDistance) t.enable(true); } }, fixMapDistance_hook: function (cityX, cityY, tileX, tileY) { var city = Cities.byID[uW.currentcityid]; return distance(city.x, city.y, tileX, tileY); }, enable: function (tf) { var t = MapDistanceFix; t.popSlotsFunc.setEnable(tf); }, isAvailable: function () { var t = MapDistanceFix; //return t.popSlotsFunc.isAvailable(); return false; }, } 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].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 = ''; for (var i = 0; i < sorter.length; i++) { m += ''; //m += ''; if (i == 9) m += ''; } m += '
    ' + sorter[i][1].label + ''+ sorter[i][1].label +'
    '; //m += ''+ Version +' '; mainPop.getTopDiv().innerHTML = m; t.currentTab = null; for (k in t.tabList) { if (t.tabList[k].name == Options.currentTab) t.currentTab = t.tabList[k]; document.getElementById('pttc' + k).addEventListener('click', this.e_clickedTab, false); var div = t.tabList[k].div; div.style.display = 'none'; div.style.height = '100%'; div.style.maxWidth = '1200px'; div.style.overflowX = 'auto'; mainDiv.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.setTabStyle(document.getElementById('pttc' + t.currentTab.name), true); t.currentTab.div.style.display = 'block'; }, hideTab: function () { var t = tabManager; t.currentTab.obj.hide(); }, showTab: function () { var t = tabManager; t.currentTab.obj.show(); }, setTabStyle: function (e, selected) { if (selected) { e.className = 'sel'; } else { e.className = 'notSel'; } }, e_clickedTab: function (e) { var t = tabManager; var newTab = t.tabList[e.target.parentNode.parentNode.id.substring(4)]; if (t.currentTab.name != newTab.name) { t.setTabStyle(document.getElementById('pttc' + t.currentTab.name), false); t.setTabStyle(document.getElementById('pttc' + newTab.name), true); t.currentTab.obj.hide(); t.currentTab.div.style.display = 'none'; t.currentTab = newTab; newTab.div.style.display = 'block'; Options.currentTab = newTab.name; } newTab.obj.show(); }, } function setTabStyle(e, selected) { if (selected) { e.className = 'matTabSel'; } else { e.className = 'matTabNotSel'; } } function clickedTab(e) { who = e.target.id.substring(2); newObj = my[who]; currentObj = my[currentName]; if (currentName != who) { setTabStyle(document.getElementById('aa' + currentName), false); setTabStyle(document.getElementById('aa' + who), true); if (currentObj) { currentObj.hide(); currentObj.getContent().style.display = 'none'; } currentName = who; cont = newObj.getContent(); newObj.getContent().style.display = 'block'; } newObj.show(); } function mouseMainTab(me) { 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(); Options.ptWinIsOpen = true; } else { tabManager.hideTab(); Options.ptWinIsOpen = false; } setTimeout(function () { saveOptions(); }, 0); } function hideMe() { if (!Options.ptWinIsOpen) return; mainPop.show(false); tabManager.showTab(); Options.ptWinIsOpen = false; saveOptions(); } function showMe() { mainPop.show(true); tabManager.showTab(); Options.ptWinIsOpen = true; saveOptions(); } function addMyFunction(func) { // add function to run in our own scope unsafeWindow[func.name] = func; } function addUwFunction(func) { // add function to run in unsafeWindow's scope scr = document.createElement('script'); scr.innerHTML = func.toString(); document.body.appendChild(scr); } function alterUwFunction(funcName, frArray) { try { funcText = unsafeWindow[funcName].toString(); rt = funcText.replace('function ' + funcName, 'function'); for (i = 0; i < frArray.length; i++) { x = rt.replace(frArray[i][0], frArray[i][1]); if (x == rt) return false; rt = x; } js = funcName + ' = ' + rt; var scr = document.createElement('script'); scr.innerHTML = js; document.body.appendChild(scr); return true; } catch (err) { return false; } } 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]); getTroopDefTrainEstimates('city' + city.id, city); Cities.cities[i] = city; Cities.byID[Seed.cities[i][0]] = city; } } function getTroopDefTrainEstimates(cityID, city) { var b = Seed.buildings[cityID]; city.numCottages = 0; city.numBarracks = 0; city.maxBarracks = 0; city.totLevelsBarracks = 0; city.blacksmithLevel = 0; city.stableLevel = 0; city.workshopLevel = 0; city.wallLevel = 0; for (var j = 1; j < 33; j++) { if (b['pos' + j]) { var bname = parseInt(b['pos' + j][0]); var blvl = parseInt(b['pos' + j][1]); switch (bname) { case 13: city.numBarracks++; city.totLevelsBarracks += parseInt(blvl); if (blvl > city.maxBarracks) city.maxBarracks = blvl; break; case 5: city.numCottages++; break; case 15: city.blacksmithLevel = blvl; break; case 16: city.workshopLevel = blvl; break; case 17: city.stableLevel = blvl; break; case 19: city.wallLevel = blvl; break; } } } var isPrestige = getCityPrestige(city.id); if (isPrestige) { city.blacksmithLevel = 12; city.workshopLevel = 12; city.stableLevel = 12; } var now = unixTime(); city.marshallCombatScore = 0; var s = Seed.knights[cityID]; if (s) { s = s["knt" + Seed.leaders[cityID].combatKnightId]; if (s) { city.marshallCombatScore = s.combat; if (s.combatBoostExpireUnixtime > now) city.marshallCombatScore *= 1.25; } } city.foremanBasePoliticsScore = 0; var s = Seed.knights[cityID]; if (s) { s = s["knt" + Seed.leaders[cityID].politicsKnightId]; if (s) { city.foremanBasePoliticsScore = s.politics; if (s.politicsBoostExpireUnixtime > now) city.foremanBasePoliticsScore *= 1.25; } } city.loggingLevel = parseInt(Seed.tech["tch2"]); city.geometryLevel = parseInt(Seed.tech["tch5"]); city.eagleEyesLevel = parseInt(Seed.tech["tch6"]); city.poisonedEdgeLevel = parseInt(Seed.tech["tch8"]); city.metalAlloysLevel = parseInt(Seed.tech["tch9"]); city.featherweightPowderLevel = parseInt(Seed.tech["tch10"]); city.alloyHorseshoesLevel = parseInt(Seed.tech["tch12"]); city.fletchingLevel = parseInt(Seed.tech["tch13"]); city.giantsStrengthLevel = parseInt(Seed.tech["tch16"]); var bm = city.numBarracks + 0.1 * (city.totLevelsBarracks - city.numBarracks); var mf = city.marshallCombatScore / 200; var gf = city.geometryLevel / 10; var sf = city.stableLevel / 10; var wf = city.workshopLevel / 10; var isf = bm * (1 + mf + gf); var csf = bm * (1 + mf + gf + sf); var ssf = bm * (1 + mf + gf + sf + wf); var pf = city.foremanBasePoliticsScore / 200; var gsf = city.giantsStrengthLevel / 10; var dsf = 1 + pf + gsf; city.Troop1Time = ((city.maxBarracks > 0) ? (50 / isf) : 0); city.Troop2Time = city.Troop1Time / 2; city.Troop3Time = ((city.maxBarracks > 1 && city.eagleEyesLevel > 0) ? (100 / isf) : 0); city.Troop4Time = ((city.maxBarracks > 1 && city.poisonedEdgeLevel > 0) ? (150 / isf) : 0); city.Troop5Time = ((city.maxBarracks > 2 && city.blacksmithLevel > 0 && city.metalAlloysLevel > 0) ? (225 / isf) : 0); city.Troop6Time = ((city.maxBarracks > 3 && city.fletchingLevel > 0) ? (350 / isf) : 0); city.Troop7Time = ((city.maxBarracks > 4 && city.stableLevel > 0 && city.alloyHorseshoesLevel > 0) ? (500 / csf) : 0); city.Troop8Time = ((city.maxBarracks > 6 && city.blacksmithLevel > 4 && city.stableLevel > 4 && city.alloyHorseshoesLevel > 4) ? (1500 / csf) : 0); city.Troop9Time = ((city.maxBarracks > 5 && city.stableLevel > 0 && city.workshopLevel > 2 && city.featherweightPowderLevel > 0) ? (1000 / ssf) : 0); city.Troop10Time = ((city.maxBarracks > 7 && city.stableLevel > 1 && city.workshopLevel > 4 && city.geometryLevel > 4 && city.fletchingLevel > 5) ? (3000 / ssf) : 0); city.Troop11Time = ((city.maxBarracks > 8 && city.blacksmithLevel > 4 && city.stableLevel > 2 && city.workshopLevel > 6 && city.metalAlloysLevel > 7 && city.geometryLevel > 6) ? (4500 / ssf) : 0); city.Troop12Time = ((city.maxBarracks > 9 && city.stableLevel > 1 && city.workshopLevel > 8 && city.geometryLevel > 9 && city.fletchingLevel > 9) ? (6000 / ssf) : 0); city.Def53Time = ((city.wallLevel > 5 && city.blacksmithLevel > 5 && city.fletchingLevel > 4) ? (180 / dsf) : 0); city.Def55Time = ((city.wallLevel > 7 && city.blacksmithLevel > 7 && city.fletchingLevel > 6 && city.geometryLevel > 6) ? (135 / dsf) : 0); city.Def60Time = ((city.wallLevel > 3 && city.blacksmithLevel > 3 && city.poisonedEdgeLevel > 1) ? (90 / dsf) : 0); city.Def61Time = ((city.wallLevel > 0 && city.metalAlloysLevel > 0) ? (30 / dsf) : 0); city.Def62Time = ((city.wallLevel > 1 && city.blacksmithLevel > 1 && city.loggingLevel > 1) ? (60 / dsf) : 0); } function officerId2String(oid) { if (oid == null) return ''; else if (oid == 3) return uW.allianceOfficerTypeMapping[3]; else if (oid == 2) return uW.allianceOfficerTypeMapping[2]; else if (oid == 1) return uW.allianceOfficerTypeMapping[1]; else if (oid == 4) return uW.allianceOfficerTypeMapping[4]; return ''; } // 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; this.clickedCityBut = clickedCityBut; function clickedCityBut(e) { if (that.selected != null) that.selected.className = "ptcastleBut ptcastleButNon"; 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 = "ptcastleBut ptcastleButSel"; that.selected = e.target; if (that.coordBoxX) { that.coordBoxX.value = that.city.x; that.coordBoxY.value = that.city.y; that.coordBoxX.style.backgroundColor = '#ffffff'; that.coordBoxY.style.backgroundColor = '#ffffff'; } if (that.notify != null) that.notify(that.city, that.city.x, that.city.y); } } 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); } } this.coordBoxX = eX; this.coordBoxY = eY; var bh = new CboxHandler(this); eX.size = 2; eX.maxLength = 10; eY.size = 2; eY.maxLength = 3; 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 += ''; if (dispName) m += '   '; 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 CdialogCancelContinue(msg, canNotify, contNotify, centerElement) { var pop = new CPopup('ptcancont', 0, 0, 400, 200, true, canNotify); if (centerElement) pop.centerMe(centerElement); else pop.centerMe(document.body); pop.getTopDiv().innerHTML = '
    KOC Power Tools
    '; pop.getMainDiv().innerHTML = '\
    ' + msg + '
       
    '; document.getElementById('ptcccancel').addEventListener('click', function () { pop.show(false); if (canNotify) canNotify(); }, false); document.getElementById('ptcccontin').addEventListener('click', function () { pop.show(false); if (contNotify) contNotify(); }, false); pop.show(true); } // TODO: make class (multiple instances needed) function dialogRetry(errMsg, errCode, url, retry, seconds, onRetry, onCancel) { seconds = parseInt(seconds); var pop = new CPopup('ptretry', 0, 0, 400, 225, true); pop.centerMe(mainPop.getMainDiv()); pop.getTopDiv().innerHTML = '
    KOC Power Tools
    '; pop.getMainDiv().innerHTML = '

    An error has occurred:

    \

    Automatically retrying in seconds ...


    '; document.getElementById('paretryCancel').addEventListener('click', doCancel, false); pop.show(true); if (errCode && unsafeWindow.g_js_strings.errorcode['err_' + errCode]) document.getElementById('paretryErrMsg').innerHTML = unsafeWindow.g_js_strings.errorcode['err_' + errCode]; else document.getElementById('paretryErrMsg').innerHTML = errMsg; document.getElementById('paretryCmd').innerHTML = url + ' (Retry '+(retry+1)+' of 5)'; document.getElementById('paretrySeconds').innerHTML = seconds; var rTimer = setTimeout(doRetry, seconds * 1000); countdown(); function countdown() { document.getElementById('paretrySeconds').innerHTML = seconds--; if (seconds > 0) cdTimer = setTimeout(countdown, 1000); } function doCancel() { clearTimeout(rTimer); clearTimeout(cdTimer); pop.destroy(); onCancel(); } function doRetry() { clearTimeout(rTimer); clearTimeout(cdTimer); pop.show(false); onRetry(); } } function implodeUrlArgs(obj) { var a = []; for (var k in obj) a.push(k + '=' + encodeURI(obj[k])); return a.join('&'); } // NOTE: args can be either a string which will be appended as is to url or an object of name->values 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; } // emulate protoype's Ajax.Request ... function AjaxRequest(url, opts) { 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 (DEBUG_TRACE_AJAX) logit("AJAX: " + url + "\n" + inspect(opts, 3, 1)); 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) a.push(k + '=' + opts.parameters[k]); ajax.send(a.join('&')); } else { ajax.send(); } } function MyAjaxRequest(url, o, noRetry) { 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 = 5; var noRetry = noRetry === true ? true : false; opts.onSuccess = mySuccess; opts.onFailure = myFailure; if (DEBUG_TRACE) logit(" 1a myAjaxRequest: " + url + "\n" + inspect(o, 2, 1)); new AjaxRequest(url, opts); return; function myRetry() { ++retry; new AjaxRequest(url, opts); //delay = delay * 1.25; } function myFailure() { var o = {}; if (DEBUG_TRACE) logit("myAjaxRequest.myFailure(): " + inspect(rslt, 1, 1)); o.ok = false; o.errorMsg = "AJAX Communication Failure"; wasFailure(o); } function mySuccess(msg) { var rslt; try { rslt = JSON2.parse(msg.responseText); } catch(e) { //alert(unescape(msg.responseText)); if (retry<5) { rslt = {"ok":false,"error_code":9,"errorMsg":"Failed due to invalid json"} } else { rslt = {"ok":true,"error_code":9,"data":[]}; } } var x; if (window.EmulateAjaxError){ rslt.ok = false; rslt.error_code=8; } if (rslt.ok){ if (rslt.updateSeed) unsafeWindow.update_seed(rslt.updateSeed); wasSuccess(rslt); return; } rslt.errorMsg = uW.printLocalError((rslt.error_code || null), (rslt.msg || null), (rslt.feedback || null)); /*if ( (x = rslt.errorMsg.indexOf ('

    ')) > 0) rslt.errorMsg = rslt.errorMsg.substr (0, x-1);*/ if (!noRetry && (rslt.error_code == 0 || rslt.error_code == 8 || rslt.error_code == 1 || rslt.error_code == 3)) { dialogRetry(rslt.errorMsg, rslt.error_code, url, retry, delay, function () { myRetry() }, function () { wasSuccess(rslt) }); } else { wasSuccess(rslt); } } } function AsyncAjaxRequest(url, opts) { 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 == 500) if (opts.onFailure) opts.onFailure(ajax); if (ajax.status >= 200 && ajax.status < 305) if (opts.onSuccess) opts.onSuccess(ajax); else if (opts.onFailure) opts.onFailure(ajax); Options.ResponseSize += parseInt(ajax.getResponseHeader("Content-Length")); } else { if (opts.onChange) opts.onChange(ajax); } } ajax.open(method, url, false); 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(); } } // returns: 'neutral', 'friendly', or 'hostile' function getDiplomacy(aid) { if (Seed.allianceDiplomacies == null) return uW.g_js_strings.commonstr.neutral; if (Seed.allianceDiplomacies.friendly && Seed.allianceDiplomacies.friendly['a' + aid] != null) return uW.g_js_strings.commonstr.friendly; if (Seed.allianceDiplomacies.hostile && Seed.allianceDiplomacies.hostile['a' + aid] != null) return uW.g_js_strings.commonstr.hostile; if (aid == Seed.allianceDiplomacies.allianceId) return uW.g_js_strings.modaltitles.alliance; return uW.g_js_strings.commonstr.neutral; }; function getMyAlliance() { if (Seed.allianceDiplomacies == null || Seed.allianceDiplomacies.allianceName == null) return [0, 'None']; else return [Seed.allianceDiplomacies.allianceId, Seed.allianceDiplomacies.allianceName]; } // TODO: Check times for expired marches !?!?! // note: unselected city has outdated info function getMarchInfo() { var ret = {}; ret.marchUnits = []; ret.returnUnits = []; ret.resources = []; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; ret.marchUnits[i] = 0; ret.returnUnits[i] = 0; } for (i = 0; i < 5; i++) { ret.resources[i] = 0; } var now = unixTime(); for (i = 0; i < Cities.numCities; i++) { // each city cityID = 'city' + Cities.cities[i].id; for (k in Seed.queue_atkp[cityID]) { // each march march = Seed.queue_atkp[cityID][k]; if (typeof (march) == 'object') { for (var ui in uW.cm.UNIT_TYPES) { ii = uW.cm.UNIT_TYPES[ui]; ret.marchUnits[ii] += parseIntNan(march['unit' + ii + 'Count']); ret.returnUnits[ii] += parseIntNan(march['unit' + ii + 'Return']); } for (ii = 1; ii < 5; ii++) { ret.resources[ii] += parseIntNan(march['resource' + ii]); } ret.resources[0] += parseIntNan(march['gold']); } // TODO: fixup completed marches // TODO: Assume transport is complete ? } } return ret; } function getTrainInfo() { var ret = {}; ret.trainUnts = []; for (var ui in uW.cm.UNIT_TYPES) { i = uW.cm.UNIT_TYPES[ui]; ret.trainUnts[i] = 0; } var q = Seed.queue_unt; for (i = 0; i < Cities.numCities; i++) { // each city cityID = 'city' + Cities.cities[i].id; q = Seed.queue_unt[cityID]; if (q && q.length > 0) { for (qi = 0; qi < q.length; qi++) ret.trainUnts[q[qi][0]] += parseInt(q[qi][1]); } } return ret; } var fortNamesShort = { 53: "Crossbows", 55: "Trebuchet", 60: "Trap", 61: "Caltrops", 62: "Spiked Barrier", } // returns {count, maxlevel} function getCityBuilding(cityId, buildingId) { var b = Seed.buildings['city' + cityId]; var ret = { count: 0, maxLevel: 0 }; for (var k in b) { if (b[k] && b[k][0] == buildingId) { ++ret.count; if (parseInt(b[k][1]) > ret.maxLevel) ret.maxLevel = parseInt(b[k][1]); } } return ret; } function getCityPrestige(cityId) { return Seed.cityData.city[cityId].isPrestigeCity; } // example: https://www150.kingdomsofcamelot.com function GetServerId() { var m = /^[a-zA-Z]+([0-9]+)\./.exec(document.location.hostname); if (m) return m[1]; return ''; } function logit(msg) { var serverID = GetServerId(); var now = new Date(); GM_log(serverID + ' @ ' + now.toTimeString().substring(0, 8) + '.' + now.getMilliseconds() + ': ' + msg); } function ById(id) { return document.getElementById(id); } /************ DEBUG WIN *************/ var debugWin = { popDebug: null, dbDefaultNot: 'tech,tutorial,items,quests,wilderness,wildDef,buildings,knights,allianceDiplomacies,appFriends,players', dbSelect: {}, sortSeed: [], sortNonSeed: [], doit: function () { var t = debugWin; function syncBoxes() { for (var i = 0; i < t.sortSeed.length; i++) { var name = t.sortSeed[i]; var box = document.getElementById('dbpop_' + name); box.checked = t.dbSelect[name]; } } function clickedAll() { for (var k in t.dbSelect) t.dbSelect[k] = true; syncBoxes(); } function clickedNone() { for (var k in t.dbSelect) t.dbSelect[k] = false; syncBoxes(); } function clickedDefaults() { for (k in t.dbSelect) t.dbSelect[k] = true; var not = t.dbDefaultNot.split(','); for (var i = 0; i < not.length; i++) t.dbSelect[not[i]] = false; syncBoxes(); } function clickedShow() { var resultsDiv = document.getElementById('idDebugResultsDiv') var s = '
    ';
    			for (var i = 0; i < t.sortSeed.length; i++) {
    				var name = t.sortSeed[i];
    				var box = document.getElementById('dbpop_' + name);
    				if (box.checked)
    					s += name + " =\n" + inspect(Seed[name], 10, 1);
    			}
    			resultsDiv.innerHTML = s + '
    '; } function clickedShowNonSeed() { var resultsDiv = document.getElementById('idDebugResultsDiv'); nsvalue = document.getElementById('dbnonseed').value; if (nsvalue != '') { val = unsafeWindow[nsvalue]; valtype = typeof (val); resultsDiv.innerHTML = '
    (' + valtype + ') ' + nsvalue + ((valtype == 'string') ? (" = " + val) : (" =\n" + inspect(val, 10, 1))) + '
    '; } } function clickedShowScripts() { var resultsDiv = document.getElementById('idDebugResultsDiv') var scripts = document.getElementsByTagName('script'); var s = ''; for (var i = 0; i < scripts.length; i++) if (scripts[i].src != null && scripts[i].src != '') s += '' + scripts[i].src + '
    '; resultsDiv.innerHTML = s; } if (t.popDebug == null) { t.popDebug = new CPopup('db', 0, 45, 749, 900, true); t.popDebug.getTopDiv().innerHTML = '
    DEBUG
    '; var sl = 0; for (var k in Seed) { t.dbSelect[k] = true; t.sortSeed[sl] = k; sl++; } t.sortSeed.sort(); sl = 0; for (var k in unsafeWindow) { kType = typeof (unsafeWindow[k]); if ((k.indexOf('actionlink_data') != 0) && (k != 'content') && (k != 'document') && (k.indexOf('feed') != 0) && (k.indexOf('frame') != 0) && (k != 'globalStorage') && (k != 'g_mapObject') && (k != 'history') && (k != 'Modal') && (k != 'navigator') && (k != 'parent') && (k.indexOf('pb') != 0) && (k.indexOf('pt') != 0) && (k != 'seed') && (k != 'self') && (k.indexOf('template_data') != 0) && (k != 'that') && (k != 'window') && (k != '_htmlElement') && (kType != 'function') && (kType != 'undefined')) { t.sortNonSeed[sl] = k; sl++; } } t.sortNonSeed.sort(function (x, y) { var a = String(x).toUpperCase(); var b = String(y).toUpperCase(); if (a > b) return 1; else if (a < b) return -1; else return 0; }); var nsSelect = ''; var not = t.dbDefaultNot.split(','); for (var i = 0; i < not.length; i++) t.dbSelect[not[i]] = false; var m = '
    Seed:   ' + '  
    '; var cols = 5; var entries = t.sortSeed.length; var rows = parseInt(0.99 + entries / cols); for (var rowno = 1; rowno <= rows; rowno++) { m += ''; for (colno = 1; colno <= cols; colno++) { var slvalue = rows * (colno - 1) + rowno - 1; m += ((slvalue < entries) ? ('') : ''); } m += ''; } m += '
     ' + t.sortSeed[slvalue] + '
    Non-Seed: ' + nsSelect + '
    '; t.popDebug.getMainDiv().innerHTML = m; document.getElementById('dbsuball').addEventListener('click', clickedAll, false); document.getElementById('dbsubnone').addEventListener('click', clickedNone, false); document.getElementById('dbdefaults').addEventListener('click', clickedDefaults, false); document.getElementById('dbsubdo').addEventListener('click', clickedShow, false); document.getElementById('dbsubscripts').addEventListener('click', clickedShowScripts, false); document.getElementById('dbnonseed').addEventListener('change', clickedShowNonSeed, false); syncBoxes(); } t.popDebug.show(true); }, } function saveOptions() { var serverID = GetServerId(); GM_setValue('Options_' + serverID, JSON2.stringify(Options)); } function readOptions() { var serverID = GetServerId(); s = GM_getValue('Options_' + serverID); if (s != null) { opts = JSON2.parse(s); for (k in opts) Options[k] = opts[k]; } } function readGlobalOptions() { GlobalOptions = JSON2.parse(GM_getValue('Options_??', '{}')); } function saveColors() { var serverID = GetServerId(); GM_setValue('Colors_' + serverID, JSON2.stringify(Colors)); } function readColors() { var serverID = GetServerId(); s = GM_getValue('Colors_' + serverID); if (s != null) { opts = JSON2.parse(s); for (k in opts) Colors[k] = opts[k]; } else { s = GM_getValue('Colors'); if (s != null) { opts = JSON2.parse(s); for (k in opts) Colors[k] = opts[k]; } } } function readAutoTrainOptions() { var serverID = GetServerId(); s = GM_getValue('AutoTrainOptions_' + serverID); if (s != null) { opts = JSON2.parse(s); for (k in opts) { if (AutoTrainOptions[k] != undefined) { if (matTypeof(opts[k]) == 'object') { for (kk in opts[k]) if (AutoTrainOptions[k][kk] != undefined) AutoTrainOptions[k][kk] = opts[k][kk]; } else AutoTrainOptions[k] = opts[k]; } } } } function saveAutoTrainOptions() { var serverID = GetServerId(); GM_setValue('AutoTrainOptions_' + serverID, JSON2.stringify(AutoTrainOptions)); } function readIRCOptions() { var serverID = GetServerId(); s = localStorage.getItem('IRCOptions_' + serverID); if (s != null) { opts = JSON2.parse(s); for (k in opts) { if (IRCOptions[k] != undefined) { if (matTypeof(opts[k]) == 'object') { for (kk in opts[k]) if (IRCOptions[k][kk] != undefined) IRCOptions[k][kk] = opts[k][kk]; } else IRCOptions[k] = opts[k]; } } } } function saveIRCOptions() { var serverID = GetServerId(); localStorage.setItem('IRCOptions_' + serverID, JSON2.stringify(IRCOptions)); } function readChatIconsOptions() { var serverID = GetServerId(); s = GM_getValue('ChatIcons_' + serverID); if (s != null) { opts = JSON2.parse(s); for (k in opts) { ChatIcons[k] = opts[k]; } } } function saveChatIconsOptions() { var serverID = GetServerId(); GM_setValue('ChatIcons_' + serverID, JSON2.stringify(ChatIcons)); } /*** ***/ var myServers = { // incomplete, untested serverlist: null, get: function (notify) { if (myServers.serverlist) { notify(myServers.serverlist); return; } var params = uW.Object.clone(uW.g_ajaxparams); new MyAjaxRequest(uW.g_ajaxpath + "ajax/myServers.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { logit(inspect(rslt, 3, 1)); if (notify) notify(myServers.serverlist); }, onFailure: function (rslt) {} }); }, }; function createButton(label) { var a = document.createElement('a'); a.className = 'button20'; a.innerHTML = '' + label + ''; 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=='DIV') logit ("CHILD: "+ ee.tagName +' : '+ ee.className+' : '+ ee.id); 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'; gmTabs.style.background = '#ca5'; tabs.parentNode.insertBefore(gmTabs, tabs); gmTabs.style.whiteSpace = 'normal'; gmTabs.style.width = '735px'; gmTabs.lang = 'en_PT'; } 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 coordLink(x, y) { var m = []; m.push('('); m.push(x); m.push(','); m.push(y); m.push(')'); return m.join(''); } uW.ptGotoMapHide = function (x, y) { try { uW.Modal.hideModal(); } catch (e) {} try { Modal.hideModal(); } catch (e) {} uW.ptGotoMap(x, y); } uW.ptGotoMap = function (x, y) { if (Options.hideOnGoto) hideMe(); setTimeout(function () { document.getElementById('mapXCoor').value = x; document.getElementById('mapYCoor').value = y; uW.reCenterMapWithCoor(); var a = document.getElementById("mod_views").getElementsByTagName("a"); for (var b = 0; b < a.length; b++) { a[b].className = "buttonv2 nav h20" } document.getElementById('mod_views_map').className = "buttonv2 nav h20 sel"; document.getElementById("maparea_city").style.display = 'none'; document.getElementById("maparea_fields").style.display = 'none'; document.getElementById("maparea_map").style.display = 'block'; uW.tutorialClear() }, 0); }; /**********************************************************************************/ function makeButton20(label) { var a = document.createElement('a'); a.className = "button20 ptButton20"; var s = document.createElement('span'); s.innerHTML = label; a.appendChild(s); return a; } function strButton20(label, tags) { if (tags == null) tags = ''; return ('
    ' + label + '
    '); } function strButton14(label, tags) { if (tags == null) tags = ''; return ('' + label + ''); } function cityStatusString(cs) { if (cs == 4) return 'V'; if (cs == 3) return 'T'; if (cs == 2) return 'BP'; return 'N'; } // Simple method, as if it were typed in thru DOM function sendChat(msg) { document.getElementById("mod_comm_input").value = msg; uW.Chat.sendChat(); } // works well, but message is not echoed back to local client Chat = { params: null, sendWhisper: function (msg, who, notify) { this.params = uW.Object.clone(uW.g_ajaxparams); this.params.ctype = 3; this.params.name = who; this._sendit(msg, notify); }, sendGlobal: function (msg, notify) { this.params = uW.Object.clone(uW.g_ajaxparams); this.params.ctype = 1; this._sendit(msg, notify); }, sendAlliance: function (msg, notify) { this.params = uW.Object.clone(uW.g_ajaxparams); this.params.ctype = 2; this._sendit(msg, notify); }, _sendit: function (msg, notify) { function strip(s) { return s.replace(/^\s+/, '').replace(/\s+$/, ''); } this.params.comment = strip(msg); new MyAjaxRequest(uW.g_ajaxpath + "ajax/sendChat.php" + uW.g_ajaxsuffix, { method: "post", parameters: this.params, onSuccess: function (transport) { if (notify) notify(); }, onFailure: function (transport) { if (notify) notify(); } }); }, } function doDefTrain(cityId, siege, unitId, num, notify) { var time = uW.modal_walls_traintime(unitId, num); var params = uW.Object.clone(uW.g_ajaxparams); params.cid = cityId; params.type = unitId; params.quant = num; params.items = siege; new MyAjaxRequest(uW.g_ajaxpath + "ajax/fortify.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.ok) { uW.seed.queue_fort["city" + cityId].push([unitId, num, rslt.initTS, parseInt(rslt.initTS) + time, 0, time, rslt.fortifyId]); if (notify != null) setTimeout(function () { notify(null); }, 500); } else { if (notify != null) setTimeout(function () { notify(rslt.errorMsg); }, 500); } }, onFailure: function () { if (notify != null) notify(rslt.errorMsg); }, }); } function doTrain(cityId, tut, gamble, unitId, num, notify) { var time = uW.modal_barracks_traintime(unitId, num); var params = uW.Object.clone(uW.g_ajaxparams); params.cid = cityId; params.type = unitId; params.quant = num; params.items = tut; params.gambleId = gamble; new MyAjaxRequest(uW.g_ajaxpath + "ajax/train.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.ok) { for (var i = 1; i < 5; i++) { var resourceLost = parseInt(uW.unitcost["unt" + unitId][i]) * 3600 * parseInt(num); if (rslt.gamble) resourceLost = resourceLost * rslt.gamble[i]; uW.seed.resources["city" + cityId]["rec" + i][0] = parseInt(uW.seed.resources["city" + cityId]["rec" + i][0]) - resourceLost; } uW.seed.citystats["city" + cityId].gold[0] = parseInt(uW.seed.citystats["city" + cityId].gold[0]) - parseInt(uW.unitcost["unt" + unitId][5]) * parseInt(num); uW.seed.citystats["city" + cityId].pop[0] = parseInt(uW.seed.citystats["city" + cityId].pop[0]) - parseInt(uW.unitcost["unt" + unitId][6]) * parseInt(num); if (unitId == 16) uW.seed.items.i34001 = parseInt(uW.seed.items.i34001) - parseInt(uW.unitcost["unt" + unitId][11]["34001"]) * parseInt(num); uW.seed.queue_unt["city" + cityId].push([unitId, num, rslt.initTS, parseInt(rslt.initTS) + time, 0, time, null]); if (notify != null) setTimeout(function () { notify(null); }, 500); } else { if (notify != null) { setTimeout(function () { notify(rslt.errorMsg); }, 500); } } }, onFailure: function (o) { if (notify != null) notify(rslt.errorMsg); } }); } /************ LIB classes/functions .... **************/ function getAbsoluteOffsets(e) { ret = { left: 0, top: 0 }; while (e.offsetParent) { if (e.style.position == 'absolute') break; ret.left += e.offsetLeft; ret.top += e.offsetTop; e = e.offsetParent; } return ret; } DebugTimer = { startTime: 0, start: function () { now = new Date(); DebugTimer.startTime = now.getTime(); }, display: function (label, noReset) { now = new Date(); elapsed = now.getTime() - DebugTimer.startTime; logit(label + ": " + elapsed / 1000); if (noReset === null || !noReset) DebugTimer.startTime = now.getTime(); }, }; function debugPos(e) { return 'client - offset: ' + e.clientLeft + ',' + e.clientTop + ',' + e.clientWidth + ',' + e.clientHeight + ' - ' + e.offsetLeft + ',' + e.offsetTop + ',' + e.offsetWidth + ',' + e.offsetHeight + ' ' + e + ' --OP--> ' + e.offsetParent; } function debugElement(e) { var x = uW.Object.clone(e.wrappedJSObject); x.innerHTML = ''; x.innerText = ''; x.textContent = ''; return inspect(x, 1, 1); } function searchDOM(node, condition, maxLevel, doMult) { var found = []; eval('var compFunc = function (node) { return (' + condition + ') }'); doOne(node, 1); if (!doMult) { if (found.length == 0) return null; return found[0]; } return found; function doOne(node, curLevel) { try { if (compFunc(node)) found.push(node); } catch (e) {} if (!doMult && found.length > 0) return; if (++curLevel < maxLevel && node.childNodes != undefined) for (var c = 0; c < node.childNodes.length; c++) doOne(node.childNodes[c], curLevel); } } 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; } function htmlTitleLine(msg) { return '

    [ ' + msg + ' ]
    '; } var WinManager = { wins: {}, // prefix : CPopup obj get: function (prefix) { var t = WinManager; return t.wins[prefix]; }, add: function (prefix, pop) { var t = WinManager; t.wins[prefix] = pop; if (uW.cpopupWins == null) uW.cpopupWins = {}; uW.cpopupWins[prefix] = pop; }, delete: function (prefix) { var t = WinManager; delete t.wins[prefix]; delete uW.cpopupWins[prefix]; } } // creates a 'popup' div // prefix must be a unique (short) name for the popup window function CPopup(prefix, x, y, width, height, enableDrag, onClose) { var pop = WinManager.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 = 'CPopup ' + prefix + '_CPopup'; 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 = width + 'px'; this.div.style.height = height + 'px'; this.div.style.position = "absolute"; this.div.style.top = y + 'px'; this.div.style.left = x + 'px'; if (CPopUpTopClass == null) topClass = 'CPopupTop ' + prefix + '_CPopupTop'; else topClass = CPopUpTopClass + ' ' + prefix + '_' + CPopUpTopClass; var m = '\ \
    x
    '; 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); WinManager.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); WinManager.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.debug = debug; this.dispEvent = dispEvent; 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 (DEBUG_TRACE_DRAG) t.dispEvent('eventDOWN', me); if (t.bounds == null) { t.clickableRect = getClientCoords(clickableElement); t.bodyRect = getClientCoords(document.body); if (t.boundRect == null) t.boundRect = t.clickableRect; if (DEBUG_TRACE_DRAG) logit('Clickable rect: ' + inspect(t.clickableRect, 3, 1)); if (DEBUG_TRACE_DRAG) logit('Body rect: ' + inspect(t.bodyRect, 3, 1)); if (DEBUG_TRACE_DRAG) logit('Bound rect: ' + inspect(t.boundRect, 3, 1)); t.bounds = { top: 10 - t.clickableRect.height, bot: t.bodyRect.height - 25, left: 40 - t.clickableRect.width, right: t.bodyRect.width - 25 }; if (DEBUG_TRACE_DRAG) logit("BOUNDS: " + inspect(t.bounds, 8, 10)); } 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 (DEBUG_TRACE_DRAG) t.dispEvent('eventUP', me); if (me.button == 0 && t.moving) _doneMoving(t); } } function _doneMoving(t) { if (DEBUG_TRACE_DRAG) logit('doneMoving'); 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) { //t.dispEvent ('eventOUT', 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) { //t.dispEvent ('eventMOVE', me); 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 debug(msg, e) { logit("*************** " + msg + " ****************"); logit('clientWidth, Height: ' + e.clientWidth + ',' + e.clientHeight); logit('offsetLeft, Top, Width, Height (parent): ' + e.offsetLeft + ',' + e.offsetTop + ',' + e.offsetWidth + ',' + e.offsetHeight + ' (' + e.offsetParent + ')'); logit('scrollLeft, Top, Width, Height: ' + e.scrollLeft + ',' + e.scrollTop + ',' + e.scrollWidth + ',' + e.scrollHeight); } function dispEvent(msg, me) { logit(msg + ' Button:' + me.button + ' Screen:' + me.screenX + ',' + me.screenY + ' client:' + me.clientX + ',' + me.clientY + ' rTarget: ' + me.relatedTarget); } } 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; } Array.prototype.compare = function (testArr) { if (this.length != testArr.length) return false; for (var i = 0; i < testArr.length; i++) { if (this[i].compare) { if (!this[i].compare(testArr[i])) return false; } if (this[i] !== testArr[i]) return false; } return true; } String.prototype.entityTrans = { '&': '&', '<': '<', '>': '>', '\"': '"', '\'': ''', '<': '\\u003c', '/': '\\/', '\\': '\\\\', '\"': '\\\"', '{': '{', '}': '}' }; String.prototype.htmlEntities = function () { var ret = this.toString(); for (k in this.entityTrans) ret = ret.split(k).join(this.entityTrans[k]); return ret; } String.prototype.htmlSpecialCharsDecode = function () { var ret = this.toString(); for (k in this.entityTrans) ret = ret.split(this.entityTrans[k]).join(k); return ret; } String.prototype.stripTags = function () { return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, ''); } String.prototype.capitalize = function () { return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); } function objectName(o) { var s = o.toString(); return s.substr(7, s.length - 8); } function matTypeof(v) { if (v == undefined) return 'undefined'; 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 addCommasInt(n) { nStr = Number(n, 10) + ''; return addCommasWhole(nStr); } function addCommas(nStr) { nStr += ''; x = nStr.split('.'); x1 = x[0]; 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 addCommasWhole(nStr) { nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1; } function htmlSelector(valNameObj, curVal, tags) { m = []; m.push(''); } m.push(''); return m.join(''); } function toUnicode(theString) { var unicodeString = ''; for (var i = 0; i < theString.length; i++) { var theUnicode = theString.charCodeAt(i); theUnicode = '&#' + theUnicode + ';'; unicodeString += theUnicode; } return unicodeString; } function unixTime() { return parseInt(new Date().getTime() / 1000) + uW.g_timeoff; } function htmlOptions(a, curVal) { m = ''; for (k in a) m += ''; return m; } function getFunctionName(func) { var name = /\W*function\s+([\w\$]+)\(/.exec(func); if (!name) return ''; return name[1]; } function findAllBetween(txt, find1, find2) { var m = []; var last = 0; while ((i1 = txt.indexOf(find1, last)) >= 0 && (i2 = txt.indexOf(find2, i1)) >= 0) { m.push(txt.substring(i1 + find1.length, i2)); last = i2 + find2.length; } return m; } function strUpTo(s, find) { var i = s.indexOf(find); if (i > 0) return s.substr(0, i); return s; } /******** Xd Xh Xh Xm Xm Xs Xs ********/ function timestrShort(time) { time = parseInt(time); if (time > 86400) { var m = []; time /= 3600; m.push(parseInt(time / 24)); m.push('d '); m.push(parseInt(time % 24)); m.push('h '); return m.join(''); } else return timestr(time); } /********************** part full Xd Xh Xm Xd Xh Xm Xs Xh Xm Xh Xm Xs Xm Xs Xm Xs Xs Xs **********************/ function timestr(time, full) { time = parseInt(time); var m = []; var t = time; if (t < 61) return t + 's'; if (t > 86400) { m.push(parseInt(t / 86400)); m.push('d '); t %= 86400; } if (t > 3600 || time > 3600) { m.push(parseInt(t / 3600)); m.push('h '); t %= 3600; } m.push(parseInt(t / 60)); m.push('m'); if (full || time <= 3600) { m.push(' '); m.push(t % 60); m.push('s'); } return m.join(''); } /************ LIB singletons .... **************/ // TODO: fix REopening window var WINLOG_MAX_ENTRIES = 1000; // TODO var WinLog = { state: null, win: null, eOut: null, lastE: null, enabled: true, reverse: true, busy: false, isOpening: false, open: function () { var t = WinLog; function eventButClear() { var t = WinLog; t.lastE = null; t.eOut.innerHTML = ''; } function eventButReverse() { var t = WinLog; if (t.busy) return; t.busy = true; if (t.reverse) { t.win.document.getElementById('wlRev').value = 'Top'; t.reverse = false; } else { t.win.document.getElementById('wlRev').value = 'Bottom'; t.reverse = true; } var n = t.eOut.childNodes.length; if (n < 2) return; for (i = n - 2; i >= 0; i--) { t.eOut.appendChild(t.eOut.childNodes[i]); } t.busy = false; } if (!t.win || t.win.closed) { t.isOpening = true; // Firefox bug??? It appears as if a new thread is started on open, withOUT reusing same window //t.win = window.open('', 'uwtrace', 'top=30,left=0,width=900,height=700,scrollbars=no,location=no,menubar=no,directories=no,status=no'); t.win = new CPopup('ptwinlog', 0, 0, 500, 800, true, function () { t.win.destroy(); t.win = null; t.win.closed = true; }); t.win.show(true); t.isOpening = false; t.state = null; } if (t.state == null) { t.win.getMainDiv().innerHTML = '\ \
    \  
    \
    '; document.getElementById('wlClear').addEventListener('click', eventButClear, false); document.getElementById('wlRev').addEventListener('click', eventButReverse, false); t.eOut = document.getElementById('wlOut'); t.lastE = null; t.state = 1; } }, writeText: function (msg) { WinLog.write(msg.htmlEntities()); }, write: function (msg) { var t = WinLog; if (!t.enabled || t.isOpening) return; t.open(); var te = document.createElement('pre'); var now = new Date(); var m = []; var millis = now.getMilliseconds(); m.push(now.toTimeString().substring(0, 8)); m.push('.'); if (millis < 100) m.push('0'); if (millis < 10) m.push('0'); m.push(millis); m.push(': '); m.push(msg); te.innerHTML = m.join(''); if (t.reverse) { if (t.lastE == null) { t.eOut.appendChild(te); t.lastE = te; } else { t.eOut.insertBefore(te, t.lastE); } var hr = document.createElement('hr'); t.eOut.insertBefore(hr, te); t.lastE = hr; } else { t.eOut.appendChild(te); t.eOut.appendChild(document.createElement('hr')); } }, }; /***** tower tab edits *****/ Tabs.Tower = { tabOrder: 41, cont: null, fixAvailable: {}, tabDisabled: !ENABLE_ALERT_TO_CHAT, Providers: { 0: { 'country': "--Country--", 'provider': "--Provider--" }, 1: { 'country': "AUSTRALIA", 'provider': "T-Mobile" }, 2: { 'country': "AUSTRALIA", 'provider': "Optus Zoo" }, 3: { 'country': "AUSTRIA", 'provider': "T-Mobile" }, 4: { 'country': "BULGARIA", 'provider': "Mtel" }, 5: { 'country': "BULGARIA", 'provider': "Globul" }, 6: { 'country': "CANADA", 'provider': "Aliant" }, 7: { 'country': "CANADA", 'provider': "Bell Mobility" }, 8: { 'country': "CANADA", 'provider': "Fido" }, 9: { 'country': "CANADA", 'provider': "MTS Mobility" }, 10: { 'country': "CANADA", 'provider': "Rogers Wireless" }, 11: { 'country': "CANADA", 'provider': "Sasktel Mobility" }, 12: { 'country': "CANADA", 'provider': "Telus" }, 13: { 'country': "CANADA", 'provider': "Virgin Mobile" }, 14: { 'country': "CANADA", 'provider': "Presidents Choice" }, 15: { 'country': "GERMANY", 'provider': "T-Mobile" }, 16: { 'country': "GERMANY", 'provider': "Vodafone" }, 17: { 'country': "GERMANY", 'provider': "O2" }, 18: { 'country': "GERMANY", 'provider': "E-Plus" }, 19: { 'country': "ICELAND", 'provider': "OgVodafone" }, 20: { 'country': "ICELAND", 'provider': "Siminn" }, 21: { 'country': "INDIA", 'provider': "Andhra Pradesh AirTel" }, 22: { 'country': "INDIA", 'provider': "Andhra Pradesh Idea Cellular" }, 23: { 'country': "INDIA", 'provider': "Chennal Skycell Airtel" }, 24: { 'country': "INDIA", 'provider': "Chennel RPG Cellular" }, 25: { 'country': "INDIA", 'provider': "Delhi Airtel" }, 26: { 'country': "INDIA", 'provider': "Delhi Hutch" }, 27: { 'country': "INDIA", 'provider': "Gujarat Idea Cellular" }, 28: { 'country': "INDIA", 'provider': "Gujaret Airtel" }, 29: { 'country': "INDIA", 'provider': "Gujaret Celforce" }, 30: { 'country': "INDIA", 'provider': "Goa Airtel" }, 31: { 'country': "INDIA", 'provider': "Goa BPL Mobile" }, 32: { 'country': "INDIA", 'provider': "Goa Idea Cellular" }, 33: { 'country': "INDIA", 'provider': "Haryana Airtel" }, 34: { 'country': "INDIA", 'provider': "Haryana Escotel" }, 35: { 'country': "INDIA", 'provider': "Himachal Pradesh Airtel" }, 36: { 'country': "INDIA", 'provider': "Karnataka Airtel" }, 37: { 'country': "INDIA", 'provider': "Kerala Airtel" }, 38: { 'country': "INDIA", 'provider': "Kerala Escotel" }, 39: { 'country': "INDIA", 'provider': "Kerala BPL Mobile" }, 40: { 'country': "INDIA", 'provider': "Kolkata Airtel" }, 41: { 'country': "INDIA", 'provider': "Madhya Pradesh Airtel" }, 42: { 'country': "INDIA", 'provider': "Maharashtra Airtel" }, 43: { 'country': "INDIA", 'provider': "Maharashtra BPL Mobile" }, 44: { 'country': "INDIA", 'provider': "Maharashtra Idea Cellular" }, 45: { 'country': "INDIA", 'provider': "Mumbai Airtel" }, 46: { 'country': "INDIA", 'provider': "Mumbai BPL Mobile" }, 47: { 'country': "INDIA", 'provider': "Punjab Airtel" }, 48: { 'country': "INDIA", 'provider': "Pondicherry BPL Mobile" }, 49: { 'country': "INDIA", 'provider': "Tamil Nadu Airtel" }, 50: { 'country': "INDIA", 'provider': "Tamil Nadu BPL Mobile" }, 51: { 'country': "INDIA", 'provider': "Tamil Nadu Aircel" }, 52: { 'country': "INDIA", 'provider': "Uttar Pradesh West Escotel" }, 53: { 'country': "IRELAND", 'provider': "Meteor" }, 54: { 'country': "IRELAND", 'provider': "Meteor MMS" }, 55: { 'country': "ITALY", 'provider': "TIM" }, 56: { 'country': "ITALY", 'provider': "Vodafone" }, 57: { 'country': "JAPAN", 'provider': "AU by KDDI" }, 58: { 'country': "JAPAN", 'provider': "NTT DoCoMo" }, 59: { 'country': "JAPAN", 'provider': "Vodafone Chuugoku/Western" }, 60: { 'country': "JAPAN", 'provider': "Vodafone Hokkaido" }, 61: { 'country': "JAPAN", 'provider': "Vodafone Hokuriko/Central North" }, 62: { 'country': "JAPAN", 'provider': "Vodafone Kansai/West, including Osaka" }, 63: { 'country': "JAPAN", 'provider': "Vodafone Kanto/Koushin/East including Tokyo" }, 64: { 'country': "JAPAN", 'provider': "Vodafone Kyuushu/Okinawa" }, 65: { 'country': "JAPAN", 'provider': "Vodafone Shikoku" }, 66: { 'country': "JAPAN", 'provider': "Vodafone Touhoku/Niigata/North" }, 67: { 'country': "JAPAN", 'provider': "Vodafone Toukai/Central" }, 68: { 'country': "JAPAN", 'provider': "Willcom" }, 69: { 'country': "JAPAN", 'provider': "Willcom di" }, 70: { 'country': "JAPAN", 'provider': "Willcom dj" }, 71: { 'country': "JAPAN", 'provider': "Willcom dk" }, 72: { 'country': "NETHERLANDS", 'provider': "T-Mobile" }, 73: { 'country': "NETHERLANDS", 'provider': "Orange" }, 74: { 'country': "SINGAPORE", 'provider': "M1" }, 75: { 'country': "SOUTH AFRICA", 'provider': "Vodacom" }, 76: { 'country': "SPAIN", 'provider': "Telefonica Movistar" }, 77: { 'country': "SPAIN", 'provider': "Vodafone" }, 78: { 'country': "SWEDEN", 'provider': "Tele2" }, 79: { 'country': "UNITED STATES", 'provider': "Teleflip" }, 80: { 'country': "UNITED STATES", 'provider': "Alltel" }, 81: { 'country': "UNITED STATES", 'provider': "Ameritech" }, 82: { 'country': "UNITED STATES", 'provider': "ATT Wireless" }, 83: { 'country': "UNITED STATES", 'provider': "Bellsouth" }, 84: { 'country': "UNITED STATES", 'provider': "Boost" }, 85: { 'country': "UNITED STATES", 'provider': "CellularOne" }, 86: { 'country': "UNITED STATES", 'provider': "CellularOne MMS" }, 87: { 'country': "UNITED STATES", 'provider': "Cingular" }, 88: { 'country': "UNITED STATES", 'provider': "Edge Wireless" }, 89: { 'country': "UNITED STATES", 'provider': "Sprint PCS" }, 90: { 'country': "UNITED STATES", 'provider': "T-Mobile" }, 91: { 'country': "UNITED STATES", 'provider': "Metro PCS" }, 92: { 'country': "UNITED STATES", 'provider': "Nextel" }, 93: { 'country': "UNITED STATES", 'provider': "O2" }, 94: { 'country': "UNITED STATES", 'provider': "Orange" }, 95: { 'country': "UNITED STATES", 'provider': "Qwest" }, 96: { 'country': "UNITED STATES", 'provider': "Rogers Wireless" }, 97: { 'country': "UNITED STATES", 'provider': "Telus Mobility" }, 98: { 'country': "UNITED STATES", 'provider': "US Cellular" }, 99: { 'country': "UNITED STATES", 'provider': "Verizon" }, 100: { 'country': "UNITED STATES", 'provider': "Virgin Mobile" }, 101: { 'country': "UNITED KINGDOM", 'provider': "O2 1" }, 102: { 'country': "UNITED KINGDOM", 'provider': "O2 2" }, 103: { 'country': "UNITED KINGDOM", 'provider': "Orange" }, 104: { 'country': "UNITED KINGDOM", 'provider': "T-Mobile" }, 105: { 'country': "UNITED KINGDOM", 'provider': "Virgin Mobile" }, 106: { 'country': "UNITED KINGDOM", 'provider': "Vodafone" }, 107: { 'country': "BELGIUM", 'provider': "mobistar" }, 108: { 'country': "GERMANY", 'provider': "1und1" }, 109: { 'country': "UNITED STATES", 'provider': "MyCricket" } }, init: function (div) { var t = Tabs.Tower; t.cont = div; try { m = ''; m += '\
    Alliance Report Scanner:
    Enable post of Alliance Reports to Alliance Chat
    \ \ \
    Min troops:
    Scan interval: seconds\
    Send text on alert
    \
    Text message alert to:    
    Country: \
    '; m += '\

    Extra Features:
    Use Dove of Peace (Opens a confirmation window)
    '; t.cont.innerHTML = m; document.getElementById('ptalerttext').addEventListener('change', function (e) { Options.celltext.enable = e.target.checked; }, false); document.getElementById('ptfrmcountry').addEventListener('change', t.setCountry, false); document.getElementById('ptfrmprovider').addEventListener('change', t.setProvider, false); document.getElementById('ptnum1').addEventListener('change', t.phonenum, false); document.getElementById('ptnum2').addEventListener('change', t.phonenum, false); document.getElementById('ptnum3').addEventListener('change', t.phonenum, false); document.getElementById('ptalertinterval').addEventListener('change', function (e) { Options.alertinterval = parseInt(e.target.value); }, false); document.getElementById('ptalertmtroops').addEventListener('change', function (e) { Options.alertmtroops = parseInt(e.target.value); }, false); t.togOpt('togEnhanceAR', 'EnhanceAR', AllianceReportsCheck.enable); document.getElementById('verifyDove').addEventListener ('click', t.verifyDove, false); } catch (e) { new CdialogCancelContinue('
    ' + inspect(e, 3, 1) + '
    ', null, null, true); t.cont.innerHTML = '
    ' + e.name + ' : ' + e.message + '
    '; } }, phonenum: function () { Options.celltext.num1 = document.getElementById('ptnum1').value; Options.celltext.num2 = document.getElementById('ptnum2').value; Options.celltext.num3 = document.getElementById('ptnum3').value; }, setCountry: function () { var t = Tabs.Tower; var myselect = document.getElementById("ptfrmprovider"); myselect.innerHTML = ''; myselect.disabled = true; for (var i in t.Providers) { if (t.Providers[i].country == document.getElementById("ptfrmcountry").value) { var addoption = document.createElement('option'); addoption.value = i; addoption.text = t.Providers[i].provider; myselect.add(addoption, null) //add new option to end of "Providers" } } myselect.disabled = false; }, setProvider: function () { var ddProvider = document.getElementById("ptfrmprovider").wrappedJSObject; Options.celltext.provider = ddProvider.options[ddProvider.selectedIndex].value; if (ddProvider.selectedIndex > 0) { document.getElementById("ptnum1").disabled = false; document.getElementById("ptnum2").disabled = false; document.getElementById("ptnum3").disabled = false; } else { document.getElementById("ptnum1").disabled = true; document.getElementById("ptnum2").disabled = true; document.getElementById("ptnum3").disabled = true; } //alert(Options.celltext.provider); }, hide: function () {}, show: function () {}, togOpt: function (checkboxId, optionName, callEnable, callIsAvailable) { var t = Tabs.Tower; var checkbox = document.getElementById(checkboxId); if (callIsAvailable && callIsAvailable() == false) { checkbox.disabled = true; return; } if (Options[optionName]) checkbox.checked = true; checkbox.addEventListener('change', new eventToggle(checkboxId, optionName, callEnable).handler, false); function eventToggle(checkboxId, optionName, callOnChange) { this.handler = handler; var optName = optionName; var callback = callOnChange; function handler(event) { Options[optionName] = this.checked; saveOptions(); if (callback != null) callback(this.checked); } } }, useDove : function (){ var t = Tabs.Tower; t.doveStatus = ById ('verifyDiv'); var params = uW.Object.clone(uW.g_ajaxparams); new MyAjaxRequest(uW.g_ajaxpath + "ajax/doveOut.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { if (rslt.ok) { t.doveStatus.innerHTML = "
    Dove Success!
    "; } else { t.doveStatus.innerHTML = "
    Dove Fail!
    "; } }, onFailure: function () { } }); }, verifyDove : function() { var t = Tabs.Tower; var popDove = null; popDove = new CPopup('ptVerifyDove', 0, -100, 500, 50, true, function() {clearTimeout (1000);}); popDove.centerMe (mainPop.getMainDiv()); var m = '
    '; m += ''; m += ''; popDove.getMainDiv().innerHTML = '
    ARE YOU SURE? Click if yes, close if no
    ' + m; popDove.show(true); document.getElementById('useDove').addEventListener ('click', t.useDove, false); }, } var AllianceReportsCheck = { aRpt: {}, init: function () { var t = AllianceReportsCheck; var b = GM_getValue('allianceRpt_' + GetServerId()); if (b != null) t.aRpt = JSON2.parse(b); else { t.aRpt = {}; } t.enable(Options.EnhanceAR); }, enable: function (tf) { var t = AllianceReportsCheck; if (Options.EnhanceAR) t.checkAllianceReport(); setTimeout(function () { t.enable(Options.EnhaceAR); }, parseInt((Math.random() * 15 * 1000) + (Options.alertinterval * 1000))); }, checkAllianceReport: function () { var t = AllianceReportsCheck; var params = unsafeWindow.Object.clone(unsafeWindow.g_ajaxparams); params.group = "a"; new MyAjaxRequest(unsafeWindow.g_ajaxpath + "ajax/listReports.php" + unsafeWindow.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { t.parseAReports(rslt.arReports, rslt.arPlayerNames, rslt.arAllianceNames, rslt.arCityNames, rslt.totalPages); }, onFailure: function (rslt) {}, }, false); }, parseAReports: function (ar, playerNames, allianceNames, cityNames, totalPages) { var t = AllianceReportsCheck; var myAllianceId = getMyAlliance()[0]; var rptkeys = unsafeWindow.Object.keys(ar); if (matTypeof(ar) != 'array') { for (var i = 0; i < rptkeys.length; i++) { var rpt = ar[rptkeys[i]]; rpt.side0AllianceId = parseInt(rpt.side0AllianceId); var targetDiplomacy = getDiplomacy(rpt.side0AllianceId); if (rpt.side1AllianceId != myAllianceId) { var ID = rpt.reportId; if (t.aRpt["a" + ID] != null) return; if (rpt.marchType == 3) atkType = 'scouted'; else if (rpt.marchType == 4) atkType = 'attacked'; if (rpt.side0TileType > 50) target = "city"; else if (rpt.side0TileType <= 50) target = "wild"; if (rpt.side1AllianceId == 0) var allianceName = 'Undefined'; else var allianceName = allianceNames["a" + rpt.side1AllianceId]; var date = unsafeWindow.formatDateByUnixTime(rpt.reportUnixTime); var msg = 'Report No: ' + rpt.reportId + ' ' + date + ' : ' + playerNames['p' + rpt.side0PlayerId] + '\'s ' + target + ' at ' + rpt.side0XCoord + ',' + rpt.side0YCoord + ' has been ' + atkType + ' by ' + playerNames["p" + rpt.side1PlayerId] + ' at ' + rpt.side1XCoord + ',' + rpt.side1YCoord + ' of ' + allianceName + '(' + getDiplomacy(rpt.side1AllianceId) + ')'; t.fetchreport(ID, rpt, msg, playerNames, cityNames); t.addAllianceReport(rpt); } } } }, addAllianceReport: function (rpt) { t = AllianceReportsCheck; var ID = rpt.reportId; t.aRpt["a" + ID] = rpt.reportUnixTime; var now = unixTime() - (5 * 24 * 60 * 60); for (k in t.aRpt) { if (t.aRpt[k] < now) delete t.aRpt[k]; } var string = JSON2.stringify(t.aRpt); //t.towerMarches['m'+m.mid] setTimeout(function () { GM_setValue("allianceRpt_" + GetServerId(), string); }, 0); }, postToCell: function (m, playerNames, cityNames) { var t = AllianceReportsCheck; var data = []; if (m.marchType == 3) { data.atkType = 'scout'; } else if (m.marchType == 4) { data.atkType = 'atk'; } else { return; } if (m.side0TileType > 50) data.target = 'city (' + m.side0XCoord + ',' + m.side0YCoord + ')'; else { data.target = 'wild (' + m.side0XCoord + ',' + m.side0YCoord + ')'; } data.who = playerNames["p" + m.side1PlayerId] + ' (' + m.side1XCoord + ',' + m.side1YCoord + ')'; //data.arrival = unsafeWindow.timestr(parseInt(m.reportUnixTime - unixTime())); data.arrival = unsafeWindow.formatDateByUnixTime(m.reportUnixTime); data.totTroops = ' '; data.provider = Options.celltext.provider; data.num1 = Options.celltext.num1; data.num2 = Options.celltext.num2; data.num3 = Options.celltext.num3; data.serverId = GetServerId(); data.player = playerNames['p' + m.side0PlayerId]; data.city = cityNames['c' + m.side0CityId]; GM_xmlhttpRequest({ method: 'POST', url: 'https://baos.kocscripters.com/index.php', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', }, data: implodeUrlArgs(data), }) }, fetchreport: function (rpId, rpt, msg, playerNames, cityNames) { var t = AllianceReportsCheck; if (Options.alertmtroops == 0) { var automsg = sendChat('/a ' + msg); if (Options.celltext.enable) t.postToCell(rpt, playerNames, cityNames); if (Options.alertConfig.sound) AudioAlert.sound(true); } else { var params = uW.Object.clone(uW.g_ajaxparams); params.rid = rpId; new MyAjaxRequest(uW.g_ajaxpath + "ajax/fetchReport.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (rslt) { var troops = rslt.detail.fght.s1; var trooptot = 0; for (i in troops) { trooptot += Number(troops[i][0]); } if (Options.alertmtroops > trooptot) return; var automsg = sendChat('/a ' + msg + ' troops ' + trooptot); if (Options.celltext.enable) t.postToCell(rpt, playerNames, cityNames); if (Options.alertConfig.sound) AudioAlert.sound(true); }, onFailure: function () {}, }, false); } }, } function reloadKOC() { var serverId = GetServerId(); if (serverId == '??') window.location.reload(true); var goto = 'https://apps.facebook.com/kingdomsofcamelot/?s=' + serverId; var t = ''; var e = document.createElement('div'); e.innerHTML = t; document.body.appendChild(e); setTimeout(function () { document.getElementById('xxpbButReload').click(); }, 0); } function formatUnixTime(unixTimeString, format) { var rtn = unsafeWindow.formatDateByUnixTime(unixTimeString); /*if (format=='24hour') { if (rtn.substr(14,2)=='AM') rtn = rtn.substr(0,13); else rtn = rtn.substr(8,2)+' '+rtn.substr(0,8)+(parseInt(rtn.substr(8,2))+12)+rtn.substr(10,3); } */ return rtn; } var cdtd = { views: null, init: function () { var t = cdtd; t.views = new CalterUwFunc("citysel_click",[[/cm\.PrestigeCityView\.render\(\)/im,'cm.PrestigeCityView.render();cdtdhook();']]); unsafeWindow.cdtdhook = t.citychange; if (Options.EnhCBtns) { t.views.setEnable(true); unsafeWindow.update_citylist2 = unsafeWindow.update_citylist; unsafeWindow.update_citylist = function (e) { unsafeWindow.update_citylist2(e); cdtd.drawdefendstatus(); }; if (Options.ColrCityBtns) t.replace(); t.drawdefendstatus(); }; }, citychange: function () { cdtd.drawdefendstatus(); Tabs.Options.checkAscension(); // ascension expiry tied into enhanced city buttons }, drawdefendstatus: function () { var t = cdtd; for (i = 0; i < unsafeWindow.seed.cities.length; i++) { var cityidx = i + 1; var city = document.getElementById('citysel_' + cityidx); if (!city) { setTimeout(t.drawdefendstatus, 100); return; } var cityid = 'city' + unsafeWindow.seed.cities[i][0]; city.style.border = '2px inset'; city.style.display = 'inline'; // NEED HELP HERE.. CSS EXPERTS?? //var tw = Math.floor((Number(document.getElementById('mod_citylist').offsetWidth)-18.5)/9); city.style.width = 10 + '%'; //city.style.height = tw+'px'; //city.style.boxShadow='inset 0px 0px 0px 0px'; //city.style.box-shadow='inset 0px 0px 0px 0px'; if (unsafeWindow.seed.citystats[cityid].gate == 0) { city.style.color = 'blue'; } else { city.style.color = 'red'; } if (Options.DbClkDefBtns) { city.ondblclick = function () { logit('id is ' + this.id); logit('target is ' + this.name); t.setdefendstatus(this.name); //setTimeout(t.drawdefendstatus,1000); }; } } }, setdefendstatus: function (city) { var t = cdtd; var state = 1; if (uW.seed.citystats["city" + city].gate != 0) state = 0; var params = uW.Object.clone(uW.g_ajaxparams); params.cid = city; params.state = state; new AjaxRequest(uW.g_ajaxpath + "ajax/gate.php" + uW.g_ajaxsuffix, { method: "post", parameters: params, onSuccess: function (message) { var rslt = eval("(" + message.responseText + ")"); if (rslt.ok) { uW.seed.citystats["city" + city].gate = state; t.drawdefendstatus(); } }, onFailure: function () { t.drawdefendstatus(); }, }); }, // Nico's code with revised colors insert: function () { var t = cdtd; for (i = 0; i < unsafeWindow.seed.cities.length; i++) { color = "black"; cityID = unsafeWindow.seed.cities[i][0]; if (unsafeWindow.seed.cityData.city[cityID].isPrestigeCity) { if (unsafeWindow.seed.cityData.city[cityID].prestigeInfo.prestigeType) { switch (parseInt(unsafeWindow.seed.cityData.city[cityID].prestigeInfo.prestigeType)) { case 1: color = "#228b22";break; case 2: color = "#A944DB";break; case 3: color = "#E36600";break; } } } document.getElementById('mod_citylist').children[i].innerHTML = "" + unsafeWindow.roman[i] + ""; } }, replace: function () { var t = cdtd; var oldFunction = unsafeWindow.update_citylist; unsafeWindow.update_citylist = function () { t.insert(); return oldFunction(); }; }, } function CheckCityMarches(cityID) { var Counter = 0; if (Seed.queue_atkp['city' + cityID] != undefined) { for (atkp in Seed.queue_atkp['city' + cityID]) if (Seed.queue_atkp['city' + cityID][atkp]["marchUnixTime"]) Counter++; } else Counter = 0; return Counter; } function getRallypoint(cityId) { var rallypointlevel = 0; for (var o in Seed.buildings["city" + cityId]) { var buildingType = parseInt(Seed.buildings["city" + cityId][o][0]); var buildingLevel = parseInt(Seed.buildings["city" + cityId][o][1]); if (buildingType == 12) { rallypointlevel = parseInt(buildingLevel); if (rallypointlevel == 12) rallypointlevel = 11; } } if (Seed.cityData.city[cityId].isPrestigeCity) rallypointlevel += 3; return rallypointlevel; } var Market = new CalterUwFunc ('modal_marketplace', [[/maxlength..\d./gim, '']]); Market.setEnable(true); function Sendcourtdata(courtdata) { if (Math.floor((Math.random() * 1000) + 1) > throttle) return; var params = {}; params.courtdata = btoa(RawDeflate.deflate(JSON.stringify(courtdata))); params.gz = true; params.server = Number(GetServerId()); params.tvuid = Number(unsafeWindow.tvuid); GM_xmlhttpRequest({ method: 'POST', url: 'https://kocscripters.com/courtdat.php', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', }, data: implodeUrlArgs(params), onload: function (message) { if (message.status != 200) throttle = 0; else { var rslt = eval("(" + message.responseText + ")"); if (rslt.ok) throttle = Number(rslt.throttle); }; }, }) }; function getDST(today) { var yr = today.getFullYear(); var dst_start = new Date("March 14, "+yr+" 02:00:00"); // 2nd Sunday in March can't occur after the 14th var dst_end = new Date("November 07, "+yr+" 02:00:00"); // 1st Sunday in November can't occur after the 7th var day = dst_start.getDay(); // day of week of 14th dst_start.setDate(14-day); // Calculate 2nd Sunday in March of this year day = dst_end.getDay(); // day of the week of 7th dst_end.setDate(7-day); // Calculate first Sunday in November of this year var dstadj = 0; if (today >= dst_start && today < dst_end) { //does today fall inside of DST period? dstadj = (3600); // 60 mins! } return dstadj; } ptStartup();