﻿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) {alert(e.message)}
            }
        }

        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 'getComuni':
		http.open('get','utility/getComuni.php?idProvincia='+param,true);
    		http.onreadystatechange = buildSelectComuni;
   			http.send(null);
			break;
		case 'getProvince':
			http.open('get','utility/getProvince.php?idRegione='+param,true);
			http.onreadystatechange = buildSelectProvincie;
   			http.send(null);
			break;
		case 'form':
			document.title = msg;
			window.status = msg;
			document.getElementById('divisorioContent').innerHTML = '<img src="immagini/trasparente.gif">';
			document.getElementById('content').className = 'paginterne';
			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;
			
		default:
			http.open('post','index.php?id='+param+'&response=1',true);
    		http.onreadystatechange = changePage;
   			http.send(null);
   			break;
		}
}
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 buildSelectProvincie()
	{
	 if(http.readyState == 4){
	 	
    	  if (http.status == 200) {
    	  	try{
    	  		
                var response = http.responseXML.getElementsByTagName('provincie')[0].firstChild.nodeValue; 
                
                 document.getElementById('RGcomuni').innerHTML ="";
                 document.getElementById('RGcomuni').style.display ="none";
                 document.getElementById('RGprovince').innerHTML =response; 				
             
    	  		} catch(e) {
    	  		  alert('errore nella scrittura della select: '+e.message);
    	  		 }
            	
            } else {
                alert('errore nella rispsota del server');
            }
    	  }
	}
function changePage() {
	
    if(http.readyState == 4){
    	
    	  if (http.status == 200) {
    	  	
    	  		try{
					//var response = http.responseXML.getElementsByTagName('content')[0].firstChild.nodeValue; 
					var response = eval('('+http.responseText+')');
					
					document.getElementById('content').innerHTML = response.content;  
					//var title = http.responseXML.getElementsByTagName('title')[0].firstChild.nodeValue;
					document.title = response.title;
					//var stylesheet = http.responseXML.getElementsByTagName('style')[0].firstChild.nodeValue;
					
					//if(stylesheet)
						//document.styleSheet.addImport(stylesheet);
             
    	  		} catch(e) {
					alert(http.responseText);
					alert("Errore: "+e.message+"\n\nRiga: 138 filte xmlhttp.js");
					//location.reload();
    	  		 }
            	
            } else {
            	
                alert('si  verificato  un problema con la richiesta.: '+http.status);
            }
       
        }
    }

