﻿// JScript File

var ajax = assegnaXMLHttpRequest();


// funzione per assegnare l'oggetto XMLHttpRequest
// compatibile con i browsers più recenti e diffusi
function assegnaXMLHttpRequest() {

// lista delle variabili locali
var
 // variabile di ritorno, nulla di default
 ajax = null,
 
 // informazioni sul nome del browser
 browserUtente = navigator.userAgent.toUpperCase();


 // browser standard con supporto nativo
 // non importa il tipo di browser
 if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
  ajax = new XMLHttpRequest();

 // browser Internet Explorer
 // è necessario filtrare la versione 4
 else if(
  window.ActiveXObject &&
  browserUtente.indexOf("MSIE 4") < 0
 ) {
 
  // la versione 6 di IE ha un nome differente
  // per il tipo di oggetto ActiveX
  if(browserUtente.indexOf("MSIE 5") < 0)
   ajax = new ActiveXObject("Msxml2.XMLHTTP");

  // le versioni 5 e 5.5 invece sfruttano lo stesso nome
  else
   ajax = new ActiveXObject("Microsoft.XMLHTTP");
 }

 return ajax;
} 

function prendiElementoDaId(id_elemento) {
 // elemento da restituire
 var elemento;
 
 // se esiste il metodo getElementById
 // questo if sarà diverso da false, null o undefined
 // e sarà quindi considerato valido, come un true
 if(document.getElementById)
  elemento = document.getElementById(id_elemento);
 
 // altrimenti è necessario usare un vecchio sistema
 else
  elemento = document.all[id_elemento];

 // restituzione elemento
 return elemento;
}

function send(sData,sTarget,sRender,async)
{
//sData è la busta xml
//sTarget è il codice server-side
//sRender è la funzione che gestisce i dati di risposta (generalmente aggiornando il contenuto di un div)
//conviene non metterla nel file ajax.js, ma nello script della singola pagina
//async: true/false, gestisce iil sincronismo dell'interazioneclient-server
ajax.open("POST", sTarget, async, "", "");
ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
ajax.setRequestHeader("connection", "close");
//alert(sData);
ajax.send(sData);
window.status = "Load in progress  ";
checkReadyState(sRender);
}



	
function checkReadyState(renderFunction)
{
    if (ajax.readyState == 4)
	{
		if(renderFunction!="")
		{
		eval(renderFunction + "(ajax.responseText);");
		}
	}
    else
	{
	window.setTimeout("checkReadyState('" + renderFunction + "')", 50);
	}
}

