
/*
	this script is copyright protected !
	     --- learn don't steal ---
	     (2002)  phillipoertel.com
*/

dom = document.getElementById ? true : false;
ie = (document.all) ? true : false;
gecko = (navigator.userAgent.indexOf("Gecko")!=(-1)) ? true : false;

var mouseX;
var mouseY;

helpTextArray = new Array();
helpTextArray['u'] = new Array();
helpTextArray['t'] = new Array();

helpTextArray['u']['mongolian'] = "mongolian";
helpTextArray['t']['mongolian'] = "<ul><li><em>spoken in </em> Mongolia, China</li><li><em>spoken by</em> 4,5 mio people</li><li><em>unicode range </em> u1800-u18af</li><li><em>writing direction </em>top to bottom, left to right</li></ul>";

helpBoxDiv = buildHelpBox();

addEvent(document,"mousemove",getMousePos); 

function buildHelpBox()
{
	helpBoxObj = document.createElement("DIV");
	helpBoxObj.className = "helpBox";

	titleDiv = document.createElement("DIV");
	titleDiv.className = "helpTitle";
	helpBoxObj.appendChild(titleDiv);

	textDiv = document.createElement("DIV");
	textDiv.className = "helpContent";
	helpBoxObj.appendChild(textDiv);	

	helpBoxObj.style.visibility = 'hidden';

	document.getElementsByTagName("BODY").item(0).appendChild(helpBoxObj);

	return helpBoxObj;
}

function showHideHelpBox(topic)
{
	if (helpBoxDiv.style.visibility == 'hidden')
	{
		titleDiv.innerHTML = helpTextArray['u'][topic];
		textDiv.innerHTML = helpTextArray['t'][topic];
		posLayer(helpBoxDiv);
		helpBoxDiv.style.visibility = 'visible';
		addEvent(document,"mousemove",posHelpBox);
	} 
	else
	{
		helpBoxDiv.style.visibility = 'hidden';
		removeEvent(document,"mousemove",posHelpBox);
	}
}

function getMousePos(e)
{
	mouseX = (ie) ? event.x+document.body.scrollLeft : e.pageX
	mouseY = (ie) ? event.y+document.body.scrollTop : e.pageY
}

function addEvent(ele,ev,func)
{
	if (document.attachEvent)
	{
		ele.attachEvent("on"+ev,func);
	}
	else if (document.addEventListener)
	{
		ele.addEventListener(ev,func,false);
	}
}

function removeEvent(ele,ev,func)
{
	if (document.detachEvent)
	{
		ele.detachEvent("on"+ev,func);
	}
	else if (document.removeEventListener)
	{
		ele.removeEventListener(ev,func,false);
	}
} 

function posHelpBox()
{
	posLayer(helpBoxDiv);
}

function posLayer(myLayer) 
{

	marginFromWinEdge = 3;
	xOffsetFromMouse = 10;
	yOffsetFromMouse = 0;
	
	Lheight = ie ? myLayer.offsetHeight : parseInt(document.defaultView.getComputedStyle(myLayer,"").getPropertyValue("height")); // in myLayer.style.height steht nur was wenn der wert vorher explizit gesetzt wurde
	winBottom = ie ? (document.body.clientHeight+document.body.scrollTop):(window.innerHeight+window.pageYOffset)
	Lbottom = mouseY + Lheight;	
	
	if (Lbottom >= winBottom-(yOffsetFromMouse+marginFromWinEdge)) // helpBox würde unten aus Browserfenster rausstehen
	{
		myLayer.style.top = mouseY - Lheight - yOffsetFromMouse + "px"; // sei ein braver DOM Jünger und schreib die px dazu!
	}
	else 
	{
		myLayer.style.top = mouseY + yOffsetFromMouse + "px";
	}
	
	// das ganze nochmal für die breite
	Lwidth = ie ? myLayer.offsetWidth : parseInt(document.defaultView.getComputedStyle(myLayer,"").getPropertyValue("width"));
	Lright = mouseX + Lwidth;	
	winRight = ie ? (document.body.clientWidth+document.body.scrollLeft):(window.innerWidth+window.pageXOffset)
	if (Lright >= winRight-(xOffsetFromMouse+marginFromWinEdge))
	{
		myLayer.style.left = mouseX - Lwidth - xOffsetFromMouse + "px";
	}
	else 
	{
		myLayer.style.left = mouseX + xOffsetFromMouse + "px";
	}	
}

function printDebug(text) {
	if(!document.getElementById('Idebug')) {
		div = document.createElement("DIV");
		div.id = "Idebug";
		document.body.appendChild(div);
	}
	div.innerHTML = text;
	div.style.visibility = "visible";
}
