
function updateRecipientForm(urlAction, urlActionCities, xmlhttp1, nodeRecipient, nodeType, nodeRaisonSociale, nodeName, nodeFirstName, nodeAddress, nodeAddress2,
						 nodeZipcode, nodeCity, nodeCountry, nodePhone, nodeEmail, nodeCityCombo1, nodeCityText1, nodeDoorCode, nodeState){

	xmlhttp = createXmlHttpRequest();	
	if (xmlhttp !== null) {
		var idAddress = nodeRecipient.value;
		// d?finition de la fonction de call-back ^
		//TODO : supprimer
		xmlhttp.onreadystatechange= function(){ processRecipientFormReply(urlActionCities, xmlhttp1, nodeRecipient, nodeType, nodeRaisonSociale, nodeName, 
					nodeFirstName, nodeAddress, nodeAddress2, nodeZipcode, nodeCity, nodeCountry, nodePhone, nodeEmail, nodeCityCombo1, nodeCityText1, nodeDoorCode, nodeState); };

		//ecriture de l'url d'appel : action + variable code postal
		var url = urlAction + idAddress;

		// param?trage de la requ?te (true = asynchrone)
		xmlhttp.open("GET",url,true);
		// envoi de la requ?te
		xmlhttp.send(null);
	}
}


//fonction call-back renvoyant vers la fonction de traitement de mise a jour de la liste des villes de la comboBox
function processRecipientFormReply (urlActionCities, xmlhttp1, nodeRecipient, nodeType, nodeRaisonSociale, nodeName, nodeFirstName, nodeAddress, nodeAddress2,
						 nodeZipcode, nodeCity, nodeCountry, nodePhone, nodeEmail, nodeCityCombo1, nodeCityText1, nodeDoorCode, nodeState){
	

	// si xmlhttp est "loaded"
	if (xmlhttp.readyState==4){
		// si "OK"
		if (xmlhttp.status==200){
			//la reponse Ajax est arrive, on appelle la methode de MAJ de la liste des villes
			fillRecipientForm(urlActionCities, xmlhttp1, nodeRecipient, nodeType, nodeRaisonSociale, nodeName, nodeFirstName, nodeAddress, nodeAddress2,
						 nodeZipcode, nodeCity, nodeCountry, nodePhone, nodeEmail, nodeCityCombo1, nodeCityText1, nodeDoorCode, nodeState);
		}
	}
}

function fillRecipientForm(urlActionCities, xmlhttp1, nodeRecipient, nodeType, nodeRaisonSociale, nodeName, nodeFirstName, nodeAddress, nodeAddress2,
						 nodeZipcode, nodeCity, nodeCountry, nodePhone, nodeEmail, nodeCityCombo1, nodeCityText1, nodeDoorCode, nodeState) {

	// Effacer la liste des villes
	nodeRecipient.value = 'effacé';

		// Ajouter les nouvelles villes
		var nodeInfosRecipient = xmlhttp.responseXML.documentElement;
		var nodeXmlRecipient = nodeInfosRecipient.firstChild;	
		var i = 0;
		while (nodeXmlRecipient !== null)
		{
			var value = " ";
			var node = nodeXmlRecipient.firstChild;
			if(null != node) {
				value = node.data;
			}
			
			switch (i)
			{
				case 0 :
						if(null != elementType) {
							if(value == "pro") {
								elementType.options.selectedIndex = "1";
							}
							else {
								elementType.options.selectedIndex = "0";
							}
						}
						break;
				case 1 :
						//en quicklshipping, le pays n'apparait pas dans le form de destinataire. 
						if(null != elementCountry) {
							elementCountry.value = value;
							//Appel de la méthode destiner() de la maquette pour mettre a jour le champ "Ville" (respectivement : text/select) 
							//en fonction du pays sélecitonné (respectivement : international/national)
							updateElementsRecipientForm();
						}
						break;
				case 2 : if(idier("rais")) 
							idier("rais").value = value; 
						break;
				case 3 : elementName.value = value; break;
				case 4 : elementFirstName.value = value; break;
				case 5 : elementAddress.value = value; break;
				case 6 : elementAddress2.value = value; break;
				case 7 : elementDoorCode.value = value; break;
				case 8 : 
						elementZipcode.value = value; 
						//TODO : bloquer le javascript en attente du retour de l'ajax des villes
						break;
				case 9 :
						if(document.getElementById("idCityText2")) {
							document.getElementById("idCityText2").value = value;
						}
						if (document.getElementById("vill")) {
							if(isComboBox(document.getElementById("vill"))) {
								document.getElementById("vill").options.selectedIndex = value;
							}
							else {
								document.getElementById("vill").value = value;
							}
						}
						break;
				case 10 : elementState.value = value; break;
				case 11 : elementPhone.value = value; break;
				case 12 : elementEmail.value = value; break;
				
			}
			if(nodeXmlRecipient.nextSibling != null) {	
				nodeXmlRecipient = nodeXmlRecipient.nextSibling.nodeType == 1 ? nodeXmlRecipient.nextSibling : nodeXmlRecipient.nextSibling.nextSibling;
			}
			else {
				nodeXmlRecipient = null;
			}
			i++;
		}
//	}
	
	//Mise a jour ajax de la liste des villes en fonction du code postal
	loadCity(urlActionCities, createXmlHttpRequest(), nodeZipcode, nodeCityCombo1, nodeCityText1);
}



