// JavaScript Document
			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;
			}
			/*
			 * Funzione per la popolazione della Seconda SELECT
			 */
			function populateSubSelection(){
				//Recupero i dati da inviare
				var mainSelection = document.getElementById("size");
				var mainColore = document.getElementById("colored");
				var mainArticolo = document.getElementById("idartd");
				var foo = "choice=" + mainSelection.options[mainSelection.selectedIndex].value + "&idart=" + encodeURI(mainArticolo.value) + "&colore=" + encodeURI(mainColore.value);
								
				//Creo un nuovo oggetto XMLHTTPRequest
				var req = newXMLHttpRequest();
				
				//Invio la richiesta
				req.open("POST", "data.php", true);
				req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				
				//Invio i dati POST
				req.send(foo);
								
				//Gestore dell'evoluzione dello stato dell'oggetto req
				req.onreadystatechange = handleResponse(req, updateSubSelection);
			}
			
			
				function populateBasket(){
				//Recupero i dati da inviare
				var mainSelection = document.getElementById("size");
				var mainColore = document.getElementById("colored");
				var mainArticolo = document.getElementById("idartd");
				var mainPrice = document.getElementById("prezzou");
				var mainQty = document.getElementById("subSelection");
				var foo2 = "taglia=" + encodeURI(mainSelection.options[mainSelection.selectedIndex].value) + "&idart=" + encodeURI(mainArticolo.value) + "&colore=" + encodeURI(mainColore.value) + "&qty=" + encodeURI(mainQty.options[mainQty.selectedIndex].value) + "&prezzou=" + encodeURI(mainPrice.value);
								
				//Creo un nuovo oggetto XMLHTTPRequest
				var req = newXMLHttpRequest();
				
				//Invio la richiesta
				req.open("POST", "addbasket.php", true);
				req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				
				//Invio i dati POST
				req.send(foo2);
								
				//Gestore dell'evoluzione dello stato dell'oggetto req
				//req.onreadystatechange = handleResponse(req, updateBasket);
				req.onreadystatechange = useHttpResponse(req);
			}
			
			function useHttpResponse(xreq) {
				if (xreq.readyState == 4){
					if(xreq.status == 200){
						document.getElementById('baskup').innerHTML = 'prova';
					} else {
						document.getElementById('baskup').innerHTML = '<img src="images/loading.gif">';
					}
				}
			}
			
/*
			 * Ritorna una funzione per la gestione dello stato dell'oggetto req.
			 * Ed infine a stato finale raggiunto, invia la risposta XML alla funzione che dovra' gestire il tutto.
			 * reg = Istanza XMLHTTPRequest
			 * XMLHandler = nome della funzione a cui passare il risultato XML da gestire
			 */
			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.responseText);
						}
					}
				}
			}
/*
			 * Popolo la seconda SELECT
			 * XMLResult = Il risultato XML prodotto da handleResponse
			 */
			function updateSubSelection(XMLResult){
				//Gestisco il documento XML ricevuto e popolo la seconda SELECT
				var categoria = XMLResult.getElementsByTagName('categoria');
				
				//Recupero la seconda SELECT
				var subSelection = document.getElementById("subSelection");
				
				//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
					}
				}
			}