var invalidSubmissionFlag = false;

function hideValidator(elem) {
	if (document.getElementById(elem)) {
		var theElem = document.getElementById(elem);
		theElem.style.display = "none";
		}
	}
	
function ListControl(theControlId,theValidationTagId,theDefaultUnselectedItemIndex) {
	this.ControlId = theControlId;
	this.ValidationTagId = theValidationTagId;
	if(arguments.length == 3)
		this.DefaultUnselectedItemIndex = theDefaultUnselectedItemIndex;
	else
		this.DefaultUnselectedItemIndex = -1;
	this.enabled = true;
}

function IsSelected(theList,unselectedIndex) {
	var result = false;
	switch (theList.tagName) {
	
		case 'INPUT' :
			if (theList.type == "radio") {
				var radioList = document.getElementsByName(theList.name);
				var i=0;
				while ((i<radioList.length) && (!radioList[i].checked)) {
					i++;
					}
				if ((i < radioList.length) && (radioList[i].checked))
					result = true;
				}
			break;
			
		case 'SELECT' :
			if ((theList.selectedIndex != -1) && (theList.selectedIndex != unselectedIndex))
				result = true;
			break;
		}
		
	return result;
}

function preValidateLists() {
	if (invalidSubmissionFlag)
		validateLists();
}

function validateLists() {
	var result = true;
	for(var i=0; i < ListControlsToValidate.length; i++) {
		var listControlInfo = ListControlsToValidate[i];
		var listControl = document.getElementById(listControlInfo.ControlId);
		var validationLabel = document.getElementById(listControlInfo.ValidationTagId);
		var isEnabled = listControlInfo.enabled;
		
		if (isEnabled) {
			if (!IsSelected(listControl,listControlInfo.DefaultUnselectedItemIndex)) {
				if (result)
					result = false;
			
				validationLabel.style.display = "inline";
				}
			else 
				validationLabel.style.display = "none";
			}
		}
		
	return result;
}
		
function doValidation() {
	var itemValidators = ValidatorOnSubmit();
	var listValidators = validateLists();
	if (itemValidators && listValidators)
		return true;
	else {
		var summaryValidator = document.getElementById("summaryValidator")
		summaryValidator.style.visibility = "visible";
		invalidSubmissionFlag = true;
		return false;
		}
}
