function getElementsByTagNameAndClassName(tag, name) {
	var results = new Array();
	var elems = document.getElementsByTagName(tag);
	for (var i=0; i<elems.length; i++) {
		if (elems[i].className.indexOf(name) != -1) {
			results[results.length] = elems[i];
		}
	}
	return results;
}

function prepareSubMenu() {
	var menus = getElementsByTagNameAndClassName("DIV","menu_item");
	for (var i=0 ; i<menus.length; i++) {
		menus[i].onmouseover = function() {
			window.clearTimeout(activeDelay);
			if (this.getElementsByTagName("UL")[0]) {
				if (this.getElementsByTagName("UL")[0].style.display != "block") {
					hideSubMenus();
					this.getElementsByTagName("UL")[0].style.display = "block";
					this.getElementsByTagName("A")[0].className = "menu_active";
				}
			} else {
				hideSubMenus();
			}
		}
		menus[i].onmouseout = function() {
			activeDelay = window.setTimeout("hideSubMenus()",500);
		}
	}
}

function hideSubMenus() {
	window.clearTimeout(activeDelay);
	var menus = getElementsByTagNameAndClassName("DIV","menu_item");
	for (var i=0 ; i<menus.length; i++) {
		if (menus[i].getElementsByTagName("UL")[0]) {
			menus[i].getElementsByTagName("UL")[0].style.display = "none";
			menus[i].getElementsByTagName("A")[0].className = "";
		}
	}
}

function prepareContentCols() {
	if (document.getElementById("teaser_content")) {
		if (document.getElementById("teaser_content").innerHTML.replace(/\s/g, "") != "") {
			if (document.getElementById("col_container")) {
				document.getElementById("col_container").className = "multiCol";
			}
		}
	}
}

function prepareTeaserProd() {
	if (document.getElementById("tc_prob_prod")) {
		if (document.getElementById("tc_prob_prod").innerHTML.replace(/\s/g, "") == "") {
			if (document.getElementById("tc_prob")) {
				document.getElementById("tc_prob").style.display = "none";
			}
		}
	}
}

function prepareScrollText() {
	if (document.getElementById("rd-abb-det") && document.getElementById("rd-abb-scrollcont") && document.getElementById("scrolltext")) {
		if (document.getElementById("rd-abb-thb")) {
			tmpScrollTextHeight = parseInt(document.getElementById("rd-abb-det").height)-parseInt(document.getElementById("rd-abb-thb").height)-19;
			if (document.getElementById("rd-abb-scrollcont")) document.getElementById("rd-abb-scrollcont").style.height = tmpScrollTextHeight + "px";
			if (document.getElementById("scrolltext")) document.getElementById("scrolltext").style.clip = "rect(0px auto "+tmpScrollTextHeight+"px 0px)";
		} else {
			tmpScrollTextHeight = parseInt(document.getElementById("rd-abb-det").height)-19;
			if (document.getElementById("rd-abb-scrollcont")) document.getElementById("rd-abb-scrollcont").style.height = tmpScrollTextHeight + "px";
			if (document.getElementById("scrolltext")) document.getElementById("scrolltext").style.clip = "rect(0px auto "+tmpScrollTextHeight+"px 0px)";
		}
	}
}

function correctListColors() {
	var listenelemente = getElementsByTagNameAndClassName("div", "smrow");
	var alternierend = "1";
	for (var i=0 ; i<listenelemente.length; i++) {
		if (alternierend == "1") alternierend = "0";
		else alternierend = "1";
		listenelemente[i].className = "smrow row acol"+alternierend;
	}
	
	var tdlistenelemente = getElementsByTagNameAndClassName("td", "smrow");
	var alternierend = "1";
	for (var i=0 ; i<tdlistenelemente.length; i++) {
		if (alternierend == "1") alternierend = "0";
		else alternierend = "1";
		tdlistenelemente[i].className = "smrow acol"+alternierend;
	}
	
	var trlistenelemente = getElementsByTagNameAndClassName("tr", "autofarbwechsel");
	var alternierend = "1";
	for (var i=0 ; i<trlistenelemente.length; i++) {
		if (alternierend == "1") alternierend = "0";
		else alternierend = "1";
		if (trlistenelemente[i].name=='') trlistenelemente[i].name = trlistenelemente[i].className;
		trlistenelemente[i].className = trlistenelemente[i].name + " acol"+alternierend;
	}
}

