/*** WETTER-INFOS PER AJAX ABRUFEN ***/

function getLastTweet() {
	
	/*** AJAX-REQUEST ***/
	var xmlhttp = null;
	// Mozilla
	if (window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	xmlhttp.open("GET", '/fileadmin/templates/scripts/last-tweet.php', true);
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState != 4) {
			document.getElementById('twitter_box').innerHTML = 'Daten werden geladen ...';
		}
		if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			document.getElementById('twitter_box').innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(null);
	/*** AJAX-REQUEST ***/
}




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;
}

function _communiacs_show(element){
	element.className += " hover";
}

function _communiacs_hide(element){
	if(element.className == 'hover')
		element.className = '';
	else {
		element.className = element.className.replace(/ hover/g, "");
	}
}

function _communiacs_getDirectChildrenByTagName(p_source, p_tag) {
	var ret = new Array();
	for(var i = 0; i < p_source.childNodes.length; i++) {
		if(p_source.childNodes[i].nodeType == 1 && p_source.childNodes[i].nodeName.toLowerCase() == p_tag.toLowerCase()) {
			ret[ret.length] = p_source.childNodes[i];
		}
	}
	return ret;
}

function _communiacs_getElementsByTagAndClass(p_source, p_tag, p_class, p_direct_child) {
	var t_return = new Array();
	if(!p_direct_child) {
		var t_elements = p_source.getElementsByTagName(p_tag);
	}
	else {
		var t_elements = _communiacs_getDirectChildrenByTagName(p_source, p_tag);
	}
	for(var i = 0; i < t_elements.length; i++) {
		if(t_elements[i].className.indexOf(p_class) > -1) {
			t_return[t_return.length] = t_elements[i];
		}
	}
	return t_return;
}

function openPreviousLink(elem) {
	elem.parentNode.parentNode.getElementsByTagName('a')[0].onclick();
}





var cm_slider_images = new Array();
//var cm_slider_texts = new Array();
var cm_slider_status = 0;
var cm_slide_effect_1 = null;
var cm_slide_effect_2 = null;
var cm_slide_effect_11 = null;
var cm_slide_effect_12 = null;

function cm_slider_init() {
	if(_communiacs_getElementsByTagAndClass(document.body, 'div', 'fce_slider_frame').length > 0) {
		// Bildelemente holen
		cm_slider_images = _communiacs_getElementsByTagAndClass(document.body, 'div', 'fce_slider_image_item');
		//cm_slider_status = Math.round(Math.random() * (cm_slider_images.length - 1)); -> Zufallsanordnung
		for(var i = cm_slider_images.length - 1; i >= 0; i--) {
			if(i == cm_slider_status) {
				cm_slider_images[i].style.display = 'block';
			}
			else {
				cm_slider_images[i].style.display = 'none';
			}
		}
		// Textelemente holen
		/*cm_slider_texts = _communiacs_getElementsByTagAndClass(document.body, 'div', 'fce_slider_text_item');
		for(var i = cm_slider_texts.length - 1; i >= 0; i--) {
			if(i == cm_slider_status) {
				cm_slider_texts[i].style.display = 'block';
			}
			else {
				cm_slider_texts[i].style.display = 'none';
			}
		}*/
	}
}

