var Pager = Class.create({
	initialize : function(perPage, elements) {
		this.elements = elements;
		this.perPage = perPage;
		this.currentPage = 0;
		this.totalPages = Math.ceil(this.elements.length / perPage);
	},

	getNextPage : function() {
		var results = [];
		if (!this.isLastPage()) {
			this.currentPage++;
			results = this.returnElements();
		}
		
		return results;
	},

	getPreviousPage : function() {
		var results = [];
		if (!this.isFirstPage()) {
			this.currentPage--;
			results = this.returnElements();
		}
		
		return results;
	},
	
	getCurrentPage : function() {
	    if (this.isFirstPage())
	    {
		return this.elements.slice(0, this.perPage);
	    }
	    else
	    {
		return this.elements.slice((this.currentPage) * this.perPage, this.currentPage * this.perPage);
	    }
	    
	},
	
	getPageByNumber : function(pageNumber) {
	    return this.elements.slice(pageNumber * this.perPage, pageNumber * this.perPage + this.perPage);
	},

	isLastPage : function() {
		return this.currentPage + 1 == this.totalPages;
	},

	isFirstPage : function() {
		return this.currentPage == 0;
	},

	setElements : function(elements) {
		this.elements = elements;
	},
	
	returnElements : function() {
		return this.elements.slice(this.currentPage * this.perPage, (this.currentPage + 1) * this.perPage);
	}
});

