
var toolTipTimeLine = new Array(0, 1, 0, 0, 2);
var toolTipWindows = new Array();
var toolTipIid = setInterval('toolTipInterrupt()', 200);

function toolTipInterrupt() {
    if (toolTipWindows.length) {
	for (i = 0; i < toolTipWindows.length; i++) {
	    if (toolTipWindows[i][0] < toolTipTimeLine.length && toolTipWindows[i][3]) { // If it is not the end and running
		c = toolTipTimeLine[toolTipWindows[i][0]];
		if (c == 1) {
		    subobj = document.getElementById(toolTipWindows[i][2]);
//		    subobj.style.left = toolTipGetPosOffset(toolTipWindows[i][1], "left") + toolTipWindows[i][4] + 20 +  "px";
//		    subobj.style.top = toolTipGetPosOffset(toolTipWindows[i][1], "top") + toolTipWindows[i][5] - 27 + "px";
		    subobj.style.left = toolTipWindows[i][4] + "px";
		    subobj.style.top = toolTipWindows[i][5] + "px";
		    subobj.style.display = "block";
		    toolTipWindows[i][3] = 0;
		}
		if (c == 2) {
		    document.getElementById(toolTipWindows[i][2]).style.display = "none";
		}
		toolTipWindows[i][0]++;
	    }
	}
    }
}

function toolTipSet(curobj, subobj, leftoffset, topoffset) {
    flag = 1;
    if (toolTipWindows.length) { // Array is not empty
	for (i = 0; i < toolTipWindows.length; i++) {
	    if (toolTipWindows[i][2] == subobj) { // Array has line already
		if (toolTipWindows[i][0] == toolTipTimeLine.length) toolTipWindows[i][0] = 0; // End? Go to begin
		else toolTipWindows[i][0] = 1; // Middle? Go to nearly begin
		toolTipWindows[i][3] = 1; // Show must go on!
		flag = 0; // Do not add a new line
		break;
	    }
	}
    }
    if (flag) toolTipWindows[toolTipWindows.length] = new Array(0, curobj, subobj, 1, leftoffset, topoffset); // counter, curobj, subobj, running(1)/stopped(0)
}

function toolTipCount(subobj, what) {
    for (i = 0; i < toolTipWindows.length; i++) {
	if (toolTipWindows[i][2] == subobj) {
	    if (what == "stop") {
		toolTipWindows[i][3] = 0;
	    } else { // continue
		toolTipWindows[i][0] = 2;
		toolTipWindows[i][3] = 1;
	    }
	    break;
	}
    }
}

function toolTipGetPosOffset(overlay, offsettype) {
    var totaloffset = (offsettype == "left") ? overlay.offsetLeft : overlay.offsetTop;
    var parentEl = overlay.offsetParent;
    while (parentEl != null){
	totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
	parentEl=parentEl.offsetParent;
    }
    return totaloffset;
}

