function checkrequired(myForm)
{
	var inputChecked = Array();
	var i = 0;

	// input fields
	var inputArr = myForm.elements;
	for(i=0; i<inputArr.length; i++)
	{
		if(alreadyChecked(inputChecked,inputArr[i].name) == false)
		{		
			if((inRequired(inputArr[i]) == true) && ((validRadio(inputArr[i],myForm) == false) || (validSelect(inputArr[i]) == false) || (hasInput(inputArr[i]) == false)))
			{
				alert("A mandatory field has not been filled. Please enter an appropriate value.");
				inputArr[i].focus();
				return false;
			}
			else
			{	
				// valid dont check again
				inputChecked.push(inputArr[i].name);
			}				
		}
	}

	return true;
}

function inRequired(formField)
{
	var isRequired = false;
	if((document.getElementById('RequiredFields')) && (formField.name.length > 0))
	{
		var requiredArr = document.getElementById('RequiredFields').value.split('|');
		for(var i=0; i<requiredArr.length; i++)
		{
			if(trim(requiredArr[i].toLowerCase()) == trim(formField.name.toLowerCase()))
			{
				isRequired = true;
			}
		}
	}
	return isRequired;
}

function hasInput(formField)
{
	if(trim(formField.value) == '')
		return false;
	else
		return true;
}

function trim(strText)
{
	while (strText.substring(0,1) == ' ')
		strText = strText.substring(1, strText.length);
	while (strText.substring(strText.length-1,strText.length) == ' ')
		strText = strText.substring(0, strText.length-1);
	return strText;
}

function validRadio(formField,myForm)
{
	if(formField.type.toLowerCase() == 'radio' || formField.type.toLowerCase() == 'checkbox')
	{
		var newFormField = eval('document.'+myForm.name+'.'+formField.name);
		var chkBoxes = newFormField.length;
		for (var i = 0; i < chkBoxes; i++)
			if (newFormField[i].checked)
				return true;
		return false;
	}
	return true;
}

function validSelect(formField)
{
	if(formField.type.toLowerCase() == 'select')
		if(formField.options[formField.selectedIndex].value == '')
			return false;
	return true;
}

function alreadyChecked(checkedArr,fieldName)
{
	for(var i=0; i < checkedArr.length; i++)
		if(checkedArr[i].toLowerCase() == fieldName.toLowerCase())
			return true;
	return false;
}