  var open_close = true // true or false, false = close the previous item_panel first when opening a new one 
  var width = 122; 
  var height = 16; // height of the menu headers
  var iheight = 14; // height of the menu_items
  var speed = 0; // time between changing heigth of the item_panel
  var steps = 5; // changing heigth in steps of
  var timerID = "";
  var N = (document.all) ? 0 : 1;
  var prevnr = new Array();

  var indefinito;

  function write_menu(nomeMenu,arrayMenu,nr)
  {  prevnr[nomeMenu]=-1;
     var openclose=new Array();
     if(nr)
     {  if(((nr.indexOf("|") != -1) || (nr.indexOf("all") != -1)) && (open_close == true)) alert("Error: the open_close property can only be used with a maximum of 1 default item.");
        if (nr == "all")
        {  for (k=1;k<=arrayMenu[0];k++)
           {  openclose[k]="open";
           }
        }
        else
        {  if (nr.indexOf("|") != -1)
           {  var elementiopen = nr.split("|");
              for (e=1;e<elementiopen.length;e++)
              {  openclose[e]="open";
              }
           }
           else
           {  openclose[nr]="open";
           }
        }
     }

     var scrivi_menu="<div style='position: relative'>";
     var dasopra=0;
     for(i=1;i<=arrayMenu[0];i++)
     {  var la = arrayMenu[i][0].split("|");
        if (openclose[i]=="open")
        {  stilemenu="menucliccato";
           prevnr[nomeMenu]=i;
           if ((typeof arrayMenu[i][1][0]=="number") && (!indefinito))
             bordermenu="border-bottom-width: 1px;";
           else
             if (i<arrayMenu[0])
                bordermenu="border-bottom-width: 0px;";
             else
                bordermenu="border-bottom-width: 1px;";
        }
        else
        {  stilemenu="menu";
           if (i<arrayMenu[0])
              bordermenu="border-bottom-width: 0px;";
           else
              bordermenu="border-bottom-width: 1px;";
        }

        scrivi_menu+="\n<div class=\""+stilemenu+"\" style=\"top:"+dasopra+";height:"+height+";"+bordermenu+"padding-top:1px;padding-bottom:1px;padding-left:3px;padding-right:2px\" id=\""+nomeMenu+"down"+i+"\" onclick=\"prepare('"+nomeMenu+"',"+arrayMenu[0]+","+i+")\">"
        dasopra+=height-1;
        if (la.length>1)
        {  scrivi_menu+="<a href=\""+la[1]+"\"";
           if (la[2]!=indefinito) scrivi_menu+=" target=\"" + la[2] + "\"";
           if (la[3]!=indefinito) scrivi_menu+=" language=javascript onclick=\"" + la[3] + "\"";
           scrivi_menu+=" class=menutext>"
        }
        else
        {  scrivi_menu+="<a href=\"#\" class=menutext>";
        }
        scrivi_menu+=la[0] + "</a></div>";

        if ((typeof arrayMenu[i][1][0]=="number") && (!indefinito))
        {  var aperturamenu;
           if (openclose[i]=="open")
           {  aperturamenu="display: block;";
           }
           else
           {  aperturamenu="display: none;";
           }
           scrivi_menu+="\n<div class='item_panel' id='"+nomeMenu+"itemdi"+i+"' style='top:"+dasopra+";"+aperturamenu+"padding-left: 6px'>";
           for (j=1; j<=arrayMenu[i][1][0]; j++)
           {  havesottomenu=false;
              if (typeof arrayMenu[i][1][j]=="string")
              {  sottomenu=arrayMenu[i][1][j];
              }
              else
              {  sottomenu=arrayMenu[i][1][j][0];
                 havesottomenu=true;
              }
              var la_s = sottomenu.split("|");
              scrivi_menu+="<div class='item' id='"+nomeMenu+"d"+i+"e"+j+"' style='height:"+iheight+"'>";
              //dasopra+=iheight;
              if (la_s.length>1)
              {  scrivi_menu+="<a href=\"" + la_s[1] + "\"";
                 if (la_s[2]!=indefinito) scrivi_menu+=" target=\"" + la_s[2] + "\"";
                 if (la_s[3]!=indefinito) scrivi_menu+=" language=javascript onclick=\"" + la_s[3] + "\"";
                 scrivi_menu+=" class=submenutext>" + la_s[0] + "</a>";
              }
              else
              {  scrivi_menu+=la_s[0];
              }
              scrivi_menu+="</div>"

              if (havesottomenu)
              {  if ((typeof arrayMenu[i][1][j][1][0]=="number") && (!indefinito))
                 {  for (z=1; z<=arrayMenu[i][1][j][1][0]; z++)
                    {  var la_s2 = arrayMenu[i][1][j][1][z].split("|");
                       scrivi_menu+="<div class='sottoitem' id='d"+i+"e"+j+"e"+z+"' style='height:"+iheight+"'>-&nbsp;";
                       dasopra+=iheight;
                       if (la_s2.length>1)
                       {  scrivi_menu+="<a href=\""+la_s2[1]+"\"";
                          if (la_s2[2]!=indefinito) scrivi_menu+=" target=\"" + la_s2[2] + "\"";
                          if (la_s2[3]!=indefinito) scrivi_menu+=" language=javascript onclick=\"" + la_s2[3] + "\"";
                          scrivi_menu+=" class=submenutext>"+ la_s2[0] + "</a>";
                       }
                       else
                       {  scrivi_menu+=la_s2[0];
                       }
                       scrivi_menu+="</div>"
                    }
                 }
              }
           }
           scrivi_menu+="</div>"
        }
     }   
     scrivi_menu+="</div>";
     document.write(scrivi_menu);
  }


  function prepare(nomeMenu,nmax,nr)
  {  if (prevnr[nomeMenu]>-1)
     {  pull_down(nomeMenu,nmax,prevnr[nomeMenu]);
     }
     if (prevnr[nomeMenu]!=nr) 
     {  pull_up(nomeMenu,nmax,nr);
        prevnr[nomeMenu]=nr;
     }
     else
       prevnr[nomeMenu]=-1;
  }

  function pull_down(nomeMenu,nmax,nr)
  {  document.getElementById(nomeMenu+"down"+nr).className="menu";
     if (document.getElementById(nomeMenu+"itemdi"+nr)!=null)
     {  document.getElementById(nomeMenu+"itemdi"+nr).style.display='none';
        if (nr<nmax)
          document.getElementById(nomeMenu+"down"+nr).style.borderBottomWidth="0px";
        else
          document.getElementById(nomeMenu+"down"+nr).style.borderBottomWidth="1px";
     }
     else
     {  if (!(nr<nmax))
           document.getElementById(nomeMenu+"down"+nr).style.borderBottomWidth="1px";
     }
  }

  function pull_up(nomeMenu,nmax,nr)
  {  document.getElementById(nomeMenu+"down"+nr).className="menucliccato";
     if (document.getElementById(nomeMenu+"itemdi"+nr)!=null)
     {  document.getElementById(nomeMenu+"itemdi"+nr).style.display='block';
        document.getElementById(nomeMenu+"down"+nr).style.borderBottomWidth="1px";
     }
     else
     {  if (!(nr<nmax))
           document.getElementById(nomeMenu+"down"+nr).style.borderBottomWidth="1px";
     }
  }

  function startup(nomeMenu,arrayMenu,nr)
  {  write_menu(nomeMenu,arrayMenu,nr);
  }


