/*
	w3FadingOpacity (1.0) - 14/11/2006
	Por Leandro Vieira Pinho - http://leandro.w3invent.com.br
	
	Para informações de uso deste add-on visite:
	http://leandro.w3invent.com.br/addons/freedom/w3fadingopacity

	Nota: O alertBox trabalha em conjunto com a freeDOM 0.2.7 ou superior
	freeDOM: http://metzen.com.br/freedom/
*/

function w3FadingOpacity(strID, intOpacityStart, intOpacityEnd, intFadeDuration, fnAfterFaded) {
	
	this.intOffset = 10;
	this.strID = strID; // String contendo o atributo ID do objeto desejado
	this.intOpacityStart = intOpacityStart; // Valor - inteiro - inicial para o Fade
	this.intOpacityEnd = intOpacityEnd; // Valor - inteiro - final para o Fade
	this.intFadeDuration = intFadeDuration; // Valor - inteiro - para a duração do ciclo do Fade
	this.fnAfterFaded = fnAfterFaded; // Nome da função a ser chamado após a conclusão do ciclco do Fade
	this.intInterval = 0;
}

/**
* Aqui iniciamos todo o processo. A chamada inicial
*/
w3FadingOpacity.prototype.start = function() {
	
	var thisClass = this;
	this.intInterval = setInterval(function() { thisClass.fadeCycle(); }, (this.intFadeDuration / this.intOffset));
	
};

/**
* Aqui definimos o cliclo de vida do processo de Fading
*/
w3FadingOpacity.prototype.fadeCycle = function() {
	if ( this.intOpacityEnd < this.intOpacityStart ) {
		if ( this.intOpacityStart > this.intOpacityEnd ) {
			this.intOpacityStart -= this.intOffset;
		} else {
			this.finalize();
		}
	} else {
		if ( this.intOpacityStart < this.intOpacityEnd ) {
			this.intOpacityStart += this.intOffset;
		} else {
			this.finalize();
		}
	}
	this.setOpacity(this.intOpacityStart / 100);
};

w3FadingOpacity.prototype.setOpacity = function(intOpacity) {
		document.getElementById(this.strID).style.opacity = intOpacity;
		document.getElementById(this.strID).style.filter = "alpha(opacity=" + (intOpacity*100) + ")";
};

w3FadingOpacity.prototype.finalize = function() {
	this.intOpacityStart = this.intOpacityEnd;
	clearInterval(this.intInterval);
	if ( this.fnAfterFaded ) {
		this.fnAfterFaded();
	}
};


