function isemptyfield(_fieldObj,_msg)
{

	if (typeof trim != 'function') //REQUIRES TRIM.JS FUNCTION
	{
		alert('ISEMPTYFIELD ERROR: missing trim.js');
		return true;
	}

	if (!_fieldObj) //RETURNS TRUE IF IT'S EMPTY
	{
		alert('ISEMPTYFIELD ERROR: _fieldObj not found ' + _fieldObj);
		return true;
	}
	
	var _fieldObjType = _fieldObj.type;
	var _fieldObjName = _fieldObj.name;

	if (!_fieldObjType && _fieldObj[0]) //WORKS FOR RADIO AND CHECKBOX TYPES AND MULTIPLE NAMED INPUT FORMS
	{
		_fieldObjType = _fieldObj[0].type;
		_fieldObjName = _fieldObj[0].name;
	}

	switch(_fieldObjType) //CHECK THE TYPE
	{

		case 'text':
		case 'textarea':
		case 'file':
		case 'hidden':
		case 'password':
			
			if (trim(_fieldObj.value))
				return false
			else
				break;

		case 'checkbox': //MAKE SURE AT LEAST ONE IS CHECKED
		case 'radio':
		
			_fieldObj = document.getElementsByName(_fieldObjName);

			var idx = 0;
			
			for ( idx = 0 ; idx < _fieldObj.length ; idx++ )
			{
				if (_fieldObj[idx].checked) return false;
			}

			break;

		case 'select-one': //ONLY CHECKS THE VALUE
			
			if (_fieldObj[_fieldObj.selectedIndex].value.length > 0)
				return false
			else
				break;

		default: //UNKNOWN FIELD TYPE | NEED TO ADD IT HERE | RETURN FALSE
			
			var fieldObj0name = "";
			if (_fieldObj[0]) fieldObj0name = _fieldObj[0].name;
			
			alert("ISEMPTYFIELD: unknown field type" +
				  "\n_fieldObj.name: " + _fieldObj.name +
				  "\n_fieldObjType: " + _fieldObjType +
				  "\n_fieldObj[0].name: " + fieldObj0name);
			
			return false; //ALLOWS TO CONTINUE EXECUTION

	}


	if (_msg) alert(_msg); //SHOW MSG 1ST BEFORE FOCUS OR FIREFOX WILL ERROR

	//FOCUS IT IF POSSIBLE
	if (_fieldObj.focus)
		_fieldObj.focus()
	else
		if (_fieldObj[0] && _fieldObj[0].focus) _fieldObj[0].focus();

	return true;

}
