var ticker = function(sTickerID, iSpeed, iPause, sReference, sPosition, sControls) {
	this.iSpeed = iSpeed;
	this.iPause = iPause;
	this.sTickerID = sTickerID;
	this.sControls = sControls;
	this.sReference = sReference || 'first';
	
	this.SetControls = function() {
		var oNext = $('#' + this.sControls + ' .next');
		$(oNext).attr('ref', this.sReference);
		$(oNext).click(function() { eval($(this).attr('ref') + '.Control(\'next\')') });
		var oPrevious = $('#' + this.sControls + ' .previous');
		$(oPrevious).attr('ref', this.sReference);
		$(oPrevious).click(function() { eval($(this).attr('ref') + '.Control(\'previous\')') });
		$('ul#' + this.sTickerID).attr('ref', this.sReference);
		$('ul#' + this.sTickerID).hover(function() {eval($(this).attr('ref') + '.Stop()')}, function() {eval($(this).attr('ref') + '.Start()')});
	}
	
	this.Control = function(sControl) {
		this.Stop();
		var sPosition = (sControl == 'next') ? 'first' : 'last';
		this.RemoveItem(sPosition);
	}
	
	this.RemoveItem = function(sPosition){
		//var sMove = (sPosition == 'first') ? 'last' : 'first';
		oPosition = $('ul#' + this.sTickerID + ' li:' + sPosition);
		sHTML = oPosition.html();
		oPosition.slideUp(this.iSpeed, function() {$(this).remove();});
		this.AddItem(sPosition, sHTML);
	}
	
	this.AddItem = function(sPosition, sHTML){
		var sMove = (sPosition == 'first') ? 'append' : 'prepend';
		$('ul#' + this.sTickerID)[sMove]('<li>' + sHTML + '</li>')
		oPosition = $('ul#' + this.sTickerID + ' li:' + sPosition);
	}

	this.Start = function() {
		this.interval = setInterval(this.sReference + '.RemoveItem(\'' + sPosition + '\')', this.iPause);	
	}
	
	this.Stop = function() {
		clearInterval(this.interval);
	}

	this.SetControls();

	this.Start();
	
};
