function slide_autoOn_rewind(slide_id, segundos)
{
    this.slide_cont = null;
    this.images = new Array();
    this.start = null;
    this.actual = 0;
    this.pos_actual = null;
    this.pos_alcanzar = null;
    this.new_index = 0;
    this.tiempo = true;
    var _this = this;

    this.posicion_alcanzar = function()
    {
        _this.pos_actual = _this.slide_cont.offsetLeft;
        _this.new_index = _this.images[_this.actual + 1]? _this.actual+1:0;
        _this.pos_alcanzar = -(_this.images[_this.new_index].offsetLeft);
    }
    this.anyadirEvento = function(elemento,evento,funcion)
    {
	if(elemento.addEventListener)return elemento.addEventListener(evento,funcion,false);
        if(elemento.attachEvent)return elemento.attachEvent("on"+evento,funcion);
    }
    this.init = function(){_this.anyadirEvento(window,"load",_this.load)}
    this.load = function()
    {
        _this.slide_cont = document.getElementById(slide_id);
        _this.images = _this.slide_cont.getElementsByTagName('img');
        var sum_img = 0;
        for(var i = 0; i < _this.images.length; i++){
             sum_img += _this.images[i].offsetWidth;
        }
        _this.slide_cont.style.width = sum_img + 'px';

        _this.posicion_alcanzar();
        setTimeout(_this.interval, segundos);
    }
    this.interval = function()
    {
        if(_this.tiempo){
            _this.start = new Date().getTime();
            _this.tiempo = false;
        }
        setTimeout(function(){
            if(!_this.next()){
                clearInterval(_this.interval);
                _this.mover(1);
                _this.tiempo = true;
                _this.actual = _this.new_index;
                _this.siguienteMov();
                return;
            }
            _this.mover(_this.next());
            _this.interval();
        },13);
    }
    this.siguienteMov = function()
    {
        _this.posicion_alcanzar();
        setTimeout(_this.interval, segundos);
    }
    this.mover = function(p)
    {
        var mov_slide = _this.pos_actual + ((_this.pos_alcanzar - _this.pos_actual)*p);
        _this.slide_cont.style.left = mov_slide+'px';
    }
    this.next = function()
    {
        var now = new Date().getTime();
        if((now - _this.start)>1000){
            return false;
        }
        return _this.easing((now - _this.start+.001)/1000);
    }
    this.easing = function(p)
    {
        return (Math.pow((p-1), 3) +1);
    }
}
var slide = new slide_autoOn_rewind('slide_cont', 7000);
slide.init();
slide = null;