// ********* ********* ********* ********* ********* ********* ********* ********* *********

// Special Event function

// This function allows you set events for every weekday or for holidays

//

// VARIABLE				DATA TYPE	DESCRIPTION

// y					number		the 4-digit year (i.e. 2002)

// m					number		the month (1=jan, 2=feb,... 12=dec)

// d					number		the day

// dte					date		the full date

// intWeekday			number		day of the week (0=sun; 1=mon; 2=tue, ..., 6=sat)

// intWeekOfYear		number		week number of the year

// intWeekOfMonth		number		week number of month (1st Sunday, 2nd Sunday, ...)

// blnLast				boolean		is this the Last Weekday of the month

// dteEaster			date		the full date of Easter Sunday for the year

// dteMardiGras			date		the full date of Mardi Gras Tuesday for the year

// dteAshWednesday		date		the full date of Ash Wednesday for the year

// dteGoodFriday		date		the full date of Good Friday for the year

// ********* ********* ********* ********* ********* ********* ********* ********* *********

function scSpecialEvent(dte) {

	var objEvent;

	var arrEvents = new Array();

	var dteCurrent = new Date();

	

	var m = dte.getMonth() + 1;

	var d = dte.getDate();

	var y = dte.getFullYear();

	var intWeekday = dte.getDay();

	var intWeekOfYear = dte.weekOfYear();

	var intWeekOfMonth = dte.weekOfMonth();



	var intLastMonth = new Date(y, m-1, d+7).getMonth();

	if (intLastMonth == 0) intLastMonth = 12;

	var blnLast = ( intLastMonth == m );



	var dteEaster = fscEaster(y);

	var dteMardiGras = dteEaster.add("d", -47);

	var dteAshWednesday = dteEaster.add("d", -46);

	var dteGoodFriday = dteEaster.add("d", -2);





	// ********* ********* ********* ********* ********* ********* ********* *********

	// *** current date

	// ********* ********* ********* ********* ********* ********* ********* *********



	// *** current day event

	if ( dte.equalsTo(dteCurrent) ) {

		objEvent = new EventObj(m,d,y, "TODAY", null, "scToday");

		arrEvents[arrEvents.length] = objEvent;

	};

	





	// ********* ********* ********* ********* ********* ********* ********* *********

	// *** holidays

	// ********* ********* ********* ********* ********* ********* ********* *********

	

	// New Years Day

	if (m==1 && d==1) {

		objEvent = new EventObj(m,d,y, "New Years Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// Martin Luther King Day, third Monday in January. 

	if (m==1 && intWeekday==1 && intWeekOfMonth==3) {

		objEvent = new EventObj(m,d,y, "M.L. King Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// President's Day, third Monday in February. 

	if (m==2 && intWeekday==1 && intWeekOfMonth==3) {

		objEvent = new EventObj(m,d,y, "Presidents Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// St. Valentines day

	if (m==2 && d==14) {

		objEvent = new EventObj(m,d,y, "Saint Valentines Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// St. Patricks day

	if (m==3 && d==17) {

		objEvent = new EventObj(m,d,y, "Saint Patricks Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// Daylight Savings time begins, first Sunday in April

	if ((m==4 && intWeekday==0 && intWeekOfMonth==1 && y<2007) || (m==3 && intWeekday==0 && intWeekOfMonth==2 && y>=2007))

	{

		objEvent = new EventObj(m,d,y, "Begin Daylight Savings", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};

	

	// Mother's Day, second Sunday in May. 

	if (m==5 && intWeekday==0 && intWeekOfMonth==2) {

		objEvent = new EventObj(m,d,y, "Mothers Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// Memorial Day, Last Monday in May. 

	if (m==5 && intWeekday==1 && blnLast==true) {

		objEvent = new EventObj(m,d,y, "Memorial Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// Father's Day, third Sunday in June. 

	if (m==6 && intWeekday==0 && intWeekOfMonth==3) {

		objEvent = new EventObj(m,d,y, "Fathers Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// 4th of July

	if (m==7 && d==4) {

		objEvent = new EventObj(m,d,y, "Fourth of July", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// Labor Day, first Monday in September. 

	if (m==9 && intWeekday==1 && intWeekOfMonth==1) {

		objEvent = new EventObj(m,d,y, "Labor Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// Columbus Day, second Monday in October 

	if (m==10 && intWeekday==1 && intWeekOfMonth==2) {

		objEvent = new EventObj(m,d,y, "Colombus Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// Daylight Savings Time ends, blnLast Sunday in October

	if ((m==10 && intWeekday==0 && blnLast==true && y<2007) || (m==11 && intWeekday==0 && intWeekOfMonth==1 && y>=2007)){

		objEvent = new EventObj(m,d,y, "End Daylight Savings", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// Halloween

	if (m==10 && d==31) {

		objEvent = new EventObj(m,d,y, "Halloween", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};

	



	// Thanksgiving Day, fourth Thursday in November. 

	if (m==11 && intWeekday==4 && intWeekOfMonth==4) {

		objEvent = new EventObj(m,d,y, "Thanksgiving", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};



	// Christmas

	if (m==12 && d==25) {

		objEvent = new EventObj(m,d,y, "Christmas Day", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};

	

	// *********

	// *** Town Board Meetings

	// *********

	

	// Oak Creek Town Board Meeting, 2nd and 4th Thursdays of each month.

	if (intWeekday==4 && (intWeekOfMonth==2 || intWeekOfMonth==4) ) {

	   objEvent = new EventObj(m,d,y, "Oak Creek Town Board Mtg 7pm @ Oak Creek Town Hall", null, "scEventCity");

	   arrEvents[arrEvents.length] = objEvent;

	};

	

	// Yampa Town Board Meeting, 2nd and 4th Thursdays of each month.

	if (intWeekday==3 && (intWeekOfMonth==1) ) {

	   objEvent = new EventObj(m,d,y, "Yampa Town Board Mtg 7pm @ Yampa Town Hall", null, "scEventCity");

	   arrEvents[arrEvents.length] = objEvent;

	};



	

	// *********

	// *** South Routt Events

	// *********

	

	//Taste of South Routt, Last Saturday in June. 

	if (m==6 && intWeekday==6 && blnLast==true && y>=2011) {

		objEvent = new EventObj(m,d,y, "Taste of South Routt", null, "scEventRed");

		arrEvents[arrEvents.length] = objEvent;

	};

	

	// PTO Rodeo, third Saturday in July. 

	if (m==7 && intWeekday==6 && intWeekOfMonth==3) {

		objEvent = new EventObj(m,d,y, "PTO Rodeo", null, "scEventRed");

		arrEvents[arrEvents.length] = objEvent;

	};

	

	// Yampa's 4th of July Celebration

	if (m==7 && d==4) {

		objEvent = new EventObj(m,d,y, "Yampa's 4th of July Celebration", null, "scEventRed");

		arrEvents[arrEvents.length] = objEvent;

	};

	

	// Oak Creek Labor Day, first Monday in September. 

	if (m==9 && intWeekday==1 && intWeekOfMonth==1 && y>=2010) {

		objEvent = new EventObj(m,d,y, "Oak Creek Labor Day Celebration", null, "scEventRed");

		arrEvents[arrEvents.length] = objEvent;

	};



	// Yampa Annual Arts & Crafts Fair, third Saturday in November. 

	if (m==11 && intWeekday==6 && intWeekOfMonth==3 && y>=2010) {

		objEvent = new EventObj(m,d,y, "Yampa Annual Arts & Crafts Fair", null, "scEventRed");

		arrEvents[arrEvents.length] = objEvent;

	};

	

	// Success Steps Lunceon, 2nd Thursday each month

	if (intWeekday==4 && (intWeekOfMonth==2) && y>=2010 ) {

	   objEvent = new EventObj(m,d,y, "Success Steps Luncheon 11:30am - 1pm @ Steamboat Smokehouse, To register call 870-4491", null, "scEventRed");

	   arrEvents[arrEvents.length] = objEvent;

	};



	

	

	// *********

	// *** Colorado State Events

	// *********

	

	//Free Fishing Weekend, first Full Weekend of June.

	if ((m==6 && intWeekday==6 && intWeekOfMonth==1) || (m==6 &&intWeekday==0 && intWeekOfMonth==2))

	{

		objEvent = new EventObj(m,d,y, "<a href='http://wildlife.state.co.us/Fishing/SeasonDatesAndFees/' target='_blank'>Free Fishing Weekend (Rest of year requires license)</a>", null, "scEventPurple");

		arrEvents[arrEvents.length] = objEvent;

	};





	

	// ********* ********* ********* ********* ********* ********* ********* *********

	// *** Easter holidays

	// ********* ********* ********* ********* ********* ********* ********* *********



	// Mardi Gras

//	if ( dte.equalsTo(dteMardiGras) ) {

//		objEvent = new EventObj(m,d,y, "Mardi Gras", null, "scEventBlack");

//		arrEvents[arrEvents.length] = objEvent;

//	};	



	// Ash Wednesday (46 days before Easter)

//	if ( dte.equalsTo(dteAshWednesday) ) {

//		objEvent = new EventObj(m,d,y, "Ash Wednesday", null, "scEventBlack");

//		arrEvents[arrEvents.length] = objEvent;

//	};	



	// Good Friday 

//	if ( dte.equalsTo(dteGoodFriday)) {

//		objEvent = new EventObj(m,d,y, "Good Friday", null, "scEventBlack");

//		arrEvents[arrEvents.length] = objEvent;

//	};



	// Easter Sunday 

	if ( dte.equalsTo(dteEaster)) {

		objEvent = new EventObj(m,d,y, "Easter", null, "scEventBlack");

		arrEvents[arrEvents.length] = objEvent;

	};

		

	return arrEvents;

};















