var __sexe = 1;
var __echelonClassementActuel=0;
var __serieActuelle=0;
var __nbVictoiresTotal=0;
var __nbWO=0;
var __nbVicsCI=0;
var __nbVictoiresPrisesEnComptePourClassement=0;
var __valVe2i=0;
var __nbVictoiresSupplementaires=0;
var __nbVictoiresPouvantEtrePrisesEnCompte=0;
var __nbVictoiresAprendreEnCompte=0;
var __nbDefaitesEchelonEgal=0;
var __nbDefaitesEchelonInferieur=0;
var __nbDefaitesDeuxEchelonsInferieurs=0;
var __combosVictoires=new Array();
var __nbSelectBoxVictoires=30;
var __ve2iRules = new Array();
/* 4 eme serie */
__ve2iRules[0] = new Array("s==4 && v >= 0 && v <= 4", "1");
__ve2iRules[1] = new Array("s==4 && v >= 5 && v <= 9", "2");
__ve2iRules[2] = new Array("s==4 && v >= 10 && v <= 14", "3");
__ve2iRules[3] = new Array("s==4 && v >= 15 && v <= 19", "4");
__ve2iRules[4] = new Array("s==4 && v >= 20 && v <= 24", "5");
__ve2iRules[5] = new Array("s==4 && v >= 25", "6");
/* 3eme serie  */
__ve2iRules[6] = new Array("s==3 && v >= 0 && v <= 7", "1");
__ve2iRules[7] = new Array("s==3 && v >= 8 && v <= 14", "2");
__ve2iRules[8] = new Array("s==3 && v >= 15 && v <= 22", "3");
__ve2iRules[9] = new Array("s==3 && v >= 23 && v <= 29", "4");
__ve2iRules[10] = new Array("s==3 && v >= 30 && v <= 39", "5");
__ve2iRules[11] = new Array("s==3 && v >= 40", "6");
/* 2eme serie positive */
__ve2iRules[12] = new Array("s==2 && v >= 0 && v <= 7", "1");
__ve2iRules[13] = new Array("s==2 && v >= 8 && v <= 14", "2");
__ve2iRules[14] = new Array("s==2 && v >= 15 && v <= 22", "3");
__ve2iRules[15] = new Array("s==2 && v >= 23 && v <= 29", "4");
__ve2iRules[16] = new Array("s==2 && v >= 30 && v <= 39", "5");
__ve2iRules[17] = new Array("s==2 && v >= 40", "6");
/* 2eme serie negative */
__ve2iRules[18] = new Array("s==1 && v >= 0 && v <= 9", "1");
__ve2iRules[19] = new Array("s==1 && v >= 10 && v <= 19", "2");
__ve2iRules[20] = new Array("s==1 && v >= 20 && v <= 24", "3");
__ve2iRules[21] = new Array("s==1 && v >= 25 && v <= 29", "4");
__ve2iRules[22] = new Array("s==1 && v >= 30 && v <= 34", "5");
__ve2iRules[23] = new Array("s==1 && v >= 35 && v <= 44", "6");
__ve2iRules[24] = new Array("s==1 && v >= 45", "7");

