/* Basic Functions */
function bodyWidth() {
	if(window.innerWidth != undefined)
		return window.innerWidth;
	else return document.body.offsetWidth;
}
function bodyHeight() {
	if(window.innerHeight != undefined)
		return window.innerHeight;
	else if(document.body.offsetHeight != 0)
		return document.body.offsetHeight;
	else return document.documentElement.clientHeight;
}

function getStyle(el,styleProp) {
	var x = document.getElementById(el);
	if (x.currentStyle)
		var y = x.currentStyle[styleProp];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
	return y;
}

function floatRound(n, p) {
	if(p == 1) n = n * 10;
	if(p == 2) n = n * 100;
	if(p == 3) n = n * 1000;
	n = Math.round(n);
	if(p == 1) n = n / 10;
	if(p == 2) n = n / 100;
	if(p == 3) n = n / 1000;
	return n;
}

function get_em(id, att) {
	var w = getStyle(id, att);
	if(is_em(w) == true) { return floatRound(parseFloat(w.replace('em','')), 2); } /*shortcut*/
	if(w == undefined || w == 'auto' || is_percent(w) == true) {
		if(att == 'width') w = document.getElementById(id).offsetWidth;
		if(att == 'height') w = document.getElementById(id).offsetHeight;
	} 
	if(typeof w == 'string') w = w.replace('px','');
	w = parseFloat(w);
	var f = getStyle(id, 'font-size');
	if(f == undefined) f = getStyle(id, 'fontSize');	
	/*if(f == '10%') f = '100%'; */
	if(is_em(f) || is_percent(f))
		f = fix_measure(f);
	else {
		f = f.replace('px', '');
		f = parseFloat(f);
	}
	/*alert(id + ': ' + w + ', ' + f);*/
	/*alert(id + '-' + att + ' = ' + w + '/' + f);*/
	var r = floatRound(w / f, 2)
	/*alert(id + ' resolved: ' + r);*/
	return r;
}

function is_em(v) {
	if(typeof v != 'string') return false;
	if(v.indexOf('em') != -1)
	 	return true;
	 else
	 	return false;
}
function is_percent(v) {
	if(typeof v != 'string') return false;
	if(v.indexOf('%') != -1)
	 	return true;
	 else
	 	return false;
}
function fix_measure(v) {
	if(is_em(v) == true) {
		v = v.replace('em', '');
		v = parseFloat(v) * 100;
	}
	if(is_percent(v) == true) {
		v = v.replace('%', '');
		v = parseInt(v);
		if(BrowserDetect.browser == 'Opera')
			v = v *10;
		}
	var fs = fallback_fontsizes();
	return(fs / 100) * v;
	
}

function fallback_fontsizes() {
	if(debug_active == 'min') return 16.01;
	else if(debug_active == '1000') return 16.01;
	else if(debug_active == '1200') return 19.26;
	else if(debug_active == '1400') return 22.43;
	else if(debug_active == '1600') return 25.60;
	else if(debug_active == '1800') return 28.88;
	else if(debug_active == '2086') return 33.36;
}
/* Layout Functions */
function get_outer_space(direction) {
	if(direction == 'v')
		var att = 'height';
	if(direction == 'h')
		var att = 'width';
	var cw = get_em('content_container', att);
	var bw = get_em('bg_container', att); 
	return (bw - cw) / 2;
}

