﻿/**
 * Copyright 2004 Ho Ngoc Duc [http://come.to/duc]. All Rights Reserved.<p>
 * Permission to use, copy, modify, and redistribute this software and its
 * documentation for personal, non-commercial use is hereby granted provided that
 * this copyright notice and appropriate documentation appears in all copies.
 */

var TK20 = new Array(
	0x3c4bd8, 0x624ae0, 0x4ca570, 0x3854d5, 0x5cd260, 0x44d950, 0x315554, 0x5656a0, 0x409ad0, 0x2a55d2,
	0x504ae0, 0x3aa5b6, 0x60a4d0, 0x48d250, 0x33d255, 0x58b540, 0x42d6a0, 0x2cada2, 0x5295b0, 0x3f4977,
	0x644970, 0x4ca4b0, 0x36b4b5, 0x5c6a50, 0x466d40, 0x2fab54, 0x562b60, 0x409570, 0x2c52f2, 0x504970,
	0x3a6566, 0x5ed4a0, 0x48ea50, 0x336a95, 0x585ad0, 0x442b60, 0x2f86e3, 0x5292e0, 0x3dc8d7, 0x62c950,
	0x4cd4a0, 0x35d8a6, 0x5ab550, 0x4656a0, 0x31a5b4, 0x5625d0, 0x4092d0, 0x2ad2b2, 0x50a950, 0x38b557,
	0x5e6ca0, 0x48b550, 0x355355, 0x584da0, 0x42a5b0, 0x2f4573, 0x5452b0, 0x3ca9a8, 0x60e950, 0x4c6aa0,
	0x36aea6, 0x5aab50, 0x464b60, 0x30aae4, 0x56a570, 0x405260, 0x28f263, 0x4ed940, 0x38db47, 0x5cd6a0,
	0x4896d0, 0x344dd5, 0x5a4ad0, 0x42a4d0, 0x2cd4b4, 0x52b250, 0x3cd558, 0x60b540, 0x4ab5a0, 0x3755a6,
	0x5c95b0, 0x4649b0, 0x30a974, 0x56a4b0, 0x40aa50, 0x29aa52, 0x4e6d20, 0x39ad47, 0x5eab60, 0x489370,
	0x344af5, 0x5a4970, 0x4464b0, 0x2c74a3, 0x50ea50, 0x3d6a58, 0x6256a0, 0x4aaad0, 0x3696d5, 0x5c92e0
); /* Years 1900-1999 */

var TK21 = new Array(
	0x46c960, 0x2ed954, 0x54d4a0, 0x3eda50, 0x2a7552, 0x4e56a0, 0x38a7a7, 0x5ea5d0, 0x4a92b0, 0x32aab5,
	0x58a950, 0x42b4a0, 0x2cbaa4, 0x50ad50, 0x3c55d9, 0x624ba0, 0x4ca5b0, 0x375176, 0x5c5270, 0x466930,
	0x307934, 0x546aa0, 0x3ead50, 0x2a5b52, 0x504b60, 0x38a6e6, 0x5ea4e0, 0x48d260, 0x32ea65, 0x56d520,
	0x40daa0, 0x2d56a3, 0x5256d0, 0x3c4afb, 0x6249d0, 0x4ca4d0, 0x37d0b6, 0x5ab250, 0x44b520, 0x2edd25,
	0x54b5a0, 0x3e55d0, 0x2a55b2, 0x5049b0, 0x3aa577, 0x5ea4b0, 0x48aa50, 0x33b255, 0x586d20, 0x40ad60,
	0x2d4b63, 0x525370, 0x3e49e8, 0x60c970, 0x4c54b0, 0x3768a6, 0x5ada50, 0x445aa0, 0x2fa6a4, 0x54aad0,
	0x4052e0, 0x28d2e3, 0x4ec950, 0x38d557, 0x5ed4a0, 0x46d950, 0x325d55, 0x5856a0, 0x42a6d0, 0x2c55d4,
	0x5252b0, 0x3ca9b8, 0x62a930, 0x4ab490, 0x34b6a6, 0x5aad50, 0x4655a0, 0x2eab64, 0x54a570, 0x4052b0,
	0x2ab173, 0x4e6930, 0x386b37, 0x5e6aa0, 0x48ad50, 0x332ad5, 0x582b60, 0x42a570, 0x2e52e4, 0x50d160,
	0x3ae958, 0x60d520, 0x4ada90, 0x355aa6, 0x5a56d0, 0x462ae0, 0x30a9d4, 0x54a2d0, 0x3ed150, 0x28e952
); /* Years 2000-2099 */

