krisztiantobias / Pmanager.org AT and GS counter

// ==UserScript==
// @name          Pmanager.org AT and GS counter
// @namespace     http://tampermonkey.net/
// @description	  Work with ONLY Hungarian language
// @include       https://www.pmanager.org/titulares.asp*
// @include       https://pmanager.org/titulares.asp*
// @version       2.1.3
// @license       MIT
// @grant         none
// ==/UserScript==

let $ = window.$;
	
const MAIN_PERC = 0.61, SECOND_PERC = 0.2, OTHER_PERC = 0.03, PHY_PERC = 0.15;
const MAX_SKILL = 20;
const SKILL = {
	SPOS:  0,
	RPOS:  1,
	NAME:  2,
	FIT:   3,
	HAN:   4,
	CRO:   5,
	REF:   6,
	AGI:   7,
	TCK:   8,
	HEA:   9,
	PAS:  10,
	POS:  11,
	FIN:  12,
	TEC:  13,
	SPE:  14,
	STR:  15,
	FORM: 16,
	EXP:  17,
	ID:   18,
	MAX:  19
};
const START_PLAYER_COUNT = 11;
let only_second_time = 0;

var loaded = false;
function start()
{
	if(loaded)
		return;
	loaded = true;
	$("tr").click(function()
	{
		if(($(this).html()).substring(6,27) == "<td class=\"titulares\"" || ($(this).html()).substring(6,21) == "<td class=\"drs\"" )
		{
			if(only_second_time == 1)
			{
				only_second_time = 0;
				starter_data();
				subs_data();
				count_gs(1);
			}
			else only_second_time = 1;
		}
	});

	$("td[height=\"22\"]").eq(16).after("<td align=\"center\" height=\"22\" width=\"3%\" title=\"Fitnesz - Forma - Tapasztalat\" alapjan Csokkentett GS\"><b>GS</b></td>");
	$("td[height=\"22\"]").eq(34).after("<td align=\"center\" height=\"22\" width=\"3%\" title=\"Fitnesz - Forma - Tapasztalat\" alapjan Csokkentett GS\"><b>GS</b></td>");

	starter_data();
	subs_data();
	count_gs(0);
}


$(window).load(function(){ start(); });

// workaround for $(window).load(function()
function myTimer()
{
	const starting_eleven = $("table#titulares");
	if (starting_eleven.size () > 0 && starting_eleven.first().text().length > 0)
	{
		start();
		console.log("The page is loaded, try to load the script!");
		clearInterval(timer);
	}
}
var timer = setInterval(myTimer, 500);


let i,j = 0;
const starter = new Array();
const subs = new Array();

//starter
function starter_data()
{
	for (i=0; i<START_PLAYER_COUNT; i++)
	{
		starter[i] = new Array(SKILL.MAX);
		for (j=0; j<SKILL.FORM; j++)
		{
			if(j==SKILL.FIT)
			{
				starter[i][j] = parseInt(($("tr[onclick=\"clicked("+i+","+i+")\"]").find("div").eq(j).text()).substring(0,3));
			}
			else if(j>SKILL.FIT)
			{
				starter[i][j] = parseInt($("tr[onclick=\"clicked("+i+","+i+")\"]").find("div").eq(j).text());
			}
			else if(j==SKILL.RPOS)
			{
				const segito = $("tr[onclick=\"clicked("+i+","+i+")\"]").find("div").eq(j).text();
				starter[i][j] = segito.substr(segito.indexOf(" ") + 1,segito.length);
			}
			else
			{
				starter[i][j] = $("tr[onclick=\"clicked("+i+","+i+")\"]").find("div").eq(j).text();
			}
		}
		const href = $("tr[onclick=\"clicked("+i+","+i+")\"]").find("a").eq(0).attr("href");
		const href_eq = href.indexOf("=");
		starter[i][SKILL.ID] = parseInt(href.substr(href_eq + 1, href.length - href_eq - 1));
	}
}
//subs
let player_count;