function cm_slider_navigate(p_dir, p_index) {
	//if(cm_slider_images.length > 0 && cm_slider_texts.length > 0) {
	if(cm_slider_images.length > 0) {
		var t_status_old = cm_slider_status;
		if(p_dir == 0) {
			cm_slider_status = p_index;
			if(t_status_old > cm_slider_status) {
				p_dir = -1;
			}
			else {
				p_dir = 1;
			}
		}
		else {
			cm_slider_status += parseInt(p_dir);
		}
		if(cm_slider_status < 0) {
			cm_slider_status = cm_slider_images.length - 1;
		}
		if(cm_slider_status >= cm_slider_images.length) {
			cm_slider_status = 0;
		}
		if(cm_slider_status != t_status_old) {
			if(cm_slide_effect_1 != null) {
				cm_slide_effect_1.element.style.display = 'block';
				cm_slide_effect_1.element.setOpacity(1);
				cm_slide_effect_1.cancel();
			}
			if(cm_slide_effect_2 != null) {
				cm_slide_effect_2.element.style.display = 'none';
				cm_slide_effect_2.cancel();
			}
			if(cm_slide_effect_11 != null) {
				cm_slide_effect_11.element.style.display = 'block';
				cm_slide_effect_11.element.setOpacity(1);
				cm_slide_effect_11.cancel();
			}
			if(cm_slide_effect_12 != null) {
				cm_slide_effect_12.element.style.display = 'none';
				cm_slide_effect_12.cancel();
			}
			if(p_dir < 0) {
				cm_slide_effect_2 = new Effect.Fade(cm_slider_images[t_status_old],{ duration:0.5, afterFinish:function(){cm_slide_effect_2 = null}});
				//cm_slide_effect_12 = new Effect.Fade(cm_slider_texts[t_status_old],{ duration:0.5, afterFinish:function(){cm_slide_effect_12 = null}});
			}
			else {
				cm_slide_effect_2 = new Effect.Fade(cm_slider_images[t_status_old],{ duration:0.5, afterFinish:function(){cm_slide_effect_2 = null}});
				//cm_slide_effect_12 = new Effect.Fade(cm_slider_texts[t_status_old],{ duration:0.5, afterFinish:function(){cm_slide_effect_12 = null}});
			}
			cm_slide_effect_1 = new Effect.Appear(cm_slider_images[cm_slider_status],{ duration:0.5, afterFinish:function(){cm_slide_effect_1 = null}});
			//cm_slide_effect_11 = new Effect.Appear(cm_slider_texts[cm_slider_status],{ duration:0.5, afterFinish:function(){cm_slide_effect_11 = null}});
		}
	}
}

function cm_slider_prev(p_elem) {
	cm_slider_navigate(-1);
}

function cm_slider_next(p_elem) {
	cm_slider_navigate(1);
}

function cm_onload_handler() {
	cm_slider_init();
	cm_browser_os_switch();
	communiacs_dynamic_height_home();
	cm_accordion_init();
	cm_mainteaser_init();
	cm_init_ip_slider();
	cm_init_druck_slider();
	
	//fix für onselectstart wegen xhtml-konformitaet
	if(window.attachEvent) {
		if(document.getElementById('jumpmenu_toggle_btn')) {
			document.getElementById('jumpmenu_toggle_btn').attachEvent('onselectstart', function() {return false;});
		}
		var t_prevs = _communiacs_getElementsByTagAndClass(document.getElementById('content'), 'div', 'fce_slider_prev');
		var t_nexts = _communiacs_getElementsByTagAndClass(document.body, 'div', 'fce_slider_next');
		var i = 0;
		for(i = 0; i < t_prevs.length; i++) {
			t_prevs[i].attachEvent('onselectstart', function() {return false;});
		}
		for(i = 0; i < t_nexts.length; i++) {
			t_nexts[i].attachEvent('onselectstart', function() {return false;});
		}
	}
}

if (document.addEventListener) {
  document.addEventListener("DOMContentLoaded", cm_onload_handler, false);
}
else if(window.attachEvent) {
	window.attachEvent('onload', cm_onload_handler);
}
else {
	var onload_old = window.onload;
	window.onload = function() {
		if(onload_old) {
			onload_old();
		}
		cm_onload_handler();
	}
}



