var width,height;
	
function layout_popup(timeout) {
	var dragobjekt = document.getElementById("routing");
	var dragobjektshadow = document.getElementById("routing_shadow");
	try {
		offset_shadowX = dragobjekt.offsetLeft - dragobjektshadow.offsetLeft;
		offset_shadowY = dragobjekt.offsetTop - dragobjektshadow.offsetTop;  

		var left = width / 2 - dragobjekt.clientWidth / 2;
		var top = height / 2 - dragobjekt.clientHeight / 2;

		dragobjekt.style.left = left + "px"; 
		dragobjekt.style.top = top + "px";
		dragobjektshadow.style.left = left + offset_shadowX + "px"; 
		dragobjektshadow.style.top = top + offset_shadowY + "px";
		
	} catch (e) {
		if (timeout==0) {
				window.setTimeout("layout_popup(1)",1000);
				timeout = true;
		} else 
			return;
	}
	
}
function layout_heading(timeout) {
	try {
		// Dokument-Elemente
	
		var heading = document.getElementById("top_header");
		var heading_tr = document.getElementById("top_header_right");
		var heading_elem = heading.firstChild;

		// damit die Berechnung der optimalen Schriftbreite funktionieren kann, müssen die Kontainer zuerst wieder verkleinert werden
		heading.style.fontSize = "1px";
		heading_tr.style.fontSize = "2px";
		heading_tr.style.width = "10px";		
		heading.style.width = "20px";
		heading.style.width = "auto";
		heading_tr.style.width = "auto";		

		// abbrechen falls die Überschrift keinen Text enthält
		if (heading_elem.nodeType != 3)
			return;
			
		var heading_text = heading_elem.nodeValue;
		var heading_length = heading_text.length;
		
		var heading_num_of_spaces = heading_text.split(" ").length - 1;
		if ( heading_num_of_spaces < 0 ) heading_num_of_spaces = 0;
		
		var target_width = Math.round(width * 0.9);

		var f_size = 12;
		var letter_spacing = Math.ceil(f_size / 4);
		
		var word_spacing = Math.ceil(f_size / 2,4);
		
		do {
			heading.style.fontSize = f_size + "px";
			heading.style.letterSpacing = letter_spacing + "px";
			letter_spacing = Math.ceil(f_size / 4);
			word_spacing = Math.ceil(f_size / 2,4);
			f_size ++;
		} while ((heading.offsetWidth < target_width) && (f_size < 200));

		f_size --;
		letter_spacing = Math.ceil(f_size / 4);
		word_spacing = Math.ceil(f_size / 2,4);
		heading.style.fontSize = f_size + "px";
		heading.style.letterSpacing = letter_spacing + "px";
		document.getElementById("top_header_right").style.fontSize = f_size * 2 + "px";
		document.getElementById("top_header_right").style.width = target_width + "px";
		
		document.getElementById("smaller_box_top0").style.width = heading.offsetWidth + width * 0.04 + "px";
		document.getElementById("smaller_box_top0").style.height = f_size * 5 + "px";
		document.getElementById("smaller_box_top0").style.top = "0px";
		
		document.getElementById("smaller_box_top1").style.width = heading.offsetWidth + width * 0.01 + "px";
		document.getElementById("smaller_box_top1").style.height = Math.round((f_size * 5) / 2) + "px";
		document.getElementById("smaller_box_top1").style.top = f_size + Math.round(f_size / 2) + "px";

	} catch (e) {

		if (timeout==0) {
				window.setTimeout("layout_heading(1)",1000);
		} else 
			return;
	}
}
	
function layout_menu(timeout) {
	try {
		var menu = document.getElementById("menu");
		
		menu.style.top = height - 400 + "px";
		
	} catch (e) {
		if (timeout==0) {
				window.setTimeout("layout_menu(1)",1000);
		} else 
			return;	
	}
}

function layout_content(timeout) {
	try {
		var content = document.getElementById("content");
		
		content.style.top = document.getElementById("smaller_box_top0").offsetHeight + 10 + "px";
		content.style.height = document.getElementById("footer").offsetTop
							 + document.getElementById("under_header").offsetTop
							 - parseInt(content.style.top)
							 + 0
							 + "px";


		content.style.width = document.getElementById("smaller_box_top0").offsetWidth - 120 + "px";
		
		var timestamp = document.getElementById("timestamp");
		var locations = document.getElementById("locations");
		if (locations) {
			if (timestamp)
				timestamp.style.top = locations.offsetHeight + locations.offsetTop + "px";
		} else {
			if (timestamp)
				timestamp.style.visibility = "hidden";
		}
	} catch (e) {
		console.log(e);
		if (timeout==0) {
				window.setTimeout("layout_content(1)",1000);
		} else 
			return;	
	}
}

function layout_footer(timeout) {
	try {
		var footer = document.getElementById("footer");
		var eule = document.getElementById("eule");
		var eule_gr = document.getElementById("eule_gross");		
		var under_header = document.getElementById("under_header");
		var under_header_span = document.getElementById("under_header_span");		
		var under_header_fix = document.getElementById("under_header_fix");
		var master_fsize = parseInt(document.getElementById("top_header").style.fontSize);

		under_header.style.fontSize = Math.round(master_fsize * 1.166) + "px";
		under_header_span.style.fontSize = master_fsize + "px";		
		
		under_header.style.width = document.getElementById("smaller_box_top0").offsetWidth - 130 + "px";
		under_header_fix.style.width = document.getElementById("smaller_box_top0").offsetWidth + 0 + "px";		
		
		under_header.style.height = parseInt(under_header.style.fontSize) * 2.68 + "px";		
		
		footer.style.top = height - 258 - under_header.offsetHeight + "px";

		if (eule_gr) {
			eule.style.visibility = "hidden";

			if (navigator.appVersion.indexOf("MSIE 6.")>-1) {
				make_trans("eule_gr","eule_gr");
				eule_gr.style.position = "absolute";
				eule_gr.style.bottom = "auto";
				eule_gr.style.top = document.getElementById("content").offsetTop + document.getElementById("content").offsetHeight - 420 + "px";
				eule_gr.style.left = document.getElementById("menu").offsetWidth - 50 + "px";				
			} else {
				eule_gr.style.bottom = height - footer.offsetTop - eule.offsetHeight - eule.offsetTop + 10 + "px";			
				eule_gr.style.left = document.getElementById("menu").offsetWidth + 10 + "px";				
			}
		} else {
 			eule.style.visibility = "visible";
		}
	} catch (e) {
		if (timeout==0) {
				window.setTimeout("layout_footer(1)",1000);
		} else {
			alert(e.message);
		}
	}
}

function layout() {

	if (self.innerHeight) // all except Explorer
	{
		width = self.innerWidth;
		height = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight)	// Explorer 6 Strict Mode
	{
		width = document.documentElement.clientWidth;
		height = document.documentElement.clientHeight;
	} else if (document.body) // other Explorers
	{
		width = document.body.clientWidth;
		height = document.body.clientHeight;
	}

	// Popops
	layout_popup(0);
	// Heading
	layout_heading(0);
	// menu
	layout_menu(0);
	// footer
	layout_footer(0);
	// content
	layout_content(0);

}


