function HiScoreTable() {
	this.scores = [];
	if (localStorage.hiscores != null) {
		this.scores = JSON.parse(localStorage.hiscores);
	}
	this.render();
}

HiScoreTable.prototype.render = function() {
	var scoresEl = document.getElementById('scores');
	var scoreHTML = "";
	for (var i = 0; i < this.scores.length; ++i) {
		scoreHTML += "<li>"+this.scores[i].name+" "+(this.scores[i].score / 1000)+"s</li>";
	}	
	scoresEl.innerHTML = scoreHTML;
}

HiScoreTable.prototype.isInTable = function(score) {
	if (this.scores.length < 10) {
		return true;
	}
	var lastScore = null;
	if (this.scores.length > 0) {
		lastScore = this.scores[this.scores.length - 1];
	}
	return lastScore == null || lastScore.score > score;
}

HiScoreTable.prototype.addScore = function(score, name) {
	var scoreRecord = {score: parseInt(score,10) , name: name};
	var inserted = false;
	for (var i = 0; i < this.scores.length; ++i) {
		if (this.scores[i].score > score) {
			this.scores.splice(i, 0, scoreRecord);
			inserted = true;
			break;
		}
	}
	if (inserted === false) {
		this.scores.push(scoreRecord);
	}
	
	if (this.scores.length > 10) {
		this.scores = this.scores.slice(0, 10);
	}
	this.save();
	this.render();
}

HiScoreTable.prototype.save = function() {
	localStorage.hiscores = JSON.stringify(this.scores);
}

HiScoreTable.prototype.clear = function() {
	delete localStorage.hiscores;
}

