/**
 * TipSystem.js
 */

// prefixes
var LINKSEPARATOR = "_";
var TSLINK = "tslink" + LINKSEPARATOR;
var TIP = "tip" + LINKSEPARATOR;

function showTip(name) {
	if (document.getElementById(TIP + name)) {
		var tip = document.getElementById(TIP + name);
		var link = document.getElementById(TSLINK + name);
		tip.style.display = 'block';
		tip.style.position = 'absolute';
		if (document.all) {
			link.style.position = 'relative';
		}
		tip.style.top = parseInt(link.offsetTop + link.offsetHeight) + "px";
		tip.style.left = link.offsetLeft + "px";
	}
}
function hideTip(name) {
	if (document.getElementById(TIP + name)) {
		var tip = document.getElementById(TIP + name);
		tip.style.display = 'none';
	}
}

function getTipName(id) {
	var aName = id.split(LINKSEPARATOR);
	var tail = "";
	for (var i = 1; i < aName.length; i++) {
		tail += aName[i] + LINKSEPARATOR;
	}
	// remove tailing LINKSEPARATOR char
	tail = tail.substr(0, tail.length - 1);
	return tail;
}

function TipSystem() {
	var links = getLinks();
	var totalLinks = links.length;
	for (var i = 0; i < totalLinks; i++) {
		if (links[i].id != "") {
			links[i].onmouseover = function() {
				showTip(getTipName(this.id));
			}
			links[i].onmouseout = function() {
				hideTip(getTipName(this.id));
			}
			
		}
	}
}

function getLinks() {
	// this line enables xpath to catch links on #body div
	//var b = document.getElementById('body');
	var links = document.getElementsByTagName('a');
	var aLinks = new Array();
	var index = 0;
	for (var i = 0; i < links.length; i++) {
		link_id = links[i].id;
		if (link_id.match(TSLINK)) {
			aLinks[index] = links[i];
			index++;
		}
	}
	//alert(aLinks);
	return aLinks;
}
