function XmlSubmenu()
{
	Spif.DOMEvents.attach(window, "load", this.doLoad, this);
}
XmlSubmenu.prototype =
{
  lastObj: null,

  doLoad: function() {
    this.attachSubmenu();
  },

  loadXml: function(evt, el) {
    if (evt) evt.preventDefault();
    xmlsubmenu.lastObj = el;
    xmlhttp.request("/XmlSubpage.aspx?xmlPageUrl=" + escape(el.href), null, true, "xmlsubmenu.insertXmlPage");
  },

  insertXmlPage: function(req) {
    var req = xmlhttp.req["xmlsubmenu.insertXmlPage"];
    if (req.readyState != 4) return;
    if (req.status != 200) return;

    try {
      //Returned content
      var response = req.responseXML.documentElement;
      var content = response.getElementsByTagName("content")[0].firstChild.nodeValue;
      var title = response.getElementsByTagName("title")[0].firstChild.nodeValue;
      var submenu = response.getElementsByTagName("submenu")[0].firstChild.nodeValue;
      var breadcrumb = response.getElementsByTagName("breadcrumb")[0].firstChild.nodeValue;

      //Entries to be set
      var thisContent = document.getElementById("primary-content-box");
      var thisTitle = document.getElementById("page-title");
      var thisSubmenu = document.getElementById("sub-submenu");
      var thisBreadcrumb = document.getElementById("breadcrumb-box");

      //No content, so page is NOT available for AJAX call
      //Use href for location
      if (content == '') {
        document.location = xmlsubmenu.lastObj.href;
        return;
      }

      if (thisContent != null) thisContent.innerHTML = content;
      Spif.Utils.setTimeoutHandler(function() { document.title = title; }, 100);
      if (thisBreadcrumb != null) {
        var detach = $("#myvs-box").detach();
        thisBreadcrumb.innerHTML = breadcrumb;
        if (detach != null) $("#breadcrumb-box").append(detach);
      }
      if (thisSubmenu != null) thisSubmenu.innerHTML = submenu;
      Spif.Utils.setTimeoutHandler(function() { xmlsubmenu.attachSubmenu(); }, 100);

      //Track the call
      var link = xmlsubmenu.getPathFromHref(xmlsubmenu.lastObj.href);
      ClickTracker.trackClick(new Click(link));
    }
    catch (e) {
      //Old behaviour
      document.location = xmlsubmenu.lastObj.href;
    }
  },

  getPathFromHref: function(href) {
    var path = href.replace("http://", "").replace("https://", "");
    var index = path.indexOf("/");
    if (index > 0) path = path.substring(index);
    if (path[path.length - 1] == '/') path = path.substring(0, path.length - 1);
    return path;
  },

  attachSubmenu: function() {
    // try for easy debugging outside site
    try {
      var submenu = document.getElementById("sub-submenu");
      if (submenu == null) submenu = document.getElementById("submenu-box");
      if (submenu != null) {
        var links = submenu.getElementsByTagName("a");

        for (var i = 0; i < links.length; i++) {
          if (links[i].id != "") Spif.DOMEvents.attach(links[i], "click", this.loadXml, this);
        }
      }
    }
    catch (e) {
      // nothing
    }
  }
}

var xmlsubmenu = new XmlSubmenu();
