var b_Back = "";  // Hintergrundfarbe
var tooltipText = "#666";  // Text und Randfarbe
var tooltipHeader_bg = ""; // Hintergrundfarbe des oberen Balkens
var b_Breite = 300;        // Tooltip-Breite (Vorgabewert)
var tooltipBorder = 1;      // Randstärke
var tooltipFont = "Arial";
var b_Dir = 0;         // Ausrichtung; 0=rechts 1=links
var tooltipVDir = 1;        // Ausrichtung; 0=unten 1=oberhalb
var tooltipChangeVDir = 65;    // Schwellwert für Wechsel der V-Ausrichtung am unteren Rand
var tooltipSpace = 10;        // Abstand vom Cursor
var tooltipShow = true; // Anzeige aktiv/inaktiv
var Tooltip = null;        // das DIV-Objekt
var positionset = false;  // Position des Tooltip gesetzt.



function showTooltip(id) {
	positionset = false;
	if(Tooltip == null ){
		Tooltip = GetObject("Tooltip");
	}
	if (Tooltip == null) {
		alert("keine Unterstützung für Tooltip-Infos");
		showTooltip = noTooltip; hideTooltip = noTooltip;
	}
	document.onmousedown = cursorMove;

	msg = tooltip_text[id];

	var relWidth, relHeight;

	msg = '<table width=' + b_Breite + ' border=0 cellpadding=' + tooltipBorder + ' cellspacing=0 bgcolor=\"' + tooltipHeader_bg + '\"><tr><td align="right"><a href="#" onmousedown="hideTooltip(); return true;">X</a></div></td></tr><tr><td><table width=100% border=0 cellpadding=3 cellspacing=0 bgcolor=\"' + b_Back + '\"><tr><td><font face=\"'  + tooltipFont + '\" color=\"' + tooltipText + '\" size=-1>' + msg + '</font></td></tr></table></td></tr></table>';

	relWidth = InnerWindowWidth() + GetScroll("x");
	relHeight = InnerWindowHeight() + GetScroll("y");
	if (MouseX + b_Breite + tooltipSpace > relWidth) 
		{b_Dir = 1;}
	else if (MouseX < b_Breite + tooltipSpace) b_Dir = 0;
	b_VDir = tooltipVDir;
	if (MouseY + tooltipChangeVDir > relHeight) b_VDir = 1;
	else if (MouseY - tooltipChangeVDir < 0) b_VDir = 0;

	if (B_Type.IE) Tooltip.innerHTML = msg;
	else if (B_Type.NS6) Tooltip.innerHTML = msg;
	else if (B_Type.NS4) {
		Tooltip.document.open();
		Tooltip.document.write(msg);
		Tooltip.document.close();
	}

	tooltipShow = true;

	if (B_Type.IE || B_Type.NS6) {Tooltip.style.visibility="visible";}
	else if (B_Type.NS4) {Tooltip.visibility="show";}
}

function hideTooltip() {
	if (Tooltip == null) return;
//	HideObject(Tooltip);
	if (B_Type.IE || B_Type.NS6) {Tooltip.style.visibility="hidden";}
	else if (B_Type.NS4) {Tooltip.visibility="hide";}
	
	tooltipShow=false;
//	MoveTo(Tooltip, -200, 0);
	var x=-200;
	var y=0;
	if (B_Type.IE) {Tooltip.style.pixelLeft=x; Tooltip.style.pixelTop=y;}
	else if (B_Type.NS4) {Tooltip.left=x; Tooltip.top=y;}
	else if (B_Type.NS6) {Tooltip.style.left=x+"px"; Tooltip.style.top=y+"px";}
	positionset = false;
}


// der Maus folgen
function cursorMove(e) {
	var posX, posY;
	MousePosition(e);

	if (tooltipShow && !positionset) {
		
		if (b_Dir==0) {
			posX = MouseX + tooltipSpace; 
			if (b_VDir==0) {posY = MouseY + tooltipSpace;}
			else {posY = MouseY - tooltipChangeVDir;}
		}
		else {
			posX = MouseX-b_Breite-tooltipSpace;
			if (b_VDir==0) {posY = MouseY + tooltipSpace;}
			else {posY = MouseY - tooltipChangeVDir;}
		}
		MoveTo(Tooltip, posX, posY)
		positionset = true;
	}
}

