function ComboChange(Combo, CodeAction)
{
	var NomCombo;
	var ItemCombo;
	var ListeItems = new Array();
	var SelectItem = new Array();
	var ComboDest;
	var FindComboDest;
	var ValDefaut;
	var ItemIndex;
	// --
	NomCombo = Combo.name;
	NomCombo = NomCombo.substring(3, NomCombo.length);
	ItemCombo = Combo.options[Combo.selectedIndex];
	// --
	FindComboDest = false;
	if (Items[NomCombo] != null) {
		for (i = 0; i < Combo.form.elements.length; i++)
		{
			ComboDest = Combo.form.elements[i];
			if (ComboDest.name.indexOf(Items[NomCombo].NomComboDest) != -1 && ComboDest.type == "select-one")
			{ 
				FindComboDest = true;
				break;		
			}
		}
	}
	// --
	if (FindComboDest) {
		//ValDefaut = QueryString(ComboDest.name);
		if (typeof(DefaultVal) != "undefined")
		{
			if (DefaultVal[ComboDest.name] != "") 
			{
				ValDefaut = DefaultVal[ComboDest.name];
			}
		}
		// -- Gestion du Tous / Toutes
		if (Combo.selectedIndex == 0) {
			ListeItems = Items[NomCombo][ItemCombo.value].split("|");
			if (CodeAction == "AS") 
			{
				Item = new Option(ListeItems[1], "", false, false);
			}
			else 
			{
				Item = new Option(ListeItems[0], "", false, false);
			}
			ComboDest.length = 1;
			ComboDest.options[0] = Item;
			ComboDest.selectedIndex = 0;
		}
		// --
		continueProcess = true;
		if (Combo.options[0].value == "-1") { continueProcess = (Combo.selectedIndex > 0); }

		if (continueProcess)
		{
			if (Items[NomCombo][ItemCombo.value] != null)
			{
				ComboDest.disabled;
				ListeItems = Items[NomCombo][ItemCombo.value].split("|");
				ComboDest.length = ListeItems.length + (1 && CodeAction == "AR");
				// -- En consultation on ajoute "Tous" en premier dans la liste de ComboDest
				ItemIndex = 0;
				if (CodeAction == "AR") 
				{
					Item = new Option("Tous", "", false, false);
		 			ComboDest.options[0] = Item;
				}
				
				// -- En publication on ajoute la valeur par defaut (i.e "Choix du modèle") en premier dans la liste de ComboDest
				if (CodeAction == "AS")
				{

					SelectItem = Items[NomCombo]["-1"].split("|");
					Item = new Option(SelectItem[1], "", false, false);
		 			ComboDest.options[0] = Item;
				}
//				alert(ValDefaut);

				for (i = 0; i < ListeItems.length; i++)
				{
					//alert(ListeItems[i].replace(/ /g, "-").toLowerCase());
					if (ValDefaut != "" && ListeItems[i].replace(/ /g, "-").toLowerCase() == ValDefaut) ItemIndex = i+1;
					Item = new Option(ListeItems[i], ListeItems[i], false, false);
			 		//ComboDest.options[i + (1 && CodeAction == "AR")] = Item;
					ComboDest.options[i+1] = Item;
				}
				ComboDest.selectedIndex = ItemIndex;
			}
			else {
				ComboDest.length = 1;
			}
		}
	}
}

function ComboChange2Crit(Combo, Combo2, CodeAction)
{
	var NomCombo;
	var ItemCombo;
	var ListeItems = new Array();
	var SelectItem = new Array();
	var ComboDest;
	var FindComboDest;
	var ValDefaut;
	var ItemIndex;
	// --
	NomCombo = Combo.name;
	NomCombo = NomCombo.substring(3, NomCombo.length);
	ItemCombo = Combo.options[Combo.selectedIndex];
	ItemCombo2 = Combo2.options[Combo2.selectedIndex];		
	// --
	FindComboDest = false;
	if (Items[NomCombo] != null) {
		for (i = 0; i < Combo.form.elements.length; i++)
		{
			ComboDest = Combo.form.elements[i];
			if (ComboDest.name.indexOf(Items[NomCombo].NomComboDest) != -1 && ComboDest.type == "select-one")
			{ 
				FindComboDest = true;
				break;		
			}
		}
	}
	// --

	if (FindComboDest) {
		ValDefaut = QueryString(ComboDest.name);
		
		if (ValDefaut == "" && DefaultVal != null)
		{
			if (DefaultVal[ComboDest.name] != "") {
				ValDefaut = DefaultVal[ComboDest.name];
			} 
		}
		// -- Gestion du Tous / Toutes
		if (Combo.selectedIndex == 0) {
			ListeItems = Items[NomCombo]["-1"].split("|");

			if (CodeAction == "AS") 
			{
				Item = new Option(ListeItems[1], "", false, false);
			}
			else 
			{
				Item = new Option(ListeItems[0], "", false, false);
			}
			ComboDest.length = 1;
			ComboDest.options[0] = Item;
			ComboDest.selectedIndex = 0;
		}
		// --
		if (Combo.selectedIndex != 0) 
		{
		

			if (Items[NomCombo][ItemCombo2.value + "_" + ItemCombo.value] != null)
			{
				ComboDest.disabled;
				ListeItems = Items[NomCombo][ItemCombo2.value + "_" + ItemCombo.value].split("|");
				ComboDest.length = ListeItems.length + (1 && CodeAction == "AR");
				// -- En consultation on ajoute "Tous" en premier dans la liste de ComboDest
				ItemIndex = 0;
				if (CodeAction == "AR") 
				{
					Item = new Option("Tous", "", false, false);
		 			ComboDest.options[0] = Item;
				}
				
				// -- En publication on ajoute la valeur par defaut (i.e "Choix du modèle") en premier dans la liste de ComboDest
				if (CodeAction == "AS")
				{

					SelectItem = Items[NomCombo]["-1"].split("|");
					Item = new Option(SelectItem[1], "", false, false);
		 			ComboDest.options[0] = Item;
				}
//				alert(ValDefaut);

				for (i = 0; i < ListeItems.length; i++)
				{

					if (ValDefaut != "" && ListeItems[i] == ValDefaut) ItemIndex = i+1;
					Item = new Option(ListeItems[i], ListeItems[i], false, false);
			 		//ComboDest.options[i + (1 && CodeAction == "AR")] = Item;
					ComboDest.options[i+1] = Item;
				}
				ComboDest.selectedIndex = ItemIndex;
			}
			else {
				ComboDest.length = 1;
			}
		}
	}
}

