// This code is developed by Guerrieri Luca #
// copyright (C) 2006/2007 lucaguerrieri@techrama.com
// This code is released under the terms of the GPL v.2 License.
//
// The author is not responsible for data loss, or any kind of trouble that
// results from the use of this software.
// USE IT AT YOUR OWN RISK!
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// Identifichiamo l'elemento con ID
function prendiElementoDaId(id_elemento) {
var elemento;
if(document.getElementById)
elemento = document.getElementById(id_elemento);
else
elemento = document.all[id_elemento];
return elemento; //restituiamo l'elemento trovato
};
// Assegnamo il giusto oggetto XMLHttpRequest
function assegnaXMLHttpRequest() {
var
XHR = null,
browserUtente = navigator.userAgent.toUpperCase();
if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
XHR = new XMLHttpRequest();
else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
if(browserUtente.indexOf("MSIE 5") < 0)
XHR = new ActiveXObject("Msxml2.XMLHTTP");
else
XHR = new ActiveXObject("Microsoft.XMLHTTP");
}
return XHR;
};
// Carichiamo il file da inserire,
// resource The resource that we want load
// nameID ID where we put the readed resource
// type type of load 'static' or 'dinamyc'
function loadResource(resource, nameID, type) {
var
// assegnazione oggetto XMLHttpRequest
ajax = assegnaXMLHttpRequest(),
// assegnazione elemento del documento
elemento = prendiElementoDaId(nameID),
//Messaggio di attesa
// RICORDARSI DI AGGIUSTARE IL LINK
testoAttesa="<img src='./images/loading.gif'/> Un attimo prego ...",
// risultato booleano di funzione
usaLink = true;
// se l'oggetto XMLHttpRequest non è nullo
if(ajax) {
usaLink = false; // il link al file non deve essere usato
// impostazione richiesta asincrona in GET del file specificato
// RICORDARSI DI AGGIUSTARE IL LINK
ajax.open("get",'http://localhost/pxaserver/libreria/collector.inc.php?resource='+resource+'&id='+nameID+'&type='+type+'¶ms='+params, true);
// rimozione dell'header "connection" come "keep alive"
ajax.setRequestHeader("connection", "close");
// impostazione controllo e stato della richiesta
ajax.onreadystatechange = function() {
elemento.innerHTML=testoAttesa;
// verifica dello stato
if(ajax.readyState === readyState.COMPLETATO) { // verifica della risposta da parte del server
if(statusText[ajax.status] === "OK") { // operazione avvenuta con successo
elemento.innerHTML = ajax.responseText;
}else { // errore di caricamento
elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
}
}
}
ajax.send(null); // invio richiesta
}
return usaLink;
};
function loadResourceParam(resource, nameID, type,params) {
var
// assegnazione oggetto XMLHttpRequest
ajax = assegnaXMLHttpRequest(),
// assegnazione elemento del documento
elemento = prendiElementoDaId(nameID),
//Messaggio di attesa
// RICORDARSI DI AGGIUSTARE IL LINK
testoAttesa="<img src='./images/loading.gif'/> Un attimo prego ...",
// risultato booleano di funzione
usaLink = true;
// se l'oggetto XMLHttpRequest non è nullo
if(ajax) {
usaLink = false; // il link al file non deve essere usato
// impostazione richiesta asincrona in GET del file specificato
// RICORDARSI DI AGGIUSTARE IL LINK
ajax.open("get",'http://localhost/pxaserver/libreria/collector.inc.php?resource='+resource+'&id='+nameID+'&type='+type+'¶ms='+params, true);
// rimozione dell'header "connection" come "keep alive"
ajax.setRequestHeader("connection", "close");
// impostazione controllo e stato della richiesta
ajax.onreadystatechange = function() {
elemento.innerHTML=testoAttesa;
// verifica dello stato
if(ajax.readyState === readyState.COMPLETATO) { // verifica della risposta da parte del server
if(statusText[ajax.status] === "OK") { // operazione avvenuta con successo
elemento.innerHTML = ajax.responseText;
}else { // errore di caricamento
elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
}
}
}
ajax.send(null); // invio richiesta
}
return usaLink;
};
// funzione di caricamento testo tabMenu
// Gestice le chiamate dai tab del menu
// menuID : Identificativo del menu (id="" nel tag ul)
// fileID : File da caricare in caso di selezione
// nomeID : ID dell'area d'inserimento del file caricato
// itemID : Identificativo del tab (quella selezionato, di norma this)
function tabMenu(menuID, fileID, nomeID, itemID, tipo) {
var testoAttesa="<img src='../images/loading.gif' /> Un attimo prego ...";
this.onclick=function(){
var elencoLI=document.getElementById(menuID).getElementsByTagName("li");
for (var i=0; i<elencoLI.length; i++)
elencoLI[i].className=""
itemID.parentNode.className="active";
};
document.getElementById(nomeID).innerHTML=testoAttesa;
loadResource(fileID,nomeID,tipo);
// Funzione per ricordare il tab scelto
//ricordaScelta(itemID,fileID);
};
//TODO : funzione per ricordare le scelta eseguita
function ricordaScelta (activeTabID, fileID){
setCookie(activeTabID, fileID);
};
//TODO : funzione per impostare i Cookie in caso volessimo ricordare le scelta eseguita
function setCookie(name, value){
document.cookie = name+"="+value //cookie value is domain wide (path=/)
}
//TODO : funzione per leggere i Cookie in caso volessimo ricordare le scelta eseguita
function getCookie(Name){
var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return ""
}
/** OGGETTI / ARRAY */
// oggetto di verifica stato
var readyState = {
INATTIVO: 0,
INIZIALIZZATO: 1,
RICHIESTA: 2,
RISPOSTA: 3,
COMPLETATO: 4
};
// array descrittivo dei codici restituiti dal server
// [la scelta dell' array è per evitare problemi con vecchi browsers]
var statusText = new Array();
statusText[100] = "Continue";
statusText[101] = "Switching Protocols";
statusText[200] = "OK";
statusText[201] = "Created";
statusText[202] = "Accepted";
statusText[203] = "Non-Authoritative Information";
statusText[204] = "No Content";
statusText[205] = "Reset Content";
statusText[206] = "Partial Content";
statusText[300] = "Multiple Choices";
statusText[301] = "Moved Permanently";
statusText[302] = "Found";
statusText[303] = "See Other";
statusText[304] = "Not Modified";
statusText[305] = "Use Proxy";
statusText[306] = "(unused, but reserved)";
statusText[307] = "Temporary Redirect";
statusText[400] = "Bad Request";
statusText[401] = "Unauthorized";
statusText[402] = "Payment Required";
statusText[403] = "Forbidden";
statusText[404] = "Not Found";
statusText[405] = "Method Not Allowed";
statusText[406] = "Not Acceptable";
statusText[407] = "Proxy Authentication Required";
statusText[408] = "Request Timeout";
statusText[409] = "Conflict";
statusText[410] = "Gone";
statusText[411] = "Length Required";
statusText[412] = "Precondition Failed";
statusText[413] = "Request Entity Too Large";
statusText[414] = "Request-URI Too Long";
statusText[415] = "Unsupported Media Type";
statusText[416] = "Requested Range Not Satisfiable";
statusText[417] = "Expectation Failed";
statusText[500] = "Internal Server Error";
statusText[501] = "Not Implemented";
statusText[502] = "Bad Gateway";
statusText[503] = "Service Unavailable";
statusText[504] = "Gateway Timeout";
statusText[505] = "HTTP Version Not Supported";
statusText[509] = "Bandwidth Limit Exceeded";
// Esempio di link
// <div id="identificativo" > </div>
// <a href=# onclick="return loadResource('link1','identificativo', 'static');" onkeypress="return this.onclick();" tabindex="1">link</a>
// <a href=# onclick="javascript: loadResource('link1','identificativo', 'static');" onkeypress="return this.onclick();" tabindex="1">link</a>
|