window.onoad = callfunctions(percorso);

function callfunctions(percorso) {
     scrivi_menu(percorso);
     //datario();
     preloading();

}

function preloading() {

         var immagini = new Array();
         immagini[0]='plus_only_a_node.gif';
         immagini[1]='plus_only_a_node.gif';
         immagini[2]='minus_only_a_node.gif';
         immagini[3]='plus_first_node.gif';
         immagini[4]='plus_first_folder.gif';
         immagini[5]='minus_first_node.gif';
         immagini[6]='minus_first_folder.gif';
         immagini[7]='plus_last_node.gif';
         immagini[8]='plus_last_folder.gif';
         immagini[9]='minus_last_node.gif';
         immagini[10]='minus_last_folder.gif';
         immagini[11]='plus_node.gif';
         immagini[12]='plus_folder.gif';
         immagini[13]='minus_node.gif';
         immagini[14]='minus_folder.gif';
         immagini[15]='only_a_node.gif';
         immagini[16]='first_node.gif';
         immagini[17]='last_node.gif';
         immagini[18]='node.gif';

         var i;
         var new_immagini= new Array();
         for (i=0;i<immagini.length;i++) {
           new_immagini[i]=new Image();
           new_immagini[i].src='images/menu/'+immagini[i];
           //alert(new_immagini[i].src);
         }

}