function cm_browser_os_switch() {
	var t_os = '';
	var t_browser = '';
	var t_browser_version = '';
	var t_engine = '';
	
	// check for OS
	if(navigator.userAgent.toLowerCase().indexOf('windows') >= 0) t_os = 'Win';
	if(navigator.userAgent.toLowerCase().indexOf('macintosh') >= 0) t_os = 'Mac';
	if(navigator.userAgent.toLowerCase().indexOf('iphone') >= 0) t_os = 'iPhone'; // Muss hinter der Abfrage für Mac stehen !!!
	
	// Check for Browser and Version
	if(navigator.userAgent.toLowerCase().indexOf('msie') >= 0) {
		t_browser = 'IE';
		var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
		if(IE6) { t_browser_version = '6'; }
		else if(navigator.userAgent.toLowerCase().indexOf('msie 7') >= 0) { t_browser_version = '7'; }
		else if(navigator.userAgent.toLowerCase().indexOf('msie 8') >= 0) { t_browser_version = '8'; }
	}
	if(navigator.userAgent.toLowerCase().indexOf('firefox') >= 0) t_browser = 'Firefox';
	if(navigator.userAgent.toLowerCase().indexOf('opera') >= 0) t_browser = 'Opera';
	if(navigator.userAgent.toLowerCase().indexOf('safari') >= 0) t_browser = 'Safari';
	if(navigator.userAgent.toLowerCase().indexOf('chrome') >= 0) t_browser = 'Chrome'; // Muss hinter der Abfrage für Safari stehen !!!
	
	//Check for Browser-Engine
	if(t_browser == 'IE') t_engine = 'IE'; // IE
	if(navigator.userAgent.toLowerCase().indexOf('presto') >= 0) t_engine = 'Presto'; // Opera
	if(navigator.userAgent.toLowerCase().indexOf('gecko') >= 0) t_engine = 'Gecko'; // Firefox
	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0) t_engine = 'WebKit'; // Safari, Chrome (Muss hinter der Abfrage für Gecko stehen !!!)
	
	// ########## Weichenspezifischer-code ########## //
	
}



/*** JUMPMENU ***/

var cm_jumpmenu_effect = null;
var cm_jumpmenu_state = 'closed';
function cm_jumpmenu_toggle(p_event1, p_event2) {
	var t_event = (p_event1 || p_event2);
	if(cm_jumpmenu_state == 'closed') {
//		document.getElementById('jumpmenu_list').style.display = 'block';
		cm_jumpmenu_state = 'opened';
		if(cm_jumpmenu_effect != null) {
			cm_jumpmenu_effect.cancel();
		}
		cm_jumpmenu_effect = new Effect.BlindDown($('jumpmenu_list'), {duration: 0.2, afterFinish: function() {cm_jumpmenu_effect = null}});
		document.getElementById('jumpmenu_toggle_btn').style.left = '208px';
		document.getElementById('jumpmenu_toggle_btn').style.width = '22px';
	}
	else {
//		document.getElementById('jumpmenu_list').style.display = 'none';
		cm_jumpmenu_state = 'closed';
		if(cm_jumpmenu_effect != null) {
			cm_jumpmenu_effect.cancel();
		}
		cm_jumpmenu_effect = new Effect.BlindUp($('jumpmenu_list'), {duration: 0.2, afterFinish: function() {cm_jumpmenu_effect = null}});
		document.getElementById('jumpmenu_toggle_btn').style.left = '0px';
		document.getElementById('jumpmenu_toggle_btn').style.width = '230px';
	}
}
function cm_jumpmenu_toggle_off(p_event) {
	if(cm_jumpmenu_state == 'opened' && (p_event.target || p_event.srcElement).id != 'jumpmenu_toggle_btn') {
//		document.getElementById('jumpmenu_list').style.display = 'none';
		cm_jumpmenu_state = 'closed';
		if(cm_jumpmenu_effect != null) {
			cm_jumpmenu_effect.cancel();
		}
		cm_jumpmenu_effect = new Effect.BlindUp($('jumpmenu_list'), {duration: 0.2, afterFinish: function() {cm_jumpmenu_effect = null}});
		document.getElementById('jumpmenu_toggle_btn').style.left = '0px';
		document.getElementById('jumpmenu_toggle_btn').style.width = '230px';
	}
}


if (window.addEventListener) {
	window.addEventListener("click", cm_jumpmenu_toggle_off, false);
}
else if(document.attachEvent) {
	document.attachEvent('onclick', cm_jumpmenu_toggle_off);
}
else {
	var onclick_old = window.onclick;
	window.onclick = function() {
		if(onclick_old) {
			onclick_old();
		}
		cm_jumpmenu_toggle_off();
	}
}



