// Hier der Versuch einer über dem zu tooltippenden Element schwebenden ToolTipBox

// ein Bisschen Browsersniffing
var uagent = navigator.userAgent;

// Auf Mac Spezielitäten kann leider noch nicht rücksichtgenommen werden
// var browser = (uagent.indexOf('Mac') >= 0) ? "_mac" : "_win";

var uagent = navigator.userAgent;
var isKHTML = ((uagent.indexOf('KHTML') >= 0) || (uagent.indexOf('Safari') >= 0)) ? true : false;
var isMac = (uagent.indexOf("Mac") >= 0) ? true : false;	
//var isSafari = (uagent.indexOf("Sarfari") >= 0) ? true : false;
var isIE = ((uagent.indexOf('MSIE') >= 0) && !isKHTML && !isMac) ? true : false;
var isOpera = (uagent.indexOf('Opera') >= 0) ? true : false;	
var isGecko = ((uagent.indexOf('Gecko') >= 0) && !isKHTML ) ? true : false;
var isIE6 = ( isIE && (uagent.indexOf('6') >= 0) && !isKHTML) ? true : false;

// in der Hoffnung, dass Apples Safari sich wirklich wie KDE's Konqueror verhält ...
var isKHTML = (uagent.indexOf('KHTML') >= 0) ? true : false;

var ttbox =  null;
var x = 0;
var y = 0;
var  relPath;
var boxInner; // wird mit dem  tag für das schließ-X gefülllt
function createToolTipBox(_relPath) 
{
	relPath = _relPath;
				
	// Hier wird ein div-Element "ttbox" erzeugt, so muss es nicht in der HTM-Datei motiert werden, 
	// und wird ja sowieso nur gebraucht, wenn JS aktiviert ist
	
	var boxelement = document.createElement('div');
	boxelement.id = 'ttbox'; 
	var body;                         
	body =  document.getElementsByTagName('body')[0];
	body.appendChild(boxelement);           
	
	// wird der einfachheit haber bei jedem ttbox-Aufruf miteingefügt
	boxInner = "<div style='text-align: right' > <img id=\"ttX\"" 
	+"onmouseover=\"document.getElementById('ttX').src = '"+relPath+"images/X_highlighted.gif'\""
	+"onmouseout=\"document.getElementById('ttX').src = '"+relPath+"images/X.gif'\""
	+"onclick=\"hideToolTipBox(); document.getElementById('ttX').src = '"+relPath+"images/X.gif'\""
	+"alt=\"\" src=\""+relPath+"images/X.gif\" /></div>";
	
	ttbox = document.getElementById('ttbox');	
}
	
var offset = new Array(2);
offset[0] = 0;
offset[1] = 0;
var isMovable = true;

// sowas kann hier nicht mehr gemacht werden, da die box nun am anfange der bodys eingebunden wird
/*
var elements= document.getElementsByTagName('span');         
*/
// an jedem input-Element werden die zur Anzeige der ToolTipBox nötigen Eventhandler-Attributtags angefügt,
// sofern das title-Atribute gesetzt ist,
// bzw. (hier als Spezialfall) die maximale Länge eines input-Feldes (maxlength-Attributtag) gesetzt ist
/*
for (var i = 0; i < elements.length; i++)
{                                                                                               
        var text = elements[i].getAttribute("title");
        if  (text != null && text != "" )
        {                               
                elements[i].title = "";  
                                                                                                                 
                elements[i].setAttribute("onmouseover", "showToolTipBox(\'" + text + "\');");                                       
                elements[i].setAttribute("onmouseout",  "hideToolTipBox();");                                                                                                                                                             
        }                                                        
}
*/
// der InternetExplorer braucht leider eine Sonderbehandlung, damit er die gesetzten Eventhandlerattribute auch interpretiert
if (isIE && !isOpera)
{
        // prepareForIE();
}
function prepareForIE() 
{               
        var bodyText = document.getElementById("alles").innerHTML;
        if (bodyText != null && bodyText != "")
        {                
                document.getElementById("alles").innerHTML = "";                      
                document.getElementsByTagName("body")[0].insertAdjacentHTML("AfterBegin", bodyText);           
        }
}

