function cm_is_child_of(elem,parent_elem) {
	var t_elem = elem;
	while(t_elem != undefined && t_elem != null) {
		if(t_elem == parent_elem) {
			return true;
		}
		t_elem = t_elem.parentNode;
	}
	return false;
}

//popup - steuerung
function open_overlay_popup(p_url,p_width,p_height) {
	$('overlay_popup_container').style.display = 'block';
	var t_container_size = $('overlay_popup_container').getDimensions();
	var t_top = (t_container_size['height'] / 2) - (p_height / 2);
	var t_left = (t_container_size['width'] / 2) - (p_width / 2);
	$('overlay_popup_window').style.top = t_top+'px';
	$('overlay_popup_window').style.left = t_left+'px';
	$('overlay_popup_window').style.width = p_width+'px';
	$('overlay_popup_window').style.height = (p_height+32)+'px';
	$('overlay_popup_frame').style.width = p_width+'px';
	$('overlay_popup_frame').style.height = p_height+'px';
	$('overlay_popup_frame').src = p_url;
	Effect.Appear('overlay_popup_shadow', {duration:0.5,from:0.0, to:0.4});
	Effect.Appear('overlay_popup_window', {duration:0.5,from:0.0, to:1.0});
}
function close_overlay_popup() {
	Effect.Fade('overlay_popup_shadow', {duration:0.5,from:0.4, to:0});
	Effect.Fade('overlay_popup_window', {duration:0.5,from:1, to:0});
	setTimeout('$(\'overlay_popup_container\').style.display = \'none\'',600);
}

//Event listener für die wrapper-größenanpassung
if (window.attachEvent) {
	//IE
	window.attachEvent('onload', communiacs_resize_content);
	window.attachEvent("onresize", communiacs_resize_content);
}
else if(window.addEventListener) {
	//Firefox
	document.addEventListener("DOMContentLoaded", communiacs_resize_content, false);
	window.addEventListener("resize", communiacs_resize_content, false);
}
else {
	var onload_old = window.onload;
	window.onload = function() {
		if(onload_old) {
			onload_old();
		}
		communiacs_resize_content();
	}
	var onresize_old = document.body.onresize;
	document.body.onresize = function() {
		if(onresize_old) {
			onresize_old();
		}
		communiacs_resize_content();
	}
}

var t_blindStates = new Hash();

function communiacs_menu_collapse(p_elem, p_collapse) {
	if(p_collapse) {
		if(t_blindStates.get(p_elem) == undefined || !t_blindStates.get(p_elem)) {
			t_blindStates.set(p_elem,true);
			Effect.BlindDown(p_elem,{duration:0.3, afterFinish:function(){t_blindStates.set(p_elem,false)}});
		}
	}
	else {
		if(t_blindStates.get(p_elem) == undefined || !t_blindStates.get(p_elem)) {
			t_blindStates.set(p_elem,true);
			Effect.BlindUp(p_elem,{duration:0.3, afterFinish:function(){t_blindStates.set(p_elem,false)}});
		}
	}
}

//Größenanpassung für hintergründe
var t_old_wrapper_height = 0;
function communiacs_resize_content() {
	if(document.body.className.indexOf('cms-home') >= 0 && $('home_back')) {
		$('main_back_bottom').style.top = ($('home_back').offsetTop + $('home_back').offsetHeight) + 'px';
	}
	else {
		t_wrapper_height = $('wrapper').offsetHeight;
		if(t_old_wrapper_height != t_wrapper_height) {
			t_old_wrapper_height = t_wrapper_height;
			var t_top = t_wrapper_height - $('main_back_bottom').offsetHeight;
			$('main_back_bottom').style.top = t_top + 'px';
		}
		setTimeout("communiacs_resize_content()",100);
	}
}

var cm_switch_tab_last = '';
function cm_switch_tab(p_elem) {
	//neu gewählten tab namentlich ermitteln (aus der ID, hinter '__')
	if(p_elem.id.indexOf('__') < 0) { //name nicht zu ermitteln
		var t_tab = '';
	}
	else {
		var t_tab = p_elem.id.substr(p_elem.id.indexOf('__') + 2);
	}
	
	//prüfen, ob ein anderer tab gewählt wurde, als der aktuell aktivierte
	if(t_tab != cm_switch_tab_last) {
		//letzten gewählten tab deaktivieren
		if(cm_switch_tab_last != '') {
			$('cm_header_tab__' + cm_switch_tab_last).className = $('cm_header_tab__' + cm_switch_tab_last).className.replace(/cm_header_tab_active/g, '');
			$('cm_header_content_top_' + cm_switch_tab_last).style.display = 'none';
			$('cm_header_box_' + cm_switch_tab_last).style.display = 'none';
		}
		
		//neu gewählten tab zwischenspeichern
		cm_switch_tab_last = t_tab;
		
		//neu gewählten tab aktivieren
		if(cm_switch_tab_last != '') {
			$('cm_header_tab__' + cm_switch_tab_last).className += ' cm_header_tab_active';
			$('cm_header_content_top_' + cm_switch_tab_last).style.display = 'block';
			$('cm_header_box_' + cm_switch_tab_last).style.display = 'block';
		}
	}
}

