function RegisterAppValidators()
{
	if ( "undefined" != typeof(AppPage_Validators) )
	{
		var i, val;
		for (i = 0; i < AppPage_Validators.length; i++) {
			val = AppPage_Validators[i];
			if (typeof(val.evaluationfunction) == "string") {
				eval("val.evaluationfunction = " + val.evaluationfunction + ";");
			}
			if (typeof(val.isvalid) == "string") {
				if (val.isvalid == "False") {
					val.isvalid = false;                                
					Page_IsValid = false;
				} 
				else {
					val.isvalid = true;
				}
			} else {
				val.isvalid = true;
			}
			if (typeof(val.enabled) == "string") {
				val.enabled = (val.enabled != "False");
			}
			if ( "undefined" != typeof(ValidatorHookupControlID) )
			{
				ValidatorHookupControlID(val.controltovalidate, val);
				ValidatorHookupControlID(val.controlhookup, val);
			}
			if ( "undefined" != typeof(Page_Validators) )
			{
				Page_Validators.push(val);
			}
		}
		Page_ValidationActive = true;
	}
}

var g_InputChanged = false;
function valChangedParameters_ClientValidate(source, arguments)
{
	arguments.IsValid = !g_InputChanged;
	ResetInputChangedFlag();
}

function valChangedParametersWithoutReset_ClientValidate(source, arguments)
{
	arguments.IsValid = !g_InputChanged;
}

function SetInputChangedFlag()
{
	g_InputChanged = true;
}

function ResetInputChangedFlag()
{
	g_InputChanged = false;
}
