/* Implementiert eine include() Funktion in Javascript */
function include(file)
{
    var script = document.createElement('script');
    var type = document.createAttribute('type');
    type.nodeValue = 'text/javascript';
    script.setAttributeNode(type);
    var source = document.createAttribute('src');
    source.nodeValue = file;
    script.setAttributeNode(source);
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(script);
}

/**
 * Je nach Browser werden verschiedene Body-Objects zurückgegeben, dies wird hier abgefangen
 */
function getBody(w)
{
    return (w.document.compatMode && w.document.compatMode == "CSS1Compat") ? w.document.documentElement : w.document.body || null;
}


/* Browser ermitteln: Funktion liefert -1 wenn kein IE, ansonsten die Versionsnummer, z.b. 6.0 */
function getInternetExplorerVersion() {
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
    return rv;
}

/* Browserweiche */
function getBrowser() {
	if(getInternetExplorerVersion() == "7.0") document.write('<link rel="stylesheet" media="screen,projection" href="/fileadmin/templates/css/ie7fix.css" type="text/css" />');
}

/* ########################### */
/* Sliderscript für Startseite */
/* ########################### */
var slider_interval = 6000;				// Dauer zwischen den Ein- und Ausblendezeiten
var slider_animation_speed = 500;		// Dauer der Ein-/Ausblendezeit

var bgwidth = 460;						// Breite des im Hintergrund liegenden Layers - Im Normalfall so groß wie die Sliderelemente
var bgheight = 263;						// Höhe des im Hintergrund liegenden Layers - Im Normalfall so groß wie die Sliderelemente
var bgcolor = '#ffffff';				// Farbe des im Hintergrund liegenden Layers

var autoInterval;

function initSlider() {
	if(jQuery('#imageslider').length) {
		jQuery('.slideritem').each(function(index) {
			jQuery(this).attr('id','slideritem-'+index);
			jQuery(this).children('.slideritemcontent').attr('id','slideritemcontent-'+index);
			jQuery(this).children('.slideritemimage').attr('id','slideritemimage-'+index);
			
			jQuery(this).children('.slideritemcontent').find('a').click(function() {
				return false;
			});
			jQuery(this).children('.slideritemcontent').find('a').click(function() {
				jumpToSlider(index);
			});
		});
		
		jQuery('#imageslider').append('<div id="slideritembackground"></div>');
		jQuery('#slideritembackground').css('width',bgwidth);
		jQuery('#slideritembackground').css('height',bgheight);
		jQuery('#slideritembackground').css('background-color',bgcolor);
		
		jumpToSliderAutorotate(0);
		autoInterval = window.setInterval('autoRotate()',slider_interval);
	}
}

/* Die normale jumpTo Funktion - unterbricht das Interval, damit beim wählen eines Punktes die Animation nicht gleich per Intervalfunktion wieder gewechselt wird */
function jumpToSlider(index) {
	window.clearInterval(autoInterval);
	
	/* Slider-Item */
	jQuery('.slideritem').removeClass('active');
	jQuery('#slideritem-'+index).addClass('active');
	
	/* Slider-Bilder */
	jQuery('.slideritemimage').each(function() {
		jQuery(this).fadeOut(slider_animation_speed);
	});
	jQuery('#slideritemimage-'+index).fadeIn(slider_animation_speed);
	
	autoInterval = window.setInterval('autoRotate()',slider_interval);
}

/* jumpTo Funktion ohne Unterbrechung des Intervals, wird vom Auto-Rotate verwendet */
function jumpToSliderAutorotate(index) {
	/* Slider-Item */
	jQuery('.slideritem').removeClass('active');
	jQuery('#slideritem-'+index).addClass('active');
	
	/* Slider-Bilder */
	jQuery('.slideritemimage').each(function() {
		jQuery(this).fadeOut(slider_animation_speed);
	});
	jQuery('#slideritemimage-'+index).fadeIn(slider_animation_speed);
}

