// List View Script

// Calendar Heading...
var prevMonth;
var prevMonthDate = new Date();
var thisMonth;
var nextMonth;
var nextMonthDate = new Date();
var thisYear;
var todayDate = new Date();
var dayViewDay;
var dayViewDate;

// CSS Class Name Holder...
var cssClass = "";

function InitializeListView(){
	// Heading Info...
	nextMonthDate.setFullYear(selectedYear,selectedMonth+1,1);
	prevMonthDate.setFullYear(selectedYear,selectedMonth-1,1);

	nextMonth = nextMonthDate.getMonth();
	prevMonth = prevMonthDate.getMonth();
	
	var e = new Date();
	var todayDateDayView = e.getDate();
	if (selectedDay == 0){
		if (todayDateDayView == 1){dayViewDate = "1st";} else if (todayDateDayView == 2){dayViewDate = "2nd";} else {dayViewDate = todayDateDayView + "th";}
	}
	else{
		if (selectedDay == 1){dayViewDate = "1st";} else if (selectedDay == 2){dayViewDate = "2nd";} else {dayViewDate = selectedDay + "th";}
	}

// Day View...
	dayViewDay = 0;
	if (selectedDay == 0){
		dayViewDay = todayDate.getDate();
	}
	else{
		dayViewDay = selectedDay;
	}
}

function DisplayListView(){
	// Display Header...
	//DisplayListViewHeader();
	DisplayListViewHeaderWithDepts();
	
	// Display Days...
	DisplayListViewEvents();
	
	// Display Footer...
	DisplayListViewFooter();
}

function DisplayListViewHeader(){
	document.write ("<table border=\"0\" width=\"" + calendarWidth + "\" cellpadding=\"0\" cellspacing=\"0\" class=\"cal\">");
	document.write ("<tr>");
	document.write ("<td " + calHeadingLink + " align=\"left\">&nbsp;<a href=\"/CampusCalendar/index.cfm?ID=ListView&selMonth=" + (prevMonthDate.getMonth()+1) + "&selYear=" + MozillaYearFix(prevMonthDate.getYear()) + "\">&lt;&lt; " + calMonths[prevMonth] + "</a></td>");
	document.write ("<td " + calHeading + ">" + calMonths[selectedMonth] + ", " + selectedYear + "</td>");
	document.write ("<td " + calHeadingLink + " align=\"right\"><a href=\"/CampusCalendar/index.cfm?ID=ListView&selMonth=" + (nextMonthDate.getMonth()+1) + "&selYear=" + MozillaYearFix(nextMonthDate.getYear()) + "\">" + calMonths[nextMonth] + " &gt;&gt;</a>&nbsp;</td>");
	document.write ("</tr>");
	document.write ("<tr>");
	document.write ("<td class=\"MirrorStandardDisplay\" align=\"right\" " + calHeadingViews + " colspan=\"3\">");
	if (selectedDay > 0){
		document.write ("<a href=\"index.cfm?ID=ListView&selMonth=" + (selectedMonth+1) + "&selYear=" + selectedYear + "\"><strong>View All Events For This Month</strong></a> | ");
	}
	document.write ("<a href=\"index.cfm?ID=CalView&selMonth=" + (selectedMonth+1) + "&selYear=" + selectedYear + "\">Calendar View</a> | <a href=\"index.cfm?ID=DayView&selDay=" + dayViewDay + "&selMonth=" + (selectedMonth+1) + "&selYear=" + selectedYear + "\">Day View (" + dayViewDate + ")</a>");
	document.write ("&nbsp;&nbsp;</td>");
	document.write ("</tr>");
	document.write ("</table>");
}

