Login   Register  
PHP Classes
elePHPant
Icontem

File: libreria/jsdir/utility.js

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Guerrieri Luca  >  PXAServer  >  libreria/jsdir/utility.js  >  Download  
File: libreria/jsdir/utility.js
Role: Auxiliary script
Content type: text/plain
Description: Script for Ajax function
Class: PXAServer
Library to build applications configured with XML
Author: By
Last change: add params to the query
Date: 2007-04-01 01:13
Size: 9,661 bytes
 

Contents

Class file image Download
// 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+'&params='+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+'&params='+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>