// ========== Field events (begin) ==========
function verifyFieldEvent()
{
	var errMsg = '';
	
	var fieldEvent = document.CalendarAddition.fieldEvent[document.CalendarAddition.fieldEvent.selectedIndex].value;
	var eventDate = document.CalendarAddition.fieldEventDate.value;
	var eventTime = document.CalendarAddition.fieldEventTime.value;
	var eventTimeOfDay = document.CalendarAddition.fieldEventTimeOfDay[document.CalendarAddition.fieldEventTimeOfDay.selectedIndex].value;
	
	if (fieldEvent == '')
		errMsg += 'Please select an event from the menu.\n';
	
	if (eventTime != '' || eventTimeOfDay != '')		// ignore date-only without time
	{
		if (eventDate == '' || eventTime == '' || eventTimeOfDay == '')
			errMsg += 'Please be sure date and time are both entered, and a.m. or p.m. is selected.\n';
		else if (! isDate(eventDate + ' ' + eventTime + ' ' + eventTimeOfDay))
			errMsg += 'The date/time you entered is invalid.\n';
	}
	
	return errMsg;
}

function addThisFieldEvent()
{
	var errMsg = verifyFieldEvent();
	
	if (errMsg != '')
		alert(errMsg);
	else
	{
		var eventToAdd = getFieldEventString();
		
		if (! isDuplicate(eventToAdd, document.CalendarAddition.fieldEventList))
		{
			addEvent(eventToAdd, document.CalendarAddition.fieldEventList);
			
			// update visible listing
			displayFieldEvents();
			
			// clear the event fields
			clearFieldEventForm();
		}
		else
			alert('This event is already listed on the schedule (see right).');
	}
}

function getFieldEventString()
{
	var eventToAdd = '';
	
	var fieldEvent = document.CalendarAddition.fieldEvent[document.CalendarAddition.fieldEvent.selectedIndex].value;
	var sex = document.CalendarAddition.fieldEventSex[document.CalendarAddition.fieldEventSex.selectedIndex].value;
	var ageGroup = document.CalendarAddition.fieldEventAgeGroup[document.CalendarAddition.fieldEventAgeGroup.selectedIndex].value;
	var disabledDivision = document.CalendarAddition.fieldEventDisabledDivision[document.CalendarAddition.fieldEventDisabledDivision.selectedIndex].value;
	var eventDate = document.CalendarAddition.fieldEventDate.value;
	var eventTime = document.CalendarAddition.fieldEventTime.value;
	var eventTimeOfDay = document.CalendarAddition.fieldEventTimeOfDay[document.CalendarAddition.fieldEventTimeOfDay.selectedIndex].value;
	var round = document.CalendarAddition.fieldEventRound[document.CalendarAddition.fieldEventRound.selectedIndex].value;
	
	if (eventTime != '')		// omit date/time if just the date is indicated (otherwise it'll become midnight on that date)
	{
		// compensate for Y2K
		var temp = new Date(eventDate);
		if (temp.getFullYear() < 2000)
			eventDate = (temp.getMonth() + 1) + '/' + temp.getDate() + '/' + (temp.getFullYear() + 100);
		temp = null;
		
		eventToAdd = getXMLDate(eventDate + ' ' + eventTime + ' ' + eventTimeOfDay);
	}
	
	eventToAdd = eventToAdd + ',' + round + ',' + sex + ',' + ageGroup + ',' + disabledDivision + ',' + fieldEvent;
	
	return eventToAdd;
}

function displayFieldEvents()
{
	var events = '';
	var eventsStr = document.CalendarAddition.fieldEventList.value;
	
	if (eventsStr != '')
	{
		var eventsArray = eventsStr.split(';');
		var temp;
		
		for (var i = 0; i < eventsArray.length; i++)
		{
			temp = eventsArray[i].split(',');
			
			events = events + '<img src="/calendars/update/images/remove.gif" title="delete" onClick="javascript:deleteEvent(' + i + ',\'fieldEventList\');" /> ';
			events = events + '<img src="/calendars/update/images/edit.gif" title="modify" onClick="javascript:modifyEventPopoff(\'fieldEventList\',' + i + ');" /> ';
			if (temp[2].length > 0)
				events = events + getSexGroup(temp[2]);
			else
				events = events + 'Men/Women';
			events = events + ' ' + temp[5];
			if (temp[3].length > 0)
				events = events + ' - ' + temp[3];
			if (temp[4].length > 0)
				events = events + ' - ' + temp[4];
			if (temp[1].length > 0)
				events = events + ' - ' + getRoundName(temp[1]);
			if (temp[0].length > 0)
				events = events + ' - ' + getFormattedDate(temp[0]);
			events = events + '<br />';
		}
	}
	else
		events = '<i>Add field/combined events using the form at left</i>';
	
	document.getElementById('FieldEventsDisplay').innerHTML = events;
}

function clearFieldEventForm()
{
	document.CalendarAddition.fieldEvent.selectedIndex = 0;
	document.CalendarAddition.fieldEventSex.selectedIndex = 0;
	document.CalendarAddition.fieldEventAgeGroup.selectedIndex = 0;
	document.CalendarAddition.fieldEventDisabledDivision.selectedIndex = 0;
	document.CalendarAddition.fieldEventTime.value = '';
	document.CalendarAddition.fieldEventTimeOfDay.selectedIndex = 0;
	document.CalendarAddition.fieldEventRound.selectedIndex = 0;
	// don't clear fieldEventDate -- leave it for data-entry efficiency
}

function updateThisFieldEvent(arrayPosition)
{
	var errMsg = verifyFieldEvent();
	
	if (errMsg != '')
		alert(errMsg);
	else
	{
		var eventToAdd = getFieldEventString();
		replaceEvent(eventToAdd, arrayPosition, opener.document.CalendarAddition.fieldEventList);
		
		// update visible listing
		opener.displayFieldEvents();
		
		window.close();
	}
}
// ========== Field events (end) ==========