function __init()
{
	__fillRightTopDiv();
	document.getElementById('rsexem').checked = true;
	document.getElementById('cl_actuel').selectedIndex = 0;
	document.getElementById('nb_vics_total').selectedIndex = 0;
	document.getElementById('sel_nb_def_egal').selectedIndex = 0;
	document.getElementById('sel_nb_def_inf').selectedIndex = 0;
    document.getElementById('sel_nb_def_inf_deux').selectedIndex = 0;
	document.getElementById('nb_wo').selectedIndex = 0;
	document.getElementById('sel_ci').selectedIndex = 0;
	document.getElementById('min_matches_bonif_ds').checked=false;
}
function __fillRightTopDiv()
{
	code = '';
	code += '<div class="titre_info">Infos classement&nbsp;&nbsp;<span class="help" onmouseover="__getOverlib(\'infos_classement\');" onmouseout="return nd();">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>';
	code += '</div>';
	code += '<div id="infos_cl">';
	code += '<table class="infos">';
	code += '<tr><td>Capital de départ</td><td id="cl_cap_depart">0</td></tr>';
	code += '<tr><td>Descente</td><td>0</td></tr>';
	code += '<tr><td>Montée</td><td>0</td></tr>';
	code += '<tr><td>Victoires</td><td>0</td></tr>';
	code += '</table>';
	code += '</div>';
	code += '<div id="div_ve2i">';
	code += '<div class="titre_info">Calcul du V-E-2i-5G&nbsp;&nbsp;<span class="help" onmouseover="__getOverlib(\'overve2i\');" onmouseout="return nd();">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></div>';
	// VE2i
	code += '<table class="infos">';
	code += '<tr><td>V-E-2I-5G</td><td id="td_ve2i">0</td></tr>';
	code += '<tr><td>Victoires en +</td><td id="vics_supp">0</td></tr>';
	code += '<tr><td>Victoires max.</td><td id="vics_total">0</td></tr>';
	code += '</table>';
	code += '</div>';
	document.getElementById('rightcol-top').innerHTML = code;
}
function __onChangeClassementActuel(sbox)
{
	__fillRightTopDiv();
	__echelonClassementActuel=sbox.selectedIndex;
	__serieActuelle = __getSerieActuelle();
	if(sbox.value == -1)
	{
		__changeFieldsState(true);
		__clearValues();
	}
	else
	{
		__changeFieldsState(false);
		__updateInfosClassement();
		__updateVe2i();
	}
	__updateVicDiv();
}
function __getSerieActuelle()
{
    // 4eme serie
	if(__echelonClassementActuel < 8) return 4;
    // 3eme serie
	if(__echelonClassementActuel >= 8 && __echelonClassementActuel < 14) return 3;
    // 2eme serie positive, 0 inclus
    if(__echelonClassementActuel >= 14 && __echelonClassementActuel < 21) return 2;
	// 2eme serie negative
    return 1;
}
function __onChangeTotalVic(sel)
{
	__nbVictoiresTotal = sel.value;
	if(document.getElementById('sel_ci').selectedIndex > sel.selectedIndex)
	{
		alert('Le nombre de victoires en championnat individuel va être ajusté.');
		document.getElementById('sel_ci').selectedIndex = sel.selectedIndex;
	}
	if(__echelonClassementActuel > 0)
	{
		__updateVe2i();
		__updateVicDiv();
	}
}

function __onChangeWO(sel)
{
	__nbWO = sel.value;
	__updateVe2i();
	__updateVicDiv();
}
function __onChangeNbVicCI(sel)
{
	if(parseInt(sel.value) > __nbVictoiresTotal)
	{
		alert('Votre nombre de victoires total doit être supérieur ou égal à ce nombre.');
		sel.selectedIndex = __nbVictoiresTotal;
	}
	__nbVicsCI = sel.value;
}
function __clearValues()
{
	document.getElementById('cl_cap_depart').innerHTML = '0';
	document.getElementById('cl_pts_descente').innerHTML = '0';
	document.getElementById('cl_pts_montee').innerHTML = '0';
	document.getElementById('cl_nb_victs').innerHTML = '0';
	document.getElementById('vics_supp').innerHTML = '0';
	document.getElementById('vics_total').innerHTML = '0';
}

function __changeFieldsState(state, all)
{
	document.getElementById('nb_vics_total').disabled = state;
	document.getElementById('sel_nb_def_egal').disabled = state;
	document.getElementById('sel_nb_def_inf').disabled = state;
    document.getElementById('sel_nb_def_inf_deux').disabled = state;
	document.getElementById('nb_wo').disabled = state;
	document.getElementById('sel_ci').disabled = state;
	document.getElementById('btn_calculer').disabled = state;
	if(all) 
	{
		document.getElementById('rsexem').disabled = state;
		document.getElementById('rsexef').disabled = state;
		document.getElementById('cl_actuel').disabled = state;
	}
}

function __updateInfosClassement()
{
	__echelonClassementActuel=parseInt(document.getElementById('cl_actuel').value);
	$.get('typo3conf/ext/cvc/cvc_app/classes/ajax_controller.php?p=1&c='+__echelonClassementActuel+'&s='+__sexe,function(data) 
		{
			eval(data);
		}
	);
}
function __wait()
{
	__changeFieldsState(true, true);
	document.getElementById('wait').style.visibility = 'visible';
}
function __changeSexe()
{
	__sexe = (document.getElementById('rsexef').checked)?0:1;
	if(__echelonClassementActuel > 0) __updateInfosClassement();
}