function cm_toggle(p_event, p_elem, p_state, p_ignore_target) {
	var t_target_elem = (p_event.relatedTarget || p_event.toElement);
	if((!p_ignore_target || !cm_is_child_of(t_target_elem, $(p_ignore_target))) && p_elem) {
		if(p_state || p_elem.style.display != 'block') {
			p_elem.style.display = 'block';
		}
		else if(!p_state || p_elem.style.display == 'block') {
			p_elem.style.display = 'none';
		}
	}
}


/*** Slider für Homepage ***/
var cm_home_slide_images = new Array();
var cm_home_slide_index = 0;
function cm_home_slide_init() {
	var t_children = $('home_box_slide_container').getElementsByTagName('img');
	for(var i = 0; i < t_children.length; i++) {
		if(t_children[i].parentNode.nodeName.toLowerCase() == 'a') {
			cm_home_slide_images[cm_home_slide_images.length] = t_children[i].parentNode;
		}
		else {
			cm_home_slide_images[cm_home_slide_images.length] = t_children[i];
		}
	}
	for(var i = 0; i < cm_home_slide_images.length; i++) {
		if(i == cm_home_slide_index) {
			cm_home_slide_images[i].style.display = 'block';
		}
		else {
			cm_home_slide_images[i].style.display = 'none';
		}
	}
}

function cm_home_slide_prev() {
	var t_old_index = cm_home_slide_index;
	if(cm_home_slide_images.length > 0) {
		cm_home_slide_index--;
		if(cm_home_slide_index < 0) {
			cm_home_slide_index = cm_home_slide_images.length - 1;
		}
		cm_home_slide(t_old_index, cm_home_slide_index, -1);
	}
}

function cm_home_slide_next() {
	var t_old_index = cm_home_slide_index;
	if(cm_home_slide_images.length > 0) {
		cm_home_slide_index++;
		if(cm_home_slide_index >= cm_home_slide_images.length) {
			cm_home_slide_index = 0;
		}
	}
	cm_home_slide(t_old_index, cm_home_slide_index, 1);
}

var cm_home_slide_effect_1 = null;
var cm_home_slide_effect_2 = null;
function cm_home_slide(p_old_index, p_new_index, p_dir) {
	if(cm_home_slide_effect_1 != null) {
		cm_home_slide_effect_1.element.style.left = '0px';
		cm_home_slide_effect_1.cancel();
	}
	if(cm_home_slide_effect_2 != null) {
		cm_home_slide_effect_2.element.style.display = 'none';
		cm_home_slide_effect_2.cancel();
	}
	cm_home_slide_images[p_new_index].style.display = 'block';
	cm_home_slide_images[p_old_index].style.zIndex = 8;
	cm_home_slide_images[p_new_index].style.zIndex = 9;
	if(p_dir >= 0) { // nach rechts
		cm_home_slide_images[p_old_index].style.left = '0px';
		cm_home_slide_images[p_new_index].style.left = $('home_box_slide_container').offsetWidth + 'px';
		cm_home_slide_effect_1 = new Effect.Move(cm_home_slide_images[p_new_index],{ x: 0, y: 0, mode: 'absolute', duration:0.5, afterFinish:function(){cm_home_slide_effect_1 = null} });
		cm_home_slide_effect_2 = new Effect.Move(cm_home_slide_images[p_old_index],{ x: 0-$('home_box_slide_container').offsetWidth, y: 0, mode: 'absolute', duration:0.5, afterFinish:function(){cm_home_slide_effect_2 = null} });
	}
	else { // nach links
		cm_home_slide_images[p_old_index].style.left = '0px';
		cm_home_slide_images[p_new_index].style.left = 0-$('home_box_slide_container').offsetWidth + 'px';
		cm_home_slide_effect_1 = new Effect.Move(cm_home_slide_images[p_new_index],{ x: 0, y: 0, mode: 'absolute', duration:0.5, afterFinish:function(){cm_home_slide_effect_1 = null} });
		cm_home_slide_effect_2 = new Effect.Move(cm_home_slide_images[p_old_index],{ x: $('home_box_slide_container').offsetWidth, y: 0, mode: 'absolute', duration:0.5, afterFinish:function(){cm_home_slide_effect_2 = null} });
	}
}






function cm_dynamic_teaser() {
	//alle img-tags fuer den teaser holen
	var t_children = $('cm_dynamic_teaser').getElementsByTagName('img');
	var t_images = new Array();
	//img-tags durchgehen und dem array zuweisen
	for(var i = 0; i < t_children.length; i++) {
		if(t_children[i].parentNode.nodeName.toLowerCase() == 'a') { //falls ein uebergeordnetes a-tag existiert wird dieses anstatt dem img-tag verwendet
			t_images[t_images.length] = t_children[i].parentNode;
		}
		else {
			t_images[t_images.length] = t_children[i];
		}
	}
	//zufallszahl von 0 bis (array-laenge - 1) ermitteln
	t_rnd = Math.round(Math.random() * (t_images.length - 1));
	//elemente ein-/ausblenden
	for(var i = 0; i < t_images.length; i++) {
		if(i == t_rnd) {
			t_images[i].style.display = 'block';
		}
		else {
			t_images[i].style.display = 'none';
		}
	}
}

