function createRequestObject(){

	var xmlhttp = false;
	
	// Se IE
	if (window.ActiveXObject) {
	   try {
		  // Versione 5.5 o inferiore
		  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	   } catch (e) {
		  try {
		  // Versione 5.5 o superiore
		  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		  } catch (e) {}
	   }
	}
	// Se Mozilla, Firefox, Opera, Safari
	else if (window.XMLHttpRequest) {
	   xmlhttp = new XMLHttpRequest();
	   xmlhttp.overrideMimeType('text/xml');
	
	}
	// Se oggetto non istanziato: errore 
	if (!xmlhttp) {
	   alert("ERRORE: AJAX non supportato da questo browser!");
	   return false;
	}
	return xmlhttp;
}

function myXMLHTTPRequest(method, url, params, callback){
  
  disableButton();
  
	var httpRequest = createRequestObject();
	try{
		if (method == "POST"){
			httpRequest.open(method, url, true);
			//httpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			httpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
			httpRequest.onreadystatechange = function(){callback(httpRequest);};
			httpRequest.send(params);
		}
		else if (method == "GET"){
			if (params != "")
				url = url+"?"+params;
			httpRequest.open(method, url, true);
			httpRequest.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
			httpRequest.onreadystatechange = function(){callback(httpRequest);};
			httpRequest.send(null);
		}
	}catch (e){
		alert("Errore: "+e);
	}
}
		
function myXMLHTTPResponse(httpRequest, contentType){
	
  var error 	= '';
	var xmldoc 	= '';
	enableButton();
	try{ 
		//alert(httpRequest.readyState);
		if (httpRequest.readyState == 4){ // Caricamento Avvenuto
			//alert(httpRequest.status);
			if (httpRequest.status == 200 || httpRequest.status == 0){ // con successo
				var responseType = httpRequest.getResponseHeader("Content-Type");
				if (responseType == contentType){
					if (responseType == "text/xml" || responseType == "text/html")
						xmldoc = httpRequest.responseXML;
					else	
						xmldoc = httpRequest.responseText;
					
					if (!xmldoc.documentElement && httpRequest.responseStream) {
						xmldoc.load(httpRequest.responseStream);
					}
					//stopLoading();
					
					return xmldoc;
				}
				else
					error = "ERRORE: CONTENT-TYPE SBAGLIATO";
			}
			else{
				error = "ERRORE: "+httpRequest.statusText;
			}
		}
		else{
		}
	}catch (e){
		alert("Errore: "+e);
	}
	
}

function enableButton(){

  var bool = false;
  changeButton(bool);

}

function disableButton(){

  var bool = true;
  changeButton(bool);

}


function changeButton(bool){

  for (i=0;i<document.forms[0].length;i++){
    
		var id 	= document.forms[0].elements[i].id;
		//alert(id);
		var type 	= document.forms[0].elements[i].type;
		var value = document.forms[0].elements[i].value;
    
    if (type == "button" && id != "inv"){
      document.forms[0].elements[i].disabled = bool;
      
    }    
     
  }
  
}

