var languages = ['en', 'de'];
var currTopPageSlug = '';

function muteBannerButton() {
	var aelem = document.getElementById("mute_banner_a");
	if(aelem) {
		if(aelem.innerHTML == "MUTE AUDIO") {
			setBannerVolume(0);
			aelem.innerHTML = "PLAY AUDIO";
		} else {
			setBannerVolume(100);
			aelem.innerHTML = "MUTE AUDIO";
		}
	}
}
function setBannerVolume(vol) {
	
	var oelem = document.getElementById('animals');
	if(oelem.setAnimalsSoundVolume) {
		oelem.setAnimalsSoundVolume(vol);
	}
}

function topMenuItemClicked(pageSlug, pageTitle) {
	if(currTopPageSlug != pageSlug) {
		var elem = document.getElementById("a_"+currTopPageSlug);
		if(elem) { elem.className = ""; }
		elem = document.getElementById("a_"+pageSlug);
		if(elem) { elem.className = "act"; }
		currTopPageSlug = pageSlug;
	}

	loadContent("/"+pageSlug);
	
	updateLanguageSwitch(pageSlug);
	updatePreviewHint(pageSlug);
	
	var idx = document.title.lastIndexOf(" :: ");
	var ttl = document.title.substr(0, idx+4) + pageTitle;
	window.history.pushState({slug: pageSlug}, ttl, "/"+pageSlug);
	document.title  = ttl;
}

function updateLanguageSwitch(pageSlug) {
	var lc = languages.length;
	for(var l=0; l<lc; l++) {
		var langslug = languages[l];
		var elem = document.getElementById("al_"+langslug);
		if(elem) {
			var idx = elem.href.lastIndexOf("/");
			elem.href = elem.href.substr(0, idx+1) + pageSlug;
		}
	}
}

function updatePreviewHint(pageSlug) {
	var elem = document.getElementById("a_preview_exit");
	if(elem) { elem.href = "/"+pageSlug+"?preview=0"; }
}

function loadContent(treePath) {
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e){
			try{
			page_request = new ActiveXObject("Microsoft.XMLHTTP")
		}
		catch (e){}
		}
	}
	else
	return false
	page_request.onreadystatechange=function(){
		loadContentComplete(page_request)
	}
	page_request.open('GET', '/page_content'+treePath, true);
	page_request.send(null);

}

function loadContentComplete(page_request) {
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
		var cdiv = document.getElementById("content");
		if(cdiv) {
			cdiv.innerHTML = page_request.responseText;
		}
		setScroll(0);
		var inputelem = document.getElementById("MassmailAddressEmail");
		if(inputelem) inputelem.focus();
	}
}


function eventHeadClicked(eventId) {
	var collapseDiv = document.getElementById("event_collapse_"+eventId);
	
	if(collapseDiv.clientHeight > 8) {
	
		collapseEventDetails(eventId);
	
	} else {

		if (window.XMLHttpRequest) // if Mozilla, Safari etc
			page_request = new XMLHttpRequest()
		else if (window.ActiveXObject){ // if IE
			try {
				page_request = new ActiveXObject("Msxml2.XMLHTTP")
			} 
			catch (e){
				try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
			}
		}
		else
		return false
		page_request.onreadystatechange=function(){
			loadEventDetailsComplete(page_request, eventId);
		}
		page_request.open('GET', "/content_pages/event_details/"+eventId, true);
		page_request.send(null);
		
		var hintDiv = document.getElementById("expand_hint_"+eventId);
		hintDiv.innerHTML = "…";
	}
}

function loadEventDetailsComplete(page_request, eventId) {
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
		expandEventDetails(eventId, page_request.responseText);
	}
}

function expandEventDetails(eventId, content) {
	var cdiv = document.getElementById("event_details_"+eventId);
	if(cdiv) {
		cdiv.innerHTML = content;
		var hge = cdiv.clientHeight;
		collapseId = "event_collapse_"+eventId;
		for(var i=0; i<=50; i++) {
			var frac = 0.5 - Math.cos(Math.PI * i / 50)/2;
			var ehg = frac * hge;
			var code = "setElementHeight(\'"+collapseId+"\', "+ehg+");";
			window.setTimeout(code, i*10);
		}
		
		scrollContentToElement("event_"+eventId);

		var hintDiv = document.getElementById("expand_hint_"+eventId);
		hintDiv.innerHTML = "&times;";
	}
}

function collapseEventDetails(eventId) {
	var cdiv = document.getElementById("event_details_"+eventId);
	if(cdiv) {
		var hgs = cdiv.clientHeight;
		collapseId = "event_collapse_"+eventId;
		for(var i=0; i<=50; i++) {
			var frac = 0.5 - Math.cos(Math.PI * i / 50)/2;
			var ehg = Math.floor((1-frac) * hgs);
			var code = "setElementHeight(\'"+collapseId+"\', "+ehg+");";
			window.setTimeout(code, i*10);
		}
		code = "document.getElementById(\'event_details_"+eventId+"\').innerHTML=\'\';";
		window.setTimeout(code, 400);		
		var hintDiv = document.getElementById("expand_hint_"+eventId);
		hintDiv.innerHTML = "+";
	}
}

function setElementHeight(elementId, hg) {
	var elem = document.getElementById(elementId);
	if(elem) {
		elem.style.height = String(hg)+"px";
	}
}


function scrollContentToElement(elementId, scrollDuration, collapsingBeforePx) {
	if(!scrollDuration) scrollDuration = 500;
	if(!collapsingBeforePx) collapsingBeforePx = 0;
		var elem = document.getElementById(elementId);
		if(elem) {
			var startY = document.body.scrollTop;
			var endY = findElementPos(elem)[1] - collapsingBeforePx; // .offsetTop;
			endY -= 204;
			var frames = scrollDuration / 10;
			for(var i=0; i<=frames; i++) {
				var frac = 0.5 - Math.cos(Math.PI * i / frames)/2;
				var sy = frac * endY + (1-frac) * startY;
				var code = "setScroll("+sy+");";
				window.setTimeout(code, i*10);
			}
		}
}

function setScroll(sy) {
	document.body.scrollTop = sy;
}


function findElementPos(obj) {
	var curleft = curtop = 0;
	while (obj) {
		curleft += obj.offsetLeft;
		curtop += obj.offsetTop;
		obj = obj.offsetParent;
		if(obj == document.body) obj = null;
	}
	return [curleft,curtop];
}



