
    addEvent(window, "load", makesubtitels);
  
    var XHTMLNS = "http://www.w3.org/1999/xhtml";
    var CURRENT_SUBTITEL;
    var browser = new Browser();
  
    function makesubtitels() {
  
      if (!document.createElement || !document.getElementsByTagName) { 
        return; 
      }
  
      if (!document.createElementNS) {
        document.createElementNS = function(ns,elt) {
          return document.createElement(elt);
        }
      }
  
      if (!document.links) {
        document.links = document.getElementsByTagName("A");
      }
  
      for (var teller = 0; teller < document.links.length; teller++) {
          var lnk = document.links[teller];
          if (lnk.title) {
              lnk.setAttribute("subtitel",lnk.title);
              lnk.removeAttribute("title");
              addEvent(lnk,"mouseover",showsubtitel);
              addEvent(lnk,"mouseout",hidesubtitel);
              addEvent(lnk,"focus",showsubtitel);
              addEvent(lnk,"blur",hidesubtitel);
          }
      }
  
      var instags = document.getElementsByTagName("ins");
      if (instags) {
        for (teller = 0; teller < instags.length; teller++) {
          var instag = instags[teller];
          if (instag.dateTime) {
              instag.setAttribute("subtitel");
              addEvent(instag,"mouseover",showsubtitel);
              addEvent(instag,"mouseout",hidesubtitel);
              addEvent(instag,"focus",showsubtitel);
              addEvent(instag,"blur",hidesubtitel);
          }
        }
      }
    }
  
    function findPosition( oLink ) {
      if( oLink.offsetParent ) {
        for( var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent ) {
          posX += oLink.offsetLeft;
          posY += oLink.offsetTop;
        }
        return [ posX, posY ];
      } else {
        return [ oLink.x, oLink.y ];
      }
    }
  
    function showsubtitel(e) {
      if (CURRENT_SUBTITEL) hidesubtitel(CURRENT_SUBTITEL);
      if (!document.getElementsByTagName) return;
      if (window.event && window.event.srcElement) {
        lnk = window.event.srcElement
      } else if (e && e.target) {
        lnk = e.target
      }
      if (!lnk) return;
      if (lnk.nodeType == 3) {
        // lnk is a textnode -- ascend parents until we hit a link
        lnk = getParent(lnk,"A");
      }
      if (!lnk) return;
      subtitel = lnk.getAttribute("subtitel");
      
      var d = document.createElementNS(XHTMLNS,"div");
      d.className = "subtitel";
      tnt = document.createTextNode(subtitel);
      pat = document.createElementNS(XHTMLNS,"p");
      pat.className = "titletext";
      pat.appendChild(tnt);
      d.appendChild(pat);
      if (lnk.href) {
        tnd = document.createTextNode(lnk.href);
        pad = document.createElementNS(XHTMLNS,"p");
        pad.className = "destination";
        pad.appendChild(tnd);
      }
      
      std_width = 300;
      if (lnk.href) {
        h = lnk.href.length;
      } /* else { h = subtitel.length; } 
      if (subtitel.length) {
        t = subtitel.length;
      }*/ h = 100; t = 100;
      h_pixels = h * 6; t_pixels = t * 10;
      
      if (h_pixels > std_width) {
        w = h_pixels;
      } else if ((std_width > t_pixels) && (t_pixels > h_pixels)) {
        w = t_pixels;
      } else if ((std_width > t_pixels) && (h_pixels > t_pixels)) {
         w = h_pixels;
      } else {
        w = std_width;
      }
          
      d.style.width = '300px';    
  
      mpos = findPosition(lnk);
      mx = mpos[0];
      my = mpos[1];
      
      d.style.left = (mx + 15) + 'px';
      d.style.top = (my + 20) + 'px';
      if (window.innerWidth && ((mx+w) > window.innerWidth)) {
        d.style.left = (window.innerWidth - w - 25) + "px";
      }
      if (document.body.scrollWidth && ((mx+w) > document.body.scrollWidth)) {
        d.style.left = (document.body.scrollWidth - w - 25) + "px";
      }
      
      document.getElementsByTagName("body")[0].appendChild(d);
      
      CURRENT_SUBTITEL = d;
    }
  
    function hidesubtitel(e) {
      if (!document.getElementsByTagName) return;
      if (CURRENT_SUBTITEL) {
        document.getElementsByTagName("body")[0].removeChild(CURRENT_SUBTITEL);
        CURRENT_SUBTITEL = null;
      }
    }
  
    // Add an eventListener to browsers that can do it somehow.
    // Originally by the amazing Scott Andrew.
    function addEvent(obj, evType, fn){
      if (obj.addEventListener){
        obj.addEventListener(evType, fn, true);
        return true;
      } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
        return r;
      } else {
        return false;
      }
    }
  
    function getParent(el, pTagName) {
      if (el == null) { 
        return null;
      } else { 
        if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) {
          return el;
        } else {
          return getParent(el.parentNode, pTagName);
        }
      }
    }
  
    function getMousePosition(event) {
      if (browser.isIE) {
        x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
        y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
      } else {
        x = event.clientX + window.scrollX;
        y = event.clientY + window.scrollY;
      }
      return [x,y];
    }
  
    // Determine browser and version.
  
    function Browser() {
      var ua, s, i;
  
      this.version = null;
  
      ua = navigator.userAgent;
  
      s = "MSIE";
      if ((i = ua.indexOf(s)) >= 0) {
        this.isIE = true;
        this.version = parseFloat(ua.substr(i + s.length));
        return;
      }
  
      s = "Netscape6/";
      if ((i = ua.indexOf(s)) >= 0) {
        this.isIE = false;
        this.version = parseFloat(ua.substr(i + s.length));
        return;
      }
  
      s = "Gecko";
      if ((i = ua.indexOf(s)) >= 0) {
        this.isIE = false;
        this.version = 6.1;
        return;
      }
    }