// Check browser type, register events as necessary
function init() 
{
   var isNav4
   if (parseInt(navigator.appVersion.charAt(0)) >= 4) 
   {
      var isNav4 = (navigator.appName == "Netscape") ? true : false
   }

   if (isNav4) 
   {
     document.captureEvents(Event.CLICK | Event.MOUSEOVER | Event.MOUSEOUT)
   }
   document.onclick     = expandContract;
   document.onmouseover = mouseOver;
   document.onmouseout  = mouseOut;
}

function GetChildElem (eSrc,sTagName)
{
  var cKids = eSrc.childNodes;

  for (var i=0;i<cKids.length;i++)
  {
    if (sTagName == cKids[i].tagName) return cKids[i];
  }

  return false;
}

function getTarget(e)
{
  var eSrc;
  if (!e) var e = window.event;
  if (e.target) eSrc = e.target;
  else if (e.srcElement) eSrc = e.srcElement;
  if (eSrc.nodeType == 3) // for Safari bug
    eSrc = targ.parentNode;
  return eSrc;
}

function expandContract(e)
{
  var eSrc = getTarget(e);
  
  if (eSrc.parentNode.className == "parent")
  {
    var eChild = GetChildElem (eSrc.parentNode,"UL" );
    var eImg   = GetChildElem (eSrc.parentNode,"IMG");

    eChild.style.display = ("block" == eChild.style.display ? "none" : "block");
    eImg.  src           = ("block" == eChild.style.display ? "/images/minus.gif" : "/images/plus.gif");
  }
}
  
function mouseOver(e)  
{
  var eSrc = getTarget(e);

  if ((eSrc.parentNode.className == "parent") ||
      (eSrc.className == "link"))
  {
    eSrc.style.color = "#0084d6";
  }
}

function mouseOut(e) 
{
  var eSrc = getTarget(e);

  if ((eSrc.parentNode.className == "parent") ||
      (eSrc.className == "link"))
  {
    eSrc.style.color = "";
  }
}
