Rotator = Ext.extend(Object, {
    constructor: function(config){
    	Rotator.superclass.constructor.apply(this);
    	
    	this.list = Ext.get(config.list);
    	this.limit = config.limit;
    	
    	this.duration = config.duration;
    	this.duration = (this.duration != null)?this.duration:5000;
    	
    	
    	if(this.list != null){
    		this.init();
    	}
    },
    init:function()
    {	
		this.counter = 0;
		
		this.task = {
			run:this.rotateImage,
			scope:this,
			interval:this.duration
		};
		
		this.runner = new Ext.util.TaskRunner();
				
		this.delayRotate();
    },
    delayRotate:function(){
    	if(this.dtask)this.dtask.cancel();
    	
    	this.dtask = new Ext.util.DelayedTask(function(){
			this.runner.start(this.task);	
		},this);
		
		this.dtask.delay(5000);
    },
    rotateImage:function(){
    	
    	var el1 = new Ext.Element(this.list.dom.children[this.counter]);
    	
    	var next = (this.counter+1)%this.limit;
    	
    	var el2 = new Ext.Element(this.list.dom.children[next]);
    	
    	
    	el1.setVisible(false,true);
    	el2.setVisible(true,true);
    	
    	this.counter = next;
    }
});
