// Layerspezifische Funktionen: Standard

//-------------------------------------------------------------------
// Anpassungen an Fenstergröße
//-------------------------------------------------------------------

function Init_Layers()
{
	var clientWidth, clientHeight, matrixWidth, matrixHeight;
	
	if (navigator.userAgent.indexOf("MSIE 6") > 0)
	{
		if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode
		{
			clientWidth = document.documentElement.clientWidth;
			clientHeight = document.documentElement.clientHeight;
		}
		else if (document.body) // other Explorers
		{
			clientWidth = document.body.clientWidth;
			clientHeight = document.body.clientHeight;
		}
		matrixHeight = Math.floor(clientHeight * 0.70);
		if (matrixHeight < 320)
		{
			matrixHeight = 320;		// ie6 kann kein min-width oder min-height
		}
		matrixWidth = Math.floor(clientWidth * 0.72);
		if (matrixWidth < 732)
			matrixWidth = 732;
		document.getElementById("matrix").style.width = matrixWidth + "px";
		document.getElementById("head").style.width = matrixWidth + "px";
		document.getElementById("foot").style.width = matrixWidth + "px";
		document.getElementById("frame").style.width = matrixWidth + "px";
		document.getElementById("matrix").style.height = matrixHeight + "px";
		document.getElementById("frame").style.height = matrixHeight + "px";
	}
	else
	{
		clientWidth = document.getElementById("body").offsetWidth;
		clientHeight = document.getElementById("body").offsetHeight;
		
		matrixWidth = document.getElementById("matrix").offsetWidth;
		matrixHeight = document.getElementById("matrix").offsetHeight;
	}

	var mainWidth = clientWidth - document.getElementById("main").offsetLeft;
	document.getElementById("main").style.width = mainWidth + "px";
	document.getElementById("main").style.height = (matrixHeight - 80) + "px";
	document.getElementById("content1").style.width = (matrixWidth - 60) + "px";		// plus 20, da alle Medienobjekte rechts 20 px margin haben
	document.getElementById("content2").style.width = (matrixWidth - 80) + "px";		// scalierter Preview (Fotos, Videos)
	document.getElementById("content2").style.height = (matrixHeight - 80) + "px";	
	document.getElementById("busy").style.width = (matrixWidth - 58) + "px";
	document.getElementById("busy").style.height = (matrixHeight - 58) + "px";

	var w, h, x;
	
	document.getElementById("m_submenu").style.height = (matrixHeight - 2) + "px";
	document.getElementById("m_history").style.height = (matrixHeight - 250) + "px";

	// Sticker anpassen. Je nach Modus ist x variabel, aber die Breite fest, oder x ist fest und die Breite variabel
	
	
	if (document.getElementById("layout1_info"))
	{
		w = matrixWidth - 80 - 500;
		document.getElementById("sticker").style.width = w + "px";
		document.getElementById("sticker").style.height = (matrixHeight - 80) + "px";	
		if (document.getElementById("txphoto"))		// Höhe der Fotobox zum Pressetext proportional anpassen (4:3)
		{
			h = Math.floor(w * 0.75);
			if (h > matrixHeight - 170)
				h = matrixHeight - 170;
			document.getElementById("txphoto").style.width = w + "px";
			document.getElementById("txphoto").style.height = h + "px";
			document.getElementById("tximage").style.height = h + "px";
			Hide_Options("txphoto");
		}
	}
	else if (document.getElementById("layout2_info")) 
	{
		x = document.getElementById("layout2_content").offsetWidth;
		document.getElementById("sticker").style.left = (x + 60) + "px";		// Sticker-Layer rechts positionieren
		document.getElementById("layout2_info").style.left = (x + 20) + "px";	// Original-Infolayer analog zum sticker-Layer positionieren
		document.getElementById("sticker").style.height = (matrixHeight - 80) + "px";	
		if (document.getElementById("news0"))
			Init_News(false);		// Opener-Textlängen an neue Platzverhältnisse anpassen
	}
	Hide_Options("media");
	Init_Scroll('submenu');
	Init_Scroll('history');
}

//-------------------------------------------------------------------
// Sticker
// Der Sticker ist ein fest positionierter Layer außerhalb des
// scrollbaren Inhaltsbereichs zur festen Anzeige von Zusatzinfos etc.
//-------------------------------------------------------------------

