var slideshow_TIME = 7000; //ms
var slideshow_DURATION_OUT = 1000; //ms
var slideshow_DURATION_IN = 250; //ms

var slideshow_slide_count=0;
var slideshow_slide_i=0;
function slideshow_init_slide( self ){
	
	/* for ie: fade out. it doesn't work to set value in css */
	if( self.get( 'id' ) != 'slide-0' ){
		new Fx.Tween( $(self), {
			duration: 1,
			property: 'opacity',
		} ).start( 0 );
	}
}

function slideshow_init(){

	var slides = $$('#slideshow .slide');

	slideshow_slide_count = slides.length;

	slides.each( slideshow_init_slide );

	$( 'plink-0' ).addClass( 'sel' );
}

function slideshow_fade_out(){

	var i = slideshow_slide_i;

	//console.log( 'out: ' + i );

	var slide = $( 'slide-' + i );

	var fx = new Fx.Tween( slide, {
		duration: slideshow_DURATION_OUT,
		property: 'opacity',
		transition: 'sine:in',

		onComplete: slideshow_fade_in
	} );

	fx.start( 0 );

	// mark link
	$( 'plink-' + i ).removeClass( 'sel' );

	//slide.get('tween').start( 0 );
	//slide.fade( 'out' );
}

function slideshow_fade_in(){

	var i = (slideshow_slide_i+1)%slideshow_slide_count;
	slideshow_slide_i = i;

	//console.log( "-in: " + i );

	var slide = $( 'slide-' + i );
	//console.log( slide );

	var fx = new Fx.Tween( slide, {
		duration: slideshow_DURATION_IN,
		property: 'opacity',
		transition: 'sine:out',
		//onComplete: slideshow_fade_finish
	} );

	fx.start( 1 );

	// mark link
	$( 'plink-' + i ).addClass( 'sel' );

	//slide.get('tween').start( 1 );
	//slide.fade( 'in' );
}

function slideshow_fade_finish(){

	i=0;
	//console.log( "fin: " + i );
	var slide = $( 'slide-' + i );
	//console.log( slide.getStyle( 'opacity' ) );

}


function slideshow_run(){

	slideshow_fade_out();
}

document.addEvent( 'domready', function(){

	if( $('slideshow' ) ){

		slideshow_init();

		//slideshow_run();
		slideshow_run.periodical( slideshow_TIME );
	}

} );

