WoTStatScript

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

As of 2015-07-24. See the latest version.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name        WoTStatScript
// @version     0.9.9.1.4
// @description More info for World of Tanks profile page. Updated for the new style.
// @author      Orrie
// @namespace   http://forum.worldoftanks.eu/index.php?/topic/263423-
// @icon        http://dl.dropboxusercontent.com/u/12497046/wot/projects/statscript/img/icon.png
// @include     http://worldoftanks.eu/*/accounts/*/*
// @include     http://worldoftanks.ru/*/accounts/*/*
// @include     http://worldoftanks.com/*/accounts/*/*
// @include     http://worldoftanks.asia/*/accounts/*/*
// @include     http://worldoftanks.kr/*/accounts/*/*
// @include     http://*.wargaming.net/clans/*/*
// @grant       GM_xmlhttpRequest
// @license     MIT License
// ==/UserScript==
/*
	Changelog: http://dl.dropboxusercontent.com/u/12497046/wot/projects/statscript/WoTStatScript-changelog.txt
*/
(function() {
// global vars
var d = document;

// get server info and webpage
var wg = {host:d.location.host, href:d.location.href, clan:{}};
	wg.srv = wg.host.match(/(eu|ru|na|com|asia|kr)/)[0].replace(/com/,"na");
	wg.player = /(community|uc)\/accounts\/\d+/.test(wg.href);
	wg.clans = /wargaming\.net\/clans\/+[\d]+\//.test(wg.href);

// script variables
var sc = {
	vers: "0.9.9.1.4",
	host: "http://greasyfork.org/scripts/661-wotstatscript",
	user: "http://forum.wotlabs.net/index.php?/user/1618-orrie/",
	top: {
		eu: "http://forum.worldoftanks.eu/index.php?showtopic=263423",
		na: "http://forum.worldoftanks.com/index.php?showtopic=404652"
	},
	wn: "http://www.wnefficiency.net/exp/expected_tank_values_latest.json",
	nm: {
		id: "orrie_js_174043" // noobmeter api id
	},
	loc: [
		[(wg.player) ? d.getElementsByClassName('js-cm-li-spt')[0].firstElementChild.innerHTML.toLowerCase() : d.getElementsByClassName('language-toggle')[0].textContent.match(/\(([\u00BF-\u1FFF\u2C00-\uD7FF\w]+)\)/)[1].toLowerCase(), "en"],
		(wg.player) ? [["support", "en"],["podpora", "cz"],["kundendienst", "de"],["soporte", "es"],["assistance", "fr"],["wsparcie", "pl"],["destek", "tr"],["suporte", "en"],["поддержка", "ru"]] : [["english", "en"],["čeština", "cz"],["deutsch", "de"],["español", "es"],["français", "fr"],["polski", "pl"],["türkçe", "tr"],["suporte", "en"],["русский", "ru"]]
	]
};
// script threadlink
	sc.link = "<div class='b-scriptlink'><a target='_blank' href="+sc.host+">Script</a> version "+sc.vers+" - <a target='_blank' href="+((wg.srv == "na") ? sc.top.na : sc.top.eu)+">Thread</a></div>";

// external site support
var srv = {
	wl: false,    // wotlabs
	nm: false,    // noobmeter
	ws: false,    // wotstats
	cs: false,    // wotcs
	wlife: false, // wot-life
	as: false,    // away stats
	//wn: false,    // wot-numbers
	//tb: false,    // tomatobot
	ct: false,    // clan tools
	aos: false,   // age of strife
	kttc: false,  // kttc
	wots: false,  // wots
	ch: false,    // clan history
	wr: false     // wotreplays
};

// determine browser types
var web = {
	gecko: typeof InstallTrigger !== 'undefined',
	opera: !!window.opera || /opera|opr/i.test(navigator.userAgent),
	chrome: !!window.chrome && !!window.chrome.webstore,
	safari: /constructor/i.test(window.HTMLElement)
};

// fetch wnefficiency values - check if array exists in localStorage, otherwise fetch and reload page
var statObj = {},
	wnExpValues = JSON.parse(localStorage.getItem("wnExpValues")),
	wnExpDate = JSON.parse(localStorage.getItem("wnExpDate"))+1728e5 >= Date.now(), // true if timestamp is less than 2 days old, refresh list if false.
	wnExpVers = JSON.parse(localStorage.getItem("wnExpVers")) || "";
if (wg.player) {
	if (wnExpVers[0]==sc.vers && wnExpValues && wnExpDate) {
		statObj = wnExpValues.data;
	}
	else {
		reqHnd(sc.wn, wnHnd, wnHnd_error);
	}
}

// inserting style into head
var style = elem("style", "wotstatscript", "", "text/css");
	d.head.appendChild(style);

// inserting functions into head as scripts
var scripts = [copyClipboard];
for (var _j=0, _j_len = scripts.length; _j<_j_len; ++_j) {
var script = elem("script", "wotstatscript", "", "text/javascript");
	script.textContent = scripts[_j].toString();
	d.head.appendChild(script);
}

// colour scale array
var colArr = {
	//      col        wr  bat    sr  hr  dmg  wgr   wn8   wn7   eff   nm
	sUni: [ "#5A3175", 65, 30000, 50, 80, 300, 9900, 2900, 2050, 2050, 2000 ], // 99.99% super unicum
	uni:  [ "#83579D", 60, 25000, 46, 75, 270, 9000, 2450, 1850, 1800, 1950 ], // 99.90% unicum
	gr8:  [ "#3972C6", 56, 21000, 42, 70, 240, 8500, 2000, 1550, 1500, 1750 ], // 99.00% great
	vGud: [ "#4099BF", 54, 17000, 38, 65, 210, 6500, 1600, 1350             ], // 95.00% very good
	good: [ "#4D7326", 52, 13000, 34, 60, 180, 5000, 1200, 1100, 1200, 1450 ], // 82.00% good
	aAvg: [ "#849B24", 50, 10000, 30, 55, 150, 4000,  900                   ], // 63.00% above average
	avg:  [ "#CCB800", 48,  7000, 25, 50, 120, 3000,  650,  900,  900, 1250 ], // 40.00% average
	bAvg: [ "#CC7A00", 47,  3000, 20, 45,  90, 2000,  450,  700,  600, 1150 ], // 20.00% below average
	bas:  [ "#CD3333", 46,  1000, 15, 40,  60, 1500,  300,  500             ], //  6.00% basic
	beg:  [ "#930D0D",  0,     0,  0,  0,   0,    0,    0,    0,    0,    0 ], //  0.00% beginner
	dft:  [ "#6B6B6B" ], // default
	id: { "col": 0, "wr": 1, "bat": 2, "sr": 3, "hr": 4, "dmg": 5, "wgr": 6, "wn8": 7, "wn7": 8, "eff": 9, "nm": 10 }  // type identifier
};

// localization
// cz-czech   - Crabtr33 and Ragnarocek
// de-german  - ArtiOpa, Crakker and multimill
// fr-french  - SuperPommeDeTerre
// pl-polish  - KeluMocy and pokapokami
// es-spanish - Frodo45127
// tr-turkish - Ufuko
// ru-russian - dimon222
var loc = {
	// thousands separator
	sym: { en: ",", ru: " ", cz: " ", de: ".", fr: " ", pl: " ", es:".", tr: "."},
	// profile page
	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" },
	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" },
	p03: { en: "Days Ago", ru: "Дней назад", cz: "dnů", de: "Tage in WOT aktiv", fr: "jours", pl: "Dni temu", es: "Días", tr: "Gün Önce" },
	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ı" },
	p05: { en: "Signature:", ru: "Подпись:", cz: "Podpis:", de: "Forumsignatur", fr: "Signature:", pl: "Sygnatura do forum:", es: "Firma", tr: "İmza" },
	p06: { en: "Light", ru: "Светлые тона", cz: "Světlý", de: "Signatur Weiß", fr: "Claire", pl: "Jasna", es: "Clara", tr: "Açık" },
	p07: { en: "Dark", ru: "Тёмные тона", cz: "Tmavý", de: "Signatur Schwarz", fr: "Foncée", pl: "Ciemna", es: "Oscura", tr: "Koyu" },
	p08: { en: "Replays:", ru: "Реплеи:", cz: "Záznamy:", de: "Replays", fr: "Replays:", pl: "Powtórki:", es: "Repeticiones:", tr: "Replayler" },
	p09: { en: "Victories", ru: "Победы", cz: "Vítězství", de: "Siege", fr: "Victoires", pl: "Zwycięstw", es: "Victorias", tr: "Zaferler" },
	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ı" },
	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" },
	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" },
	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ı" },
	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" },
	p15: { en: "WN8", ru: "WN8", cz: "WN8", de: "WN8", fr: "WN8", pl: "WN8", es: "WN8", tr: "WN8" },
	p16: { en: "Efficiency", ru: "Эффективность", cz: "Efektivita", de: "Effizienz", fr: "Efficacité", pl: "Efficiency", es: "Eficiencia", tr: "Efficiency" },
	p17: { en: "NoobMeter", ru: "NoobMeter", cz: "NoobMeter", de: "NoobMeter", fr: "NoobMeter", pl: "NoobMeter", es: "NoobMeter", tr: "NoobMeter" },
	p18: { en: "Fetching...", ru: "Загрузка...", cz: "Načítám...", de: "abrufen...", fr: "Récupération...", pl: "Pobieranie...", es: "Recuperando...", tr: "Getiriliyor..." },
	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ı" },
	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" },
	p21: { en: "Total", ru: "Всего", cz: "Celkem", de: "Gesamt", fr: "Total", pl: "Wynik", es: "Total", tr: "Toplam" },
	p22: { en: "Scaled", ru: "Шкала", cz: "Stupnice", de: "Skaliert", fr: "A l'échelle", pl: "Skalowanie", es: "Escala", tr: "Ölçek" },
	p23: { en: "Destroyed", ru: "Уничтожено", cz: "Zničeno", de: "Zerstört", fr: "Détruits", pl: "Fragi", es: "Destruidos", tr: "imha" },
	p24: { en: "Damage", ru: "Урон", cz: "Poškození", de: "Schaden", fr: "Dommages", pl: "Obrażenia", es: "Daño", tr: "Hasar" },
	p25: { en: "Detected", ru: "Обнаружено", cz: "Detekováno", de: "Aufgeklärt", fr: "Détectés", pl: "Wykrycia", es: "Detectados", tr: "Tespit" },
	p26: { en: "Capping", ru: "Захват", cz: "Obsazení", de: "Erobert", fr: "Capture", pl: "Zdobycie bazy", es: "Capturando", tr: "İşgal" },
	p27: { en: "Defense", ru: "Оборона", cz: "Obrana", de: "Verteidigt", fr: "Défense", pl: "Obrona bazy", es: "Defendiendo", tr: "Savunma" },
	p28: { en: "Victories", ru: "Победы", cz: "Vítězství", de: "Siege", fr: "Victoires", pl: "Zwycięstwa", es: "Victorias", tr: "Zaferler" },
	p29: { en: "WN8", ru: "WN8", cz: "WN8", de: "WN8", fr: "WN8", pl: "WN8", es: "WN8", tr: "WN8" },
	p30: { en: "WN7", ru: "WN7", cz: "WN7", de: "WN7", fr: "WN7", pl: "WN7", es: "WN7", tr: "WN7" },
	p31: { en: "Efficiency", ru: "Эффективность", cz: "Efektivita", de: "Effizienz", fr: "Efficacité", pl: "Efficiency", es: "Eficiencia", tr: "Efficiency" },
	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?" },
	p33: { en: "Ace Tanker", ru: "Мастер", cz: "Hrdina", de: "Panzer Ass", fr: "As du char", pl: "As Pancerny", es: "As de tanques", tr: "Tank Ası" },
	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" },
	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" },
	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" },
	p37: { en: "No Badge", ru: "Нет значка", cz: "Nezískáno", de: "kein Orden", fr: "Aucun badge", pl: "Bez odznaki", es: "Sin medalla", tr: "Rozetsiz" },
	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" },
	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ı" },
	p40: { en: "Victories:", ru: "Победы:", cz: "Vítězství:", de: "Siege", fr: "Victoires:", pl: "Zwycięstwa:", es: "Victorias:", tr: "Zaferler" },
	p41: { en: "Defeats:", ru: "Поражения:", cz: "Porážek:", de: "Niederlagen", fr: "Défaites:", pl: "Porażki:", es: "Derrotas:", tr: "Yenilgiler" },
	p42: { en: "Draws:", ru: "Ничья:", cz: "Remíza:", de: "Unentschieden", fr: "Egalités:", pl: "Remisy:", es: "Empates:", tr: "Beraberlikler" },
	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" },
	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ş" },
	p45: { en: "Experience:", ru: "Опыт:", cz: "Zkušenosti:", de: "Erfahrung", fr: "Expérience:", pl: "Doświadczenie:", es: "Experiencia:", tr: "Deneyim" },
	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" },
	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" },
	p48: { en: "Destroyed:", ru: "Уничтожено:", cz: "Zničeno:", de: "Zerstört", fr: "Détruits", pl: "Zniszczeni przeciwnicy:", es: "Destruidos:", tr: "İmhalar" },
	p49: { en: "Deaths:", ru: "Смертей:", cz: "Nepřežil:", de: "Tode", fr: "Morts", pl: "Zniszczony:", es: "Muertes:", tr: "Ölümler" },
	p50: { en: "Detected:", ru: "Обнаружено", cz: "Detekováno:", de: "Aufgeklärt", fr: "Détectés", pl: "Wykrytych:", es: "Detectados:", tr: "Tespitler" },
	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ı" },
	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" },
	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" },
	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ı" },
	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ı" },
	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" },
	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" },
	p58: { en: "Tier", ru: "Уровень", cz: "Tier", de: "Stufe", fr: "Tiers", pl: "Poziom", es: "Tier", tr: "Seviye" },
	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" },
	p60: { en: "Tankopedia", ru: "Танковедение", cz: "Tankpédie", de: "Tankopedia", fr: "Tankopedia", pl: "Tankopedia", es: "Tankopedia", tr: "Tankopedia" },
	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" },
	p62: { en: "Premium Tanks", ru: "Премиум танки", cz: "Premium tanky", de: "Premium Panzer", fr: "Chars premiums", pl: "Czołgi premium", es: "Tanques premium", tr: "Premium Tanklar" },
	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" },
	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" },
	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." },
	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" },
	p67: { en: "Replays:", ru: "Реплеи:", cz: "Záznamy:", de: "Replays", fr: "Replays:", pl: "Powtórki:", es: "Repeticiones:", tr: "Replayler" },
	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" },
	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." },
	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ı" },
	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" },
	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" },
	p73: { en: "Battles:", ru: "Битвы:", cz: "Bitev:", de: "Gefechte", fr: "Batailles:", pl: "Bitew:", es: "Batallas:", tr: "Savaşlar" },
	p74: { en: "Clan History:", ru: "История клана:", cz: "Historie klanů:", de: "Clan Historie", fr: "Clan History:", pl: "Poprzednie klany:", es: "Clan History:", tr: "Clan History:" },
	p75: { en: "No Rating", ru: "Нет рейтинга", cz: "Bez hodnocení", de: "Kein Rating", fr: "No Rating", pl: "Brak klasyfikacji", es: "No Rating", tr: "No Rating" },
	p76: { en: "None", ru: "Никто", cz: "Žádné", de: "Kein", fr: "None", pl: "Brak", es: "None", tr: "None" },
	p77: { en: "Error", ru: "Oшибка", cz: "Chyba", de: "Fehler", fr: "Error", pl: "Błąd", es: "Error", tr: "Error" },
	p78: { en: "Missing Tanks", ru: "Missing Tanks", cz: "Missing Tanks", de: "Missing Tanks", fr: "Missing Tanks", pl: "Missing Tanks", es: "Missing Tanks", tr: "Missing Tanks" },
	// clan page
	c01: { en: "Clan Stats", ru: "Статистика клана", cz: "Stat. klanu", de: "Clanstatistiken", fr: "Statistiques du clan", pl: "Statystyki klanu", es: "Estadísticas del clan", tr: "Klan İstatistikleri" },
	c02: { en: "Replays:", ru: "Реплеи:", cz: "Záznamy:", de: "Replays", fr: "Replays:", pl: "Powtórki:", es: "Repeticiones:", tr: "Replayler" }
	//p00: { en: "", ru: "", cz: "", de: "", fr: "", pl: "", es:"", tr: ""},
};

// region settings for external sites
switch(wg.srv) {
	case ("eu"): // eu server
		srv.wl = srv.nm = srv.ws = srv.cs = srv.wlife = srv.as = srv.wn = srv.tb = srv.ct = srv.kttc = srv.aos = srv.ch = srv.wr = wg.srv;
		break;
	case ("ru"): // ru server
		srv.wl = srv.nm = srv.wn = srv.ws = srv.cs = srv.tb = srv.ct = srv.kttc = srv.wots = srv.aos = srv.ch = srv.wr = wg.srv;
		break;
	case ("na"): // na server - american english
		srv.wl = srv.nm = srv.ws = srv.cs = srv.wlife = srv.wn = srv.tb = srv.ct = srv.kttc = srv.aos = srv.ch = wg.srv; srv.wr = "com"; srv.wn = "us";
		loc.p27.en = "Defence";
		loc.p55.en = "Base Defence Points:";
		break;
	case ("asia"): // asia server
		srv.wl = srv.nm = srv.wn = srv.ws = srv.cs = "sea"; srv.ct = srv.kttc = srv.aos = srv.ch = wg.srv; srv.wr = "com";
		break;
	case ("kr"): // korean server
		srv.wl = srv.nm = srv.ws = srv.cs = srv.ct = srv.aos = srv.ch = wg.srv; srv.wr = "com";
		break;
	default: break;
}

// find page language
for (var _sl=0, _sl_len = sc.loc[1].length; _sl<_sl_len; _sl++) {
	if (sc.loc[1][_sl][0] == sc.loc[0][0]) {
		sc.loc = sc.loc[1][_sl][1]; break;
	}
	else if (_sl == _sl_len-1) {
		sc.loc = sc.loc[0][1];
		if (wg.player) {
			sidemsg_class.appendChild(elem("div", "b-loc-wrpr", "<div class='b-sidebar-widget clearfix'><div class='b-sidebar-widget_inner b-sidebar-widget_inner__recrut'><h2 class='b-sidebar-widget_title'>Script Translation</h2><p class='b-sidebar-widget_text'>Unsupported language detected!<br>If you want to contribute with translation, contact <a class='b-orange-arrow' href='"+sc.user+"'>Orrie</a></p></div></div>"));
		}
	}
}
// process localization
for (var _l in loc) {
	if (loc.hasOwnProperty(_l)) {
		loc[_l] = loc[_l][sc.loc];
	}
}

// add language to body classname for language based styling
d.body.classList.add("lang-"+sc.loc);

// variables for dropbox, css and data uri
var css = {
	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;",
	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;",
	l: [
		"http://dl.dropboxusercontent.com/u/12497046/wot/projects/statscript/img",
		"/static/wot/common/css/scss/context-menu/img/arrow.png",
		"/static/wot/common/css/scss/content/links/img/orange_arrow.png",
		"/static/wot/common/css/scss/content/user/img/speedometr-separator.png",
		"/static/wot/common/css/scss/content/links/img/ico-info.png",
		"/static/wot/common/css/scss/content/links/img/vertical-arrow.png",
		"/static/wot/common/img/common/cont-img-mask.png",
		"/static/wot/common/img/classes/class-ace.png",
		"/static/wot/common/img/classes/class-1.png",
		"/static/wot/common/img/classes/class-2.png",
		"/static/wot/common/img/classes/class-3.png"
	],
	u: {
		menu: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPQAAAABCAIAAABmEhQDAAAAHklEQVQoU2MAAj4BAR5ePi6eUTSKhgni4eFjYGAAAN9YIhjam+zlAAAAAElFTkSuQmCC",
		icon1:"data:image/png;base64,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",
		icon2:"data:image/png;base64,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",
		nmLogo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABgUlEQVQ4y92SPWsUYRSFn/POzE4MgkhMKyKICAEjiUksgoWClY0WYifKDlj4VyxsDGvlgmhtLUiIkoSNiLEWCwN+dmvAnZl3jkV2lxArSz3d/eDe53Iu/NOabb8J6cHkfLGZbXUWq1E8c2c7kxpPhF8unfPu0bk4qqWqz+jggAtFL6uor9hhLqjZnkwHq7ip+/WRJlF50tYs0oLwF5vdPwhKKCHDguiEfpUBkKh6aMIT8MutzmJ3TDFGb/duA7L91HBTgAEYQlqHgeOH9PPt/oUCWCpezVTk7z1sFpwG7gMt4C64a7QCdGUTVF9LQ/l6feXiN80Xmw8aJ/cQxm6AIKkAXgAfgWnbZyVNgp8bjdAIqi8HW1MMeSUs2MG+ZfsTeMdwQrBs+AAgPAQ1gl0BnC82njVOboxPkGujVHhglMuORonYywfid8nXe52ltbGNC8X6JaNTQapjrGNjchH7VutYnvhHJJ3Cg8+mdXSCr4/XOlcH+7xf1d984Fx7I/D/6Dd9b6wCx93gcQAAAABJRU5ErkJggg==",
		rat:"data:image/png;base64,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",
		ratMark:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAANCAQAAADLNWwDAAAAV0lEQVQI12NgEGQQZhBhEALSQEqMQQIIgUxxBqmvRyBMKQa5H3cZpIGyDHIMir/fAkkxBgZFa/0/nxgUgQoZVNLsgExloGpkUSS1SCYgmQuxTQwkCncDAH0wFzVj5p2XAAAAAElFTkSuQmCC",
		tiers:"data:image/png;base64,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",
		bad1:"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==",
		bad2:"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==",
		miss: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAcCAMAAAAz6Z0tAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAA5UExURUxpcdkCCP8KJP8MJtIAAdkEC88AANAAAP8LJusHGM8AAM8AAM8AAM8AAP8OKf8OKdAAAP8MJ88AAK2kIk4AAAATdFJOUwBH1rffDcv+/if1nzhijVC68IB97NktAAAAjElEQVQoz+3RSxIDIQgEUBkQ8K9z/8OOJi4l2afS5c6nXahzvx3fKmJt3hYBh84MDKa4dNTW6qWXYTzqey+g9HNXG2OfDxThSKpW2OaWdCSozQEJTwPSj6TLvD2/jEWS3G4bq6hEWnOsLorlPHSXtI2w8cCrowAUEsrW82aOEufi/OEbS2JOxbt/vucBz3AEu+Dj2y4AAAAASUVORK5CYII=",
		cIcons: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAACACAMAAAA1SxkQAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADeUExURUxpcTofR0GwyRsZGiIgHyYmJkqkxV1WazJn0f9qAECxyTyqwXAxlhsaGjNly0hTtRERER8dHEq0ynAxlvehhdrhhem/hSwqKhgXFUKwyBkXFEKxyTFlyzAoKHI1lHQron8axT+vxv+GhTJlzP+Chf+AhfR0Wdj9hUOxyf9sAZBKGvVhCv+BhX8axWJUZTFly6DqheicAP/nhf9rAPhrBf9/hfvxhf+phWFoIpNYHdU5LqNdenAxliQjI/9qACEXFjAiISkoKDgrKVBBN0UyMHlMR2tGQqWZlfn5+Xh0a6/IXu8AAAA8dFJOUwAYicrr9hMF/vZU+uiAhjUuqzGBEE4j1mqeVrO3nr1S+tCh04HDQcRvykLwX4b2V9f1s5+A233QvoXq0Fvc5mgAAANrSURBVEjHvZUJc6JMEIabQyaCKCCICGjUGHO4mjv59nM0HGLy///Q9swg6B5VW1tb25UM3c+83dMDIwD8mWny2DCcOnYwNHSw4tNY82PQOAgNQ9aA2IkFX1isY0xY7BM4HyEIDAOVcZKYMDpnEsMIAPpJwjLOzznABTD24QgwgXkAzCQ/8aWTXolE4B9aW4xR1G53Vm1mHJxxax9UUTTlIIrE/WmjD9G0045QtALgs+3VmbbinhBMp6tpxBRnUZlysLJu52B/bzvd1vpg/LZ2q3Dd5YJ6viXus/ArAeGg26kEQwQt7HBYCrprWA9Z7ZFYAi8glKQ1ZE8UawHPQC07Kpi4ZkWZz54tb4mvMhJHoFWBNc8armvQwiU6ot+y9SEpBa3D5rqjaoPl9vnY6n53b3reycki3t1d7xhgfOeBVzO3N/fmMJ/Xad7c9cCd15KXF5wkD15VVLgvL9WiD1zce0Wdx+a8B17Ofe3h/6sLMBHJZLKAxeTiAtxZWX4xcWeX7nPvclY20JstJgQumKhscPZ8eRiFXUyYdvHsVnvgHun9+shIfdsCYsZW9ZOkdICAqn2+rmQn1LYkybKpOmC1cMbs26of922qWBIQhdoDdbnfZw01oaoNlkobjeQz+/xMVJUqJtgULUmzfcYcWwKTXWn6uUw4IGApXJKlfAIXJgPMVJSlryjosN4kE0v1zT4uXXbGkhppA9c0xTuEWCaqsYWBVL1NrL5iDqxfvFNitXFkagwqPbIkUaFxHC+X/gnwh//fCJDwjaiDp+Y1B0mWsYt5ebtpcuC/vQ0Uqtxcb0pgPt0+3bz997gpAZtqXt/fN0uAtdDb3N9vOFBojLUqa8JNzHNrcP31a/MENG+PEjjYbE7BY/PEHn/vY/K9K9eAuY4mV58aJ9Ac/Ppo4zJJGzs4qcuBHnKihXog6yDLV8FVyH5JITqyDA5KnFAjBBNQgDWuglAPQQ4AL8EVS9ZlWdfCUGNX8aw1WZd1/JOd6nGTMSFj7bh7h3X4u69TSdnimRcjN2W73dJy5LZlVo7cVO6qNUCfVuNP7b02jMx3eE/TdJ+nAtg4pHmef+wzxO+gMppnWfaBJE9Tng5ZURQfSPI8BZSlUOx2O4yLLM8hZ3THwL4osiwHX4CiwBhBBlJcKnaMIsA+0h8a/QZnvrDP+ki71wAAAABJRU5ErkJggg=="
	}
};

// matches url with profile page and checks if profile has any battles as script is useless without
if (wg.player) {
	var tableBattles = filter(d.getElementsByClassName('t-personal-data_value')[2].innerHTML, 1),
		profileName_class = d.getElementsByClassName('b-profile-name')[0];
	if (tableBattles > 0) {
	// getting userinfo
		wg.name = d.getElementsByTagName('h1')[0].innerHTML;
		wg.id = wg.href.match(/\/(\d+)/)[1];

	// URL variables
		sc.nm.url = "http://noobmeter.com/player/"+srv.nm+"/"+wg.name+"/"+wg.id;
		sc.nm.api = "http://noobmeter.com/simpleplayerprapi/"+srv.nm+"/"+wg.name+"/"+wg.id+"/"+sc.nm.id;
		sc.chApi = "http://clanapi-wotcs-eu.herokuapp.com/players/"+wg.id+"/changes";

	// style contents
	var stylePlayer = [
		// global rules
		"h3, h4 {margin: 0 0 15px; text-align: center;}",
		"h5 {margin: 5px 0 8px;}",
		"p, .reg-KR p {margin: 0;}",
		".reg-KR p {line-height: 133%;}",
		"table {width: 100%;}",
		// background image fix
		"#js-background-parallax-translate3d-wrapper {z-index: -1;}",
		// header rules
		".b-header {height: 194px;}",
		// container wrapper
		".l-container-wrapper {background: none;}",
		// content width
		".l-content {margin: 0 22px 25px; width: 955px}",
		// background rules
		".b-background {display: flex; left: -23px; opacity: 0.5; position: absolute; width: 1000px; z-index: -1;}",
		".b-background img {width: 100%;}",
		// profile wrapper rules
		".b-profile-wrpr {margin: 15px 0 0; min-height: 138px;}",
		".b-profile-wrpr td {font-weight: bold; line-height: 133%;}",
		".b-profile-wrpr .t-profile-table a, .b-profile-wrpr #js-profile-clan-table a {background: url("+css.l[1]+") no-repeat 0 2px; color: #CACBCC; padding: 0 0 0 10px;}",
		".b-profile-wrpr .t-profile-table a:hover, .b-profile-wrpr #js-profile-clan-table a:hover {background: url("+css.l[1]+") no-repeat -244px 2px; color: #FFFFFF;}",
		".b-profile-header {position: absolute; right: 0; top: 0;}",
		".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;}",
		".b-ratingsClip {display: inline-block;}",
		".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;}",
		".b-ratingsButton:hover {background-color: #282828; cursor: pointer;}",
		".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;}",
		".b-profile-error:hover {width: auto;}",
		// profile player rules
		".b-profile-name {float: none; margin: 0; max-width: 370px;}",
		".b-profile-name table {font-family: Arial;}",
		".b-profile-name td:first-child {white-space: nowrap;}",
		".reg-RUS .b-profile-name td:first-child {width: 120px;}",
		".reg-KR .b-profile-name td:first-child {width: 80px;}",
		".b-header-h1__profile {margin: 0; padding: 0 0 6px;}",
		"body.reg-KR h1, body.reg-KR .b-header-h1 {line-height: 1;}",
		// profile clan rules
		"#js-clan-block-container {left: 385px; position: absolute; top: 25px;}",
		".b-profile-clan {float: none; max-width: 360px; margin: 0;}",
		".b-photo {min-height: 54px;}",
		"a.b-link-clan, .b-link-clan a {display: inline;}",
		".b-statistic {margin: 0 0 3px;}",
		"#js-clan-block-container table {font-family: Arial; width: 360px;}",
		"#js-clan-block-container td:first-child {white-space: nowrap;}",
		".reg-RUS #js-clan-block-container td:first-child {width: 115px;}",
		".reg-KR #js-clan-block-container td:first-child {width: 70px;}",
		// profile clan history rules
		".b-clanHistory-wrpr {width: 750px;}",
		".b-clanHistory-wrpr span {display: inline-block; font-weight: bold; line-height: 133%;}",
		".b-clanHistory-wrpr .clanname {padding: 0 2px 0 0;}",
		".b-clanHistory-wrpr .clantag {padding: 0 2px;}",
		".b-clanHistory-wrpr .clantag.curr a {color: #F9D088;}",
		".b-clanHistory-wrpr a {color: #CACBCC;}",
		".b-clanHistory-wrpr a:hover {color: #FFFFFF;}",
		// campaign rating rules
		"#js-glory-points-block {margin: 2px 0;}",
		".b-campaign-rating {margin: 0; padding: 10px 0 0; width: 750px;}",
		".b-campaign-rating_header {display: inline-block; padding: 0 30px; position: relative; top: -5px;}",
		".lang-fr .b-campaign-rating_header {padding: 0px 10px}",
		".b-leadership-header_date {float: none; margin: 0; text-align: center;}",
		".b-campaign-rating_header .b-header-h3__first {margin: 0;}",
		".b-campaign-rating_info {display: inline-block; float: none; padding-left: 30px;}",
		".b-campaign-rating_info__left-divider {background-position: 15px 0;}",
		".b-campaign-rating_delta {padding: 0; position: absolute; top: 0;}",
		".b-campaign-rating_links {margin: 10px 65px 0 0;}",
		".reg-SG .b-campaign-rating_links, .lang-fr .b-campaign-rating_links {margin: 10px 30px 0px 0px;}",
		".b-campaign-rating_message {padding: 0 0 15px; text-align: center;}",
		// ban message rules
		".js-account_game_ban_info_msg {position: absolute; width: 600px;}",
		// sidebar rules
		".l-sidebar {margin: 0; position: absolute; right: 0; top: 25px; width: auto;}",
		".b-context-menu {background: url("+css.u.menu+") repeat-y; border-right: 1px solid black; margin: 0; width: 200px;}",
		".b-context-menu_wrapper {padding: 10px 0 5px;}",
		".b-context-menu-list {line-height: 16px;}",
		".b-context-menu-list li {padding: 4px 3px 4px 12px;}",
		// sidebar messages wrapper rules
		".l-side-msg {position: absolute; left: 224px; text-align: center; top: 0px; width: 205px;}",
		".b-sidebar-widget__comparison {background-color: #000000; border: 1px solid #000000; margin: 0; position: absolute; left: 223px; top: -26px; width: 203px;}",
		".b-sidebar-widget {margin: 0;}",
		".b-sidebar-widget_inner {padding: 10px}",
		".b-sidebar-widget_inner__comparison {display: table; margin: 5px auto; padding: 0;}",
		".b-sidebar-widget_title {margin: 0 0 5px; text-align: center;}",
		".b-sidebar-widget_text {margin: 0 0 5px;}",
		".b-box-shadow.js-recruitstation-recommended-widget {margin: 0; width: 242px;}",
		".l-sidebar .b-b4r {position: absolute; top: -26px; right: 977px;}",
		// userblock wrapper rules
		".b-user-block {"+css.box+" margin: 0; width: 750px;}",
		".b-head-block {background: url("+css.l[3]+") no-repeat 50% 100%; padding: 5px 0;}",
		".b-user-block_info {margin: -30px 0px 0px; padding: 34px 25px 3px;}",
		".b-personal-link {background-position: 0 12px; clear: left; padding: 10px 0 0 50px;}",
		".b-personal-link_txt {width: 360px;}",
		".b-user-block__sparks {background: url('"+css.l[0]+"/sparks.png') no-repeat 50% 0; width: 100%;}",
		".b-personal-data {min-height: 180px; padding: 0 20px 15px;}",
		".t-personal-data_ico {padding: 82px 5px 0;}",
		".t-personal-data_ico__hitrate {background: url("+css.u.icon1+") no-repeat 50% 50px;}",
		".t-personal-data_ico__tier {background: url("+css.u.icon2+") no-repeat 50% 50px;}",
		".t-personal-data_value {font-size: 28px; line-height: 100%;}",
		".t-personal-data_value.t-personal-data_value__pr {font-size: 36px;}",
		".b-speedometer-body {padding: 20px 50px;}",
		".b-speedometer {width: 33.3333%}",
		// ratings info rules
		".t-ratings-info {table-layout: fixed;}",
		".t-ratings-info th {font-size: 13px; font-weight: bold; line-height: 133%; padding: 20px 0 0;}",
		".t-ratings-info td {font-family: 'WarHeliosCondCBold','Arial Narrow',arial,sans-serif; font-size: 36px; line-height: 133%}",
		".t-ratings-info .rating-url_nm {background: url("+css.u.nmLogo+") no-repeat left center; padding: 0 0 0 20px;}",
		".ratings-table {background: url("+css.l[3]+") no-repeat 50% 0; padding: 20px 25px 10px;}",
		".t-table-ratings {width: 100%;}",
		".t-table-ratings td {line-height: 130%; padding: 9px 12px 2px 0; vertical-align: bottom;}",
		".t-table-ratings .td-center {line-height: 16px; padding: 9px 0 2px; text-align: center;}",
		".t-table-ratings .td-rating-meter {background: url("+css.l[3]+") no-repeat 50% 100%;}",
		".t-table-ratings .td-rating-meter td {padding: 0;}",
		".t-table-ratings .rating-meter {background: url("+css.u.rat+") no-repeat; border: 1px solid #252527; border-radius: 3px; height: 3px; margin: 0 7px;}",
		".t-table-ratings .rating-meter-dail_line {background: url("+css.u.rat+") 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; width: 0;}",
		".t-table-ratings .rating-meter-marker {background: url("+css.u.ratMark+") no-repeat; float: right; height: 13px; margin: -5px -2px 0 0; width: 5px;}",
		".t-table-ratings .rating-meter_wn8 {background-position: 0 0;}",
		".t-table-ratings .rating-meter_wn8 .rating-meter-dail_line {background-position: 0 -3px;}",
		".t-table-ratings .rating-meter_wn7 {background-position: 0 -6px;}",
		".t-table-ratings .rating-meter_wn7 .rating-meter-dail_line {background-position: 0 -9px;}",
		".t-table-ratings .rating-meter_eff {background-position: 0 -12px;}",
		".t-table-ratings .rating-meter_eff .rating-meter-dail_line {background-position: 0 -15px;}",
		".wnelink {padding: 5px 25px 5px 0; text-align: right;}",
		".wnelink_info {background-image: url("+css.l[4]+"), url("+css.l[2]+"); background-position: 4px 0px, right 0; padding: 0 9px 0 20px;}",
		".wnelink_info:hover {background-position: 4px -17px, right -22px;}",
		// statistics wrapper rules
		".b-statistics-wrpr {margin: 0 0 30px; overflow: auto;}",
		".b-statistics-wrpr .t-dotted td {line-height: 23px; padding: 0;}",
		".b-statistics-wrpr .t-dotted tr:hover td {color: #79797A;}",
		".b-statistics-wrpr .t-dotted td.t-dotted_class-ico {line-height: 13px;}",
		".b-statistics-wrpr .t-dotted td.t-dotted_class-ico img {margin: 2px 0 -1px;}",
		".b-result {margin: 0 10px; width: 315px;}",
		".b-result .t-dotted__fixed {table-layout: auto;}",
		".b-result-classes {margin: 0 10px; width: 265px;}",
		".b-result-classes span {color: #606061; display: inline-block; width: 48px;}",
		".t-dotted td {background: url("+css.l[3]+") no-repeat 50% 100%;}",
		// cake diagram rules
		".b-diagrams-sector {margin: 0 0 25px;}",
		".b-diagrams-sector h3 {text-align: center;}",
		".b-diagram-block {float: left; margin: 0 9px; width: 300px;}",
		".b-diagram-wrpr {float: none; margin: 0 auto;}",
		".t-dotted.t-dotted__diagram {margin-top: 0px; width: 100%;}",
		".t-dotted_diagram-percent {display: inline-block; width: 40px;}",
		".b-diagram-total {margin: 25px 0 0;}",
		".b-diagram-tiers .js-results {display: inline-block; margin: 0 0 0 30px; text-align: right; width: 14px;}",
		".reg-RUS .b-diagram-tiers .js-results {margin: 0 0 0 15px;}",
		".b-diagram-tiers .t-dotted_diagram-percent {margin: 0 0 0 3px; width: 52px;}",
		".b-diagram-ico_tier {background: url("+css.u.tiers+") no-repeat; padding-left: 30px;}",
		".b-diagram-ico_tier-1 {background-position: 4px 1px;}",
		".b-diagram-ico_tier-2 {background-position: 4px -14px;}",
		".b-diagram-ico_tier-3 {background-position: 4px -29px;}",
		".b-diagram-ico_tier-4 {background-position: 4px -45px;}",
		".b-diagram-ico_tier-5 {background-position: 4px -59px;}",
		".b-diagram-ico_tier-6 {background-position: 4px -74px;}",
		".b-diagram-ico_tier-7 {background-position: 4px -89px;}",
		".b-diagram-ico_tier-8 {background-position: 4px -104px;}",
		".b-diagram-ico_tier-9 {background-position: 4px -120px;}",
		".b-diagram-ico_tier-10 {background-position: 4px -134px;}",
		".t-dotted__diagram tr td.t-dotted_diagram-last {width: 0;}",
		// achievement wrapper rules
		".b-achievements-wrpr {margin: 16px 0 0;}",
		".b-vertical-arrow {display: table; margin: 8px auto 0; padding: 2px 10px 0;}",
		".js-short-achievements {margin: 15px 0 50px;}",
		".js-full-achievements {margin: 0 37px 50px;}",
		".reg-KR .js-full-achievements {margin: 0 34px 30px;}",
		".b-achivements {display: table; margin: 0 auto; padding: 0 0 20px;}",
		".b-achivements-head {margin-top: 15px;}",
		".b-achivements_item {display: inline-table; float: inherit; margin: 5px 5px 0;}",
		".js-full-achievements #js-achivement-medalTamadaYoshio {margin-left: 45px;}",
		".js-full-achievements #js-achivement-tankExpert3 {margin-left: 125px;}",
		".js-full-achievements #js-achivement-medalKay {margin-left: 125px;}",
		".js-full-achievements #js-achivement-forTacticalOperations {margin-left: 165px;}",
		".js-full-achievements #js-achivement-readyForBattleLT {margin-left: 245px;}",
		".js-full-achievements #js-achivement-noMansLand {margin-left: 85px;}",
		".js-full-achievements #js-achivement-ironMan {margin-left: 245px;}",
		// global rating rules
		".b-composite-heading {margin: 21px 0 15px 400px; width: 553px;}",
		".b-profile-ratings-date {margin-top: 1px}",
		".b-leadership-info {display: table; margin: 0 auto;}",
		".b-profile-link {display: table; margin: 14px auto 0}",
		".b-msg-important__rating {display: table; margin: 5px auto 0;}",
		".b-rating-dial__user {display: table; margin: 30px auto 22px;}",
		".b-orange-arrow__leadership {display: table; margin: 0 auto;}",
		".b-leadership-rating-text {text-align: center;}",
		".l-leadership-info-alignment {text-align: center;}",
		// vehicle table rules
		".b-vehicles-wrpr {margin: 20px 0;}",
		".b-vehicles-header {display: table; margin: 0 auto 15px}",
		".b-profile-vehicles-tankstat {margin: 0; position: absolute; right: 15px;}",
		".b-profile-vehicles-tankstat_link {background-image: url("+css.u.nmLogo+"), url("+css.l[2]+"); background-position: left center, right 0px; padding: 0 9px 0 20px;}",
		".b-profile-vehicles-tankstat_link:hover {background-position: left center, right -22px;}",
		".t-profile__vehicle .t-profile_right {text-align: center;}",
		".t-profile_dropdown-ico .tablesorter-header-inner {display: inherit;}",
		".t-profile_tankstype-prem td {border-top: 2px dashed #212123;}",
		".t-profile_tankstype-prem .b-tankstype-text {color: #FFC363;}",
		".t-profile_tankstype-prem.t-profile_tankstype__empty .b-tankstype-text {color: rgba(255, 195, 99, 0.3);}",
		".t-profile_tankstype-miss .b-tankstype-text {color: #D00900;}",
		".b-tankstype-ico__miss {background: url("+css.u.miss+") no-repeat center center;}",
		".t-profile .t-profile_tankstype td {height: 50px; padding: 0; vertical-align: middle;}",
		".b-tankstype-ico {display: table-cell;}",
		".b-tankstype-ico__lighttank {background-position: 0 -114px;}",
		".b-tankstype-ico__mediumtank {background-position: 0 -173px;}",
		".b-tankstype-ico__heavytank {background-position: 0 5px;}",
		".b-tankstype-ico__at-spg {background-position: 0 -232px;}",
		".b-tankstype-ico__spg {background-position: 0 -54px;}",
		".b-tankstype-ico__prem {background-position: 0 -291px;}",
		".b-tankstype-ico__ten {background: none; color: #BBB7AC; font-size: 17px; font-weight: 100; padding: 0 0 3px; text-align: center;}",
		".b-tankstype-text {display: table-cell; height: inherit; vertical-align: middle;}",
		".t-profile .t-profile_tankstype__item td {height: 40px; padding: 0; vertical-align: middle;}",
		".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;}",
		".t-profile .t-profile_tankstype td.t-profile_center div.hidden {display: none;}",
		".t-profile .t-profile_tankstype td.t-profile_center span:last-of-type {display: inline-block; margin-left: 10px; text-align: left; width: 40px;}",
		".b-armory-wrapper {height: inherit; margin: 0; padding: 0; width: 160px;}",
		".b-armory-wrapper .b-armory-level {display: table-cell; font-size: inherit; height: inherit; position: inherit; vertical-align: middle; left: 0; top: 0;}",
		".b-armory-wrapper img.png {height: 64px; margin: -50px 0 0 24px;}",
		".b-name-vehicle {color: #BBB7AC; display: table-cell; height: inherit; vertical-align: middle;}",
		".b-name-vehicle.b-gold-name {color: #FFC363;}",
		".b-name-vehicle.b-red-name {color: #D00900;}",
		".t-profile_dropdown-link {display: inherit;}",
		".js-error-data {text-align: center;}",
		".b-msg-error {display: table; margin: 0 auto;}",
		".b-vehicle-detail_txt {margin: 0 auto 4px; text-align: center; width: 768px;}",
		".b-vehicle-detail_link {display: table; margin: 0 auto;}",
		".b-vehicle-slider {margin: 23px 64px 17px}",
		".b-vehicle-slider_inner {width: 741px;}",
		".b-vehicle-slider_prev {left: -12px;}",
		".b-vehicle-slider_next {right: -12px;}",
		".b-vehicle-minitable {margin: 0 43px; width: 350px;}",
		".b-vehicle-minitable__right {float: left;}",
		// profile navigator
		".b-profile-nav {text-align: center;}",
		".b-profile-nav-top {background: #050505; border-radius: 0 0 15px 15px; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1); display:table; margin: 0 auto; padding: 5px 5px 7px;}",
		".wrapper-dropdown .b-profile-nav {float: left; padding: 7px 0 0;}",
		".b-profile-nav a {background: url("+css.l[5]+") no-repeat; cursor:pointer; margin: 0 10px 0 0; padding: 0 10px;}",
		".b-profile-nav a.top {background-position: 100% 0px;}",
		".b-profile-nav a.top:hover {background-position: 100% -36px;}",
		".b-profile-nav a.bot {background-position: 100% -18px;}",
		".b-profile-nav a.bot:hover {background-position: 100% -54px;}",
		".b-profile-nav span {border-bottom: 1px dashed;}",
		// multiple usage rules
		".b-orange-arrow__heading, .b-profile-ratings_link {margin: 4px 0 0;}"
	];
	style.textContent = stylePlayer.join("");
	// applies relevant style for own profile - login name delayed by Wargaming
	var userCheckSeq = 0,
		userChecker = setInterval(function() {
		var loginUser = d.getElementsByClassName('js-my_profile_nickname')[0].innerHTML.replace(/\s+/g, '');
			userCheckSeq ++;
			if (loginUser == wg.name) {
				if (srv.s == "es") {
					profile_div.style.minHeight = "167px";
				}
				else {
					profile_div.style.minHeight = "151px";
				}
				clearInterval(userChecker);
			}
			else if (userCheckSeq == 5) {
				clearInterval(userChecker);
			}
		}, 1000);
	// end style

	// formula calculations and variables
	// premium tanks up to 0.9.7
	var premArr = [
		// russian
		"tetrarch_ll", "bt-sv", "ltp", "m3_stuart_ll", "t-127", "valentine_ll",
		"a-32", "matilda_ii_ll", "r108_t34_85m", "r117_t34_85_rudy", "t44_85", "t44_122", "r112_t54_45", "object_907",
		"churchill_ll", "kv-220_action", "kv-220", "r114_object_244", "object252", "r113_object_730", "kv-5", "r110_object_260",
		"su76i", "su_85i", "su100y", "su122_44", "r111_isu130",
		// german
		"h39_captured", "g108_pzkpfwii_ausfd", "pzii_j", "t-15",
		"g100_gtraktor_krupp", "s35_captured", "g107_pzkpfwIII_ausfk", "pziv_hydro", "t-25", "pziv_schmalturm", "pzv_pziv", "pzv_pziv_ausf_alfa", "panther_m10", "g106_pzkpfwpanther_ausff", "g105_t-55_nva_ddr",
		"b-1bis_captured", "lowe", "vk7201",
		"g104_stug_iv", "dickermax", "e-25", "g109_steyr_wt", "jagdtiger_sdkfz_185",
		// american
		"t1_e6", "t2_lt", "t7_combat_car", "m22_locust", "mtls_1g14",
		"a78_m4_improved", "m4a2e4", "ram-ii", "a104_m4a3e8a", "t23e3", "a80_t26_e4_superpershing", "t95_e2", "m60", "t95_e6",
		"t14", "m6a2e1", "t34_hvy",
		"a102_t28_concept",
		// british
		"gb76_mk_vic",
		"gb68_matilda_black_prince", "gb70_n_fv4202_105",
		"gb51_excelsior", "gb63_tog_ii", "gb52_a45",
		"gb71_at_15a", "gb78_sexton_i",
		// french
		"f69_amx13_57_100",
		"f69_amx13_57_100_grandfinal",
		"f68_amx_chasseur_de_char_46", "fcm_50t",
		"fcm_36pak40",
		"_105_lefh18b2",
		// chinese
		"ch02_type62", "ch24_type64",
		"ch14_t34_3", "ch01_type59", "ch01_type59_gold",
		"ch23_112", "ch03_wz-111",
		// japanese
		"te_ke", "ke_ni_b",
		"chi_nu_kai", "j18_sta_2_3",
		"j19_tiger_i_jpn",
		// berlin event tanks
		"r71_is_2b", "r116_isu122c_berlin",
		"gb85_cromwell_berlin"
	];

	// variable for statistics
	var s = {
			b:{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}}, // badges
			s:{e:{r:[],b:0,w:0,bg:0},p:{r:[],b:0,w:0,bg:0},t:{r:[],b:0,w:0,bg:0}}, // custom tank tables
			t:{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}},  // tiers
			v:{a:0,bats:0,tier:0}, // vehicles
			h:{}, // hex colours
			w:{e:{frag:0,dmg:0,spot:0,def:0,win:0},r:{},w:{},n:{}}, // wn8 expected values
			f:{wn8:{},wn7:{},eff:{},wgr:{}} // formulas
		};

	// total mastery badge and colouring tank table category rows
	var typeRow_class = d.getElementsByClassName('t-profile_tankstype js-table-dropdown-link');
		for (var _tr=0, _tr_len = typeRow_class.length; _tr<_tr_len; _tr++) {
		var typeBats = filter(typeRow_class[_tr].cells[1].innerHTML,1),
			typeWinrate = filter(typeRow_class[_tr].cells[2].innerHTML,1),
			typeWins = parseFloat((typeBats*(typeWinrate/100)).toFixed(0));

			// modify table
			typeRow_class[_tr].cells[2].innerHTML = colStat(typeWinrate, "wrv", 0, "%")+"<span>"+filter(typeWins,2)+"</span>";
		}

	// average tier, colouring premium tanks and winrates in vehicle tables
	var vehRow_class = d.getElementsByClassName('t-profile_tankstype t-profile_tankstype__item'),
		vehRowStats_class = d.getElementsByClassName('t-profile_slidedown tablesorter-childRow');
		for (var _vr=0, _vr_len = vehRow_class.length; _vr<_vr_len; _vr++) {
		var vehImg = vehRow_class[_vr].cells[0].getElementsByTagName('img')[0],
			vehImgBdg = vehRow_class[_vr].cells[3].getElementsByTagName('img')[0],
			vehSpan = vehRow_class[_vr].cells[0].getElementsByTagName('span'),
			vehImgName = vehImg.src.match(/\w+\-([\w\-]+).png/),
			vehId = vehRowStats_class[_vr].getAttribute('data-vehicle-cd'),
			vehBats = filter(vehRow_class[_vr].cells[1].innerHTML,1),
			vehWinrate = filter(vehRow_class[_vr].cells[2].innerHTML,1),
			vehTier = vehSpan[0].getAttribute('data-veh_level'),
			vehWins = parseFloat((vehBats*(vehWinrate/100)).toFixed(0)),
			vehBadge = (vehImgBdg) ? vehImgBdg.getAttribute('data-badge_code') : 0;

			// modify table
			vehImg.src = "http://"+wg.host+"/static/wot/encyclopedia/tankopedia/vehicle/"+vehImgName[0];
			vehRow_class[_vr].cells[2].innerHTML = colStat(vehWinrate, "wrv", 0, "%")+"<span>"+filter(vehWins,2)+"</span>";

			// vehicle badges
			s.b[vehBadge].c ++;

			// vehicle battles per tier and amount
			s.t[vehTier].b += vehBats;
			s.t[vehTier].c ++;
			s.v.tier += vehTier*vehBats;
			s.v.bats += vehBats;
			s.v.a ++;

			// check if vehicle exists in wnefficiency value array - report if not and exclude from wn8
			var vehStat;
			for (var _so=0, _so_len = statObj.length; _so<_so_len; _so++) {
				if (statObj[_so].IDNum == vehId) {
					vehStat = statObj[_so];
					// summarize expected stat from every vehicle for WN8
					s.w.e.frag += vehStat.expFrag    *vehBats;
					s.w.e.dmg  += vehStat.expDamage  *vehBats;
					s.w.e.spot += vehStat.expSpot    *vehBats;
					s.w.e.def  += vehStat.expDef     *vehBats;
					s.w.e.win  += vehStat.expWinRate *vehBats;
					break;
				}
				else if (_so==_so_len-1 && statObj[_so].IDNum !== vehId) {
					s.s.e.b += vehBats;
					s.s.e.w += vehWins;
					vehSpan[1].classList.add("b-red-name");
					vehSpan[1].innerHTML += " - "+loc.p77+"!";
					console.error("Vehicle named "+vehImgName[1]+" doesn't exist in statObj, please report!");
					s.s.e.r.push([vehRow_class[_vr].cloneNode(true), vehRowStats_class[_vr].cloneNode(true)]);
					if (vehBadge !== 0) { s.s.e.bg ++; }
				}
			}

			// get info for premium table
			if (premArr.indexOf(vehImgName[1]) > -1) {
				s.s.p.b += vehBats;
				s.s.p.w += vehWins;
				vehSpan[1].classList.add("b-gold-name");
				s.s.p.r.push([vehRow_class[_vr].cloneNode(true), vehRowStats_class[_vr].cloneNode(true)]);
				if (vehBadge !== 0) { s.s.p.bg ++; }
			}

			// get info for tier 10 table
			if (vehTier == 10) {
				s.s.t.b += vehBats;
				s.s.t.w += vehWins;
				s.s.t.r.push([vehRow_class[_vr].cloneNode(true), vehRowStats_class[_vr].cloneNode(true)]);
				if (vehBadge !== 0) { s.s.t.bg ++; }
			}
		}

	// finding statistic tables
	var mb_table = d.getElementsByClassName('b-result-classes')[0].getElementsByClassName('t-dotted')[0],
		or_table = d.getElementsByClassName('b-result')[0].getElementsByClassName('t-dotted')[0],
		bp_table = d.getElementsByClassName('b-result')[1].getElementsByClassName('t-dotted')[0],
		sm_ratio = d.getElementsByClassName('b-speedometer-ratio');

	// fetching info, calculate averages, colourize and store into var s
	// r = raw stats
	s.r = {
		"days": (new Date() - new Date(d.getElementsByClassName('js-date-format')[0].getAttribute('data-timestamp')*1000))/1000/60/60/24,
		"bats": filter(or_table.rows[0].cells[1].innerHTML,1),
		"wins": filter(or_table.rows[1].cells[1].innerHTML.match(/([\d.,\s|&nbsp;]+\d+)\s/)[1],1),
		"loss": filter(or_table.rows[2].cells[1].innerHTML.match(/([\d.,\s|&nbsp;]+\d+)\s/)[1],1),
		"surv": filter(or_table.rows[3].cells[1].innerHTML.match(/([\d.,\s|&nbsp;]+\d+)\s/)[1],1),
		"exp": filter(or_table.rows[4].cells[1].innerHTML,1),
		"expA": filter(or_table.rows[5].cells[1].innerHTML,1),
		"expM": filter(or_table.rows[6].cells[1].innerHTML,1),
		"frag": filter(bp_table.rows[0].cells[1].innerHTML,1),
		"spot": filter(bp_table.rows[1].cells[1].innerHTML,1),
		"hits": parseFloat(bp_table.rows[2].cells[1].innerHTML.replace(/[,]/g,".")),
		"dmgD": filter(bp_table.rows[3].cells[1].innerHTML,1),
		"caps": filter(bp_table.rows[5].cells[1].innerHTML,1),
		"defs": filter(bp_table.rows[6].cells[1].innerHTML,1),
		"dths": filter(sm_ratio[0].innerHTML.match(/\/(.+)$/)[1],1),
		"dmgR": filter(sm_ratio[1].innerHTML.match(/\/(.+)$/)[1],1)
	};
	s.r.draw = s.r.bats-(s.r.wins+s.r.loss);
	s.r.winLR = s.r.wins/s.r.loss;
	// a = average stats
	s.a = {
		"bats": s.r.bats/s.r.days,
		"wins": (s.r.wins/s.r.bats)*100,
		"loss": (s.r.loss/s.r.bats)*100,
		"draw": (s.r.draw/s.r.bats)*100,
		"surv": (s.r.surv/s.r.bats)*100,
		"frag": s.r.frag/s.r.bats,
		"dths": s.r.dths/s.r.bats,
		"spot": s.r.spot/s.r.bats,
		"dmgD": s.r.dmgD/s.r.bats,
		"dmgR": s.r.dmgR/s.r.bats,
		"caps": s.r.caps/s.r.bats,
		"defs": s.r.defs/s.r.bats,
		"tier": s.v.tier/s.v.bats
	};
	// c = coloured stats
	s.c = {
		"winsR": colStat(s.a.wins, "wr", 2, "%"),
		"lossR": colStat(s.a.loss, "wr", 2, "%"),
		"survR": colStat(s.a.surv, "sr", 2, "%"),
		"hitsR": colStat(s.r.hits, "hr", 2, "%"),
		"drawR": colStat(s.a.draw, "",   2, "%"),
		"batsC": colStat(s.r.bats, "bat", 0),
		"dmgTier": colStat(s.a.dmgD/s.a.tier, "dmg", 0, "", s.a.dmgD),
		"api": "<span class='t-dotted_minor'>API:</span> <span style='color:#CD3333'>"+filter(s.v.bats,2)+"</span>"
	};
	// calculate badge percent
	s.b[5].c = s.v.a;
	s.b[5].p = parseFloat((s.v.a/s.v.a*100).toFixed(0));
	for (var _b in s.b) {
		if (s.b.hasOwnProperty(_b)) {
			s.b[_b].p = parseFloat((s.b[_b].c/s.b[5].c*100).toFixed(0));
		}
	}
	// prepare numbers for WN8 formula
	// r = ratios
	s.w.r = {
		"frag": s.w.e.frag/s.v.bats,
		"dmg": s.w.e.dmg/s.v.bats,
		"spot": s.w.e.spot/s.v.bats,
		"def": s.w.e.def/s.v.bats,
		"win": s.w.e.win/s.v.bats
	};
	// w = weighted
	s.w.w = {
		"frag": s.a.frag/s.w.r.frag,
		"dmg": s.a.dmgD/s.w.r.dmg,
		"spot": s.a.spot/s.w.r.spot,
		"def": s.a.defs/s.w.r.def,
		"win": s.a.wins/s.w.r.win
	};
	// n = normalized
	s.w.n.win = Math.max((s.w.w.win-0.71)/(1-0.71),0);
	s.w.n.dmg = Math.max((s.w.w.dmg-0.22)/(1-0.22),0);
	s.w.n.frag = Math.max(Math.min(s.w.n.dmg+0.2,(s.w.w.frag-0.12)/(1-0.12)),0);
	s.w.n.spot = Math.max(Math.min(s.w.n.dmg+0.1,(s.w.w.spot-0.38)/(1-0.38)),0);
	s.w.n.def = Math.max(Math.min(s.w.n.dmg+0.1,(s.w.w.def-0.10)/(1-0.10)),0);

	// calculate ratings
	// wg personal rating
	s.f.wgr = (function() {
		var rating = filter(d.getElementsByClassName("t-personal-data_value__pr")[0].innerHTML,1);
		return { rating: rating, ratCol: colStat(rating,"wgr",0) };
	})();
	// WN8
	s.f.wn8 = (function() {
		var frag = 210*s.w.n.dmg*s.w.n.frag,
			dmg  = 980*s.w.n.dmg,
			spot = 155*s.w.n.frag*s.w.n.spot,
			def  = 75*s.w.n.def*s.w.n.frag,
			win  = 145*Math.min(1.8,s.w.n.win),
			rating = frag+dmg+spot+def+win,
			pct = (rating<=colArr.sUni[7]) ? (rating/colArr.sUni[7])*100 : 100,
			scale = (rating<=colArr.sUni[7]) ? Math.max(0,Math.min(100,rating*(rating*(rating*(rating*(rating*(rating*(-0.00000000000000000000176)+0.0000000000000008049)-0.0000000000079383)+0.00000002667)-0.0000392)+0.05981)-0.784)) : 100;
		return { frag: frag, dmg: dmg, spot: spot, def: def, win: win, rating: rating, pct: pct, scale: scale, ratCol: (isFinite(rating)) ? colStat(rating,"wn8",2) : loc.p18, scaleCol: colStat(scale,"wn8",2) };
	})();
	// WN7 - legacy support
	s.f.wn7 = (function() {
		var frag = s.a.frag*(1240-1040/(Math.pow(Math.min(s.a.tier,6),0.164))),
			dmg  = s.a.dmgD*530/(184*Math.exp(0.24*s.a.tier)+130),
			spot = s.a.spot*125*Math.min(s.a.tier,3)/3,
			def  = Math.min(2.2,s.a.defs)*100,
			win  = (((185/(0.17+Math.exp((s.a.wins-35)*-0.134)))-500)*0.45),
			norm = -Math.abs((((5-Math.min(s.a.tier,5))*125)/(1+Math.exp(s.a.tier-Math.pow(s.r.bats/220,3/s.a.tier))*1.5))),
			rating = frag+dmg+spot+def+win+norm,
			pct = (rating<=colArr.sUni[8]) ? (rating/colArr.sUni[8])*100 : 100,
			scale = (rating<=colArr.sUni[8]) ? Math.max(0,Math.min(100,rating*(rating*(rating*(rating*(rating*(rating*0.000000000000000003367-0.000000000000025656)+0.000000000068496)-0.00000008321)+0.00005604)+0.02306)-1.014)) : 100;
		return { frag: frag, dmg: dmg, spot: spot, def: def, win: win, norm: norm, rating: rating, pct: pct, scale: scale, ratCol: colStat(rating,"wn7",2), scaleCol: colStat(scale,"wn7",2) };
	})();
	// efficiency - improved
	s.f.eff = (function() {
		var frag = s.a.frag*250,
			dmg  = s.a.dmgD*(10/(s.a.tier+2))*(0.23+2*s.a.tier/100),
			spot = s.a.spot*150,
			cap  = (Math.log(s.a.caps+1)/Math.log(1.732))*150,
			def  = s.a.defs*150,
			rating = frag+dmg+spot+cap+def,
			pct = (rating<=colArr.sUni[9]) ? (rating/colArr.sUni[9])*100 : 100,
			scale = (rating<=colArr.sUni[9]) ? Math.max(0,Math.min(100,rating*(rating*(rating*(rating*(rating*(rating*0.0000000000000000168275-0.000000000000119928)+0.000000000319149)-0.000000396224)+0.00022545)+0.02274)-26.036)) : 100;
		return { frag: frag, dmg: dmg, spot: spot, cap: cap, def: def, rating: rating, pct: pct, scale: scale, ratCol: colStat(rating,"eff",2), scaleCol: colStat(scale,"eff",2) };
	})();
	// end formula calculations and variables

	// start modifying and enhancing the rest of the page
	// modify sidebar structure
	var sidebar_class = d.getElementsByClassName('l-sidebar')[0],
		recBlock_class = d.getElementsByClassName('js-recruitsation-block')[0],
		ban_class = d.getElementsByClassName('js-account_game_ban_info_msg')[0],
		content_class = d.getElementsByClassName('l-content')[0],
		userBlockSprk = d.getElementsByClassName('b-user-block__sparks')[0],
		sidemsg_class = elem("div", "l-side-msg", "");
		sidemsg_class.appendChild(recBlock_class);
		sidebar_class.appendChild(sidemsg_class);
		userBlockSprk.insertBefore(ban_class, userBlockSprk.firstChild);

	// removing elements
	var layoutfix_class = d.getElementsByClassName('b-hr-layoutfix');
		layoutfix_class[0].parentNode.removeChild(layoutfix_class[0]);

	// profile wrapper
	var profile_div = elem("div", "b-profile-wrpr", ""),
		profileHead_div = elem("div", "b-profile-header", sc.link);
		profileName_class.lastElementChild.innerHTML += " - "+s.r.days.toFixed(0)+" "+loc.p03;
		profileName_class.parentNode.insertBefore(profile_div, profileName_class.nextSibling);
		profile_div.appendChild(profileHead_div);
		profile_div.appendChild(profileName_class);

	// profile header - check for missing battles and notify
	var profileError_div = elem("div", "b-profile-error", loc.p69);
		if (s.v.bats !== s.r.bats) {
			profileError_div.style.display="inline-block";
		}
		else {
			s.c.api = " ";
		}
		profileHead_div.insertBefore(profileError_div, profileHead_div.firstElementChild);

	// button for saving stats to clipboard
	var ratingsClipboard = loc.p72+" "+wg.name+": \n"+loc.p73+" "+s.r.bats+" \nWR: "+s.a.wins.toFixed(2)+" \nWN8: "+s.f.wn8.rating.toFixed(2)+" \nWN7: "+s.f.wn7.rating.toFixed(2)+" \nEff: "+s.f.eff.rating.toFixed(2),
		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>");
		profileHead_div.insertBefore(ratingsClipboard_div, profileHead_div.firstElementChild.nextSibling);

	// background behind profile wrapper
	var background_div = elem("div", "b-background", "<img src='"+css.l[6]+"'>");
		background_div.style.background = s.h.wn8;
		profile_div.parentNode.insertBefore(background_div, profile_div);

	// page navigation
	var header_class = d.getElementsByClassName('b-header')[0];
		content_class.appendChild(elem("div", "b-profile-nav", "<a class='bot' onclick='window.scrollTo(0, 0)'><span>"+loc.p02+"</span></a>"));
		header_class.appendChild(elem("div", "b-profile-nav b-profile-nav-top", "<a class='top' onclick='window.scrollTo(0, 9999)'><span>"+loc.p01+"</span></a>"));

	// player statistic links
	var profileStat_table = elem("table", "t-profile-table", ""),
		profileStat_table_cells = [
			[
				[loc.p04],
				[srv.wl, "<a target='_blank' href='http://wotlabs.net/"+srv.wl+"/player/"+wg.name+"'>WoTLabs</a>"],
				[srv.nm, "<a target='_blank' href='"+sc.nm.url+"'>Noobmeter</a>"],
				[srv.ct, "<a target='_blank' href='https://clantools.us/servers/"+srv.ct+"/players?id="+wg.id+"'>Clan Tools</a>"]
			],
			[
				[""],
				[srv.ws, "<a target='_blank' href='http://wotstats.org/stats/"+srv.ws+"/"+wg.name+"/'>WoTstats</a>"],
				(wg.srv=="ru") ? [srv.kttc, "<a target='_blank' href='http://kttc.ru/statistics/user/"+wg.name+"/'>KTTC</a>"] : ((wg.srv=="eu") ? [srv.as, "<a target='_blank' href='http://stats.teamaway.net/player/"+wg.id+"/'>AWAY Stats</a>"] : [srv.cs, "<a target='_blank' href='http://wotcs.com/player.php?wid="+wg.id+"'>WoT-CS</a>"]),
				(wg.srv=="ru") ? [srv.wots, "<a target='_blank' href='http://wots.com.ua/user/stats/"+wg.name+"/'>WOTS</a>"] : [srv.wlife, "<a target='_blank' href='http://en.wot-life.com/"+srv.wlife+"/player/"+wg.name+"/'>WoT-Life</a>"]
			],
			[
				[loc.p05],
				[srv.wl, "<a target='_blank' href='http://wotlabs.net/sig/"+srv.wl+"/"+wg.name+"/signature.png'>"+loc.p06+"</a>"],
				[srv.wl, "<a target='_blank' href='http://wotlabs.net/sig_dark/"+srv.wl+"/"+wg.name+"/signature.png'>"+loc.p07+"</a>"]
			],
			[
				[loc.p08],
				[srv.wr, "<a target='_blank' href='http://wotreplays."+srv.wr+"/player/"+wg.name+"'>WoTReplays</a>"]
			]
		];
		linksHnd(profileStat_table, profileStat_table_cells, "table");
		profileName_class.appendChild(profileStat_table);

	// player clan history
	var clanHist_div = elem("div", "b-clanHistory-wrpr", "<span class='clanname'>"+loc.p74+"</span>");
		profile_div.appendChild(clanHist_div);

	// clan handler - clan container is delayed by Wargaming
	var clanBlock = d.getElementById('js-clan-block-container'),
		clanChecker, clanCheckSeq = 0,
		clanStat_table = elem("table", "", "");
		clanStat_table.id = "js-profile-clan-table";
		profileName_class.parentNode.insertBefore(clanBlock, profileName_class.nextSibling);
		clanChecker = setInterval(function() {
		var ci_class = d.getElementsByClassName('b-profile-clan')[0],
			ct_class = d.getElementById('js-profile-clan-table'),
			cil_class = d.getElementById('invite-to-clan-link');
			clanCheckSeq ++;
			if (ci_class && ct_class === null) {
			// clan info
			var cl_class = ci_class.getElementsByTagName('a')[1];
				wg.clan.id = cl_class.getAttribute('href').match(/\/(\d+)/)[1];
				wg.clan.name = cl_class.getElementsByTagName('span')[0].innerHTML.match(/[\w.+\-]+/)[0];
			// clan statistic links
			var clanStat_table_cells = [
					[
						[loc.p66],
						[srv.wl, "<a target='_blank' href='http://wotlabs.net/"+srv.wl+"/clan/"+wg.clan.name+"'>WoTLabs</a>"],
						[srv.nm, "<a target='_blank' href='http://noobmeter.com/clan/"+srv.nm+"/"+wg.clan.name+"/"+wg.clan.id+"'>Noobmeter</a>"],
						[srv.ct, "<a target='_blank' href='https://clantools.us/servers/"+srv.ct+"/clans?id="+wg.clan.id+"'>Clan Tools</a>"]
					],
					[
						[""],
						[srv.cs, "<a target='_blank' href='http://wotcs.com/clan.php?wid="+wg.clan.id+"'>WoT-CS</a>"],
						(wg.srv=="eu") ? [srv.as, "<a target='_blank' href='http://stats.teamaway.net/clan/"+wg.clan.id+"/'>AWAY Stats</a>"] : [srv.kttc, "<a target='_blank' href='http://"+((wg.srv=="ru") ? "" : srv.kttc+".")+"kttc.ru/clan/"+wg.clan.id+"/'>KTTC</a>"],
						[srv.wlife, "<a target='_blank' href='http://en.wot-life.com/"+srv.wlife+"/clan/"+wg.clan.name+"-"+wg.clan.id+"/'>WoT-Life</a>"]
					],
					[
						[loc.p67],
						[srv.wr, "<a target='_blank' href='http://wotreplays."+srv.wr+"/clan/"+wg.clan.name+"'>WoTReplays</a>"]
					]
				];
				linksHnd(clanStat_table, clanStat_table_cells, "table");
				clanBlock.appendChild(clanStat_table);
				// clan history retrieval
				if (!!srv.cs) reqHnd(sc.chApi, chHnd, chHnd_error);
				clearInterval(clanChecker);
			}
			else if (clanCheckSeq == 5 || ct_class !== null || cil_class) {
				// clan history retrieval
				if (!!srv.cs) reqHnd(sc.chApi, chHnd, chHnd_error);
				clearInterval(clanChecker);
			}
		}, 1000);

	// move fame points block, if it exists
	var gp_class = d.getElementById('js-glory-points-block');
		if (gp_class) {
			profile_div.appendChild(gp_class);
		}

	// move sidebar
		profile_div.appendChild(sidebar_class);
	// end profile wrapper

	// personal data - modify table - add ratings
	var persDataTable = d.getElementsByClassName('t-personal-data')[0];
		persDataTable.rows[0].cells[0].textContent = loc.p09; // winrate
		persDataTable.rows[1].cells[0].innerHTML = s.c.winsR;
		persDataTable.rows[0].cells[1].textContent = loc.p10; // battles
		persDataTable.rows[1].cells[1].innerHTML = s.c.batsC;
		persDataTable.rows[0].cells[1].parentNode.insertBefore(elem("th", "t-personal-data_ico t-personal-data_ico__exp", loc.p11), persDataTable.rows[0].cells[1].nextSibling); // xp
		persDataTable.rows[1].cells[1].parentNode.insertBefore(elem("td", "t-personal-data_value", filter(s.r.expA,2)), persDataTable.rows[1].cells[1].nextSibling);
		persDataTable.rows[0].cells[4].textContent = loc.p70; // hitrate
		persDataTable.rows[1].cells[3].innerHTML = s.c.hitsR;
		persDataTable.rows[0].cells[4].className = "t-personal-data_ico t-personal-data_ico__hitrate";
		persDataTable.rows[0].cells[5].textContent = loc.p71; // damage
		persDataTable.rows[1].cells[4].innerHTML = s.c.dmgTier;
		persDataTable.rows[0].appendChild(elem("th", "t-personal-data_ico t-personal-data_ico__tier", loc.p12)); // avg tier
		persDataTable.rows[1].appendChild(elem("td", "t-personal-data_value", s.a.tier.toFixed(2)));
		persDataTable.appendChild(elem("tbody", "t-ratings-info", "<tr><th colspan='2'><a href='http://www.wnefficiency.net/wnexpected/' target='_blank'>"+loc.p15+" v"+wnExpVers[1]+"</a></th><th>"+loc.p30+"</th><th></th><th>"+loc.p16+"</th><th colspan='2'><a class='rating-url_nm' target='_blank' href="+sc.nm.url+">"+loc.p17+"</a></th></tr><tr><td colspan='2'>"+s.f.wn8.ratCol+"</td><td>"+s.f.wn7.ratCol+"</td><td></td><td>"+s.f.eff.ratCol+"</td><td colspan='2' class='js-noobmeter'>"+loc.p18+"</td></tr>"));
		persDataTable.getElementsByClassName('t-personal-data_value__pr')[0].innerHTML = s.f.wgr.ratCol;

	// speedometer - win/loss ratio
	var smBody_class = d.getElementsByClassName('b-speedometer-body')[0],
		smWinWeight = (isFinite(s.r.winLR)) ? s.r.winLR.toFixed(2) : 1,
		smWinArrow = (isFinite(s.r.winLR)) ? Math.min(30*(s.r.winLR-1),31) : 0;
		smBody_class.appendChild(elem("div", "b-speedometer", "<div class='b-speedometer-arrow' data-deg='"+smWinArrow+"' style='transform: rotate("+smWinArrow+"deg); -webkit-transform: rotate("+smWinArrow+"deg); -ms-transform: rotate("+smWinArrow+"deg);'></div><div class='b-speedometer-round'></div><p class='b-speedometer-title'>"+loc.p13+"</p><p class='b-speedometer-weight'>"+smWinWeight+"</p><p class='b-speedometer-ratio'>"+filter(s.r.wins,2)+" / "+filter(s.r.loss,2)+"</p>"));

	// performance ratings calculations table
	var rTable_div = elem("div", "ratings-table", "<h3>"+loc.p19+"</h3>"),
		rTable = elem("table", "t-table-ratings", ""),
		ratingsArr = [
			[loc.p20, loc.p21, loc.p22, loc.p23, loc.p24, loc.p25, loc.p26, loc.p27, loc.p28],
			["wn8", s.f.wn8.pct, loc.p29, s.f.wn8.ratCol, s.f.wn8.scaleCol, s.f.wn8.frag.toFixed(2), s.f.wn8.dmg.toFixed(2), s.f.wn8.spot.toFixed(2), "–",                    s.f.wn8.def.toFixed(2), s.f.wn8.win.toFixed(2)],
			["wn7", s.f.wn7.pct, loc.p30, s.f.wn7.ratCol, s.f.wn7.scaleCol, s.f.wn7.frag.toFixed(2), s.f.wn7.dmg.toFixed(2), s.f.wn7.spot.toFixed(2), "–",                    s.f.wn7.def.toFixed(2), s.f.wn7.win.toFixed(2)],
			["eff", s.f.eff.pct, loc.p31, s.f.eff.ratCol, s.f.eff.scaleCol, s.f.eff.frag.toFixed(2), s.f.eff.dmg.toFixed(2), s.f.eff.spot.toFixed(2), s.f.eff.cap.toFixed(2), s.f.eff.def.toFixed(2), "–"                   ]
		];
		for (var _r=0, _r_len = ratingsArr.length; _r<_r_len; ++_r) {
			var rRow = elem("tr", "", "");
			if (_r === 0) {
				for (var _rh=0, _rh_len = ratingsArr[_r].length; _rh<_rh_len; ++_rh) {
					rRow.appendChild(elem("th", "", ratingsArr[_r][_rh]));
				}
				rTable.appendChild(rRow);
			}
			else {
				for (var _rc=2, _rc_len = ratingsArr[_r].length; _rc<_rc_len; ++_rc) {
					rRow.appendChild(elem("td", "td-center", ratingsArr[_r][_rc]));
				}
				rTable.appendChild(rRow);
				rTable.appendChild(elem("tr", "td-rating-meter", "<td colspan='9'><div class='rating-meter rating-meter_"+ratingsArr[_r][0]+"'><div class='rating-meter-dail_line' style='width:"+ratingsArr[_r][1]+"%;'><div class='rating-meter-marker'></div></div></div></td>"));
			}
		}
		rTable_div.appendChild(rTable);
		userBlockSprk.appendChild(rTable_div);
		// link to WN thread
		userBlockSprk.appendChild(elem("div", "wnelink", "<a class ='b-orange-arrow wnelink_info' target='_blank' href='http://wiki.wnefficiency.net/pages/WN8:_Summary'>"+loc.p32+"</a>"));
	// end performance ratings calculations table

	// statistics wrapper
	var userBlock_div = d.getElementsByClassName('b-userblock-wrpr')[0],
		statistics_div = d.getElementsByClassName('b-result-classes')[0].parentNode;
		statistics_div.className = "b-statistics-wrpr";
		userBlock_div.parentNode.insertBefore(statistics_div, userBlock_div.nextSibling);

	// clean the old tables and populate them with new values (master badges, overall results and battle performance)
	var statTables = [
			[
				["<img src='"+css.l[7]+"'>", loc.p33, s.b[4].c+"<span>("+s.b[4].p+"%)</span>"],
				["<img src='"+css.l[8]+"'>", loc.p34, s.b[3].c+"<span>("+s.b[3].p+"%)</span>"],
				["<img src='"+css.l[9]+"'>", loc.p35, s.b[2].c+"<span>("+s.b[2].p+"%)</span>"],
				["<img src='"+css.l[10]+"'>", loc.p36, s.b[1].c+"<span>("+s.b[1].p+"%)</span>"],
				["<img src='"+css.u.bad1+"'>", loc.p37, s.b[0].c+"<span>("+s.b[0].p+"%)</span>"],
				["<img src='"+css.u.bad2+"'>", loc.p38, s.b[5].c+"<span>("+s.b[5].p+"%)</span>"]
			],
			[
				[loc.p39, filter(s.r.bats,2), s.c.api],
				[loc.p40, filter(s.r.wins,2), "("+s.c.winsR+")"],
				[loc.p41, filter(s.r.loss,2), "("+s.c.lossR+")"],
				[loc.p42, filter(s.r.draw,2), "("+s.c.drawR+")"],
				[loc.p43, filter(s.r.surv,2), "("+s.c.survR+")"],
				[loc.p44, "", s.a.bats.toFixed(2)],
				[loc.p45, "", filter(s.r.exp,2)],
				[loc.p46, "", filter(s.r.expA,2)],
				[loc.p47, "", filter(s.r.expM,2)]
			],
			[
				[loc.p48, filter(s.r.frag,2), s.a.frag.toFixed(2)],
				[loc.p49, filter(s.r.dths,2), s.a.dths.toFixed(2)],
				[loc.p50, filter(s.r.spot,2), s.a.spot.toFixed(2)],
				[loc.p51, "", s.c.hitsR],
				[loc.p52, filter(s.r.dmgD,2), s.c.dmgTier],
				[loc.p53, filter(s.r.dmgR,2), filter(s.a.dmgR.toFixed(0),2)],
				[loc.p54, filter(s.r.caps,2), s.a.caps.toFixed(2)],
				[loc.p55, filter(s.r.defs,2), s.a.defs.toFixed(2)],
				[loc.p56, "", s.a.tier.toFixed(2)]
			],
			[
				mb_table,
				or_table,
				bp_table
			]
		];
		mb_table.textContent = "";
		or_table.textContent = "";
		bp_table.textContent = "";
		for (var _s=0, _s_len = statTables.length; _s<(_s_len-1); ++_s) {
			var statTable = d.createDocumentFragment();
			for (var _sr=0, _sr_len = statTables[_s].length; _sr<_sr_len; ++_sr) {
				statTable.appendChild(elem("tr", "", "<td class='"+((statTables[3][_s] == mb_table) ? 't-dotted_class-ico t-dotted_minor__middle' : 't-dotted_minor')+"'>"+statTables[_s][_sr][0]+"</td><td class='"+((statTables[3][_s] == mb_table) ? 't-dotted_minor t-dotted_minor__middle' : 't-dotted_value')+"'>"+statTables[_s][_sr][1]+"</td><td class='"+((statTables[3][_s] == mb_table) ? 't-dotted_value t-dotted_minor__middle' : 't-dotted_value')+"'>"+statTables[_s][_sr][2]+"</td>"));
			}
			statTables[3][_s].appendChild(statTable);
		}

	// cake diagrams - adding tier diagram
	var diagSector_class = d.getElementsByClassName('b-diagrams-sector')[0],
		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'>"+s.v.a+"</span></div></div>"),
		diagTier_table = elem("table", "t-dotted t-dotted__diagram js-diagram-mechanism-legend", ""),
		diagTierCol = {1:"496877",2:"2b591f",3:"831818",4:"303766",5:"814f07",6:"1A775F",7:"B0D23A",8:"763D46",9:"936C19",10:"471952"};
		diagSector_class.insertBefore(diagTier_div, diagSector_class.firstElementChild.nextSibling);
		for (var _t in s.t) {
			if (s.t.hasOwnProperty(_t)) {
				if (s.t[_t].c !== 0) {
					diagTier_table.appendChild(elem("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(s.t[_t].b,2)+"</span><span class='t-dotted_diagram-percent'>(<span class=''>"+(s.t[_t].b/s.r.bats*100).toFixed(2)+"%</span>)</span><span class='t-diagram_tiers js-results'>"+s.t[_t].c+"</span><span class='t-dotted_diagram-percent'>(<span class='js-value'>"+(s.t[_t].c/s.v.a*100).toFixed(2)+"%</span>)</span></span><span class='b-diagram-ico b-diagram-ico_tier b-diagram-ico_tier-"+_t+"'>"+loc.p58+" "+_t+"</span></span></td><td class='t-dotted_diagram-last'><span class='t-dotted_diagram-bg'><span class='js-colors'>#"+diagTierCol[_t]+"</span></span></td>"));
				}
			}
		}
		diagTier_div.appendChild(diagTier_table);
		diagSector_class.firstElementChild.appendChild(elem("div", "b-diagram-total", "<h3>"+loc.p59+" "+s.v.a+"</h3>"));
		// fix for cake diagram in chrome
		if (web.chrome) {
			$('.js-diagram-block').each(function() {
				var items = [], values = [], 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));
					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);
			});
		}

	// achievements wrapper
	var medal_div = elem("div", "b-achievements-wrpr", ""),
		medalHeader_div = elem("div", "b-head-block", ""),
		medalHeader_class = d.getElementsByClassName('js-achievements-header')[0],
		medalClassArr = ["b-profile-item-empty","js-achivements-showhide","js-short-achievements","js-full-achievements"],
		medal_Children = document.createDocumentFragment();
		medalHeader_div.appendChild(medalHeader_class);
		medal_div.appendChild(medalHeader_div);
		for (var _m=0, _m_len = medalClassArr.length; _m<_m_len; ++_m) {
			var medalChild = d.getElementsByClassName(medalClassArr[_m])[0];
			if (!!medalChild) {
				medal_Children.appendChild(medalChild);
			}
		}
		medal_div.appendChild(medal_Children);
		diagSector_class.parentNode.insertBefore(medal_div, diagSector_class.nextSibling);
		diagSector_class.parentNode.insertBefore(layoutfix_class[0], diagSector_class.nextSibling);

	// vehicles wrapper
	var vehTable_class = d.getElementsByClassName('t-profile t-profile__vehicle')[0],
		vehicles_div = elem("div", "b-vehicles-wrpr", ""),
		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://noobmeter.com/tankStats/"+srv.nm+"'>"+loc.p61+"</a></span>"),
		vehicles_h3_class = vehTable_class.previousElementSibling.previousElementSibling;
		vehicles_h3_class.className = "b-profile-ratings_title";
		vehiclesHeader_div.insertBefore(vehicles_h3_class, vehiclesHeader_div.firstChild);
		vehicles_div.appendChild(vehiclesHeader_div);
		vehTable_class.parentNode.insertBefore(vehicles_div, vehTable_class);
		vehicles_div.appendChild(vehTable_class);

	// add a premium tanks table to the vehicle table
	var premHBody = elem("tbody", "", ""),
		premTBody = elem("tbody", "sortable", ""),
		_p_len = s.s.p.r.length;
		vehTable_class.appendChild(premHBody);
		if (_p_len === 0) {
			premHBody.appendChild(elem("tr", "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>"));
		}
		else {
			premHBody.className = "tablesorter-no-sort";
			premHBody.appendChild(elem("tr", "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'>"+_p_len+"</span></span></td><td class='t-profile_right'>"+filter(s.s.p.b,2)+"</td><td class='t-profile_center'>"+colStat((s.s.p.w/s.s.p.b)*100, "wrv", 0, "%")+"<span>"+filter(s.s.p.w,2)+"</span></td><td class='t-profile_center'>"+s.s.p.bg+"</td><td class='t-profile_dropdown-ico'><a title='Show/hide vehicles' class='t-profile_dropdown-link' href=''></a></td>"));
			premTBody.style.display="none";
			for (var _p=0; _p<_p_len; ++_p) {
				premTBody.appendChild(s.s.p.r[_p][0]);
				premTBody.appendChild(s.s.p.r[_p][1]);
			}
			vehTable_class.appendChild(premTBody);
		}

	// add a tier 10 table to the vehicle table
	var tenHBody = elem("tbody", "", ""),
		tenTBody = elem("tbody", "sortable", ""),
		_x_len = s.s.t.r.length;
		vehTable_class.appendChild(tenHBody);
		if (_x_len === 0) {
			tenHBody.appendChild(elem("tr", "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>"));
		}
		else {
			tenHBody.className = "tablesorter-no-sort";
			tenHBody.appendChild(elem("tr", "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'>"+_x_len+"</span></span></td><td class='t-profile_right'>"+filter(s.s.t.b,2)+"</td><td class='t-profile_center'>"+colStat((s.s.t.w/s.s.t.b)*100, "wrv", 0, "%")+"<span>"+filter(s.s.t.w,2)+"</span></td><td class='t-profile_center'>"+s.s.t.bg+"</td><td class='t-profile_dropdown-ico'><a title='Show/hide vehicles' class='t-profile_dropdown-link' href=''></a></td>"));
			tenTBody.style.display="none";
			for (var _x=0; _x<_x_len; ++_x) {
				tenTBody.appendChild(s.s.t.r[_x][0]);
				tenTBody.appendChild(s.s.t.r[_x][1]);
			}
			vehTable_class.appendChild(tenTBody);
		}

	// add a missing tanks table to the vehicle table
	// only shown if a tank is missing from imported wn8 table
	var missHBody = elem("tbody", "", ""),
		missTBody = elem("tbody", "sortable", ""),
		_e_len = s.s.e.r.length;
		vehTable_class.appendChild(missHBody);
		if (_e_len !== 0) {
			missHBody.className = "tablesorter-no-sort";
			missHBody.appendChild(elem("tr", "t-profile_tankstype t-profile_tankstype-miss js-table-dropdown-link", "<td width='388' class='t-profile_head'><span class='b-tankstype-ico b-tankstype-ico__miss'></span><span class='b-tankstype-text'>"+loc.p78+" <span class='b-armory-col'>"+_e_len+"</span></span></td><td class='t-profile_right'>"+filter(s.s.e.b,2)+"</td><td class='t-profile_center'>"+colStat((s.s.e.w/s.s.e.b)*100, "wrv", 0, "%")+"<span>"+filter(s.s.e.w,2)+"</span></td><td class='t-profile_center'>"+s.s.e.bg+"</td><td class='t-profile_dropdown-ico'><a title='Show/hide vehicles' class='t-profile_dropdown-link' href=''></a></td>"));
			missTBody.style.display="none";
			for (var _e=0; _e<_e_len; ++_e) {
				missTBody.appendChild(s.s.e.r[_e][0]);
				missTBody.appendChild(s.s.e.r[_e][1]);
			}
			vehTable_class.appendChild(missTBody);
		}
	// end vehicles wrapper

	// debugging to browser console
		console.info("Browser Info:\n"+navigator.appCodeName+" - "+navigator.appName+"\n"+navigator.userAgent, web);
		console.info(ratingsClipboard);
		console.info("Script Settings:", sc);
		console.info("Statistics:", s);

	// retrieve and process info from external source
		// noobmeter retrieval
		if (!!srv.nm) {
			reqHnd(sc.nm.api, nmHnd, nmHnd_error);
		}
	}
	else {
		profileName_class.innerHTML += "<div style='width: 950px; top: -15px; text-align: center; position: absolute;'>"+loc.p65+"</div>";
	}
	// end tableBattles
}
// end wg.player
// matches url with clan page
else if (wg.clans) {
// getting claninfo
	var emblemName = d.getElementsByClassName('page-header_emblem')[0],
	clanName = d.getElementsByClassName('clan_name')[0],
	sidebarName = d.getElementsByClassName('sidebar-clan_emblem')[0];
	wg.clan.id = wg.href.match(/\/(\d+)/)[1];
	wg.clan.name = (emblemName || clanName) ? ((clanName) ? clanName.firstElementChild.innerHTML.replace(/[\[\]]/g,"") : emblemName.alt) : sidebarName.alt;

// style contents
	var styleClan = [
		".cm-menu__user > :not(.cm-notifications) {display: inline-block;}",
		".menu-clan_links {padding: 0;}",
		".menu-clan_links.cm-parent-link__opened {border: 1px solid #313335;}",
		".menu-clan_links .menu-top_link {cursor: pointer; padding: 0 8px 0 9px;}",
		".menu-clan_links .menu-top_link.cm-parent-link__opened {margin-left: -1px;}",
		".menu-clan_links .clan-links {top: -260px; transition: top 0.15s linear 0s, opacity 0.2s linear 0s;}",
		".menu-clan_links .cm-sublist__opened {display: block; position: relative; top: 0;}",
		".menu-clan_links .clan-links td {padding: 0 10px;}",
		".sl-icon {background: url('"+css.u.cIcons+"') no-repeat; display: inline-block; margin: -2px 8px 0px 0px; vertical-align: middle; height: 16px; width: 16px;}",
		".sl-wl {background-position: 0px 0px;}",
		".sl-nm {background-position: 0px -16px;}",
		".sl-ct {background-position: 0px -32px;}",
		".sl-cs {background-position: 0px -48px;}",
		".sl-kttc {background-position: 0px -64px;}",
		".sl-wlife {background-position: 0px -80px;}",
		".sl-as {background-position: 0px -96px;}",
		".sl-wr {background-position: 0px -112px;}"
	];
	style.textContent = styleClan.join("");
// end style

// script link
	var clanHead_div = elem("div", "cm-parent-link", sc.link), navCheckSeq = 0,
	navChecker = setInterval(function() {
		var navService_class = d.getElementsByClassName('cm-menu')[1];
		navCheckSeq ++;
		if (navService_class) {
			navService_class.insertBefore(clanHead_div, navService_class.firstChild);
			clearInterval(navChecker);
		}
		else if (navCheckSeq == 5) {
			clearInterval(navChecker);
		}
	}, 500);

// clan statistic links
var menu_class = d.getElementsByClassName('menu-top')[0],
	clanMenu_div = elem("div", "menu-clan_links menu-top_item", "<span class='menu-top_link'>"+loc.c01+"<span class='cm-arrow'></span></span>"),
	clanMenu_list = elem("ul", "clan-links cm-sublist", ""),
	clanMenu_list_items = [
		[srv.wl, "<a target='_blank' href='http://wotlabs.net/"+srv.wl+"/clan/"+wg.clan.name+"'><span class='sl-icon sl-wl'></span>WoTLabs</a>"],
		[srv.nm, "<a target='_blank' href='http://noobmeter.com/clan/"+srv.nm+"/"+wg.clan.name+"/"+wg.clan.id+"'><span class='sl-icon sl-nm'></span>Noobmeter</a>"],
		[srv.ct, "<a target='_blank' href='https://clantools.us/servers/"+srv.ct+"/clans?id="+wg.clan.id+"'><span class='sl-icon sl-ct'></span>Clan Tools</a>"],
		[srv.cs, "<a target='_blank' href='http://wotcs.com/clan.php?wid="+wg.clan.id+"'><span class='sl-icon sl-cs'></span>WoT-CS</a>"],
		[srv.kttc, "<a target='_blank' href='http://"+((wg.srv=="ru") ? "" : srv.kttc+".")+"kttc.ru/clan/"+wg.clan.id+"/'><span class='sl-icon sl-kttc'></span>KTTC</a>"],
		[srv.wlife, "<a target='_blank' href='http://en.wot-life.com/"+srv.wlife+"/clan/"+wg.clan.name+"-"+wg.clan.id+"/'><span class='sl-icon sl-wlife'></span>WoT-Life</a>"],
		[srv.as, "<a target='_blank' href='http://stats.teamaway.net/clan/"+wg.clan.id+"/'><span class='sl-icon sl-as'></span>AWAY Stats</a>"],
		[srv.wr, "<a target='_blank' href='http://wotreplays."+srv.wr+"/clan/"+wg.clan.name+"'><span class='sl-icon sl-wr'></span>WoTReplays</a>"]
	];
	linksHnd(clanMenu_list, clanMenu_list_items, "list");
	clanMenu_div.addEventListener('click', function() {this.firstElementChild.classList.toggle('cm-parent-link__opened'); this.lastElementChild.classList.toggle('cm-sublist__opened');}, false);
	clanMenu_div.appendChild(clanMenu_list);
	menu_class.appendChild(clanMenu_div);
}
// end wg.clans