function DisplayListViewHeaderWithDepts(){
	document.write ("<table border=\"0\" width=\"" + calendarWidth + "\" cellpadding=\"0\" cellspacing=\"0\" class=\"cal\">");
	document.write ("<tr>");
	document.write ("<td " + calHeadingLink + " align=\"left\">&nbsp;<a href=\"/CampusCalendar/index.cfm?ID=ListView&selMonth=" + (prevMonthDate.getMonth()+1) + "&selYear=" + MozillaYearFix(prevMonthDate.getYear()) + "\">&lt;&lt; " + calMonths[prevMonth] + "</a></td>");
	document.write ("<td " + calHeading + ">" + calMonths[selectedMonth] + ", " + selectedYear + "</td>");
	document.write ("<td " + calHeadingLink + " align=\"right\"><a href=\"/CampusCalendar/index.cfm?ID=ListView&selMonth=" + (nextMonthDate.getMonth()+1) + "&selYear=" + MozillaYearFix(nextMonthDate.getYear()) + "\">" + calMonths[nextMonth] + " &gt;&gt;</a>&nbsp;</td>");
	document.write ("</tr>");
	document.write ("<tr>");
	document.write ("<td " + calHeadingViews + " colspan=\"3\">");
	document.write ("<table border=\"0\" width=\"" + calendarWidth + "\" cellpadding=\"0\" cellspacing=\"0\">");
	document.write ("<tr>");
	document.write ("<td " + calHeadingViews + " align=\"left\" width=\"40%\">");
	document.write ("&nbsp;Category: <select name=\"selDepts\" id=\"selDepts\" onchange=\"javascript:ChangeDept();\">");
	for (i=0; i<calDeptIDs.length; i++){
		if (calDeptIDs[i] == selectedDeptID){
			document.write ("<option value=\"" + calDeptIDs[i] + "\" selected>" + calDeptNames[i] + "</option>");
		}
		else{
			document.write ("<option value=\"" + calDeptIDs[i] + "\">" + calDeptNames[i] + "</option>");
		}
	}
	document.write ("</select>");
	document.write ("</td>");
	document.write ("<td class=\"MirrorStandardDisplay\" align=\"right\" width=\"60%\">");
	if (selectedDay > 0){
		document.write ("<a href=\"PrintFriendly.cfm?ID=ListView&selMonth=" + (selectedMonth+1) + "&selYear=" + selectedYear + "&selDay=" + selectedDay + "\"><strong>Print</strong></a> | ");
		document.write ("<a href=\"index.cfm?ID=ListView&selMonth=" + (selectedMonth+1) + "&selYear=" + selectedYear + "\"><strong>List Entire Month</strong></a> | ");
	}
	else {
		document.write ("<a href=\"PrintFriendly.cfm?ID=ListView&selMonth=" + (selectedMonth+1) + "&selYear=" + selectedYear + "\"><strong>Print</strong></a> | ");
	}
	document.write ("<a href=\"index.cfm?ID=CalView&selMonth=" + (selectedMonth+1) + "&selYear=" + selectedYear + "\">Calendar View</a> | <a href=\"index.cfm?ID=DayView&selDay=" + dayViewDay + "&selMonth=" + (selectedMonth+1) + "&selYear=" + selectedYear + "\">Day View (" + dayViewDate + ")</a>");
	document.write ("&nbsp;&nbsp;</td></tr></table>");
	document.write ("</td>");
	document.write ("</tr>");
	document.write ("</table>");
}

function ChangeDept(){
	window.location = "/CampusCalendar/index.cfm?ID=ListView&selMonth=" + (selectedMonth+1) + "&selYear=" + selectedYear + "&selDay=" + selectedDay + "&CatID=" + document.DisplayCalendar.selDepts.value;
}

function DisplayListViewFooter(){
	document.write ("<table border=\"0\" width=\"" + calendarWidth + "\" cellpadding=\"0\" cellspacing=\"0\" class=\"cal\">");
	document.write ("<tr>");
	document.write ("<td colspan=\"7\" " + calFooter + ">" + footerText + "&nbsp;</td>");
	document.write ("</tr>");
	document.write ("</table>");
}

