var oldHeaderWasLast;
var oldListElement;
var oldHeaderElement;

function toggleHelpSectionVisibility(hsid, hiid, makeVisibleOnly)
{
   var headerElement = document.getElementById("helpHeader" + hsid);
   var listElement = document.getElementById("helpList" + hsid);

   if (listElement.style.display == "none")
   {
      listElement.style.display = "block";

      if (oldListElement)
      {
         if (oldHeaderWasLast)
         {
            removeClass(oldHeaderElement, "lastListHeaderOn");
            addClass(oldHeaderElement, "lastListHeaderOff");            
         }
         else
         {
            removeClass(oldHeaderElement, "listHeaderOn");
            addClass(oldHeaderElement, "listHeaderOff");
         }
      
         oldListElement.style.display = "none";         
      }

      if (hsid == 23)
      {
         oldHeaderWasLast = true;
         removeClass(headerElement, "lastListHeaderOff");
         addClass(headerElement, "lastListHeaderOn");
      }
      else 
      {
         oldHeaderWasLast = false;
         removeClass(headerElement, "listHeaderOff");
         addClass(headerElement, "listHeaderOn");  
      }
      
      oldListElement = listElement;
      oldHeaderElement = headerElement;
   }
   else if (!makeVisibleOnly)
   {
      listElement.style.display = "none";
      
      if (hsid == 23)
      {
         removeClass(headerElement, "lastListHeaderOn");
         addClass(headerElement, "lastListHeaderOff");           
      }
      else
      {
         removeClass(headerElement, "listHeaderOn");
         addClass(headerElement, "listHeaderOff");
      }
      
      oldListElement = null;  
      oldHeaderElement = null;
      
      return false;
   }

   if (hiid)
      activateLink(hiid);

   return true;
}

var lastLink;

function activateLink(hiid)
{
   if (lastLink)
   {
      removeClass(lastLink, "activeLink");
   }
   
   var element = document.getElementById("helpItem" + hiid);

   addClass(element, "activeLink");
   lastLink = element;
}

function parseHrefAndCall(link)
{
   link = link.substring(1, link.length);

   var osid = 0;
   var hsid = 0;
   var hiid = 0;
   
   if (link.length > 3)
   {
      var strings = link.split("&");
      for(var i = 0; i < strings.length; i++) 
      {
         if (strings[i].substring(0, 2) == "os")
            osid = strings[i].substring(3, strings[i].length);
         else if (strings[i].substring(0, 2) == "hs")
            hsid = strings[i].substring(3, strings[i].length);
         else if (strings[i].substring(0, 2) == "hi")
            hiid = strings[i].substring(3, strings[i].length);
      }
   }
   
   if (osid == 0 && hsid == 0 && hiid == 0)
      osid = 1;

   AsyncInclude("/shared/async/helpBody.jsp?os=" + osid + "&hs=" + hsid + "&hi=" + hiid, "mainDisplay");

   if (hsid != 0)
      toggleHelpSectionVisibility(hsid, hiid, true);
}

function detectAnchor()
{
   parseHrefAndCall(location.hash, 0);
}

var oldHash = location.hash;

function detectAnchorChange()
{
   var changed = oldHash != location.hash;

   oldHash = location.hash;

   if (changed)
      parseHrefAndCall(location.hash);
}

function detectQuery()
{
   var href = location.href;
   
   if (href.indexOf("?") > -1)
      href = href.substring(href.indexOf("?"), href.length);
   else
      href = "?os=1";

   parseHrefAndCall(href);
}
