function StringToCents(str)
			{
				var digits = "-0123456789";
				var s;

				while (str.charAt(0) == " ") { str = str.substring(1, str.length); }
				while (str.charAt(str.length-1) == " ") { str = str.substring(0, str.length-1); }

				if (str.length == 0) { return(0); }
				if (str == '.') { return(-1); }

				s = str + "*";
				while (digits.indexOf(s.charAt(0)) > -1) { s = s.substring(1, s.length); }
				if (s.charAt(0) == ".") { s = s.substring(1, s.length); }
				if (digits.indexOf(s.charAt(0)) > -1) { s = s.substring(1, s.length); }
				if (digits.indexOf(s.charAt(0)) > -1) { s = s.substring(1, s.length); }

				if (s.length > 1) { return(-1); }

				return(Math.round(100*Number(str)));
			}

			function CentsToString(cents)
			{
				var str;
				var len;

				str = Math.abs(cents) + "";

				while (str.length < 3) { str = "0" + str; }

				len = str.length;
				str = str.substring(0, len-2) + "." + str.substring(len-2, len);

				if (cents < 0)
				{
					return("-" + str);
				}
				else
				{
					return(str);
				}
			}

			function Calculate()
			{
				var form = document.ReportForm;

			var fc1 = StringToCents(form.Forecast1.value); var a1 = StringToCents(form.Actual1.value);
			var fc2 = StringToCents(form.Forecast2.value); var a2 = StringToCents(form.Actual2.value);
			var fc3 = StringToCents(form.Forecast3.value); var a3 = StringToCents(form.Actual3.value);
			var fc4 = StringToCents(form.Forecast4.value); var a4 = StringToCents(form.Actual4.value);
			var fc4b = StringToCents(form.Forecast4b.value); var a4b = StringToCents(form.Actual4b.value);
			var fc5 = StringToCents(form.Forecast5.value); var a5 = StringToCents(form.Actual5.value);
			var fc6 = 0; var a6 = 0;
			var fc7 = StringToCents(form.Forecast7.value); var a7 = StringToCents(form.Actual7.value);
			var fc8 = StringToCents(form.Forecast8.value); var a8 = StringToCents(form.Actual8.value);
			var fc9 = StringToCents(form.Forecast9.value); var a9 = StringToCents(form.Actual9.value);
			var fc10 = StringToCents(form.Forecast10.value); var a10 = StringToCents(form.Actual10.value);
			var fc11 = StringToCents(form.Forecast11.value); var a11 = StringToCents(form.Actual11.value);
			var fc12 = StringToCents(form.Forecast12.value); var a12 = StringToCents(form.Actual12.value);
			var fc13 = StringToCents(form.Forecast13.value); var a13 = StringToCents(form.Actual13.value);
			var fc14 = StringToCents(form.Forecast14.value); var a14 = StringToCents(form.Actual14.value);
			var fc15 = StringToCents(form.Forecast15.value); var a15 = StringToCents(form.Actual15.value);
			var fc16 = StringToCents(form.Forecast16.value); var a16 = StringToCents(form.Actual16.value);
			var fc17 = StringToCents(form.Forecast17.value); var a17 = StringToCents(form.Actual17.value);
			var fc18 = StringToCents(form.Forecast18.value); var a18 = StringToCents(form.Actual18.value);
			var fc19 = StringToCents(form.Forecast19.value); var a19 = StringToCents(form.Actual19.value);
			var fc20 = StringToCents(form.Forecast20.value); var a20 = StringToCents(form.Actual20.value);
			var fc21 = StringToCents(form.Forecast21.value); var a21 = StringToCents(form.Actual21.value);
			var fc22 = StringToCents(form.Forecast22.value); var a22 = StringToCents(form.Actual22.value);
			var fc23 = StringToCents(form.Forecast23.value); var a23 = StringToCents(form.Actual23.value);
			var fc24 = StringToCents(form.Forecast24.value); var a24 = StringToCents(form.Actual24.value);
			var fc25 = StringToCents(form.Forecast25.value); var a25 = StringToCents(form.Actual25.value);
			var fc26 = StringToCents(form.Forecast26.value); var a26 = StringToCents(form.Actual26.value);
			var fc27 = StringToCents(form.Forecast27.value); var a27 = StringToCents(form.Actual27.value);
			var fc28 = StringToCents(form.Forecast28.value); var a28 = StringToCents(form.Actual28.value);
			var fc29 = StringToCents(form.Forecast29.value); var a29 = StringToCents(form.Actual29.value);
			var fc30 = StringToCents(form.Forecast30.value); var a30 = StringToCents(form.Actual30.value);
			var fc31 = StringToCents(form.Forecast31.value); var a31 = StringToCents(form.Actual31.value);
			var fc32 = 0; var a32 = 0;
			var fc33 = 0; var a33 = 0;
			var fc34 = StringToCents(form.Forecast34.value); var a34 = StringToCents(form.Actual34.value);
			var fc35 = StringToCents(form.Forecast35.value); var a35 = StringToCents(form.Actual35.value);
			var fc36 = StringToCents(form.Forecast36.value); var a36 = StringToCents(form.Actual36.value);
			var fc37 = StringToCents(form.Forecast37.value); var a37 = StringToCents(form.Actual37.value);
			var fc38 = StringToCents(form.Forecast38.value); var a38 = StringToCents(form.Actual38.value);
			var fc39 = StringToCents(form.Forecast39.value); var a39 = StringToCents(form.Actual39.value);
			var fc40 = 0; var a40 = 0;
			var fc41 = StringToCents(form.Forecast41.value); var a41 = StringToCents(form.Actual41.value);
			var fc42 = 0; var a42 = 0;
			var fc43 = 0; var a43 = 0;
			var fc44 = 0; var a44 = 0;
			var fc45 = 0; var a45 = 0;

			{

			form.Forecast1.value = CentsToString(fc1); form.Actual1.value = CentsToString(a1); form.Variance1.value = CentsToString(a1- fc1);
			form.Forecast2.value = CentsToString(fc2); form.Actual2.value = CentsToString(a2); form.Variance2.value = CentsToString(a2 - fc2);
			form.Forecast3.value = CentsToString(fc3); form.Actual3.value = CentsToString(a3); form.Variance3.value = CentsToString(a3 -  fc3);
			form.Forecast4.value = CentsToString(fc4); form.Actual4.value = CentsToString(a4); form.Variance4.value = CentsToString(a4 - fc4);
			form.Forecast4b.value = CentsToString(fc4b); form.Actual4b.value = CentsToString(a4b); form.Variance4b.value = CentsToString(a4b - fc4b);
			form.Forecast5.value = CentsToString(fc5); form.Actual5.value = CentsToString(a5); form.Variance5.value = CentsToString(a5 - fc5);
			var ttl_fc_1; var ttl_a_1; var ttl_v_1;
			ttl_fc_1 = (fc3 + fc4 + fc4b + fc5);
			ttl_a_1 = (a3 + a4 + a4b + a5);
			ttl_v_1 = (ttl_a_1 - ttl_fc_1);
			form.Forecast6.value = CentsToString(ttl_fc_1); form.Actual6.value = CentsToString(ttl_a_1); form.Variance6.value = CentsToString(ttl_v_1);
			form.Forecast7.value = CentsToString(fc7); form.Actual7.value = CentsToString(a7); form.Variance7.value = CentsToString(a7 - fc7);
			form.Forecast8.value = CentsToString(fc8); form.Actual8.value = CentsToString(a8); form.Variance8.value = CentsToString(a8 - fc8);
			form.Forecast9.value = CentsToString(fc9); form.Actual9.value = CentsToString(a9); form.Variance9.value = CentsToString(a9 - fc9);
			form.Forecast10.value = CentsToString(fc10); form.Actual10.value = CentsToString(a10); form.Variance10.value = CentsToString(a10 - fc10);
			form.Forecast11.value = CentsToString(fc11); form.Actual11.value = CentsToString(a11); form.Variance11.value = CentsToString(a11 - fc11);
			form.Forecast12.value = CentsToString(fc12); form.Actual12.value = CentsToString(a12); form.Variance12.value = CentsToString(a12 - fc12);
			form.Forecast13.value = CentsToString(fc13); form.Actual13.value = CentsToString(a13); form.Variance13.value = CentsToString(a13 - fc13);
			form.Forecast14.value = CentsToString(fc14); form.Actual14.value = CentsToString(a14); form.Variance14.value = CentsToString(a14 - fc14);
			form.Forecast15.value = CentsToString(fc15); form.Actual15.value = CentsToString(a15); form.Variance15.value = CentsToString(a15 - fc15);
			form.Forecast16.value = CentsToString(fc16); form.Actual16.value = CentsToString(a16); form.Variance16.value = CentsToString(a16 - fc16);
			form.Forecast17.value = CentsToString(fc17); form.Actual17.value = CentsToString(a17); form.Variance17.value = CentsToString(a17 - fc17);
			form.Forecast18.value = CentsToString(fc18); form.Actual18.value = CentsToString(a18); form.Variance18.value = CentsToString(a18 - fc18);
			form.Forecast19.value = CentsToString(fc19); form.Actual19.value = CentsToString(a19); form.Variance19.value = CentsToString(a19 - fc19);
			form.Forecast20.value = CentsToString(fc20); form.Actual20.value = CentsToString(a20); form.Variance20.value = CentsToString(a20 - fc20);
			form.Forecast21.value = CentsToString(fc21); form.Actual21.value = CentsToString(a21); form.Variance21.value = CentsToString(a21 - fc21);
			form.Forecast22.value = CentsToString(fc22); form.Actual22.value = CentsToString(a22); form.Variance22.value = CentsToString(a22 - fc22);
			form.Forecast23.value = CentsToString(fc23); form.Actual23.value = CentsToString(a23); form.Variance23.value = CentsToString(a23 - fc23);
			form.Forecast24.value = CentsToString(fc24); form.Actual24.value = CentsToString(a24); form.Variance24.value = CentsToString(a24 - fc24);
			form.Forecast25.value = CentsToString(fc25); form.Actual25.value = CentsToString(a25); form.Variance25.value = CentsToString(a25 - fc25);
			form.Forecast26.value = CentsToString(fc26); form.Actual26.value = CentsToString(a26); form.Variance26.value = CentsToString(a26 - fc26);
			form.Forecast27.value = CentsToString(fc27); form.Actual27.value = CentsToString(a27); form.Variance27.value = CentsToString(a27 - fc27);
			form.Forecast28.value = CentsToString(fc28); form.Actual28.value = CentsToString(a28); form.Variance28.value = CentsToString(a28 - fc28);
			form.Forecast29.value = CentsToString(fc29); form.Actual29.value = CentsToString(a29); form.Variance29.value = CentsToString(a29 - fc29);
			form.Forecast30.value = CentsToString(fc30); form.Actual30.value = CentsToString(a30); form.Variance30.value = CentsToString(a30 - fc30);
			form.Forecast31.value = CentsToString(fc31); form.Actual31.value = CentsToString(a31); form.Variance31.value = CentsToString(a31 - fc31);
			var ttl_fc_2; var ttl_a_2; var ttl_v_2;
			ttl_fc_2 = (fc6 + fc7 + fc8 + fc9 + fc10 + fc11 + fc12 + fc13 + fc14 + fc15 + fc16 + fc17 + fc18 + fc19 + fc20 + fc21 + fc22 + fc23 + fc24 + fc25 + fc26 + fc27 + fc28 + fc29 + fc30 + fc31 + fc32);
			ttl_a_2 = (a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30 + a31 + a32);
			var ttl_v_2 = (ttl_a_2 - ttl_fc_2);
			form.Forecast32.value = CentsToString(ttl_fc_2); form.Actual32.value = CentsToString(ttl_a_2); form.Variance32.value = CentsToString(ttl_v_2);
			var ttl_fc_3; var ttl_a_3; var ttl_v_3;
			ttl_fc_3 = (ttl_fc_1 - ttl_fc_2);
			ttl_a_3 = (ttl_a_1 - ttl_a_2);
			ttl_v_3 = (ttl_v_1 - ttl_v_2);
			form.Forecast33.value = CentsToString(ttl_fc_3); form.Actual33.value = CentsToString(ttl_a_3); form.Variance33.value = CentsToString(ttl_v_3);
			form.Forecast34.value = CentsToString(fc34); form.Actual34.value = CentsToString(a34); form.Variance34.value = CentsToString(a34 - fc34);
			form.Forecast35.value = CentsToString(fc35); form.Actual35.value = CentsToString(a35); form.Variance35.value = CentsToString(a35 - fc35);
			form.Forecast36.value = CentsToString(fc36); form.Actual36.value = CentsToString(a36); form.Variance36.value = CentsToString(a36 - fc36);
			form.Forecast37.value = CentsToString(fc37); form.Actual37.value = CentsToString(a37); form.Variance37.value = CentsToString(a37 - fc37);
			form.Forecast38.value = CentsToString(fc38); form.Actual38.value = CentsToString(a38); form.Variance38.value = CentsToString(a38 - fc38);
			form.Forecast39.value = CentsToString(fc39); form.Actual39.value = CentsToString(a39); form.Variance39.value = CentsToString(a39 - fc39);
			var ttl_fc_4; var ttl_a_4; var ttl_v_4;
			ttl_fc_4 = (fc32 + fc34 + fc35 + fc36 + fc37 + fc38 + fc39);
			ttl_a_4 = (a32 + a34 + a35 + a36 + a37 + a38 + a39);
			ttl_v_4 = (ttl_a_4 - ttl_fc_4);
			form.Forecast40.value = CentsToString(ttl_fc_4); form.Actual40.value = CentsToString(ttl_a_4); form.Variance40.value = CentsToString(ttl_v_4);
			form.Forecast41.value = CentsToString(fc41); form.Actual41.value = CentsToString(a41); form.Variance41.value = CentsToString(a41 - fc41);
			form.Forecast42.value = CentsToString(ttl_fc_3); form.Actual42.value = CentsToString(ttl_a_3); form.Variance42.value = CentsToString(ttl_v_3);
			form.Forecast43.value = CentsToString(ttl_fc_4); form.Actual43.value = CentsToString(ttl_a_4); form.Variance43.value = CentsToString(ttl_v_4);
			var ttl_fc_5; var ttl_a_5; var ttl_v_5;
			ttl_fc_5 = (ttl_fc_3 + ttl_fc_4);
			ttl_a_5 = (ttl_a_3 + ttl_a_4);
			ttl_v_5 = (ttl_v_3 + ttl_v_4);
			form.Forecast44.value = CentsToString(ttl_fc_5); form.Actual44.value = CentsToString(ttl_a_5); form.Variance44.value = CentsToString(ttl_v_5);
			form.Forecast45.value = CentsToString(fc41 + ttl_fc_5); form.Actual45.value = CentsToString(a41 + ttl_a_5); form.Variance45.value = CentsToString((a41 - fc41) + ttl_v_5);
			form.Forecast46.value = CentsToString(fc41 + ttl_fc_5); form.Actual46.value = CentsToString(a41 + ttl_a_5); form.Variance46.value = CentsToString((a41 - fc41) + ttl_v_5);
			form.submit()
			
				}
			}

			var NS = (window.Event) ? 1 : 0;

			function checkKey(e) {
			  var code = (NS) ? e.which : event.keyCode;
			  
			  if (code == "13"){
				return false; }
			}

			document.onkeypress = checkKey;