var tt = new Tooltip( function(){ return document.getElementById('maincontent').getElementsByTagName('*');  });
function Tooltip(collectDOMfunction) {var toolObj = this;
this.tooltip = null; // DOM <div>-objekt des Tooltips
this.ttactive = false; // true sobald Tooltip angezeigt wird
this.collectDOMfunction = collectDOMfunction;
this.updateTT = function(e) {if (toolObj.ttactive) {x = (document.all) ? e.clientX + (document.documentElement.scrollLeft | document.body.scrollLeft) : e.pageX; y = (document.all) ? e.clientY + (document.documentElement.scrollTop  | document.body.scrollTop)  : e.pageY; toolObj.tooltip.style.left = (x - 200) + 'px'; toolObj.tooltip.style.top   = (y + 12) + 'px'; toolObj.tooltip.style.display = 'block';}}
this.showTT = function(element) {if (!element.tooltip) return; title = element.tooltip; toolObj.tooltip.innerHTML = '<p>'+title+'</p>'; toolObj.ttactive = true; //toolObj.updateTT(window.event);
}
this.hideTT = function(element) {toolObj.tooltip.style.display = 'none'; toolObj.ttactive = false;}
this.init = function(){// an Stelle von  <div id="tooltip"></div> // im HTML Quellcode
toolObj.tooltip = document.createElement('div'); toolObj.tooltip.setAttribute('id','tooltip'); toolObj.tooltip.style.position = 'absolute'; toolObj.tooltip.style.display = 'none'; document.getElementsByTagName('body')[0].appendChild(toolObj.tooltip);
// an Stelle von  <img src=".." title="xyz" onmouseover="showTT(this)" onmouseout="hideTT(this)"> // im HTML Quellcode
var objArr = toolObj.collectDOMfunction(); for(var i=0; i<objArr.length; i++){if (objArr[i].title){objArr[i].tooltip =  objArr[i].title; objArr[i].title = ''; toolObj.addListener(objArr[i], 'mouseover', function(e){ toolObj.showTT(e.srcElement||this)}); toolObj.addListener(objArr[i], 'mouseout', function(e){ toolObj.hideTT(e.srcElement||this)});}} toolObj.addListener(document, 'mousemove', toolObj.updateTT);}
this.unload = function() { // Safari Problem mit Back Button beheben, indem die Änderungen beim Verlassen der Seite rückgängig gemacht werden
try{if (navigator.vendor && navigator.vendor.match(/Apple/)){var objArr = toolObj.collectDOMfunction(); for(var i=0; i<objArr.length; i++){if (objArr[i].tooltip){objArr[i].title = objArr[i].tooltip;}}}} catch(e) {} }
this.addListener = function(element, event, listener, bubble) {if(element.addEventListener) {if(typeof(bubble) == 'undefined'){bubble = false;} element.addEventListener(event, listener, bubble);} else if(document.attachEvent) {element.attachEvent("on" + event, listener);}}
// init nach Ende des Ladevorgangs aufrufen
this.addListener(window, 'load', this.init);
this.addListener(window, 'unload', this.unload);
}