function subs_data()
{
	let bool=0;
	i=START_PLAYER_COUNT;
	while(i<50 && bool==0)
	{
		if( $("tr[onclick=\"clicked("+i+","+(i+2)+")\"]").find("div").eq(1).text() == "")
		{
			bool = 1;
		}
		else
		{
			subs[i-START_PLAYER_COUNT] = new Array(SKILL.MAX);
			subs[i-START_PLAYER_COUNT][SKILL.SPOS] = 0;
			for (j=0; j+1 < SKILL.FORM; j++)
			{
				if(j==SKILL.FIT-1)
				{
					subs[i-START_PLAYER_COUNT][j+1] = parseInt(($("tr[onclick=\"clicked("+i+","+(i+2)+")\"]").find("div").eq(j).text()).substring(0,3));
				}
				else if(j>SKILL.FIT-1)
				{
					subs[i-START_PLAYER_COUNT][j+1] = parseInt($("tr[onclick=\"clicked("+i+","+(i+2)+")\"]").find("div").eq(j).text());
				}
				else
				{
					subs[i-START_PLAYER_COUNT][j+1] = $("tr[onclick=\"clicked("+i+","+(i+2)+")\"]").find("div").eq(j).text();
				}
			}
			const href = $("tr[onclick=\"clicked("+i+","+(i+2)+")\"]").find("a").eq(0).attr("href");
			const href_eq = href.indexOf("=");
			subs[i-START_PLAYER_COUNT][SKILL.ID] = parseInt(href.substr(href_eq + 1, href.length - href_eq - 1));
			++i;
		}
	}
	player_count = i;
}

function count_gs(reloaded)
{
	$.get( "https://www.pmanager.org/plantel.asp?equipa=2&filtro=4", function( data )
	{
		const t_body = $(data).find("tbody").eq(2);
		const all_tr = t_body.find("tr");
		// fill form and exp, first tr is the heading
		for (i = 1; i < all_tr.size(); ++i)
		{
			const actual_tds = all_tr.eq(i).find("td");
			const href = actual_tds.eq(2).find("a").attr("href");
			const href_eq = href.indexOf("=");
			const id = parseInt(href.substr(href_eq + 1, href.length - href_eq - 1));
			const exp = get_Tapasztalat(actual_tds.eq(6).text().trim());
			const form = get_Forma(actual_tds.eq(8).text().trim());
			let isFound = false;
			for(j = 0; j < starter.length && !isFound; ++j)
			{
				if (starter[j][SKILL.ID] == id)
				{
					starter[j][SKILL.FORM] = form;
					starter[j][SKILL.EXP] = exp;
					isFound = true;
				}
			}
			for(j = 0; j < subs.length && !isFound; ++j)
			{
				if (subs[j][SKILL.ID] == id)
				{
					subs[j][SKILL.FORM] = form;
					subs[j][SKILL.EXP] = exp;
					isFound = true;
				}
			}
		}
		starter_gs(reloaded);
		subs_gs(reloaded);
		tactic_KIIRATAS(reloaded);
		check_other_options(reloaded);
	});
}

function get_Forma(frm)
{
	if(frm.substring(0,1) != "N")
	{
		frm = frm.substr(0,1);
	}
	else
	{
		frm = frm.substr(0,8);
	}
	frm = $.trim(frm);

	if(frm == "C") return 0;
	else if(frm == "Nagyon g") return 1;
	else if(frm == "Á") return 2;
	else if(frm == "J") return 3;
	else if(frm == "Nagyon j") return 4;
	else return -1;
}

function get_Tapasztalat(tap)
{
	if(tap.substring(0,1) != "N")
	{
		tap = tap.substr(0,1);
	}
	else
	{
		tap = tap.substr(0,8);
	}
	tap = $.trim(tap);

	if(tap == "P") return 0;
	else if(tap == "C") return 1;
	else if(tap == "Nagyon g") return 2;
	else if(tap == "G") return 3;
	else if(tap == "M") return 4;
	else if(tap == "J") return 5;
	else if(tap == "Nagyon j") return 6;
	else if(tap == "R") return 7;
	else if(tap == "Nagyszer") return 8;
	else if(tap == "V") return 9;
	else return -1;
}

//**************************************************************
// GS SZAMITAS
//**************************************************************

//starter
let starter_v, starter_k, starter_t;
starter_v = starter_k = starter_t = 0;

