<!--
var DT;
var yy,mm,dd,hh,mmin,weekday;
var NowAge;
var MoonDays = new Array(0,0,0,0,0,0,0);
var MoonName = new Array(6);
var RiseFlag = 0;
var Kou = new Array(3);
var Sek = new Array(3);
var RiseTime,SetTime;
var om,od = -1,nd,uruu;
var skname = new Array('春分','清明','穀雨','立夏','小満','芒種','夏至','小暑','大暑','立秋','処暑','白露','秋分','寒露','霜降','立冬','小雪','大雪','冬至','小寒','大寒','立春','雨水','啓蟄');
var skdoc = new Array('昼夜等分、春めいてきましたね','大気清浄明潔、すがすがしい季節です','穀物には恵みの春雨が降る頃','夏の気が立ち始める頃。若葉の季節','草木の葉が繁る季節','麦の穂の満る頃、麦秋','もっとも日の長い頃。梅雨の最中？','梅雨あけもちかい？','暑さが厳しい頃。夏も本番','暑さは厳しいが、秋風が立ち始める頃？','暑かった夏も、終わりを告げる頃','涼風立ち始める季節。秋の花も咲き出す','昼夜等分、秋風が心地よい','秋の草花を探しに出かけましょうか','朝夕は冷え込む頃。かぜをひかぬように','日暮れも早く、冬がそこまで来ています','雨がやがて雪へと変わる季節','北国ではもう冬景色','もっとも夜の長い日。年の瀬です','新年明けましておめでとうございます','冬本番。寒さが厳しい季節','寒さが残るが春の気立ち始める季節','雪氷がとけ雨水となる季節','虫たちも、顔を出したでしょうか？');

var d2r = Math.PI / 180.0;
var sitelong = 139.75;	// 日出没・月出没を計算する地点（地点）
var sitelat = 35.68;

DirectJP = top.getCookie('DirectJamp');
document.cookie = 'DirectJamp=_NONE_; path=/; ';
if ((DirectJP != "") && (DirectJP != "_NONE_")) location.replace(DirectJP);

CallMainIndex('.');

function addZero(n)
{
	if (n < 10) return '0' + n;
	else return '' + n;
}

function GetNowTime(prm)
// 現在時刻をグローバル変数にセット
{
	if (prm.length <= 0) {
		var nowT = new Date();
	} else {
		var nowT = new Date(prm);
	}
	yy = nowT.getFullYear();
	mm = nowT.getMonth() + 1;
	dd = nowT.getDate();
	weekday = nowT.getDay();

	hh = nowT.getHours();
	mmin = nowT.getMinutes();
	DT = top.deltaT(yy) / 86400.0;
	top.VAR1 = yy;
	top.FLAG = 1;
}

// opening.shtml 単独呼び出しに対処
function set_page() {
	if (top.index) {
		if (!top.index.NowDoc) {
			window.setTimeout('set_page()',1000);
		} else {
			top.index.NowDoc(HPPage);
		}
	} else {
		location.href = '/';
	}
}

// select tag から、ymd を取得
function get_ymd() {
	var ymd;
	ymd = '' + get_selectValue(document.st.s_yy);
	ymd = ymd + '/' + get_selectValue(document.st.s_mm);
	ymd = ymd + '/' + get_selectValue(document.st.s_dd);
	var nowT = new Date(ymd);
	ymd = nowT.getFullYear() * 10000 + (nowT.getMonth() + 1) * 100 + nowT.getDate();
	return ymd;
}

// select tag から、hm を取得
function get_hm() {
	var hm;
	hm = get_selectValue(document.st.s_hh) * 1;
	hm = hm * 100 + get_selectValue(document.st.s_mmin) * 1;
	return hm;
}

// 新しいカレンダーを表示
// sYM:YYYYMM , 0 なら Formを読む。 addM:前後?月。sYM != 0 の場合のみ有効
function NewCal(sYM,addM) { 
	var ymd,hm;
	param = '' + document.location;
	n = param.indexOf('?',0);
	if (n >= 0) {
		param = param.substr(0,n);
	}

	if (sYM == 0) {
		ymd = '' + get_ymd();
		hm = '' + get_hm();
	} else {
		var yy,mm;
		mm = sYM % 100;
		yy = Math.floor((sYM - mm) / 100);

		mm = mm - 1 + addM;
		while (mm > 11) {
			yy++;
			mm -= 12;
		}
		while (mm < 0) {
			yy--;
			mm += 12;
		}
		ymd = '' + (yy * 10000 + (mm + 1) * 100 + 1);
		hm = '0000';
	}
	while (ymd.length < 8) { ymd = '0' + ymd; }
	while (hm.length < 4) { hm = '0' + hm; }
	param = param + '?' + ymd + hm;
	document.location = param;
}