// helper functions
// filter
function filter(input, type) {
var inputStr = input.toString();
	switch(type) {
		case (1): // input string into number
			return parseFloat(inputStr.replace(/[^\d]/g,""));
		case (2): // output number with locale symbol
			return inputStr.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1"+loc.sym);
		case (3): // remove all symbols
			return inputStr.replace(/[^\w]/g,"");
		default:
			console.error("Error filtering: ", input);
			return input;
	}
}

// colouring
function colStat(input, type, dec, sym, ext) {
var color = colArr.dft[0],
	output = input.toFixed(dec);
	if (sym) {
		output += sym;
	}
	switch(type) {
		case ("bat"):
		case ("wgr"):
			output = filter(input,2); break;
		case ("dmg"):
			output = filter(ext.toFixed(0),2); break;
		default: break;
	}
	if (type !== "") {
		if (s.h[type]) {
			color = s.h[type];
		}
		else if (type == "wrv") {
			color = colStatArr(input, "wr");
		}
		else {
			color = colStatArr(input, type);
			s.h[type] = color;
		}
	}
	return "<span style='color:"+color+"'>"+output+"</span>";
}
function colStatArr(input, type) {
var color;
	for (var _c in colArr) {
		if (colArr.hasOwnProperty(_c)) {
			if (input >= colArr[_c][colArr.id[type]]) {
				color = colArr[_c][0]; break;
			}
		}
	}
	return color || colArr.beg[0];
}

