function port(ruolo, nome, valore)
{
this.ruolo = ruolo;
this.nome = nome;
this.valore = valore;
}

function cent(ruolo, nome, valore)
{
this.ruolo = ruolo;
this.nome = nome;
this.valore = valore;
}

function dife(ruolo, nome, valore)
{
this.ruolo = ruolo;
this.nome = nome;
this.valore = valore;
}

function atta(ruolo, nome, valore)
{
this.ruolo = ruolo;
this.nome = nome;
this.valore = valore;
}

function GeneraTabellaFormazioneCPU()
{
var por,porv,porr,dif,difv,difr,cen,cenv,cenr,att,attv,attr
var contap=0
var contad=0
var contac=0
var contaa=0
portieri = new Array(); 
difensori = new Array(); 
centrocampisti = new Array(); 
attaccanti = new Array(); 

	var g;
	for (g=0; g < arrInvioFormazione.length; g++) {
		var gg = arrInvioFormazione[g];
		if (gg.IDSquadra != cFsq) continue;

		//arrRosa.push(g);

		
		var dati = gg.Dati.split("%");

mvt=0;
fmt=0;		
mvu=0;
fmu=0;
		

		// Ruolo
if (ruoli[gg.Ruolo]=="P"){

		var nomeAvversaria = "---";
		var inTrasferta = false;
		if (gg.IDSquadraDiA < incontraInA.length) {
			var avversaria = incontraInA[gg.IDSquadraDiA][cGio];
			inTrasferta = avversaria >= 100;
			nomeAvversaria = eval("xa" + (avversaria % 100));
		}
if (dati[0]=="---" || dati[0]=="sv/ng"){
dati[0]=0
}
if (dati[2]=="---" || dati[2]=="sv/ng"){
dati[2]=0
}
if (dati[4]=="---" || dati[4]=="sv/ng"){
dati[4]=0
}
if (dati[6]=="---" || dati[6]=="sv/ng"){
dati[6]=0
}

		porr=ruoli[gg.Ruolo]
		por=eval(gg.Nome)
		if (PerCento(gg.NomeCode)==undefined || parseInt(filtro2(filtro(PerCento(gg.NomeCode))))==0){
		porv= -999
		portieri[contap]=new port(porr, por, porv)
		} else if (parseInt(filtro2(filtro(PerCento(gg.NomeCode))))>0 && parseInt(filtro2(filtro(PerCento(gg.NomeCode))))< 50){
		porv= dati[0]*40+dati[2]*50+dati[4]*4+dati[6]*6+(inTrasferta ? 0 : 20)
		portieri[contap]=new port(porr, por, porv)
		} else if (parseInt(filtro2(filtro(PerCento(gg.NomeCode))))>= 50){
		porv= 1000+dati[0]*40+dati[2]*50+dati[4]*4+dati[6]*6+(inTrasferta ? 0 : 20)
		portieri[contap]=new port(porr, por, porv)
		}
		contap++;
}


if (ruoli[gg.Ruolo]=="D"){

		var nomeAvversaria = "---";
		var inTrasferta = false;
		if (gg.IDSquadraDiA < incontraInA.length) {
			var avversaria = incontraInA[gg.IDSquadraDiA][cGio];
			inTrasferta = avversaria >= 100;
			nomeAvversaria = eval("xa" + (avversaria % 100));
		}
		
if (dati[0]=="---" || dati[0]=="sv/ng"){
dati[0]=0
}
if (dati[2]=="---" || dati[2]=="sv/ng"){
dati[2]=0
}
if (dati[4]=="---" || dati[4]=="sv/ng"){
dati[4]=0
}
if (dati[6]=="---" || dati[6]=="sv/ng"){
dati[6]=0
}

		difr=ruoli[gg.Ruolo]
		dif=eval(gg.Nome)
		if (PerCento(gg.NomeCode)==undefined || parseInt(filtro2(filtro(PerCento(gg.NomeCode))))==0){
		difv= -999
		difensori[contad]= new dife(difr, dif, difv)
		} else if (parseInt(filtro2(filtro(PerCento(gg.NomeCode))))>0 && parseInt(filtro2(filtro(PerCento(gg.NomeCode))))< 50){
		difv= dati[0]*40+dati[2]*50+dati[4]*4+dati[6]*6+(inTrasferta ? 0 : 20)
		difensori[contad]= new dife(difr, dif, difv)
		} else if (parseInt(filtro2(filtro(PerCento(gg.NomeCode))))>= 50){
		difv= 1000+dati[0]*40+dati[2]*50+dati[4]*4+dati[6]*6+(inTrasferta ? 0 : 20)
		difensori[contad]= new dife(difr, dif, difv)
		}
		contad++;
}

if (ruoli[gg.Ruolo]=="C"){

		var nomeAvversaria = "---";
		var inTrasferta = false;
		if (gg.IDSquadraDiA < incontraInA.length) {
			var avversaria = incontraInA[gg.IDSquadraDiA][cGio];
			inTrasferta = avversaria >= 100;
			nomeAvversaria = eval("xa" + (avversaria % 100));
		}

if (dati[0]=="---" || dati[0]=="sv/ng"){
dati[0]=0
}
if (dati[2]=="---" || dati[2]=="sv/ng"){
dati[2]=0
}
if (dati[4]=="---" || dati[4]=="sv/ng"){
dati[4]=0
}
if (dati[6]=="---" || dati[6]=="sv/ng"){
dati[6]=0
}

		cenr=ruoli[gg.Ruolo]
		cen=eval(gg.Nome)
		if (PerCento(gg.NomeCode)==undefined || parseInt(filtro2(filtro(PerCento(gg.NomeCode))))==0){
		cenv=-999
		centrocampisti[contac]= new cent(cenr, cen, cenv)
		} else if (parseInt(filtro2(filtro(PerCento(gg.NomeCode))))>0 && parseInt(filtro2(filtro(PerCento(gg.NomeCode))))< 50){
		cenv= dati[0]*40+dati[2]*50+dati[4]*4+dati[6]*6+(inTrasferta ? 0 : 20)
		centrocampisti[contac]= new cent(cenr, cen, cenv)
		} else if (parseInt(filtro2(filtro(PerCento(gg.NomeCode))))>= 50){
		cenv= 1000+dati[0]*40+dati[2]*50+dati[4]*4+dati[6]*6+(inTrasferta ? 0 : 20)
		centrocampisti[contac]= new cent(cenr, cen, cenv)
		}
		contac++;
}


if (ruoli[gg.Ruolo]=="A"){

		var nomeAvversaria = "---";
		var inTrasferta = false;
		if (gg.IDSquadraDiA < incontraInA.length) {
			var avversaria = incontraInA[gg.IDSquadraDiA][cGio];
			inTrasferta = avversaria >= 100;
			nomeAvversaria = eval("xa" + (avversaria % 100));
		}

if (dati[0]=="---" || dati[0]=="sv/ng"){
dati[0]=0
}
if (dati[2]=="---" || dati[2]=="sv/ng"){
dati[2]=0
}
if (dati[4]=="---" || dati[4]=="sv/ng"){
dati[4]=0
}
if (dati[6]=="---" || dati[6]=="sv/ng"){
dati[6]=0
}
		attr=ruoli[gg.Ruolo]
		att=eval(gg.Nome)
		if (PerCento(gg.NomeCode)==undefined || parseInt(filtro2(filtro(PerCento(gg.NomeCode))))==0){
		attv=-999
		attaccanti[contaa]= new atta(attr, att, attv)
		} else if (parseInt(filtro2(filtro(PerCento(gg.NomeCode))))>0 && parseInt(filtro2(filtro(PerCento(gg.NomeCode))))< 50){
		attv= dati[0]*40+dati[2]*50+dati[4]*4+dati[6]*6+(inTrasferta ? 0 : 20)
		attaccanti[contaa]= new atta(attr, att, attv)
		} else if (parseInt(filtro2(filtro(PerCento(gg.NomeCode))))>= 50){
		attv= 1000+dati[0]*40+dati[2]*50+dati[4]*4+dati[6]*6+(inTrasferta ? 0 : 20)
		attaccanti[contaa]= new atta(attr, att, attv)
		}
		contaa++;
}


}




portieri.sort(function(a,b){return b.valore - a.valore;});

difensori.sort(function(a,b){return b.valore - a.valore;});

centrocampisti.sort(function(a,b){return b.valore - a.valore;});

attaccanti.sort(function(a,b){return b.valore - a.valore;});


parzform=0
topmod=0
topform=0
var modamm = new Object()
var w
modamm = moduliAmmessi
for (w=0;w<modamm.length;w++) {

for (i=0; i<modamm[w][1]; i++) {
parzform=parzform+portieri[i].valore;
}
for (i=0; i<modamm[w][2]; i++) {
parzform=parzform+difensori[i].valore;
}
for (i=0; i<modamm[w][3]; i++) {
parzform=parzform+centrocampisti[i].valore;
}
for (i=0; i<modamm[w][4]; i++) {
parzform=parzform+attaccanti[i].valore;
}

if (parzform>topform){
topform=parzform;
topmod=w;
parzform=0
}
parzform=0
}


for (i=0; i<modamm[topmod][1]; i++) {
for (g = 0; g < arrInvioFormazione.length; g++) {
var gg = arrInvioFormazione[g];
if (portieri[i].nome==eval(gg.Nome) && cFsq==gg.IDSquadra){
ClickGiocatoreRosa(g)
}
}
}
for (i=0; i<modamm[topmod][2]; i++) {
for (g = 0; g < arrInvioFormazione.length; g++) {
var gg = arrInvioFormazione[g]
if (difensori[i].nome == eval(gg.Nome) && cFsq==gg.IDSquadra) {
ClickGiocatoreRosa(g)
}
}
}
for (i=0; i<modamm[topmod][3]; i++) {
for (g = 0; g < arrInvioFormazione.length; g++) {
var gg = arrInvioFormazione[g]
if (centrocampisti[i].nome == eval(gg.Nome) && cFsq==gg.IDSquadra) {
ClickGiocatoreRosa(g)
}
}
}
for (i=0; i<modamm[topmod][4]; i++) {
for (g = 0; g < arrInvioFormazione.length; g++) {
var gg = arrInvioFormazione[g]
if (attaccanti[i].nome == eval(gg.Nome) && cFsq==gg.IDSquadra) {
ClickGiocatoreRosa(g)
}
}
}
for (g = 0; g < arrInvioFormazione.length; g++) {
var gg = arrInvioFormazione[g];
if (portieri[1].nome==eval(gg.Nome) && cFsq==gg.IDSquadra){
ClickGiocatoreRosa(g)
}
}

for (i=1; i<=2; i++) {
for (g = 0; g < arrInvioFormazione.length; g++) {
var cnt=modamm[topmod][2]+i
var gg = arrInvioFormazione[g]
if (difensori[cnt-1].nome == eval(gg.Nome) && cFsq==gg.IDSquadra) {
ClickGiocatoreRosa(g)
}
}
}
for (i=1; i<=2; i++) {
var cnt=modamm[topmod][3]+i
for (g = 0; g < arrInvioFormazione.length; g++) {
var gg = arrInvioFormazione[g]
if (centrocampisti[cnt-1].nome == eval(gg.Nome) && cFsq==gg.IDSquadra) {
ClickGiocatoreRosa(g)
}
}
}
for (i=1; i<=2; i++) {
var cnt=modamm[topmod][4]+i
for (g = 0; g < arrInvioFormazione.length; g++) {
var gg = arrInvioFormazione[g]
if (attaccanti[cnt-1].nome == eval(gg.Nome) && cFsq==gg.IDSquadra) {
ClickGiocatoreRosa(g)
}
}
}


}






//elimina I e : dalla stringa in input
function filtro(str) {
	re = /I|:|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|<|>|'|"|=|-|;|(|)|\./g;
	// remove special characters like "$" and "," etc...
	return str.replace(re, "");


}

//restituisce i caratteri prima del % dalla stringa in input

function filtro2(str) {

var stringa="";
for (i=0;i<str.length;i++) {
if (str.charAt(i)!="%") {
stringa=stringa+str.charAt(i)
} else {
break;
}
}
return stringa;
}