var CAN = new Array("Gi\341p", "\u1EA4t", "B\355nh", "\u0110inh", "M\u1EADu", "K\u1EF7", "Canh", "T\342n", "Nh\342m", "Qu\375");
var CHI = new Array("T\375", "S\u1EEDu", "D\u1EA7n", "M\343o", "Th\354n", "T\u1EF5", "Ng\u1ECD", "M\371i", "Th\342n", "D\u1EADu", "Tu\u1EA5t", "H\u1EE3i");
var TUAN = new Array("Ch\u1EE7nh\u1EADt", "Th\u1EE9hai", "Th\u1EE9ba", "Th\u1EE9t\u01B0", "Th\u1EE9n\u0103m", "Th\u1EE9s\341u", "Th\u1EE9b\u1EA3y");

function LunarDate(dd, mm, yy, leap, jd) {
	this.day = dd;
	this.month = mm;
	this.year = yy;
	this.leap = leap;
	this.jd = jd;
}

function INT(d) {
	return Math.floor(d);
}
function jdn(dd, mm, yy) {
	return 367*yy - INT(7*(yy+INT((mm+9)/12))/4) - INT(3*(INT((yy+(mm-9)/7)/100)+1)/4) + INT(275*mm/9)+dd+1721029;
}

function jdn2date(jd) {
	var Z, A, alpha, B, C, D, E, dd, mm, yyyy, F;
	Z = jd;
	if (Z < 2299161) {
	  A = Z;
	} else {
	  alpha = INT((Z-1867216.25)/36524.25);
	  A = Z + 1 + alpha - INT(alpha/4);
	}
	B = A + 1524;
	C = INT( (B-122.1)/365.25);
	D = INT( 365.25*C );
	E = INT( (B-D)/30.6001 );
	dd = INT(B - D - INT(30.6001*E));
	if (E < 14) {
	  mm = E - 1;
	} else {
	  mm = E - 13;
	}
	if (mm < 3) {
	  yyyy = C - 4715;
	} else {
	  yyyy = C - 4716;
	}
	return new Array(dd, mm, yyyy);
}

function decodeLunarYear(yy, k) {
	var ly = new Array();
	monthLengths = new Array(29, 30);
	regularMonths = new Array(12);
	offsetOfTet = k >> 17;
	leapMonth = k & 0xf;
	leapMonthLength = monthLengths[k >> 16 & 0x1];
	solarNY = jdn(1, 1, yy);
	currentJD = solarNY+offsetOfTet;
	j = k >> 4;
	for(i = 0; i < 12; i++) {
		regularMonths[12 - i - 1] = monthLengths[j & 0x1];
		j >>= 1;
	}
	if (leapMonth == 0) {
		for(mm = 1; mm <= 12; mm++) {
			ly.push(new LunarDate(1, mm, yy, 0, currentJD));
			currentJD += regularMonths[mm-1];
		}
	} else {
		for(mm = 1; mm <= leapMonth; mm++) {
			ly.push(new LunarDate(1, mm, yy, 0, currentJD));
			currentJD += regularMonths[mm-1];
		}
		ly.push(new LunarDate(1, leapMonth, yy, 1, currentJD));
		currentJD += leapMonthLength;
		for(mm = leapMonth+1; mm <= 12; mm++) {
			ly.push(new LunarDate(1, mm, yy, 0, currentJD));
			currentJD += regularMonths[mm-1];
		}
	}
	return ly;
}

function getYearInfo(yyyy) {
	var yearCode;
	if (yyyy < 2000) {
		yearCode = TK20[yyyy - 1900];
	} else {
		yearCode = TK21[yyyy - 2000];
	}
	return decodeLunarYear(yyyy, yearCode);
}

function findLunarDate(jd, ly) {
	if (ly[0].jd > jd) {
		return new LunarDate(0, 0, 0, 0, jd);
	}
	i = ly.length-1;
	while (jd < ly[i].jd) {
		i--;
	}
	off = jd - ly[i].jd;
	ret = new LunarDate(ly[i].day+off, ly[i].month, ly[i].year, ly[i].leap, jd);
	return ret;
}

function getLunarDate(dd, mm, yyyy) {
	var ly, jd;
	if (yyyy < 1900 || 2099 < yyyy) {
		return new LunarDate(0, 0, 0, 0, 0);
	}
	ly = getYearInfo(yyyy);
	jd = jdn(dd, mm, yyyy);
	if (jd < ly[0].jd) {
		ly = getYearInfo(yyyy - 1);
	}
	return findLunarDate(jd, ly);
}