function DisplayListViewEventsOld(){
	var eventPrintedCtr = 0;
	var startTime = "";
	var endTime = "";
	document.write ("<table border=\"0\" width=\"" + calendarWidth + "\" cellspacing=\"0\" cellpadding=\"0\">");
	document.write ("<tr>");	
	document.write ("<td width=\"" + (calendarWidth - 22) + "\" " + eventContainer + ">");
			document.write ("<table border=\"0\" width=\"" + (calendarWidth - 44) + "\" cellspacing=\"0\" cellpadding=\"0\">");
			for (var i=0; i<calData_ID.length; i++){
				if (selectedDay != 0){
					if (Number(calData_Date[i].substr(6,4)) == selectedYear && Number(calData_Date[i].substr(0,2)) == (selectedMonth+1) && Number(calData_Date[i].substr(3,2)) == (selectedDay)){
						if (calData_StartTime[i] == "06:00" && calData_EndTime[i] == "23:45"){
							startTime = "All Day";
							endTime = "All Day";
						}
						else {
							startTime = FormatTimeToAMPM(calData_StartTime[i]);
							endTime = FormatTimeToAMPM(calData_EndTime[i]);
						}
						document.write ("<tr>");
						document.write ("<td align=\"left\" " + eventTitle + " colspan=\"3\">" + calData_Title[i] + "</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td " + eventLabel + " width=\"100\">Event Date:</td>");
						document.write ("<td " + eventDate + " width=\"200\">" + calData_Date[i] + "</td>");
						document.write ("<td " + eventLabel + ">Description:</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td " + eventLabel + ">Event Type:</td>");
						document.write ("<td>" + calData_Type[i] + "</td>");
						document.write ("<td valign=\"top\" rowspan=\"5\">" + calData_Desc[i] + "</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td " + eventLabel + ">Location:</td>");
						document.write ("<td>" + calData_Loc[i] + "</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td " + eventLabel + ">Start Time:</td>");
						document.write ("<td>" + startTime + "</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td " + eventLabel + ">End Time:</td>");
						document.write ("<td>" + endTime + "</td>");
						document.write ("</tr>");
						document.write ("<td " + eventLabel + ">Site Link:</td>");
						document.write ("<td><a href=\"" + calData_Link[i] + "\" target=\"_blank\">" + calData_Link[i] + "</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td colspan=\"3\">&nbsp;<br /></td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td colspan=\"3\"><hr width=\"100%\"></td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td colspan=\"3\">&nbsp;<br /></td>");
						document.write ("</tr>");
						
						// Increment eventPrintedCtr
						eventPrintedCtr = eventPrintedCtr + 1;
					}
				}
				else{
					if (Number(calData_Date[i].substr(6,4)) == selectedYear && Number(calData_Date[i].substr(0,2)) == (selectedMonth+1)){
						document.write ("<tr>");
						document.write ("<td align=\"left\" " + eventTitle + " colspan=\"3\">" + calData_Title[i] + "</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td " + eventLabel + " width=\"100\">Event Date:</td>");
						document.write ("<td " + eventDate + " width=\"200\">" + calData_Date[i] + "</td>");
						document.write ("<td " + eventLabel + ">Description:</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td " + eventLabel + ">Event Type:</td>");
						document.write ("<td>" + calData_Type[i] + "</td>");
						document.write ("<td valign=\"top\" rowspan=\"5\">" + calData_Desc[i] + "</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td " + eventLabel + ">Location:</td>");
						document.write ("<td>" + calData_Loc[i] + "</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td " + eventLabel + ">Start Time:</td>");
						document.write ("<td>" + FormatTimeToAMPM(calData_StartTime[i]) + "</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td " + eventLabel + ">End Time:</td>");
						document.write ("<td>" + FormatTimeToAMPM(calData_EndTime[i]) + "</td>");
						document.write ("</tr>");
						document.write ("<td " + eventLabel + ">Site Link:</td>");
						document.write ("<td><a href=\"" + calData_Link[i] + "\" target=\"_blank\">" + calData_Link[i] + "</td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td colspan=\"3\">&nbsp;<br /></td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td colspan=\"3\"><hr width=\"100%\"></td>");
						document.write ("</tr>");
						document.write ("<tr>");
						document.write ("<td colspan=\"3\">&nbsp;<br /></td>");
						document.write ("</tr>");
						
						// Increment eventPrintedCtr
						eventPrintedCtr = eventPrintedCtr + 1;
					}
				}
			}
			if (eventPrintedCtr == 0){
				document.write ("<tr><td><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Information:</strong><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;There are currently no events that match the criteria of your search.<br /><br /></td></tr>");	
			}
			document.write ("</table>");
	document.write ("</td>");
	document.write ("</tr>");	
	document.write ("</table>");
}

