var currentTitle;
var myTooltipTimer;
var timeoutTimer;

function enableTooltips(){
	if(document.readyState == 'complete' || document.readyState == undefined) {
		clearTimeout(timeoutTimer);
		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=getElementsByAttribute(document, "*", "title");
		for(i=0;i<links.length;i++){
			Prepare(links[i]);
		}
	} else {
		timeoutTimer = setTimeout("enableTooltips()", 1000);
		return;
	}
}

function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
	var oCurrent;
	var oAttribute;
	for(var i=0; i<arrElements.length; i++){
		oCurrent = arrElements[i];
		oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
		if(typeof oAttribute == "string" && oAttribute.length > 0){
			if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
				arrReturnElements.push(oCurrent);
			}
		}
	}
	return arrReturnElements;
}

function Prepare(el){
	var t;
	t=el.getAttribute("title");
	if(t!=null && t.length>0) {
		el.onmouseover=showTooltipDelayed;
		//el.onmouseover=showTooltip;
		el.onmouseout=hideTooltip;
		el.onmousemove=Locate;
	}
}

function showTooltipDelayed(e) {
	var ev = e;
	var el = this;
	currentTitle = el.getAttribute("title");
	el.setAttribute("title", ""); 
	myTooltipTimer=setTimeout(function(){showTooltip(ev, el)}, 500);
}

function showTooltip(e, el){
	var tooltip,t,s,l;
	tooltip=CreateEl("span","tooltip");
	s=CreateEl("span","top");
	
	t = currentTitle.split('#br#');
	for (var i = 0;i<t.length;i++) {
		s.appendChild(document.createTextNode(t[i]));
		s.appendChild(document.createElement('br'));
	}
	tooltip.appendChild(s);
	b=CreateEl("b","bottom");
	//l=el.getAttribute("href");
	//if(l.length>28) l=l.substr(0,25)+"...";
	//b.appendChild(document.createTextNode(l));
	tooltip.appendChild(b);
	setOpacity(tooltip);
	el.tooltip=tooltip;
	
	document.getElementById("btc").appendChild(el.tooltip);
	Locate(e);
}

function hideTooltip(e){
	clearTimeout(myTooltipTimer);
    var title = document.createAttribute("title");
    var t = this.getAttribute("title")
    if(t != null && t != "")
    	title.nodeValue = t;
    else
    	title.nodeValue = currentTitle;
    this.setAttributeNode(title);

    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(){
	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;
	var anchoTooltip=180;
	if(e==null) e=window.event;
	if(e.pageX || e.pageY){
	    posx=e.pageX; posy=e.pageY;
	}
	else if(e.clientX || e.clientY){
		posx=e.clientX+((typeof window.pageXOffset != "undefined")? window.pageXOffset : document.documentElement.scrollLeft);
		posy=e.clientY+((typeof window.window.pageYOffset != "undefined")? window.window.pageYOffset : (document.documentElement && document.documentElement.scrollTop > 0)? document.documentElement.scrollTop : document.body.scrollTop);
	}
	
	if((posx + anchoTooltip) > (document.body.offsetWidth + ((typeof window.pageXOffset != "undefined")? window.pageXOffset : document.documentElement.scrollLeft)))
		posx = posx - ((posx + anchoTooltip) - (document.body.offsetWidth + ((typeof window.pageXOffset != "undefined")? window.pageXOffset : document.documentElement.scrollLeft)));
		
	document.getElementById("btc").style.top=(posy+10)+"px";
	document.getElementById("btc").style.left=(posx-20)+"px";
}