//**************************************************************************************************
// 
//Fonctions qui permettent de charger les combos Marque et Modèle en fonction du tableau tbMateriel
//
//**************************************************************************************************


function ChargeMarque() {
	//Charge la combo "Marque"
				
	var Gamme;
	var ExMarque;
	var Trouve;
	
	Gamme	= "";
	if (document.Recherche.Gamme.length > 0) {
		Gamme	= document.Recherche.Gamme[document.Recherche.Gamme.selectedIndex].text; //Description de la gamme sélectionnée
	}
								
	//Première ligne vide
	document.Recherche.Marque.length = 1; //Nombre d'éléments dans la combo "Marque"
	document.Recherche.Marque.options[0].value	= "";
	document.Recherche.Marque.options[0].text	= "La marque";
				
	//On charge la combo
	if (Gamme == "") {
		//Pas de gamme sélectionnée
					
		tbMateriel	= tbMateriel.sort(TrieMarque); //On trie le tableau par la marque
		ExMarque	= "";
					
		for (var i = 0; i < tbMateriel.length; i ++) {
			if (tbMateriel[i][1] != ExMarque) {
				document.Recherche.Marque.length ++;
				document.Recherche.Marque.options[document.Recherche.Marque.length - 1].value	= tbMateriel[i][1];
				document.Recherche.Marque.options[document.Recherche.Marque.length - 1].text	= tbMateriel[i][1];
							
				ExMarque	= tbMateriel[i][1];
			}
		}
	}
	else {
		//Une gamme est sélectionnée
					
		tbMateriel	= tbMateriel.sort(TrieGammeMarque); //On trie le tableau par la gamme et la marque
		ExMarque	= "";
		Trouve		= false;
					
		for (var i = 0; i < tbMateriel.length; i ++) {
			if (tbMateriel[i][0] == Gamme) {
						
				Trouve	= true;
							
				if (tbMateriel[i][1] != ExMarque) {
					document.Recherche.Marque.length ++;
					document.Recherche.Marque.options[document.Recherche.Marque.length - 1].value	= tbMateriel[i][1];
					document.Recherche.Marque.options[document.Recherche.Marque.length - 1].text	= tbMateriel[i][1];
							
					ExMarque	= tbMateriel[i][1];
				}
			}
			else {
				if (Trouve) {
					break; //On sort de la boucle car tous les véhicules de la gamme sélectionnée ont été parcourus
				}
			}
		}
	}
							
	ChargeModele();
}
			
function ChargeModele() {
	//Charge la combo "Modèle"
				
	var Gamme;
	var Marque;
	var ExModele;
	var Trouve;
	
	Gamme	= "";
	Marque	= "";
	if (document.Recherche.Gamme.length > 0) {
		Gamme	= document.Recherche.Gamme[document.Recherche.Gamme.selectedIndex].text; //Description de la gamme sélectionnée
	}
	if (document.Recherche.Marque.length > 0) {
		Marque	= document.Recherche.Marque[document.Recherche.Marque.selectedIndex].text; //Description de la marque sélectionnée
	}
		
	//Première ligne vide
	document.Recherche.Modele.length = 1; //Nombre d'éléments dans la combo "Modèle"
	document.Recherche.Modele.options[0].value	= "";
	document.Recherche.Modele.options[0].text	= "Le modèle";
				
	//On charge la combo
	if (Marque != "") {
		if (Gamme == "") {
			//Pas de gamme sélectionnée
						
			tbMateriel	= tbMateriel.sort(TrieMarqueModele); //On trie le tableau par la marque et le modèle
			ExModele	= "";
			Trouve		= false;
						
			for (var i = 0; i < tbMateriel.length; i ++) {
				if (tbMateriel[i][1] == Marque) {
							
					Trouve	= true;
								
					if (tbMateriel[i][2] != ExModele) {
						document.Recherche.Modele.length ++;
						document.Recherche.Modele.options[document.Recherche.Modele.length - 1].value	= tbMateriel[i][2];
						document.Recherche.Modele.options[document.Recherche.Modele.length - 1].text	= tbMateriel[i][2];
									
						ExModele	= tbMateriel[i][2];
					}
				}
				else {
					if (Trouve) {
						break; //On sort de la boucle car tous les véhicules de la marque sélectionnée ont été parcourus
					}
				}
			}
		}
		else {
			//Une gamme est sélectionnée
						
			tbMateriel	= tbMateriel.sort(TrieGammeMarqueModele); //On trie le tableau par la gamme, la marque et le modèle
			ExModele	= "";
			Trouve		= false;
						
			for (var i = 0; i < tbMateriel.length; i ++) {
				if (tbMateriel[i][0] == Gamme && tbMateriel[i][1] == Marque) {
							
					Trouve = true;
								
					if (tbMateriel[i][2] != ExModele) {
						document.Recherche.Modele.length ++;
						document.Recherche.Modele.options[document.Recherche.Modele.length - 1].value	= tbMateriel[i][2];
						document.Recherche.Modele.options[document.Recherche.Modele.length - 1].text	= tbMateriel[i][2];
								
						ExModele	= tbMateriel[i][2];
					}
				}
				else {
					if (Trouve) {
						break; //On sort de la boucle car tous les véhicules de la gamme et de la marque sélectionnées ont été parcourus
					}
				}
			}
		}
	}
}
			