function DisplayListViewEvents(){
	var numEventsListed = 0;
	var startTime = "";
	var endTime = "";
	var rangeStartDateObj = new Date();
	var rangeStartDate = "";
	var rangeEndDateObj = new Date();
	var rangeEndDate = "";
	var tempMonth = "";
	var tempDay = "";
	var tempYear = "";
	document.write ("<table border=\"0\" width=\"" + calendarWidth + "\" cellspacing=\"0\" cellpadding=\"0\">");
	document.write ("<tr>");	
	document.write ("<td width=\"" + (calendarWidth - 12) + "\" " + eventContainer + ">");
			document.write ("<table border=\"0\" width=\"" + (calendarWidth - 12) + "\" cellspacing=\"1\" cellpadding=\"2\">");
			// Specify date range as START DATE = selected date and END DATE = selected date
			if (selectedDay != 0){
				// Set Start and End Date
				tempMonth = String(selectedMonth+1);
				tempDay = String(selectedDay);
				tempYear = String(selectedYear);
				if (tempMonth.length == 1){tempMonth = "0" + tempMonth;}
				if (tempDay.length == 1){tempDay = "0" + tempDay;}
				rangeStartDate = tempMonth + "/" + tempDay + "/" + tempYear;
				rangeEndDate = tempMonth + "/" + tempDay + "/" + tempYear;
			}
			// Specify date range as START DATE = first day of selected month and END DATE = last day of selected month
			else{
				// Construct Start and End Dates in Date Range
				rangeStartDateObj.setFullYear(selectedYear,selectedMonth,1);
				rangeEndDateObj.setFullYear(selectedYear,selectedMonth+1,0);
				
				// Start Date...
				tempMonth = String(rangeStartDateObj.getMonth()+1);
				tempDay = "" + rangeStartDateObj.getDate() + "";
				tempYear = "" + MozillaYearFix(rangeStartDateObj.getYear()) + "";
				if (tempMonth.length == 1){tempMonth = "0" + tempMonth;}
				if (tempDay.length == 1){tempDay = "0" + tempDay;}
				rangeStartDate = tempMonth + "/" + tempDay + "/" + tempYear;

				// End Date...
				tempMonth = String(rangeEndDateObj.getMonth()+1);
				tempDay = "" + rangeEndDateObj.getDate() + "";
				tempYear = "" + MozillaYearFix(rangeEndDateObj.getYear()) + "";
				if (tempMonth.length == 1){tempMonth = "0" + tempMonth;}
				if (tempDay.length == 1){tempDay = "0" + tempDay;}
				rangeEndDate = tempMonth + "/" + tempDay + "/" + tempYear;
			}
			// Write Event List and return number of event listed
//			document.write ("<tr><td><b>Start: </b>" + rangeStartDate + "&nbsp;&nbsp;&nbsp;<b>End: </b>" + rangeEndDate + "</td></tr>");
			numEventsListed = WriteListOnDateRange(rangeStartDate,rangeEndDate);
			
			if (numEventsListed == 0){
				document.write ("<tr><td class=\"MirrorStandardDisplay\"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Information:</strong><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;There are currently no events that match the criteria of your search.<br /><br /></td></tr>");	
			}
			document.write ("</table>");
	document.write ("</td>");
	document.write ("</tr>");	
	document.write ("</table>");
}

