function nnclaimsEnrollmentJSObjectFactory()
	{
	this.createNNClaimsEnrollmentFormUIObject = function()
		{
		return(new nnclaimsEnrollmentFormUI_20090526v1);
		}
		
	this.CreateNNClaimsEnrollmentFormValidationObject = function()
		{
		return(new nnclaimsEnrollmentFormValidation_20090609v1);
		// return(new nnclaimsEnrollmentFormValidation_20090526v1);
		}
	}
	
function nnclaimsEnrollmentFormUI_20090526v1()
	{	
		
		for (var i = 0; i < document.body.getElementsByTagName("input").length; i++)
			{
			var element = document.body.getElementsByTagName("input")[i];
			if (element.id)
				{eval("this." + element.id + " = document.getElementById('" + element.id + "');");}
			}
		for (var i = 0; i < document.body.getElementsByTagName("select").length; i++)
			{
			var element = document.body.getElementsByTagName("select")[i];
			if (element.id)
				{eval("this." + element.id + " = document.getElementById('" + element.id + "');");}
			}
		for (var i = 0; i < document.body.getElementsByTagName("span").length; i++)
			{
			var element = document.body.getElementsByTagName("span")[i];
			if (element.id)
				{eval("this." + element.id + " = document.getElementById('" + element.id + "');");}
			}
		for (var i = 0; i < document.body.getElementsByTagName("td").length; i++)
			{
			var element = document.body.getElementsByTagName("td")[i];
			if (element.id)
				{eval("this." + element.id + " = document.getElementById('" + element.id + "');");}
			}
		for (var i = 0; i < document.body.getElementsByTagName("div").length; i++)
			{
			var element = document.body.getElementsByTagName("div")[i];
			if (element.id)
				{eval("this." + element.id + " = document.getElementById('" + element.id + "');");}
			}
			
		this.ProviderRowsArray = new Array;
		for (var i = 1; i <= 5; i++)
			{
			var NNClaimsEnrollmentProvider = new nnclaimsEnrollmentProvider;
			NNClaimsEnrollmentProvider.getProviderRow(i);
			this.ProviderRowsArray[this.ProviderRowsArray.length] = NNClaimsEnrollmentProvider;
			}
			
		//-------------------------------------------------------------------------------------------------------------------------------
		
		this.MeetsMinimumSystemRequirements = function()
			{return(returnTrueFalseFromYesNoRadioButton(this.radioMeetsMinimumSystemRequirementsYes));}
			
		this.HasAPracticeManagementSystem = function()
			{return(returnTrueFalseFromYesNoRadioButton(this.radioHavePracticeManagementSystemYes));}
			
		//-------------------------------------------------------------------------------------------------------------------------------
		
		this.ClearAllMessages = function()
			{
			for (var i = 0; i < document.body.getElementsByTagName("span").length; i++)
				{
				var element = document.body.getElementsByTagName("span")[i];
				if (element.id) {eval("this." + element.id + ".innerHTML = \"\"");}
				}
			for (var i = 0; i < document.body.getElementsByTagName("div").length; i++)
				{
				var element = document.body.getElementsByTagName("div")[i];
				if (element.id)
					{
					if (element.className == "message")
						{
						var ParentDIV = null;
						//eval("this." + element.id + ".innerHTML = \"\"");
						eval("ParentDIV = this." + element.id);
						for (var j=0; j < ParentDIV.childNodes.length; j++)
							{
							ParentDIV.removeChild(ParentDIV.childNodes[j]);
							}
						}
					if (element.className == "formSection")
						{
						eval("this." + element.id + ".style.backgroundColor = \"\"");
						}
					if (element.className == "formSubSection")
						{
						eval("this." + element.id + ".style.backgroundColor = \"\"");
						}
					}
				}
			}
			
		this.ClearForm = function()
			{
			this.ClearAllMessages();
			
			for (var i = 0; i < document.body.getElementsByTagName("input").length; i++)
				{
				var element = document.body.getElementsByTagName("input")[i];
				if (element.id)
					{
					switch (element.type)
						{
						case "text":
							eval("this." + element.id + ".value = \"\"");
							eval("this." + element.id + ".style.backgroundColor = \"\"");
						case "checkbox":
							eval("this." + element.id + ".checked = false");
						case "radio":
							eval("this." + element.id + ".checked = false");
						}
					}
				}
			for (var i = 0; i < document.body.getElementsByTagName("select").length; i++)
				{
				var element = document.body.getElementsByTagName("select")[i];
				if (element.id)
					{
					element.selectedIndex = 0;
					}
				}
			}
			
		//-------------------------------------------------------------------------------------------------------------------------------
		
		
		function ReturnTrueFalseFromYesNoRadioButton(objRadioButtonElement)
			{
			if (objRadioButtonElement.checked)
				{return(true)}
			else
				{return(false)}
			}
		
		this.getProviderInfoCollection = function()
			{
			return(this.ProviderRowsArray);
			}
			
		this.ClearProviderInfoValues = function()
			{
			var RowFields = null;
			for (var i = 0; i < this.ProviderRowsArray.length; i++)
				{
				RowFields = this.ProviderRowsArray[i].getColumnsAsArray;
				for (var j=0; j < RowFields.length; j++)
					{
					RowFields[j].value = "";
					}
				}
			}
		this.ClearProviderInfoWarnings = function()
			{
			this.spanProviderDemographicsMessage.innerHTML = "";
			var RowFields = null;
			for (var i = 0; i < this.ProviderRowsArray.length; i++)
				{
				RowFields = this.ProviderRowsArray[i].getFieldsArray();
				for (var j=0; j < RowFields.length; j++)
					{
					RowFields[j].style.backgroundColor = "";
					}
				}
			}
		
		this.DisableProviderInfoSection = function()
			{
			this.selectNumberOfProviders.disabled = true;
			for (var i = 0; i < this.ProviderRowsArray.length; i++)
				{
				this.ProviderRowsArray[i].DisableRow();
				}
			}
		this.EnableProviderInfoSection = function()
			{
			this.selectNumberOfProviders.disabled = false;
			for (var i = 0; i < this.ProviderRowsArray.length; i++)
				{
				this.ProviderRowsArray[i].EnableRow();
				}
			}
	}
	
