	function shortTermRateObject(plan1, plan2, plan3, plan4, plan5, plan6)
	{
		this.plan1 = plan1;
		this.plan2 = plan2;
		this.plan3 = plan3;
		this.plan4 = plan4;
		this.plan5 = plan5;
		this.plan6 = plan6;
	}

	// object to put the long term rate plans for each age group
	function longTermRateObject(planA, planB, planC, planD)
	{
		this.planA = planA;
		this.planB = planB;
		this.planC = planC;
		this.planD = planD;
	}
	
	function employeeInfoObject(ageGroup, salary, family)
	{
		this.ageGroup = ageGroup;
		this.salary = salary;
		this.family = family;
		this.groupTerm=0;
		this.shortTerm=0;
		this.longTerm=0;
		this.groupTermLeveled=false;
		this.shortTermLeveled=false;

		this.setGroupTerm = function(groupTerm)
		{
			this.groupTerm=groupTerm[0];
			this.groupTermLeveled=groupTerm[1];
		}

		this.setShortTerm = function(shortTerm)
		{
			this.shortTerm = shortTerm[0];
			this.shortTermLeveled=shortTerm[1];
		}

		this.setLongTerm = function(longTerm)
		{
			this.longTerm = longTerm[0];
			this.longTermLeveled=longTerm[1];
		}
	}
	
	function indigoCalculator()
	{
		// Instanciate needed variables.
		this.page=1;

		this.employeeAgeDisplayState=false;
		this.employeeRowCount=1;
		this.employeeInfoArray = new Array();
		this.errors = new Array();
		
		this.ageGroups = new Array();
		this.groupTermRates = new Array();
		this.shortTermRates = new Array();
		this.longTermRates = new Array();
		
		this.optinShortTerm = true;
		this.optinLongTerm = true;
		
		this.groupTermTotal=0;
		this.shortTermTotal=0;
		this.longTermTotal=0;
		this.grandTotal=0;
		
		this.printWindow = null;

		// Initialize variables.
		this.ageGroups = ['', '< 25', '25-29', '30-34', '35-39', '40-44', '45-49', '50-54', '55-59', 
							  '60-64', '65-69', '70-74', '75-79', '80-84', '85+']
		this.groupTermRates = [0, 0.16, 0.16, 0.20, 0.21, 0.36, 0.50, 0.76, 1.37, 1.94, 3.46, 5.28, 8.55, 16.88, 19.58];
		
		// Short term rates
		this.shortTermRates[0] = 0; // rate groups start at one, so this is just filler and can be ignored.
		this.shortTermRates[1] = new shortTermRateObject(.54, .67, .42, .52, .51, .64);
		this.shortTermRates[2] = new shortTermRateObject(.54, .67, .42, .52, .51, .64);
		this.shortTermRates[3] = new shortTermRateObject(.48, .60, .37, .47, .45, .58);
		this.shortTermRates[4] = new shortTermRateObject(.51, .63, .39, .49, .48, .60);
		this.shortTermRates[5] = new shortTermRateObject(.44, .54, .34, .43, .41, .52);
		this.shortTermRates[6] = new shortTermRateObject(.49, .61, .38, .48, .46, .59);
		this.shortTermRates[7] = new shortTermRateObject(.60, .75, .47, .58, .57, .72);
		this.shortTermRates[8] = new shortTermRateObject(.76, .94, .59, .73, .71, .90);
		this.shortTermRates[9] = new shortTermRateObject(.96, 1.18, .74, .92, .90, 1.14);
		this.shortTermRates[10] = new shortTermRateObject(.99, 1.22, .77, .96, .93, 1.18);
		this.shortTermRates[11] = new shortTermRateObject(1.15, 1.43, .89, 1.12, 1.08, 1.87);
		this.shortTermRates[12] = new shortTermRateObject(1.15, 1.43, .89, 1.12, 1.08, 1.87);
		this.shortTermRates[13] = new shortTermRateObject(1.15, 1.43, .89, 1.12, 1.08, 1.87);
		this.shortTermRates[14] = new shortTermRateObject(1.15, 1.43, .89, 1.12, 1.08, 1.87);

		// Long term rates
		this.longTermRates[0] = 0; // rate groups start at one, so this is just filler and can be ignored.
		this.longTermRates[1] = new longTermRateObject(.16, .09, .22, .15);
		this.longTermRates[2] = new longTermRateObject(.21, .12, .33, .18);
		this.longTermRates[3] = new longTermRateObject(.27, .16, .44, .27);
		this.longTermRates[4] = new longTermRateObject(.37, .22, .62, .41);
		this.longTermRates[5] = new longTermRateObject(.52, .33, .89, .59);
		this.longTermRates[6] = new longTermRateObject(.76, .49, 1.26, .87);
		this.longTermRates[7] = new longTermRateObject(1.11, .76, 1.73, 1.19);
		this.longTermRates[8] = new longTermRateObject(1.61, 1.13, 2.09, 1.44);
		this.longTermRates[9] = new longTermRateObject(2, 1.36, 2.09, 1.44);
		this.longTermRates[10] = new longTermRateObject(2, 1.36, 2.09, 1.44);
		this.longTermRates[11] = new longTermRateObject(2, 1.36, 2.09, 1.44);
		this.longTermRates[12] = new longTermRateObject(2, 1.36, 2.09, 1.44);
		this.longTermRates[13] = new longTermRateObject(2, 1.36, 2.09, 1.44);
		this.longTermRates[14] = new longTermRateObject(2, 1.36, 2.09, 1.44);
		
		// Function to display the next page in the calculator
		this.displayNextPage = function()
		{
			this.hideShowPage('page_' + this.page,'page_' + (this.page+1));
			this.page++;
			this.processProgress()
		}

		// Function to display the previous page in the calculator
		this.displayPreviousPage = function()
		{
			this.hideShowPage('page_' + this.page, 'page_' + (this.page-1));
			this.page--;
			this.processProgress()
		}
		
		// Function to hide current div and display a new div
		this.hideShowPage = function(hidePage, showPage)
		{
			$(hidePage).style.display="none";
			$(showPage).style.display="block";
		}

		this.handleErrors = function()
		{
			this.errorString="";
			for(errorCount=0; errorCount < this.errors.length; errorCount++)
			{
				this.errorString += this.errors[errorCount] + "\n";
			}
			alert(this.errorString);
		}

		this.createEmployee = function(selector, containerId)
		{
			$(containerId).style.display="none";
			if(selector.selectedIndex!=0)
			{
				$(containerId).style.display="block";
			}
			
			this.employeeFormTable = document.getElementById(containerId);

			// Delete all rows except the first (which is the header row.
			while(this.employeeFormTable.rows.length > (selector.selectedIndex+2))
			{
				this.employeeFormTable.deleteRow(this.employeeFormTable.rows.length-1);
				this.employeeRowCount--;
			}
			// Create the new agegroup and salary fields.
			while(this.employeeFormTable.rows.length < (selector.selectedIndex+2))
			{
				var newRow = this.employeeFormTable.insertRow(this.employeeFormTable.rows.length);
				employeeAgeSelect = this.createAgeSelector(this.employeeRowCount);
				employeeAnnualSalary = Builder.node('input',{
																type:'text',
																id:'ageGroupSalary' + this.employeeRowCount,
																name:'ageGroupSalary' + this.employeeRowCount,
																size:'8',
																maxlength:'10'
															},"");
				// Safari doesn't like it in the builder so we'll build it first then give it a class.											
				employeeAnnualSalary.className='employeeSalaryClass';

				familyNodes = new Array();
				familyNodes[familyNodes.length] =  Builder.node('option',{value:'0'}, 'Individual');
				familyNodes[familyNodes.length] =  Builder.node('option',{value:'1'}, 'Family');
			
				employeeFamilyType = Builder.node('select',{id:'isFamily' + this.employeeRowCount, name:'isFamily' + this.employeeRowCount },familyNodes);
				employeeFamilyType.selectedIndex=0;

		
				var newCell = newRow.insertCell(0);
				newCell.innerHTML = "Employee  "+ this.employeeRowCount + ": ";
		
				var newCell = newRow.insertCell(1);
				newCell.appendChild(employeeAgeSelect);
		
				var newCell = newRow.insertCell(2);
				newCell.appendChild(employeeFamilyType);

				var newCell = newRow.insertCell(3);
				newCell.innerHTML=" $";
				newCell.appendChild(employeeAnnualSalary);
				
				this.employeeRowCount++;
			}
		}

		this.createAgeSelector = function(itemGroupNum)
		{
			// Build the ageNodes holder
			ageNodes = new Array();
			ageNodes[ageNodes.length] =  Builder.node('option',{value:'0'},"Please Select");
			for(countAges=1; countAges< this.ageGroups.length; countAges++)
			{
					ageNodes[ageNodes.length] =  Builder.node('option',{value:countAges}, this.ageGroups[countAges]);
			}
			
			objSelect = Builder.node('select',{id:'ageGroup' + itemGroupNum, name:'ageGroup' + itemGroupNum },ageNodes);
			objSelect.selectedIndex=0;

			objSelect.options[0].className="optionClass";

			// Return the radiobutton and it's label to be appended.
			return objSelect;
		}

		
		this.toggleFlatBenefit = function(selector, containerOneId, containerTwoId, indexTogglePosition)
		{
			$(containerTwoId).style.display="none";
			if(selector.selectedIndex == indexTogglePosition){
				$(containerTwoId).style.display="inline";
			} 
		}

		this.optinToggle = function(selector,containerId)
		{
			$(containerId).style.display="none";
			if(selector.selectedIndex == 0) $(containerId).style.display="block";
			
		}

		this.optinHideShort = function(containerId)
		{
				$(containerId).style.display="none";
				this.optinShortTerm = false;
		}

		this.optinShowShort = function(containerId)
		{
				$(containerId).style.display="block";
				this.optinShortTerm = true;
		}

		this.optinHideLong = function(containerId)
		{
				$(containerId).style.display="none";
				this.optinLongTerm=false;
		}

		this.optinShowLong = function(containerId)
		{
				$(containerId).style.display="block";
				this.optinLongTerm=true;
		}

		this.toggleDependents = function(selector, containerId)
		{
			$(containerId).disabled=true;
			if(selector.selectedIndex > 0) $(containerId).disabled=false;
		}
		
		this.returnSICModifier = function(SICCode)
		{
			if(
				((SICCode >= 3650) && (SICCode <= 3669)) ||
				((SICCode >= 3810) && (SICCode <= 3829)) ||
				((SICCode >= 6010) && (SICCode <= 6039)) ||
				((SICCode >= 6080) && (SICCode <= 6099)) ||
				((SICCode >= 8210) && (SICCode <= 8229))
			)
			{
				return 1;
			}
			else if(
				((SICCode >= 2510) && (SICCode <= 2599)) ||
				((SICCode >= 2650) && (SICCode <= 2779)) ||
				((SICCode >= 2820) && (SICCode <= 2839)) ||
				((SICCode >= 3010) && (SICCode <= 3089)) ||
				((SICCode >= 3210) && (SICCode <= 3289)) ||
				((SICCode >= 3510) && (SICCode <= 3649)) ||
				((SICCode >= 3670) && (SICCode <= 3799)) ||
				((SICCode >= 4810) && (SICCode <= 4949)) ||
				((SICCode >= 4960) && (SICCode <= 5270)) ||
				((SICCode >= 5610) && (SICCode <= 5699)) ||
				((SICCode >= 6060) && (SICCode <= 6069)) ||
				((SICCode >= 6310) && (SICCode <= 6419)) ||
				((SICCode >= 6710) && (SICCode <= 6739)) ||
				((SICCode >= 7310) && (SICCode <= 7379)) ||
				((SICCode >= 7810) && (SICCode <= 7829)) ||
				((SICCode >= 8230) && (SICCode <= 8299)) ||
				((SICCode >= 8610) && (SICCode <= 8629)) ||
				((SICCode >= 8640) && (SICCode <= 8659)) ||
				((SICCode >= 8690) && (SICCode <= 8749)) ||
				((SICCode >= 9110) && (SICCode <= 9199))
			)
			{
				return 1.2;
			}
			else if(
				((SICCode >= 110) && (SICCode <= 929)) ||
				((SICCode >= 1530) && (SICCode <= 1549)) ||
				((SICCode >= 1710) && (SICCode <= 2099)) ||
				((SICCode >= 2210) && (SICCode <= 2399)) ||
				((SICCode >= 2430) && (SICCode <= 2499)) ||
				((SICCode >= 2780) && (SICCode <= 2819)) ||
				((SICCode >= 2840) && (SICCode <= 2879)) ||
				((SICCode >= 3110) && (SICCode <= 3199)) ||
				((SICCode >= 3410) && (SICCode <= 3499)) ||
				((SICCode >= 4610) && (SICCode <= 4789)) ||
				((SICCode >= 4950) && (SICCode <= 4959)) ||
				((SICCode >= 5310) && (SICCode <= 5319)) ||
				((SICCode >= 5410) && (SICCode <= 5599)) ||
				((SICCode >= 5710) && (SICCode <= 5739)) ||
				((SICCode >= 5910) && (SICCode <= 5999)) ||
				((SICCode >= 6110) && (SICCode <= 6169)) ||
				((SICCode >= 6510) && (SICCode <= 6559)) ||
				((SICCode >= 7220) && (SICCode <= 7229)) ||
				((SICCode >= 7260) && (SICCode <= 7269)) ||
				 (SICCode == 7327) ||
				((SICCode >= 7330) && (SICCode <= 7359)) ||
				((SICCode >= 7510) && (SICCode <= 7639)) ||
				((SICCode >= 7830) && (SICCode <= 7919)) ||
				((SICCode >= 7930) && (SICCode <= 7999)) ||
				((SICCode >= 8070) && (SICCode <= 8079)) ||
				((SICCode >= 9210) && (SICCode <= 9219)) ||
				 (SICCode == 9224) ||
				((SICCode >= 9310) && (SICCode <= 9729))
			)
			{
				return 1.4;
			}
			else if(
				((SICCode >= 1520) && (SICCode <= 1529)) ||
				((SICCode >= 1610) && (SICCode <= 1629)) ||
				((SICCode >= 2910) && (SICCode <= 2999)) ||
				((SICCode >= 3330) && (SICCode <= 3399)) ||
				((SICCode >= 7320) && (SICCode <= 7329)) ||
				((SICCode >= 7640) && (SICCode <= 7699)) ||
				((SICCode >= 8050) && (SICCode <= 8069)) ||
				((SICCode >= 8080) && (SICCode <= 8089)) ||
				((SICCode >= 8110) && (SICCode <= 8119)) ||
				((SICCode >= 8320) && (SICCode <= 8429)) ||
				((SICCode >= 8630) && (SICCode <= 8639)) ||
				(SICCode == 8774)
			)
			{
				return 1.6;
			}
			
			return false;
		}

		this.doCalculate = function()
		{
			this.numberOfEmployees = ($('employeeCount').selectedIndex + 1);
			this.employeeInfoArray = new Array();

			// Create the employee object with information from the form first page.
			for(count=1; count < (this.numberOfEmployees+1); count++)
			{
				this.employeeInfoArray[this.employeeInfoArray.length] = new employeeInfoObject(
																								$("ageGroup" + count).value,
																								$("ageGroupSalary" + count).value,
																								$("isFamily" + count).options[$("isFamily" + count).selectedIndex].value
																								);
			}
			
			// Run through each employee and calculate the data.
			for(count=0; count < this.employeeInfoArray.length; count++)
			{
				this.employeeInfoArray[count].setGroupTerm(this.calculateGroupTerm(this.employeeInfoArray[count]));
				if(this.optinShortTerm)
				{
					this.employeeInfoArray[count].setShortTerm(this.calculateShortTerm(this.employeeInfoArray[count]));
				}

				if(this.optinLongTerm)
				{
					this.employeeInfoArray[count].setLongTerm(this.calculateLongTerm(this.employeeInfoArray[count]));
				}
			}
			
			this.buildOptionDisplay();
			this.buildCalculatedTable();
			
		}

		this.buildOptionDisplay = function()
		{
			$('clientNameResult').innerHTML=$('clientName').value
			
			if($('groupTermBenefit').selectedIndex != 4){
				$('displayGroupBenefits').innerHTML = $('groupTermBenefit').selectedIndex + " time annual income.";
			}
			else
			{
				$('displayGroupBenefits').innerHTML = "$" + $('groupTermBenefitAmount').value; 
			}

			if($('dependents').selectedIndex != 0)
			{
				switch($('dependentPlan').selectedIndex)
				{
					case 1:
						$('displayDependents').innerHTML="$10,000 / dependent. Dependent premiums are included with Group Term Life & AD&D rate.";
						break;
					case 2:
						$('displayDependents').innerHTML="$5,000 / dependent. Dependent premiums are included with Group Term Life & AD&D rate.";
						break;
					default:
						$('displayDependents').innerHTML=$('dependentPlan').selectedIndex
				}
			}
			else
			{
				$('displayDependents').innerHTML="Dependent option not chosen.";
			}

			if($('shortTermOptin2').checked) $('boxShortTerm').style.display = "none";
			if($('longTermOptin2').checked) $('boxLongTerm').style.display = "none";
			
			if($('shortTermBenefit').selectedIndex == 4)
			{
				$('displayShortBenefits').innerHTML = "$" + $('shortTermBenefitAmount').options[$('shortTermBenefitAmount').selectedIndex].value;
			}
			else
			{
				$('displayShortBenefits').innerHTML = ($('shortTermBenefit').options[$('shortTermBenefit').selectedIndex].value * 100) + "% weekly income";
			}
			
			$('displayShortPlan').innerHTML= $('shortTermPlan').options[$('shortTermPlan').selectedIndex].text;
			
			
			
			$('displayLongBenefits').innerHTML= $('longTermPlan').options[$('longTermPlan').selectedIndex].text;;
			$('displayLongDurationElimination').innerHTML= $('longTermDurationElimination').options[$('longTermDurationElimination').selectedIndex].text;;
			$('displayIndustrySIC').innerHTML = $('standardIndustryCode').value;
		}


		this.calculateCostBase = function (benefit, rate, divisor)
		{
			return ((benefit / divisor) * rate);
		}


		this.calculateGroupTerm = function(employeeInfo)
		{
			// Figure out the benefit based on the selection.
			if($('groupTermBenefit').selectedIndex == 4)
			{
				benefit = parseInt($('groupTermBenefitAmount').value);
			}
			else
			{
				benefit = employeeInfo.salary * parseInt($('groupTermBenefit').selectedIndex);
			}

			// Make sure we are divisible by 1000
			if(benefit%1000 != 0)
			{
				benefit = Math.ceil(benefit/1000) * 1000;
			}
			
			// If we are at more than 100K then set the benefit to 100K
			leveled=false;
			if(parseInt(benefit) > 100000){
				benefit = 100000;
				leveled=true;
			} 
			
			// Get the rate based on the age group.
			rate = this.groupTermRates[employeeInfo.ageGroup];
				
			// Cost before dependents
			cost = this.calculateCostBase(benefit, rate, 1000);

			if(employeeInfo.family == 1 && $('dependents').options[$('dependents').selectedIndex].value == "1")
			{
				cost = parseFloat(cost) + parseFloat($('dependentPlan').options[$('dependentPlan').selectedIndex].value);
			}

			if(employeeInfo.ageGroup == 10){
				cost = cost*65/100;
			}else if(employeeInfo.ageGroup == 11){
				cost = cost*50/100;
			}else if(employeeInfo.ageGroup == 12 || employeeInfo.ageGroup == 13 || employeeInfo.ageGroup == 14){
				cost = cost*25/100;
			}
			
			return new Array(Number(cost).toFixed(2), leveled);
		}

		this.calculateShortTerm = function(employeeInfo)
		{
			// Figure out the benefit based on the selection.
			if($('shortTermBenefit').selectedIndex == 4)
			{
				benefit = $('shortTermBenefitAmount').options[$('shortTermBenefitAmount').selectedIndex].value;
			}
			else
			{
				benefit = (employeeInfo.salary / 52) * $('shortTermBenefit').options[$('shortTermBenefit').selectedIndex].value;
				
				if(parseInt(benefit) > 750){
					benefit = 750;
					leveled=true;
				}
			}
			
			
			// Make sure we are divisible by 50
			//if(benefit % 50 != 0)
			//{
				//benefit = Math.ceil(benefit/50) * 50;
			//}
			
			// If we are at more than 750 then set the benefit to 750
			leveled=false;
			benefitMaxSalaryCap = (employeeInfo.salary / 52) * .6666;			

			if(parseInt(benefit) > benefitMaxSalaryCap)
			{
				benefit = benefitMaxSalaryCap;
				leveled=true;
			}

			switch($('shortTermPlan').selectedIndex)
			{
				case 1:
					rate = this.shortTermRates[employeeInfo.ageGroup].plan1;
					break;
				case 2:
					rate = this.shortTermRates[employeeInfo.ageGroup].plan2;
					break;
				case 3:
					rate = this.shortTermRates[employeeInfo.ageGroup].plan3;
					break;
				case 4:
					rate = this.shortTermRates[employeeInfo.ageGroup].plan4;
					break;
				case 5:
					rate = this.shortTermRates[employeeInfo.ageGroup].plan5;
					break;
				case 6:
					rate = this.shortTermRates[employeeInfo.ageGroup].plan6;
					break;
			}

			return new Array(Number(this.calculateCostBase(benefit, rate, 10)).toFixed(2),leveled);
		}

		this.calculateLongTerm = function(employeeInfo)
		{
			leveled=false;
			
			benefit = (employeeInfo.salary / 12);
			
			planMax = parseInt($('longTermPlan').options[$('longTermPlan').selectedIndex].value);
			
			
			switch($('longTermPlan').selectedIndex)
			{
				case 1:
					benefitmax = 10000;
					break;
				case 2:
					benefitmax = 8333;
					break;
				case 3:
					benefitmax = 6666;
					break;
			}
			
			if(benefit > benefitmax)
			{
				benefit = benefitmax;
				leveled=true;
			}

			switch($('longTermDurationElimination').selectedIndex)
			{
				case 1:
					rate = this.longTermRates[employeeInfo.ageGroup].planA;
					break;
				case 2:
					rate = this.longTermRates[employeeInfo.ageGroup].planB;
					break;
				case 3:
					rate = this.longTermRates[employeeInfo.ageGroup].planC;
					break;
				case 4:
					rate = this.longTermRates[employeeInfo.ageGroup].planD;
					break;
			}

			var original = rate * parseFloat(this.returnSICModifier(Number($('standardIndustryCode').value)));
			var rouder = Math.round(original*100)/100;
			return new Array(Number(this.calculateCostBase(benefit, rouder, 100)),leveled);
		}
		
		this.processProgress = function()
		{
			this.barMaxWidth = 200;
			pageSegments = (document.getElementsByClassName('page').length-1);
			progress = (this.barMaxWidth / pageSegments) * (this.page - 1);
			$('statusBarIndicator').style.width = progress + "px";
			
			pagePercents = 100/pageSegments;
			currentPercent = pagePercents * (this.page-1);
			$('statusPercent').innerHTML=currentPercent + "%";
		}
		

		this.buildCalculatedTable = function()
		{
			this.groupTermTotal=0;
			this.shortTermTotal=0;
			this.longTermTotal=0;
			this.grandTotal=0;
			
			// Delete all rows except the first (which is the header row.
			while($('quotedRates').rows.length != 1)
			{
				$('quotedRates').deleteRow($('quotedRates').rows.length-1);
			}
			
			// Build the displayed table with the rate information.
			for(count=0; count < this.employeeInfoArray.length; count++)
			{
				var newRow = $('quotedRates').insertRow($('quotedRates').rows.length);
				newRow.className='employeeRow';
				
				var newCell = newRow.insertCell(0);
				newCell.innerHTML = "Employee " + (count+1);
				
				var newCell = newRow.insertCell(1);
				newCell.innerHTML = this.ageGroups[this.employeeInfoArray[count].ageGroup];
				
				var newCell = newRow.insertCell(2);
				newCell.innerHTML = "$"+this.employeeInfoArray[count].salary;
				newCell.className="money";
				
				var newCell = newRow.insertCell(3);
				newCell.innerHTML = (this.employeeInfoArray[count].family == "0") ?  "Individual" : "Family";
				
				var newCell = newRow.insertCell(4);
				extraHTML="";
				if(this.employeeInfoArray[count].groupTermLeveled) extraHTML="*";
				newCell.innerHTML = "$"+Number(this.employeeInfoArray[count].groupTerm).toFixed(2) + extraHTML;
				newCell.className="money";
				
				var newCell = newRow.insertCell(5);
				extraHTML="";
				if(this.employeeInfoArray[count].shortTermLeveled) extraHTML="**";
				newCell.innerHTML = "$"+Number(this.employeeInfoArray[count].shortTerm).toFixed(2) + extraHTML;
				newCell.className="money";
				
				var newCell = newRow.insertCell(6);
				extraHTML="";
				if(this.employeeInfoArray[count].shortTermLeveled) extraHTML="***";
				newCell.innerHTML = "$"+Number(this.employeeInfoArray[count].longTerm).toFixed(2) + extraHTML;
				newCell.className="money lastCell";
			
				this.groupTermTotal+=parseFloat(this.employeeInfoArray[count].groupTerm);
				this.shortTermTotal+=parseFloat(this.employeeInfoArray[count].shortTerm);
				this.longTermTotal+=parseFloat(this.employeeInfoArray[count].longTerm);
			}
			
			this.grandTotal = (this.groupTermTotal + this.shortTermTotal + this.longTermTotal);
			
			$('groupTermTotal').innerHTML = "$" + Number(this.groupTermTotal).toFixed(2);
			$('shortTermTotal').innerHTML = "$" + Number(this.shortTermTotal).toFixed(2);
			$('longTermTotal').innerHTML = "$" + Number(this.longTermTotal).toFixed(2);
			$('grandTotal').innerHTML = "$" + Number(this.grandTotal).toFixed(2);
			
		}
		
		this.printQuote = function()
		{
			this.displayHTML = $('page_5').innerHTML;
			this.printWindow = window.open('calculatorPrintable.html','printWin');
		}

		this.resetForm = function()
		{
			$('clientName').value="";
			$('employeeCount').selectedIndex=0;
			$('ageGroup1').selectedIndex=0;
			$('isFamily1').selectedIndex=0;
			$('ageGroupSalary1').value="";
			$('ageGroup2').selectedIndex=0;
			$('isFamily2').selectedIndex=0;
			$('ageGroupSalary2').value="";
			$('ageGroups').style.display="none";
			$('groupTermBenefit').selectedIndex=0;
			$('spanGroupTermBeniftAmount').style.display="none";
			$('groupTermBenefitAmount').value="";
			$('dependents').selectedIndex=0;
			$('dependentPlan').selectedIndex=0;
			$('dependentPlan').disabled=true;
			$('shortTermBenefit').selectedIndex=0;
			$('spanShortTermBeniftAmount').style.display="none";
			$('shortTermBenefitAmount').selectedIndex=0;
			$('shortTermPlan').selectedIndex=0;
			$('longTermPlan').selectedIndex=0;
			$('longTermDurationElimination').selectedIndex=0;
			$('sic-selectors').style.display="none";
			$('mainIndustryCategories').selectedIndex=0;
			$('subIndustry').selectedIndex=0;
			$('subIndustry').disabled=true;
			$('industry').selectedIndex=0;
			$('industry').disabled=true;
			$('standardIndustryCode').value="";
			$('statusPercent').innerHTML="0%";
			$('statusBarIndicator').style.width = "0px";
			
			this.hideShowPage('page_' + 5, 'page_' + 1);
			this.page=1;
		}

		// All page validator functions will go below
		this.validatePageOne = function()
		{
			this.errors = new Array();

			if($('clientName').value == "")
			{
				this.errors[this.errors.length] = "Company name must be specified";
			}
			
			for(employeeCount = 1; employeeCount < this.employeeRowCount; employeeCount++)
			{
				if($('ageGroup' + employeeCount).selectedIndex == 0)
				{
					this.errors[this.errors.length] = "Employee " + employeeCount + " age group not selected.";
				}
				if($('ageGroupSalary' + employeeCount).value == "" || isNaN($('ageGroupSalary' + employeeCount).value))
				{
					this.errors[this.errors.length] = "Employee " + employeeCount + " annual salary must be a number.";
				}
			}

			if(this.errors.length == 0)
			{
				this.displayNextPage();
			}
			else
			{
				this.handleErrors();
			}
		}

		this.validatePageTwo = function()
		{
			this.errors = new Array();
			
			if($('groupTermBenefit').selectedIndex == 0)
			{
				this.errors[this.errors.length] = "You must choose a benefit type.";
			}

			if(($('groupTermBenefit').selectedIndex == 4) &&
			 	(
				$('groupTermBenefitAmount').value == "" || 
				isNaN($('groupTermBenefitAmount').value) ||
				parseInt($('groupTermBenefitAmount').value) < 15000 ||
				parseInt($('groupTermBenefitAmount').value) > 100000
				)
			   )
			{
				this.errors[this.errors.length] = "Please enter a rate between $15,000 and $100,000 rounded to the next $1,000.";
			}
			
			if($('dependents').selectedIndex== 1)
			{
				if($('dependentPlan').selectedIndex == 0)
				{
					this.errors[this.errors.length] = "Please enter a plan for dependent protection.";
				}
			}

			if(this.errors.length == 0)
			{
				this.displayNextPage();
			}
			else
			{
				this.handleErrors();
			}
		}

		this.validatePageThree = function()
		{
			this.errors = new Array();

//			if($('shortTermOptin').selectedIndex == 0)
			if(this.optinShortTerm)
			{
				if($('shortTermBenefit').selectedIndex == 0)
				{
					this.errors[this.errors.length] = "Please choose a benefit type";
				}
				
				if(($('shortTermBenefit').selectedIndex == 4) && ($('shortTermBenefitAmount').selectedIndex == 0)
				 	
				  )
				{
					this.errors[this.errors.length] = "Please choose a flat rate from the list provided.";
				}
				
				if($('shortTermPlan').selectedIndex == 0)
				{
					this.errors[this.errors.length] = "Please choose a short term benefit plan.";
				}
			}

			if(this.errors.length == 0)
			{
				this.displayNextPage();
			}
			else
			{
				this.handleErrors();
			}			
		}

		this.validatePageFour = function()
		{
			this.errors = new Array();

			if(this.optinLongTerm)
			{
				if($('longTermPlan').selectedIndex == 0)
				{
					this.errors[this.errors.length] = "Please choose a long term benefit options";
				}
				if($('longTermDurationElimination').selectedIndex == 0)
				{
					this.errors[this.errors.length] = "Please choose a Duration Option and an Eliminations Period";
				}
				if($('standardIndustryCode').value == "" || isNaN($('standardIndustryCode').value))
				{
					this.errors[this.errors.length] = "Please enter a valid Industry Code(SIC).";
				}else
			
				if(!this.returnSICModifier($('standardIndustryCode').value))
				{
					this.errors[this.errors.length] = "Please enter a valid Industry Code(SIC).";				
				}
			}


			if(this.errors.length == 0)
			{
				this.doCalculate();
				this.displayNextPage();
			}
			else
			{
				this.handleErrors();
			}			
		}
		
	}
