function validate(fObj)
{
	var aErrors = new Array();
	var firstErrorField = '';
	var stDemoForm;

	if ((fObj.elements['prizeForm']) && (fObj.elements['prizeForm_prizeID'].selectedIndex == 0))
	{
		aErrors[aErrors.length] = 'Please select a prize.';
		if (firstErrorField == '')
		{
			firstErrorField = fObj.elements['prizeForm_prizeID'];
		}
	}

	if (fObj.elements['demoForm'])
	{
		stDemoForm = validateDemoForm(fObj,fObj.elements['demoForm_gender_req'].value,fObj.elements['demoForm_firstname_req'].value,fObj.elements['demoForm_lastname_req'].value,fObj.elements['demoForm_address1_req'].value,fObj.elements['demoForm_city_req'].value,fObj.elements['demoForm_state_req'].value,fObj.elements['demoForm_zipcode_req'].value,fObj.elements['demoForm_password_req'].value);

		if (stDemoForm.aErrors.length)
		{
			for (var i = 0; i < stDemoForm.aErrors.length; ++i)
			{
				aErrors[aErrors.length] = stDemoForm.aErrors[i];
				if (firstErrorField == '')
				{
					firstErrorField = stDemoForm.firstErrorField;
				}
			}
		}
	}

	if (aErrors.length > 0)
	{
		alert('There was a problem with your submission:\n\n- ' + aErrors.join('\n- '));

		if (!firstErrorField.disabled)
		{
			try
			{
				firstErrorField.focus();
				if (firstErrorField.type == 'text')
				{
					firstErrorField.select();
				}
			}
			catch(err)
			{
				// do nothing -- in IE non-visible fields can't receive focus, so just ignore
			}
		}

		return false;
	}

	return true;
}