function agg_ico(percorso) {
var i;
var tree;
var figli;
var pos;
var ac; // apri e chiudi
var storia = new Array(); // linee verticali o spazi bianchi

         // controlla la posizione - alla fine o nel centro
         function posizione(id,parent,order) {

          var i;
          var flag='last';

          for(i=0;i<menu.length;i++) {
            if (menu[i]['parent']==parent) {
              if ((menu[i]['order']>order)&&(menu[i]['id']!=id)) flag='middle';
            }
          }
          return flag;
         }


         // controlla la presenza di figli
         function figlo(id) {

          var i;
          var flag='false';

          for(i=0;i<menu.length;i++) {
            if (menu[i]['parent']==id) flag='true';
          }
          return flag;
         }

 for(i=0;i<menu.length;i++) {

   // controllo figli
   // se ci sono figli allora l'immagine è: plus_first_node.gif, altrimenti è first_node.gif

   if (figlo(menu[i]['id'])=='true') figli="true";
   else figli="false";


   //controllo posizione
   pos = posizione(menu[i]['id'],menu[i]['parent'],menu[i]['order']);
   if ((pos=='middle')&&(menu[i]['order']=='0')) pos='1';

   if (pos=='last') storia[menu[i]['livello']]='blank.gif';
   else storia[menu[i]['livello']]='vertical_line.gif'

   //alert('voce: '+menu[i]['voce']+'\n posizione: '+pos+' - figli: '+figli);

     /*
  ---------- TIPOLOGIE DI NODI (IMMAGINI) ----------
  vm = voce menu

   ---- categorizzazione tramite presenza FIGLI ----

   A) vm con figli - nodo con +/-
   A1) vm con figli chiuso - nodo con +
   A2) vm con figli aperto - nodo con -

   B) vm senza figli - allora nodo semplice

   ---- categorizzazione tramite presenza FRATELLI/POSIZIONE ----

   a) vm sola - nodo semplice
   b) vm primo fratello - nodo collegato solo sotto
   c) vm ultimo fratello - nodo collegato solo sopra
   d) vm nel mezzo (ne primo, ne ultimo) - nodo collegato sotto e sopra

   ---- combinazioni ---- nome del file ----

         Aa
         A1a plus_only_a_node.gif
         A2a minus_only_a_node.gif

         Ab
         A1b plus_first_node.gif            plus_first_folder.gif
         A2b minus_first_node.gif           minus_first_folder.gif

         Ac
         A1c plus_last_node.gif             plus_last_folder.gif
         A2c minus_last_node.gif            minus_last_folder.gif

         Ad
         A1d plus_node.gif                  plus_folder.gif
         A2d minus_node.gif                 minus_folder.gif

         Ba only_a_node.gif

         Bb first_node.gif

         Bc last_node.gif

         Bd node.gif

         --- altro file ---
         linea verticale vertical_line.gif

  */
  if (i<menu.length-1){
    if (menu[(i+1)]['vis']=='visible') {
      ac='minus';
      azione='chiudi';
    }
    else if (menu[(i+1)]['vis']=='hidden') {
      ac='plus';
      azione='apri';
    }
  }

   // linee verticali e spazi bianchi
   var vertical_line='';
   var k;
   for (k=0;k<(menu[i]['livello']);k++){
     vertical_line=vertical_line+'<img src=\"'+percorso+'images/menu/'+storia[k]+'\" />';
   }


  if (menu[i]['livello']=='0') {
   if (pos=='1') {
     if (figli=='true') tree='<a href="javascript:onClick=add_remove_voce(\''+menu[i]['id']+'\',\'a_e_c\');" title="'+azione+' categoria"><img src=\"'+percorso+'images/menu/'+ac+'_first_folder.gif\" /></a>';
     else if (figli=='false') tree=vertical_line+'<img src=\"'+percorso+'images/menu/first_node.gif\" />';

   } else if (pos=='middle') {
     if (figli=='true') tree='<a href="javascript:onClick=add_remove_voce(\''+menu[i]['id']+'\',\'a_e_c\');" title="'+azione+' categoria"><img src=\"'+percorso+'images/menu/'+ac+'_folder.gif\" /></a>';
     else if (figli=='false') tree=vertical_line+'<img src=\"'+percorso+'images/menu/node.gif\" />';

   } else if (pos=='last') {
     if (figli=='true') tree='<a href="javascript:onClick=add_remove_voce(\''+menu[i]['id']+'\',\'a_e_c\');" title="'+azione+' categoria"><img src=\"'+percorso+'images/menu/'+ac+'_last_folder.gif\" /></a>';
     else if (figli=='false') tree=vertical_line+'<img src=\"'+percorso+'images/menu/last_node.gif\" />';
   }

  } else if (menu[i]['livello']>'0') {



   if (pos=='1') {
     if (figli=='true') tree=vertical_line+'<a href="javascript:onClick=add_remove_voce(\''+menu[i]['id']+'\',\'a_e_c\');" title="'+azione+' categoria"><img src=\"'+percorso+'images/menu/'+ac+'_node.gif\" /></a>';
     else if (figli=='false') tree=vertical_line+'<img src=\"'+percorso+'images/menu/node.gif\" />';

   } else if (pos=='middle') {
     if (figli=='true') tree=vertical_line+'<a href="javascript:onClick=add_remove_voce(\''+menu[i]['id']+'\',\'a_e_c\');" title="'+azione+' categoria"><img src=\"'+percorso+'images/menu/'+ac+'_node.gif\" /></a>';
     else if (figli=='false') tree=vertical_line+'<img src=\"'+percorso+'images/menu/node.gif\" />';

   } else if (pos=='last') {
     if (figli=='true') tree=vertical_line+'<a href="javascript:onClick=add_remove_voce(\''+menu[i]['id']+'\',\'a_e_c\');" title="'+azione+' categoria"><img src=\"'+percorso+'images/menu/'+ac+'_last_node.gif\" /></a>';
     else if (figli=='false') tree=vertical_line+'<img src=\"'+percorso+'images/menu/last_node.gif\" />';

   }
  }

    menu[i]['tree']=tree;
    tree='';
 }


}

function add_remove_all() {

 var i;
 var all_closed=true;

 for (i=0;i<menu.length;i++) {
   // se almeno uno dei figli è aperto allora il menu non è chiuso
   if ((menu[i]['livello']>0)&&(menu[i]['vis']=='visible')) all_closed=false;
 }
 if (all_closed==true) {
    // apri tutto
    for (i=0;i<menu.length;i++) {
       add_remove_voce(menu[i]['id'],'a_e_c');
    }
 }
 else {
    // chiudi tutto
    for (i=0;i<menu.length;i++) {
       add_remove_voce(menu[i]['id'],'chiudi');
    }
 }

}

