var kwObj;
var powerObj;
var lfObj;
var unitsObj;
var timeObj;
var priceObj;

var displayResultObj;
var valueResultObj;
var powerCostsResultObj;
var powerCostsValueObj;
var co2CostsResultObj;
var co2CostsValueObj;

function electricityCosts()
{
	// データチェック
	msg = checkInput();
	if(msg != ""){
		alert(msg);
		return;
	}
	
	// 計算
	doElectricityCosts();
}

function doElectricityCosts()
{
	var kwObj = document.getElementById('kw');
	var powerObj = document.getElementById('power');
	var lfObj = document.getElementById('lf');
	var unitsObj = document.getElementById('units');
	var timeObj = document.getElementById('time');
	var priceObj = document.getElementById('price');
	
	var displayResultObj = document.getElementById('electricityCostsResult');
	var valueResultObj = document.getElementById('electricityCostsValue');
	var powerCostsResultObj = document.getElementById('powerCostsResult');
	var powerCostsValueObj = document.getElementById('powerCostsValue');
	var co2CostsResultObj = document.getElementById('co2CostsResult');
	var co2CostsValueObj = document.getElementById('co2CostsValue');
	
	var kw = kwObj.value;
	var power = powerObj.value;
	var lf = lfObj.value;
	var units = unitsObj.value;
	var time = timeObj.value;
	var price = priceObj.value;
	
	// 効率
	var normalEffValue = normalEff[power][lf][kw];
	var highEffValue
	if(document.getElementById('ie2Motor').checked){
		highEffValue = ie2Eff[power][lf][kw];
	}else {
		highEffValue = highEff[power][lf][kw];
	}
	
	// 電力料金計算
	var electricityCosts = ((100/normalEffValue) - (100/highEffValue)) * kw * (lf/100) * units * time * price;
	//alert(normalEffValue + '|' + highEffValue);
	electricityCosts = Math.round(electricityCosts/100)*100;	// 100円まで四捨五入
	
	// 年間節電量計算
	var powerCosts = ((100/normalEffValue) - (100/highEffValue)) * kw * (lf/100) * units * time;
	powerCosts = Math.round(powerCosts/10)*10;
	
	// co2計算
	var co2Costs = powerCosts * 0.368;
	co2Costs = Math.round(co2Costs/10)*10;
	
	// 表示
	valueResultObj.innerHTML = num2Currency(electricityCosts);
	displayResultObj.style.display = "";
	
	powerCostsValueObj.innerHTML = num2Currency(powerCosts);
	powerCostsResultObj.style.display = "";
	
	co2CostsValueObj.innerHTML = num2Currency(co2Costs);
	co2CostsResultObj.style.display = "";	
}

function checkInput()
{
	var msg = "";

	// データチェック
	if( (kwObj.value==0) || (powerObj.value==0) || (lfObj.value==0) )
	{
		msg = "全ての項目を選択してください";	
		return msg;
	}
	if( (unitsObj.value=="") || (timeObj.value=="") || (priceObj.value=="") )
	{
		msg = "全ての項目を入力してください";
		return msg;
	}
	if( !checkNumber(unitsObj.value) || !checkNumber(timeObj.value) || !checkNumber(priceObj.value) )
	{
		msg = "半角数字を入力してください";
		return msg;
	}

	return msg;
}

function setPower()
{
	doSetPower();

	tryElectricityCosts();
}

function tryElectricityCosts()
{
	// データチェック
	msg = checkInput();

	if(msg == ""){
		doElectricityCosts();
	}else {
		// 表示
		displayResultObj.style.display = "none";
		powerCostsResultObj.style.display = "none";
		co2CostsResultObj.style.display = "none";	
	}
}

function doSetPower()
{
	var powers;
	if(document.getElementById('ie2Motor').checked){
		powers = ie2Power;
	}else {
		powers = highPower;
	}

	var kwObj = document.getElementById('kw');
	var kwValue = kwObj.value;

	var i = 0;
	var sameKw = false;	// 同じ容量を選択したか
	kwObj.length = powers.length;

	for(var i=1; i<kwObj.length; i++){
		kwObj.options[i].value = powers[i];
		kwObj.options[i].text = powers[i] + "kW";
		if(powers[i] == kwValue){
			kwObj.options[i].selected = true;
			sameKw = true;
		}
	}

	if(!sameKw){
		kwObj.options[0].selected = true;
	}

	return sameKw;
}

function alertInput(msg)
{
	alert(msg);
}

function checkNumber(str)
{
	if( str.match( /[^0-9]+/ ) ) {
		return false;
	}else{
		return true;	
	}
}

function num2Currency(str){

	// 画面項目の値
	var num = new String(str).replace(/,/g/"");
	while(num != (num =num.replace(/^(-?\d+)(\d{3})/,"$1,$2")));
	return num;

}

window.onload = function() { 
	doSetPower(); 

	kwObj = document.getElementById('kw');
	powerObj = document.getElementById('power');
	lfObj = document.getElementById('lf');
	unitsObj = document.getElementById('units');
	timeObj = document.getElementById('time');
	priceObj = document.getElementById('price');

	displayResultObj = document.getElementById('electricityCostsResult');
	valueResultObj = document.getElementById('electricityCostsValue');
	powerCostsResultObj = document.getElementById('powerCostsResult');
	powerCostsValueObj = document.getElementById('powerCostsValue');
	co2CostsResultObj = document.getElementById('co2CostsResult');
	co2CostsValueObj = document.getElementById('co2CostsValue');
}
