
/*
 * Schnittstelle - Layer, Mausbewegung
 */


var layerWidth = 200;        		// layer-Breite
var horAlign = 0;        	 		// horizontale Ausrichtung des Layers

var paddingTop = 5;    				// Abstand zum oberen Fensterrand 
var cursorPadding = 10;        		// Cursorabstand
var isVisible = false; 				// Ein- und Ausblendung des Layers

var layerObject = null;        		// das DIV-Objekt
var aktWidth;             			// Layer-Breite
var l_Dir;							// Layer-Ausrichtung relativ zum Fenster

var relWidth, relHeight;			// Fenstergroesse

var reiterWidth = 100;


// Layer erstellen
function layerSet(id, breite, bgcolor) {	
	document.onmousemove = moveObject;
	
	if (breite && breite>20) aktWidth = breite;
	layerObject = getLayerObject(id);

	isVisible = false;
}
// layer einblenden
function layerShow(msg, dir, breite, stylesheet) {
	if (layerObject == null) return;
	if (breite && breite>20){
		aktWidth = breite;
	}else{
		aktWidth=layerWidth;
	}

	if (!dir){
		l_Dir = horAlign;
	}else{
		l_Dir = dir;
	}
	
	// Fentergroesse berechnen
	relWidth = innerW() + getScrollPosition("x");
	relHeight = innerH() + getScrollPosition("y");

	
	// horizontale Ausrichtung
	// wenn Layer rechts aus dem Fenster ragt 
	// wird layer nach links ausgerichtet
	if (x_mouse + aktWidth + cursorPadding + reiterWidth > relWidth) {
		l_Dir = 1;
		// wenn Maus am linken Fensterrand, 
		// dann wird Layer rechts ausgerichtet
	}else if (x_mouse < aktWidth + cursorPadding){  
		l_Dir = 0;
	}else{
		l_Dir = 1;
	}
	
	// Text dem Layer hinzufuegen
	writeText(layerObject, msg);
	isVisible = true;
	moveObject;
	showLayerObject(layerObject,stylesheet,aktWidth);
}
// layer ausblenden
function layerHide() {
	if (layerObject == null) return;
	hideLayerObject(layerObject);
	isVisible=false;
	moveLayerObject(layerObject, -400, -200);
}
// Mausbewegung verfolgen
function moveObject(e) {
	var posX, posY;
	getMousePosition(e);
	
	if (isVisible) {
		// layer nach rechts
		if (l_Dir==0){
			posX = x_mouse+cursorPadding;
			if(posX + aktWidth + cursorPadding + reiterWidth > relWidth){
				posX = x_mouse-(aktWidth+2*cursorPadding);	
			} 
		}else{ // layer nach links
			posX = x_mouse-(aktWidth+2*cursorPadding);
			if(posX < aktWidth + cursorPadding){
				posX = x_mouse+cursorPadding;	
			}
		}
		
		posY = paddingTop;
		moveLayerObject(layerObject, posX, posY)
	}	
}

