/*************************************************
**												**
**			DHTML - Library						**
**			Author: Thorsten Tourbier			**
**			Date: 2002-07-25					**
**												**
*************************************************/

var documentPath;
var styleString;
var visibilityString;
var hiddenString;
var detectedBrowser;
var OS
var browserName
var browserVersion
var total
var imgArray = new Array();	
var nameString;
var mouseX, mouseY;


init(); 


/*************************************************
**			Initialisierungsaufrufe				**
*************************************************/
function init()
{
	//document.onmousemove = mouseMove
	checkBrowser();
	setVariables();
}



/*************************************************
**				Browser-Abfrage					**
*************************************************/
function checkBrowser()
{
	detectedBrowser = navigator.userAgent.toLowerCase();
	
	if (checkBrowserString('konqueror'))
	{
		browserName = "Konqueror";
		OS = "Linux";
	}
	else if (checkBrowserString('opera')) 
		browserName = "Opera"
	else if (checkBrowserString('webtv')) 
		browserName = "WebTV";
	else if (checkBrowserString('icab')) 
		browserName = "iCab"
	else if (checkBrowserString('msie')) 
		browserName = "Internet Explorer"
	else if (!checkBrowserString('compatible'))
	{
		browserName = "Netscape Navigator"
		browserVersion = detectedBrowser.charAt(8);
	}
	else 
		browserName = "An unknown browser";
	
	if (!browserVersion) 
		browserVersion = detectedBrowser.charAt(foundPosition + nameString.length);
		
	if (!OS)
	{
		if (checkBrowserString('linux')) 
			OS = "Linux";
		else if (checkBrowserString('x11')) 
			OS = "Unix";
		else if (checkBrowserString('mac')) 
			OS = "Mac"
		else if (checkBrowserString('win')) 
			OS = "Windows"
		else 
			OS = "an unknown operating system";
	}
}

function checkBrowserString(searchedString)
{
	foundPosition = detectedBrowser.indexOf(searchedString) + 1;
	nameString = searchedString;
	return foundPosition;
}



/*************************************************
**		Belegung der Variablen fuer die 		**
**		Cross-Browser Funktionalitaet			**
*************************************************/
function setVariables()
{
	
	if(browserName == 'Internet Explorer')
	{
		documentPath = 'document.all.';
		styleString = '.style';
		visibilityString = 'visible';
		hiddenString = 'hidden';
		
		if(browserVersion > 4)
		{
			// noch leer
		}
	}
	
	else if(browserName == 'Netscape Navigator')
	{
		if(browserVersion <= 4)
		{
			documentPath = 'document.';
			styleString = '';
			visibilityString = 'show';
			hiddenString = 'hide';
			
			document.captureEvents(Event.MOUSEMOVE);
			
			window.captureEvents(Event.RESIZE);
			window.onresize = reloadOnResize;
		}
		
		else
		{
			documentPath = 'document.all.';
			styleString = '.style';
			visibilityString = 'visible';
			hiddenString = 'hidden';
		}
	}
	
	else
	{
		documentPath = 'document.all.';
		styleString = '.style';
		visibilityString = 'visible';
		hiddenString = 'hidden';
	}
	
}



function reloadOnResize() 
{
	location.reload();
	return false;
}

/*************************************************
**					getDivID 					**
**	Uebergebener Parameter 'idString' ist vom 	**
**	Typ String; Rueckgabewert ist Objektreferenz**
*************************************************/
function getDivID (idString)
{
	if(browserName == 'Netscape Navigator' && browserVersion > 4)
		return document.getElementById(idString);
	else
		return eval(documentPath + idString);
}




/*************************************************
**			get, set, move, visibility			**
**	In folgenden Funktionen ist uebergebener 	**
**	Parameter 'id' vom Typ Object				**
*************************************************/

/*************************************************
**					getPosition					**
*************************************************/
function getXPosition (id)
{
	return parseInt(eval('id' + styleString + '.left'));
}

function getYPosition (id)
{
	return parseInt(eval('id' + styleString + '.top'));
}

function getZPosition (id)
{
	return parseInt(eval('id' + styleString + '.zIndex'));
}



/*************************************************
**					setPosition					**
*************************************************/
function setXPosition (id, newX)
{
	eval ('id' + styleString + '.left = ' + newX);
}

function setYPosition (id, newY)
{
	eval ('id' + styleString + '.top = ' + newY);
}

function setZPosition (id, newZ)
{
	eval ('id' + styleString + '.zIndex = ' + newZ);
}



/*************************************************
**						moveBy					**
*************************************************/
function moveByX (id, deltaX)
{
	eval ('id' + styleString + '.left = ' + (parseInt (eval('id' + styleString + '.left')) + parseInt(deltaX) ) );
}

function moveByY (id, deltaY)
{
	eval ('id' + styleString + '.top = ' + ( parseInt (eval('id' + styleString + '.top')) + parseInt(deltaY) ) );
}

function moveByZ (id, deltaZ)
{
	eval ('id' + styleString + '.zIndex += ' + deltaZ);
}



/*************************************************
**					visibility					**
*************************************************/
function getVisibility(id)
{
	return eval ('id' + styleString + '.visibility');
}

function setVisibility(id, visValue)
{
	if(visValue)
		eval ('id' + styleString + '.visibility = visibilityString');
	else
		eval ('id' + styleString + '.visibility = hiddenString');
}



/*************************************************
**					Image-Swapping				**
*************************************************/	
function initImgArray(imgName, specialNetscapeImgPath, origImgSrc, altImgSrc)
{
	var tempIndex = imgArray.length;
			
	imgArray[tempIndex] = new Array(5);
	imgArray[tempIndex][0] = imgName;
	imgArray[tempIndex][1] = specialNetscapeImgPath;
	imgArray[tempIndex][2] = getImgObj(imgName); //imgObj
	imgArray[tempIndex][3] = origImgSrc;
	imgArray[tempIndex][4] = altImgSrc;
}


function getImgObj(imgName)
{
	for(i=0; i<imgArray.length; i++)
	{
		if(imgArray[i][0] == imgName)
		{
			if(browserName == 'Netscape Navigator')
			{
				if(browserVersion <= 4)
					return eval(documentPath + imgArray[i][1] + imgName);
				else
					return eval('document.images[\'' + imgName +'\']');
			}
			
			else
				return eval(documentPath + imgName);
		}
	}
}

function swapImg(imgName,showAlt)
{
	for(i=0; i<imgArray.length; i++)
	{
		if(imgArray[i][0] == imgName)
		{
			if(showAlt)
			{
				imgArray[i][2].src = imgArray[i][4];
			}
			else
			{
				imgArray[i][2].src = imgArray[i][3];
			}
		}
	}
}
