function zero(amount) {
var i = parseFloat(amount);
if(isNaN(i)) { i = 0.00; }
var minus = '';
if(i < 0) { minus = '-'; }
i = Math.abs(i);
i = parseInt((i + .005) * 100);
i = i / 100;
s = new String(i);
if(s.indexOf('.') < 0) { s += '.00'; }
if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
s = minus + s;
return s;
}

function comma(srcNumber) {
var txtNumber = '' + srcNumber;
if (isNaN(txtNumber) || txtNumber == "") {
alert("Oops!  That does not appear to be a valid number.  Please try again.");
fieldName.select();
fieldName.focus();
}
else {
var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
var arrNumber = txtNumber.split('.');
arrNumber[0] += '.';
do {
arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
} while (rxSplit.test(arrNumber[0]));
if (arrNumber.length > 1) {
return arrNumber.join('');
}
else {
return arrNumber[0].split('.')[0];
      }
   }
}


function calculate() {
	var pigsweaned = eval(document.calcform.pigsweaned.value);
	var costweanedpig = eval(document.calcform.costweanedpig.value);
	var nurseryliv = eval((document.calcform.nurseryliv.value)/100);
	var finliv = eval((document.calcform.finliv.value)/100);
	var avgweight = eval(document.calcform.avgweight.value);
	var nurseryfeed = eval(document.calcform.nurseryfeed.value);
	var finisherfeed = eval(document.calcform.finisherfeed.value);
	var nurserycon = eval(document.calcform.nurserycon.value);
	var fincon = eval(document.calcform.fincon.value);
	var nurserymed = eval(document.calcform.nurserymed.value);
	var finmed = eval(document.calcform.finmed.value);
	var finfeedlb = eval(document.calcform.finfeedlb.value);
	var efficiency = eval(document.calcform.efficiency.value);
	
	var sowfarmimp = eval(document.calcform.sowfarmimp.value);
	var sowfarmperc = eval(document.calcform.sowfarmperc.value);
	var nlivimp = eval(document.calcform.nlivimp.value);
	var flivimp = eval(document.calcform.flivimp.value);
	var finwtimp = eval(document.calcform.finwtimp.value);
	var finwtcost = eval(document.calcform.finwtcost.value);
	var finishwt = eval(document.calcform.finishwt.value);
	var adcostmilk = eval(document.calcform.adcostmilk.value);
	var adcostmate = eval(document.calcform.adcostmate.value);
	
	// ADDITIONAL COSTS
	var nurscostfeed = eval(document.calcform.nurseryfeed.value);
	document.calcform.nurscostfeed.value = zero(nurscostfeed);
	var nurscostcon = eval(document.calcform.nurserycon.value);
	document.calcform.nurscostcon.value = zero(nurscostcon);
	var nurscostmed = eval(document.calcform.nurserymed.value);
	document.calcform.nurscostmed.value = zero(nurscostmed);
	var nurscostpig = eval(nurscostfeed + nurscostcon + nurscostmed);
	document.calcform.nurscostpig.value = zero(nurscostpig);
	var fincostfeed = eval(document.calcform.finisherfeed.value);
	document.calcform.fincostfeed.value = zero(fincostfeed);
	var fincostcon = eval(document.calcform.fincon.value);
	document.calcform.fincostcon.value = zero(fincostcon);
	var fincostmed = eval(document.calcform.finmed.value);
	document.calcform.fincostmed.value = zero(fincostmed);
	var fincostpig = eval(fincostfeed + fincostcon + fincostmed);
	document.calcform.fincostpig.value = zero(fincostpig);
	
	var fincostfeedweight = eval(document.calcform.finwtimp.value);
	document.calcform.fincostfeedweight.value = zero(fincostfeedweight);
	var fincostmedweight = eval(finfeedlb * efficiency);
	document.calcform.fincostmedweight.value = zero(fincostmedweight);
	var fincostpigweight = eval(fincostfeedweight * fincostmedweight);
	document.calcform.fincostpigweight.value = zero(fincostpigweight);
	
	
	var sowfarmcosts = eval(adcostmilk + adcostmate);
	document.calcform.sowfarmcosts.value = zero(Math.round(sowfarmcosts*100)/100);
	
	// Benefit/Improvement section
	var sowfarmliv = eval((sowfarmimp + sowfarmperc)/100);
	document.calcform.sowfarmliv.value = zero(Math.round((sowfarmliv*100)*100)/100);
	var nflivimp = eval((nlivimp + flivimp)/100);
	var finishwt = eval(finwtimp * finwtcost);
	document.calcform.finishwt.value = zero(Math.round(finishwt*100)/100);
	
	// PRODUCTION section
	var currentpigs = eval(pigsweaned);
	document.calcform.currentpigs.value = comma(currentpigs);
	var currentliv = eval(nurseryliv * finliv);
	document.calcform.currentliv.value = zero(Math.round((currentliv*100)*100)/100);
	var currfinwt = eval(avgweight);
	document.calcform.currfinwt.value = currfinwt;
	var currtotallbs = eval(currentpigs * currentliv * currfinwt);
	document.calcform.currtotallbs.value = comma(Math.round(currtotallbs));
	var withmilkpigs = eval(currentpigs * sowfarmliv);
	document.calcform.withmilkpigs.value = comma(withmilkpigs);
	var withmilkliv = eval((nurseryliv + (nlivimp/100)) * (finliv + (flivimp/100)));
	document.calcform.withmilkliv.value = zero(Math.round((withmilkliv*100)*100)/100);
	var withmilkfin = eval(currfinwt + finwtimp);
	document.calcform.withmilkfin.value = withmilkfin;
	var withmilklbs = eval(withmilkpigs * withmilkliv * withmilkfin);
	document.calcform.withmilklbs.value = comma(Math.round(withmilklbs));
	
	// COSTS section
	var currsowfarm = eval(pigsweaned * costweanedpig);
	document.calcform.currsowfarm.value = comma(Math.round(currsowfarm));
	var currnursery = eval(currentpigs * nurscostpig * nurseryliv);
	document.calcform.currnursery.value = comma(Math.round(currnursery));
	var currfinish = eval(currentpigs * nurseryliv * finliv * fincostpig);
	document.calcform.currfinish.value = comma(Math.round(currfinish));
	var currcostprod = eval(currsowfarm + currnursery + currfinish);
	document.calcform.currcostprod.value = comma(Math.round(currcostprod));
	var milksowfarm = eval(currsowfarm + (withmilkpigs * sowfarmcosts));
	document.calcform.milksowfarm.value = comma(Math.round(milksowfarm));
	var milknursery = eval(withmilkpigs * nurscostpig * (nurseryliv + (nlivimp/100)));
	document.calcform.milknursery.value = comma(Math.round(milknursery));
	var milkfinish = eval(withmilkpigs * (nurseryliv + (nlivimp/100)) * (finliv + (flivimp/100)) * (fincostpig + fincostpigweight));
	document.calcform.milkfinish.value = comma(Math.round(milkfinish));
	var milkcostprod = eval(milksowfarm + milknursery + milkfinish);
	document.calcform.milkcostprod.value = comma(Math.round(milkcostprod));
	
	// Final Numbers (at top)
	var marketprice = eval(document.calcform.marketprice.value);
	var porknomilk = eval(currcostprod / currtotallbs);
	document.calcform.porknomilk.value = Math.round(porknomilk*10000)/10000;
	var porkmilk = eval(milkcostprod / withmilklbs);
	document.calcform.porkmilk.value = Math.round(porkmilk*10000)/10000;
	var costnomilk = eval(currsowfarm / currentpigs);
	document.calcform.costnomilk.value = zero(Math.round(costnomilk*100)/100);
	var costmilk = eval(milksowfarm / withmilkpigs);
	document.calcform.costmilk.value = zero(Math.round(costmilk*100)/100);
	var grossnomilk = eval((currtotallbs * marketprice) - currcostprod);
	document.calcform.grossnomilk.value = comma(Math.round(grossnomilk));
	var grossmilk = eval((withmilklbs * marketprice) - milkcostprod);
	document.calcform.grossmilk.value = comma(Math.round(grossmilk));
	var advmilk = eval(grossmilk - grossnomilk);
	document.calcform.advmilk.value = comma(Math.round(advmilk));
	
	var sows = eval(document.calcform.numsows.value);
	var lbsmilk = eval(withmilklbs/sows);
	var lbsnomilk = eval(currtotallbs/sows);
	document.calcform.poundsnomilk.value = comma(Math.round(lbsnomilk));
	document.calcform.poundsmilk.value = comma(Math.round(lbsmilk));
	
}