function RankingText(type, x, y, appID) {
	this.type = type;
	this.appID = appID;
	this.playerID = -1;

	this.textRanking = this.makeRankingText(x, y);
	this.textRanking.anchor.x = 1;
	this.textPlayerName = this.makePlayerNameText(x, y);
	this.textPlayerName.anchor.x = 0;
	this.textRecord = this.makeRecordText(x, y);
	this.textRecord.anchor.x = 1;
};

RankingText.prototype.makeText = function(x, y, fontStyle) {
	var text = game.add.text(x, y, "", fontStyle);
	text.anchor.y = 0.5;
	text.inputEnabled = false;
	if(this.type == RankingText.PLACE_FOR_RANKING)
		text.setShadow(3, 3, 'rgba(32, 32, 32, 1)', 2);
	else
		text.setShadow(1, 1, 'rgba(32, 32, 32, 1)', 2);

	return text;
};

RankingText.prototype.makeRankingText = function(x, y) {
	var fontStyle = null;
	var offsetX = 0;
	if(this.type == RankingText.PLACE_FOR_RANKING) {
		fontStyle = RankingText.FONT_STYLE_FOR_RANKING;
		offsetX = 40;
	}
	else {
		fontStyle = RankingText.FONT_STYLE_FOR_RESULT;
		offsetX = 30;
	}

	return this.makeText(x + offsetX, y, fontStyle);
};

RankingText.prototype.makePlayerNameText = function(x, y) {
	var fontStyle = null;
	var offsetX = 0;
	if(this.type == RankingText.PLACE_FOR_RANKING) {
		fontStyle = RankingText.FONT_STYLE_FOR_RANKING;
		offsetX = 70;
	}
	else {
		fontStyle = RankingText.FONT_STYLE_FOR_RESULT;
		offsetX = 40;
	}

	return this.makeText(x + offsetX, y, fontStyle);
};

RankingText.prototype.makeRecordText = function(x, y) {
	var fontStyle = null;
	var offsetX = 0;
	if(this.type == RankingText.PLACE_FOR_RANKING) {
		fontStyle = RankingText.FONT_STYLE_FOR_RANKING;
		offsetX = 340;
	}
	else {
		fontStyle = RankingText.FONT_STYLE_FOR_RESULT;
		offsetX = 200;
	}

	return this.makeText(x + offsetX, y, fontStyle);
};

RankingText.prototype.resetText = function(text) {
	text.text = "";
	text.fill = "#ffffff";
	text.stroke = "#888888";
	text.strokeThickness = 0;
};

RankingText.prototype.reset = function() {
	this.playerID = -1;
	this.resetText(this.textRanking);
	this.resetText(this.textPlayerName);
	this.resetText(this.textRecord);
};

RankingText.prototype.setTextRankingColor = function(text, ranking) {
	var fillColor = "";
	var strokeColor = "";
	switch(ranking) {
		case 1:
		fillColor = "#ffd700";	// gold
		strokeColor = "#cd853f";
		break;

		case 2:
		fillColor = "#d0d0d0";	// silver
		strokeColor = "#404040";
		break;

		case 3:
		fillColor = "#d2691e";	// bronze
		strokeColor = "#8b0000";
		break;
	}
	text.fill = fillColor;
	text.stroke = strokeColor;
	text.strokeThickness = 4;
	text.setShadow(2, 2, "#333333", 2, false, true);
};

RankingText.prototype.setTopRankingTextColor = function(ranking) {
	if(ranking < 4) {
		this.setTextRankingColor(this.textRanking, ranking);
		this.setTextRankingColor(this.textPlayerName, ranking);
		this.setTextRankingColor(this.textRecord, ranking);
	}
};

RankingText.prototype.setMyRankingTextColor = function() {
	if(sessionStorageManager.getPlayerID() != this.playerID)
		return;

	var fillColor = "#9acd32";	// yellowgreen
	var strokeColor = "#2e8b57";	// seagreen
	this.textRanking.fill = fillColor;
	this.textRanking.stroke = strokeColor;
	this.textRanking.strokeThickness = 2;
	this.textPlayerName.fill = fillColor;
	this.textPlayerName.stroke = strokeColor;
	this.textPlayerName.strokeThickness = 2;
	this.textRecord.fill = fillColor;
	this.textRecord.stroke = strokeColor;
	this.textRecord.strokeThickness = 2;
};

RankingText.prototype.setRankingMinusTextColor = function(ranking) {
	// console.log(ranking);
	if(ranking >= 0)
		return;

	var fillColor = "#ddaaaa";	// yellowgreen
	// var strokeColor = "#2e8b57";	// seagreen
	this.textRanking.fill = fillColor;
	// this.textRanking.stroke = strokeColor;
	// this.textRanking.strokeThickness = 2;
	this.textPlayerName.fill = fillColor;
	// this.textPlayerName.stroke = strokeColor;
	// this.textPlayerName.strokeThickness = 2;
	this.textRecord.fill = fillColor;
	// this.textRecord.stroke = strokeColor;
	// this.textRecord.strokeThickness = 2;
};

RankingText.prototype.setContents = function(playerID, ranking, playerName, record) {
	this.reset();

	this.playerID = playerID;
	if(record >= 0)
		this.textRanking.text = ranking + "등";
	else
		this.textRanking.text = "아깝";
	this.textPlayerName.text = playerName;
	this.setRecord(record, this.appID);
	this.setTopRankingTextColor(ranking);
	this.setRankingMinusTextColor(ranking);
	this.setMyRankingTextColor();
};

RankingText.prototype.setRecord = function(record, appID) {
	// this.textRecord.text = RecordUtil.getRecordValueWithUnit(record, appID);

	var recordValue = record >= 0 ? record : -1 * record;
	var absRecordValue = RecordUtil.getRecordValueWithUnit(
		recordValue,
		sessionStorageManager.getPlayingAppID()
	);
	this.textRecord.text = absRecordValue;
};



RankingText.FONT_STYLE_FOR_RANKING = {
	font: "32px Arial",
	fill: "#fff"
};

RankingText.FONT_STYLE_FOR_RESULT = {
	font: "19px Arial",
	fill: "#fff"
};

RankingText.PLACE_FOR_RANKING	= 0;
RankingText.PLACE_FOR_RESULT	= 1;