/* ======================================================
   file: tooltip.js

   last update: 13.05.2009 by Patricia Engelskirchen 
*/


function showTooltip(ev) {
    if(!ev) { ev = window.event; };
    var infotext = '';
    for(var n=0; n<this.childNodes.length; n++) {
        if(this.childNodes[n].tagName == "SPAN") {
            infotext = this.childNodes[n].innerHTML;
            break;
        }
    }
    if(infotext.length) {
        infodiv = document.getElementById('tooltipInfobox');
        infodiv.innerHTML = infotext;
        var scrollOffset = getScrollOffset();
        if (!(infodiv.style.display == 'block')) {
            infodiv.style.top  = ev.clientY + scrollOffset[1] + 15 + 'px';
            infodiv.style.left = ev.clientX + scrollOffset[0] + 10 + 'px';
        }
        infodiv.style.display = 'block';
    }
}


function hideTooltip() {
    document.getElementById('tooltipInfobox').style.display = 'none';
}


function titleToHTML(meinLink, useSymbols)
{
    var tiptext = meinLink.title;
    var titletext = "Hinweis";

    if (tiptext.indexOf("(") == 0) {
        var endOfTitle = tiptext.indexOf(")");
        titletext = tiptext.substring(1, endOfTitle);
        tiptext = tiptext.substring(endOfTitle + 1);
    }

    tiptext = tiptext.replace(/  /g, "<br \>");
    tiptext = tiptext.replace(/ _/g, " <u>");
    tiptext = tiptext.replace(/_ /g, "</u> ");
    tiptext = tiptext.replace(/ \*/g, " <b>");
    tiptext = tiptext.replace(/\* /g, "</b> ");
    tiptext = tiptext.replace(/ \//g, " <i>");
    tiptext = tiptext.replace(/\/ /g, "</i> ");

    var sp = document.createElement('span');
    var symbolHTML = "";
    if (useSymbols == true) {
        symbolHTML = "<img src=\"./pic/symbol_hint.jpg\">&nbsp;";
    }
    var prefix = "<table><tr><th>" + symbolHTML + titletext + "</th></tr><tr><td>";
    var suffix = "</td></tr></table>";
    sp.innerHTML = prefix + tiptext + suffix;

    meinLink.appendChild(sp);
    meinLink.removeAttribute('title');
}


function initTooltips() {
    var infodiv = document.createElement('DIV');
    infodiv.id = 'tooltipInfobox';
    document.getElementsByTagName('body')[0].appendChild(infodiv);

    // fuer Hyperlinks
    var liste = document.getElementsByTagName('A');

    for (var n=0; n<liste.length; n++) {
        if(liste[n].className.match( /tooltip/ )) {
            titleToHTML(liste[n], true);
            liste[n].onmousemove = showTooltip;
            liste[n].onmouseout  = hideTooltip;
        }
    }

    // fuer Imagemaps
    var listeMaps = document.getElementsByTagName('AREA');

    for (var n=0; n<listeMaps.length; n++) {
        if(listeMaps[n].className.match( /tooltip/ )) {
            titleToHTML(listeMaps[n], false);
            listeMaps[n].onmousemove = showTooltip;
            listeMaps[n].onmouseout  = hideTooltip;
        }
    }
}


function getScrollOffset() {
    var x = 0, y = 0;
    if (self.pageYOffset) {
        x = self.pageXOffset;
        y = self.pageYOffset;
    }
    else if (document.documentElement && document.documentElement.scrollTop) {
        x = document.documentElement.scrollLeft;
        y = document.documentElement.scrollTop;
    }
    else if (document.body) {
        x = document.body.scrollLeft;
        y = document.body.scrollTop;
    };
    return new Array(x,y);
}

