function BannerList(containerId){
	this.elementList = new Array();
	this.actual = 0;
	this.containter = document.getElementById(containerId);
	
	this.timer = new Timer(this);
	this.passTime;
	
	
	
	this.add = function (obj){
		var pos = this.elementList.length;
		this.elementList[pos] = obj;
		return true;
	}
	
	this.getList = function(){
		return this.elementList;
	}
	this.getPos = function(pos){
		return this.elementList[pos];
	}
	
	this.count = function(){
		return this.elementList.length;
	}
	
	
	

	
}
BannerList.prototype.rotate = function(d){
		if(d)
			this.passTime = d*1000;
			
		if(this.actual == 0){
			this.actual=Math.floor(Math.random()*this.count());
		}
		var obj = this.getPos(this.actual);
		//this.containter.innerHTML = obj.toHTML();
		this.containter.innerHTML = obj.toHTML();
		
			this.actual++;	
			this.actual = (this.actual == this.count()) ? 0: this.actual;
		
		this.timer.setTimeout("rotate()",this.passTime) ;
}

function Banner(html){
	this.html = html;
	//this.url = url;	
	this.toHTML = function (){
		return this.html;
	}
	
	/*this.toHTML = function (){
		var html = '';
		html += '<a href="'+this.url+'">';
		html += '<img src="'+this.image+'" />';
		html += '</a>';
		return html;
	}*/
}



/* TIMER */

// JavaScript Document

// The constructor should be called with
// the parent object (optional, defaults to window).

function Timer(){
    this.obj = (arguments.length)?arguments[0]:window;
    return this;
}

// The set functions should be called with:
// - The name of the object method (as a string) (required)
// - The millisecond delay (required)
// - Any number of extra arguments, which will all be
//   passed to the method when it is evaluated.

Timer.prototype.setInterval = function(func, msec){
    var i = Timer.getNew();
    var t = Timer.buildCall(this.obj, i, arguments);
    Timer.set[i].timer = window.setInterval(t,msec);
    return i;
}
Timer.prototype.setTimeout = function(func, msec){
    var i = Timer.getNew();
    Timer.buildCall(this.obj, i, arguments);
    Timer.set[i].timer = window.setTimeout("Timer.callOnce("+i+");",msec);
    return i;
}

// The clear functions should be called with
// the return value from the equivalent set function.

Timer.prototype.clearInterval = function(i){
    if(!Timer.set[i]) return;
    window.clearInterval(Timer.set[i].timer);
    Timer.set[i] = null;
}
Timer.prototype.clearTimeout = function(i){
    if(!Timer.set[i]) return;
    window.clearTimeout(Timer.set[i].timer);
    Timer.set[i] = null;
}

// Private data

Timer.set = new Array();
Timer.buildCall = function(obj, i, args){
    var t = "";
    Timer.set[i] = new Array();
    if(obj != window){
        Timer.set[i].obj = obj;
        t = "Timer.set["+i+"].obj.";
    }
    t += args[0]+"(";
    if(args.length > 2){
        Timer.set[i][0] = args[2];
        t += "Timer.set["+i+"][0]";
        for(var j=1; (j+2)<args.length; j++){
            Timer.set[i][j] = args[j+2];
            t += ", Timer.set["+i+"]["+j+"]";
    }}
    t += ");";
    Timer.set[i].call = t;
    return t;
}
Timer.callOnce = function(i){
   try{
   if(!Timer.set[i]) return;
    aux = eval(Timer.set[i].call) ? true:false;
   }catch (error){
   // code
 } finally {
    //code
 }
    Timer.set[i] = null;
   
}
Timer.getNew = function(){
    var i = 0;
    while(Timer.set[i]) i++;
    return i;
}