
var tooltip_timeout_id = 0;


function add_tooltip() {
	add_tooltip_cont(document.body);

	var containers = document.getElementsByTagName('span');

	for (var i=0; i<containers.length; i++) {
		if (containers.item(i).className=='js_tooltip_container') {
			var cont = containers.item(i);
			var par = cont.parentNode;
			cont.id = 'js_tooltip_container_' + i;
			addEvent(par, 'mouseover', new Function("clearTimeout(tooltip_timeout_id); var box = getBoundingBox(this); tooltip_timeout_id = setTimeout('my_show_tooltip(document.getElementById(\"js_tooltip_container_"+i+"\").innerHTML, ' + box.left + ', ' + box.bottom + ')', 500)"));
			addEvent(par, 'mouseout', new Function("clearTimeout(tooltip_timeout_id); tmp = document.getElementById('my_tooltip_container'); if (tmp) tooltip_timeout_id = setTimeout(\"tmp.style.display = 'none'\", 750);"));
			par.style.cursor = 'help';
		}
	}
}


function add_tooltip_cont(container) {
	var chldrn = container.childNodes;
	var obj, my_title;

	if (chldrn==undefined) return;

	for (var i=0; i<chldrn.length; i++) {
		obj = chldrn.item(i);
		my_title = get_element_attribute(obj, 'my_title');
		if (my_title!=undefined) {
			addEvent(obj, 'mouseover', new Function("clearTimeout(tooltip_timeout_id); var box = getBoundingBox(this); tooltip_timeout_id = setTimeout('my_show_tooltip(\"" + my_title + "\", ' + box.left + ', ' + box.bottom + ')', 500)"));
			addEvent(obj, 'mouseout', new Function("clearTimeout(tooltip_timeout_id); tmp = document.getElementById('my_tooltip_container'); if (tmp) tooltip_timeout_id = setTimeout(\"tmp.style.display = 'none'\", 750);"));
			obj.style.cursor = 'help';
		}
		add_tooltip_cont(obj);
	}

}


function get_element_attribute(el, attribute) {
	if (!el.attributes) return undefined;

	var attr = el.attributes.getNamedItem(attribute);

	if (attr==null) return undefined;
	return attr.value;
}


function my_show_tooltip(hint, pos_x, pos_y) {
	var container = document.getElementById('my_tooltip_container');
	if (container==null || container=='undefined') {
		container = document.createElement('div');
		container.id = 'my_tooltip_container';
		container.style.position = 'absolute';
		container.style.border = '1px solid black';
		container.style.backgroundColor = 'INFOBACKGROUND';
		container.style.padding = '2px';
		container.style.font = '8pt Tahoma';
		container.style.cursor = 'default';
		container.innerHTML = 'hello';
		document.body.appendChild(container);
		container = document.getElementById('my_tooltip_container');
	}

	container.style.width = 'auto';
	container.style.left = 0+'px';
	container.style.top = 0+'px';
	container.innerHTML = hint;

	container.style.display = 'block';
	container.style.visibility = 'hidden';

	if (container.scrollWidth>300){
		container.style.width = 300+'px';
	} else {
		container.style.width = container.offsetWidth+'px';
	}

	var scroll_x = Math.max(
		document.body.scrollLeft, document.documentElement.scrollLeft);
	var scroll_y = Math.max(
		document.body.scrollTop, document.documentElement.scrollTop);

	var win_width = document.body.clientWidth;
	var win_height = document.body.clientHeight;

	if ((pos_x + container.offsetWidth - scroll_x) > win_width){
		var new_x = pos_x - (container.offsetWidth - win_width - scroll_x + pos_x);
		if (new_x<0) new_x=0;
		container.style.left = new_x + 'px';
	} else {
		container.style.left = pos_x + 'px';
	}

	if ((pos_y + container.offsetHeight - scroll_y) > win_height){
		var new_y = pos_y - (container.offsetHeight - win_height - scroll_y + pos_y);
		if (new_y<0) new_y=0;
		container.style.top = new_y + 'px';
	} else {
		container.style.top = pos_y + 'px';
	}

	container.style.visibility = '';

	container.onmouseover = new Function('clearTimeout(tooltip_timeout_id); document.getElementById("my_tooltip_container").style.display = "block";');
	container.onmouseout = new Function('document.getElementById("my_tooltip_container").style.display = "none";');
}