/*javascript for Bubble Tooltips by Alessandro Fulciniti
- http://pro.html.it - http://web-graphics.com */

function enableTooltips(id)
{
    var links, images, cellules, i, h;

    if (!document.getElementById || !document.getElementsByTagName)
        return;

    AddCss();
    h    = document.createElement("span");
    h.id = "btc";
    h.setAttribute("id", "btc");
    h.style.position = "absolute";
    document.getElementsByTagName("body")[0].appendChild(h);

    if (id == null)
    {
        links    = document.getElementsByTagName("a");
        images   = document.getElementsByTagName("img");
        cellules = document.getElementsByTagName("td");
    }
    else
    {
        links    = document.getElementById(id).getElementsByTagName("a");
        images   = document.getElementById(id).getElementsByTagName("img");
        cellules = document.getElementById(id).getElementsByTagName("td");
    }

    for (i = 0; i < links.length; i++)
        Prepare(links[i]);

    for (i = 0; i < images.length; i++)
        Prepare(images[i]);

    for (i = 0; i < cellules.length; i++)
        Prepare(cellules[i]);
}

function Prepare(el)
{
    var tooltip, t, b, s, l;
    t = el.getAttribute("title");

    if (t != null && t.length != 0)
    {
        el.removeAttribute("title");
        tooltip = CreateEl("span","tooltip");
        s = CreateEl("span","top");
        s.appendChild(document.createTextNode(t));
        tooltip.appendChild(s);
        //b = CreateEl("b","bottom");
        //l = el.getAttribute("href");

        //if (l.length > 30) l = l.substr(0,27)+"...";

        //b.appendChild(document.createTextNode(l));
        //tooltip.appendChild(b);
        setOpacity(tooltip);
        el.tooltip     = tooltip;
        el.onmouseover = showTooltip;
        el.onmouseout  = hideTooltip;
        el.onmousemove = Locate;
    }
}

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:85)";
    el.style.KHTMLOpacity = "0.85";
    el.style.MozOpacity   = "0.85";
    el.style.opacity      = "0.85";
}

function CreateEl(t, c)
{
    var x = document.createElement(t);
    x.className = c;
    x.style.display = "block";

    return(x);
}

function AddCss()
{
    var l = CreateEl("link");
    l.setAttribute("type","text/css");
    l.setAttribute("rel","stylesheet");
    l.setAttribute("href","themes/linkV1/infobulles.css");
    l.setAttribute("media","screen");
    document.getElementsByTagName("head")[0].appendChild(l);
}

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 + 15) + "px";
    document.getElementById("btc").style.left = (posx + 15) + "px";
}