function scrivi_menu(percorso) {

  agg_ico(percorso);

  var dynamic_menu;
  var i;
  var new_menu="<div class='voce_menu'><a class='classe_link' title='apri/chiudi tutto' href='javascript:onClick=add_remove_all();'>MENU PRINCIPALE</a></div><div class='voce_menu'><img src=\'"+percorso+"images/menu/vertical_line.gif' /></div>";

  for (i=0;i<menu.length;i++) {
     if (menu[i]['vis'] == 'visible') {
     // anche il testo fa aprire e chiudere le voci del menu
        new_menu = new_menu + '<div class="voce_menu" id="'+menu[i]['id']+'">'+menu[i]['tree']+'<a class="classe_link" href="javascript:basefrm.location.href=\''+percorso+'main.php/sezione/'+menu[i]['voce']+'/voce/'+menu[i]['id']+'\'; add_remove_voce(\''+menu[i]['id']+'\',\'a_e_c\');">'+menu[i]['voce']+'</a></div>\n';
     // solo i bottoni + e - fanno aprire e chiudere il menu
     // new_menu = new_menu + '<div class="voce_menu" id="'+menu[i]['id']+'">'+menu[i]['tree']+'<a class="classe_link" href="'+percorso+'main.php/sezione/'+menu[i]['voce']+'/voce/'+menu[i]['id']+'" target="basefrm">'+menu[i]['voce']+'</a></div>\n';
     }
  }
  dynamic_menu = document.getElementById("menu");
  dynamic_menu.innerHTML = new_menu;
}

function add_remove_voce(id,oc){
  var i;
  var data_menu;
  for (i=0;i<menu.length;i++) {
     if (menu[i]['parent']==id) {
          if ((menu[i]['vis']=='hidden')&&(oc!='chiudi')) {
           // scrivi voci del menu
           menu[i]['vis']='visible';
          }
          else {
           // elimina voci del menu
           menu[i]['vis']='hidden';
           add_remove_voce(menu[i]['id'],'chiudi');
          }
     }
  }
scrivi_menu(percorso);

}

// utilizzato in STC
//_____________________________________________________________________________________________________________________________
/*
//clock-date antanian function McLaud2K5 v1.0 KOALA WEB SOLUTIONS www.koalaws.net
function datario() {
        if (!document.layers&&!document.all&&!document.getElementById) {
                return;
        }

        var Digital=new Date();
        var hours=Digital.getHours();
        var minutes=Digital.getMinutes();
        var seconds=Digital.getSeconds();
        //minutes and seconds format
        if (minutes<=9) {
                minutes="0"+minutes;
        }
        if (seconds<=9) {
                seconds="0"+seconds;
        }
        //language set________________________________________________________________________________________
        //set the lang value to change language
        var lang = "ita";
        //var suffx1;
        //var suffx2;
        //var daysuffx;
        if (lang=="ita") {
                //suffx1= "";
                //suffx2= "";
                //daysuffx = "";
                var dayarray = new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato");
                var months = new Array ("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
        }else if (lang=="eng") {
                //suffx1= " the ";
                //suffx2= " of ";
                //daysuffx = new Array("th","st","nd","rd","th","th","th","th","th","th");
                var dayarray = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
                var months = new Array ("Genuary","February","March","April","May","June","July","Augost","September","October","November","December");
        }
        //am-pm format________________________________________________________________________________________
        //for the 24h format set twfHours as true
        var twfHours = true;
        if (twfHours == true) {
                var dn= "";
        }else{
                var dn="AM";
                if (hours>12){
                        dn="PM";
                        hours=hours-12;
                }
                if (hours==0) {
                        hours=12;
                }
        }
        //________________________________________________________________________________________
        var data = new Date();
        var anno = data.getFullYear();
        var mese = months[data.getMonth()];
        var giorno = data.getDate();
        //________________________________________________________________________________________
        //day of the week print________________________________________________________________________________________
        var dayofweek = false;
        if (dayofweek == true) {
                var dweek = dayarray[data.getDay()];
        }else{
                dweek = "";
        }
        //________________________________________________________________________________________
        dataAdesso = dweek +'&nbsp;'+ giorno +'&nbsp;'+ mese +'&nbsp;'+ anno;
        dataoraoutput=hours+":"+minutes+":"+seconds+" "+dn+"&nbsp;&nbsp;"+dataAdesso;
        //CROSS BROWSER CONTROLS:
        if (document.layers) {
                document.layers.dataora.document.write(dataoraoutput);
                document.layers.dataora.document.close();
        } else if (document.all) {
                                var document.all.dataora;
                document.all.dataora.innerHTML=dataoraoutput;
        } else if (document.getElementById) {
                document.getElementById("dataora").innerHTML=dataoraoutput;
        } else {
                document.write(dataoraoutput);
        }
        if (document.all||document.getElementById) {
                //setInterval("datario()",1000); //same thing but sometimes buggy
                setTimeout("datario()",1000);
        }

}
*/