/*** Hoehenanpassung fuer 33er-einteiler ***/

function communiacs_dynamic_height_home() {
	var t_tags = _communiacs_getElementsByTagAndClass(document.getElementById('content'), 'div', 'fce_33_33_33');
	for(var i = 0; i < t_tags.length; i++) {
		var t_box1 = _communiacs_getElementsByTagAndClass(t_tags[i], 'div', 'fce_33_33_33_1')[0];
		var t_box2 = _communiacs_getElementsByTagAndClass(t_tags[i], 'div', 'fce_33_33_33_2')[0];
		var t_box3 = _communiacs_getElementsByTagAndClass(t_tags[i], 'div', 'fce_33_33_33_3')[0];
		if(t_box1 && t_box2 && t_box3) {
			if(_communiacs_getElementsByTagAndClass(t_box1, 'div', 'layout_borders').length == 1 && _communiacs_getElementsByTagAndClass(t_box2, 'div', 'layout_borders').length == 1 && _communiacs_getElementsByTagAndClass(t_box3, 'div', 'layout_borders').length == 1) {
				var t_box1_height = t_box1.offsetHeight;
				var t_box2_height = t_box2.offsetHeight;
				var t_box3_height = t_box3.offsetHeight;
				var t_max = (t_box1_height > t_box2_height ? (t_box1_height > t_box3_height ? t_box1_height : t_box3_height) : (t_box2_height > t_box3_height ? t_box2_height : t_box3_height));
				if(window.getComputedStyle) {
					var t_padBot = parseInt(window.getComputedStyle(_communiacs_getElementsByTagAndClass(t_box1, 'div', 'layout_borders')[0],"").getPropertyValue('padding-bottom'));
				}
				else {
					var t_padBot = parseInt(_communiacs_getElementsByTagAndClass(t_box1, 'div', 'layout_borders')[0].currentStyle.paddingBottom);
				}
				_communiacs_getElementsByTagAndClass(t_box1, 'div', 'layout_borders')[0].style.paddingBottom = (t_padBot + (t_max - t_box1_height)) + 'px';
				_communiacs_getElementsByTagAndClass(t_box2, 'div', 'layout_borders')[0].style.paddingBottom = (t_padBot + (t_max - t_box2_height)) + 'px';
				_communiacs_getElementsByTagAndClass(t_box3, 'div', 'layout_borders')[0].style.paddingBottom = (t_padBot + (t_max - t_box3_height)) + 'px';
			}
		}
	}
}



/*** Mainteaser ***/

var cm_mainteaser_hovered = false;
var cm_mainteaser_effect_morph = null;
var cm_mainteaser_effect_fade = null;

function cm_mainteaser_init() {
	if($('fce_mainteaser_image')) {
		$('fce_mainteaser_image').style.width = '730px';
		$('fce_mainteaser_image').style.height = '397px';
		$('fce_mainteaser_image').style.left = '0px';
		$('fce_mainteaser_image').style.top = '18px';
	}
}

