// ============================================
// Client Rotator
//    image rotator for homepage
//    author: John Norton
//    date: 7/22/09
//    version: 0.1
// ============================================
(function($) {
    $.fn.ClientRotator = function(options) {
        //var obj = jQuery.extend({ obj: $('.logoGroup') }, { obj: $('.logoGroup') });
        var settings = jQuery.extend({
            itemType: 'a', //The stories to rotate (jQuery Selector)
            fadeTime: 1000, //Time it takes to fade between images. 1000 = 1s (Integer)
            waitTime: 2000, //Time to hold a story in place before it rotates again. 1000 = 1s (Integer)
            waitToStart: 2000, //Initial wait time. 1000 = 1s (Integer)
            numberToShow: 1, //The number of items per loop (Integer)
            animation: 'fade', //Accepts all available animations even the ones provided in the jQuery.UI if present.
            //Possible values: 'blind', 'clip', 'drop', 'explode', 'fade', 'fold', 'highlight', 'slide', 'slide-v'.
            //If jQuery.UI is not present only 'fade' is available.
            temp: null,
            obj: '.logoGroup'
        }, options || {});

        $.fn.ClientRotator.FadeOut = function() {
            //alert('hi');
            settings.temp = $(settings.obj).find('> ' + settings.itemType + ':visible').get(settings.numberToShow - 1);
            $.each($(settings.obj).find('> ' + settings.itemType + ':visible'), function() {
                o = $(this);
                if (settings.animation == 'fade')
                    $(o).fadeOut(settings.fadeTime);
                else if (settings.animation == 'slide-v')
                    $(o).slideUp(settings.fadeTime);
                else
                    $(o).hide(settings.animation, {}, settings.fadeTime);
            });
            setTimeout($.fn.ClientRotator.FadeIn, settings.fadeTime + 100);
        }

        $.fn.ClientRotator.FadeIn = function() {
            shown = settings.temp;
            for (i = 0; i < settings.numberToShow; i++) {
                o = $(shown).next(settings.itemType);
                if ($(o).size() < 1) {
                    o = $(settings.obj).find('> ' + settings.itemType + ':first');
                }
                shown = o;
                if (settings.animation == 'fade')
                    $(o).fadeIn(settings.fadeTime);
                else if (settings.animation == 'slide-v')
                    $(o).slideDown(settings.fadeTime);
                else
                    $(o).show(settings.animation, {}, settings.fadeTime);
            }
            setTimeout($.fn.ClientRotator.FadeOut, settings.waitTime + settings.fadeTime);
        }

        $(document).ready(function() {
            setTimeout($.fn.ClientRotator.FadeOut, settings.waitToStart);
            $(settings.obj).find(settings.itemType + ':gt(' + (settings.numberToShow - 1) + ')').css('display', 'none');
        });
    };
})(jQuery);