	// WS COMMUNES

	function communesHandler(listParams)
	{
		// Si l'objet de retour existe
		if (listParams != null)
		{
			// On retire les r\u00e9sultats pr\u00e9c\u00e9dents
			dwr.util.removeAllOptions("commune-garage");
			// S'il n'y a eu aucune erreur
			if ("" == listParams.error)
			{
				// On ajoute les r\u00e9sultats de cet appel
				dwr.util.addOptions("commune-garage", listParams.communes);
			}
			else
			{
				// On affiche l'erreur
				alert(listParams.error);
			}
		}
	}
	
	function communesHandlerEtablissement(listParams)
	{
		if (listParams != null)
		{
			dwr.util.removeAllOptions("commune-banque-rib");
			if ("" == listParams.error)
			{
				dwr.util.addOptions("commune-banque-rib", listParams.communes);
			}
			else
			{
				alert(listParams.error);
			}
		}
	}
	
	function communesHandlerTitulaire(listParams)
	{
		if (listParams != null)
		{
			dwr.util.removeAllOptions("commune-titulaire-rib");
			if ("" == listParams.error)
			{
				dwr.util.addOptions("commune-titulaire-rib", listParams.communes);
			}
			else
			{
				alert(listParams.error);
			}
		}
	}

	// WS VEHICULE
	function marqueHandler(listParams) 
	{
		if (listParams != null)
		{
			if ("" == listParams.error)
			{
				dwr.util.removeAllOptions("marque-vehicule");
				dwr.util.addOptions("marque-vehicule", listParams.marques, 'code', 'label');
			}
			else
			{
				alert(listParams.error);
			}
		}

	}

	function modeleHandler(listParams) 
	{
		if (listParams != null)
		{
			if ("" == listParams.error)
			{
				dwr.util.removeAllOptions("modele-vehicule");
				dwr.util.addOptions("modele-vehicule", ["Choisissez un modele..."]);
				dwr.util.addOptions("modele-vehicule", listParams.modeles, 'code', 'label');
			}
			else
			{
				alert(listParams.error);
			}
		}
	}

	function versionHandler(listParams) 
	{
		if (listParams != null)
		{
			if ("" == listParams.error)
			{
				if (!preserveFilters)
				{
					dwr.util.removeAllOptions("puissance-fiscale");
					dwr.util.addOptions("puissance-fiscale", ["Tout"]);
					dwr.util.addOptions("puissance-fiscale", listParams.puissancesFiscales);
					
					dwr.util.removeAllOptions("carrosserie");
					dwr.util.addOptions("carrosserie", ["Tout"]);
					dwr.util.addOptions("carrosserie", listParams.carrosseries);
					
					dwr.util.removeAllOptions("places");
					dwr.util.addOptions("places", ["Tout"]);
					dwr.util.addOptions("places", listParams.places);
				}
				
				var labelMarqueModele = document.getElementById("marque-vehicule").value.split("|")[1] + " " + document.getElementById("modele-vehicule").value.split("|")[1];
				// Les infos sur la marque et le modele sont dans le libelle pour la recherche type mines

				dwr.util.removeAllRows("version-vehicule");
				dwr.util.addRows("version-vehicule", 
								listParams.versions, 
								[ 	function(data) { return '<input  name="GTA" type="radio" style="border:0" id="GTA'+data.code+'" onChange="selectVeh()" onSelect="selectVeh()" onClick="selectVeh()" value="'+data.code+'"/>'; }, 
									function(data) { return '<label for="GTA'+data.code+'" style="font-size: 8pt; font-weight:normal;" >'+labelMarqueModele + ' ' + data.label + ' (' + data.carrosserie +  ' ' + data.places + ' places ' + data.puissanceFiscale + ' CV)</label>'; }
								],
								{ escapeHtml:false } );

				unselectVeh();

				document.getElementById('stepVeh').style.display="block";
				showFade('tableVeh');

				preserveFilters = true;
			}
			else
			{
				var error = listParams.error;
				if (listParams.rejected)
				{
					error = error + " Merci de contacter le 0 890 460 075 (0,15 Euros TTC/min) pour plus de pr\u00e9cisions.";
				}
				else
				{
					error = error + " Merci de bien vouloir v\u00e9rifier l'\u00e9nergie.";
				}
				alert(error);
			}
		}
	}

	function chargeMarques()
	{
		var data = {};
		ProxyClassier.Execute("marque", data, marqueHandler);
	}

	function changeMarque()
	{
		if (document.getElementById("marque-vehicule").value != "")
		{
			if (document.getElementById("marque-vehicule").value != "autres")
			{
				chargeModeles();
				document.getElementById('stepModele').style.display='block';
				document.getElementById('stepMEC').style.display='none';
				document.getElementById('stepEnergie').style.display='none';
				document.getElementById('stepVersion').style.display='none';
				document.getElementById('searchVeh').style.display='none';
				document.getElementById('stepVeh').style.display='none';
			}
			else
			{
				chargeMarques();
			}
		}
		else
		{
			document.getElementById('stepModele').style.display='none';
			document.getElementById('stepMEC').style.display='none';
			document.getElementById('stepEnergie').style.display='none';
			document.getElementById('stepVersion').style.display='none';
		}
	}

	function chargeModeles()
	{
		dwr.util.removeAllOptions("modele-vehicule");
		dwr.util.addOptions("modele-vehicule", ["Chargement..."]);

		var data = {};
		data["marqueId"] = document.getElementById("marque-vehicule").value;
		ProxyClassier.Execute("modele", data, modeleHandler);
	}

	function changeModele()
	{
		var dataModele = document.getElementById("modele-vehicule").value;
		if (dataModele != "Choisissez un modele...")
		{
			dwr.util.removeAllOptions("anneecircu");
			dwr.util.addOptions("anneecircu", ["..."] );

			var anneeMin = dataModele.split("|")[2];
			var anneeMax = dataModele.split("|")[3];
			var i=0;
			
			for (i=anneeMax; i>=anneeMin; i--)
			{
				dwr.util.addOptions("anneecircu", [i] );
			}
			
			document.getElementById('stepMEC').style.display='block';
			document.getElementById('stepVersion').style.display='none';
			document.getElementById('stepEnergie').style.display='none';
			document.getElementById('searchVeh').style.display='none';
			document.getElementById('stepVeh').style.display='none';
		}
	}
	
	function changeMEC()
	{
		if ("..." != document.getElementById("anneecircu").value)
		{
			document.getElementById('stepEnergie').style.display='block';
			document.getElementById('searchVeh').style.display='block';
		}
	}

	function chercheVersions()
	{
		if 	(
				(document.getElementById("modele-vehicule").value != "Choisissez un modele...")
				&& (document.getElementById("anneecircu").value != "...")
			)
		{
			raZVersions();
			
			chargeVersions();
			preserveFilters = false;

			document.getElementById('stepVersion').style.display='block';
		}
	}
	
	function raZVersions()
	{
		dwr.util.removeAllOptions("puissance-fiscale");
		dwr.util.addOptions("puissance-fiscale", ["Chargement..."]);

		dwr.util.removeAllOptions("carrosserie");
		dwr.util.addOptions("carrosserie", ["Chargement..."]);

		dwr.util.removeAllOptions("places");
		dwr.util.addOptions("places", ["Chargement..."]);
	}

	function chargeVersions()
	{
		var marqueId = "";
		var modeleId = "";
		var typeMines = "";
		
		marqueId = document.getElementById("marque-vehicule").value;
		modeleId = document.getElementById("modele-vehicule").value;

		// Refresh visuel		
		document.getElementById('stepVeh').style.display="none";

		dwr.util.removeAllRows("version-vehicule");
		dwr.util.addRows("version-vehicule", ["Chargement..."], [ function(data) { return data; } ] );
		
		unselectVeh();

		// valeur filtres
		var libEnergie = document.getElementById("energie-vehicule").value;
		if ( ("Tout" == libEnergie) || ("Chargement..." == libEnergie) ) libEnergie = "";

		var libCarrosserie = document.getElementById("carrosserie").value;
		if ( ("Tout" == libCarrosserie) || ("Chargement..." == libCarrosserie) ) libCarrosserie = "";

		var places = document.getElementById("places").value;
		if ( ("Tout" == places) || ("Chargement..." == places) ) places = "";

		var puissanceFiscale = document.getElementById("puissance-fiscale").value;
		if ( ("Tout" == puissanceFiscale) || ("Chargement..." == puissanceFiscale) ) puissanceFiscale = "";
		
		var anneeMEC = "";//document.getElementById("anneecircu").value;

		var data = {};
		data["marqueId"] = marqueId;
		data["modeleId"] = modeleId;
		data["libEnergie"] = libEnergie;
		data["libCarrosserie"] = libCarrosserie;
		data["places"] = places;
		data["puissanceFiscale"] = puissanceFiscale;
		data["anneeMEC"] = anneeMEC;
		ProxyClassier.Execute("version", data, versionHandler);
	}

	function chargeCommunes()
	{
		// On stocke le code postal saisi
		var cp = dijit.byId("cp-garage").getValue();
		// On v\u00e9rifie si le champ Code Postal a la bonne longueur
		if (5 == cp.length)
		{
			dwr.util.removeAllOptions("commune-garage");
			document.getElementById("stepCommune").style.display = "inline";
			dwr.util.addOptions("commune-garage", ["Chargement..."] );
			ProxyCommunesParCP.Execute(cp, communesHandler);
		}
	}
	
	function chargeCommunesEtablissement()
	{
		var cp = dijit.byId("code-postal-banque-rib").getValue();
		if (5 == cp.length)
		{
			dwr.util.removeAllOptions("commune-banque-rib");
			document.getElementById("stepCommuneBanque").style.display = "inline";
			dwr.util.addOptions("commune-banque-rib", ["Chargement..."] );
			ProxyCommunesParCP.Execute(cp, communesHandlerEtablissement);
		}
	}
	
	
	function chargeCommunesTitulaire()
	{
		var cp = dijit.byId("code-postal-titulaire-rib").getValue();
		if (5 == cp.length)
		{
			dwr.util.removeAllOptions("commune-titulaire-rib");
			//document.getElementById("stepCommuneBanque").style.display = "inline";
			dwr.util.addOptions("commune-titulaire-rib", ["Chargement..."] );
			ProxyCommunesParCP.Execute(cp, communesHandlerTitulaire);
		}
	}