function createRequestObject() {
    var ro;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
            ro = new XMLHttpRequest();
            if (ro.overrideMimeType) {
              // ro.overrideMimeType('text/xml');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
               ro = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                	
                    ro = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!ro) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
    return ro;
}

var http = createRequestObject();
	
function sndReq(param,action,formId,msg) {
	if(!msg)
		msg = "Ricerca in corso ...";
		
	switch(action) {
		
		case 'form':
			document.title = msg;
			window.status = msg;
			document.getElementById('content').innerHTML = msg+' ...<br /><img src="immagini/progressbar.gif" alt=" "/>';
			http.open('POST','index.php?id='+param+'&response=1',true);
			http.setRequestHeader("content-type", "application/x-www-form-urlencoded");

    		http.onreadystatechange = changePage;
			if(formId!="") {
				objForm = document.getElementById(formId);
			} else {
				document.getElementById('content').innerHTML = 'Impossibile elaborare la richiesta [errore: id del form non presente]';
				return false;
			}
			data = "";
			if(!objForm)
				return false;
			for(i=0;i<objForm.length;i++) {
				data += objForm.elements[i].name+ "="+escape(objForm.elements[i].value);
				if(i<objForm.length) {
					data +="&";
				}
			}
			http.setRequestHeader("connection", "close");
   			http.send(data);
			break;
			
		case 'getComuni':
		http.open('get','utility/getComuni.php?idProvincia='+param,true);
    		http.onreadystatechange = buildSelectComuni;
   			http.send(null);
			break;
			
		case 'getComuni4admin':
		http.open('get','utility/getComuni.php?idProvincia='+param+'&foradmin=1',true);
    		http.onreadystatechange = buildSelectComuniAdmin;
   			http.send(null);
			break;
			
		default:
			http.open('POST','index.php?id='+param+'&response=1',true);
    		http.onreadystatechange = changePage;
   			http.send(null);
   			break;
		}
}

function changePage() {
	if(http.readyState == 4){
		if (http.status == 200) {
			try {
				var response = http.responseXML.getElementsByTagName('content')[0].firstChild.nodeValue; 
				document.getElementById('content').innerHTML = response;  
				var title = http.responseXML.getElementsByTagName('title')[0].firstChild.nodeValue;
				document.title=title;
				window.status="";
				var stylesheet = http.responseXML.getElementsByTagName('style')[0].firstChild.nodeValue;
				
				if(stylesheet)
				document.styleSheet.addImport(stylesheet);
			} catch(e) {
			}
		
		} else {
			"Impossibile effettuare l'operazione richiesta.<br />" +
			"Errore riscontrato: " + http.statusText[http.status];
		}
	}
}

function buildSelectComuni() {
	if(http.readyState == 4) {
		if (http.status == 200) {
			try {
				var response = http.responseXML.getElementsByTagName('comuni')[0].firstChild.nodeValue;
				document.getElementById('listComuni').innerHTML =  response;
			} catch(e) {
				alert('errore nella scrittura della select: '+e.message);
			}
		} else {
			alert('errore nella risposta del server');
		}
	}
}

function buildSelectComuniAdmin() {
	if(http.readyState == 4) {
		if (http.status == 200) {
			try {
				var response = http.responseXML.getElementsByTagName('comuni')[0].firstChild.nodeValue;
				document.getElementById('listComuniAdmin').innerHTML =  response;
			} catch(e) {
				alert('errore nella scrittura della select: '+e.message);
			}
		} else {
			alert('errore nella risposta del server');
		}
	}
}
