//**************************************************************************************************
// 
//Fonctions qui permettent de charger les combos Gamme et Marque en fonction du tableau tbMateriel
//
//**************************************************************************************************


function ChargeGamme() {
	//Charge la combo "Gamme"
				
	var Famille;
	var ExGamme;
	var Trouve;
	
	Famille	= "";
	if (document.Recherche.Famille.length > 0) {
		Famille	= document.Recherche.Famille[document.Recherche.Famille.selectedIndex].text; //Description de la famille sélectionnée
	}
										
	//Première ligne vide
	document.Recherche.Gamme.length = 1; //Nombre d'éléments dans la combo "Gamme"
	document.Recherche.Gamme.options[0].value	= "";
	document.Recherche.Gamme.options[0].text	= "";
				
	//On charge la combo
	if (Famille != "") {
		//Une famille est sélectionnée
					
		tbMateriel	= tbMateriel.sort(TrieFamilleGamme); //On trie le tableau par la famille et la gamme
		ExGamme		= "";
		Trouve		= false;
					
		for (var i = 0; i < tbMateriel.length; i ++) {
			if (tbMateriel[i][0] == Famille) {
						
				Trouve	= true;
							
				if (tbMateriel[i][1] != ExGamme) {
					document.Recherche.Gamme.length ++;
					document.Recherche.Gamme.options[document.Recherche.Gamme.length - 1].value	= tbMateriel[i][1];
					document.Recherche.Gamme.options[document.Recherche.Gamme.length - 1].text	= tbMateriel[i][1];
							
					ExGamme	= tbMateriel[i][1];
				}
			}
			else {
				if (Trouve) {
					break; //On sort de la boucle car tous les véhicules de la famille sélectionnée ont été parcourus
				}
			}
		}
	}
							
	ChargeMarque();
}

function ChargeMarque() {
	//Charge la combo "Marque"
	
	var Famille;		
	var Gamme;
	var ExMarque;
	var Trouve;
	
	Famille	= "";
	Gamme	= "";
	if (document.Recherche.Famille.length > 0) {
		Famille	= document.Recherche.Famille[document.Recherche.Famille.selectedIndex].text; //Description de la famille sélectionnée
	}
	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	= "";
				
	//On charge la combo
	if (Gamme == "") {
		//Pas de gamme sélectionnée
		
		if (Famille != "") {
			//Une famille est sélectionnée
			
			tbMateriel	= tbMateriel.sort(TrieFamilleMarque); //On trie le tableau par la famille et la marque
			ExMarque	= "";
			Trouve		= false;
						
			for (var i = 0; i < tbMateriel.length; i ++) {
				if (tbMateriel[i][0] == Famille) {
							
					Trouve	= true;
								
					if (tbMateriel[i][2] != ExMarque) {
						document.Recherche.Marque.length ++;
						document.Recherche.Marque.options[document.Recherche.Marque.length - 1].value	= tbMateriel[i][2];
						document.Recherche.Marque.options[document.Recherche.Marque.length - 1].text	= tbMateriel[i][2];
								
						ExMarque	= tbMateriel[i][2];
					}
				}
				else {
					if (Trouve) {
						break; //On sort de la boucle car tous les véhicules de la gamme sélectionnée ont été parcourus
					}
				}
			}
		}
		else {
			tbMateriel	= tbMateriel.sort(TrieMarque); //On trie le tableau par la marque
			ExMarque	= "";
						
			for (var i = 0; i < tbMateriel.length; i ++) {
				if (tbMateriel[i][2] != ExMarque) {
					document.Recherche.Marque.length ++;
					document.Recherche.Marque.options[document.Recherche.Marque.length - 1].value	= tbMateriel[i][2];
					document.Recherche.Marque.options[document.Recherche.Marque.length - 1].text	= tbMateriel[i][2];
								
					ExMarque	= tbMateriel[i][2];
				}
			}
		}
	}
	else {
		//Une gamme est sélectionnée
					
		tbMateriel	= tbMateriel.sort(TrieFamilleGammeMarque); //On trie le tableau par la famille, la gamme et la marque
		ExMarque	= "";
		Trouve		= false;
					
		for (var i = 0; i < tbMateriel.length; i ++) {
			if (tbMateriel[i][0] == Famille && tbMateriel[i][1] == Gamme) {
						
				Trouve	= true;
							
				if (tbMateriel[i][2] != ExMarque) {
					document.Recherche.Marque.length ++;
					document.Recherche.Marque.options[document.Recherche.Marque.length - 1].value	= tbMateriel[i][2];
					document.Recherche.Marque.options[document.Recherche.Marque.length - 1].text	= tbMateriel[i][2];
							
					ExMarque	= tbMateriel[i][2];
				}
			}
			else {
				if (Trouve) {
					break; //On sort de la boucle car tous les véhicules de la gamme sélectionnée 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 TrieFamilleGamme(Val1, Val2) {
	//Trie en fonction de la famille et la gamme
	//Paramètres :
	//	- Val1 : Première valeur à comparer
	//	- Val2 : Deuxième valeur à comparer
				
	var Tri;
				
	Tri	= TrieElementTab(Val1, Val2, 0); //Trie en fonction de la famille
				
	if (Tri == 0) {
		return TrieElementTab(Val1, Val2, 1); //Trie en fonction de la gamme
	}
	else {
		return Tri;
	}
}

function TrieFamilleMarque(Val1, Val2) {
	//Trie en fonction de la famille 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 famille
				
	if (Tri == 0) {
		return TrieElementTab(Val1, Val2, 2); //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, 2);
}

function TrieFamilleGammeMarque(Val1, Val2) {
	//Trie en fonction de la famille, de la gamme et de 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 famille
				
	if (Tri == 0) {
		Tri	= TrieElementTab(Val1, Val2, 1); //Trie en fonction de la gamme
		if (Tri == 0) {
			return TrieElementTab(Val1, Val2, 2); //Trie en fonction de la marque
		}
		else {
			return Tri;
		}
	}
	else {
		return Tri;
	}
}
	
