function t1mScroller(szWrapperID, iPageWidth, iNumPages, oBookMarks)
{
	this.szWrapperID = szWrapperID;
	this.iPageWidth = parseInt(iPageWidth); //add to start at the right offset
	this.iNumPages = parseInt(iNumPages);
	this.iCurPage = 1;			
	this.oBookMarks = oBookMarks;
	this.bCurrentlyAnimating = false;
	
	//make sure we're at the beginning always
	$('div#' + this.szWrapperID + ' div.scroller_viewable').animate({scrollLeft: 0}, 'fast');
	this.checkBookMarkNav();
}						

t1mScroller.prototype.checkBookMarkNav = function ()
{
	//check bookmarks
	if (this.oBookMarks != null)
	{				
		for (var szBookMark in this.oBookMarks)
		{					
			if ( (this.iCurPage >= this.oBookMarks[szBookMark].start) && (this.iCurPage <= this.oBookMarks[szBookMark].end) )
			{						
				this.setBookMarkActive(szBookMark);
				break;
			}
		}
	}
	
	//scroller buttons
	//hide the left scroller if we're on the first page
	if (this.iCurPage == 1)
	{		
		$('div#' + this.szWrapperID + ' a.scroller_scroll_left').css('visibility', 'hidden');
	}
	else
	{
		$('div#' + this.szWrapperID + ' a.scroller_scroll_left').css('visibility', 'visible');
	}
	
	//hide the right scroller if we're on the last page
	if (this.iCurPage == this.iNumPages)
	{		
		$('div#' + this.szWrapperID + ' a.scroller_scroll_right').css('visibility', 'hidden');
	}
	else
	{
		$('div#' + this.szWrapperID + ' a.scroller_scroll_right').css('visibility', 'visible');
	}
}

t1mScroller.prototype.jumpToBookMark = function(szBookMark)
{			
	if ( (this.oBookMarks[szBookMark].start != undefined) && (parseInt(this.oBookMarks[szBookMark].start) > 0) )
	{				
		this.jumpToPage(this.oBookMarks[szBookMark].start);
	}		
}

t1mScroller.prototype.jumpToPage = function(iPage)
{	
	iPage = parseInt(iPage);
				
	if ( (iPage > 0) && (iPage <= this.iNumPages) )
	{				
		var iScrollOffset = (parseInt(iPage) - 1) * this.iPageWidth;
		$('div#' + this.szWrapperID + ' div.scroller_viewable').animate({scrollLeft: iScrollOffset}, 'fast');
		this.iCurPage = iPage;
		this.checkBookMarkNav();
	}	
}

t1mScroller.prototype.setBookMarkActive = function(szBookMark)
{
	$('div#' + this.szWrapperID + ' ul.scroller_nav li a').each(
		function (iIndex)
		{					
			if ($(this).hasClass(szBookMark) )
			{
				$(this).addClass('active');
			}
			else
			{
				$(this).removeClass('active');
			}
		}
	);
}		

t1mScroller.prototype.scrollLeft = function(iScrollDistance)
{
	if (iScrollDistance == null)
	{
		iScrollDistance = this.iPageWidth;
	}			
	
	
	
	if (this.iCurPage > 1)
	{
		//var curScrollLeft = $('div#' + this.szWrapperID + ' div.scroller_viewable').scrollLeft();
		this.iCurPage--;
		var iScrollOffset = (this.iCurPage - 1) * this.iPageWidth;
		$('div#' + this.szWrapperID + ' div.scroller_viewable').animate({scrollLeft: iScrollOffset}, 'fast');
		
	}
	
	this.checkBookMarkNav();			
}

t1mScroller.prototype.scrollRight = function(iScrollDistance)
{
	if (iScrollDistance == null)
	{
		iScrollDistance = this.iPageWidth;
	}
	
	if (this.iCurPage < this.iNumPages)
	{
		this.iCurPage++;
		//var curScrollLeft = $('div#' + this.szWrapperID + ' div.scroller_viewable').scrollLeft();
		var iScrollOffset = (this.iCurPage - 1) * this.iPageWidth;
		$('div#' + this.szWrapperID + ' div.scroller_viewable').animate({scrollLeft: iScrollOffset}, 'fast');
		
	}
	
	//check bookmarks
	this.checkBookMarkNav();
}	
