/**************************************************************************************************************************
	eventTable Script
	creates the table containing all scheduled events for the fiscal year
	Uses same external files as eventCalender primarily events.js
	External files:
		events.js - contains the event details for each event date
		global.js - contains the global variables used by this and other script files
		images - folder containing all image files
	 Functions
		preloadImages();	Preloads requested image files
		getFiscalYear():	Calculates and returns the current PAS fiscal year
		createCalTable(): 	Renders the table list of all PAS events

	Event file structure
	events[0] - Type ['P','V']
	events[1] - Month [1-12]
	events[2] - Day [1-31]
	events[3] - Year [nnnn] 
	events[4] - Time [nn:nn xM]
	events[5] - Fiscal Year [nnnn] Note: fiscal year is the four digits of the last year within the fiscal year
	events[6] - Description [X(28)]
	events[7] - Location [X(20)]

	Colors:
		#AAFFAA			Green - today's date
		#EFFFFF			Blue, light - event rows
		#6699CC			Blue - Calendar Header
		#F0F0F0			Grey, light - not used here
		#CCCCCC			Grey, medium - Weekday header
		#FAA61A			Orange - highlight clickable links
			
**************************************************************************************************************************/

/* Preload images script */
var myimages=new Array()

function preloadimages(){
	for (i=0;i<preloadimages.arguments.length;i++){
		myimages[i]=new Image();
		myimages[i].src=preloadimages.arguments[i];
	}
}

/* The path of images to be preloaded inside parenthesis: (Extend list as desired.) */
preloadimages("../Images/PAS_logo2.gif");

//Declare global variables

	if (test == true) {
		var glblConcertProgURLPrefix = "Programs/prog";			//Using relative location locally
	} else {
		var glblConcertProgURLPrefix = "Events/Programs/prog";		//Using absolute location on the server
	}

function getFiscalYear() {
/*	Calculate the current-default fiscal year from which to start
	PAS fiscal year runs from September to August
	It is preset in Globals
	Code below (commented out) will activate the next fiscalYear on September 1st
	Returns fiscalYear as "nnnn-nnnn+1"          
*/
/*	This section is commented out so that fiscalYear is settable in Globals only
	This function then only returns that global
	
	var endYear = 0;
	var fiscalYear = "";
	
	if ((8 - todaysMonth) < 0) {
		//We are in the period from September to December so add 1 to the current year
		endYear = todaysYear+1;
	} else	endYear = todaysYear;

	fiscalYear = (endYear-1).toString() + "-" + (endYear).toString();
*/
	return glblFiscalYear;
}
	

