/* Functions for SMA calculators
	April 2003 - jmildenb
*/
// Premium Functions ----------------------------------------------------------
	
	
	function validate_age(who) {
		var form = document.prem_calc;
		if(who=="em_life") {
			if(!form.em_age.value.match(/\d/g)){alert("Please enter your age."); form.em_age.focus(); return false;}
		}
		if(who=="sp_life") {
			if(!form.sp_age.value.match(/\d/g)){alert("Please enter your age."); form.sp_age.focus(); return false;}
		}
		if(who=="em_dis") {
			if(!form.em_age.value.match(/\d/g) || form.em_age.value==0){alert("Please enter your age."); form.em_age.focus(); return false;}
			if(!form.em_salary.value.match(/\d/g) || form.em_salary.value==0){alert("Please enter your salary."); form.em_salary.focus(); return false;}
		}
		return true;
	}
	
	
	function calc_LifePrems(who) {
		var form = document.prem_calc;
		if(who=="em_life" && validate_age(who)) { // physician life
			with (form) {
				emAmtLife = document.prem_calc.em_life_wants[document.prem_calc.em_life_wants.selectedIndex].value -0;
				emAmtAdd = document.prem_calc.em_add_wants[document.prem_calc.em_add_wants.selectedIndex].value -0;
				//alert(emAmtAdd);
				if (emAmtLife==-1) {
					monthlyPremLife = 0;
				}else{
					monthlyPremLife =  emLifeRate(em_age.value,emAmtLife);		
				}
				if (emAmtAdd==-1) {
					monthlyPremAdd = 0;
				}else{
					monthlyPremAdd =  emAddRate(emAmtAdd);
				}
				
				emLifePrem.value = formatAsCurrency(monthlyPremLife);
				emAddPrem.value = formatAsCurrency(monthlyPremAdd);	
				// Adds both premiums together
				//emPrem.value = formatAsCurrency(monthlyPremLife+monthlyPremAdd);
			}
		}
		if(who=="sp_life" && validate_age(who)) {  // spouse life
			with (form) {
				spAmtLife = document.prem_calc.sp_life_wants[document.prem_calc.sp_life_wants.selectedIndex].value -0;
				spAmtAdd = document.prem_calc.sp_add_wants[document.prem_calc.sp_add_wants.selectedIndex].value -0;
				//alert(spAmtAdd);
				if (spAmtLife==-1) {
					monthlyPremLife = 0;
				}else{
					monthlyPremLife =  spLifeRate(sp_age.value,spAmtLife);			
				}
				if (spAmtAdd==-1) {
					monthlyPremAdd = 0;
				}else{
					monthlyPremAdd =  spAddRate(spAmtAdd);			
				}
				
				spLifePrem.value = formatAsCurrency(monthlyPremLife);
				spAddPrem.value = formatAsCurrency(monthlyPremAdd);
				//spPrem.value = formatAsCurrency(monthlyPremLife+monthlyPremAdd);
			}
		}
	
	}
