// charset=utf-8
// $Id: TitleImageSwitcher.js 403 2011-05-25 13:42:46Z hebing $
// $HeadURL: svn://svnserver/eggersmann/modules/TitleImageSwitcher/scripts/TitleImageSwitcher.js $
// +----------------------------------------------------------------------+
// | mcm module: TitleImageSwitch v1.0                                    |
// | for mcm 5.6                                                          |
// | (c) 2002-2011 monsun media (http://www.monsun-media.com)             |
// +----------------------------------------------------------------------+


/**
* TitleImageSwitcher
*
* @author	hebing
*/
var TitleImageSwitcher = {

	imageContainer : null
	,
	qlContainer : null
	,
	activeImage : null
	,
	nextImage : null
	,
	doFadeOut : true
	,
	letImageStay : 5000
	,
	cnt : 0
	,
	/**
	* init
	*
	* @return	void
	*/
	init: function(evt) {
		//hole zuerst alle Titelbilder
		TitleImageSwitcher.imageContainer = $$('div.titlearea');
		if(TitleImageSwitcher.imageContainer.length < 2){
			//keine Bilder zum Switchen da...
			return;
		}

		//hole dann alle Ql
		TitleImageSwitcher.qlContainer = $$('div.Quicklinks ul li a');
		TitleImageSwitcher.highlightQLEntry();

		TitleImageSwitcher.activeImage = TitleImageSwitcher.imageContainer[0]; //erstes Bild
		TitleImageSwitcher.nextImage = TitleImageSwitcher.imageContainer[1]; //zweites Bild

		// modify the styles of the mainbar-container
		$$('div.mainbar')[0].setStyle({'position':'relative','paddingTop':'292px'});

		//verstecke alle Bilder ausser das Erste
		TitleImageSwitcher.hideAdditionalImages();

		//Start ein- und ausblenden
		TitleImageSwitcher.fadeInAndFadeOut();
	}
	,
	/**
	* hide the additional "images" and set some styles?!?
	* @return	void
	*/
	hideAdditionalImages : function(){
		TitleImageSwitcher.imageContainer.each(function(elem,index){
			elem.setStyle({'position':'absolute','top':0,'height':'292px'});
			if( index>0 ){
				// elem.style.display = "none";
				elem.setStyle({'display':'none'});
			}
		});
	}
	,
	fadeInAndFadeOut: function(){
		window.setInterval(TitleImageSwitcher.doFadeIn, TitleImageSwitcher.letImageStay);
		window.setInterval(TitleImageSwitcher.doFadeOut, TitleImageSwitcher.letImageStay);
	}
	,
	doFadeIn: function(){
		Effect.Appear(TitleImageSwitcher.nextImage, {
				 duration:2.0
				,afterFinish : function(){
					TitleImageSwitcher.moveActiveImageToLastPosition();
				}
				,beforeStart : function(){
					window.setTimeout(TitleImageSwitcher.highlightQLEntry,TitleImageSwitcher.letImageStay/8);
				}
			}
		);
	}
	,
	doFadeOut: function(){
		Effect.Fade(TitleImageSwitcher.activeImage, {
				duration:2.0
			}
		);
	}
	,
	moveActiveImageToLastPosition: function(){
		//aktualisiere zuerst alle Titelbilder
		TitleImageSwitcher.imageContainer = $$('div.titlearea');
		var movingElement = Element.remove(TitleImageSwitcher.activeImage);
		var lastElement = $(TitleImageSwitcher.imageContainer[TitleImageSwitcher.imageContainer.length-1]);

		//Verschiebe das erste Bild an letzte Stelle
		// movingElement.style.display="none";
		movingElement.setStyle({'display':'none'});
		if( !lastElement ){
			return;
		};
		lastElement.insert({
			after:movingElement
		});

		//aktualisiere nochmal nach dem Verschieben alle Titelbilder
		TitleImageSwitcher.imageContainer = $$('div.titlearea');
		//erstes Bild
		TitleImageSwitcher.activeImage = TitleImageSwitcher.imageContainer[0];
		//zweites Bild
		TitleImageSwitcher.nextImage = TitleImageSwitcher.imageContainer[1];
	}
	,
	highlightQLEntry: function(){
		//console.log(TitleImageSwitcher.qlContainer);
		var a = TitleImageSwitcher.cnt%TitleImageSwitcher.qlContainer.length;
		var b = a-1;
		if(b < 0){
			b=TitleImageSwitcher.qlContainer.length-1;
		}
		if(TitleImageSwitcher.qlContainer[a]){
			TitleImageSwitcher.qlContainer[a].addClassName('active');
		}
		if(TitleImageSwitcher.qlContainer[b]){
			TitleImageSwitcher.qlContainer[b].removeClassName('active');
		}
		TitleImageSwitcher.cnt++;
	}
}


/**
* Call the initPager function when document has been loaded
*/
Event.observe(window, 'load', TitleImageSwitcher.init);
