
var height   = 30; 	// height of the menu headers
var iheight  = 25; 	// height of the menu_items
var bgc      = "lightblue" // background color of the item
var tc 		 = "yellow" 	// text color of the item
var over_bgc = "silver";
var over_tc  = "red";
var speed    = 0;
var timerID  = "";
var N = (document.all) ? 0 : 1;
var width = 152;

nOpac  = 50
nPlus  = 2
nMin   = 1
speedx  = 20
timer  = null; 
timer2 = null;
selmenu = 0;

var self_menu = new Array();

var ie5=(document.all && document.getElementById);
var ns6=(!document.all && document.getElementById);

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; //-h
				self_menu[smc] = new Array(tmn,h,0,-2);
				smc++;
				mn--;
			}	
			csmc = 0;
			document.write("<div class='menu' onmouseover='fadeImg2(0)' onmouseout='fadeImgend2(0)' style='top:"+mn+";height:"+height+"' id='down"+smc+"'onclick='pull_down("+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; //-h
     	self_menu[smc] = new Array(tmn,h,0);
     	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
}

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)
{
	name = "down" + (nr-1);
  	obj = document.getElementById(name).style.clip = "rect(0,"+width+","+(nowv+1)+",0)";
  	for (i=nr;i<self_menu.length;i++)
  	{
    	name = "down" + i;
		obj = document.getElementById(name);
    	obj.style.top = parseInt(obj.style.top)+1;
  	}
  	nowv++;
  	if(nowv < to) 
    	timerID = setTimeout("epull_down("+nr+","+to+","+nowv+")",speed);
  	else
		timerID = "";
}

function epull_up(nr,to,nowv)
{
	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)-1;
  	}
  	nowv--;
  	if(nowv > to) 
    	timerID = setTimeout("epull_up("+nr+","+to+","+nowv+")",speed);
  	else
    	timerID = "";
}

function startup(nr)
{
	write_menu();
  	if (nr != 0)
  	{
    	for(i=0;i<self_menu.length;i++)
    	{
      		if(self_menu[i][3] == nr) pull_down(i,nr)
      		i==self_menu.length;
    	}
  	}
}

function fadeImg2(teller)
{
	apl[teller][1] = "Up";
	changes();
}

function fadeImgend2(teller)
{
	apl[teller][1] = "Down";
	setTimeout("changes()",speedx);
}

function setpos(n)
{
	selmenu = n;
}

function showpos()
{
	for (i=0;i<apl.length;i++)
 	{
 		obj1 = link_table.rows[i].cells[0];
 		if (selmenu==i)
 			obj1.style.filter = "alpha(opacity=100)";		
 		else
 			obj1.style.filter = "alpha(opacity=0)";
 	}
}

function changes()
{
	cellpos = 1;
	next_loop = true;
	for (i=0;i<apl.length;i++)
 	{
 		obj = link_table.rows[i].cells[cellpos];
  		opacity = apl[i][0]
  		if (apl[i][1] == "Up")
  		{
     		opacity += nPlus;
     		apl[i][0] = opacity;
     		if (apl[i][0] > 105) 
      		{
				apl[i][1] = "";
			}
     		else
			{
				next_loop = false;
			}
	 		nOpac = opacity;
  		}
  		else
 		{
  			if (apl[i][1] == "Down")
  			{
     			opacity -= nMin;
     			apl[i][0] = opacity;
     			if (apl[i][0] < 45) 
				{
					apl[i][1] = "";
				}
				else
				{
					next_loop = false;
				}
				nOpac = opacity;
			}
  		}
  		if(ie5)
		{ 
			obj.style.filter="alpha(opacity="+opacity+")";
		}
  		if(ns6)
		{ 
   			obj.style.MozOpacity = opacity + '%';
   		}
 	}
 	if (next_loop == false)
  	{
   		timer = setTimeout("changes()",speedx);
  	}
  	else
  	{
   		clearTimeout(timer);
  	}
  	
  	showpos();
}
