/////////////////////////////////////////////////////////////////////
// Javascript-Tools 
/////////////////////////////////////////////////////////////////////


var MouseX = 0;
var MouseY = 0;
var MyTipID = null;

var TIPWIDTH = 200;

//Die Maus mitbekommen
document.onmousemove = setMousePos;



/////////////////////////////////////////////////////////////////////
//  Kann ein Array von Controls ein- und ausschalten.
//  inputControls: Text-Array mit Namen der Steuerelemente
//  disabled: true oder false
//  inhalt: Text, der in die Controls geschrieben werden soll.
/////////////////////////////////////////////////////////////////////
function activateControl (inputControls, disabled, inhalt)
{
	for (a = 0; a < inputControls.length; a++)
	{
		document.getElementsByName (inputControls[a])[0].disabled=disabled;
		document.getElementsByName (inputControls[a])[0].value=inhalt;
	}	
}

/////////////////////////////////////////////////////////////////////
//  Stellt eine codiert (rückwärts geschriebene) Mailadresse wieder
//  korrekt dar. Maßnahme gegen Spambots.
/////////////////////////////////////////////////////////////////////
function dispMail (addRev)
{
	document.write ("<a href=\"mailto:");

	for (a = addRev.length - 1; a >= 0; a--)
	{
		document.write (addRev.substring (a, a + 1));
	}
	
	document.write ("\">");
	
	for (a = addRev.length - 1; a >= 0; a--)
	{
		document.write (addRev.substring (a, a + 1));
	}
	
	document.write ("</a>");
}


/////////////////////////////////////////////////////////////////////
//  setMousePos:
//  Merkt sich die neue Mausposition und aktualisiert - falls vorhanden
//  ein Tip-Element.
/////////////////////////////////////////////////////////////////////
function setMousePos (e)
{
	var myEvent = null;
	
	//Fucking Browserunterscheidung, wie das Event kommt
	if (e)
		myEvent = e;
		
	if (window.event)
		myEvent = window.event;
	
	if (myEvent == null)
		return;
	
	//Die Position bekommt bisschen Abstand, damit man noch klicken kann.
	MouseX = myEvent.clientX + 5;
	MouseY = myEvent.clientY + 5;
	
	//Fucking IE8-Abweichung, wie man Scrolling feststellt :-((
	if (document.getElementById ("bleedingbody").scrollTop)
		MouseY += document.getElementById ("bleedingbody").scrollTop;
	else if (document.documentElement.scrollTop)
		MouseY += document.documentElement.scrollTop;
		
	
	//Anzeige des Maustips
	if (MyTipID != null)
		showTipOnMouse (MyTipID);
		
}


/////////////////////////////////////////////////////////////////////
//  showTipOnMouse:
//  Zeigt ein dynamisches Webelement an der Mausposition an.
/////////////////////////////////////////////////////////////////////
function showTipOnMouse (tipId)
{
	var myTip;
	var maxWidth = 0;
	
	myTip = document.getElementById (tipId);
	MyTipID = tipId;
	
	myTip.style.visibility = "visible";

	//Prüfen, ob die Darstellung über den Fensterrand gehen würde
	if (document.documentElement.clientWidth)
		maxWidth = document.documentElement.clientWidth;
	else if (document.getElementById ("bleedingbody").clientWidth)
		maxWidth = document.getElementById ("bleedingbody").clientWidth;
	
	if (MouseX + TIPWIDTH > maxWidth)
		MouseX -= (TIPWIDTH + 10);
	
	myTip.style.top = String (MouseY) + "px";
	myTip.style.left = String (MouseX) + "px";
}


/////////////////////////////////////////////////////////////////////
//  hideTip:
//  Versteckt ein dynamisches Element wieder.
/////////////////////////////////////////////////////////////////////
function hideTip (tipId)
{
	var myTip;
	
	myTip = document.getElementById (tipId);
	
	myTip.style.visibility = "hidden";
	MyTipID = null;
}