// Settings:
var xOffset = 15;
var yOffset = 0;
var opacity = 95;

// DO NOT CHANGE ANYTHING AFTER THIS LINE

// Set Netscape up to run the "captureMousePosition" function whenever
// the mouse is moved. For Internet Explorer and Netscape 6, you can capture
// the movement a little easier.
if (document.layers) { // Netscape
    document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = captureMousePosition;
} else if (document.all) { // Internet Explorer
    document.onmousemove = captureMousePosition;
} else if (document.getElementById) { // Netcsape 6
    document.onmousemove = captureMousePosition;
}
// Global variables
xMousePos = 0; // Horizontal position of the mouse on the screen
yMousePos = 0; // Vertical position of the mouse on the screen
xMousePosMax = 0; // Width of the page
yMousePosMax = 0; // Height of the page

function captureMousePosition(e) {
    if (document.layers) {
        // When the page scrolls in Netscape, the event's mouse position
        // reflects the absolute position on the screen. innerHight/Width
        // is the position from the top/left of the screen that the user is
        // looking at. pageX/YOffset is the amount that the user has 
        // scrolled into the page. So the values will be in relation to
        // each other as the total offsets into the page, no matter if
        // the user has scrolled or not.
        xMousePos = e.pageX;
        yMousePos = e.pageY;
        xMousePosMax = window.innerWidth+window.pageXOffset;
        yMousePosMax = window.innerHeight+window.pageYOffset;
    } else if (document.all) {
        // When the page scrolls in IE, the event's mouse position 
        // reflects the position from the top/left of the screen the 
        // user is looking at. scrollLeft/Top is the amount the user
        // has scrolled into the page. clientWidth/Height is the height/
        // width of the current page the user is looking at. So, to be
        // consistent with Netscape (above), add the scroll offsets to
        // both so we end up with an absolute value on the page, no 
        // matter if the user has scrolled or not.
        xMousePos = window.event.x+document.body.scrollLeft;
        yMousePos = window.event.y+document.body.scrollTop;
        xMousePosMax = document.body.clientWidth+document.body.scrollLeft;
        yMousePosMax = document.body.clientHeight+document.body.scrollTop;
    } else if (document.getElementById) {
        // Netscape 6 behaves the same as Netscape 4 in this regard 
        xMousePos = e.pageX;
        yMousePos = e.pageY;
        xMousePosMax = window.innerWidth+window.pageXOffset;
        yMousePosMax = window.innerHeight+window.pageYOffset;
    }
}

function getYScroll()
{
	var y;
	if (self.pageYOffset) // all except Explorer
	{
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	{
		y = document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		y = document.body.scrollTop;
	}
	
	return y;
}


function getOpacityString()
{
	var tt_db = (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : (document.body ? document.body : null);
	var tt_n = navigator.userAgent.toLowerCase();
	var tt_op = !!(window.opera && document.getElementById);
	var tt_ie = tt_n.indexOf("msie") != -1 && document.all && tt_db && !tt_op;
	
	var string = '';
	if(document.layers && typeof document.classes != "undefined")
		return '';
	else if(!tt_op && document.defaultView && typeof document.defaultView.getComputedStyle != "undefined")
		string = '-moz-opacity:'+(opacity/100.0);
	else if(tt_ie)
		string = 'filter:Alpha(opacity='+opacity+')';
	else
		string = 'opacity:'+(opacity/100.0);
	
	string = string+';';
	return string;
}

document.onmousedown = close_tooltip;

var arg_for_interval_clear;
var tooltipId;
var inParameter;
var inFunc;
var outFunc;

// param inFunction = Funktionspointer auf sajax in Funktion derzeitige Form: function(param1, param2)
// param inParam = 1. Parameter für die in Funktion
// BTW: Der zweite Parameter für die InFunction gibt die id des tooltip divs an.
function start_tooltip(id, inParam, inFunction)
{		
	arg_for_interval_clear = window.setInterval('gen_tooltip()', 1000);
	tooltipId = id;
	inParameter = inParam;
	inFunc = inFunction;
}

function stop_tooltip()
{
	window.clearInterval(arg_for_interval_clear);
	arg_for_interval_clear = 0;
}

function gen_tooltip()
{
	var tp = document.getElementById(tooltipId);
//	tp.innerHTML = ""; // Probleme mit Syncronisation.
	inFunc(inParameter, tooltipId);
	tp.style.left = xMousePos+xOffset;
	tp.style.top =  yMousePos+yOffset-(0.75)*(yMousePos-getYScroll());
	tp.style.visibility = "visible";
	stop_tooltip();
}

function close_tooltip()
{
	var tp = document.getElementById(tooltipId);
	if(tp != null) {
		tp.innerHTML = "";
		tp.style.visibility = "hidden";
	}
}