function nnclaimsEnrollmentProvider()
	{
	this.FirstName     = null;
	this.LastName      = null;
	this.ProviderID    = null;
	this.GroupID       = null;
	this.IndividualNPI = null;
	this.GroupNPI      = null;
	
	this.getProviderRow = function(intRowNumber)
		{
		this.FirstName     = document.getElementById("txtProvider" + intRowNumber + "FirstName");
		this.LastName      = document.getElementById("txtProvider" + intRowNumber + "LastName");
		this.ProviderID    = document.getElementById("txtProvider" + intRowNumber + "ID");
		this.GroupID       = document.getElementById("txtProvider" + intRowNumber + "Group1ID");
		this.IndividualNPI = document.getElementById("txtProvider" + intRowNumber + "Idividual1NPI");
		this.GroupNPI      = document.getElementById("txtProvider" + intRowNumber + "Group1NPI");

		this.FirstName.ColumnName     = "First Name";
		this.LastName.ColumnName      = "Last Name";
		this.ProviderID.ColumnName    = "Provider ID#";
		this.GroupID.ColumnName       = "Group ID#";
		this.IndividualNPI.ColumnName = "Individual NPI"; 
		this.GroupNPI.ColumnName      = "Group NPI";
		}
		
	this.getFieldsArray = function()
		{
		var returnArray = new Array();
		returnArray[returnArray.length] = this.FirstName;
		returnArray[returnArray.length] = this.LastName;
		returnArray[returnArray.length] = this.ProviderID;
		returnArray[returnArray.length] = this.GroupID;
		returnArray[returnArray.length] = this.IndividualNPI;
		returnArray[returnArray.length] = this.GroupNPI;
		return(returnArray);
		}
		
	this.RowHasData = function()
		{
		var blnHasData = false;
		for (var i=0; i < this.getFieldsArray().length; i++)
			{
			if (this.getFieldsArray()[i].value.replace(/\s+/g, "") != "")
				{
				blnHasData = true;
				}
			}
		return(blnHasData);
		}
		
	this.RowIsComplete = function()
		{
		var blnIsComplete = true;
		for (var i=0; i<this.getFieldsArray().length; i++)
			{
			if (this.getFieldsArray()[i].value.replace(/\s+/g, "") == "")
				{
				blnIsComplete = false;
				}
			}
		return(blnIsComplete);
		}
		
	this.EnableRow = function()
		{
		for (var i=0; i<this.getFieldsArray().length; i++)
			{
			this.getFieldsArray()[i].disabled = false;
			}
		}
		
	this.DisableRow = function()
		{
		for (var i=0; i<this.getFieldsArray().length; i++)
			{
			this.getFieldsArray()[i].disabled = true;
			}
		}
		
	this.ClearRow = function()
		{
		for (var i=0; i<this.getFieldsArray().length; i++)
			{
			if (this.getFieldsArray()[i])
				{
				this.getFieldsArray()[i].value = "";
				this.getFieldsArray()[i].style.backgroundColor = "";
				}
			}
		}
	}

//-------------------------------------------------------------------------------------------------------------------------------------------------

