﻿/// <reference path="../Scripts/jquery-1.2.6.js" />

/// <reference path="../Scripts/jquery-1.2.6.min-vsdoc.js" />
jQuery.fn.fader = function(options) {
    if (!options.slideClass || options.slideClass == "") {
        var error = new Error();
        error.message = "No slide class has been supplied";
    }

    if (!options.slideDuration || !parseInt(options.slideDuration)) {
        options.slideDuration = 4000;
    }

    if (!options.fadeOutDuration || !parseInt(options.fadeOutDuration)) {
        options.fadeOutDuration = 4000;
    }


    if (!options.fadeInDuration || !parseInt(options.fadeInDuration)) {
        options.fadeInDuration = 4000;
    }

    return this.each(function() {
        var startPoint = 0;
        if (options.randomStart)
            startPoint = Math.floor(Math.random() * $(this).find(options.slideClass).length);
        $(this).find(options.slideClass).hide();
        $(this).find(options.slideClass + ":eq(" + startPoint + ")").show();
		$(this).css({position: "relative",clear:"both",height:$(this).find(options.slideClass + ":eq(0)").height()});
		$(this).find(options.slideClass).css({position: "absolute",top:"0px",left:"0px"});
        var currentIndex = startPoint;
        var obj = $(this);
        var t = setInterval(function() {
            obj.find(options.slideClass + ":eq(" + currentIndex + ")").fadeOut(options.fadeOutDuration, function() {
                currentIndex++;
                if (currentIndex > obj.find(options.slideClass).length - 1)
                    currentIndex = 0;
                obj.find(options.slideClass + ":eq(" + currentIndex + ")").fadeIn(options.fadeInDuration);
            });
        }, options.slideDuration + options.fadeOutDuration + options.fadeInDuration);
    });
};
