/*******
holidays.js

Copyright (c) 2001 Corey Chapman (cchapman@xnull.com)
*******/

calendar = new Date();
day = calendar.getDay();
month = calendar.getMonth();
date = calendar.getDate();
year = calendar.getYear();
if (year < 1000)
year+=1900
cent = parseInt(year/100);
g = year % 19;
k = parseInt((cent - 17)/25);
i = (cent - parseInt(cent/4) - parseInt((cent - k)/3) + 19*g + 15) % 30;
i = i - parseInt(i/28)*(1 - parseInt(i/28)*parseInt(29/(i+1))*parseInt((21-g)/11));
j = (year + parseInt(year/4) + i + 2 - cent + parseInt(cent/4)) % 7;
l = i - j;
emonth = 3 + parseInt((l + 40)/44);
edate = l + 28 - 31*parseInt((emonth/4));
emonth--;

var dayname = new Array ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
var monthname = new Array ("01","02","03","04","05","06","07","08","09","10","11","12" );

printholiday = "";

// Easter
if ((month == emonth) && (date == edate)) printholiday = "Easter Sunday (Western)";
// January
if (month == 0) {
  if (date == 1) printholiday = "New Year's Day";
  else if (date == 15) printholiday = "Adults Day (Japan)";
  else if (date == 27) printholiday = "Wolfgang Amadeus Mozart born (1756)";
  else if ((day == 1) && (date > 14) && (date < 22)) printholiday = "Martin Luther King's Birthday";
}
// February
else if (month == 1) {
  if (date == 2) printholiday = "Groundhog Day";
  else if (date == 8) printholiday = "Jules Verne born (1828)";
  else if (date == 11) printholiday = "National Foundation Day (Japan)";
  else if (date == 12) printholiday = "Lincoln's Birthday";
  else if (date == 14) printholiday = "St. Valentine's Day";
  else if (date == 15) printholiday = "Galileo Galilei born (1564)";
  else if (date == 22) printholiday = "Washington's Birthday";
  else if (date == 29) printholiday = "Leap Day";
}
// March
else if (month == 2) {
  if (date == 3) printholiday = "Girl's Day (Japan)";
  else if (date == 17) printholiday = "St. Patrick's Day";
  else if (date == 21) printholiday = "J.S. Bach born (1685)";
}
// April
else if (month == 3) {
  if (date == 1) printholiday = "April Fools' Day";
  else if (date == 8) printholiday = "Buddha born";
  else if ((date == 15) && (day != 0)) printholiday = "Income Tax Day (USA)";
  else if ((date == 16) && (day == 1)) printholiday = "Income Tax Day (USA)";
  else if (date == 15) printholiday = "Leonardo da Vinci born (1452)";
  else if (date == 22) printholiday = "Earth Day";
  else if (date == 29) printholiday = "Emperor's Birthday (Japan)";
  else if ((day == 0) && (date > 0) && (date < 8)) printholiday = "Daylight Savings Time Begins";
}
// May
else if (month == 4) {
  if (date == 1) printholiday = "May Day,   Boy's Day (Japan)";
  else if (date == 2) printholiday = "Constitution Day (Japan)";
  else if (date == 5) printholiday = "Cinco de Mayo (Mexico), Children's Day (Japan)";
  else if (date == 14) printholiday = "Independence Day (Paraguay)";
  else if ((day == 0) && (date > 7) && (date< 16)) printholiday = "Mother's Day";
  else if ((day == 1) && (date > 24)) printholiday = "Memorial Day";
}
// June
else if (month == 5) {
  if (date == 5) printholiday = "Constitution Day (Denmark)";
  else if (date == 6) printholiday = "D-Day (USA)";
  else if (date == 11) printholiday = "Kamehameha (Hawaii)";
  else if (date == 14) printholiday = "FlagDay (USA)";
  else if (date == 21) printholiday = "Summer Solstice";
  else if (date == 24) printholiday = "St. Jean Baptiste Day (Canada)";
  else if (date == 30) printholiday = "Independence Day (Zaire)";
  else if ((day == 0) && (date > 15) && (date< 24)) printholiday = "Father's Day";
}
// July
else if (month == 6) {
  if (date == 1) printholiday = "Independence Day (Canada)";
  else if (date == 4) printholiday = "Independence Day (USA)";
  else if (date == 14) printholiday = "Bastille Day (France)";
}
// August
else if (month == 7) {
  if (date == 1) printholiday = "Confederation Day (Switzerland)";
  else if (date == 10) printholiday = "Independence Day (Ecuador)";
  else if (date == 15) printholiday = "Independence Day (India)";
}
// September
else if (month == 8) {
  if (date == 7) printholiday = "Independence Day (Brazil)";
  else if (date == 11) printholiday = "Aniversary of 911 - Attack on America";
  else if (date == 15) printholiday = "Respect for the Aged Day (Japan)";
  else if (date == 16) printholiday = "Independence Day (Mexico)";
  else if ((day== 1)&& (date > 0) && (date< 8)) printholiday = "Labor Day (USA)";
}
// October
else if (month == 9) {
  if (date == 1) printholiday = "German Reunufication (1990)";
  else if (date == 10) printholiday = "Health-Sports Day (Japan)";
  else if ((day == 1) && (date > 7) && (date< 16)) printholiday = "Columbus Day (USA)";
  else if ((day == 0) && (date > 24) && (date< 31)) printholiday = "Daylight Savings Time Ends";
  else if ((day == 0) && (date == 31)) printholiday = "Daylight Savings Time Ends<BR>";
  else if (date == 24) printholiday = "United Nations Day";
  else if (date == 31) printholiday = "Halloween";
}
// November
else if (month == 10) {
  if (date == 1) printholiday = "All Saints Day";
  else if (date == 2) printholiday = "All Souls Day";
  else if (date == 3) printholiday = "Culture Day (Japan)";
  else if (date == 11) printholiday = "Veteran's Day (USA),    Remembrance Day (Canada)";
  else if (date ==20) printholiday = "Revolution Day (Mexico)";
  else if (date == 23) printholiday = "Labor Thanksgiving Day (Japan)";
  else if ((day == 4) && (date > 23) && (date< 30)) printholiday = "Thanksgiving (USA)";
  else if ((date == 30) && (day == 4)) printholiday = "Thanksgiving (USA)";
}
// December
else if (month == 11) {
  if (date == 10) printholiday = "Human Rights Day";
  else if (date == 21) printholiday = "Winter Solstice";
  else if (date == 24) printholiday = "Christmas Eve";
  else if (date == 25) printholiday = "Christmas";
  else if (date == 26) printholiday = "Boxing Day";
  else if (date == 31) printholiday = "New Year's Eve";
}

// Print the resulting date/holiday string
document.write( date + "." + monthname[month] + "." + year + " "  + dayname[day]);
