WoTStatScript

More info for World of Tanks profile page. Updated for the new style.

当前为 2014-11-18 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name WoTStatScript
  3. // @version 0.9.4.034
  4. // @description More info for World of Tanks profile page. Updated for the new style.
  5. // @author Orrie
  6. // @contributor Boom_Box
  7. // @namespace http://forum.worldoftanks.eu/index.php?/topic/263423-
  8. // @icon http://dl.dropboxusercontent.com/u/12497046/wot/projects/statscript/img/icon.png
  9. // @include /^http://worldoftanks\.(eu|com|ru|asia|kr)//
  10. // @include http://*.wargaming.net/clans/*/
  11. // @grant GM_xmlhttpRequest
  12. // @license MIT License
  13. // ==/UserScript==
  14. /*
  15. Changelog: http://dl.dropboxusercontent.com/u/12497046/wot/projects/statscript/WoTStatScript-changelog.txt
  16. */
  17. (function () {
  18. // script variables
  19. var scripthost = "https://greasyfork.org/scripts/661-wotstatscript",
  20. threadlink = "http://forum.worldoftanks.eu/index.php?showtopic=263423",
  21. version = "0.9.4.034",
  22. nm_id = "orrie_js_174043", // noobmeter api id
  23. scriptlink = "<div class='b-scriptlink'><a target='_blank' href="+scripthost+">Script</a> version "+version+" - <a target='_blank' href="+threadlink+">Thread</a></div>";
  24.  
  25. // get server info and webpage
  26. var wg_host = document.location.host,
  27. server = wg_host.match(/(eu|ru|na|com|asia|kr)/)[0],
  28. wg_href = document.location.href,
  29. wg_accounts = wg_href.match(/(community|uc)\/accounts\/\d+/),
  30. wg_clans = wg_href.match(/wargaming\.net\/clans\/+[\d]+\//),
  31. sidebar_class = document.getElementsByClassName('l-sidebar')[0],
  32. style = elem("style", "wotstatscript", "", "text/css");
  33. document.head.appendChild(style);
  34. if (server == "na" && wg_clans) {
  35. server = "com";
  36. }
  37.  
  38. // determine browser types, beware inconsistencies, no method is reliable.
  39. var navGecko = /Mozilla/.test(navigator.appCodeName), // true for ff (and chrome lol)
  40. navOpera = /Opera/.test(navigator.appName), // only true for opera
  41. navChrome = /Chrome/.test(navigator.userAgent);
  42. if (navOpera || navChrome) { navGecko = false; }
  43.  
  44. // globally inserting functions into head as scripts
  45. var scripts = [copyClipboard];
  46. for (var i=0; i<scripts.length; ++i) {
  47. var script = elem("script", "wotstatscript", "", "text/javascript");
  48. script.textContent = scripts[i].toString();
  49. document.head.appendChild(script);
  50. }
  51.  
  52. // colour scale array
  53. var colArr = {
  54. sUni: { col: "#5A3175", wr: 65, wn8: 2900, wn7: 2050, eff: 2050, nm: 2000, bat: 30000, sr: 50, hr: 80, dmg: 300 }, // 99.99% super unicum
  55. uni: { col: "#83579D", wr: 60, wn8: 2450, wn7: 1850, eff: 1800, nm: 1950, bat: 25000, sr: 46, hr: 75, dmg: 270 }, // 99.90% unicum
  56. gr8: { col: "#3972C6", wr: 56, wn8: 2000, wn7: 1550, eff: 1500, nm: 1750, bat: 21000, sr: 42, hr: 70, dmg: 240 }, // 99.00% great
  57. vGud: { col: "#4099BF", wr: 54, wn8: 1600, wn7: 1350, bat: 17000, sr: 38, hr: 65, dmg: 210 }, // 95.00% very good
  58. good: { col: "#4D7326", wr: 52, wn8: 1200, wn7: 1100, eff: 1200, nm: 1450, bat: 13000, sr: 34, hr: 60, dmg: 180 }, // 82.00% good
  59. aAvg: { col: "#849B24", wr: 50, wn8: 900, bat: 10000, sr: 30, hr: 55, dmg: 150 }, // 63.00% above average
  60. avg: { col: "#CCB800", wr: 48, wn8: 650, wn7: 900, eff: 900, nm: 1250, bat: 7000, sr: 25, hr: 50, dmg: 120 }, // 40.00% average
  61. bAvg: { col: "#CC7A00", wr: 47, wn8: 450, wn7: 700, eff: 600, nm: 1150, bat: 3000, sr: 20, hr: 45, dmg: 90 }, // 20.00% below average
  62. bas: { col: "#CD3333", wr: 46, wn8: 300, wn7: 500, bat: 1000, sr: 15, hr: 40, dmg: 60 }, // 6.00% basic
  63. beg: { col: "#930D0D", wr: 0, wn8: 0, wn7: 0, eff: 0, nm: 0, bat: 0, sr: 0, hr: 0, dmg: 0 }, // 0.00% beginner
  64. dft: { col: "#6B6B6B" } // default
  65. };
  66.  
  67. // localization
  68. // cz-czech - Crabt33 and Ragnarocek
  69. // de-german - ArtiOpa and Crakker
  70. // fr-french - SuperPommeDeTerre
  71. // pl-polish - KeluMocy
  72. // es-spanish - Frodo45127
  73. // tr-turkish - Ufuko
  74. // ru-russian - dimon222
  75. var loc = {
  76. // thousands separator
  77. sym: { en: ",", ru: " ", cz: " ", de: ".", fr: " ", pl: " ", es:".", tr: "."},
  78. // profile page
  79. p01: { en: "Go to Bottom", ru: "Пролистать вниз", cz: "Konec stránky", de: "nach unten", fr: "Aller à la fin", pl: "Koniec strony", es: "Ir al final", tr: "Aşağı İn" },
  80. p02: { en: "Go to Top", ru: "Пролистать наверх", cz: "Začátek stránky", de: "nach oben", fr: "Aller au début", pl: "Początek strony", es: "Ir al principio", tr: "Yukarı Çık" },
  81. p03: { en: "Days Ago", ru: "Дней назад", cz: "dnů", de: "Tage in WOT aktiv", fr: "jours", pl: "Dni temu", es: "Días", tr: "Gün Önce" },
  82. p04: { en: "Player Stats:", ru: "Статистика игрока:", cz: "Stat. hráče:", de: "Spielerstatistik", fr: "Statistiques du joueur:", pl: "Statystyki gracza:", es: "Estadísticas del jugador:", tr: "Oyuncu Statları" },
  83. p05: { en: "Signature:", ru: "Подпись:", cz: "Podpis:", de: "Forumsignatur", fr: "Signature:", pl: "Sygnatura do forum:", es: "Firma", tr: "İmza" },
  84. p06: { en: "Light", ru: "Светлые тона", cz: "Světlý", de: "Signatur Weiß", fr: "Claire", pl: "Jasna", es: "Clara", tr: "Açık" },
  85. p07: { en: "Dark", ru: "Тёмные тона", cz: "Tmavý", de: "Signatur Schwarz", fr: "Foncée", pl: "Ciemna", es: "Oscura", tr: "Koyu" },
  86. p08: { en: "Replays:", ru: "Реплеи:", cz: "Záznamy:", de: "Wiederholung", fr: "Replays:", pl: "Powtórki:", es: "Repeticiones:", tr: "Replayler" },
  87. p09: { en: "Victories", ru: "Победы", cz: "Vítězství", de: "Siege", fr: "Victoires", pl: "Zwycięstw", es: "Victorias", tr: "Zaferler" },
  88. p10: { en: "Battles Participated", ru: "Участий в битвах", cz: "Počet bitev", de: "Gefechte geführt", fr: "Batailles participées", pl: "Bitew", es: "Batallas jugadas", tr: "Savaş Katılımı" },
  89. p11: { en: "Average Experience", ru: "Средний опыт", cz: "Průměrné zkušenosti", de: "Durchnittl. Erfahrung", fr: "Expérience moyenne", pl: "Średnie doświadczenie", es: "Experiencia media", tr: "Ortalama Deneyim" },
  90. p12: { en: "Average Tier", ru: "Средний уровень танка", cz: "Průměrný Tier", de: "Durchschnittl. Stufe", fr: "Tiers moyen", pl: "Średni poziom pojazdu", es: "Tier medio", tr: "Ortalama Seviye" },
  91. p13: { en: "Win/Loss Ratio", ru: "Отношение Победы/Поражения", cz: "Poměr vítězství/porážek", de: "Verhältnis Siege/ Niederlagen", fr: "Ratio Victoires/Défaites", pl: "Zwycięstwa/porażki", es: "Ratio de victorias/derrotas", tr: "Zafer/Kayıp Oranı" },
  92. p14: { en: "Performance Ratings", ru: "Рейтинги производительности", cz: "Hodnocení bojového výkonu", de: "Leistungsverhältnis", fr: "Indices de performances", pl: "Statystyki wydajności", es: "Ratios de rendimiento", tr: "Performans Değerleri" },
  93. p15: { en: "WN8", ru: "WN8", cz: "WN8", de: "WN8", fr: "WN8", pl: "WN8", es: "WN8", tr: "WN8" },
  94. p16: { en: "Efficiency", ru: "Эффективность", cz: "Efektivita", de: "Effizienz", fr: "Efficacité", pl: "Efficiency", es: "Eficiencia", tr: "Efficiency" },
  95. p17: { en: "NoobMeter", ru: "NoobMeter", cz: "NoobMeter", de: "NoobMeter", fr: "NoobMeter", pl: "NoobMeter", es: "NoobMeter", tr: "NoobMeter" },
  96. p18: { en: "Fetching...", ru: "Загрузка...", cz: "Načítám...", de: "abrufen...", fr: "Récupération...", pl: "Pobieranie...", es: "Recuperando...", tr: "Getiriliyor..." },
  97. p19: { en: "Performance Rating Calculations", ru: "Вычисления рейтинга производительности", cz: "Výpočet hodnocení bojového výkonu", de: "Leistungsberechnung", fr: "Calculs des indicateurs de performances", pl: "Obliczenia statystyk wydajności", es: "Cálculos del ratio de rendimiento", tr: "Performans Değeri Hesaplamaları" },
  98. p20: { en: "Formula Type", ru: "Тип формулы", cz: "Typ výpočtu", de: "Formel", fr: "Type de formule", pl: "Formuła", es: "Tipo de fórmula", tr: "Formül Tipi" },
  99. p21: { en: "Total", ru: "Всего", cz: "Celkem", de: "Gesamt", fr: "Total", pl: "Wynik", es: "Total", tr: "Toplam" },
  100. p22: { en: "Scaled", ru: "Шкала", cz: "Stupnice", de: "Skaliert", fr: "A l'échelle", pl: "Skalowanie", es: "Escala", tr: "Ölçek" },
  101. p23: { en: "Destroyed", ru: "Уничтожено", cz: "Zničeno", de: "Zerstört", fr: "Détruits", pl: "Fragi", es: "Destruidos", tr: "imha" },
  102. p24: { en: "Damage", ru: "Урон", cz: "Poškození", de: "Schaden", fr: "Dommages", pl: "Obrażenia", es: "Daño", tr: "Hasar" },
  103. p25: { en: "Detected", ru: "Обнаружено", cz: "Detekováno", de: "Aufgeklärt", fr: "Détectés", pl: "Wykrycia", es: "Detectados", tr: "Tespit" },
  104. p26: { en: "Capping", ru: "Захват", cz: "Obsazení", de: "Erobert", fr: "Capture", pl: "Zdobycie bazy", es: "Capturando", tr: "İşgal" },
  105. p27: { en: "Defense", ru: "Оборона", cz: "Obrana", de: "Verteidigt", fr: "Défense", pl: "Obrona bazy", es: "Defendiendo", tr: "Savunma" },
  106. p28: { en: "Victories", ru: "Победы", cz: "Vítězství", de: "Siege", fr: "Victoires", pl: "Zwycięstwa", es: "Victorias", tr: "Zaferler" },
  107. p29: { en: "WN8", ru: "WN8", cz: "WN8", de: "WN8", fr: "WN8", pl: "WN8", es: "WN8", tr: "WN8" },
  108. p30: { en: "WN7", ru: "WN7", cz: "WN7", de: "WN7", fr: "WN7", pl: "WN7", es: "WN7", tr: "WN7" },
  109. p31: { en: "Efficiency", ru: "Эффективность", cz: "Efektivita", de: "Effizienz", fr: "Efficacité", pl: "Efficiency", es: "Eficiencia", tr: "Efficiency" },
  110. p32: { en: "What is WN Efficiency?", ru: "Что такое WN эффективность?", cz: "Co je WN hodnocení?", de: "Was bedeutet WN Effizienz", fr: "Qu'est que l'efficacité WN ?", pl: "Czym jest statystyka wydajności WN?", es: "¿Qué es la eficiencia WN?", tr: "WN Efficiency Nedir?" },
  111. p33: { en: "Ace Tanker", ru: "Мастер", cz: "Hrdina", de: "Panzer Ass", fr: "As du char", pl: "As Pancerny", es: "As de tanques", tr: "Tank Ası" },
  112. p34: { en: "1st Class", ru: "1 степень", cz: "1. třídy", de: "1ter Klasse", fr: "Classe 1", pl: "Pierwsza Klasa", es: "Clase I", tr: "1. Sınıf" },
  113. p35: { en: "2nd Class", ru: "2 степень", cz: "2. třídy", de: "2ter Klasse", fr: "Classe 2", pl: "Druga Klasa", es: "Clase II", tr: "2. Sınıf" },
  114. p36: { en: "3rd Class", ru: "3 степень", cz: "3. třídy", de: "3ter Klasse", fr: "Classe 3", pl: "Trzecia Klasa", es: "Clase III", tr: "3. Sınıf" },
  115. p37: { en: "No Badge", ru: "Нет значка", cz: "Nezískáno", de: "kein Orden", fr: "Aucun badge", pl: "Bez odznaki", es: "Sin medalla", tr: "Rozetsiz" },
  116. p38: { en: "Total Vehicles", ru: "Общее количество танки", cz: "Celkem vozidel", de: "Alle Fahrzeuge", fr: "Nombre total de véhicules", pl: "Całkowita liczba pojazdów", es: "Total de vehículos", tr: "Toplam Araçlar" },
  117. p39: { en: "Battles Participated:", ru: "Участий в битвах:", cz: "Počet bitev:", de: "An Gefechten teilgenommen", fr: "Batailles participées:", pl: "Bitwy:", es: "Batallas jugadas:", tr: "Savaş Katılımı" },
  118. p40: { en: "Victories:", ru: "Победы:", cz: "Vítězství:", de: "Siege", fr: "Victoires:", pl: "Zwycięstwa:", es: "Victorias:", tr: "Zaferler" },
  119. p41: { en: "Defeats:", ru: "Поражения:", cz: "Porážek:", de: "Niederlagen", fr: "Défaites:", pl: "Porażki:", es: "Derrotas:", tr: "Yenilgiler" },
  120. p42: { en: "Draws:", ru: "Ничья:", cz: "Remíza:", de: "Unentschieden", fr: "Egalités:", pl: "Remisy:", es: "Empates:", tr: "Beraberlikler" },
  121. p43: { en: "Battles Survived:", ru: "Битв пережито:", cz: "Přežito bitev:", de: "Gefechte überlebt", fr: "Batailles survécues:", pl: "Przetrwane bitwy:", es: "Batallas como superviviente:", tr: "Hayatta Kalma" },
  122. p44: { en: "Average Battles per Day:", ru: "Среднее число битв за день:", cz: "Průměrný počet bitev za den:", de: "Durschnittliche Gefechte pro Tag", fr: "Nombre moyen de batailles par jour:", pl: "Średnia bitew na dzień:", es: "Media de batallas por día:", tr: "Günlük Ortalama Savaş" },
  123. p45: { en: "Experience:", ru: "Опыт:", cz: "Zkušenosti:", de: "Erfahrung", fr: "Expérience:", pl: "Doświadczenie:", es: "Experiencia:", tr: "Deneyim" },
  124. p46: { en: "Average Experience per Battle:", ru: "Средний опыт за битву:", cz: "Průměrné zkušenosti za bitvu:", de: "Durchschnittserfahrung", fr: "Expérience moyenne par bataille:", pl: "Średnie doświadczenie na bitwę:", es: "Experiencia media por batalla:", tr: "Savaş Başına Ortalama Deneyim" },
  125. p47: { en: "Maximum Experience per Battle:", ru: "Максимальный опыт за битву:", cz: "Maximální zkušenosti za bitvu:", de: "Höchste Gefechtserfahrung", fr: "Expérience maximum par bataille:", pl: "Maksymalne doświadczenie na bitwę:", es: "Experiencia máxima por batalla:", tr: "Savaş Başına Maksimum Deneyim" },
  126. p48: { en: "Destroyed:", ru: "Уничтожено:", cz: "Zničeno:", de: "Zerstört", fr: "Détruits", pl: "Zniszczeni przeciwnicy:", es: "Destruidos:", tr: "İmhalar" },
  127. p49: { en: "Deaths:", ru: "Смертей:", cz: "Nepřežil:", de: "Tode", fr: "Morts", pl: "Zniszczony:", es: "Muertes:", tr: "Ölümler" },
  128. p50: { en: "Detected:", ru: "Обнаружено", cz: "Detekováno:", de: "Aufgeklärt", fr: "Détectés", pl: "Wykrytych:", es: "Detectados:", tr: "Tespitler" },
  129. p51: { en: "Hit Ratio:", ru: "Коэффициент попаданий:", cz: "Přesnost střelby:", de: "Trefferquote", fr: "Ratio de hit", pl: "Celność:", es: "Ratio de impactos:", tr: "İsabet Oranı" },
  130. p52: { en: "Damage Caused:", ru: "Урона нанесено:", cz: "Udělené poškození:", de: "Schaden verursacht", fr: "Dommages causés:", pl: "Zadane obrażenia:", es: "Daño causado:", tr: "Yapılan Hasar" },
  131. p53: { en: "Damage Received:", ru: "Урона получено:", cz: "Přijaté poškození:", de: "Schaden erhalten", fr: "Dommages reçus:", pl: "Otrzymane obrażenia:", es: "Daño recibido:", tr: "Alınan Hasar" },
  132. p54: { en: "Base Capture Points:", ru: "Очки захвата:", cz: "Bodů obsazení základny:", de: "Eroberungspunkte", fr: "Points de capture de base:", pl: "Punkty przejęcia bazy:", es: "Puntos de captura:", tr: "Bölge İşgali Puanı" },
  133. p55: { en: "Base Defense Points:", ru: "Очки обороны:", cz: "Bodů obrany základny:", de: "Verteidigungspunkte", fr: "Points de défense de base:", pl: "Punkty obrony bazy:", es: "Puntos de defensa:", tr: "Bölge Savunması Puanı" },
  134. p56: { en: "Average Tier:", ru: "Средний уровень:", cz: "Průměrný Tier:", de: "Durchschnittliche Stufe", fr: "Tiers moyen:", pl: "Średni poziom pojazdów:", es: "Tier media:", tr: "Ortalama Seviye" },
  135. p57: { en: "Vehicle Tiers", ru: "Уровни техники", cz: "Tiery vozidel", de: "Fahrzeuge Stufe", fr: "Tiers du véhicule", pl: "Poziomy czołgów", es: "Tier de los vehículos:", tr: "Araç Seviyeleri" },
  136. p58: { en: "Tier", ru: "Уровень", cz: "Tier", de: "Stufe", fr: "Tiers", pl: "Poziom", es: "Tier", tr: "Seviye" },
  137. p59: { en: "Total Vehicles:", ru: "Количество техники:", cz: "Celkem vozidel:", de: "Gesamt Fahrzeuge", fr: "Nombre total de véhicules:", pl: "Całkowita liczba pojazdów:", es: "Total de vehículos:", tr: "Toplam Araçlar" },
  138. p60: { en: "Tankopedia", ru: "Танковедение", cz: "Tankpédie", de: "Tankopedia", fr: "Tankopedia", pl: "Tankopedia", es: "Tankopedia", tr: "Tankopedia" },
  139. p61: { en: "Tank Statistics", ru: "Статистика танка", cz: "Statistiky vozidel", de: "Panzer Statistik", fr: "Statistiques des chars", pl: "Statystyki czołgu", es: "Estadísticas de tanques", tr: "Tank İstatistikleri" },
  140. p62: { en: "Premium Tanks", ru: "Премиум танки", cz: "Premium tanky", de: "Premium Panzer", fr: "Chars premiums", pl: "Czołgi premium", es: "Tanques premium", tr: "Premium Tanklar" },
  141. p63: { en: "Copy stats to Clipboard", ru: "Скопировать в буфер обмена", cz: "Kopírovat Stat. do schránky", de: "Statistiken in Zwischenablage kopieren", fr: "Copier les statistiques vers le presse-papiers", pl: "Kopiuj statystyki do schowka", es: "Copiar estadísticas al portapapeles", tr: "İstatistikleri Panoya Kopyala" },
  142. p64: { en: "Press Ctrl+C, or Right-Click and Copy", ru: "Нажмите Ctrl+C или ПКМ и Скопировать", cz: "Stiskni Ctrl+C, nebo klikni pravým tl. myši a vyber Kopírovat", de: "STRG+C/ rechter Mausklick und Kopieren", fr: "Appuyez sur Ctrl+C, ou clic droit et Copier", pl: "Naciśnij Ctrl+C, lub prawy klawisz myszy i 'Kopiuj'", es: "Presiona Ctrl+C, o haz clic derecho y pulsa Copiar.", tr: "Ctrl+C Tuşuna Bas, veya Sağ Tıkla ve Kopyala" },
  143. p65: { en: "WoTStatScript not active, because of player having 0 battles", ru: "Скрипт неактивен, т.к. у игрока 0 битв", cz: "WoTStatScript není aktivní, protože hráč má 0 bitev", de: "WoTStatScript inaktiv wegen fehlender Gefechte", fr: "WoTStatScript n'est pas actif, car le joueur a 0 batailles", pl: "WoTStatScript nieaktywny, ponieważ gracz rozegrał 0 bitew", es: "El script WoTStat no está activo, porque el jugador no ha jugado ninguna batalla.", tr: "WoTStat Scipt aktif değil, çünkü oyuncunun 0 savaşı var." },
  144. p66: { en: "Clan Stats:", ru: "Статистика клана:", cz: "Stat. klanu:", de: "Clanstatistiken", fr: "Statistiques du clan:", pl: "Statystyki klanu:", es: "Estadísticas del clan:", tr: "Klan İstatistikleri" },
  145. p67: { en: "Replays:", ru: "Реплеи:", cz: "Záznamy:", de: "Wiederholungen", fr: "Replays:", pl: "Powtórki:", es: "Repeticiones:", tr: "Replayler" },
  146. p68: { en: "Tier 10 Only", ru: "Уровень 10 Только", cz: "Pouze Tier 10", de: "nur Stufe 10", fr: "Seulement les tiers 10", pl: "Tylko 10 tier", es: "Sólo tier 10", tr: "Seviye 10 Tanklar" },
  147. p69: { en: "Battles missing from API, ratings may be inaccurate", ru: "Отсутствует Battles от API, рейтинги могут быть неточными", cz: "Některé bitvy se z API nenačetly, hodnocení může být nepřesné", de: "Fehlende API Gefechtsdaten, Bewertungen können ungenau sein", fr: "Des batailles manquent de l'API, les indices peuvent être faussés", pl: "Brakujące bitwy, obliczenia mogą być niedokładne", es: "Faltan batallas desde la API, por lo que los ratios pueden no ser muy precisos.", tr: "Savaş bilgileri eksik, hesaplamalar hatalı olabilir." },
  148. p70: { en: "Hit Ratio", ru: "Коэффициент попаданий", cz: "Přesnost střelby", de: "Trefferquote", fr: "Ratio de hit", pl: "Celność", es: "Ratio de impacto", tr: "İsabet Oranı" },
  149. p71: { en: "Average Damage", ru: "Средний Урона", cz: "Průměrné poškození", de: "Durchschnittlicher Schaden", fr: "Dommages moyens", pl: "Średnie obrażenia", es: "Daño medio", tr: "Ortalama Hasar" },
  150. p72: { en: "Stats for", ru: "Cтатистика для", cz: "Statistika hráče", de: "Statistik für", fr: "Statistiques pour ", pl: "Statystyki z", es: "Estadísticas para", tr: "İstatistikler" },
  151. p73: { en: "Battles:", ru: "Битвы:", cz: "Bitev:", de: "Gefechte", fr: "Batailles:", pl: "Bitew:", es: "Batallas:", tr: "Savaşlar" },
  152. p74: { en: "Clan History:", ru: "История клана:", cz: "Clan History:", de: "Clan History:", fr: "Clan History:", pl: "Clan History:", es: "Clan History:", tr: "Clan History:" },
  153. p75: { en: "No Rating", ru: "Нет рейтинга", cz: "No Rating", de: "No Rating", fr: "No Rating", pl: "No Rating", es: "No Rating", tr: "No Rating" },
  154. p76: { en: "None", ru: "Никто", cz: "None", de: "None", fr: "None", pl: "None", es: "None", tr: "None" },
  155. p77: { en: "Error", ru: "Oшибка", cz: "Error", de: "Error", fr: "Error", pl: "Error", es: "Error", tr: "Error" },
  156. // clan page
  157. c01: { en: "Clan Stats / Replays:", ru: "Статистика клана / Реплеи:", cz: "Statistiky klanu / Záznamy", de: "Clan Statistiken / Wiederholungen", fr: "Statistiques du clan / Replays:", pl: "Statystyki klanu / Powtórki:", es: "Estadísticas y repeticiones del clan", tr: "Klan İstatistikleri / Replayler" }
  158. //p00: { en: "p00_en", ru: "p00_ru", cz: "", de: "", fr: ":", pl: "", es:"", tr: ""},
  159. };
  160.  
  161. // region settings and language detection
  162. // wotlabs, noobmeter, mywotstats, wotcs, wot-news, wotstats, wot-life and wotreplays
  163. var lang_detect = (wg_accounts) ? document.getElementsByClassName('b-portalmenu_links_list_point')[3].firstElementChild.innerHTML.toLowerCase() : document.getElementsByClassName('global-nav__bg')[0].innerHTML.toLowerCase(),
  164. wl_srv, nm_srv, ws_srv, wr_srv, wn_srv, cs_srv, wlife_srv,
  165. lang = "en";
  166. switch(server) {
  167. case ("eu"):
  168. wl_srv = nm_srv = ws_srv = wr_srv = wn_srv = cs_srv = wlife_srv = server;
  169. switch(lang_detect) {
  170. case ("support"): lang = "en"; break; // english
  171. case ("podpora"): lang = "cz"; break; // czech
  172. case ("kundendienst"): lang = "de"; break; // german
  173. case ("soporte"): lang = "es"; break; // spanish
  174. case ("aide"): lang = "fr"; break; // french
  175. case ("pomoc"): lang = "pl"; break; // polish
  176. case ("destek"): lang = "tr"; break; // turkish
  177. default: break;
  178. }
  179. break;
  180. case ("ru"): // russian
  181. wl_srv = nm_srv = ws_srv = wr_srv = wn_srv = cs_srv = server;
  182. lang = "ru";
  183. break;
  184. case ("com"):
  185. wl_srv = nm_srv = ws_srv = cs_srv = "na"; wr_srv = "com"; wn_srv = "us";
  186. switch(lang_detect) {
  187. case ("support"): lang = "en"; // american - muh freedom
  188. loc.p27.en = "Defence";
  189. loc.p55.en = "Base Defence Points:";
  190. break;
  191. case ("soporte"): lang = "es"; break; // argentinian spanish
  192. case ("suporte"): lang = "en"; break; // brazilian portuguese
  193. default: break;
  194. }
  195. break;
  196. case ("asia"):
  197. wl_srv = nm_srv = ws_srv = wn_srv = cs_srv = "sea"; wr_srv = "com";
  198. break;
  199. case ("kr"): // korean
  200. wl_srv = nm_srv = ws_srv = cs_srv = server; wr_srv = "com";
  201. break;
  202. default: break;
  203. }
  204. for (var x in loc){
  205. if (loc.hasOwnProperty(x)) {
  206. loc[x] = loc[x][lang];
  207. }
  208. }
  209.  
  210. // variables for dropbox, css and data uri
  211. var css = {
  212. dbox: "https://dl.dropboxusercontent.com/u/12497046/wot/projects/statscript/img",
  213. c01: "/static/3.13.0.2.1/common/css/scss/context-menu/img/arrow.png",
  214. c02: "/static/3.13.0.2.1/common/css/scss/content/victory-points/img/victory-points-link.png",
  215. c03: "/static/3.13.0.2.1/common/css/scss/tables/img/th-profile-bg.png",
  216. c04: "/static/3.13.0.2.1/common/css/block/b-link/img/orange_arrow.png",
  217. c05: "/static/3.17.0.1/common/css/scss/content/user/img/speedometr-separator.png",
  218. c06: "/static/3.17.0.1/common/css/scss/content/links/img/ico-info.png",
  219. c07: "/static/3.17.0.1/common/css/scss/content/links/img/vertical-arrow.png",
  220. c08: "/static/3.16.0.2/common/img/common/cont-img-mask.png",
  221. c09: "/static/3.17.1.2/common/img/classes/class-ace.png",
  222. c10: "/static/3.17.1.2/common/img/classes/class-1.png",
  223. c11: "/static/3.17.1.2/common/img/classes/class-2.png",
  224. c12: "/static/3.17.1.2/common/img/classes/class-3.png",
  225. c13: "/static/3.13.0.2.1/common/css/scss/layout/img/ui-bg-top.jpg",
  226. c14: "/static/3.13.0.2.1/common/css/scss/context-menu/img/active-point.png",
  227. box: "border: 1px solid rgba(255, 255, 255, 0.05); box-shadow: 0 0 38px 1px rgba(0, 0, 0, 0.3) inset, 0 0 23px 1px rgba(255, 255, 255, 0.02), 0 0 5px 1px rgba(0, 0, 0, 0.5) inset;",
  228. input: "background: rgba(0, 0, 0, 0.09); box-shadow: 0 0 1px 1px rgba(255, 255, 255, 0.15) inset, 0 0 38px 1px rgba(0, 0, 0, 0.3) inset, 0 0 23px 1px rgba(255, 255, 255, 0.02), 0 0 5px 1px rgba(0, 0, 0, 0.5) inset; color: #606061;",
  229. uMenu: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPQAAAABCAIAAABmEhQDAAAAHklEQVQoU2MAAj4BAR5ePi6eUTSKhgni4eFjYGAAAN9YIhjam+zlAAAAAElFTkSuQmCC",
  230. uIconHr:"data:image/png;base64,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",
  231. uIconAt:"data:image/png;base64,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",
  232. uNmLogo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABgUlEQVQ4y92SPWsUYRSFn/POzE4MgkhMKyKICAEjiUksgoWClY0WYifKDlj4VyxsDGvlgmhtLUiIkoSNiLEWCwN+dmvAnZl3jkV2lxArSz3d/eDe53Iu/NOabb8J6cHkfLGZbXUWq1E8c2c7kxpPhF8unfPu0bk4qqWqz+jggAtFL6uor9hhLqjZnkwHq7ip+/WRJlF50tYs0oLwF5vdPwhKKCHDguiEfpUBkKh6aMIT8MutzmJ3TDFGb/duA7L91HBTgAEYQlqHgeOH9PPt/oUCWCpezVTk7z1sFpwG7gMt4C64a7QCdGUTVF9LQ/l6feXiN80Xmw8aJ/cQxm6AIKkAXgAfgWnbZyVNgp8bjdAIqi8HW1MMeSUs2MG+ZfsTeMdwQrBs+AAgPAQ1gl0BnC82njVOboxPkGujVHhglMuORonYywfid8nXe52ltbGNC8X6JaNTQapjrGNjchH7VutYnvhHJJ3Cg8+mdXSCr4/XOlcH+7xf1d984Fx7I/D/6Dd9b6wCx93gcQAAAABJRU5ErkJggg==",
  233. uRatmet:"data:image/png;base64,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",
  234. uRatmetMark:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAANCAQAAADLNWwDAAAAV0lEQVQI12NgEGQQZhBhEALSQEqMQQIIgUxxBqmvRyBMKQa5H3cZpIGyDHIMir/fAkkxBgZFa/0/nxgUgQoZVNLsgExloGpkUSS1SCYgmQuxTQwkCncDAH0wFzVj5p2XAAAAAElFTkSuQmCC",
  235. uTiers:"data:image/png;base64,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",
  236. ubadgeN:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAfCAYAAABtYXSPAAAFVklEQVR42q2Xf0idVRjHu/f95dxVBGvNJlM2lI2hbW5sqMo23SDa2JaOtWBDCuZG2QBawZis0WA4pgtMREUQFXWJiASIGgkgEBWRKSD9GYAVEDQE+qtOzweey7nck12vdODLc5/3fL/f87znx/ve94X/aDEbFc61TXSZtFk2X6PnmGUe2OVYeNZ/aw1BXAWxtN+a66A2p7nXrcYnT/vtZVEQIi3MigONtjAH2qd810N9MzcV2DsIFTmCHfbOMxVjeejQWy+dZS0y86xYUSR48fr169MHDhx4czvFoEOPD372JjefHTu1wM5GflFR0fujo6MmNzf3s97e3pJsioGPDj0++OFriwGW7yyRVp8rSOzZs+fVs2fPfj03N2ck/3xoaKgCYllZWRzs3r3bKy4u9goLCz0iebIPHnx06PHBD1/1j9KWyikkTBYjrbKlpeXvwcHBv2SaKeaLvr6+GsjHjh3zgCyBf/ToUW/fvn0ekTzZBw8+OvT44IdvSjFhWkHO7mcaXwqC4PbMzIwB7e3tJhaLfTkwMNCAoLa2NgCHDx8OGxoa/EOHDvlE8mQfPPjo0Ce98MWfcdzTaWfG152/My8vr6ygoGBgcnLSLCwsmJ6eHmbmK7nT1yCfPHkyBMePH4/Onz8fVFVVBUTyZB88+OjQ44Mfvvgzjo7npy9VLOX0FAr56b1798yjR49Md3e32b9/P8V809nZeQ7y6dOnI1BdXZ3T1NQUnjhxIiSSJ/vgwUeHHh/88MWfcVJOVyy9mEArLZOpfXb37l0zPz9vLl++jAnF/NDV1XUBcmNj4w4gy5F79erVqKamJiKSJ/vgwUeHHh/88MWfcXS84N+KCXVjlQs+qqurMxsbG+bx48dmZGTEYPrkyZNzkM+cOZML6uvrd167di2SGBHJk33w4KNDjw9++OKv48ALbTH2h6+b6uXy8vKnJSUl64uLi6ajo8PIHWPwvRhegCjHdCeQvZGQE5IjMYdInuyDBx8denzwwxd/xtHxfLjpBYXaWSzPiZ/Gx8eN7APDesseYGqXHzx48Ho2xcBHhx4f/PDFn3EYz86M+xqIdPr6Ll26ZNbX141sTjMxMcHMLN+5c6cxm2Lgo0OPD3744q/jRDqu+yrQzhLB22EY/jI2NmbkRJiHDx9isNLW1nb71q1b9YgyNXjw0aHHBz988WccW4zWkLZnIj3/lYL2vXv3/lpRUWHkYUYx38rR7bAFZS4EPjr0+OCHL/46TpS6Z9y3tW7ieDzecvHixefDw8OmsrKSdf5NrrccOXLkQ7cgtxB48NGhxwc/fO3m3fztHRcEinxBred5azdv3jT9/f3m/v37Zmpq6k+5/okYvmULcguhHx58dOjxwQ9f9Q8U8c2KoQVacYXgAzF+Lu8ec/DgQXPjxg3D2u/atWtF+tgPzRSwtLT0jEjOdfrhwUeHHh/88FX/IG1ct6CUv4V5gmrBx3I81xKJxB9RFJn8/HyeFYbNeOXKlRUt4A0iOdfphwcfHXp88MNX/f3NC3H/XEeCAkGd4B3Bp3Jkf29tbTWnTp0y8pQ109PTZnZ21jQ3N68RyblOPzz46NDjo36R8yd+i18Iob7uSwVN8oL7ubS01MgpMcQgCAyPd15+RPLUfvjo0KtPmM2XQSwl+kAN8vTF9q6s/XeCVd/3V2Xw1TAMlwU/Esm5Tj88+OhUH1rPrD7o7LeNxkCPY5XeaavgPUUby0AkB/TDg49O9dYP/6yb+9GVELwiKNJYIigmJ5Kn9Secj8JtNfcLEgR26Yhbyl2fbTcr9pzjb3N7Et1j61mf/6k539FuEXGnL8si/gEY8SzOXUsBvQAAAABJRU5ErkJggg==",
  237. ubadgeT:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAfCAQAAADHaLwEAAAErklEQVQYGQXAD4yWdR0A8M/39zzv8R4cB4fADmUorjRUmULKNDetVMtcTWdYbra0aJZrjmVZrY1yW26LcmuMZCZrJUbaLEfGRjUczjnHTUXaIADjPzAABLw74O55vg4ACIQQAiEAABAAAAAANSohBIAQAIoCKCAUgAKg0qq1QoVQBAgUFC231mpFqwgpAAqARqCgVdQCIVC0CBW3UVCrhAoFCEARWpWCIpyTAgFaVGgVtdBKKYwJoaUAWnQQ+h968VNfBgAApPa6iz//mn5FkToKgoIQKlCbMOvrd96775aVc7inHtr92+a55vlmRf4uNxy+oY+Vc07fuOhzd680RVFLrZDUSAW1Srlk7lUPzjAys7efPxy9ZeCP0rhhPZbM+MuRBTN6+5vLue32zfOOveeCGuOIgiJUMPHy29994MY19B6btePUwoFXdc1wjX4D1rqn++bho7P39f3H3CkPvj64WEcIIShCIoVJY7fdG9PLpaL3s6tvmHq/p/zckJPW+4Ufme/OvgWr9V3veHlEfZepoJKylopQK5OnVtdcMNWgLAe6w/6kccI9jjvrFdN0nPPuRD2TdHVcmD0w+9QZjUaIgkSr67uPLdllu2foG467DHlUOGXEB3q87IsuMTlMfMGQNzy6aOA3eoVQyQJCMe2ji1sLbfItej5w0gW11Dprkta4fpUPQ/chZ7SutH9Av0qtFQWEEPnOG252g9k4oeO0Lnaba4LWMWmm0VR6LPAVmzVb9SlaKYuQWq3TVwzuP7xZWkXbNe6499CrOKG1117TzQ2xzg7HbBydc9wZqQhRpFDQyS89PWuF5/SI6ixG3GyK804aMMsFl5niQirTrbfU97tXLBZohCxIjTRx58aXrDDdd6S+5oQXHbDEJHuEJ822xVsuauV95nrS8diwTZ8WjSxCgPPe/ueRjb5qF+XA818b2+igtThqj997xZD7muVb1f9zla5fj3nZKakIKiFVinPONWeGrt7et92RfX17tu5/ev4yZ1xmkU3escvjtu38wq5/j47O3+m1kcNrm/X2GTMmKRIpNY6W/df3PqH1yUvf2la2/PKlpec7xpzWY6Inxg7um/bmj/81eOWwb7uzro/Y7ZxGKNQgpcZou+sfhwb7H3Nw5vxn7/9VvDpt+IGHX7fQVo84dOTvK0fHf7rsE7P3KFaPj7ytQUoJUNDR41o/KKevznm5JJfnzPc93rPqm9nJZdlZa2nPxp/kUzkvP511Y5Wb9KoVRQGgqFUmu8my2Nb34YTsz0tzTS5+3/Jn01+v2/S3/ExOyQk5eaTssdLdpuvqCAQBQmgVHb2ucYVr7/jG3Gk71L6n62eHll48aI0tFhoe+/MLthmy3UljQoskAFBJtSkmWTD5mYvmzHLYQYvc6r826JrnmBOjJ39ovVNGjUutFJIAhBQqFBMMuqM8rFuEaERoa23ThmaddXb4SCuFRkgIANRaIVWmucRlpusgjOhRS+mE/9tr2HnjQiskEACAUGmFXv1S6Gg0KjQ6RjTOSq1UpAQIABAIiVoqWiEVoVU0WiGMCyQABACAkCqNokiNIgVSoBUILQBQAQAAAAgpERIhkQAAHwPlu9kMCvbXiAAAAABJRU5ErkJggg=="
  238. };
  239.  
  240. // matches url with profile page and checks if profile has any battles as script is useless without
  241. if (wg_accounts !== null) {
  242. var tableBattles = filter(document.getElementsByClassName('t-personal-data_value')[2].innerHTML, 1),
  243. profileName_class = document.getElementsByClassName('b-profile-name')[0];
  244. if (tableBattles > 0) {
  245. // getting userinfo
  246. var nick = document.getElementsByTagName('h1')[0].innerHTML,
  247. userid = document.location.href.match(/\/(\d+)/)[1];
  248.  
  249. // style contents
  250. style.innerHTML
  251. // global rules
  252. = "h3, h4 {margin: 0 0 15px; text-align: center;}"
  253. + "h5 {margin: 5px 0 8px;}"
  254. + "p, .reg-KR p {margin: 0;}"
  255. + ".reg-KR p {line-height: 133%;}"
  256. + "table {width: 100%;}"
  257. // background image fix
  258. + "#js-background-parallax-translate3d-wrapper {z-index: -1;}"
  259. // container wrapper
  260. + ".l-container-wrapper {background: none;}"
  261. // content width
  262. + ".l-content {margin: 0 22px 25px; width: 955px}"
  263. // background rules
  264. + ".b-background {height: 315px; left: -23px; opacity: 0.5; position: absolute; top: -25px; width: 1000px; z-index: -1;}"
  265. + ".b-background img {width: 100%;}"
  266. // profile wrapper rules
  267. + ".b-profile-wrpr {margin: 10px 0 0; min-height: 138px;}"
  268. + ".reg-RUS .b-profile-wrpr {min-height: 135px;}"
  269. + ".b-profile-wrpr td {font-weight: bold; line-height: 133%;}"
  270. + ".b-profile-wrpr .t-profile-table a, .b-profile-wrpr #js-profile-clan-table a {background: url("+css.c01+") no-repeat 0 2px; color: #CACBCC; padding: 0 0 0 10px;}"
  271. + ".b-profile-wrpr .t-profile-table a:hover, .b-profile-wrpr #js-profile-clan-table a:hover {background: url("+css.c01+") no-repeat -244px 2px; color: #FFFFFF;}"
  272. + ".b-profile-header {position: absolute; right: 0; top: 0;}"
  273. + ".b-scriptlink {"+css.input+" border-left: 1px solid #000000; border-right: 1px solid #000000; display: inline-block; text-align: center; padding: 7px 0 6px; width: 199px;}"
  274. + ".b-ratingsClip {display: inline-block;}"
  275. + ".b-ratingsButton {"+css.input+" display: block; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding: 7px 7px 6px;}"
  276. + ".b-ratingsButton:hover {background-color: #282828; cursor: pointer;}"
  277. + ".b-profile-error {background: rgba(204,0,0,0.15); border: 1px solid #510000; box-shadow: 0 0 3px #733232; color: #CACBCC; display: none; margin: 0 3px -6px 0; overflow: hidden; padding: 3px; text-align: center; text-overflow: ellipsis; white-space: nowrap; width: 220px;}"
  278. + ".b-profile-error:hover {width: auto;}"
  279. // profile player rules
  280. + ".b-profile-name {float: none; margin: 0; max-width: 370px;}"
  281. + ".b-profile-name table {font-family: Arial;}"
  282. + ".b-profile-name td:first-child {white-space: nowrap;}"
  283. + ".reg-RUS .b-profile-name td:first-child {width: 120px;}"
  284. + ".reg-KR .b-profile-name td:first-child {width: 80px;}"
  285. + ".b-header-h1__profile {margin: 0; padding: 0 0 6px;}"
  286. + "body.reg-KR h1, body.reg-KR .b-header-h1 {line-height: 1;}"
  287. // profile clan rules
  288. + "#js-clan-block-container {left: 385px; position: absolute; top: 20px;}"
  289. + ".b-profile-clan {float: none; max-width: 360px; margin: 0;}"
  290. + ".b-profile-noclan {float: none; margin: 27px 0 0;}"
  291. + ".b-photo {min-height: 54px;}"
  292. + "a.b-link-clan, .b-link-clan a {display: inline;}"
  293. + ".b-statistic {margin: 0 0 3px;}"
  294. + ".b-gray-link__arrow {font-size: 12px;}"
  295. + "#js-clan-block-container table {font-family: Arial; width: 360px;}"
  296. + "#js-clan-block-container td:first-child {white-space: nowrap;}"
  297. + ".reg-RUS #js-clan-block-container td:first-child {width: 115px;}"
  298. + ".reg-KR #js-clan-block-container td:first-child {width: 70px;}"
  299. // profile clan history rules
  300. + ".t-clanHistory-wrpr {width: auto;}"
  301. + ".t-clanHistory-wrpr .clan-name {padding: 0;}"
  302. + ".t-clanHistory-wrpr td {padding: 0 2px;}"
  303. + ".t-clanHistory-wrpr a {color: #CACBCC;}"
  304. + ".t-clanHistory-wrpr a:hover {color: #FFFFFF;}"
  305. + ".t-clanHistory-wrpr a.clan-join {color: #F9D088;}"
  306. // profile menu rules
  307. + ".b-profile-menu {position: absolute; right: 200px; top: 0;}"
  308. + ".b-profile-menu .b-context-menu {width: 149px;}"
  309. + ".b-profile-menu .b-context-menu-list__bottomindent {margin-bottom: 30px;}"
  310. // sidebar rules
  311. + ".l-sidebar {margin: 0; position: absolute; right: 0; top: 25px; width: auto;}"
  312. + ".b-context-menu {background: url("+css.uMenu+") repeat-y; border-right: 1px solid black; margin: 0; width: 200px;}"
  313. + ".b-context-menu_wrapper {padding: 10px 0 5px;}"
  314. + ".b-context-menu-list {line-height: 16px;}"
  315. + ".b-sidebar-widget__comparison {background-color: #000000; border: 1px solid #000000; margin: 0; position: absolute; left: 223px; top: -26px; width: 203px;}"
  316. + ".b-sidebar-widget_inner__comparison {display: table; margin: 5px auto; padding: 0;}"
  317. + ".js-recruitsation-block {position: absolute; right: -227px; top: 0px; width: 205px;}"
  318. + ".b-sidebar-widget {margin: 0;}"
  319. + ".b-sidebar-widget_title {margin: 0 0 10px;}"
  320. + ".b-sidebar-widget_text {margin: 0 0 5px;}"
  321. + ".b-box-shadow.js-recruitstation-recommended-widget {margin: 0; width: 242px;}"
  322. // userblock wrapper rules
  323. + ".b-userblock-wrpr {margin: 0 0 -2px;}"
  324. + ".b-user-block {"+css.box+" margin: 0; width: 750px;}"
  325. + ".b-head-block {background: url("+css.c03+") repeat-x; border: 1px solid #000000;}"
  326. + ".b-user-block_info {padding: 3px 25px;}" // temp, default: 5px 25px
  327. + ".b-user-block .b-head-block {display: none;}" // temporarily hidden
  328. + ".b-personal-link {background-position: 0 12px; clear: left; padding: 10px 0 0 50px;}"
  329. + "#js-glory-points-block {margin: 2px 0;}"
  330. + ".b-campaign-rating {margin: 0; padding: 10px 0 0; width: 750px;}"
  331. + ".b-campaign-rating_header {display: inline-block; padding: 0 30px; position: relative; top: -5px;}"
  332. + ".b-leadership-header_date {float: none; margin: 0; text-align: center;}"
  333. + ".b-campaign-rating_header .b-header-h3__first {margin: 0;}"
  334. + ".b-campaign-rating_info {display: inline-block; float: none; padding-left: 30px;}"
  335. + ".b-campaign-rating_info__left-divider {background-position: 15px 0;}"
  336. + ".b-campaign-rating_delta {padding: 0; position: absolute; top: 0;}"
  337. + ".b-campaign-rating_links {margin: 10px 65px 0 0;}"
  338. + ".b-campaign-rating_message {padding: 0 0 15px; text-align: center;}"
  339. + ".b-user-block__sparks {background: url('"+css.dbox+"/sparks.png') no-repeat 50% 0; width: 100%;}"
  340. + ".b-personal-data {min-height: 180px; padding: 0 20px 15px;}"
  341. + ".t-personal-data_ico {padding: 82px 5px 0;}"
  342. + ".t-personal-data_ico__hitrate {background: url("+css.uIconHr+") no-repeat 50% 50px;}"
  343. + ".t-personal-data_ico__tier {background: url("+css.uIconAt+") no-repeat 50% 50px;}"
  344. + ".t-personal-data_value {font-size: 28px; line-height: 100%;}"
  345. + ".t-personal-data_value.t-personal-data_value__pr {font-size: 36px;}"
  346. + ".b-speedometer-body {padding: 20px 50px;}"
  347. + ".b-speedometer {width: 33.3333%}"
  348. // ratings wrapper rules
  349. + ".b-ratings-wrpr {margin: 0 0 40px;}" // see multiple rules
  350. + ".b-ratings-info {text-align: center;}"
  351. + ".t-ratings-info {table-layout: fixed;}"
  352. + ".t-ratings-info th {font-size: 13px; font-weight: bold; line-height: 133%;}"
  353. + ".t-ratings-info td {font-family: 'WarHeliosCondCBold','Arial Narrow',arial,sans-serif; font-size: 36px; line-height: 133%}"
  354. + ".t-ratings-info .rating-url_nm {background-image: url("+css.uNmLogo+"); background-position: left center; background-repeat: no-repeat; padding: 0 0 0 20px;}"
  355. + ".b-ratings-info, .ratings-table {background: inherit; padding: 10px 25px;}"
  356. + ".t-table-ratings {width: 100%;}"
  357. + ".t-table-ratings td {line-height: 130%; padding: 9px 12px 2px 0; vertical-align: bottom;}"
  358. + ".t-table-ratings .td-value {padding-right: 0; text-align: right; white-space: nowrap;}"
  359. + ".t-table-ratings .td-number {color: #BABCBF; font-weight: bold; padding-right: 0; text-align: right; width: 70px;}"
  360. + ".t-table-ratings .td-center {line-height: 16px; padding: 9px 0 2px; text-align: center;}"
  361. + ".t-table-ratings .td-rating-meter {background: url("+css.c05+") no-repeat 50% 100%; padding: 0;}"
  362. + ".t-table-ratings .rating-meter {background: url("+css.uRatmet+") no-repeat; border: 1px solid #252527; border-radius: 3px; height: 3px; margin: 0 7px;}"
  363. + ".t-table-ratings .rating-meter-dail_line {background: url("+css.uRatmet+") no-repeat; box-shadow: 0 0 10px 1px rgba(221, 84, 12, 0.15), 0 0 3px 1px rgba(133, 18, 11, 0.25); height: 3px;}"
  364. + ".t-table-ratings .rating-meter-marker {background: url("+css.uRatmetMark+") no-repeat; float: right; height: 13px; margin: -5px -2px 0 0; width: 5px;}"
  365. + ".t-table-ratings .rating-meter_wn8 {background-position: 0 0;}"
  366. + ".t-table-ratings .rating-meter_wn8 .rating-meter-dail_line {background-position: 0 -3px;}"
  367. + ".t-table-ratings .rating-meter_wn7 {background-position: 0 -6px;}"
  368. + ".t-table-ratings .rating-meter_wn7 .rating-meter-dail_line {background-position: 0 -9px;}"
  369. + ".t-table-ratings .rating-meter_eff {background-position: 0 -12px;}"
  370. + ".t-table-ratings .rating-meter_eff .rating-meter-dail_line {background-position: 0 -15px;}"
  371. + ".wnelink {background: inherit; padding: 5px 25px 5px 0; text-align: right;}"
  372. + ".wnelink_info {background-image: url("+css.c06+"), url("+css.c04+"); background-position: 4px 0px, right 0; padding: 0 9px 0 20px;}"
  373. + ".wnelink_info:hover {background-position: 4px -17px, right -22px;}"
  374. // statistics wrapper rules
  375. + ".b-statistics-wrpr {margin: 0 0 30px; overflow: auto;}"
  376. + ".b-statistics-wrpr .t-dotted td {line-height: 23px; padding: 0;}"
  377. + ".b-statistics-wrpr .t-dotted tr:hover td {color: #79797A;}"
  378. + ".b-statistics-wrpr .t-dotted td.t-dotted_class-ico {line-height: 13px;}"
  379. + ".b-statistics-wrpr .t-dotted td.t-dotted_class-ico img {margin: 2px 0 -1px;}"
  380. + ".b-result {margin: 0 10px; width: 315px;}"
  381. + ".b-result .t-dotted__fixed {table-layout: auto;}"
  382. + ".b-result-classes {margin: 0 10px; width: 265px;}"
  383. + ".b-result-classes span {color: #606061; display: inline-block; width: 48px;}"
  384. + ".t-dotted td {background: url("+css.c05+") no-repeat 50% 100%;}"
  385. // cake diagram rules
  386. + ".b-diagrams-sector {margin: 0 0 25px;}"
  387. + ".b-diagrams-sector h3 {text-align: center;}"
  388. + ".b-diagram-block {float: left; margin: 0 9px; width: 300px;}"
  389. + ".b-diagram-wrpr {float: none; margin: 0 auto;}"
  390. + ".t-dotted.t-dotted__diagram {margin-top: 0px; width: 100%;}"
  391. + ".t-dotted_diagram-percent {display: inline-block; width: 40px;}"
  392. + ".b-diagram-total {margin: 25px 0 0;}"
  393. + ".b-diagram-tiers .js-results {display: inline-block; margin: 0 0 0 30px; text-align: right; width: 14px;}"
  394. + ".reg-RUS .b-diagram-tiers .js-results {margin: 0 0 0 15px;}"
  395. + ".b-diagram-tiers .t-dotted_diagram-percent {margin: 0 0 0 3px; width: 52px;}"
  396. + ".b-diagram-ico_tier {background: url("+css.uTiers+") no-repeat; padding-left: 30px;}"
  397. + ".b-diagram-ico_tier-1 {background-position: 4px 1px;}"
  398. + ".b-diagram-ico_tier-2 {background-position: 4px -14px;}"
  399. + ".b-diagram-ico_tier-3 {background-position: 4px -29px;}"
  400. + ".b-diagram-ico_tier-4 {background-position: 4px -45px;}"
  401. + ".b-diagram-ico_tier-5 {background-position: 4px -59px;}"
  402. + ".b-diagram-ico_tier-6 {background-position: 4px -74px;}"
  403. + ".b-diagram-ico_tier-7 {background-position: 4px -89px;}"
  404. + ".b-diagram-ico_tier-8 {background-position: 4px -104px;}"
  405. + ".b-diagram-ico_tier-9 {background-position: 4px -120px;}"
  406. + ".b-diagram-ico_tier-10 {background-position: 4px -134px;}"
  407. + ".t-dotted__diagram tr td.t-dotted_diagram-last {width: 0;}"
  408. // achievement wrapper rules
  409. + ".b-achievements-wrpr {}" // see multiple rules
  410. + ".js-short-achievements {margin: 15px 0 30px;}"
  411. + ".js-full-achievements {margin: 0 37px 30px;}"
  412. + ".reg-KR .js-full-achievements {margin: 0 34px 30px;}"
  413. + ".b-achivements {display: table; margin: 0 auto; padding: 0 0 20px;}"
  414. + ".b-achivements-head {margin-top: 15px;}"
  415. + ".b-achivements_item {display: inline-table; float: inherit; margin: 5px 5px 0;}"
  416. + ".js-full-achievements #js-achivement-medalTamadaYoshio {margin-left: 45px;}"
  417. + ".js-full-achievements #js-achivement-histBattle2_battlefield {margin-left: 245px;}"
  418. + ".js-full-achievements #js-achivement-tacticalBreakthrough {margin-left: 165px;}"
  419. + ".js-full-achievements #js-achivement-rangerMedal {margin-left: 165px;}"
  420. + ".js-full-achievements #js-achivement-infiltratorMedal {margin-right: 95px;}"
  421. + ".js-full-achievements #js-achivement-medalKay {margin-left: 125px;}"
  422. + ".js-full-achievements #js-achivement-forTacticalOperations {margin-left: 165px;}"
  423. + ".js-full-achievements #js-achivement-noMansLand {margin-left: 85px;}"
  424. + ".js-full-achievements #js-achivement-ironMan {margin-left: 325px;}"
  425. // global rating rules
  426. + ".b-composite-heading {margin: 20px 0 15px 400px; width: 553px;}"
  427. + ".b-profile-ratings-date {margin-top: 1px}"
  428. + ".b-leadership-info {display: table; margin: 0 auto;}"
  429. + ".b-profile-link {display: table; margin: 14px auto 0}"
  430. + ".b-msg-important__rating {display: table; margin: 5px auto 0;}"
  431. + ".b-rating-dial__user {display: table; margin: 30px auto 22px;}"
  432. + ".b-orange-arrow__leadership {display: table; margin: 0 auto;}"
  433. + ".b-leadership-rating-text {text-align: center;}"
  434. + ".l-leadership-info-alignment {text-align: center;}"
  435. // vehicle table rules
  436. + ".b-vehicles-wrpr {margin: 20px 0;}"
  437. + ".b-vehicles-header {display: table; margin: 0 auto 15px}"
  438. + ".b-profile-vehicles-tankstat {margin: 0; position: absolute; right: 15px;}"
  439. + ".b-profile-vehicles-tankstat_link {background-image: url("+css.nm_logo+"), url("+css.c04+"); background-position: left center, right 0px; padding: 0 9px 0 20px;}"
  440. + ".b-profile-vehicles-tankstat_link:hover {background-position: left center, right -22px;}"
  441. + ".t-profile__vehicle .t-profile_right {text-align: center;}"
  442. + ".t-profile_dropdown-ico .tablesorter-header-inner {display: inherit;}"
  443. + ".t-profile_tankstype-prem td {border-top: 2px dashed #212123;}"
  444. + ".t-profile_tankstype-prem .b-tankstype-text {color: #FFC363;}"
  445. + ".t-profile_tankstype-prem.t-profile_tankstype__empty .b-tankstype-text {color: rgba(255, 195, 99, 0.3);}"
  446. + ".t-profile .t-profile_tankstype td {height: 50px; padding: 0; vertical-align: middle;}"
  447. + ".b-tankstype-ico {display: table-cell;}"
  448. + ".b-tankstype-ico__lighttank {background-position: 0 -114px;}"
  449. + ".b-tankstype-ico__mediumtank {background-position: 0 -173px;}"
  450. + ".b-tankstype-ico__heavytank {background-position: 0 5px;}"
  451. + ".b-tankstype-ico__at-spg {background-position: 0 -232px;}"
  452. + ".b-tankstype-ico__spg {background-position: 0 -54px;}"
  453. + ".b-tankstype-ico__prem {background-position: 0 -291px;}"
  454. + ".b-tankstype-ico__ten {background: none; color: #BBB7AC; font-size: 17px; font-weight: 100; padding: 0 0 3px; text-align: center;}"
  455. + ".b-tankstype-text {display: table-cell; height: inherit; vertical-align: middle;}"
  456. + ".t-profile .t-profile_tankstype__item td {height: 40px; padding: 0; vertical-align: middle;}"
  457. + ".t-profile .t-profile_tankstype__item:hover td {background: rgba(0, 0, 0, 0.04); border-bottom: 1px solid rgba(255, 255, 255, 0); color: #BABCBF;}"
  458. + ".t-profile .t-profile_tankstype td.t-profile_center div.hidden {display: none;}"
  459. + ".t-profile .t-profile_tankstype td.t-profile_center span {display: inline-block; margin-left: 10px; text-align: left; width: 40px;}"
  460. + ".b-armory-wrapper {height: inherit; margin: 0; padding: 0; width: 160px;}"
  461. + ".b-armory-wrapper .b-armory-level {display: table-cell; font-size: inherit; height: inherit; position: inherit; vertical-align: middle; left: 0; top: 0;}"
  462. + ".b-armory-wrapper img.png {height: 64px; margin: -50px 0 0 24px;}"
  463. + ".b-name-vehicle {color: #BBB7AC; display: table-cell; height: inherit; vertical-align: middle;}"
  464. + ".b-name-vehicle.b-gold-name {color: #FFC363;}"
  465. + ".b-name-vehicle.b-red-name {color: #D00900;}"
  466. + ".t-profile_dropdown-link {display: inherit;}"
  467. + ".js-error-data {text-align: center;}"
  468. + ".b-msg-error {display: table; margin: 0 auto;}"
  469. + ".b-vehicle-detail_txt {margin: 0 auto 4px; text-align: center; width: 768px;}"
  470. + ".b-vehicle-detail_link {display: table; margin: 0 auto;}"
  471. + ".b-vehicle-slider {margin: 23px 64px 17px}"
  472. + ".b-vehicle-slider_inner {width: 741px;}"
  473. + ".b-vehicle-slider_prev {left: -12px;}"
  474. + ".b-vehicle-slider_next {right: -12px;}"
  475. + ".b-vehicle-minitable {margin: 0 43px; width: 350px;}"
  476. + ".b-vehicle-minitable__right {float: left;}"
  477. // profile navigator
  478. + ".b-profile-nav {text-align: center;}"
  479. + ".wrapper-dropdown .b-profile-nav {float: left; padding: 7px 0 0;}"
  480. + ".b-profile-nav a {background: url("+css.c07+") no-repeat; padding: 0 10px;}"
  481. + ".b-profile-nav a#top {background-position: 100% 0px;}"
  482. + ".b-profile-nav a#top:hover {background-position: 100% -36px;}"
  483. + ".b-profile-nav a#bottom {background-position: 100% -18px;}"
  484. + ".b-profile-nav a#bottom:hover {background-position: 100% -54px;}"
  485. + ".b-profile-nav span {border-bottom: 1px dashed;}"
  486. // multiple usage rules
  487. + ".b-ratings-wrpr, .b-achievements-wrpr {background: rgba(0, 0, 0, 0.09); "+css.box+" clear: both; width: 100%;}"
  488. + ".b-orange-arrow__heading, .b-profile-ratings_link {margin: 4px 0 0;}"
  489. + ".b-vertical-arrow {display: table; margin: 2px auto 0; padding: 2px 10px 0;}"
  490. + "";
  491. // end style
  492.  
  493. // formula calculations and variables
  494. // expected tank values v16 with premium tanks up to 0.9.3
  495. var statArr = {
  496. "ms-1": { title:"MS-1", id:3329, tier:1, nation:"RU", type:"LT", frag:1.97, dmg:255.42, spot:1.46, def:1.55, win:59.21 },
  497. "bt-2": { title:"BT-2", id:1025, tier:2, nation:"RU", type:"LT", frag:1.60, dmg:272.05, spot:2.05, def:1.32, win:58.88 },
  498. "t-26": { title:"T-26", id:4609, tier:2, nation:"RU", type:"LT", frag:1.67, dmg:282.63, spot:1.40, def:1.66, win:59.81 },
  499. "t-60": { title:"T-60", id:15361, tier:2, nation:"RU", type:"LT", frag:1.60, dmg:268.38, spot:1.66, def:1.71, win:60.88 },
  500. "tetrarch_ll": { title:"Tetrarch", id:54529, tier:2, nation:"RU", type:"LT", frag:1.69, dmg:288.85, spot:1.53, def:1.53, win:59.07, prem:1 },
  501. "bt-7": { title:"BT-7", id:769, tier:3, nation:"RU", type:"LT", frag:0.88, dmg:221.54, spot:2.04, def:1.17, win:54.81 },
  502. "t-46": { title:"T-46", id:3073, tier:3, nation:"RU", type:"LT", frag:1.12, dmg:270.46, spot:1.44, def:1.03, win:56.41 },
  503. "t-70": { title:"T-70", id:15105, tier:3, nation:"RU", type:"LT", frag:1.46, dmg:345.72, spot:1.50, def:1.71, win:58.73 },
  504. "bt-sv": { title:"BT-SV", id:52225, tier:3, nation:"RU", type:"LT", frag:1.73, dmg:358.45, spot:2.41, def:1.71, win:61.02, prem:1 },
  505. "m3_stuart_ll": { title:"M3 Light", id:52737, tier:3, nation:"RU", type:"LT", frag:1.02, dmg:230.34, spot:1.73, def:1.12, win:53.38, prem:1 },
  506. "t-127": { title:"T-127", id:53505, tier:3, nation:"RU", type:"LT", frag:1.80, dmg:375.49, spot:1.79, def:1.81, win:60.00, prem:1 },
  507. "ltp": { title:"LTP", id:56577, tier:3, nation:"RU", type:"LT", frag:1.45, dmg:311.86, spot:1.51, def:1.60, win:57.94, prem:1 },
  508. "a-20": { title:"A-20", id:2049, tier:4, nation:"RU", type:"LT", frag:0.71, dmg:258.38, spot:2.29, def:0.75, win:53.76 },
  509. "t-50": { title:"T-50", id:9473, tier:4, nation:"RU", type:"LT", frag:0.76, dmg:280.68, spot:2.93, def:0.71, win:55.84 },
  510. "t80": { title:"T-80", id:15873, tier:4, nation:"RU", type:"LT", frag:1.14, dmg:387.64, spot:1.76, def:1.44, win:58.81 },
  511. "valentine_ll": { title:"Valentine II", id:52481, tier:4, nation:"RU", type:"LT", frag:1.46, dmg:409.05, spot:1.55, def:1.69, win:57.35, prem:1 },
  512. "mt25": { title:"MT-25", id:16641, tier:6, nation:"RU", type:"LT", frag:0.52, dmg:358.30, spot:3.75, def:0.59, win:53.76 },
  513. "r107_ltb": { title:"LTTB", id:18433, tier:7, nation:"RU", type:"LT", frag:0.60, dmg:670.70, spot:2.12, def:0.67, win:52.21 },
  514. "r109_t54s": { title:"T-54 lightweight", id:18177, tier:8, nation:"RU", type:"LT", frag:0.57, dmg:744.28, spot:2.81, def:0.60, win:51.00 },
  515. "t-28": { title:"T-28", id:1537, tier:4, nation:"RU", type:"MT", frag:1.11, dmg:415.39, spot:1.27, def:0.91, win:56.52 },
  516. "a-32": { title:"A-32", id:52993, tier:4, nation:"RU", type:"MT", frag:0.85, dmg:279.07, spot:2.51, def:0.56, win:54.00, prem:1 },
  517. "t-34": { title:"T-34", id:1, tier:5, nation:"RU", type:"MT", frag:1.11, dmg:517.37, spot:1.46, def:1.08, win:55.37 },
  518. "matilda_ii_ll": { title:"Matilda IV", id:51457, tier:5, nation:"RU", type:"MT", frag:1.37, dmg:578.09, spot:1.20, def:1.45, win:57.88, prem:1 },
  519. "t-34-85": { title:"T-34-85", id:2561, tier:6, nation:"RU", type:"MT", frag:1.02, dmg:734.29, spot:1.45, def:0.97, win:54.86 },
  520. "a43": { title:"A-43", id:12289, tier:6, nation:"RU", type:"MT", frag:1.05, dmg:692.00, spot:2.07, def:1.02, win:54.65 },
  521. "r108_t34_85m": { title:"T-34-85M", id:58113, tier:6, nation:"RU", type:"MT", frag:1.05, dmg:692.00, spot:2.07, def:1.02, win:54.65, prem:1 },
  522. "t-43": { title:"T-43", id:6657, tier:7, nation:"RU", type:"MT", frag:0.94, dmg:877.77, spot:1.58, def:1.02, win:54.16 },
  523. "kv-13": { title:"KV-13", id:8961, tier:7, nation:"RU", type:"MT", frag:0.84, dmg:773.72, spot:1.55, def:0.90, win:53.38 },
  524. "a44": { title:"A-44", id:12545, tier:7, nation:"RU", type:"MT", frag:1.01, dmg:960.36, spot:1.74, def:0.83, win:53.29 },
  525. "t44_122": { title:"T-44-122", id:56833, tier:7, nation:"RU", type:"MT", frag:0.84, dmg:773.72, spot:1.55, def:0.90, win:53.38, prem:1 },
  526. "t44_85": { title:"T-44-85", id:57089, tier:7, nation:"RU", type:"MT", frag:0.84, dmg:773.72, spot:1.55, def:0.90, win:53.38, prem:1 },
  527. "t-44": { title:"T-44", id:4353, tier:8, nation:"RU", type:"MT", frag:0.83, dmg:1023.00, spot:1.68, def:0.88, win:52.80 },
  528. "object416": { title:"Object 416", id:13313, tier:8, nation:"RU", type:"MT", frag:1.03, dmg:1272.06, spot:1.46, def:0.96, win:52.66 },
  529. "t-54": { title:"T-54", id:7937, tier:9, nation:"RU", type:"MT", frag:0.97, dmg:1488.09, spot:1.84, def:0.82, win:51.62 },
  530. "r104_object_430_ii": { title:"Object 430 Version II", id:17665, tier:9, nation:"RU", type:"MT", frag:1.04, dmg:1562.99, spot:1.61, def:0.85, win:53.38 },
  531. "t62a": { title:"T-62A", id:13825, tier:10, nation:"RU", type:"MT", frag:0.92, dmg:1688.72, spot:1.64, def:0.76, win:48.61 },
  532. "object_907": { title:"Object 907", id:15617, tier:10, nation:"RU", type:"MT", frag:1.00, dmg:1811.66, spot:1.74, def:0.85, win:49.66, prem:1 },
  533. "object_140": { title:"Object 140", id:16897, tier:10, nation:"RU", type:"MT", frag:1.00, dmg:1811.66, spot:1.74, def:0.85, win:49.66 },
  534. "object_430": { title:"Object 430", id:17153, tier:10, nation:"RU", type:"MT", frag:0.97, dmg:1764.19, spot:1.72, def:0.82, win:50.91 },
  535. "kv1": { title:"KV-1", id:11777, tier:5, nation:"RU", type:"HT", frag:1.22, dmg:633.84, spot:0.88, def:1.01, win:54.39 },
  536. "kv-1s": { title:"KV-1S", id:18689, tier:5, nation:"RU", type:"HT", frag:1.22, dmg:633.84, spot:0.88, def:1.01, win:54.39 },
  537. "kv-220": { title:"KV-220 Beta-Test", id:51201, tier:5, nation:"RU", type:"HT", frag:1.51, dmg:695.47, spot:1.41, def:1.37, win:60.86, prem:1 },
  538. "churchill_ll": { title:"Churchill III", id:51713, tier:5, nation:"RU", type:"HT", frag:1.28, dmg:610.58, spot:1.20, def:1.31, win:55.13, prem:1 },
  539. "kv-220_action": { title:"KV-220", id:54017, tier:5, nation:"RU", type:"HT", frag:1.51, dmg:695.47, spot:1.41, def:1.37, win:60.86, prem:1 },
  540. "r106_kv85": { title:"KV-85", id:2817, tier:6, nation:"RU", type:"HT", frag:1.19, dmg:913.65, spot:1.15, def:0.77, win:55.16 },
  541. "kv2": { title:"KV-2", id:10497, tier:6, nation:"RU", type:"HT", frag:1.15, dmg:881.17, spot:0.73, def:0.74, win:54.54 },
  542. "t150": { title:"T-150", id:11265, tier:6, nation:"RU", type:"HT", frag:1.04, dmg:806.38, spot:0.91, def:0.80, win:54.16 },
  543. "is": { title:"IS", id:513, tier:7, nation:"RU", type:"HT", frag:1.04, dmg:1077.93, spot:1.08, def:0.77, win:53.37 },
  544. "kv-3": { title:"KV-3", id:5889, tier:7, nation:"RU", type:"HT", frag:1.06, dmg:1123.49, spot:0.89, def:0.77, win:53.89 },
  545. "is-3": { title:"IS-3", id:5377, tier:8, nation:"RU", type:"HT", frag:0.95, dmg:1335.42, spot:1.06, def:0.77, win:51.95 },
  546. "object252": { title:"IS-6", id:9217, tier:8, nation:"RU", type:"HT", frag:1.12, dmg:1432.59, spot:1.19, def:0.84, win:53.58, prem:1 },
  547. "kv4": { title:"KV-4", id:11009, tier:8, nation:"RU", type:"HT", frag:0.84, dmg:1209.84, spot:0.85, def:0.73, win:52.15 },
  548. "kv-5": { title:"KV-5", id:53249, tier:8, nation:"RU", type:"HT", frag:0.99, dmg:1262.53, spot:1.10, def:0.87, win:51.58, prem:1 },
  549. "st_i": { title:"ST-I", id:10753, tier:9, nation:"RU", type:"HT", frag:0.96, dmg:1693.28, spot:0.97, def:0.69, win:52.41 },
  550. "is8": { title:"IS-8", id:11521, tier:9, nation:"RU", type:"HT", frag:0.90, dmg:1544.06, spot:1.14, def:0.68, win:50.02 },
  551. "is-4": { title:"IS-4", id:6145, tier:10, nation:"RU", type:"HT", frag:0.91, dmg:1860.92, spot:1.11, def:0.78, win:48.97 },
  552. "is-7": { title:"IS-7", id:7169, tier:10, nation:"RU", type:"HT", frag:0.86, dmg:1772.47, spot:1.22, def:0.62, win:49.03 },
  553. "at-1": { title:"AT-1", id:5121, tier:2, nation:"RU", type:"TD", frag:1.80, dmg:303.09, spot:0.46, def:1.48, win:58.90 },
  554. "su-76": { title:"SU-76", id:6401, tier:3, nation:"RU", type:"TD", frag:1.62, dmg:403.07, spot:0.98, def:1.57, win:58.05 },
  555. "su76i": { title:"SU-76I", id:54273, tier:3, nation:"RU", type:"TD", frag:1.62, dmg:403.07, spot:0.98, def:1.57, win:58.05, prem:1 },
  556. "gaz-74b": { title:"SU-85B", id:6913, tier:4, nation:"RU", type:"TD", frag:1.56, dmg:576.53, spot:1.14, def:1.46, win:58.63 },
  557. "su-85": { title:"SU-85", id:257, tier:5, nation:"RU", type:"TD", frag:1.20, dmg:597.66, spot:0.56, def:1.20, win:54.45 },
  558. "su_85i": { title:"SU-85I", id:53761, tier:5, nation:"RU", type:"TD", frag:1.51, dmg:682.86, spot:0.90, def:1.65, win:54.64, prem:1 },
  559. "su-100": { title:"SU-100", id:3585, tier:6, nation:"RU", type:"TD", frag:1.25, dmg:880.35, spot:0.82, def:1.14, win:54.74 },
  560. "su100y": { title:"SU-100Y", id:54785, tier:6, nation:"RU", type:"TD", frag:1.28, dmg:919.67, spot:0.61, def:0.89, win:55.30, prem:1 },
  561. "su-152": { title:"SU-152", id:2305, tier:7, nation:"RU", type:"TD", frag:1.10, dmg:1083.92, spot:0.54, def:0.85, win:52.77 },
  562. "su100m1": { title:"SU-100M1", id:10241, tier:7, nation:"RU", type:"TD", frag:1.02, dmg:1026.93, spot:0.86, def:1.15, win:53.05 },
  563. "su122_44": { title:"SU-122-44", id:55297, tier:7, nation:"RU", type:"TD", frag:1.26, dmg:1179.95, spot:0.82, def:0.97, win:54.45, prem:1 },
  564. "isu-152": { title:"ISU-152", id:7425, tier:8, nation:"RU", type:"TD", frag:1.20, dmg:1595.84, spot:0.57, def:0.80, win:51.47 },
  565. "su-101": { title:"SU-101", id:9985, tier:8, nation:"RU", type:"TD", frag:0.98, dmg:1251.74, spot:0.95, def:1.00, win:50.21 },
  566. "object_704": { title:"Object 704", id:8193, tier:9, nation:"RU", type:"TD", frag:1.25, dmg:2067.15, spot:0.70, def:0.83, win:51.49 },
  567. "su122_54": { title:"SU-122-54", id:12033, tier:9, nation:"RU", type:"TD", frag:0.98, dmg:1542.76, spot:0.92, def:0.86, win:49.48 },
  568. "object268": { title:"Object 268", id:13569, tier:10, nation:"RU", type:"TD", frag:1.19, dmg:2327.73, spot:0.85, def:0.77, win:49.09 },
  569. "object263": { title:"Object 263", id:14337, tier:10, nation:"RU", type:"TD", frag:1.14, dmg:2187.70, spot:0.99, def:0.85, win:50.02 },
  570. "su-18": { title:"SU-18", id:3841, tier:2, nation:"RU", type:"SP", frag:1.31, dmg:247.48, spot:0.14, def:1.78, win:53.60 },
  571. "su-26": { title:"SU-26", id:7681, tier:3, nation:"RU", type:"SP", frag:1.60, dmg:598.92, spot:0.13, def:2.10, win:58.09 },
  572. "su-5": { title:"SU-5", id:4865, tier:4, nation:"RU", type:"SP", frag:1.16, dmg:678.29, spot:0.10, def:1.68, win:53.08 },
  573. "su122a": { title:"SU-122A", id:16385, tier:5, nation:"RU", type:"SP", frag:1.03, dmg:580.15, spot:0.09, def:1.31, win:53.22 },
  574. "su-8": { title:"SU-8", id:5633, tier:6, nation:"RU", type:"SP", frag:1.14, dmg:1141.03, spot:0.06, def:1.32, win:52.15 },
  575. "s-51": { title:"S-51", id:1793, tier:7, nation:"RU", type:"SP", frag:0.95, dmg:1322.14, spot:0.05, def:0.82, win:50.10 },
  576. "su14_1": { title:"SU-14-1", id:16129, tier:7, nation:"RU", type:"SP", frag:0.94, dmg:1094.20, spot:0.04, def:0.84, win:52.27 },
  577. "su-14": { title:"SU-14-2", id:4097, tier:8, nation:"RU", type:"SP", frag:1.01, dmg:1432.37, spot:0.02, def:0.72, win:50.37 },
  578. "object_212": { title:"212A", id:8449, tier:9, nation:"RU", type:"SP", frag:1.00, dmg:1664.29, spot:0.03, def:0.68, win:49.34 },
  579. "object_261": { title:"Object 261", id:8705, tier:10, nation:"RU", type:"SP", frag:1.02, dmg:1895.94, spot:0.05, def:0.87, win:48.20 },
  580. "ltraktor": { title:"Leichttraktor", id:3089, tier:1, nation:"DE", type:"LT", frag:1.99, dmg:264.13, spot:2.25, def:1.55, win:59.68 },
  581. "pz35t": { title:"Pz.Kpfw. 35 (t)", id:785, tier:2, nation:"DE", type:"LT", frag:1.68, dmg:282.99, spot:1.94, def:1.65, win:60.05 },
  582. "pzii": { title:"Pz.Kpfw. II", id:2065, tier:2, nation:"DE", type:"LT", frag:1.54, dmg:255.85, spot:2.07, def:1.49, win:58.87 },
  583. "pzi": { title:"Pz.Kpfw. I", id:12817, tier:2, nation:"DE", type:"LT", frag:1.40, dmg:213.51, spot:2.34, def:1.31, win:58.05 },
  584. "h39_captured": { title:"Pz.Kpfw. 38H 735 (f)", id:52497, tier:2, nation:"DE", type:"LT", frag:2.11, dmg:346.36, spot:1.91, def:2.66, win:57.00, prem:1 },
  585. "pz38t": { title:"Pz.Kpfw. 38 (t)", id:3345, tier:3, nation:"DE", type:"LT", frag:1.56, dmg:368.61, spot:1.57, def:1.42, win:60.03 },
  586. "pziii_a": { title:"Pz.Kpfw. III Ausf. A", id:4881, tier:3, nation:"DE", type:"LT", frag:1.20, dmg:275.43, spot:1.86, def:0.94, win:56.81 },
  587. "pzi_ausf_c": { title:"Pz.Kpfw. I Ausf. C", id:12561, tier:3, nation:"DE", type:"LT", frag:1.17, dmg:249.93, spot:3.11, def:1.20, win:57.26 },
  588. "pz_ii_ausfg": { title:"Pz.Kpfw. II Ausf. G", id:13073, tier:3, nation:"DE", type:"LT", frag:1.06, dmg:275.89, spot:1.88, def:1.34, win:58.92 },
  589. "pzii_j": { title:"Pz.Kpfw. II Ausf. J", id:51729, tier:3, nation:"DE", type:"LT", frag:2.05, dmg:390.08, spot:2.02, def:2.21, win:69.25, prem:1 },
  590. "t-15": { title:"T-15", id:54801, tier:3, nation:"DE", type:"LT", frag:1.21, dmg:276.77, spot:3.02, def:1.49, win:59.99, prem:1 },
  591. "pzii_luchs": { title:"Pz.Kpfw. II Luchs", id:6161, tier:4, nation:"DE", type:"LT", frag:0.96, dmg:320.44, spot:2.74, def:1.02, win:57.92 },
  592. "pz38_na": { title:"Pz.Kpfw. 38 (t) n.A.", id:8209, tier:4, nation:"DE", type:"LT", frag:0.76, dmg:276.91, spot:2.26, def:0.80, win:55.35 },
  593. "vk1602": { title:"VK 16.02 Leopard", id:5393, tier:5, nation:"DE", type:"LT", frag:0.63, dmg:344.72, spot:2.77, def:0.74, win:54.48 },
  594. "vk2801": { title:"VK 28.01", id:10001, tier:6, nation:"DE", type:"LT", frag:0.67, dmg:538.18, spot:2.75, def:0.52, win:53.45 },
  595. "auf_panther": { title:"Aufklarungspanzer Panther", id:14353, tier:7, nation:"DE", type:"LT", frag:0.60, dmg:670.70, spot:2.12, def:0.67, win:52.21 },
  596. "g103_ru_251": { title:"Spahpanzer Ru 251", id:18449, tier:8, nation:"DE", type:"LT", frag:0.57, dmg:744.28, spot:2.81, def:0.60, win:51.00 },
  597. "pz_iv_ausfa": { title:"Pz.Kpfw. IV Ausf. A", id:17169, tier:3, nation:"DE", type:"MT", frag:1.53, dmg:335.13, spot:1.33, def:1.02, win:58.83 },
  598. "s35_captured": { title:"Pz.Kpfw. S35 739 (f)", id:51985, tier:3, nation:"DE", type:"MT", frag:1.74, dmg:397.86, spot:1.55, def:1.78, win:61.45, prem:1 },
  599. "g100_gtraktor_krupp": { title:"Grosstraktor - Krupp", id:59665, tier:3, nation:"DE", type:"MT", frag:1.00, dmg:1000.00, spot:1.00, def:1.00, win:50.00, prem:1 },
  600. "pziii_ausfj": { title:"Pz.Kpfw. III", id:4369, tier:4, nation:"DE", type:"MT", frag:1.03, dmg:343.07, spot:1.98, def:0.92, win:56.34 },
  601. "vk2001db": { title:"VK 20.01 (D)", id:13585, tier:4, nation:"DE", type:"MT", frag:1.25, dmg:418.68, spot:1.73, def:1.32, win:58.50 },
  602. "pz_iv_ausfd": { title:"Pz.Kpfw. IV Ausf. D", id:17425, tier:4, nation:"DE", type:"MT", frag:1.14, dmg:434.74, spot:1.34, def:0.96, win:55.39 },
  603. "pziv": { title:"Pz.Kpfw. IV", id:17, tier:5, nation:"DE", type:"MT", frag:0.91, dmg:430.43, spot:1.60, def:0.85, win:53.00 },
  604. "pziii_iv": { title:"Pz.Kpfw. III/IV", id:6417, tier:5, nation:"DE", type:"MT", frag:0.91, dmg:430.43, spot:1.60, def:0.85, win:53.00 },
  605. "pz_iv_ausfh": { title:"Pz.Kpfw. IV Ausf. H", id:18193, tier:5, nation:"DE", type:"MT", frag:1.39, dmg:643.29, spot:1.45, def:0.98, win:57.15 },
  606. "t-25": { title:"T-25", id:54545, tier:5, nation:"DE", type:"MT", frag:1.17, dmg:574.72, spot:1.59, def:1.21, win:55.97, prem:1 },
  607. "pziv_hydro": { title:"Pz.Kpfw. IV hydrostat.", id:55057, tier:5, nation:"DE", type:"MT", frag:1.35, dmg:621.71, spot:1.28, def:1.54, win:54.27, prem:1 },
  608. "vk3001p": { title:"VK 30.01 (P)", id:7185, tier:6, nation:"DE", type:"MT", frag:0.93, dmg:674.87, spot:1.29, def:0.83, win:52.70 },
  609. "vk3002db_v1": { title:"VK 30.01 (D)", id:14097, tier:6, nation:"DE", type:"MT", frag:1.06, dmg:741.79, spot:1.69, def:1.09, win:54.56 },
  610. "vk3002m": { title:"VK 30.02 (M)", id:15889, tier:6, nation:"DE", type:"MT", frag:1.01, dmg:745.57, spot:1.43, def:1.04, win:52.19 },
  611. "pzv_pziv": { title:"Pz.Kpfw. V/IV", id:51473, tier:6, nation:"DE", type:"MT", frag:0.65, dmg:438.16, spot:1.64, def:0.73, win:49.65, prem:1 },
  612. "pzv_pziv_ausf_alfa": { title:"Pz.Kpfw. V/IV Alpha", id:54033, tier:6, nation:"DE", type:"MT", frag:0.65, dmg:438.16, spot:1.64, def:0.73, win:49.65, prem:1 },
  613. "pziv_schmalturm": { title:"Pz.Kpfw. IV Schmalturm", id:57361, tier:6, nation:"DE", type:"MT", frag:1.00, dmg:747.55, spot:1.09, def:1.29, win:52.30, prem:1 },
  614. "pzv": { title:"Panther", id:1297, tier:7, nation:"DE", type:"MT", frag:0.87, dmg:882.81, spot:1.21, def:1.19, win:52.57 },
  615. "vk3002db": { title:"VK 30.02 (D)", id:4113, tier:7, nation:"DE", type:"MT", frag:0.93, dmg:854.99, spot:1.59, def:1.00, win:52.21 },
  616. "panther_m10": { title:"Panther/M10", id:57617, tier:7, nation:"DE", type:"MT", frag:0.94, dmg:872.46, spot:1.27, def:1.23, win:52.23, prem:1 },
  617. "panther_ii": { title:"Panther II", id:8465, tier:8, nation:"DE", type:"MT", frag:0.82, dmg:1077.16, spot:1.36, def:0.92, win:51.99 },
  618. "indien_panzer": { title:"Indien-Panzer", id:13841, tier:8, nation:"DE", type:"MT", frag:0.86, dmg:1164.14, spot:1.23, def:1.03, win:50.29 },
  619. "e-50": { title:"E 50", id:10257, tier:9, nation:"DE", type:"MT", frag:0.89, dmg:1474.01, spot:1.47, def:0.68, win:49.78 },
  620. "pro_ag_a": { title:"Leopard Prototyp A", id:14865, tier:9, nation:"DE", type:"MT", frag:0.86, dmg:1453.44, spot:1.43, def:0.90, win:48.76 },
  621. "e50_ausf_m": { title:"E 50 Ausf. M", id:12305, tier:10, nation:"DE", type:"MT", frag:0.91, dmg:1798.23, spot:1.46, def:0.70, win:48.13 },
  622. "leopard1": { title:"Leopard 1", id:14609, tier:10, nation:"DE", type:"MT", frag:0.95, dmg:1814.00, spot:1.70, def:0.91, win:47.76 },
  623. "dw_ii": { title:"Durchbruchswagen 2", id:13329, tier:4, nation:"DE", type:"HT", frag:1.14, dmg:401.32, spot:0.99, def:1.21, win:53.88 },
  624. "b-1bis_captured": { title:"Pz.Kpfw. B2 740 (f)", id:52241, tier:4, nation:"DE", type:"HT", frag:1.82, dmg:522.40, spot:1.68, def:1.79, win:60.95, prem:1 },
  625. "vk3001h": { title:"VK 30.01 (H)", id:2577, tier:5, nation:"DE", type:"HT", frag:1.07, dmg:670.91, spot:1.30, def:1.11, win:53.76 },
  626. "vk3601h": { title:"VK 36.01 (H)", id:2321, tier:6, nation:"DE", type:"HT", frag:1.14, dmg:836.16, spot:1.29, def:1.13, win:55.06 },
  627. "pzvi": { title:"Tiger I", id:529, tier:7, nation:"DE", type:"HT", frag:0.98, dmg:1087.54, spot:0.99, def:0.99, win:52.53 },
  628. "pzvi_tiger_p": { title:"Tiger (P)", id:10769, tier:7, nation:"DE", type:"HT", frag:0.97, dmg:1097.37, spot:0.99, def:1.04, win:53.30 },
  629. "pzvib_tiger_ii": { title:"Tiger II", id:5137, tier:8, nation:"DE", type:"HT", frag:0.87, dmg:1250.48, spot:1.01, def:0.84, win:50.60 },
  630. "vk4502a": { title:"VK 45.02 (P) Ausf. A", id:10513, tier:8, nation:"DE", type:"HT", frag:0.89, dmg:1231.97, spot:1.26, def:0.84, win:50.89 },
  631. "lowe": { title:"Lowe", id:54289, tier:8, nation:"DE", type:"HT", frag:0.83, dmg:1236.31, spot:0.87, def:0.87, win:49.19, prem:1 },
  632. "vk4502p": { title:"VK 45.02 (P) Ausf. B", id:7441, tier:9, nation:"DE", type:"HT", frag:0.87, dmg:1510.57, spot:0.94, def:0.65, win:49.42 },
  633. "e-75": { title:"E 75", id:9745, tier:9, nation:"DE", type:"HT", frag:0.93, dmg:1607.31, spot:1.08, def:0.70, win:50.64 },
  634. "maus": { title:"Maus", id:6929, tier:10, nation:"DE", type:"HT", frag:0.84, dmg:1762.94, spot:0.93, def:0.71, win:49.31 },
  635. "e-100": { title:"E 100", id:9489, tier:10, nation:"DE", type:"HT", frag:0.94, dmg:1950.62, spot:1.03, def:0.53, win:49.56 },
  636. "vk7201": { title:"VK 72.01 (K)", id:58641, tier:10, nation:"DE", type:"HT", frag:0.97, dmg:2002.65, spot:1.13, def:0.49, win:49.11, prem:1 },
  637. "panzerjager_i": { title:"Panzerjager I", id:3601, tier:2, nation:"DE", type:"TD", frag:2.02, dmg:330.63, spot:1.16, def:1.64, win:59.67 },
  638. "g20_marder_ii": { title:"Marder II", id:6673, tier:3, nation:"DE", type:"TD", frag:1.46, dmg:408.98, spot:1.08, def:1.46, win:58.56 },
  639. "hetzer": { title:"Hetzer", id:1809, tier:4, nation:"DE", type:"TD", frag:1.53, dmg:489.95, spot:0.62, def:1.15, win:56.84 },
  640. "marder_iii": { title:"Marder 38T", id:11281, tier:4, nation:"DE", type:"TD", frag:1.51, dmg:570.94, spot:1.02, def:1.59, win:57.61 },
  641. "g101_stug_iii": { title:"StuG III Ausf. B", id:17937, tier:4, nation:"DE", type:"TD", frag:1.47, dmg:494.21, spot:0.83, def:1.13, win:56.80 },
  642. "stug_40_ausfg": { title:"StuG III Ausf. G", id:1041, tier:5, nation:"DE", type:"TD", frag:1.20, dmg:602.22, spot:0.75, def:1.31, win:53.70 },
  643. "pz_sfl_ivc": { title:"Pz.Sfl. IVc", id:16145, tier:5, nation:"DE", type:"TD", frag:1.24, dmg:654.41, spot:0.81, def:1.15, win:53.07 },
  644. "jagdpziv": { title:"Jagdpanzer IV", id:1553, tier:6, nation:"DE", type:"TD", frag:1.06, dmg:739.45, spot:0.77, def:1.18, win:52.23 },
  645. "nashorn": { title:"Nashorn", id:11793, tier:6, nation:"DE", type:"TD", frag:1.22, dmg:949.59, spot:0.72, def:1.23, win:51.89 },
  646. "dickermax": { title:"Dicker Max", id:57105, tier:6, nation:"DE", type:"TD", frag:1.16, dmg:868.47, spot:0.81, def:1.15, win:52.35, prem:1 },
  647. "jagdpanther": { title:"Jagdpanther", id:3857, tier:7, nation:"DE", type:"TD", frag:1.07, dmg:1105.53, spot:0.74, def:1.04, win:52.48 },
  648. "sturer_emil": { title:"Sturer Emil", id:11025, tier:7, nation:"DE", type:"TD", frag:1.09, dmg:1100.93, spot:0.54, def:0.98, win:50.56 },
  649. "e-25": { title:"E 25", id:55569, tier:7, nation:"DE", type:"TD", frag:1.32, dmg:1069.09, spot:1.64, def:1.72, win:51.73, prem:1 },
  650. "ferdinand": { title:"Ferdinand", id:7697, tier:8, nation:"DE", type:"TD", frag:1.10, dmg:1489.13, spot:0.63, def:0.95, win:50.65 },
  651. "jagdpantherii": { title:"Jagdpanther II", id:11537, tier:8, nation:"DE", type:"TD", frag:1.14, dmg:1543.93, spot:0.81, def:0.97, win:51.07 },
  652. "rhb_waffentrager": { title:"Rhm.-Borsig Waffentrager", id:16657, tier:8, nation:"DE", type:"TD", frag:1.32, dmg:1753.57, spot:0.64, def:1.15, win:52.16 },
  653. "jagdtiger_sdkfz_185": { title:"8,8 cm Pak 43 Jagdtiger", id:55313, tier:8, nation:"DE", type:"TD", frag:0.98, dmg:1314.36, spot:0.77, def:1.13, win:49.84, prem:1 },
  654. "jagdtiger": { title:"Jagdtiger", id:7953, tier:9, nation:"DE", type:"TD", frag:1.09, dmg:1839.88, spot:0.65, def:0.82, win:49.94 },
  655. "waffentrager_iv": { title:"Waffentrager auf Pz. IV", id:16401, tier:9, nation:"DE", type:"TD", frag:1.20, dmg:1991.15, spot:0.69, def:0.94, win:50.60 },
  656. "jagdpz_e100": { title:"Jagdpanzer E 100", id:12049, tier:10, nation:"DE", type:"TD", frag:1.09, dmg:2169.98, spot:0.67, def:0.54, win:48.90 },
  657. "waffentrager_e100": { title:"Waffentrager auf E 100", id:16913, tier:10, nation:"DE", type:"TD", frag:1.51, dmg:2554.45, spot:0.54, def:0.84, win:50.12 },
  658. "gw_mk_vie": { title:"G.Pz. Mk. VI (e)", id:15121, tier:2, nation:"DE", type:"SP", frag:1.22, dmg:197.01, spot:0.21, def:1.44, win:57.25 },
  659. "bison_i": { title:"Sturmpanzer I Bison", id:2833, tier:3, nation:"DE", type:"SP", frag:1.26, dmg:398.02, spot:0.19, def:1.57, win:57.07 },
  660. "wespe": { title:"Wespe", id:5905, tier:3, nation:"DE", type:"SP", frag:1.15, dmg:425.47, spot:0.14, def:1.77, win:53.36 },
  661. "sturmpanzer_ii": { title:"Sturmpanzer II", id:4625, tier:4, nation:"DE", type:"SP", frag:1.10, dmg:436.26, spot:0.17, def:1.68, win:53.97 },
  662. "pz_sfl_ivb": { title:"Pz.Sfl. IVb", id:15633, tier:4, nation:"DE", type:"SP", frag:1.23, dmg:472.60, spot:0.11, def:1.68, win:55.39 },
  663. "grille": { title:"Grille", id:5649, tier:5, nation:"DE", type:"SP", frag:1.10, dmg:661.43, spot:0.11, def:1.57, win:52.37 },
  664. "hummel": { title:"Hummel", id:273, tier:6, nation:"DE", type:"SP", frag:1.04, dmg:999.15, spot:0.08, def:1.32, win:50.58 },
  665. "g_panther": { title:"G.W. Panther", id:8977, tier:7, nation:"DE", type:"SP", frag:1.01, dmg:1304.64, spot:0.05, def:1.04, win:50.15 },
  666. "gw_tiger_p": { title:"G.W. Tiger (P)", id:15377, tier:8, nation:"DE", type:"SP", frag:0.92, dmg:1325.53, spot:0.04, def:0.67, win:49.89 },
  667. "g_tiger": { title:"G.W. Tiger", id:8721, tier:9, nation:"DE", type:"SP", frag:0.93, dmg:1559.20, spot:0.04, def:0.63, win:48.37 },
  668. "g_e": { title:"G.W. E 100", id:9233, tier:10, nation:"DE", type:"SP", frag:0.97, dmg:1825.65, spot:0.04, def:0.63, win:47.84 },
  669. "t1_cunningham": { title:"T1 Cunningham", id:545, tier:1, nation:"US", type:"LT", frag:1.79, dmg:224.07, spot:2.25, def:1.35, win:59.41 },
  670. "m2_lt": { title:"M2 Light Tank", id:1825, tier:2, nation:"US", type:"LT", frag:1.52, dmg:255.06, spot:2.63, def:1.37, win:59.68 },
  671. "t2_lt": { title:"T2 Light Tank", id:51489, tier:2, nation:"US", type:"LT", frag:1.31, dmg:220.72, spot:2.75, def:1.20, win:58.68, prem:1 },
  672. "t1_e6": { title:"T1E6", id:53537, tier:2, nation:"US", type:"LT", frag:1.22, dmg:213.32, spot:1.75, def:1.15, win:57.91, prem:1 },
  673. "t7_combat_car": { title:"T7 Combat Car", id:55073, tier:2, nation:"US", type:"LT", frag:1.29, dmg:192.13, spot:2.03, def:1.38, win:59.30, prem:1 },
  674. "m3_stuart": { title:"M3 Stuart", id:289, tier:3, nation:"US", type:"LT", frag:1.08, dmg:252.74, spot:2.49, def:1.23, win:57.21 },
  675. "mtls_1g14": { title:"MTLS-1G14", id:52001, tier:3, nation:"US", type:"LT", frag:1.08, dmg:252.74, spot:2.49, def:1.23, win:57.21, prem:1 },
  676. "m22_locust": { title:"M22 Locust", id:52769, tier:3, nation:"US", type:"LT", frag:1.17, dmg:276.64, spot:2.74, def:1.43, win:57.87, prem:1 },
  677. "m5_stuart": { title:"M5 Stuart", id:5153, tier:4, nation:"US", type:"LT", frag:0.89, dmg:302.05, spot:2.65, def:1.01, win:57.16 },
  678. "m24_chaffee": { title:"M24 Chaffee", id:9761, tier:5, nation:"US", type:"LT", frag:0.60, dmg:503.26, spot:2.72, def:0.68, win:53.10 },
  679. "t21": { title:"T21", id:15137, tier:6, nation:"US", type:"LT", frag:0.57, dmg:474.25, spot:2.41, def:0.63, win:53.18 },
  680. "t37": { title:"T37", id:16673, tier:6, nation:"US", type:"LT", frag:0.57, dmg:474.25, spot:2.41, def:0.63, win:53.18 },
  681. "t71": { title:"T71", id:15649, tier:7, nation:"US", type:"LT", frag:0.69, dmg:729.92, spot:2.63, def:0.67, win:52.97 },
  682. "m41_bulldog": { title:"M41 Walker Bulldog", id:17953, tier:7, nation:"US", type:"LT", frag:0.69, dmg:729.92, spot:2.63, def:0.67, win:52.97 },
  683. "t49": { title:"T49", id:18209, tier:8, nation:"US", type:"LT", frag:0.57, dmg:744.28, spot:2.81, def:0.60, win:51.00 },
  684. "t2_med": { title:"T2 Medium Tank", id:5665, tier:2, nation:"US", type:"MT", frag:1.57, dmg:269.03, spot:1.72, def:1.26, win:60.11 },
  685. "m2_med": { title:"M2 Medium Tank", id:4897, tier:3, nation:"US", type:"MT", frag:1.37, dmg:301.74, spot:1.53, def:1.06, win:56.81 },
  686. "m3_grant": { title:"M3 Lee", id:3105, tier:4, nation:"US", type:"MT", frag:1.02, dmg:348.88, spot:0.84, def:0.86, win:54.26 },
  687. "m4_sherman": { title:"M4 Sherman", id:1057, tier:5, nation:"US", type:"MT", frag:1.52, dmg:699.95, spot:1.57, def:1.08, win:58.75 },
  688. "m7_med": { title:"M7", id:5409, tier:5, nation:"US", type:"MT", frag:0.95, dmg:428.51, spot:2.18, def:1.00, win:55.05 },
  689. "ram-ii": { title:"Ram II", id:51745, tier:5, nation:"US", type:"MT", frag:1.20, dmg:547.38, spot:1.47, def:1.16, win:57.47, prem:1 },
  690. "m4a2e4": { title:"M4A2E4 Sherman", id:52257, tier:5, nation:"US", type:"MT", frag:0.95, dmg:426.72, spot:1.49, def:0.85, win:53.46, prem:1 },
  691. "m4a3e8_sherman": { title:"M4A3E8 Sherman", id:1313, tier:6, nation:"US", type:"MT", frag:1.00, dmg:685.90, spot:1.54, def:1.00, win:54.77 },
  692. "sherman_jumbo": { title:"M4A3E2 Sherman Jumbo", id:10017, tier:6, nation:"US", type:"MT", frag:1.10, dmg:763.81, spot:1.23, def:1.14, win:54.55 },
  693. "a104_m4a3e8a": { title:"M4A3E8 Fury", id:56097, tier:6, nation:"US", type:"MT", frag:1.05, dmg:724.86, spot:1.39, def:1.07, win:54.66, prem:1 },
  694. "t20": { title:"T20", id:1569, tier:7, nation:"US", type:"MT", frag:0.95, dmg:943.30, spot:1.76, def:1.03, win:54.05 },
  695. "t23e3": { title:"T23E3", id:11809, tier:7, nation:"US", type:"MT", frag:1.00, dmg:857.33, spot:1.91, def:1.15, win:51.04, prem:1 },
  696. "pershing": { title:"M26 Pershing", id:5921, tier:8, nation:"US", type:"MT", frag:0.87, dmg:1115.35, spot:1.60, def:0.99, win:51.97 },
  697. "t26_e4_superpershing": { title:"T26E4 SuperPershing", id:13345, tier:8, nation:"US", type:"MT", frag:0.86, dmg:1125.66, spot:0.98, def:0.98, win:51.31, prem:1 },
  698. "t69": { title:"T69", id:14625, tier:8, nation:"US", type:"MT", frag:1.06, dmg:1307.21, spot:1.34, def:1.14, win:52.66 },
  699. "m46_patton": { title:"M46 Patton", id:8993, tier:9, nation:"US", type:"MT", frag:0.89, dmg:1433.92, spot:1.69, def:0.71, win:50.36 },
  700. "t54e1": { title:"T54E1", id:15393, tier:9, nation:"US", type:"MT", frag:1.13, dmg:1701.41, spot:1.05, def:0.78, win:51.06 },
  701. "m48a1": { title:"M48A1 Patton", id:14113, tier:10, nation:"US", type:"MT", frag:0.88, dmg:1703.00, spot:1.62, def:0.66, win:47.83 },
  702. "m60": { title:"M60", id:15905, tier:10, nation:"US", type:"MT", frag:0.81, dmg:1664.40, spot:1.51, def:0.71, win:46.50, prem:1 },
  703. "t95_e6": { title:"T95E6", id:55841, tier:10, nation:"US", type:"MT", frag:0.81, dmg:1664.40, spot:1.51, def:0.71, win:46.50, prem:1 },
  704. "t14": { title:"T14", id:33, tier:5, nation:"US", type:"HT", frag:1.34, dmg:603.30, spot:1.54, def:1.23, win:55.72, prem:1 },
  705. "t1_hvy": { title:"T1 Heavy Tank", id:3361, tier:5, nation:"US", type:"HT", frag:1.25, dmg:639.28, spot:1.20, def:1.13, win:55.30 },
  706. "m6": { title:"M6", id:801, tier:6, nation:"US", type:"HT", frag:1.05, dmg:830.21, spot:1.08, def:0.86, win:53.42 },
  707. "t29": { title:"T29", id:3873, tier:7, nation:"US", type:"HT", frag:1.11, dmg:1236.94, spot:1.15, def:0.98, win:54.80 },
  708. "t34_hvy": { title:"T34", id:2849, tier:8, nation:"US", type:"HT", frag:0.85, dmg:1303.71, spot:0.84, def:0.71, win:50.53, prem:1 },
  709. "t32": { title:"T32", id:4385, tier:8, nation:"US", type:"HT", frag:0.93, dmg:1300.93, spot:1.25, def:0.93, win:52.37 },
  710. "m6a2e1": { title:"M6A2E1", id:52513, tier:8, nation:"US", type:"HT", frag:0.86, dmg:1125.83, spot:1.15, def:0.80, win:47.30, prem:1 },
  711. "m103": { title:"M103", id:9505, tier:9, nation:"US", type:"HT", frag:0.89, dmg:1570.76, spot:1.12, def:0.70, win:49.83 },
  712. "t110": { title:"T110E5", id:10785, tier:10, nation:"US", type:"HT", frag:0.87, dmg:1809.35, spot:1.21, def:0.73, win:48.64 },
  713. "t57_58": { title:"T57 Heavy Tank", id:14881, tier:10, nation:"US", type:"HT", frag:1.15, dmg:2175.25, spot:0.84, def:0.76, win:49.48 },
  714. "t18": { title:"T18", id:6177, tier:2, nation:"US", type:"TD", frag:2.18, dmg:322.47, spot:1.23, def:1.56, win:58.65 },
  715. "t82": { title:"T82", id:6433, tier:3, nation:"US", type:"TD", frag:1.52, dmg:369.32, spot:1.32, def:1.16, win:58.45 },
  716. "t40": { title:"T40", id:7713, tier:4, nation:"US", type:"TD", frag:1.53, dmg:574.88, spot:1.27, def:1.51, win:58.67 },
  717. "m8a1": { title:"M8A1", id:10273, tier:4, nation:"US", type:"TD", frag:1.34, dmg:504.04, spot:1.58, def:1.64, win:58.50 },
  718. "m10_wolverine": { title:"M10 Wolverine", id:6945, tier:5, nation:"US", type:"TD", frag:1.27, dmg:623.59, spot:1.02, def:1.40, win:55.46 },
  719. "t67": { title:"T67", id:10529, tier:5, nation:"US", type:"TD", frag:1.41, dmg:677.17, spot:1.78, def:1.51, win:57.59 },
  720. "m36_slagger": { title:"M36 Jackson", id:7201, tier:6, nation:"US", type:"TD", frag:1.11, dmg:849.18, spot:0.94, def:1.16, win:54.61 },
  721. "m18_hellcat": { title:"M18 Hellcat", id:11553, tier:6, nation:"US", type:"TD", frag:1.23, dmg:925.08, spot:1.51, def:1.34, win:55.57 },
  722. "t25_at": { title:"T25 AT", id:9249, tier:7, nation:"US", type:"TD", frag:1.07, dmg:1089.38, spot:0.82, def:1.12, win:53.45 },
  723. "t25_2": { title:"T25/2", id:11041, tier:7, nation:"US", type:"TD", frag:0.96, dmg:1011.60, spot:1.01, def:1.12, win:52.76 },
  724. "t28": { title:"T28", id:8225, tier:8, nation:"US", type:"TD", frag:1.02, dmg:1393.33, spot:0.52, def:0.94, win:50.79 },
  725. "t28_prototype": { title:"T28 Prototype", id:11297, tier:8, nation:"US", type:"TD", frag:1.05, dmg:1451.93, spot:0.53, def:0.97, win:51.04 },
  726. "t30": { title:"T30", id:2593, tier:9, nation:"US", type:"TD", frag:1.03, dmg:1789.28, spot:0.75, def:0.63, win:50.31 },
  727. "t95": { title:"T95", id:8737, tier:9, nation:"US", type:"TD", frag:1.09, dmg:1815.73, spot:0.51, def:0.65, win:51.72 },
  728. "t110e4": { title:"T110E4", id:13089, tier:10, nation:"US", type:"TD", frag:1.07, dmg:2196.52, spot:0.84, def:0.62, win:49.10 },
  729. "t110e3": { title:"T110E3", id:13857, tier:10, nation:"US", type:"TD", frag:1.14, dmg:2330.38, spot:0.81, def:0.61, win:51.00 },
  730. "t57": { title:"T57", id:2081, tier:2, nation:"US", type:"SP", frag:1.44, dmg:275.82, spot:0.36, def:2.04, win:55.30 },
  731. "m7_priest": { title:"M7 Priest", id:3617, tier:3, nation:"US", type:"SP", frag:1.03, dmg:573.10, spot:0.11, def:1.94, win:51.17 },
  732. "sexton_i": { title:"Sexton_I", id:54049, tier:3, nation:"US", type:"SP", frag:1.09, dmg:268.41, spot:0.13, def:1.70, win:52.95, prem:1 },
  733. "m37": { title:"M37", id:4641, tier:4, nation:"US", type:"SP", frag:1.06, dmg:402.15, spot:0.14, def:1.55, win:53.14 },
  734. "m41": { title:"M41 HMC", id:4129, tier:5, nation:"US", type:"SP", frag:1.07, dmg:1031.91, spot:0.07, def:1.56, win:51.13 },
  735. "m44": { title:"M44", id:16417, tier:6, nation:"US", type:"SP", frag:1.06, dmg:853.77, spot:0.08, def:1.44, win:53.17 },
  736. "m12": { title:"M12", id:7969, tier:7, nation:"US", type:"SP", frag:1.01, dmg:1293.60, spot:0.06, def:1.10, win:50.79 },
  737. "m40m43": { title:"M40/M43", id:7457, tier:8, nation:"US", type:"SP", frag:1.04, dmg:1565.27, spot:0.05, def:0.88, win:50.52 },
  738. "m53_55": { title:"M53/M55", id:16161, tier:9, nation:"US", type:"SP", frag:1.02, dmg:1782.82, spot:0.04, def:0.91, win:50.93 },
  739. "t92": { title:"T92", id:8481, tier:10, nation:"US", type:"SP", frag:0.95, dmg:1854.97, spot:0.04, def:0.71, win:48.29 },
  740. "gb03_cruiser_mk_i": { title:"Cruiser Mk. I", id:5201, tier:2, nation:"UK", type:"LT", frag:1.92, dmg:324.12, spot:1.60, def:1.74, win:59.08 },
  741. "gb58_cruiser_mk_iii": { title:"Cruiser Mk. III", id:7761, tier:2, nation:"UK", type:"LT", frag:1.90, dmg:323.20, spot:2.22, def:1.37, win:61.45 },
  742. "gb76_mk_vic": { title:"Light Mk. VIC", id:54865, tier:2, nation:"UK", type:"LT", frag:1.57, dmg:229.40, spot:2.14, def:1.88, win:59.11, prem:1 },
  743. "gb69_cruiser_mk_ii": { title:"Cruiser Mk. II", id:6993, tier:3, nation:"UK", type:"LT", frag:1.42, dmg:309.54, spot:1.05, def:1.01, win:56.19 },
  744. "gb59_cruiser_mk_iv": { title:"Cruiser Mk. IV", id:7505, tier:3, nation:"UK", type:"LT", frag:1.51, dmg:367.08, spot:1.88, def:1.10, win:60.19 },
  745. "gb04_valentine": { title:"Valentine", id:4945, tier:4, nation:"UK", type:"LT", frag:0.88, dmg:339.85, spot:0.86, def:1.28, win:54.53 },
  746. "gb60_covenanter": { title:"Covenanter", id:6481, tier:4, nation:"UK", type:"LT", frag:1.04, dmg:372.27, spot:1.86, def:1.08, win:56.93 },
  747. "gb20_crusader": { title:"Crusader", id:2129, tier:5, nation:"UK", type:"LT", frag:1.00, dmg:461.82, spot:1.75, def:1.13, win:54.77 },
  748. "gb01_medium_mark_i": { title:"Vickers Medium Mk. I", id:81, tier:1, nation:"UK", type:"MT", frag:1.89, dmg:242.33, spot:1.15, def:1.19, win:58.59 },
  749. "gb05_vickers_medium_mk_ii": { title:"Vickers Medium Mk. II", id:337, tier:2, nation:"UK", type:"MT", frag:1.66, dmg:275.12, spot:1.00, def:1.25, win:58.09 },
  750. "gb06_vickers_medium_mk_iii": { title:"Vickers Medium Mk. III", id:2385, tier:3, nation:"UK", type:"MT", frag:1.17, dmg:294.03, spot:1.06, def:1.05, win:55.32 },
  751. "gb07_matilda": { title:"Matilda", id:849, tier:4, nation:"UK", type:"MT", frag:1.37, dmg:515.62, spot:0.89, def:1.68, win:58.35 },
  752. "gb68_matilda_black_prince": { title:"Matilda Black Prince", id:53585, tier:5, nation:"UK", type:"MT", frag:1.24, dmg:570.67, spot:0.83, def:1.51, win:55.19, prem:1 },
  753. "gb21_cromwell": { title:"Cromwell", id:1105, tier:6, nation:"UK", type:"MT", frag:1.05, dmg:709.35, spot:2.09, def:0.96, win:55.06 },
  754. "gb22_comet": { title:"Comet", id:5457, tier:7, nation:"UK", type:"MT", frag:1.01, dmg:929.49, spot:1.80, def:1.06, win:53.31 },
  755. "gb23_centurion": { title:"Centurion Mk. I", id:5969, tier:8, nation:"UK", type:"MT", frag:0.82, dmg:1149.29, spot:1.33, def:0.92, win:52.66 },
  756. "gb24_centurion_mk3": { title:"Centurion Mk. 7/1", id:5713, tier:9, nation:"UK", type:"MT", frag:0.90, dmg:1565.29, spot:1.30, def:0.84, win:50.38 },
  757. "gb70_fv4202_105": { title:"FV4202", id:7249, tier:10, nation:"UK", type:"MT", frag:0.94, dmg:1832.04, spot:1.40, def:0.77, win:48.08 },
  758. "gb08_churchill_i": { title:"Churchill I", id:2897, tier:5, nation:"UK", type:"HT", frag:1.18, dmg:635.08, spot:0.91, def:1.23, win:54.97 },
  759. "gb51_excelsior": { title:"Excelsior", id:54353, tier:5, nation:"UK", type:"HT", frag:1.44, dmg:659.80, spot:1.60, def:1.33, win:57.71, prem:1 },
  760. "gb09_churchill_vii": { title:"Churchill VII", id:4689, tier:6, nation:"UK", type:"HT", frag:1.00, dmg:765.86, spot:0.78, def:1.09, win:53.07 },
  761. "gb63_tog_ii": { title:"TOG II*", id:53841, tier:6, nation:"UK", type:"HT", frag:1.18, dmg:858.71, spot:0.62, def:1.30, win:52.40, prem:1 },
  762. "gb10_black_prince": { title:"Black Prince", id:3153, tier:7, nation:"UK", type:"HT", frag:0.95, dmg:1018.46, spot:0.88, def:1.12, win:54.07 },
  763. "gb11_caernarvon": { title:"Caernarvon", id:3921, tier:8, nation:"UK", type:"HT", frag:0.82, dmg:1219.12, spot:1.12, def:0.95, win:51.47 },
  764. "gb12_conqueror": { title:"Conqueror", id:4433, tier:9, nation:"UK", type:"HT", frag:0.88, dmg:1605.38, spot:1.03, def:0.69, win:49.90 },
  765. "gb13_fv215b": { title:"FV215b", id:6225, tier:10, nation:"UK", type:"HT", frag:0.91, dmg:1891.22, spot:1.10, def:0.67, win:48.39 },
  766. "gb39_universal_carrierqf2": { title:"Universal Carrier 2-pdr", id:8273, tier:2, nation:"UK", type:"TD", frag:1.86, dmg:302.97, spot:1.39, def:1.61, win:59.59 },
  767. "gb42_valentine_at": { title:"Valentine AT", id:8017, tier:3, nation:"UK", type:"TD", frag:1.64, dmg:387.01, spot:0.89, def:1.65, win:58.95 },
  768. "gb57_alecto": { title:"Alecto", id:9041, tier:4, nation:"UK", type:"TD", frag:1.35, dmg:483.05, spot:1.47, def:1.59, win:57.35 },
  769. "gb73_at2": { title:"AT 2", id:8785, tier:5, nation:"UK", type:"TD", frag:1.21, dmg:585.34, spot:0.81, def:1.59, win:57.24 },
  770. "gb74_at8": { title:"AT 8", id:9553, tier:6, nation:"UK", type:"TD", frag:1.14, dmg:837.47, spot:0.70, def:1.44, win:56.33 },
  771. "gb40_gun_carrier_churchill": { title:"Churchill Gun Carrier", id:9809, tier:6, nation:"UK", type:"TD", frag:0.91, dmg:703.86, spot:0.42, def:1.00, win:51.64 },
  772. "gb75_at7": { title:"AT 7", id:10065, tier:7, nation:"UK", type:"TD", frag:1.19, dmg:1252.17, spot:0.69, def:1.32, win:56.47 },
  773. "gb71_at_15a": { title:"AT 15A", id:54097, tier:7, nation:"UK", type:"TD", frag:0.93, dmg:968.96, spot:0.70, def:1.20, win:51.85, prem:1 },
  774. "gb72_at15": { title:"AT 15", id:8529, tier:8, nation:"UK", type:"TD", frag:1.08, dmg:1461.97, spot:0.67, def:1.20, win:52.68 },
  775. "gb32_tortoise": { title:"Tortoise", id:52561, tier:9, nation:"UK", type:"TD", frag:1.10, dmg:1835.74, spot:0.64, def:0.89, win:51.33 },
  776. "gb48_fv215b_183": { title:"FV215b (183)", id:9297, tier:10, nation:"UK", type:"TD", frag:1.27, dmg:2358.17, spot:0.59, def:0.56, win:48.86 },
  777. "gb25_loyd_carrier": { title:"Loyd Gun Carriage", id:10577, tier:2, nation:"UK", type:"SP", frag:1.40, dmg:200.60, spot:0.25, def:1.34, win:56.48 },
  778. "gb27_sexton": { title:"Sexton II", id:3409, tier:3, nation:"UK", type:"SP", frag:0.93, dmg:234.35, spot:0.13, def:1.38, win:52.88 },
  779. "gb78_sexton_i": { title:"Sexton I", id:54609, tier:3, nation:"UK", type:"SP", frag:1.09, dmg:268.41, spot:0.13, def:1.70, win:52.95, prem:1 },
  780. "gb26_birch_gun": { title:"Birch Gun", id:10833, tier:4, nation:"UK", type:"SP", frag:1.01, dmg:372.03, spot:0.10, def:1.91, win:53.58 },
  781. "gb28_bishop": { title:"Bishop", id:11089, tier:5, nation:"UK", type:"SP", frag:1.22, dmg:644.80, spot:0.11, def:1.65, win:54.88 },
  782. "gb77_fv304": { title:"FV304", id:11857, tier:6, nation:"UK", type:"SP", frag:1.15, dmg:863.65, spot:0.17, def:2.16, win:54.59 },
  783. "gb29_crusader_5inch": { title:"Crusader 5.5-in. SP", id:11345, tier:7, nation:"UK", type:"SP", frag:0.94, dmg:1015.64, spot:0.07, def:1.72, win:51.46 },
  784. "gb79_fv206": { title:"FV207", id:12113, tier:8, nation:"UK", type:"SP", frag:0.94, dmg:1314.18, spot:0.03, def:0.85, win:49.89 },
  785. "gb30_fv3805": { title:"FV3805", id:11601, tier:9, nation:"UK", type:"SP", frag:1.00, dmg:1716.25, spot:0.03, def:0.75, win:50.37 },
  786. "gb31_conqueror_gun": { title:"Conqueror Gun Carriage", id:12369, tier:10, nation:"UK", type:"SP", frag:1.04, dmg:2231.56, spot:0.03, def:0.97, win:51.08 },
  787. "renaultft": { title:"Renault FT", id:577, tier:1, nation:"FR", type:"LT", frag:1.80, dmg:239.34, spot:1.54, def:1.72, win:59.84 },
  788. "hotchkiss_h35": { title:"Hotchkiss H35", id:1345, tier:2, nation:"FR", type:"LT", frag:1.47, dmg:241.74, spot:1.39, def:1.85, win:58.57 },
  789. "d1": { title:"D1", id:1601, tier:2, nation:"FR", type:"LT", frag:1.41, dmg:235.60, spot:1.13, def:1.89, win:55.61 },
  790. "amx38": { title:"AMX 38", id:5953, tier:3, nation:"FR", type:"LT", frag:1.00, dmg:219.26, spot:0.97, def:1.74, win:55.61 },
  791. "amx40": { title:"AMX 40", id:2881, tier:4, nation:"FR", type:"LT", frag:0.74, dmg:247.57, spot:0.85, def:0.96, win:52.59 },
  792. "elc_amx": { title:"ELC AMX", id:14145, tier:5, nation:"FR", type:"LT", frag:0.66, dmg:456.92, spot:2.64, def:0.73, win:53.91 },
  793. "amx_12t": { title:"AMX 12 t", id:6465, tier:6, nation:"FR", type:"LT", frag:0.57, dmg:479.58, spot:2.04, def:0.55, win:51.90 },
  794. "amx_13_75": { title:"AMX 13 75", id:5185, tier:7, nation:"FR", type:"LT", frag:0.62, dmg:587.00, spot:2.10, def:0.61, win:52.41 },
  795. "amx_13_90": { title:"AMX 13 90", id:4929, tier:8, nation:"FR", type:"LT", frag:0.71, dmg:833.03, spot:2.49, def:0.65, win:52.04 },
  796. "d2": { title:"D2", id:321, tier:3, nation:"FR", type:"MT", frag:1.31, dmg:306.42, spot:0.94, def:1.58, win:58.38 },
  797. "lorraine40t": { title:"Lorraine 40 t", id:5697, tier:9, nation:"FR", type:"MT", frag:0.96, dmg:1393.84, spot:1.38, def:0.78, win:49.51 },
  798. "bat_chatillon25t": { title:"Bat.-Chatillon 25 t", id:3649, tier:10, nation:"FR", type:"MT", frag:1.11, dmg:1801.98, spot:2.09, def:0.86, win:49.28 },
  799. "b1": { title:"B1", id:1089, tier:4, nation:"FR", type:"HT", frag:1.06, dmg:338.68, spot:1.11, def:1.23, win:53.27 },
  800. "bdr_g1b": { title:"BDR G1 B", id:6721, tier:5, nation:"FR", type:"HT", frag:1.23, dmg:648.03, spot:0.87, def:1.01, win:54.17 },
  801. "arl_44": { title:"ARL 44", id:2625, tier:6, nation:"FR", type:"HT", frag:0.96, dmg:809.04, spot:0.91, def:0.81, win:52.37 },
  802. "amx_m4_1945": { title:"AMX M4 mle. 45", id:6977, tier:7, nation:"FR", type:"HT", frag:0.89, dmg:1027.78, spot:0.94, def:0.93, win:51.56 },
  803. "amx_50_100": { title:"AMX 50 100", id:3137, tier:8, nation:"FR", type:"HT", frag:1.11, dmg:1410.01, spot:0.93, def:1.03, win:51.32 },
  804. "fcm_50t": { title:"FCM 50 t", id:64065, tier:8, nation:"FR", type:"HT", frag:0.93, dmg:1244.68, spot:1.53, def:1.06, win:50.00, prem:1 },
  805. "amx_50_120": { title:"AMX 50 120", id:3905, tier:9, nation:"FR", type:"HT", frag:1.04, dmg:1676.18, spot:0.89, def:0.80, win:49.46 },
  806. "f10_amx_50b": { title:"AMX 50 B", id:6209, tier:10, nation:"FR", type:"HT", frag:1.05, dmg:1977.71, spot:0.96, def:0.80, win:47.95 },
  807. "renaultft_ac": { title:"Renault FT AC", id:7745, tier:2, nation:"FR", type:"TD", frag:2.03, dmg:329.78, spot:0.93, def:1.91, win:59.33 },
  808. "fcm_36pak40": { title:"FCM 36 Pak 40", id:2369, tier:3, nation:"FR", type:"TD", frag:1.87, dmg:452.95, spot:1.09, def:1.78, win:60.49, prem:1 },
  809. "renaultue57": { title:"Renault UE 57", id:8257, tier:3, nation:"FR", type:"TD", frag:1.48, dmg:371.98, spot:1.10, def:1.67, win:59.17 },
  810. "somua_sau_40": { title:"Somua SAu 40", id:9793, tier:4, nation:"FR", type:"TD", frag:1.19, dmg:399.72, spot:0.57, def:1.04, win:54.17 },
  811. "s_35ca": { title:"S35 CA", id:10049, tier:5, nation:"FR", type:"TD", frag:1.38, dmg:694.54, spot:0.92, def:1.43, win:55.02 },
  812. "arl_v39": { title:"ARL V39", id:11585, tier:6, nation:"FR", type:"TD", frag:0.96, dmg:736.45, spot:0.65, def:1.03, win:50.74 },
  813. "amx_ac_mle1946": { title:"AMX AC mle. 46", id:10817, tier:7, nation:"FR", type:"TD", frag:0.91, dmg:996.89, spot:0.69, def:1.01, win:51.42 },
  814. "amx_ac_mle1948": { title:"AMX AC mle. 48", id:12097, tier:8, nation:"FR", type:"TD", frag:0.97, dmg:1328.24, spot:0.80, def:0.96, win:50.01 },
  815. "amx50_foch": { title:"AMX 50 Foch", id:11073, tier:9, nation:"FR", type:"TD", frag:1.00, dmg:1662.75, spot:0.98, def:0.91, win:50.13 },
  816. "amx_50fosh_155": { title:"AMX 50 Foch (155)", id:13889, tier:10, nation:"FR", type:"TD", frag:1.29, dmg:2373.89, spot:0.93, def:0.76, win:49.70 },
  817. "renaultbs": { title:"Renault FT 75 BS", id:833, tier:2, nation:"FR", type:"SP", frag:1.41, dmg:249.98, spot:0.15, def:1.99, win:55.96 },
  818. "lorraine39_l_am": { title:"Lorraine 39L AM", id:3393, tier:3, nation:"FR", type:"SP", frag:1.35, dmg:491.92, spot:0.14, def:2.08, win:54.96 },
  819. "amx_ob_am105": { title:"AMX 105 AM mle. 47", id:14657, tier:4, nation:"FR", type:"SP", frag:1.11, dmg:432.92, spot:0.13, def:1.65, win:54.28 },
  820. "_105_lefh18b2": { title:"105 leFH18B2", id:2113, tier:5, nation:"FR", type:"SP", frag:1.39, dmg:701.86, spot:0.10, def:1.87, win:54.74, prem:1 },
  821. "amx_105am": { title:"AMX 13 105 AM mle. 50", id:4161, tier:5, nation:"FR", type:"SP", frag:1.18, dmg:652.24, spot:0.10, def:2.30, win:52.34 },
  822. "amx_13f3am": { title:"AMX 13 F3 AM", id:4673, tier:6, nation:"FR", type:"SP", frag:1.11, dmg:1061.02, spot:0.08, def:1.65, win:51.95 },
  823. "lorraine155_50": { title:"Lorraine 155 mle. 50", id:7233, tier:7, nation:"FR", type:"SP", frag:0.95, dmg:1265.21, spot:0.06, def:1.33, win:50.46 },
  824. "lorraine155_51": { title:"Lorraine 155 mle. 51", id:7489, tier:8, nation:"FR", type:"SP", frag:0.98, dmg:1440.46, spot:0.06, def:1.13, win:49.94 },
  825. "bat_chatillon155_55": { title:"Bat.-Chatillon 155 55", id:14401, tier:9, nation:"FR", type:"SP", frag:0.96, dmg:1617.00, spot:0.05, def:1.04, win:49.27 },
  826. "bat_chatillon155_58": { title:"Bat.-Chatillon 155 58", id:11841, tier:10, nation:"FR", type:"SP", frag:1.11, dmg:1867.54, spot:0.07, def:1.24, win:48.44 },
  827. "ch06_renault_nc31": { title:"Renault NC-31", id:1329, tier:1, nation:"CH", type:"LT", frag:1.96, dmg:256.78, spot:1.51, def:1.64, win:57.67 },
  828. "ch07_vickers_mke_type_bt26": { title:"Vickers Mk. E Type B", id:2353, tier:2, nation:"CH", type:"LT", frag:1.71, dmg:284.18, spot:1.52, def:1.49, win:59.33 },
  829. "ch08_type97_chi_ha": { title:"Type 2597 Chi-Ha", id:4401, tier:3, nation:"CH", type:"LT", frag:1.50, dmg:367.90, spot:1.36, def:1.46, win:59.68 },
  830. "ch09_m5": { title:"M5A1 Stuart", id:3121, tier:4, nation:"CH", type:"LT", frag:0.97, dmg:352.09, spot:2.39, def:1.06, win:55.62 },
  831. "ch15_59_16": { title:"59-16", id:4913, tier:6, nation:"CH", type:"LT", frag:0.54, dmg:385.90, spot:2.74, def:0.51, win:52.12 },
  832. "ch24_type64": { title:"Type 64", id:64817, tier:6, nation:"CH", type:"LT", frag:0.60, dmg:508.86, spot:2.83, def:0.68, win:52.16, prem:1 },
  833. "ch02_type62": { title:"Type 62", id:305, tier:7, nation:"CH", type:"LT", frag:0.59, dmg:599.17, spot:2.38, def:0.67, win:50.75, prem:1 },
  834. "ch16_wz_131": { title:"WZ-131", id:3377, tier:7, nation:"CH", type:"LT", frag:0.61, dmg:669.26, spot:2.57, def:0.63, win:52.46 },
  835. "ch17_wz131_1_wz132": { title:"WZ-132", id:3889, tier:8, nation:"CH", type:"LT", frag:0.57, dmg:744.28, spot:2.81, def:0.60, win:51.00 },
  836. "ch21_t34": { title:"Type T-34", id:4657, tier:5, nation:"CH", type:"MT", frag:1.12, dmg:516.40, spot:1.49, def:1.11, win:54.11 },
  837. "ch20_type58": { title:"Type 58", id:5169, tier:6, nation:"CH", type:"MT", frag:1.02, dmg:709.00, spot:1.63, def:1.00, win:53.20 },
  838. "ch04_t34_1": { title:"T-34-1", id:1073, tier:7, nation:"CH", type:"MT", frag:0.98, dmg:973.97, spot:1.60, def:1.00, win:54.16 },
  839. "ch01_type59": { title:"Type 59", id:49, tier:8, nation:"CH", type:"MT", frag:0.89, dmg:1062.59, spot:1.72, def:0.91, win:51.14, prem:1 },
  840. "ch01_type59_gold": { title:"Type 59 G", id:561, tier:8, nation:"CH", type:"MT", frag:1.00, dmg:1000.00, spot:1.00, def:1.00, win:50.00, prem:1 },
  841. "ch05_t34_2": { title:"T-34-2", id:1585, tier:8, nation:"CH", type:"MT", frag:0.83, dmg:1045.18, spot:1.69, def:0.90, win:50.81 },
  842. "ch14_t34_3": { title:"T-34-3", id:64049, tier:8, nation:"CH", type:"MT", frag:0.90, dmg:1113.38, spot:1.54, def:0.74, win:49.84, prem:1 },
  843. "ch18_wz-120": { title:"WZ-120", id:1841, tier:9, nation:"CH", type:"MT", frag:0.90, dmg:1463.73, spot:1.54, def:0.68, win:50.36 },
  844. "ch19_121": { title:"121", id:4145, tier:10, nation:"CH", type:"MT", frag:0.93, dmg:1791.20, spot:1.43, def:0.67, win:48.11 },
  845. "ch10_is2": { title:"IS-2", id:3633, tier:7, nation:"CH", type:"HT", frag:1.07, dmg:1139.09, spot:1.14, def:0.83, win:54.13 },
  846. "ch03_wz_111": { title:"WZ-111", id:817, tier:8, nation:"CH", type:"HT", frag:0.93, dmg:1312.57, spot:1.16, def:0.81, win:52.85, prem:1 },
  847. "ch11_110": { title:"110", id:2865, tier:8, nation:"CH", type:"HT", frag:0.93, dmg:1312.57, spot:1.16, def:0.81, win:52.85 },
  848. "ch23_112": { title:"112", id:64561, tier:8, nation:"CH", type:"HT", frag:0.97, dmg:1294.88, spot:1.36, def:0.84, win:53.09, prem:1 },
  849. "ch12_111_1_2_3": { title:"WZ-111 model 1-4", id:2097, tier:9, nation:"CH", type:"HT", frag:0.93, dmg:1661.51, spot:1.30, def:0.64, win:51.30 },
  850. "ch22_113": { title:"113", id:5425, tier:10, nation:"CH", type:"HT", frag:0.84, dmg:1758.86, spot:1.31, def:0.61, win:47.88 },
  851. "nc27": { title:"Renault Otsu", id:609, tier:1, nation:"JP", type:"LT", frag:1.79, dmg:223.87, spot:1.31, def:2.30, win:57.03 },
  852. "ha_go": { title:"Type 95 Ha-Go", id:865, tier:2, nation:"JP", type:"LT", frag:1.68, dmg:285.74, spot:1.75, def:1.54, win:60.54 },
  853. "te_ke": { title:"Type 97 Te-Ke", id:3169, tier:2, nation:"JP", type:"LT", frag:1.68, dmg:285.74, spot:1.75, def:1.54, win:60.54, prem:1 },
  854. "ke_ni": { title:"Type 98 Ke-Ni", id:2401, tier:3, nation:"JP", type:"LT", frag:1.40, dmg:333.66, spot:1.75, def:1.54, win:59.80 },
  855. "ke_ni_b": { title:"Type 98 Ke-Ni Otsu", id:51809, tier:3, nation:"JP", type:"LT", frag:1.40, dmg:333.66, spot:1.75, def:1.54, win:59.80, prem:1 },
  856. "ke_ho": { title:"Type 5 Ke-Ho", id:2913, tier:4, nation:"JP", type:"LT", frag:1.20, dmg:426.96, spot:1.84, def:1.28, win:57.47 },
  857. "chi_ni": { title:"Chi-Ni", id:353, tier:2, nation:"JP", type:"MT", frag:1.60, dmg:265.10, spot:1.53, def:1.40, win:59.44 },
  858. "chi_ha": { title:"Type 97 Chi-Ha", id:2145, tier:3, nation:"JP", type:"MT", frag:1.47, dmg:366.08, spot:1.30, def:1.35, win:58.51 },
  859. "chi_he": { title:"Type 1 Chi-He", id:1633, tier:4, nation:"JP", type:"MT", frag:1.10, dmg:409.37, spot:1.25, def:1.11, win:56.17 },
  860. "chi_nu": { title:"Type 3 Chi-Nu", id:1377, tier:5, nation:"JP", type:"MT", frag:1.03, dmg:520.56, spot:1.25, def:1.09, win:54.18 },
  861. "chi_nu_kai": { title:"Type 3 Chi-Nu Kai", id:51553, tier:5, nation:"JP", type:"MT", frag:1.09, dmg:556.38, spot:1.09, def:1.18, win:53.79, prem:1 },
  862. "chi_to": { title:"Type 4 Chi-To", id:1889, tier:6, nation:"JP", type:"MT", frag:1.06, dmg:773.89, spot:1.14, def:1.09, win:52.24 },
  863. "chi_ri": { title:"Type 5 Chi-Ri", id:1121, tier:7, nation:"JP", type:"MT", frag:0.97, dmg:962.29, spot:1.07, def:1.06, win:51.38 },
  864. "sta_1": { title:"STA-1", id:2657, tier:8, nation:"JP", type:"MT", frag:0.91, dmg:1205.34, spot:1.38, def:1.07, win:51.33 },
  865. "type_61": { title:"Type 61", id:3425, tier:9, nation:"JP", type:"MT", frag:0.98, dmg:1635.26, spot:1.34, def:0.80, win:51.01 },
  866. "st_b1": { title:"STB-1", id:3681, tier:10, nation:"JP", type:"MT", frag:1.03, dmg:1926.19, spot:1.63, def:0.83, win:49.72 },
  867. // tester tanks 0.9.4
  868. "object_260": { title:"Object 260 mod. 1945", id:58369, tier:10, nation:"RU", type:"MT", frag:0.88, dmg:1816.70, spot:1.16, def:0.70, win:49.00, prem:1 }, // IS4, IS7
  869. "g108_pzkpfwII_ausfd": { title:"Pz.Kpfw. II Ausf. D", id:60433, tier:2, nation:"DE", type:"LT", frag:1.54, dmg:250.88, spot:2.11, def:1.48, win:58.98, prem:1 }, // Pz35t, PzI, PzII
  870. "g106_pzkpfwpanther_ausff": { title:"Panther mit 8,8cm L/71", id:60177, tier:8, nation:"DE", type:"MT", frag:0.84, dmg:1120.65, spot:1.29, def:0.97, win:51.14, prem:1 }, // IndienPz, Panther II
  871. "r105_t55_nva_ddr": { title:"Т-55 NVA DDR", id:60945, tier:9, nation:"DE", type:"MT", frag:1.00, dmg:1525.54, spot:1.72, def:0.83, win:52.50, prem:1 }, // T54, Obj 430 II
  872. "g104_stug_iv": { title:"StuG IV", id:60689, tier:5, nation:"DE", type:"TD", frag:1.22, dmg:628.31, spot:0.78, def:1.23, win:53.38, prem:1 }, // Stug IIIG, PzSfl IVc
  873. "t95e2": { title:"T95E2", id:53793, tier:8, nation:"US", type:"MT", frag:0.00, dmg:1000.00, spot:0.00, def:0.00, win:50.00, prem:1 }, //
  874. "a102_t28_concept": { title:"T28 Concept", id:56609, tier:7, nation:"US", type:"TD", frag:1.01, dmg:1050.49, spot:0.91, def:1.12, win:53.10, prem:1 }, // T25/2, T25 AT
  875. "a101_m56": { title:"M56 Scorpion", id:56353, tier:8, nation:"US", type:"TD", frag:1.03, dmg:1422.63, spot:0.52, def:0.95, win:50.91, prem:1 } // T28, T28 Proto
  876. };
  877. // variables for statistics
  878. var vehAmount = 0, vehTierTotal = 0, vehBatsTotal = 0, colVehBatsTotal = " ",
  879. tierStats = {p:{b:0,w:0,bg:0},t:{b:0,w:0,bg:0}},
  880. expStats = {frag:0,dmg:0,spot:0,def:0,win:0},
  881. vehTiers = {1:{b:0,c:0},2:{b:0,c:0},3:{b:0,c:0},4:{b:0,c:0},5:{b:0,c:0},6:{b:0,c:0},7:{b:0,c:0},8:{b:0,c:0},9:{b:0,c:0},10:{b:0,c:0}},
  882. vehBadges = {0:{c:0,p:0},1:{c:0,p:0},2:{c:0,p:0},3:{c:0,p:0},4:{c:0,p:0},5:{c:0,p:0}},
  883. premArr = [], tenArr = [], vehList = {}, colRat = {};
  884.  
  885. // total mastery badge and colouring tank table category rows
  886. var typeRow_class = document.getElementsByClassName('t-profile_tankstype js-table-dropdown-link');
  887. for (var i=0; i<typeRow_class.length; i++) {
  888. vehAmount += filter(typeRow_class[i].cells[0].getElementsByTagName('span')[1].firstElementChild.innerHTML,1);
  889. vehBadges[5].c = vehAmount;
  890. vehBadges[5].p = (vehAmount/vehAmount*100).toFixed(0);
  891. var typeBattles = filter(typeRow_class[i].cells[1].innerHTML,1),
  892. typeWinrate = filter(typeRow_class[i].cells[2].innerHTML,1),
  893. typeWins = parseFloat((typeBattles*(typeWinrate/100)).toFixed(0));
  894.  
  895. // modify table
  896. typeRow_class[i].cells[2].innerHTML = colStat(typeWinrate, "wrv", 0, "%")+"<span>"+filter(typeWins,2)+"</span>";
  897. }
  898.  
  899. // average tier, colouring premium tanks and winrates in vehicle tables
  900. var vehRow_class = document.getElementsByClassName('t-profile_tankstype t-profile_tankstype__item'),
  901. vehRowStats_class = document.getElementsByClassName('t-profile_slidedown tablesorter-childRow');
  902. for (var i=0; i<vehRow_class.length; i++) {
  903. // fetch info from table
  904. var vehImgName = vehRow_class[i].cells[0].getElementsByTagName('img')[0].src.match(/\w+-([\w-]+).png/),
  905. vehBats = filter(vehRow_class[i].cells[1].innerHTML,1),
  906. vehWinrate = filter(vehRow_class[i].cells[2].innerHTML,1),
  907. vehWins = parseFloat((vehBats*(vehWinrate/100)).toFixed(0)),
  908. vehBadge = (vehRow_class[i].cells[3].getElementsByTagName('img')[0]) ? vehRow_class[i].cells[3].getElementsByTagName('img')[0].getAttribute('data-badge_code') : 0;
  909.  
  910. // modify table
  911. vehRow_class[i].cells[0].getElementsByTagName('img')[0].src = "http://"+wg_host+"/static/3.13.0.2.1/encyclopedia/tankopedia/vehicle/"+vehImgName[0];
  912. vehRow_class[i].cells[2].innerHTML = colStat(vehWinrate, "wrv", 0, "%")+"<span>"+filter(vehWins,2)+"</span>";
  913.  
  914. // vehicle badges
  915. vehBadges[vehBadge].c ++;
  916. vehBadges[vehBadge].p = (vehBadges[vehBadge].c/vehBadges[5].c*100).toFixed(0);
  917.  
  918. // check vehicle with statArr - warn if not - only for debugging purposes, as all possible vehicle up to 0.9.1 are supported
  919. if (statArr[vehImgName[1]]) {
  920. var vehStatArr = statArr[vehImgName[1]];
  921.  
  922. // process information and push into arrays
  923. var vehTier = vehStatArr.tier;
  924. vehTiers[vehTier].b += vehBats;
  925. vehTiers[vehTier].c ++;
  926. vehTierTotal += vehTier*vehBats;
  927. vehBatsTotal += vehBats;
  928.  
  929. // summarize expected stat from every vehicle for WN8
  930. expStats.frag += vehStatArr.frag*vehBats;
  931. expStats.dmg += vehStatArr.dmg *vehBats;
  932. expStats.spot += vehStatArr.spot*vehBats;
  933. expStats.def += vehStatArr.def *vehBats;
  934. expStats.win += vehStatArr.win *vehBats;
  935.  
  936. // get info for premium table
  937. if (!!vehStatArr.prem) {
  938. tierStats.p.b += vehBats;
  939. tierStats.p.w += vehWins;
  940. vehRow_class[i].cells[0].getElementsByTagName('span')[1].className += " b-gold-name";
  941. premArr.push([vehRow_class[i].cloneNode(true), vehRowStats_class[i].cloneNode(true)]);
  942. if (vehRow_class[i].cells[3].innerHTML.length > 2) { tierStats.p.bg ++; }
  943. }
  944.  
  945. // get info for tier 10 table
  946. if (vehTier == 10) {
  947. tierStats.t.b += vehBats;
  948. tierStats.t.w += vehWins;
  949. tenArr.push([vehRow_class[i].cloneNode(true), vehRowStats_class[i].cloneNode(true)]);
  950. if (vehRow_class[i].cells[3].innerHTML.length > 2) { tierStats.t.bg ++; }
  951. }
  952.  
  953. // summarize player vehicles into dedicated array for console
  954. vehList[vehStatArr.id] = {
  955. "infoNameFull": vehStatArr.title,
  956. "infoName": vehImgName[1],
  957. "infoId": vehStatArr.id,
  958. "vehNation": vehStatArr.nation,
  959. "vehTier": vehStatArr.tier,
  960. "vehType": vehStatArr.type,
  961. "vehBadge": vehBadge,
  962. "vehPrem": vehStatArr.prem,
  963. "vehStat": {battles: vehBats, battlesWins: parseFloat(vehWins)},
  964. "vehStatExpected": {frag: vehStatArr.frag, dmg: vehStatArr.dmg, spot: vehStatArr.spot, def: vehStatArr.def, win: vehStatArr.win}
  965. };
  966. }
  967. else {
  968. vehRow_class[i].cells[0].getElementsByTagName('span')[1].className += " b-red-name";
  969. vehRow_class[i].cells[0].getElementsByTagName('span')[1].innerHTML += " - Error!";
  970. console.info("Vehicle named "+vehImgName[1]+" doesn't exist in statArr, please report!");
  971. }
  972. }
  973.  
  974. // finding statistic tables
  975. var mb_table = document.getElementsByClassName('b-result-classes')[0].getElementsByClassName('t-dotted')[0],
  976. or_table = document.getElementsByClassName('b-result')[0].getElementsByClassName('t-dotted')[0],
  977. bp_table = document.getElementsByClassName('b-result')[1].getElementsByClassName('t-dotted')[0],
  978. sm_ratio = document.getElementsByClassName('b-speedometer-ratio');
  979.  
  980. // fetching info, calculate averages and colourize
  981. var s = (function() {
  982. var days = (new Date() - new Date(document.getElementsByClassName('js-date-format')[0].getAttribute('data-timestamp')*1000))/1000/60/60/24,
  983. bats = filter(or_table.rows[0].cells[1].innerHTML,1),
  984. wins = filter(or_table.rows[1].cells[1].innerHTML.match(/([\d.,\s|&nbsp;]+\d+)\s/)[1],1),
  985. loss = filter(or_table.rows[2].cells[1].innerHTML.match(/([\d.,\s|&nbsp;]+\d+)\s/)[1],1),
  986. surv = filter(or_table.rows[3].cells[1].innerHTML.match(/([\d.,\s|&nbsp;]+\d+)\s/)[1],1),
  987. exp = filter(or_table.rows[4].cells[1].innerHTML,1),
  988. expA = filter(or_table.rows[5].cells[1].innerHTML,1),
  989. expM = filter(or_table.rows[6].cells[1].innerHTML,1),
  990. frag = filter(bp_table.rows[0].cells[1].innerHTML,1),
  991. spot = filter(bp_table.rows[1].cells[1].innerHTML,1),
  992. hits = parseFloat(bp_table.rows[2].cells[1].innerHTML.replace(/[,]/g,".")),
  993. dmgD = filter(bp_table.rows[3].cells[1].innerHTML,1),
  994. caps = filter(bp_table.rows[5].cells[1].innerHTML,1),
  995. defs = filter(bp_table.rows[6].cells[1].innerHTML,1),
  996. dths = filter(sm_ratio[0].innerHTML.match(/\/(.+)$/)[1],1),
  997. dmgR = filter(sm_ratio[1].innerHTML.match(/\/(.+)$/)[1],1),
  998. draw = bats-(wins+loss),
  999. aBats = bats/days,
  1000. aWins = (wins/bats)*100,
  1001. aLoss = (loss/bats)*100,
  1002. aDraw = (draw/bats)*100,
  1003. aSurv = (surv/bats)*100,
  1004. aFrag = frag/bats,
  1005. aDths = dths/bats,
  1006. aSpot = spot/bats,
  1007. aDmgD = dmgD/bats,
  1008. aDmgR = dmgR/bats,
  1009. aCaps = caps/bats,
  1010. aDefs = defs/bats,
  1011. aTier = vehTierTotal/vehBatsTotal,
  1012. winLR = wins/loss,
  1013. winsR = colStat(aWins, "wr", 2, "%" ),
  1014. lossR = colStat(aLoss, "wr", 2, "%" ),
  1015. survR = colStat(aSurv, "sr", 2, "%" ),
  1016. hitsR = colStat(hits, "hr", 2, "%" ),
  1017. drawR = colStat(aDraw, "", 2, "%" ),
  1018. batsC = colStat(bats, "bat", 0 ),
  1019. dmgTier = colStat(aDmgD/aTier, "dmg", 0, "", aDmgD);
  1020. return { days: days, bats: bats, wins: wins, loss: loss, surv: surv, exp: exp, expA: expA, expM: expM, frag: frag, spot: spot, hits: hits, dmgD: dmgD, caps: caps, defs: defs, dths: dths, dmgR: dmgR, draw: draw, aBats: aBats, aWins: aWins, aLoss: aLoss, aDraw: aDraw, aSurv: aSurv, aFrag: aFrag, aDths: aDths, aSpot: aSpot, aDmgD: aDmgD, aDmgR: aDmgR, aCaps: aCaps, aDefs: aDefs, aTier: aTier, winLR: winLR, winsR: winsR, lossR: lossR, survR: survR, hitsR: hitsR, drawR: drawR, batsC: batsC, dmgTier: dmgTier };
  1021. })();
  1022.  
  1023. // Finalize WN8 - e = expected, w = weighted, n = normalized
  1024. // all steps are stored in variables for console insertion
  1025. var eFrag = expStats.frag/vehBatsTotal,
  1026. eDmg = expStats.dmg/vehBatsTotal,
  1027. eSpot = expStats.spot/vehBatsTotal,
  1028. eDef = expStats.def/vehBatsTotal,
  1029. eWin = expStats.win/vehBatsTotal,
  1030. wFrag = s.aFrag/eFrag,
  1031. wDmg = s.aDmgD/eDmg,
  1032. wSpot = s.aSpot/eSpot,
  1033. wDef = s.aDefs/eDef,
  1034. wWin = s.aWins/eWin,
  1035. nWin = Math.max((wWin-0.71)/(1-0.71),0),
  1036. nDmg = Math.max((wDmg-0.22)/(1-0.22),0),
  1037. nFrag = Math.max(Math.min(nDmg+0.2,(wFrag-0.12)/(1-0.12)),0),
  1038. nSpot = Math.max(Math.min(nDmg+0.1,(wSpot-0.38)/(1-0.38)),0),
  1039. nDef = Math.max(Math.min(nDmg+0.1,(wDef-0.10)/(1-0.10)),0);
  1040.  
  1041. // calculate ratings
  1042. // WN8
  1043. var wn8 = (function() {
  1044. var frag = 210*nDmg*nFrag,
  1045. dmg = 980*nDmg,
  1046. spot = 155*nFrag*nSpot,
  1047. def = 75*nDef*nFrag,
  1048. win = 145*Math.min(1.8,nWin),
  1049. rating = frag+dmg+spot+def+win,
  1050. pct = 100, scale = 100;
  1051. if (rating<=colArr.sUni.wn8) {
  1052. pct = (rating/colArr.sUni.wn8)*100;
  1053. scale = Math.max(Math.min(rating*(rating*(rating*(rating*(rating*(0.00000000000000000007119*rating+0.0000000000000002334)-0.000000000006963)+0.00000002845)-0.00004558)+0.06565)-0.18,100),0);
  1054. }
  1055. return { frag: frag, dmg: dmg, spot: spot, def: def, win: win, rating: rating, pct: pct, scale: scale, ratingCol: colStat(rating,"wn8",2), scaleCol: colStat(scale,"wn8",2) };
  1056. })();
  1057. // WN7 - Legacy Support
  1058. var wn7 = (function() {
  1059. var frag = s.aFrag*(1240-1040/(Math.pow(Math.min(s.aTier,6),0.164))),
  1060. dmg = s.aDmgD*530/(184*Math.exp(0.24*s.aTier)+130),
  1061. spot = s.aSpot*125*Math.min(s.aTier,3)/3,
  1062. def = Math.min(2.2,s.aDefs)*100,
  1063. win = (((185/(0.17+Math.exp((s.aWins-35)*-0.134)))-500)*0.45),
  1064. norm = -Math.abs((((5-Math.min(s.aTier,5))*125)/(1+Math.exp(s.aTier-Math.pow(s.bats/220,3/s.aTier))*1.5))),
  1065. rating = frag+dmg+spot+def+win+norm,
  1066. pct = 100, scale = 100;
  1067. if (rating<=colArr.sUni.wn7) {
  1068. pct = (rating/colArr.sUni.wn7)*100;
  1069. scale = Math.max(Math.min(rating*(rating*(rating*(-0.0000000000083*rating+0.0000000287)-0.000024)+0.049)-2.7,100),0);
  1070. }
  1071. return { frag: frag, dmg: dmg, spot: spot, def: def, win: win, norm: norm, rating: rating, pct: pct, scale: scale, ratingCol: colStat(rating,"wn7",2), scaleCol: colStat(scale,"wn7",2) };
  1072. })();
  1073. // efficiency - improved
  1074. var eff = (function() {
  1075. var frag = s.aFrag*250,
  1076. dmg = s.aDmgD*(10/(s.aTier+2))*(0.23+2*s.aTier/100),
  1077. spot = s.aSpot*150,
  1078. cap = (Math.log(s.aCaps+1)/Math.log(1.732))*150,
  1079. def = s.aDefs*150,
  1080. rating = frag+dmg+spot+cap+def,
  1081. pct = 100, scale = 100;
  1082. if (rating<=colArr.sUni.eff) {
  1083. pct = (rating/colArr.sUni.eff)*100;
  1084. scale = Math.max(Math.min(rating*(rating*(rating*(rating*(rating*(0.000000000000000045254*rating-0.00000000000033131)+0.00000000094164)-0.0000013227)+0.00095664)-0.2598)+13.23,100),0);
  1085. }
  1086. return { frag: frag, dmg: dmg, spot: spot, cap: cap, def: def, rating: rating, pct: pct, scale: scale, ratingCol: colStat(rating,"eff",2), scaleCol: colStat(scale,"eff",2) };
  1087. })();
  1088. // end formula calculations and variables
  1089.  
  1090. // start modifying and enhancing the rest of the page
  1091. // removing elements
  1092. var layoutfix_class = document.getElementsByClassName('b-hr-layoutfix');
  1093. layoutfix_class[0].parentNode.removeChild(layoutfix_class[0]);
  1094. layoutfix_class[0].parentNode.removeChild(layoutfix_class[0]);
  1095.  
  1096. // profile wrapper
  1097. var profile_div = elem("div", "b-profile-wrpr", ""),
  1098. profileHead_div = elem("div", "b-profile-header", scriptlink);
  1099. profileName_class.lastElementChild.innerHTML += " - "+s.days.toFixed(0)+" "+loc.p03+".";
  1100. profileName_class.parentNode.insertBefore(profile_div, profileName_class.nextSibling);
  1101. profile_div.appendChild(profileHead_div);
  1102. profile_div.appendChild(profileName_class);
  1103.  
  1104. // profile header - check for missing battles and notify
  1105. var profileError_div = elem("div", "b-profile-error", "");
  1106. if (vehBatsTotal != s.bats) {
  1107. profileError_div.innerHTML = loc.p69;
  1108. profileError_div.style.display="inline-block";
  1109. colVehBatsTotal = "<span class='t-dotted_minor'>API:</span> <font color='CD3333'>"+filter(vehBatsTotal,2)+"</font>";
  1110. }
  1111. profileHead_div.insertBefore(profileError_div, profileHead_div.firstElementChild);
  1112.  
  1113. // button for saving stats to clipboard
  1114. var ratingsClipboard = loc.p72+" "+nick+": \n"+loc.p73+" "+s.bats+" \nWR: "+s.aWins.toFixed(2)+" \nWN8: "+wn8.rating.toFixed(2)+" \nWN7: "+wn7.rating.toFixed(2)+" \nEff: "+eff.rating.toFixed(2),
  1115. ratingsClipboard_div = elem("div", "b-ratingsClip", "<div class='ratingsClip-holder js-noobmeter' style='display:none;'>"+ratingsClipboard+"</div><div class='ratingsClip-holder' style='display:none;'>"+loc.p64+"</div><a class='b-ratingsButton' onclick='copyClipboard()'>"+loc.p63+"</a>");
  1116. profileHead_div.insertBefore(ratingsClipboard_div, profileHead_div.firstElementChild.nextSibling);
  1117.  
  1118. // background behind profile wrapper
  1119. var background_div = elem("div", "b-background", "<img src='"+css.c08+"'>");
  1120. background_div.style.background = colRat.wn8;
  1121. profile_div.parentNode.insertBefore(background_div, profile_div);
  1122.  
  1123. // page navigation
  1124. var lcontent_class = document.getElementsByClassName('l-content')[0],
  1125. dropdown_class = document.getElementsByClassName('wrapper-dropdown')[0],
  1126. topNav_div = elem("div", "b-profile-nav", "<a id='top' href='#bottom'><span>"+loc.p01+"</span></a>"),
  1127. bottomNav_div = elem("div", "b-profile-nav", "<a id='bottom' href='#top'><span>"+loc.p02+"</span></a>");
  1128. dropdown_class.appendChild(topNav_div);
  1129. lcontent_class.appendChild(bottomNav_div);
  1130.  
  1131. // player statistic links
  1132. var nm_url = "http://noobmeter.com/player/"+nm_srv+"/"+nick+"/"+userid,
  1133. wl_player = "", nm_player = "", wn_player = "", ws_player = "", cs_player = "", wlife_player = "", signature = "", replays_player = "";
  1134. if (!!wl_srv) {
  1135. wl_player = "<td><a target='_blank' href='http://wotlabs.net/"+wl_srv+"/player/"+nick+"'>WoTLabs</a></td>";
  1136. signature = "<tr><td class='statname'>"+loc.p05+"</td><td><a target='_blank' href='http://wotlabs.net/sig/"+wl_srv+"/"+nick+"/signature.png'>"+loc.p06+"</a></td>"
  1137. + "<td><a target='_blank' href='http://wotlabs.net/sig_dark/"+wl_srv+"/"+nick+"/signature.png'>"+loc.p07+"</a></td></tr>";
  1138. }
  1139. if (!!nm_srv) {
  1140. nm_player = "<td><a target='_blank' href='"+nm_url+"'>Noobmeter</a></td>";
  1141. }
  1142. if (!!wn_srv) {
  1143. wn_player = "<td><a target='_blank' href='http://wot-news.com/stat/pstat/"+wn_srv+"/"+nick+"/'>Wot-news</a></td>";
  1144. }
  1145. if (!!ws_srv) {
  1146. ws_player = "<td><a target='_blank' href='http://www.wotstats.org/stats/"+ws_srv+"/"+nick+"/'>WoTstats</a></td>";
  1147. }
  1148. if (!!cs_srv) {
  1149. cs_player = "<td><a target='_blank' href='http://wotcs.com/player.php?wid="+userid+"'>WoT-CS</a></td>";
  1150. }
  1151. if (!!wlife_srv) {
  1152. wlife_player = "<td><a target='_blank' href='http://en.wot-life.com/"+wlife_srv+"/player/"+nick+"/'>WoT-Life</a></td>";
  1153. }
  1154. if (!!wr_srv) {
  1155. replays_player = "<tr><td class='statname'>"+loc.p08+"</td><td><a target='_blank' href='http://wotreplays."+wr_srv+"/player/"+nick+"'>WoTReplays</a></td></tr>";
  1156. }
  1157. var playerstat = "<tr><td class='statname'>"+loc.p04+"</td>"+wl_player+nm_player+wn_player+"</tr><tr><td></td>"+ws_player+cs_player+wlife_player+"</tr>";
  1158. if (playerstat.length > 66) {
  1159. profileName_class.innerHTML += "<table class='t-profile-table'>"+playerstat+signature+replays_player+"</table>";
  1160. }
  1161.  
  1162. // player history
  1163. var clanHist_table = elem("table", "t-clanHistory-wrpr", ""),
  1164. clanHist_row = elem("tr", "", "<td class='clan-name'>"+loc.p74+"</td>");
  1165. clanHist_table.appendChild(clanHist_row);
  1166. profile_div.appendChild(clanHist_table);
  1167.  
  1168. // clan handler caller - clan container is delayed by Wargaming
  1169. clanHnd();
  1170.  
  1171. // move victory points
  1172. var gp_class = document.getElementById('js-glory-points-block');
  1173. if (gp_class) {
  1174. profile_div.appendChild(gp_class);
  1175. }
  1176.  
  1177. // move sidebar
  1178. profile_div.appendChild(sidebar_class);
  1179. // end profile wrapper
  1180.  
  1181. // personal data - modify data
  1182. var pTable_class = document.getElementsByClassName('t-personal-data')[0],
  1183. pT_avgxp_name = elem("th", "t-personal-data_ico t-personal-data_ico__exp", loc.p11),
  1184. pT_avgxp_value = elem("td", "t-personal-data_value", filter(s.expA,2)),
  1185. pT_avgtier_name = elem("th", "t-personal-data_ico t-personal-data_ico__tier", loc.p12),
  1186. pT_avgtier_value = elem("td", "t-personal-data_value", s.aTier.toFixed(2));
  1187. pTable_class.rows[0].cells[0].innerHTML = loc.p09;
  1188. pTable_class.rows[0].cells[1].innerHTML = loc.p10;
  1189. pTable_class.rows[0].cells[1].parentNode.insertBefore(pT_avgxp_name, pTable_class.rows[0].cells[1].nextSibling);
  1190. pTable_class.rows[0].cells[4].innerHTML = loc.p70;
  1191. pTable_class.rows[0].cells[4].className = "t-personal-data_ico t-personal-data_ico__hitrate";
  1192. pTable_class.rows[0].cells[5].innerHTML = loc.p71;
  1193. pTable_class.rows[0].appendChild(pT_avgtier_name);
  1194. pTable_class.rows[1].cells[0].innerHTML = s.winsR;
  1195. pTable_class.rows[1].cells[1].innerHTML = s.batsC;
  1196. pTable_class.rows[1].cells[1].parentNode.insertBefore(pT_avgxp_value, pTable_class.rows[1].cells[1].nextSibling);
  1197. pTable_class.rows[1].cells[3].innerHTML = s.hitsR;
  1198. pTable_class.rows[1].cells[4].innerHTML = s.dmgTier;
  1199. pTable_class.rows[1].appendChild(pT_avgtier_value);
  1200.  
  1201. // speedometer - win/loss ratio
  1202. var sm_body_class = document.getElementsByClassName('b-speedometer-body')[0],
  1203. sm_wr_weight = (isFinite(s.winLR)) ? s.winLR.toFixed(2) : 1,
  1204. sm_wr_arrow = (isFinite(s.winLR)) ? Math.min(30*(s.winLR-1),31) : 0,
  1205. sm_wr_div = elem("div", "b-speedometer", "<div class='b-speedometer-arrow' data-deg='"+sm_wr_arrow+"' style='transform: rotate("+sm_wr_arrow+"deg); -webkit-transform: rotate("+sm_wr_arrow+"deg); -ms-transform: rotate("+sm_wr_arrow+"deg);'></div><div class='b-speedometer-round'></div><p class='b-speedometer-title'>"+loc.p13+"</p><p class='b-speedometer-weight'>"+sm_wr_weight+"</p><p class='b-speedometer-ratio'>"+filter(s.wins,2)+" / "+filter(s.loss,2)+"</p>");
  1206. sm_body_class.appendChild(sm_wr_div);
  1207.  
  1208. // performance ratings wrapper
  1209. var ratings_div = elem("div", "b-ratings-wrpr", ""),
  1210. ratingsHeader_div = elem("div", "b-head-block", "<h3>"+loc.p14+"</h3>"),
  1211. ratingsInfo_div = elem("div", "b-ratings-info", ""),
  1212. ratingsInfo_table = elem("table", "t-ratings-info", "<thead><tr><th><a href='http://wiki.wnefficiency.net/pages/WN8' target='_blank'>"+loc.p15+"</a></th><th>"+loc.p30+"</th><th>"+loc.p16+"</th><th><a class='rating-url_nm' target='_blank' href="+nm_url+">"+loc.p17+"</a></th></tr></thead><tbody><tr><td class='js-wnscript'>"+wn8.ratingCol+"</td><td>"+wn7.ratingCol+"</td><td>"+eff.ratingCol+"</td><td class='js-noobmeter'>"+loc.p18+"</td></tr></tbody>"),
  1213. ub_class = document.getElementsByClassName('b-userblock-wrpr')[0];
  1214. ratings_div.appendChild(ratingsHeader_div);
  1215. ratings_div.appendChild(ratingsInfo_div);
  1216. ratingsInfo_div.appendChild(ratingsInfo_table);
  1217. ub_class.parentNode.insertBefore(ratings_div, ub_class.nextSibling);
  1218.  
  1219. // create and populate performance rating calculations table
  1220. var rTable_div = elem("div", "ratings-table", "<h3>"+loc.p19+"</h3>"),
  1221. rTable = elem("table", "t-table-ratings", ""),
  1222. rTHead = elem("thead", "", "<tr><th>"+loc.p20+"</th><th>"+loc.p21+"</th><th>"+loc.p22+"</th><th>"+loc.p23+"</th><th>"+loc.p24+"</th><th>"+loc.p25+"</th><th>"+loc.p26+"</th><th>"+loc.p27+"</th><th>"+loc.p28+"</th></tr>"),
  1223. rTBody = document.createElement('tbody');
  1224. ratings_div.appendChild(rTable_div);
  1225. rTable_div.appendChild(rTable);
  1226. rTable.appendChild(rTHead);
  1227. rTable.appendChild(rTBody);
  1228. // ratings array
  1229. var ratingsArr = [
  1230. // Formula RatingPct Localized TotalColored ScaleColored Frag Dmg Spot Cap Def Win
  1231. ["wn8", wn8.pct, loc.p29, wn8.ratingCol, wn8.scaleCol, wn8.frag.toFixed(2), wn8.dmg.toFixed(2), wn8.spot.toFixed(2), "–", wn8.def.toFixed(2), wn8.win.toFixed(2)],
  1232. ["wn7", wn7.pct, loc.p30, wn7.ratingCol, wn7.scaleCol, wn7.frag.toFixed(2), wn7.dmg.toFixed(2), wn7.spot.toFixed(2), "–", wn7.def.toFixed(2), wn7.win.toFixed(2)],
  1233. ["eff", eff.pct, loc.p31, eff.ratingCol, eff.scaleCol, eff.frag.toFixed(2), eff.dmg.toFixed(2), eff.spot.toFixed(2), eff.cap.toFixed(2), eff.def.toFixed(2), "–" ]
  1234. ];
  1235. for (var i=0; i<ratingsArr.length; ++i) {
  1236. var rRow = document.createElement('tr');
  1237. rTBody.appendChild(rRow);
  1238. for (var j=2; j<ratingsArr[i].length; ++j) {
  1239. var rCell = elem("td", "td-center", ratingsArr[i][j]);
  1240. rRow.appendChild(rCell);
  1241. }
  1242. var rmRow = elem("tr", "td-center", "<td class='td-rating-meter' colspan='9'><div class='rating-meter rating-meter_"+ratingsArr[i][0]+"'><div class='rating-meter-dail_line' style='width:"+ratingsArr[i][1]+"%;'><div class='rating-meter-marker'></div></div></div></td>");
  1243. rTBody.appendChild(rmRow);
  1244. }
  1245.  
  1246. // link to WN thread
  1247. ratings_div.innerHTML += "<div class='wnelink'><a class ='b-orange-arrow wnelink_info' target='_blank' href='http://wiki.wnefficiency.net/pages/WN_Efficiency_Wiki'>"+loc.p32+"</a></div>";
  1248.  
  1249. // end performance ratings wrapper
  1250.  
  1251. // statistics wrapper
  1252. var statistics_div = document.getElementsByClassName('b-result-classes')[0].parentNode;
  1253. statistics_div.className = "b-statistics-wrpr";
  1254. ratings_div.parentNode.insertBefore(statistics_div, ratings_div.nextSibling);
  1255.  
  1256. // clean the old tables ( master badges, overall results and battle performance )
  1257. mb_table.innerHTML = "";
  1258. or_table.innerHTML = "";
  1259. bp_table.innerHTML = "";
  1260.  
  1261. // populating the tables
  1262. insertNewTr(mb_table, "<img src='"+css.c09+"'>", loc.p33, vehBadges[4].c+"<span>("+vehBadges[4].p+"%)</span>");
  1263. insertNewTr(mb_table, "<img src='"+css.c10+"'>", loc.p34, vehBadges[3].c+"<span>("+vehBadges[3].p+"%)</span>");
  1264. insertNewTr(mb_table, "<img src='"+css.c11+"'>", loc.p35, vehBadges[2].c+"<span>("+vehBadges[2].p+"%)</span>");
  1265. insertNewTr(mb_table, "<img src='"+css.c12+"'>", loc.p36, vehBadges[1].c+"<span>("+vehBadges[1].p+"%)</span>");
  1266. insertNewTr(mb_table, "<img src='"+css.ubadgeN+"'>", loc.p37, vehBadges[0].c+"<span>("+vehBadges[0].p+"%)</span>");
  1267. insertNewTr(mb_table, "<img src='"+css.ubadgeT+"'>", loc.p38, vehBadges[5].c+"<span>("+vehBadges[5].p+"%)</span>");
  1268. insertNewTr(or_table, loc.p39, filter(s.bats,2), colVehBatsTotal);
  1269. insertNewTr(or_table, loc.p40, filter(s.wins,2), "("+s.winsR+")");
  1270. insertNewTr(or_table, loc.p41, filter(s.loss,2), "("+s.lossR+")");
  1271. insertNewTr(or_table, loc.p42, filter(s.draw,2), "("+s.drawR+")");
  1272. insertNewTr(or_table, loc.p43, filter(s.surv,2), "("+s.survR+")");
  1273. insertNewTr(or_table, loc.p44, "", s.aBats.toFixed(2) );
  1274. insertNewTr(or_table, loc.p45, "", filter(s.exp,2));
  1275. insertNewTr(or_table, loc.p46, "", filter(s.expA,2));
  1276. insertNewTr(or_table, loc.p47, "", filter(s.expM,2));
  1277. insertNewTr(bp_table, loc.p48, filter(s.frag,2), s.aFrag.toFixed(2));
  1278. insertNewTr(bp_table, loc.p49, filter(s.dths,2), s.aDths.toFixed(2));
  1279. insertNewTr(bp_table, loc.p50, filter(s.spot,2), s.aSpot.toFixed(2));
  1280. insertNewTr(bp_table, loc.p51, "", s.hitsR);
  1281. insertNewTr(bp_table, loc.p52, filter(s.dmgD,2), s.dmgTier);
  1282. insertNewTr(bp_table, loc.p53, filter(s.dmgR,2), filter(s.aDmgR.toFixed(0),2));
  1283. insertNewTr(bp_table, loc.p54, filter(s.caps,2), s.aCaps.toFixed(2));
  1284. insertNewTr(bp_table, loc.p55, filter(s.defs,2), s.aDefs.toFixed(2));
  1285. insertNewTr(bp_table, loc.p56, "", s.aTier.toFixed(2));
  1286.  
  1287. // cake diagrams - adding tier diagram
  1288. var diagSector_class = document.getElementsByClassName('b-diagrams-sector')[0],
  1289. diagTier_div = elem("div", "b-diagram-block b-diagram-tiers js-diagram-block", "<h3>"+loc.p57+"</h3><div class='b-diagram-wrpr'><div class='b-diagram' id='holder-mechanism-tier'></div><div class='b-diagram-round js-diagram-round'><span class='b-diagram-round_title'></span><span class='b-diagram-round_value js-result'>"+vehAmount+"</span></div></div>"),
  1290. diagTier_table = elem("table", "t-dotted t-dotted__diagram js-diagram-mechanism-legend", ""),
  1291. diagTier_td = 0,
  1292. diagTierColorArr = ["496877","2b591f","831818","303766","814f07","1A775F","B0D23A","763D46","936C19","471952"];
  1293. diagTier_div.appendChild(diagTier_table);
  1294. diagSector_class.firstElementChild.parentNode.insertBefore(diagTier_div, diagSector_class.firstElementChild.nextSibling);
  1295. for (var i in vehTiers) {
  1296. if (vehTiers.hasOwnProperty(i)) {
  1297. var diagTierColor = diagTierColorArr[diagTier_td];
  1298. diagTier_td ++;
  1299. if (vehTiers[i].c !== 0) {
  1300. diagTier_table.innerHTML += "<tr><td class='t-dotted_diagram-first'><span class='t-dotted_diagram-bg'></span></td><td><span class='t-dotted_diagram-bg'><span class='t-dotted_diagram-info'><span class='t-diagram_battle'>"+filter(vehTiers[i].b,2)+"</span><span class='t-dotted_diagram-percent'>(<span class=''>"+(vehTiers[i].b/s.bats*100).toFixed(2)+"%</span>)</span><span class='t-diagram_tiers js-results'>"+vehTiers[i].c+"</span><span class='t-dotted_diagram-percent'>(<span class='js-value'>"+(vehTiers[i].c/vehAmount*100).toFixed(2)+"%</span>)</span></span><span class='b-diagram-ico b-diagram-ico_tier b-diagram-ico_tier-"+diagTier_td+"'>"+loc.p58+" "+diagTier_td+"</span></span></td><td class='t-dotted_diagram-last'><span class='t-dotted_diagram-bg'><span class='js-colors'>#"+diagTierColor+"</span></span></td></tr>";
  1301. }
  1302. }
  1303. }
  1304. diagSector_class.firstElementChild.innerHTML += "<div class='b-diagram-total'><h3>"+loc.p59+" "+vehAmount+"</h3></div>";
  1305. // fix for cake diagram in chrome
  1306. if (navChrome) {
  1307. $('.js-diagram-block').each(function() { var items = [], values = [], labels = [], colors = [], results = [], legend, result, holder; holder = $('.b-diagram', this).attr('id'); $('.js-diagram-mechanism-legend tr', this).each(function () { items.push($(this)); values.push(parseInt($('.js-value', this).text(), 10)); labels.push($('.js-label', this).text()); colors.push($('.js-colors', this).text()); results.push($('.js-results', this).text()); legend = $('.js-diagram-mechanism-legend'); result = $('#' + holder).next().find('.js-result'); }); new Raphael(holder, 630, 630).pieChart(65, 65.5, 53.5, items, values, colors, results, legend, result); });
  1308. }
  1309.  
  1310. // achievements wrapper
  1311. var medal_div = elem("div", "b-achievements-wrpr", ""),
  1312. medalHeader_div = elem("div", "b-head-block", ""),
  1313. medalHeader_class = document.getElementsByClassName('js-achievements-header')[0],
  1314. medalClassArr = ["b-profile-item-empty","js-achivements-showhide","js-short-achievements","js-full-achievements"];
  1315. medalHeader_div.appendChild(medalHeader_class);
  1316. medal_div.appendChild(medalHeader_div);
  1317. for (i=0; i<medalClassArr.length; ++i) {
  1318. var medalChild = document.getElementsByClassName(medalClassArr[i])[0];
  1319. if (!!medalChild) {
  1320. medal_div.appendChild(medalChild);
  1321. }
  1322. }
  1323. diagSector_class.parentNode.insertBefore(medal_div, diagSector_class.nextSibling);
  1324.  
  1325. // vehicles wrapper
  1326. var vehTable_class = document.getElementsByClassName('t-profile t-profile__vehicle')[0],
  1327. vehicles_div = elem("div", "b-vehicles-wrpr", ""),
  1328. vehiclesHeader_div = elem("div", "b-vehicles-header", "<a class='b-orange-arrow b-profile-ratings_link' target='_blank' href='/encyclopedia/vehicles/'>"+loc.p60+"</a><span class='b-profile-vehicles-tankstat'><a class='b-orange-arrow b-profile-ratings_link b-profile-vehicles-tankstat_link' target='_blank' href='http://www.noobmeter.com/tankStats/"+nm_srv+"'>"+loc.p61+"</a></span>"),
  1329. vehicles_h3_class = vehTable_class.previousElementSibling.previousElementSibling;
  1330. vehicles_h3_class.className = "b-profile-ratings_title";
  1331. vehiclesHeader_div.insertBefore(vehicles_h3_class, vehiclesHeader_div.firstChild);
  1332. vehicles_div.appendChild(vehiclesHeader_div);
  1333. vehTable_class.parentNode.insertBefore(vehicles_div, vehTable_class);
  1334. vehicles_div.appendChild(vehTable_class);
  1335. // add a premium tanks table to the vehicle table
  1336. var premHBody = document.createElement('tbody'),
  1337. premTBody = document.createElement('tbody');
  1338. vehTable_class.appendChild(premHBody);
  1339. if (premArr.length === 0) {
  1340. premHBody.innerHTML = "<tr class='t-profile_tankstype t-profile_tankstype-prem t-profile_tankstype__empty'><td width='388' class='t-profile_head'><span class='b-tankstype-ico b-tankstype-ico__prem'></span><span class='b-tankstype-text'>"+loc.p62+" </span></td><td class='t-profile_right'>&ndash;</td><td class='t-profile_center'>&ndash;</td><td class='t-profile_center'>&ndash;</td><td class='t-profile_dropdown-ico'><!-- empty --></td></tr>";
  1341. }
  1342. else {
  1343. premHBody.className = "tablesorter-no-sort";
  1344. premHBody.innerHTML = "<tr class='t-profile_tankstype t-profile_tankstype-prem js-table-dropdown-link'><td width='388' class='t-profile_head'><span class='b-tankstype-ico b-tankstype-ico__prem'></span><span class='b-tankstype-text'>"+loc.p62+" <span class='b-armory-col'>"+premArr.length+"</span></span></td><td class='t-profile_right'>"+filter(tierStats.p.b,2)+"</td><td class='t-profile_center'>"+colStat((tierStats.p.w/tierStats.p.b)*100, "wrv", 0, "%")+"<span>"+filter(tierStats.p.w,2)+"</span></td><td class='t-profile_center'>"+tierStats.p.bg+"</td><td class='t-profile_dropdown-ico'><a title='Show/hide vehicles' class='t-profile_dropdown-link' href=''></a></td></tr>";
  1345. premTBody.className = "sortable";
  1346. premTBody.style.display="none";
  1347. vehTable_class.appendChild(premTBody);
  1348. for (var i=0; i<premArr.length; ++i) {
  1349. premTBody.appendChild(premArr[i][0]);
  1350. premTBody.appendChild(premArr[i][1]);
  1351. }
  1352. }
  1353. // add a tier 10 table to the vehicle table
  1354. var tenHBody = document.createElement('tbody'),
  1355. tenTBody = document.createElement('tbody');
  1356. vehTable_class.appendChild(tenHBody);
  1357. if (tenArr.length === 0) {
  1358. tenHBody.innerHTML = "<tr class='t-profile_tankstype t-profile_tankstype__empty'><td width='388' class='t-profile_head'><span class='b-tankstype-ico b-tankstype-ico__ten'>✖</span><span class='b-tankstype-text'>"+loc.p68+" </span></td><td class='t-profile_right'>&ndash;</td><td class='t-profile_center'>&ndash;</td><td class='t-profile_center'>&ndash;</td><td class='t-profile_dropdown-ico'><!-- empty --></td></tr>";
  1359. }
  1360. else {
  1361. tenHBody.className = "tablesorter-no-sort";
  1362. tenHBody.innerHTML = "<tr class='t-profile_tankstype js-table-dropdown-link'><td width='388' class='t-profile_head'><span class='b-tankstype-ico b-tankstype-ico__ten'>✖</span><span class='b-tankstype-text'>"+loc.p68+" <span class='b-armory-col'>"+tenArr.length+"</span></span></td><td class='t-profile_right'>"+filter(tierStats.t.b,2)+"</td><td class='t-profile_center'>"+colStat((tierStats.t.w/tierStats.t.b)*100, "wrv", 0, "%")+"<span>"+filter(tierStats.t.w,2)+"</span></td><td class='t-profile_center'>"+tierStats.t.bg+"</td><td class='t-profile_dropdown-ico'><a title='Show/hide vehicles' class='t-profile_dropdown-link' href=''></a></td></tr>";
  1363. tenTBody.className = "sortable";
  1364. tenTBody.style.display="none";
  1365. vehTable_class.appendChild(tenTBody);
  1366. for (var i=0; i<tenArr.length; ++i) {
  1367. tenTBody.appendChild(tenArr[i][0]);
  1368. tenTBody.appendChild(tenArr[i][1]);
  1369. }
  1370. }
  1371. // end vehicles wrapper
  1372.  
  1373. // debugging to browser console
  1374. console.info("Browser Info: ", navigator.appCodeName+" - "+navigator.appName+" - "+navigator.userAgent);
  1375. console.info("WN8 Calculation:");
  1376. console.info("Expected:\n", "eFrag: ", eFrag, "- eDmg: ", eDmg, "- eSpot: ", eSpot, "- eDef: ", eDef, "- eWin: ", eWin );
  1377. console.info("Actual:\n", "aFrag: ", s.aFrag, "- aDmg: ", s.aDmgD, "- aSpot: ", s.aSpot, "- aDef: ", s.aDefs, "- aWin: ", s.aWins);
  1378. console.info("Weighted:\n", "wFrag: ", wFrag, "- wDmg: ", wDmg, "- wSpot: ", wSpot, "- wDef: ", wDef, "- wWin: ", wWin );
  1379. console.info("Normalized:\n", "nFrag: ", nFrag, "- nDmg: ", nDmg, "- nSpot: ", nSpot, "- nDef: ", nDef, "- nWin: ", nWin );
  1380. console.info("Vehicle Info:\n", vehList);
  1381. console.info("Tier Info:\n", vehTiers);
  1382. console.info(ratingsClipboard);
  1383.  
  1384. // retrieve and process info from external source
  1385. var gRecProps = [];
  1386. // noobmeter retrieval
  1387. if (!!nm_srv) {
  1388. var nmApi_url = "http://noobmeter.com/simpleplayerprapi/"+nm_srv+"/"+nick+"/"+userid+"/"+nm_id;
  1389. gRecProps.push({url: nmApi_url, handler: nmHnd, onerror: nmHnd_error, nav: true});
  1390. }
  1391. // clan history retrieval
  1392. if (!!cs_srv) {
  1393. var chApi_url = "http://clanapi-wotcs-eu.herokuapp.com/players/"+userid+"/changes";
  1394. gRecProps.push({url: chApi_url, handler: chHnd, onerror: chHnd_error, nav: true});
  1395. }
  1396. // delayed insertion
  1397. for (var i=0; i<gRecProps.length; ++i) {
  1398. var doc = gRecProps[i];
  1399. if (doc.nav) gRec(doc);
  1400. }
  1401. }
  1402. else {
  1403. profileName_class.innerHTML += "<div style='width: 950px; top: -15px; text-align: center; position: absolute;'>"+loc.p65+"</div>";
  1404. }
  1405. // end tableBattles
  1406. }
  1407. // end wg_accounts
  1408. // matches url with clan page
  1409. else if (wg_clans !== null) {
  1410. // style contents
  1411. style.innerHTML
  1412. = ".b-scriptlink {font-size: 12px; padding: 6px 10px 5px;}"
  1413. + ".clan_info {display: inline-block; margin-left: 18px; max-width: 500px;}"
  1414. + ".clan-links {float: right;}"
  1415. + ".clan-links li.statname {margin: 0;}"
  1416. + ".clan-links li {margin-left: 10px;}"
  1417. + "";
  1418. // end style
  1419.  
  1420. // script link
  1421. var clanHead_div = elem("li", "global-nav__item", scriptlink),
  1422. navService_class = document.getElementsByClassName('global-nav__service')[0];
  1423. navService_class.insertBefore(clanHead_div, navService_class.firstChild);
  1424.  
  1425. // clan statistic links
  1426. var clan_class = document.getElementsByClassName('clan')[1],
  1427. clan_id = document.location.href.match(/\/(\d+)/)[1],
  1428. clan_name = document.getElementsByClassName('js-clan-tag')[0].innerHTML.match(/\w+/)[0],
  1429. wl_clan = "", nm_clan = "", wn_clan = "", wlife_clan = "", wotcs_clan = "", replays_clan = "";
  1430. if (!!wl_srv) {
  1431. wl_clan = "<li><a target='_blank' href='http://wotlabs.net/"+wl_srv+"/clan/"+clan_name+"'>WoTLabs</a></li>";
  1432. }
  1433. if (!!nm_srv) {
  1434. nm_clan = "<li><a target='_blank' href='http://noobmeter.com/clan/"+nm_srv+"/"+clan_name+"/"+clan_id+"'>Noobmeter</a></li>";
  1435. }
  1436. if (!!wn_srv) {
  1437. wn_clan = "<li><a target='_blank' href='http://wot-news.com/stat/clanstat/"+wn_srv+"/"+clan_id+"/'>Wot-news</a></li>";
  1438. }
  1439. if (!!cs_srv) {
  1440. wotcs_clan = "<li><a target='_blank' href='http://wotcs.com/clan.php?wid="+clan_id+"'>WoT-CS</a></li>";
  1441. }
  1442. if (!!wlife_srv) {
  1443. wlife_clan = "<li><a target='_blank' href='http://en.wot-life.com/"+wlife_srv+"/clan/"+clan_name+"-"+clan_id+"/'>WoT-Life</a></li>";
  1444. }
  1445. if (!!wr_srv) {
  1446. replays_clan = "<li class='statname'>"+loc.p67+"</li><li><a target='_blank' href='http://wotreplays."+wr_srv+"/clan/"+clan_name+"'>WoTReplays</a></li>";
  1447. }
  1448. var clanStat_table = elem("ul", "clan-links", "<li class='statname'>"+loc.p66+"</li>"+wl_clan+nm_clan+wn_clan+wotcs_clan+wlife_clan+replays_clan);
  1449. clan_class.appendChild(clanStat_table);
  1450. }
  1451. // end wg_clans
  1452.  
  1453. // helper functions
  1454. // filter
  1455. function filter(input, type) {
  1456. var inputStr = input.toString();
  1457. switch(type) {
  1458. case (1): // input string into number
  1459. return parseFloat(inputStr.replace(/[^\d]/g,""));
  1460. case (2): // output number with locale symbol
  1461. return inputStr.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1"+loc.sym);
  1462. case (3): // remove all symbols
  1463. return inputStr.replace(/[^\w]/g,"");
  1464. default:
  1465. console.log("error filtering: ", input);
  1466. return input;
  1467. }
  1468. }
  1469.  
  1470. // colouring
  1471. function colStat(input, type, dec, sym, ext) {
  1472. var color = colArr.dft.col,
  1473. output = input.toFixed(dec);
  1474. if (sym) {
  1475. output += sym;
  1476. }
  1477. else if (type == "bat") {
  1478. output = filter(input,2);
  1479. }
  1480. else if (type == "dmg") {
  1481. output = filter(ext.toFixed(0),2);
  1482. }
  1483. if (type !== "") {
  1484. if (colRat[type]) {
  1485. color = colRat[type];
  1486. }
  1487. else if (type == "wrv") {
  1488. type = "wr";
  1489. for (var x in colArr){
  1490. if (colArr.hasOwnProperty(x)) {
  1491. if (input >= colArr[x][type]) {
  1492. color = colArr[x].col;
  1493. break;
  1494. }
  1495. }
  1496. }
  1497. }
  1498. else {
  1499. for (var x in colArr){
  1500. if (colArr.hasOwnProperty(x)) {
  1501. if (input >= colArr[x][type]) {
  1502. color = colArr[x].col;
  1503. break;
  1504. }
  1505. }
  1506. }
  1507. colRat[type] = color;
  1508. }
  1509. }
  1510. return "<font color='"+color+"'>"+output+"</font>";
  1511. }
  1512. // quick creation of element
  1513. function elem(tag, name, html, type) {
  1514. var element = document.createElement(tag);
  1515. if (name) {element.className = name;}
  1516. if (html) {element.innerHTML = html;}
  1517. if (type) {element.type = type;}
  1518. return element;
  1519. }
  1520.  
  1521. // quick insertion of row into tables
  1522. function insertNewTr(table_parent, text_td, val_td, val2_td) {
  1523. var trNew = document.createElement('tr'),
  1524. tdNew_text = elem("td", "t-dotted_minor", text_td),
  1525. tdNew_value = elem("td", "t-dotted_value", val_td);
  1526. table_parent.appendChild(trNew);
  1527. trNew.appendChild(tdNew_text);
  1528. trNew.appendChild(tdNew_value);
  1529. if (table_parent == mb_table) {
  1530. tdNew_text.className = "t-dotted_class-ico t-dotted_minor__middle";
  1531. tdNew_value.className = "t-dotted_minor t-dotted_minor__middle";
  1532. }
  1533. if (val2_td !== "") {
  1534. var tdNew_value2 = elem("td", "t-dotted_value", val2_td);
  1535. if (table_parent == mb_table) {
  1536. tdNew_value2.className = "t-dotted_value t-dotted_minor__middle";
  1537. }
  1538. trNew.appendChild(tdNew_value2);
  1539. }
  1540. return trNew;
  1541. }
  1542. // end helper functions
  1543.  
  1544. // clan handler
  1545. function clanHnd() {
  1546. var cc_class = document.getElementById('js-clan-block-container'),
  1547. cc_classCheckSeq = 0,
  1548. cc_classChecker = setInterval(function() {
  1549. var ci_class = document.getElementById('js-profile-clan'),
  1550. ct_class = document.getElementById('js-profile-clan-table');
  1551. cc_classCheckSeq ++;
  1552. if (ci_class !== null && ct_class === null) {
  1553. // clan info
  1554. var cl_class = ci_class.getElementsByTagName('a')[1],
  1555. clan_id = cl_class.getAttribute('href').match(/\/(\d+)/)[1],
  1556. clan_name = cl_class.getElementsByTagName('span')[0].innerHTML.match(/[\w.+\-]+/)[0];
  1557.  
  1558. // clan statistic links
  1559. var wl_clan = "", nm_clan = "", wn_clan = "", wlife_clan = "", wotcs_clan = "", replays_clan = "";
  1560. if (!!wl_srv) {
  1561. wl_clan = "<td><a target='_blank' href='http://wotlabs.net/"+wl_srv+"/clan/"+clan_name+"'>WoTLabs</a></td>";
  1562. }
  1563. if (!!nm_srv) {
  1564. nm_clan = "<td><a target='_blank' href='http://noobmeter.com/clan/"+nm_srv+"/"+clan_name+"/"+clan_id+"'>Noobmeter</a></td>";
  1565. }
  1566. if (!!wn_srv) {
  1567. wn_clan = "<td><a target='_blank' href='http://wot-news.com/stat/clanstat/"+wn_srv+"/"+clan_id+"/'>Wot-news</a></td>";
  1568. }
  1569. if (!!cs_srv) {
  1570. wotcs_clan = "<td><a target='_blank' href='http://wotcs.com/clan.php?wid="+clan_id+"'>WoT-CS</a></td>";
  1571. }
  1572. if (!!wlife_srv) {
  1573. wlife_clan = "<td><a target='_blank' href='http://en.wot-life.com/"+wlife_srv+"/clan/"+clan_name+"-"+clan_id+"/'>WoT-Life</a></td>";
  1574. }
  1575. if (!!wr_srv) {
  1576. replays_clan = "<td class='statname'>"+loc.p67+"</td><td><a target='_blank' href='http://wotreplays."+wr_srv+"/clan/"+clan_name+"'>WoTReplays</a></td>";
  1577. }
  1578. var clanstat = "<tr><td class='statname'>"+loc.p66+"</td>"+wl_clan+nm_clan+wn_clan+"</tr><tr><td></td>"+wotcs_clan+wlife_clan+"</tr><tr>"+replays_clan+"</tr>";
  1579. cc_class.innerHTML += "<table id='js-profile-clan-table'>"+clanstat+"</table>";
  1580. profileName_class.parentNode.insertBefore(cc_class, profileName_class.nextSibling);
  1581. clearInterval(cc_classChecker);
  1582. }
  1583. else if (cc_classCheckSeq == 5 || ct_class !== null) {
  1584. clearInterval(cc_classChecker);
  1585. }
  1586. }, 2500);
  1587. }
  1588.  
  1589. // noobmeter handler
  1590. function nmHnd(response) {
  1591. if (response.statusText == "OK" && !isNaN(parseFloat(response.responseText))) {
  1592. nmHnd_insert(parseFloat(response.responseText));
  1593. }
  1594. else {
  1595. nmHnd_error();
  1596. }
  1597. }
  1598. function nmHnd_error() {
  1599. nmHnd_insert(loc.p75);
  1600. console.log("error accessing NoobMeter API");
  1601. }
  1602. function nmHnd_insert(nm) {
  1603. var ratingsInfo_div = document.getElementsByClassName('js-noobmeter')[1],
  1604. ratingsClip_div = document.getElementsByClassName('js-noobmeter')[0];
  1605. if (!isNaN(nm)) {
  1606. ratingsInfo_div.innerHTML = colStat(nm,"nm",2);
  1607. ratingsClip_div.innerHTML += " NM: "+nm.toFixed(2);
  1608. }
  1609. else {
  1610. ratingsInfo_div.innerHTML = nm;
  1611. }
  1612. }
  1613. // end noobmeter handler
  1614.  
  1615. // clan history handler
  1616. function chHnd(response) {
  1617. if (response.statusText == "OK") {
  1618. chHnd_insert(JSON.parse(response.responseText).changes);
  1619. }
  1620. else {
  1621. chHnd_error();
  1622. }
  1623. }
  1624. function chHnd_error() {
  1625. var clanHist_cell = elem("td", "", loc.p77);
  1626. clanHist_row.appendChild(clanHist_cell);
  1627. console.log("error accessing wotcs API");
  1628. }
  1629. function chHnd_insert(ch) {
  1630. var prevClan, clanHist_cell;
  1631. if (ch.length > 0) {
  1632. for (var i=0; i<ch.length; ++i) {
  1633. if (prevClan !== ch[i].clan_tag) {
  1634. clanHist_cell = elem("td", "", "<a href='http://"+server+".wargaming.net/clans/"+ch[i].clan_id+"/' target='_blank'>["+ch[i].clan_tag+"]</a>");
  1635. clanHist_row.insertBefore(clanHist_cell, clanHist_row.firstChild.nextSibling);
  1636. }
  1637. prevClan = ch[i].clan_tag;
  1638. }
  1639. }
  1640. else {
  1641. clanHist_cell = elem("td", "", loc.p76);
  1642. clanHist_row.appendChild(clanHist_cell);
  1643. }
  1644. }
  1645. // end clan history handler
  1646.  
  1647. // retrieval function
  1648. function gRec(doc) {
  1649. GM_xmlhttpRequest({
  1650. method: "GET",
  1651. url: doc.url,
  1652. headers: {
  1653. "Accept": "text/xml"
  1654. },
  1655. onload: function(resp) {
  1656. if (resp.readyState == 4) {
  1657. if (resp.status == 200) {
  1658. doc.handler(resp);
  1659. }
  1660. }
  1661. },
  1662. onerror: function() {
  1663. doc.onerror();
  1664. }
  1665. });
  1666. }
  1667.  
  1668. // global functions inserted into head
  1669. // clipboard helper
  1670. function copyClipboard() {
  1671. var cpText = document.getElementsByClassName('ratingsClip-holder')[0].innerHTML,
  1672. cpLoc = document.getElementsByClassName('ratingsClip-holder')[1].innerHTML;
  1673. window.prompt(cpLoc, cpText);
  1674. }
  1675. // end global functions
  1676. }());