function Init_Sticker(x, w, h, src)
{
	document.getElementById("sticker").style.left = x + "px";			// Position
	document.getElementById("sticker").style.width = w + "px";			// feste Breite
	document.getElementById("sticker").style.height = h + "px";			// max. Höhe
	document.getElementById("sticker").innerHTML = document.getElementById(src).innerHTML; // Inhalt in Sticker-Layer übertragen
	document.getElementById("sticker").style.visibility = "visible";
	document.getElementById(src).innerHTML = "";
}

function Clear_Sticker()
{
	document.getElementById("sticker").innerHTML = "";
	document.getElementById("sticker").style.visibility = "hidden";
}

//-------------------------------------------------------------------
// Anzeigen und Verbergen von Navigationselementen
//-------------------------------------------------------------------

function Show_MatrixElements(status)
{
	document.getElementById("mainmenu").style.visibility = status;
	document.getElementById("mediamenu").style.visibility = status;
	document.getElementById("m_history").style.visibility = status;
	document.getElementById("icon").style.visibility = status;
	document.getElementById("filter").style.visibility = status;
}
//-------------------------------------------------------------------
// Content Scrolling für Kapitelsprünge
//-------------------------------------------------------------------

function Scroll_Content(elem)
{
	if (elem)
		document.getElementById("main").scrollTop = elem.offsetTop;
	else
		document.getElementById("main").scrollTop = 0;
}
//-------------------------------------------------------------------
// Menu Scrolling für Untermenüs
//-------------------------------------------------------------------
var scrollStep = 0;

function Init_Scroll(id)
{
	var h = document.getElementById(id).scrollHeight;
	var mh = document.getElementById("m_" + id).offsetHeight - 32;
	var y = document.getElementById(id).offsetTop;
	var sy;
//alert(id + ": " + h + "/" + mh + " y: " + y);	
	document.getElementById("st_" + id).style.visibility = "hidden";
	document.getElementById("sb_" + id).style.visibility = "hidden";
	
	if (h > mh)
	{
		if (id == 'submenu')
		{
			if (document.getElementById("s" + idMenu))
			{
				sy = document.getElementById("s" + idMenu).offsetTop;
				if (sy + y < 16)
					y = 16;
				else if (sy + y > mh)
					y = mh - h;
			}
		}
		else if (id == 'history')
			document.getElementById("m_" + id).style.top = "150px";
			
		if (y < 16)
			document.getElementById("st_" + id).style.visibility = "inherit";
		if (y >= mh - h)
			document.getElementById("sb_" + id).style.visibility = "inherit";
	}
	else
	{
		if (id == 'history')
		{
			document.getElementById("m_" + id).style.top = (150 + mh - h) + "px";
		}
		y = 16;
	}
	document.getElementById(id).style.top = y + "px";
}

function Scroll_Menu(id, step)
{
	scrollStep = step;
	var h = document.getElementById(id).scrollHeight;
	var mh = document.getElementById("m_" + id).offsetHeight - 32;
	if (h <= mh)
		return;
	var y = document.getElementById(id).offsetTop;
	Scroll(id, y, h, mh);
}

function Scroll(id, y, h, mh)
{
	if (!scrollStep)
		return;
		
	y += scrollStep;
	if (y < mh - h)
	{
		document.getElementById("sb_" + id).style.visibility = "hidden";
		return;
	}
	else
		document.getElementById("sb_" + id).style.visibility = "inherit";
	if (y >= 16)
	{
		document.getElementById("st_" + id).style.visibility = "hidden";
		return;
	}
	else
		document.getElementById("st_" + id).style.visibility = "inherit";
	document.getElementById(id).style.top = y + "px";
	setTimeout('Scroll("' + id + '", ' + y + ', ' + h + ', ' + mh + ')', 40);
}

function Stop_Scroll()
{
	scrollStep = 0;
}

//-----------------------------------------------------------------------------------
// Text-Selektion
//-----------------------------------------------------------------------------------

function Select_Text (elem) 
{
	if (document.selection && document.selection.createRange) 
	{
    	var textRange = document.selection.createRange();
    	textRange.moveToElementText(elem);
    	textRange.select();
  	}
	else if (document.createRange && window.getSelection) 
	{
    	var range = document.createRange();
    	range.selectNode(elem);
    	var selection = window.getSelection();
    	selection.removeAllRanges();
    	selection.addRange(range);
	}
}