function resize_layout() { 
	if(resize_active == true) {
		return;
	} else { 
		resize_active = true; 
	}
	var bg = document.getElementById('bg_container');
	var img = document.getElementById('image_container');
	var body = document.getElementById('body');
	if(bodyWidth() < 540 || bodyHeight() < 350) {
		bg.style.marginLeft = '0px';
		bg.style.marginTop = '0px';
		bg.style.position = 'relative';
		bg.style.left = '-200px';
		bg.style.top = '-120px';
		bg.style.width = '1000px';
		bg.style.height = '609px';
		img.innerHTML = '<img src="img/bg-' + 1000 + '.gif">';
		body.style.overflow = 'auto';
		body.style.fontSize = '100.1%';
		debug_active = 'min';
	} else {
		bg.style.position = 'absolute';
		bg.style.left = '55%';
		bg.style.top = '50%';
		body.style.overflow = 'hidden';
		if(bodyWidth() < 640 || bodyHeight() < 415) {
			img.innerHTML = '<img src="img/bg-' + 1000 + '.gif">';
			bg.style.width = '1000px';
			bg.style.height = '609px';
			bg.style.marginLeft = '-500px';
			bg.style.marginTop = '-304px';
			body.style.fontSize = '100.1%';
			debug_active = '1000';
		} else if (bodyWidth() < 740 || bodyHeight() < 500 ) {
			img.innerHTML = '<img src="img/bg-' + 1200 + '.gif">';
			bg.style.width = '1200px';
			bg.style.height = '731px';
			bg.style.marginLeft = '-600px';
			bg.style.marginTop = '-365px';
			body.style.fontSize = '120.4%';
			debug_active = '1200';
		} else if (bodyWidth() < 840 || bodyHeight() < 560 ) {
			img.innerHTML = '<img src="img/bg-' + 1400 + '.gif">';
			bg.style.width = '1400px';
			bg.style.height = '852px';
			bg.style.marginLeft = '-700px';
			bg.style.marginTop = '-426px';
			body.style.fontSize = '140.2%';
			debug_active = '1400';
		} else if (bodyWidth() < 940 || bodyHeight() < 650 ) {
			img.innerHTML = '<img src="img/bg-' + 1600 + '.gif">';
			bg.style.width = '1600px';
			bg.style.height = '974px';
			bg.style.marginLeft = '-800px';
			bg.style.marginTop = '-487px';
			body.style.fontSize = '160%';
			debug_active = '1600';
		} else if (bodyWidth() < 1100 || bodyHeight() < 740 ) {
			img.innerHTML = '<img src="img/bg-' + 1800 + '.gif">';
			bg.style.width = '1800px';
			bg.style.height = '1096px';
			bg.style.marginLeft = '-900px';
			bg.style.marginTop = '-548px';
			body.style.fontSize = '180.5%';
			debug_active = '1800';
		} else {
			img.innerHTML = '<img src="img/bg-' + 2086 + '.gif">';
			bg.style.width = '2086px';
			bg.style.height = '1270px';
			bg.style.marginLeft = '-1043px';
			bg.style.marginTop = '-635px';
			body.style.fontSize = '208.5%';
			debug_active = '2086';
		}
	}
	
	/*for(var i = 0; i < boxes.length; i++) {
		var bx = boxes[i];
		if(document.getElementById('content_'+bx).style.display == 'block') {
			if(boxdirs[bx] == 'left' || boxdirs[bx] == 'right') {
				simple_fix_height(bx);	
			}	
		}
	}*/
	
	resize_active = false;
}

