var g_menuElementIdToReformat = new String();
function initializeMenuReformatterForInternetExplorer(menuElementID)
{
	g_menuElementIdToReformat = menuElementID;
	if (isTargetedInternetExplorer())
	{
		window.attachEvent("onload", menuReformatForInternetExplorer6);
	}
}
function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
	var rv = -1; // Return value assumes failure.
	if (navigator.appName == 'Microsoft Internet Explorer')
	{
	var ua = navigator.userAgent;
	var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
	if (re.exec(ua) != null)
		rv = parseFloat( RegExp.$1 );
	}
	return rv;
}
function isTargetedInternetExplorer()
{
	var ver = getInternetExplorerVersion();
	return ((ver >=5) && (ver < 7));
}

function menuReformatForInternetExplorer6()
{
	if (g_menuElementIdToReformat.length > 0)
	{
		var levelZeroListItems = document.getElementById(g_menuElementIdToReformat).children;
		collectAndPrepareSubmenus(levelZeroListItems);
	}
}
function collectAndPrepareSubmenus(collectionOfListItems)
{
	var container;
	var willBeContained;
	var savedHTML;
	for (var i=0; i < collectionOfListItems.length; i++)
	{
		container = getFirstChildHavingTagName(collectionOfListItems[i], 'A');
		if (container != null)
		{
			willBeContained = getFirstChildHavingTagName(collectionOfListItems[i], 'UL');
			if (willBeContained != null)
			{
				savedHTML = willBeContained.outerHTML;
				collectAndPrepareSubmenus(willBeContained.children);
				savedHTML = willBeContained.outerHTML;
				willBeContained.outerHTML = '';
				container.innerHTML = container.innerHTML + '<table><tr><td>' + savedHTML + "</td></tr></table>";
			}
		}
	}

}
function getFirstChildHavingTagName(oFrom, sTagName)
{
	var oReturn = null;
	sTagName = sTagName.toUpperCase();
	for (var i=0; i < oFrom.children.length; i++)
	{
		if (oFrom.children(i).tagName == sTagName)
		{
			oReturn = oFrom.children(i);
			break;
		}
	}
	return oReturn;
}
