bool HyperLinkManager::doHyperLinkByMouseRight(const Window* pOwnerWindow,const Point& position)
{

	HyperLinkNameRegistry::const_iterator itCur, itEnd;
	HyperLink nHyperLink;

	itCur		= d_HyperLinkNameMap.begin();
	itEnd		= d_HyperLinkNameMap.end();

	while ( itCur != itEnd )
	{
		nHyperLink = itCur->second;

		if(nHyperLink.isInRange(pOwnerWindow,position))
		{
			HyperLinkEventArgs e(pOwnerWindow->getName(), nHyperLink.d_name);

			fireEvent(EventHyperLinkRightActive, e, EventNamespace);
			return true;
		}

		itCur++;
	}
	return false;

}
	bool HyperLinkManager::isHyperLinkRange(const Window* pOwnerWindow, const Point& position)
	{
		HyperLinkNameRegistry::const_iterator itCur, itEnd;
		HyperLink nHyperLink;

		itCur		= d_HyperLinkNameMap.begin();
		itEnd		= d_HyperLinkNameMap.end();
		Rect rectRange;
		while ( itCur != itEnd )
		{
			nHyperLink = itCur->second;

			if(nHyperLink.isInRange(pOwnerWindow,position, &rectRange))
			{
				d_lastMouseInLinkName = nHyperLink.d_name;
				d_lastMouseInLinkWindow = (Window*)pOwnerWindow;

				HyperLinkEventArgs e(pOwnerWindow->getName(), nHyperLink.d_name);

				fireEvent(EventHyperLinkInactive, e, EventNamespace);		
				return true;
			}

			if( d_lastMouseInLinkWindow == pOwnerWindow && d_lastMouseInLinkName == nHyperLink.d_name)
			{
				d_lastMouseInLinkWindow = NULL;
				d_lastMouseInLinkName = "";
			}

			itCur++;
		}
		return false;
	}
String HyperLinkManager::getHyperLinkContex(const Window* pOwnerWindow, const Point& position)
{
	HyperLinkNameRegistry::const_iterator itCur, itEnd;
	HyperLink nHyperLink;

	itCur		= d_HyperLinkNameMap.begin();
	itEnd		= d_HyperLinkNameMap.end();

	while ( itCur != itEnd )
	{
		nHyperLink = itCur->second;

		if(nHyperLink.isInRange(pOwnerWindow,position))
		{
			HyperLinkEventArgs e(pOwnerWindow->getName(), nHyperLink.d_name);
			return nHyperLink.d_name;
		}

		itCur++;
	}
	return "";
}