﻿/* USAGE ////////////////////////////////////////

<script type="text/javascript">
	jQuery(document).ready(function(){	
		jQuery('.fce_stage').stage("play");
		window.setInterval("jQuery('.fce_stage').actionSlideshow()",$('input.settings_stage_duration').val());
	});
</script>

*/


/* ---------------- stage begin --------------- */
jQuery.fn.stage = function(play_pause){

	///////////////////////
	//// einstellungen ////
	///////////////////////
	
	//erster menüpunkt, der aufgerufen wird (danach dient die variable als hilfsvariable)
	activeMenu = 1;
	
	//startwert für die slideshow (zu diesem menüpunkt wird nach dem ersten menüpunkt gewechselt)
	slideshowCounter = 2;
	
	//dauer des fadings wenn mit mouse navigiert wird
	fadingDurationMenuDefault = 1;
	fadingDurationContentDefault = 300;
	
	//dauer des fadings wenn slideshow automatisch durchläuft
	fadingDurationMenuSlideshow = 1000;
	fadingDurationContentSlideshow = 1000;
	
	//farbwerte der menüpunkte
	defaultMenuTextColor = "#7A7F82";
	defaultMenuBgColor = "#ffffff";
	
	activeMenuTextColor = "#ffffff";
	activeMenuBgColor = "#B4CE17";

	
	////////////////////////
	//// hilfsvariablen ////
	////////////////////////
	
	lastActiveContent = 1;
	lastActiveMenu = 1;
	
	//verhalten -> "play" oder "pause"
	slideshowStatus = play_pause;
	
	//wird benutzt, um eine überblendung von den inhalts bereichen zu ermöglichen.
	//das folgende inhaltselement, welches als nächstes angezeigt werden soll,
	//wird eine "etage" unter das aktive gelegt,
	//danach wird das aktive mit ausgeblendet
	indexCounter = $('.fce_stage_content').css('z-index');
	
	//die locks werden noch nicht verwendet
	clickLock = false;
	animationLock = false;

	
	////////////////////
	//// funktionen ////
	////////////////////
	
	styleActiveMenu = function () {
		$('.fce_stage_menu_'+activeMenu).css('backgroundColor',activeMenuBgColor);
		$('.fce_stage_menu_'+activeMenu).css('color',activeMenuTextColor);
	}
	actionMouseOver = function (element,fadingDuration) {
		//animiere menüelement zum aktiv-zustand
		$(element).animate({
		  "backgroundColor" : activeMenuBgColor,
		  "color" : activeMenuTextColor
		  },fadingDuration, function(){
				clickLock = false;
				animationLock = false;
				}
		  );
	}
	actionMouseOut = function (element,fadingDuration) {
		//animiere menüelement zum default-zustand
		$(element).animate({
		  "backgroundColor" : defaultMenuBgColor,
		  "color" : defaultMenuTextColor
		  },fadingDuration);
	}
	hideAllButActiveMenus = function (activeMenu,fadingDuration) {
		//alle menüs (außer das aktive) in den default-zustand bringen
		for(i=1;i<5;i++){
			if(i!=activeMenu){
				actionMouseOut(".fce_stage_menu_"+i,fadingDuration);
			}
		}
	}
	hideAllButCertainMenus = function (activeMenu,currentMouseOverMenu,fadingDuration) {
		//alle menüs (außer das aktive und außer das menü, wo die maus gerade drüber ist) in den default-zustand bringen
		for(i=1;i<5;i++){
			if(i!=activeMenu && i!=currentMouseOverMenu){
				actionMouseOut(".fce_stage_menu_"+i,fadingDuration);
			}
		}
	}
	actionShowContent = function (number,fadingDuration) {
		lastActiveContent = activeMenu;
		activeMenu = number;
		
		$('.fce_stage_content_'+activeMenu).css('z-index',(indexCounter-1));
		$('.fce_stage_content_'+activeMenu).show();
		window.setTimeout("$('.fce_stage_content_'+activeMenu).css('z-index',indexCounter);",(fadingDuration+200));
		
		for(i=1;i<5;i++){
			if(i!=activeMenu){
				$('.fce_stage_content_'+i).fadeOut(fadingDuration);
			}
		}
		window.setTimeout("$('.fce_stage_content_'+activeMenu).css('z-index',(indexCounter));",fadingDuration+200);
	}

	
	//////////////////////////
	//// funktionsaufrufe ////
	//////////////////////////
	//beim start der bühne aktiviertes menü stylen
	styleActiveMenu();

	////////////////
	//// events ////
	////////////////
	
	//slideshow ein- oder ausschalten
	$(".btn_play").click(function () {
		if(slideshowStatus=="play"){
			slideshowStatus="pause";
		}
		else {
			slideshowStatus="play";
			slideshowCounter=activeMenu;
		}
	});
	
	//beim klicken auf den menüpunkt...
	$(".fce_stage_menu_1").click(function () {
		//...die slideshow ausschalten
		slideshowStatus="pause";
		//entsprechenden inhalt zum menüpunkt anzeigen
		actionShowContent(1,fadingDurationContentDefault);
		//alle nicht aktiven buttons in den default-status bringen
		hideAllButActiveMenus(activeMenu,fadingDurationMenuDefault);
	});
		
	$(".fce_stage_menu_2").click(function () {
		slideshowStatus="pause";
		actionShowContent(2,fadingDurationContentDefault);
		hideAllButActiveMenus(activeMenu,fadingDurationMenuDefault);
	});
		
	$(".fce_stage_menu_3").click(function () {
		slideshowStatus="pause";
		actionShowContent(3,fadingDurationContentDefault);
		hideAllButActiveMenus(activeMenu,fadingDurationMenuDefault);
	});

	$(".fce_stage_menu_4").click(function () {
		slideshowStatus="pause";
		actionShowContent(4,fadingDurationContentDefault);
		hideAllButActiveMenus(activeMenu,fadingDurationMenuDefault);
	});
	
	//wenn mit der maus in einen menüpunkt reingefahren wird...
	$(".fce_stage_menu_1").mouseenter(function () {
		//...den neuen menüpunkt in den aktiven status bringen
		actionMouseOver(".fce_stage_menu_1",fadingDurationMenuDefault);
		//...und alle anderen menüpunkte in den default status versetzen
		hideAllButCertainMenus(1,activeMenu,fadingDurationMenuDefault);
	});
	$(".fce_stage_menu_2").mouseenter(function () {
		actionMouseOver(".fce_stage_menu_2",fadingDurationMenuDefault);
		hideAllButCertainMenus(2,activeMenu,fadingDurationMenuDefault);
	});
	$(".fce_stage_menu_3").mouseenter(function () {
		actionMouseOver(".fce_stage_menu_3",fadingDurationMenuDefault);
		hideAllButCertainMenus(3,activeMenu,fadingDurationMenuDefault);
	});
	$(".fce_stage_menu_4").mouseenter(function () {
		actionMouseOver(".fce_stage_menu_4",fadingDurationMenuDefault);
		hideAllButCertainMenus(4,activeMenu,fadingDurationMenuDefault);
	});
		
	//wenn der menüpunkt mit der maus verlassen wird...
	$(".fce_stage_menu_1").mouseout(function () {
		//...und gerade ein anderer menüpunkt aktiv ist
		if (activeMenu != 1) {
			//...dann versetze den menüpunkt in den default-status
			actionMouseOut(".fce_stage_menu_1",fadingDurationMenuDefault);
		}
	});
	$(".fce_stage_menu_2").mouseout(function () {
		if (activeMenu != 2) {
			actionMouseOut(".fce_stage_menu_2",fadingDurationMenuDefault);
		}
	});
	$(".fce_stage_menu_3").mouseout(function () {
		if (activeMenu != 3) {
			actionMouseOut(".fce_stage_menu_3",fadingDurationMenuDefault);
		}
	});
	$(".fce_stage_menu_4").mouseout(function () {
		if (activeMenu != 4) {
			actionMouseOut(".fce_stage_menu_4",fadingDurationMenuDefault);
		}
	}); 	
}

/* jQuery.fn.stage needs to be loaded first in order to use the actionSlideshow function */
jQuery.fn.actionSlideshow = function () {
	if(slideshowStatus=="play"){
		//die variable slideshowCounter steht für die jeweiligen menüpunkte

		//rufe den inhalt zu dem slideshowCounter-wert auf
		actionShowContent(slideshowCounter,fadingDurationContentSlideshow);
		//setze den menüpunkt zu dem slideshowCounter-wert auf aktiv
		actionMouseOver(".fce_stage_menu_"+slideshowCounter,fadingDurationMenuSlideshow);
		//setze alle menüpunkte (außer den aktiven und außer dem wo die mouse gerade drüber ist) zu dem slideshowCounter-wert auf den default zustand
		hideAllButCertainMenus(activeMenu,slideshowCounter,fadingDurationMenuSlideshow);
		slideshowCounter++;
		//wenn letzter menüpunkt erreicht wurde, wieder auf eins setzen, damit slideshow von vorn anfängt
		if(slideshowCounter==5){
			slideshowCounter=1;
		}
	}
}

/* ---------------- stage end --------------- */