function __updateVe2i()
{
	// var __nbDefEchelonInferieurEtWO = (__nbWO >= 3)?parseInt(__nbDefaitesEchelonInferieur) + parseInt(__nbWO):__nbDefaitesEchelonInferieur;

    // Nb defaites 2 echelons et + incrementees des WO si WO >= 3
    var __nbDefDeuxEchelonsInferieursEtWO = (__nbWO >= 3)?parseInt(__nbDefaitesDeuxEchelonsInferieurs) + parseInt(__nbWO - 2):__nbDefaitesDeuxEchelonsInferieurs;

	__valVe2i = __nbVictoiresTotal - __nbDefaitesEchelonEgal - (2*__nbDefaitesEchelonInferieur) - (5*__nbDefDeuxEchelonsInferieursEtWO);
	__nbVictoiresSupplementaires=__getNbVictoiresSupplementaires();
	__nbVictoiresPouvantEtrePrisesEnCompte=parseInt(__nbVictoiresPrisesEnComptePourClassement)+parseInt(__nbVictoiresSupplementaires);

	document.getElementById('vics_supp').innerHTML=''+__nbVictoiresSupplementaires;
	document.getElementById('vics_total').innerHTML=''+__nbVictoiresPouvantEtrePrisesEnCompte;
	document.getElementById('td_ve2i').innerHTML=''+__valVe2i;
}
function __getNbVictoiresSupplementaires()
{
	v = __valVe2i;
	s = __serieActuelle;
	for(i=0;i<__ve2iRules.length;i++)
	{
		if(eval(__ve2iRules[i][0])) return __ve2iRules[i][1];
	}
	return 0;
}
function __updateDefaites(def,nbdef)
{
	if(def == 'inf')__nbDefaitesEchelonInferieur = parseInt(nbdef);
    // Deux echelons et + et WO 3 et +
    if(def == 'deux')__nbDefaitesDeuxEchelonsInferieurs = parseInt(nbdef);
	if(def == 'egal')__nbDefaitesEchelonEgal = parseInt(nbdef);
	__updateVe2i();
	__updateVicDiv();
}
function __updateVicDiv()
{
	__nbVictoiresAprendreEnCompte = (__nbVictoiresTotal < __nbVictoiresPouvantEtrePrisesEnCompte)?__nbVictoiresTotal:__nbVictoiresPouvantEtrePrisesEnCompte;
	for(i=0;i < __nbSelectBoxVictoires; i++)
	{
		if(i < __nbVictoiresAprendreEnCompte) 
		{
			document.getElementById('sel_vic_'+i).style.display = 'inline';
		}
		else
		{
			document.getElementById('sel_vic_'+i).style.display = 'none';
			document.getElementById('sel_vic_'+i).selectedIndex = 0;
		}
	}
}

function __calculerClassement()
{
	var params = '';
	var i = 0;
	var __nbVictoiresSaisies = 0;
	var __nbDefSignificatives =  __nbDefaitesEchelonEgal+__nbDefaitesEchelonInferieur+__nbDefaitesDeuxEchelonsInferieurs;
	var __minbonifds = (document.getElementById('min_matches_bonif_ds').checked)?1:0;
	for(i;i<__nbSelectBoxVictoires;i++)
	{
		sel_id = 'sel_vic_'+i;
		if(document.getElementById(sel_id).value != -1) 
		{
			params += '&vics['+i+']='+document.getElementById(sel_id).value;
			__nbVictoiresSaisies++;
		}
		if(document.getElementById(sel_id).style.visibility == 'hidden') break;
	}
	if( (__nbVictoiresSaisies == __nbVictoiresAprendreEnCompte) || (__nbVictoiresSaisies < __nbVictoiresAprendreEnCompte && confirm('Toutes les victoires n\'ont pas été renseignées, continuer ?')) )
	{
		return GB_showCenter('Calcul du classement', 'http://www.team-tennis.fr/typo3conf/ext/cvc/cvc_app/classes/ajax_controller.php?p=3&c='+__echelonClassementActuel+'&minbonifds='+__minbonifds+'&genre='+__sexe+'&serie='+__serieActuelle+'&nbdefsign='+__nbDefSignificatives+'&nbvictot='+__nbVictoiresTotal+'&ci='+__nbVicsCI+params);
		//__popup('fen_bilan', 'http://www.team-tennis.fr/typo3conf/ext/cvc/cvc_app/classes/ajax_controller.php?p=3&c='+__echelonClassementActuel+'&minbonifds='+__minbonifds+'&genre='+__sexe+'&serie='+__serieActuelle+'&nbdefsign='+__nbDefSignificatives+'&nbvictot='+__nbVictoiresTotal+'&ci='+__nbVicsCI+params,500,350);
	}
}
function __popup(name,href,width,height)
{
	winLeft = (screen.width/2) - (width/2);
	winTop = (screen.height/2) - (height/2);
	var fen=self.open(href,name,'left='+winLeft+',top='+winTop+',location=no,toolbar=no,width=500,height=350');
}

