OFM DE2 - Vereinsseite - oFIFA.de2 Info-Panel

Adds an additional element to the team page, if the manager is collecting players of one nation.

// ==UserScript==
// @name           OFM DE2 - Vereinsseite - oFIFA.de2 Info-Panel
// @namespace      spommie2912
// @description    Adds an additional element to the team page, if the manager is collecting players of one nation.
// @include        http://server2.onlinefussballmanager.de/*php*
// @version        0.0.30
// @license        MIT
// @copyright      2014 spommie2912
// @date           2014-10-17
// @grant          none
// ==/UserScript==

/*
Version History

0.0.30	- v7 deleted



*/

var flagUrl = "none";
var playerCount = 0;
var nationName = "Nation";
var allPlayersArray = new Array();
var fcPlayersArray = new Array();
var friendlyPlayersArray = new Array();
var maxStrength = 0;
var friendlyStrength = 0;
var funcupStrength = 0;
var wpOffset = 0;
var legionaerStatusFr = 0;
var legionaerStatusFc = 0;

var injuredImage = "http://server2.onlinefussballmanager.de/bilder/kreuz.gif";
var suspendedImage1 = "http://server2.onlinefussballmanager.de/bilder/rot1.gif";
var suspendedImage2 = "http://server2.onlinefussballmanager.de/bilder/rot2.gif";
var suspendedImage3 = "http://server2.onlinefussballmanager.de/bilder/rot3.gif";
var suspendedImage4 = "http://server2.onlinefussballmanager.de/bilder/rot4.gif";
var suspendedImage5 = "http://server2.onlinefussballmanager.de/bilder/rot5.gif";
var friendlyActive = "http://server2.onlinefussballmanager.de/db/images/ingame/aufgestellt_friendly2.png";
var funcupActive = "http://server2.onlinefussballmanager.de/db/images/ingame/aufgestellt_funcup2.png"
var substitute =  "http://server2.onlinefussballmanager.de/db/images/ingame/aufgestellt_reserve2.png"

var TW = 0;
var LIB = 1;
var LV = 2;
var LMD = 3;
var RMD = 4;
var RV = 5;
var VS = 6;
var LM = 7;
var DM = 8;
var ZM = 9;
var RM = 10;
var LS = 11;
var MS = 12;
var RS = 13;

var reserves433 = new Array();
var reserves442 = new Array();
var reserves343 = new Array();
var reserves451 = new Array();
var reserves532lib = new Array();
var reserves541 = new Array();
var reserves352 = new Array();
var reserves532vs = new Array();

var formation433 =    new Array(TW,  LV,  LMD, RMD, RV,  LM,  ZM,  RM,  LS,  MS,  RS);
var formation442 =    new Array(TW,  LV,  LMD, RMD, RV,  LM,  DM,  ZM,  RM,  LS,  RS);
var formation343 =    new Array(TW,  LIB, LMD, RMD, LM,  DM,  ZM,  RM,  LS,  MS,  RS);
var formation451 =    new Array(TW,  LV,  LMD, RMD, RV,  VS,  LM,  DM,  ZM,  RM,  MS);
var formation532lib = new Array(TW,  LIB, LV,  LMD, RMD, RV,  LM,  ZM,  RM,  LS,  RS);
var formation541 =    new Array(TW,  LIB, LV,  LMD, RMD, RV,  LM,  DM,  ZM,  RM,  MS);
var formation352 =    new Array(TW,  LIB, LMD, RMD, VS,  LM,  DM,  ZM,  RM,  LS,  RS);
var formation532vs =  new Array(TW,  LV,  LMD, RMD, RV,  VS,  LM,  ZM,  RM,  LS,  RS);