function starter_gs(reloaded)
{
	for (i=0; i<START_PLAYER_COUNT; i++)
	{
		let var_main = 0;
		let var_sec = 0;
		let var_oth = 0;
		let var_phy = 0;
		// because of it's contains the current position
		if(starter[i][SKILL.SPOS] . substring(starter[i][SKILL.SPOS].length -1 , starter[i][SKILL.SPOS].length) == "K")
		{
			var_main = (starter[i][SKILL.HAN] + starter[i][SKILL.CRO]) / (MAX_SKILL * 2) * MAIN_PERC;
			var_sec = (starter[i][SKILL.REF] + starter[i][SKILL.AGI]) / (MAX_SKILL * 2) * SECOND_PERC;
			var_oth = (starter[i][SKILL.TCK] + starter[i][SKILL.HEA] + starter[i][SKILL.PAS] + starter[i][SKILL.POS] + starter[i][SKILL.FIN] + starter[i][SKILL.TEC]) / (MAX_SKILL * 6) * OTHER_PERC;
			var_phy = (starter[i][SKILL.SPE] + starter[i][SKILL.STR]) / (MAX_SKILL * 2) * PHY_PERC;
		}
		else if(starter[i][SKILL.SPOS] . substring(starter[i][SKILL.SPOS].length -1 , starter[i][SKILL.SPOS].length) == "V")
		{
			var_main = (starter[i][SKILL.TCK] + starter[i][SKILL.HEA]) / (MAX_SKILL * 2) * MAIN_PERC;
			var_sec = (starter[i][SKILL.PAS] + starter[i][SKILL.POS]) / (MAX_SKILL * 2) * SECOND_PERC;
			var_oth = (starter[i][SKILL.FIN] + starter[i][SKILL.TEC] + starter[i][SKILL.HAN] + starter[i][SKILL.CRO] + starter[i][SKILL.REF] + starter[i][SKILL.AGI]) / (MAX_SKILL * 6) * OTHER_PERC;
			var_phy = (starter[i][SKILL.SPE] + starter[i][SKILL.STR]) / (MAX_SKILL * 2) * PHY_PERC;
			if(reloaded == 0) starter_v = starter_v+1;
		}
		else if(starter[i][SKILL.SPOS] . substring(starter[i][SKILL.SPOS].length -1 , starter[i][SKILL.SPOS].length) == "P")
		{
			var_main = (starter[i][SKILL.PAS] + starter[i][SKILL.POS]) / (MAX_SKILL * 2) * MAIN_PERC;
			var_sec = (starter[i][SKILL.TCK] + starter[i][SKILL.TEC]) / (MAX_SKILL * 2) * SECOND_PERC;
			var_oth = (starter[i][SKILL.HEA] + starter[i][SKILL.FIN] + starter[i][SKILL.HAN] + starter[i][SKILL.CRO] + starter[i][SKILL.REF] + starter[i][SKILL.AGI]) / (MAX_SKILL * 6) * OTHER_PERC;
			var_phy = (starter[i][SKILL.SPE] + starter[i][SKILL.STR]) / (MAX_SKILL * 2) * PHY_PERC;
			if(reloaded == 0) starter_k = starter_k+1;
		}
		else if(starter[i][SKILL.SPOS] . substring(starter[i][SKILL.SPOS].length -1 , starter[i][SKILL.SPOS].length) == "S" || starter[i][SKILL.SPOS] . substring(starter[i][SKILL.SPOS].length -1 , starter[i][SKILL.SPOS].length) == "T")
		{
			var_main = (starter[i][SKILL.FIN] + starter[i][SKILL.TEC]) / (MAX_SKILL * 2) * MAIN_PERC;
			var_sec = (starter[i][SKILL.HEA] + starter[i][SKILL.POS]) / (MAX_SKILL * 2) * SECOND_PERC;
			var_oth = (starter[i][SKILL.TCK] + starter[i][SKILL.PAS] + starter[i][SKILL.HAN] + starter[i][SKILL.CRO] + starter[i][SKILL.REF] + starter[i][SKILL.AGI]) / (MAX_SKILL * 6) * OTHER_PERC;
			var_phy = (starter[i][SKILL.SPE] + starter[i][SKILL.STR]) / (MAX_SKILL * 2) * PHY_PERC;
			if(reloaded == 0) starter_t = starter_t+1;
		}

		let global_skill = var_main+var_sec+var_oth+var_phy;

		//oldal csokkentes
		if(i>0)
		{
			const segito = (starter[i][SKILL.SPOS]).substr(0,1);
			if(starter[i][SKILL.RPOS].indexOf(segito) == -1) global_skill = global_skill * 0.95;
		}

		const var_all = Math.round(get_MGS(Math.round((global_skill)*1000)/10, starter[i][SKILL.FORM], starter[i][SKILL.EXP], starter[i][SKILL.FIT])*10)/10;
		if(reloaded == 0) $("tr[onclick=\"clicked("+i+","+i+")\"]").find("td").eq(16).after(
			"<td><div style=\"color:white; background-color:black;\" align=\"center\" title=\"Fitnesz - Forma - Tapasztalat\" alapjan Csokkentett GS\">&nbsp;"
			+ var_all
			+ "&nbsp;</div></td>");
		else  $("tr[onclick=\"clicked("+i+","+i+")\"]").find("td").eq(17).html(
			"<td><div style=\"color:white; background-color:black;\" align=\"center\" title=\"Fitnesz - Forma - Tapasztalat\" alapjan Csokkentett GS\">&nbsp;"
			+ var_all
			+ "&nbsp;</div></td>");
	}
}

