function calculate(){
var states = new Array;
states[0] = "AK";
states[1] = "AL";
states[2] = "AR";
states[3] = "AZ";
states[4] = "CA";
states[5] = "CO";
states[6] = "CT";
states[7] = "DC";
states[8] = "DE";
states[9] = "FL";
states[10] = "GA";
states[11] = "HI";
states[12] = "IA";
states[13] = "ID";
states[14] = "IL";
states[15] = "IN";
states[16] = "KS";
states[17] = "KY";
states[18] = "LA";
states[19] = "MA";
states[20] = "MD";
states[21] = "ME";
states[22] = "MI";
states[23] = "MN";
states[24] = "MO";
states[25] = "MS";
states[26] = "MT";
states[27] = "NC";
states[28] = "ND";
states[29] = "NE";
states[30] = "NH";
states[31] = "NJ";
states[32] = "NM";
states[33] = "NV";
states[34] = "NY";
states[35] = "OH";
states[36] = "OK";
states[37] = "OR";
states[38] = "PA";
states[39] = "RI";
states[40] = "SC";
states[41] = "SD";
states[42] = "TN";
states[43] = "TX";
states[44] = "UT";
states[45] = "VA";
states[46] = "VT";
states[47] = "WA";
states[48] = "WI";
states[49] = "WV";
states[50] = "WY";

var AL = new Array;
AL[0] = 49860;
AL[1] = 35748;
AL[2] = 33129;
AL[3] = 31644;
AL[4] = 32421.33;
AL[5] = 32935.64;
AL[6] = 34605.23;
AL[7] = 35414.57;
AL[8] = 36454.40;
AL[9] = 35662;
AL[10] = 35358.60;
AL[11] = 35310.86;
AL[12] = 35094.55;
AL[13] = 35089.57;
AL[14] = 35566.62;
AL[15] = 35260.29;
AL[16] = 35040.41;
AL[17] = 35060.52;
AL[18] = 34789.45;
AL[19] = 35640.00;
AL[20] = 35910.81;
AL[21] = 36198.95;
AL[22] = 35996.70;
AL[23] = 35708.00;
AL[24] = 35467.64;
AL[25] = 35117.33;
AL[26] = 34986.78;
AL[27] = 35054.75;
AL[28] = 34746.61;
AL[29] = 34782.24;
AL[30] = 34923.76;
AL[31] = 35405.21;
AL[32] = 35322.89;
AL[33] = 35228.95;
AL[34] = 35364.62;
AL[35] = 35465.31;
AL[36] = 35312.00;
AL[37] = 35200.06;
AL[38] = 35122.76;
AL[39] = 35124.17;
AL[40] = 34952.28;
AL[41] = 34820.33;
AL[42] = 34805.68;
AL[43] = 34815.27;
AL[44] = 34750.92;
AL[45] = 34972.50;
AL[46] = 34989.48;
AL[47] = 34911.18;
AL[48] = 34964.05;
AL[49] = 34938.70;
AL[50] = 34863.72;
AL[51] = 0;

var NH = new Array;
NH[0] = 172645;
NH[1] = 91006.66;
NH[2] = 79205;
NH[3] = 71357.5;
NH[4] = 69917.77;
NH[5] = 67657.72;
NH[6] = 73617.69;
NH[7] = 75346.42;
NH[8] = 74922.33;
NH[9] = 72553.88;
NH[10] = 70554.5;
NH[11] = 71348.80;
NH[12] = 70561.13;
NH[13] = 69984.78;
NH[14] = 68353.26;
NH[15] = 67160;
NH[16] = 66455.17;
NH[17] = 65782.41;
NH[18] = 64129.39;
NH[19] = 65971.14;
NH[20] = 66163.64;
NH[21] = 66401.18;
NH[22] = 66101.5;
NH[23] = 66030.23;
NH[24] = 65086.13;
NH[25] = 64815.88;
NH[26] = 64549.45;
NH[27] = 64201.97;
NH[28] = 64292.14;
NH[29] = 64086.7;
NH[30] = 64397.45;
NH[31] = 65197.26;
NH[32] = 65172.77;
NH[33] = 65076.18;
NH[34] = 66776.12;
NH[35] = 66537.70;
NH[36] = 65676.82;
NH[37] = 65464.15;
NH[38] = 65769.77;
NH[39] = 65874.56;
NH[40] = 65458.38;
NH[41] = 65294.44;
NH[42] = 64974.93;
NH[43] = 64059.87;
NH[44] = 63860.96;
NH[45] = 63966.25;
NH[46] = 64082.28;
NH[47] = 64261.98;
NH[48] = 64390.29;
NH[49] = 64401.27;
NH[50] = 64273.56;
NH[51] = 0; 

var HC = new Array;
HC[0] = 64240;
HC[1] = 46720;
HC[2] = 45260;
HC[3] = 48180;
HC[4] = 51262.22;
HC[5] = 54683.63;
HC[6] = 56153.84;
HC[7] = 55688.57;
HC[8] = 55674.66;
HC[9] = 54182.22;
HC[10] = 53582;
HC[11] = 53672.38;
HC[12] = 54152.72;
HC[13] = 53829.56;
HC[14] = 53570.76;
HC[15] = 53707.14;
HC[16] = 53466.20;
HC[17] = 53501.93;
HC[18] = 52560;
HC[19] = 53227.42;
HC[20] = 52954.59;
HC[21] = 53021.05;
HC[22] = 52998;
HC[23] = 54159.04;
HC[24] = 53953.63;
HC[25] = 53728;
HC[26] = 53639.13;
HC[27] = 53472.5;
HC[28] = 53334.69;
HC[29] = 53436;
HC[30] = 53705.09;
HC[31] = 53772.07;
HC[32] = 53749.62;
HC[33] = 53834.18;
HC[34] = 53717.93;
HC[35] = 53852.45;
HC[36] = 53718.73;
HC[37] = 53772.92;
HC[38] = 53676.47;
HC[39] = 53829.56;
HC[40] = 53588.16;
HC[41] = 53573.88;
HC[42] = 53585.94;
HC[43] = 53394.28;
HC[44] = 53570.76;
HC[45] = 53436;
HC[46] = 53893.82;
HC[47] = 53932.04;
HC[48] = 54071.52;
HC[49] = 53986.04;
HC[50] = 53969.65; 
HC[51] = 0;

	if(isNaN(document.form1.monthly.value)==true){
		alert("Monthly amount not a number?");
		return;
	}
	var monthlypayment=parseInt(document.form1.monthly.value);

	if(monthlypayment ==""){validatePrompt(document.form1.monthly,"Please fill in Monthly Payments");return;}
	var P=monthlypayment *12;
	var q=1;//coumpunded once a year
	if(isNaN(document.form1.years.value)==true){
		alert("Number of years not a number?");
		return;
	}
	var n=parseInt(document.form1.years.value);
	if(n ==""){validatePrompt(document.form1.years,"Please fill in number of years you will need LTC");return;}
	
	if(isNaN(document.form1.apr.value)==true){
		alert("Annual rate not a number?");
		return;
	}
	
	var r=parseFloat(document.form1.apr.value);

	if(r ==""){validatePrompt(document.form1.apr,"Please enter the annual rate of return ");return;}
	var st = document.form1.state.value;
	var ind = 51; //states.lastIndexOf((st));
	for(i=0;i<=50;i++) { 
		if(st == states[i]) {
			ind = i;
			break;
		}
	}
	var arr = "";
	if(document.form1.type[0].checked) { 
		arr = "AL";
	} else if(document.form1.type[1].checked) { 
		arr = "NH";
	} else if(document.form1.type[2].checked) { 
		arr = "HC";
	}
	var amount = 0;
	if(arr == "AL") {
		amount = AL[ind];
	} else if(arr == "NH") { 
		amount = NH[ind];
	} else if(arr == "HC") {
		amount = HC[ind];
	}
	
	var LTC=Math.round(amount*Math.pow((1+5/(q*100)),n*q));
	r= r/100;
	var z=1+r;
	var ny=n+1;
	var rm=1+r;
	
	var A=Math.round(P*((Math.pow(z,ny)-rm)/r));
	var save=A-LTC;

	//prompt("Value is "+A);
	document.form1.resultamount.value=A;
	document.form1.resultyear.value=n;
	document.form1.ltcyears.value=n;
	document.form1.ltcamount.value=LTC;
	document.form1.savings.value=save;
	

	}

	function validatePrompt (Ctrl, PromptStr) {
	alert (PromptStr)
	Ctrl.focus();
	return;
}
