Date.prototype.advance = function(d) {this.setTime(this.getTime()+d*86400000);};
function leapyear(year)
{
	if (year % 400 == 0)
		return true;
	else if (year % 100 == 0)
		return false;
	else if (year % 4 == 0)
		return true;
	else
		return false;
}
function domlet(year)
{
	letters = ["A", "G", "F", "E", "D", "C", "B", "A"];
	jan1 = new Date(year, 0, 1);
	weekday = jan1.getDay();
	dl = letters[weekday];
	if (leapyear(year))
		dl += letters[weekday + 1];
	return dl;
}
function epact(year)
{
	var n = (parseInt(year) + 1) % 19;
	if (n == 0) n = 19;
	var c = Math.floor(year / 100);
	var e = (n+10*(n-1))%30 - (c-16) + Math.floor((c-16)/4) + Math.floor((c-15)/3);
	if (e < 0) e += 30;
	return (e);
}
function easter(year)
{
	var date = new Date(year, 2, 21);
	var e = epact(year);
	if (e < 24) moon = 24 - e;
	else moon = 54 - e;
	date.setTime(date.getTime() + moon * 86400000);
	var day = date.getDay();
	if (day > 0) date.setTime(date.getTime() + (7 - day) * 86400000);
	return date.toLocaleString();
}
function islamic(d, m, y)
{
	var date = new Date(622, 6, 16);
	date.advance((y-1)*354.3667);
	var wd = (6*(y%7)+3*((11*y+3)%30)-1)%7;
	var a = wd - date.getDay();
	if (a < 0) a += 7;
	a += Math.floor(29.5*m+0.5)+Number(d-1);
	date.advance(a);
	return date.toLocaleString();
}
function friday13(year)
{
	var dates = new Array();
	months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
	fri13 = new Date(year, 0, 13);
	for (var i = 0; i < 12; i++)
	{
		fri13.setMonth(i);
		if (fri13.getDay() == 5)
			dates.push(months[i]);
	}
	return dates.join(", ");
}
function chinesezodiac(year)
{
	var chinzod = ["Monkey", "Rooster", "Dog", "Pig", "Rat", 
		    "Ox", "Tiger", "Hare", "Dragon", "Snake", "Horse", "Sheep"];

	var cc = Math.floor(year / 100);
	var yy = year - (cc * 100);
	var cz = (((cc % 3) * 4) + yy) % 12;
	return chinzod[cz];
}
function julian(year, month, day)
{
	var date = new Date(year, month, day);
	var j = 2440588 + Math.floor(date.getTime() / 86400000);
	return j;
}
function getYear()
{
	return "2004";
}