/* > Employee Life Rates < */
	function emLifeRate(myAge,myAmtL) {
		if(myAge < 30){var ageArray = new Array(1.53,3.06,4.59,6.12,7.65,9.18,10.71,12.24,13.77,15.30,16.83,18.36,19.89,21.42,22.95,24.48,26.01,27.54,29.07,30.60,32.13,33.66,35.19,36.72,38.25,39.78,41.31,42.84,44.37,45.90,47.43,48.96,50.49,52.02,53.55,55.08,56.61,58.14,59.67,61.20,62.73,64.26,65.79,67.32,68.85,69.87,71.91,73.44,74.97,76.50);}
		if(myAge >=30 && myAge <=34){var ageArray = new Array(2.30,4.59,6.89,9.18,11.48,13.77,16.07,18.36,20.66,22.95,25.25,27.54,29.84,32.13,34.43,36.72,39.02,41.31,43.61,45.90,48.20,50.49,52.79,55.08,57.38,59.67,61.97,64.26,66.56,68.85,71.15,73.44,75.74,78.03,80.33,82.62,84.92,87.21,89.51,91.80,94.10,96.39,98.69,100.98,103.28,105.57,107.87,110.16,112.46,114.75);}
		if(myAge >=35 && myAge <=39){var ageArray = new Array(2.76,5.53,8.24,10.98,13.73,16.49,19.25,22.01,24.78,27.54,30.30,33.07,35.83,38.59,41.35,44.12,46.88,49.64,52.40,55.16,57.93,60.69,63.45,66.22,68.98,71.74,74.50,77.27,80.03,82.79,85.55,88.32,91.08,93.84,96.60,99.37,102.13,104.89,107.65,110.42,113.18,115.94,118.70,121.46,124.23,126.99,129.75,132.52,135.28,138.04);}
		if(myAge >=40 && myAge <=44){var ageArray = new Array(4.12,8.24,12.37,16.49,20.61,24.74,28.86,32.98,37.10,41.23,45.35,49.47,53.59,57.71,61.84,65.96,70.08,74.21,78.33,82.45,86.57,90.70,94.82,98.94,103.06,107.18,111.31,115.43,119.55,123.68,127.80,131.92,136.04,140.17,144.29,148.41,152.53,156.65,160.78,164.90,169.02,173.15,177.27,181.39,185.51,189.64,193.76,197.88,202.00,206.12);}
		if(myAge >=45 && myAge <=49){var ageArray = new Array(7.22,14.45,21.68,28.90,36.13,43.35,50.57,57.80,65.03,72.25,79.48,86.70,93.92,101.15,108.38,115.60,122.83,130.05,137.27,144.50,151.73,158.95,166.18,173.40,180.62,187.85,195.08,202.30,209.53,216.75,223.97,231.20,238.43,245.65,252.88,260.10,267.32,274.55,281.78,289.00,296.23,303.45,310.67,317.90,325.13,332.35,339.58,346.80,354.02,361.25);}
		if(myAge >=50 && myAge <=54){var ageArray = new Array(12.62,25.25,37.92,50.56,63.20,75.82,88.44,101.06,113.69,126.31,138.93,151.55,164.18,176.80,189.42,202.04,214.67,227.29,239.91,252.55,265.16,277.78,290.40,303.02,315.65,328.27,340.89,353.51,366.14,378.76,391.38,404.00,416.63,429.25,441.87,454.49,467.12,479.74,492.36,504.98,517.61,530.23,542.85,555.47,568.10,580.72,593.34,605.96,618.59,631.21);}
		if(myAge >=55 && myAge <=59){var ageArray = new Array(20.78,41.57,62.35,83.13,103.91,124.70,145.48,166.26,187.04,207.83,228.61,249.39,270.17,290.96,311.74,332.52,353.30,374.09,394.87,415.65,436.43,457.22,478.00,498.78,519.56,540.35,561.13,581.91,602.69,623.48,644.26,665.04,685.82,706.61,727.39,748.17,768.95,789.74,810.52,831.30,852.08,872.87,893.65,914.43,935.21,956.00,976.78,997.56,1018.34,1039.13);}
		if(myAge >=60 && myAge <=64){var ageArray = new Array(36.72,73.44,110.16,146.88,183.60,220.32,257.04,293.76,330.48,367.20,403.92,440.64,477.36,514.08,550.80,587.52,624.24,660.96,697.68,734.40,771.12,807.84,844.56,881.28,918.00,954.72,991.44,1028.16,1064.88,1101.60,1138.32,1175.04,1211.76,1248.48,1285.20,1321.92,1358.64,1395.36,1432.08,1468.80,1505.52,1542.24,1578.96,1615.68,1652.40,1689.12,1725.84,1762.56,1799.28,1836.00);}
		if(myAge >=65 && myAge <=69){var ageArray = new Array(27.54,55.08,82.62,110.16,137.70,165.24,192.78,220.32,247.86,275.40,302.94,330.48,358.02,385.56,413.10,440.64,468.18,495.72,523.26,550.80,578.34,605.88,633.42,660.96,688.50,716.04,743.58,771.12,798.66,826.20,853.74,881.28,908.82,936.36,963.90,991.44,1018.98,1046.52,1074.06,1101.60,1129.14,1156.68,1184.22,1211.76,1239.30,1266.84,1294.38,1321.92,1349.46,1377.00);}
		if(myAge >=70){alert("Coverage not available."); return 0;}
		
		return ageArray[myAmtL];
	}
	
	function emAddRate(myAmtA) {
		var amtArray = new Array(1.32,2.63,3.90,5.20,6.50,7.82,9.14,10.46,11.77,13.09,14.41,15.73,17.04,18.36,19.68,20.99,22.31,23.63,24.95,26.27,27.58,28.90,30.22,31.54,32.85,34.17,35.49,36.80,38.12,39.44,40.76,42.08,43.39,44.71,46.03,47.35,48.66,49.98,51.30,52.61,53.93,55.25,56.57,57.89,59.20,60.52,61.84,63.16,64.47,65.79);
		return amtArray[myAmtA];
	}
