goog.provide('oneup.ui.AchievementList');

goog.require('goog.dom');
goog.require('oneup.Achievement');

oneup.ui.AchievementList = function(achievements, limit, showPagination) {
	this.achievements_ = achievements;
	this.limit_ = limit || 0;
	this.showPagination = showPagination || false;
};

oneup.ui.AchievementList.prototype.render = function() {
	var holder = goog.dom.createDom('div');
	var pageNum = parseInt(oneup.app.uiManager.getPageArgs()['pageNum']) || 1;
	for (var i = 0; i < this.achievements_.length && !this.limitHit_(i); i++) {
		var ach = this.achievements_[i + this.limit_ * (pageNum - 1)];
		if (ach) {
			holder.appendChild(ach.render());
		}
	}
	holder.appendChild(goog.dom.createDom('div', {'class': 'clear'}, null));

	if (this.showPagination) {
		var urlBase = '#' + oneup.app.uiManager.getPageName();
		var args = oneup.app.uiManager.getPageArgs();
		var first = true;
		for (var i in args) {
			if (i != 'pageNum') {
				urlBase += first ? '?' : '&';
				urlBase += i + '=' + args[i];
				first = false;
			}
		}
		urlBase += first ? '?' : '&';
		urlBase += 'pageNum='
		holder.appendChild(new oneup.ui.Paginator(
		    this.achievements_.length,
		    this.limit_,
		    pageNum,
		    urlBase).render());
	}
	return holder;
}

oneup.ui.AchievementList.prototype.limitHit_ = function(i) {
	if (this.limit_ > 0) {
		return i >= this.limit_;
	}
	return false;
}

