$(function(){
	$.fn.slideshow = function() {

		var this_slideshow = $(this);
        $('.slide').hide();
		$('.slide:first', this_slideshow).show();
		
		var random = 5+(Math.random()*(20-5));
		if ( $('.slide',this_slideshow).size() > 1 ) {
			var slide_interval = setInterval(autoSlide,(6 * 1000));
		}
		
		function autoSlide() {	
			nextSlide();		
			$('.details').fadeOut('slow');
			setTimeout(function() { $('.slide:visible .details, .controls').fadeIn('slow'); }, 2000);
		}
				
		function showDetail(){
		if ( $('.slide',this_slideshow).size() > 1 ) {		
			$('.slide:visible .details, .controls').fadeIn('slow');
		} else {
			$('.slide:visible .details').fadeIn('slow');		
		}
			clearInterval(slide_interval);
		};
		
		$('.details, .controls').hide();

		if ( $('.slide',this_slideshow).size() > 1 ) {		
			setTimeout(function() { $('.slide:visible .details, .controls').fadeIn('slow'); }, 2000);
		} else {
			setTimeout(function() { $('.slide:visible .details', this_slideshow).fadeIn('slow'); }, 2000);		
		}
		
		$(this).mouseover(function(){
			showDetail();
		});
		
		//Actions on slideshow controls		
		function changeSlide(slide_number) {
			$('.slide', this_slideshow).not(this).fadeOut(2000);
			$(".slide:eq(" + slide_number + ")", this_slideshow).fadeIn(2000);
			$(".controls li").removeClass('active');
			$(".controls li:eq(" + slide_number + ")").addClass('active');

		}
		
		//Number of slides
		var slide_count = $('.slide', this_slideshow).size();

		//Go to next slide
		function nextSlide() {
			var current_slide = $('.controls ul li.active').index();	
			if (current_slide == (slide_count -1)) {
				changeSlide(0);
			} else {
				changeSlide(current_slide + 1);
			}	
		}

		//Go to previous slide
		function prevSlide() {
			var current_slide = $('.controls ul li.active').index();		
			if (current_slide == 0) {
				changeSlide(slide_count - 1);
			} else {
				changeSlide(current_slide - 1);
			}
		}
				
		//Action on clicking next arrow
		$('.controls .next').click(function(){		
			clearInterval(slide_interval);
			nextSlide();
			showDetail();
			return false;
		});	
		
		//Action on clicking previous arrow
		$('.controls .prev').click(function(){
			clearInterval(slide_interval);
			prevSlide();
			showDetail();
			return false;
		});	

		//Action on clicking position bullet
		$('.controls li').click(function(){
			clearInterval(slide_interval);
			changeSlide($('.controls li').index(this));
			showDetail();
			return false;
		});
		
		$('.controls li').css({'cursor': 'pointer'});
	
	}
	
	$('#slide-full').slideshow();

});
