// JavaScript Document


function displayPastEvents(container, eventArray) {
	
	if (!eventArray || !container) { return; }
	
	
	var today = new Date(); //today's date
	
	myContainer = document.getElementById(container);
	myContainer.innerHTML = "<br />"; //clear contents and add the first line break

	//sort events: Later events first
	eventArray.sort( function(event1, event2) { return event2.date - event1.date; });

	//Display old events
	for (i = 0; i < eventArray.length; i++) {
		if ((eventArray[i].date < today) && eventArray[i].date)  { // check to see if the event date (or starting date) is in the past.
			if (eventArray[i].endDate) {  //check if there is an end date for multi day events
				if (eventArray[i].endDate < today) { // check to see if the end date passed. If so, display past event.
					eventArray[i].addEvent(container);
				}	
			} else {	//if there isn't an end date and the event is one day only then display the event.
				eventArray[i].addEvent(container);
			}
		}
   	}
	myContainer.innerHTML += "<br>";
}



function displayCurrentEvents(container, eventArray) {
	if (!eventArray || !container) { return; }
	var today = new Date(); //today's date
	
	myContainer = document.getElementById(container);
	myContainer.innerHTML = "<br />"; //clear contents and add the first line break
	
	//sort events: early events first
	eventArray.sort( function(event1, event2) { return event1.date - event2.date; });

	//display event without a date first
	/*for (i = 0; i < eventArray.length; i++) {
		if (!eventArray[i].date) {
			eventArray[i].addEvent(container);
		}
   	}*/
	//display current events with a date
	for (i = 0; i < eventArray.length; i++) {
		
		if ((eventArray[i].date >= today) && eventArray[i].date) {	
			eventArray[i].addEvent(container);
			continue;
		}
		else if (eventArray[i].date) { //This bit of code is needed to check for the same day but at a different time
			if ((eventArray[i].date.getDate() == today.getDate()) && 
				(eventArray[i].date.getFullYear() == today.getFullYear()) && 
				(eventArray[i].date.getMonth() == today.getMonth()) &&
				 eventArray[i].date) {
				eventArray[i].addEvent(container);
				continue;
				//alert('same as today');
			}
		}
		
		//Check to see if there is an endDate for an event that spans mulitple days. This code is only used if the start date is past due.
		if ((eventArray[i].endDate >= today) && eventArray[i].endDate) {
			eventArray[i].addEvent(container);
			continue;
		}
		else if (eventArray[i].endDate) { //This bit of code is needed to check for the same day but at a different time
			if ((eventArray[i].endDate.getDate() == today.getDate()) && 
				(eventArray[i].endDate.getFullYear() == today.getFullYear()) && 
				(eventArray[i].endDate.getMonth() == today.getMonth()) &&
				 eventArray[i].endDate) {
				eventArray[i].addEvent(container);
				continue;
				//alert('same as today');
			}
		}
		
		//if (eventArray[i].endDate) { alert(eventArray[i].endDate); }
				
			
   	}
	myContainer.innerHTML += "<br>";
}



//Create object constructor
function EventObj(date, lnk, title, disc, endDate) {
	this.date = date;
	this.lnk = lnk;
	this.title = title;
	this.disc = disc;
	this.endDate = endDate; //used only when an event spans multiple days. This is the last day of the event. 'date' is the first day.
	//this.addEvent = addEvent; //reference the displayEvent function

}

//add methods at class level
EventObj.prototype.addEvent = function(container) {
	var eventHtml = "";
	
	if (this.date && !this.endDate)
		eventHtml += '<p><span class="smallwhite">' + (this.date.getMonth() + 1) + '/' + this.date.getDate() + '/' + this.date.getFullYear() + '</span><br>';
	else if (this.date && this.endDate)
		eventHtml += '<p><span class="smallwhite">' + (this.date.getMonth() + 1) + '/' + this.date.getDate() + '/' + this.date.getFullYear() + ' - ' + (this.endDate.getMonth() + 1) + '/' + this.endDate.getDate() + '/' + this.endDate.getFullYear() + '</span><br>';
	else
		eventHtml += '<p>';
	
	if (this.title)
		eventHtml += '<a href="events/' + this.lnk + '">' + this.title.toUpperCase() + '</a><br>';
	else 
		eventHtml += '<a href="events/' + this.lnk + '">Error: Missing Event Title</a><br>';
    if (this.disc) 
		eventHtml += (this.disc+'</p>');
	else 
		eventHtml += 'Error: Missing Event Description</p>';
	document.getElementById(container).innerHTML += eventHtml;
};
EventObj.prototype.toString = function() {
	if (this.date) {
		return '' + (this.date.getMonth() + 1) + '/' + this.date.getDate() + '/' + this.date.getFullYear() + '\n' + this.title + '\n' + this.disc;
	}
	else {
		return this.title + '\n' + this.disc;
	}
};