var tooltip;
var tooltip_text;
var tooltip_middle;
var tooltip_text_el;
var tooltip_tgt;
var tooltip_timeout;

function tooltip_get_pos_X(obj) {

	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	} else if (obj.x) {
		curleft += obj.x;
	}
	return curleft;
}

function tooltip_get_pos_Y(obj) {

	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
	}
	return curtop;
}

function show_tooltip() {

	var elementLeft = tooltip_get_pos_X(tooltip_tgt) + tooltip_tgt.offsetWidth + 3;
	var elementTop = tooltip_get_pos_Y(tooltip_tgt) - 3;	
		
	tooltip.style.left = elementLeft+'px';
//alert(elementLeft+'-'+elementTop+'-'+tooltip.style.left);

	tooltip_text_el.innerHTML = tooltip_text;		
	var newHeight = tooltip_text_el.offsetHeight;
	if(newHeight < 1) newHeight = 1;
	tooltip.style.top = (elementTop - newHeight/2)+'px';
	tooltip_middle.style.height = newHeight+'px';
	tooltip.style.visibility = "visible";
}


function hide_tooltip() {

	tooltip.style.visibility = "hidden";
	tooltip_text = '';
}

function toggle_tooltip(e, tooltip_text_id) {	

	if (!document.getElementById("tooltip")) {
		return;
	}

	if (e.type == "mouseover") {
		if (!document.getElementById(tooltip_text_id)) {
			alert("No element with id '"+tooltip_text_id+"'");
			return false;
		}
		tooltip_text = document.getElementById(tooltip_text_id).innerHTML;
		tooltip_tgt = e.target ? e.target : e.toElement;
	} else {
		tooltip_tgt = e.target ? e.target : e.fromElement;
	}

	tooltip = document.getElementById("tooltip");
	tooltip_text_el = document.getElementById("tooltip_text");
	tooltip_middle = document.getElementById("tooltip_middle");

	if (e.type == "mouseover") {	
		tooltip_timeout = setTimeout("show_tooltip()", 500);
	} else {
		clearTimeout(tooltip_timeout);
		hide_tooltip();
	}				
}

