showHolidays = true;
function holidays(day, month, year) { return my_holiday(day, month, year); }

showAltHoly = true;
AltHolyFormat = "<font  size=2 color=#ff0000><b><center>|</center></b></font>";
function getAltHoly(day, month, year) { return my_alt_holiday(day, month, year); }

var weekday = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var dow = "";
var wom = 0;
var leapyear = false; 
var quote = String.fromCharCode (34)

function appendTo (text) { return text == "" ? "" : (text + "<br />") }

function jDate (day, month, year) {
	var d = new Date ();
	d.setFullYear (year);
	d.setMonth (month - 1);
	d.setDate (day);
	dow = weekday [d.getDay()];
	wom = Math.floor ((day - 1) / 7) + 1;
	leapYear = (year % 4) == 0;
	return d;}

function HolyDay (year, offset) {
	var e = new easter (year);
	e.setTime (e.getTime () + (offset * 86400000));
	return e;}

function easter (year) {
	var d = new Date ();
	d.setFullYear (year);

	/* the Golden number */
    	var golden = (year % 19) + 1;

	/* GREGORIAN CALENDAR */
	/* the "Dominical number" - finding a Sunday */
	var dom = (year + Math.floor(year/4) - Math.floor(year/100) + (Math.floor(year/400))) % 7;
	if (dom < 0) {dom += 7;}

	/* the solar and lunar corrections */
	var solar = Math.floor((year-1600)/100) - Math.floor((year-1600)/400);
	var lunar = (Math.floor((year-1400) / 100) * 8) / 25;

	/* uncorrected date of the Paschal full moon */
	var pfm = (3 - (11*golden) + solar - lunar) % 30;
	if (pfm < 0) {pfm += 30;}

	/* corrected date of the Paschal full moon - days after 21st March */
    	if ((pfm == 29) || (pfm == 28 && golden > 11)) {pfm--;}

	var tmp = (4-pfm-dom) % 7;
	if (tmp < 0) {tmp += 7;}

	/* Easter as the number of days after 21st March */
    	var easter = pfm + tmp + 1;

	if (easter < 11) {d.setMonth (2); d.setDate (easter + 21);}
	else {d.setMonth (3); d.setDate (easter - 10);}
	return d;}

function my_holiday (day, month, year) {
	var thisDate = jDate (day, month, year);
	var holText = "";

	switch (month) {
	case 1:  // January
		if (day == 1) holText = "New Year's Day";
		break;
	case 2:  // February
		break;
	case 3:  // March
		if (dow == "Sun" && day > 14) {
			var a = HolyDay (year, -7);
			if (a.getMonth() == 2 && a.getDate() == day) holText = "<span style='color: purple'>Palm Sunday</span>";}
		if (day == 17) holText = appendTo (holText) + "St. Patrick's Day";
		if (dow == "Fri" && day > 19) {
			var a = HolyDay (year, -2);
			if (a.getMonth() == 2 && a.getDate() == day) holText = "<span style='color: black'>Good Friday</span>";}
		if (dow == "Sun" && day > 21) {
			var e = easter (year);
			if (e.getMonth() == 2 && e.getDate() == day) holText = "<span style='color: #f0a300'>Easter</span>";}
		break;
	case 4:  // April
		if (day == 1) holText = "April Fool's Day";
		if (dow == "Sun" && day < 20) {
			var a = HolyDay (year, -7);
			if (a.getMonth() == 3 && a.getDate() == day) holText = "<span style='color: purple'>Palm Sunday</span>";}
		if (dow == "Fri" && day < 25) {
			var a = HolyDay (year, -2);
			if (a.getMonth() == 3 && a.getDate() == day) holText = "<span style='color: black'>Good Friday</span>";}
		if (dow == "Sun" && day < 27) {
			var e = easter (year);
			if (e.getMonth() == 3 && e.getDate() == day) holText = "<span style='color: #f0a300'>Easter</span>";}
		break;
	case 5:  // May
		if (dow == "Sun" && wom == 2) holText = appendTo (holText) + "Mothers' Day";
		if (dow == "Mon" && day > 24) holText = appendTo (holText) + "Memorial Day";
		break;
	case 6:  // June
		if (dow == "Sun" && wom == 3) holText = "Fathers' Day";
		break;
	case 7:  // July
		if (day == 4) holText = "Independence Day";
		break;
	case 8:  //August
		break;
	case 9:  // September
		if (dow == "Mon" && wom == 1) holText = "Labor Day";
		break;
	case 10: // October
		break;
	case 11: // November
		if (day == 11) holText = "Veterans Day";
		if (dow == "Thu" && wom == 4) holText = "Thanksgiving Day";
		break;
	case 12: // December
		if (day == 25) holText = "<span style='color: #f0a300'>Christmas</span>";
		break;
	}

	return holText;
}

function my_alt_holiday(day, month, year) {
	var thisDate = jDate (day, month, year);
	var holText = "";

	switch (month) {
	case 1:  // January
		break;
	case 2:  // February
		break;
	case 3:  // March
		if (dow == "Sun" && wom == 2 && year > 2006) holText = "Daylight Saving Time Begins";
		break;
	case 4:  // April
		break;
	case 5:  // May
		break;
	case 6:  // June
		break;
	case 7:  // July
		break;
	case 8:  //August
		break;
	case 9:  // September
		break;
	case 10: // October
		if (dow == "Sun" && day > 24 && year < 2007) holText = "Daylight Saving Time Ends";
		break;
	case 11: // November
		if (dow == "Sun" && wom == 1 && year > 2006) holText = "Daylight Saving Time Ends";
		break;
	case 12: // December
		break;
	}

	return holText;
}

