/**
 * 電力チェック用CSVファイルの情報を取得
 */
$(function() {
	$.ajax({
		url: csv_uri,
		type: 'GET',
		dataType: 'text',
		data: '',
		cache : true,
		timeout: 5000,
		success: function(data){
			if(!data) {
				retry_loadcsv();
				return false;
			}

			var csv = data.split(',');

			if(csv.length == 7) {
				anlzCsv(csv);
			} else {
				retry_loadcsv();
			}

			return false;

		},

		beforeSend : function( xhr ){
			xhr.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT");
		},

		error: function(){
			retry_loadcsv();
		}
	});
});

/* 再読み込み */
function retry_loadcsv() {
	$.get(csv_uri,function(data){
		if(!data) {
			return false;
		}

		if(csv.length == 7) {
			anlzCsv(csv);
		}

		return false;
	});
}

/* CSVファイルの解析 */
function anlzCsv(csv) {
	writeUpdate(csv[0]);
	writePer(csv[2], csv[5]);

}

/* 更新日の書き込み */
function writeUpdate(strUpdate) {
	var year = Number(strUpdate.substring(0,4));
	var month = Number(strUpdate.substring(4,6));
	var day = Number(strUpdate.substring(6,8));
	var hour = Number(strUpdate.substring(8,10));
	var minute = Number(strUpdate.substring(10,12));

	month--;
	var up_date = new Date(year, month, day, hour, minute, 0);

	up_date.setMinutes(up_date.getMinutes()+30);


	var up = '';

	switch(gt_types) {
	case 'official_ja':
	case 'ene':
		up = fillZero((up_date.getMonth()+1), 100) + '月' + fillZero(up_date.getDate(),100) + '日 ';
		up += fillZero(up_date.getHours(), 100) + '時' + fillZero(up_date.getMinutes(), 100) + '分 集計';
		break;

	case 'official_en':
		up = 'Last Updated<br />';
		up += fillZero(up_date.getHours(), 100) + ':' + fillZero(up_date.getMinutes(), 100) + ' ';

		switch((up_date.getMonth()+1)) {
		case 1:
			up += 'Jan ';
			break;
		case 2:
			up += 'Feb ';
			break;
		case 3:
			up += 'Mar ';
			break;
		case 4:
			up += 'Apr ';
			break;
		case 5:
			up += 'May ';
			break;
		case 6:
			up += 'Jun ';
			break;
		case 7:
			up += 'Jul ';
			break;
		case 8:
			up += 'Aug ';
			break;
		case 9:
			up += 'Sep ';
			break;
		case 10:
			up += 'Oct ';
			break;
		case 11:
			up += 'Nov ';
			break;
		case 12:
			up += 'Dec ';
			break;
		default:
			up += '--- ';
			break;
		}

		up += fillZero(up_date.getDate(), 100) + ', ' + up_date.getFullYear();
		break;

	default:
		break;
	}

	$('#gt_update').empty();
	$('#gt_update').append(up);
}

/* パーセンテージの書き込み */
function writePer(oookayama, suzukakedai) {
	var max_oookayama = 8705;	// 大岡山最大 kw
	var max_suzukakedai = 5054;	// すずかけ台最大 kw

	var per_oookayama = oookayama / max_oookayama * 100;
	var per_suzukakedai = suzukakedai / max_suzukakedai * 100;
	var cls_oookayama = '';
	var cls_suzukakedai = '';

	per_oookayama = Math.round(per_oookayama);
	if(per_oookayama < 85) {
		cls_oookayama = 'gt-blue';
	} else if(per_oookayama < 90) {
		cls_oookayama = 'gt-orange';
	} else {
		cls_oookayama = 'gt-red';
	}

	per_suzukakedai = Math.round(per_suzukakedai);
	if(per_suzukakedai < 85) {
		cls_suzukakedai = 'gt-blue';
	} else if(per_suzukakedai < 90) {
		cls_suzukakedai = 'gt-orange';
	} else {
		cls_suzukakedai = 'gt-red';
	}


	// 初期化
	$('#gt_per_oookayama').empty();
	$('#gt_per_suzukakedai').empty();

	// 文字の色を指定
	$('#gt_per_oookayama').addClass(cls_oookayama);
	$('#gt_per_suzukakedai').addClass(cls_suzukakedai);

	// 数値入力
	$('#gt_per_oookayama').append(per_oookayama);
	$('#gt_per_suzukakedai').append(per_suzukakedai);

}

/* 電力使用量KW */
function writeKw(oookayama, suzukakedai) {
	$('#gt_kw_oookayama').append(per_oookayama);
	$('#gt_kw_suzukakedai').append(per_suzukakedai);
}

/**
 * 数値に０を入れて返す
 * @param number 数値
 * @param size 桁数(２桁なら 100, 3桁なら 1000)
 */
function fillZero(number, val) {
	return String(number + val).substring(1);
}