function subs_gs(reloaded)
{
	for (i=0; i<(player_count-START_PLAYER_COUNT); i++)
	{
		let var_main = 0;
		let var_sec = 0;
		let var_oth = 0;
		let var_phy = 0;
		if(subs[i][SKILL.RPOS] . substring(0,1) == "G")
		{
			var_main = (subs[i][SKILL.HAN] + subs[i][SKILL.CRO]) / (MAX_SKILL * 2) * MAIN_PERC;
			var_sec = (subs[i][SKILL.REF] + subs[i][SKILL.AGI]) / (MAX_SKILL * 2) * SECOND_PERC;
			var_oth = (subs[i][SKILL.TCK] + subs[i][SKILL.HEA] + subs[i][SKILL.PAS] + subs[i][SKILL.POS] + subs[i][SKILL.FIN] + subs[i][SKILL.TEC]) / (MAX_SKILL * 6) * OTHER_PERC;
			var_phy = (subs[i][SKILL.SPE] + subs[i][SKILL.STR]) / (MAX_SKILL * 2) * PHY_PERC;
		}
		else if(subs[i][SKILL.RPOS] . substring(0,1) == "V")
		{
			var_main = (subs[i][SKILL.TCK] + subs[i][SKILL.HEA]) / (MAX_SKILL * 2) * MAIN_PERC;
			var_sec = (subs[i][SKILL.PAS] + subs[i][SKILL.POS]) / (MAX_SKILL * 2) * SECOND_PERC;
			var_oth = (subs[i][SKILL.FIN] + subs[i][SKILL.TEC] + subs[i][SKILL.HAN] + subs[i][SKILL.CRO] + subs[i][SKILL.REF] + subs[i][SKILL.AGI]) / (MAX_SKILL * 6) * OTHER_PERC;
			var_phy = (subs[i][SKILL.SPE] + subs[i][SKILL.STR]) / (MAX_SKILL * 2) * PHY_PERC;
		}
		else if(subs[i][SKILL.RPOS] . substring(0,1) == "K")
		{
			var_main = (subs[i][SKILL.PAS] + subs[i][SKILL.POS]) / (MAX_SKILL * 2) * MAIN_PERC;
			var_sec = (subs[i][SKILL.TCK] + subs[i][SKILL.TEC]) / (MAX_SKILL * 2) * SECOND_PERC;
			var_oth = (subs[i][SKILL.HEA] + subs[i][SKILL.FIN] + subs[i][SKILL.HAN] + subs[i][SKILL.CRO] + subs[i][SKILL.REF] + subs[i][SKILL.AGI]) / (MAX_SKILL * 6) * OTHER_PERC;
			var_phy = (subs[i][SKILL.SPE] + subs[i][SKILL.STR]) / (MAX_SKILL * 2) * PHY_PERC;
		}
		else if(subs[i][SKILL.RPOS] . substring(0,1) == "T")
		{
			var_main = (subs[i][SKILL.FIN] + subs[i][SKILL.TEC]) / (MAX_SKILL * 2) * MAIN_PERC;
			var_sec = (subs[i][SKILL.HEA] + subs[i][SKILL.POS]) / (MAX_SKILL * 2) * SECOND_PERC;
			var_oth = (subs[i][SKILL.TCK] + subs[i][SKILL.PAS] + subs[i][SKILL.HAN] + subs[i][SKILL.CRO] + subs[i][SKILL.REF] + subs[i][SKILL.AGI]) / (MAX_SKILL * 6) * OTHER_PERC;
			var_phy = (subs[i][SKILL.SPE] + subs[i][SKILL.STR]) / (MAX_SKILL * 2) * PHY_PERC;
		}
		const var_all = Math.round(get_MGS(Math.round((var_main+var_sec+var_oth+var_phy)*1000)/10, subs[i][SKILL.FORM], subs[i][SKILL.EXP], subs[i][SKILL.FIT])*10)/10;
		if(reloaded == 0) $("tr[onclick=\"clicked("+(i+START_PLAYER_COUNT)+","+(i+13)+")\"]").find("td").eq(16).after(
			"<td><div style=\"color:white; background-color:black;\" align=\"center\" title=\"Fitnesz - Forma - Tapasztalat\" alapjan Csokkentett GS\">&nbsp;"
			+ var_all
			+ "&nbsp;</div></td>");
		else $("tr[onclick=\"clicked("+(i+START_PLAYER_COUNT)+","+(i+13)+")\"]").find("td").eq(17).html(
			"<td><div style=\"color:white; background-color:black;\" align=\"center\" title=\"Fitnesz - Forma - Tapasztalat\" alapjan Csokkentett GS\">&nbsp;"
			+ var_all
			+ "&nbsp;</div></td>");
	}
}