// 今日は何の日表示
function today() {
	var ymd = '' + get_ymd();
	var url = './cgi/today/today.php?syy=' + ymd.substr(0,4) + '&smm=' + ymd.substr(4,2) + '&sdd=' + ymd.substr(6,2);
	document.location = url;
}

// 今日の誕生花表示
function flower() {
	var ymd = '' + get_ymd();
	var url = './cgi/today/bflower.php?syy=' + ymd.substr(0,4) + '&smm=' + ymd.substr(4,2) + '&sdd=' + ymd.substr(6,2);
	document.location = url;
}

// 今月の月暦の設定
function MoonPhase()
{
	var moonName = new Array("新月(朔)","上弦の月","満月(望)","下弦の月");
	var TM;
	var Phofs,p0,p1,day,tmp,arrp = 0;
//	GetNowTime();
	TM = top.Ymd2Jd(yy,mm,(1.0 - 9 / 24.0 + DT)) - top.Ymd2Jd(2000,1,1.5);
	Phofs = top.MoonLong(TM) - top.SunLong(TM);
	if (Phofs < 0.0) Phofs += 360;
	p0 = Phofs;
	Phofs = (Math.floor(Phofs / 90 + 0.001) + 1) * 90;
	if (Phofs > 359) Phofs = 0.0;
	for (day = 1; day <= top.GetMonthDays(yy,mm) ; day++)
	{ 
		TM++;
		p1 = top.MoonLong(TM) - top.SunLong(TM);
		if (p1 < 0.0) p1 += 360.0;
		if (p1 < p0) p0 -= 360.0;	// 2006.1.3 修正
		if ((p0 - Phofs) * (p1 - Phofs) <= 0.0)	// <= は、ほんとは、< だけど。無限ループ防止ための手抜き
		{
			tmp = day;
			if (tmp < 10) tmp = ' ' + tmp;
			MoonDays[arrp] = tmp;
			MoonName[arrp++] = moonName[Math.floor(Phofs / 90.0 + 0.001)];
			Phofs += 90;
			if (Phofs > 359) Phofs = 0.0;	// 2006.1.3
		}
		p0 = p1;
	}
}

// 現在のカレンダーを作る
function nowcalender() {
//	GetNowTime();
	document.writeln(top.GetGengouY(yy) + '（' + top.GetKanY(yy) + top.GetShiY(yy) + '）' + top.GetOldMonthName(mm) + '<br>');
	top.calender(this,yy,mm,dd,0,"");
}

// 旧暦計算（om,od,uruuにデータをセット）
function SetOldDate() {
	nd = top.Ymd2Jd(yy,mm,dd);
//	GetNowTime();
	if (od > 0) return;	// 既に計算している

	var nowdate = mm * 100 + dd;
	ndyy = yy;
	var nda = 'nd' + ndyy;
	var oma = 'om' + ndyy;
	if (nowdate < eval(nda + '[1]')) {
		ndyy--;
		nda = 'nd' + ndyy;
		oma = 'om' + ndyy;
		nowdate = (mm + 12) * 100 + dd;
	}

	var ai= eval(nda + '[0]');
	for (; nowdate < eval(nda + '[' + ai + ']') ; ai--) ;
	nowdate = eval(nda + '[' + ai + ']');
	if (nowdate > 1300) {
		nowdate -= 1200;
		ndyy++;
	}
	od = nd - top.Ymd2Jd(ndyy,Math.floor(nowdate / 100),nowdate % 100) + 1;
	om = eval(oma + '[' + ai + ']');
	if (om > 0) {
		uruu = '';
	} else {
		uruu = '閏';
		om = -om;
	}
}

