function filterPager(pageSize, lastPage)
{
	// public fields
	var PAGE_SIZE = ((pageSize != undefined)?pageSize:10);
	var LAST_PAGE = ((lastPage != undefined)?pageSize:10);
	var pagerSectionId = "archives";
	var pagerPrevButtonId = "pagerPrev";
	var pagerNextButtonId = "pagerNext";
	var pagerNumBtnName = "pager";

	// 0 is off, 1 is on
	var pagerPrevClasses = new Array(
		"cnnLatestNavPrev cnnLatestNavDis",
		"cnnLatestNavPrev" );
	var pagerNextClasses = new Array(
		"cnnLatestNavNext cnnLatestNavDis",
		"cnnLatestNavNext" );
	var pagerBtnClasses = new Array(
		"cnnLatestNavNum",
		"cnnLatestNavNum cnnLatestNavOn" );

	// private fields
	var _currSort = "";
	var _currPage = 1;
	var _currSet = null;
	
	
	// public methods
	this.filter = function(elemName)
	{
		filt(elemName, 1);
	}

	this.goToPage = function(page)
	{
		filt(_currSort, page);
	}

	this.goToPrev = function()
	{
		if( _currPage == 1 )
		{
			return false;
		}
		else
		{
			filt(_currSort, _currPage-1);
			return true;
		}
	}
	
	this.goToNext = function()
	{
		var pagerNext  = $(pagerNextButtonId);

		if ( pagerNext.className == pagerNextClasses[0] )
		{
			return false;
		}
		else
		{
			filt(_currSort, _currPage+1);
			return true;
		}
	}

	// private functions
	filt = function(type,page)
	{
		var x = null;
		var j = 0;
		var i = 0;
		var pageEnd = 0;

		_currSort = new String(type);
		_currPage = page;

		if ( type == "" || type == "init" )
		{
			x = $(pagerSectionId).getElementsByClassName('archive');

			if ( type == "init" )
			{
				hideElems(x);
				$(pagerSectionId).setStyle({visibility:'visible'});
			}
		}
		else
		{
			x = document.getElementsByName(type);
		}

		hideElems(_currSet);
		
		_currSet = null;
		_currSet = new Array();

		i = (page-1)*PAGE_SIZE;
		pageEnd = i + PAGE_SIZE;

		while( i < pageEnd && i < x.length )
		{
			$(x[i]).show();
			_currSet[j++] = x[i++];
		}

		setPages(page, Math.ceil(x.length/PAGE_SIZE));
	}

	setPages = function(page,num)
	{
		var pagers 		= document.getElementsByName( pagerNumBtnName );
		var pagerPrev 	= $( pagerPrevButtonId );
		var pagerNext	= $( pagerNextButtonId );

	   for ( var i = 0 ; i < pagers.length ; ++i )
	   {
			if ( i > 0 )
			{
				if ( i < num )
				{
					$(pagers[i]).show();
				}
				else
				{
					$(pagers[i]).hide();
				}
			}
			
			pagers[i].className = ((i==page-1)?
				pagerBtnClasses[1]:
				pagerBtnClasses[0]);
		}

		if (page == 1)
		{
			pagerPrev.className = pagerPrevClasses[0];
		}
		else
		{
			pagerPrev.className = pagerPrevClasses[1];
		}
		if (page == num || num == 0 || page == LAST_PAGE)
		{
			pagerNext.className = pagerNextClasses[0];
		}
		else
		{
			pagerNext.className = pagerNextClasses[1];
		}
	}

	// helper functions	
	hideElems = function( elemList )
	{
		if (elemList != null)
		{
			for ( i = 0; i < elemList.length; ++i )
			{
				if ( elemList[i] != null )
				{
					$(elemList[i]).hide();				
				}
			}
		}
	}
}