/* Tooltips anzeigen und positionieren */
var e_Breite = 300;         	// Vorgabewert für Elementbreite (Layer und Tooltip)
var t_Breite2 = 0;				// Externer Vorgabewert Tooltipbreite (PHP)
var l_Breite2 = 0;				// Externer Vorgabewert Layerbreite (PHP)
var hDir = 0;         			// Vorgabe Ausrichtung; 0=rechts 1=links
var vDir = 0;        			// Vorgabe Ausrichtung; 0=unten 1=oberhalb
var e_ChangeVDir = 10;    		// Schwellwert für Wechsel der V-Ausrichtung am unteren Rand
var t_Space = 10;        		// Tooltip: Abstand vom Cursor
var l_Space = 50;				// Abstand Layer von der Maus
var t_show = false; 			// Tooltip: Anzeige aktiv/inaktiv
var l_show = false; 			// Layer: Anzeige aktiv/inaktiv
var Tooltip = null;        		// Tooltip DIV-Objekt
var Layer = null;				// Layer DIV-Objekt
var e_hDir, e_vDir, e_height, e_Space;	// Datenspeicher des aktuellen Elements

document.onmousemove = cursorMove;

// Layer kreieren und anzeigen
function showLayer(id, breite) {
	if (l_show) {
		hideLayer();	
	}
	Layer = crossGetObject(id);
	if (Layer == null) return;
	if (l_Breite2 && l_Breite2>20) {
		e_Breite = l_Breite2;
	}
	if (breite && breite>20) {
		e_Breite = breite;
	}
	e_Space = l_Space;
	show_element(Layer);
	l_show = true;
	pos_element(Layer)
}
function hideLayer() {
	if (Layer == null) return;
	crossHideObject(Layer);
	l_show=false;
	crossMoveTo(Layer, -200, 0);	
}


// Tooltip kreieren und anzeigen
function showTooltip(id, breite) {
	Tooltip = crossGetObject(id);
	if (Tooltip == null) return;
	if (t_Breite2 && t_Breite2>20) {
		e_Breite = t_Breite2;
	}
	if (breite && breite>20) {
		e_Breite = breite;
	}
	e_Space = t_Space;
	show_element(Tooltip);
	t_show = true;
}

function show_element(e) {
	var relWidth, relHeight;
	e_height = e.offsetHeight;
	e.style.width=e_Breite+'px';
	relWidth = crossInnerWindowWidth() + crossGetScroll("x");
	relHeight = crossInnerWindowHeight() + crossGetScroll("y");
	set_HDir(relWidth);
	set_VDir(relHeight);
	crossShowObject(e);
	e_height = e.offsetHeight;
	set_VDir(relHeight);
}

function hideTooltip() {
	if (Tooltip == null) return;
	crossHideObject(Tooltip);
	t_show=false;
	crossMoveTo(Tooltip, -200, 0);
}

// der Maus folgen
function cursorMove(e) {
	var posX, posY;
	crossMousePosition(e);
	if (t_show) {
		pos_element(Tooltip);
	}
}

function pos_element(e) {
		/* Horizontal rechts */
		if (e_hDir==0) {
			posX = crossMouseX + e_Space; 
			if (e_vDir==0) { 							/* unten */ 
				posY = crossMouseY + e_Space;
			} else {									/* oben */
				posY = crossMouseY - e_height - e_Space;
			}
		/* Horizontal links */
		} else {
			posX = crossMouseX-e_Breite-e_Space;
			if (e_vDir==0) {							/* unten */
				posY = crossMouseY + e_Space;
			}else {										/* oben */
				posY = crossMouseY - e_height - e_Space;
			}
		}
		crossMoveTo(e, posX, posY)
}


function set_HDir(relWidth) {
	e_hDir = hDir; 
	if (crossMouseX + e_Breite + e_Space > relWidth) {
		e_hDir = 1;
	} else {
		if (crossMouseX < e_Breite + e_Space) {
			e_hDir = 0;
		}
	}
}

function set_VDir(relHeight) {
	e_vDir = vDir;
	if (crossMouseY + e_ChangeVDir + e_height + e_Space > relHeight) {
		e_vDir = 1;
	} else {
		if (crossMouseY - e_ChangeVDir < 0) {
			e_vDir = 0;
		}
	}
}
