//free JavaScripts on http://www.ScriptBreaker.com

 

 var open_close = false // true or false, false = close the previous item_panel first when opening a new one 

 

  var height = 20; // height of the menu headers

  var iheight = 15; // height of the menu_items

  

  var bgc = "white" // background color of the item

  var tc = "black" // text color of the item

  

  var over_bgc = "silver";

  var over_tc = "red";

  

  var speed = 0; // time between changing heigth of the item_panel

  var steps = 1; // changing heigth in steps of

  var timerID = "";

  var N = (document.all) ? 0 : 1;

  var width = 152





  var self_menu = new Array();

function write_menu()

{

  smc = 0; // count the position of the self_menu

  document.write("<div style='position:absolute'>");

  mn = 0;

  mni = 1;

  start = -1;

  

  for(i=0;i<Link.length;i++)

  {

   la = Link[i].split("|");



   if (la[0] == "0")

   {

    if(start == 0) 

     {

      document.write("</div>");

      h =  csmc * iheight;

      tmn = mn;

      self_menu[smc] = new Array(tmn,h,0,-2);

      smc++;

      mn--;

     }

     csmc = 0;

    document.write("<div class='menu' style='top:"+mn+";height:"+height+"' id='down"+smc+"' onclick='prepare("+smc+","+mni+")'>&nbsp;"+ la[1] + "</div>");

    self_menu[smc] = new Array(mn,height,0,mni);

    smc++;

    mni++;

    mn+=height;

    start = 1;

   }

   else

   {

    if(start == 1) 

     {

      if(N)mn+=2;

       document.write("<div class='item_panel' id='down"+smc+"' style='top:"+mn+"'>");

       start = 0;

     }

    

    document.write("<a href='"+la[2]+"'");

    if (la[3] != "") document.write(" target='" + la[3] + "' ");

    document.write("><div class='item' id='d"+i+"' style='height:"+iheight);

    if (N) document.write(";width:150");

    document.write("' onmouseover='color(this.id)' onmouseout='uncolor(this.id)'>&nbsp;&nbsp;"+ la[1] + "</div></a>");

    csmc++;

   }

  }

  if (start == 0) 

   {

     document.write("</div>");

     h =  csmc * iheight;

     tmn = mn + 5; 

     self_menu[smc] = new Array(tmn,h,0,-2);

     name = "down" + (self_menu.length-1);

     obj = document.getElementById(name);

     obj.style.borderBottomColor = "darkblue";

     obj.style.borderBottomWidth = 1;

     obj.style.borderBottomStyle = "solid";

   }

  document.write("</div>");

}

  



function color(obj)

{

 document.getElementById(obj).style.backgroundColor = over_bgc;

 document.getElementById(obj).style.color = over_tc

}



function uncolor(obj)

{

 document.getElementById(obj).style.backgroundColor = bgc;

 document.getElementById(obj).style.color = tc

}



var prevnr = -1;

var prevc = -1;

var vprepare = "stop";

var step = 0;

function prepare(nr,c)

{

 if (open_close)

 {

  if(prevnr == -1)

  {

   if(self_menu[nr+1][2] == 0)

   {

   prevnr = nr;

   prevc = c;

   }

   else

   {

   prevnr = -1;

   prevc = -1;

   }

   step = 0;

   pull_down(nr,c);

  }

  else

  {

  if((step == 0) && (prevnr != -1))

  {

    if (self_menu[nr+1][2] == 1)

    {

     step = 0;

     prevnr = -1;

     prevc = -1;

     pull_down(nr,c);

    }

    else

    {

    step = 1;

    pull_down(prevnr,prevc);

    prevnr = nr;

    prevc = c;

    }

  }

  else

  {

    step = 0;

    pull_down(prevnr,prevc);

  }

 }}

 else {pull_down(nr,c);vprepare = "stop"}

}



function end_prepare()

{

 if (step == 1) prepare();

 else {if (timerID != "") clearTimeout(timerID);}

}



function pull_down(nr,c)

{

 if (timerID == "")

 {

 to = self_menu[nr+1][1]

 begin = nr + 2;

 if (timerID != "") clearTimeout(timerID);

 if (self_menu[nr+1][2] == 0)

 {

  self_menu[nr+1][2] = 1;

  if(nr == self_menu.length-2) {to++;}

  epull_down(begin,to,0);

 }

 else

 {

  to = 0;

  self_menu[nr+1][2] = 0;

  name = "down"+(nr+2);

  open_item = 0;

  for(i=0;i<nr;i++)

  {

   if(self_menu[i][2] == 1) 

    {open_item += self_menu[i][1];

    }

  }

  if (N == false) {open_item-= (c*1)};

  if (nr== self_menu.length-2) {val = self_menu[self_menu.length-1][1];to=-1;}

  else  val = parseInt(document.getElementById(name).style.top) -(open_item)-(c*height);

  epull_up(begin,to,val);

 }

 }

}



function epull_down(nr,to,nowv)

{

 if((nowv + steps) >= to) {vsteps = to - nowv;}

 else {vsteps = steps;}

 name = "down" + (nr-1);

 obj = document.getElementById(name).style.clip = "rect(0,"+width+","+(nowv+vsteps)+",0)";

 for (i=nr;i<self_menu.length;i++)

 {

  name = "down" + i;

  obj = document.getElementById(name);

  obj.style.top = parseInt(obj.style.top)+vsteps;

 }

 nowv+=vsteps;

 if(nowv < to) timerID = setTimeout("epull_down("+nr+","+to+","+nowv+")",speed);

 else {timerID = "";if(startid != "stop") open_all(); else end_prepare()}

}



function epull_up(nr,to,nowv)

{

 if((nowv-steps) <= to) {vsteps = nowv-to;nowv = 0;if(to == -1) vstep = nowv}

 else {vsteps = steps;}

 name = "down" + (nr-1);

 obj = document.getElementById(name).style.clip = "rect(0,"+width+","+nowv+",0)";

 for (i=nr;i<self_menu.length;i++)

 {

  name = "down" + i;

  obj = document.getElementById(name);

  obj.style.top = parseInt(obj.style.top)-vsteps;

 }

 nowv-=vsteps;

 if(nowv > to) timerID = setTimeout("epull_up("+nr+","+to+","+nowv+")",speed);

 else {timerID = "";end_prepare();}

}



var lb = new Array();



function startup(nr)

{

 write_menu();

 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")

 {

 j = 0;

 for(i=0;i<self_menu.length;i++)

 {

  if(self_menu[i][3] != -2) {lb[j] = self_menu[i][3];j++;}

 }

 }

 else

 {

 lb = nr.split("|");

 }

 open_all();

 }

 else startid = "stop";

}

//free JavaScripts on http://www.ScriptBreaker.com

var startid = 0;

var open_part = 0;





function open_all()

{

 startid = lb[open_part];

 for(i=0;i<self_menu.length;i++)

 {

  if(self_menu[i][3] == startid) 

  {

  prevnr = i;

  prevc = startid;

  pull_down(i,startid);

  i==self_menu.length;

  open_part++;}

 }

 if(open_part == lb.length) startid = "stop";

 

}



