var http_request = false;

function makeRequest(url) {
		http_request = false;

		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				http_request.overrideMimeType('text/xml');
			}
		} else if (window.ActiveXObject) { // IE
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}

		if (!http_request) {
			alert('Votre navigateur ne supporte pas les requêtes AJAX. Vous devez utiliser un navigateur plus récent pour pouvoir profiter de tous les services de notre site web');
			return false;
		}
		http_request.onreadystatechange = update_page;
		document.getElementById(da).style.display = 'block';
		http_request.open('GET', url, true);
		http_request.send(null);
}

function loadxml(type, nom, prefix) {
	vdd = prefix + 'villedropdown';
	ddd = prefix + 'departementdropdown';
	rdd = prefix + 'regiondropdown';
	pdd = prefix + 'paysdropdown';
	vt = prefix + 'villetext';
	rt = prefix + 'regiontext';
	dvdd = prefix + 'divvilledropdown';
	dddd = prefix + 'divdepartementdropdown';
	drdd = prefix + 'divregiondropdown';
	dpdd = prefix + 'divpaysdropdown';
	dvt = prefix + 'divvilletext';
	drt = prefix + 'divregiontext';
	da = prefix + 'divattente';
	if (type == "pays" && nom == ""){
		document.getElementById(dvdd).style.display = 'none';
		document.getElementById(dddd).style.display = 'none';
		document.getElementById(drdd).style.display = 'none';
		document.getElementById(dvt).style.display = 'none';
		document.getElementById(drt).style.display = 'none';
		cleardropdown(vdd);
		cleardropdown(ddd);
		cleardropdown(rdd);
		cleartext(vt);
		cleartext(rt);
	}
	else if (type == "region" && nom == ""){
		cleardropdown(vdd);
		cleardropdown(ddd);
		cleartext(vt);
		cleartext(rt);
		document.getElementById(dvdd).style.display = 'none';
		document.getElementById(dddd).style.display = 'none';
		document.getElementById(drdd).style.display = 'block';
		document.getElementById(dvt).style.display = 'none';
		document.getElementById(drt).style.display = 'none';
	}
	else if (type == "departement" && nom == ""){
		cleardropdown(vdd);
		cleartext(vt);
		cleartext(rt);
		document.getElementById(dvdd).style.display = 'none';
		document.getElementById(dddd).style.display = 'block';
		document.getElementById(drdd).style.display = 'block';
		document.getElementById(dvt).style.display = 'none';
		document.getElementById(drt).style.display = 'none';
	}
	else {
		var url = '/ajax/formfeeder.php?type=' + type + '&nom=' + nom;
		makeRequest(url);
	}
}


function update_page(){
	if (http_request.readyState == 4) {
		document.getElementById(da).style.display = 'none';
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var resulttype = xmldoc.getElementsByTagName('type')[0].firstChild.nodeValue;
			if(resulttype == 'noresult'){
				document.getElementById(dvdd).style.display = 'none';
				document.getElementById(dddd).style.display = 'none';
				document.getElementById(drdd).style.display = 'none';
				document.getElementById(dvt).style.display = 'block';
				document.getElementById(drt).style.display = 'block';
				cleardropdown(vdd);
				cleardropdown(ddd);
				cleardropdown(rdd);
				cleartext(vt);
				cleartext(rt);
				selectmenu = document.getElementById(rdd);
			}
			if(resulttype == 'pays'){
				document.getElementById(dvdd).style.display = 'none';
				document.getElementById(dddd).style.display = 'none';
				document.getElementById(drdd).style.display = 'none';
				document.getElementById(dvt).style.display = 'none';
				document.getElementById(drt).style.display = 'none';
				cleardropdown(vdd);
				cleardropdown(ddd);
				cleardropdown(rdd);
				cleardropdown(pdd);
				cleartext(vt);
				cleartext(rt);
				selectmenu = document.getElementById(pdd);
				entries = xmldoc.getElementsByTagName('entry');
				if(entries.length){
					for(x = 0; x < entries.length; x++){
						var id = entries[x].getElementsByTagName("id")[0].firstChild.nodeValue;
						var valeur = entries[x].getElementsByTagName("nom")[0].firstChild.nodeValue;
						selectmenu.options[selectmenu.options.length] = new Option(valeur, id);
					}
				}
			}
			if(resulttype == 'regions'){
				document.getElementById(dvdd).style.display = 'none';
				document.getElementById(dddd).style.display = 'none';
				document.getElementById(drdd).style.display = 'block';
				document.getElementById(dvt).style.display = 'none';
				document.getElementById(drt).style.display = 'none';
				cleardropdown(vdd);
				cleardropdown(ddd);
				cleardropdown(rdd);
				cleartext(vt);
				cleartext(rt);
				selectmenu = document.getElementById(rdd);
				entries = xmldoc.getElementsByTagName('entry');
				if(entries.length){
					for(x = 0; x < entries.length; x++){
						var id = entries[x].getElementsByTagName("id")[0].firstChild.nodeValue;
						var valeur = entries[x].getElementsByTagName("nom")[0].firstChild.nodeValue;
						selectmenu.options[selectmenu.options.length] = new Option(valeur, id);
					}
				}
			}
			if(resulttype == 'departements'){
				document.getElementById(dvdd).style.display = 'none';
				document.getElementById(dddd).style.display = 'block';
				document.getElementById(drdd).style.display = 'block';
				document.getElementById(dvt).style.display = 'none';
				document.getElementById(drt).style.display = 'none';
				cleardropdown(vdd);
				cleardropdown(ddd);
				cleartext(vt);
				cleartext(rt);
				selectmenu = document.getElementById(ddd);
				entries = xmldoc.getElementsByTagName('entry');
				if(entries.length){
					for(x = 0; x < entries.length; x++){
						var id = entries[x].getElementsByTagName("id")[0].firstChild.nodeValue;
						var valeur = entries[x].getElementsByTagName("nom")[0].firstChild.nodeValue;
						selectmenu.options[selectmenu.options.length] = new Option(valeur, id);
					}
				}
			}
			if(resulttype == 'villes'){
				document.getElementById(dvdd).style.display = 'block';
				document.getElementById(drdd).style.display = 'block';
				document.getElementById(dvt).style.display = 'none';
				document.getElementById(drt).style.display = 'none';
				cleardropdown(vdd);
				cleartext(vt);
				cleartext(rt);
				selectmenu = document.getElementById(vdd);
				entries = xmldoc.getElementsByTagName('entry');
				if(entries.length){
					for(x = 0; x < entries.length; x++){
						var id = entries[x].getElementsByTagName("id")[0].firstChild.nodeValue;
						var valeur = entries[x].getElementsByTagName("nom")[0].firstChild.nodeValue;
						selectmenu.options[selectmenu.options.length] = new Option(valeur, id);
					}
				}
			}
		}
		else {
			alert('La requête n\'a pu être complétée, veuillez essayer de nouveau.');
		}
	}
}

function cleartext(fieldname){
	document.getElementById(fieldname).value = '';
}

function cleardropdown(dropdownname){
	document.getElementById(dropdownname).options.length = 1;
}