function ComboLoadModele(Combo1, Combo2, Combo3)
{
	var ItemCombo1;
	var ItemCombo2;
	var ListeItems = new Array();
	var SelectItem = new Array();
	var ComboDest;
	var FindComboDest;
	var ValDefaut;
	var ItemIndex = 0;

	var CylMin;
	var CylMax;

	ItemCombo1 = Combo1.options[Combo1.selectedIndex];
	ItemCombo2 = Combo2.options[Combo2.selectedIndex];	
	
	ValDefaut = QueryString(Combo3.name);
	if (ValDefaut == "" && DefaultVal != null)
	{
		if (DefaultVal[Combo3.name] != "") {
			ValDefaut = DefaultVal[Combo3.name];
		} 
	}

	
	if (Combo1.selectedIndex != 0) 
	{
		var ListeCylindree = new Array();
		ListeCylindree = Items["MARQUE"][ItemCombo1.value].split("|");

		switch (ItemCombo2.value)
		{
			case "-":
				CylMin = 0;
				CylMax = 99999;
				break;
			case "-50" :
				CylMin = 0;
				CylMax = 50;
				break;
			case "51-125":
				CylMin = 51;
				CylMax = 125;
				break;
			case "126-250":
				CylMin = 126;
				CylMax = 250;
				break;
			case "251-500":
				CylMin = 251;
				CylMax = 500;
				break;
			case "501-750":
				CylMin = 501;
				CylMax = 750;
				break;
			case "751-1000":
				CylMin = 751;
				CylMax = 1000;
				break;
			case "1001-1500":
				CylMin = 1001;
				CylMax = 1500;
				break;
			case "1501-":
				CylMin = 1501;
				CylMax = 99999;
				break;
		}

		
		var CylCount = ListeCylindree.length;
		for (i=CylCount-1 ;i >=0; --i)
		{
			var Cyl = parseInt(ListeCylindree[i],10);
			if ((Cyl < CylMin) || (Cyl > CylMax))
			{
				ListeCylindree = ArrayRemove(ListeCylindree,i);
			}
		}
		
		var sListeModele = "";
		CylCount = ListeCylindree.length;
		for (i=CylCount-1 ;i >=0; --i)
		{
			if (sListeModele != "") sListeModele += "|";
			sListeModele += Items["CYLINDREE"][ItemCombo1.value + "_" + ListeCylindree[i]];
		}

		var ListeModele = new Array();
		ListeModele = sListeModele.split("|");
		
		ListeModele = ArrayClean(ListeModele);
		ListeModele.sort();

		while( Combo3.options.length ) 
		{ 
			Combo3.options[0] = null; 
		}

		Item = new Option("Tous", "", false, false);
		Combo3.options[0] = Item;

		for (i=0;i<ListeModele.length;++i)
		{
			Item = new Option(ListeModele[i],ListeModele[i],(ValDefaut == ListeModele[i-1]),(ValDefaut == ListeModele[i-1]));
			Combo3.options[i+1] = Item;
		}
	
		Combo3.SelectedIndex = ItemIndex;
	} else Combo3.options.length = 1;
}

function ArrayRemove(anArray,anIndex)
{
	if (anArray.length == 1) return new Array();
	
	var tmpArr = new Array(anArray.length - 1);
	var j = -1;
	for(i=0;i<anArray.length;++i)
	{
		if (i != anIndex)
		{
			tmpArr[++j] = anArray[i];
		}	
	}
	return tmpArr;
}

function InArray(anArray, value)
{
	for (n=0;n<anArray.length;n++)
		if (anArray[n] == value) return true;
	return false;
}

function ArrayClean(anArray)
{
	var found = true;
	var tmpArr = new Array(0);
	
	for (k=0;k<anArray.length;++k)
	{
		if (!InArray(tmpArr,anArray[k]))
		{
			tmpArr.length++;
			tmpArr[tmpArr.length-1]=anArray[k];
		}
	}

	return tmpArr;
}


function QueryString(keyName)
{
	var keyValue = "";
	keyName = keyName.toUpperCase() + "=";

	if (window.location.href.indexOf("?") != "-1")
	{
		var queryString = window.location.href.substring(window.location.href.indexOf("?")+1);
		
		var searchString = queryString.toUpperCase();
		if (searchString.indexOf(keyName) != "-1")
		{
			var keyValueStart = parseInt(searchString.indexOf(keyName))+keyName.length;
			var keyValueEnd = searchString.indexOf("&", keyValueStart);
			var keyValueEnd = (keyValueEnd != "-1") ? keyValueEnd : searchString.length;
			keyValue = queryString.substring(keyValueStart,keyValueEnd);
		}
	}
	return unescape(keyValue.replace(/\+/g," "));
}