// 4-3-3 	TW 		LV 	LMD RMD RV 		LM 		ZM 	RM 	LS 	MS 	RS
// 4-4-2 	TW 		LV 	LMD RMD RV 		LM 	DM 	ZM 	RM 	LS 		RS
// 3-4-3 	TW 	LIB 	LMD RMD 		LM 	DM 	ZM 	RM 	LS 	MS 	RS
// 4-5-1 	TW 		LV 	LMD RMD RV 	VS 	LM 	DM 	ZM 	RM 		MS 	
// 5-3-2  	TW 	LIB LV 	LMD RMD RV 		LM 		ZM 	RM 	LS 		RS
// 5-4-1  	TW 	LIB LV 	LMD RMD RV 		LM 	DM 	ZM 	RM 		MS 	
// 3-5-2 	TW 	LIB 	LMD RMD 	VS 	LM 	DM 	ZM 	RM 	LS 		RS
// 5-3-2  	TW 		LV 	LMD RMD RV 	VS 	LM 		ZM 	RM 	LS 		RS



// counts all players of collected nation
function countPlayers (table) {
	var total = table.getElementsByTagName("tr").length;
	flagarray = new Array();
	for (var i=1;i<total;i++){
		flagarray[i-1] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[7+wpOffset].lastChild.getAttribute("src");
		// get all flags
	}
	flagarray.sort();
	for (var j=0;j<flagarray.length-10;j++){
		if (flagarray[j] == flagarray[j+10]){
		// more than 11 players from the same nation
			flagUrl = flagarray[j];
			//alert(flagUrl);
			break;
		}
	}
	for (j=0;j<flagarray.length;j++){
		if (flagarray[j] == flagUrl){
			playerCount++;
		}
	}
}

//pushes player to all reserves arrays
function pushToReserves(strength){
	reserves433.push(strength);
	reserves442.push(strength);
	reserves343.push(strength);
	reserves451.push(strength);
	reserves532lib.push(strength);
	reserves541.push(strength);
	reserves352.push(strength);
	reserves532vs.push(strength);
}


//sorts all reserves arrays descending
function sortReserves(){
	reserves433.sort().reverse();
	reserves442.sort().reverse();
	reserves343.sort().reverse();
	reserves451.sort().reverse();
	reserves532lib.sort().reverse();
	reserves541.sort().reverse();
	reserves352.sort().reverse();
	reserves532vs.sort().reverse();
}

//only used, if all reserves arrays contain the same players (have same length...)
function getBestReserve(){
	if(reserves433.length>0){
		reserves433.shift();
		reserves442.shift();
		reserves343.shift();
		reserves451.shift();
		reserves532lib.shift();
		reserves541.shift();
		reserves352.shift();
		return reserves532vs.shift();
	}
	return 0;
}


