﻿//Client Side Validators

/*   Iwi Validation and Display Functionality   */

var iwiPanel, iwiDropDown, maoriCheckbox;
function FindIwiElements()
{
	if(typeof(IwiPanelClientID) != "undefined" && (iwiPanel = document.getElementById(IwiPanelClientID)));
	if(typeof(IwiDropDownClientID) != "undefined" && (iwiDropDown = document.getElementById(IwiDropDownClientID)));
	if(typeof(MaoriClientID) != "undefined" && (maoriCheckbox = document.getElementById(MaoriClientID)));
}
function CheckIwis()
{
	FindIwiElements();
	if(maoriCheckbox && iwiPanel)
	{
			iwiPanel.style.display = maoriCheckbox.checked ? "inline" : "none";
	}
}

function ValidateIwi(validator, validatee)
{
	FindIwiElements();
	if(!maoriCheckbox || maoriCheckbox.checked)
	{
		
		return validatee.IsValid = iwiDropDown.selectedIndex > 0;
	}
	return  validatee.IsValid = true;
}

/* End Iwi Validation and Display Functionality */

/* Confirm Email Validator */

function confirmEmailValidator(validator, validatee)
{
	if(typeof(emailClientID) == "undefined" || typeof(emailCheckClientID) == "undefined")
	{
		return;
	}
	emailField = document.getElementById(emailClientID);
	emailCheckField = document.getElementById(emailCheckClientID);
	validatee.IsValid = emailCheckField.value == emailField.value;
}

/* End Confirm Email Validator */

function ValidateCheckboxList(validator, validatee)
{
	try
	{
		// Convert Min and Max Count to ints
		this.minCount = parseInt(this.minCount);
		this.maxCount = parseInt(this.maxCount);
		
		var checkTable = document.getElementById(validator.controltovalidate);
		var Checks = checkTable.getElementsByTagName("input");
		
		var i;
		var numberChecked = 0;
		for(i = 0; i< Checks.length; i++)
		{
			if(Checks[i].checked)
			{
				numberChecked++;
			}
		}
		if(numberChecked < this.minCount || numberChecked > this.maxCount)
		{
			return false;
		}
		return true;
	}
	catch(e)
	{
		return true;
	}
}

function ValidateCheckbox(validator, validatee)
{
	try
	{
		var check = document.getElementById(validator.controltovalidate);
		
		return check.checked;
	}
	catch(e)
	{
		return true;
	}
}

function CheckPTEs()
{
	var yesNoValidator, yearValidator, nameValidator

	var i;
	for(i=0;i< Page_Validators.length;i++) 	
	{
		if(Page_Validators[i].id.indexOf("PreviouslyAttendedPTE_") > -1)
		{
			yesNoValidator = Page_Validators[i];
		}
		if(Page_Validators[i].id.indexOf("PreviouslyAttendedPTEYear_") > -1)
		{
			yearValidator= Page_Validators[i];
		}
		if(Page_Validators[i].id.indexOf("PreviouslyAttendedPTEName_") > -1)
		{
			nameValidator= Page_Validators[i];
		}
	}

	if(typeof(yesNoValidator) == "undefined" || (typeof(yearValidator) == "undefined"  && typeof(yesNoValidator) == "undefined"))
	{
		return;
	}
	
	var yesRadio = document.getElementById(yesNoValidator.controltovalidate).getElementsByTagName("input")[0]; 

	if(yesRadio.checked)
	{
		if(yearValidator)
		{
			yearValidator.parentNode.style.display = "block";
			if(typeof(yesNoValidator.enabled) == "undefined" || yesNoValidator.enabled)
			{
				yearValidator.enabled = true;
				yearValidator.parentNode.className += " mandatory";
			}
		}
		if(nameValidator)
		{
			nameValidator.parentNode.style.display = "block";
			if(typeof(yesNoValidator.enabled) == "undefined" || yesNoValidator.enabled)
			{
				nameValidator.enabled = true;
				nameValidator.parentNode.className += " mandatory";
			}
		}
		
	}
	else
	{
		if(yearValidator)
		{
			yearValidator.enabled = false;
			yearValidator.parentNode.style.display = "none";
			yearValidator.parentNode.className = yearValidator.parentNode.className.replace( " mandatory", "");
		}
		if(nameValidator)
		{
			nameValidator.enabled = false;
			nameValidator.parentNode.style.display = "none";
			nameValidator.parentNode.className = nameValidator.parentNode.className.replace( " mandatory", "");
		}
	}
}

//Disablity Validation / Functionality

var initialDisabilityField, informStaffField, disablityTypeField, disablitityOptionalPanel;
function FindDisabilityElements() {
	if (typeof (initialDisablityFieldClientId) != "undefined" && (initialDisabilityField = document.getElementById(initialDisablityFieldClientId)));
	if (typeof (informStaffFieldClientId) != "undefined" && (informStaffField = document.getElementById(informStaffFieldClientId)));
	if (typeof (disablityTyepeFieldClientId) != "undefined" && (disablityTypeField = document.getElementById(disablityTyepeFieldClientId)));
	if (typeof (disablityPanelClientId) != "undefined" && (disablitityOptionalPanel = document.getElementById(disablityPanelClientId)));
}

function checkDisablityOptions() {
	FindDisabilityElements();
	disablitityOptionalPanel.style.display =
		initialDisabilityField.getElementsByTagName("input")[0].checked
		? "inline"
		: "none";
}

function ValidateDisabilityType(validator, validatee) {
	FindDisabilityElements();
	var valid = !initialDisabilityField.getElementsByTagName("input")[0].checked;
	fields = disablityTypeField.getElementsByTagName("input");
	for (var i = 0; i < fields.length; i++) {
		valid |= fields[i].checked;
	}
	validatee.IsValid = valid;
}
function ValidateInformOfDisability(validator, validatee) {
	FindDisabilityElements();
	validatee.IsValid =
		!initialDisabilityField.getElementsByTagName("input")[0].checked
		||
		informStaffField.getElementsByTagName("input")[0].checked
		||
		informStaffField.getElementsByTagName("input")[1].checked
	;
}

//Is FirstYear Validation / Functionality

var isFirstYearField, tertiaryNameField, isFirstYearOptionsPanel;
function FindFirstYearElements() {
	if (typeof (isFirstYearYesNoFieldClientId) != "undefined" && (isFirstYearField = document.getElementById(isFirstYearYesNoFieldClientId)));
	if (typeof (tertiaryNameClientId) != "undefined" && (tertiaryNameField = document.getElementById(tertiaryNameClientId)));
	if (typeof (isFirstYearOptionsPanelClientId) != "undefined" && (isFirstYearOptionsPanel = document.getElementById(isFirstYearOptionsPanelClientId)));
}

function checkFirstYearOptions() {
	FindFirstYearElements();
	isFirstYearOptionsPanel.style.display =
		isFirstYearField.getElementsByTagName("input")[1].checked
		? "inline"
		: "none";
}

function ValidateTertiaryName(validator, validatee) {
	FindDisabilityElements();
	var valid =
		!isFirstYearField.getElementsByTagName("input")[1].checked
		||
		tertiaryNameField.value.length > 0;
	validatee.IsValid = valid;
}







