// quick creation of element
function elem(tag, name, html, type) {
var element = d.createElement(tag);
	if (name) {element.className = name;}
	if (html) {
		if (/</.test(html)) {
			element.innerHTML = html;
		}
		else {
			element.textContent = html;
		}
	}
	if (type) {element.type = type;}
	return element;
}

// links handler
function linksHnd(parent, links, type) {
	var uRows = d.createDocumentFragment();
	for (var _l=0, _l_len = links.length; _l<_l_len; ++_l) {
		if (type == "table") {
		var uRow = elem("tr", "", "");
		for (var _lr=0, _lr_len = links[_l].length; _lr<_lr_len; ++_lr) {
			uRow.appendChild((links[_l][_lr][0] && links[_l][_lr][1]) ? elem("td", "", links[_l][_lr][1]) : elem("td", "", links[_l][_lr][0]));
		}
		uRows.appendChild(uRow);
		}
		else if (type == "list") {
		  uRows.appendChild((links[_l][0] && links[_l][1]) ? elem("li", "", links[_l][1]) : elem("li", "statname", links[_l][0]));
		}
	}
	parent.appendChild(uRows);
}
// end helper functions

// wnefficiency handler
function wnHnd(resp) {
	localStorage.setItem("wnExpValues", resp);
	localStorage.setItem("wnExpDate", Date.now());
	localStorage.setItem("wnExpVers", JSON.stringify([sc.vers, JSON.parse(resp).header.version]));
	location.reload();
}
function wnHnd_error(error) {
	console.error("Error accessing WNEfficiency.net", error);
}
// end wnefficiency handler

