﻿/*javascript for Bubble Tooltips by Alessandro Fulciniti
- http://pro.html.it - http://web-graphics.com */

function enableTooltips()
{
    var links, i, h;
    
    if(!document.getElementById || !document.getElementsByTagName) 
        return;
    
    h = document.createElement("span");
    h.id = "btc";
    h.setAttribute("id","btc");
    h.style.position = "absolute";

    document.getElementsByTagName("body")[0].appendChild(h);
    
    links = document.getElementsByTagName("a");
        
    for(i = 0; i < links.length; i++)
        if (links[i].className.split(" ")[0] == "bubbleAnchor")
            Prepare(links[i]);        
}

function Prepare(el)
{
    var tooltip, b, top, image, center, title;
    
    top = CreateEl("div", "top");
    tooltip = CreateEl("div", "tooltip");    
    center = CreateEl("center");    
    b = CreateEl("b", "bottom");
    
    top.appendChild(center);
    
    if (el.getAttribute("image"))
    {
        image = CreateEl("img");
        image.src = el.getAttribute("image");    
        center.appendChild(image);
    }
    
    if (el.getAttribute("title"))
    {
        title = el.getAttribute("title").trim();
    }
    else
    {
        title = el.innerHTML.trim();
    }
       
    if (title.length > 30) 
        title = title.substr(0, 27) + "...";

    top.appendChild(document.createTextNode(title));
       
    tooltip.appendChild(top);
    tooltip.appendChild(b);

    setOpacity(tooltip);
    el.removeAttribute("title");
    el.tooltip = tooltip;
    el.onmouseover = showTooltip;
    el.onmouseout = hideTooltip;
    //el.onmousemove = Locate;
}

function CreateEl(t, c)
{
    var x=document.createElement(t);
    x.className = c;
    x.style.display = "block";
    return(x);
}

function showTooltip(e)
{
    document.getElementById("btc").appendChild(this.tooltip);
    Locate(e);
}

function hideTooltip(e)
{
    var d = document.getElementById("btc");
    
    if(d.childNodes.length > 0) 
        d.removeChild(d.firstChild);
}

function setOpacity(el)
{
    el.style.filter = "alpha(opacity:95)";
    el.style.KHTMLOpacity = "0.95";
    el.style.MozOpacity = "0.95";
    el.style.opacity = "0.95";
}

function Locate(e)
{
    var posx = 0, posy = 0;
    
    if (e == null) 
        e = window.event;
    
    if(e.pageX || e.pageY)
    {
        posx = e.pageX; 
        posy = e.pageY;
    }
    else if(e.clientX || e.clientY)
    {
        if(document.documentElement.scrollTop)
        {
            posx = e.clientX + document.documentElement.scrollLeft;
            posy = e.clientY + document.documentElement.scrollTop;
        }
        else
        {
            posx = e.clientX + document.body.scrollLeft;
            posy = e.clientY + document.body.scrollTop;
        }
    }
    
    document.getElementById("btc").style.top = (posy + 20) + "px";
    document.getElementById("btc").style.left = (posx - 10) + "px";
}