// ========== Common functions (begin) ==========
// add new event to hidden form element and sort if a date/time is given (sort works because date is in format yyyy-mm-ddThh:mm:ss)
function addEvent(eventToAdd, eventList)
{
	var dateIndex = 0;		// date is the first item in the array
	var newEventArray = eventToAdd.split(',');
	
	if (eventList.value == '')		// it's an empty list; add new event as first
		eventList.value = eventToAdd;
	else if (newEventArray[dateIndex].length == 0)		// new event doesn't have a date; add to end of list
		eventList.value = eventList.value + ';' + eventToAdd;
	else		// insert new event in date order
	{
		var hasDate = false;
		var eventsArray = eventList.value.split(';');
		var tempArray;
		
		// see if the list has any events with dates
		for (var i = 0; i < eventsArray.length; i++)
		{
			tempArray = eventsArray[i].split(',');
			
			if (tempArray[dateIndex].length > 0)
			{
				hasDate = true;
				break;
			}
		}
		
		if (! hasDate)		// list doesn't have any dates; add new event to end
			eventList.value = eventList.value + ';' + eventToAdd;
		else
		{
			// find the first date in the list bigger than the new date
			var j;		// index of the first bigger date
			for (j = 0; j < eventsArray.length; j++)
			{
				tempArray = eventsArray[j].split(',');
				
				if (tempArray[dateIndex].length > 0)
				{
					if (newEventArray[dateIndex] < tempArray[dateIndex])
						break;
				}
			}
			
			if (j == eventsArray.length)		// got through the list without finding a bigger date; add new event to end
				eventList.value = eventList.value + ';' + eventToAdd;
			else
			{
				// skip all the following events with blank dates
				for (j; j < eventsArray.length; j++)
				{
					tempArray = eventsArray[j].split(',');
					if (tempArray[dateIndex].length > 0)
						break;
				}
				
				if (j == eventsArray.length)		// got through the list without finding another date; add new event to end
					eventList.value = eventList.value + ';' + eventToAdd;
				else
					insertEvent(eventToAdd, j, eventList);
			}
		}
	}
}

function insertEvent(eventToAdd, arrayPosition, eventList)
{
	var events = '';
	var eventsArray = eventList.value.split(';');
	
	// create the new events string
	for (var i = 0; i < arrayPosition; i++)
	{
		if (events != '')
			events = events + ';' + eventsArray[i];
		else
			events = eventsArray[i];
	}
	
	if (events != '')
		events = events + ';' + eventToAdd;
	else
		events = eventToAdd;
	
	for (var i = arrayPosition; i < eventsArray.length; i++)
	{
		if (events != '')
			events = events + ';' + eventsArray[i];
		else
			events = eventsArray[i];
	}
	
	// update the hidden form element
	eventList.value = events;
}

function replaceEvent(eventToAdd, arrayPosition, eventList)
{
	// delete event at arrayPosition
	deleteIt(arrayPosition, eventList);
	
	// add it back in the correct place
	addEvent(eventToAdd, eventList);
}

function deleteEvent(arrayPosition, eventListName)
{
	var confirmEvent;
	
	if (eventListName == 'broadcastList')
		confirmEvent = 'broadcast';
	else		// eventListName == 'fieldEventList' or 'distanceList'
		confirmEvent = 'event';
	
	if (confirm('Are you sure you want to delete this ' + confirmEvent + '?'))
	{
		// delete event
		deleteIt(arrayPosition, eval('document.CalendarAddition.' + eventListName));
		
		// update visible listing
		if (eventListName == 'broadcastList')
			displayBroadcasts();
		else if (eventListName == 'distanceList')
			displayDistances();
		else if (eventListName == 'fieldEventList')
			displayFieldEvents();
	}
}

function deleteIt(arrayPosition, eventList)
{
	var events = '';
	var eventsArray = eventList.value.split(';');
	
	// create the new events string
	for (var i = 0; i < eventsArray.length; i++)
	{
		if (i != arrayPosition)
		{
			if (events != '')
				events = events + ';' + eventsArray[i];
			else
				events = eventsArray[i];
		}
	}
	
	// update the hidden form element
	eventList.value = events;
}

function isDuplicate(eventToAdd, eventList)
{
	var eventsArray = eventList.value.split(';');
	var isDup = false;
	
	for (var i = 0; i < eventsArray.length; i++)
	{
		if (eventToAdd == eventsArray[i])
			isDup = true;
	}
	
	return isDup;
}

function modifyEventPopoff(eventListName, arrayPosition)
{
	var eventArray = eval('document.CalendarAddition.' + eventListName + '.value').split(';');
	
	var queryString = eventListName + '=' + eventArray[arrayPosition] + '&arrayPosition=' + arrayPosition;
	
	popoffChild('modifyEvent.asp?' + queryString, 205, 440);
}
// ========== Common functions (end) ==========
