// ********* ********* ********* ********* ********* ********* ********* ********* *********
// Special Event function
// This function allows you set events for every weekday or for holidays
//
// VARIABLE			DATE TYPE	DESCRIPTION
// y				number		the 4-digit year (i.e. 2002)
// m				number		the month (0=jan, 1=feb, 2=mar,... 11=dec)
// d				number		the day
// dte				date		the full date sans time
// dteEaster		date		the full date of Easter Sunday for the year
// weekday			number		day of the week (0=sun; 1=mon; 2=tue, ..., 6=sat)
// weekOfYear		number		week number of the year
// weekOfMonth		number		week number of the month
// weekdayOfMonth	number		weekday number of month (1st Sunday, 2nd Sunday, ...)
// last				boolean		is this the last weekday of the month
// ********* ********* ********* ********* ********* ********* ********* ********* *********
function dcSpecialEvent(y,m,d) {
	var evnt;
	var evnts = new Array();
	
	var dte = new Date(y, m, d);
	var dteEaster = dcEaster(y);
	var weekday = dte.getDay();
	var weekOfYear = dcWeekOfYear(dte);
	var weekOfMonth = dcWeekOfMonth(dte);
	var weekdayOfMonth = dcWeekdayOfMonth(dte);
	var last=( (new Date(y,m,d+7).getMonth() ) ==m+1);
	
/*
	// ********* ********* *********
	// *** holidays
	
	// New Years Day
	if (m==0 && d==1) {
		evnt = new EventObj(m,d,y, "New Years Day", null, "eventGreen");
		evnts[evnts.length] = evnt;
	};

	// Martin Luther King Day, third Monday in January. 
	if (m==0 && weekday==1 && weekdayOfMonth==3) {
		evnt = new EventObj(m,d,y, "M.L. King Day", null, "eventRed");
		evnts[evnts.length] = evnt;
	};

	// President's Day, third Monday in February. 
	if (m==1 && weekday==1 && weekdayOfMonth==3) {
		evnt = new EventObj(m,d,y, "Presidents Day", null, "eventRed");
		evnts[evnts.length] = evnt;
	};

	// St. Valentines day
	if (m==1 && d==14) {
		evnt = new EventObj(m,d,y, "Saint Valentines Day", null, "eventRed");
		evnts[evnts.length] = evnt;
	};

	// St. Patricks day
	if (m==2 && d==17) {
		evnt = new EventObj(m,d,y, "Saint Patricks Day", null, "eventGreen");
		evnts[evnts.length] = evnt;
	};

	// Daylight Savings time begins, first Sunday in April
	if (m==3 && weekday==0 && weekdayOfMonth==1) {
		evnt = new EventObj(m,d,y, "Begin Daylight Savings", null, "eventGreen");
		evnts[evnts.length] = evnt;
	};
	
	// Mother's Day, second Sunday in May. 
	if (m==4 && weekday==0 && weekdayOfMonth==2) {
		evnt = new EventObj(m,d,y, "Mothers Day", null, "eventRed");
		evnts[evnts.length] = evnt;
	};

	//Memorial Day, last Monday in May. 
	if (m==4 && weekday==1 && last==true) {
		evnt = new EventObj(m,d,y, "Memorial Day", null, "eventRed");
		evnts[evnts.length] = evnt;
	};

	// Father's Day, third Sunday in June. 
	if (m==5 && weekday==0 && weekdayOfMonth==3) {
		evnt = new EventObj(m,d,y, "Fathers Day", null, "eventRed");
		evnts[evnts.length] = evnt;
	};

	// 4th of July
	if (m==6 && d==4) {
		evnt = new EventObj(m,d,y, "Fourth of July", null, "eventBlue");
		evnts[evnts.length] = evnt;
	};


	// Labor Day, first Monday in September. 
	if (m==8 && weekday==1 && weekdayOfMonth==1) {
		evnt = new EventObj(m,d,y, "Labor Day", null, "eventRed");
		evnts[evnts.length] = evnt;
	};

	// Columbus Day, second Monday in October 
	if (m==9 && weekday==1 && weekdayOfMonth==2) {
		evnt = new EventObj(m,d,y, "Colombus Day", null, "eventRed");
		evnts[evnts.length] = evnt;
	};

	// Daylight Savings Time ends, last Sunday in October
	if (m==9 && weekday==0 && last==true) {
		evnt = new EventObj(m,d,y, "End Daylight Savings", null, "eventBlack");
		evnts[evnts.length] = evnt;
	};

	// Halloween
	if (m==9 && d==31) {
		evnt = new EventObj(m,d,y, "Halloween", null, "eventOrange");
		evnts[evnts.length] = evnt;
	};

	// Thanksgiving Day, fourth Thursday in November. 
	if (m==10 && weekday==4 && weekdayOfMonth==4) {
		evnt = new EventObj(m,d,y, "Thanksgiving", null, "eventRed");
		evnts[evnts.length] = evnt;
	};

	// Christmas
	if (m==11 && d==25) {
		evnt = new EventObj(m,d,y, "Christmas Day", null, "eventRed");
		evnts[evnts.length] = evnt;
	};

	// ********* ********* *********
	// *** Easter holidays
	// Ash Wednesday (46 days before Easter)
	dteAsh = new Date(y, dteEaster.getMonth(), dteEaster.getDate()-46);
	if ( dcDateCompare(dte, dteAsh) ) {
		evnt = new EventObj(m,d,y, "Ash Wednesday", null, "eventGreen");
		evnts[evnts.length] = evnt;
	};	

	// Easter Sunday 
	if (dcDateCompare(dte, dteEaster)) {
		evnt = new EventObj(m,d,y, "Easter Sunday", null, "eventGreen");
		evnts[evnts.length] = evnt;
	};

	// ********* ********* *********
	// *** every weekday functions
	// every sunday
	if (weekday==0) {
		evnt = new EventObj(m,d,y, "every sunday", null, "eventCyan");
		evnts[evnts.length] = evnt;
	};
	
	// every 2nd saturday 
	if (weekday==6 && (weekdayOfMonth==1 || weekdayOfMonth==3) ) {
		evnt = new EventObj(m,d,y, "1st and 3rd saturday", null, "eventMagenta");
		evnts[evnts.length] = evnt;
	};
*/
	
	return evnts;
};






