function DisplayMessage(strMessage,strMessageID)
{
	if ((strMessageID != null) && document.getElementById(strMessageID))
	{
		document.getElementById(strMessageID).innerHTML = strMessage;
	}
	else
	{
		alert(strMessage);
	}
			
	return void(0);
}

function ValidateFields(objForm,strFieldList,strMessageList,strElementID)
{
	var strErrorMsg = 'PLEASE CORRECT:\n';
	var bolError = false;
	var objLastField = new Object();
	var arrFields = strFieldList.split(',');
	var arrMessages = strMessageList.split(',');

	for (var i=0; i < arrFields.length; i++)
	{
		objField = objForm[arrFields[i]];
			
		if (IsEmptyField(objField))
		{
			bolError = true;
						
			if (strElementID == null)
			{
				strErrorMsg += '\n' + arrMessages[i];
			}
			else
			{
				strErrorMsg += '<br />' + arrMessages[i];
			}
			
			if (objField.length == 1)
			{
				objLastField = objField;
			}
		}
	}
		
	if (bolError)
	{
		DisplayMessage(strErrorMsg,strElementID);
		
		if (objLastField.type != null)
		{
			objLastField.focus();
		}
		
		return false;
	}
	
	return true;
}

function IsEmptyField(objField)
{
	var bolSelected = false;
	var strType = '';
	
	if ((objField.type == null) && (objField.length != null))
	{
		strType = objField[0].type;
	}
	else
	{
		strType = objField.type;
	}

	switch(strType)
	{
		case 'text': case 'password': case 'textarea': case 'hidden':
			return IsEmpty(objField.value);
			
		case 'select-one':
			return ((objField.selectedIndex == null) || IsEmpty(objField.options[objField.selectedIndex].value))
			
			
		case 'select-multiple':
			for (var i = 0; i < objField.options.length; i++)
			{
				if ((objField.options[i].selected) && (!IsEmpty(objField.options[i].value)))
				{
					return false;
				}
			}
			break;
			
		case 'radio': case 'checkbox':
			/* If there is only one radio then the length will be 'null' so just check that one radio button */
			if ((objField.length == null) || (objField.length == 1))
			{
				// Return that the field is empty if it is not checked or the value of the radio is empty 
				return ((!objField.checked) || (IsEmpty(objField.value)));
			}
			else
			{
				for (var i = 0; i < objField.length; i++)
				{
					if ((objField[i].checked) && (!IsEmpty(objField[i].value)))
					{
						return false;
					}
				}
			}
			break;
	}

	return true;
}

function IsEmpty(strText)
{
	var strChar = '';

	if ((strText != null ) && (strText.length != 0))
	{
		for (var i = 0; i < strText.length; i++)
		{
			strChar = strText.charAt(i);
	  
			if ((strChar != ' ') && (strChar != '\t') && (strChar != '\n'))
			{
				return false;
			}
		}
	}
	
	return true;
}