function toggleViz(b,c){
	c?$(b).style.visibility="visible":$(b).style.visibility="hidden";
}

var musikwin;
function openPopup(){
	if(typeof(musikwin)!='undefined' && !musikwin.closed){
		musikwin.focus();
	}
	else{
		musikwin = window.open("musik.php","mwin","width=250,height=100,left=400,top=0");
	}
}

function openWinnerPopup(){
	window.open("winner_movie.php","mwin","width=353,height=460,left=400,top=0");
}

/*
function setMotive(id,showVoting){
	if(typeof(showVoting) == "undefined"){
		doLayer(id,1,1); // show Ecard Form
	}else{
		doLayer(id,1,0); // show Voting
	}
	//alert(id);
}
*/
function setMotive(id,shiftDown){

	doLayer(id,1,1,null,shiftDown); // shiftDown defines a new layer position if set

	//alert(id);
}

function setSingleMotive(id,ecardCode,recipient){
	goNav();
	doLayer(id,0,ecardCode,recipient);
	//alert(id);
}


var layerclosed=1;
var globalId = null;
var globalPaging = null;
var isCommentSent = false;
var myCommentForm = null;

var MacFF=false;
if((navigator.userAgent.indexOf('Mac')!=-1 || navigator.userAgent.indexOf('Linux')!=-1) && navigator.userAgent.indexOf('Firefox')!=-1){MacFF=true;}
var zoomWin; // For MacFF image HS

function doLayer(id,isPaging,ecardCode,recipient,shiftDown){

	l=$('layerWrapper');
	
	if(typeof(t1)!="undefined"){
		clearTimeout(t1);
	}
	
	undoLayer(1);

	if(MacFF){MacFFTrack(1);}
	if(typeof(shiftDown) != "undefined"){ l.style.top= shiftDown+"px";}
	l.style.left="0px";l.style.zIndex="999";
	layerclosed=0;
	new Ajax.Updater('layerContent', 'classes/MotifLayer.class.php', { method: 'post', parameters: {motifid: id, paging: isPaging, code: ecardCode, rec: recipient},
																																			onComplete: function() {
																																					myCommentForm = $("kommentarForm");
																																					myCommentForm = myCommentForm.parentNode.innerHTML;
	if(ecardCode && ecardCode != 0){
		// Open Ecard																																																																									
		shR(1);	
	}else{
		// Open Abstimmen
		//shR(1);
		shR(1);		
	}
																																				}
																																			});
	
	globalId = id;
	globalPaging = isPaging;

}

function undoLayer(a){
	
	$('layerContent').innerHTML="";
	$('layerWrapper').style.left="-1000px";
	
	mdivs.clear();
	mdivsH.clear();
	mdivsB.clear();
	firstrun=1;
	if(!a){layerclosed=1;}
	
	if(MacFF){MacFFTrack(0);}
	
}

var MacFFLayers=0;
function MacFFTrack(n){

	if(n==1){
		MacFFLayers+=1;
	}
	else if(MacFFLayers>0){
		MacFFLayers-=1;
	}
	
	if(MacFFLayers==0){
		if($('thumbsHolder')){
			$('thumbsHolder').style.left="0px";
		}
	}
	else{
		if($('thumbsHolder')){
			$('thumbsHolder').style.left="-1000px";
		}
	}

}



function textCounter(field, maxlimit) {
    if (field.value.length > maxlimit) {
        field.value = field.value.substring(0, maxlimit);
    } 
}


// TEMPORARY!
function processForm(cont,targ,frm){
	if(frm){
		var dat=$(frm).serialize();
		new Ajax.Updater(cont, targ, { method: 'post',parameters: dat});
	}
	else{
		new Ajax.Updater(cont, targ, { method: 'get'});
	}
	return false;
}
	

var dist=30;
var spd=52;
var ht=300;
var t1,act;
var mdivs=new Array();
var mdivsH=new Array();
var mdivsB=new Array();
var firstrun=1;
var act;

function getDivs(){


	alldivs = document.getElementsByTagName('div');

	for(r=0;r<alldivs.length;r++){

		if(alldivs[r].className=='info'){

			mdivs[mdivs.length]=alldivs[r];
			mdivsH[mdivsH.length]=1;

		}

	}

	allanchs = document.getElementsByTagName('a');

	for(p=0;p<allanchs.length;p++){

		if(allanchs[p].className=='scrollButton'){

			mdivsB[mdivsB.length]=allanchs[p];
			allanchs[p].onfocus=function(){this.blur();}; 
		}

	}

	
	firstrun=0;
}