// noobmeter handler
function nmHnd(resp) {
	if (!isNaN(parseFloat(resp))) {
		nmHnd_insert(parseFloat(resp));
	}
	else {
		nmHnd_error(resp);
	}
}
function nmHnd_error(error) {
	nmHnd_insert(loc.p75);
	console.error("Error accessing NoobMeter API", error);
}
function nmHnd_insert(nm) {
var nmDiv = d.getElementsByClassName('js-noobmeter');
	nmDiv[0].textContent += (!isNaN(nm)) ? " NM: "+nm.toFixed(2) : "";
	nmDiv[1].innerHTML = (!isNaN(nm)) ? colStat(nm,"nm",2) : nm;
}
// end noobmeter handler

// clan history handler
function chHnd(resp) {
	chHnd_insert(JSON.parse(resp).changes);
}
function chHnd_error(error) {
	clanHist_div.appendChild(elem("span", "", loc.p77));
	console.error("Error accessing WoT-CS API", error);
}
function chHnd_insert(ch) {
var _h_len = ch.length, clansCount = 0, prevClan, clanHist_span, clanHist_spans = d.createDocumentFragment();
	if (_h_len > 0) {
		for (var _h=_h_len-1; _h>=0; --_h) {
			clansCount ++;
			if (ch[_h].clan_tag && prevClan !== ch[_h].clan_tag && (clansCount == 1 || ch[_h].joined)) {
				clanHist_span = elem("span", (ch[_h].clan_tag == wg.clan.name) ? "clantag curr" : "clantag", "<a href='http://"+srv.ch+".wargaming.net/clans/"+ch[_h].clan_id+"/' target='_blank'>["+ch[_h].clan_tag+"]</a>");
				clanHist_spans.appendChild(clanHist_span);
			}
			prevClan = ch[_h].clan_tag;
		}
		clanHist_div.appendChild(clanHist_spans);
	}
	else {
		clanHist_div.appendChild(elem("span", "clantag", loc.p76));
	}
}
// end clan history handler

// retrieval function
function reqHnd(url, handler, error) {
	GM_xmlhttpRequest({
		method: "GET",
		url: url,
		headers: {
			"Accept": "text/xml"
		},
		onload: function(resp) {
			if (resp.readyState == 4 && resp.status == 200 && resp.statusText == "OK") {
				handler(resp.responseText);
			}
			else {
				error(resp.responseText);
			}
		},
		onerror: function(resp) {
			error(resp.responseText);
		}
	});
}

// global functions inserted into head
// clipboard helper
function copyClipboard() {
var cpText = document.getElementsByClassName('ratingsClip-holder')[0].innerHTML,
	cpLoc = document.getElementsByClassName('ratingsClip-holder')[1].innerHTML;
	window.prompt(cpLoc, cpText);
}
// end global functions
}(window));