// Browsertyp ermitteln (und in B_Type speichern)
var B_Type = new BrowserType();
function BrowserType() {
	this.IE = false;
	this.NS4 = false;
	this.NS6 = false;
	this.id = "";

	if (document.all) {this.IE = true; this.id = "IE";}
	else if (document.getElementById) {this.NS6 = true; this.id = "NS6";}
	else if (document.layers) {this.NS4 = true; this.id = "NS4";}
}

// Mausposition zurückgeben
var MouseX, MouseY;
if (B_Type.NS4) document.captureEvents(Event.MOUSEMOVE);

function MousePosition(e) {
	if (B_Type.IE) {
		MouseX=event.x + document.body.scrollLeft; 
		MouseY=event.y + document.body.scrollTop;
	}
	else {MouseX=e.pageX; MouseY=e.pageY;}
}

// browserspezifisches DHTML-Objekt anhand von ID zurückgeben
function GetObject(id) {
	var obj = null;
	if (B_Type.IE) obj=document.all[id];
	else if (B_Type.NS6) obj=document.getElementById(id);
	else if (B_Type.NS4) obj=document.layers[id];
	return obj;
}

// verfügbare Fensterbreite ermitteln
function InnerWindowWidth() {
	var val;
	if (B_Type.IE) val=document.body.clientWidth;
	else if (B_Type.NS6) val=window.innerWidth;
	else if (B_Type.NS4) val=window.innerWidth;
	return val;
}

// tatsächliche Fensterbreite ermitteln
function OuterWindowWidth() {
	var val;
	if (B_Type.IE) val=document.body.offsetWidth;
	else if (B_Type.NS6) val=window.outerWidth;
	else if (B_Type.NS4) val=window.outerWidth;
	return val;
}

// verfügbare Fensterhöhe ermitteln
function InnerWindowHeight() {
	var val;
	if (B_Type.IE) val=document.body.clientHeight;
	else if (B_Type.NS6) val=window.innerHeight;
	else if (B_Type.NS4) val=window.innerHeight;
	return val;
}

// Scroll-Position ermitteln, "y" = vertikal, "x" = horizontal
function GetScroll(achse) {
	var val;
	if (!achse || achse == "y") {  // vertikale Achse
		if (B_Type.IE) val=document.body.scrollTop;
		else if (B_Type.NS6) val=window.pageYOffset;
		else if (B_Type.NS4) val=window.pageYOffset;
	}
	else {  // horizontale Achse
		if (B_Type.IE) val=document.body.scrollLeft;
		else if (B_Type.NS6) val=window.pageXOffset;
		else if (B_Type.NS4) val=window.pageXOffset;
	}
	return val;
}

// Scroll-Position setzen
function SetScroll(x, y) {
	window.scrollTo(x, y);
}

// Objekt positionieren x/y
function MoveTo(obj, x, y) {
	if (B_Type.IE) {obj.style.pixelLeft=x; obj.style.pixelTop=y;}
	else if (B_Type.NS4) {obj.left=x; obj.top=y;}
	else if (B_Type.NS6) {obj.style.left=x+"px"; obj.style.top=y+"px";}
}

// Objekt-y-Position ermitteln
function GetPositionX(obj) {
	if (B_Type.IE) return obj.style.pixelLeft;
	else if (B_Type.NS4) return obj.left;
	else if (B_Type.NS6) return parseInt(obj.style.left);
}

// Objekt-x-Position ermitteln
function GetPositionY(obj) {
	if (B_Type.IE) return obj.style.pixelTop;
	else if (B_Type.NS4) return obj.top;
	else if (B_Type.NS6) return parseInt(obj.style.top);
}

// Objekt ausblenden
function HideObject(obj) {
	if (B_Type.IE || B_Type.NS6) {obj.style.visibility="hidden";}
	else if (B_Type.NS4) {obj.visibility="hide";}
}

// Hintergrund-Farbe setzen
function BackgroundColor(color, obj) {
	if (typeof obj == "undefined") {document.bgColor=color; return;}
	if (B_Type.IE || B_Type.NS6) {obj.style.backgroundColor=color;}
	else if (B_Type.NS4) {obj.document.bgColor=color;}
}



