//-----------------------------------------------------------------------------
// fcmInvioFormazioneFunzioni.js
//
// Copyright (C) 2005 Marcello 'John Doe' Puri
//
// Versione 0.9.0 (15/09/2005)
// Versione 0.9.5 (28/09/2005)
// * aggiunto il modulo di salvataggio automatico delle formazioni
// * corretto il bug che non permetteva di gestire leghe con "panchina lunga"
// * eliminato l'ordinamento per ruolo della panchina
// * inserita l'opzione per l'ordinamento per ruolo della panchina
// * inserite le opzioni per non consentire agli utenti la modifica della
// giornata e degli incontri per cui è valida la formazione
// * nel caso di un singolo incontro, il relativo checkbox è disabilitato,
// non è quindi più possibile deselezionarlo
// Versione 0.9.6 (07/10/2005)
// * modificata la modalità di passaggio parametri al modulo d'invio e
// salvataggio formazione per garantire la compatibilità anche con
// Internet Explorer
// Versione 1.0.0 (02/12/2005)
// * inserita l'opzione per il controllo dell'ordine di tiro dei portieri
// rigoristi secondo la regola ufficiale
// * introdotta sostituzione dei caratteri nel nome della lega durante
// l'invio delle e-mail. Le leghe che contenevano caratteri strani
// (*, ", ', \, /, :, |, ?) non erano in grado di utilizzare la funzione
// auto-ricevi formazioni
// * corretto bug che richiamava il modulo server-side d'invio e salvataggio
// formazione per diverse competizioni nello stessa finestra pop-up
// * corretto bug che salvava in modo errato l'ordine dei rigoristi
// (la e-mail era comunque corretta)
//-----------------------------------------------------------------------------

// Oggetto Giocatore per Invio Formazione
function ifG(IDSquadra, ID, Ruolo, IDSquadraDiA, Affidabilita, Dati)
{
this.IDSquadra = IDSquadra;
this.ID = ID;
this.Nome = "xg" + ID;
this.Ruolo = Ruolo;
this.IDSquadraDiA = IDSquadraDiA;
this.SquadraDiA = "xa" + IDSquadraDiA;
this.Affidabilita = Affidabilita;
this.Dati = Dati;

this.Formazione = 0;
this.Rigorista = 0;
}

var arrRosa = new Array();
var arrFormazione = new Array();
var coloreRuoli = Array ( "", "G", "V", "R", "Blu" );
var coloreDati = Array ( "Rv", "CellaRvRosso", "CellaRvCiano", "CellaRvVerde" );
var ruoli = Array ( "", "P", "D", "C", "A" );

var moduloInserito = new Array( 0, 0, 0, 0, 0 );
var titolariInseriti = 0;
var riserveInserite = new Array( 0, 0, 0, 0, 0 );
var totaleRiserveInserite = 0;

var rigoristi = false;
var arrRigoristi = new Array();

var incontriValidi = new Array();

var idxFsq;

function GeneraIntestazioneInvioFormazione(cFsq, cGio, fname)
// Questo codice genera l'intestazione per la scelta della fantasquadra
// e della giornata
// Utilizza MaxA definito nel SerieADati
{
var arrF = new Object();
arrF = arrFantasquadre;
document.write("<form name='frmIF' id='frmIF' action='" + fname + ".htm' method='get'>")
document.write("<table width='100%' border='0' cellspacing='0' cellpadding='0'>")
document.write("<tr><td width='5%' class='t-xxsB'><nobr>Fantasquadra:<select name='Fsq' class='t-xxs' id='Fsq'>")
var i;
for (i = 1; i < arrF.length; i++) {
document.write("<option value='" + arrF[i].ID + "'");
if (arrF[i].ID == cFsq) {
document.write(" selected");
idxFsq = i;
}
document.write(">" + arrF[i].Nome + "</option>");
}
document.write("</select></nobr></td>")

if (cGio == "" || parseInt(cGio) == 0) cGio = 1;
var attributes = disabilitaGiornata ? "disabled" : "";
document.write("<td width='5%' class='t-xxsB'><nobr>Giornata:<select name='Gio' class='t-xxs' id='Gio' " + attributes + ">");
for (i = 1; i <= MaxA; i++) {
document.write("<option value='" + i + "'");
if (i == cGio) document.write(" selected");
document.write(">" + i + "</option>");
}
document.write("</select></nobr></td>");

document.write("<td width='95%' class='t-xxsB'><input name='Invia' type='submit' class='t-xxs' id='Invia' value=' Vai '></td>");
document.write("</tr></table></form>");
}

