function dynVerify(form)
{
	if (!form.getAttribute)
	{
		return true; // browser does not support DOM
	}

	var hasError = false, errorMsg = '', elm;
	for (var i = 0; i < form.elements.length; i++)
	{
		elm = form.elements[i];

		if (elm.getAttribute("regex"))
		{
			if (!elm.value.match(elm.getAttribute("regex")))
			{
				hasError = true;

				if (elm.getAttribute("errorText"))
				{
					errorMsg = elm.getAttribute("errorText");
				}
				else if (errorMsg == '')
				{
					errorMsg = "Error in your form, [ " + elm.name + " ] does not validate.";
				}
				break;
			}
		}

		if (elm.getAttribute("required"))
		{
			if (elm.value == "")
			{
				hasError = true;
				errorMsg = "Error: " + elm.name + " is required.";
				break;
			}
		}

		if (elm.getAttribute("confirm"))
		{
			if (typeof(form.elements["confirm_" + elm.name]) == 'undefined' || elm.value != form.elements["confirm_" + elm.name].value)
			{
				hasError = true;
				errorMsg = "Error: " + elm.name + " and confirmation do not match.";
				break;
			}
		}

		if (elm.getAttribute("dyntype") == "email")
		{
			if (!/^.+@.+\..{2,}$|^$/.test(elm.value))
			{
				hasError = true;
				errorMsg = "Please enter a valid email address.";
				break;
			}
		}

		

		
		}

		

	}

	if (hasError)
	{
		alert(errorMsg);
		elm.select();
		return false;
	}

	return true;
}
