function PainelRotativo(alvo,target) {
	this.boxAlvo = alvo;
	this.idImg = 'img'+alvo;
	this.idLink = 'link'+alvo;
	this.target = target;

	this.paineis = new Array();
	this.imagens = new Array();
	this.indice = 0;
	this.tempo = 0;
	this.velocidade = 7;
	this.tempAlpha = 100;
	this.intervalo = 7000;

	this.linkPainel = false;
	this.imgPainel = false;
	this.idIntervalo;

	this.menosAlpha = function() {
		var alpha = (this.tempAlpha>0) ? (this.tempAlpha-=2) : 0;
		this.boxAlvo.style.zoom = 1;
		this.boxAlvo.style.filter = 'alpha(opacity='+alpha+')';
		this.boxAlvo.style.opacity=(alpha/80);
		this.boxAlvo.style.MozOpacity=(alpha/101);
		this.boxAlvo.style.KhtmlOpacity=(alpha/101);
	}

	this.maisAlpha = function() {
		var alpha = (this.tempAlpha<100) ? (this.tempAlpha+=2) : 100;
		this.boxAlvo.style.zoom = 1;
		this.boxAlvo.style.filter = 'alpha(opacity='+alpha+')';
		this.boxAlvo.style.opacity=(alpha/80);
		this.boxAlvo.style.MozOpacity=(alpha/101);
		this.boxAlvo.style.KhtmlOpacity=(alpha/101);
	}

	this.efeito = function() {
		var classe = this;
		for (x=0;x<100;x++) setTimeout(function(){classe.menosAlpha()},this.tempo++ * this.velocidade);
		setTimeout(function(){classe.mudaImagem()},this.tempo++ * this.velocidade)
		for (x=0;x<100;x++) setTimeout(function(){classe.maisAlpha()},this.tempo++ * this.velocidade);
		this.idIntervalo = setTimeout(function(){classe.efeito()},this.intervalo);
	}

	this.mudaImagem = function() {
		if (this.indice >= this.paineis.length-1) this.indice = 0;
		else ++this.indice;

		var item = this.paineis[this.indice];
		
		this.linkPainel.href = item[2];
		this.linkPainel.title = item[0];

		this.imgPainel.src = this.imagens[this.indice].src;
		this.imgPainel.alt = item[0];
	}

	this.montaPainel = function() {
		if (this.paineis.length <= 0) return false;
		var item = this.paineis[this.indice];
		var classe = this;

		this.boxAlvo = this.boxAlvo;

		this.linkPainel = this._criaObj('a');
		this.linkPainel.setAttribute('id',this.idLink);
		this.linkPainel.setAttribute('href',item[2]);
		this.linkPainel.setAttribute('title',item[0]);
		this.linkPainel.setAttribute('target',this.target);

		this.imgPainel = this._criaObj('img');
		this.imgPainel.setAttribute('id',this.idImg);
		this.imgPainel.setAttribute('src',item[1]);
		this.imgPainel.setAttribute('alt',item[0]);

		this.linkPainel.appendChild(this.imgPainel);
		this.boxAlvo.appendChild(this.linkPainel);
	}

	this.preloadImgs = function() {
		for (x=0;x<this.paineis.length;x++) {
			this.imagens[x] = new Image();
			this.imagens[x].src = this.paineis[x][1];
		}
	}

	this.pegaPaineis = function() {
		var valor = this.boxAlvo.innerHTML.split(/[;]/i);
		this.boxAlvo.innerHTML = '';
		var temp = new Array();

		for (x=0,y=0;x<valor.length;x++) {
			temp = valor[x].split('|');
			if (temp[0] == '') continue;
			if (false == /(jpg|png|gif)$/.test(temp[1])) continue;
			if (temp[2] == '') continue;
			this.paineis[y++] = temp;
		}
	}

	this.pegaObjs = function() {
		this.boxAlvo = this._getObj(this.boxAlvo);
	}

	this.inicio = function() {
		this.pegaObjs();
		this.pegaPaineis();
		this.preloadImgs();
		this.montaPainel();
		var classe = this;
		this.idIntervalo = setTimeout(function(){classe.efeito()},this.intervalo);
	}

	this._criaObj = function(tag) {
		return document.createElement(tag);
	}

	this._getObj = function (obj) {
		if (typeof obj == "string") {
			if (null == (obj = document.getElementById(obj))) {
				throw new Error("Elemento não encontrado ("+obj+").");
			}
		}
		return obj;
	}
}
