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

Behavior Adapted by Ben Neal, to inject HTML rather than plain text found within hidden span tags.  
Also, code was adapted to use area tags as the mouse over regions rather than anchor links.
Finally, a new function was added for reloading text from a hidden span into the bubble.
Last updated April 22, 2008.
*/

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("area");
else links=document.getElementById(id).getElementsByTagName("area");
for(i=0;i<links.length;i++){
    Prepare(links[i]);
    }
}

function Prepare(el){
var t,s,b,x, mapimg,tooltip, newText;

t=el.getAttribute("spanname"); // t stores the ID of the span that holds the HTML code to use within the floating DIV.

	if(t < 16){
	newText = document.getElementById(t).innerHTML;  //newText holds the HMTL code to inject into the floating DIV.
	s=CreateEl("span","top1"); //new Span element to hold the popup info.
	s.innerHTML = newText;
	tooltip=CreateEl("div","tooltip");
	tooltip.appendChild(s);
	x=CreateEl("img", "ximg");
	x.setAttribute("src", "images/x_icon.gif");
	x.setAttribute("alt", "Click to close");
	x.onclick=hideTooltip;
	
	tooltip.appendChild(x);
	b=CreateEl("b","bottom1");
	b.innerHTML = "&nbsp;";
	tooltip.appendChild(b);
	setOpacity(tooltip);
	el.tooltip=tooltip;
	el.onclick=showTooltip;
	}
	else if(t >= 16)
	{
	newText = document.getElementById(t).innerHTML;  //newText holds the HMTL code to inject into the floating DIV.
	s=CreateEl("span","top2"); //new Span element to hold the popup info.
	s.innerHTML = newText;
	tooltip=CreateEl("div","tooltip");
	tooltip.appendChild(s);
	x=CreateEl("img", "ximg");
	x.setAttribute("src", "images/x_icon.gif");
	x.setAttribute("alt", "Click to close");
	x.onclick=hideTooltip;
	
	tooltip.appendChild(x);
	b=CreateEl("b","bottom2");
	b.innerHTML = "&nbsp;";
	tooltip.appendChild(b);
	setOpacity(tooltip);
	el.tooltip=tooltip;
	el.onclick=showTooltip1;		
	}

//el.onmousemove=Locate;
}

function showTooltip(e){
testWin = document.getElementById("btc");
hideTooltip(testWin);
document.getElementById("btc").appendChild(this.tooltip);
Locate(e);
}

function showTooltip1(e){
testWin = document.getElementById("btc");
hideTooltip(testWin);
document.getElementById("btc").appendChild(this.tooltip);
Locate1(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 AddCss(x)
{

var l=CreateEl("link");
l.setAttribute("type","text/css");
l.setAttribute("rel","stylesheet");
l.setAttribute("href","bt.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)+"px";
	document.getElementById("btc").style.left=(posx-60)+"px";	
}


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

function showSite(sName)
{
var t,s,b,x, mapimg,tooltip, newText, bubDiv;

bubDiv = document.getElementById('btc');
newText = document.getElementById(sName).innerHTML;  //newText holds the HMTL code to inject into the floating DIV.
s=CreateEl("span","top2"); //new Span element to hold the popup info.
s.innerHTML = newText;

tooltip=CreateEl("div","tooltip");
tooltip.appendChild(s);
x=CreateEl("img", "ximg");
x.setAttribute("src", "images/x_icon.gif");
x.setAttribute("alt", "Click to close");
x.onclick=hideTooltip;

tooltip.appendChild(x);
b=CreateEl("b","bottom2");
b.innerHTML = "&nbsp;";
tooltip.appendChild(b);
setOpacity(tooltip);

bubDiv.replaceChild(tooltip, bubDiv.firstChild);
}



function showSiteList(sName)
{
var t,s,b,x, mapimg,tooltip, newText, bubDiv;

bubDiv = document.getElementById('btc');
newText = document.getElementById(sName).innerHTML;  //newText holds the HMTL code to inject into the floating DIV.
s=CreateEl("span","top2"); //new Span element to hold the popup info.
s.innerHTML = newText;

tooltip=CreateEl("div","tooltip");
tooltip.appendChild(s);
x=CreateEl("img", "ximg");
x.setAttribute("src", "images/x_icon.gif");
x.setAttribute("alt", "Click to close");
x.onclick=hideTooltip;

tooltip.appendChild(x);
b=CreateEl("b","bottom2");
b.innerHTML = "&nbsp;";
tooltip.appendChild(b);
setOpacity(tooltip);

bubDiv.replaceChild(tooltip, bubDiv.firstChild);
}
