﻿(function($){
	$.fn.FadeInFadeOut = function() {
		this.each( function(){
			var timer;
			var obj = $(this);			
			var currentSlide;
			var totalSlides;
			var pause = $( ".pause", obj );
			var play = $( ".play", obj );
			var nextBtn = $( ".next", obj );			
			var prevBtn = $( ".previous", obj );			

			$( '.backgrounds, .details', obj ).css( 'position', 'relative' );
			$('.backgrounds .item', obj).css({ position: 'absolute', top: 0, left: 0, 'opacity': 0 }).hide().filter(':first').show();
			$('.details .detail', obj).css({ position: 'absolute', top: 0, left: 0, 'opacity': 0 }).hide().filter(':first').show();
			
			function stop(){
				pause.hide();
				play.show();
				clearInterval( timer );				
			}

			function start() {
				play.hide();
				pause.show();								
				timer = setInterval( DoFading, 5000 );
			}
			
			function FadeNext() {
				stop();
				DoFading( false );
			}
			
			function FadePrevious() {
				stop();			
				manual = { 
					current: (currentSlide == 0) ? totalSlides : currentSlide - 1,
					prev: currentSlide
				};				
				DoFading( manual );
			}
			
			function DoFading( manual, delay_f ) {
				if( ! manual ) {
					currentSlide++;
				
				if( ! delay_f )
					delay_f = 1000;	

					prevSlide = currentSlide - 1;
					if( prevSlide < 0 )
						prevSlide = 0;
					
					if( currentSlide > totalSlides )
						currentSlide = 0;
				} else {
					currentSlide = manual.current;
					prevSlide = manual.prev;
				}

				$( '.backgrounds .item:eq(' + currentSlide + '),.details .detail:eq(' + currentSlide + ')', obj ).delay( delay_f ).show().animate( { 'opacity': 1, 'filter' : 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100);' }, delay_f );
				$( '.backgrounds .item:eq(' + prevSlide + '), .details .detail:eq(' + prevSlide + ')', obj ).fadeTo( 2000, 0 );
			}

			pause.click( stop );			
			play.click( start );
			nextBtn.click( FadeNext );
			prevBtn.click( FadePrevious );
			
			totalSlides = Math.min( $('.backgrounds .item', obj).length, $('.details .detail', obj).length ) - 1;
			currentSlide = 0;
			prevSlide = 2;
			start();
			$( '.backgrounds' ).prepend( $('.backgrounds .item:eq(0)').clone().attr( 'id', 'remove_clone_1' ) );
			$( '.details' ).prepend( $('.details .detail:eq(0)').clone().attr( 'id', 'remove_clone_2' ) );
			DoFading( false, 10 );			
			$( '#remove_clone_1, #remove_clone_2' ).remove();
			currentSlide = 0;
			prevSlide = 2;
		} );
	}
})(jQuery);

jQuery(function($){	
	$('.carousel').delay('50000').FadeInFadeOut();
});
