$(document).ready(function() {
    
    function rotator(selector, block) {
        $(selector + ' img:not(:first),' + selector + ' ' + block + ':not(:first)').hide();
        var $images = $(selector + ' .img img');
        var $blocks = $(block);

        var $currentKey = $(selector + ' .current').text('1');
        var $totalKey = $(selector + ' .total').text($blocks.length);

        var current = 0;

        var $prev = $(selector + ' .prev').text('');
        var $next = $(selector + ' .next').text('');

        $prev.click(function(event) {
            event.preventDefault();
            
            if($images.length) {
                $($images[current]).fadeOut(500);
            }
            $($blocks[current]).fadeOut(500, function() {
                var next = (current == 0) ? $blocks.length - 1 : current - 1;

                if($images.length) {
                    $($images[next]).fadeIn(500);
                }
                $($blocks[next]).fadeIn(500);

                current = next;

                $currentKey.text(current + 1);
            });
        });

        $next.click(function(event) {
            event.preventDefault();

            if($images.length) {
                $($images[current]).fadeOut(500);
            }
            $($blocks[current]).fadeOut(500, function() {
                var next = (current < $blocks.length - 1) ? current + 1 : 0;

                if($images.length) {
                    $($images[next]).fadeIn(500);
                }
                $($blocks[next]).fadeIn(500);

                current = next;

                $currentKey.text(current + 1);
            });
        });
    }
    
    var sRotator = new rotator('#speakerBlocks', '.speakerBlock');
    var tRotator = new rotator('#trackBlocks', '.trackBlock');
    var vRotator = new rotator('#videos', '.video');

});
