/**
 * This class is responsible for display of items 
 * including pagination
 */
var ListDisplay = 
{
	resultsPerPage : 10,
	
	/**
	 * Responsible for actually showing the atoms
	 */
	displaydisplayFunction  : function(){},
	
	/**
	 * Initializes the list items
	 * @param {Object} listItems
	 */
	init : function(listItems, displayDiv)
	{
		this.listItems = listItems;
		this.displayDiv = displayDiv;
		
		if(typeof(this.listItems) == "undefined" || this.listItems.length == 0)
		{
			return;
		}
		var navDiv = document.createElement("DIV");
		displayDiv.appendChild(navDiv);
		navDiv.className = "nav-div";
		
		var mtDiv = document.createElement("DIV");
		displayDiv.appendChild(mtDiv);
		mtDiv.className = "empty-div";
		
		var resultDiv = document.createElement("DIV");
		displayDiv.appendChild(resultDiv);
		resultDiv.className = "search-result-div";

		this.resultDiv = resultDiv;
		
		this.showPage(1);
	},
	
	/**
	 * Shows the list items in a certain page number
	 * @param {Object} pageNumber
	 */
	showPage : function(pageNumber)
	{
		this.showItems.call(this, this.resultsPerPage * (pageNumber-1), this.resultsPerPage * pageNumber);
	},
	
	/**
	 * Shows books from start to end of the list
	 * @param {Object} start
	 * @param {Object} end
	 */
	showItems : function(start, end)
	{
		var docPos = "";
		for (var i = start; i < end && i < this.listItems.length ; i++)
		{
			docPos += this.displayFunction.call(this, this.listItems[i]);
		}
		this.resultDiv.innerHTML = docPos;
	}
	
}