function init_move_by_time(tgt, src, direction) {
	slide_active = true;
	var div = document.getElementById('content_'+tgt);
	/*var div2 = document.getElementById('extend_'+tgt);*/
	if(src == 'top') { var att = 'height'; var dir = 'v' }
	else if(src == 'bottom') { var att = 'height'; var dir = 'v' }
	else if(src == 'left') { var att = 'width'; var dir = 'h'}
	else if(src == 'right') { var att = 'width'; var dir = 'h'}

	div.style.display = 'block';
	
	var objMeasure = get_em('content_'+tgt, att);
	var outerMeasure = get_outer_space(dir);
	var start_pos = floatRound(objMeasure + outerMeasure, 2);
	var orig = get_em('content_'+tgt, src);
	var distance = start_pos + objMeasure;
	/*alert('Startposition: -'+start_pos+', Zielposition: '+(orig+objMeasure)+', zu bewaeltigende Distanz: '+distance);*/
	
	var orig = get_em('content_'+tgt, src);
	var objMeasure = get_em('content_'+tgt, att);
	var outerMeasure = get_outer_space(dir);
	var start_pos = floatRound(objMeasure + (outerMeasure * 2), 2);
	var distance = orig + start_pos;
	start_pos = start_pos - (start_pos*2);

	div.style[src] = start_pos+'em';	

	/*div2.style.display = 'block';
	
	var ext_orig = get_em('extend_'+tgt, src);
	var extMeasure = get_em('extend_'+tgt, att);
	var ext_start_pos = floatRound(extMeasure + objMeasure + outerMeasure, 2);
	var ext_distance = ext_orig + ext_start_pos;
	ext_start_pos = ext_start_pos - (ext_start_pos*2); */
	
	/*var ext_orig = get_em('extend_'+tgt, src);
	alert(ext_orig);
	alert(get_em('extend_'+tgt, src));	*/
	/*
	div2.style[src] = ext_start_pos+'em';
	*/
	var now = new Date();
	var time_orig = now.getTime();
	var time_passed = 0;
	var time_tgt = 1200;
	var done = false;	
	move_by_time(tgt, src, direction, time_orig, time_tgt, orig, start_pos, distance);
}

function move_by_time(tgt, src, dir, time_orig, time_tgt, orig, start_pos, distance) {
		var now = new Date();
		var time_actual = now.getTime();
		var time_passed = time_actual - time_orig;
		
		var percentage = time_passed / time_tgt;
		percentage = floatRound(percentage*100,0);
		//alert(time_passed + ' / ' + time_tgt + ' = ' + percentage+'%');
		
		var div = document.getElementById('content_'+tgt);
		/*var div2 = document.getElementById('extend_'+tgt);*/
		if(percentage < 100 && BrowserDetect.browser != 'Explorer') {
			var current_pos = percentage * (distance / 100);
			/*var ext_pos = percentage * (ext_distance / 100);*/
			if(dir == 'out') {
				current_pos = distance - current_pos;	
				/*ext_pos = ext_distance - ext_pos;*/
			}
			
			div.style[src] = start_pos + current_pos+'em';
			/*div2.style[src] = ext_start_pos + ext_pos +'em';*/
			setTimeout('move_by_time(\''+tgt+'\', \''+src+'\', \''+dir+'\', '+time_orig+', '+time_tgt+', '+orig+', '+start_pos+', '+distance+')',10);
		} else {
			if(dir == 'out') {
				div.style.display = 'none';
				/*div2.style.display = 'none';*/	
			}
			div.style[src] = orig+'em';
			/*div2.style[src] = ext_orig+'em';*/
			slide_active = false;	
		}
}

