function getFader(listId, params){
	var	aFader = function(){
		var slides = null;
		var counter = 0;
		var paused = false;
		var inited = false;
		var settings = params || {};
		var slideClassName = settings.slideClassName || "slide";
		var fadeBoxId = settings.fadeBoxId || "fadeBox";
		var fadeBoxIdCover = fadeBoxId + "Cover";
		var fadeTo = settings.fadeTo || "#FFF";
		var durationIn = settings.duration || .5 ;
		var pausedBGColor = settings.pausedBGColor || fadeTo;
		
		function getNext(){
			counter++;
			if(counter >= slides.length){
				counter = 0;
			}
			return counter;
		}
		
		function getPrevious(){
			counter--;
			if(counter < 0){
				counter = slides.length - 1;
			}
			return counter;
		}
		
		return{
			paused : function(doPause) { paused = doPause; },			
			autoSlide : function(){
				if(!inited){
					inited = true;
					slides = $(listId).getElementsByClassName(slideClassName);
					slides[0].style.display = "block";
					var coverElem = document.createElement("DIV");
					coverElem.style.position = "absolute";
					coverElem.style.display = "none";
					coverElem.style.backgroundColor = fadeTo;
					coverElem.id = fadeBoxIdCover;
					var coords = Position.cumulativeOffset($(fadeBoxId));
					coverElem.style.left = coords[0] + "px";
					coverElem.style.top = coords[1] + "px";
					coverElem.style.width = $(fadeBoxId).offsetWidth + "px";
					coverElem.style.height = $(fadeBoxId).offsetHeight + "px";
					document.getElementsByTagName("BODY")[0].appendChild(coverElem);
				}
				return (function() {
					if(!paused){
						Effect.Appear(fadeBoxIdCover, {duration: durationIn, afterFinish : function(){
							slides[counter].style.display = "none";
							slides[getNext()].style.display = "block";
							Effect.Fade(fadeBoxIdCover, {duration: durationIn});
						}});
					}
				});
			},			
			previousSlide : function(){
				paused = true;
				$(fadeBoxId).style.display = "none";
				slides[counter].style.display = "none";
				slides[getPrevious()].style.display = "block";
				$(fadeBoxId).style.display = "block";
			},			
			nextSlide : function(){
				paused = true;
				$(fadeBoxId).style.display = "none";
				slides[counter].style.display = "none";
				slides[getNext()].style.display = "block";
				$(fadeBoxId).style.display = "block";
			},			
			setSlide : function(whichSlide){
				paused = true;
				$(fadeBoxId).style.display = "none";
				slides[counter].style.display = "none";
				counter = whichSlide;
				slides[counter].style.display = "block";
				$(fadeBoxId).style.display = "block";
			},				
			pause : function(pause){
				paused = pause;
					if(paused){
						$(fadeBoxId).style.opacity = ".5";
						$(fadeBoxId).style.filter = 'alpha(opacity=50)';
					}else{
						$(fadeBoxId).style.opacity = "1";
						$(fadeBoxId).style.filter = 'alpha(opacity=100)';
					}
			}
		};
	}();
	return aFader;
}
