

/* 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/PrevYrOff.gif", "images/PrevYrOn.gif", "images/PrevMoOff.gif", "images/PrevMoOn.gif", "images/NextYrOff.gif", "images/NextYrOn.gif", "images/NextMoOff.gif", "images/NextMoOn.gif");


/***************************************************************************************
JavaScript Calendar 
// Functions
changedate(): Moves to next or previous month or year, or current month depending on the button clicked.
createCalendar(): Renders the calander into the page with links for each to fill the date form filds above.
			
***************************************************************************************/

var thisDate = 1; 						// Tracks current date being written in calendar
var wordMonth = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var today = new Date(); 						// Date object to store the current date
var todaysDay = today.getDay() + 1; 				// Stores the current day number 1-7
var todaysDate = today.getDate(); 				// Stores the current numeric date within the month
var todaysMonth = today.getMonth() + 1; 			// Stores the current month 1-12
var todaysYear = today.getFullYear(); 				// Stores the current year
var monthNum = todaysMonth; 					// Tracks the current month being displayed
var yearNum = todaysYear; 					// Tracks the current year being displayed
var firstDate = new Date(String(monthNum) + "/1/" + String(yearNum)); // Object Storing the first day of the current month
var firstDay = firstDate.getDay(); 				// Tracks the day number 1-7 of the first day of the current month
var lastDate = new Date(String(monthNum + 1) + "/0/" + String(yearNum)); // Tracks the last date of the current month
var numbDays = 0;
var calendarString = "";
var eastermonth = 0;
var easterday = 0;



function changedate(buttonpressed) {    
    if (buttonpressed == "prevyr") yearNum--;
    else if (buttonpressed == "nextyr") yearNum++;
    else if (buttonpressed == "prevmo") monthNum--;
    else if (buttonpressed == "nextmo") monthNum++;
    else if (buttonpressed == "return") {
        monthNum = todaysMonth;
        yearNum = todaysYear;
    }

    if (monthNum == 0) {
        monthNum = 12;
        yearNum--;
    }
    else if (monthNum == 13) {
        monthNum = 1;
        yearNum++
    }

    lastDate = new Date(String(monthNum + 1) + "/0/" + String(yearNum));
    numbDays = lastDate.getDate();
    firstDate = new Date(String(monthNum) + "/1/" + String(yearNum));
    firstDay = firstDate.getDay() + 1;    
    createCalendar();
    return;
}


function easter(year) {
    // feed in the year it returns the month and day of Easter using two GLOBAL variables: eastermonth and easterday
    var a = year % 19;
    var b = Math.floor(year / 100);
    var c = year % 100;
    var d = Math.floor(b / 4);
    var e = b % 4;
    var f = Math.floor((b + 8) / 25);
    var g = Math.floor((b - f + 1) / 3);
    var h = (19 * a + b - d - g + 15) % 30;
    var i = Math.floor(c / 4);
    var j = c % 4;
    var k = (32 + 2 * e + 2 * i - h - j) % 7;
    var m = Math.floor((a + 11 * h + 22 * k) / 451);
    var month = Math.floor((h + k - 7 * m + 114) / 31);
    var day = ((h + k - 7 * m + 114) % 31) + 1;
    eastermonth = month;
    easterday = day;
}