/* > Spouse Life Rates < */
	function spLifeRate(myAge,myAmtL) {
		if(myAge < 30){var ageArray = new Array(0.53,1.05,1.58,2.11,2.63,3.16,3.69,4.22,4.74,5.27,5.80,6.32,6.85,7.38,7.91,8.43,8.96,9.49,10.01,10.54,11.07,11.60,12.12,12.65,13.18,13.70,14.23,14.76,15.28,15.81,16.34,16.86,17.39,17.92,18.44,18.97,19.50,20.03,20.55,21.08,21.61,22.13,22.66,23.19,23.72,24.24,24.77,25.30,25.82,26.35);}
		if(myAge >=30 && myAge <=34){var ageArray = new Array(0.77,1.53,2.30,3.06,3.83,4.59,5.36,6.12,6.89,7.65,8.42,9.18,9.95,10.71,11.48,12.24,13.01,13.77,14.54,15.30,16.07,16.83,17.60,18.36,19.13,19.89,20.66,21.42,22.19,22.95,23.72,24.48,25.25,26.01,26.78,27.54,28.31,29.07,29.84,30.60,31.37,32.13,32.90,33.66,34.43,35.19,35.96,36.72,37.49,38.25)}
		if(myAge >=35 && myAge <=39){var ageArray = new Array(1.00,2.01,3.01,4.01,5.02,6.02,7.02,8.03,9.03,10.03,11.03,12.04,13.04,14.04,15.05,16.05,17.05,18.05,19.06,20.06,21.06,22.07,23.07,24.07,25.07,26.08,27.08,28.08,29.09,30.09,31.09,32.10,33.10,34.10,35.11,36.11,37.11,38.12,39.12,40.12,41.12,42.13,43.13,44.13,45.14,46.14,47.14,48.14,49.15,50.15)}
		if(myAge >=40 && myAge <=44){var ageArray = new Array(1.86,3.72,5.59,7.45,9.31,11.17,13.03,14.89,16.75,18.62,20.48,22.34,24.20,26.06,27.92,29.78,31.65,33.51,35.37,37.23,39.09,40.95,42.82,44.68,46.54,48.40,50.26,52.12,53.98,55.85,57.71,59.57,61.43,63.29,65.15,67.01,68.88,70.74,72.60,74.46,76.32,78.18,80.05,81.91,83.77,85.63,87.49,89.35,91.21,93.08)}
		if(myAge >=45 && myAge <=49){var ageArray = new Array(3.15,6.31,9.46,12.62,15.77,18.92,22.08,25.23,28.38,31.54,34.69,37.84,41.00,44.15,47.30,50.46,53.61,56.76,59.92,63.07,66.22,69.38,72.53,75.68,78.84,81.99,85.15,88.30,91.45,94.61,97.76,100.91,104.07,107.22,110.37,113.53,116.68,119.83,122.99,126.14,129.29,132.45,135.60,138.75,141.91,145.06,148.21,151.37,154.52,157.67)}
		if(myAge >=50 && myAge <=54){var ageArray = new Array(5.17,10.34,15.50,20.67,25.84,31.01,36.18,41.34,46.51,51.68,56.85,62.02,67.19,72.35,77.52,82.69,87.86,93.02,98.19,103.36,108.53,113.70,118.86,124.03,129.20,134.37,139.54,144.71,149.87,155.04,160.21,165.38,170.54,175.71,180.88,186.05,191.22,196.38,201.55,206.72,211.89,217.06,222.23,227.39,232.56,237.73,242.90,248.06,253.23,258.40)}
		if(myAge >=55 && myAge <=59){var ageArray = new Array(7.74,15.49,23.23,30.97,38.72,46.46,54.21,61.95,69.69,77.44,85.18,92.92,100.67,108.41,116.15,123.90,131.64,139.38,147.13,154.87,162.61,170.36,178.10,185.84,193.59,201.33,209.08,216.82,224.56,232.31,240.05,247.79,255.54,263.28,271.02,278.77,286.51,294.25,302.00,309.74,317.48,325.23,332.97,340.71,348.46,356.20,363.94,371.69,379.43,387.17)}
		if(myAge >=60 && myAge <=64){var ageArray = new Array(12.48,24.96,37.43,49.91,62.39,74.87,87.35,99.83,112.30,124.78,137.26,149.74,162.21,174.69,187.17,199.65,212.13,224.60,237.08,249.56,262.04,274.52,287.00,299.47,311.95,324.43,336.91,349.38,361.86,374.34,386.82,399.30,411.77,424.25,436.73,449.21,461.69,474.17,486.64,499.12,511.60,524.08,536.55,549.03,561.51,573.99,586.47,598.94,611.42,623.90)}
		if(myAge >=65 && myAge <=69){var ageArray = new Array(9.38,18.75,28.13,37.50,46.88,56.25,65.63,75.00,84.38,93.76,103.13,112.51,121.88,131.26,140.63,150.01,159.38,168.76,178.14,187.51,196.89,206.26,215.64,225.01,234.39,243.76,253.14,262.52,271.89,281.27,290.64,300.02,309.39,318.77,328.14,337.52,346.89,356.27,365.65,375.02,384.40,393.77,403.15,412.52,421.90,431.27,440.65,450.02,459.40,468.77)}
		if(myAge >=70){alert("Coverage not available."); return 0;}
		
		return ageArray[myAmtL];
	}

	function spAddRate(myAmtA) {
		var amtArray = new Array(0.48,0.95,1.43,1.91,2.38,2.86,3.33,3.81,4.28,4.76,5.24,5.71,6.19,6.66,7.14,7.62,8.09,8.57,9.05,9.52,10.00,10.47,10.95,11.42,11.90,12.38,12.85,13.33,13.80,14.28,14.76,15.23,15.71,16.19,16.66,17.14,17.61,18.09,18.56,19.04,19.52,19.99,20.47,20.94,21.42,21.90,22.37,22.85,23.33,23.80);
		return amtArray[myAmtA];
	}

