/************************************************************************/
// fonction permettant la mise à jour de la liste déroulante Territoire
/************************************************************************/
function majTerritoire(pos, indTab, dep)
{
	var numDept ;
	var dept ;
	var indDept ;

	var cpt1 = 0;


	// on vide la liste Territoire :
	effaceListeTerritoire() ;

	
	numDept = document.forms['formMulti'].Departement.options[document.forms['formMulti'].Departement.selectedIndex].value;
	if( numDept != '' ) { numDept = parseInt( numDept ); }

	switch(numDept)
	{
		case 16 : dept = "Les territoires de Charente" ; indDept = 0 ; break;
		case 17 : dept = "Les territoires de Charente-Maritime" ; indDept = 1 ; break;
		case 79 : dept = "Les territoires des Deux-Sèvres" ; indDept = 2 ; break;
		case 86 : dept = "Les territoires de la Vienne" ; indDept = 3 ; break;
		default : dept = "Tous les territoires" ; break;
	}
	
	option = new Option(dept,"");
	document.forms['formMulti'].Territoire.options[document.forms['formMulti'].Territoire.length] = option;
	
	// Variable permettant de determiner la position du territoire dans le tableau
	if(pos == 0)
		pos = 0;
	else
		pos = pos*2;

	// si aucun Territoire n'est sélectionné
	if (numDept == "")
	{
		// Ne pas afficher la liste déroulante Territoire quand aucun département n'est sélectionné
		// document.getElementById("calqueCommunaute").style.visibility="hidden";

		// pour toutes les lignes de la liste déroulante Departement
		// for (i = 1 ; i < document.formMulti.Departement.length ; i ++)
		for (i = 0 ; i < 4 ; i++)
		{

			if (indTab == i)
			{
				cpt1 = 1;
			}
			else
			{
				cpt1 = 0;
			}
				
			// on ajoute tous les éléments du tableau tabTerritoires[j] à la liste déroulante :
			for ( j = 0 ; j < tabTerritoires[i].length ; j += 2)
			{
				
				//ajout d'une option au select
				option = new Option(tabTerritoires[i][j+1] , tabTerritoires[i][j]) ;
				document.forms['formMulti'].Territoire.options[document.forms['formMulti'].Territoire.length] = option ;
				// Si c'est bien le territoire courant on le selectionne
				if ((cpt1 == 1)&&(pos == j))
				{
					option.selected = true;
				}
				
			}
		}
	}
	// sinon (un Territoire est sélectionné)
	else
	{
		//document.getElementById("calqueCommunaute").style.visibility="visible";

		// on ajoute tous les éléments du tableau tabTerritoires[j] à la liste déroulante :
		var l = tabTerritoires[indDept].length;
		for ( j = 0 ; j < tabTerritoires[indDept].length ; j += 2)
		{
			//ajout d'une option au select
			option = new Option(tabTerritoires[indDept][j+1] , tabTerritoires[indDept][j]) ;
			document.forms['formMulti'].Territoire.options[document.forms['formMulti'].Territoire.length] = option ;
			// Si c'est bien le territoire courant on le selectionne
			if ((pos == j))
			{
				option.selected = true;
			}
		}
	}
	return ;
}

/******************************************************************************************/
// fonction permettant de vider la liste déroulante Territoire pour sa future mise à jour
/******************************************************************************************/
function effaceListeTerritoire()
{
	for (i = document.forms['formMulti'].Territoire.length ; i >= 0 ; i--)
	{
		document.forms['formMulti'].Territoire.options[i] = null ;
	}
}

/***********************************************************************/
// fonction permettant la mise à jour de la liste déroulante Communaute
/***********************************************************************/
function majCommunaute()
{
	// on vide la liste commune :
	effaceListeCommunaute() ;

	option = new Option("Communautés de communes","") ;
	document.forms['formMulti'].Communaute.options[document.forms['formMulti'].Communaute.length] = option ;

	nomTerritoire = document.forms['formMulti'].Territoire.options[document.forms['formMulti'].Territoire.selectedIndex].value ;
	
	// si aucun Territoire n'est sélectionné
	if (nomTerritoire == "")
	{
		// Ne pas afficher la liste déroulante Communaute quand aucun Territoire n'est sélectionné
		//document.getElementById("calqueCommunaute").style.visibility="hidden";

		// pour toutes les lignes de la liste déroulante Territoire
		for (i = 1 ; i < document.forms['formMulti'].Territoire.length ; i ++)
		{
			// on parcourt le tableau tabCommunaute
			for (j = 0 ; j < tabCommunautes.length ; j ++)
			{	
				// si le premier element du tableau placé à la position i est égale à l'un des éléments de la liste déroulante Territoire
				if ( tabCommunautes[j][0] == document.forms['formMulti'].Territoire[i].value)
				{
					// on ajoute tous les éléments du tableau tebCommunaute[j] à la liste déroulante :
					for ( k = 1 ; k < tabCommunautes[j].length ; k += 2)
					{
						//ajout d'une option au select
						option = new Option(tabCommunautes[j][k+1] , tabCommunautes[j][k]) ;
						document.forms['formMulti'].Communaute.options[document.forms['formMulti'].Communaute.length] = option ;
					}
				}
			}
		}
	}
	// sinon (un Territoire est sélectionné)
	else
	{
		//document.getElementById("calqueCommunaute").style.visibility="visible";

		// on parcourt le tableau tabCommunaute
		for (j = 0 ; j < tabCommunautes.length ; j ++)
		{	
			// si le premier element du tableau placé à la position i est égale à l'un des éléments de la liste déroulante Territoire
			if ( tabCommunautes[j][0] == nomTerritoire)
			{
				// on ajoute tous les éléments du tableau tebCommunaute[j] à la liste déroulante :
				for ( k = 1 ; k < tabCommunautes[j].length ; k += 2)
				{
					//ajout d'une option au select
					option = new Option(tabCommunautes[j][k+1] , tabCommunautes[j][k]) ;
					document.forms['formMulti'].Communaute.options[document.forms['formMulti'].Communaute.length] = option ;
				}
			}
		}
	}
	return ;
}