var scrollOffset = 0;
var scrollElementHeight = 0;
var scrollMaxTextHeight = 0;
var scrollAktiv;
var tmpScrollTextHeight = 0;
function scrolltext(pAktion) {
	scrollstop();
	if (pAktion == "down") {
		scrollElementHeight = tmpScrollTextHeight;
		scrollMaxTextHeight = 2000;
		scrollAktiv = window.setInterval("scrollIntervalDown()", 10);
	}
	if (pAktion == "up") {
		if (scrollOffset > 0) {
			scrollAktiv = window.setInterval("scrollIntervalUp()", 10);
		}
	}
}
function scrollIntervalDown() {
	if (scrollOffset >= scrollMaxTextHeight) scrollstop();
	else {
		scrollOffset = scrollOffset + 1;
		tmpOffsDown = parseInt(scrollElementHeight)+parseInt(scrollOffset);
		document.getElementById("scrolltext").style.clip = "rect("+scrollOffset+"px auto "+tmpOffsDown+"px 0px)";
		document.getElementById("scrolltext").style.marginTop = "-"+scrollOffset+"px";
	}
}
function scrollIntervalUp() {
	if (scrollOffset <= 0) {
		scrollstop();
		scrollOffset = 0;
	}
	else {
		scrollOffset = scrollOffset - 1;
		tmpOffsUp = parseInt(scrollElementHeight)+parseInt(scrollOffset);
		document.getElementById("scrolltext").style.clip = "rect("+scrollOffset+"px auto "+tmpOffsUp+"px 0px)";
		document.getElementById("scrolltext").style.marginTop = "-"+scrollOffset+"px";
	}
}
function scrollstop() {
	window.clearInterval(scrollAktiv);
}

function initFunctions() {
	//prepareContentCols();
	prepareTeaserProd();
	prepareSubMenu();
	prepareScrollText();
	correctListColors();
	prepareFadeFG();
}

function selfFocus() {
	self.focus();
}

function switchFGein(pFG) {
	if (!pFG || activeKarteFanggebiet == pFG) return;
	if (document.getElementById(pFG).parentNode) {
		if (document.getElementById(pFG).parentNode.style.filter) if (document.getElementById(pFG).parentNode.style.filter != "") return;
		if (document.getElementById(pFG).parentNode.style.opacity) if (document.getElementById(pFG).parentNode.style.opacity <= 0.9) return;
	}
	document.getElementById(pFG).style.filter = "Alpha(opacity=30, finishopacity=0, style=0)";
	document.getElementById(pFG).style.mozOpacity = "0.5";
	document.getElementById(pFG).style.opacity = "0.5";
	document.getElementById(pFG).style.display = "block";
}
function switchFGaus(pFG) {
	if (!pFG) return;
	if (activeKarteFanggebiet == "" || activeKarteFanggebiet != pFG) document.getElementById(pFG).style.display = "none";
}

function fadeFGein(pFG) {
	if (!pFG) return;
	if (activeKarteFanggebiet != "" && activeKarteFanggebiet != pFG) {
		fadeFGaus(activeKarteFanggebiet);
		if (document.getElementById("fgliste"+activeKarteFanggebiet)) fadeFGaus("fgliste"+activeKarteFanggebiet);
	}
	if (document.getElementById(pFG)) {
		activeKarteFanggebiet = pFG;
		new Effect.Appear(pFG,{duration:0.2});
	}
	if (document.getElementById("fgliste"+pFG)) new Effect.Appear("fgliste"+pFG,{duration:1.0});
}
function fadeFGaus(pFG) {
	if (!pFG) return;
	if (document.getElementById(pFG)) new Effect.Fade(pFG,{duration:0.2});
}
function fadeKarte(pFG) {
	if (!pFG) return;
	if (pFG == "europakarte") {
		if (document.getElementById("weltkarte")) new Effect.Fade("weltkarte",{duration:0.5});
	} else {
		if (document.getElementById("europakarte")) new Effect.Fade("europakarte",{duration:0.5});
	}
	if (document.getElementById(pFG)) new Effect.Appear(pFG,{duration:1.0});
	if (activeKarteFanggebiet != "") {
		fadeFGaus(activeKarteFanggebiet);
		if (document.getElementById("fgliste"+activeKarteFanggebiet)) fadeFGaus("fgliste"+activeKarteFanggebiet);
	}
}

function prepareFadeFG() {
	var fanggeb = getElementsByTagNameAndClassName("div", "fanggebiet");
	for (var i=0 ; i<fanggeb.length; i++) {
		fanggeb[i].style.display = "none";
	}
	var fanggebliste = getElementsByTagNameAndClassName("div", "fgliste");
	for (var i=0 ; i<fanggebliste.length; i++) {
		fanggebliste[i].style.display = "none";
		fanggebliste[i].style.visibility = "visible";
	}
	var ernaehrpyramliste = getElementsByTagNameAndClassName("div", "epliste");
	for (var i=0 ; i<ernaehrpyramliste.length; i++) {
		ernaehrpyramliste[i].style.display = "none";
		ernaehrpyramliste[i].style.visibility = "visible";
	}
	if (document.getElementById("europakarte")) document.getElementById("europakarte").style.display = "none";
	if (document.getElementById("europakarte")) document.getElementById("europakarte").style.visibility = "visible";
	if (document.getElementById("weltkarte")) document.getElementById("weltkarte").style.visibility = "visible";
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

var activeDelay;
var activeKarteFanggebiet;

window.onload = initFunctions;
