/*
 * Modified from common version (Peppered/AK)
 * @date 2007-01-02: added lines to set active tab style (AK)
 * 
 */

dropMenu.Registry = [];

function dropMenu(id, elm)
{
	dropMenu.Registry[id] = [];
	dropMenu.Registry[id]['hidden'] = 1;
	
	if (document.getElementById(id+"Container"))
		dropMenu.Registry[id]['containerObj'] = document.getElementById(id+"Container");
	else if (document.getElementById(id)) {
		dropMenu.Registry[id]['containerObj'] = document.getElementById(id);	// compat. with original menu ids
	}
	else {
		dropMenu.Registry[id]['containerObj'] = null;
	}
	
	if (document.getElementById(id+"Content"))
		dropMenu.Registry[id]['contentObj']   = document.getElementById(id+"Content");
	else
		dropMenu.Registry[id]['contentObj']   =  null;
	
		
	//hover for parent li items (which don't have a submenu)
	if (id.substring(0,4) == 'menu') {
		menuItem = document.getElementById(id);
		menuItem.onmouseover = function() {
			this.className += ' menuCatHover';
			
			//dropMenu.Registry[id]
		}
		menuItem.onmouseout = function() {
			this.className = this.className.replace(/menuCatHover/, '');
		}
	}
	
	
	if(dropMenu.Registry[id]['containerObj'] == null)
	{
		delete dropMenu.Registry[id]['containerObj']
		return;
	}	
	if(dropMenu.Registry[id]['contentObj'] == null)
	{
		delete dropMenu.Registry[id]['contentObj']
		return;
	}		
	
	
	//create hover effects on all children
	if (children = dropMenu.Registry[id]['contentObj'].firstChild.childNodes)
	{
		for(i = 0; i < children.length; i++)
		{
			if (child = children[i].firstChild)
			{
				child.onmouseover = function(e) { dropMenu.hover(e)};
				child.onmouseout = function(e) { dropMenu.hoverout(e)};
			}
		}
		
	//	dropMenu.Registry[id]['textObj']	  = document.getElementById(elm+"Text");
		dropMenu.Registry[id]['inputObj'] 	  = document.getElementById(elm+"Input");
		
		// drop down events
		dropMenu.Registry[id]['containerObj'].onmouseover = function() { dropMenu.showMenu(id); return true;}
		
		// disappear events
		dropMenu.Registry[id]['containerObj'].onmouseout  = function(e) { dropMenu.hideAction(e, id); }
		//dropMenu.Registry[id]['containerObj'].onmouseout  = function(e) { dropMenu.hideAction(e, id); }
		dropMenu.Registry[id]['containerObj'].onblur      = function() { dropMenu.hideMenu(id); }
		
		// select events
		//dropMenu.Registry[id]['contentObj'].onmousedown = function(e) { dropMenu.select(e, id); }
	}
}

dropMenu.showMenu = function(id)
{
	if(dropMenu.Registry[id]['hidden'])
	{
		if (id.substring(0,4) == 'menu')
			dropMenu.Registry[id]['contentObj'].parentNode.className += ' menuCatHover';
		dropMenu.Registry[id]['contentObj'].style.display = 'inline';
		dropMenu.Registry[id]['hidden'] = 0;		
	}
}
var temp = '';

dropMenu.hideAction = function(e, id)  //solver : MAKE ALL ONE BIG container that floats and changes size??? 
{
	if(!dropMenu.Registry[id]['hidden']&&0)
	{
		if (!e) var e = window.event;
		var tg = e.srcElement || e.target;
		if (tg.nodeName != 'DIV') return;
		var reltg = e.relatedTarget || e.toElement;
		while (reltg != tg && reltg.nodeName != 'BODY')
		{
			temp += reltg.nodeName + "->";
			reltg= reltg.parentNode
		}
		temp += reltg.nodeName;
		//window.alert(temp);
		temp = '';
		if (reltg == tg) return;
		
	}
	dropMenu.hideMenu(id);
}

dropMenu.hideMenu = function(id)
{
	if (id.substring(0,4) == 'menu')
		dropMenu.Registry[id]['contentObj'].parentNode.className = dropMenu.Registry[id]['contentObj'].parentNode.className.replace(/menuCatHover/, '');
	dropMenu.Registry[id]['contentObj'].style.display = 'none';
	dropMenu.Registry[id]['hidden'] = 1;
	dropMenu.Registry[id]['containerObj'].blur();
}

dropMenu.select = function(e, id)
{
	var target
	if (!e) var e = window.event
	target = e.target || e.srcElement;
	if (target.nodeType == 3) // defeat Safari bug
	   target = target.parentNode
	
	// get the content of target
	if(target.nodeName == 'SPAN')
	{
//		dropMenu.Registry[id]['textObj'].innerHTML = target.innerHTML;
		dropMenu.Registry[id]['inputObj'].value = target.innerHTML;
		dropMenu.hoverout(e);
		dropMenu.hideMenu(id);
	}
}

dropMenu.hover = function(e)
{
	if (!e) var e = window.event
	target = e.target || e.srcElement;
	target.className += " dropMenuHover";
}

dropMenu.hoverout = function(e)
{
	if (!e) var e = window.event
	target = e.target || e.srcElement;
	target.className = target.className.replace(/dropMenuHover/,"");
}