/*javascript for Bubble Tooltips by Alessandro Fulciniti
- http://pro.html.it - http://web-graphics.com */

function enableTooltips(id){ 
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(id==null) links=document.getElementsByTagName("label");
else links=document.getElementById(id).getElementsByTagName("label");
for(i=0;i<links.length;i++){
    Prepare(links[i]);
    }
}

function createTooltips(id){
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";
Prepare(document.getElementById(id));
}

function Prepare(el){
var tooltip,t,b,s,l;
t=el.getAttribute("title");
if(t!=null && t.length>0){ // if title attribute has value
    el.removeAttribute("title");
    tooltip=CreateEl("span","tooltip");
    s=CreateEl("span","top");
    //s.appendChild(document.createTextNode(t)); // Only for text attribute
    s.innerHTML=t; // Only for Html Attribute
    tooltip.appendChild(s);
    b=CreateEl("b","bottom");
   //l=el.getAttribute("href"); // for Anchore tag only
   //if(l.length>30) l=l.substr(0,27)+"...";
    //l="eP&G";
    //b.appendChild(document.createTextNode(l));
    tooltip.appendChild(b);
    setOpacity(tooltip);
    el.tooltip=tooltip;
    el.onmouseover=showTooltip;
    el.onmouseout=hideTooltip;
    el.onmousemove=Locate;
   }
}

function enableTooltipsbig(id){ 
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(id==null) links=document.getElementsByTagName("label");
else links=document.getElementById(id).getElementsByTagName("label");
for(i=0;i<links.length;i++){
    Preparebig(links[i]);
    }
}

function Preparebig(el){
var tooltip,t,b,s,l;
t=el.getAttribute("title");
if(t!=null && t.length>0){ // if title attribute has value
    el.removeAttribute("title");
    tooltip=CreateEl("span","tooltipb");
    s=CreateEl("span","top");
    //s.appendChild(document.createTextNode(t)); // Only for text attribute
    s.innerHTML=t; // Only for Html Attribute
    tooltip.appendChild(s);
    b=CreateEl("b","bottom");
   //l=el.getAttribute("href"); // for Anchore tag only
   //if(l.length>30) l=l.substr(0,27)+"...";
    //l="eP&G";
    //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: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.id=c;
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","inc/bt.css");
l.setAttribute("media","screen");
document.getElementsByTagName("head")[0].appendChild(l);
}

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function Locate(e){
var offsetfromcursorX=12 //Customize x offset of tooltip
var offsetfromcursorY=10 //Customize y offset of tooltip

var offsetdivfrompointerX=0 //Customize x offset of tooltip DIV relative to pointer image
var offsetdivfrompointerY=0 //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).

var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["btc"] : document.getElementById? document.getElementById("btc") : ""
var tipobj=document.getElementById("btc");
//var pointerobj=document.all? document.all["btc"] : document.getElementById? document.getElementById("btc") : ""

var nondefaultpos=false
//alert(event.clientX);
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;

var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window

var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20
var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20

var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX
var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY

var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth){
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=curX-tipobj.offsetWidth+"px"
nondefaultpos=true
}
else if (curX<leftedge)
tipobj.style.left="5px"
else{
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px"
//pointerobj.style.left=curX+offsetfromcursorX+"px"
}

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight){
tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
nondefaultpos=true
}
else{
tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px"
//pointerobj.style.top=curY+offsetfromcursorY+"px"
}
tipobj.style.visibility="visible"
/*if (!nondefaultpos)
pointerobj.style.visibility="visible"
else
pointerobj.style.visibility="hidden" */

}


//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";
////alert(document.getElementById("btc").innerHTML); 
//}
