function scrollerObj(numShowing,interval,intRange,randFreq,randRange,ulPadding,liPadding,scrollerContainer,scroller,randDiv) {
	//this.numShowing = numShowing;
	var cHeight = scrollerContainer.height();
	var lHeight = jQuery('li:first',scroller).outerHeight() + liPadding;
	this.numShowing = Math.floor(cHeight/lHeight);
	this.interval = interval;
	this.intRange = intRange;
	this.randFreq = randFreq;
	this.randRange = randRange;
	this.ulPadding = ulPadding;
	this.liPadding = liPadding;
	this.scrollerContainer = scrollerContainer;
	this.scroller = scroller;
	this.randDiv = randDiv;
	this.timer;
}

var scrollerArray = new Array();

function beginTimeout(i,intvl){
	setTimeout(function(){updateActivity(i)}, intvl);
	
	return;
}

function scrollerInit() {
	for(var i in scrollerArray) {
		if(typeof scrollerArray[i].numShowing!="undefined"){
			var cs = scrollerArray[i];
			var scroller = cs.scroller;
			var sc = cs.scrollerContainer;			
			var ns = cs.numShowing;
			var up = cs.ulPadding;
			var lp = cs.liPadding;
			var intvl = cs.interval;
			
			scroller.css('height',ns*(jQuery('li:first',scroller).outerHeight() + lp));
			sc.css('height',ns*(jQuery('li:first',scroller).outerHeight() + lp));
			scroller.css('overflow','hidden');
			jQuery('li:gt('+(ns-1)+')',scroller).css('position', 'relative');
			jQuery('li:gt('+(ns-1)+')',scroller).css('top', up);
			
			beginTimeout(i,intvl);
		}
	}
	
	return;
}

function updateActivity(i){
	var currScroller = scrollerArray[i];
	if(jQuery('li',currScroller.scroller).size() >= currScroller.numShowing) {
		var insertRandom = Math.floor(Math.random()*currScroller.randFreq)
		var newInterval = currScroller.interval + Math.floor(Math.random()*currScroller.intRange)
		
		beginTimeout(i,newInterval);
		
		if(insertRandom <= currScroller.randRange){
			smoothAdd(i,true);
		} else {
			smoothAdd(i,false);
		}
	}
}

function smoothAdd(id,isRand){
	var currScroller = scrollerArray[id];
	var scroller = currScroller.scroller;
	var ulPadding = currScroller.ulPadding;
	var numShowing = currScroller.numShowing;
	var randDiv = currScroller.randDiv;
	var newListItem = jQuery("<li></li>");
	
	//alert("here1");
	
	if(isRand){
		newListItem.append(randDiv.clone());
	} else {
		//alert("here1.5");
		newListItem = jQuery('li:last', scroller).clone();
	}
	
	//alert("here2");
	
	scroller.prepend(newListItem);

	//alert("here3");
	
	var first = jQuery('li:first', scroller);
	var last  = jQuery('li:eq('+numShowing+')',  scroller);

	var foh = first.outerHeight();
	
	var oldMarginTop = first.css('margin-top');

	first.css({
		marginTop: 0 - foh,
		position:  'relative',
		top:       0 - ulPadding
	});

	//alert("here4");
	
	last.css('position', 'relative');
	
	//alert("here5");
	
	first.animate({ top: 0 }, 250, function() {
		first.animate({ marginTop: oldMarginTop }, 1000, function() {
			last.animate({ top: ulPadding }, 250, function() {
					jQuery('li:last',scroller).remove();
			});
		});
	});
	
	return;
}

