/*
	20090323 tomc
	20090601 tomc
*//*

	GENERIC SLIDESHOW
	
*/
var Slideshow = new Class({
	
	ssDiv		:null,
	ssIndex		:0,
	ssInt		:0,
	ssPeriod	:5000,
	activeSlide :false,
	
	
	/*
		CONSTRUCTION TIME
		
	*/
	initialize:function( div ){
		this.ssDiv = div;
		var slides = div.getElements('.slide');
		if( !slides.length ) return;
		
		// DISCOVER ACTIVE SLIDE //
		var foundActive = false; 
		slides.each(function(slide){
			if( slide.hasClass("active") && !foundActive ){
				if(foundActive){
					slide.removeClass("active");
				}
				else{
					foundActive = true;
				}
			}
		});
		if( !foundActive ){
			slides[0].addClass("active");
		}
		
		this.activeSlide = slides[0];
		
		/*
			RESET STYLES OF SLIDE ELEMENTS
		*/
		slides.each(function( slide, _i, _v ){
			
			this.ssPeriod = 6000;
			slide.set('tween',{ duration:2000, transition: Fx.Transitions.Quad.easeOut });
			slide.getElements("*").set('tween',{ duration:2000, transition: Fx.Transitions.Quad.easeOut });
			
			
			
			
			if( slide.hasClass('active') ){
				slide.setStyles({
					zIndex		:1,
					opacity		:1,
					display		:'block'
				});
			}
			else{
				slide.setStyles({
					zIndex		:0,
					opacity		:0,
					display		:'block'
				});
			}
			
		}, this );
		
		/*
			START THE SLIDE SHOW
		*/
		this.resume();
	},
	
	
	/*
		BEGIN SLIDESHOW
	*/
	resume:function(){
		this.ssInt = this.nextSlide.periodical( this.ssPeriod, this );
	},
	
	
	/*
		SEEK A PARTIULAR SLIDE
	*/
	seek:function( _i ){
		$clear( this.ssInt );
		nextSlide( _i );
	},
	
	
	/*
		reindex z order
	*/
	zauto:function(){
		this.ssDiv.getElements( '.slide' ).each( function( slide, index, slides ){
			slide.setStyle( 'z-index', 0 );
		});
	},
	
	/*
		DEATIVATE SLIDE
	*/
	deactivate:function( slide ){
		this.zauto();
		slide.setStyle( 'z-index', 1 );
		slide.removeClass( 'active' );
		slide.getElements("*").fade(1,0);
		slide.fade(1,0);
	},
	
	
	/*
		ACTIVATE SLIDE
	*/
	activate:function( slide ){
		slide.setStyle("z-index", 2);
		slide.addClass('active');
		this.activeSlide = slide;
		slide.getElements("*").fade(0,1);
		slide.fade(0,1);
	},
	
	
	/*
		
	*/
	nextSlide:function(  ){
		var slides 		= this.ssDiv.getElements('.slide');
		var complete 	= false;
		
		slides.each( function( slide, index, slides){
			if( complete ) return;
			
			if( slide == this.activeSlide ){
				
				var next = slides[0];
				
				if( index < slides.length - 1 ){
					next = slides[index+1];
				}
				
				this.deactivate( slide );
				this.activate( next );
				
				this.activeSlide = next;
				
				complete = true;
			}
		}, this);
	}
});




