/** * @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() { var xmlobj = false; try { xmlobj = new ActiveXObject("Msxml2.XMLHTTP"); } catch (oldIE) { try { xmlobj = new ActiveXObject("Microsoft.XMLHTTP"); } catch (notIE) { xmlobj = false; } } if (!xmlobj && typeof XMLHttpRequest != undefined) { xmlobj = new XMLHttpRequest(); } return xmlobj; } 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") + "&"; 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"); 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; } } }