// ==UserScript==
// @name Seizwell Schiffs-DB Stats
// @namespace Seizwell Schiffs-DB Stats by DarkMo
// @description Statistische Auswertung für Seizwell Schiffs-DB
// @include http://www.seizewell.de/x3-tc/ships/*
// @include http://www.seizewell.de/x3ap/schiffe/*
// @version 1
// @grant none
// ==/UserScript==
var tables = document.getElementsByTagName("table");
var table;
var row;
var cell;
var str;
var value;
var valueRange;
var valuePos;
var valueRel;
var tmp, temp;
var colors = new Array("#3CBD00", "#34A300", "#70A300", "#A3A300", "#A37200", "#A30000");
var maxPrice = 0;
var minPrice = 1000000000000;
var maxSpeed = 0;
var minSpeed = 5000;
var maxA = 0;
var minA = 5000;
var maxTurn = 0;
var minTurn = 5000;
var maxSGen = 0;
var minSGen = 1000000000000;
var maxLaser = 0;
var minLaser = 1000000000000;
var maxLLoad = 0;
var minLLoad = 10000;
var maxShield = 0;
var minShield = 100000;
var maxFreight = 0;
var minFreight = 1000000;
for(var i = 2; table = tables[i]; i++) {
for(var j = 0; row = table.rows[j]; j++) {
if(row.cells[0].innerHTML == "Preis ab:") {
str = row.cells[1].innerHTML;
str = str.replace(" Credits", "");
while(str.indexOf(".") > -1) str = str.replace(".", "");
value = parseInt(str);
if(value > maxPrice) maxPrice = value;
if(value < minPrice) minPrice = value;
} else if(row.cells[0].innerHTML == "Max. Geschwindigkeit:") {
str = row.cells[1].innerHTML;
value = parseFloat(str);
if(value > maxSpeed) maxSpeed = value;
if(value < minSpeed) minSpeed = value;
} else if(row.cells[0].innerHTML == "Max. Beschleunigung:") {
str = row.cells[1].innerHTML;
value = parseFloat(str);
if(value > maxA) maxA = value;
if(value < minA) minA = value;
} else if(row.cells[0].innerHTML == "Max. Ruder:") {
str = row.cells[1].innerHTML;
value = parseFloat(str);
if(value > maxTurn) maxTurn = value;
if(value < minTurn) minTurn = value;
} else if(row.cells[0].innerHTML == "Schildgenerator:") {
str = row.cells[1].innerHTML;
str = str.replace(" MW", "");
value = parseInt(str);
if(value > maxSGen) maxSGen = value;
if(value < minSGen) minSGen = value;
} else if(row.cells[0].innerHTML == "Laserenergie:") {
str = row.cells[1].innerHTML;
str = str.replace(" MW", "");
value = parseInt(str);
if(value > maxLaser) maxLaser = value;
if(value < minLaser) minLaser = value;
} else if(row.cells[0].innerHTML == "Frachtraum / Klasse:") {
str = row.cells[1].innerHTML;
str = str.substr(0, str.indexOf(" "));
value = parseInt(str);
if(value > maxFreight) maxFreight = value;
if(value < minFreight) minFreight = value;
} else if(row.cells[0].innerHTML == "Laderate:") {
str = row.cells[1].innerHTML;
str = str.replace(" MW", "");
value = parseInt(str);
if(value > maxLLoad) maxLLoad = value;
if(value < minLLoad) minLLoad = value;
} else if(row.cells[0].innerHTML.substr(0, 12) == "Max. Schilde") {
str = row.cells[1].innerHTML;
str = str.replace(" MJ", "");
str = str.replace(" x", "");
value = parseInt(str.substr(0, str.indexOf(" "))) * parseInt(str.substring(str.indexOf(" "), str.length));
if(value > maxShield) maxShield = value;
if(value < minShield) minShield = value;
}
}
}
for(var i = 2; table = tables[i]; i++) {
for(var j = 0; row = table.rows[j]; j++) {
if(row.cells[0].innerHTML == "Preis ab:" && row.cells[1].innerHTML.substr(0,5) != "nicht") {
str = row.cells[1].innerHTML;
str = str.replace(" Credits", "");
while(str.indexOf(".") > -1) str = str.replace(".", "");
value = parseInt(str);
valueRange = maxPrice - minPrice;
valuePos = value - minPrice;
valueRel = Math.round(100 * valuePos / valueRange);
temp = valuePos + "";
valuePos = "";
tmp = 1;
for(var k = temp.length - 1; k >= 0; k--) {
valuePos = temp.charAt(k) + valuePos;
if(tmp % 3 == 0 && k > 0) valuePos = "." + valuePos;
tmp++;
}
row.cells[1].innerHTML += "<br>+" + valuePos + " Credits (+" + valueRel + "%)";
row.cells[1].style.background = colors[Math.round(valueRel / 20)];
row.cells[1].style.color = "#ffffff";
} else if(row.cells[0].innerHTML == "Max. Geschwindigkeit:") {
str = row.cells[1].innerHTML;
value = parseFloat(str);
valueRange = maxSpeed - minSpeed;
valuePos = Math.round(100 * (maxSpeed - value)) / 100;
valueRel = Math.round(100 * valuePos / valueRange);
row.cells[1].innerHTML += "<br>-" + valuePos.toFixed(2) + " (-" + valueRel + "%)";
row.cells[1].style.background = colors[Math.round(valueRel / 20)];
row.cells[1].style.color = "#ffffff";
} else if(row.cells[0].innerHTML == "Max. Beschleunigung:") {
str = row.cells[1].innerHTML;
value = parseFloat(str);
valueRange = maxA - minA;
valuePos = Math.round(100 * (maxA - value)) / 100;
valueRel = Math.round(100 * valuePos / valueRange);
row.cells[1].innerHTML += "<br>-" + valuePos.toFixed(2) + " (-" + valueRel + "%)";
row.cells[1].style.background = colors[Math.round(valueRel / 20)];
row.cells[1].style.color = "#ffffff";
} else if(row.cells[0].innerHTML == "Max. Ruder:") {
str = row.cells[1].innerHTML;
value = parseFloat(str);
valueRange = maxTurn - minTurn;
valuePos = Math.round(100 * (maxTurn - value)) / 100;
valueRel = Math.round(100 * valuePos / valueRange);
row.cells[1].innerHTML += "<br>-" + valuePos.toFixed(2) + " (-" + valueRel + "%)";
row.cells[1].style.background = colors[Math.round(valueRel / 20)];
row.cells[1].style.color = "#ffffff";
} else if(row.cells[0].innerHTML == "Schildgenerator:") {
str = row.cells[1].innerHTML;
str = str.replace(" MW", "");
value = parseInt(str);
valueRange = maxSGen - minSGen;
valuePos = Math.round(100 * (maxSGen - value)) / 100;
valueRel = Math.round(100 * valuePos / valueRange);
row.cells[1].innerHTML += "<br>-" + valuePos + " (-" + valueRel + "%)";
row.cells[1].style.background = colors[Math.round(valueRel / 20)];
row.cells[1].style.color = "#ffffff";
} else if(row.cells[0].innerHTML == "Laserenergie:") {
str = row.cells[1].innerHTML;
str = str.replace(" MW", "");
value = parseInt(str);
valueRange = maxLaser - minLaser;
valuePos = Math.round(100 * (maxLaser - value)) / 100;
valueRel = Math.round(100 * valuePos / valueRange);
row.cells[1].innerHTML += "<br>-" + valuePos + " (-" + valueRel + "%)";
row.cells[1].style.background = colors[Math.round(valueRel / 20)];
row.cells[1].style.color = "#ffffff";
} else if(row.cells[0].innerHTML == "Laderate:") {
str = row.cells[1].innerHTML;
str = str.replace(" MW", "");
value = parseInt(str);
valueRange = maxLLoad - minLLoad;
valuePos = Math.round(100 * (maxLLoad - value)) / 100;
valueRel = Math.round(100 * valuePos / valueRange);
row.cells[1].innerHTML += "<br>-" + valuePos + " (-" + valueRel + "%)";
row.cells[1].style.background = colors[Math.round(valueRel / 20)];
row.cells[1].style.color = "#ffffff";
} else if(row.cells[0].innerHTML == "Frachtraum / Klasse:") {
str = row.cells[1].innerHTML;
str = str.substr(0, str.indexOf(" "));
value = parseInt(str);
valueRange = maxFreight - minFreight;
valuePos = Math.round(100 * (maxFreight - value)) / 100;
valueRel = Math.round(100 * valuePos / valueRange);
row.cells[1].innerHTML += "<br>-" + valuePos + " (-" + valueRel + "%)";
row.cells[1].style.background = colors[Math.round(valueRel / 20)];
row.cells[1].style.color = "#ffffff";
} else if(row.cells[0].innerHTML.substr(0, 12) == "Max. Schilde") {
str = row.cells[1].innerHTML;
str = str.replace(" MJ", "");
str = str.replace(" x", "");
value = parseInt(str.substr(0, str.indexOf(" "))) * parseInt(str.substring(str.indexOf(" "), str.length));
valueRange = maxShield - minShield;
valuePos = Math.round(100 * (maxShield - value)) / 100;
valueRel = Math.round(100 * valuePos / valueRange);
row.cells[1].innerHTML += "<br>-" + valuePos + " MJ (-" + valueRel + "%)";
row.cells[1].style.background = colors[Math.round(valueRel / 20)];
row.cells[1].style.color = "#ffffff";
}
}
}