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

/* Communiacs TagAndClass Selektor */
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;
}


/* Richtet den Footer immer unten aus */
function setBottom() {
	var hheader;
	var hnavi;
	var hcontent;
	var hbottom;
	var hbrowser;
	var helements;
	var hdif;
	
	hheader = document.getElementById("header").offsetHeight;
	hnavi = document.getElementById("mainmenu").offsetHeight;
	hcontent = document.getElementById("content-wrapper").offsetHeight;
	hbottom = document.getElementById("footer").offsetHeight;
	hbrowser = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight);
	helements = hheader+hnavi+hcontent+hbottom;
	hdif = hbrowser-helements;
	
	if(hdif >= 0) {
		document.getElementById("footer").style.margin = hdif+"px 0 0 0";
	}
}

/* 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);
}

/* Browserweiche */
function getBrowser() {
	if(getInternetExplorerVersion() == "6.0") document.write('<link rel="stylesheet" media="screen,projection" href="fileadmin/templates/css/iefix.css" type="text/css" />');
	if(getInternetExplorerVersion() == "6.0") include('fileadmin/templates/js/iepngfix/iepngfix_tilebg.js');
	if(getInternetExplorerVersion() == "7.0") document.write('<link rel="stylesheet" media="screen,projection" href="fileadmin/templates/css/ie7fix.css" type="text/css" />');
	if(getInternetExplorerVersion() == "8.0") document.write('<link rel="stylesheet" media="screen,projection" href="fileadmin/templates/css/ie8fix.css" type="text/css" />');
	if(navigator.appVersion.indexOf("Chrome") != -1) document.write('<link rel="stylesheet" media="screen,projection" href="fileadmin/templates/css/chromefix.css" type="text/css" />');
}

/* Styled das letzte Listenelement in der News-Liste */
function styleLastNewsListElement() {
	if(_communiacs_getElementsByTagAndClass(document.body, 'div', 'news_list_item').length != 0) {
		var elem = _communiacs_getElementsByTagAndClass(document.body, 'div', 'news_list_item');
		elem[elem.length-1].style.background = "none";
		elem[elem.length-1].style.margin = "0";
		elem[elem.length-1].style.padding = "0";
	}
}

/* Korrigiert die Textabstände der News-List-Einträge wenn kein Bild hinterlegt wurde */
function styleImageEmptyNewsListElements() {
	if(_communiacs_getElementsByTagAndClass(document.body, 'div', 'news_list_item').length != 0) {
		var elem = _communiacs_getElementsByTagAndClass(document.body, 'div', 'news_list_item');
		for(var i = 0; i < elem.length; i++) {
			if(elem[i].children[1].innerHTML.indexOf("<img") == -1) {
				elem[i].children[2].style.margin = "0 0 0 240px";
			}
		}
	}
}

/* Klapper-Script */
function initKlapper() {
	jQuery(".klapper_content").css("display","none");
	
	jQuery(".klapper_title").click(function() {
		jQuery(this).next(".klapper_content").toggle(250, function() { setBottom(); });
		if(jQuery(this).hasClass("active")) {
			jQuery(this).removeClass("active");
		}else{
			jQuery(this).addClass("active");
		}
	});
}

/*************** 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);
}
else if(document.attachEvent) {
	document.attachEvent('onclick', _cm_onclick_handler);
	window.attachEvent('onload', _cm_onload_handler);
	window.attachEvent('onresize', _cm_onresize_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() {
	Cufon.now();
	styleLastNewsListElement();
	styleImageEmptyNewsListElements()
	initKlapper();
	setBottom();
}

function _cm_onresize_handler() {
	setBottom();
}
