var NoBubbleMouseOut = 
{
	is_child_of : function(parent, child) 
	{
		if( child != null ) 
		{			
			while( child.parentNode ) 
			{
				if( (child = child.parentNode) == parent ) 
				{
					return true;
				}
			}
		}
		return false;
	},
	
	Hook : function(element, event, JavaScript_code) 
	{
		var current_mouse_target = null;
		if( event.toElement ) 
		{				
			current_mouse_target 			 = event.toElement;
		} 
		else if( event.relatedTarget ) 
		{				
			current_mouse_target 			 = event.relatedTarget;
		}
		if( !NoBubbleMouseOut.is_child_of(element, current_mouse_target) && element != current_mouse_target ) 
		{
			eval(JavaScript_code);
		}
	}
}