/*
This functon shows Windows-like tooltip bubble next to selected HTML element.
Parameters:
name 		(string) 	- unique name of tooltip (multiple tooltips with different names can be used on one page)
id 			(string) 	- HTML ID of element to which tooltip should be displayed
text		(string)	- content of tooltip, can be plain text or simple HTML
pos			(string)	- position ([T]op/[B]ottom [L]eft/[R]ight), i.e. TR
delay		(int)		- how long willl tooltip be displayed in seconds
boxwidth	(int)		- maximum tooltip width in pixels (0 for no limit)
boxheight	(int)		- maximum tooltip height in pixels (0 for no limit)
*/

var tooltip_opacids = new Array();

function showTooltip(name,id,text,pos,delay,boxwidth,boxheight) {
	if (!window.tooltip_opacids[name]) window.tooltip_opacids[name] = new Array();
	var i = 0;
	if (!document.getElementById('tooltip_'+name)) {
		tt = document.createElement('div');
		tt.id = 'tooltip_'+name;
		document.getElementsByTagName('body')[0].appendChild(tt);
		tt.style.top = '0px';
		tt.style.visibility = 'hidden';
		tt.style.position = 'absolute';
		tt.style.opacity = '0';
		tt.style.filter = "alpha(opacity:0)";
	}
	else {
		tt = document.getElementById('tooltip_'+name);
	}
	var alignV = pos.substr(0,1);
	var alignH = pos.substr(1,1);
	var curleft = curtop = 0;
	var width = height = 0;
	e = document.getElementById(id);
	width = e.offsetWidth;
	height = e.offsetHeight;
	if (e.offsetParent) {
		do {
		curleft += e.offsetLeft;
		curtop += e.offsetTop;
		}
		while (e = e.offsetParent);
	}
	var divsT = divsB = '';
	var arrT = arrB = '';
	if (alignV == 'T') {
		arrT = '';
		arrB = '<div class="tooltip_'+name+'_'+alignV+'_a'+alignH+'"></div>';
		}
	else if (alignV == 'B') {
		arrB = '';
		arrT = '<div class="tooltip_'+name+'_'+alignV+'_a'+alignH+'"></div>';
		} 
	divsT = '<div class="tooltip_'+name+'_'+alignV+'_cTL"><div class="tooltip_'+name+'_'+alignV+'_cTR"><div class="tooltip_'+name+'_'+alignV+'_bT">'+arrT+'</div></div></div>';
	divsB = '<div class="tooltip_'+name+'_'+alignV+'_cBL"><div class="tooltip_'+name+'_'+alignV+'_cBR"><div class="tooltip_'+name+'_'+alignV+'_bB">'+arrB+'</div></div></div>';
	tt.innerHTML = divsT+'<div class="tooltip_'+name+'">'+text+'</div>'+divsB;
	if (boxwidth > 0 && tt.offsetWidth > boxwidth) tt.style.width = boxwidth+'px';
	if (boxheight > 0 && tt.offsetHeight > boxheight) tt.style.height = boxheight+'px';
	if (alignV == 'T') tt.style.top = (curtop - tt.offsetHeight + 3)+'px';
	else if (alignV == 'B') tt.style.top = (curtop + height - 3)+'px';
	if (alignH == 'L') tt.style.left = (curleft - tt.offsetWidth + 9)+'px';
	else if (alignH == 'R') tt.style.left = (curleft + width - 9)+'px';
	tt.style.visibility = 'visible';tt.style.zIndex = 100;
	OpacUp(name,0);
	for (i=0;i<window.tooltip_opacids[name].length;i++) {
		if (window.tooltip_opacids[name][i] > 0) {
			clearTimeout(window.tooltip_opacids[name][i]);
			window.tooltip_opacids[name][i] = 0;
			}
		}
	window.tooltip_opacids[name][window.tooltip_opacids[name].length] = window.setTimeout("OpacDown('"+name+"',100);",delay*1000);
}
function OpacUp(name,start) {
	var tt = document.getElementById('tooltip_'+name);
	var newOpac = parseInt(start)+10;
	if ( newOpac < 100 ) {
		tt.style.opacity = '.'+newOpac;
		tt.style.filter = "alpha(opacity:"+newOpac+")";
		window.setTimeout("OpacUp('"+name+"',"+newOpac+")",50);
	}
	else { 
		tt.style.opacity = '1';
		tt.style.filter = "alpha(opacity:100)";
	}
}
function OpacDown(name,start) {
	var tt = document.getElementById('tooltip_'+name);
	var newOpac = parseInt(start)-10;
	if ( newOpac > 0 ) {
		tt.style.opacity = '.'+newOpac;
		tt.style.filter = "alpha(opacity:"+newOpac+")";
		window.setTimeout("OpacDown('"+name+"',"+newOpac+")",50);
	}
	else { 
		tt.style.opacity = '.00';
		tt.style.filter = "alpha(opacity:0)";
		tt.style.visibility = 'hidden';
	}
}