function get_MGS(gs,forma,tapasztalat,fitness)
{
	let b,c,d,e,f;
	b = gs*(1+(forma - 2)*0.1)/100;
	c = 1+(tapasztalat-1)*0.02/3*2;
	d = 1+2*0.1;
	e = b*c/d;
	f = 1+6*0.02;
	return (e/f*fitness*1.012);
}

//**************************************************************
// GS SZAMITAS
//**************************************************************
////////////////////////////////////////////////////////////////
//**************************************************************
// SPECIALIS tactics
//**************************************************************

let help_var;
function roundToDec(value, dec)
{
	help_var = Math.pow(10, dec);
	return Math.round(value * help_var) / help_var;
}

function teljes_gyo()
{
	help_var=0;
	for (i=0; i<START_PLAYER_COUNT; i++) help_var += starter[i][SKILL.SPE];
	return help_var;
}

function teljes_ero()
{
	help_var=0;
	for (i=0; i<START_PLAYER_COUNT; i++)
		help_var += starter[i][SKILL.STR];
	return help_var;
}

function teljes_pas()
{
	help_var=0;
	for (i=0; i<START_PLAYER_COUNT; i++)
		help_var += starter[i][SKILL.PAS];
	return help_var;
}

function teljes_fej()
{
	help_var=0;
	for (i=0; i<START_PLAYER_COUNT; i++)
		help_var += starter[i][SKILL.HEA];
	return help_var;
}

function teljes_szer()
{
	help_var=0;
	for (i=0; i<START_PLAYER_COUNT; i++)
		help_var += starter[i][SKILL.TCK];
	return help_var;
}

//FOR ATs
function les_gyo()
{
	help_var=0;
	for (i=1; i<starter_v+1; i++)
		help_var += starter[i][SKILL.SPE];
	return roundToDec(help_var/starter_v, 2);
}
function les_gyo_ved()
{
	help_var=0;
	for (i=starter_v+starter_k+1; i<START_PLAYER_COUNT; i++)
		help_var += starter[i][SKILL.SPE];
	return roundToDec(help_var/starter_t, 2);
}
function les_hel()
{
	help_var=0;
	for (i=1; i<starter_v+1; i++)
		help_var += starter[i][SKILL.POS];
	return roundToDec(help_var/starter_v, 2);
}
function les_hel_ved()
{
	help_var=0;
	for (i=starter_v+starter_k+1; i<START_PLAYER_COUNT; i++)
		help_var += starter[i][SKILL.POS];
	return roundToDec(help_var/starter_t, 2);
}
//les

//1on1
function egy_on_egy()
{
	help_var=0;
	for (i=starter_v+1; i<START_PLAYER_COUNT; i++)
		help_var += (starter[i][SKILL.STR] + starter[i][SKILL.TEC]) / 2;
	return roundToDec(help_var/(starter_k+starter_t), 2);
}
function egy_on_egy_ved()
{
	help_var=0;
	for (i=1; i<starter_v+starter_k+1; i++)
		help_var += (starter[i][SKILL.STR] + starter[i][SKILL.TCK]) / 2;
	return roundToDec(help_var/(starter_v+starter_k), 2);
}
//1on1