function TrieElementTab(Val1, Val2, Ind) {
	//Trie dans l'ordre alphabétique un élément du tableau
	//Paramètres :
	//	- Val1 : Première valeur à comparer
	//	- Val2 : Deuxième valeur à comparer
	//	- Ind  : Indice de l'élément du tableau à trier
				
	if (Val1[Ind] < Val2[Ind]) {
		return -1; //Val1 < Val2 -> On place Val1 avant Val2
	}
	else {
		if (Val1[Ind] > Val2[Ind]) {
			return 1; //Val1 > Val2 -> On place Val1 après Val2
		}
		else {
			return 0; //On ne change pas la position des 2 valeurs
		}
	}
}
			
function TrieGammeMarque(Val1, Val2) {
	//Trie en fonction de la gamme et la marque
	//Paramètres :
	//	- Val1 : Première valeur à comparer
	//	- Val2 : Deuxième valeur à comparer
				
	var Tri;
				
	Tri	= TrieElementTab(Val1, Val2, 0); //Trie en fonction de la gamme
				
	if (Tri == 0) {
		return TrieElementTab(Val1, Val2, 1); //Trie en fonction de la marque
	}
	else {
		return Tri;
	}
}
			
function TrieMarque(Val1, Val2) {
	//Trie en fonction de la marque
	//Paramètres :
	//	- Val1 : Première valeur à comparer
	//	- Val2 : Deuxième valeur à comparer
				
	return TrieElementTab(Val1, Val2, 1);
}		
			
function TrieGammeMarqueModele(Val1, Val2) {
	//Trie en fonction de la gamme, de la marque et du modèle
	//Paramètres :
	//	- Val1 : Première valeur à comparer
	//	- Val2 : Deuxième valeur à comparer
				
	var Tri;
				
	Tri	= TrieElementTab(Val1, Val2, 0); //Trie en fonction de la gamme
				
	if (Tri == 0) {
		Tri	= TrieElementTab(Val1, Val2, 1); //Trie en fonction de la marque
		if (Tri == 0) {
			return TrieElementTab(Val1, Val2, 2); //Trie en fonction du modèle
		}
		else {
			return Tri;
		}
	}
	else {
		return Tri;
	}
}
			
function TrieMarqueModele(Val1, Val2) {
	//Trie en fonction de la marque et du modèle
	//Paramètres :
	//	- Val1 : Première valeur à comparer
	//	- Val2 : Deuxième valeur à comparer
				
	var Tri;
				
	Tri	= TrieElementTab(Val1, Val2, 1); //Trie en fonction de la marque
				
	if (Tri == 0) {
		return TrieElementTab(Val1, Val2, 2); //Trie en fonction du modèle
	}
	else {
		return Tri;
	}
}