function actBt(){

	for(x=0;x<mdivsB.length;x++){
	
		if(x==act){
			mdivsB[x].style.height="1px";
			mdivsB[x].style.width="1px";
		}
		else{
			mdivsB[x].style.height="100%";
			mdivsB[x].style.width="100%";
		}
	
	}

	
}



function shR(n){

	if(firstrun){
		getDivs();
	}
	
	if(n==3 && isCommentSent) {
		var myParentForm = $("i3");
		new Ajax.Updater("i3", "includes/layer/comment.inc.php", {onComplete: function() {
																																myParentForm.firstChild.style.display="block";
																															}
																															});
	}
	if(n==1) {
		//updateCaptcha();
	}

	if(n){
		act=n-1;
		mdivs[act].firstChild.style.display="block";
		actBt();
	}

	if(typeof(t1)!="undefined"){
		clearTimeout(t1);
	}

	if(mdivsH[act] && mdivsH[act]<ht){
		mdivsH[act]+=dist;
		mdivs[act].style.height=mdivsH[act]+"px";

		for(x=0;x<mdivs.length;x++){

			if(x!=act && mdivsH[x]>1){
				mdivs[x].style.overflowY="hidden";
				mdivsH[x]-=dist;
				mdivs[x].style.height=mdivsH[x]+"px";
			}
			else{
				fin=1;
			}
			if(x!=act && mdivsH[x]<=20){
				mdivs[x].firstChild.style.display="none";
			}

		}
		
		
		t1 = setTimeout("shR()",spd);
	}
	else if(mdivsH[act] && mdivsH[act]>=ht){
		mdivs[act].style.overflowY="auto";				
	}

	
}


function unld(){
	if(typeof(t1)!="undefined"){
		clearTimeout(t1);
	}
	clrNav();
}
window.onunload=unld;



var dx,dy,cv;
var blackout=0;

function setBO(){
	blackout=1;
	coverIt();
}

function pSize(){

	var m1 = document.body.scrollHeight;
	var m2 = document.body.offsetHeight;
	if (m1>m2){
		dx = document.body.scrollWidth;
		dy = document.body.scrollHeight;
	}
	else{
		dx = document.body.offsetWidth;
		dy = document.body.offsetHeight;
	}
}



function coverIt(){

	if(!MacFF){
		pSize();

		if($('cover') && blackout){
			cv=$('cover');
			cv.style.height=dy+"px";
			cv.style.width=dx+"px";
			cv.style.left=0;
			if($('sideNav')){$('sideNav').style.left="-300px";}
			if($('regions_options')){
				$('regions_options').style.visibility="hidden";
			}
			blackout=0;
		}
	}
	
}

function uncoverIt(){

	if(cv){
		cv.style.height="1px";
		cv.style.width="1px";
		cv.style.left="-10px";
		if($('sideNav')){$('sideNav').style.left="0px";}
		if($('regions_options')){
			$('regions_options').style.visibility="visible";
		}
	}
	
}


function scrollDown(a){

	$('faq').parentNode.parentNode.scrollTop=$(a).offsetTop;
	return false;

}

function scrollUp(){

	 $('faq').parentNode.parentNode.scrollTop=0;
	 return false;

}

function toggleBear(a){
	if($('bear')){
		if(a){
			$('bear').style.visibility="hidden";
		}
		else{
			$('bear').style.visibility="visible";
		}
	}
}


var wht=0;
var cy, myInt;
var sy=0;
function goNav(){

	if($('sideNav')){
		if(MacFF){
			$('sideNav').addClassName('macFFsideNav');
		}
		else{
			if(myInt){clearInterval(myInt);}
			getScroll();
			if (self.innerHeight){
				wht = self.innerHeight;
			}
			else if (document.documentElement && document.documentElement.clientHeight){
				wht = document.documentElement.clientHeight;
			}
			if(wht>0){
				wht=wht-260;
				cy = wht;
				moveNav();
				myInt=setInterval('moveNav()',20);
			}
		}
	}
}
function moveNav(){
	cy+=Math.floor((sy+wht-cy)/8);
	$('sideNav').style.top=cy+"px";
}
function clrNav(){
	if(myInt){clearInterval(myInt);}
}
function getScroll(){
	if(!MacFF){
		if (self.pageYOffset){
			sy = self.pageYOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop){
			sy = document.documentElement.scrollTop;
		}
		else if (document.body){
			sy = document.body.scrollTop;
		}
	}
}

