
(function( $ ){
$.fn.moodboard = function( options ) {

	var defaults = {
        slideshow_speed : 5000,
        pageswitch_speed : 800
	};

	var options = $.extend({}, defaults, options);

    return this.each(function() {
        // Reference to moodboard for access
        var self = $(this);

        // local vars
        self.playing = true,
        self.animation_interval = null,

        self.play = function () {
            self.addClass('playing').removeClass('stopped');
            self.animation_interval = setInterval(self.next, options.slideshow_speed);
            self.playing = true;
        }

        self.stop = function () {
            self.removeClass('playing').addClass('stopped');
            clearInterval(self.animation_interval);
            self.playing = false;
        }

        self.page_click = function () {
            self.playing = false;
            var page_id = $(this).attr('rel');
            //show_page(page_id);
            console.log(page_id);
            return false;
        }

        self.show = function (page_id, animated) {
            if (!page_id) {
                //clearInterval(self.animation_interval);
                return;
            } 
        	animated = animated == undefined ? true : animated;
            var $next = self.find('#'+page_id);
            if ($next.hasClass('active'))
                return;
            var $active = self.find('.page.active');

            if ($active.length && $active.queue().length > 0 || $next.queue().length > 0)
            	return;

            $active.removeClass('active');
            $next.addClass('active');

           	self.find('.nav a.page-link').removeClass('active');
            self.find('.nav a[rel="'+$next.attr('id')+'"]').addClass('active');

            if (animated) {
            	$next.fadeIn(options.pageswitch_speed, function () { $active.hide(); });
            } else {
            	$next.show();
            	$active.hide();
            }
            
        }

        self.next = function () {
            if (self.hasClass('stopped')) return;
            var $active = self.find('.page.active');
            var $next = $active.next().size() ? $active.next('.page') : self.find('.page:first');
            if (!$next.attr('id')) {
                return;
            }
            self.show($next.attr('id'));
        }

        self.page_click = function () {
            self.stop();
            var page_id = $(this).attr('rel');
            self.show(page_id);
            return false;
        }

        self.slidecontrol_click = function () {
            self.playing ? self.stop() : self.play();
            return false;
        }

        // Initialize
        self.find('.page').not('.active').hide();
        //self.show(self.find('.page:first')[0].id, false);
        self.find('#slidecontrol').click(self.slidecontrol_click);
        self.find('.nav a.page-link').click(self.page_click);

        self.play();
    });
};

$(function () {
    $(".moodboard").moodboard();
});

})( jQuery );



