
function Event (year, month, day, description) {
    this.date = new Date(year, month - 1, day, 0, 0, 0, 0);
    this.timestamp = this.date.getTime();
    this.description = description;

    return this.timestamp;
}

var eventList = new Array();

function addEvent(year, month, day, description) {
    eventList.push(new Event(year, month, day, description));
}

function printEvents() {

     eventList.sort(compareDate);

    var currentMonthYearHeader =  null;
    var today = new Date(Date());

    for(var i = 0; i < eventList.length; i++) {

        if(Math.floor(eventList[i].date.getTime() / 86400000) >= Math.floor(new Date().getTime() / 86400000) ) {            

            if(currentMonthYearHeader == null ||
               currentMonthYearHeader != eventList[i].date.getMonth() + '' + eventList[i].date.getFullYear()) {

                document.write('<tr>');
            	document.write('<th colspan="2" class="superHeader">' + monthName(eventList[i].date.getMonth()) + ' ' 
                                                                      + eventList[i].date.getFullYear() + '</th>');
                document.write('</tr>');    
                document.write('<tr><th>Date</th><th>Event</th></tr>');

                currentMonthYearHeader = eventList[i].date.getMonth() + '' + eventList[i].date.getFullYear();

            }

            document.write('<tr>');
            document.write('<td nowrap  valign="top">' + monthName(eventList[i].date.getMonth())
                                                       + ' ' 
                                                       + eventList[i].date.getDate() 
                                                       + ', ' 
                                                       + eventList[i].date.getFullYear() 
                                                        + '</td>');
            document.write('<td valign="top">' + eventList[i].description + '</td>');
            document.write('</tr>');
            
            document.write('<tr><td colspan="2" height="20"></td></tr>');
        }
    }
}

function compareDate(a, b) {
    return a.timestamp - b.timestamp;
}

function monthName(monthAsNum) {
    switch(monthAsNum) {
        case 0: return 'January';
                break;

        case 1: return 'February';
                break;

        case 2: return 'March';
                break;

        case 3: return 'April';
                break;

        case 4: return 'May';
                break;

        case 5: return 'June';
                break;

        case 6: return 'July';
                break;

        case 7: return 'August';
                break;

        case 8: return 'September';
                break;

        case 9: return  'October';
                break;
        
        case 10: return 'November';
                 break;

        case 11: return 'December';
                 break;
    }
}