// 指定日の雑データ（旧暦・六曜他）
function todaydata(syy,smm) {
	var msg,ykanshi,mkanshi,dkanshi,d6you;
	var oyy,snd,slng,tlng,dn,TM;

	SetOldDate(nd);	// 旧暦の計算
	dkanshi = top.GetKanD(nd) + top.GetShiD(nd);	// 日の干支
	d6you = top.Get6you(om,od);

	document.writeln('<table><tr><th>(暦)</th><th>年月日</th><th><a href="/reki_doc/doc_0020.htm">干支年/月/日</a></th><th><a href="./sub/rekicyuu.htm">六曜</a></th></tr>');

	ykanshi = top.GetKanY(yy) + top.GetShiY(yy);
	mkanshi = top.GetKanM(yy,mm) + top.GetShiM(yy,mm);
	msg = '<tr><th>新暦</th><td>' + yy + '/' + mm + '/' + dd + '</td>';
	msg = msg + '<td>' + ykanshi + '/' + mkanshi + '/' + dkanshi + '</td>';
	msg = msg + '<td>' + d6you + '</td></tr>';
//	msg = msg + '(' + top.GetKan2D(nd) + ')';
	document.writeln(msg);

	oyy = yy;
	if (om - 6 > mm) oyy--;
	ykanshi = top.GetKanY(oyy) + top.GetShiY(oyy);
	mkanshi = top.GetKanM(oyy,om) + top.GetShiM(oyy,om);
	msg = '<tr><th><a href="./kyuureki.htm">旧暦</a></th><td>' + oyy + '/' + uruu + om + '/' + od + '</td>';
	msg = msg + '<td>' + ykanshi + '/' + mkanshi + '/' + dkanshi + '</td>';
	msg = msg + '<td>' + d6you + '</td></tr>';
	document.writeln(msg);

	snd = nd;
	TM = nd - 9 / 24.0 + DT - top.Ymd2Jd(2000,1,1.5);
	tlng = (smm - 1) * 30;
	tlng = tlng - Math.floor(tlng / 360) * 360;
	slng = top.SunLong(TM) + 45;
	if (slng > 360) slng -= 360;
	
	for (;;) {
		slng = top.SunLong(TM) + 45;
		if (slng > 360) slng -= 360;
// alert(slng + ' : ' + tlng);
		if (Math.floor(slng/30) != (smm - 1)) break;
		dn = Math.floor((slng - tlng) / 1.05);
		if (dn < 1) dn = 1;
		snd -= dn;
		TM -= dn;
	}
	ykanshi = top.GetKanY(syy) + top.GetShiY(syy);
	mkanshi = top.GetKanM(syy,smm) + top.GetShiM(syy,smm);
	msg = '<tr><th>節切</th><td>' + syy + '/' + smm + '/' + (nd - snd + 1) + '</td>';
	msg = msg + '<td>' + ykanshi + '/' + mkanshi + '/' + dkanshi + '</td>';
	msg = msg + '<td>' + d6you + '</td></tr>';
	document.writeln(msg);
	document.writeln('</table>');

	msg = '<a href="/sub/9sei.htm"><strong>九星</strong>(節切年/月/日)</a> ';
	msg = msg + Year2KyuuseiNameS(syy) + '/' + Month2KyuuseiNameS(syy,smm) + '/';
	msg = msg + Jd2KyuuseiNameS(nd) + '<br>';
	document.writeln(msg);

	msg = '<strong><a href="./sub/rekicyuu.htm?' + (yy*100+mm) + '28' + '">二十八宿</a></strong> ';
	msg = msg + top.GetSukuD(nd) + '(' + top.GetSuku2D(nd) + ')　';
	msg = msg + '<strong><a href="./sub/rekicyuu.htm?' + (yy*100+mm) + '27' + '">二十七宿</a></strong> ';
	msg = msg + top.GetSuku27D(om*1,od*1) + '(' + top.GetSuku272D(om*1,od*1) + ')<br>';
	document.writeln(msg);
}

// 日の出と日の入りを計算
function SunRise(){
	var T;
	
	RiseTime = -999;
	SetTime = -999;
	T = top.Ymd2Jd(yy,mm,dd) - top.Ymd2Jd(2000,1,1.5) - 9/24.0;	// 最後は時差補正
	RiseTime = (RiseSB(T,(8.0/24.0),(sitelong * d2r),(sitelat * d2r),1) - T) * 24.0;
	SetTime = (RiseSB((T+(RiseTime + 0.5)/24.0),(8.0/24.0),(sitelong * d2r),(sitelat * d2r),1) - T) * 24.0;
}

