var Fader = function(oDiv,iTime){
	
	this.oDiv = oDiv;
	this.iTime = iTime;
	this.iCurrent = 0;
	this.iCurrentOp = 100;
	this.iNext = 1;
	this.iNextOp = 0;
	this.iStepOp = browser.isie() ? 1 : 1;  //divisore di 100!
	this.aImg = new Array();
	this.iDelay = browser.isie() ? 5 : 10;
	
	this.init = function(){
		//riempio l'array delle immagini
		this.aImg = this.oDiv.getElementsByTagName('img');
		//mostro la prima immagine
		this.setOpacity(this.aImg[this.iCurrent],100);
		//nascondo le altre
		for (var i = 0; i < this.aImg.length; i++)
			if (i != this.iCurrent)
				this.setOpacity(this.aImg[i],0);
		//lancio il timer per l'animazione
		var this_obj = this;
		setTimeout(function(){this_obj.changeImg();},this.iTime);
	}
	
	this.setOpacity = function(oImg,iNewOpacity){
		if (!browser.isie())
			oImg.style.opacity = iNewOpacity / 100;
		else
			oImg.style.filter = 'alpha(opacity:' + iNewOpacity + ')'; 
	}
	
	this.changeImg = function(){
		if (this.aImg.length < 2)
			return;
		this.hideCurrent();
		this.showNext();
	}
	
	this.changeIndex = function(){
		//aggiorno gli indici
		this.iNext = (++this.iNext) % this.aImg.length;
		this.iCurrent = (++this.iCurrent) % this.aImg.length;
		this.iCurrentOp = 100;
		this.iNextOp = 0;
		//lancio il timer per l'animazione
		var this_obj = this;
		setTimeout(function(){this_obj.changeImg();},this.iTime);
	}
	
	this.hideCurrent = function(){
		if (this.iCurrentOp == 0){
			if (this.iNextOp == 100){
				this.changeIndex();
				return;
			}
		}else{
			this.iCurrentOp -= this.iStepOp;
			this.setOpacity(this.aImg[this.iCurrent],this.iCurrentOp);
		}
		var this_obj = this;
		setTimeout(function(){this_obj.hideCurrent()},this.iDelay);
	}
	
	this.showNext = function(){
		this.iNextOp += this.iStepOp;
		this.setOpacity(this.aImg[this.iNext],this.iNextOp);
		if (this.iNextOp < 100){
			var this_obj = this;
			setTimeout(function(){this_obj.showNext()},this.iDelay);
		}
	}
}
