var BANNER_DEFAULT_WIDTH=200;
var BANNER_DEFAULT_HEIGHT=60;
var BANNER_IMG=1;
var BANNER_SWF=2;

var BROWSER=navigator.appName;
switch(BROWSER) {
	case "Microsoft Internet Explorer": BROWSER="IE"; break;
	case "Netscape": BROWSER="NS"; break;
} // switch

function BannerImg(imgSrc,url,description,target,secs) {
	// Precargar la imagen
	var tmpImg=new Image();
	tmpImg.src=imgSrc;

	this.image=tmpImg;
	this.url=url;
	this.description=description;
	this.target=target;
	this.secs=secs;
	this.type=BANNER_IMG;
} // class

function BannerSwf(src,secs) {
	this.src=src;
	this.secs=secs;
	this.type=BANNER_SWF;
} // class

function BannerRotator(name,width,height,random) {
	this.name=name
	eval(this.name+"=this;");
	this.width=(width==null)?BANNER_DEFAULT_WIDTH:width;
	this.height=(height==null)?BANNER_DEFAULT_HEIGHT:height;
	this.random=(random==null)?false:random;
	this.banners=new Array();
	this.currentBannerIdx=0;
	this.currentBanner=null;

	this.addBannerSwf=function(src,secs) {
		this.banners.push(new BannerSwf(src,secs));
	} // addBannerSwf

	this.addBannerImg=function(imgSrc,url,description,target,secs) {
		this.banners.push(new BannerImg(imgSrc,url,description,target,secs));
	} // addBannerImg

	this.generateBanner=function(bannerTmp) {
		switch(bannerTmp.type) {
			case BANNER_IMG:
				return '<a href="'+bannerTmp.url+'" target="'+bannerTmp.target+'"><img src="'+bannerTmp.image.src+'" width="'+this.width+'" height="'+this.height+'" alt="'+bannerTmp.description+'" border="0"></a>';
				break;
			case BANNER_SWF:
				return '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,42,0" width="'+this.width+'" height="'+this.height+'"><param name="movie" value="'+bannerTmp.src+'"><param name="quality" value="high"><param name="wmode" value="transparent"><param name="loop" value="true"><param name="menu" value="false"><embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" width="'+this.width+'" height="'+this.height+'" src="'+bannerTmp.src+'" quality="high" wmode="transparent" loop="true" menu="false"></embed></object>';
				break;
		} // switch
	} // generateBanner

	this.changeBanner=function() {
		if(this.random) this.currentBanner=this.getRandomBanner();
		else this.currentBanner=this.getNextBanner();

		var bannerDiv=document.getElementById("div_"+this.name);
		bannerDiv.innerHTML=this.generateBanner(this.currentBanner);

		this.nextBanner();
	} // changeBanner

	this.getNextBanner=function() {
		this.currentBannerIdx++;
		if(this.currentBannerIdx>=this.banners.length) this.currentBannerIdx=0;
		return this.banners[this.currentBannerIdx];
	} // getNextBanner

	this.getRandomBanner=function() {
		var tmpBanner=null;
		var noBanners=this.banners.length;
		do {
			var noRand=Math.floor(Math.random()*noBanners);
			tmpBanner=this.banners[noRand];
		} while(tmpBanner==this.currentBanner);
		return tmpBanner;
	} // getRandomBanner

	this.nextBanner=function() {
		setTimeout(this.name+".changeBanner();",(this.currentBanner.secs*1000));
	} // nextBanner

	this.output=function() {
		var noBanners=this.banners.length;
		if(noBanners>1) {
			this.changeBanner();
			this.nextBanner();
		} else throw Error("Se requieren al menos 2 banners para el funcionamiento de un bannerRotator.");
	} // output
} // class
