function CSA()
{
	this.onSetScore = null;
	this.onSetStatus = null;
}

CSA.prototype.initialize = function()
{
}

CSA.prototype.finish = function()
{
}

CSA.prototype.setScore = function(score)
{
	log.info("CSA::setScore (" + score + ") gix = " + player.gix);
	score = parseInt(score);
	if (isNaN(score)) score = 0;
	var item = struct.findItem(player.gix);
	if (item) item["score"] = score;
	
	if (this.onSetScore) this.onSetScore(score);
}

CSA.prototype.getScore = function()
{
	var item = struct.findItem(player.gix);
	return (item) ? parseInt(item["score"]) : 0;
}

CSA.prototype.setStatus = function(status)
{
	log.info("CSA::setStatus (" + status + ") gix = " + player.gix);
	status = status.toUpperCase();
	var item = struct.findItem(player.gix);
	if (item) {
		if (status == "C" || status == "P" || status == "F") {
			item["status"] = status;
		} else {
			item["status"] = "I";
		}
	}	

	if (this.onSetStatus) this.onSetStatus(status);
}

CSA.prototype.getStatus = function(status)
{
	var item = struct.findItem(player.gix);
	return (item) ? item["status"] : "I";
}

CSA.prototype.nextPage = function()
{
	player.nextPage();
}

CSA.prototype.previousPage = function()
{
	player.previousPage();
}

CSA.prototype.gotoPage = function(gix)
{
	player.gotoPage(gix);
}

CSA.prototype.getData = function(name)
{
	return suspendData.getValue(name);
}

CSA.prototype.setData = function(name, value)
{
	suspendData.setValue(name, value);
}

CSA.prototype.getLastUserAnswer = function()
{
	var item = struct.findItem(player.gix);
	if (typeof(item) != "undefined") {
		var result = item["userans"];
		result = result.replace(/!/gi, "#|#");
		result = result.replace(/%25/gi, "%");
		result = result.replace(/%21/gi, "!");
		return result;
	}
	return "";
};

CSA.prototype.setLastUserAnswer = function(ans)
{
	var item = struct.findItem(player.gix);
	if (item) {
		ans = ans.replace(/%/gi, "%25");
		ans = ans.replace(/!/gi, "%21");
		item["userans"] = ans.replace(/#\|#/gi, "!");
	}
};

csa = new CSA();