/****************************************************************************************/
// fonction permettant de vider la liste déroulante Communaute pour sa future mise à jour
/****************************************************************************************/
function effaceListeCommunaute()
{
	for (i = document.forms['formMulti'].Communaute.length ; i >= 0 ; i--)
	{
		document.forms['formMulti'].Communaute.options[i] = null;
	}
}

/********************************************************************/
/* fonction mettant à jour le nombre de salles correspondant aux    */
/* critères déjà sélectionnés dans le formulaire                    */
/********************************************************************/
function NbSalles ()
{
	// listes des champs utiles à la recherche
	// critères géographiques (formMulti)
	// $salle->X (départements : valeur du select Departement)
	// $salle->AA (territoires : valeur du select Territoire)
	// $salle->Z (communauté de communes : valeur du select Communaute)

	// critères techniques (formMulti)
	// $salle->CG (hauteur utilie : valeur saisie < $salle->CG)
	// $salle->CF (largeur mur à mur : valeur saisie < $salle->CF)
	// $salle->DI (accroche en salle : si case cochée => $salle->DI!='0')
	// $salle->DH (accroche en scène : si case cochée => $salle->DH!='0')
	// $salle->BR (occultation : si value=Possible => $salle->BR!='N' si value=Parfaite => $salle->BR=='O')
	// $salle->BQ (gradinage : si value=Souhaite => $salle->BM=='0' ou BO!='0')
	// $salle->DV (son : si case cochée => $salle->DV!='')
	// $salle->DQ (lumiere : si case cochée => $salle->DQ!='')
	// $salle->AT (equipe technique : si value=Souhaite => $salle->AT!='pdp')

	// departement sélectionné :
	Departement = document.forms['formMulti'].Departement.options[document.forms['formMulti'].Departement.selectedIndex].value ;

	// territoire sélectionné :
	nomTerritoire = document.forms['formMulti'].Territoire.options[document.forms['formMulti'].Territoire.selectedIndex].value ;

	// communauté de communes sélecionnée :
	nomCommunaute = document.forms['formMulti'].Communaute.options[document.forms['formMulti'].Communaute.selectedIndex].value ;

	// Hauteur utile sous plafond saisie :
	hauteurSaisie = document.forms['formMulti'].Hauteur.value ;

	// Distance mur à mur :
	distanceMurAMur = document.forms['formMulti'].MurAMur.value ;

	// Accroches :
	if (document.forms['formMulti'].Salle.checked) { salle = true ; }
	else { salle = false ; }

	if (document.forms['formMulti'].Scene.checked) { scene = true ; }
	else { scene = false ; }

	occultation = '';

	// Occultation :
	for (i = 0 ; i < 3 ; i ++) 
	{
		if (document.forms['formMulti'].Occultation[i].checked)
			occultation = document.forms['formMulti'].Occultation[i].value ;
	}

	gradinage = '';

	// Gradinage :
	for ( i = 0 ; i < 2 ; i ++)
	{
		if (document.forms['formMulti'].Gradinage[i].checked) 
			gradinage = document.forms['formMulti'].Gradinage[i].value ;
	}

	// Matériel :
	if (document.forms['formMulti'].Son.checked) { son = true ; }
	else { son = false ; }

	if (document.forms['formMulti'].Lumiere.checked) { lumiere = true ; }
	else { lumiere = false ; }

	// Equipe technique :
	for ( i = 0 ; i < 2 ; i ++)
	{
		if (document.forms['formMulti'].EquipeTech[i].checked) 
			equipeTech = document.forms['formMulti'].EquipeTech[i].value ;
	}

	nbSalles = 0 ;
	// pour chaque salles de la base de données :
	for (i = 0 ; i < tabSalles.length ; i++)
	{
		// valid : variable donnant la validité de la salle pour les critères choisis
		// au départ valid vaut false
		// si la salle est dans l'un des départements désirés, valid prend la valeur true
		// valid garde la valeur true tant que la salle répond aux critères de choix
		// dès que ce n'est plus le cas, valid prend la valeur false
		// et la salle ne sera pas comptabilisée dans le nombre de réponses correspondant à la recherche effectuée.

		valid = true ;

		// si un département a été sélectionné
		if (Departement) {
			// si la salle ne se trouve pas dans le département sélectionné
			if (tabSalles[i][0] != Departement) {
				// le salle ne valide plus les critères de recherche
				valid = false ;
			}
		}

		// si un territoire a été sélectionné
		if (nomTerritoire) {
			// si la salle ne se trouve pas dans le territoire sélectionné
			if (tabSalles[i][1] != nomTerritoire) {
				// la salle ne valide plus les critères de recherche
				valid = false ;
			}
		}
		
		// si une communauté de communes a été sélectionnée
		if (nomCommunaute) {
			// si la salle ne se trouve pas dans la communauté sélectionnée
			if (tabSalles[i][2] != nomCommunaute) {
				// la salle ne valide plus les critères de recherche
				valid = false ;
			}
		}

		// si une hauteur utile sous plafond a été saisie
		if (hauteurSaisie) {
			// si la hauteur sous plafond de la salle est inférieur à la hauteur utile saisie
			if (tabSalles[i][3] < hauteurSaisie) {
				// la salle ne valide plus les critères de recherche
				valid = false ;
			}
		}

		// si une largeur mur à mur a été saisie
		if (distanceMurAMur) {
			// si la largeur mur à mur est inférieure à la distance saisie
			if (tabSalles[i][4] < distanceMurAMur) {
				// la salle ne valide pas les critères de recherche
				valid = false ;
			}
		}

		// si la case à cocher "En salle" est cochée
		if (salle) {
			// si il n'y a pas d'accroches en salle
			if (tabSalles[i][5] == "0") {
				// la salle ne valide plus les critères de recherche
				valid = false ;
			}
		}

		// si la case à cocher "En scène" est cochée
		if (scene) {
			// si il n'y a pas d'accroches en scène
			if (tabSalles[i][6] == "0") {
				// la salle ne valide plus les critères de recherche
				valid = false ;
			}
		}

		// si le radio bouton "Possible" de "Occultation" a été coché
		if (occultation == "Possible") {
			// si aucune occultation n'est possible dans la salle
			if (tabSalles[i][7] == "N") {
				// la salle ne valide plus les critères de recherche
				valid = false ;
			}
		}
		// sinon
		else {
			// si le radio bouton "Parfaite" de "Occultation" a été coché
			if (occultation == "Parfaite") {
				// si l'occultation n'est pas parfaite dans la salle
				if (tabSalles[i][7] != "O") {
					// la salle ne valide plus les critères de recherche
					valid = false ;
				}
			}
		}

		// si le radio bouton "Souhaité" de "Gradinage" a été coché
		if (gradinage == "Souhaite") {
			// si le nombre de fauteuils et si le nombre de places en gradins est nul
			if ((tabSalles[i][8] == 0) || (tabSalles[i][9] == 0)) {
				// la salle ne valide plus les critères de recherche
				valid = false ;
			}
		}

		// si la case à cocher "Son" est cochée
		if (son) {
			// si il n'y a pas d'équipement sonore
			if (tabSalles[i][10] == "") {
				// la salle ne valide plus les critères de recherche
				valid = false ;
			}
		}

		// si la case à cocher "Lumière" est cochée
		if (lumiere) {
			// si il n'y a pas d'équipement pour la lumière
			if (tabSalles[i][11] == "") {
				// la salle ne valide plus les critères de recherche
				valid = false ;
			}
		}

		// si le radio bouton "Souhaité" de Equipe technique" est coché
		if (equipeTech == "Souhaite") {
			// si il n'y a pas de personnel technique
			if (tabSalles[i][12] == "pdp") {
				// la salle ne valide plus les critères de recherche
				valid = false ;
			}
		}

		// si la salle a validé tous les critères de recherche
		if (valid) {
			// on incrémente le nombre de réponses validant la recherche
			nbSalles ++ ;
		}
	}

	textAux = nbSalles ;
	if (nbSalles <= 1) { textAux += " salle r&eacute;pertori&eacute;e" ; }
	else { textAux += " salles r&eacute;pertori&eacute;es" ; }
	//document.getElementById("NbRep").innerHTML = textAux ;

	// Aucune salle ne correspond aux critères sélectionnés
	// on envoie un avertissement à l'utilisateur
	if (nbSalles == 0 && false)
	{
		alert("Il n'y a pas de salle validant les critères de recherche que vous avez sélectionné.\nVous devez élargir votre recherche") ;
		return false;
	}

	return true;
}

