﻿var lastDate = null;
var lastMonth = null;
var isFirstEvent;
var eventParams = null;

function addTime(objDate, strTime) {
    if (objDate.getHours() == 0 && objDate.getMinutes() == 0) {
        var timeParts = strTime.split(':');
        var timeParts2 = timeParts[1].split(' ');
        objDate.setMinutes(parseInt(timeParts2[0]));
        if (timeParts2[1] == 'pm')
            objDate.setHours(parseInt(timeParts[0]) + 12)
        else
            objDate.setHours(parseInt(timeParts[0]));
    }
    return objDate;
}

function displayEvents(params) {

    lastDate = null;
    lastMonth = null;
    isFirstEvent = true;
    eventParams = params;

    eventList.sort(sortEvents);

    for (var i = 0; i < eventList.length; i++) {
        showEvent(eventList[i]);
    }

    closeEvents();

}

function sortEvents(a,b) {
	if (a.date.getTime() > b.date.getTime()) return 1;
	if (a.date.getTime() < b.date.getTime()) return -1;
	return 0;
}

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 formatTime(eventDate, displayTime) {
	if (displayTime) return displayTime;
	var strTime = eventDate.timeToString();
	return strTime.left(4) == "0:00" ? null : strTime;
}

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;
	
	var dueDate = !objEvent.endDate ? objEvent.date : objEvent.endDate;
	if (dueDate.pastDue()) return;

	if (objEvent.startDate && !objEvent.startDate.pastDue()) return;
	
	if (eventParams.category) {
		if (!objEvent.category) return;
		if (objEvent.category.indexOf(eventParams.category) < 0) return;
	}

	if (eventParams.days) {
		if (eventParams.days > 0 && ((objEvent.date - today)/86400000) > eventParams.days) return;
	}

    if (isFirstEvent) initializeEvents();
	
	
	var displayDate = formatDate(objEvent.date, 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 (objEvent.date.getMonth() != lastMonth) {
	        if (!eventParams.category && !eventParams.days) {
    		    //displayEventLine('<br/><b>'+monthText[objEvent.date.getMonth()]+'</b>');
    		    displayEventLine('<h2>'+monthText[objEvent.date.getMonth()]+'</h2>');
		    }
	    }

        displayEventLine(displayDate);

	}
	
	var displayTime = formatTime(objEvent.date, objEvent.displayTime)

	document.write('<tr class="eventDetail">');
	if (displayTime) {
		document.write('    <td align="right"><nobr>' + displayTime + '</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;
	}
//	if (dash) document.write('</b>');
	document.write('</b>');
	if (objEvent.desc) {
	    if (dash) document.write(' - ');
	    document.write(objEvent.desc);
	}
//  if (!dash) document.write('</b>');
	document.write('    </td>');
	document.write('</tr>');

	lastDate = displayDate;
	lastMonth = objEvent.date.getMonth();
    isFirstEvent = false;

}