window.onload=goNav;
window.onresize=goNav;
window.onscroll=getScroll;


function goSurvey(){
	if($('survey')){$('survey').onclick();}
	goNav();
}
function newPass(){
	if($('newPass')){$('newPass').onclick();}
	goNav();
}



function updateCaptcha() {
		new Ajax.Updater("captchaDiv", "includes/layer/captcha.inc.php", {method: 'post',
																			requestHeaders: ["If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"]});
}


function showNRJForm() {
	/*
	var myRequest = new Ajax.Request("classes/MetaForms.class.php", 
			{	method: 'post',
				requestHeaders: ["If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"],
				postBody:  "formName=nrjStart",
				onComplete: function(theRequest) {

					var myRoot = theRequest.responseXML.getElementsByTagName("formValues")[0];
					var mySuccessMessageNode = myRoot.getElementsByTagName("successMessage")[0];
					if(mySuccessMessageNode) {
						new Ajax.Request("includes/forms/nrjinthepark.inc.php", 
						{
						onComplete: function(request) {
								var formHolder =  $("nrjHolder");
								if(formHolder){
									formHolder.innerHTML = request.responseText;
									var nrjDiv = $$("div.titleNRJinThePark")[0];
									nrjDiv.className = "titleNRJinTheParkForm";
								}
							}
						})
					}else{
					alert("yyy");
					}
					
				},
				onFailure: function(theRequest) {
					alert("Es ist ein Fehler aufgetreten.");
				}
			}
		);

	return false;
	*/
	
	
	new Ajax.Request("includes/forms/nrjinthepark.inc.php", 
	{
	onComplete: function(request) {
			var formHolder =  $("nrjHolder");
			if(formHolder){
				formHolder.innerHTML = request.responseText;
				var nrjDiv = $$("div.titleNRJinThePark")[0];
				nrjDiv.className = "titleNRJinTheParkForm";
			}
		}
	})
}

function handleMetaForm(theFormName,theExtendedFormParam) {
	var myFormName = theFormName + "Form";
	var myForm = $(myFormName);
	var myInputs = myForm.getElements();

	var myLabelElements = document.getElementsByTagName("label");

	for(var i = 0; i < myInputs.length; ++i) {
		var myInput = myInputs[i];
		var myCurrentClassName = myInput.className;
		myInput.className = myCurrentClassName.replace(/errorInput/g, "");
		for(var j = 0; j < myLabelElements.length; ++j) {
			if(myLabelElements[j].getAttribute("for") == myInputs[i].getAttribute("id")) {
				myCurrentClassName = myLabelElements[j].className;
				myLabelElements[j].className = myCurrentClassName.replace(/errorMsg/g, "");
			}
		}
	}
	
	
	var myFormInputs = myForm.serialize();
	var myFormName = "formName=" + myFormName;
	var myExtendedFormParams = "extendedFormParams=" + theExtendedFormParam;
	var myRequest = new Ajax.Request("classes/MetaForms.class.php", 
		{	method: 'post',
			requestHeaders: ["If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"],
			postBody: myFormName + "&" + myExtendedFormParams + "&" + myFormInputs,
			onComplete: function(theRequest) {
				printResult(theRequest, theFormName);
			},
			onFailure: function(theRequest) {
				alert("Es ist ein Fehler aufgetreten.");
			}
		}
	);
}



