/* Funzioni di pilotaggio dell'ampliamento dei documenti
*/
//
// Questa funzione ha bisogno che sia stata definita la 
// function controllidafare che restituisce true se la variabile
// di controllo della libreria caricata risulta "undefined"
// ed ovviamente false se il caricamento e la inizializzazione
// della variabile ha avuto successo.
// Vanno definite inoltre due variabili importanti
// per la gestione del documento 
// ossia nomirisultati e nomiscriptinterni e la importantissima
// variabile chicerco che è un vettore di vettori
// e indica dove andare a cercare gli script esterni.
//
function miserve(){
    var poi,vedo,lista;
    if(arguments.length==0)poi=1;
    else poi=Math.max(1,arguments[0]);
    vedo=controllidafare(poi);
    if(vedo){
        nn=Math.max(0,chicerco[poi][0]);
        nn++;
        if(nn==chicerco[poi].length){
            alert("ATTENZIONE ! Ricerca fallita n."+poi+" !");
            return false;
            }
        chicerco[poi][0]=nn;
        ampliajs(chicerco[poi][nn]);
        }
    else {
        lista=document.getElementsByName(nomirisultati);
        ss=lista[0].innerHTML;
        lista[0].innerHTML=ss+" ("+poi+"):Ricerca RIUSCITA del file:  "+
               chicerco[poi][nn];
        poi++;
        if(poi>=chicerco.length) return true;
        }
    setTimeout("miserve("+poi+")",999);
    }
//
// Se riceve il nome del file esterno usa quello,
// altrimenti cerca i nomi degli script che stanno
// nel documento stesso...
// Usa la variabile nomiscriptinterni 
//
function ampliajs() {    
   var j,scritti="",sn="",uc,ns,ss="";
   var armadio=document.getElementsByTagName("body")[0]; 
   var nuovojs=document.createElement("script");
   nuovojs.setAttribute("type","text/javascript");
   if(arguments.length>0) nuovojs.setAttribute('src',arguments[0]);
   else{
       //
       // Bisogna avere definito la variabile nomiscriptinterni
       //
       scritti=document.getElementsByName(nomiscriptinterni);
       if(1>scritti.length)return false;
       for(j=0;scritti.length>j;j++){
           ss+=scritti[j].innerHTML;
           }
       //
       //  ATTENZIONE : Usa il carattere ^ ossia ^
       //  come sostituto del carattere  > ossia \u003e;
       //  Usa il carattere ì ossia ì
       //  come sostituto del carattere < ossia \u003c;
       //
       ns=ss.length;
       for(j=0;ns>j;j++){
          uc=ss.charCodeAt(j);
          if(uc==94)sn+="\u003e";
          else if(uc==236)sn+="\u003c";
          else sn+=ss.charAt(j);
          }
       nuovojs.innerHTML=sn;
       }
   armadio.appendChild(nuovojs); 
   return true;
   }
//
/*

Per usare la function miserve()

La variabile chicerco deve essere una lista di liste in cui l'elemento iniziale deve essere un intero che deve valere 0. Gli altri elementi devono essere i nomi completi della libreria da cercare ed ovviamente viene caricata la prima che viene trovata. L'elemento chicerco[0] però non viene usato e serve da commento alle liste che sono chicerco[1] ed eventuali altre. Notare che chicerco[k][0] con k==1,2,... contiene il numero della stringa del nome del file da utilizzare ed all'inizio deve valere 0.
Usata anche da: http://www.elegio.it/javascript/altrove_forse.html
AMEN
*/