﻿var lastTime = null;
var lastDate = null;
var lastMonth = null;
var isFirstEvent;
var eventParams = null;

function displayEvents(params) {

    lastTime = null;
    lastDate = null;
    lastMonth = null;
    isFirstEvent = true;
    eventParams = params;

    for (var i = 0; i < eventList.length; i++) {
        showEvent(eventList[i]);
    }

    closeEvents();

}

function displayEventLine(strEvent) {
	document.write('<tr class="eventHeader"><td align="left" colspan="4"><nobr>');
	document.write(strEvent);
	document.write('</nobr></td></tr>');
}

function formatDate(eventDate, displayDate) {
	var strDate = displayDate ? displayDate : eventDate.dateToString();
	if (eventDate.getDay() == 0) strDate = '<span style="color:DarkRed">' + strDate + '</span>';
	return strDate;
}

function initializeEvents() {
	if (eventParams.title) {
	    document.write('<p><b>' + eventParams.title + '</b></p>');
	}
    if (eventParams.indent) document.write('<div class="indented">');
}

function closeEvents() {
	if (isFirstEvent) return;
	document.write('</table>');
	if (eventParams.indent) document.write('</div>');
}
	
function showEvent(objEvent) {
	if (objEvent == null) return;
	
	if (pastDue(!objEvent.endDate ? objEvent.date : objEvent.endDate)) return;

	if (objEvent.startDate && !pastDue(objEvent.startDate)) return;
	
	if (eventParams.category) {
		if (!objEvent.category) return;
		if (objEvent.category.indexOf(eventParams.category) < 0) return;
	}

	var eventDate = new Date(objEvent.date);
	
	if (eventParams.days) {
		if (eventParams.days > 0 && ((eventDate - today)/86400000) > eventParams.days) return;
	}

    if (isFirstEvent) initializeEvents();
	
	
	var displayDate = formatDate(eventDate, objEvent.displayDate)
	
	if (displayDate != lastDate) {

        if (!isFirstEvent) document.write('</table>');
        
	    document.write('<table border="0" cellspacing="0" cellpadding="0">');
	    document.write('<col width="100px" />');
	    document.write('<col width="16px" />');

	    if (eventDate.getMonth() != lastMonth) {
	        if (!eventParams.category && !eventParams.days) {
    		    displayEventLine('<br/><b>'+monthText[eventDate.getMonth()]+'</b>');
		    }
	    }

        displayEventLine(displayDate);

	}
	
	document.write('<tr class="eventDetail">');
	if (objEvent.time) {
//		if (displayDate == lastDate && objEvent.time == lastTime) {
//			document.write('    <td align="right"></td>');
//		} else {
			document.write('    <td align="right"><nobr>' + objEvent.time + '</nobr></td>');
//		}
		document.write('    <td align="center">-</td>');
		document.write('    <td align="left">');
	} else {
		document.write('    <td></td><td align="center">-</td><td align="left">');
	}
    if (objEvent.image) document.write('<span style="float: left; clear: left; margin-right: 5px;">' + objEvent.image + '</span>');
	var dash = false;
	document.write('<b>');
	if (eventParams.links && objEvent.link) {
	    document.write(objEvent.link);
	    dash = true;
    }
	if (objEvent.title) {
	    if (dash) document.write(' - ');
	    document.write(objEvent.title);
	    dash = true;
	}
	document.write('</b>');
	if (objEvent.desc) {
	    if (dash) document.write(' - ');
	    document.write(objEvent.desc);
	}
	document.write('    </td>');
	document.write('</tr>');

	lastTime = objEvent.time;
	lastDate = displayDate;
	lastMonth = eventDate.getMonth();
    isFirstEvent = false;

}
