﻿// Sample Call
// <body onload="FindWhatsOn(document.getElementById('CCC_TableToSort'), 'CCC_FindWhatsOn_Div')">
//
// Both "CCC_TableToSort" and "CCC_FindWhatsOn_Div" must be present
// <div id="CCC_FindWhatsOn_Div" style="top:55px;left:22px;border:1px fuchsia solid">george</div>

function FindWhatsOn(table, WhatsOnDiv)
{
if (table == null || document.getElementById(WhatsOnDiv) == null )
{
// Do nothing as 1 or both Tables missing
}
else
{
var d = new Date();
var yyyy = d.getFullYear(); 
var ddnumber = d.getDate();
var mmmm = d.getMonth()+1;
switch (mmmm )
	{
	case 1:mmmm ='January'; break;
	case 2:mmmm ='February'; break;
	case 3:mmmm ='March'; break;
	case 4:mmmm ='April'; break;
	case 5:mmmm ='May'; break;
	case 6:mmmm ='June'; break;
	case 7:mmmm ='July'; break;
	case 8:mmmm ='August'; break;
	case 9:mmmm ='September'; break;
	case 10:mmmm ='October'; break;
	case 11:mmmm ='November'; break;
	case 12:mmmm ='December'; break;
	}
// Calculate the Start Date Filters
var TodayYear = yyyy;		//'2007' 
var TodayMonth = mmmm ;		//'September'
var TodayDay =ddnumber;		// 29				// Today
var DateToFilter1 = TodayYear+' '+TodayMonth ;	// eg 2007 September

// Calculate the Finish Date Filters
var FinishDay= TodayDay + 14	;			 	// eg 36  (ie 29 + 7) Same day next week
var FinishMonth = mmmm ;	//'September'
var FinishYear= yyyy;		//'2007' 

// DayToFinish may not be a valid date. eg 36. Therefore, go to the next month, and reset accordingly
if (mmmm == 'January' && FinishDay > 31)
	{
	FinishDay=FinishDay-30;
	FinishMonth ='February';
	}
	else
	if (mmmm == 'February' && FinishDay > 28)
	{
	FinishDay=FinishDay-28;
	FinishMonth ='March';
	}
	else
	if (mmmm == 'March' && FinishDay > 31)
	{
	FinishDay=FinishDay-31;
	FinishMonth ='April';
	}
	else
	if (mmmm == 'April' && FinishDay > 30)
	{
	FinishDay=FinishDay-30;
	FinishMonth ='May';
	}
	else
	if (mmmm == 'May' && FinishDay > 31)
	{
	FinishDay=FinishDay-31;
	FinishMonth ='June';
	}
	else
	if (mmmm == 'June' && FinishDay > 30)
	{
	FinishDay=FinishDay-30;
	FinishMonth ='July';
	}
	else
	if (mmmm == 'July' && FinishDay > 31)
	{
	FinishDay=FinishDay-31;
	FinishMonth ='August';
	}
	else
	if (mmmm == 'August' && FinishDay > 31)
	{
	FinishDay=FinishDay-31;
	FinishMonth ='September';
	}
	else
	if (mmmm == 'September' && FinishDay > 30)
	{
	FinishDay=FinishDay-30;
	FinishMonth ='October';
	}
	else
	if (mmmm == 'October' && FinishDay > 31)
	{
	FinishDay=FinishDay-31;
	FinishMonth ='November';
	}
	else
	if (mmmm == 'November' && FinishDay > 30)
	{
	FinishDay=FinishDay-30;
	FinishMonth ='December';
	}
	else
	if (mmmm == 'December' && FinishDay > 31)
	{
	FinishDay=FinishDay-31;
	FinishMonth ='January';
	FinishYear=TodayYear + 1
	}
var DateToFilter2 = FinishYear+' '+FinishMonth ;	// eg 2007 September
//alert(TodayYear  +' >< '+ TodayMonth   +' >< '+ TodayDay   +' >< '+  FinishDay+' >< '+FinishMonth +' >< '+ FinishYear)

// Now have Today day/month/year and Finish day/month/year
// Search for >= DateToFilter1 	"2007 June"  "28"
// Search for <= DateToFilter2 	"2007 July"  "05" 
// ================================================================================================================

if (table == null)
{
}
else
{
// Check if the table has any rows. If not, do nothing.
if(table.rows.length > 0)
	{	// Table exists
		var NewMessageToDisplay =''
		// List all the rows in the Table
		for(var i = 0; i < table.rows.length; i++)
			{
		 	// 0=Year Month  1=Day  2=What's On  3=Description 
		 	var MyYearMonth = table.rows[i].cells[0].innerHTML;		// 2007 September
		 	var MyDay = table.rows[i].cells[1].innerHTML;			// 05
		 	var IsWriteIt = false;
			//alert(TodayMonth +' >< '+ FinishMonth+' >< '+ DateToFilter1 +' >< '+  DateToFilter2 +' >< '+TodayDay +' >< '+ FinishDay +' >< '+ MyDay )
		 	if (DateToFilter1 == DateToFilter2)
		 		// Same Month
		 		if (MyYearMonth == DateToFilter1 && MyDay >= TodayDay &&  MyDay <= FinishDay)
		 			{
		 			//alert ('zz');
		 			//alert (DateToFilter1 );
		 			IsWriteIt = true;
		 			}
		 			else
		 			{
		 			}		 		
		 		else
		 		// Crosses over the month boundary. May be Year boundary too.
		 		{
		 		if (MyYearMonth == DateToFilter1 && MyDay >= TodayDay)
		 			// End of the start month
		 			{
		 			//alert ('nnn');
		 			IsWriteIt = true;
		 			}
		 		else
		 		if (MyYearMonth == DateToFilter2 && MyDay <= FinishDay)
		 			// Beginning of the next Month
		 			{
		 			//alert ('ww');
		 			IsWriteIt = true;
		 			}
		 		}
		 	
		 	if (IsWriteIt == true)
		 		{
		 		// Break MyYearMonth ="2007 September" into  MyYear="2007"  MyMonth="September" 
		 		var ss = MyYearMonth.split(" ");
		 		var MyYear = ss[0]; 
		 		var MyMonth = ss[1]; 
		 		var MyMonthName = MyMonth ; 
				switch (MyMonth )
					{
					case 'January':MyMonth = '0'; break;
					case 'February':MyMonth = '1'; break;
					case 'March':MyMonth = '2'; break;
					case 'April':MyMonth = '3'; break;
					case 'May':MyMonth = '4'; break;
					case 'June':MyMonth = '5'; break;
					case 'July':MyMonth = '6'; break;
					case 'August':MyMonth = '7'; break;
					case 'September':MyMonth = '8'; break;
					case 'October':MyMonth = '9'; break;
					case 'November':MyMonth = '10'; break;
					case 'December':MyMonth = '11'; break;
					}
		 		var DateToCheck  = new Date();  	// 2007 September 05
		 		DateToCheck.setDate(MyDay);
		 		DateToCheck.setMonth(MyMonth);			// 0=January
		 		DateToCheck.setFullYear(MyYear);	 
		 		//alert(MyYear + ' '+MyMonth);		
				var MyTodayName = DateToCheck.getDay();			// 0 = Sunday		 
				switch (MyTodayName)
					{
					case 0:MyTodayName ='Sunday'; break;
					case 1:MyTodayName ='Monday'; break;
					case 2:MyTodayName ='Tuesday'; break;
					case 3:MyTodayName ='Wednesday'; break;
					case 4:MyTodayName ='Thursday'; break;
					case 5:MyTodayName ='Friday'; break;
					case 6:MyTodayName ='Saturday'; break;
					}
				var xDate =MyTodayName  + ' ' + MyDay  + ' ' + MyMonthName + ' ' + MyYear; 		//Wednesday 2007 September 05
			 	MyCell = table.rows[i].cells[3];
				var xWhatsOn =MyCell.innerHTML;   		// Print Competition 1
				// Set the advertising text correctly
				if ( MyDay == TodayDay)
					{  // Today
					NewMessageToDisplay =NewMessageToDisplay+'<br/><span style="font-weight:bold;font-size:larger;">TODAY:</span>';
					}
					else
					{
					NewMessageToDisplay =NewMessageToDisplay+'<span style="font-weight:bold;font-size:larger;">COMING SOON:</span>';
					}
				// Add the data to a new display table....
				NewMessageToDisplay =NewMessageToDisplay + '<span style="font-weight:bold"><br/>' + xDate + '<br/>' + xWhatsOn+'</span>'; 
		 		// MyYearMonth = DateToFilter
				table.rows[i].style.display="none";
				}
			else
				{
				// The date found is not relevant so hide the display
				table.rows[i].style.display="none";
				}
		}		// next i 
		// Write all the information to the Web Page into Control called WhatsOnDiv
		var sss = document.getElementById(WhatsOnDiv);
		//sss = NewMessageToDisplay;
		sss.innerHTML=NewMessageToDisplay;
	}	
}		// Table exists
}
} //function 