function GeneraSelezioneCompetizioni(cFsq, cGio)
{
var i;

// Ottiene incontri della giornata selezionata che interessano la squadra
// controllando che non siano già stati giocati
for (i = 1; i < arrIncontri.length; i++)
if (
arrIncontri[i].GiornataDiA == cGio &&
(arrIncontri[i].IDSquadre.Casa == cFsq || arrIncontri[i].IDSquadre.Fuori == cFsq) &&
arrIncontri[i].IDTipo != INC_RIPOSO &&
arrIncontri[i].Giocato == 0 &&
arrIncontri[i].IncAcc == 1
)
incontriValidi.push(i);

// Se nessun incontro disponibile, lo segnala
if (incontriValidi.length == 0) {
document.write("<p class='t-xxsB'>Nessun incontro disponibile</p>");
return false;
}

// Mostra check-box degli incontri disponibili
var attributes = incontriValidi.length == 1 || disabilitaIncontri ? "disabled" : "";
document.write("<form name='selInc' id='selInc' action='' method=''>")
document.write("<table width='100%' border='0' cellspacing='0' cellpadding='0'>");
for (i = 0; i < incontriValidi.length; i++) {
var ii = arrIncontri[incontriValidi[i]];

if (ii.IDTipo == INC_ELIMDIRETTA_DIR ||
ii.IDTipo == INC_ELIMDIRETTA_RIT ||
ii.IDTipo == INC_ELIMDIRETTA_DIR_FC) rigoristi = true;

document.write("<tr><td class='t-xxsB' valign='middle'><nobr>");
document.write("<input class='t-xxs' type='checkbox' name='cbInc" + (i + 1) + "' value='" + incontriValidi[i] + "' id='cbInc" + (i + 1) + "' checked " + attributes + "></td>");
document.write("<td width='100%' class='t-xxsB'>" + ii.Competizione + ": " + ii.Fantagiornata + " (" + ii.Nomi.Casa + " - " + ii.Nomi.Fuori + ")");
document.write("</td></tr>");
}
document.write("</table></form>");

return true;
}

function GeneraTabellaGiocatori()
{
document.write("<center><table width='95%' border='0' cellpadding='0' cellspacing='0'>");

// Tabella di sinistra (rosa fantasquadra)
document.write("<tr><td width='62.5%' align='center' valign='top'>");
var tabR = new Tabella(1, 8);

// Imposta proprietà della tabella
tabR.nome = "Rosa fantasquadra";
tabR.larghezza = 100;
tabR.border = 0;
tabR.cellpadding = 1;
tabR.cellspacing = 0;
tabR.stile = "ClassEl";
tabR.SetLarghezzaColonna(1, 5);
tabR.SetLarghezzaColonna(2, 25);
tabR.SetLarghezzaColonna(3, 10);
tabR.SetLarghezzaColonna(4, 10);
tabR.SetLarghezzaColonna(5, 10);
tabR.SetLarghezzaColonna(6, 10);
tabR.SetLarghezzaColonna(7, 10);
tabR.SetLarghezzaColonna(8, 20);

// Header
tabR.SetValore(1, 1, "R");
tabR.SetValore(1, 2, "Nome(Squadra)");
tabR.SetValore(1, 3, "Aff");
tabR.SetValore(1, 4, "MVt");
tabR.SetValore(1, 5, "FMt");
tabR.SetValore(1, 6, "MVu");
tabR.SetValore(1, 7, "FMu");
tabR.SetValore(1, 8, "Sq Avv.");
var c;
for (c = 1; c <= 8; tabR.SetStile(1, c++, "IntRossoBlu"));

// Riempie la tabella
var cnt = 2;
var g;
for (g = 0; g < arrInvioFormazione.length; g++) {
var gg = arrInvioFormazione[g];
if (gg.IDSquadra != cFsq) continue;

arrRosa.push(g);

var pd = cnt % 2 ? "D" : "P";
var dati = gg.Dati.split("%");

tabR.SetStileRiga(cnt, "t-xxs");

var colore = coloreRuoli[gg.Ruolo];

// Ruolo
tabR.SetValore(cnt, 1, "<span class='t-xxs" + colore + "B' id='r_ruolo" + g + "'>" + ruoli[gg.Ruolo] + "</span>");
tabR.SetStile(cnt, 1, "Form" + pd + "Centro");
// Nome (Squadra)
tabR.SetValore(cnt, 2, "<nobr><span class='t-xxs" + colore + "B' style='cursor: pointer' id='r_nome" + g + "' onClick='ClickGiocatoreRosa(" + g + ")'>" + eval(gg.Nome) + " (" + eval(gg.SquadraDiA) + ")</span>");
tabR.SetStile(cnt, 2, "Form" + pd);
// Affidabilità
tabR.SetValore(cnt, 3, "<span class='t-xxs'>" + gg.Affidabilita + "</span>");
tabR.SetStile(cnt, 3, "Form" + pd + "Centro");
// Dati
var d;
for (d = 0; d < 4; d++) {
if (dati[d * 2 + 1] == 0) {
tabR.SetStile(cnt, 4 + d, coloreDati[0] + pd + "Centro");
tabR.SetValore(cnt, 4 + d, dati[d * 2]);
}
else {
tabR.SetStile(cnt, 4 + d, coloreDati[dati[d * 2 + 1]] + "Centro");
tabR.SetValore(cnt, 4 + d, dati[d * 2]);
}
}

// Squadra avversaria
var nomeAvversaria = "---";
var inTrasferta = false;
if (gg.IDSquadraDiA <= ((MaxA / 2) + 1)) {
var avversaria = incontraInA[gg.IDSquadraDiA][cGio];
inTrasferta = avversaria >= 100;
nomeAvversaria = eval("xa" + (avversaria % 100));
}
tabR.SetValore(cnt, 8, "<span class='t-xxs'>" + (inTrasferta ? nomeAvversaria : nomeAvversaria.toUpperCase()) + "</span>");
tabR.SetStile(cnt, 8, "Form" + pd);

cnt++;
}