function Chart() {
	this.chartGraphics = game.add.graphics(0, 0);
}

Chart.prototype.printChartBaseLine = function() {
	this.chartGraphics.lineStyle(3, 0xffd900, 1);
	this.chartGraphics.moveTo(100, Chart.CHART_LINE_Y);
	this.chartGraphics.lineTo(game.world.width - 100, Chart.CHART_LINE_Y);
}

Chart.prototype.drawRecordGraph = function(index, date, bestRecord, min, max) {
	var reverseIndex = (Chart.CHART_COUNT - 1) - index;
	var posX = Chart.CHART_LINE_START_X + Chart.CHART_GRAPH_OFFSET_X + reverseIndex * Chart.CHART_GAP_PX;
	var posY = Chart.CHART_LINE_Y;

	this.drawText(
		posX, posY + Chart.CHART_DATE_OFFSET_Y,
		date === "-" ? "-" : DateUtil.printMonthDay(date)
	);

	if(bestRecord === "")
		return;

	var recordTextPosY = posY - Chart.CHART_HEIGHT - Chart.CHART_RECORD_OFFSET_Y;
	// var absRecordValue = Math.abs(bestRecord);
	var absRecordValue = bestRecord < 0 ? -1 * bestRecord : bestRecord;
	// var absRecordValue = Math.abs(Math.floor(bestRecord));
	var recordWithUnit = RecordUtil.getRecordValueWithUnit(absRecordValue, sessionStorageManager.getPlayingAppID());

	if(bestRecord >= 0) {
		this.drawText(posX, recordTextPosY, recordWithUnit);
	} else {
		recordWithUnit = "아깝/" + recordWithUnit;
		this.drawDisqualificationText(posX, recordTextPosY, recordWithUnit);
	}

	// chart
	var chartColor = 0xffffff;
	if(bestRecord >= 0)
		chartColor = 0xdddddd;
	else
		chartColor = 0xffaaaa;
	if(max < absRecordValue)
		max = absRecordValue * 1.1;
	this.chartGraphics.lineStyle(50, chartColor, 1);
	this.chartGraphics.moveTo(posX, posY);
	this.chartGraphics.lineTo(posX, posY - Chart.CHART_HEIGHT * ( (absRecordValue - min) / (max - min) ));
	console.log("absRecordValue : " + absRecordValue);
	console.log("min : " + min);
	console.log("max : " + max);
}

Chart.prototype.drawText = function(posX, posY, text) {
	var style = { font: "22px Arial", fill: "#fff", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };

	var textObject = game.add.text(
		posX, posY,
		text, style
	);
	textObject.anchor.set(0.5);
	textObject.stroke = "#333";
	textObject.strokeThickness = 3;

	return textObject;
}

Chart.prototype.drawDisqualificationText = function(posX, posY, text) {
	var style = { font: "22px Arial", fill: "#faa", align: "left", boundsAlignH: "center", boundsAlignV: "middle" };

	var textObject = game.add.text(
		posX, posY,
		text, style
	);
	textObject.anchor.set(0.5);
	textObject.stroke = "#333";
	textObject.strokeThickness = 3;

	return textObject;
}

Chart.prototype.getFontStyle = function() {
	return { font: "32px Arial", fill: "#fff" };
}


Chart.CHART_COUNT			= 7;

Chart.CHART_LINE_START_X	= 100;
Chart.CHART_LINE_Y			= 648;

Chart.CHART_GAP_PX			= 120;
Chart.CHART_HEIGHT			= 120;

Chart.CHART_GRAPH_OFFSET_X	= 50;
Chart.CHART_DATE_OFFSET_Y	= 20;
Chart.CHART_RECORD_OFFSET_Y	= 30;