/**
 * Main Form validation method.
 */
function validGameRegistration( form ) {
	var fieldErrorCount = 0;
	var fieldErrorMessage = "<b>The following errors were found:</b><br>\n";
	var focusSet = false;
	
	if (oldBorderStyle == 'blank') {
		oldBorderStyle = form.elements[0].style.border;
	} else {
		resetBorders(form);
	}
	
	isFocusSet = false;
	
	// Event Title is required.
	if (isEmpty(form.title.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "Event Title is required.<br>\n";
		setFocus(form.title);
	} else {
	}
	
	// Player Min Count is required.
	if (isEmpty(form.playerMinCount.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "Minimum number of players is required.<br>\n";
		setFocus(form.playerMinCount);
	} else {
		fValue = validatePlayerCount(form.playerMinCount.value);
		switch(fValue) {
			case f_NOT_NUMERIC:
				fieldErrorMessage += "Minimum number of players is not numeric.<br />\n";
				break;
		}

		if (fValue != f_OK) {
			setFocus(form.playerMinCount);
			fieldErrorCount++;
		}
	}	
	
	// Player Max Count is required.
	if (isEmpty(form.playerMaxCount.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "Maximum number of players is required.<br>\n";
		setFocus(form.playerMaxCount);
	} else {
		fValue = validatePlayerCount(form.playerMaxCount.value);
		switch(fValue) {
			case f_NOT_NUMERIC:
				fieldErrorMessage += "Maximum number of players is not numeric.<br />\n";
				break;
		}

		if (fValue != f_OK) {
			setFocus(form.playerMaxCount);
			fieldErrorCount++;
		}
	}	

	// Player Min Count must be less than Max Count.
	if (!isEmpty(form.playerMinCount.value) &&
		!isEmpty(form.playerMaxCount.value)) {
		fValue = validatePlayerCountRange(form.playerMinCount.value, form.playerMaxCount.value);
		switch(fValue) {
			case f_MIN_GREATER_THAN_MAX:
				fieldErrorMessage += "Minimum number of player must be less than Maximum number.<br />\n";
				break;
		}
		
		if (fValue != f_OK) {
			setFocus(form.playerMinCount);
			fieldErrorCount++;
		}
	}
	
	// Running length is required, 2 hour increments, no longer than 48 hours.
	if (isEmpty(form.runLength.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "Running length is required.<br>\n";
		setFocus(form.runLength);
	} else {
		fValue = validateRunLength(form.runLength.value);
		switch(fValue) {
			case f_NOT_NUMERIC:
				fieldErrorMessage += "Running Length is not numeric.<br />\n";
				break;
			case f_NOT_TWO_HOURS:
				fieldErrorMessage += "Running Length must be in two hour increments.<br />\n";
				break;
			case f_RANGE_ERROR:
				fieldErrorMessage += "Running Length must be between 2 and 48 hours.<br />\n";
				break;
		}
		if (fValue != f_OK) {
			setFocus(form.runLength);
			fieldErrorCount++;
		}
	}

	
	// Tables are not required, but values must be checked.
	if (isEmpty(form.tablePrefRectangle.value)){
		form.tablePrefRectangle.value = 0;
	} else {
		fValue = validateTableValue(form.tablePrefRectangle.value);
		switch(fValue) {
			case f_NOT_NUMERIC:
				fieldErrorMessage += "Number of rectangle tables is not numeric.<br />\n";
				break;
		}		

		if (fValue != f_OK) {
			setFocus(form.tablePrefRectangle);
			fieldErrorCount++;
		}
	}
/*	
	// Tables are not required, but values must be checked.
	if (isEmpty(form.tablePrefRound.value)){
		form.tablePrefRound.value = 0;
	} else {
		fValue = validateTableValue(form.tablePrefRound.value);
		switch(fValue) {
			case f_NOT_NUMERIC:
				fieldErrorMessage += "Number of round tables is not numeric.<br />\n";
				break;
		}		

		if (fValue != f_OK) {
			setFocus(form.tablePrefRound);
			fieldErrorCount++;
		}
	}	*/
	
	// A Description is required.
	if (isEmpty(form.description.value)) {
		fieldErrorCount++;
		fieldErrorMessage = fieldErrorMessage + "Description is required.<br>\n";
		setFocus(form.description);
	} else {
	}
		
	if ( fieldErrorCount > 0 ) {
		var visElement;
		visElement = document.getElementById("csvDialog");
		visElement.style.display = "block";
		visElement.style.marginBottom = "15px";
				
		visElement = document.getElementById("csvDialogTitle");
		visElement.style.display = "block";

		visElement = document.getElementById("csvDialogWindow");
		visElement.innerHTML = fieldErrorMessage;
		visElement.style.display = "block";

		return false;
	}
	return true;

}