function slide_content_in(tgt, src) {
	slide_active = true;
	var div = document.getElementById('content_'+tgt);
	if(src == 'top') { var att = 'height'; var dir = 'v' }
	else if(src == 'bottom') { var att = 'height'; var dir = 'v' }
	else if(src == 'left') { var att = 'width'; var dir = 'h'}
	else if(src == 'right') { var att = 'width'; var dir = 'h'}
	
	var objMeasure = get_em('content_'+tgt, att);
	var outerMeasure = get_outer_space(dir);
	var start_pos = floatRound(objMeasure + outerMeasure, 2);
	var orig = get_em('content_'+tgt, src);
	div.style[src] = '-'+start_pos+'em';

	var done = false;
	var pos = start_pos - (start_pos*2);
	var max = orig;
	var speed = 0.5;
	var delay = 0;
	var delayAdd = 30;
	while(done == false) {
		if(pos < max) {
			animationList[animationList.length] = setTimeout('move_new(\'content_'+tgt+'\',\''+src+'\','+pos+')',delay);
		} else {
		 	done = true;
		 	animationList[animationList.length] = setTimeout('move_new(\'content_'+tgt+'\',\''+src+'\','+max+')',delay);
		 	setTimeout('slide_active = false', delay);
		} 
		pos = floatRound(pos + speed, 1);
		delay += delayAdd;
	}
	/*
	setTimeout('move_layer(\'content_'+tgt+'\',\''+src+'\',-'+start_pos+','+orig+','+speed+')',0);
	*/
	
	var div = document.getElementById('extend_'+tgt);
	var orig = get_em('extend_'+tgt, att);
	div.style[att] = '0em';
	
	var delay = ((start_pos + start_pos*2) / speed) * 4;
	var done = false;	
	var pos = 0.0;
	var max = orig;
	var speed = 1.5;
	var delayAdd = 25;
	while(done == false) {
		if(pos < max) {
			animationList[animationList.length] = setTimeout('move_new(\'extend_'+tgt+'\',\''+att+'\','+pos+')',delay);
		} else {
		 	done = true;
		 	animationList[animationList.length] = setTimeout('move_new(\'extend_'+tgt+'\',\''+att+'\','+max+')',delay);
		} 
		pos = floatRound(pos + speed, 1);
		delay += delayAdd;
	}
	/*
	setTimeout('move_layer(\'extend_'+tgt+'\',\''+att+'\',0.0,'+orig+','+speed+')', delay)*/
}

function slide_content_out(tgt, src) {
	slide_active = true;
	var div = document.getElementById('content_'+tgt);
	if(src == 'top') { var att = 'height'; var dir = 'v' }
	else if(src == 'bottom') { var att = 'height'; var dir = 'v' }
	else if(src == 'left') { var att = 'width'; var dir = 'h'}
	else if(src == 'right') { var att = 'width'; var dir = 'h'}
	
	var objMeasure = get_em('content_'+tgt, att);
	var outerMeasure = get_outer_space(dir);
	var start_pos = floatRound(objMeasure + outerMeasure, 2);
	var orig = get_em('content_'+tgt, src);
	/*div.style[src] = '-'+start_pos+'em';*/

	var done = false;
	var pos = orig;
	var max = start_pos - (start_pos*2);
	var speed = 0.8;
	var delay = 0;
	var delayAdd = 30;
	while(done == false) {
		if(pos > max) {
			animationList[animationList.length] = setTimeout('move_new(\'content_'+tgt+'\',\''+src+'\','+pos+')',delay);
		} else {
		 	done = true;
		 	setTimeout('hide_contents()', delay);
		 	animationList[animationList.length] = setTimeout('move_new(\'content_'+tgt+'\',\''+src+'\','+orig+')',delay);
		 	setTimeout('slide_active = false', delay);

		} 
		pos = floatRound(pos - speed, 1);
		delay += delayAdd;
	}

	var div = document.getElementById('extend_'+tgt);
	var orig = get_em('extend_'+tgt, att);
	/*div.style[att] = '0em';*/
	
	var prevdelay = delay;
	/*var delay = ((start_pos + start_pos*2) / speed) * 5;*/
	var delay = 0;
	var done = false;	
	var pos = orig;
	var max = 0.0;
	var speed = 0.8;
	var delayAdd = 30;
	while(done == false) {
		if(pos > max) {
			animationList[animationList.length] = setTimeout('move_new(\'extend_'+tgt+'\',\''+att+'\','+pos+')',delay);
		} else {
		 	done = true;
		 	animationList[animationList.length] = setTimeout('move_new(\'extend_'+tgt+'\',\''+att+'\','+orig+')',prevdelay);
		} 
		pos = floatRound(pos - speed, 1);
		delay += delayAdd;
	}
	
}