/* OVERLIB */
function __getOverlib(param)
{
	switch(param)
	{
		case 'ci':
		return overlib('<div class="overlibDiv"><p>Indiquez ici votre nombre de victoires en championnat individuel.</p><p>Les victoires en championnat individuel vous apportent des points supplémentaires.</p><p>Les championnats individuels portent les noms suivants :</p><p>- 4ème série : trophée perrier</p><p>- 3ème série : espérance</p><p>- 2nde série : critérium</p></div>',WIDTH,300,HEIGHT,120,FGCOLOR,'#FFFFFF',BGCOLOR,'#FF8000');
		break;
		case 'overve2i':
		return overlib('<div class="overlibDiv"><p>Le calcul V-E-2I-5G peut vous permettre de saisir des victoires supplémentaires.</p><p>- V représente votre nombre de victoires total</p><p>- E représente votre nombre de défaites à classement égal</p><p>- I représente votre nombre de défaites à 1 classement inférieur</p><p>- G représente le nombre de défaites à 2 échelons et + sous votre classement, auquel s\'ajoutent les défaites par WO à partir du 3ème.</p><p>Pour plus d\'informations, consultez la page présentant les règles de calcul du classement.</p></div>',WIDTH,300,HEIGHT,100,FGCOLOR,'#FFFFFF',BGCOLOR,'#FF8000');
		break;
		case 'min_bonif_ds':
		return overlib('<div class="overlibDiv"><p>Si vous avez joué au moins 10 matches et que vous n\'avez pas de défaites à classement égal ou inférieur, vous avez un bonus de 50 points si vous êtes en 4ème série, de 100 points si vous êtes en 3ème ou en 2nde série.</p></div>',WIDTH,300,HEIGHT,80,FGCOLOR,'#FFFFFF',BGCOLOR,'#FF8000');
		break;
		case 'wo' : 
		return overlib('<div class="overlibDiv"><p>Indiquez ici le nombre de matches que avez perdus par W.O (pour lesquels vous avez déclaré forfait).</p><p>Le terme W.O est l\'abréviation de Walk Over.</p><p>Vous perdez un match par W.O si vous déclarez forfait.</p><p>Vous gagnez un match par W.O si votre adversaire déclare forfait.</p><p>A partir du 3ème W.O, chaque W.O est considéré comme une défaite à 2 échelons inférieurs.</p></div>',WIDTH,300,HEIGHT,150,FGCOLOR,'#FFFFFF',BGCOLOR,'#FF8000');
		break;
		case 'infos_classement':
		return overlib('<div class="overlibDiv"><p>Ces informations concernent votre classement actuel.</p><p>- capital de départ : votre capital de points de départ,<br />- Descente : le nombre de points minimum que vous devez avoir pour ne pas descendre d\'un échelon,<br />- Montée : le nombre de points nécessaire pour accéder à l\'échelon supérieur,<br />- victoires : le nombre de victoires maximum prises en compte (qui pourra être amélioré grâce à des bonifications)</p></div>',WIDTH,300,HEIGHT,100,FGCOLOR,'#FFFFFF',BGCOLOR,'#FF8000');
		break;
		case 'cl_actuel':
		return overlib('<div class="overlibDiv"><p>Choisissez votre classement actuel.</p><p>La zone <i>infos classement</i> se met à jour en fonction de votre choix.</p></div>',WIDTH,300,HEIGHT,70,FGCOLOR,'#FFFFFF',BGCOLOR,'#FF8000');
		break;
		case 'nbvicstotal':
		return overlib('<div class="overlibDiv"><p>Indiquez ici votre nombre total de victoires (victoires par W.O - forfait incluses).</p></div>',WIDTH,300,HEIGHT,40,FGCOLOR,'#FFFFFF',BGCOLOR,'#FF8000');
		break;
		case 'nbdefegal':
		return overlib('<div class="overlibDiv"><p>Indiquez ici le nombre de matches que vous avez perdus contre des adversaires ayant le même classement que vous.</p></div>',WIDTH,300,HEIGHT,60,FGCOLOR,'#FFFFFF',BGCOLOR,'#FF8000');
		break;
		case 'nbdefinf':
		return overlib('<div class="overlibDiv"><p>Indiquez ici le nombre de matches que vous avez perdus contre des adversaires ayant exactement un classement de moins que vous.</p></div>',WIDTH,300,HEIGHT,60,FGCOLOR,'#FFFFFF',BGCOLOR,'#FF8000');
		break;
        case 'nbdefinfdeux':
		return overlib('<div class="overlibDiv"><p>Indiquez ici le nombre de matches que vous avez perdus contre des adversaires ayant au moins 2 classements de moins que vous.</p></div>',WIDTH,300,HEIGHT,60,FGCOLOR,'#FFFFFF',BGCOLOR,'#FF8000');
		break;
	}
}