function cm_mainteaser_toggle(p_event, p_type) {
	
	var t_target = (p_event.relatedTarget || p_event.toElement);
	if(p_type == 'over' && !cm_mainteaser_hovered) {
		
		_communiacs_getElementsByTagAndClass(document.getElementById('content'), 'div', 'fce_mainteaser_plus')[0].style.display = 'none';
		
		cm_mainteaser_hovered = true;
		if(cm_mainteaser_effect_fade != null) {
			cm_mainteaser_effect_fade.cancel();
			cm_mainteaser_effect_fade = new Effect.Appear(
				'fce_mainteaser_content',
				{
					duration: 0.3,
					afterFinish: function() {
						cm_mainteaser_effect_fade = null;
					}
				}
			);
		}
		else {
			if(cm_mainteaser_effect_morph != null) {
				cm_mainteaser_effect_morph.cancel();
			}
			cm_mainteaser_effect_morph = new Effect.Morph(
				'fce_mainteaser_image',
				{	style: 'width:476px; height:258px; left:0px; top:36px;',
					duration: 0.4,
					afterFinish: function() {
						cm_mainteaser_effect_morph = null;
						cm_mainteaser_effect_fade = new Effect.Appear(
							'fce_mainteaser_content',
							{
								duration: 0.3,
								afterFinish: function() {
									cm_mainteaser_effect_fade = null;
								}
							}
						);
					}
				}
			);
		}
	}
	if(p_type == 'out' && !cm_is_child_of(t_target, $('fce_mainteaser_box'))) {
		cm_mainteaser_hovered = false;
		if(cm_mainteaser_effect_morph != null) {
			cm_mainteaser_effect_morph.cancel();
			cm_mainteaser_effect_morph = new Effect.Morph(
				'fce_mainteaser_image',
				{
					style: 'width:730px; height:397px; left:0px; top:18px;',
					duration: 0.4,
					afterFinish: function() {
						cm_mainteaser_effect_morph = null;
						_communiacs_getElementsByTagAndClass(document.getElementById('content'), 'div', 'fce_mainteaser_plus')[0].style.display = 'block';
					}
				}
			);
		}
		else {
			if(cm_mainteaser_effect_fade != null) {
				cm_mainteaser_effect_fade.cancel();
			}
			cm_mainteaser_effect_fade = new Effect.Fade(
				'fce_mainteaser_content',
				{
					duration: 0.3,
					afterFinish: function() {
						cm_mainteaser_effect_fade = null;
						cm_mainteaser_effect_morph = new Effect.Morph(
							'fce_mainteaser_image',
							{
								style: 'width:730px; height:397px; left:0px; top:18px;',
								duration: 0.4,
								afterFinish: function() {
									cm_mainteaser_effect_morph = null;
									_communiacs_getElementsByTagAndClass(document.getElementById('content'), 'div', 'fce_mainteaser_plus')[0].style.display = 'block';
								}
							}
						);
					}
				}
			);
		}
	}
}


/*** ACCORDION ***/

var cm_accordion_boxes = new Array();
var cm_accordion_index = -1; /*** keines anzeigen ****/
function cm_accordion_init() {
	cm_accordion_boxes = _communiacs_getElementsByTagAndClass(document.body, 'div', 'layout_accordion_box');
	for(var i = 0; i < cm_accordion_boxes.length; i++) {
		var t_body = _communiacs_getElementsByTagAndClass(cm_accordion_boxes[i], 'div', 'layout_accordion_body')[0];
		if(i == cm_accordion_index) {
			t_body.style.display = 'block';
			cm_accordion_boxes[i].className = cm_accordion_boxes[i].className.replace(/ cm_accordion_closed/g, '');
			cm_accordion_boxes[i].className += ' cm_accordion_open'
		}
		else {
			t_body.style.display = 'none';
			cm_accordion_boxes[i].className = cm_accordion_boxes[i].className.replace(/ cm_accordion_open/g, '');
			cm_accordion_boxes[i].className += ' cm_accordion_closed'
		}
	}
}

function cm_accordion_toggle(p_elem) {
	for(var i = 0; i < cm_accordion_boxes.length; i++) {
		var t_body = _communiacs_getElementsByTagAndClass(cm_accordion_boxes[i], 'div', 'layout_accordion_body')[0];
		if(p_elem.parentNode == cm_accordion_boxes[i]) {
			if(cm_accordion_index == i) {
				new Effect.BlindUp(t_body,{duration:0.3});
				cm_accordion_boxes[i].className = cm_accordion_boxes[i].className.replace(/ cm_accordion_open/g, '');
				cm_accordion_boxes[i].className += ' cm_accordion_closed'
				cm_accordion_index = -1;
			}
			else {
				new Effect.BlindDown(t_body,{duration:0.3});
				cm_accordion_boxes[i].className = cm_accordion_boxes[i].className.replace(/ cm_accordion_closed/g, '');
				cm_accordion_boxes[i].className += ' cm_accordion_open'
				cm_accordion_index = i;
			}
		}
		else {
			new Effect.BlindUp(t_body,{duration:0.3});
			cm_accordion_boxes[i].className = cm_accordion_boxes[i].className.replace(/ cm_accordion_open/g, '');
			cm_accordion_boxes[i].className += ' cm_accordion_closed'
		}
	}
}

