var	divEffects = new Array ( );
var	divEffectsTimer = new Array ( );

function	filterEffectsClear ( d_id ) {
	divEffects [ d_id ] = new Array ( );
}

function	divSetAlpha ( d, a ) {
	if ( !d.style ) d.setAttribute ( 'style', '' );
	
	d.style.opacity = a / 10;
	d.style.filter = "alpha(opacity:" + ( a * 10 ) + ")";
	d.style.MozOpacity = a / 10;
//	d.innerHTML = Math.random ( ) + ' / ' + a;
}

function	filterEffectAlphaGet ( d_id ) {
	var effects = divEffects [ d_id ];

	for ( effect_type in effects ) {
		var effect = effects [ effect_type ];

		if ( effect_type == 'alpha' ) {
			return effect.alpha;
		}
	}
	
	return 0;
}

function	filterEffectAlpha ( alpha, alphaDelta ) {
	this.type = 'alpha';
	this.enabled = true;
	this.alpha = alpha;
	this.alphaDelta = alphaDelta;
	this.alphaTimer = 0;
}

function	filterEffectDiv ( d_id ) {	
	var effects = divEffects [ d_id ];
	var	runnext = false;

	if ( typeof ( divEffectsTimer [ d_id ] ) == 'undefined' ) {
		return false;
	}

	clearTimeout ( divEffectsTimer [ d_id ] );

	for ( effect_type in effects ) {
		var effect = effects [ effect_type ];

		if ( !effect.enabled ) continue;
		if ( effect_type == 'alpha' ) {
			effect.alpha += effect.alphaDelta;
	
			if ( effect.alpha >= 10 && effect.alphaDelta > 0 ) {
				effect.alpha = 10;
				effect.enabled = false;
			} else if ( effect.alpha <= 0 && effect.alphaDelta < 0 ) {
				effect.alpha = 0;
				effect.enabled = false;
			} else {
				runnext = true;
			}

			divSetAlpha ( document.getElementById ( d_id ), effect.alpha );
		}
	}

	if ( runnext == true ) filterEffectDivOn ( d_id, 0 );

	return true;
}

function	filterEffectDivOn ( d_id, e ) {
	if ( e ) {
		if ( typeof ( divEffects [ d_id ] ) == 'undefined' ) {
			divEffects [ d_id ] = new Array ( );
		}

		divEffects [ d_id ] [ e.type ] = e;
	}

	return divEffectsTimer [ d_id ] = window.setTimeout ( function ( ) { filterEffectDiv ( d_id ); }, 35 );
}