// calculates Strength of given playersArray
function calculateStrength (playersArray){
	var strength = 0;
	reserves433 = new Array();
	reserves442 = new Array();
	reserves343 = new Array();
	reserves451 = new Array();
	reserves532lib = new Array();
	reserves541 = new Array();
	reserves352 = new Array();
	reserves532vs = new Array();
	var squad = new Array(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0);
	// step 1: fill all positions with the best player and move other players of the same position to all reserves arrays
	for (var i=0; i<playersArray.length; i++){
		switch (playersArray[i][0]) {
			case "TW":
				if (squad[TW]==0){
					squad[TW] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[TW]){
					pushToReserves(squad[TW]/2);
					squad[TW] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;
			case "LIB":
				if (squad[LIB]==0){
					squad[LIB] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[LIB]){
					pushToReserves(squad[LIB]/2);
					squad[LIB] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;
			case "LV":
				if (squad[LV]==0){
					squad[LV] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[LV]){
					pushToReserves(squad[LV]/2);
					squad[LV] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;	
			case "LMD":
				if (squad[LMD]==0){
					squad[LMD] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[LMD]){
					pushToReserves(squad[LMD]/2);
					squad[LMD] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;
			case "RMD":
				if (squad[RMD]==0){
					squad[RMD] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[RMD]){
					pushToReserves(squad[RMD]/2);
					squad[RMD] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;	
			case "RV":
				if (squad[RV]==0){
					squad[RV] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[RV]){
					pushToReserves(squad[RV]/2);
					squad[RV] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;
			case "VS":
				if (squad[VS]==0){
					squad[VS] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[VS]){
					pushToReserves(squad[VS]/2);
					squad[VS] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;
			case "LM":
				if (squad[LM]==0){
					squad[LM] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[LM]){
					pushToReserves(squad[LM]/2);
					squad[LM] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;	
			case "DM":
				if (squad[DM]==0){
					squad[DM] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[DM]){
					pushToReserves(squad[DM]/2);
					squad[DM] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;	
			case "ZM":
				if (squad[ZM]==0){
					squad[ZM] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[ZM]){
					pushToReserves(squad[ZM]/2);
					squad[ZM] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;	
			case "RM":
				if (squad[RM]==0){
					squad[RM] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[RM]){
					pushToReserves(squad[RM]/2);
					squad[RM] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;	
			case "LS":
				if (squad[LS]==0){
					squad[LS] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[LS]){
					pushToReserves(squad[LS]/2);
					squad[LS] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;	
			case "MS":
				if (squad[MS]==0){
					squad[MS] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[MS]){
					pushToReserves(squad[MS]/2);
					squad[MS] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;	
			case "RS":
				if (squad[RS]==0){
					squad[RS] = parseFloat(playersArray[i][1]);
				}
				else if (parseFloat(playersArray[i][1]) > squad[RS]){
					pushToReserves(squad[RS]/2);
					squad[RS] = parseFloat(playersArray[i][1]);
				}
				else{
					pushToReserves(parseFloat(playersArray[i][1])/2);
				}
				break;	
			default:
				alert("bad position error");
		}
	}
	sortReserves();
	//sort reserves so that the best is first

	// step 2: the following positions are always needed, so they can be filled if empty with the best reserves
	if(squad[TW]==0 && reserves433.length > 0){
		squad[TW] = getBestReserve();
	}
	if(squad[LMD]==0 && reserves433.length > 0){
		squad[LMD] = getBestReserve();
	}
	if(squad[RMD]==0 && reserves433.length > 0){
		squad[RMD] = getBestReserve();
	}
	if(squad[LM]==0 && reserves433.length > 0){
		squad[LM] = getBestReserve();
	}
	if(squad[ZM]==0 && reserves433.length > 0){
		squad[ZM] = getBestReserve();
	}
	if(squad[RM]==0 && reserves433.length > 0){
		squad[RM] = getBestReserve();
	}
	
	// now we start differentiating different formations...
	var strength433 = 0;
	var strength442 = 0;
	var strength343 = 0;
	var strength451 = 0;
	var strength532lib = 0;
	var strength541 = 0;
	var strength352 = 0;
	var strength532vs = 0;
	var squad433 = new Array();
	var squad442 = new Array();
	var squad343 = new Array();
	var squad451 = new Array();
	var squad532lib = new Array();
	var squad541 = new Array();
	var squad352 = new Array();
	var squad532vs = new Array();
	
	//step 3: if player of position X is present, but not needed in the formation, he can be moved to reserves of the other formations
	if(squad[LIB]!=0){
		reserves433.push(squad[LIB]/2);
		reserves442.push(squad[LIB]/2);
		reserves451.push(squad[LIB]/2);
		reserves532vs.push(squad[LIB]/2);
	}
	if(squad[LV]!=0){
		reserves343.push(squad[LV]/2);
		reserves352.push(squad[LV]/2);
	}
	if(squad[RV]!=0){
		reserves343.push(squad[RV]/2);
		reserves352.push(squad[RV]/2);
	}
	if(squad[VS]!=0){
		reserves433.push(squad[VS]/2);
		reserves442.push(squad[VS]/2);
		reserves343.push(squad[VS]/2);
		reserves532lib.push(squad[VS]/2);
		reserves541.push(squad[VS]/2);
	}
	if(squad[DM]!=0){
		reserves433.push(squad[DM]/2);
		reserves532lib.push(squad[DM]/2);
		reserves532vs.push(squad[DM]/2);
	}
	if(squad[LS]!=0){
		reserves451.push(squad[LS]/2);
		reserves541.push(squad[LS]/2);
	}
	if(squad[MS]!=0){
		reserves442.push(squad[MS]/2);
		reserves532lib.push(squad[MS]/2);
		reserves352.push(squad[MS]/2);
		reserves532vs.push(squad[MS]/2);
	}
	if(squad[RS]!=0){
		reserves451.push(squad[RS]/2);
		reserves541.push(squad[RS]/2);
	}
	sortReserves();
	//again sort the reserves to get the best in first position
	
	//step 4: fill the different formation squads with the players of the total squad array
	//the formation arrays contain the indices needed for that formation - see global variables above
	var i;
	for (i=0; i<11; i++){
		squad433.push(squad[formation433[i]]);
		squad442.push(squad[formation442[i]]);
		squad343.push(squad[formation343[i]]);
		squad451.push(squad[formation451[i]]);
		squad532lib.push(squad[formation532lib[i]]);
		squad541.push(squad[formation541[i]]);
		squad352.push(squad[formation352[i]]);
		squad532vs.push(squad[formation532vs[i]]);
	}
	squad433.sort();
	squad442.sort();
	squad343.sort();
	squad451.sort();
	squad532lib.sort();
	squad541.sort();
	squad352.sort();
	squad532vs.sort();
	//sort the formations so the weakest players are first
	
	//step 5: check all positions if there is a reserve available who is better and than switch the players
	// here the strength of each formation is also calculated
	var sub;
	for (i=0; i<11; i++){
		if (reserves433.length>0){
			sub = reserves433[0];
			if(squad433[i]==0){
				squad433[i] = reserves433.shift();
				strength433 = strength433 + squad433[i];
			}
			else if (squad433[i] < sub) {
				reserves433.push(squad433[i]/2);
				reserves433.sort().reverse();
				squad433[i] = reserves433.shift();
				strength433 = strength433 + squad433[i];
			}
			else {
				strength433 = strength433 + squad433[i];
			}
		}
		else{
			strength433 = strength433 + squad433[i];
		}
		if (reserves442.length>0){
			sub = reserves442[0];
			if(squad442[i]==0){
				squad442[i] = reserves442.shift();
				strength442 = strength442 + squad442[i];
			}
			else if (squad442[i] < sub) {
				reserves442.push(squad442[i]/2);
				reserves442.sort().reverse();
				squad442[i] = reserves442.shift();
				strength442 = strength442 + squad442[i];
			}
			else {
				strength442 = strength442 + squad442[i];
			}
		}
		else{
			strength442 = strength442 + squad442[i];
		}
		if (reserves343.length>0){
			sub = reserves343[0];
			if(squad343[i]==0){
				squad343[i] = reserves343.shift();
				strength343 = strength343 + squad343[i];
			}
			else if (squad343[i] < sub) {
				reserves343.push(squad343[i]/2);
				reserves343.sort().reverse();
				squad343[i] = reserves343.shift();
				strength343 = strength343 + squad343[i];
			}
			else {
				strength343 = strength343 + squad343[i];
			}
		}
		else{
			strength343 = strength343 + squad343[i];
		}
		if (reserves451.length>0){
			sub = reserves451[0];
			if(squad451[i]==0){
				squad451[i] = reserves451.shift();
				strength451 = strength451 + squad451[i];
			}
			else if (squad451[i] < sub) {
				reserves451.push(squad451[i]/2);
				reserves451.sort().reverse();
				squad451[i] = reserves451.shift();
				strength451 = strength451 + squad451[i];
			}
			else {
				strength451 = strength451 + squad451[i];
			}
		}
		else{
			strength451 = strength451 + squad451[i];
		}
		if (reserves532lib.length>0){
			sub = reserves532lib[0];
			if(squad532lib[i]==0){
				squad532lib[i] = reserves532lib.shift();
				strength532lib = strength532lib + squad532lib[i];
			}
			else if (squad532lib[i] < sub) {
				reserves532lib.push(squad532lib[i]/2);
				reserves532lib.sort().reverse();
				squad532lib[i] = reserves532lib.shift();
				strength532lib = strength532lib + squad532lib[i];
			}
			else {
				strength532lib = strength532lib + squad532lib[i];
			}
		}
		else{
			strength532lib = strength532lib + squad532lib[i];
		}
		if (reserves541.length>0){
			sub = reserves541[0];
			if(squad541[i]==0){
				squad541[i] = reserves541.shift();
				strength541 = strength541 + squad541[i];
			}
			else if (squad541[i] < sub) {
				reserves541.push(squad541[i]/2);
				reserves541.sort().reverse();
				squad541[i] = reserves541.shift();
				strength541 = strength541 + squad541[i];
			}
			else {
				strength541 = strength541 + squad541[i];
			}
		}
		else{
			strength541 = strength541 + squad541[i];
		}
		if (reserves352.length>0){
			sub = reserves352[0];
			if(squad352[i]==0){
				squad352[i] = reserves352.shift();
				strength352 = strength352 + squad352[i];
			}
			else if (squad352[i] < sub) {
				reserves352.push(squad352[i]/2);
				reserves352.sort().reverse();
				squad352[i] = reserves352.shift();
				strength352 = strength352 + squad352[i];
			}
			else {
				strength352 = strength352 + squad352[i];
			}
		}
		else{
			strength352 = strength352 + squad352[i];
		}
		if (reserves532vs.length>0){
			sub = reserves532vs[0];
			if(squad532vs[i]==0){
				squad532vs[i] = reserves532vs.shift();
				strength532vs = strength532vs + squad532vs[i];
			}
			else if (squad532vs[i] < sub) {
				reserves532vs.push(squad532vs[i]/2);
				reserves532vs.sort().reverse();
				squad532vs[i] = reserves532vs.shift();
				strength532vs = strength532vs + squad532vs[i];
			}
			else {
				strength532vs = strength532vs + squad532vs[i];
			}
		}
		else{
			strength532vs = strength532vs + squad532vs[i];
		}
	}
	//uncomment for debugging and get a popup with best strength for each formation
	//alert("433: " + strength433 + "\n442: " + strength442 + "\n343: " + strength343 + "\n451: " + strength451 + "\n532lib: " + strength532lib + "\n541: " + strength541 + "\n352: " + strength352 + "\n532vs: " + strength532vs);
	
	// step 6: return the maximum value of all formations
	return Math.max(strength433, strength442, strength343, strength451, strength532lib, strength541, strength352, strength532vs);
}

// parses through all players and fills the squads for all/friendly/funcup with position and strength
function fillSquadArrays(table){
	var total = table.getElementsByTagName("tr").length;
	var fcount = 0; //friendly squad player count
	var fccount = 0; //funcup squad player count
	var allcount = 0; // all player count
	for (var i=1; i<total; i++){
		allPlayersArray[allcount] = new Array(2);
		presenticonf = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[1].getElementsByTagName("img")[0];
		//is friedlyicon present?
		presenticonfc = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[3+wpOffset].getElementsByTagName("img")[0];
		//is funcupicon present?
		allPlayersArray[allcount][0] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[4+wpOffset].firstChild.data; //position
		allPlayersArray[allcount][1] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[8+wpOffset].getElementsByTagName("b")[0].firstChild.data; //strength
		allcount++;
		if(presenticonf != null){
			var icon = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[1].getElementsByTagName("img")[0].src;
			if (icon != injuredImage && icon != suspendedImage1 && icon != suspendedImage2 && icon != suspendedImage3 && icon != suspendedImage4 && icon != suspendedImage5){
				//put only into friendly squad if the player is not injured or is not eligible to play
				friendlyPlayersArray[fcount] = new Array(2);
				friendlyPlayersArray[fcount][0] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[4+wpOffset].firstChild.data; //position
				friendlyPlayersArray[fcount][1] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[8+wpOffset].getElementsByTagName("b")[0].firstChild.data; //strength
				fcount++;
			}
		}
		else{
			//if no icon is present the player is eligible to play
			friendlyPlayersArray[fcount] = new Array(2);
			friendlyPlayersArray[fcount][0] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[4+wpOffset].firstChild.data; //position
			friendlyPlayersArray[fcount][1] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[8+wpOffset].getElementsByTagName("b")[0].firstChild.data; //strength
			fcount++;
		}
		if(presenticonfc != null){
			var icon2 = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[3+wpOffset].getElementsByTagName("img")[0].src;
			if (icon2 != injuredImage && icon2 != suspendedImage1 && icon2 != suspendedImage2 && icon2 != suspendedImage3 && icon2 != suspendedImage4 && icon2 != suspendedImage5){
				//put only into funcup squad if the player is not injured or is not eligible to play
				fcPlayersArray[fccount] = new Array(2);
				fcPlayersArray[fccount][0] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[4+wpOffset].firstChild.data; //position
				fcPlayersArray[fccount][1] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[8+wpOffset].getElementsByTagName("b")[0].firstChild.data; //strength
				fccount++;
			}
		}
		else{
			//if no icon is present the player is eligible to play
			fcPlayersArray[fccount] = new Array(2);
			fcPlayersArray[fccount][0] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[4+wpOffset].firstChild.data; //position
			fcPlayersArray[fccount][1] = table.getElementsByTagName("tr")[i].getElementsByTagName("td")[8+wpOffset].getElementsByTagName("b")[0].firstChild.data; //strength
			fccount++;
		}
	}
}

// only active on the kader page
if (location.pathname == "/vereinsseite/kader/vereinsseite_kader.php") {
	var teamname = document.getElementsByTagName("p")[0].firstChild.data.substring(10);
	var origelem = document.getElementsByTagName("p")[0];
	var teamtable = document.getElementsByTagName("tbody")[2];
	if (teamtable.getElementsByTagName("tr")[0].getElementsByTagName("td")[3].getElementsByTagName("a")[0].firstChild.data == "Wp"){
		// Weltpokal offset
		wpOffset = 1;
	}
	countPlayers(teamtable);
	fillSquadArrays(teamtable);
	maxStrength = calculateStrength(allPlayersArray);
	//if squads are of equal length, the strength don't need to recalculated
	if(allPlayersArray.length == friendlyPlayersArray.length){
		friendlyStrength = maxStrength;
	}
	else{
		friendlyStrength = calculateStrength(friendlyPlayersArray);
	}
	if(allPlayersArray.length == fcPlayersArray.length){
		funcupStrength = maxStrength;
	}
	else{
		funcupStrength = calculateStrength(fcPlayersArray);
	}
	//generate the infoPanel
	var infoPanel = document.createElement("span");
	var origtext = document.createTextNode(origelem.firstChild.data);
	var collectorTextStart = document.createTextNode("  (Maximalstärke  ");
	var maximumStrength = document.createTextNode(maxStrength);
	//var maximumStrength = document.createTextNode(friendlyStrength);
	//var maximumStrength = document.createTextNode(funcupStrength);
	var collectorTextEnd = document.createTextNode(")");
	infoPanel.appendChild(origtext);
	//add old text to infoPanel
	infoPanel.appendChild(collectorTextStart);
	infoPanel.appendChild(maximumStrength);
	infoPanel.appendChild(collectorTextEnd);
	origelem.removeChild(origelem.firstChild);
	origelem.appendChild(infoPanel);
	//remove old text and append infoPanel
}