function ControlsValid(ctrlList)
{
	var valid = true;
	var ctrlToValidate;
	var ctrlValidationFunction;
	
	for (var i = 0; i < ctrlList.length; i++)
	{
		if (ctrlList[i] == null) break;

		ctrlList[i].style.visibility = "hidden";
		ctrlList[i].innerHTML = "";
		ctrlToValidate = document.getElementById(ctrlList[i].getAttribute("validate"));
		
		ctrlValidationFunction = ctrlList[i].getAttribute("type");
			
		if (typeof(ctrlValidationFunction) == "string")
		{
			eval("ctrlValidationFunction = " + ctrlValidationFunction + ";");
			if (!ctrlValidationFunction(ctrlToValidate))
			{
				ctrlList[i].style.visibility = "visible";
				ctrlList[i].style.display = "inline";
				ctrlList[i].innerHTML = ctrlList[i].getAttribute("message");
				valid = false;			
			} else {
				ctrlList[i].style.display = "none";
			}
		}
	}
	return valid;
}

function RequiredRadioField(radio)
{
// returns true if one of the radio buttons in the group
// with the name "radioName" is checked, false otherwise
	var oneChecked = false;
	var els = "";
	with(document.forms[0])
	{
		for(var i = 0; i < elements.length; i++)
		{
			if(elements[i].name == radio.name && elements[i].checked == true)
			{
				oneChecked = true;
				break;
			}
		}
	}	
	return oneChecked;
}


function RequiredField(field)
{
	if ( field.type == "radio" || field.type == "checkbox" )
		return RequiredRadioField(field);
		
	if (field.value.length <= 0) 
	{
		// control is invalid
		return false;
	}
	// control is valid
	return true;
}

function ValidationSubmit(ControlValidCallBack, VerifyControlsCallBack)
{
	if (VerifyControlsCallBack != null) 
	{
		var obj = VerifyControlsCallBack();
	}
	else 
	{
		var obj = Controls;
	}
	
	if (ControlsValid(obj))
	{
		if (ControlValidCallBack != null) ControlValidCallBack();
		return true;
	}
	return false;
}