function WriteListOnDateRange(startDate, endDate){
	var numEvents = 0;
	var timeFrame = "";
	
	var objTempDate = new Date();
	var objEndDate = new Date();
	var dayIncrement = 1;
	var numEventsThisDay;
	
	objTempDate.setFullYear(Number(startDate.substr(6,4)), (Number(startDate.substr(0,2))-1), Number(startDate.substr(3,2)));
	objEndDate.setFullYear(Number(endDate.substr(6,4)), (Number(endDate.substr(0,2))-1), (Number(endDate.substr(3,2))+1));

	while (!(objTempDate.getMonth() == objEndDate.getMonth() && objTempDate.getDate() == objEndDate.getDate() && objTempDate.getYear() == objEndDate.getYear())){
		// Initialize counter for the number of events this day
		numEventsThisDay = 0;
		
		for (var i=0; i<calData_ID.length; i++){
			if (Number(calData_Date[i].substr(6,4)) == MozillaYearFix(objTempDate.getYear()) && Number(calData_Date[i].substr(0,2)) == (objTempDate.getMonth()+1) && Number(calData_Date[i].substr(3,2)) == objTempDate.getDate()){
				
				numEventsThisDay = numEventsThisDay + 1;
				
				if (calData_StartTime[i] == "06:00" && calData_EndTime[i] == "23:45"){
					timeFrame = "All Day";
				}
				else {
					timeFrame = FormatTimeToAMPM(calData_StartTime[i]) + "-" + FormatTimeToAMPM(calData_EndTime[i]);
				}
				
				if (numEventsThisDay == 1){
					document.write ("<tr>");
					document.write ("<td class=\"MirrorStandardDisplay\" " + eventLabel + " colspan=\"2\">" + calDays[objTempDate.getDay()] + ", " + calMonths[objTempDate.getMonth()] + " " + objTempDate.getDate() + ", " + MozillaYearFix(objTempDate.getYear()) + "</td>");
					document.write ("</tr>");
				}
				document.write ("<tr>");
				document.write ("<td width=\"150\" " + eventDataEmp + ">" + calData_Type[i] + "</td>");
				document.write ("<td " + eventData + ">" + calData_Title[i]);
				if (calData_Desc[i].length > 0){
					document.write (" (<i>" + calData_Desc[i] + "</i>)<br />");
				}
				else{
					document.write ("<br />");
				}
				document.write ("<b>Time:</b> " + timeFrame + ",&nbsp;&nbsp;&nbsp;<b>Location:</b> " + calData_Loc[i]);
				if (calData_Link[i].length > 0){
					document.write ("<br />");
					document.write ("<a href=\"" + calData_Link[i] + "\" target=\"_blank\"><b>Click Here!</b></a>");
				}
				document.write ("</td>");
				document.write ("</tr>");
				
				// Increment NumEvents
				numEvents = numEvents + 1;
			}
		}
		
		// Increment TempDate by 1 day
		objTempDate.setFullYear(Number(startDate.substr(6,4)), (Number(startDate.substr(0,2))-1), (Number(startDate.substr(3,2))+dayIncrement));
		dayIncrement = dayIncrement + 1;
	}
	
	return numEvents;
}

function FormatTimeToAMPM (militaryTime){
	var hours = Number(militaryTime.substr(0,2));
	var minutes = militaryTime.substr(3,2);
	
	// Return in AM / PM Format
	if (hours < 12){
		return (hours + ":" + minutes + "&nbsp;AM");
	}
	else{
		if ((hours-12) == 0){
			return ("12:" + minutes + "&nbsp;PM");
		}
		else{
			return ((hours-12) + ":" + minutes + "&nbsp;PM");
		}
	}
}
