function pagelist(pagesBlock, totalPage, curPage) {
	this.curPage = curPage;
	this.selPage = curPage;
	this.pageCount = totalPage;
	this.pagesBlock = $(pagesBlock);
	Event.observe(document, 'keydown', this.keyDown.bind(this));
	Event.observe(document, 'keyup', this.keyUp.bind(this));
}
pagelist.prototype.goToPage = function(num, ev, change) {
	if (num > 0 && num <= this.pageCount) {
		if ((loadingObj = $(this.pagesBlock).getElementsBySelector('.selected')) && loadingObj.length) {
			$(loadingObj[0]).removeClassName('selected');
		}
		$($(this.pagesBlock).getElementsBySelector('.item')[num - 1]).addClassName('selected');
		this.selPage = num;
		if (typeof change == 'undefined' || change) {
			this.curPage = this.selPage;
			location.href = $($(this.pagesBlock).getElementsBySelector('.item')[num - 1]).href;
			// this.reload();
		}
	}
	Event.stop(ev);
}
pagelist.prototype.goToNextPage = function(ev) {
	this.goToPage(this.curPage + 1, ev)
}

pagelist.prototype.goToPrevPage = function(ev) {
	this.goToPage(this.curPage - 1, ev)
}

pagelist.prototype.keyDown = function(ev) {
	if (ev.ctrlKey) {
		var keyCode = ev.keyCode || ev.which;
		if (keyCode == 37 && this.selPage > 1) this.goToPage(this.selPage - 1, ev, false);
		if (keyCode == 39 && this.selPage < this.pageCount) this.goToPage(this.selPage + 1, ev, false);
	}
}

pagelist.prototype.keyUp = function(ev) {
	var keyCode = ev.keyCode || ev.which;
	if (keyCode == 17 && this.selPage != this.curPage) {
		this.goToPage(this.selPage, ev);
	}
}
