//<![CDATA[
/*
Java Script Calendar is a small script for web pages which displays current day of the week, month, date and year along with holiday notifications. It will work with Netscape 2++, Microsoft 3++ and Opera 3++ web browsers. 

You can customize the way it looks by changing document.write function arguments just after month names definitions. 

Java Script Calendar is free without any limitations. Copyright Eugene Vassiltsov, November 24, 1998. But please, let me know if you will use it.

Modified by Steve Beer 2007
*/

// Global variables
var calendar;
var datestr;
var eventstr;
var returnstr;
var eventnum;
var dateclass;
var eventclass;

// Get today's date
function eventDate(eventnum,dateclass,eventclass)
{
calendar = new Date();
datestr = "";
eventstr = "";
var eventcount = 0;

// Write information for today's date
getDateInfo();
returnstr = "<dl class='calinfo'><dt class='" + dateclass + "'><a title='news' href='/news/index.htm'>" + datestr + "<\/a><\/dt>";
returnstr += "<dd class='" + dateclass + "'>" + eventstr + "<\/dd>";

// Write information for future dates
	if (eventnum > 0) {
		for (var dd = 1; eventcount < eventnum && dd < 367; dd++) {
		calendar.setDate(calendar.getDate() + 1);
		getDateInfo();
			if (eventstr != "") {
				returnstr += "<dt class='" + eventclass + "'>" + datestr + ": <\/dt><dd class='" + eventclass + "'>" + eventstr + "<\/dd>";
				eventcount++;
			}
		}
	}
returnstr += "<\/dl>";
return(returnstr);
}
// Get date string and any event for the calendar date passed in
function getDateInfo()
{
var day = calendar.getDay();
var month = calendar.getMonth();
var mm = month + 1;
var date = calendar.getDate();
var year = calendar.getYear();
if (year < 1000) year+=1900;

// Easter Sunday calculations
var cent = parseInt(year/100);
var g = year % 19;
var k = parseInt((cent - 17)/25);
var i = (cent - parseInt(cent/4) - parseInt((cent - k)/3) + 19*g + 15) % 30;
var i = i - parseInt(i/28)*(1 - parseInt(i/28)*parseInt(29/(i+1))*parseInt((21-g)/11));
var j = (year + parseInt(year/4) + i + 2 - cent + parseInt(cent/4)) % 7;
var l = i - j;
var emonth = 3 + parseInt((l + 40)/44);
var edate = l + 28 - 31*parseInt((emonth/4));
emonth--;

// Easter Monday calculations (1 day after Easter Sunday)
var emfulldate=new Date();
emfulldate.setFullYear(year,emonth,edate);
emfulldate.setDate(emfulldate.getDate()+1);
var emdate = emfulldate.getDate();
var emmonth = emfulldate.getMonth();

// Good Friday calculations (2 days before Easter Sunday)
var gffulldate=new Date();
gffulldate.setFullYear(year,emonth,edate);
gffulldate.setDate(gffulldate.getDate()-2);
var gfdate = gffulldate.getDate();
var gfmonth = gffulldate.getMonth();


// Translate day and month names
var dayname = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
var monthname = new Array ("January","February","March","April","May","June","July","August","September","October","November","December" );

// Form date string
datestr=dayname[day] + " ";
if (date < 10) datestr += "" + date + "";
	      else datestr +=      date + "";
if       (date == 1 || date == 21 || date == 31) datestr += "st "; 
 else if (date == 2 || date == 22)               datestr += "nd "; 
 else if (date == 3 || date == 23)               datestr += "rd "; 
 else                                            datestr += "th ";
datestr += monthname[month] + " ";
datestr += year;

// Form event string
eventstr = "";

// January
if ((mm ==  1) && (date ==  1)) eventstr += "New Year's Day ";
if ((mm ==  1) && (date ==  1) && (day > 0) && (day < 6)) eventstr += "Bank Holiday ";
if ((mm ==  1) && (date ==  2) && (day == 1)) eventstr += "New Year Bank Holiday ";
if ((mm ==  1) && (date ==  3) && (day == 1)) eventstr += "New Year Bank Holiday ";
if ((mm ==  1) && (day == 1) && (date > 14) && (date <= 21)) eventstr += "Martin Luther King's Birthday (USA) ";

// February
if ((mm ==  2) && (day == 1) && (date > 14) && (date <= 21)) eventstr += "President's Day (USA) ";
if ((mm ==  2) && (date == 29)) eventstr += "Leap Day ";

// March
if ((mm ==  3) && (day == 0) && (date > 24)) eventstr += "Daylight Savings Time Begins (UK) ";

// April

// May
if ((mm ==  5) && (day == 1) && (date < 8)) eventstr += "May Day Bank Holiday Monday (UK) ";
if ((mm ==  5) && (day == 1) && (date > 24)) eventstr += "Spring Bank Holiday Monday (UK) ";
if ((mm ==  5) && (day == 1) && (date > 24)) eventstr += "Memorial Day (USA) ";

// June
if ((mm ==  6) && (date == 21)) eventstr += "Summer Solstice (UK Longest Day) ";

// July
if ((mm ==  7) && (date == 4)) eventstr += "Independence Day (USA) ";

// August
if ((mm ==  8) && (day == 1) && (date > 24)) eventstr += "Summer Bank Holiday (UK) ";

// September
if ((mm ==  9) && (day == 1) && (date <= 7)) eventstr += "Labor Day (USA) ";
if ((mm ==  9) && (date == 29)) eventstr += "CLIFF has been serving it's customers for " + (year-1977) + " years ";

// October
if ((mm == 10) && (day == 1) && (date > 7) && (date <= 14)) eventstr += "Columbus Day (USA) ";
if ((mm == 10) && (day == 0) && (date > 24)) eventstr += "Daylight Saving Time Ends (UK) ";

// November
if ((mm == 11) && (date == 11)) eventstr += "Veteran's Day (USA)";
if ((mm == 11) && (day == 4) && (date > 21) && (date <= 28)) eventstr += "Thanksgiving Day (USA) ";
if ((mm == 11) && (date ==  1) && (year ==  2007)) eventstr += "<a href='/news/archive.htm#42j'>BCD Rotary Switch 42J Series replaces 41J<\/a> ";

// December
if ((mm == 12) && (date == 21)) eventstr += "Winter Solstice (UK Shortest Day) ";
if ((mm == 12) && (date == 25)) eventstr += "Christmas Day ";
if ((mm == 12) && (date == 26)) eventstr += "Boxing Day ";

if ((mm == 12) && (date == 25) && (day > 0) && (day < 6)) eventstr += "Bank Holiday ";
if ((mm == 12) && (date == 26) && (day == 1)) eventstr += "Bank Holiday ";
if ((mm == 12) && (date == 27) && (day == 1)) eventstr += "Bank Holiday ";

if ((mm == 12) && (date == 26) && (day > 0) && (day < 6)) eventstr += "Bank Holiday ";
if ((mm == 12) && (date == 27) && (day == 2)) eventstr += "Bank Holiday ";
if ((mm == 12) && (date == 28) && (day == 1)) eventstr += "Bank Holiday ";
if ((mm == 12) && (date == 28) && (day == 2)) eventstr += "Bank Holiday ";

// Easter
if ((month == gfmonth) && (date == gfdate)) eventstr += "Good Friday Bank Holiday (UK) ";
if ((month == emonth) && (date == edate)) eventstr += "Easter Sunday (Western) ";
if ((month == emmonth) && (date == emdate)) eventstr += "Easter Monday Bank Holiday (UK) ";


return(datestr);
}
//]]>