function update_ville() {
	
	document.getElementById("bloque_chargement").value	= "non";
	
	var codepostal	= document.getElementById("codepostal").value;
	var ville		= document.getElementById("villes").value;
	var dep			= codepostal.substring(0,2);
	
	if (isNaN(codepostal) || 
		(codepostal.length == 3 && dep != "97") || 
		(codepostal.length == 4 && codepostal.substring(0,1) == "0")
	) {
		alert("Merci de saisir un code postal ou un département !");
		document.getElementById("codepostal").focus();
		return false;
	}
	
	if (codepostal.length <= 2) {
		
		document.getElementById("villeSelect").innerHTML = '<input type="text" id="villes" name="villes"  value="" onChange="update_cp();" onClick="efface_ville();" />';
		
		// ON ENVOIE LE SUBMIT :
		waitChargement('departement');
		
		return true;
	}
	
	if (codepostal.length == 1 || codepostal.length == 4) {
		codepostal = "0" + codepostal;
		document.getElementById("codepostal").value = codepostal;
	}
	
	if (codepostal == "75000") {
		codepostal = "75001";
		document.getElementById("codepostal").value = codepostal;
	}
	
	if (codepostal == "13000") {
		codepostal = "13001";
		document.getElementById("codepostal").value = codepostal;
	}
	
	if (codepostal == "69000") {
		codepostal = "69001";
		document.getElementById("codepostal").value = codepostal;
	}
	
	
	var fichier = "squelettes/liste_agences_files/zipcode.php?zipcode="+ codepostal +"&ville="+ ville;
	
	if (window.XMLHttpRequest) { // FIREFOX
		var xhr_object = new XMLHttpRequest();
	} else {
		if (window.ActiveXObject) { // IE
			var xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
		} else {
			//alert('false');
			return false;
		}
	}
	
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	
	if (xhr_object.readyState == 4) {
		
		var resp = xhr_object.responseText;
		document.getElementById("villeSelect").innerHTML = resp;
		
		if (resp.substring(0,7) != '<select') {
			if (document.getElementById("villes").value != "") {
				// ON ENVOIE LE SUBMIT :
				waitChargement('normal');
			}
			else {
				alert("Nous n'avons pas trouvé de ville pour ce code postal !");
				//document.getElementById("bloque_chargement").value = "oui";
				return false;
			}
		}
		
		return true;
	
	} else {
		//alert('false');
		return false;
	}
}


function update_cp() {
	
	document.getElementById("bloque_chargement").value	= "non";
	document.getElementById("codepostal").value			= "";
	
	var ville = document.getElementById("villes").value;
	ville = ville.replace(" ", "-");
	
	if (ville == "") {
		alert("Merci de saisir le nom de la ville !");
		return false;
	}
	
	var bool_special = false;
	var test_ville = ville.toUpperCase();

	if (test_ville == "PARIS") {
		document.getElementById("villes").value		= "PARIS 01";
		document.getElementById("codepostal").value	= "75001";
		bool_special = true;
	}
	
	if (test_ville == "MARSEILLE") {
		document.getElementById("villes").value		= "MARSEILLE 01";
		document.getElementById("codepostal").value	= "13001";
		bool_special = true;
	}
	
	if (test_ville == "LYON") {
		document.getElementById("villes").value		= "LYON 01";
		document.getElementById("codepostal").value	= "69001";
		bool_special = true;
	}
	
	if (bool_special) {
		waitChargement('normal');
		return true;
	}
	
	
	var fichier = "squelettes/liste_agences_files/villes.php?ville="+ ville;
	
	if (window.XMLHttpRequest) { // FIREFOX
		var xhr_object = new XMLHttpRequest();
	} else {
		if (window.ActiveXObject) { // IE
			var xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
		} else {
			//alert('false');
			return false;
		}
	}
	
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	
	if (xhr_object.readyState == 4) {
		
		var resp = xhr_object.responseText;
		document.getElementById("cpSelect").innerHTML = resp;
		
		// ON ENVOIE LE SUBMIT :
		if (document.getElementById("codepostal").value != "" && resp.substring(0,7) != '<select') {
			//update_ville()
			waitChargement('normal');
		}
		else {
			if (document.getElementById("codepostal").value == "") {
				//document.getElementById("bloque_chargement").value = "oui";
				alert("Nous n'avons pas trouvé cette ville !\r\nSaisissez le code postal pour trouver l'agence la plus proche.\r\n\r\nMerci.");
				return false;
			}
		}
		
		return true;
		
	} else {
		//alert('false');
		return false;
	}
}