function createCalTable() {
	calendarString = '';
	var yearCheck  = 0;
	var monthCheck = '';
	var eventYear  = 0;
	var eventMonthN = 0;
	var eventMonthW = '';
	var eventDay   = 0;
	var eventDOW   = '';
	var eventTime  = '';
	var eventDesc  = '';
	var eventfYear = '';
	var fYear = '';

	fYear = getFiscalYear();

	//Table Header - Title - a new table within the table tblMaster defined in the document
	calendarString += '<table id="tblHeader" class=tbltitle border=0 CELLSPACING=1 CELLPADDING=3 WIDTH=560">';
	calendarString += '<tr><td align=center>PAS Event Calendar for '+fYear+'<\/td><\/tr><\/table>';
	//Table Header - Headings - a new table with no frame
	calendarString += '<table id="tblEvents" class=tbltext frame=void rules=all border=1 CELLSPACING=1 CELLPADDING=2 WIDTH=560>';
	calendarString += '<tr class=tblheader><td>Year</td><td>&nbsp;&nbsp;Month</td><td align=center>Day</td><td align=center>Day of Week</td>';
	calendarString += '<td align=Center>Time</td><td align=Left>&nbsp;&nbsp;Event</td></tr>';

	if (events.length == 0) {
		//Oops, we have an empty events database
		calendarString += '<td> Events Database contains no events! <\/td>';
		return;
	} 	

	for (var i = 0; i < events.length; i++) {
		calendarString += '<tr>';
		eventYear  = events[i][3];
		eventMonthN = events[i][1];
		eventMonthW = wordMonth[events[i][1]-1];
		eventDay   = events[i][2];
		calcDOW    = new Date(eval('"'+eventDay+' '+eventMonthW+','+eventYear+'"'));
		eventDOW   = dayofWeek[calcDOW.getDay()];
		eventTime  = events[i][4];
		eventDesc  = events[i][6];
		eventfYear = events[i][5];
		
	   if (eventfYear == fYear.substring(5)) {		//is this the current fiscal year?
		if (yearCheck == 0) {
			//This is the first line so print year and month
			yearCheck = eventYear;
			monthCheck = eventMonthW;
			var editDesc = new String();
	
			calendarString += '<td>'+eventYear+'<\/td><td align=left>&nbsp;&nbsp;'+eventMonthW+'<\/td><td align=center>'+eventDay;
			calendarString += '<\/td><td align=left>&nbsp;&nbsp;'+eventDOW+'<\/td><td align=left>'+eventTime+'<\/td><td align=left>&nbsp;&nbsp;';

			if (events[i][0] == "P") {
				if (eventDesc.indexOf("'") > 0) {
					//If there is a single apostrophe in eventDesc we have to escape it first before passing it to a function
					editDesc = eventDesc.substring(0, eventDesc.indexOf("'"))+"\\"+eventDesc.substring(eventDesc.indexOf("'"), eventDesc.length);
				} else  editDesc = eventDesc;
				calendarString += '<a href="javascript:openProgramWindow('+eventMonthN+','+eventDay+','+eventYear+','+'\''+eventDOW+'\''+','+'\''+editDesc+'\''+')">';
			} 	
			calendarString += eventDesc+'<\/td>';
			
		} else if ((yearCheck == eventYear) && (monthCheck == eventMonthW)) {
			//Year and month have not changed so don't print either one
			var editDesc = new String();

			calendarString += '<td>&nbsp<\/td><td align=left>'+'&nbsp;'+'<\/td><td align=center>'+eventDay;
			calendarString += '<\/td><td align=left>&nbsp;&nbsp;'+eventDOW+'<\/td><td align=left>'+eventTime+'<\/td><td align=left>&nbsp;&nbsp;';

			if (events[i][0] == "P") {
				if (eventDesc.indexOf("'") > 0) {
					//If there is a single apostrophe in eventDesc we have to escape it first before passing it to a function
					editDesc = eventDesc.substring(0, eventDesc.indexOf("'"))+"\\"+eventDesc.substring(eventDesc.indexOf("'"), eventDesc.length);
				} else  editDesc = eventDesc;
				calendarString += '<a href="javascript:openProgramWindow('+eventMonthN+','+eventDay+','+eventYear+','+'\''+eventDOW+'\''+','+'\''+editDesc+'\''+')">';
			} 	
			calendarString += eventDesc+'<\/td>';

		} else if (yearCheck != eventYear) {
			//Year and month have changed so print both
			yearCheck = eventYear;
			monthCheck = eventMonthW;
			var editDesc = new String();

			calendarString += '<td>'+eventYear+'<\/td><td align=left>&nbsp;&nbsp;'+eventMonthW+'<\/td><td align=center>'+eventDay;
			calendarString += '<\/td> <td align=left>&nbsp;&nbsp;'+eventDOW+'<\/td> <td align=left>'+eventTime+'<\/td> <td align=left>&nbsp;&nbsp;';

			if (events[i][0] == "P") {
				if (eventDesc.indexOf("'") > 0) {
					//If there is a single apostrophe in eventDesc we have to escape it first before passing it to a function
					editDesc = eventDesc.substring(0, eventDesc.indexOf("'"))+"\\"+eventDesc.substring(eventDesc.indexOf("'"), eventDesc.length);
				} else  editDesc = eventDesc;
				calendarString += '<a href="javascript:openProgramWindow('+eventMonthN+','+eventDay+','+eventYear+','+'\''+eventDOW+'\''+','+'\''+editDesc+'\''+')">';
			} 	
			calendarString += eventDesc+'<\/td>';

		} else if (monthCheck != eventMonthW) {
			//Just the month has changed so print new month
			monthCheck = eventMonthW;
			var editDesc = new String();

			calendarString += '<td>&nbsp<\/td><td align=left>&nbsp;&nbsp;'+eventMonthW+'<\/td><td align=center>'+eventDay;
			calendarString += '<\/td><td align=left>&nbsp;&nbsp;'+eventDOW+'<\/td> <td align=left>'+eventTime+'<\/td> <td align=left>&nbsp;&nbsp;';

			if (events[i][0] == "P") {
				if (eventDesc.indexOf("'") > 0) {
					//If there is a single apostrophe in eventDesc we have to escape it first before passing it to a function
					editDesc = eventDesc.substring(0, eventDesc.indexOf("'"))+"\\"+eventDesc.substring(eventDesc.indexOf("'"), eventDesc.length);
				} else  editDesc = eventDesc;
				calendarString += '<a href="javascript:openProgramWindow('+eventMonthN+','+eventDay+','+eventYear+','+'\''+eventDOW+'\''+','+'\''+editDesc+'\''+')">';
			} 	
			calendarString += eventDesc+'<\/td>';
		}
		calendarString += '<\/tr>';
	    }
	}
	
	var object=document.getElementById('calendar');
	object.innerHTML= calendarString;
	return true;
}