function show_content(tgt) {
	if(slide_active == true)
		return;
	if(document.getElementById('content_'+tgt) != undefined) {
		if(document.getElementById('content_'+tgt).style.display != 'block') {
			hide_contents();
			document.getElementById('content_'+tgt).style.display = 'block';
			/* document.getElementById('extend_'+tgt).style.display = 'block'; */
			init_move_by_time(tgt, boxdirs[tgt], 'in');
			/*if(tgt != 'insight')
				fix_height(tgt);*/
		} else {
			init_move_by_time(tgt, boxdirs[tgt], 'out');
			if(tgt == 'portfolio' && document.getElementById('content_portfolio_details').style.display == 'block') {
				init_move_by_time('portfolio_details', boxdirs[tgt], 'out');	
			}
		}
	}
}

function hide_contents() {
	for(var i=0; i<boxes.length; i++) {
		document.getElementById('content_'+boxes[i]).style.display = 'none';
		document.getElementById('extend_'+boxes[i]).style.display = 'none';	
	}	
}
function add_content(tgt) {
	if(slide_active == true)
		return;
	if(document.getElementById('content_'+tgt) != undefined) {
		if(document.getElementById('content_'+tgt).style.display != 'block') {
			document.getElementById('content_'+tgt).style.display = 'block';
			/*document.getElementById('extend_'+tgt).style.display = 'block';*/
			init_move_by_time(tgt, boxdirs[tgt], 'in');
		}
	}
}

/* Navigation Functions */

function nav_deactivate() {
	for(var i=0; i<nav.length; i++) {
		document.getElementById('nav_'+nav[i]).setAttribute('class','');	
	}
}
function nav_activate(tgt) {
	if(document.getElementById('nav_'+tgt)) { document.getElementById('nav_'+tgt).setAttribute('class','active'); }
}
function nav_select(tgt) {
	nav_deactivate();
	nav_activate(tgt);
	show_content(tgt);
}
function hover_in(tgt) {
	document.getElementById('hover'+tgt).style.display = 'block';	
}
function hover_out(tgt) {
	document.getElementById('hover'+tgt).style.display = 'none';	
}

function mark_select(tgt, subtgt) {
	var navDiv = document.getElementById('content_portfolio');

	if (navDiv) {
		// Get all children of node
		var children = navDiv.childNodes;               
	
		var ni = 0;
		
		// Loop through the children
		for(var c=0; c < children.length; c++) {
			if(children[c].getAttribute == undefined)
				continue;
			if(children[c].getAttribute('class') == 'header')
				continue;

			if(ni == tgt)
				children[c].setAttribute('class','a');
			else
				children[c].setAttribute('class','i');
			/*if(children[c].style) {
				children[c].style.display = 'none';
			}*/
			ni++;
		}
	}
	
	show_subnav(tgt); 
	mark_subnav(tgt,subtgt);
}

function show_subnav (tgt) {
	for(var i = 0; i < contents['portfolio'].length; i++) {
		if(document.getElementById('portfolio_sub_'+i)) {
			if(i == tgt) {
				document.getElementById('portfolio_sub_'+i).style.display = 'block';
			} else {
				document.getElementById('portfolio_sub_'+i).style.display = 'none';
			}
		} else {
			/* alert('Portfolio '+i+' hat keine Subnavigation'); */
		}
	}
}

function mark_subnav (tgt, subtgt) {
	var subNavDiv = document.getElementById('portfolio_sub_'+tgt);

	if (subNavDiv) {
		// Get all children of node
		var children = subNavDiv.childNodes;
	
		var ni = 0;
		
		// Loop through the children
		for(var c=0; c < children.length; c++) {
			if(children[c].getAttribute('class') == undefined)
				continue;
			if(children[c].getAttribute('class') == 'header')
				continue;	
				
			if(ni == subtgt)
				children[c].setAttribute('class','a');
			else
				children[c].setAttribute('class','i');
			/*if(children[c].style) {
				children[c].style.display = 'none';
			}*/
			ni++;
		}
	}

}

/* Content functions */

function get_contents(category, client, page, val) {
	if(typeof client == 'number')
		return contents[category][client][page][val];
	else
		return contents[category][page][val];	
}

