slideMenu.Registry = [];

function slideMenu(id,numLines) {
	slideMenu.Registry[id] = [];
	slideMenu.Registry[id]['height']       = 1;
	slideMenu.Registry[id]['expanded']     = 0;
	slideMenu.Registry[id]['containerObj'] = document.getElementById(id+"Container");
	slideMenu.Registry[id]['contentObj']   = document.getElementById(id+"Content");
	slideMenu.Registry[id]['borderObj']	   = document.getElementById(id+"border");
	
	if(document.getElementById(id+"Content") != null)
	{
		slideMenu.Registry[id]['maxHeight']    = new Number((numLines * slideMenu.lineHeight) + 2);
	
		//slideMenu.Registry[id]['maxHeight']    = (slideMenu.Registry[id]['containerObj'].scrollHeight * numLines) - (numLines - 1);
	
		slideMenu.Registry[id]['interval']     = null;
		slideMenu.Registry[id]['timeout']      = null;
	
		slideMenu.Registry[id]['contentObj'].style.height  = '1px';

	
		// slide down events
		slideMenu.Registry[id]['containerObj'].onmouseover = function() { slideMenu.showMenu(id); }
		slideMenu.Registry[id]['containerObj'].onfocus     = function() { slideMenu.showMenu(id); }
	
		// slide up events
		slideMenu.Registry[id]['containerObj'].onmouseout  = function() { slideMenu.hideMenu(id); }
		slideMenu.Registry[id]['containerObj'].onblur      = function() { slideMenu.hideMenu(id); }
	}
}

slideMenu.showMenu = function(id) {
	clearInterval(slideMenu.Registry[id]['interval']);
	clearTimeout(slideMenu.Registry[id]['timeout']);

	slideMenu.Registry[id]['interval'] = window.setInterval("slideMenu.slideDown('"+id+"')",20);
	var height = slideMenu.height(slideMenu.Registry[id]['contentObj'])+2;
	if(height > 2)
		slideMenu.Registry[id]['maxHeight'] = height;

	if(!slideMenu.Registry[id]['expanded'])
	{
		slideMenu.hideChildren(slideMenu.Registry[id]['contentObj']);
	}

	slideMenu.Registry[id]['containerObj'].className = "hover";
	slideMenu.Registry[id]['contentObj'].style.display = 'block';
	slideMenu.Registry[id]['contentObj'].style.zIndex += 10;

}

slideMenu.hideMenu = function(id) {
	clearInterval(slideMenu.Registry[id]['interval']);

	slideMenu.Registry[id]['contentObj'].style.zIndex = 10;
	slideMenu.Registry[id]['interval'] = window.setTimeout("slideMenu.slideUp('"+id+"')",200);
}

slideMenu.slideDown = function(id) {
	for(var i=0;i<30;i++) {
		if(slideMenu.Registry[id]['height'] >= slideMenu.Registry[id]['maxHeight']) {
			clearInterval(slideMenu.Registry[id]['interval']);
			slideMenu.showChildren(slideMenu.Registry[id]['contentObj']);
			slideMenu.Registry[id]['expanded'] = 1;
			slideMenu.Registry[id]['contentObj'].style.height = 'auto';
		} else {
			slideMenu.Registry[id]['contentObj'].style.height = slideMenu.Registry[id]['height']+'px';
			slideMenu.Registry[id]['height'] ++;
		}
	}
}

slideMenu.slideUp = function(id) {
	slideMenu.Registry[id]['contentObj'].style.height = '1px';
	slideMenu.Registry[id]['height'] = 1;
	slideMenu.Registry[id]['contentObj'].style.display = 'none';
	slideMenu.Registry[id]['containerObj'].className = "";
	slideMenu.Registry[id]['expanded'] = 0;

}

slideMenu.showChildren = function (object)
{
	var list = object.getElementsByTagName("li")
	for(var i = 0; i < list.length; i++)
	{
		list[i].style.display = 'block';
	}
}

slideMenu.hideChildren = function (object)
{
	var list = object.getElementsByTagName("li")
	for(var i = 0; i < list.length; i++)
	{
		list[i].style.display = 'none';
	}
}

slideMenu.height = function (object)
{
	var hide = 0;
	if(object.style.display == 'none')
	{
		object.style.display = 'block';
		hide = 1;
	}
	var list = object.getElementsByTagName("li")
	var height = 0;
	for(var i = 0; i < list.length; i++)
	{
		var hide = 0;
		if(list[i].style.display == 'none')
			object.style.display = 'block';
		height = height + list[i].scrollHeight;
	}
	if(hide)
	{
		object.style.display = 'none';
	}
	return height;
}