(\d*\.*\d*)+<\/div>/gi,
res = regexp.exec(response);
if (res.length > 0) {
document.getElementById("js-us-NoobStat").innerHTML = "
" + res[1] + "";
document.getElementById("js-us-NoobStat_tooltip").innerHTML = outWotNoobStatTitle(Number(res[1]));
}
}
}//////////////////////////main
function CalcEff(New, AvgLev, battles, wins, damag, frags, spotted, caps, defs, summaryxp) {
var effs = [];
effs[0] = (damag / battles * (10 / (AvgLev + 2)) * (0.23 + 2 * AvgLev / 100) +
frags / battles * 250 +
spotted / battles * 150 +
Math.log((caps / battles) + 1) / Math.log(1.732) * 150 +
defs / battles * 150).toFixed(2); //eff
effs[1] = (damag / battles * (10 / AvgLev) * (0.15 + 2 * AvgLev / 100) +
frags / battles * (0.35 - 2 * AvgLev / 100) * 1000 +
spotted / battles * 200 +
caps / battles * 150 +
defs / battles * 150).toFixed(2); //old eff
effs[2] = ((1240 - 1040 / Math.pow(Math.min(AvgLev, 6), 0.164)) * frags / battles +
damag / battles * 530 / (184 * Math.pow(Math.E, 0.24 * AvgLev) + 130) +
spotted / battles * 125 +
Math.min(defs / battles, 2.2) * 100 +
((185 / (0.17 + Math.pow(Math.E, (wins / battles * 100 - 35) * -0.134))) - 500) * 0.45 +
(6 - Math.min(AvgLev, 6)) * -60).toFixed(2);
if (New === 0)
effs[3] = (Math.log(battles) / 10 * (summaryxp / battles * 1 +
damag / battles * (wins / battles * 2.0 + frags / battles * 0.9 + spotted / battles * 0.5 + caps / battles * 0.5 + defs / battles * 0.5))).toFixed(2);
return effs;
}
function insertNewTr(NewTrParent, text, val, title, tid) {
var trNew = document.createElement('tr');
var tdNewName = document.createElement('td'),
div1 = document.createElement('div'),
div2 = document.createElement('div');
tdNewName.className = "td-minor";
tdNewName.innerHTML = text;
var tdNew = document.createElement('td');
div1.innerHTML = val;
tdNew.className = "t-dotted_value";
tdNew.appendChild(div1);
if (title && title.length) {
div1.setAttribute("id", "js-" + tid);
div1.className = "js-tooltip";
div2.innerHTML = title;
div2.setAttribute("id", "js-" + tid + "_tooltip");
div2.className = "b-tooltip-main";
tdNew.appendChild(div2);
}
NewTrParent.parentNode.appendChild(trNew);
trNew.appendChild(tdNewName);
trNew.appendChild(tdNew);
return trNew;
}
function fixStatData(response) {
var lang,
UserId = window.location.href.match(/\/(\d+)/)[1];
if (document.title.indexOf("Профиль игрока") > -1)
lang = "ru";
eval("var resp =" + response);
var alltanks = GetLSData("AllTanksArr");
if (alltanks) {
eval("var alltdata =" + alltanks);
var alltanksArr = [], tankid;
for (var t in alltdata.data) {
tankid = alltdata.data[t].tank_id;
alltanksArr[tankid] = [];
alltanksArr[tankid]["name"] = alltdata.data[t].name_i18n;
alltanksArr[tankid]["is_premium"] = alltdata.data[t].is_premium;
}
var ttStat = [], tStat = [];
for (var i = 0; i < resp.data[UserId].length; i++) {
tankid = resp.data[UserId][i].tank_id;
if (tankid in alltanksArr) {
var tName = alltanksArr[tankid]["name"];
ttStat[tName] = {"win": resp.data[UserId][i].statistics.wins, "battles": resp.data[UserId][i].statistics.battles, "is_premium": alltanksArr[tankid]["is_premium"]};
}
}
var tanks = document.getElementsByClassName("t-profile_tankstype__item");
for (i = 0; i < tanks.length; i++) {
var t = tanks[i].cells,
imgName = t[0].getElementsByTagName('img')[0].src.match(/\/[^-]+-([^\/]*)\.png/)[1],
tName = t[0].getElementsByClassName('b-name-vehicle')[0].innerHTML;
tanks[i].className += " js-tooltip";
tanks[i].id = "us-t-" + imgName;
var div = document.createElement('div');
tStat[imgName] = ttStat[tName];
if (tStat[imgName]) {
if (tStat[imgName].is_premium) tanks[i].cells[0].getElementsByClassName('b-name-vehicle')[0].setAttribute('style', 'color: #ffc363 !important;');
div.innerHTML = "
" + (lang === "ru" ? "Боев|Побед (%Побед)" : "Battles|Wins (%Wins)") + "
" + tStat[imgName].battles + "|" + tStat[imgName].win + " (" + col(tStat[imgName].win / tStat[imgName].battles * 100, 2) + ")
";
}
div.setAttribute("id", "us-t-" + imgName + "_tooltip");
div.className = "b-tooltip-main";
tanks[i].appendChild(div);
if (tStat[imgName])
t[2].innerHTML = col(tStat[imgName].win / tStat[imgName].battles * 100, 2);
if (tStat[imgName])
t[2].setAttribute("wcount", tStat[imgName].win);
}
var daystat = GetStat();
if (daystat) {
var dayArray = [],
dsArr = daystat.split("|"),
strArray = dsArr[0].split("/");
for (var i = 1; i < strArray.length; i++) {
str = strArray[i].split(";");
var tName = str[0].toLowerCase();
dayArray[tName] = new Object();
dayArray[tName].b = toFl(str[1]);
dayArray[tName].w = str.length > 3 ? str[3] : -1;
}
PaintOldAvgLev(dayArray);
}
//OutUnoffStat();
} else {
xdr.xget("http://api." + document.location.host + "/wot/encyclopedia/tanks/?application_id=" + api_key, saveTanksArr);
}
}
function batCompanyClan(response) {
eval("var resp =" + response);
var UserId = window.location.href.match(/\/(\d+)/)[1],
companyTable = document.getElementById('company-battles'),
clanTable = document.getElementById('clan-battles'),
daystat = GetStat(),
oldeffres = false;
if (daystat) {
var dsArr = daystat.split("|");
if (dsArr[2]) {
eval('ostr =' + dsArr[2]);
var oldeffres = CalcEff(0, 6,
ostr.all.battles - ostr.company.battles - ostr.clan.battles,
ostr.all.wins - ostr.company.wins - ostr.clan.wins,
ostr.all.damage_dealt - ostr.company.damage_dealt - ostr.clan.damage_dealt,
ostr.all.frags - ostr.company.frags - ostr.clan.frags,
ostr.all.spotted - ostr.company.spotted - ostr.clan.spotted,
ostr.all.capture_points - ostr.company.capture_points - ostr.clan.capture_points,
ostr.all.dropped_capture_points - ostr.company.dropped_capture_points - ostr.clan.dropped_capture_points,
ostr.all.xp - ostr.company.xp - ostr.clan.xp);
var ohr = (ostr.all.hits / ostr.all.shots * 100).toFixed(2),
osurvb = (ostr.all.survived_battles / ostr.all.battles * 100).toFixed(2);
}
}
insertNewTr(companyTable, "Боев", resp.data[UserId].statistics.company.battles +
(oldeffres ? "
" + ((resp.data[UserId].statistics.company.battles - ostr.company.battles > 0) ? " (+" + (resp.data[UserId].statistics.company.battles - ostr.company.battles) + ")" : "") + "" : "") +
" (" + (resp.data[UserId].statistics.company.battles / resp.data[UserId].statistics.all.battles * 100).toFixed(2) + "%)",
resp.data[UserId].statistics.company.battles + "
/ " + resp.data[UserId].statistics.all.battles + "", "cpbat");
insertNewTr(companyTable, "Побед", resp.data[UserId].statistics.company.wins +
(oldeffres ? "
" + ((resp.data[UserId].statistics.company.wins - ostr.company.wins > 0) ? " (+" + (resp.data[UserId].statistics.company.wins - ostr.company.wins) + ")" : "") + "" : "") +
" (" + (resp.data[UserId].statistics.company.wins / resp.data[UserId].statistics.all.wins * 100).toFixed(2) + "%)", resp.data[UserId].statistics.company.wins + "
/ " + resp.data[UserId].statistics.all.wins + "", "cpwin");
insertNewTr(companyTable, "Повреждений за бой", resp.data[UserId].statistics.company.battles > 0 ? (resp.data[UserId].statistics.company.damage_dealt / resp.data[UserId].statistics.company.battles).toFixed(2) : '-', "");
insertNewTr(companyTable, "Фрагов за бой", resp.data[UserId].statistics.company.battles > 0 ? (resp.data[UserId].statistics.company.frags / resp.data[UserId].statistics.company.battles).toFixed(2) : '-', "");
insertNewTr(companyTable, "Обнаружено за бой", resp.data[UserId].statistics.company.battles > 0 ? (resp.data[UserId].statistics.company.spotted / resp.data[UserId].statistics.company.battles).toFixed(2) : '-', "");
insertNewTr(companyTable, "Очков захвата за бой", resp.data[UserId].statistics.company.battles > 0 ? (resp.data[UserId].statistics.company.capture_points / resp.data[UserId].statistics.company.battles).toFixed(2) : '-', "");
insertNewTr(companyTable, "Очков защиты за бой", resp.data[UserId].statistics.company.battles > 0 ? (resp.data[UserId].statistics.company.dropped_capture_points / resp.data[UserId].statistics.company.battles).toFixed(2) : '-', "");
insertNewTr(companyTable, "Опыт за бой", resp.data[UserId].statistics.company.battles > 0 ? (resp.data[UserId].statistics.company.xp / resp.data[UserId].statistics.company.battles).toFixed(2) : '-', "");
insertNewTr(companyTable, "% побед", resp.data[UserId].statistics.company.battles > 0 ? col((resp.data[UserId].statistics.company.wins / resp.data[UserId].statistics.company.battles * 100).toFixed(2)) : '-', "");
insertNewTr(companyTable, "% выживания", resp.data[UserId].statistics.company.battles > 0 ? col((resp.data[UserId].statistics.company.survived_battles / resp.data[UserId].statistics.company.battles * 100).toFixed(2)) : '-', "");
insertNewTr(companyTable, "% попадания", resp.data[UserId].statistics.company.battles > 0 ? col((resp.data[UserId].statistics.company.hits / resp.data[UserId].statistics.company.shots * 100).toFixed(2)) : '-', "");
insertNewTr(clanTable, "Боев", resp.data[UserId].statistics.clan.battles +
(oldeffres ? "
" + ((resp.data[UserId].statistics.clan.battles - ostr.clan.battles > 0) ? " (+" + (resp.data[UserId].statistics.clan.battles - ostr.clan.battles) + ")" : "") + "" : "") +
" (" + (resp.data[UserId].statistics.clan.battles / resp.data[UserId].statistics.all.battles * 100).toFixed(2) + "%)", resp.data[UserId].statistics.clan.battles + "
/ " + resp.data[UserId].statistics.all.battles + "", "clbat");
insertNewTr(clanTable, "Побед", resp.data[UserId].statistics.clan.wins +
(oldeffres ? "
" + ((resp.data[UserId].statistics.clan.wins - ostr.clan.wins > 0) ? " (+" + (resp.data[UserId].statistics.clan.wins - ostr.clan.wins) + ")" : "") + "" : "") +
" (" + (resp.data[UserId].statistics.clan.wins / resp.data[UserId].statistics.all.wins * 100).toFixed(2) + "%)", resp.data[UserId].statistics.clan.wins + "
/ " + resp.data[UserId].statistics.all.wins + "", "clwin");
insertNewTr(clanTable, "Повреждений за бой", resp.data[UserId].statistics.clan.battles > 0 ? (resp.data[UserId].statistics.clan.damage_dealt / resp.data[UserId].statistics.clan.battles).toFixed(2) : '-', "");
insertNewTr(clanTable, "Фрагов за бой", resp.data[UserId].statistics.clan.battles > 0 ? (resp.data[UserId].statistics.clan.frags / resp.data[UserId].statistics.clan.battles).toFixed(2) : '-', "");
insertNewTr(clanTable, "Обнаружено за бой", resp.data[UserId].statistics.clan.battles > 0 ? (resp.data[UserId].statistics.clan.spotted / resp.data[UserId].statistics.clan.battles).toFixed(2) : '-', "");
insertNewTr(clanTable, "Очков захвата за бой", resp.data[UserId].statistics.clan.battles > 0 ? (resp.data[UserId].statistics.clan.capture_points / resp.data[UserId].statistics.clan.battles).toFixed(2) : '-', "");
insertNewTr(clanTable, "Очков защиты за бой", resp.data[UserId].statistics.clan.battles > 0 ? (resp.data[UserId].statistics.clan.dropped_capture_points / resp.data[UserId].statistics.clan.battles).toFixed(2) : '-', "");
insertNewTr(clanTable, "Опыт за бой", resp.data[UserId].statistics.clan.battles > 0 ? (resp.data[UserId].statistics.clan.xp / resp.data[UserId].statistics.clan.battles).toFixed(2) : '-', "");
insertNewTr(clanTable, "% побед", resp.data[UserId].statistics.clan.battles > 0 ? col((resp.data[UserId].statistics.clan.wins / resp.data[UserId].statistics.clan.battles * 100).toFixed(2)) : '-', "");
insertNewTr(clanTable, "% выживания", resp.data[UserId].statistics.clan.battles > 0 ? col((resp.data[UserId].statistics.clan.survived_battles / resp.data[UserId].statistics.clan.battles * 100).toFixed(2)) : '-', "");
insertNewTr(clanTable, "% попадания", resp.data[UserId].statistics.clan.battles > 0 ? col((resp.data[UserId].statistics.clan.hits / resp.data[UserId].statistics.clan.shots * 100).toFixed(2)) : '-', "");
var effres = CalcEff(0, 6,
resp.data[UserId].statistics.all.battles - resp.data[UserId].statistics.company.battles - resp.data[UserId].statistics.clan.battles,
resp.data[UserId].statistics.all.wins - resp.data[UserId].statistics.company.wins - resp.data[UserId].statistics.clan.wins,
resp.data[UserId].statistics.all.damage_dealt - resp.data[UserId].statistics.company.damage_dealt - resp.data[UserId].statistics.clan.damage_dealt,
resp.data[UserId].statistics.all.frags - resp.data[UserId].statistics.company.frags - resp.data[UserId].statistics.clan.frags,
resp.data[UserId].statistics.all.spotted - resp.data[UserId].statistics.company.spotted - resp.data[UserId].statistics.clan.spotted,
resp.data[UserId].statistics.all.capture_points - resp.data[UserId].statistics.company.capture_points - resp.data[UserId].statistics.clan.capture_points,
resp.data[UserId].statistics.all.dropped_capture_points - resp.data[UserId].statistics.company.dropped_capture_points - resp.data[UserId].statistics.clan.dropped_capture_points,
resp.data[UserId].statistics.all.xp - resp.data[UserId].statistics.company.xp - resp.data[UserId].statistics.clan.xp);
var bsr = document.getElementById("js-bs-rating"),
hitrat = document.getElementById("js-hit-ratio"),
hitratt = document.getElementById("js-hit-ratio_tooltip"),
surv = document.getElementById("js-us-surv"),
survb = (resp.data[UserId].statistics.all.survived_battles / resp.data[UserId].statistics.all.battles * 100).toFixed(2);
bsr.innerHTML = effres[3] + ((oldeffres && (effres[3] - oldeffres[3]).toFixed(2) != 0.0) ? "
(+" : "red'> (") + (effres[3] - oldeffres[3]).toFixed(2) + ")" : "");
var hr = (resp.data[UserId].statistics.all.hits / resp.data[UserId].statistics.all.shots * 100).toFixed(2);
hitrat.innerHTML = col(hr) + ((oldeffres && (hr - ohr).toFixed(2) != 0.0) ? "
(+" : "red'> (") + (hr - ohr).toFixed(2) + ")" : "");
hitratt.innerHTML = resp.data[UserId].statistics.all.hits + "
/ " + resp.data[UserId].statistics.all.shots + "";
if (oldeffres && (survb - osurvb).toFixed(2) != 0.0) surv.innerHTML += "
(+" : "red'> (") + (survb - osurvb).toFixed(2) + ")";
GetStatData(effres);
}
function savenominalDamage(response) {
var now = new Date(),
time = now.getTime();
time += 3600 * 24 * 1000;
now.setTime(time);
SetLSData("nominalDamage", response, now.toGMTString());
window.location.reload();
}
function GetBattleStat(col) {
switch (col) {
case 1:
return toFl(document.getElementsByClassName("t-personal-data_value__pr")[0].innerHTML);
break;
case 4:
return toFl(document.getElementsByClassName("b-result")[0].getElementsByClassName("t-dotted_value")[1].innerHTML.split("(")[0]);
break;
case 7:
return toFl(document.getElementsByClassName("b-result")[1].getElementsByClassName("t-dotted_value")[3].innerHTML);
break;
case 9:
return toFl(document.getElementsByClassName("b-result")[1].getElementsByClassName("t-dotted_value")[0].innerHTML);
break;
case 10:
return toFl(document.getElementsByClassName("b-result")[1].getElementsByClassName("t-dotted_value")[1].innerHTML);
break;
case 6:
return toFl(document.getElementsByClassName("b-result")[1].getElementsByClassName("t-dotted_value")[5].innerHTML);
break;
case 8:
return toFl(document.getElementsByClassName("b-result")[1].getElementsByClassName("t-dotted_value")[6].innerHTML);
break;
case 11:
return toFl(document.getElementsByClassName("b-result")[0].getElementsByClassName("t-dotted_value")[4].innerHTML);
break;
case 5:
return toFl(document.getElementsByClassName("b-result")[0].getElementsByClassName("t-dotted_value")[0].innerHTML);
break;
default:
return 0;
break;
break;
}
}
function toFl(s) {
var a = "" + s;
a = a.indexOf(">") > 0 ? a.substr(0, a.indexOf(">")) : a;
return (parseFloat(a.replace(/[\D\.]/g, "")));
}
function getCookie(name) {
var start = document.cookie.indexOf(name + '=');
var len = start + name.length + 1;
if ((!start) && (name !== document.cookie.substring(0, name.length))) {
return null;
}
if (start === -1)
return undefined;
var end = document.cookie.indexOf(';', len);
if (end === -1)
end = document.cookie.length;
var resval = document.cookie.substring(len, end);
name = name + "__2";
start = document.cookie.indexOf(name + '=');
len = start + name.length + 1;
if ((!start) && (name !== document.cookie.substring(0, name.length))) {
return unescape(resval);
}
if (start === -1)
return unescape(resval);
end = document.cookie.indexOf(';', len);
if (end === -1)
end = document.cookie.length;
resval += document.cookie.substring(len, end);
return unescape(resval);
}
function setCookie(name, value, endstr) {
var savestr = escape(value),
savestr2 = false;
if (savestr.length > 3900) {
savestr2 = savestr.slice(3900);
savestr = savestr.slice(0, 3900);
}
if (!endstr)
endstr = "; expires=Mon, 01-Jan-2031 00:00:00 GMT";
document.cookie = name + "=" + savestr + endstr;
if (savestr2) {
document.cookie = name + "__2" + "=" + savestr2 + endstr;
}
}
function GetStat() {
var UserId = window.location.href.match(/\/(\d+)/)[1],
day = 0;
// Перенос старого формата данных
if (GetLSData("daystat_" + UserId)) {
var daystat = GetLSData("daystat_" + UserId);
SetLSData("daystat_" + UserId + "_" + 0, daystat, '01-Jan-2031 00:00:00 GMT');
localStorage.removeItem("daystat_" + UserId);
}
for (var i = 1; i < 7; i++) {
if (GetLSData("daystat_" + UserId + "_" + i))
day += 1;
}
return GetLSData("daystat_" + UserId + "_" + day);
}
function WriteStat() {
var day = 0,
UserId = window.location.href.match(/\/(\d+)/)[1],
WGRating = GetBattleStat(1),
api_key,
saveStat = false;
for (i = 0; i < 7; i++) {
if (!GetLSData("daystat_" + UserId + "_" + i)) {
day = i;
break;
}
day = 7;
}
if (document.location.host.indexOf(".ru") !== -1) {
api_key = "895d3dafdd87af03e1e515befcd83882";
} else if (document.location.host.indexOf(".eu") !== -1) {
api_key = "d0a293dc77667c9328783d489c8cef73";
} else if (document.location.host.indexOf(".com") !== -1) {
api_key = "16924c431c705523aae25b6f638c54dd";
}
if (day !== 0) {
var daystat = GetLSData("daystat_" + UserId + "_" + (day - 1)),
dsArr = daystat.split("|"),
strArray = dsArr[0].split("/"),
str = strArray[0].split(";"),
OldBattles = toFl(str[12]);
if (parseInt(OldBattles) !== parseInt(GetBattleStat(5))) {
saveStat = true;
}
} else {
saveStat = true;
}
if (saveStat) {
$.get("http://api." + document.location.host + "/2.0/account/info/?application_id=" + api_key + "&account_id=" + UserId, function (response) {
var UserId = window.location.href.match(/\/(\d+)/)[1];
var timeStamp = new Date();
var cookie = "" + timeStamp + ";",
AllGold = document.getElementsByClassName("b-userblock-wrpr")[0].getElementsByClassName("currency-gold")[0],
AllCredit = document.getElementsByClassName("b-userblock-wrpr")[0].getElementsByClassName("currency-credit")[0],
AllExp = document.getElementsByClassName("b-userblock-wrpr")[0].getElementsByClassName("currency-experience")[0],
tstsr = JSON.stringify(response.data[UserId].statistics);
if (AllGold) {
cookie += "" + toFl(AllGold.innerHTML.split("(")[0]) + ";";
} else
cookie += "NaN;";
if (AllCredit) {
cookie += "" + toFl(AllCredit.innerHTML.split("(")[0]) + ";";
} else
cookie += "NaN;";
if (AllExp) {
cookie += "" + toFl(AllExp.innerHTML.split("(")[0]) + ";";
} else
cookie += "NaN;";
for (var i = 1; i < 12; i++) {
cookie += GetBattleStat(i) + ";";
cookie += "0;";
}
var tanks = document.getElementsByClassName("t-profile_tankstype__item");
for (var i = 0; i < tanks.length; i++) {
var t = tanks[i].cells,
imgName = t[0].getElementsByTagName('img')[0].src.match(/\/[^-]+-([^\/]*)\.png/)[1];
cookie += "/" + imgName + ";" + toFl(t[1].innerHTML.split("(")[0]) + ";" + toFl(t[2].innerHTML.split("(")[0]) + ";" + t[2].getAttribute("wcount");
}
cookie += "|";
var medals = document.getElementsByClassName("js-full-achievements")[0].getElementsByClassName("b-achivements_item");
for (i = 0; i < medals.length; i++) {
if ((" " + medals[i].className + " ").replace(/[\n\t]/g, " ").indexOf(" b-achivements_item__empty ") === -1) {
var count = medals[i].getElementsByTagName('div')[0];
if (count) {
count = count.getElementsByTagName('span')[0].getElementsByTagName('span')[0];
if (count) {
count = toFl(count.innerHTML);
} else {
count = 1;
}
} else {
count = 1;
}
cookie += "/" + medals[i].id.split("-")[2] + ";" + count;
}
}
cookie += "|" + tstsr;
cookie += "|" + WGRating;
var day = 0;
for (i = 0; i < 7; i++) {
if (!GetLSData("daystat_" + UserId + "_" + i)) {
day = i;
break;
}
day = 7;
}
if (day === 0) {
SetLSData("daystat_" + UserId + "_0", cookie, '01-Jan-2031 00:00:00 GMT');
if (document.title.indexOf("Профиль игрока") > -1) {
popup("Статистика сохранена", true, false);
} else {
popup("Stat. saved", true, false);
}
} else {
var daystat = GetLSData("daystat_" + UserId + "_" + (day - 1)),
dsArr = daystat.split("|"),
strArray = dsArr[0].split("/"),
str = strArray[0].split(";"),
OldBattles = toFl(str[12]);
if (parseInt(OldBattles) === parseInt(GetBattleStat(5))) {
if (document.title.indexOf("Профиль игрока") > -1) {
popup("Нет новых боев", true, false);
} else {
popup("No new battles", true, false);
}
} else {
if (day === 7) {
for (i = 1; i < 7; i++) {
daystat = GetLSData("daystat_" + UserId + "_" + (i));
SetLSData("daystat_" + UserId + "_" + (i - 1), daystat, '01-Jan-2031 00:00:00 GMT');
}
day = 6;
}
SetLSData("daystat_" + UserId + "_" + day, cookie, '01-Jan-2031 00:00:00 GMT');
if (document.title.indexOf("Профиль игрока") > -1) {
popup("Статистика сохранена", true, false);
} else {
popup("Stat. saved", true, false);
}
}
}
});
} else {
if (document.title.indexOf("Профиль игрока") > -1) {
popup("Нет новых боев", true, false);
} else {
popup("No new battles", true, false);
}
}
}
function col(v1, digit, inv) {
if (isNaN(v1))
return "x";
var color = "90ffff";
if (inv) {
var v = 100 - v1;
} else {
v = v1;
}
if (digit)
v1 = v1.toFixed(digit);
if (v < 101)
color = "D042F3";
if (v < 64.9)
color = "02C9B3";
if (v < 56.9)
color = "60FF00";
if (v < 51.9)
color = "F8F400";
if (v < 48.9)
color = "FE7903";
if (v < 46.9)
color = "FE0E00";
return "
" + v1 + "%";
}
function col2(v) {
if (isNaN(v))
v = 0;
var color = "D042F3";
if (v < 15)
color = "02C9B3";
if (v < 10)
color = "60FF00";
if (v < 5)
color = "F8F400";
if (v < 0)
color = "FE7903";
if (v < -5)
color = "FE0E00"; //красный
v = v.toFixed(2);
if (v >= 0)
v = "+" + v;
return "
" + v + "";
}
function SaveCompareStatData() {
var timeStamp = new Date();
var cookie = "" + timeStamp + ";",
AllGold = document.getElementsByClassName("b-userblock-wrpr")[0].getElementsByClassName("currency-gold")[0],
AllCredit = document.getElementsByClassName("b-userblock-wrpr")[0].getElementsByClassName("currency-credit")[0],
AllExp = document.getElementsByClassName("b-userblock-wrpr")[0].getElementsByClassName("currency-experience")[0],
WGRating = GetBattleStat(1);
if (AllGold) {
cookie += "" + toFl(AllGold.innerHTML.split("(")[0]) + ";";
} else
cookie += "NaN;";
if (AllCredit) {
cookie += "" + toFl(AllCredit.innerHTML.split("(")[0]) + ";";
} else
cookie += "NaN;";
if (AllExp) {
cookie += "" + toFl(AllExp.innerHTML.split("(")[0]) + ";";
} else
cookie += "NaN;";
for (var i = 1; i < 12; i++) {
cookie += GetBattleStat(i) + ";";
cookie += "0;";
}
var tanks = document.getElementsByClassName("t-profile_tankstype__item"),
tlev, totalB = 0, avgL = 0, tbcount, tankLevs = {
"I": 1,
"II": 2,
"III": 3,
"IV": 4,
"V": 5,
"VI": 6,
"VII": 7,
"VIII": 8,
"IX": 9,
"X": 10
};
for (var i = 0; i < tanks.length; i++) {
var t = tanks[i].cells,
imgName = t[0].getElementsByTagName('img')[0].src.match(/\/[^-]+-([^\/]*)\.png/)[1];
tbcount = toFl(tanks[i].cells[1].innerHTML);
tlev = tankLevs[tanks[i].cells[0].getElementsByTagName('div')[0].getElementsByTagName('span')[0].innerHTML];
totalB += tbcount;
avgL += tlev * tbcount;
cookie += "/" + imgName + ";" + toFl(t[1].innerHTML.split("(")[0]) + ";" + toFl(t[2].innerHTML.split("(")[0]);
}
cookie += "|" + (avgL / totalB).toFixed(4);
cookie += "|";
var medals = document.getElementsByClassName("js-full-achievements")[0].getElementsByClassName("b-achivements_item");
for (i = 0; i < medals.length; i++) {
if ((" " + medals[i].className + " ").replace(/[\n\t]/g, " ").indexOf(" b-achivements_item__empty ") === -1) {
var count = medals[i].getElementsByTagName('div')[0];
if (count) {
count = count.getElementsByTagName('span')[0].getElementsByTagName('span')[0];
if (count) {
count = toFl(count.innerHTML);
} else {
count = 1;
}
} else {
count = 1;
}
cookie += "/" + medals[i].id.split("-")[2] + ";" + count;
}
}
cookie += "|" + WGRating;
SetLSData("compareStat", cookie, '01-Jan-2031 00:00:00 GMT');
window.close();
}
function WriteCompareStat() {
var set = getCookie("usSettings").split('|')[1].split(';');
if (toFl(set[0]) === 1 && set[1].match(/\/(\d+)/)[1] !== window.location.href.match(/\/(\d+)/)[1]) {
window.open(set[1] + '#USCompareStat', 'usCompare', 'width=100, height=100');
return false;
}
}
function GetLSData(name) {
var stVal = localStorage.getItem(name);
if (stVal && new Date(stVal.split("||")[0]) <= new Date()) {
localStorage.removeItem(name);
stVal = null;
}
if (stVal) {
return stVal.split("||")[1];
} else
return null;
}
function SetLSData(name, value, expire) {
var stval = expire + "||" + value;
localStorage.setItem(name, stval);
}
function outStatData2(response) {
eval("var resp =" + response);
var sStat = resp.veh_stat,
arstr = '';
for (var sc in sStat) {
arstr += "/" + sStat[sc]["link"].match(/\/[^-]+-([^\/]*)\.png/)[1].toLowerCase() + ";" + (sStat[sc]["win"] / sStat[sc]["total"] * 100).toFixed(2);
}
var now = new Date(),
time = now.getTime();
time += 3600 * 24 * 1000;
now.setTime(time);
SetLSData("UsUnOfStat", arstr, now.toGMTString());
OutUnoffStat();
}
function CalcOldAvgLev(ds, tankarr) {
var avgL = 0,
totalB = 0,
NavgL = 0,
NtotalB = 0,
tnaSum = 0,
expDmg = 0,
expSpot = 0,
expFrag = 0,
expDef = 0,
expWinRate = 0,
tankLevs = {
"I": 1,
"II": 2,
"III": 3,
"IV": 4,
"V": 5,
"VI": 6,
"VII": 7,
"VIII": 8,
"IX": 9,
"X": 10
};
var nominalDamage = GetLSData("nominalDamage"),
nominalDamageArr = [];
if (nominalDamage) {
nominalDamage = eval(nominalDamage);
for (i = 0; i < nominalDamage.length; i++) {
if (nominalDamage[i].nominalDamage)
nominalDamageArr[(nominalDamage[i].id).toLowerCase()] = [
nominalDamage[i].nominalDamage * 1,
nominalDamage[i].wnNominalStats ? nominalDamage[i].wnNominalStats.damage * 1 : 0,
nominalDamage[i].wnNominalStats ? nominalDamage[i].wnNominalStats.spots * 1 : 0,
nominalDamage[i].wnNominalStats ? nominalDamage[i].wnNominalStats.frags * 1 : 0,
nominalDamage[i].wnNominalStats ? nominalDamage[i].wnNominalStats.defensePoints * 1 : 0,
nominalDamage[i].wnNominalStats ? nominalDamage[i].wnNominalStats.winRate * 1 : 0,
];
}
} else {
xdr.xget("http://www.noobmeter.com/tankListJson/elfx_133054", savenominalDamage);
}
for (var tank in ds) {
if (tankarr[tank]) {
totalB += ds[tank].b;
if (nominalDamageArr[tank]) {
if (nominalDamageArr[tank][0]) tnaSum += ds[tank].b * nominalDamageArr[tank][0];
expDmg += ds[tank].b * nominalDamageArr[tank][1];
expSpot += ds[tank].b * nominalDamageArr[tank][2];
expFrag += ds[tank].b * nominalDamageArr[tank][3];
expDef += ds[tank].b * nominalDamageArr[tank][4];
expWinRate += ds[tank].b * nominalDamageArr[tank][5];
}
avgL += tankarr[tank].tlev * ds[tank].b;
if (ds[tank].b !== tankarr[tank].bcount) {
NtotalB += (tankarr[tank].bcount - ds[tank].b);
NavgL += tankarr[tank].tlev * (tankarr[tank].bcount - ds[tank].b);
}
}
}
return [avgL / totalB, NavgL / NtotalB, tnaSum, expDmg, expSpot, expFrag, expDef, expWinRate];
}
function PaintOldAvgLev(ds) {
var avgL = 0,
totalB = 0,
NavgL = 0,
NtotalB = 0,
tanks = document.getElementsByClassName("t-profile_tankstype__item"),
tbcount,
twcount,
tlev,
imgName,
tHd,
newBat,
tankLevs = {
"I": 1,
"II": 2,
"III": 3,
"IV": 4,
"V": 5,
"VI": 6,
"VII": 7,
"VIII": 8,
"IX": 9,
"X": 10
};
var theads = document.getElementsByClassName("t-profile__vehicle")[0].getElementsByTagName('tbody');
for (var i = 0; i < theads.length; i++) {
if (theads[i].style.display !== 'none')
theads[i].setAttribute('class', 'js-tank-head-row');
}
for (i = 0; i < tanks.length; i++) {
if (tanks[i].parentNode.previousElementSibling.style.display !== 'none')
tanks[i].setAttribute('class', tanks[i].getAttribute('class') + ' js-tank-row');
imgName = tanks[i].cells[0].getElementsByTagName('img')[0].src.match(/\/[^-]+-([^\/]*)\.png/)[1];
if (ds[imgName]) {
tbcount = toFl(ds[imgName].b);
twcount = ds[imgName].w;
} else {
tbcount = 0;
twcount = 0;
}
tlev = tankLevs[tanks[i].cells[0].getElementsByTagName('div')[0].getElementsByTagName('span')[0].innerHTML];
totalB += tbcount;
avgL += tlev * tbcount;
if (toFl(tanks[i].cells[1].innerHTML) !== tbcount) {
NtotalB += toFl(tanks[i].cells[1].innerHTML.split("(")[0]) - tbcount;
tHd = tanks[i].parentNode.previousElementSibling;
newBat = toFl(tHd.getAttribute('newbat'));
if (newBat) {
newBat += toFl(tanks[i].cells[1].innerHTML.split("(")[0]) - tbcount;
} else {
newBat = toFl(tanks[i].cells[1].innerHTML.split("(")[0]) - tbcount;
}
tHd.setAttribute("style", "background-color: Darkslategray;");
tHd.setAttribute("newBat", newBat);
tHd.rows[0].cells[1].innerHTML = tHd.rows[0].cells[1].innerHTML.split("(")[0] + " (+" + newBat + ")";
tanks[i].setAttribute("style", "background-color: Darkslategray;");
tanks[i].setAttribute('class', tanks[i].getAttribute('class') + ' js-nb-tank-row');
if (!tHd.getAttribute('class') || tHd.getAttribute('class').indexOf('js-nb-tank-row') === -1)
tHd.setAttribute('class', (tHd.getAttribute('class') ? tHd.getAttribute('class') + ' js-nb-tank-row' : 'js-nb-tank-row'));
tanks[i].cells[1].innerHTML = tanks[i].cells[1].innerHTML + " (" + (toFl(tanks[i].cells[1].innerHTML.split("(")[0]) - tbcount) + "|" + (tanks[i].cells[2].getAttribute('wcount') - twcount) + ")";
if (twcount !== -1 && tbcount !== 0) {
var windelta = ((tanks[i].cells[2].getAttribute('wcount') / toFl(tanks[i].cells[1].innerHTML.split("(")[0]) * 100).toFixed(2) - (twcount / tbcount * 100).toFixed(2)).toFixed(2);
tanks[i].cells[2].innerHTML = tanks[i].cells[2].innerHTML + " (" + (windelta > 0 ? "
+" + windelta + "" : "
" + windelta + "") + ")";
}
NavgL += tlev * (toFl(tanks[i].cells[1].innerHTML.split("(")[0]) - tbcount);
}
}
}
function outStatData(response) {
eval("var resp =" + response);
var sStat = resp.classRatings,
arstr = '';
for (var i = 0; i < rangA.length; i++) {
arstr += sStat[rangA[i]] + ';';
}
var now = new Date(),
time = now.getTime();
time += 3600 * 24 * 1000;
now.setTime(time);
SetLSData("UsBsRangs", arstr, now.toGMTString());
GetStatData();
}
function OutUnoffStat() {
var stData = GetLSData("UsUnOfStat");
if (stData) {
var vTh = document.getElementsByClassName("t-profile__vehicle")[0].getElementsByTagName('th')[4],
nTh = document.createElement('th');
document.getElementsByClassName("t-profile__vehicle")[0].getElementsByTagName('th')[0].width = "288";
nTh.innerHTML = '
' + (lang === "ru" ? "ср % побед по серверу" : "avg win %") + "";
nTh.className = "t-profile_center";
vTh.parentNode.insertBefore(nTh, vTh);
var tTypes = document.getElementsByClassName("js-tank-head-row");
for (i = 0; i < tTypes.length; i++) {
var nrth = tTypes[i].rows[0].getElementsByClassName('t-profile_center');
if (nrth.length) {
nrth[0].width = "288";
var fTh = document.createElement('td');
fTh.innerHTML = '-';
fTh.className = "t-profile_center";
tTypes[i].rows[0].cells[4].parentNode.insertBefore(fTh, tTypes[i].rows[0].cells[4]);
}
}
var UnOffStat = stData.split("/");
if (UnOffStat) {
var unOffStatArr = [];
for (i = 0; i < UnOffStat.length; i++) {
var uoss = UnOffStat[i].split(";");
unOffStatArr[uoss[0]] = uoss[1];
}
var tanks = document.getElementsByClassName("t-profile_tankstype__item");
for (i = 0; i < tanks.length; i++) {
var t = tanks[i].cells,
imgName = t[0].getElementsByTagName('img')[0].src.match(/\/[^-]+-([^\/]*)\.png/)[1].toLowerCase();
var sTd = document.createElement('td');
sTd.className = "t-profile_right";
var med = unOffStatArr[imgName];
if (med && t[2].getElementsByTagName('font')[0]) {
sTd.innerHTML = col(med) + " (" + col2(parseFloat(t[2].getElementsByTagName('font')[0].innerHTML) - med) + ")";
} else {
sTd.innerHTML = "x";
}
t[4].parentNode.insertBefore(sTd, t[4]);
var rItem = t[4].parentNode.getElementsByClassName("t-profile_ico-dropdown")[0];
t[4].parentNode.removeChild(rItem);
}
}
} else {
xdr.xget("http://wot-crabe.ru/api/server_stats.json", outStatData2);
}
}
function GetStatData() {
var stData = GetLSData("UsBsRangs"),
lang,
bsrat = document.getElementById("js-bs-rating").innerHTML.split("(")[0].split("<")[0];
if (document.title.indexOf("Профиль игрока") > -1)
lang = "ru";
if (stData) {
var bsRangs = stData.split(";");
if (bsRangs) {
var rcr = 0,
rcrv = 0;
for (var i = bsRangs.length - 1; i > -1; i--) {
if (Number(bsrat) > Number(bsRangs[i])) {
rcr = i;
if (i > 0) {
rcrv = (Number(bsRangs[i - 1]) - Number(bsrat)).toFixed(2) + (lang === "ru" ? " баллов до следующего ранга" : " balls to next level");
} else {
rcrv = (lang === "ru" ? 'Максимальный уровень. Круче только вареные яйца.' : 'Max. level');
}
}
}
document.getElementById("js-bs-rating_tooltip").innerHTML = (lang === "ru" ? rangD[rcr] : rangDE[rcr]) + "
" + rcrv;
}
} else {
xdr.xget("http://armor.kiev.ua/wot/api.php", outStatData);
}
}