﻿fast.register("fadeOut", function(mcfg) {
	var self = this;
	mcfg = mcfg ? mcfg : {};
	var cfg = { onready : mcfg.onready ? mcfg.onready : null };
	if( self.style.opacity == 0 ) {
		return;
	};
	self.__fade = new Array( 100,90,80,70,60,50,40,30,20,10,0 );
	var interval = setInterval( function() {
		if( self.__fade ) {
			self.style.opacity = self.__fade[0]/100;	
			self.style.filter = "alpha(opacity="+self.__fade[0]+")";				
			self.__fade.splice(0,1);
			if( self.__fade.length == 0 ) {
				self.__fade = null;
				clearInterval(interval);
				if( cfg.onready ) {
					cfg.onready();
				};
			}
		} else {
			clearInterval(interval);
		}
	}, 20 );
});

fast.register("fadeIn",function(mcfg) {
	var self = this;
	mcfg = mcfg ? mcfg : {};
	var cfg = { onready : mcfg.onready ? mcfg.onready : null };
	if( self.style.opacity == 1 ) {
		return;
	};
	self.__fade = new Array( 0,10,20,30,40,50,60,70,80,90,100 );
	var interval = setInterval( function() {				
		if( self.__fade ) {
			self.style.opacity = self.__fade[0]/100;	
			self.style.filter = "alpha(opacity="+self.__fade[0]+")";				
			self.__fade.splice(0,1);
			if( self.__fade.length == 0 ) {
				self.__fade = null;
				clearInterval(interval);
				if( cfg.onready ) {
					cfg.onready();
				};
			}
		} else {
			clearInterval(interval);
		}
	}, 20 );
});

/*
function rollUp(self) {
    var h = parseFloat(self.element.offsetHeight);
	if( !h ) {
	    fast.done(self);
	}
	
	self.__orgHeight = h;
	self.__height = new Array();
	while( parseInt(h) > 0 ) {
		h = h*0.75;
		self.__height.push( h );
	}
	self.__height.push( 0 );
	var interval = setInterval( function() {
		self.element.style.height = self.__height[0]+"px";			
		self.__height.splice(0,1);
		if( self.__height.length == 0 ) {
			self.__height = null;
			clearInterval(interval);
			fast.done(self);
		}
	}, 20 );
};
fast.register("rollUp",rollUp);


function rollDown(self) {
    var h = parseFloat((self.element.offsetHeight||1));

    self.element.style.height="auto";
    self.__orgHeight = self.element.offsetHeight;
    self.element.style.height=h+"px";

    self.__height = new Array();
    while( h < self.__orgHeight ) {
	    h = h*1.25;
	    self.__height.unshift( ((self.__orgHeight-h)>0?(self.__orgHeight-h):0 ));
    }
    self.__height.push( self.__orgHeight );
    var interval = setInterval( function() {
	    self.element.style.height = self.__height[0]+"px";			
	    self.__height.splice(0,1);
	    if( self.__height.length == 0 ) {
		    self.__height = null;
		    clearInterval(interval);
		    fast.done(self);
	    }
    }, 20 );
};
fast.register("rollDown",rollDown);

fast.register("rollToggle",function(self) {
	if(self.element.offsetHeight) {
	    rollUp(self);
	} else {
	    rollDown(self);
	}
});

function hide() {
    self.element.style.display = "none";
    fast.done(self);
};
fast.register("hide",hide);

function show() {
    self.element.style.display = "none";
    fast.done(self);
};
fast.register("show",show);

function pause( self, args ) {
		setTimeout( function() {
			fast.done(self);
		}, args[0] );
};
fast.register("pause",pause);
*/