function Scroller(id, animation, speed) {
    this.id = id;
    this.aryDiv= new Array();
    this.nbDiv= 0;
    this.currDivIdx= 0;
    this.nextDivIdx= 0;
    this.width=180;
    this.height=250;
    if (speed) this.speed=-speed; else this.speed = -10;
    this.timer=0;
    this.run=true;
    this.alpha = 100;
    
    this.displayTime = 15000;
    
    if (animation) this.animation=animation; else this.animation = 'Diapo';
    
    this.Init = function () {
            tmp = _Elem(this.id).childNodes;
            j=0;
            for (i=0; i<tmp.length; i++) {
                    if (tmp[i].id){
                    this.aryDiv[j] = tmp[i];
                    j++;
                    }
            }
            
            if (this.aryDiv.length > 0) {
                    this.nbDiv = this.aryDiv.length;
                    this.currDivIdx = this.nbDiv-1;
                    
                    this.nextDivIdx = 0;
                    if (this.nextDivIdx>=this.nbDiv) this.nextDivIdx = 0;
            }
    };
    
    this.Swap = function() {
            this.timer = 10;
            eval ('this.'+this.animation+'()');
            if (this.run)
            eval ('this.TimeOut = setTimeout("s'+this.id+'.Swap()",this.timer);');
    }
    
    this.Change = function() {
            Hide(this.aryDiv[this.currDivIdx].id);
            Show(this.aryDiv[this.nextDivIdx].id);
            this.currDivIdx++;
            this.nextDivIdx++;
            if (this.currDivIdx>=this.nbDiv) this.currDivIdx = 0;
            if (this.nextDivIdx>=this.nbDiv) this.nextDivIdx = 0;
    }
    
    this.DiapoH = function() {
            this.width += this.speed;
            _Elem(this.id).style.width = this.width;			
            if (this.width == 0) {
                    this.speed = -this.speed;
                    this.Change();
            }
            if (this.width == 180) {
                    this.speed = -this.speed;
                    this.timer = this.displayTime ;
                    clearTimeout(this.TimeOut);
            }
            if (this.width == 180 && this.nbDiv == 1) this.run = false;			
    }
    
    this.DiapoVH = function() {
            _Elem(this.id).parentNode.style.verticalAlign = 'middle';
            this.height += this.speed;
            this.width += this.speed;
            _Elem(this.id).style.height = this.height;
            _Elem(this.id).style.width = this.width;
            if (this.width  == 0) {
                    this.speed = -this.speed;
                    this.Change();
            }
            if (this.width  == 180) {
                    this.speed = -this.speed;
                    this.timer = this.displayTime ;
                    clearTimeout(this.TimeOut);
            }
            if (this.width  == 180 && this.nbDiv == 1) this.run = false;						
    }
    
    this.DiapoV = function() {
            this.height += this.speed;
            _Elem(this.id).style.height = this.height;
            if (this.height == 0) {
                    this.speed = -this.speed;
                    _Elem(this.id).style.height = "1px";
                    this.Change();
            }
            if (this.height == 250) {
                    this.speed = -this.speed;				
                    this.timer = this.displayTime ;
                    clearTimeout(this.TimeOut);
            }
            if (this.height == 250 && this.nbDiv == 1) this.run = false;			
    }
    
    this.Fade = function () {
            this.alpha+=this.speed;
            _Elem(this.id).style.opacity = this.alpha/100;
            _Elem(this.id).style.MozOpacity = this.alpha/100;
            _Elem(this.id).style.filter = "alpha(opacity="+this.alpha+")";
            if (this.alpha == 0) {
                    this.speed = -this.speed;
                    this.Change();
            }
            if (this.alpha == 100) {
                    this.speed = -this.speed;
                    this.timer = this.displayTime;
                    clearTimeout(this.TimeOut);
            }
            if (this.alpha == 100 && this.nbDiv == 1) this.run = false;	
    }
}	

function scrollInit(id, anim, speed) {
    eval('s'+id +'= new Scroller("'+id+'","'+anim+'","'+speed+'");');
    eval('s'+id +'.Init();');
    if (eval('s'+id +'.nbDiv') > 0)		
    eval ('setTimeout("s'+id+'.Swap()",s'+id+'.timer);');		
}