function Slider(elem)
{
    this.$elem = $(elem);
    this.timeoutId = null;
    this.interval = 3000;
    this.speed = 1000;
    
    this.startAnimating();
}

Slider.prototype.animateToNextFrame = function()
{
    var first = this.$elem.children().first();
    first.css("opacity", 0);
    first.moveToBottom();
    first.animate({
        "opacity": 1
    }, this.speed);
};

Slider.prototype.stopAnimating = function()
{
    if(this.timeoutId !== null)
    {
        clearInterval(this.timeoutId);
        this.timeoutId = null;
    }
};

Slider.prototype.startAnimating = function()
{
    this.stopAnimating();
        
    this.$elem.children().css("position", "absolute");
    
    var self = this;
    this.timeoutId = setInterval(function()
    {
        self.animateToNextFrame();
    }, self.interval);
};