function getCanChi(year) {
	return CAN[(year+6) % 10] + CHI[(year+8) % 12];
}

var today = new Date();
//var currentLunarYear = getYearInfo(today.getFullYear());
var currentLunarDate = getLunarDate(today.getDate(), today.getMonth()+1, today.getFullYear());

function getTodayString() {
	var ld = currentLunarDate;
	var sd = today;
	var s;
	s = TUAN[sd.getDay()];
	s = s + " ng\u00E0y " + sd.getDate() + " th\341ng " + (sd.getMonth()+1) + " n\u0103m " + sd.getFullYear();
	s = s + "\n(t\u1EE9cl\u00E0 ng\u00E0y " + ld.day+" th\341ng "+ld.month;
	if (ld.leap == 1) {
		s = s + " nhu\u1EADn";
	}
	s = s + " n\u0103m " + getCanChi(ld.year);
	s = s + ")\n\n\nem iu!..\n(type, copy, paste...)";
	return s;
}

function getTodayString2() {
	var ld = currentLunarDate;
	var sd = today;
	var s;
	s = TUAN[sd.getDay()];
	s = s + " ng\u00E0y " + sd.getDate() + " th\341ng " + (sd.getMonth()+1) + " n\u0103m " + sd.getFullYear();
	s = s + "<br>(t\u1EE9cl\u00E0 ng\u00E0y " + ld.day+" th\341ng "+ld.month;
	if (ld.leap == 1) {
		s = s + " nhu\u1EADn";
	}
	s = s + " n\u0103m " + getCanChi(ld.year) + ")";
	return s;
}


/****************************************************************************
*                                                                           *
*            Copyright © BLUEMARMOT.COM - All Rights Reserved               *
*                                                                           *
*              This program may not be distributed or copied                *
*            in any way except as authorized by BlueMarmot.com              *
*                   Go to www.bluemarmot.com for more info                  *
*                                                                           *
****************************************************************************/

var data="";
var ld = currentLunarDate;
var sd = today;




var data="";
/* var font1='<font color="cccccc" face="verdana,arial,sans-serif" size="1" style="font-size:10px">'; */
var font2='<font color="111111" face="verdana,arial,sans-serif" size="1" style="font-size:10px">';
/* var newrow='</tr><tr>'; */
/* var calcs=(!calcs)?"?calculator=10342":"?calculator="+calcs; */
/* var get_this=(!get_this)?"?get_this_mphase=10342":"?get_this_mphase="+get_this; */
/* var width=(!width)?"145":width; */
/* var path=(!path)?"http://www.calculatorcat.com/codesrc/moon/":path; */

/* data+='<table width="100%" bgcolor="#000000" style="background-color:#000000" cellpadding="0" cellspacing="0" border="0">'; */
/* data+='<table width="100%" cellpadding="0" cellspacing="0" border="0">'; */
/* 	data+='<tr>'; */
/* 	data+='<td align="center" style="background-color:#000000">'; */
/* 	data+='<td align="center">'; */
/* 	data+='<a href="http://www.calculatorcat.com/moon_phases/moon_phases.phtml'+calcs+'" target="moon_ph" style="color:878787">'; */
/* 	data+='<img src="'+path+'i/t_current_moon.gif" width="132" height="24" border="0">';	data+=' '; */
/* 	data+='</td>'; */
/* 	data+='</tr><tr>'; */
/* 		data+='<td nowrap="nowrap" style="background-color:#000000;color:#ffffff">'; */
/* 		data+='<a href="http://www.calculatorcat.com/moon_phases/moon_phases.phtml'+calcs+'" target="moon_ph">'; */
/* 		data+=font2+'<img src="'+path+'i/m/m'+mimg+'.gif" width="100" height="100" border="0" align="left"></a></font>'; */
  		data+='<img src="../js/moon_files/m'+mimg+'.gif" width="50" height="50" border="0" align="right"'; 






/* 		data+=font2+' '+phD(ph_p)+' </font>'; */
/* 		data+=font2+'<br /><br />'+phD(ph_p)+' &nbsp;&nbsp;</font>'; */
		data+=font2+phD(ph_p)+' </font>';
		data+=font2+'<i>('+rnd(p_o_f,1)+'% of Full)</i></font><br>'+getTodayString2()


/* 		data+=font2+'<br />'+aDW[tdy.getDay()]+' '+tdy.getDate()+' '+aM2[tdy.getMonth()]+', '+tdy.getFullYear()+' &nbsp;&nbsp;</font>'; */
/* 		data+='</td>'; */
/* 	data+='</tr>'; */
/*  */
/* data+='</table>'; */

document.write(data);


