function showTextBox( id )
{
	var box = document.getElementById('otherAudience');
	box.disabled = false;
	box.style.backgroundColor = '#ffffff';
	box.focus();
}

// Check all textboxes
function checkTextBox( tb )
{
	var testStr = /./;

	if( !testStr.test( tb.value ) )
	{
		error += 'ERROR: Please enter ' + tb.name + "!\n";
		document.getElementById('error_' + tb.name).className = 'stop_img';
		tb.style.backgroundColor = '#ffffcc';
	}
	else
	{
		document.getElementById('error_'+tb.name).className = '';
		tb.style.backgroundColor = '#ffffff';
	}
}

// Validate form
var error;
function validate( baseForm )
{
	var testStr = /./;
	error = '';

	// Check text boxes and see if an audience was checked
	audCheck = 0;
	for( x = 0; x < baseForm.elements.length; x++ )
	{
		if( (baseForm.elements[x].type == "text") && 
			(baseForm.elements[x].name.indexOf('other') == -1))
		{
			checkTextBox( baseForm.elements[x] );
		}
		else if( (baseForm.elements[x].type == "checkbox") && 
				(baseForm.elements[x].name == "audience[]") && 
				baseForm.elements[x].checked)
		{
			audCheck = 1;
			break;
		}
	}

	// Date Check
	if( (baseForm.month.selectedIndex == 0) ||
		(baseForm.day.selectedIndex == 0) ||
		(baseForm.year.selectedIndex == 0) )
	{
		error += "ERROR: Invalid Date!\n";
		document.getElementById('error_date').className = 'stop_img';
	}
	else
	{
		var mon = baseForm.month.options[baseForm.month.selectedIndex].value;
		var day = baseForm.day.options[baseForm.day.selectedIndex].value;
		var year = baseForm.year.options[baseForm.year.selectedIndex].value;
		var mydate = new Date( year, mon-1, day );
		var today = new Date();
		
		if( ((mydate.getMonth() + 1) != mon) || (mydate.getDate() != day)  )
		{
			error += "ERROR: Invalid Date!\n";
			document.getElementById('error_date').className = 'stop_img';
		}
		else if( mydate < today )
		{
			error += "ERROR: Date has already passed!\n";
			document.getElementById('error_date').className = 'stop_img';
		}
		else
		{
			document.getElementById('error_date').className = '';
		}
	}
	
	// Hour check
	if( parseInt(baseForm.start.value) >= parseInt(baseForm.end.value) )
	{
		error += "ERROR:  Start hour must be less than end hour!\n";
		document.getElementById('error_hour').className = 'stop_img';
	}
	else
	{
		document.getElementById('error_hour').className = '';
	}

	// Check audience
	if( !audCheck )
	{
		error += "ERROR:  Please select an audience!\n";
		document.getElementById('error_aud').className = 'stop_img';
	}
	else
	{
		document.getElementById('error_aud').className = '';
	}
	
	// Information presented
	if( !testStr.test( baseForm.otherPres.value ) )
	{
		present = document.getElementById('presented[]');
		if( present.selectedIndex < 0 )
		{
			error += "ERROR:  Please select information to be presented!\n";
			document.getElementById('error_present').className = 'stop_img';
		}
		else
		{
			document.getElementById('error_present').className = '';
		}
	}
	else
	{
		document.getElementById('error_present').className = '';
	}
	
	// Any errors?
	if( error )
	{
		alert(error);
		return false;
	}
	
	return true;
}