$(document).ready(function(){

    function startSlideShow() {

        // Show text for initial slide
        setTimeout(function(){
            $('#slideshow .active .slide-text').animate({height:'show'});
        }, 1000);

        // Start slide cycle
        return setInterval ( function(){

            // Update Slide Buttons
            var current = $('#slide-count .active');
            var next =  $('#slide-count .active').next().length ? $('#slide-count .active').next() : $('#slide-count li:first');
            current.removeClass('active');
            next.addClass('active');

            // Update Slides
            var currentSlide = $('#slideshow .active');
            var nextSlide = $('#slideshow .active').next().length ? $('#slideshow .active').next() : $('#slideshow div:first');

            // Animate FadeIn/FadeOut
            currentSlide.addClass('last-active');
            nextSlide.css('opacity','0.0')
            .addClass('active')
            .animate({opacity:'1.0'},function(){
                currentSlide.removeClass('active last-active');
                currentSlide.find('.slide-text').css('display','none');
            });

            // Show text for new slide
            setTimeout(function(){
                nextSlide.find('.slide-text').animate({height:'show'});
            }, 1000);

        }, 5000 );

    }

    // Initialize Slideshow
    var slideShowId = startSlideShow();



    // Jump to slide
    $('#slide-count a').click(function(){

        if ($(this).parent().hasClass('active')) return false;

        clearInterval(slideShowId);
        var selected = $(this).parent().index();

        $('#slide-count').find('.active').removeClass('active');
        $(this).parent().addClass('active');

        var currentSlide = $('#slideshow .active');
        var nextSlide = $('#slideshow .slide:eq('+selected+')');

        $('#slideshow').find('last-active').removeClass('last-active');
        currentSlide.addClass('last-active');

        nextSlide.css('opacity','0.0')
        .addClass('active')
        .animate({opacity:'1.0'},function(){
            currentSlide.removeClass('active last-active');
            currentSlide.find('.slide-text').css('display','none');
        });

        slideShowId = startSlideShow();

        return false;
    });

});
