if (typeof Effect == 'undefined')
	throw("wink.js requires including script.aculo.us' effects.js library!");

var wink = Class.create({
	//
	//  Setup the Variables
	//
	lis : null,

	//
	//  Initialize
	//
	initialize: function(container, options) {
        if (!$(container)) {
            throw(container+" doesn't exist!");
            return false;
        }

		this.options = Object.extend({
			delay : 1000,
			start_frame : 0
		}, options || {});

        this.lis = $(container).getElementsByTagName('li');

        for( i=0; i < this.lis.length; i++){
        	if(i!=this.options.start_frame){
        		this.lis[i].style.display = 'none';
        	}
        }

        end_frame = this.lis.length -1;

        this._start_slideshow(this.options.start_frame, end_frame, this.options.delay);
	},

    _start_slideshow : function(start_frame, end_frame, delay) {
    	setTimeout(this._fadeInOut(start_frame,start_frame,end_frame, delay, this), delay);
    },

    _fadeInOut : function(frame, start_frame, end_frame, delay, obj) {
        return (
            function() {
                Effect.Fade(obj.lis[frame]);

                if (frame == end_frame) { frame = 0; } else { frame++; }

                lisAppear = obj.lis[frame];
                setTimeout("Effect.Appear(lisAppear);", 0);
                setTimeout(obj._fadeInOut(frame, start_frame, end_frame, delay, obj), delay + 1850);
            }
        )
    }
});

