// This JS is used on the Global Gate way page, located at /about-us/worldwide-websites.php

addLoadEvent(globalmapSetUp);

function globalmapSetUp() {
  var spans = document.getElementById("globalmap").getElementsByTagName("span");
  for (var i=0; i < spans.length; i++) {
    if (spans[i].className == "dot") {
      spans[i].getElementsByTagName("a")[0].onmouseover = globalmapPopUp;
    }
  }
  var anchors = document.getElementById("global_list_container").getElementsByTagName("a");
  for (var i=0; i < anchors.length; i++) {
    if (anchors[i].target == "_blank") {
      anchors[i].onmouseover = globalmapPopUp;
      anchors[i].onmouseout = function(e) {
        if (!e) var e = window.event;
        var obj = e.relatedTarget || e.toElement;
        if (!isParent(obj, "globalmaplinks")) {
          document.getElementById("globalmaplinks").style.display = "none";
        }
      }
      anchors[i].onclick = function(e) {
        var country = this.parentNode.id;
        var language = "";
        var infodiv = document.getElementById("info-"+country);
        if (infodiv.getElementsByTagName("ul")[0]) {
          language = "/english";
        }
        pageTracker._trackPageview("/about-us/worldwide-websites/" + country + language);
      }
    }
  }
}

function globalmapPopUp(e) {
  var anchor;
  var targetElement = (e) ? e.target : window.event.srcElement;
  if (targetElement.nodeName.toLowerCase() == "img" || targetElement.nodeName.toLowerCase() == "span") {
    anchor = targetElement.parentNode;
  }
  if (targetElement.nodeName.toLowerCase() == "a") {
    anchor = targetElement;
  }
  var parent = (anchor.parentNode.className.match("txt_")) ? anchor.parentNode.parentNode : anchor.parentNode;
  var country = parent.id;
  var linkbox = document.getElementById("globalmaplinks");
  var linkbox_box, linkbox_hdr, linkbox_body;
  for (var i=0; i < linkbox.childNodes.length; i++) {
    if (linkbox.childNodes[i].className == "box") {
      linkbox_box = linkbox.childNodes[i];
      for (var j=0; j < linkbox.childNodes[i].childNodes.length; j++) {
        switch (linkbox.childNodes[i].childNodes[j].className) {
          case "header" :
            linkbox_hdr = linkbox.childNodes[i].childNodes[j];
          break;
          case "links" :
            linkbox_body = linkbox.childNodes[i].childNodes[j];
          break;
        }
      }
    }
  }
  while(linkbox_hdr.hasChildNodes()) { linkbox_hdr.removeChild(linkbox_hdr.firstChild); }
  while(linkbox_body.hasChildNodes()) { linkbox_body.removeChild(linkbox_body.firstChild); }
  var infobox = document.getElementById("info-" + country);
  for (var i=0; i < infobox.childNodes.length; i++) {
    switch (infobox.childNodes[i].className) {
      case "header" :
        linkbox_hdr.innerHTML = infobox.childNodes[i].innerHTML;
        if (linkbox_hdr.getElementsByTagName("a")[0]) {
          linkbox_hdr.getElementsByTagName("a")[0].onclick = function() {
            pageTracker._trackPageview("/about-us/worldwide-websites/" + country);
          }
        }
      break;
      case "links" :
        var infobox_links = infobox.childNodes[i].cloneNode(true);
        linkbox_body.appendChild(infobox_links);
        var linkbox_body_anchors = linkbox_body.getElementsByTagName("a");
        for (var j=0; j < linkbox_body_anchors.length; j++) {
          linkbox_body_anchors[j].onclick = function() {
            var language = (this.childNodes[0]) ? this.childNodes[0].nodeValue.toLowerCase() : false;
            if (!language) {
              language = this.parentNode.className.substr(4);
            }
            pageTracker._trackPageview("/about-us/worldwide-websites/" + country + "/" + language);
          }
        }
      break;
    }
  }
  if (parent.nodeName.toLowerCase() == "span") {
    var spans = document.getElementById("globalmap").getElementsByTagName("span");
    for (var i=0; i < spans.length; i++) {
      if (spans[i].className == "dot") {
        spans[i].getElementsByTagName("a")[0].className = "";
      }
    }
    linkbox.style.top = parent.offsetTop + 18 + "px";
    linkbox.style.left = parent.offsetLeft + 0 + "px";
  }
  if (parent.nodeName.toLowerCase() == "li") {
    if (!infobox_links) { linkbox.style.display = "none"; return; }
    var leftCorrected = parseInt((infobox.getAttribute("left")) ? infobox.getAttribute("left") : "0");
    linkbox.style.top = parent.offsetTop - 18 + "px";
    linkbox.style.left = parent.offsetLeft + anchor.offsetWidth + leftCorrected + 2 + "px";
  }
  linkbox_box.style.width = ((infobox.getAttribute("width")) ? infobox.getAttribute("width") : "100") + "px";
  linkbox.style.display = "block";
  anchor.className = "hover";
  if (isIE6) {
    var ie6_imgs = linkbox.getElementsByTagName("span");
    var ie6_pngfix = new pngFix().fnFixPngImgPopup(ie6_imgs);
  }
  linkbox.onmouseout = function(e) {
    if (!e) var e = window.event;
    var obj = e.relatedTarget || e.toElement;
    if (!obj) { return; }
    if (obj.id == "globalmap" || isParent(obj, "global_list_container")) {
      anchor.className = "";
      linkbox.style.display = "none";
    }
  }
}

function isParent(obj, id) {
  if (!obj) return false;
  if (obj.id == id) {
    return true;
  }
  var isparent = false;
  while (obj.parentNode) {
    if (obj.parentNode.id == id) {
      isparent = true;
    }
    obj = obj.parentNode;
  }
  return isparent;
}