/* iPhone Slider */
function cm_init_ip_slider() {
	if(jQuery('.portfolio_slider_wrapper').length) {
		jQuery('.portfolio_slider_prev').bind('click',function(){return false;});
		jQuery('.portfolio_slider_next').bind('click',function(){return false;});
		
		jQuery('.portfolio_slider_prev').bind('click',function(){cm_ip_slider_prev();});
		jQuery('.portfolio_slider_next').bind('click',function(){cm_ip_slider_next();});
		
		if(jQuery('.portfolio_slider_element_image').length < 2) {
			jQuery('.portfolio_slider_prev').css('display','none');
			jQuery('.portfolio_slider_next').css('display','none');
		}
		
		jQuery('.portfolio_slider_element_image:first').addClass('active').fadeIn(350);
	}
}

function cm_ip_slider_next() {
	if(jQuery('.portfolio_slider_element_image.active').next('.portfolio_slider_element_image').length) {
		jQuery('.portfolio_slider_element_image.active').removeClass('active').fadeOut(350).next('.portfolio_slider_element_image').addClass('active').fadeIn(350);
	}else{
		jQuery('.portfolio_slider_element_image.active').removeClass('active').fadeOut(350);
		jQuery('.portfolio_slider_element_image:first').addClass('active').fadeIn(350);
	}
}

function cm_ip_slider_prev() {
	if(jQuery('.portfolio_slider_element_image.active').prev('.portfolio_slider_element_image').length) {
		jQuery('.portfolio_slider_element_image.active').removeClass('active').fadeOut(350).prev('.portfolio_slider_element_image').addClass('active').fadeIn(350);
	}else{
		jQuery('.portfolio_slider_element_image.active').removeClass('active').fadeOut(350);
		jQuery('.portfolio_slider_element_image:last').addClass('active').fadeIn(350);
	}
}

/* Druck Slider */
function cm_init_druck_slider() {
	if(jQuery('.portfolio_druck_slider_wrapper').length) {
		jQuery('.portfolio_druck_slider_prev').bind('click',function(){return false;});
		jQuery('.portfolio_druck_slider_next').bind('click',function(){return false;});
		
		jQuery('.portfolio_druck_slider_prev').bind('click',function(){cm_druck_slider_prev();});
		jQuery('.portfolio_druck_slider_next').bind('click',function(){cm_druck_slider_next();});
		
		if(jQuery('.portfolio_druck_slider_element_image').length < 2) {
			jQuery('.portfolio_druck_slider_prev').css('display','none');
			jQuery('.portfolio_druck_slider_next').css('display','none');
		}
		
		jQuery('.portfolio_druck_slider_element_image:first').addClass('active').fadeIn(350);
	}
}

function cm_druck_slider_next() {
	if(jQuery('.portfolio_druck_slider_element_image.active').next('.portfolio_druck_slider_element_image').length) {
		jQuery('.portfolio_druck_slider_element_image.active').removeClass('active').fadeOut(350).next('.portfolio_druck_slider_element_image').addClass('active').fadeIn(350);
	}else{
		jQuery('.portfolio_druck_slider_element_image.active').removeClass('active').fadeOut(350);
		jQuery('.portfolio_druck_slider_element_image:first').addClass('active').fadeIn(350);
	}
}

function cm_druck_slider_prev() {
	if(jQuery('.portfolio_druck_slider_element_image.active').prev('.portfolio_druck_slider_element_image').length) {
		jQuery('.portfolio_druck_slider_element_image.active').removeClass('active').fadeOut(350).prev('.portfolio_druck_slider_element_image').addClass('active').fadeIn(350);
	}else{
		jQuery('.portfolio_druck_slider_element_image.active').removeClass('active').fadeOut(350);
		jQuery('.portfolio_druck_slider_element_image:last').addClass('active').fadeIn(350);
	}
}