function get_portfolio(client, page) {
	var c = contents['portfolio'][client][page];
	
	if(c == undefined) return;
	/* Textinhalt zusammenstellen */
	var text = c['text'];
	if(c['logo'].length > 0)
		text = '<div class="logo"><img src="'+c['logo']+'" alt=""></div>' + text;
	
	/* Bilder zusammenstellen */
	if(c['images'].length > 0 && c['types'][0] == 'image') {
		var r = 0;
		var max = c['images'].length;
		/*while(max > 1 && r == 0)*/
			r = Math.floor(Math.random()*max);
		var image = '<img src="' + c['images'][r] + '" alt="' + c['name'] + '">';
	} else {
		var image = '<p>no image</p>';
	}
	
	var clickthroughs = '';
	if(c['thumbs'].length > 0) {
		for(var i = 0; i < c['thumbs'].length; i++) {
			if(c['types'][i] == 'image') {
				clickthroughs += '<a href="javascript:ct_show(\'' + c['images'][i] + '\')"><img src="' + c['thumbs'][i] + '" alt=""></a>';	
			}
			if(c['types'][i] == 'video') {
				clickthroughs += '<a href="javascript:ct_video('+client+','+page+','+i+')"><img src="' + c['thumbs'][i] + '" alt=""></a>';
			}
		}
		/*clickthroughs += '<a href="javascript:ct_show(\'' + c['images'][0] + '\')"><img src="' + c['thumbs'][0] + '" alt=""></a>';*/
		clickthroughs = '<div id="pf_ct_layer">' + clickthroughs + '</div>';
		if(c['thumbs'].length > 4) {
			var ct_left = '<a href="javascript:ct_move(\'left\')"><img src="img/image_left.gif" alt="&lt;"></a>';
			var ct_right = '<a href="javascript:ct_move(\'right\')"><img src="img/image_right.gif" alt="&gt;"></a>';
		} else {
			var ct_left = ''; var ct_right = '';
		}
	} else { var ct_left = ''; var ct_right = ''}
	
	/* Next Zusammenstellen */
	var next = '';
	if(page > 0)
		next += '<a href="javascript:get_portfolio('+client+','+(page-1)+')"><img src="img/arrow_portfolio_left.gif" alt="&larr;"></a>';
	if(contents['portfolio'][client][page+1])
		next += '<a href="javascript:get_portfolio('+client+','+(page+1)+')"><img src="img/arrow_portfolio_right.gif" alt="&rarr;"></a>';
	
		next = '' + next + '';
	
	insert_portfolio_data(text, image, clickthroughs, ct_left, ct_right, next);
	init_ct(c['thumbs'].length);
	
	fix_pf_height();
}

function ct_video(client, page, video) {
	var embed = contents['portfolio'][client][page]['embeds'][video];
	show_video(embed);
	
}

function insert_portfolio_data(text, image, clickthroughs, ct_left, ct_right, next) {
	/*document.getElementById('pf_next').innerHTML = next;*/
	document.getElementById('pf_text').innerHTML = text;
	document.getElementById('pf_image').innerHTML = image;
	document.getElementById('pf_ct_container').innerHTML = clickthroughs;
	document.getElementById('pf_ct_left').innerHTML = ct_left;
	document.getElementById('pf_ct_right').innerHTML = ct_right;
}

function get_insight(page) {
	if(!page)
		var page = 0;
	
	var c = contents['insight'][page];
	if(c == undefined) return;
	if(c['text'].length > 0)
		var text = c['text'];
	else
		var text = '';
	
	var next = '';
	if(page > 0)
		next += '<a href="javascript:get_insight('+(page-1)+')"><img src="img/image_left.gif" alt="&lt;"></a>';
	if(contents['insight'][page+1])
		next += '<a href="javascript:get_insight('+(page+1)+')"><img src="img/image_right.gif" alt="&gt;"></a>';
	
	if(page > 0 && contents['insight'][page+1])
		var both_next = true;
	else
		var both_next = false;

	insert_insight_data(text, next, both_next);
	/*simple_fix_height('insight');*/
	
}


