/*
*  Copyright notice
*
*  (c) 2007 Philipp Affenzeller <philipp@verdino.com> & Philipp Reisinger <philipp.reisinger@verdino.com>
*  All rights reserved
*/
document.observe('contentloaded', loadingSlideShowFunction, false);
Event.observe(window, 'load', initSlideShowFunction, false);


//Helper function that gets random numbers between min and max
function getRandom(min, max)
{		
	var randomNum = Math.random() * (max-min); 

// Round to the closest integer and return it
	return(Math.round(randomNum) + min); 
}



function loadingSlideShowFunction () {
		
	
	
		if ($$(".slideshow_wrapper")) {
	
		slideshow_array = $$(".slideshow_wrapper");
		slideshow_array.each(function(arrayitem) {
			buildImageSlideshow(arrayitem);
		})

	}


}

function initSlideShowFunction () {
	
	
	

	if ($$(".mitarbeiter_image_wrapper")) {
		var mitarbeitertoggleimage = $$(".mitarbeiter_image");
		mitarbeitertoggleimage.each(function(arrayitem) {
											 
	
			var slideshow = $(arrayitem).down(".slideshow_wrapper");
			

			Event.observe(arrayitem,'click', function(event) {  toggleImageSlideshow(slideshow, "next");  Event.stop(event);});
		})
	}
	
	
	
	
	if ($$(".slideshow_wrapper")) {
		
		slideshow_navigation = $$(".slideshow_nav");
		slideshow_navigation.each(function(arrayitem) {
								   
			Event.observe(arrayitem,'click',function(event) {  slideShowManager(this);  Event.stop(event); });
		
		})
		
	}
	 
	
}


/*
function toggleSlideShowPlaying() {



	var element = $(this);
	
	
	
	
	
	while(!element.hasClassName("mitarbeiter_wrapper")) {
			element = element.up();				   
							   
	}
	
//	alert(Element.inspect(element));
	
	
	

	
	
	slideshow = element.down(".mitarbeiter_inhalt_wrapper").down().down().down(".slideshow_wrapper");
	

	toggleMitarbeiterElement(element.down(".mitarbeiter_text_wrapper").down());


	
//	alert(Element.inspect(element));
	 
	

	if(slideshow.hasClassName("playing")) {
	
		intervalID.stop();
		slideshow.removeClassName("playing");
		
		
	}
	else {
		
		intervalID = new PeriodicalExecuter(function () {toggleImageSlideshow(slideshow, "next")}, slideDelay);
		slideshow.addClassName("playing");
		
	}
	
}
*/







//BUILD THE SLIDESHOW
function buildImageSlideshow(slideshow){
	
	var	images_array = slideshow.down().childElements();
	var captions_array = slideshow.down().next().childElements();
	
	
	var i = 1;
	var j = 1;
	
	images_array.each( function(item) {
					
		if(i == 1) {
			new Insertion.Bottom(slideshow.down('.slideshow_nav'), "<div class='slideshow_nav_number first activeslide'>01</div>");
		}
		else if(i < 10 ) {
			new Insertion.Bottom(slideshow.down('.slideshow_nav'), "<div class='slideshow_nav_number'>0" + i  +"</div>");		
			item.style.display = "none";
		}
		else {
			new Insertion.Bottom(slideshow.down('.slideshow_nav'), "<div class='slideshow_nav_number'>" + i  +"</div>");	
			item.style.display = "none";
		}
		
		i++;
		
	});
	
	captions_array.each( function(item) {
		
		if(j != 1) {
			item.style.display = "none";
		}
		
		
		j++;
		
	});
		
		
	
	//Start the slideshow if animate is on
	if(animate_slideshow == 1) {
		startSlideShow(slideshow);
		
	}

}


function startSlideShow(_slideshow) {
	
	//new PeriodicalExecuter(function() { toggleImageSlideshow(_slideshow, "next") }, 1000 );	
	
	intervalID = setInterval(function () {toggleImageSlideshow(_slideshow, "next")}, time);
	
	
	
}




function slideShowManager(arrayitem) {
	
	
	//clearInterval(intervalID);
	
		 
	var element = arrayitem;
	var slideshow = element.up().up();
	var nextSlideNumber = element.innerHTML - 1;
	
	toggleImageSlideshow(slideshow, nextSlideNumber);
	
	var next = "next";
	
	
	//intervalID = new PeriodicalExecuter(toggleImageSlideshow(slideshow, "next"), slideDelay);
	//intervalID = setInterval(function () {toggleImageSlideshow(slideshow, "next")}, slideDelay);
	
}




//Change the slide
function toggleImageSlideshow(slideshow, nextSlideNumber){
	
	
	//Get the number of the active slide
	
	var	nav_array = slideshow.down('.slideshow_nav').childElements();
	
	nav_array.each(function(arrayitem) {
							
		if(arrayitem.hasClassName("activeslide")) {
	
			activeSlide = arrayitem;
			foundActiveSlide = true;
		
		}
		
	})
	
	
	 
	var activeSlideNumber = activeSlide.innerHTML - 1;
	

	if(nextSlideNumber != activeSlideNumber)  
	{ 
	
		// Check if same slide is clicked
		var	images_array = slideshow.down().childElements();	
		var	captions_array = slideshow.down().next().childElements();	
		
			
		
		if( nextSlideNumber == "next" ) 
		{
			nextSlideNumber = activeSlideNumber + 1;
			
		}
			
		if(nextSlideNumber == images_array.size() ) // Check if end of array is reached
		{
			nextSlideNumber = 0;
		}
		
		
		//Update the class
		nav_array[activeSlideNumber].removeClassName('activeslide');
		nav_array[nextSlideNumber].addClassName('activeslide');
		
		
		
		
		
		
		
		//FADE OUT IMAGE & CAPTION
		if(browserIsIE6 || browserIsIE7) {
			
			
			new Effect.Fade(captions_array[activeSlideNumber], {duration:0.5, from:1.0, to:0.0});
			new Effect.Fade(images_array[activeSlideNumber], {duration:0.5, from:1.0, to:0.0, afterFinish: fadeInSlideIE6});
			
		}
		else {
			
			new Effect.Fade(captions_array[activeSlideNumber], {duration:0.5, from:1.0, to:0.0});
			new Effect.Fade(images_array[activeSlideNumber], {duration:0.5, from:1.0, to:0.0});
	
			new Effect.Appear(captions_array[nextSlideNumber], {duration:0.5, from:0.0, to:1.0});
			new Effect.Appear(images_array[nextSlideNumber], {duration:0.5, from:0.0, to:1.0,  afterFinish: fadeInSlide});
			
			
		}
	
	
		
		
		
	}
	
	function fadeInSlideIE6() {
			
		//Fade in the Image & the Caption for IE6 and IE7
		
	
		
		new Effect.Appear(captions_array[nextSlideNumber], {duration:0.5, from:0.0, to:1.0});
		new Effect.Appear(images_array[nextSlideNumber], {duration:0.5, from:0.0, to:1.0});
		
		captions_array[activeSlideNumber].style.display = "none";
		images_array[activeSlideNumber].style.display = "none";
			
			
	
	}
	
	function fadeInSlide() {
			
			//Fade in the Image & the Caption for other Browsers
			
			captions_array[activeSlideNumber].style.display = "none";
			images_array[activeSlideNumber].style.display = "none";
			
	}
	
	
		
			
}