function nnclaimsEnrollmentFormValidation_20090609v1()
	{
	
	var NNCEnrollmentObjectFactory = new nnclaimsEnrollmentJSObjectFactory;
	var NNCEnrollmentUI = NNCEnrollmentObjectFactory.createNNClaimsEnrollmentFormUIObject()
	var strErrorColor = "#D6E1C7";
	
	this.TestMessageFields = function()
		{
		NNCEnrollmentUI.spanMinimumSystemRequirementsMessage.innerHTML    = "spanMinimumSystemRequirementsMessage";
		NNCEnrollmentUI.spanHavePracticeManagementSystemMessage.innerHTML = "spanHavePracticeManagementSystemMessage";
		NNCEnrollmentUI.spanPracticeManagementSystemNameMessage.innerHTML = "spanPracticeManagementSystemNameMessage";
		NNCEnrollmentUI.spanPMSCanCreateFileMessage.innerHTML             = "spanPMSCanCreateFileMessage";
		NNCEnrollmentUI.spanBillingClaimTypeMessage.innerHTML             = "spanBillingClaimTypeMessage";
		NNCEnrollmentUI.spanPrimaryClaimsPayorMessage.innerHTML           = "spanPrimaryClaimsPayorMessage";
		
		var strOfficeAndContactInfoMessages = "";
		strOfficeAndContactInfoMessages = strOfficeAndContactInfoMessages + "spanOfficeNameMessage<br/>";
		strOfficeAndContactInfoMessages = strOfficeAndContactInfoMessages + "spanTaxIDMessage<br/>";
		strOfficeAndContactInfoMessages = strOfficeAndContactInfoMessages + "There has been a problem with your Address!<br/>";
		NNCEnrollmentUI.divOfficeAndContactInformationMessage.innerHTML   = strOfficeAndContactInfoMessages;
		
		NNCEnrollmentUI.spanBestContactDayMessage.innerHTML = "spanBestContactDayMessage";
		NNCEnrollmentUI.spanBestContactTimeMessage.innerHTML = "spanBestContactTimeMessage";
		NNCEnrollmentUI.spanNumberOfProvidersMessage.innerHTML = "spanNumberOfProvidersMessage";
		}
		
	this.ValidateForm = function()
		{
		var blnContinueValidation = this.ValidateMinimumSystemRequirements();
		
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidatePracticeManagementSystem();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateBillingClaimType();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidatePrimaryPayer();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateServiceSelection();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidatePaperClaimsOption();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateOfficeAndContactInformation();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateProviderCount();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateProviderInformation();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateTermsAndConditions();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateUserAgreement();
			}
		return(blnContinueValidation);
		}
	
	this.ValidateMinimumSystemRequirements = function()
		{
		var blnYesChecked = NNCEnrollmentUI.radioMeetsMinimumSystemRequirementsYes.checked;
		var blnNoChecked  = NNCEnrollmentUI.radioMeetsMinimumSystemRequirementsNo.checked;
		var blnValueSelected = (blnYesChecked || blnNoChecked);
		
		NNCEnrollmentUI.divMinimumSystemRequirementsVerification.style.backgroundColor = "";
		
		NNCEnrollmentUI.spanMinimumSystemRequirementsMessage.innerHTML = "";
		if (blnValueSelected)
			{
			if (blnNoChecked)
				{
				var strMessage = "<br/>&nbsp;We apologize, but your computer does not meet the minimum system requirements<br/>&nbsp;to utilize NaviNet Claims. Please enroll again after upgrading your computer.";
				NNCEnrollmentUI.spanMinimumSystemRequirementsMessage.innerHTML = strMessage;
				NNCEnrollmentUI.divMinimumSystemRequirementsVerification.style.backgroundColor = strErrorColor;
				window.location.hash="divMinimumSystemRequirements";
				return(false);
				}
			else
				{
				return(true);
				}
			}
		else
			{
			var strMessage = "<-- Please select 'Yes' or 'No'";
			NNCEnrollmentUI.spanMinimumSystemRequirementsMessage.innerHTML = strMessage;
			NNCEnrollmentUI.divMinimumSystemRequirementsVerification.style.backgroundColor = strErrorColor;
			window.location.hash="divMinimumSystemRequirements";
			return(false);
			}
		
		}
		
	this.ValidatePracticeManagementSystem = function()
		{
		var blnHavePMSYes        = NNCEnrollmentUI.radioHavePracticeManagementSystemYes.checked;
		var blnHavePMSNo         = NNCEnrollmentUI.radioHavePracticeManagementSystemNo.checked;
		var blnPMSSelected       = NNCEnrollmentUI.selectPracticeManagementSystem.selectedIndex > 0 ? true : false;
		var blnCanCreateFileYes  = NNCEnrollmentUI.radioPMSCanCreateFileYes.checked;
		var blnCanCreateFileNo   = NNCEnrollmentUI.radioPMSCanCreateFileNo.checked;
		
		var blnHavePMSValueSelected       = (blnHavePMSYes || blnHavePMSNo);
		var blnCanCreateFileValueSelected = (blnCanCreateFileYes || blnCanCreateFileNo);
		
		NNCEnrollmentUI.divPracticeManagementSystem.style.backgroundColor = "";
		NNCEnrollmentUI.divPracticeManagementSystemName.style.backgroundColor = "";
		NNCEnrollmentUI.divPracticeManagementSystemFile.style.backgroundColor = "";
		
		NNCEnrollmentUI.spanPracticeManagementSystemMessage.innerHTML = "";
		NNCEnrollmentUI.spanPracticeManagementSystemNameMessage.innerHTML = "";
		NNCEnrollmentUI.spanPMSCanCreateFileMessage.innerHTML = "";
		
		if (blnHavePMSValueSelected)
			{
			if (blnHavePMSYes)
				{
				if (blnPMSSelected)
					{
					if (blnCanCreateFileValueSelected)
						{
						// They have a PMS, they've selected which one and have indicated whether it can produce the file.
						return(true);
						}
					else
						{
						var strMessage = "<-- Please select 'Yes' or 'No'";
						NNCEnrollmentUI.spanPMSCanCreateFileMessage.innerHTML = strMessage;
						NNCEnrollmentUI.divPracticeManagementSystemFile.style.backgroundColor = strErrorColor;
						window.location.hash="divPracticeManagementSystemFile";
						return(false);
						}
					}
				else
					{
					var strMessage = "<-- Please select the name of your Practice Management System.";
					NNCEnrollmentUI.spanPracticeManagementSystemNameMessage.innerHTML = strMessage;
					NNCEnrollmentUI.divPracticeManagementSystemName.style.backgroundColor = strErrorColor;
					window.location.hash="divPracticeManagementSystemName";
					return(false);
					}
				}
			else
				{
				// if they don't have a PMS, the section has been filled out correctly.  Move on.
				return(true);
				}
			}
		else
			{
			var strMessage = "<-- Please select 'Yes' or 'No'";
			NNCEnrollmentUI.spanPracticeManagementSystemMessage.innerHTML = strMessage;
			NNCEnrollmentUI.divPracticeManagementSystem.style.backgroundColor = strErrorColor;
			window.location.hash="divPracticeManagementSystem";
			return(false);
			}
		
		}
	
	this.ValidateBillingClaimType = function()
		{
		var blnProfessional = NNCEnrollmentUI.radioBillingClaimTypeProfessional.checked;
		var blnInstitutional = NNCEnrollmentUI.radioBillingClaimTypeInstitutional.checked;
		var blnValueSelected = (blnProfessional || blnInstitutional);
		
		NNCEnrollmentUI.divBillingClaimType.style.backgroundColor = "";
		NNCEnrollmentUI.spanBillingClaimTypeMessage.innerHTML = "";
		
		if (blnValueSelected)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divBillingClaimType.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanBillingClaimTypeMessage.innerHTML = "<-- Please select 'Professional' or 'Institutional'";
			window.location.hash="divBillingClaimType";
			return(false);
			}
		}
		
	this.ValidatePrimaryPayer = function()
		{
		var blnPrimaryPayerSelected = NNCEnrollmentUI.selectPrimaryClaimsPayor.selectedIndex > 0 ? true : false;
		
		NNCEnrollmentUI.divPrimaryInsuranceCompany.style.backgroundColor = "";
		NNCEnrollmentUI.spanPrimaryClaimsPayorMessage.innerHTML = "";
		
		if (blnPrimaryPayerSelected)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divPrimaryInsuranceCompany.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanPrimaryClaimsPayorMessage.innerHTML = "<-- Please select a Primary Claims Payer";
			window.location.hash="divPrimaryInsuranceCompany";
			return(false);
			}
		
		}
	
	this.ValidateServiceSelection = function()
		{
		var blnAllPayers       = NNCEnrollmentUI.radioSelectedServiceAllPayers.checked;
		var blnSponseredPayers = NNCEnrollmentUI.radioSelectedServiceSponsoredPayers.checked;
		var blnValueSelected = (blnAllPayers || blnSponseredPayers);
		
		NNCEnrollmentUI.divServiceOffering.style.backgroundColor = "";
		NNCEnrollmentUI.spanServiceOfferingMessage.innerHTML = "";
		
		if (blnValueSelected)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divServiceOffering.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanServiceOfferingMessage.innerHTML = "Please select an option.";
			window.location.hash="divServiceOffering";
			return(false);
			}
		}
		
	this.ValidatePaperClaimsOption = function()
		{
		var blnAllPayers      = NNCEnrollmentUI.radioSelectedServiceAllPayers.checked;
		var blnPaperClaimsYes = NNCEnrollmentUI.radioPaperClaimsYes.checked;
		var blnPaperClaimsNo  = NNCEnrollmentUI.radioPaperClaimsNo.checked;
		var blnValueSelected  = (blnPaperClaimsYes || blnPaperClaimsNo);
		
		NNCEnrollmentUI.divPaperClaimsOption.style.backgroundColor = "";
		NNCEnrollmentUI.spanPaperClaimsOptionMessage.innerHTML = "";
		
		if (blnAllPayers)
			{
			if (blnValueSelected)
				{
				return(true);
				}
			else
				{
				NNCEnrollmentUI.divPaperClaimsOption.style.backgroundColor = strErrorColor;
				NNCEnrollmentUI.spanPaperClaimsOptionMessage.innerHTML = "<-- Please select 'Yes' or 'No'";
				window.location.hash="divPaperClaimsOption";
				return(false);
				}
			}
		else
			{
			return(true);
			}
		}
		
	this.ValidateOfficeAndContactInformation = function()
		{
		NNCEnrollmentUI.divOfficeAndContactInformation.style.backgroundColor = "";
		
		NNCEnrollmentUI.divOfficeDemographics.style.backgroundColor = "";
		NNCEnrollmentUI.divOfficeAndContactInformationMessage.innerHTML = "";
		
		var blnOfficeName = TextFieldHasValue(NNCEnrollmentUI.txtOfficeName);
		var blnTaxID      = TextFieldHasValue(NNCEnrollmentUI.txtTaxID);
		var blnAddress1   = TextFieldHasValue(NNCEnrollmentUI.txtAddress1);
		var blnAddress2   = TextFieldHasValue(NNCEnrollmentUI.txtAddress2);
		var blnCity       = TextFieldHasValue(NNCEnrollmentUI.txtCity);
		var blnState      = NNCEnrollmentUI.selectState.selectedIndex > 0 ? true : false;
		var blnZipCode    = TextFieldHasValue(NNCEnrollmentUI.txtZipCode);
		var blnSalutation = NNCEnrollmentUI.selectSalutation.selectedIndex > 0 ? true : false;
		var blnFirstName  = TextFieldHasValue(NNCEnrollmentUI.txtFirstName);
		var blnLastName   = TextFieldHasValue(NNCEnrollmentUI.txtLastName);
		var blnPhone      = TextFieldHasValue(NNCEnrollmentUI.txtPhone);
		var blnEmail      = TextFieldHasValue(NNCEnrollmentUI.txtEmail);
		
		NNCEnrollmentUI.divContactDays.style.backgroundColor = "";
		NNCEnrollmentUI.spanContactDaysMessage.innerHTML = "";
		var blnMonday    = NNCEnrollmentUI.checkBestContactDayMon.checked;
		var blnTuesday   = NNCEnrollmentUI.checkBestContactDayTue.checked;
		var blnWednesday = NNCEnrollmentUI.checkBestContactDayWed.checked;
		var blnThursday  = NNCEnrollmentUI.checkBestContactDayThu.checked;
		var blnFriday    = NNCEnrollmentUI.checkBestContactDayFri.checked;
		var blnContactDaysSelected = (blnMonday || blnTuesday || blnWednesday || blnThursday || blnFriday);
		
		NNCEnrollmentUI.divContactTime.style.backgroundColor = "";
		NNCEnrollmentUI.spanBestContactTimeMessage.innerHTML = "";
		blnContactTimeSelected = NNCEnrollmentUI.selectBestContactTime.selectedIndex > 0 ? true : false;
		
		// Begin Validation Logic
		
		var strMessage = "";
		var OfficeFields = new Array();
		if (!blnOfficeName) {OfficeFields[OfficeFields.length] = "Office Name"};
		if (!blnTaxID)      {OfficeFields[OfficeFields.length] = "Tax ID"};
		if (!blnAddress1)   {OfficeFields[OfficeFields.length] = "Address 1"};
		if (!blnCity)       {OfficeFields[OfficeFields.length] = "City"};
		if (!blnState)      {OfficeFields[OfficeFields.length] = "State"};
		if (!blnZipCode)    {OfficeFields[OfficeFields.length] = "Zip Code"};
		
		var ContactFields = new Array();
		if (!blnFirstName) {ContactFields[ContactFields.length] = "First Name"}
		if (!blnLastName)  {ContactFields[ContactFields.length] = "Last Name"}
		if (!blnPhone)     {ContactFields[ContactFields.length] = "Phone"}
		if (!blnEmail)     {ContactFields[ContactFields.length] = "Email"}
		
		if (OfficeFields.length > 0 || ContactFields.length > 0)
			{
			if (OfficeFields.length + ContactFields.length == 1)
				{
				strMessage = "The following field is required: ";
				}
			else
				{
				strMessage = "The following fields are required:<br/>";
				}
			if (OfficeFields.length > 0)
				{
				var strOfficeMessage = "'" + OfficeFields.toString().replace(/,/g, "', '") + "'";
				strMessage = strMessage + strOfficeMessage;
				}
			if (ContactFields.length > 0)
				{
				var strContactMessage = "'" + ContactFields.toString().replace(/,/g, "', '") + "'";
				if (OfficeFields.length > 0)
					{
					strMessage = strMessage + "<br/>";
					}
				strMessage = strMessage + strContactMessage;
				}
			NNCEnrollmentUI.divOfficeDemographics.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.divOfficeAndContactInformationMessage.innerHTML = strMessage;
			window.location.hash="divOfficeDemographics";
			return(false);
			}
		else
			{
			if (blnContactDaysSelected)
				{
				if (blnContactTimeSelected)
					{
					return(true);
					}
				else
					{
					NNCEnrollmentUI.divContactTime.style.backgroundColor = strErrorColor;
					NNCEnrollmentUI.spanBestContactTimeMessage.innerHTML = "<-- Please select a time that's good for you.";
					return(false);
					}
				}
			else
				{
				NNCEnrollmentUI.divContactDays.style.backgroundColor = strErrorColor;
				NNCEnrollmentUI.spanContactDaysMessage.innerHTML = "<-- Please select a day or days that are good for you.";
				return(false);
				}
			}
		
		}
		
	this.ValidateProviderCount = function()
		{
		NNCEnrollmentUI.divProviderInformation.style.backgroundColor = "";
		NNCEnrollmentUI.divProviderCount.style.backgroundColor = "";
		NNCEnrollmentUI.divProviderDemographics.style.backgroundColor = "";
		
		var blnNumberOfProvidersSelected = NNCEnrollmentUI.selectNumberOfProviders.selectedIndex > 0 ? true : false;
		
		NNCEnrollmentUI.spanNumberOfProvidersMessage.innerHTML = "";
		
		if (blnNumberOfProvidersSelected)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divProviderCount.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanNumberOfProvidersMessage.innerHTML = "<-- Please select a value.";
			window.location.hash="divProviderCount";
			return(false);
			}
		}
		
	this.ValidateProviderInformation = function()
		{
		var Providers = NNCEnrollmentUI.ProviderRowsArray;
		
		// Check to ensure that rows containing any data are complete.
		var blnCompletenessOfRowsValid = false;
		
		NNCEnrollmentUI.ClearProviderInfoWarnings();
		
		var Columns = Providers[0].getFieldsArray();
		var aMessageColumns = new Array();
		
		for (var i = 0; i < Columns.length; i++)
			{
			aMessageColumns[i] = new Object;
			aMessageColumns[i].name = Columns[i].ColumnName;
			aMessageColumns[i].flag = false;
			}
			
		for (var i = 0; i < Providers.length; i++)
			{
			var Provider = Providers[i];
			var Fields   = Provider.getFieldsArray();
			
			var blnRowContainsAnEntry = false;
			for (var j=0; j < Fields.length; j++)
				{
				blnRowContainsAnEntry = (blnRowContainsAnEntry || TextFieldHasValue(Fields[j]));
				}
				
			if (blnRowContainsAnEntry)
				{
				for (var j=0; j < Fields.length; j++)
					{
					if(!TextFieldHasValue(Fields[j]))
						{
						Fields[j].style.backgroundColor = "#FFFF9C";
						aMessageColumns[j].flag = true;
						}
					}
				}
			}
			
		var strMessage = "";
		
		for (var i = 0; i < aMessageColumns.length; i++)
			{
			if (aMessageColumns[i].flag && strMessage.length > 0)
				{
				strMessage = strMessage + ", "
				}
			if (aMessageColumns[i].flag)
				{
				strMessage = strMessage + "'" + aMessageColumns[i].name + "'";
				}
			}
		if (strMessage.length > 0)
			{
			strMessage = "The following fields are all required: " + strMessage + "";
			NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML = strMessage;
			NNCEnrollmentUI.divProviderDemographics.style.backgroundColor = strErrorColor;
			}
		else
			{
			blnCompletenessOfRowsValid = true;
			}
		
		var blnNumberOfProvidersValid = false;
		var intNOPIndex = NNCEnrollmentUI.selectNumberOfProviders.selectedIndex;
		var vNumberOfProviders = NNCEnrollmentUI.selectNumberOfProviders.options[intNOPIndex].value;
		var Providers = NNCEnrollmentUI.ProviderRowsArray;
		var strMessage = "";
		
		var intRowsWithDataCounter = 0;
		var intRowsCompleteCounter = 0;
		
		for (var i=0; i < Providers.length; i++)
			{
			if (Providers[i].RowHasData())
				{
				intRowsWithDataCounter++;
				}
			if (Providers[i].RowIsComplete())
				{
				intRowsCompleteCounter++;
				}
			}
			
		var intWorkingNOP = vNumberOfProviders > 5 ? 5 : vNumberOfProviders;
		
		if (intRowsWithDataCounter < intWorkingNOP)
			{
			if (intRowsWithDataCounter != 0)
				{
				if ((intWorkingNOP - intRowsWithDataCounter) == 1)
					{
					strMessage = "Please enter information about " + (intWorkingNOP - intRowsWithDataCounter) + " more provider.";
					}
				else
					{
					strMessage = "Please enter information about " + (intWorkingNOP - intRowsWithDataCounter) + " more providers.";
					}
				if (NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML != "")
					{
					NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML += "<br/>";
					}
				NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML += strMessage;
				NNCEnrollmentUI.divProviderDemographics.style.backgroundColor = strErrorColor;
				}
			else
				{
				if (intWorkingNOP == 1)
					{
					strMessage = "Please enter information about your provider.";
					}
				if (vNumberOfProviders > 1 && vNumberOfProviders < 6)
					{
					strMessage = "Please enter information about your providers.";
					}
				if (vNumberOfProviders == 6)
					{
					strMessage = "Please enter information about 5 of your providers.";
					}
				if (NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML != "")
					{
					NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML += "<br/>";
					}
				NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML += strMessage;
				NNCEnrollmentUI.divProviderDemographics.style.backgroundColor = strErrorColor;
				}
			}
		else
			{
			blnNumberOfProvidersValid = true;
			}
		
		return(blnNumberOfProvidersValid && blnCompletenessOfRowsValid);
			
		}
		
	this.ValidateTermsAndConditions = function()
		{
		var blnAcceptsTermsAndConditions = NNCEnrollmentUI.checkAcceptsTermsAndConditions.checked;
		
		NNCEnrollmentUI.divTermsAndConditions.style.backgroundColor = "";
		NNCEnrollmentUI.spanTermsAndConditionsMessage.innerHTML = "";
		
		if (blnAcceptsTermsAndConditions)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divTermsAndConditions.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanTermsAndConditionsMessage.innerHTML = "<-- Please review the Terms and Conditions.";
			window.location.hash="divTermsAndConditions";
			return(false);
			}
		}
		
	this.ValidateUserAgreement = function()
		{
		var blnAcceptsUserAgreement = NNCEnrollmentUI.checkAcceptsUserAgreement.checked;
		
		NNCEnrollmentUI.divUserAgreement.style.backgroundColor = "";
		NNCEnrollmentUI.spanUserAgreementMessage.innerHTML = "";
		
		if (blnAcceptsUserAgreement)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divUserAgreement.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanUserAgreementMessage.innerHTML = "<-- Please review the User Agreement before you submit.";
			window.location.hash="divUserAgreement";
			return(false);
			}
		}
		
	function TextFieldHasValue(objTextInputElement)
		{
		var blnHasValue = (objTextInputElement.value.replace(/\s+/g, "") != "");
		return(blnHasValue);
		}
	}