function insert_insight_data(text, next, both_next) {
	document.getElementById('is_next').innerHTML = next;
	document.getElementById('is_text').innerHTML = text;
	/*if(both_next == true)
		document.getElementById('is_next').setAttribute('class', 'next2');
	else
		document.getElementById('is_next').setAttribute('class', 'next');*/
}

function get_team(page) {
	if(!page)
		var page = 0;
	
	var c = contents['team'][page];
	if(c == undefined) return;
	if(c['text'].length > 0)
		var text = c['text'];
	else
		var text = '';
	
	var next = '';
	if(page > 0)
		next += '<a href="javascript:get_team('+(page-1)+')"><img src="img/image_left.gif" alt="&lt;"></a>';
	if(contents['team'][page+1])
		next += '<a href="javascript:get_team('+(page+1)+')"><img src="img/image_right.gif" alt="&gt;"></a>';
	
	if(page > 0 && contents['team'][page+1])
		var both_next = true;
	else
		var both_next = false;
	
	insert_team_data(text, next, both_next);
	/*simple_fix_height('team');*/
}

function insert_team_data(text, next, both_next) {
	document.getElementById('tm_next').innerHTML = next;
	document.getElementById('tm_text').innerHTML = text;
	/*if(both_next == true)
		document.getElementById('tm_next').setAttribute('class', 'next2');
	else
		document.getElementById('tm_next').setAttribute('class', 'next');*/
}

function simple_fix_height(tgt) {
	if(BrowserDetect.browser == 'Explorer') {
		fix_height(tgt);
		return;	
	}
	if(boxdirs[tgt] != 'left' && boxdirs[tgt] != 'right')
		return;

	if(document.getElementById(tgt+'_bar')) {
		document.getElementById(tgt+'_bar').style.height = document.getElementById('content_'+tgt).style.minHeight;	
	}
	
	var ch = get_em('content_'+tgt, 'height');
	var eh = get_em('extend_'+tgt, 'height');
	var el = document.getElementById('content_'+tgt);
	var ch = window.getComputedStyle(el, null).getPropertyValue('height');
	document.getElementById('extend_'+tgt).style.height = ch;
	
	
}

function fix_height(tgt) {
	if(boxdirs[tgt] != 'left' && boxdirs[tgt] != 'right')
		return;

	if(document.getElementById(tgt+'_bar')) {
		document.getElementById(tgt+'_bar').style.height = document.getElementById('content_'+tgt).style.minHeight;	
	}

	var ch = get_em('content_'+tgt, 'height');
	var eh = get_em('extend_'+tgt, 'height');
	
	if(ch != eh) {
		if(BrowserDetect.browser == 'Safari' && tgt == 'insight')
			ch = ch * 1.1;
		if(BrowserDetect.browser == 'Safari' && tgt == 'team')
			ch = ch * 1.02;
		var ems = ch+'em'; 
		if(BrowserDetect.browser == 'Opera') 
			var ems = ch+' em';

		document.getElementById('extend_'+tgt).style.height = ems;
		if(BrowserDetect.browser == 'Opera' || BrowserDetect.browser == 'Explorer' || BrowserDetect.browser == 'Chrome') {
			ch = opera_accurate_extend(tgt);
			opera_h_fix('extend_'+tgt, ch);
		}
		
		if(document.getElementById(tgt+'_bar')) {
			document.getElementById(tgt+'_bar').style.height = ems;
			if(BrowserDetect.browser == 'Opera' || BrowserDetect.browser == 'Explorer')
				opera_h_fix(tgt+'_bar', ch);
		}
	}
	
	if(BrowserDetect.browser == 'Explorer' && document.getElementById('content_'+tgt).offsetHeight != document.getElementById('extend_'+tgt).offsetHeight) {
		while(document.getElementById('extend_'+tgt).offsetHeight > document.getElementById('content_'+tgt).offsetHeight) {
			var now = get_em('extend_'+tgt, 'height') - 0.05;
			document.getElementById('extend_'+tgt).style.height = now + 'em';
		}
		while(document.getElementById('extend_'+tgt).offsetHeight < document.getElementById('content_'+tgt).offsetHeight) {
			var now = get_em('extend_'+tgt, 'height') + 0.01;
			document.getElementById('extend_'+tgt).style.height = now + 'em';
		}
	}

}

