  var thisHost = location.hostname;
  var thisPage = location.pathname;

  // First remove the host name.
  var re = new RegExp('.*' + thisHost);
  thisPage = thisPage.replace(re,'');

  // Then remove TeamSite-specific path components.
  re = new RegExp('.*(/STAGING|/WORKAREA/[^/]+)');
  thisPage = thisPage.replace(re,'');

  // Remove trailing "index.htm", if any.
  re = new RegExp('/(index.html?)?\$');
  thisPage = thisPage.replace(re,'');
  
  var navCell = document.getElementById('content-row-navigation');
  var links = navCell.getElementsByTagName('a');
  var currentPageLink;
	if (thisPage != '')
		{
		for (var i = 0; i < links.length; i++)
			{
			re = new RegExp(thisPage + '(/(index.html?)?)?\$');
			if (links[i].href.match(re) && !hasClass(links[i], 'navigation-alias'))
				{
				currentPageLink = links[i];
				}
			}
		}
  
  // Highlight the current page.
  addClass(currentPageLink, 'current-page');
  
  // Collapse all ULs.
  var uls = navCell.getElementsByTagName('ul');
  for (var i = 0; i < uls.length; i++) {
    addClass(uls[i], 'navigation-collapsed');
  }

	if (currentPageLink)
	  	{
		// Expand relevant navigation tree sections.
		var currentNode = currentPageLink;
		while (currentNode)
			{
			if (currentNode.nodeName.toUpperCase() == 'UL')
				{
				removeClass(currentNode, 'navigation-collapsed');
				}
			currentNode = currentNode.parentNode;
			}
		var siblingNodes = currentPageLink.parentNode.childNodes;
		for (var i = 0; i < siblingNodes.length; i++)
			{
			var showCurrentLink = 'n';
			if (siblingNodes[i].nodeName.toUpperCase() == 'UL')
				{
				var babyNodes = siblingNodes[i].childNodes;
				for (var g = 0; g < babyNodes.length; g++)
					{
					if (babyNodes[g].nodeName.toUpperCase() == 'LI')
						{
						if (babyNodes[g].className != 'breadcrumb-only')
							{
							showCurrentLink = 'y'
							}
						}
					}
				if (showCurrentLink == 'y')
					{
					removeClass(siblingNodes[i], 'navigation-collapsed');
					}
				}
			}
		}

/**
* Determine if a DOM element has a given class.
*/

function hasClass(element, value) {
   if (!element || !element.className) {
      return false;
   }
   else {
      var classes = element.className.split(' ');
      for (var i = 0; i < classes.length; i++) {
         if (classes[i] == value) {
            return true;
         }
      }
   }
   return false;
}