function waitChargement(type_recherche) {
	
	// GESTION SPECIAL DANS LE CAS D'UN ONCHANGE ET CLICK BOUTON
	// POUR EVITER LE DOUBLE ALERT SI ERREUR CP OU VILLE :
	if (document.getElementById("bloque_chargement").value == "oui") {
		document.getElementById("bloque_chargement").value = "non";
		return false;
	}
	
	if (type_recherche == "complete") {
		
		document.getElementById("codepostal").value = "";
		document.getElementById("villes").value = "";
		
		update_ville();
	}
	
	var codepostal	= document.getElementById("codepostal").value;
	var ville		= document.getElementById("villes").value;
	var dep			= codepostal.substring(0,2);
	
	
	if (type_recherche == "normal") {
		
		if (codepostal != "" && codepostal.length > 4 && ville == "") {
			var init_ville = update_ville();
			if (!init_ville) {
				return false;
			}
		}
		
		if (ville != "" && codepostal == "") {
			var init_cp = update_cp();
			if (!init_cp) {
				return false;
			}
		}
		
	}
	
	// ON EFFACE L'AFFICHAGE DE L'AGENCE DETAILLE :
	if (document.getElementById("idagence") != "undefined" && document.getElementById("idagence") != null) {
		document.getElementById("idagence").value = "";
	}
	
	
	if (document.getElementById("bloc_intro") != "undefined" && document.getElementById("bloc_intro") != null) {
		document.getElementById("bloc_intro").style.visibility			= 'hidden';
		document.getElementById("bloc_intro").style.display				= 'none';
	}
	
	if (document.getElementById("bloc_metier") != "undefined" && document.getElementById("bloc_metier") != null) {
		document.getElementById("bloc_metier").style.visibility			= 'hidden';
		document.getElementById("bloc_metier").style.display			= 'none';
	}
	
	if (document.getElementById("bloc_detail_agence") != "undefined" && document.getElementById("bloc_detail_agence") != null) {
		document.getElementById("bloc_detail_agence").style.visibility	= 'hidden';
		document.getElementById("bloc_detail_agence").style.display		= 'none';
	}
	
	
	document.getElementById("bloc_result_agence").style.visibility		= 'visible';
	document.getElementById("bloc_result_agence").style.display			= 'block';
	document.getElementById("bloc_result_agence").innerHTML				= "<img src='squelettes/images/loading.gif' />";
	
	
	setTimeout("recherche_agences();", 200);
	
}


function recherche_agences() {
	
	var codepostal		= document.getElementById("codepostal").value;
	var villes			= document.getElementById("villes").value;
	var idagence		= "";
	var param_idagence	= "";
	var div_affichage	= "bloc_result_agence";
	
	if (document.getElementById("idagence") != "undefined" && 
		document.getElementById("idagence") != null && 
		document.getElementById("idagence").value != ""
	) {
		
		idagence = document.getElementById("idagence").value;
		
		if (idagence != "" & idagence != " ") {
			
			var fichier = "squelettes/liste_agences_files/recherche_agences.php?idagence=" + idagence;
			
			div_affichage = "bloc_detail_agence";
			
			document.getElementById("bloc_result_agence").style.visibility		= 'hidden';
			document.getElementById("bloc_result_agence").style.display			= 'none';
			
			document.getElementById("bloc_detail_agence").style.visibility		= 'visible';
			document.getElementById("bloc_detail_agence").style.display			= 'block';
			document.getElementById("bloc_detail_agence").innerHTML				= "<img src='squelettes/images/loading.gif' />";
		}
	}
	else {
		
		var dep = codepostal.substring(0,2);
		
		//alert("CP : " + codepostal + " - VILLES : " + villes);
		
		if (dep == "97" || codepostal.length <= 2) {
			// RECHERCHE SUR LE DEPARTEMENT :
			var fichier = "squelettes/liste_agences_files/recherche_agences.php?dep="+ dep +"&codepostal="+ codepostal;
		}
		else {
			// RECHERCHE AGENCES LES PLUS PROCHES :
			var fichier = "squelettes/liste_agences_files/recherche_agences.php?codepostal="+ codepostal +"&villes="+ villes;
		}
	}
	
	
	if (window.XMLHttpRequest) { // FIREFOX
		var xhr_object = new XMLHttpRequest();
	} else {
		if (window.ActiveXObject) { // IE
			var xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
		} else {
			 //alert('false');
			 return false;
		}
	}
	
	
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	
	if (xhr_object.readyState == 4) {
		
		var resp = xhr_object.responseText;
		
		if (resp.substring(0,7) == "agence_") {
			window.location.replace(resp);
		} else {
			document.getElementById(div_affichage).innerHTML = resp;
		}
		
		return true;
	}
	else {
		//alert('false');
		return false;
	}
}


function efface_ville() {
	
	document.getElementById("villeSelect").innerHTML = '<input type="text" id="villes" name="villes"  value="" onChange="javascript:update_cp();" onClick="efface_cp();" />';
	
	return true;
}


function efface_cp() {
	
	document.getElementById("cpSelect").innerHTML = '<input type="text" id="codepostal" name="codepostal" value="" onChange="javascript:update_ville();" onClick="efface_ville();" />';
	
	return true;
}


function effaceRecherche() {
	
	efface_ville();
	efface_cp();
	
	return true;
}