/**
* @author Francesco
*/
function AjaxModule() {}
AjaxModule.prototype.convertSettings = [];
AjaxModule.prototype.convertSettings[0] = [];
AjaxModule.prototype.convertSettings[0]["convert"] = {pattern:/&/g, stringa:"[EC]"};
AjaxModule.prototype.convertSettings[0]["restore"] = {pattern:/\[EC\]/g, stringa:"&"};
AjaxModule.prototype.convertSettings[1] = [];
AjaxModule.prototype.convertSettings[1]["convert"] = {pattern:/:/g, stringa:"[DP]"};
AjaxModule.prototype.convertSettings[1]["restore"] = {pattern:/\[DP\]/g, stringa:":"};
AjaxModule.prototype.convertSettings[2] = [];
AjaxModule.prototype.convertSettings[2]["convert"] = {pattern:/\+/g, stringa:"[P]"};
AjaxModule.prototype.convertSettings[2]["restore"] = {pattern:/\[P\]/g, stringa:"+"};
AjaxModule.prototype.convertSettings[3] = [];
AjaxModule.prototype.convertSettings[3]["convert"] = {pattern:/\*/g, stringa:"[AS]"};
AjaxModule.prototype.convertSettings[3]["restore"] = {pattern:/\[AS\]/g, stringa:"*"};
AjaxModule.prototype.convertSettings[4] = [];
AjaxModule.prototype.convertSettings[4]["convert"] = {pattern:/%/g, stringa:"[MD]"};
AjaxModule.prototype.convertSettings[4]["restore"] = {pattern:/\[MD\]/g, stringa:"%"};
AjaxModule.prototype.convertString = function(str, key)
{
if (key != "convert" && key != "restore")
throw new Error("Chiave per la conversione stringa non valida!");
var stringa = new String(str);
for (var i = 0; i < AjaxModule.prototype.convertSettings.length; i++)
{
stringa = stringa.replace
(
AjaxModule.prototype.convertSettings[i][key].pattern,
AjaxModule.prototype.convertSettings[i][key].stringa
);
}
return stringa;
}
AjaxModule.prototype.createXMLHttpRequest = function()
{
if (typeof XMLHttpRequest != "undefined")
{ return new XMLHttpRequest(); }
else if (window.ActiveXObject)
{
var axoVersions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "Microsoft.XMLHttp"];
for (var i = 0; i < axoVersions.length; i++)
{
try
{
var xmlobj = new ActiveXObject(axoVersions[i]);
return xmlobj;
} catch (e) {}
}
}
throw new Error("Impossibile inizializzare l'oggetto XMLHttp.");
}
AjaxModule.prototype.loadingSrc = "immagini/loading.gif";
AjaxModule.prototype.loadingTarget = document.body;
AjaxModule.prototype.setLoadingTarget = function(target)
{
var err = new String("Target non valido, impossibile gestire correttamente la risposta!");
if (typeof(AjaxModule.prototype.loadingTarget) == "object")
{
try { AjaxModule.prototype.loadingTarget = target; }
catch (e) { throw new Error(err); }
}
else throw new Error(err);
}
AjaxModule.prototype.loadingGIF = function()
{
var contentHTML = '
';
AjaxModule.prototype.loadingTarget.innerHTML = contentHTML;
}
AjaxModule.prototype.params = [];
AjaxModule.prototype.target = document.body;
AjaxModule.prototype.xmlhttp = AjaxModule.prototype.createXMLHttpRequest();
AjaxModule.prototype.clearParams = function()
{ AjaxModule.prototype.params = []; }
AjaxModule.prototype.setTarget = function(target)
{
var err = new String("Target non valido, impossibile gestire correttamente la risposta!");
if (typeof(AjaxModule.prototype.target) == "object" ||
typeof(AjaxModule.prototype.target) == "function")
{
try { AjaxModule.prototype.target = target; }
catch (e) { throw new Error(err); }
}
else throw new Error(err);
}
AjaxModule.prototype.sendRequest = function()
{
var pars = new String();
for (var i in AjaxModule.prototype.params)
pars += i + "=" + AjaxModule.prototype.convertString(AjaxModule.prototype.params[i], "convert") + "&";
//pars += i + "=" + AjaxModule.prototype.params[i] + "&";
AjaxModule.prototype.clearParams();
pars = pars.substr(0, (pars.length - 1));
AjaxModule.prototype.xmlhttp.send(pars);
}
AjaxModule.prototype.makeRequest = function(sPage)
{
AjaxModule.prototype.xmlhttp.open("POST", sPage, true);
AjaxModule.prototype.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
AjaxModule.prototype.xmlhttp.onreadystatechange = AjaxModule.prototype.handleResponse;
AjaxModule.prototype.sendRequest();
}
AjaxModule.prototype.handleResponse = function()
{
if (AjaxModule.prototype.xmlhttp.readyState == 4)
{
if (AjaxModule.prototype.xmlhttp.status == 200)
{ var response = AjaxModule.prototype.convertString(AjaxModule.prototype.xmlhttp.responseText, "restore"); //var response = AjaxModule.prototype.xmlhttp.responseText;
if (typeof(AjaxModule.prototype.target) == "object")
AjaxModule.prototype.target.innerHTML = response;
else if (typeof(AjaxModule.prototype.target) == "function")
AjaxModule.prototype.target(response);
else throw new Error("Target non valido, impossibile gestire correttamente la risposta!"); }
else
{
var contentHTML = "Errore durante il trasferimento dati.";
contentHTML += "
Stato : " + AjaxModule.prototype.xmlhttp.status;
document.getElementById(AjaxModule.prototype.target).innerHTML = contentHTML; }
}}