//-------------------------------------------------------------------------------------------------------------------------------------------------

// Superceded by nnclaimsEnrollmentFormValidation_20090609v1()
// Necessitated by a change in Provider Validation
function nnclaimsEnrollmentFormValidation_20090526v1()
	{
	
	var NNCEnrollmentObjectFactory = new nnclaimsEnrollmentJSObjectFactory;
	var NNCEnrollmentUI = NNCEnrollmentObjectFactory.createNNClaimsEnrollmentFormUIObject()
	var strErrorColor = "#D6E1C7";
	
	this.TestMessageFields = function()
		{
		NNCEnrollmentUI.spanMinimumSystemRequirementsMessage.innerHTML    = "spanMinimumSystemRequirementsMessage";
		NNCEnrollmentUI.spanHavePracticeManagementSystemMessage.innerHTML = "spanHavePracticeManagementSystemMessage";
		NNCEnrollmentUI.spanPracticeManagementSystemNameMessage.innerHTML = "spanPracticeManagementSystemNameMessage";
		NNCEnrollmentUI.spanPMSCanCreateFileMessage.innerHTML             = "spanPMSCanCreateFileMessage";
		NNCEnrollmentUI.spanBillingClaimTypeMessage.innerHTML             = "spanBillingClaimTypeMessage";
		NNCEnrollmentUI.spanPrimaryClaimsPayorMessage.innerHTML           = "spanPrimaryClaimsPayorMessage";
		
		var strOfficeAndContactInfoMessages = "";
		strOfficeAndContactInfoMessages = strOfficeAndContactInfoMessages + "spanOfficeNameMessage<br/>";
		strOfficeAndContactInfoMessages = strOfficeAndContactInfoMessages + "spanTaxIDMessage<br/>";
		strOfficeAndContactInfoMessages = strOfficeAndContactInfoMessages + "There has been a problem with your Address!<br/>";
		NNCEnrollmentUI.divOfficeAndContactInformationMessage.innerHTML   = strOfficeAndContactInfoMessages;
		
		NNCEnrollmentUI.spanBestContactDayMessage.innerHTML = "spanBestContactDayMessage";
		NNCEnrollmentUI.spanBestContactTimeMessage.innerHTML = "spanBestContactTimeMessage";
		NNCEnrollmentUI.spanNumberOfProvidersMessage.innerHTML = "spanNumberOfProvidersMessage";
		}
		
	this.ValidateForm = function()
		{
		var blnContinueValidation = this.ValidateMinimumSystemRequirements();
		
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidatePracticeManagementSystem();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateBillingClaimType();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidatePrimaryPayer();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateServiceSelection();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateOfficeAndContactInformation();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateProviderCount();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateProviderInformation();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateTermsAndConditions();
			}
		if (blnContinueValidation)
			{
			blnContinueValidation = this.ValidateUserAgreement();
			}
		return(blnContinueValidation);
		}
	
	this.ValidateMinimumSystemRequirements = function()
		{
		var blnYesChecked = NNCEnrollmentUI.radioMeetsMinimumSystemRequirementsYes.checked;
		var blnNoChecked  = NNCEnrollmentUI.radioMeetsMinimumSystemRequirementsNo.checked;
		var blnValueSelected = (blnYesChecked || blnNoChecked);
		
		NNCEnrollmentUI.divMinimumSystemRequirementsVerification.style.backgroundColor = "";
		
		NNCEnrollmentUI.spanMinimumSystemRequirementsMessage.innerHTML = "";
		if (blnValueSelected)
			{
			if (blnNoChecked)
				{
				var strMessage = "<br/>&nbsp;We apologize, but your computer does not meet the minimum system requirements<br/>&nbsp;to utilize NaviNet Claims. Please enroll again after upgrading your computer.";
				NNCEnrollmentUI.spanMinimumSystemRequirementsMessage.innerHTML = strMessage;
				NNCEnrollmentUI.divMinimumSystemRequirementsVerification.style.backgroundColor = strErrorColor;
				window.location.hash="divMinimumSystemRequirements";
				return(false);
				}
			else
				{
				return(true);
				}
			}
		else
			{
			var strMessage = "<-- Please select 'Yes' or 'No'";
			NNCEnrollmentUI.spanMinimumSystemRequirementsMessage.innerHTML = strMessage;
			NNCEnrollmentUI.divMinimumSystemRequirementsVerification.style.backgroundColor = strErrorColor;
			window.location.hash="divMinimumSystemRequirements";
			return(false);
			}
		
		}
		
	this.ValidatePracticeManagementSystem = function()
		{
		var blnHavePMSYes        = NNCEnrollmentUI.radioHavePracticeManagementSystemYes.checked;
		var blnHavePMSNo         = NNCEnrollmentUI.radioHavePracticeManagementSystemNo.checked;
		var blnPMSSelected       = NNCEnrollmentUI.selectPracticeManagementSystem.selectedIndex > 0 ? true : false;
		var blnCanCreateFileYes  = NNCEnrollmentUI.radioPMSCanCreateFileYes.checked;
		var blnCanCreateFileNo   = NNCEnrollmentUI.radioPMSCanCreateFileNo.checked;
		
		var blnHavePMSValueSelected       = (blnHavePMSYes || blnHavePMSNo);
		var blnCanCreateFileValueSelected = (blnCanCreateFileYes || blnCanCreateFileNo);
		
		NNCEnrollmentUI.divPracticeManagementSystem.style.backgroundColor = "";
		NNCEnrollmentUI.divPracticeManagementSystemName.style.backgroundColor = "";
		NNCEnrollmentUI.divPracticeManagementSystemFile.style.backgroundColor = "";
		
		NNCEnrollmentUI.spanPracticeManagementSystemMessage.innerHTML = "";
		NNCEnrollmentUI.spanPracticeManagementSystemNameMessage.innerHTML = "";
		NNCEnrollmentUI.spanPMSCanCreateFileMessage.innerHTML = "";
		
		if (blnHavePMSValueSelected)
			{
			if (blnHavePMSYes)
				{
				if (blnPMSSelected)
					{
					if (blnCanCreateFileValueSelected)
						{
						// They have a PMS, they've selected which one and have indicated whether it can produce the file.
						return(true);
						}
					else
						{
						var strMessage = "<-- Please select 'Yes' or 'No'";
						NNCEnrollmentUI.spanPMSCanCreateFileMessage.innerHTML = strMessage;
						NNCEnrollmentUI.divPracticeManagementSystemFile.style.backgroundColor = strErrorColor;
						window.location.hash="divPracticeManagementSystemFile";
						return(false);
						}
					}
				else
					{
					var strMessage = "<-- Please select the name of your Practice Management System.";
					NNCEnrollmentUI.spanPracticeManagementSystemNameMessage.innerHTML = strMessage;
					NNCEnrollmentUI.divPracticeManagementSystemName.style.backgroundColor = strErrorColor;
					window.location.hash="divPracticeManagementSystemName";
					return(false);
					}
				}
			else
				{
				// if they don't have a PMS, the section has been filled out correctly.  Move on.
				return(true);
				}
			}
		else
			{
			var strMessage = "<-- Please select 'Yes' or 'No'";
			NNCEnrollmentUI.spanPracticeManagementSystemMessage.innerHTML = strMessage;
			NNCEnrollmentUI.divPracticeManagementSystem.style.backgroundColor = strErrorColor;
			window.location.hash="divPracticeManagementSystem";
			return(false);
			}
		
		}
	
	this.ValidateBillingClaimType = function()
		{
		var blnProfessional = NNCEnrollmentUI.radioBillingClaimTypeProfessional.checked;
		var blnInstitutional = NNCEnrollmentUI.radioBillingClaimTypeInstitutional.checked;
		var blnValueSelected = (blnProfessional || blnInstitutional);
		
		NNCEnrollmentUI.divBillingClaimType.style.backgroundColor = "";
		NNCEnrollmentUI.spanBillingClaimTypeMessage.innerHTML = "";
		
		if (blnValueSelected)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divBillingClaimType.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanBillingClaimTypeMessage.innerHTML = "<-- Please select 'Professional' or 'Institutional'";
			window.location.hash="divBillingClaimType";
			return(false);
			}
		}
		
	this.ValidatePrimaryPayer = function()
		{
		var blnPrimaryPayerSelected = NNCEnrollmentUI.selectPrimaryClaimsPayor.selectedIndex > 0 ? true : false;
		
		NNCEnrollmentUI.divPrimaryInsuranceCompany.style.backgroundColor = "";
		NNCEnrollmentUI.spanPrimaryClaimsPayorMessage.innerHTML = "";
		
		if (blnPrimaryPayerSelected)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divPrimaryInsuranceCompany.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanPrimaryClaimsPayorMessage.innerHTML = "<-- Please select a Primary Claims Payer";
			window.location.hash="divPrimaryInsuranceCompany";
			return(false);
			}
		
		}
	
	this.ValidateServiceSelection = function()
		{
		var blnAllPayers       = NNCEnrollmentUI.radioSelectedServiceAllPayers.checked;
		var blnSponseredPayers = NNCEnrollmentUI.radioSelectedServiceSponsoredPayers.checked;
		var blnValueSelected = (blnAllPayers || blnSponseredPayers);
		
		NNCEnrollmentUI.divServiceOffering.style.backgroundColor = "";
		NNCEnrollmentUI.spanServiceOfferingMessage.innerHTML = "";
		
		if (blnValueSelected)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divServiceOffering.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanServiceOfferingMessage.innerHTML = "Please select an option.";
			window.location.hash="divServiceOffering";
			return(false);
			}
		}
		
	this.ValidateOfficeAndContactInformation = function()
		{
		NNCEnrollmentUI.divOfficeAndContactInformation.style.backgroundColor = "";
		
		NNCEnrollmentUI.divOfficeDemographics.style.backgroundColor = "";
		NNCEnrollmentUI.divOfficeAndContactInformationMessage.innerHTML = "";
		
		var blnOfficeName = TextFieldHasValue(NNCEnrollmentUI.txtOfficeName);
		var blnTaxID      = TextFieldHasValue(NNCEnrollmentUI.txtTaxID);
		var blnAddress1   = TextFieldHasValue(NNCEnrollmentUI.txtAddress1);
		var blnAddress2   = TextFieldHasValue(NNCEnrollmentUI.txtAddress2);
		var blnCity       = TextFieldHasValue(NNCEnrollmentUI.txtCity);
		var blnState      = NNCEnrollmentUI.selectState.selectedIndex > 0 ? true : false;
		var blnZipCode    = TextFieldHasValue(NNCEnrollmentUI.txtZipCode);
		var blnSalutation = NNCEnrollmentUI.selectSalutation.selectedIndex > 0 ? true : false;
		var blnFirstName  = TextFieldHasValue(NNCEnrollmentUI.txtFirstName);
		var blnLastName   = TextFieldHasValue(NNCEnrollmentUI.txtLastName);
		var blnPhone      = TextFieldHasValue(NNCEnrollmentUI.txtPhone);
		var blnEmail      = TextFieldHasValue(NNCEnrollmentUI.txtEmail);
		
		NNCEnrollmentUI.divContactDays.style.backgroundColor = "";
		NNCEnrollmentUI.spanContactDaysMessage.innerHTML = "";
		var blnMonday    = NNCEnrollmentUI.checkBestContactDayMon.checked;
		var blnTuesday   = NNCEnrollmentUI.checkBestContactDayTue.checked;
		var blnWednesday = NNCEnrollmentUI.checkBestContactDayWed.checked;
		var blnThursday  = NNCEnrollmentUI.checkBestContactDayThu.checked;
		var blnFriday    = NNCEnrollmentUI.checkBestContactDayFri.checked;
		var blnContactDaysSelected = (blnMonday || blnTuesday || blnWednesday || blnThursday || blnFriday);
		
		NNCEnrollmentUI.divContactTime.style.backgroundColor = "";
		NNCEnrollmentUI.spanBestContactTimeMessage.innerHTML = "";
		blnContactTimeSelected = NNCEnrollmentUI.selectBestContactTime.selectedIndex > 0 ? true : false;
		
		// Begin Validation Logic
		
		var strMessage = "";
		var OfficeFields = new Array();
		if (!blnOfficeName) {OfficeFields[OfficeFields.length] = "Office Name"};
		if (!blnTaxID)      {OfficeFields[OfficeFields.length] = "Tax ID"};
		if (!blnAddress1)   {OfficeFields[OfficeFields.length] = "Address 1"};
		if (!blnCity)       {OfficeFields[OfficeFields.length] = "City"};
		if (!blnState)      {OfficeFields[OfficeFields.length] = "State"};
		if (!blnZipCode)    {OfficeFields[OfficeFields.length] = "Zip Code"};
		
		var ContactFields = new Array();
		if (!blnFirstName) {ContactFields[ContactFields.length] = "First Name"}
		if (!blnLastName)  {ContactFields[ContactFields.length] = "Last Name"}
		if (!blnPhone)     {ContactFields[ContactFields.length] = "Phone"}
		if (!blnEmail)     {ContactFields[ContactFields.length] = "Email"}
		
		if (OfficeFields.length > 0 || ContactFields.length > 0)
			{
			if (OfficeFields.length + ContactFields.length == 1)
				{
				strMessage = "The following field is required: ";
				}
			else
				{
				strMessage = "The following fields are required:<br/>";
				}
			if (OfficeFields.length > 0)
				{
				var strOfficeMessage = "'" + OfficeFields.toString().replace(/,/g, "', '") + "'";
				strMessage = strMessage + strOfficeMessage;
				}
			if (ContactFields.length > 0)
				{
				var strContactMessage = "'" + ContactFields.toString().replace(/,/g, "', '") + "'";
				if (OfficeFields.length > 0)
					{
					strMessage = strMessage + "<br/>";
					}
				strMessage = strMessage + strContactMessage;
				}
			NNCEnrollmentUI.divOfficeDemographics.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.divOfficeAndContactInformationMessage.innerHTML = strMessage;
			window.location.hash="divOfficeDemographics";
			return(false);
			}
		else
			{
			if (blnContactDaysSelected)
				{
				if (blnContactTimeSelected)
					{
					return(true);
					}
				else
					{
					NNCEnrollmentUI.divContactTime.style.backgroundColor = strErrorColor;
					NNCEnrollmentUI.spanBestContactTimeMessage.innerHTML = "<-- Please select a time that's good for you.";
					return(false);
					}
				}
			else
				{
				NNCEnrollmentUI.divContactDays.style.backgroundColor = strErrorColor;
				NNCEnrollmentUI.spanContactDaysMessage.innerHTML = "<-- Please select a day or days that are good for you.";
				return(false);
				}
			}
		
		}
		
	this.ValidateProviderCount = function()
		{
		NNCEnrollmentUI.divProviderInformation.style.backgroundColor = "";
		NNCEnrollmentUI.divProviderCount.style.backgroundColor = "";
		NNCEnrollmentUI.divProviderDemographics.style.backgroundColor = "";
		
		var intPayerSelectedIndex = NNCEnrollmentUI.selectPrimaryClaimsPayor.selectedIndex;
		
		var strPayer = NNCEnrollmentUI.selectPrimaryClaimsPayor.options[intPayerSelectedIndex].value;
		
		var blnHighmark = (strPayer == "Highmark");
		var blnMS      = (strPayer == "Mountain State");
		
		var blnProviderInfoValidationRequired = (blnHighmark || blnMS);
		
		var blnNumberOfProvidersSelected = NNCEnrollmentUI.selectNumberOfProviders.selectedIndex > 0 ? true : false;
		
		NNCEnrollmentUI.spanNumberOfProvidersMessage.innerHTML = "";
		
		if (blnProviderInfoValidationRequired)
			{
			if (blnNumberOfProvidersSelected)
				{
				return(true);
				}
			else
				{
				NNCEnrollmentUI.divProviderCount.style.backgroundColor = strErrorColor;
				NNCEnrollmentUI.spanNumberOfProvidersMessage.innerHTML = "<-- Please select a value.";
				window.location.hash="divProviderCount";
				return(false);
				}
			}
		else
			{
			return(true);
			}
		}
		
	this.ValidateProviderInformation = function()
		{
		var intPayerSelectedIndex = NNCEnrollmentUI.selectPrimaryClaimsPayor.selectedIndex;
		var strPayer = NNCEnrollmentUI.selectPrimaryClaimsPayor.options[intPayerSelectedIndex].value;
		
		var blnHighmark = (strPayer == "Highmark");
		var blnMS      = (strPayer == "Mountain State");
		
		var blnProviderInfoValidationRequired = (blnHighmark || blnMS);
		
		var Providers = NNCEnrollmentUI.ProviderRowsArray;
		
		// Check to ensure that rows containing any data are complete.
		var blnCompletenessOfRowsValid = false;
		if (blnProviderInfoValidationRequired)
			{
			NNCEnrollmentUI.ClearProviderInfoWarnings();
			var Columns = Providers[0].getFieldsArray();
			var aMessageColumns = new Array();
			for (var i = 0; i < Columns.length; i++)
				{
				aMessageColumns[i] = new Object;
				aMessageColumns[i].name = Columns[i].ColumnName;
				aMessageColumns[i].flag = false;
				}
				
			for (var i = 0; i < Providers.length; i++)
				{
				var Provider = Providers[i];
				var Fields   = Provider.getFieldsArray();
				
				var blnRowContainsAnEntry = false;
				for (var j=0; j < Fields.length; j++)
					{
					blnRowContainsAnEntry = (blnRowContainsAnEntry || TextFieldHasValue(Fields[j]));
					}
					
				if (blnRowContainsAnEntry)
					{
					for (var j=0; j < Fields.length; j++)
						{
						if(!TextFieldHasValue(Fields[j]))
							{
							Fields[j].style.backgroundColor = "#FFFF9C";
							aMessageColumns[j].flag = true;
							}
						}
					}
				}
				
			var strMessage = "";
			
			for (var i = 0; i < aMessageColumns.length; i++)
				{
				if (aMessageColumns[i].flag && strMessage.length > 0)
					{
					strMessage = strMessage + ", "
					}
				if (aMessageColumns[i].flag)
					{
					strMessage = strMessage + "'" + aMessageColumns[i].name + "'";
					}
				}
			if (strMessage.length > 0)
				{
				strMessage = "The following fields are all required: " + strMessage + "";
				NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML = strMessage;
				NNCEnrollmentUI.divProviderDemographics.style.backgroundColor = strErrorColor;
				}
			else
				{
				blnCompletenessOfRowsValid = true;
				}
			}
		else
			{
			blnCompletenessOfRowsValid = true;
			}
		
		var blnNumberOfProvidersValid = false;
		if (blnProviderInfoValidationRequired)
			{
			var intNOPIndex = NNCEnrollmentUI.selectNumberOfProviders.selectedIndex;
			var vNumberOfProviders = NNCEnrollmentUI.selectNumberOfProviders.options[intNOPIndex].value;
			var Providers = NNCEnrollmentUI.ProviderRowsArray;
			var strMessage = "";
			
			var intRowsWithDataCounter = 0;
			var intRowsCompleteCounter = 0;
			
			for (var i=0; i < Providers.length; i++)
				{
				if (Providers[i].RowHasData())
					{
					intRowsWithDataCounter++;
					}
				if (Providers[i].RowIsComplete())
					{
					intRowsCompleteCounter++;
					}
				}
			
			var intWorkingNOP = vNumberOfProviders > 5 ? 5 : vNumberOfProviders;
			
			if (intRowsWithDataCounter < intWorkingNOP)
				{
				if (intRowsWithDataCounter != 0)
					{
					if ((intWorkingNOP - intRowsWithDataCounter) == 1)
						{
						strMessage = "Please enter information about " + (intWorkingNOP - intRowsWithDataCounter) + " more provider.";
						}
					else
						{
						strMessage = "Please enter information about " + (intWorkingNOP - intRowsWithDataCounter) + " more providers.";
						}
					if (NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML != "")
						{
						NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML += "<br/>";
						}
					NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML += strMessage;
					NNCEnrollmentUI.divProviderDemographics.style.backgroundColor = strErrorColor;
					}
				else
					{
					if (intWorkingNOP == 1)
						{
						strMessage = "Please enter information about your provider.";
						}
					if (vNumberOfProviders > 1 && vNumberOfProviders < 6)
						{
						strMessage = "Please enter information about your providers.";
						}
					if (vNumberOfProviders == 6)
						{
						strMessage = "Please enter information about 5 of your providers.";
						}
					if (NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML != "")
						{
						NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML += "<br/>";
						}
					NNCEnrollmentUI.spanProviderDemographicsMessage.innerHTML += strMessage;
					NNCEnrollmentUI.divProviderDemographics.style.backgroundColor = strErrorColor;
					}
				}
			else
				{
				blnNumberOfProvidersValid = true;
				}
			
			}
		else
			{
			blnNumberOfProvidersValid = true;
			}
		
		return(blnNumberOfProvidersValid && blnCompletenessOfRowsValid);
			
		}
		
	this.ValidateTermsAndConditions = function()
		{
		var blnAcceptsTermsAndConditions = NNCEnrollmentUI.checkAcceptsTermsAndConditions.checked;
		
		NNCEnrollmentUI.divTermsAndConditions.style.backgroundColor = "";
		NNCEnrollmentUI.spanTermsAndConditionsMessage.innerHTML = "";
		
		if (blnAcceptsTermsAndConditions)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divTermsAndConditions.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanTermsAndConditionsMessage.innerHTML = "<-- Please review the Terms and Conditions.";
			window.location.hash="divTermsAndConditions";
			return(false);
			}
		}
		
	this.ValidateUserAgreement = function()
		{
		var blnAcceptsUserAgreement = NNCEnrollmentUI.checkAcceptsUserAgreement.checked;
		
		NNCEnrollmentUI.divUserAgreement.style.backgroundColor = "";
		NNCEnrollmentUI.spanUserAgreementMessage.innerHTML = "";
		
		if (blnAcceptsUserAgreement)
			{
			return(true);
			}
		else
			{
			NNCEnrollmentUI.divUserAgreement.style.backgroundColor = strErrorColor;
			NNCEnrollmentUI.spanUserAgreementMessage.innerHTML = "<-- Please review the User Agreement before you submit.";
			window.location.hash="divUserAgreement";
			return(false);
			}
		}
		
	function TextFieldHasValue(objTextInputElement)
		{
		var blnHasValue = (objTextInputElement.value.replace(/\s+/g, "") != "");
		return(blnHasValue);
		}
	}