function createCalendar() {   
    calendarString = '';
    var daycounter = 0;

    calendarString += '<table width="100%" border="0" cellpadding="0" cellspacing="2" class=\"data\">';
    calendarString += '<tr><td colspan=\"5\" nowrap align=\"center\" valign=\"middle\" class=\"data\"><a href=\"javascript:changedate(\'return\')\">Show Current Date<\/a><\/td><\/tr>';
    calendarString += '<tr><td colspan=\"5\" nowrap align=\"center\" valign=\"middle\" class=\"data\" height=\"5px\"><\/td><\/tr>';
    calendarString += '<tr>';
    calendarString += '	<td class=\"data\" align=\"center\" valign=\"middle\" width=\"12\" height=\"12\"><a  href=\"javascript:;\" onMouseOver=\"document.PrevYr.src=\'images\/PrevYrOn\.gif\';\" onMouseOut=\"document.PrevYr.src=\'images\/PrevYrOff\.gif\';\" onClick=\"changedate(\'prevyr\')\"><img name=\"PrevYr\" src=\"images\/PrevYrOff\.gif\" width=\"12\" height=\"12\" border=\"0\" alt=\"Prev Yr\"\/><\/a><\/td>';
    calendarString += '	<td class=\"data\" align=\"center\" valign=\"middle\" width=\"12\" height=\"12\"><a  href=\"javascript:;\" onMouseOver=\"document.PrevMo.src=\'images\/PrevMoOn\.gif\';\" onMouseOut=\"document.PrevMo.src=\'images\/PrevMoOff\.gif\';\" onClick=\"changedate(\'prevmo\')\"><img name=\"PrevMo\" src=\"images\/PrevMoOff\.gif\" width=\"12\" height=\"12\" border=\"0\" alt=\"Prev Mo\"\/><\/a><\/td>';
    calendarString += '	<td class=\"data\" align=\"center\" valign=\"middle\" height=\"12\"><span class=\"defaultbold\">' + wordMonth[monthNum - 1] + '&nbsp;&nbsp;' + yearNum + '<\/span><\/td>';
    calendarString += '	<td class=\"data\" align=\"center\" valign=\"middle\" width=\"12\" height=\"12\"><a  href=\"javascript:;\" onMouseOver=\"document.NextMo.src=\'images\/NextMoOn\.gif\';\" onMouseOut=\"document.NextMo.src=\'images\/NextMoOff\.gif\';\" onClick=\"changedate(\'nextmo\')\"><img name=\"NextMo\" src=\"images\/NextMoOff\.gif\" width=\"12\" height=\"12\" border=\"0\" alt=\"Next Mo\"\/><\/a><\/td>';
    calendarString += '	<td class=\"data\" align=\"center\" valign=\"middle\" width=\"12\" height=\"12\"><a  href=\"javascript:;\" onMouseOver=\"document.NextYr.src=\'images\/NextYrOn\.gif\';\" onMouseOut=\"document.NextYr.src=\'images\/NextYrOff\.gif\';\" onClick=\"changedate(\'nextyr\')\"><img name=\"NextYr\" src=\"images\/NextYrOff\.gif\" width=\"12\" height=\"12\" border=\"0\" alt=\"Next Yr\"\/><\/a><\/td>';
    calendarString += '<\/tr>';	
    calendarString += '<tr>';
    calendarString += '	<td colspan=\"5\" align=\"center\" class=\"data\">';
	calendarString += '		<table width="100%" border="0" cellpadding="3" cellspacing="2" class=\"data\">';
    calendarString += '		<tr>';
    calendarString += '			<td width=\"29px\" class=\"week data\" align=\"center\" valign=\"middle\">Sun<\/td>';
    calendarString += '			<td width=\"29px\" class=\"week data\" align=\"center\" valign=\"middle\">Mon<\/td>';
    calendarString += '			<td width=\"29px\" class=\"week data\" align=\"center\" valign=\"middle\">Tue<\/td>';
    calendarString += '			<td width=\"29px\" class=\"week data\" align=\"center\" valign=\"middle\">Wed<\/td>';
    calendarString += '			<td width=\"29px\" class=\"week data\" align=\"center\" valign=\"middle\">Thu<\/td>';
    calendarString += '			<td width=\"29px\" class=\"week data\" align=\"center\" valign=\"middle\">Fri<\/td>';
    calendarString += '			<td width=\"29px\" class=\"week data\" align=\"center\" valign=\"middle\">Sat<\/td>';
    calendarString += '		<\/tr>';
    thisDate == 1;
    
    for (var i = 1; i <= 6; i++) {
        calendarString += '<tr>';
        
        for (var x = 1; x <= 7; x++) {
            
            daycounter = (thisDate - firstDay) + 1;
            thisDate++;
            if ((daycounter > numbDays) || (daycounter < 1)) 
            {
                calendarString += '<td align=\"center\" class=\"data\">&nbsp;<\/td>';
                
            }
            else {
                
                 if (checkevents(daycounter, monthNum, yearNum, i, x) || ((todaysDay == x) && (todaysDate == daycounter) && (todaysMonth == monthNum)))
                 {
                     if ((todaysDay == x) && (todaysDate == daycounter) && (todaysMonth == monthNum)) {
                         calendarString += '<td class=\"surr table2 datashade defaultbold\" align=\"center\"><a href=\"javascript:showevents(' + daycounter + ',' + monthNum + ',' + yearNum + ',' + i + ',' + x + ')\">' + daycounter + '<\/a><\/td>';

                     }
                     else {
                         calendarString += '<td align=\"center\" class=\"surr table2 defaultbold\"><a href=\"javascript:showevents(' + daycounter + ',' + monthNum + ',' + yearNum + ',' + i + ',' + x + ')\">' + daycounter + '<\/a><\/td>';
                     }

                 } 
                else
                {
                calendarString += '<td align=\"center\" class=\"data\">' + daycounter + '<\/td>';
                
                }
            }
        }
        
        calendarString += '<\/tr>';
        
    }
    calendarString += '		<\/table>';
	calendarString += '	<\/td>';
    calendarString += '<\/tr>';

    calendarString += '<\/table>';

    
    var object = document.getElementById('calendar');
    object.innerHTML = calendarString;    
    thisDate = 1;
}


