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

function enableTooltips(id,key){
    var links,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(key==null && id!=null && !document.getElementById(id)) {
        key=id;
        id=null;
    }
    if(id==null)
        links=document.getElementsByTagName("a");
    else
        links=document.getElementById(id).getElementsByTagName("a");
    for(i=0; i<links.length; i++) {
        Prepare(links[i]);
    }
}

function Prepare(el) {
    if( el.className != "snapr" ||
        !el.getAttribute("href") ||
        !el.getAttribute("href").match(/http:\/\// ) ||
        el.getAttribute("href").match( eval( "/"+ location.host + "/") ) )
        return;
    el.onmouseover = showTooltip;
    el.onmouseout = hideTooltip;
    //el.onmousemove = Locate;
}

function createTooltip(el) {
    var snapr, tooltip, b, s, l;
    var size = "S";
    var background = "url(/images/bubble_s.gif) no-repeat";
    var maxlength = 28;
    // Tooltip
    tooltip = CreateEl("span", "tooltip");
    tooltip.style.width = "202px";
    tooltip.style.height = "402px";
    // Image
    snapr = CreateEl("img", "top");
    snapr.setAttribute( 'src', '/images/preview/preview.php?url=' + escape( el.getAttribute("href") ).replace( /\//g, '%2F' ) );
    // Top
    s = CreateEl("span", "top");
    s.style.background = background + " top";
    s.appendChild(snapr);
    tooltip.appendChild(s);
    // Bottom
    b = CreateEl("b", "bottom");
    b.style.background = background + " bottom";
    // Text
    l = el.getAttribute("href");
    if (l.length > maxlength)
        l = l.substr(0, maxlength - 3) + "...";
    b.appendChild(document.createTextNode(l));
    tooltip.appendChild(b);
    setOpacity(tooltip);
    return tooltip;
    //el.tooltip=tooltip;
}

function showTooltip(e){
    var tooltip = createTooltip(this);
    document.getElementById("btc").appendChild(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 CreateEl(t, c){
    var x = document.createElement(t);
    x.className = c;
    x.style.display = "block";
    return x;
}

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

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