function Errore(x)
{
	alert("Errore: " +x.responseStatus[0]);
}

function AjaxCall(nomeFile,param,nomeDiv,nomeFun)
{
    var ajax = new sack();
    ajax.af_sw = 0;
    ajax.divOut = nomeDiv;
    ajax.nomePostFun = nomeFun;
	  ajax.requestFile = nomeFile;	// Specifying which file to get
	  ajax.onCompletion = showContent;	// Specify function that will be executed after file has been found
	  ajax.onLoading = showWaitMessage;	// Action when AJAX is loading the file
    ajax.onError = Errore;
    showWaitMessage(ajax); // per crome
    if (param)
    {
			param += "&TipoBrowser=" + TipoBrowser + "&BrowserVer=" + BrowserVer;
	    ajax.runAJAX(param.replace(/\+/g, "%2b"));		// Execute AJAX function	 
    }
    else	    
    	ajax.runAJAX();
  	return true;
}

function showWaitMessage(self)
{
  self.af_sw++;
  if (self.af_sw > 1) return;
  var e = getHElem("divWait");
  if (!e) return;  
  e.style.visibility = "visible";
  e.style.top="30%";
  e.style.left="35%";
  var ajax = self;
  var t = ".";
  funWait = function()
  {
    var r,g,b;
    if (ajax.af_sw > 0) {
/*    	r = Math.random()*200+50;
   	  g = Math.random()*200+50;
   	  b = Math.random()*200+50;  */
   	  t += ".";
    	if (t == "...............") t = ".";
      var e = getHElem("divWait");
      e.innerHTML = "<div>wait "+t+"</div>";
//      e.style.backgroundColor = "rgb("+Math.round(r)+","+Math.round(g)+","+Math.round(b)+")";
      setTimeout('funWait()',200);
    }
  }
  funWait(self,t);
}

function showContent(ajax)	// Displaying content in the content <div>
{
    var e;
    ajax.af_sw--;
    if (ajax.af_sw <= 0)
    {
      e = getHElem("divWait");
      if (e) {
        e.style.visibility = "hidden";
        e.style.backgroundColor = "lightyellow";
      }
    }
    var ret,resp;
    resp=ajax.response;
    var xmlDoc = gestReturn(ajax.response);
    if (xmlDoc)
    {
      resp=ajax.response.substr(0,ajax.response.indexOf('<RETURN-VALUE>')-0);
//      alert("resp: "+resp);
//      var x=xmlDoc.getElementsByTagName("status")[0].childNodes[0];
//      alert(x.nodeValue);
    }

    if (ajax.divOut != 'null' && ajax.divOut != "" && resp != '')
    {
      e = getHElem(ajax.divOut);
	    e.innerHTML = resp;	// ajax.response is a variable that contains the content of the external file	
	  }
/*	  
    if (xmlDoc)
    {

	    var s = xmlDoc.getElementsByTagName("session")[0].childNodes[0];
//			if (s)
			{
				var m = xmlDoc.getElementsByTagName("sess_msg")[0].childNodes[0];
 	     	if (s.nodeValue == "ko" && userLog != "")
 	     	{
 	     		if (m.nodeValue != "") alert(m.nodeValue);
					return logout();
 	     	}
			}
 	  }
*/
    if (!ajax.nomePostFun || ajax.nomePostFun=="null") return;
    eval(ajax.nomePostFun);
    return; 
}

function gestReturn(r)
{
  	var doc;
  	var i = r.indexOf('<RETURN-VALUE>');
  	if (i>=0)
  	{
      // code for IE
      if (window.ActiveXObject)
      {
        doc=new ActiveXObject("Microsoft.XMLDOM");
        doc.async="false";
        doc.loadXML(r.substring(i));
      }
      // code for Mozilla, Firefox, Opera, etc.
      else
      {
        var parser=new DOMParser();
        doc=parser.parseFromString(r.substring(i),"text/xml");
//        alert(r.substring(i));
      }
  	}
    return doc;
}