/* Rotiert die Einträge alle x Sekunden */
function autoRotate() {
	var items_total = jQuery('.slideritem').size();
	var current_item_index_id = jQuery('.slideritem.active').attr('id');
	var current_item_index = parseInt(current_item_index_id.split('-')[1]);
	
	if(items_total == current_item_index+1) {
		var nextslider = 0;
	}else{
		var nextslider = current_item_index+1;
	}
	
	jumpToSliderAutorotate(nextslider);
}
/* ################# */
/* Sliderscript ENDE */
/* ################# */

/* Macht Untermenüs klappbar */
function accordionMenu() {
	/*jQuery("#mainmenu").find("li").find("ul").addClass("inactive");
	jQuery("#mainmenu").children("ul").children("li").children("a").each(function() {
		if(!jQuery(this).parent().hasClass("notoggle")) {
			jQuery(this).click(function() {
				jQuery("#mainmenu").find("ul.activated").removeClass("activated").addClass("inactive").toggle('blind',300);
				jQuery(this).parent().find("ul").removeClass("inactive").addClass("activated");
				jQuery(this).parent().find("ul").toggle('blind',300);
				return false;
			});
		}
	});
	if(jQuery("#mainmenu ul li ul").find("li.active").length) {
		jQuery("#mainmenu ul li ul").find("li.active").parent().prev("a").click();
	}*/
}

/* Gibt dem ersten news_latest_item eine zusätzliche Klasse */
function fixNewsLatest() {
	jQuery("div.news_latest_item:first-child").addClass("first");
}

/* Gibt dem ersten und letzten Listen-Element von tt_news eine Klasse */
function fixNewsList() {
	jQuery("div.news_list_item:first-child").addClass("first");
	jQuery("div.news_list_item:last-child").addClass("last");
}

/* Klapper-Script */
function initKlapper() {
	jQuery(".klapper_content").each(function() {
		var acth = jQuery(this).height();
		jQuery(this).addClass("origheight-"+acth).css("height",0).css("overflow","hidden");
	});
	
	jQuery(".klapper_title").click(function() {
		if(jQuery(this).hasClass("active")) {
			jQuery(this).removeClass("active").next(".klapper_content").animate({height:0},{duration:400, queue:false});
		}else{
			var obj_class = jQuery(this).next(".klapper_content").attr("class");
			var origh = parseInt(obj_class.split("-")[1]) + 30;
			
			jQuery(this).addClass("active").next(".klapper_content").animate({height:origh},{duration:400, queue:false});
		}
	});
}

/*************** Eventlisterner *******************/
/*************** Eventlisterner *******************/
/*************** Eventlisterner *******************/

if (window.addEventListener) {
	window.addEventListener("click", _cm_onclick_handler, false);
	document.addEventListener("DOMContentLoaded", _cm_onload_handler, false);
	window.addEventListener("resize", _cm_onresize_handler, false);
	window.addEventListener("keyup", _cm_onkeyup_handler, false);
}
else if(document.attachEvent) {
	document.attachEvent('onclick', _cm_onclick_handler);
	window.attachEvent('onload', _cm_onload_handler);
	window.attachEvent('onresize', _cm_onresize_handler);
	document.attachEvent('onkeyup', _cm_onkeyup_handler);
}
else {
	var onclick_old = window.onclick;
	window.onclick = function() {
		if(onclick_old) {
			onclick_old();
		}
		lang_selector_toggle_off();
	}
	var onload_old = window.onload;
	window.onload = function() {
		if(onload_old) {
			onload_old();
		}
		_cm_onload_handler();
	}
	var onresize_old = document.body.onresize;
	document.body.onresize = function() {
		if(onresize_old) {
			onresize_old();
		}
		communiacs_resize_background();
	}
}

function _cm_onclick_handler() {
	
}

function _cm_onload_handler() {
	initSlider();
	initKlapper();
	accordionMenu();
	fixNewsLatest();
	fixNewsList();
}

function _cm_onresize_handler() {
	
}

function _cm_onkeyup_handler() {
	
}
