function lamb_fattening(avg_lw,avg_gain) {
	var lw=new Array();
	lw["20"]=new Array(	0.66,	0.78,	0.9,	1.04,	1.2,	1.38,	1.56);
	lw["25"]=new Array(	0.77,	0.9,	1.05,	1.22,	1.41,	1.62,	1.84);
	lw["30"]=new Array(	0.88,	1.03,	1.2,	1.38,	1.58,	1.72,	1.86);
	lw["35"]=new Array(	0.99,	1.15,	1.35,	1.56,	1.79,	2.04,	2.21);
	lw["40"]=new Array(	1.1,	1.28,	1.49,	1.73,	2,	2.28,	2.58);
	lw["45"]=new Array(	1.22,	1.42,	1.65,	1.9,	2.19,	2.52,	2.85);
	lw["50"]=new Array(	1.34,	1.56,	1.81,	2.08,	2.39,	2.75,	3.14);
	var lwg_r=Math.round((avg_lw-20)/5.0)*5.0+20;
	if ( lwg_r < 20 || lwg_r > 50 ) {
		alert( 'LWG ' + lwg_r + ' is out of range!' );
		return Number.NaN;
	}
	var lw_i=Math.round(avg_gain/50.0)-1	;
	var calc=lw[lwg_r][lw_i];
	return (calc);
}

function dp_2(x) {
	var y=Math.floor(x*100.0)/100.0;
	var ys = new String(y);
	var dot=ys.lastIndexOf('.');
	if ( dot == -1 ) { return ys+".00"; } 
	if ( ys.length-dot == 2) { return ys+"0"; }
	return y;
}

function dp_0(x) {
	return Math.floor(x);
}

function dp_1(x) {
	y=Math.floor(x*10.0)/10.0;
	var ys=new String(y);
	var dot=ys.lastIndexOf('.');
	if ( dot == -1 ) { return ys+".0"; } 
	return y;
}

function new_lw(dressing_adjust)
{
	var calc=document.forms.calc;
		var woolprod = dp_2(calc.woolprod.value);
		calc.woolshorn.value=woolprod;
		var startlw=1.0*calc.startlw.value;
		var avg_gain = 1.0*calc.avggainday.value;
		var totaldays = 1.0*calc.totaldays.value;
		var totalgain=1.0*calc.totalgain.value;
	    calc.finallw.value = totalgain+Math.ceil(startlw)-woolprod;
		calc.purchasevalue.value=dp_2(calc.purchasecost.value*startlw/100.0);
		costs(dressing_adjust);
		var netwoolvalue=calc.netwoolprice.value*woolprod;
		calc.netwoolvalue.value=dp_2(netwoolvalue);
		var dressing_adjust_user=1.0*calc.dressingadjust.value;
		var dressing_value = dp_1((((Math.floor(calc.finallw.value)-20)*0.002)+0.39)*100.0+dressing_adjust_user);
		calc.dressing.value=dressing_value;
		calc.carcasswt.value=dp_1(calc.finallw.value*dressing_value/100.0);
		var carcassvalue=(calc.carcasswt.value*calc.netsaleprice.value)/100.0;
		calc.carcassvalue.value=dp_2(carcassvalue);
		var netprofit=carcassvalue+netwoolvalue;
		calc.netprofit.value=dp_2(netprofit);
		var grossprofit=netprofit-calc.purchasevalue.value;
		calc.grossprofit.value=dp_2(grossprofit);
		var totalcost = 1.0*calc.totalcost.value;
		var netprofitperanimal=grossprofit-totalcost;
		calc.netprofitperanimal.value=dp_2(netprofitperanimal);
		var totaldays= calc.totaldays.value;
		
		var peryear=netprofitperanimal/totaldays*365.0;
		calc.netprofitperyear.value=dp_2(peryear);
		var perday=(netprofitperanimal/totaldays*100.0);
		calc.netprofitperday.value=dp_0(perday);
		var avg_lw=startlw*1.0+0.5*totalgain;
		
		var avgdmday=lamb_fattening(avg_lw,avg_gain);
		calc.avgdmday.value=(avgdmday);
		calc.totaldm.value=dp_0(avgdmday*calc.totaldays.value);

		var su_value=avgdmday*365.0/550.0;
		var stockunitbasis_kgdm=dp_2(netprofitperanimal/calc.totaldm.value*100.0);
		calc.stockunitbasis_su.value=dp_2(su_value);
		calc.netprofit_su_year.value=dp_2(peryear/su_value);
		calc.netprofit_kgdm.value=(stockunitbasis_kgdm);
}

function lw_gain(dressing_adjust) {
	var calc=document.forms.calc;
		var totaldays = 0.0;
		var sum = 0.0;
		for ( var i  = 1; i < 13;i++ ) {
			days = 1.0 * eval("calc.day"+i+".value" );
			lwg = 1.0 * eval("calc.lwg"+i+".value"); 
			if (isNaN(days)) { days=0.0};
			if (isNaN(lwg)) { lwg=0.0 };
			sum = sum + lwg * days;
			totaldays=totaldays+days;
		}
		calc.totaldays.value = totaldays;
		calc.totalgain.value = dp_0(sum);
		calc.avggainday.value = Math.floor((sum / totaldays)*100) / 100;
		calc.totalgain.value = Math.ceil(sum/1000.0);
		new_lw(dressing_adjust);
	return 0;
}

function costs(dressing_adjust) {
	var calc=document.forms.calc;
		var deaths=dp_2(calc.death.value*calc.purchasevalue.value/100.0*calc.totaldays.value/365.0);
		var interest=dp_2(calc.interest.value*calc.purchasevalue.value/100.0*calc.totaldays.value/365.0);
		calc.cost3.value=deaths;
		calc.cost4.value=interest;
		var sum = 0.0;
		for ( var i  = 1; i < 7;i++ ) {
			cost = 1.0 * eval("calc.cost"+i+".value" );
			if (isNaN(cost)) { cost=0.0 };
			sum = sum + 1.0* cost;
		}
		calc.totalcost.value = dp_2(sum);
		calc.lesscosts.value=dp_2(sum);
	return 0;
}