function printResult(theRequest, theFormName) {
	var myRoot = theRequest.responseXML.getElementsByTagName("formValues")[0];
	
	var myErrorMessage = myRoot.getElementsByTagName("errorMessage")[0];
	if(myErrorMessage) {
		
		myErrorMessage = myErrorMessage.firstChild.nodeValue;

		var myErrorMessageNode = document.createTextNode(myErrorMessage);
		var myErrorElement = $(theFormName + "Error");
		if(!myErrorElement.hasChildNodes()) {
			myErrorElement.appendChild(myErrorMessageNode);
		} else {
			myErrorElement.firstChild.nodeValue = myErrorMessage;
		}
		
		var myErrorInputs = myRoot.getElementsByTagName("errorInput");
		
		var myLabelElements = document.getElementsByTagName("label");
		
		for(var i = 0; i < myErrorInputs.length; ++i) {
			var myElement = $(myErrorInputs[i].getAttribute("id"));
			
			var	myCurrentClassName = myElement.className;
			myElement.className = myCurrentClassName + " errorInput";
			for(var j = 0; j < myLabelElements.length; ++j) {
				if(myLabelElements[j].getAttribute("for") == myErrorInputs[i].getAttribute("id")) {
					myCurrentClassName = myLabelElements[j].className;
					myLabelElements[j].className = myCurrentClassName + " errorMsg";
				}
			}
			
		}
	}
	
	if(!myErrorInputs){
		
		var myErrorElement = $(theFormName + "Error");
		
		if(myErrorElement) {
			if(myErrorElement.hasChildNodes()) myErrorElement.firstChild.nodeValue = "";
		}
	
		var myCurrentFormName = theFormName + "Form";
		var myForm = $(myCurrentFormName);
		var myFormParent = myForm.parentNode;
		var myDivNode = document.createElement("div");
		var mySuccessNode = document.createElement("p");
		
		mySuccessNode.className = "successMessage";
		
		//temp	
		
		
		var myTrackingCategories = myRoot.getElementsByTagName("trackingCategory");
		for(var i = 0; i < myTrackingCategories.length; ++i) {
			myTrackingCategory = myTrackingCategories[i].firstChild.nodeValue;
			var axel = Math.random()+"";
			var a = axel * 10000000000000;
			var myImageNode = document.createElement("img");
			myImageNode.setAttribute("src","http://ad.de.doubleclick.net/activity;src=1408683;type=2007b977;cat="+ myTrackingCategory +";ord="+ a +"?");
			myDivNode.appendChild(myImageNode);
		}
		
		var mySuccessMessageNode = myRoot.getElementsByTagName("successMessage")[0];
		if(mySuccessMessageNode) {
			mySuccessMessage = mySuccessMessageNode.firstChild.nodeValue;
			mySuccessNode.appendChild(document.createTextNode(mySuccessMessage));
			var myFormName = mySuccessMessageNode.getAttribute("formName");
			if(myFormName == "reminder") mySuccessNode.style.padding = "0";
			if(myFormName == "login" || myFormName == "loginPuzzle" || myFormName == "registerPuzzle") {
				showStatusBox()
			}
		} else {
			mySuccessNode.appendChild(document.createTextNode("Deine Daten wurden erfolgreich übertragen."));
			
		}
		
		myDivNode.appendChild(mySuccessNode);
		if(theFormName != "login" && theFormName != "profile" && theFormName != "register") {
			myFormParent.replaceChild(myDivNode, myForm);
		}
		
		if(myFormName == "loginPuzzle" || myFormName == "registerPuzzle") {
			myFormParent.replaceChild(myDivNode, myForm);
			var myHighscore = mySuccessMessageNode.getAttribute("highscore");
			if(myHighscore) showPuzzleContent("highscore");
			else showPuzzleContent("guide");
		}
		
		if(theFormName == "profile") {
			initMetaForm(theFormName);
		}
		//isCommentSent = true;
	}
	
}

function showStatusBox() {
	if($("registerWrapper")) new Ajax.Updater("registerWrapper", "includes/mitmachen3LoggedIn.inc.php", {postBody: 'ajax=load'});
		new Ajax.Updater("statusBox" , "includes/loggedIn.inc.php",{postBody: 'ajax=load'});
		new Ajax.Updater("loginTeaser" , "includes/loginteaser.inc.php");
		hs.closeId("infoLayerLogin");
}

function detectGeckoBrowser() {
	return navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1 || !!window.opera;
}

function initMetaForm(theElement) {
	var myHtmlExpand = hs.htmlExpand(theElement, {contentId: 'infoLayerProfile', objectType: 'ajax', wrapperClassName: 'titleProfile',targetX: 'null', async: false})
	var myRequest = new Ajax.Request("classes/FormInitializer.class.php", 
																		{	method: 'post',
																			requestHeaders: ["If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"],
																			postBody: null,
																			asynchronous: true,
																			onComplete: function(theRequest) {
																				fillForm(theRequest);
																				
																			},
																			onFailure: function(theRequest) {
																				alert("Es ist ein Fehler aufgetreten.");
																			}
																		}
																	);
	
	return myHtmlExpand;
}

