function newXMLHttpRequest(){
				var xmlreq = false;
				
				//Controllo il tipo di oggetto XMLHttpRequest da utilizzare
				if(window.XMLHttpRequest){
					//Per browser non Microsoft
					xmlreq = new XMLHttpRequest();
				}else if(window.ActiveXObject){
					//Cerco di creare l'oggetto via MS ActiveX
					try{
						//Nuove versioni per browser IE
						xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
					}catch(e1){ //Errore riscontrato durante la creazione dell'oggetto
						try{
							//Precedenti versioni per browser IE
							xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
						}catch(e2){ //Nuovo errore durante la creazione dell'oggetto
							xmlreq = false;
						}
					}
				}
				//Restituisco l'eventuale oggetto XMLHttpRequest
				return xmlreq;
			}
	
	function populateSubSelection(){
				//Recupero i dati da inviare
				var mainSelection = document.getElementById("npart");
				if (mainSelection.options[mainSelection.selectedIndex].value != 0) {
				//Creo un nuovo oggetto XMLHTTPRequest
				var req = newXMLHttpRequest();
				
				//Invio la richiesta
				req.open("POST", "eldata.php", true);
				req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				
				//Invio i dati POST
				req.send("choice=" + mainSelection.options[mainSelection.selectedIndex].value);
	
				
				//Gestore dell'evoluzione dello stato dell'oggetto req
				req.onreadystatechange = handleResponse(req, updateSubSelection);

				}
				else {
					subs = document.getElementById("narr");
					subs.disabled = true;
				}
}
			
						function handleResponse(req, XMLHandler){
				return function(){
					//Controllo se l'oggetto req ha raggiunto lo stato finale
					if(req.readyState == 4){
						//Inoltre accertiamoci di aver ottenuto il messaggio 200 dal server,
						if (req.status == 200){
							//A questo punto richiamo la funzione che gestira' il risultato XML
							XMLHandler(req.responseXML);
						}else{
							alert("Errore HTTP: " + req.status);
						}
					}
				}
			}
			
			function updateSubSelection(XMLResult){
				//Gestisco il documento XML ricevuto e popolo la seconda SELECT
				var categoria = XMLResult.getElementsByTagName('arrivo');
				
				//Recupero la seconda SELECT
				var subSelection = document.getElementById("narr");
				subSelection.disabled= false;
				//Svuoto la secondo SELECT
				for (var i = subSelection.length - 1; i >= 0; i--)
					subSelection.remove(i);
				
				//Scorro gli elementi
				for (var i = 0; i < categoria.length; i++){
					//Recupero i vari elementi singoli
					var item = categoria[i];
					
					//Creo il nuovo elemento OPTION da aggiungere nella seconda SELECT
					var NewOpt = document.createElement('option');
					NewOpt.value = item.getAttribute("value");
					NewOpt.text = item.firstChild.nodeValue;
					
					//Popolo la seconda SELECT
					try{
						subSelection.add(NewOpt, null); //Metodo Standard, non funziona con IE
					}catch(e){
						subSelection.add(NewOpt); // Funziona solo con IE
					}
				}
			}
			
			
			
			

