dropMenu.Registry = [];

function dropMenu(id, elm)
{
	dropMenu.Registry[id] = [];
	dropMenu.Registry[id]['hidden'] = 1;
	
	dropMenu.Registry[id]['containerObj'] = document.getElementById(id+"Container");
	dropMenu.Registry[id]['contentObj']   = document.getElementById(id+"Content");
	
	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
	children = dropMenu.Registry[id]['contentObj'].firstChild.childNodes;
	for(i = 0; i < children.length; i++)
	{
		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'])
	{
		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)
{
	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/,"");
}