function ahah(url, target, funcname) {
        function ahahDone() {
          if(req.readyState == 4){
            if(req.status == 200){
                  if(!(target == undefined)){
                    document.getElementById(target).innerHTML = req.responseText;
                  }
                  if(!(funcname == undefined)){
                    eval(funcname+"(req.responseText);");
                  }
            }else{
                  if(!(target == undefined)){
                    document.getElementById(target).innerHTML = "ahah error:\n"+req.statusText;
                  }
              if(!(funcname == undefined)){
                    eval(funcname+"(req.responseText);");
                  }
            }
          }
        }

        if(!(target == undefined)){
            document.getElementById(target).innerHTML = 'caricamento dati in corso...';
        }
        if(window.XMLHttpRequest){
                var req = new XMLHttpRequest();
        }else if(window.ActiveXObject) {
                var req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        if(req){
                req.onreadystatechange = function() {
                        ahahDone();
                };
                req.open("GET", url, true);
                req.send("");
        }
} 