WoTStatScript - ForumsExtendedStat

Adds stats and links for posts on official World of Tanks forums

Ajankohdalta 17.2.2015. Katso uusin versio.

// ==UserScript==
// @name        WoTStatScript - ForumsExtendedStat
// @version     1.04
// @description Adds stats and links for posts on official World of Tanks forums
// @author      Orrie
// @contributor seriych
// @namespace   http://forum.worldoftanks.eu/index.php?/topic/263423-
// @icon        http://dl.dropboxusercontent.com/u/12497046/wot/projects/statscript/img/icon.png
// @include     /^http:\/\/forum\.worldoftanks\.(eu|com|ru|asia|kr)\/\S+(\/topic\/|\?showtopic=)/
// @include     /^http:\/\/forum\.worldoftanks\.(eu|com|ru|asia|kr)\/index\.php\?app=members&module=messaging&section=view&do=showConversation&topicID=\d+/
// @grant       GM_xmlhttpRequest
// @license     MIT License
// ==/UserScript==
(function () {
// server, API and cluster settings
var sc = {
	srv: document.location.host.match(/\.(eu|ru|com|asia|kr)/)[1],
	api: {
		ru: "98ca7c4fb108175b67d6505b9c3f3ebd",
		eu: "a7595640a90bf2d19065f3f2683b171c",
		com: "bf5dba0efd444d75147b6222dd903fd2",
		asia: "95f8713eccd322e52dbf521dbd28b19c",
		kr: "ffea0f1c3c5f770db09357d94fe6abfb"
	},
	sym: ","
},
srv = {
	s: "en", wl: false, nm: false, ws: false, wr: false, wn: false, cs: false, wlife: false
};
switch(sc.srv) {
	case ("eu"): // eu server
		srv.wl = srv.nm = srv.ws = srv.wr = srv.wn = srv.cs = srv.wlife = sc.srv;
		break;
	case ("ru"): // ru server
		srv.wl = srv.nm = srv.ws = srv.wr = srv.wn = srv.cs = sc.srv;
		srv.s = "ru";
		sc.sym = " ";
		break;
	case ("com"): // na server
		srv.wl = srv.nm = srv.ws = srv.cs = "na"; srv.wr = "com"; srv.wn = "us";
		break;
	case ("asia"): // asia server
		srv.wl = srv.nm = srv.ws = srv.wn = srv.cs = "sea"; srv.wr = "com";
		break;
	case ("kr"): // korean server
		srv.wl = srv.nm = srv.ws = srv.cs = srv.ch = sc.srv; srv.wr = "com";
		break;
	default: break;
}

// data uri
var uri = {
	icon_arrow:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPwAAAAJCAMAAAAhKrH/AAAAV1BMVEUAAAD///+TKCf9AQmTLiX9AQmTMir9AQmTLif9AQmTMSz9AQmTMir9AQmTMyn9AQmTMirvGgKTMirsIAGTMirwGQOTMiqTMirsIAGaNDGgNzfqJwDrJABtE0DNAAAAGnRSTlMAABERIiIzM0REVVVmZnd3iIqZmrvDzN3g7thzQuwAAACHSURBVHja5dVLDsIwDEXRCySlP0IMoXXs7H+dDBASA1bQ3B0cPclm2Fe2wrfTQeO3qwqqAKWek80HxfO/l1/EBRgtU2tf+KkJ7TO9hdVSV3jU42f6ZClY6Qt/d4n+BGol29jTwQN1pE2QbA610BVefImuwL7xsNAXXhVpEYY8kNfO/rwsyA3ekEsOT2YDLE8AAAAASUVORK5CYII="
};

// style contents
var style = elem("style", "wotstatscript", "", "text/css"),
	styleText = [
		".author_info {z-index: 1;}",
		".user_details > br {display: none;}",
		".basic_info {margin: 0 0 4px;}",
		".post_count.margin-bottom {margin: 0 0 5px;}",
		".battles_count {display: none;}",
		".i-xvm-lang {vertical-align: text-top;}",
		".t-table-stats {margin: 5px 0; width: auto;}",
		".t-table-stats td {padding: 0 5px 0 0; line-height: 16px;}",
		".t-table-stats td:last-of-type {font-weight: bold;}",
		".t-tables-links {background: #EDEDED; border: 1px solid #d5d5d5; border-radius: 3px; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1), 0 0 3px 3px rgba(255, 255, 255, 0.2); display: inline-block; margin: 5px 0 5px -3px; overflow: hidden; padding: 3px 3px 0; text-overflow: ellipsis; white-space: nowrap; width: 90px;}",
		".t-tables-links:hover {border-color: #7D7D7D; width: 180px;}",
		".t-tables-links tbody {display: table; width: 180px;}",
		".t-tables-links td {padding: 0 0 2px; font-weight: bold;}",
		".t-tables-links td a { background: url("+uri.icon_arrow+") no-repeat scroll 0 2px rgba(0, 0, 0, 0); padding: 0 0 0 10px; vertical-align: middle;}",
		".t-tables-links td a:hover {background: url("+uri.icon_arrow+") no-repeat scroll -244px 2px rgba(0, 0, 0, 0);}",
		".t-tables-links tr:last-of-type td {}",
		".realm_kr .t-tables-links {width: 108px;}",
		".realm_kr .t-tables-links:hover {width: 215px;}",
		".realm_kr .t-tables-links tbody {width: 215px;}"
	];
	for (var css=0; css<styleText.length; css++) {
		style.appendChild(document.createTextNode(styleText[css]));
	}
	document.head.appendChild(style);
// end style

// colour scale array
var colArr = {
	//      col        wr  bat    wn8   wn7   eff   nm    pr
	sUni: [ "#5A3175", 65, 30000, 2900, 2050, 2050, 2000       ], // 99.99% super unicum
	uni:  [ "#83579D", 60, 25000, 2450, 1850, 1800, 1950, 9930 ], // 99.90% unicum
	gr8:  [ "#3972C6", 56, 21000, 2000, 1550, 1500, 1750, 8525 ], // 99.00% great
	vGud: [ "#4099BF", 54, 17000, 1600, 1350                   ], // 95.00% very good
	good: [ "#4D7326", 52, 13000, 1200, 1100, 1200, 1450, 6340 ], // 82.00% good
	aAvg: [ "#849B24", 50, 10000,  900                         ], // 63.00% above average
	avg:  [ "#CCB800", 48,  7000,  650,  900,  900, 1250, 4185 ], // 40.00% average
	bAvg: [ "#CC7A00", 47,  3000,  450,  700,  600, 1150, 2020 ], // 20.00% below average
	bas:  [ "#CD3333", 46,  1000,  300,  500                   ], //  6.00% basic
	beg:  [ "#930D0D",  0,     0,    0,    0,    0,    0, 0    ], //  0.00% beginner
	dft:  [ "#6B6B6B" ], // default
	id: { "col": 0, "wr": 1, "bat": 2, "wn8": 3, "wn7": 4, "eff": 5, "nm": 6, "pr": 7 }  // type identifier
};

// localization
var loc = {
	f00: { en: "Client", ru: "Клиент"},
	f01: { en: "Winrate:", ru: "Винрейт:"},
	f02: { en: "Battles:", ru: "Боев:"},
	f03: { en: "Rating:", ru: "Рейтинг:"},
	f04: { en: "WN8:", ru: "WN8:"}
	//f00: { en: "f00_en", ru: "f00_ru"},
};
for (var l in loc) {
	if (loc.hasOwnProperty(l)) {
		loc[l] = loc[l][srv.s];
	}
}

// formula calculations and variables
// expected tank values v18 with premium tanks up to 0.9.6
var statObj = {
	3329:  { frag:1.92, dmg:249.77,  spot:1.43, def:1.51, win:59.03 }, // MS-1
	1025:  { frag:1.54, dmg:265.05,  spot:2.02, def:1.24, win:58.91 }, // BT-2
	4609:  { frag:1.67, dmg:282.37,  spot:1.40, def:1.67, win:60.03 }, // T-26
	15361: { frag:1.56, dmg:260.95,  spot:1.59, def:1.72, win:61.47 }, // T-60
	54529: { frag:1.63, dmg:279.98,  spot:1.53, def:1.46, win:58.64 }, // Tetrarch
	769:   { frag:0.88, dmg:218.00,  spot:2.10, def:1.03, win:54.71 }, // BT-7
	52225: { frag:1.70, dmg:359.74,  spot:2.39, def:1.71, win:61.83 }, // BT-SV
	56577: { frag:1.40, dmg:303.68,  spot:1.50, def:1.55, win:57.47 }, // LTP
	52737: { frag:1.04, dmg:235.25,  spot:1.69, def:1.17, win:53.40 }, // M3 Light
	53505: { frag:1.79, dmg:373.25,  spot:1.79, def:1.73, win:59.84 }, // T-127
	3073:  { frag:1.11, dmg:268.97,  spot:1.43, def:1.00, win:56.25 }, // T-46
	15105: { frag:1.43, dmg:337.87,  spot:1.49, def:1.63, win:58.12 }, // T-70
	2049:  { frag:0.74, dmg:273.73,  spot:2.37, def:0.84, win:55.37 }, // A-20
	9473:  { frag:0.70, dmg:260.62,  spot:2.99, def:0.65, win:55.52 }, // T-50
	15873: { frag:1.12, dmg:380.82,  spot:1.73, def:1.36, win:58.59 }, // T-80
	52481: { frag:1.46, dmg:409.99,  spot:1.54, def:1.63, win:57.22 }, // Valentine II
	16641: { frag:0.51, dmg:365.84,  spot:3.47, def:0.59, win:53.10 }, // MT-25
	18433: { frag:0.75, dmg:783.58,  spot:2.82, def:0.80, win:54.30 }, // LTTB
	18177: { frag:0.63, dmg:883.93,  spot:2.33, def:0.65, win:51.84 }, // T-54 ltwt.
	52993: { frag:0.87, dmg:293.06,  spot:2.40, def:0.78, win:54.78 }, // A-32
	1537:  { frag:1.12, dmg:418.64,  spot:1.27, def:0.92, win:56.80 }, // T-28
	51457: { frag:1.36, dmg:578.41,  spot:1.19, def:1.45, win:57.86 }, // Matilda IV
	1:     { frag:1.09, dmg:514.27,  spot:1.46, def:1.06, win:55.56 }, // T-34
	12289: { frag:1.03, dmg:683.16,  spot:2.02, def:0.98, win:54.35 }, // A-43
	2561:  { frag:1.02, dmg:734.66,  spot:1.45, def:0.96, win:55.05 }, // T-34-85
	58113: { frag:1.03, dmg:683.16,  spot:2.02, def:0.98, win:54.35 }, // T-34-85M
	12545: { frag:0.99, dmg:951.71,  spot:1.70, def:0.83, win:53.38 }, // A-44
	8961:  { frag:0.85, dmg:779.58,  spot:1.54, def:0.93, win:53.60 }, // KV-13
	6657:  { frag:0.94, dmg:877.16,  spot:1.56, def:1.00, win:54.34 }, // T-43
	57089: { frag:0.85, dmg:779.58,  spot:1.54, def:0.93, win:53.60 }, // T-44-85
	56833: { frag:0.85, dmg:779.58,  spot:1.54, def:0.93, win:53.60 }, // T-44-122
	13313: { frag:1.03, dmg:1279.62, spot:1.42, def:0.96, win:52.81 }, // Object 416
	4353:  { frag:0.82, dmg:1014.58, spot:1.65, def:0.85, win:52.59 }, // T-44
	59905: { frag:0.82, dmg:1147.96, spot:1.31, def:0.91, win:52.68 }, // T-54 First Prototype
	17665: { frag:1.03, dmg:1548.16, spot:1.56, def:0.87, win:53.24 }, // Object 430 Version II
	7937:  { frag:0.94, dmg:1457.35, spot:1.80, def:0.81, win:51.34 }, // T-54
	16897: { frag:1.01, dmg:1833.60, spot:1.70, def:0.89, win:49.47 }, // Object 140
	17153: { frag:1.00, dmg:1785.87, spot:1.65, def:0.88, win:50.03 }, // Object 430
	15617: { frag:1.00, dmg:1811.66, spot:1.74, def:0.85, win:49.66 }, // Object 907
	13825: { frag:0.92, dmg:1698.26, spot:1.62, def:0.76, win:48.56 }, // T-62A
	51713: { frag:1.28, dmg:612.11,  spot:1.19, def:1.30, win:55.12 }, // Churchill III
	11777: { frag:1.21, dmg:629.78,  spot:0.88, def:1.00, win:54.45 }, // KV-1
	18689: { frag:1.41, dmg:729.97,  spot:1.36, def:1.16, win:58.91 }, // KV-1S
	54017: { frag:1.50, dmg:699.26,  spot:1.42, def:1.37, win:60.67 }, // KV-220
	51201: { frag:1.50, dmg:699.26,  spot:1.42, def:1.37, win:60.67 }, // KV-220 Beta-Test
	10497: { frag:1.15, dmg:880.75,  spot:0.73, def:0.74, win:54.81 }, // KV-2
	2817:  { frag:1.16, dmg:892.47,  spot:1.14, def:0.74, win:54.90 }, // KV-85
	11265: { frag:1.05, dmg:816.85,  spot:0.92, def:0.81, win:54.57 }, // T-150
	513:   { frag:1.03, dmg:1078.74, spot:1.08, def:0.76, win:53.52 }, // IS
	5889:  { frag:1.05, dmg:1121.31, spot:0.88, def:0.77, win:54.16 }, // KV-3
	5377:  { frag:0.94, dmg:1331.96, spot:1.06, def:0.76, win:52.04 }, // IS-3
	9217:  { frag:1.11, dmg:1431.77, spot:1.19, def:0.83, win:53.64 }, // IS-6
	58881: { frag:1.11, dmg:1431.77, spot:1.19, def:0.83, win:53.64 }, // IS-5 (Object 730)
	11009: { frag:0.83, dmg:1206.36, spot:0.85, def:0.72, win:52.25 }, // KV-4
	53249: { frag:0.99, dmg:1266.56, spot:1.10, def:0.85, win:51.87 }, // KV-5
	11521: { frag:0.89, dmg:1540.88, spot:1.14, def:0.67, win:50.23 }, // IS-8
	10753: { frag:0.95, dmg:1695.84, spot:0.97, def:0.69, win:52.57 }, // ST-I
	6145:  { frag:0.91, dmg:1871.69, spot:1.10, def:0.76, win:49.02 }, // IS-4
	7169:  { frag:0.86, dmg:1789.37, spot:1.23, def:0.62, win:49.14 }, // IS-7
	58369: { frag:0.84, dmg:1771.13, spot:1.31, def:0.63, win:47.91 }, // Object 260 mod. 1945
	5121:  { frag:1.80, dmg:298.73,  spot:0.47, def:1.46, win:59.07 }, // AT-1
	6401:  { frag:1.64, dmg:407.49,  spot:0.98, def:1.59, win:58.41 }, // SU-76
	54273: { frag:2.22, dmg:453.48,  spot:0.97, def:1.81, win:62.70 }, // SU-76I
	6913:  { frag:1.57, dmg:580.78,  spot:1.16, def:1.47, win:58.94 }, // SU-85B
	257:   { frag:1.19, dmg:595.07,  spot:0.56, def:1.20, win:54.53 }, // SU-85
	53761: { frag:1.46, dmg:670.32,  spot:0.88, def:1.72, win:54.75 }, // SU-85I
	3585:  { frag:1.24, dmg:876.79,  spot:0.81, def:1.13, win:54.85 }, // SU-100
	54785: { frag:1.26, dmg:909.16,  spot:0.61, def:0.87, win:55.28 }, // SU-100Y
	10241: { frag:1.03, dmg:1029.66, spot:0.85, def:1.16, win:53.31 }, // SU-100M1
	55297: { frag:1.25, dmg:1164.81, spot:0.81, def:0.95, win:54.33 }, // SU-122-44
	2305:  { frag:1.09, dmg:1075.09, spot:0.54, def:0.83, win:52.83 }, // SU-152
	58625: { frag:1.19, dmg:1588.72, spot:0.56, def:0.79, win:51.54 }, // ISU-130
	7425:  { frag:1.19, dmg:1588.72, spot:0.56, def:0.79, win:51.54 }, // ISU-152
	9985:  { frag:0.98, dmg:1241.29, spot:0.93, def:0.96, win:50.35 }, // SU-101
	8193:  { frag:1.24, dmg:2056.67, spot:0.70, def:0.83, win:51.57 }, // Object 704
	12033: { frag:0.97, dmg:1542.79, spot:0.90, def:0.86, win:49.94 }, // SU-122-54
	14337: { frag:1.13, dmg:2190.82, spot:0.99, def:0.81, win:49.72 }, // Object 263
	13569: { frag:1.17, dmg:2299.37, spot:0.83, def:0.77, win:49.06 }, // Object 268
	3841:  { frag:1.35, dmg:251.57,  spot:0.12, def:1.67, win:53.42 }, // SU-18
	7681:  { frag:1.60, dmg:600.17,  spot:0.12, def:2.08, win:58.49 }, // SU-26
	4865:  { frag:1.19, dmg:697.45,  spot:0.10, def:1.66, win:53.65 }, // SU-5
	16385: { frag:1.02, dmg:575.07,  spot:0.09, def:1.25, win:53.06 }, // SU-122A
	5633:  { frag:1.15, dmg:1148.14, spot:0.06, def:1.32, win:52.49 }, // SU-8
	1793:  { frag:0.95, dmg:1329.10, spot:0.05, def:0.84, win:50.34 }, // S-51
	16129: { frag:0.93, dmg:1075.26, spot:0.04, def:0.85, win:52.37 }, // SU-14-1
	4097:  { frag:1.01, dmg:1439.64, spot:0.02, def:0.71, win:50.88 }, // SU-14-2
	8449:  { frag:1.00, dmg:1672.34, spot:0.03, def:0.71, win:49.67 }, // 212A
	8705:  { frag:1.02, dmg:1912.22, spot:0.05, def:0.90, win:48.59 }, // Object 261
	3089:  { frag:1.95, dmg:258.63,  spot:2.26, def:1.50, win:59.48 }, // Leichttraktor
	785:   { frag:1.63, dmg:275.47,  spot:1.92, def:1.65, win:59.76 }, // Pz.Kpfw. 35 (t)
	52497: { frag:2.11, dmg:345.64,  spot:1.91, def:2.65, win:57.09 }, // Pz.Kpfw. 38H 735 (f)
	12817: { frag:1.21, dmg:195.14,  spot:2.65, def:0.80, win:59.10 }, // Pz.Kpfw. I
	2065:  { frag:1.51, dmg:250.64,  spot:2.07, def:1.51, win:58.68 }, // Pz.Kpfw. II
	60433: { frag:1.21, dmg:195.14,  spot:2.65, def:0.80, win:59.10 }, // Pz.Kpfw. II Ausf. D
	3345:  { frag:1.55, dmg:363.12,  spot:1.57, def:1.37, win:60.14 }, // Pz.Kpfw. 38 (t)
	12561: { frag:1.13, dmg:243.00,  spot:3.07, def:1.15, win:56.92 }, // Pz.Kpfw. I Ausf. C
	13073: { frag:1.03, dmg:272.73,  spot:1.84, def:1.35, win:58.35 }, // Pz.Kpfw. II Ausf. G
	51729: { frag:2.01, dmg:380.52,  spot:2.00, def:2.09, win:68.24 }, // Pz.Kpfw. II Ausf. J
	4881:  { frag:1.20, dmg:278.00,  spot:1.86, def:0.94, win:56.96 }, // Pz.Kpfw. III Ausf. A
	54801: { frag:1.18, dmg:270.45,  spot:3.01, def:1.41, win:59.85 }, // T-15
	8209:  { frag:0.75, dmg:275.30,  spot:2.30, def:0.82, win:55.31 }, // Pz.Kpfw. 38 (t) n.A.
	6161:  { frag:0.89, dmg:323.33,  spot:2.77, def:0.97, win:57.51 }, // Pz.Kpfw. II Luchs
	5393:  { frag:0.61, dmg:351.24,  spot:2.78, def:0.66, win:53.55 }, // VK 16.02 Leopard
	10001: { frag:0.64, dmg:520.86,  spot:2.70, def:0.52, win:53.52 }, // VK 28.01
	14353: { frag:0.61, dmg:667.90,  spot:2.07, def:0.60, win:51.29 }, // Aufklärungspanzer Panther
	18449: { frag:0.68, dmg:911.55,  spot:2.39, def:0.75, win:51.62 }, // Spähpanzer Ru 251
	59665: { frag:1.19, dmg:300.59,  spot:1.07, def:1.05, win:56.53 }, // Grosstraktor - Krupp
	17169: { frag:1.51, dmg:333.55,  spot:1.32, def:1.03, win:59.26 }, // Pz.Kpfw. IV Ausf. A
	51985: { frag:1.70, dmg:391.83,  spot:1.54, def:1.73, win:61.13 }, // Pz.Kpfw. S35 739 (f)
	4369:  { frag:1.01, dmg:339.46,  spot:1.96, def:0.90, win:56.28 }, // Pz.Kpfw. III
	17425: { frag:1.16, dmg:443.43,  spot:1.35, def:0.99, win:55.97 }, // Pz.Kpfw. IV Ausf. D
	13585: { frag:1.21, dmg:406.33,  spot:1.72, def:1.29, win:57.62 }, // VK 20.01 (D)
	61457: { frag:0.90, dmg:427.40,  spot:1.59, def:0.85, win:52.96 }, // Pz.Kpfw. III Ausf. K
	6417:  { frag:0.90, dmg:427.40,  spot:1.59, def:0.85, win:52.96 }, // Pz.Kpfw. III/IV
	18193: { frag:1.31, dmg:611.02,  spot:1.41, def:0.96, win:56.68 }, // Pz.Kpfw. IV Ausf. H
	55057: { frag:1.30, dmg:610.92,  spot:1.34, def:1.62, win:53.61 }, // Pz.Kpfw. IV hydrostat.
	54545: { frag:1.16, dmg:570.31,  spot:1.57, def:1.21, win:55.99 }, // T-25
	57361: { frag:0.98, dmg:736.75,  spot:1.07, def:1.24, win:52.27 }, // Pz.Kpfw. IV Schmalturm
	51473: { frag:0.66, dmg:450.51,  spot:1.61, def:0.71, win:49.63 }, // Pz.Kpfw. V/IV
	54033: { frag:0.66, dmg:450.51,  spot:1.61, def:0.71, win:49.63 }, // Pz.Kpfw. V/IV Alpha
	14097: { frag:1.04, dmg:735.74,  spot:1.68, def:1.08, win:54.27 }, // VK 30.01 (D)
	7185:  { frag:0.93, dmg:678.91,  spot:1.29, def:0.82, win:52.86 }, // VK 30.01 (P)
	15889: { frag:1.00, dmg:737.19,  spot:1.41, def:1.02, win:52.16 }, // VK 30.02 (M)
	1297:  { frag:0.88, dmg:894.97,  spot:1.22, def:1.19, win:52.69 }, // Panther
	57617: { frag:0.93, dmg:870.17,  spot:1.27, def:1.19, win:51.98 }, // Panther/M10
	4113:  { frag:0.93, dmg:860.50,  spot:1.58, def:0.99, win:52.34 }, // VK 30.02 (D)
	13841: { frag:0.86, dmg:1162.01, spot:1.22, def:1.00, win:50.42 }, // Indien-Panzer
	8465:  { frag:0.82, dmg:1076.79, spot:1.33, def:0.90, win:51.94 }, // Panther II
	60177: { frag:0.82, dmg:1076.79, spot:1.33, def:0.90, win:51.94 }, // Panther mit 8.8cm L/71
	10257: { frag:0.89, dmg:1482.21, spot:1.44, def:0.68, win:49.75 }, // E 50
	14865: { frag:0.86, dmg:1451.40, spot:1.40, def:0.89, win:48.89 }, // Leopard Prototyp A
	60945: { frag:0.94, dmg:1457.35, spot:1.80, def:0.81, win:51.34 }, // Т-55 NVA DDR
	12305: { frag:0.91, dmg:1815.14, spot:1.45, def:0.71, win:48.32 }, // E 50 Ausf. M
	14609: { frag:0.96, dmg:1827.88, spot:1.67, def:0.91, win:47.92 }, // Leopard 1
	13329: { frag:1.21, dmg:417.73,  spot:1.03, def:1.27, win:54.75 }, // Durchbruchswagen 2
	52241: { frag:1.79, dmg:519.50,  spot:1.67, def:1.73, win:60.86 }, // Pz.Kpfw. B2 740 (f)
	2577:  { frag:1.07, dmg:664.49,  spot:1.27, def:1.08, win:53.89 }, // VK 30.01 (H)
	2321:  { frag:1.10, dmg:810.08,  spot:1.26, def:1.09, win:54.60 }, // VK 36.01 (H)
	10769: { frag:0.97, dmg:1098.74, spot:0.99, def:1.04, win:53.38 }, // Tiger (P)
	529:   { frag:0.99, dmg:1100.50, spot:0.99, def:1.00, win:52.84 }, // Tiger I
	54289: { frag:0.83, dmg:1239.23, spot:0.87, def:0.86, win:49.33 }, // Löwe
	5137:  { frag:0.86, dmg:1247.99, spot:1.00, def:0.83, win:50.75 }, // Tiger II
	10513: { frag:0.88, dmg:1229.43, spot:1.25, def:0.84, win:51.05 }, // VK 45.02 (P) Ausf. A
	9745:  { frag:0.92, dmg:1608.91, spot:1.08, def:0.70, win:50.77 }, // E 75
	7441:  { frag:0.87, dmg:1540.44, spot:0.95, def:0.64, win:50.02 }, // VK 45.02 (P) Ausf. B
	9489:  { frag:0.94, dmg:1959.15, spot:1.03, def:0.53, win:49.67 }, // E 100
	6929:  { frag:0.85, dmg:1783.87, spot:0.93, def:0.69, win:49.46 }, // Maus
	58641: { frag:0.96, dmg:2025.56, spot:1.14, def:0.52, win:49.81 }, // VK 72.01 (K)
	3601:  { frag:2.01, dmg:327.84,  spot:1.16, def:1.66, win:59.92 }, // Panzerjäger I
	6673:  { frag:1.45, dmg:406.89,  spot:1.08, def:1.45, win:58.75 }, // Marder II
	1809:  { frag:1.49, dmg:477.76,  spot:0.62, def:1.12, win:56.82 }, // Hetzer
	11281: { frag:1.50, dmg:565.29,  spot:1.03, def:1.57, win:57.75 }, // Marder 38T
	17937: { frag:1.43, dmg:488.97,  spot:0.81, def:1.19, win:56.74 }, // StuG III Ausf. B
	16145: { frag:1.22, dmg:643.66,  spot:0.80, def:1.14, win:52.98 }, // Pz.Sfl. IVc
	1041:  { frag:1.19, dmg:599.06,  spot:0.75, def:1.31, win:53.81 }, // StuG III Ausf. G
	60689: { frag:1.19, dmg:599.06,  spot:0.75, def:1.31, win:53.81 }, // StuG IV
	57105: { frag:1.14, dmg:863.10,  spot:0.79, def:1.14, win:52.25 }, // Dicker Max
	1553:  { frag:1.06, dmg:739.43,  spot:0.77, def:1.19, win:52.29 }, // Jagdpanzer IV
	11793: { frag:1.20, dmg:938.85,  spot:0.70, def:1.20, win:51.86 }, // Nashorn
	55569: { frag:1.31, dmg:1061.27, spot:1.60, def:1.69, win:51.64 }, // E 25
	3857:  { frag:1.07, dmg:1101.36, spot:0.74, def:1.03, win:52.53 }, // Jagdpanther
	11025: { frag:1.06, dmg:1081.86, spot:0.53, def:0.97, win:50.47 }, // Sturer Emil
	55313: { frag:0.97, dmg:1303.38, spot:0.77, def:1.12, win:49.76 }, // 8.8 cm Pak 43 Jagdtiger
	7697:  { frag:1.09, dmg:1488.75, spot:0.62, def:0.94, win:50.72 }, // Ferdinand
	11537: { frag:1.14, dmg:1538.09, spot:0.81, def:0.96, win:51.19 }, // Jagdpanther II
	16657: { frag:1.29, dmg:1724.44, spot:0.63, def:1.12, win:52.11 }, // Rhm.-Borsig Waffenträger
	7953:  { frag:1.08, dmg:1835.74, spot:0.65, def:0.81, win:50.02 }, // Jagdtiger
	16401: { frag:1.18, dmg:1972.18, spot:0.68, def:0.94, win:50.69 }, // Waffenträger auf Pz. IV
	12049: { frag:1.08, dmg:2166.00, spot:0.68, def:0.53, win:49.08 }, // Jagdpanzer E 100
	16913: { frag:1.47, dmg:2496.73, spot:0.53, def:0.84, win:49.87 }, // Waffenträger auf E 100
	15121: { frag:1.02, dmg:192.52,  spot:0.18, def:1.31, win:57.53 }, // G.Pz. Mk. VI (e)
	2833:  { frag:1.25, dmg:400.31,  spot:0.18, def:1.67, win:57.64 }, // Sturmpanzer I Bison
	5905:  { frag:1.15, dmg:425.16,  spot:0.14, def:1.70, win:53.47 }, // Wespe
	15633: { frag:1.22, dmg:470.38,  spot:0.11, def:1.68, win:55.35 }, // Pz.Sfl. IVb
	4625:  { frag:1.11, dmg:446.05,  spot:0.17, def:1.68, win:54.10 }, // Sturmpanzer II
	5649:  { frag:1.11, dmg:665.17,  spot:0.11, def:1.56, win:52.70 }, // Grille
	273:   { frag:1.05, dmg:1002.20, spot:0.08, def:1.33, win:50.74 }, // Hummel
	8977:  { frag:1.02, dmg:1306.13, spot:0.05, def:1.04, win:50.37 }, // G.W. Panther
	15377: { frag:0.91, dmg:1316.65, spot:0.04, def:0.64, win:50.11 }, // G.W. Tiger (P)
	8721:  { frag:0.93, dmg:1566.33, spot:0.04, def:0.63, win:48.51 }, // G.W. Tiger
	9233:  { frag:0.97, dmg:1844.31, spot:0.04, def:0.62, win:48.11 }, // G.W. E 100
	545:   { frag:1.69, dmg:213.47,  spot:2.18, def:1.28, win:58.77 }, // T1 Cunningham
	1825:  { frag:1.49, dmg:251.35,  spot:2.57, def:1.34, win:59.39 }, // M2 LT
	53537: { frag:1.15, dmg:202.07,  spot:1.76, def:0.95, win:56.92 }, // T1E6
	51489: { frag:1.23, dmg:210.73,  spot:2.67, def:1.10, win:57.42 }, // T2 LT
	55073: { frag:1.24, dmg:182.84,  spot:1.99, def:1.19, win:57.82 }, // T7 Combat Car
	52769: { frag:1.16, dmg:276.63,  spot:2.67, def:1.34, win:57.51 }, // M22 Locust
	289:   { frag:1.08, dmg:252.87,  spot:2.53, def:1.27, win:57.56 }, // M3 Stuart
	52001: { frag:1.08, dmg:252.87,  spot:2.53, def:1.27, win:57.56 }, // MTLS-1G14
	5153:  { frag:0.85, dmg:289.51,  spot:2.62, def:0.98, win:56.83 }, // M5 Stuart
	9761:  { frag:0.65, dmg:492.30,  spot:2.75, def:0.72, win:53.80 }, // M24 Chaffee
	15137: { frag:0.56, dmg:466.70,  spot:2.39, def:0.59, win:52.87 }, // T21
	16673: { frag:0.71, dmg:632.34,  spot:2.30, def:0.86, win:53.22 }, // T37
	17953: { frag:0.82, dmg:874.78,  spot:2.57, def:0.82, win:52.94 }, // M41 Walker Bulldog
	15649: { frag:0.67, dmg:712.99,  spot:2.60, def:0.64, win:52.48 }, // T71
	18209: { frag:0.62, dmg:921.84,  spot:1.92, def:0.59, win:51.24 }, // T49
	5665:  { frag:1.53, dmg:260.74,  spot:1.75, def:1.27, win:59.88 }, // T2 MT
	4897:  { frag:1.38, dmg:302.83,  spot:1.56, def:1.08, win:57.42 }, // M2 MT
	3105:  { frag:1.00, dmg:344.64,  spot:0.84, def:0.84, win:54.28 }, // M3 Lee
	12577: { frag:1.44, dmg:666.89,  spot:1.55, def:1.04, win:58.15 }, // M4 Improved
	1057:  { frag:1.44, dmg:666.89,  spot:1.55, def:1.04, win:58.15 }, // M4 Sherman
	52257: { frag:1.00, dmg:445.08,  spot:1.54, def:0.90, win:54.41 }, // M4A2E4 Sherman
	5409:  { frag:0.94, dmg:427.81,  spot:2.19, def:0.99, win:55.20 }, // M7
	51745: { frag:1.19, dmg:549.92,  spot:1.46, def:1.19, win:57.24 }, // Ram II
	56097: { frag:1.00, dmg:690.05,  spot:1.54, def:1.00, win:55.03 }, // Fury
	10017: { frag:1.06, dmg:745.05,  spot:1.22, def:1.10, win:54.30 }, // M4A3E2 Sherman Jumbo
	1313:  { frag:1.00, dmg:690.05,  spot:1.54, def:1.00, win:55.03 }, // M4A3E8 Sherman
	1569:  { frag:0.95, dmg:958.11,  spot:1.74, def:1.03, win:54.31 }, // T20
	11809: { frag:1.10, dmg:902.09,  spot:1.81, def:1.35, win:52.39 }, // T23E3
	5921:  { frag:0.86, dmg:1118.55, spot:1.58, def:0.99, win:51.70 }, // M26 Pershing
	13345: { frag:0.86, dmg:1131.01, spot:1.00, def:0.97, win:51.19 }, // T26E4 SuperPershing
	14625: { frag:1.03, dmg:1272.64, spot:1.32, def:1.08, win:52.22 }, // T69
	53793: { frag:0.86, dmg:1118.55, spot:1.58, def:0.99, win:51.70 }, // T95E2
	8993:  { frag:0.89, dmg:1444.58, spot:1.64, def:0.72, win:50.36 }, // M46 Patton
	15393: { frag:1.12, dmg:1698.56, spot:1.03, def:0.78, win:51.01 }, // T54E1
	14113: { frag:0.88, dmg:1714.31, spot:1.59, def:0.68, win:47.79 }, // M48A1 Patton
	15905: { frag:0.79, dmg:1651.72, spot:1.48, def:0.72, win:46.45 }, // M60
	55841: { frag:0.79, dmg:1651.72, spot:1.48, def:0.72, win:46.45 }, // T95E6
	3361:  { frag:1.24, dmg:638.89,  spot:1.21, def:1.12, win:55.52 }, // T1 HT
	33:    { frag:1.33, dmg:606.91,  spot:1.54, def:1.21, win:55.78 }, // T14
	801:   { frag:1.04, dmg:829.81,  spot:1.08, def:0.85, win:53.56 }, // M6
	3873:  { frag:1.10, dmg:1233.90, spot:1.15, def:0.98, win:54.89 }, // T29
	52513: { frag:0.85, dmg:1136.19, spot:1.18, def:0.82, win:47.48 }, // M6A2E1
	4385:  { frag:0.92, dmg:1294.05, spot:1.23, def:0.92, win:52.54 }, // T32
	2849:  { frag:0.84, dmg:1298.47, spot:0.83, def:0.71, win:50.60 }, // T34
	9505:  { frag:0.88, dmg:1567.62, spot:1.12, def:0.68, win:50.08 }, // M103
	10785: { frag:0.87, dmg:1813.53, spot:1.21, def:0.73, win:48.63 }, // T110E5
	14881: { frag:1.13, dmg:2157.48, spot:0.84, def:0.75, win:49.56 }, // T57 HT
	6177:  { frag:2.11, dmg:312.85,  spot:1.21, def:1.50, win:58.21 }, // T18
	6433:  { frag:1.50, dmg:364.48,  spot:1.31, def:1.17, win:58.78 }, // T82
	10273: { frag:1.33, dmg:499.46,  spot:1.58, def:1.59, win:58.51 }, // M8A1
	7713:  { frag:1.54, dmg:579.16,  spot:1.28, def:1.54, win:58.95 }, // T40
	6945:  { frag:1.26, dmg:620.69,  spot:1.03, def:1.39, win:55.62 }, // M10 Wolverine
	10529: { frag:1.38, dmg:670.61,  spot:1.76, def:1.51, win:57.52 }, // T67
	11553: { frag:1.20, dmg:902.91,  spot:1.48, def:1.30, win:55.27 }, // M18 Hellcat
	7201:  { frag:1.11, dmg:849.66,  spot:0.94, def:1.17, win:54.82 }, // M36 Jackson
	9249:  { frag:1.07, dmg:1089.15, spot:0.81, def:1.13, win:53.42 }, // T25 AT
	11041: { frag:0.95, dmg:1003.48, spot:1.00, def:1.12, win:52.75 }, // T25/2
	56609: { frag:1.07, dmg:1089.15, spot:0.81, def:1.13, win:53.42 }, // T28 Concept
	56353: { frag:0.98, dmg:1241.29, spot:0.93, def:0.96, win:50.35 }, // M56 Scorpion
	8225:  { frag:1.01, dmg:1390.41, spot:0.52, def:0.93, win:50.77 }, // T28
	11297: { frag:1.04, dmg:1439.56, spot:0.53, def:0.96, win:51.10 }, // T28 Prototype
	2593:  { frag:1.02, dmg:1787.68, spot:0.75, def:0.62, win:50.55 }, // T30
	8737:  { frag:1.09, dmg:1820.48, spot:0.50, def:0.67, win:51.91 }, // T95
	13857: { frag:1.12, dmg:2318.01, spot:0.81, def:0.60, win:51.29 }, // T110E3
	13089: { frag:1.06, dmg:2177.48, spot:0.84, def:0.62, win:49.24 }, // T110E4
	2081:  { frag:1.43, dmg:272.68,  spot:0.36, def:2.01, win:55.72 }, // T57
	3617:  { frag:1.04, dmg:574.73,  spot:0.11, def:1.95, win:51.01 }, // M7 Priest
	4641:  { frag:1.06, dmg:404.02,  spot:0.14, def:1.58, win:53.48 }, // M37
	4129:  { frag:1.09, dmg:1047.08, spot:0.07, def:1.56, win:51.23 }, // M41 HMC
	16417: { frag:1.04, dmg:840.34,  spot:0.08, def:1.39, win:53.08 }, // M44
	7969:  { frag:1.01, dmg:1299.66, spot:0.06, def:1.11, win:50.89 }, // M12
	7457:  { frag:1.05, dmg:1568.70, spot:0.05, def:0.87, win:50.89 }, // M40/M43
	16161: { frag:1.02, dmg:1777.19, spot:0.04, def:0.90, win:51.30 }, // M53/M55
	8481:  { frag:0.95, dmg:1886.27, spot:0.04, def:0.72, win:48.47 }, // T92
	5201:  { frag:1.87, dmg:319.65,  spot:1.57, def:1.59, win:59.85 }, // Cruiser Mk. I
	7761:  { frag:1.85, dmg:314.54,  spot:2.21, def:1.36, win:61.18 }, // Cruiser Mk. III
	54865: { frag:1.43, dmg:210.41,  spot:1.99, def:1.24, win:58.91 }, // Light Mk. VIC
	593:   { frag:1.49, dmg:251.35,  spot:2.57, def:1.34, win:59.39 }, // M2A4
	6993:  { frag:1.39, dmg:305.51,  spot:1.03, def:1.04, win:56.01 }, // Cruiser Mk. II
	7505:  { frag:1.48, dmg:361.38,  spot:1.88, def:1.12, win:60.24 }, // Cruiser Mk. IV
	1361:  { frag:1.08, dmg:252.87,  spot:2.53, def:1.27, win:57.56 }, // Stuart I-IV
	6481:  { frag:1.04, dmg:369.65,  spot:1.87, def:1.05, win:56.99 }, // Covenanter
	4945:  { frag:0.86, dmg:333.95,  spot:0.86, def:1.22, win:54.69 }, // Valentine
	2129:  { frag:0.98, dmg:456.88,  spot:1.76, def:1.10, win:54.74 }, // Crusader
	81:    { frag:1.88, dmg:240.35,  spot:1.17, def:1.17, win:58.74 }, // Vickers Medium Mk. I
	337:   { frag:1.64, dmg:274.36,  spot:1.04, def:1.35, win:58.00 }, // Vickers Medium Mk. II
	2385:  { frag:1.19, dmg:300.59,  spot:1.07, def:1.05, win:56.53 }, // Vickers Medium Mk. III
	1617:  { frag:1.00, dmg:344.64,  spot:0.84, def:0.84, win:54.28 }, // Grant
	849:   { frag:1.33, dmg:502.84,  spot:0.88, def:1.61, win:58.01 }, // Matilda
	53585: { frag:1.24, dmg:574.64,  spot:0.83, def:1.49, win:55.41 }, // Matilda Black Prince
	12881: { frag:1.44, dmg:666.89,  spot:1.55, def:1.04, win:58.15 }, // Sherman III
	1105:  { frag:1.04, dmg:711.06,  spot:2.06, def:0.95, win:55.05 }, // Cromwell
	3665:  { frag:0.95, dmg:806.35,  spot:0.91, def:0.79, win:52.33 }, // Sherman Firefly
	5457:  { frag:1.01, dmg:929.79,  spot:1.77, def:1.06, win:53.33 }, // Comet
	5969:  { frag:0.82, dmg:1147.96, spot:1.31, def:0.91, win:52.68 }, // Centurion Mk. I
	55633: { frag:0.82, dmg:1147.96, spot:1.31, def:0.91, win:52.68 }, // FV4202 (P)
	5713:  { frag:0.91, dmg:1588.38, spot:1.28, def:0.85, win:50.84 }, // Centurion Mk. 7/1
	7249:  { frag:0.96, dmg:1886.82, spot:1.39, def:0.80, win:48.31 }, // FV4202
	2897:  { frag:1.17, dmg:630.42,  spot:0.91, def:1.20, win:54.92 }, // Churchill I
	54353: { frag:1.43, dmg:661.43,  spot:1.61, def:1.31, win:57.56 }, // Excelsior
	4689:  { frag:0.99, dmg:756.40,  spot:0.78, def:1.06, win:53.16 }, // Churchill VII
	53841: { frag:1.16, dmg:863.71,  spot:0.62, def:1.24, win:52.60 }, // TOG II*
	3153:  { frag:0.94, dmg:1011.85, spot:0.88, def:1.10, win:54.08 }, // Black Prince
	3921:  { frag:0.81, dmg:1213.79, spot:1.11, def:0.93, win:51.58 }, // Caernarvon
	4433:  { frag:0.87, dmg:1610.79, spot:1.04, def:0.69, win:50.07 }, // Conqueror
	6225:  { frag:0.91, dmg:1901.63, spot:1.10, def:0.66, win:48.36 }, // FV215b
	8273:  { frag:1.78, dmg:291.66,  spot:1.44, def:1.52, win:59.20 }, // Universal Carrier 2-pdr
	8017:  { frag:1.63, dmg:387.60,  spot:0.90, def:1.66, win:58.80 }, // Valentine AT
	9041:  { frag:1.32, dmg:475.48,  spot:1.46, def:1.59, win:57.50 }, // Alecto
	13393: { frag:1.26, dmg:620.69,  spot:1.03, def:1.39, win:55.62 }, // Archer
	8785:  { frag:1.19, dmg:579.58,  spot:0.81, def:1.56, win:57.32 }, // AT 2
	14417: { frag:1.11, dmg:849.66,  spot:0.94, def:1.17, win:54.82 }, // Achilles
	9553:  { frag:1.12, dmg:823.44,  spot:0.70, def:1.41, win:56.13 }, // AT 8
	9809:  { frag:0.90, dmg:703.56,  spot:0.42, def:1.03, win:52.42 }, // Churchill Gun Carrier
	54097: { frag:0.93, dmg:970.33,  spot:0.71, def:1.21, win:51.99 }, // AT 15A
	10065: { frag:1.18, dmg:1241.60, spot:0.70, def:1.30, win:56.42 }, // AT 7
	14161: { frag:0.95, dmg:1003.48, spot:1.00, def:1.12, win:52.75 }, // Challenger
	8529:  { frag:1.06, dmg:1443.76, spot:0.66, def:1.19, win:52.50 }, // AT 15
	14673: { frag:1.09, dmg:1488.75, spot:0.62, def:0.94, win:50.72 }, // Charioteer
	13137: { frag:0.87, dmg:1610.79, spot:1.04, def:0.69, win:50.07 }, // Conway
	52561: { frag:1.08, dmg:1820.73, spot:0.63, def:0.87, win:51.56 }, // Tortoise
	9297:  { frag:1.25, dmg:2329.98, spot:0.59, def:0.57, win:48.77 }, // FV215b (183)
	13905: { frag:1.25, dmg:2329.98, spot:0.59, def:0.57, win:48.77 }, // FV4005
	10577: { frag:1.41, dmg:195.95,  spot:0.26, def:1.32, win:56.18 }, // Loyd Gun Carriage
	54609: { frag:1.12, dmg:279.39,  spot:0.13, def:1.61, win:53.94 }, // Sexton I
	3409:  { frag:0.96, dmg:239.84,  spot:0.12, def:1.37, win:53.78 }, // Sexton II
	10833: { frag:1.00, dmg:361.14,  spot:0.10, def:1.88, win:53.40 }, // Birch Gun
	11089: { frag:1.22, dmg:647.73,  spot:0.11, def:1.70, win:55.25 }, // Bishop
	11857: { frag:1.14, dmg:853.36,  spot:0.16, def:2.15, win:54.53 }, // FV304
	11345: { frag:0.92, dmg:993.36,  spot:0.07, def:1.66, win:51.29 }, // Crusader 5.5-in. SP
	12113: { frag:0.93, dmg:1306.53, spot:0.03, def:0.86, win:50.24 }, // FV207
	11601: { frag:0.99, dmg:1703.97, spot:0.03, def:0.77, win:50.38 }, // FV3805
	12369: { frag:1.02, dmg:2244.39, spot:0.03, def:0.97, win:51.69 }, // Conqueror Gun Carriage
	577:   { frag:1.72, dmg:219.80,  spot:1.37, def:1.50, win:59.45 }, // Renault FT
	1601:  { frag:1.43, dmg:236.13,  spot:1.16, def:1.85, win:55.79 }, // D1
	1345:  { frag:1.46, dmg:240.71,  spot:1.38, def:1.81, win:58.89 }, // Hotchkiss H35
	5953:  { frag:0.99, dmg:219.46,  spot:0.95, def:1.60, win:55.63 }, // AMX 38
	2881:  { frag:0.71, dmg:239.62,  spot:0.86, def:0.91, win:52.49 }, // AMX 40
	14145: { frag:0.66, dmg:462.17,  spot:2.61, def:0.75, win:53.93 }, // ELC AMX
	6465:  { frag:0.59, dmg:493.20,  spot:2.02, def:0.57, win:51.92 }, // AMX 12 t
	63809: { frag:0.60, dmg:586.53,  spot:2.09, def:0.60, win:52.04 }, // AMX 13 57
	5185:  { frag:0.60, dmg:586.53,  spot:2.09, def:0.60, win:52.04 }, // AMX 13 75
	4929:  { frag:0.70, dmg:836.95,  spot:2.45, def:0.65, win:51.76 }, // AMX 13 90
	321:   { frag:1.29, dmg:300.60,  spot:0.92, def:1.46, win:57.94 }, // D2
	63553: { frag:0.93, dmg:1120.00, spot:1.51, def:1.07, win:50.04 }, // AMX Chasseur de chars
	5697:  { frag:0.96, dmg:1407.12, spot:1.35, def:0.79, win:49.42 }, // Lorraine 40 t
	3649:  { frag:1.12, dmg:1821.23, spot:2.04, def:0.87, win:49.04 }, // Bat.-Châtillon 25 t
	1089:  { frag:1.04, dmg:335.58,  spot:1.11, def:1.19, win:52.91 }, // B1
	6721:  { frag:1.22, dmg:648.05,  spot:0.88, def:0.99, win:54.31 }, // BDR G1 B
	2625:  { frag:0.95, dmg:806.35,  spot:0.91, def:0.79, win:52.33 }, // ARL 44
	6977:  { frag:0.88, dmg:1024.94, spot:0.94, def:0.92, win:51.70 }, // AMX M4 mle. 45
	3137:  { frag:1.10, dmg:1405.35, spot:0.92, def:1.02, win:51.27 }, // AMX 50 100
	64065: { frag:0.93, dmg:1244.66, spot:1.51, def:1.07, win:50.04 }, // FCM 50 t
	3905:  { frag:1.02, dmg:1667.38, spot:0.87, def:0.80, win:49.45 }, // AMX 50 120
	6209:  { frag:1.05, dmg:1980.08, spot:0.95, def:0.82, win:48.19 }, // AMX 50 B
	7745:  { frag:2.03, dmg:331.49,  spot:0.94, def:1.93, win:59.36 }, // Renault FT AC
	2369:  { frag:1.86, dmg:450.04,  spot:1.08, def:1.77, win:60.06 }, // FCM 36 Pak 40
	8257:  { frag:1.49, dmg:375.37,  spot:1.11, def:1.80, win:58.75 }, // Renault UE 57
	9793:  { frag:1.18, dmg:399.26,  spot:0.57, def:0.98, win:54.53 }, // Somua SAu 40
	10049: { frag:1.39, dmg:697.03,  spot:0.92, def:1.42, win:55.13 }, // S35 CA
	11585: { frag:0.95, dmg:731.25,  spot:0.65, def:1.00, win:50.75 }, // ARL V39
	10817: { frag:0.90, dmg:989.07,  spot:0.68, def:1.01, win:51.48 }, // AMX AC mle. 46
	12097: { frag:0.96, dmg:1315.14, spot:0.79, def:0.95, win:50.00 }, // AMX AC mle. 48
	11073: { frag:0.99, dmg:1650.32, spot:0.97, def:0.87, win:50.07 }, // AMX 50 Foch
	13889: { frag:1.27, dmg:2346.05, spot:0.92, def:0.76, win:49.73 }, // AMX 50 Foch (155)
	833:   { frag:1.41, dmg:247.23,  spot:0.15, def:2.18, win:55.88 }, // Renault FT 75 BS
	3393:  { frag:1.36, dmg:491.42,  spot:0.15, def:2.05, win:54.84 }, // Lorraine 39L AM
	14657: { frag:1.09, dmg:427.29,  spot:0.12, def:1.58, win:54.04 }, // AMX 105 AM mle. 47
	2113:  { frag:1.40, dmg:703.54,  spot:0.10, def:1.88, win:54.89 }, // 105 leFH18B2
	4161:  { frag:1.18, dmg:649.76,  spot:0.10, def:2.30, win:52.34 }, // AMX 13 105 AM mle. 50
	4673:  { frag:1.12, dmg:1061.24, spot:0.08, def:1.69, win:52.13 }, // AMX 13 F3 AM
	7233:  { frag:0.95, dmg:1266.11, spot:0.06, def:1.36, win:50.45 }, // Lorraine 155 mle. 50
	7489:  { frag:0.98, dmg:1443.84, spot:0.06, def:1.14, win:50.11 }, // Lorraine 155 mle. 51
	14401: { frag:0.95, dmg:1598.09, spot:0.05, def:1.04, win:49.62 }, // Bat.-Châtillon 155 55
	11841: { frag:1.12, dmg:1887.05, spot:0.07, def:1.25, win:48.81 }, // Bat.-Châtillon 155 58
	1329:  { frag:1.92, dmg:252.45,  spot:1.49, def:1.66, win:57.82 }, // Renault NC-31
	2353:  { frag:1.70, dmg:280.61,  spot:1.52, def:1.41, win:59.70 }, // Vickers Mk. E Type B
	4401:  { frag:1.48, dmg:365.03,  spot:1.36, def:1.37, win:59.50 }, // Type 2597 Chi-Ha
	3121:  { frag:0.95, dmg:346.57,  spot:2.40, def:1.05, win:55.71 }, // M5A1 Stuart
	4913:  { frag:0.53, dmg:383.93,  spot:2.71, def:0.51, win:52.00 }, // 59-16
	305:   { frag:0.58, dmg:616.27,  spot:2.35, def:0.67, win:50.46 }, // Type 62
	64817: { frag:0.62, dmg:528.91,  spot:2.67, def:0.74, win:51.69 }, // Type 64
	3377:  { frag:0.59, dmg:645.60,  spot:2.56, def:0.58, win:52.08 }, // WZ-131
	3889:  { frag:0.55, dmg:731.77,  spot:2.74, def:0.58, win:50.72 }, // WZ-132
	4657:  { frag:1.10, dmg:511.81,  spot:1.49, def:1.09, win:53.93 }, // Type T-34
	5169:  { frag:1.00, dmg:701.37,  spot:1.60, def:0.97, win:53.07 }, // Type 58
	1073:  { frag:0.97, dmg:967.93,  spot:1.57, def:0.97, win:54.07 }, // T-34-1
	1585:  { frag:0.82, dmg:1035.29, spot:1.66, def:0.88, win:50.43 }, // T-34-2
	64049: { frag:0.89, dmg:1112.93, spot:1.50, def:0.75, win:49.60 }, // T-34-3
	49:    { frag:0.88, dmg:1056.54, spot:1.70, def:0.91, win:50.94 }, // Type 59
	561:   { frag:0.88, dmg:1056.54, spot:1.70, def:0.91, win:50.94 }, // Type 59 G
	1841:  { frag:0.90, dmg:1453.89, spot:1.51, def:0.69, win:50.42 }, // WZ-120
	4145:  { frag:0.93, dmg:1787.87, spot:1.41, def:0.68, win:48.20 }, // 121
	3633:  { frag:1.06, dmg:1134.25, spot:1.13, def:0.83, win:54.18 }, // IS-2
	2865:  { frag:0.91, dmg:1304.61, spot:1.15, def:0.80, win:52.40 }, // 110
	64561: { frag:0.94, dmg:1278.38, spot:1.35, def:0.75, win:52.25 }, // 112
	817:   { frag:1.11, dmg:1431.77, spot:1.19, def:0.83, win:53.64 }, // WZ-111
	2097:  { frag:0.92, dmg:1657.16, spot:1.29, def:0.63, win:51.35 }, // WZ-111 model 1-4
	5425:  { frag:0.84, dmg:1771.13, spot:1.31, def:0.63, win:47.91 }, // 113
	609:   { frag:1.75, dmg:217.76,  spot:1.31, def:1.88, win:58.33 }, // Renault Otsu
	865:   { frag:1.64, dmg:279.18,  spot:1.71, def:1.26, win:58.94 }, // Type 95 Ha-Go
	3169:  { frag:1.51, dmg:265.35,  spot:1.54, def:1.80, win:58.65 }, // Type 97 Te-Ke
	2401:  { frag:1.36, dmg:332.40,  spot:1.80, def:1.35, win:59.48 }, // Type 98 Ke-Ni
	51809: { frag:1.36, dmg:332.40,  spot:1.80, def:1.35, win:59.48 }, // Type 98 Ke-Ni Otsu
	2913:  { frag:1.19, dmg:425.95,  spot:1.84, def:1.32, win:57.71 }, // Type 5 Ke-Ho
	353:   { frag:1.51, dmg:249.89,  spot:1.42, def:1.29, win:58.96 }, // Chi-Ni
	2145:  { frag:1.48, dmg:362.98,  spot:1.31, def:1.33, win:58.57 }, // Type 97 Chi-Ha
	1633:  { frag:1.07, dmg:398.04,  spot:1.27, def:1.09, win:55.72 }, // Type 1 Chi-He
	1377:  { frag:1.00, dmg:512.14,  spot:1.23, def:1.06, win:54.07 }, // Type 3 Chi-Nu
	51553: { frag:1.06, dmg:550.49,  spot:1.08, def:1.19, win:53.90 }, // Type 3 Chi-Nu Kai
	1889:  { frag:1.03, dmg:761.32,  spot:1.12, def:1.09, win:52.19 }, // Type 4 Chi-To
	1121:  { frag:0.95, dmg:950.98,  spot:1.05, def:1.07, win:51.43 }, // Type 5 Chi-Ri
	2657:  { frag:0.89, dmg:1196.34, spot:1.34, def:1.05, win:51.48 }, // STA-1
	52065: { frag:0.89, dmg:1196.34, spot:1.34, def:1.05, win:51.48 }, // STA-2
	3425:  { frag:0.96, dmg:1625.42, spot:1.31, def:0.82, win:50.60 }, // Type 61
	3681:  { frag:1.04, dmg:1968.87, spot:1.58, def:0.83, win:49.75 }  // STB-1
};

// create global post variable
var postObj = {
	cls: document.querySelectorAll(".post_wrap, .post_wrap__wg"),
	ids: [],
	num: []
},
s = {},
id, users, index;

// fetch userids and store all posts into one obj for later use
for (var t=0; t<postObj.cls.length; t++) {
	id = postObj.cls[t].getElementsByClassName("ipsUserPhotoLink")[0].getAttribute('href').match(/\-(\d+)\//)[1];
	if (!isNaN(id)) {
		s[id] = {u:{},v:{frag:0,dmg:0,spot:0,def:0,win:0},wn8:""};
		users = postObj.ids.length;
		index = postObj.ids.indexOf(id);
		if (index>-1) {
			postObj.num[index][postObj.num[index].length] = t;
		}
		else {
			postObj.ids[users] = id;
			postObj.num[users] = [];
			postObj.num[users][0] = t;
		}
	}
}


// request and retrieve statistics from API
if (postObj.ids.length > 0) {
	sc.api.i = "http://api.worldoftanks."+sc.srv+"/wot/account/info/?application_id="+sc.api[sc.srv]+"&account_id="+postObj.ids.join(',');
	sc.api.v = "http://api.worldoftanks."+sc.srv+"/wot/account/tanks/?application_id="+sc.api[sc.srv]+"&account_id="+postObj.ids.join(',');
	reqHnd(sc.api.i, apiInfoHnd);
}

// processing information from player API
function apiInfoHnd(resp) {
	for (var a in resp.data) {
		if (resp.data.hasOwnProperty(a)) {
			// store stats
			s[resp.data[a].account_id].u = {
				name: resp.data[a].nickname,
				id: resp.data[a].account_id,
				cid: resp.data[a].clan_id,
				bat: resp.data[a].statistics.all.battles,
				win: (resp.data[a].statistics.all.wins/resp.data[a].statistics.all.battles)*100,
				dmg: resp.data[a].statistics.all.damage_dealt/resp.data[a].statistics.all.battles,
				frag: resp.data[a].statistics.all.frags/resp.data[a].statistics.all.battles,
				spot: resp.data[a].statistics.all.spotted/resp.data[a].statistics.all.battles,
				def: resp.data[a].statistics.all.dropped_capture_points/resp.data[a].statistics.all.battles,
				wgr: resp.data[a].global_rating,
				lng: resp.data[a].client_language
			};
		}
	}
	reqHnd(sc.api.v, apiVehHnd);
}

// processing information from vehicle API and calculate WN8
function apiVehHnd(resp) {
	for (var p in resp.data) {
		if (resp.data.hasOwnProperty(p)) {
			var rWin, rDmg, rFrag, rSpot, rDef;
			if (s[p].u.bat > 0) {
				for (var v in resp.data[p]) {
					if (resp.data[p].hasOwnProperty(v)) {
						s[p].v.frag += statObj[resp.data[p][v].tank_id].frag*resp.data[p][v].statistics.battles;
						s[p].v.dmg  += statObj[resp.data[p][v].tank_id].dmg *resp.data[p][v].statistics.battles;
						s[p].v.spot += statObj[resp.data[p][v].tank_id].spot*resp.data[p][v].statistics.battles;
						s[p].v.def  += statObj[resp.data[p][v].tank_id].def *resp.data[p][v].statistics.battles;
						s[p].v.win  += statObj[resp.data[p][v].tank_id].win *resp.data[p][v].statistics.battles;
					}
				}
				rWin  = Math.max(((s[p].u.win /(s[p].v.win /s[p].u.bat)-0.71)/(1-0.71)),0);
				rDmg  = Math.max(((s[p].u.dmg /(s[p].v.dmg /s[p].u.bat)-0.22)/(1-0.22)),0);
				rFrag = Math.max(Math.min(rDmg+0.2,((s[p].u.frag/(s[p].v.frag/s[p].u.bat)-0.12)/(1-0.12))),0);
				rSpot = Math.max(Math.min(rDmg+0.1,((s[p].u.spot/(s[p].v.spot/s[p].u.bat)-0.38)/(1-0.38))),0);
				rDef  = Math.max(Math.min(rDmg+0.1,((s[p].u.def /(s[p].v.def /s[p].u.bat)-0.10)/(1-0.10))),0);
				s[p].wn8 = colStat(980*rDmg + 210*rDmg*rFrag + 155*rFrag*rSpot + 75*rDef*rFrag + 145*Math.min(1.8,rWin),"wn8",0);
			}
			else {
				s[p].wn8 = colStat(0,"wn8",0);
			}
		}
	}
	statInsert();
}

// insert stats and links to every post
function statInsert() {
	for (var y in s) {
		if (s.hasOwnProperty(y)) {
			var iPost = postObj.ids.indexOf(y),
			userStats = [
				"<td>"+loc.f01+"</td><td>"+colStat((s[y].u.bat > 0) ? s[y].u.win : 0,"wr",2,"%")+"</td>",
				"<td>"+loc.f02+"</td><td>"+colStat(s[y].u.bat,"bat",0,"")+"</td>",
				"<td>"+loc.f03+"</td><td>"+colStat(s[y].u.wgr,"pr",0,"")+"</td>",
				"<td>"+loc.f04+"</td><td>"+s[y].wn8+"</td>"
			],
			userLinks = [
				[
					["<a target='_blank' href='http://worldoftanks."+sc.srv+"/community/accounts/named/"+s[y].u.name+"'>Player Profile</a>"],
					[srv.ws, "<a target='_blank' href='http://wotstats.org/stats/"+srv.ws+"/"+s[y].u.name+"/'>WoTstats</a>"]
				],
				[
					[srv.wl, "<a target='_blank' href='http://wotlabs.net/"+srv.wl+"/player/"+s[y].u.name+"'>WoTLabs</a>"],
					[srv.cs, "<a target='_blank' href='http://wotcs.com/player.php?wid="+s[y].u.id+"'>WoT-CS</a>"]
				],
				[
					[srv.nm, "<a target='_blank' href='http://noobmeter.com/player/"+srv.nm+"/"+s[y].u.name+"'>Noobmeter</a>"],
					[srv.wr, "<a target='_blank' href='http://wotreplays."+srv.wr+"/player/"+s[y].u.name+"'>WoTReplays</a>"]
				],
				[
					[srv.wn, "<a target='_blank' href='http://wot-news.com/stat/pstat/"+srv.wn+"/"+s[y].u.name+"/'>Wot-news</a>"],
					(sc.srv=="ru") ? [srv.wr, "<a target='_blank' href='http://wots.com.ua/user/stats/"+s[y].u.name+"'>WoTS.com.ua</a>"] : [srv.wlife, "<a target='_blank' href='http://en.wot-life.com/"+srv.wlife+"/player/"+s[y].u.name+"/'>WoT-Life</a>"]
				]
			];
			if (iPost >- 1) {
				for (var i=0; i<postObj.num[iPost].length; i++) {
					var groupTitle = postObj.cls[postObj.num[iPost][i]].getElementsByClassName("group_title")[0],
						basicInfo = postObj.cls[postObj.num[iPost][i]].getElementsByClassName("basic_info")[0],
						infoClass = postObj.cls[postObj.num[iPost][i]].getElementsByClassName("author_info")[0],
						statTable = elem("table", "t-table-stats", ""),
						urlTable = elem("table", "t-tables-links", "<tbody></tbody>"),
						flag = elem("img", "i-xvm-lang", "", "", "https://bytebucket.org/seriych/worldoftanksforumextendedstat.user.js/raw/tip/data/img/lang/"+s[y].u.lng+".png");
						flag.title = s[y].u.lng.toUpperCase()+" "+loc.f00;
					for (var sr=0; sr<userStats.length; ++sr) {
						statTable.appendChild(elem("tr", "", userStats[sr]));
					}
					for (var l=0; l<userLinks.length; ++l) {
						var uRow = elem("tr", "", "");
						for (var lr=0; lr<userLinks[l].length; ++lr) {
							uRow.appendChild(userLinks[l][lr][0] && userLinks[l][lr][1] ? elem("td", "", userLinks[l][lr][1]) : elem("td", "", userLinks[l][lr][0]));
						}
						urlTable.firstElementChild.appendChild(uRow);
					}
					if (sc.srv !== "ru") {
						groupTitle.appendChild(flag);
					}
					basicInfo.insertBefore(statTable, basicInfo.lastElementChild);
					infoClass.appendChild(urlTable);
				}
			}
		}
	}
}

// request handler
function reqHnd(url, handler) {
	GM_xmlhttpRequest({
		method: "GET",
		url: url,
		onload: function(resp) {
			handler(JSON.parse(resp.responseText));
		}
	});
}

// colouring
function colStat(input, type, dec, sym) {
var color = colArr.dft[0],
	output = input.toFixed(dec);
	if (sym) {
		output += sym;
	}
	if (input >= 1000) {
		output = input.toFixed(dec).toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1"+sc.sym);
	}
	for (var c in colArr) {
		if (colArr.hasOwnProperty(c)) {
			if (input >= colArr[c][colArr.id[type]]) {
				color = colArr[c][0]; break;
			}
		}
	}
	return "<font color='"+color+"'>"+output+"</font>";
}

// quick creation of element
function elem(tag, name, html, type, src) {
var element = document.createElement(tag);
	if (name) {element.className = name;}
	if (html) {element.innerHTML = html;}
	if (type) {element.type = type;}
	if (src) {element.src = src;}
	return element;
}

}());