﻿function Group_ClientValidateGroup(groupName)
{
	if(typeof(ValidatorValidate) != "function")
		return true;
		
	var groupValid = true;
	for(var i=0; i<Page_Validators.length; i++)
	{
		if(Group_IsValidatorInGroup(Page_Validators[i], groupName))
		{
			ValidatorValidate(Page_Validators[i]);
			if(!Page_Validators[i].getAttribute("isvalid"))
				groupValid = false;
		}
	}		

	return groupValid;
}

function Group_IsValidatorInGroup(objValidator, groupName)
{
	var validationGroups = objValidator.getAttribute("validationGroups");
	if(typeof(validationGroups) != "string")
		return false;

	var aGroups = validationGroups.split(";");
	for(var i=0; i<aGroups.length; i++)
	{
		var group = ValidatorTrim(aGroups[i]);
		if(group.length<1)
			continue;
		
		if(group.toLowerCase() == groupName.toLowerCase())
			return true;
	}
	
	return false;
}

function Group_Enable(groupName, enable)
{
	if(typeof(ValidatorValidate) != "function")
		return;
		
	var groupValid = true;
	for(var i=0; i<Page_Validators.length; i++)
		if(Group_IsValidatorInGroup(Page_Validators[i], groupName))
		{
			if(enable)
				Page_Validators[i].enabled = true; // do not show validator
			else
				ValidatorEnable(Page_Validators[i], false); // hide validator if visible
		}
}

function Group_ClientValidate(objID)
{
	if(typeof(ValidatorTrim) != 'function')
		return true;
	
	var obj = document.getElementById(objID);

	if(obj.getAttribute("validationGroups")==null)
		return true;

	var groupsValid = true;
	var aGroups = obj.getAttribute("validationGroups").split(";");
	for(var i=0; i<aGroups.length; i++)
	{
		var groupName = ValidatorTrim(aGroups[i]);
		if(groupName.length<1)
			continue;
			
		if(!Group_ClientValidateGroup(groupName))
			groupsValid = false;
	}
	
	return groupsValid;
}