function isNumber(strNumber) {
      // valid chars for number
      var strValid = "0123456789.";
      for (i=0; i<strNumber.length; i++) {
        // go through each char in string
        if (strValid.indexOf(strNumber.charAt(i)) < 0) {
          return false;
        }
      }
      return true;
    }
function RoundToNdp(X, N) { var T = Math.pow(10, N)
  return Math.round(X*T)/T }

function calculate()
{
	// Constant values are taken from the http://www.defra.gov.uk/environment/business/envrp/pdf/conversion-factors.pdf
	//var petrolcar=0.29;
	var petrolcar=0.2095; // table 6a. avg of petrol car
	
	//var dieselcar=0.27;
	var dieselcar=0.1987;	// avg of diesel car
	//var railtravel=0.0249;
	//  value of National rail from table 8
	var railtravel=0.6502;
	
	var airlong=0.1056;	//table 9
	var airshort=0.1304;
	var rfi=1.91;
	var grEms=2;
	var rfi1=1.9;
	
	var tot_co2= new Number(0);
	var temp=0;
	var co2form=document.forms["co2form"];
	var tonnConve=1000;
	if(isNumber(co2form.petrolcar_miles.value))
	{
		temp=co2form.petrolcar_miles.value * petrolcar;
		temp=temp/tonnConve;
		co2form.petrolcar_co2.value=temp;
		//co2form.petrolcar_co2.value	= RoundToNdp(temp,4);
		tot_co2=Number(tot_co2) + Number(temp);
	}
	if(isNumber(co2form.dieselcar_miles.value))
	{
		temp=co2form.dieselcar_miles.value * dieselcar;
		temp=temp/tonnConve;
		//		co2form.dieselcar_co2.value=temp;
		co2form.dieselcar_co2.value	= RoundToNdp(temp,4);
		tot_co2=Number(tot_co2) + Number(temp);
	}
	if(isNumber(co2form.railtravel_miles.value))
	{
		temp=co2form.railtravel_miles.value * railtravel
		temp=temp/tonnConve;
		//co2form.railtravel_co2.value
		co2form.railtravel_co2.value	= RoundToNdp(temp ,4);
		tot_co2=Number(tot_co2) + Number(temp);
	}
	if(isNumber(co2form.airlong_miles.value))
	{
		//temp=co2form.airlong_miles.value * airlong
		temp=co2form.airlong_miles.value * airlong * rfi * grEms
		temp=temp/tonnConve;
		co2form.airlong_co2.value	= RoundToNdp(temp ,4);
		tot_co2=Number(tot_co2) + Number(temp);
	}
	if(isNumber(co2form.airshort_miles.value))
	{
		//temp=co2form.airshort_miles.value * airshort
		temp=co2form.airshort_miles.value* airlong * rfi1 * grEms
		temp=temp/tonnConve;
		co2form.airshort_co2.value	= RoundToNdp(temp ,4);
		tot_co2=Number(tot_co2) + Number(temp);
	}
	//alert(tot_co2)
	co2form.tot_co2.value=RoundToNdp(tot_co2,4);
	co2form.tot_co2half.value=(RoundToNdp(tot_co2,4))/2;
}

;

