
var tsukimiru = {
    getMoonPhase:
        function() {
			/*
			   新月日計算
			   引数  　julian  ユリウス通日
			   戻り値  与えられたユリウス通日に対する直前の新月日(ユリウス日)
			*/
			function getNewMoon(julian) {

			  var k     = Math.floor((julian - 2451550.09765) / 29.530589);
			  var t     = k / 1236.85;
			  var nmoon = 2451550.09765
			             + 29.530589  * k
			             +  0.0001337 * t * t
			             -  0.40720   * Math.sin((201.5643 + 385.8169 * k) * 0.017453292519943)
			             +  0.17241   * Math.sin((2.5534 +  29.1054 * k) * 0.017453292519943);
			  return (nmoon);         // julian - nmoonが現在時刻の月齢
			}
			/*
			    ユリウス通日計算
			    引数　　時刻(Dateオブジェクト)
			    戻り値　ユリウス通日(浮動小数点数)
			*/
			function getJulian(date) {
			  return date.getTime() / 86400000.0+2440587.5;
			}
			/*
			    0,1,2,3 ... を 00,01,02,03 ...
			*/
			function maeZero(num){
			    if (num < 10){
			        return '0' + num;
			    } else {
			        return num;
			    }
			}
			var nowDate = new Date();
			julian = getJulian(nowDate);

			var year = nowDate.getYear();
			if(year < 2000){
			    year += 1900;
			}
			var month  = nowDate.getMonth() + 1;
			var day    = nowDate.getDate();
			var week   = (new Array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'))[nowDate.getDay()];
			var hour   = nowDate.getHours();
			var minute = nowDate.getMinutes();
			var nmoon = getNewMoon(julian);
			// getNewMoonは新月直前の日を与えるとうまく計算できないのでその対処
			// (一日前の日付で再計算)
			if (nmoon > julian) {
			    nmoon = getNewMoon(julian - 1.0);
			}
			var age = julian - nmoon; // julian - nmoonが現在時刻の月齢
			var moonage = new String(age);
			var imageSrc
			var uniqueFileName;
			var sep;
			if (age >= 0) {
			    moonage = moonage + ".0"; // 小数部が0の時に備えた処理
			    if (moonage.charAt(0) == ".") { // 整数部が飛ばされたときの処理
			      moonage = "0" + moonage;
			    }
			    if(age >= 10) {
			      moonage = moonage.substring(0,4);
			    } else {
			      moonage = moonage.substring(0,3);
			    }
			    sep = moonage.split(".");
			    var number = parseInt(sep[0]) * 2;
			    if (parseInt(sep[1]) >= 5) {
			        uniqueFileName = number + 1;
			    } else {
			        uniqueFileName = number;
			    }
                if (uniqueFileName == 59 || uniqueFileName == 0) {
                    uniqueFileName = 1;
                }
			    if (uniqueFileName >= 10) {
			        uniqueFileName = "0" + uniqueFileName;
			    } else {
			        uniqueFileName = "00" + uniqueFileName;
			    }
			    imageSrc = "./imgs/moonphase/" + uniqueFileName + ".png";
                tsukimiru.writeSource(moonage, imageSrc);
			}
        },
    writeSource:
        function(ma, src) {
		    document.write('<div style="width:188px;height:70px;"><span style="float:left;">','月齢 ', ma,'</span><span style="float:right;"><img src="/imgs/flower.png" /></span></div>');
		    document.write('<div style="text-align:center;width:188px;height:93px;"><img width="', 45, '" height="', 45, '" src="', src, '" alt="" \/></div>');
		    document.write('<div style="width:188px;"><span style="float:left;">','<img src="/imgs/flower.png" /><!--コメント-->','</span><span style="float:right;"><img src="/imgs/flower.png" /></span></div>');
        }
}

tsukimiru.getMoonPhase();