/**
 * @author Bugs
 */

//
// Global opacityManipulation management -- BOM (Bugimus Opacity Manipulation)
//

bugBase.prototype.attachBOM = function() {
	this.BOMnum = 0
	this.BOMobj = new Array()
}
window.bugimus.attachBOM()

//
// Local opacityManipulation functionality
//
function opacityManipulation( refObj, rate, opacity ) {
	this.objname = "window.bugimus.BOMobj[" + window.bugimus.BOMnum + "]"
	window.bugimus.BOMobj[window.bugimus.BOMnum++] = this
	this.rate = rate
	this.timers = new Array()
	this.refobj = refObj
	if (isFinite(opacity)) {
		this.setopacity(opacity)
	} else {
		this.setopacity(100)
	}
}

opacityManipulation.prototype.fade = function(from, to) {
	for (i = 0; i <= 10; i++) {
		clearTimeout(this.timers[i])
	}
	n = (to - from) / 10
	for (i = 0; i <= 10; i++) {
		o = from + n*i
		this.timers[i] = setTimeout( this.objname+".setopacity('"+o+"')", i*this.rate );
//alert("n="+n+ ", o="+o+  ", delay="+(i*this.rate) )
	}
}
opacityManipulation.prototype.getopacity = function() {
	if(bugimus.IE5) return this.refobj.filters.alpha.opacity
	else if(bugimus.NN6) return 100*this.refobj.style.opacity
}
opacityManipulation.prototype.setopacity = function(c) {
//	if(bugimus.IE5) this.refobj.filters.alpha.opacity = c
//	else if(bugimus.NN6)this.refobj.style.opacity = c/100

	if(bugimus.NN6) this.refobj.style.opacity = c/100
	else if(bugimus.IE5) this.refobj.style.filter = "alpha(opacity=" + c + ")"
}
opacityManipulation.prototype.fadeout = function() {
	this.fade(this.getopacity(), 0)
}
opacityManipulation.prototype.fadein = function() {
	this.fade(this.getopacity(), 100)
}
opacityManipulation.prototype.fadeto = function(to) {
	this.fade(this.getopacity(), to)
}

