// ###############################################################################################
// ACHTUNG: .js Dateien immer mit ANSI Codierung speichern, da es sonst Probleme beim IE/Mac gibt.
// ###############################################################################################

// #############################################################################
// (C) 2006 BBH, 80538 Muenchen, Thierschstr. 5, contact@bergerbaaderhermes.de
// #############################################################################
//
// 19.10.2004, JM: Übergangslösung Skalierung für Fullscreen-Modus-Problem
// 09.11.2004, JM: Finale Lösung zur Fullscreen-Optimierung
// 14.09.2006, JM: Anpassung nach Umstellung auf SWFObject zur Flash Erkennung

/*
	LOKALE VARIABLEN
*/
var blnMaximized = false;	// schon maximiert?
var oSWFDiv;
var intOptimalWidth;
var intOptimalHeight;
var optimalRatio;

/*
	initialize maximize function

	strDiv: name of div containing content
	w: optimal width of content
*/
function initMaximize(strDiv, w, h)
{
	self.top.focus();

	oSWFDiv = new getObj(strDiv);
	oSWFDiv.style.position = "absolute";
	oSWFDiv.style.top = "0px";
	oSWFDiv.style.left = "0px";
	oSWFDiv.style.width = "1012px";
	oSWFDiv.style.height = "677px";
		
	intOptimalWidth = w;
	intOptimalHeight = h;
	optimalRatio = w/h;
	
	doMaximize();
	
	window.onresize = doResize;
}

/*
	maximize window
*/
function doMaximize() {
	var divw;
	var divh;
	var sw = screen.width;
	var sh = screen.height;
	if (is_win) {
		sh -= 30;
	}
	var sl;
	var st;
	var cw;
	var ch;
	
	if (!blnMaximized) {
		/*
			resize window to fit screen
		*/
		if (is_nav4)
		{
			window.outerWidth = sw;
			window.outerHeight = sh;
		}
		else
		{
			self.resizeTo(sw, sh);
		}

		if (window.innerWidth)
		{
			cw = window.innerWidth;
			ch = window.innerHeight;
		}
		else if (document.body)
		{
			if (document.body.clientWidth)
			{
				cw = document.body.clientWidth;
				ch = document.body.clientHeight;
			}
		}

		/*
			move window to top left
		*/
		if (is_nav)
		{
			debugMsg('position via screenX');
			sl = self.screenX;
			st = self.screenY;
			self.moveBy(-sl, -st);
		}
		else
		{
			debugMsg('position else');
			self.moveTo(0, 0);
		}

		/*
			set size of SWF div:
		
			screen smaller than optimal size -> reduce to screen size
			screen larger than optimal size -> keep at optimal size
		*/
		if ((intOptimalWidth > cw) || (intOptimalHeight > ch))
		{
			divw = cw;
			divh = cw / optimalRatio;
			if (divh > ch)
			{
				divh = ch;
				divw = ch * optimalRatio;
			}
		}
		else
		{
			divw = intOptimalWidth;
			divh = intOptimalHeight;
		}
		oSWFDiv.style.width = divw;
		oSWFDiv.style.height = divh;

		// move SWF div to center of clientarea
		if (divw > cw)
		{
			divl = 0;
		}
		else
		{
			divl = (cw - divw) / 2;
		}
		if ((divh > ch) || (is_mac && is_ie))
		{
			divt = 0;
		}
		else
		{
			divt = (ch - divh) / 2;
		}
		
		oSWFDiv.style.left = divl;
		oSWFDiv.style.top = divt;

		blnMaximized = true;
	}
}

/*
	pseudo minimize window
*/
function doMinimize() {
	var sw = screen.availWidth;
	var sh = screen.availHeight;
	
	if (blnMaximized) {
		/*
			resize window to 95% of available space
		*/
		if ((window.outerWidth) && (is_nav)) {
			window.outerWidth = sw * 0.95;
			window.outerHeight = sh * 0.95;
		}
		else
		{
			self.resizeTo(sw * 0.95, sh * 0.95);
		}
		/*
			center window
		*/
		self.moveTo((sw * 0.05) / 2, (sh * 0.05) / 2);

		repositionDiv();

		blnMaximized = false;
	}
	else
	{
		doMaximize();
	}
}

/*
	reposition SWF div if minimized
*/
function repositionDiv()
{
	var divl;
	var divt;
	var divw;
	var divh;
	var cw;
	var ch;
	
	if (window.innerWidth)
	{
		cw = window.innerWidth;
		ch = window.innerHeight;
	}
	else if (document.body)
	{
		if (document.body.clientWidth)
		{
			cw = document.body.clientWidth;
			ch = document.body.clientHeight;
		}
	}
	
	/*
		set size of SWF div:
	
		clientarea smaller than optimal size -> reduce to clientarea size
		clientarea larger than optimal size -> keep at optimal size
	*/
	if ((intOptimalWidth > cw) || (intOptimalHeight > ch))
	{
		divw = cw;
		divh = cw / optimalRatio;
		if (divh > ch)
		{
			divh = ch;
			divw = ch * optimalRatio;
		}
	}
	else
	{
		divw = intOptimalWidth;
		divh = intOptimalHeight;
	}
	oSWFDiv.style.width = divw;
	oSWFDiv.style.height = divh;

	// move SWF div to center of clientarea
	if (divw > cw)
	{
		divl = 0;
	}
	else
	{
		divl = (cw - divw) / 2;
	}

	if ((divh > ch) || (is_mac && is_ie))
	{
		document.title = 'ch: ' + ch;
		divt = 0;
	}
	else
	{
		divt = (ch - divh) / 2;
	}
	
	oSWFDiv.style.left = divl;
	oSWFDiv.style.top = divt;
}

/*
	resize handler if minimized
*/
function doResize()
{
	repositionDiv();
}