// Disability ----------------------------------------------------------------------
	
	function calcDisPrems(what) {
		var form = document.prem_calc;
		
		if(what=="em_LTD" && validate_age('em_dis')) {  // LTD
			
			
			with (form) {
				emBWP = document.prem_calc.em_ltd_bwp[document.prem_calc.em_ltd_bwp.selectedIndex].value -0;
				
				emSalary = em_salary.value.replace(/,/g,'')-0;			
				monthlySal =  emSalary / 12;
		
				var adjSal = Math.floor((monthlySal * .6) / 100);
				if(adjSal > 5000) {adjSal=5000;}
				
				if (emBWP==-1) {
					quarterlyRateLTD = 0;
					alert("Please choose a benefit waiting period.");
				}else{
					quarterlyRateLTD =  adjSal * emLTDRate(em_age.value,emBWP);
					
				}	
			emLTDPrem.value = formatAsCurrency(quarterlyRateLTD);
			}
				
		}
		
		
		if(what=="em_STD" && validate_age('em_dis')) {  // STD
			
			if(document.prem_calc.em_std_benefit==null || document.prem_calc.em_std_benefit.value==-1){alert("Use the Benefit Amount button,\nthen select a benefit amount.");}
				else{
			with (form) {
				emStdBen = document.prem_calc.em_std_benefit[document.prem_calc.em_std_benefit.selectedIndex].value -0;
				
				if (isNaN(stdOpt)) {
					alert("Please select a plan.");
					return false;
				}else{
					quarterlyPremSTD =  emSTDRate(em_age.value,stdOpt) * (emStdBen/100);
				}	
			emSTDPrem.value = formatAsCurrency(quarterlyPremSTD);
			}
				} //end else
		}
	}
	
	function emLTDRate(myAge,myBWP) {
		if(myAge < 30){var ageArray = new Array(1.91,1.62);}
		if(myAge >=30 && myAge <=34){var ageArray = new Array(2.13,1.81);}
		if(myAge >=35 && myAge <=39){var ageArray = new Array(2.69,2.29);}
		if(myAge >=40 && myAge <=44){var ageArray = new Array(5.47,4.78);}
		if(myAge >=45 && myAge <=49){var ageArray = new Array(8.20,7.17);}
		if(myAge >=50 && myAge <=54){var ageArray = new Array(11.49,10.41);}
		if(myAge >=55 && myAge <=59){var ageArray = new Array(19.15,17.34);}
		if(myAge >=60 && myAge <=64){var ageArray = new Array(13.87,11.71);}
		if(myAge >=65){alert("Coverage not available."); }
		
		return ageArray[myBWP];
	}
	
	function emSTDRate(myAge,myOpt) {
		if(myAge < 30){var ageArray = new Array(25.89,32.04,18.09,24.45);}
		if(myAge >=30 && myAge <=34){var ageArray = new Array(27.78,34.98,19.20,26.70);}
		if(myAge >=35 && myAge <=39){var ageArray = new Array(18.03,24.36,12.12,18.63);}
		if(myAge >=40 && myAge <=44){var ageArray = new Array(13.89,20.22,8.97,15.48);}
		if(myAge >=45 && myAge <=49){var ageArray = new Array(15.66,23.34,10.02,17.88);}
		if(myAge >=50 && myAge <=54){var ageArray = new Array(17.73,26.40,11.31,20.25);}
		if(myAge >=55 && myAge <=59){var ageArray = new Array(23.91,35.70,15.24,27.39);}
		if(myAge >=60 && myAge <=64){var ageArray = new Array(29.55,44.04,18.87,33.78);}
		if(myAge >=65){alert("Coverage not available."); }
		
		return ageArray[myOpt];
	}