if(typeof(Utilities) == "undefined")
	var Utilities = {};
if(typeof(Utilities.UI) == "undefined")
	Utilities.UI = {};

Utilities.UI.Fader = function(){
	this.Speed = 50;
	this._nFadeTimerCookie = null;
	if(typeof(window._Instances) == "undefined")
		window._Instances = new Array();
	this._sInstanceKey = window._Instances.length;
	window._Instances[window._Instances.length] = this;
	
	this.SetOpacity = function(Item, nOpacity){
		if(document.all){
			if(nOpacity < 100)
				Item.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity="+ nOpacity +");";
			else
				Item.style.filter = "";
		}else{
			Item.style.opacity = nOpacity / 100;
		}
	}
	
	this.Fade = function(sID, nOpacity, nModifier, OnComplete){
		var Item = document.getElementById(sID);
		this.SetOpacity(Item, nOpacity);
		
		if(nOpacity > 0 && nOpacity < 100){
            var nNewOpacity = (nOpacity + nModifier * 10);
            this.CurrentItemID = sID;
			this._nFadeTimerCookie = window.setTimeout("window._Instances["+ this._sInstanceKey +"].Fade('"+ sID +"', "+ nNewOpacity +", "+ nModifier+", "+ OnComplete +")", this.Speed);
		}else if(OnComplete != null){
			OnComplete(sID, nOpacity);
		}
		return this._sInstanceKey;
	}
	
	this.Cancel = function(){
	    window.clearTimeout(this._nFadeTimerCookie);
	    return this.CurrentItemID;
	}
	
	this.Pause = function(sID){
	    //if( this._nFadeTimerCookie ){
		    //window.clearTimeout( this._nFadeTimerCookie );
		    //this._nFadeTimerCookie = null;
		    
		    //this._arPauseData['sID'] = sID;
		    this.bOut = true;
	    //}else{
	        //this.Fade(this._arPauseData['sID'], this._arPauseData['nOpacity'], this._arPauseData['nModifier'], this._arPauseData['OnComplete']);
	        //this.Init();
		    //LoadTicker();
	    //} 
    }
}