// hier werden bei sichtbarer ToolTipBox die Bildschirmkoordinaten selbiger denen des Mauszeigers angepasst
var moved = 0;
function position(Ereignis)
{        
	moved++;
	// bei Elementen, die ein alt-Attribut (besonders: img) definieren, stellt der IE dieses gerne,
	// den eigentlichen Verwendungszweck missachtend als ToolTip dar.
	// Daher, hier der Versuch, das alt-Attribut durch DOM-Manipulation zu 
	// entfernen
// 	if (!document.all)
// 	{
// 		object = Ereignis.target;
// 	}
// 	else
// 		object = event.srcElement;
// 	object.removeAttribute("alt");

        // Eventhandling im IE geht über vordefinierte Variable "event"

// 2004-08-29
// vor allem scheint es ab xhtml nicht mehr mit document.body.scrollLeft/Top
// zu funktionieren, sondern mit document.documentElement.scrollTop
        if (isIE && !isOpera)
        {                     
                x = (document.documentElement && document.documentElement.scrollLeft) ? window.event.clientX + document.documentElement.scrollLeft : window.event.clientX + document.body.scrollLeft; // + document.body.scrollLeft;
                y = (document.documentElement && document.documentElement.scrollTop) ? window.event.clientY + document.documentElement.scrollTop : window.event.clientY + document.body.scrollTop; // + document.body.scrollTop;                
        }
        // in den anderen Browsern gibt man dem Eventobjekt bei der Übergabe als Funktionenparameter einen eigenen Variablennamen
	else if (isOpera) 
	{
				// so funktionierts unter Windows mit Opera 7.54:
		x = Ereignis.pageX; //+ document.body.scrollLeft;
                y = Ereignis.pageY; // - document.body.scrollTop;                
	}
	else if (isKHTML)
	{
		x = Ereignis.pageX;
		y = Ereignis.pageY;
	}
        else                         
        {
                x = Ereignis.pageX + document.body.scrollLeft;
                y = Ereignis.pageY + document.body.scrollTop;                
        }
	
        if ( ttbox != null )
        {               
                if ( (offset[0] == 0) && (offset[1] == 0))
		{
			if (isIE) 
			{
				offset[0] = -20;
				offset[1] = -20;
	
			}
			else if (isGecko)
			{
				offset[0] = -20;
				offset[1] = -20;
			}
			else
			{
				offset[0] = -20;
				offset[1] = -20;
			}                                        
		}
                ttbox.style.left = x  - offset[0] + 'px';
                ttbox.style.top= y  - offset[1] + 'px'; 
		var shadow = document.getElementById("ttboxshadow");
		if (shadow)
		{
			shadow.style.width = ttbox.offsetWidth + 'px';
			shadow.style.height = ttbox.offsetHeight + 'px';
			shadow.style.left = (x - offset[0] + 10) + 'px';
			shadow.style.top = (y - offset[1] + 10) + 'px';
			if (!isMovable)
			{
				shadow.style.height = (ttbox.offsetHeight - 35) + 'px';
				shadow.style.top = (ttbox.offsetTop + 45) + 'px';

			}
		}
		// ttbox.innerHTML = "<div>" + x + " / " + y + "<div>";
	}       
} 
function release() 
{	
	if (moved)
		window.setTimeout("document.onmousemove = null", 100);

	
	var shadow = document.getElementById("ttboxshadow");
		if (shadow && isGecko)
		{
			shadow.style.height = (ttbox.offsetHeight - 35) + 'px';
			shadow.style.top = (ttbox.offsetTop + 45) + 'px';
		}
	
}
// s.u.
var tmpResizer;
// Hervorholen der ToolTipBox 
function showToolTipBox(text, offsetX ,offsetY, isImmobile)
{       	
	isMovable = !isImmobile;
 	offset[0] = (offsetX) ? offsetX : 0;
 	offset[1] = (offsetY) ? offsetY : 0;                     
	ttbox = document.getElementById("ttbox");
	if (isMovable)
        	ttbox.innerHTML = "<div id='innerTTBox' ><img class='bg' src='"+relPath+"images/trans.gif' />" + text + "<div>";  
	else 
		showInfoBox(text, offsetX ,offsetY);
// 	else
// 	{
// 		ttbox.innerHTML = boxInner + "<div id='innerTTBox'"
// 		+ ">"
// 		+"<img id='immobileTTBoxBg' class='bg' src='"+relPath+"images/trans.gif' />" + text + "<div>";  
// 	
// 		
// 	}
 	if (isMovable)
	{
		document.onmousemove = position;      
	 	//document.onmouseover = position;        
	}
// 	else 
// 	{
// 
// 		document.onmousemove = position; 
// 		
// 		window.setInterval("release()", 50);
// 		//window.setInterval("document.onmousemove = null;", 250);
// 		//document.onclick = hideToolTipBox;        
// 		
// 	}
	
        showElement("ttbox");       
	showElement("ttboxshadow");
// diese Funktion wird momentan in footer.inc.php definiert
  	if ((isIE6 || isGecko) && resizeInterval )
		tmpResizer = window.setInterval("resize()", 10);			
}     
// verstecken der ToolTipBox 
function hideToolTipBox()
{           
	moved = 0;           
        hideElement("ttbox");       
        hideElement("ttboxshadow");
	ttbox.style.top = '-1250px';   
	window.clearInterval(tmpResizer);
	if ((isIE6 || isGecko) && resizeInterval  ) 
		if (resizeFunction)
			resize();
}
// 29.02.04 - Größe setzen
function setToolTipBoxSize(width, height)
{
	ttbox.style.width = width + "px";
	ttbox.style.height = height + "px";
}