// 月の出と月の入りを計算
function MoonRise(){
	var T,tmp;
	
	RiseTime = -999;
	SetTime = -999;
	T = top.Ymd2Jd(yy,mm,dd) - top.Ymd2Jd(2000,1,1.5) - 9/24.0;	// 最後は時差補正
	tmp = (RiseSB(T,(8.0/24.0),(sitelong * d2r),(sitelat * d2r),2) - T) * 24.0;
	if (RiseFlag < 0) {
		tmp = (RiseSB((T + (tmp + 1)/24),(8.0/24.0),(sitelong * d2r),(sitelat * d2r),2) - T) * 24.0;
	}
	RiseTime = tmp;

	tmp = (RiseSB(T,(8.0/24.0),(sitelong * d2r),(sitelat * d2r),2) - T) * 24.0;
	if (RiseFlag >= 0) {
		tmp = (RiseSB((T + (tmp + 0.5)/24),(8.0/24.0),(sitelong * d2r),(sitelat * d2r),2) - T) * 24.0;
	}
	SetTime = tmp;
}

// 日の出没・月の出没を計算する共通関数。 objectflag = 1:太陽  2:月
function RiseSB(ts,dtime,lng,lat,objectflag)
{
	var dtimemin,TD;
	var firstflag;
	var dt,t0,t1;
	var el0,el1;
	var elbase;

	firstflag = 1;
	dt = top.deltaT(yy) / 86400.0;
	dtimemin = 0.1 / 1440;
	t1 = ts;
	el0 = 0;
	while (dtime >= dtimemin) {
		TD = t1 + dt;
		if (objectflag == 1) {
			Kou[0] = 1.0;
			Kou[1] = top.SunLong(TD) * d2r;
			Kou[2] = 0.0;
			elbase = 0.899 * d2r;
		} else {
			elbase = top.MoonHP(TD);	// 地心視差
			Kou[0] = 1.0 / Math.sin(elbase);
			Kou[1] = top.MoonLong(TD) * d2r;
			Kou[2] = top.MoonLat(TD) * d2r;
//			elbase = (0.586 - elbase) * d2r;	// 0.586deg = 35'08" 大気差
			elbase = (0.635 - elbase) * d2r;	// 月出没計算互換
		}

		Koudou2Sekidou(Kou,Sek,TD,1);
		el1 = GetEL(t1,Sek[1],Sek[2],lng,lat) + elbase;	// 大気差他の補正
		if (firstflag > 0) {
			el0 = el1;
			firstflag = 0;
		}
		if (el0 * el1 >= 0) {
			t0 = t1;
			el0 = el1;
		} else {
			dtime /= 2.0;
		}
		t1 = t0 + dtime;
	}
	RiseFlag = el1;
	return (t0 + dtime);	
}

function SekkiDoc()	{// 24節気表示
	var i,jisa,jd0,mms,mme,dds,dde;
//	GetNowTime();
	jisa = -9.0 / 24.0 + DT;
	jd0 = top.Ymd2Jd(2000,1,1.5);
	nd = top.Ymd2Jd(yy,mm,dd) - jd0;
	i = top.SunLong(nd + 1.0 + jisa);
	i = Math.floor(i / 15.0);

	dds = nd;
	dde = nd;
	for (;;) {
		nd = Math.floor(top.SunLong(dds + jisa) / 15.0);
		if (nd != i) break;
		dds--;
	}
	for (;;) {
		nd = Math.floor(top.SunLong(dde + 2.0 + jisa) / 15.0);
		if (nd != i) break;
		dde++;
	}
	mms = top.Jd2Ymd(dds + jd0) % 10000;
	mme = top.Jd2Ymd(dde + jd0) % 10000;
	dds = mms % 100;
	mms = Math.floor(mms / 100);
	dde = mme % 100;
	mme = Math.floor(mme / 100);

	document.writeln('<strong>' + skname[i] + '(' + mms + '/' + dds + '〜' + mme + '/' + dde + ')</strong><br>');
	document.writeln('◇' + skdoc[i]);
	return i;	// 24節気を返す
}
// -->
