h2init();

function h2init()
{
  checkinfoVersion();
}

function checkinfoVersion()
{
  var infoVersion = parseInt(readCookie("infoVersion"));

  if (infoVersion)
  {  
    switch (infoVersion)
    {
      default:
        /* Do nothing */
        break;
    }
  }
  
  createCookie("infoVersion", 1, 365);
}

function createCookie(name, value, days, useLang) 
{
  var langString = useLang ? getLang() : "";

  var cookie = name + langString + "=" + value + ";";

  if (days) 
  {
    var date = new Date();
    var milliSecondsInDay = 86400000; // 24*60*60*1000
    date.setTime(date.getTime()+(days*milliSecondsInDay));
    cookie += " expires=" + date.toGMTString() + ";";
  }
  cookie += " path=/";

  document.cookie = cookie;
}

function readCookie(name, useLang) 
{
  var langString = useLang ? getLang() : "";

  var nameEQ = name + langString + "=";
  var ca = document.cookie.split(";");

  for(var i = 0; i < ca.length; i++) 
  {
    var c = ca[i];
    while (c.charAt(0) == " ") 
    {
      c = c.substring(1, c.length);
    }

    if (c.indexOf(nameEQ) == 0) 
    {
      return c.substring(nameEQ.length,c.length);
    }
  }
  return null;
}

function getLang()
{
  var langString = "";

  if (document.documentElement){
    langString = document.documentElement.lang;
    if (langString != ""){
      langString = "-" + langString;
    }
  }  
  return langString;
}

function liam(elm, user, domain)
{
  var u;
  var d;

  if (user)
  {
    u = user;
  }
  else 
  {
    u = "\u0077\u0065\u0062" +
	    "\u0065\u006e\u0071\u0075\u0069\u0072\u0069\u0065\u0073";
  }
  
  if (domain)
  {
    d = domain;
  }
  else
  {
    var hostname = location.hostname;
	if (hostname.indexOf("\u0077\u0077\u0077\u002e") == 0)
	{
	  d = hostname.substr(4);
	}
	else
	{
	  d = hostname;
	}
  }

  elm.href = "\u006d" + "\u0061" + "\u0069" + "\u006c" +
             "\u0074" + "\u006f" + "\u003a" +
             u + "\u0040" + d;

  return true;
}

function h2onLoad() 
{
  initMenu("h2menu");
  if (document.getElementById)
  {
    var menuHoverStyles = document.getElementById("h2menuHover"); 
    menuHoverStyles.disabled = true;
  }
}

function elementContains(elmOuter, elmInner)
{
  while (elmInner && elmInner != elmOuter)
  {
    elmInner = elmInner.parentNode;
  }
  if (elmInner == elmOuter)
  {
    return true;
  }
  return false;
}

function getPageXY(elm)
{
  var point = { x: 0, y: 0 };
  while (elm)
  {
    point.x += elm.offsetLeft;
    point.y += elm.offsetTop;
    elm = elm.offsetParent;
  }
  return point;
}

function setPageXY(elm, x, y)
{
  var parentXY = {x: 0, y: 0 };

  if (elm.offsetParent)
  {
    parentXY = getPageXY(elm.offsetParent);
  }

  elm.style.left = (x - parentXY.x) + "px";
  elm.style.top  = (y - parentXY.y) + "px";
}

function initMenu(menuid)
{
  var i;
  var j;
  var node;
  var child;
  var parent;

  // if the browser doesn't even support
  // document.getElementById, give up now.
  if (!document.getElementById)
  {
    return true;
  }

  // check for downlevel browsers
  // Opera 6, IE 5/Mac are not supported

  var version;
  var offset;

  offset = navigator.userAgent.indexOf("Opera");
  if (offset != -1)
  {
    version = parseInt("0" + navigator.userAgent.substr(offset + 6), 10);
    if (version < 7)
    {
      return true;
    }
  }

  offset = navigator.userAgent.indexOf("MSIE");
  if (offset != -1)
  {
    if (navigator.userAgent.indexOf("Mac") != -1)
    {
      return true;
    }
  }

  var menudiv = document.getElementById(menuid);

  // ul
  var ul = new Array();

  for (i = 0; i < menudiv.childNodes.length; i++)
  {
    node = menudiv.childNodes[i];
    if (node.nodeName.toLowerCase() == "ul")
    {
      ul[ul.length] = node;
    }
  }

  // ul > li
  var ul_li = new Array();

  for (i = 0; i < ul.length; i++)
  {
    node = ul[i];
    for (j = 0; j < node.childNodes.length; j++)
    {
      child = node.childNodes[j];
      if (child.nodeName.toLowerCase() == "li")
      {
        ul_li[ul_li.length] = child;
        child.style.display = "inline";
        child.style.listStyle = "none";
        child.style.position = "static";
      }
    }
  }

  // ul > li > ul
  var ul_li_ul = new Array();

  for (i = 0; i < ul_li.length; i++)
  {
    node = ul_li[i];
    for (j = 0; j < node.childNodes.length; j++)
    {
      child = node.childNodes[j];
      if (child.nodeName.toLowerCase() == "ul")
      {
        ul_li_ul[ul_li_ul.length] = child;
        child.style.position = "absolute";
        child.style.left = "-13em";
        child.style.visibility = "hidden";

        // attach hover to parent li
        parent = child.parentNode;
        parent.onmouseover = function (e)
        {
          var i;
          var child;
          var point;

          // stop the pure css hover effect
          this.style.paddingBottom = "0";

          for (i = 0; i < this.childNodes.length; i++)
          {
            child = this.childNodes[i];
            if (child.nodeName.toLowerCase() == "ul")
            {
              point = getPageXY(this);
              setPageXY(child, point.x, point.y + this.offsetHeight);
              child.style.visibility = "visible";
            }
          }
          return false;
        };
        parent.onmouseout = function (e)
        {
          var relatedTarget = null;
          if (e)
          {
            relatedTarget = e.relatedTarget;
            // work around Gecko Linux only bug where related target is null
            // when clicking on menu links or when right clicking and moving
            // into a context menu.
	    if (navigator.product == "Gecko" && navigator.platform.indexOf("Linux") != -1 && !relatedTarget)
	    {
	      relatedTarget = e.originalTarget;
	    }
          }
          else if (window.event)
          {
            relatedTarget = window.event.toElement;
          }

          if (elementContains(this, relatedTarget))
          {
            return false;
          }

          var i;
          var child;
          for (i = 0; i < this.childNodes.length; i++)
          {
            child = this.childNodes[i];
            if (child.nodeName.toLowerCase() == "ul")
            {
                child.style.visibility = "hidden";
            }
          }
          return false;
        };
      }
    }
  }
  return true;
}

