function formatNumber(n,places,usecomma) {
	if (isNaN(parseFloat(n))) return '' ;
	var tmpNum = n ;
	if (!isNaN(parseInt(places))) {
		tmpNum = tmpNum * (10 * parseInt(places)) ;
		tmpNum = Math.round(tmpNum) ;
		tmpNum = tmpNum / (10 * parseInt(places)) ;
		var tmpNumStr = tmpNum.toString() ;
		var idx_d = tmpNumStr.indexOf('.') ;
		if (idx_d < 0) tmpNumStr += '.00' ;
		idx_d = tmpNumStr.indexOf('.') ;
		if ((tmpNumStr.length - idx_d) < 3) {
			tmpNumStr += '0' ;
		} 
	} else {
		var tmpNumStr = n ;
	}
	if (usecomma) {
		var arr = tmpNumStr.split('.') ;
		var iNum = arr[0] ;
		if (iNum.length > 3) {
			var z = iNum.length % 3 ;
			var tmp = '' ;
			var test = z ;
			for (var i = 0; i < iNum.length; i++) {
				if (i > test) test += 3 ;
				if (i == test) {
					tmp += ',' + iNum.charAt(i) ;
				} else {
					tmp += iNum.charAt(i) ;
				}
			}
			if (tmp.charAt(0) == ',') tmp = tmp.substr(1, (tmp.length - 1)) ;
			tmpNumStr = tmp ;
			if (arr.length > 1) tmpNumStr += '.' + arr[1] ; 
		}
	}
	return tmpNumStr ;
}
function reCalc() {
	//	Init
	var f = document.frmCalc ;
	var id10x10 = 146.25 ;
	var id10x20 = 292.5 ;
	var id20x20 = 585 ;
	var sd10x10 = 1147.9 ;
	var sd10x20 = 2295.8 ;
	var sd20x20 = 4591.6 ;
	var rf10x10 = 650 ;
	var rf10x20 = 1300 ;
	var rf20x20 = 2600 ;

	//	Get the values on the form
	var show1 = !isNaN(parseInt(f.ipt1.value)) ? parseInt(f.ipt1.value) : 0 ;
	var show2 = !isNaN(parseInt(f.ipt2.value)) ? parseInt(f.ipt2.value) : 0 ;
	var show4 = !isNaN(parseInt(f.ipt4.value)) ? parseInt(f.ipt4.value) : 0 ;
	var show5 = !isNaN(parseInt(f.ipt5.value)) ? parseInt(f.ipt5.value) : 0 ;
	var show6 = !isNaN(parseInt(f.ipt6.value)) ? parseInt(f.ipt6.value) : 0 ;
	var show7 = !isNaN(parseInt(f.ipt7.value)) ? parseInt(f.ipt7.value) : 0 ;
	var sf5 = 0 ;
	var sf6 = 0 ;
	var sf7 = 0 ;
	if (!isNaN(parseInt(f.sqft1a.value)) && !isNaN(parseInt(f.sqft1b.value))) sf5 = (parseInt(f.sqft1a.value) * parseInt(f.sqft1b.value)) / 100 ;
	if (!isNaN(parseInt(f.sqft2a.value)) && !isNaN(parseInt(f.sqft2b.value))) sf6 = (parseInt(f.sqft2a.value) * parseInt(f.sqft2b.value)) / 100 ;
	if (!isNaN(parseInt(f.sqft3a.value)) && !isNaN(parseInt(f.sqft3b.value))) sf7 = (parseInt(f.sqft3a.value) * parseInt(f.sqft3b.value)) / 100 ;

	//	Perform calculations
	var dSD = 0 ;
	var pSD = 64 ;
	dSD = (show1 * sd10x10) + (show2 * sd10x20) + (show4 * sd20x20) + (show5 * sf5 * sd10x10) + (show6 * sf6 * sd10x10) + (show7 * sf7 * sd10x10) ;
	if (dSD < 1) pSD = 0 ;
	f.sdvalue.value = '$' + formatNumber(dSD, 2, true) ;
	f.sdperc.value = pSD + '%' ;

	var dRF = 0 ;
	var pRF = 65 ;
	dRF = (show1 * rf10x10) + (show2 * rf10x20) + (show4 * rf20x20) + (show5 * sf5 * rf10x10) + (show6 * sf6 * rf10x10) + (show7 * sf7 * rf10x10) ;
	if (dRF < 1) pRF = 0 ;
	f.rfvalue.value = '$' + formatNumber(dRF, 2, true) ;
	f.rfperc.value = pRF + '%' ;

	var dAVG = 0 ;
	var pAVG = 63 ;
	dAVG = (dSD + dRF) / (show1 + show2 + show4 + show5 + show6 + show7) ;
	if (dAVG < 1) pAVG = 0 ;
	f.avgvalue.value = '$' + formatNumber(dAVG, 2, true) ;
	f.avgperc.value = pAVG + '%' ;

	var dTOT = 0 ;
	var pTOT = 63 ;
	dTOT = dSD + dRF ;
	if (dTOT < 1) pTOT = 0 ;
	f.totvalue.value = '$' + formatNumber(dTOT,2,true) ;
	f.totperc.value = pTOT + '%' ;
}