//kapus
function gk_kifut()
{
	help_var=0;
	help_var += (starter[0][SKILL.CRO] + starter[0][SKILL.AGI]) / 2;
	return roundToDec(help_var, 2);
}
function gk_kifut_ved()
{
	help_var=0;
	for (i=starter_v+starter_k+1; i<START_PLAYER_COUNT; i++)
		help_var += (starter[i][SKILL.HEA] + starter[i][SKILL.TEC]) / 2;
	return roundToDec(help_var/starter_t, 2);
}
function gk_vonal()
{
	help_var=0;
	help_var += (starter[0][SKILL.HAN] + starter[0][SKILL.REF]) / 2;
	return roundToDec(help_var, 2);
}
function gk_vonal_ved()
{
	help_var=0;
	for (i=starter_v+starter_k+1; i<START_PLAYER_COUNT; i++)
		help_var += (starter[i][SKILL.HEA] + starter[i][SKILL.FIN]) / 2;
	return roundToDec(help_var/starter_t, 2);
}
//kapus

//vedekezes
function mrk_ember()
{
	help_var=0;
	for (i=1; i<starter_v+starter_k+1; i++)
		help_var += (starter[i][SKILL.TCK] + starter[i][SKILL.STR]) / 2;
	return roundToDec(help_var/(starter_v+starter_k), 2);
}
function mrk_ember_ved()
{
	help_var=0;
	for (i=1+starter_v; i<START_PLAYER_COUNT; i++)
		help_var += (starter[i][SKILL.POS] + starter[i][SKILL.STR]) / 2;
	return roundToDec(help_var/(starter_k+starter_t), 2);
}
function mrk_terul()
{
	help_var=0;
	for (i=1; i<starter_v+starter_k+1; i++)
		help_var += (starter[i][SKILL.TCK] + starter[i][SKILL.SPE]) / 2;
	return roundToDec(help_var/(starter_v+starter_k), 2);
}
function mrk_terul_ved()
{
	help_var=0;
	for (i=1+starter_v; i<START_PLAYER_COUNT; i++)
		help_var += (starter[i][SKILL.POS] + starter[i][SKILL.SPE]) / 2;
	return roundToDec(help_var/(starter_k+starter_t), 2);
}
//vedekezes

//tavoli
function tavoli()
{
	help_var=0;
	for (i=1+starter_v; i<START_PLAYER_COUNT; i++)
		help_var += (starter[i][SKILL.FIN] + starter[i][SKILL.TEC]) / 2;
	return roundToDec(help_var/(starter_t+starter_k), 2);
}
function tavoli_ved()
{
	help_var = starter[0][SKILL.AGI];
	for (i=1; i<starter_v+1; i++)
		help_var += starter[i][SKILL.POS];
	return roundToDec(help_var / (1 + starter_v), 2);
}
//tavoli

//kapas
function kapas()
{
	help_var=0;
	for (i=1+starter_k+starter_v; i<START_PLAYER_COUNT; i++)
		help_var += (starter[i][SKILL.HEA] + starter[i][SKILL.FIN]) / 2;
	return (starter_t > 2) ? roundToDec(help_var/starter_t, 2) : "Minimum 3 csatar kell";
}
function kapas_ved()
{
	help_var=starter[0][SKILL.REF];
	for (i=1; i<starter_v+1; i++)
		help_var += starter[i][SKILL.HEA];
	return roundToDec(help_var / (1 + starter_v), 2);
}
//kapas

