﻿/// <reference path="jquery-vsdoc.js" />

(function($) {

    $.fn.cycleVisibility = function(options) {
        var imgs = this;
        var defaults = {
            interval: 8000,
            defer: 0,
            fadeOut: 'normal',
            fadeIn: 'normal'
        };

        var options = $.extend(defaults, options);

        imgs.each(function(i) {
            if (i > 0) {
                $(this).hide();
            }
        });

        var visibleIndex = 0;

        setTimeout(function() {
            setInterval(function() {
                imgs.eq(visibleIndex).fadeOut(options.fadeOut, function() {

                    ++visibleIndex;

                    if (visibleIndex >= imgs.length) {
                        visibleIndex = 0;
                    }

                    imgs.eq(visibleIndex).fadeIn(options.fadeIn);
                });
            }, options.interval);
        }, options.defer);
    };

    $.fn.slideVisibility = function(options) {
        var imgs = this;
        var defaults = {
            interval: 8000,
            defer: 0,
            fadeOut: 'normal',
            fadeIn: 'normal'
        };

        var options = $.extend(defaults, options);

        imgs.each(function(i) {
            if (i > 0) {
                $(this).show().animate({ opacity: 0, left: -100 }, 0);
            }
        });

        var visibleIndex = 0;

        setTimeout(function() {
            setInterval(function() {
                imgs.eq(visibleIndex).animate({ opacity: 0, left: -100 }, options.fadeOut);

                ++visibleIndex;

                if (visibleIndex >= imgs.length) {
                    visibleIndex = 0;
                }

                imgs.eq(visibleIndex).animate({ opacity: 1, left: 0 }, options.fadeIn);

            }, options.interval);
        }, options.defer);
    };

})(jQuery);

$(function() {
    $('#home-projects img').cycleVisibility();
    $('#home-testimonials img').cycleVisibility({ defer: 4000 });
    $('#diagram-big-texts img').slideVisibility({ interval: 4000 });
});
