var _id = 'ull';
var _div = false;
var _uls = [];
var _popup_id = 'popup';
var _popup = false;
var _timeout = false;
var _timeout_td = false;
var _t = 50;
var now_sel = -1;

	function initPopups()
	{
		_div = document.getElementById(_id);
		_popup = document.getElementById(_popup_id);
		_table = document.getElementById("table-descr");

		if(_div)
		{
			
			_div._uls = [];
			var _uls = _div.getElementsByTagName('a')
			for(i=0; i< _uls.length; i++)
			{
				if(_uls[i].parentNode.parentNode.id == _id && _uls[i].className == "plus")
				{
					_uls[i].onmouseover = function()
					{
						clearTimeout(_timeout);
						if (_popup)
						{
							var _parent = this.parentNode;

							_popup.innerHTML = "";
							_spans = _parent.getElementsByTagName('em');
							_popup.now_sel = _parent._i;
							if(_spans[0])
							{
								_popup.innerHTML = _spans[0].innerHTML;
							}
							_popup.style.visibility = "hidden";
							_popup.style.display = "block";
							_popup.style.top = getRealTop(_parent) + _parent.offsetHeight - _popup.offsetHeight - 36 + "px";
							_popup.style.left = getRealLeft(_parent) + _parent.offsetWidth - _popup.offsetWidth - 18 + "px";
							_popup.style.visibility = "visible";
						}
					}
					_uls[i].onmouseout = function()
					{
						_timeout = setTimeout('displaynone()',_t);
					}
				}
			}

			_uls = _div.getElementsByTagName('li')
			for(i=0; i< _uls.length; i++)
			{
				if(_uls[i].parentNode.id == _id && _uls[i].id.length > 0)
				{
					_uls[i]._td_id = _uls[i].id.replace("li-","td-");
					_uls[i]._i = i;
					
					_uls[i].onmouseover = function()
					{
						now_sel = this._i;
						deselecttd();
						var _td = document.getElementById(this._td_id);
						if(_td)
						{
							if(_td.className.indexOf("active") == -1)
							{
								_td.className += " active";
							}
						}
					}
					_uls[i].onmouseout = function()
					{
						now_sel = -1;
						_div._uls[this._i]._timeout_td = setTimeout('deselecttd()',_t);
					}
					_div._uls[i] = _uls[i];					
				}
			}
		}	
		if(_popup)
		{
			_popup.onmouseover = function()
			{
				now_sel = this.now_sel;
				clearTimeout(_timeout);
			}
			_popup.onmouseout = function()
			{
				now_sel = -1;
				clearTimeout(_timeout);
				clearTimeout(_timeout_td);
				_timeout = setTimeout('displaynone()',_t);
				_timeout_td = setTimeout('deselecttd()',_t);
			}
		}

		if(_table)
		{
			var _tr = _table.getElementsByTagName('tr');
			for(i=0; i< _tr.length; i++)
			{
				if(_tr[i].className != "first")
				{
					var _tds = _tr[i].getElementsByTagName('td');
					if(_tds.length > 0)
					{
						var _tds_len = _tds.length - 1;
						if(_tds[_tds_len])
						{
							_tds[_tds_len].onmouseover = function()
							{								
								if(this.className.indexOf("active") == -1)
								{
									this.className += " active";
								}

								var _first = this.parentNode.getElementsByTagName('td');
								if(_first[0])
								{

									if(_first[0].className.indexOf("active") == -1)
									{
										_first[0].className += " active";
									}
									//_first[0].className = this.className;
									
								}

							}
							_tds[_tds_len].onmouseout = function()
							{
								this.className = this.className.replace("active","");
								var _first = this.parentNode.getElementsByTagName('td');
								if(_first[0])
								{
									_first[0].className = _first[0].className.replace("active","");
									//_first[0].className = this.className;
								}
							}
							
						}
					}
				}
			}					
		}


			
	}

if (window.addEventListener)
	window.addEventListener("load", initPopups, false);
else if (window.attachEvent)
	window.attachEvent("onload", initPopups);

function displaynone()
{
	if(_popup)
	{
		_popup.style.display = "none";
	}
}

function deselecttd()
{
	var _uls = _div._uls;
	for(i=0; i< _uls.length; i++)
	{
		if(_uls[i]._td_id && now_sel != i)
		{
			var _td = document.getElementById(_uls[i]._td_id);
			if(_td)
			{
				_td.className = _td.className.replace("active","");
			}
		}
	}
}

function getRealTop(elem)
{
	var nTop = 0;
	if(elem)
	{
		do
		{
			nTop += elem.offsetTop /*- elem.scrollTop*/;
			elem = elem.offsetParent;
		}
		while(elem)
	}
	return nTop;
}

function getRealLeft(elem)
{
	var nLeft = 0;
	if(elem)
	{
		do
		{
			nLeft += elem.offsetLeft /*- elem.scrollLeft*/;
			elem = elem.offsetParent;
		}
		while(elem)
	}
	return nLeft;
}