//kiiratas
let restore_point_html;
function tactic_KIIRATAS(reloaded)
{
	const my_tbody = $("tbody").eq(6);
	if (reloaded == 0)
		restore_point_html = my_tbody.html();
	else
		my_tbody.html(restore_point_html);

	let helperStr = "";
	let color_green, color_red;
	color_green = "style=\"color:#393;\"";
	color_red   = "style=\"color:#933;\"";
	const commentarios = my_tbody.find("div.comentarios");
	// reversed order
	helperStr = "<div class=\"comentarios\" align=\"center\"><font ";
	const kapasRet = kapas();
	if ( (commentarios.eq(9).text()).substr(0,12) == "Jelenleg nem")
	{
		helperStr += color_red;
	}
	else
	{
		if (typeof kapasRet === "string")
			alert("Kapaslövés engedélyezve, pedig nincs 3 csatár!");
		helperStr += (typeof ret === "string" ? color_red : color_green);
	}
	helperStr += "><b><u>Kapáslövés:</u> "+kapasRet+"</b></font> / <b> "+ kapas_ved() + "</b></div>";
	commentarios.eq(9).html(helperStr);

	helperStr = "<div class=\"comentarios\" align=\"center\"><font ";
	helperStr += ((commentarios.eq(8).text()).substr(0,8) == "Most nem") ? color_red : color_green;
	helperStr += "><b><u>Tavoli lovesek:</u> "+tavoli()+"</b></font> / <b> "+ tavoli_ved() + "</b></div>";
	commentarios.eq(8).html(helperStr);

	let color_teruconst = color_red, color_ember = color_red;
	helperStr = "<div class=\"comentarios\" align=\"center\">";
	if ( ((commentarios.eq(7).text()).substr(START_PLAYER_COUNT,5)).toLowerCase() == "ember" ||
		((commentarios.eq(7).text()).substr(0,5)).toLowerCase() == "ember")
	{
		color_ember = color_green;
	}
	else if ((commentarios.eq(7).text()).substr(0,3) != "Nem")
	{
		color_teruconst = color_green;
	}
	helperStr += "<font "+ color_ember +"><b><u>Ember:</u> "+mrk_ember()+"</font></b> / <b>"+ mrk_ember_ved() +"</b> | "
		+ "<font "+ color_teruconst +"><b><u>Terület:</u> "+mrk_terul()+"</font></b> / <b>"+ mrk_terul_ved() +"</b></div>";
	commentarios.eq(7).html(helperStr);

	helperStr = "<div class=\"comentarios\" align=\"center\">";
	let color_vonal = color_red, color_kifut = color_red;
	if ( (commentarios.eq(6).text()).substr(10,3) == "véd" || (commentarios.eq(6).text()).substr(0,3) == "Kif")
	{
		color_kifut = color_green;
	}
	else if( (commentarios.eq(6).text()).substr(0,3) != "Nem")
	{
		color_vonal = color_green;
	}
	helperStr += "<font "+ color_vonal +"><b><u>Vonalon:</u> "+gk_vonal()+"</font></b> / <b>"+ gk_vonal_ved() +"</b> | "
		+ "<font "+ color_kifut +"><b><u>Kifutas:</u> "+gk_kifut()+"</font></b> / <b>"+ gk_kifut_ved() +"</b></div>";
	commentarios.eq(6).html(helperStr);

	helperStr = "<div class=\"comentarios\" align=\"center\"><font ";
	helperStr += ((commentarios.eq(5).text()).substr(0,3) == "Nem") ? color_red : color_green;
	helperStr += "><b><u>Egy-az-Egyben:</u> "+egy_on_egy()+"</b></font> / <b><u></u> "+ egy_on_egy_ved() + "</b></div>";
	commentarios.eq(5).html(helperStr);

	let color = ((commentarios.eq(4).text()).substr(0,3) == "Nem") ? color_red : color_green;
	helperStr = "<div class=\"comentarios\" align=\"center\"><font "+ color;
	helperStr += "><b><u>Magas Labdak:</u></b> Fejjatek: </font><b>"+teljes_fej()+"</b><font "+ color +"> | ";
	helperStr += "Ero: </font><b>"+teljes_ero()+"</b></div>";
	commentarios.eq(4).html(helperStr);

	helperStr = "<div class=\"comentarios\" align=\"center\"><font ";
	if ( (commentarios.eq(3).text()).substr(0,6) == "Kemeny" || (commentarios.eq(3).text()).substr(0,6) == "Kemény")
	{
		helperStr += color_red+"><b>Kemeny";
	}
	else if ( (commentarios.eq(3).text()).substr(0,7) == "Konnyed" || (commentarios.eq(3).text()).substr(0,7) == "Könnyed")
	{
		helperStr += color_green+"><b>Konnyed";
	}
	helperStr += "</b> szerelesi stilussal fogsz jatszani</font></div>";
	commentarios.eq(3).html(helperStr);

	color = ((commentarios.eq(2).text()).substr(0,3) == "Nem") ? color_red : color_green;
	helperStr = "<div class=\"comentarios\" align=\"center\"><font "+ color +"><b><u>Ellentamadas:</u></b>";
	helperStr += " Gyorsasag: </font><b>"+teljes_gyo()+"</b><font "+ color +"> | Passz: </font><b>"+teljes_pas()+"</b><font "+ color +"> | </font><b>Felallas</b></div>";
	commentarios.eq(2).html(helperStr);

	helperStr = "<div class=\"comentarios\" align=\"center\"><b><font ";
	if ( (commentarios.eq(1).text()).substr(0,6) == "Gyenge")
	{
		helperStr += color_green + "><u>Gyenge:</u> </b>";
		helperStr += "Gyorsasag: </font><b>"+teljes_gyo()+"</b><font "+ color_green +"> | Szereles: </font><b>"+teljes_szer()+"</b> | Passz: <b>"+teljes_pas()+"</b></div>";
	}
	else if ( (commentarios.eq(1).text()).substr(0,6) == "Teljes")
	{
		helperStr += color_green + "><u>Teljes:</u> </b>";
		helperStr += " Gyorsasag: </font><b>"+teljes_gyo()+"</b> | Szereles: <b>"+teljes_szer()+"</b><font "+ color_green +"> | Passz: </font><b>"+teljes_pas()+"</b></div>";
	}
	else
	{
		helperStr += color_red + "><u>Nincs:</u> </font></b>";
		helperStr += "Gyorsasag: <b>"+teljes_gyo()+"</b> | Szereles: <b>"+teljes_szer()+"</b> | Passz: <b>"+teljes_pas()+"</b></div>";
	}
	commentarios.eq(1).html(helperStr);

	color = ((commentarios.eq(0).text()).substr(0,3) == "Nem") ? color_red : color_green;
	helperStr = "<div class=\"comentarios\" align=\"center\">"
		+ "<font " + color +"><b><u>Lestaktika:</u></b> Gyor: <b>"+les_gyo()+"</b></font> / <b><u></u> "+ les_gyo_ved() + "</b>"
		+ "<font " + color +"> | Hely: <b>"+les_hel()+"</b></font> / <b><u></u> "+ les_hel_ved() + "</b></div>";
	commentarios.eq(0).html(helperStr);
	my_tbody.find("td").eq(0).text("Csapat előírások (A fekete színnel jelzett részek védekező taktikáknál számítanak)");
}

