// JavaScript Document

function GetPartScore(score)
{
	if (score < 0)		score = 0;
	if (score > 150)	score = 150;
	score = Math.floor(score);
	return score;
}

function CalcSpeed()
{
	var days = document.getElementById("speed_days").value;
	var limit = document.getElementById("speed_limit").value;

	if (!(days < 1 || days > 999 || limit < 1 || limit > 999 || isNaN(days) || isNaN(limit)))
	{
		days = Number(days);
		limit = Number(limit);
		var score = 100 - ((days - limit) * (100 / (3 * limit)));
		if (score > 100)
			score = 200 - (days * (100 / limit));
		return GetPartScore(score);
	}
}

function CalcPower()
{
	var damage = document.getElementById("power_damage").value;
	var kills = document.getElementById("power_kills").value;
	var attacks = document.getElementById("power_attacks").value;

	if (!(isNaN(damage) || isNaN(kills) || isNaN(attacks) || Number(kills) > Number(attacks)))
	{
		damage = Number(damage);
		kills = Number(kills);
		attacks = Number(attacks);
		if (attacks == 0)
			return GetPartScore(0);
		var score = (2 * (damage + (kills * 100)) / attacks) - 100;
		if (score > 100)
			score = (damage + (kills * 100)) / attacks;
		return GetPartScore(score);
	}
}

function CalcTech()
{
	var allydeploy = document.getElementById("tech_allydeploy").value;
	var allylost = document.getElementById("tech_allylost").value;
	var enemydeploy = document.getElementById("tech_enemydeploy").value;
	var enemyjoined = document.getElementById("tech_enemyjoined").value;

	if (!(isNaN(allydeploy) || isNaN(allylost) || isNaN(enemydeploy) || isNaN(enemyjoined) || Number(allylost) > Number(allydeploy) || Number(enemyjoined) > Number(enemydeploy)))
	{
		allydeploy = Number(allydeploy);
		allylost = Number(allylost);
		enemydeploy = Number(enemydeploy);
		enemyjoined = Number(enemyjoined);
		var score = 125 * ((enemydeploy - enemyjoined) / (allydeploy + allylost));
		if (score > 100)
			score = (62.5 * ((enemydeploy - enemyjoined) / (allydeploy + allylost))) + 50;
		return GetPartScore(score);
	}
}

function UpdateScore(area)
{
	var score;
	if (area == "speed") score = CalcSpeed();
	if (area == "power") score = CalcPower();
	if (area == "tech") score = CalcTech();

	var el_score = document.getElementById(area + "_score");
	var el_score_num = document.getElementById(area + "_score_num");

	if (isNaN(score) || (!score && score != 0))
	{
		el_score.value = "";
		el_score_num.value = "";
	}
	else
	{
		el_score.value = score + "pts";
		el_score_num.value = score;
	}
	UpdateGlobalScore();			
}


function UpdateGlobalScore()
{
	var score1 = document.getElementById("speed_score_num").value;
	var score2 = document.getElementById("power_score_num").value;
	var score3 = document.getElementById("tech_score_num").value;
	if (score1 == "" || score2 == "" || score3 == "")
	{
		var global_div = document.getElementById("global");
		global_div.style.visibility = "hidden";
		global_div.style.display = "none";
	}
	else
	{
		var score = Number(score1) + Number(score2) + Number(score3);
		var scoretext;
		var scorecolor;
		if (score < 200)
		{
			scoretext = score + "pts C-Rank";
			scorecolor = "#cc0000";
		}
		else if (score < 250)
		{
			scoretext = score + "pts B-Rank";
			scorecolor = "#996600";
		}
		else if (score < 300)
		{
			scoretext = score + "pts A-Rank";
			scorecolor = "#006600";
		}
		else
		{
			scoretext = score + "pts S-Rank";
			scorecolor = "#000099";
		}
		var el_globalscore = document.getElementById("global_score");
		el_globalscore.innerHTML = scoretext;
		el_globalscore.style.color = scorecolor;
		var global_div = document.getElementById("global");
		global_div.style.visibility = "visible";
		global_div.style.display = "";
	}
}
