function doCalc(col)
{
	var income = 0;
	var inputVals = new Array(6)
	inputVals = verifyInput(col);
	for(i = 0; i < 3;i++){
		income = income + parseFloat(inputVals[i]);
	}
	incumm = income;
	taxCapGain = parseFloat(inputVals[i]) / 2;
	i = i + 1;
	taxDiv =parseFloat(inputVals[i]) * 1.25;
	income = income + taxCapGain + taxDiv;
	i = i + 1;
	RRSP = parseFloat(inputVals[i]);
	income = income - RRSP;
	if(income < 0){
		income = 0;
	}
	val1 = Math.min(parseFloat(inputVals[0]), 41100);
	val2 = Math.min(parseFloat(inputVals[1]), 41100);
	CPP = Math.min(val1 + val2, 41100);
	CPP = CPP - 3500;
	if(CPP < 0){
		CPP = 0;
	}else{
		CPP = CPP * .0495;
	}
	taxBill = calculateTaxes(income,taxCapGain,taxDiv, CPP);
	eval("document.calcForm.A" + col + ".value = formatCurr(taxCapGain);");
	eval("document.calcForm.B" + col + ".value = formatCurr(taxDiv);");
	eval("document.calcForm.C" + col + ".value = formatCurr(income);");
	eval("document.calcForm.D" + col + ".value = formatCurr(taxBill);");
	incumm = incumm + parseFloat(inputVals[3]) + parseFloat(inputVals[4]) - parseFloat(inputVals[5]);
	if(incumm > 0){
		eval("document.calcForm.E" + col + ".value = formatPercent((taxBill / incumm) * 100);");
	}else{
		eval("document.calcForm.E" + col + ".value = formatPercent(0);");
	}
}
function verifyInput(col)
{
	var formElts = new Array("one","two","three","four","five","six");
	var retVals = new Array(6);
	for(i = 0; i < 6; i++){
		num = eval("document.calcForm." + formElts[i] + col + ".value");
		if(num == ""){
			num = "0";
		}
		num = num.replace(/\$|\,/g,'');
		if(isNaN(num)){
			retVals[i] = 0;
			eval("document.calcForm." + formElts[i] + col + ".value = 0");
			alert(num + " is not a number.");
		}else{
			retVals[i] = num;
		}
	}
	return retVals;
}
function calculateTaxes(income,taxCapGain,taxDiv,CPP)
	{
		var fedTax, fedCred, bcTax, bcCred;

		if(income < 35595){ // calculate federal tax
			fedTax = income * .16;
		}else{
			fedTax = 35595 * .16;
			if(income < 71190){
				fedTax = fedTax + (income - 35595) * .22;
			}else{
				fedTax = fedTax + (71190 - 35595) * .22;
				if(income < 115739){
					fedTax = fedTax + (income - 71190) * .26;
				}else{
					fedTax = fedTax + (115739 - 71190) * .26;
					fedTax = fedTax + (income - 115739) * .29;
				}
			}
		}
		fedCred = .16 * 8148 + .13333333333333 * taxDiv;// + CPP * .16;
		fedTax = fedTax - fedCred;
		if(fedTax < 0){
			fedTax = 0;
		}
		if(income < 33061){ // calculate bc tax
			bcTax = income * .0605;
		}else{
			bcTax = 33061 * .0605;
			if(income < 66123){
				bcTax = bcTax + (income - 33061) * .0915;
			}else{
				bcTax = bcTax + (66123 - 33061) * .0915;
				if(income < 75917){
					bcTax = bcTax + (income - 66123) * .117;
				}else{
					bcTax = bcTax + (75917 - 66123) * .117;
					if(income < 92185){
						bcTax = bcTax + (income - 75917) * .137;
					}else{
						bcTax = bcTax + (92185 - 75917) * .137;
						bcTax = bcTax + (income - 92185) * .147;
					}
				}
			}
		}
		bcCred = .0605 * 8676 + .051 * taxDiv;
		bcTax = bcTax - bcCred;
		if(bcTax < 0){
			bcTax = 0;
		}
		return fedTax + bcTax;
	}
function formatCurr(num)
{
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)){
		num = "0";
	}
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}
function formatPercent(num)
{
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*10+0.50000000001);
	cents = num%10;
	num = Math.floor(num/10).toString();
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + num + '.' + cents + '%');
}
function doClear(col)
{
	var formElts = new Array("one","two","three","four","five","six");
	var rptElts = new Array("A","B","C","D","E");
	for(i = 0; i < 6; i++){
		eval("document.calcForm." + formElts[i] + col + ".value = \"\"");
	}
	for(i = 0; i < 5; i++){
		eval("document.calcForm." + rptElts[i] + col + ".value = \"\"");
	}
}