	var thisPage = 1;
	var itemsPerPage = 10;
	var listItems;
	var numberOfPages;
	var paginationList;
	var paginationTitle;
	var clonedList = null;
	
	function paginate()
	{
		var thisPageMin = (thisPage-1) * itemsPerPage;
		var thisPageMax = (thisPage) * itemsPerPage;
			
		for( var i=0; i<listItems.length; i++ )
		{
			var thisItem	= listItems[i];
			var isVisible = ( i >= thisPageMin ) &&  ( i < thisPageMax );
			
			thisItem.style.display = isVisible ? "" : "none";
		}
		
		paginationList.innerHTML = "";

		for( var i=0; i<numberOfPages; i++ )
		{
			var pageNumber = i+1;

			paginationList.innerHTML += "<li><a class='page"+pageNumber + (pageNumber==thisPage ? "on" : "" )  				+
										"' href='javascript:changePage(" + pageNumber + ");'>"+pageNumber+"</a></li>"		;
		}
		if( clonedList )
			clonePaginationList( clonedList );
	}
	
	function clonePaginationList( theNewDiv )
	{
		if(! theNewDiv )
			return;
		var theHTML = "";
		for( var i=0; i<numberOfPages; i++ )
		{
			var pageNumber = i+1;
			theHTML += "<li><a class='page"+pageNumber + (pageNumber==thisPage ? "on" : "" )  				+
					"' href='javascript:changePage(" + pageNumber + ");'><span>"+pageNumber+"</span></a></li>"		;
		}	
		
		theNewDiv.innerHTML = "<ul>" + theHTML + "</ul>";
		clonedList = theNewDiv;
	}
	function changePage( newPage )
	{
		thisPage = newPage;
		paginate();
	}
	function initPagination()
	{
		paginationList = document.getElementById( "paginationList" );
		paginationTitle = document.getElementById( "paginationTitle" );
		listToPaginate  = document.getElementById( listToPaginate );
		if(! listToPaginate )
			return;
		
		listItems		= determineListItems();
		numberOfPages = Math.ceil( listItems.length / itemsPerPage );

		numberOfPages = numberOfPages > maxPages ? maxPages : numberOfPages;

		changePage ( 1 );
	}
	function determineListItems()
	{
		var allItems = listToPaginate.getElementsByTagName( "li" );
		var toReturn = new Array();
		for( var i=0; i<allItems.length; i++ )
		{
			var thisItem = allItems[i];
			if( thisItem.parentNode == listToPaginate )
			{
				toReturn = toReturn.concat( [ thisItem ]);
			}
			
		}
		return toReturn;
	}
	function addEvent(obj, evType, fn)
	{ 
		 if (obj.addEventListener)
		 { 
		   obj.addEventListener(evType, fn, false); 
		   return true; 
		 } 
		 else if (obj.attachEvent)
		 { 
		   var r = obj.attachEvent("on"+evType, fn); 
		   return r; 
		 } 
		 else 
		 { 
		   return false; 
		 } 
	}