// ajax : change ville en fonction du canton, il faut inclure le fichier etudiant.js qui contient la fonction getHTTPObject().
var http2 = getHTTPObject();

/**
 * handle with "onkeyup" action on "npa" element
 * @param action    value of the "npa" element
 * @param fNom	    "form" name (string)
 * @param fNpa	    "npa" element name (string)
 * @param fVille    "ville" element name (string)
 * @param fCanton   "canton" element name (string)
 */
function checkVille(action, fNom, fVille) {
	http2.open('get', '/profile/villes_cantons.php?canton=' + action + '&fNom=' + fNom + '&fVille=' + fVille, true); // asynchronous
  http2.onreadystatechange = handleVille;
	http2.send(null);
}

/**
 * récupère le fichier XML renvoyé par ville.php
 * require function getText() -> defined in J4ST.js
 */
function handleVille() {
    //displayState();
    if (http2.readyState == 4) {
		if (http2.status == 200) /* 200 : code HTTP pour OK */ {
			//alert(http2.statusText); // debug
			//alert(http2.responseText); // debug
			var xml = http2.responseXML; // XMLDocument
			var rootEl = xml.documentElement; // Element: ville-form
			var ville = rootEl.getElementsByTagName('ville'); // HTMLCollection
			if (ville.length >0){
				var formInfo = rootEl.getElementsByTagName('form-info').item(0); // Element: form-info
				var fNom = formInfo.getElementsByTagName('f-nom').item(0);
				var fVille = formInfo.getElementsByTagName('f-ville').item(0);
				
				var form = document.getElementsByName(getText(fNom)).item(0);
				var element = form.elements.namedItem(getText(fVille));
				element.length = 1;
				for (var i = 0; i < ville.length; i ++) {
					var e = ville.item(i);
					var id = e.getElementsByTagName('id').item(0);
					var nom = e.getElementsByTagName('nom').item(0);
					var npa = e.getElementsByTagName('npa').item(0);
          
					element[element.length] = new Option(getText(npa)+" "+getText(nom), getText(id));
				}
			}
		}
  }
}