function fillForm(theRequest) {
	
	var myRoot = theRequest.responseXML.getElementsByTagName("formValues")[0];
	clearPasswordInputs();
	var myInitInputs = myRoot.getElementsByTagName("initInput");
	for(var i = 0; i < myInitInputs.length; ++i) {
		var myElementId = myInitInputs[i].getAttribute("id");
		if(myElementId == "Useravatar") {
			var myValue = myInitInputs[i].firstChild;
			var myOldImage = $("userImage")
			
			if(myValue != null) {	
				if(myOldImage == null) {
					myImage = document.createElement("img");
				} else {
					myImage = myOldImage;
				}
				myImage.setAttribute("alt","Avatar");
				myImage.setAttribute("id","userImage");
				
				myImage.src = "savedBitmaps/avatars/resized/" + myValue.nodeValue;
				var myForm = $("profileForm");
				if(myOldImage == null) {
					myForm.insertBefore(myImage, myForm.firstChild.nextSibling);
				}
			}
		}
		var myElement = $("profile" + myElementId);
		if(myElement != null) {
			var myValue = myInitInputs[i].firstChild;
			if(myValue != null) {
				if(myElementId != "Useravatar") {
					myElement.value = myValue.nodeValue;
				}
			} else {
				myElement.value = "";
			}
		}
	}
}

function clearPasswordInputs() {
	$("profileOldPassword").value = "";
	$("profilePassword").value = "";
	$("profilePasswordVerify").value = "";
}

function uploadAvatar() {
	document.uploadForm.submit();
}

function createSuccess() {
	var myParent = window.parent.document;
	var myIframes = myParent.getElementsByTagName('iframe');
	var myIframe = myIframes[myIframes.length - 1];
	Element.hide(myIframe);
	var myMessage = myParent.getElementById("uploadSuccessMessage");
	Element.show(myMessage);
}

function showOpinionForm() {
	new Ajax.Updater("feedbackLayer", "includes/forms/opinion.inc.php", {method: 'post',
																			requestHeaders: ["If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"]});
}

function showPassRemind(wrapper) {
	if(wrapper == null) wrapper = "loginWrapper";
	new Ajax.Updater(wrapper, "includes/forms/passRemind.inc.php", {method: 'post',
																			requestHeaders: ["If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"]});
}


// Puzzle


function titleSpace(){
 var pdiv=document.getElementsByClassName('titlePuzzlemeister');
 if(pdiv[0]){
  pdiv[0].down('div.highslide-body').style.height="418px";
  pdiv[0].down('div.infoTitle').style.height="52px";
 }
} 

function titleSpace2(){
 var pdiv=document.getElementsByClassName('titlePuzzlemeister');
 if(pdiv[0]){
  pdiv[0].down('div.infoTitle').style.height="0px";
  pdiv[0].down('div.highslide-body').style.height="470px";
 }
}
 

function showPuzzleContent(contentName, imageName, imageFormat) {
	var puzzleWrapper = document.getElementsByClassName("infoLayerContent")[0];
	if(contentName == "game") {
		startPuzzle(imageName, imageFormat);
	}
		
	new Ajax.Updater(puzzleWrapper, "includes/puzzle.inc.php", {
																			method: 'post',
																			requestHeaders: ["If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"],
																			parameters: new Hash({content: contentName}),
																			onComplete: function() {
																				if(contentName == "game") {
																					titleSpace2();
																				} else {
																					titleSpace();
																				}
																			}
																			});
}

function startPuzzle(imageName, imageFormat) {
	var FO = { movie:"flash/game.swf", id:"puzzleGame", name:"puzzleGame", width:"380", height:"470", majorversion:"8", build:"0", flashvars:"imageName=" + imageName + "&format=" + imageFormat};
	UFO.create(FO, "gameHolder");
}

function puzzleCompleted() {
	window.setTimeout('showPuzzleContent("completed")',500);
}


var nxt;var scrolling=0;
function startScr(w){
	scrolling=1;
	scrDiv(w);
}

function scrDiv(w){
	if(nxt){clearTimeout(nxt)}
	if(scrolling){
		if(w=="d" && $('highscoreBox')){$('highscoreBox').scrollTop+=10;nxt=setTimeout("scrDiv('d')",100);}
		else if(w=="u" && $('highscoreBox')){$('highscoreBox').scrollTop-=10;nxt=setTimeout("scrDiv('u')",100);}
	}
}

function scrS(){
	scrolling=0;
}