function checkevents(day, month, year) {       
    var numevents = 0;
    var floater = 0;
    var givendate = new Date(String(month) + "/" + String(day) + "/" + String(year));
        
    for (var i = 0; i < events.length; i++) {        
        var eventdate = new Date(events[i][0]);        
        if ((givendate.getDate() == eventdate.getDate()) && (givendate.getMonth() + 1 == eventdate.getMonth() + 1) && (givendate.getFullYear() == eventdate.getFullYear())) {
            numevents++;
        }
    }

    if (numevents == 0) {       
        return false;
    } else {    
        return true;
    }
    
    
}

function showevents(day, month, year, week, dayofweek) {

    var theevent = "";
    var floater = 0;
    var givendate = new Date(String(month) + "/" + String(day) + "/" + String(year));
    document.getElementById('eventdate').innerHTML = "";
	document.getElementById('eventdate').style.display = "none";
    document.getElementById('eventlist').innerHTML = "<span class='\defaultbold\'> Date: <\/span>" + month + '/' + day + '/' + year + '<br/>' + "No events to show.";
    
    for (var i = 0; i < events.length; i++) {
        var eventdate = new Date(events[i][0]);
        if ((givendate.getDate() == eventdate.getDate()) && (givendate.getMonth() == eventdate.getMonth()) && (givendate.getFullYear() == eventdate.getFullYear())) {            
            document.getElementById('eventdate').innerHTML = "";			
            theevent += '<span class="\defaultbold\">Date: <\/span>';
            theevent += events[i][2] + '<br/>';           
            theevent += '<span class="\defaultbold\">Event: <\/span>';
            theevent += events[i][1] + '<br/>';            
            theevent += '<br/>';            
            document.getElementById('eventlist').innerHTML = theevent;            
        }
    }
    /*if (theevent == "")
    {
        document.forms.eventform.eventlist.value = 'No events to show.';
    }*/
}


function floatingholiday(targetyr, targetmo, cardinaloccurrence, targetday) {
    // Floating holidays/events of the events.js file uses:
    //	the Month field for the Month (here it becomes the targetmo field)
    //	the Day field as the Cardinal Occurrence  (here it becomes the cardinaloccurrence field)
    //		1=1st, 2=2nd, 3=3rd, 4=4th, 5=5th, 6=6th occurrence of the day listed next
    //	the Year field as the Day of the week the event/holiday falls on  (here it becomes the targetday field)
    //		1=Sunday, 2=Monday, 3=Tuesday, 4=Wednesday, 5=Thurday, 6=Friday, 7=Saturday
    //	example: "F",	"1",	"3",	"2", = Floating holiday in January on the 3rd Monday of that month.
    //
    // In our code below:
    // 	targetyr is the active year
    // 	targetmo is the active month (1-12)
    // 	cardinaloccurrence is the xth occurrence of the targetday (1-6)
    // 	targetday is the day of the week the floating holiday is on
    //		0=Sun; 1=Mon; 2=Tue; 3=Wed; 4=Thu; 5=Fri; 6=Sat
    //		Note: subtract 1 from the targetday field if the info comes from the events.js file
    //
    // Note:
    //	If Memorial Day falls on the 22nd, 23rd, or 24th, then we add 7 to the dayofmonth to the result.
    //
    // Example: targetyr = 2052; targetmo = 5; cardinaloccurrence = 4; targetday = 1
    //	This is the same as saying our floating holiday in the year 2052, is during May, on the 4th Monday
    //
    var firstdate = new Date(String(targetmo) + "/1/" + String(targetyr)); // Object Storing the first day of the current month.
    var firstday = firstdate.getDay(); // The first day (0-6) of the target month.
    var dayofmonth = 0; // zero out our calendar day variable.

    targetday = targetday - 1;

    if (targetday >= firstday) {
        cardinaloccurrence--; // Subtract 1 from cardinal day.
        dayofmonth = (cardinaloccurrence * 7) + ((targetday - firstday) + 1);
    } else {
        dayofmonth = (cardinaloccurrence * 7) + ((targetday - firstday) + 1);
    }
    return dayofmonth;
}


