
function Inint_AJAX() {
	try { return new ActiveXObject("Msxml2.XMLHTTP");  } catch(e) {} //IE
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
	try { return new XMLHttpRequest();          } catch(e) {} //Native Javascript
	alert("XMLHttpRequest not supported");
	return false;
}

function CreateXMLHttpRequestObject()
{
	var xmlHttp = false;
	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
	// Elenco dei possibili Prog ID
		var XMLHttpVers = new Array
		(
			 'MSXML2.XMLHTTP.6.0',
			 'MSXML2.XMLHTTP.5.0',
			 'MSXML2.XMLHTTP.4.0',
			 'MSXML2.XMLHTTP.3.0',
			 'MSXML2.XMLHTTP',
			 'Microsoft.XMLHTTP'
			 
		);
	//  Cerco il Prog ID corretto
		for (var i=0;i<XMLHttpVers.length;++i)
		{
			 try
			 {
					xmlHttp = new ActiveXObject(XMLHttpVers[i]);
			 }
			 catch(e)   // Devo ignorare gli errori
			 {
			 }
		}
	}

	if (!xmlHttp)
		alert("L'oggetto XMLHttpRequest non puo essere creato!");
	else
		return xmlHttp;
}

// popola di elementi option una select.
function dochange(tab, elemID, val, selId) {
  // alert("Entrato\n");
	//var req = Inint_AJAX();
	var req = CreateXMLHttpRequestObject();
	req.onreadystatechange = function () {
	 if (req.readyState==4) {
				if (req.status==200 || window.location.href.indexOf("http")==-1) {
					var resp = req.responseText;
					//Le coppie di valori nella striga di risposta sono separate da ;
					var values = resp.split(';');
					//alert("debug for errors\n" + values);
					var select = document.getElementById(elemID);
					//Elimina i valori precedenti
					while (select.length>0) {
						select.remove(0);
					} 
					select.options[0] = new Option( '-- Qualsiasi --',0);
					var limit = values.length;
					for(i=0; i < limit; i++) {
						var pair = values[i].split('|');
						//aggiunge un elemento <option>
						select.options[i+1] = new Option(pair[1],pair[0]);
						if (pair[0] == selId) {
						  select.selectedIndex = i+1;
						}
					}
				} else { alert("There was a problem while using Inint_AJAX:\n" + req.statusText); }
	 }
	};
	// nel metodo open non posso assolutamente mettere un url del tipo http:\\www.comproaffittocasa.it/test.php
	// perche' altrimenti ie7 per problemi di sicurezza da come errore accesso negato. la / indica la root del sito
	req.open("GET", "/tools/ajaxRicerche.php?data="+tab+"&val="+val+"rand="+escape(Math.random()),true); //make connection
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-1"); // ma a che serve?
	req.send(null); //send value
}
