var request = null;
/* 
Parameteri:
  reqType: GET o POST.
  url: server component url
  asynch: true o false
  respHandle: la funzione per la gestione della risposta.
  arguments[4]: dati per la richiesta in POST
 */
function httpRequest(reqType,url,asynch,respHandle){
  //browser basati su Mozilla
  if(window.XMLHttpRequest){
    request = new XMLHttpRequest( );
  } else if (window.ActiveXObject){
    request=new ActiveXObject("Msxml2.XMLHTTP");
      if (! request){
        request=new ActiveXObject("Microsoft.XMLHTTP");
      }
  }
  if(request) {
    if(reqType.toLowerCase( ) != "post") {
      initReq(reqType,url,asynch,respHandle);
    } else {
      var args = arguments[4];
      if(args != null && args.length > 0){
        initReq(reqType,url,asynch,respHandle,args);
      }
    }
  } else {
    alert("Il browser utilizzato non permette di usare tutte "+
          "le funzionalit&#224; di questa applicazione!");
  }
}

/* Inizializza un oggetto request gia' istanziato */
function initReq(reqType,url,bool,respHandle){
  try{
    request.onreadystatechange=respHandle;
    request.open(reqType,url,bool);
    request.setRequestHeader("X_REQUESTED_WITH", "XMLHttpRequest");
    if(reqType.toLowerCase( ) == "post") {
      request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
      request.send(arguments[4]);
    } else {
      request.send(null);
    }
  } catch (errv) {
    alert("L'applicazione non &#232; al momento in grado di contattare il server.\n"+
          "Roprovate tra qualche istante.\n"+
          "Errore: "+errv.message);
    }
  } 