var Html;
if (!Html) Html = new Object();
Html.Compat = {
  getElementsByClassName: function(scope, className) {
    var elements = new Array();
    var children = scope.getElementsByTagName('*');
    for (var i=0, len=children.length; i<len; i++) {
      var child = children[i];
      if (child.className && child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) {
        elements.push(child);
      }
    }
    return elements;
  }
}

function makeMultiHref() {
  var elems = Html.Compat.getElementsByClassName(document.body, "multiHref");

  for (var i=0, len=elems.length; i<len; i++) {
    // check 'position' is marked as 'relative'. this is a pseudo-media CSS test
    if (elems[i].currentStyle) {
        if (elems[i].currentStyle["position"] != 'relative') return;
    } else if (window.getComputedStyle) {
        if (window.getComputedStyle(elems[i], null).getPropertyValue("position") != 'relative') return;
    }
    

    // if one link or less; no multilink needed!
    var links = elems[i].getElementsByTagName('*');
    if (links.length < 2) return;  

    // first link within span becomes pop-up base to multinode
    links[0].className = "multiHrefOn";

    // insert pop-up div immediately after first link
    var spanElem = document.createElement("span");
    spanElem.className = "multiHrefOn";
    var node = elems[i].insertBefore(spanElem, links[0].nextSibling);

    var next = node.nextSibling;
    while (next != undefined) {
      node = next; next = node.nextSibling;
      switch (node.nodeType) {
        case 4:  // Node.CDATA_SECTION_NODE
        case 3:  // Node.TEXT_NODE:
          var toDelete = node; 
          elems[i].removeChild(toDelete);
          break;
        case 1:  // Node.ELEMENT_NODE:
          var moveNode = spanElem.appendChild(node);
          moveNode.className = "multiHrefNode";
      }
    }
  }
}