function check_other_options(reloaded)
{
	// attack side
	let warning = "";
	let left, center, right;
	left = center = right = 0;
	for (i=1+starter_v; i<START_PLAYER_COUNT - starter_t; i++)
	{
		const p_side = starter[i][SKILL.SPOS].substr(0,1);
		if (p_side === "B")
			++left;
		if (p_side === "K")
			++center;
		if (p_side === "J")
			++right;
	}

	let str;
	str = $("div.comentarios").eq(20).text();
	if( (str === "Nincs preferált támadó oldal") || // it's not really a valid option
		(str === "Több bal oldali támadás" && left == 0) ||
		(str === "A támadások leginkább középen fussanak" && center == 0) ||
		(str === "Több jobb oldali támadás" && right == 0) ||
		(str === "Többet támad a széleken keresztül" && ( left == 0 || right == 0 )) ||
		(str === "Többet támad a Jobb/Középső oldalon" && ( center == 0 || right == 0 )) ||
		(str === "Többet támad a Bal/Középső oldalon" && ( left == 0 || center == 0 )))
	{
		warning += "Rossz oldal használata! ";
	}

	// lazy warning!
	str = $("div.comentarios").eq(23).text();
	if (str === "A csapat laza játékot fog játszani (PIC)")
	{
		warning += "Laza játék bekapcsolva! ";
	}

	// fitness warning
	let count = 0
	for (let player of starter)
	{
		if (player[SKILL.FIT] < 90)
		{
			++count;
		}
	}
	if (count > 0)
	{
		warning += "Összesen " + count + " játékosnak 90 alatt van a fitnessze! ";
	}
	// print warning if necessary
	if (warning.length > 0)
	{
		$("td.comentarios").first().html("<font style='color:red'>" + warning + "</font>");
	}
}