function fix_pf_height() {
	document.getElementById('pf_img').style.height = document.getElementById('pf_img').style.minHeight;
	var th = get_em('pf_text', 'height');
	var ih = get_em('pf_img', 'height');
	if(th != ih) {
		if(BrowserDetect.browser == 'Explorer')
			th = floatRound(th * 1.5, 2);
		document.getElementById('pf_img').style.height	= th+'em';
	}
}

function opera_h_fix(id, h) {
	document.getElementById(id).style.height = h+'em';
}

function opera_accurate_extend(id) {
	var h = document.getElementById('content_'+id).offsetHeight;
	var fs = fallback_fontsizes();
	if(BrowserDetect.browser == 'Explorer')
		fs = fs / 0.99;
	return floatRound((h / fs), 2);
}

/* Clickthrough Functions */

function init_ct(count) {
	ct_images = 0;
	while(count>0) {
		ct_images++;
		count = count -3;
	}
	ct_current_pos = 0;
	/*document.getElementById('pf_ct_layer').style.width = (ct_width * ct_images) + 'em'; */
}
function ct_move(dir) {
	if(dir == 'left')
		ct_current_pos--;
	if(dir == 'right')
		ct_current_pos++;
	
	if(ct_current_pos < 0)
		ct_current_pos = ct_images;
	if(ct_current_pos > ct_images-1)
		ct_current_pos = 0;
	
	var mod = ct_current_pos * ct_width;
	/* alert('Position:' + ct_current_pos + ', EM: ' + mod);*/
	document.getElementById('pf_ct_layer').style.marginLeft =  '-' + mod + 'em';
}
function ct_show(url) {
	document.getElementById('pf_image').innerHTML = '<img src="'+url+'" alt="">';
}
/* Video Functions */

function close_video() {
	document.getElementById('video_background').style.display = 'none';
	document.getElementById('video_container').style.display = 'none';	
}
/* Other Functions */

function debug_info() {
	var w = bodyWidth();
	var h = bodyHeight();
	document.getElementById('debuginfo').innerHTML = '[ debug info ] Anzeigebereich: ' + w + '*' + h + ' | Conf: ' + debug_active;
}

function debug_getSize(id) {
	var w = document.getElementById(id).offsetWidth;
	var h = document.getElementById(id).offsetHeight;
	alert('Eigenschaften von ' + id + '\n' + 'Breite: ' + w + '\n' + 'Höhe ' + h);
}

function newWindow(url) {
 // Change "_blank" to something like "newWindow" to load all links in the same new window
 var newWindow = window.open(url, '_blank');
 newWindow.focus();
 }

function clearAllAnimations(){  
	for(key in animationList ){
		clearTimeout(animationList[key]);  
	}
	animationList.length = 0;  
}

/* Video Funktionen */

function show_video(embed) {
	document.getElementById('embed_code').innerHTML = embed;
	document.getElementById('video_container').style.display = 'block';
	document.getElementById('video_background').style.display = 'block';	
}

function close_video() {
	document.getElementById('embed_code').innerHTML = '';
	document.getElementById('video_container').style.display = 'none';
	document.getElementById('video_background').style.display = 'none';	
}

var debug_active = '';
var animationList = new Array();
var resize_active = false;