function roundNum(x,digitNum)
{ var x_round= Math.pow(10,
    Math.round(Math.log(x) / Math.log(10)) - digitNum);

  if (x_round == 0)
    x_round= Math.pow(10,digitNum);

  return Math.round(x / x_round) * x_round;
}

function SetFactor(_form,_elem,_fact)
{ document.forms[_form].elements[_elem].factor= _fact;
}

function Convert(_form,_elem)
{
  val= parseFloat(document.forms[_form].elements[_elem].value) /
      document.forms[_form].elements[_elem].factor;

  if ('' + val == 'NaN')
    val= 0;

  for(i=0; i<document.forms[_form].elements.length; i++)
    document.forms[_form].elements[i].value = '' +
        roundNum(val * document.forms[_form].elements[i].factor,9);
}

function H(text,level)
{ return '<H' + level + '>' + text + '</H' + level + '>'; }

function FORM(text)
{ return '<FORM>' + text + '</FORM>'; }

function TABLE(text)
{ return '<TABLE BORDER=1>' + text + '</TABLE>'; }

function TR(text)
{ return '<TR>' + text + '</TR>'; }

function TD(text)
{ return '<TD ALIGN= CENTER>' + text + '</TD>'; }

function inputText(numForm,numInput,size)
{ txt='';
  for (i=0; i<numInput; i++)
    txt+= TD('<INPUT TYPE="text" SIZE=' + size + ' OnBlur="Convert(' +
        numForm + ',' + i + ')">');
  return txt;
}

function writeDistance()
{
  numForm= document.forms.length;
  document.write( FORM(TABLE(
    TR(  TD('<B>Feet</B>') + TD('<B>Yards</B>') + TD('<B>Metres</B>') + TD('<B>Kilometres</B>') +
         TD('<B>Miles</B>') + TD('<B>Nautical Miles</B>')  ) +
    TR(inputText(numForm,6,13))  )));

  var Inches= 39.37007874;
  SetFactor(numForm,0,Inches/12);
  SetFactor(numForm,1,Inches/36);
  SetFactor(numForm,2,1);
  SetFactor(numForm,3,0.001);
  SetFactor(numForm,4,Inches/63360);
  SetFactor(numForm,5,0.000539956803);
}

function writeVolume()
{
  numForm= document.forms.length;
  document.write( FORM(TABLE(
    TR(  TD('<B>Fluid Onces</B>') + TD('<B>Pints</B>') + TD('<B>Quarts</B>') + 
         TD('<B>Litres</B>') + TD('<B>Gallons</B>') + TD('<B>Imperial Gallons</B>')  ) +
    TR(inputText(numForm,6,13))  )));

  var FlOnces= 33.8239926;
  SetFactor(numForm,0,FlOnces);
  SetFactor(numForm,1,FlOnces/16);
  SetFactor(numForm,2,FlOnces/32);
  SetFactor(numForm,3,1);
  SetFactor(numForm,4,FlOnces/128);
  SetFactor(numForm,5,0.2200433);
}

function writeWeight()
{
  numForm= document.forms.length;
  document.write( FORM(TABLE(
    TR(  TD('<B>Ounces</B>') + TD('<B>Pounds</B>') + TD('<B>Kilograms</B>') +
         TD('<B>Stones</B>') + TD('<B>Short Tons</B>') + TD('<B>Tonnes</B>')  ) +
    TR(inputText(numForm,6,13))  )));

  var Ounces= 35.273944;
  SetFactor(numForm,0,Ounces);
  SetFactor(numForm,1,2.20466215);
  SetFactor(numForm,2,1);
  SetFactor(numForm,3,0.1574731232747);
  SetFactor(numForm,4,Ounces/32000);
  SetFactor(numForm,5,0.001);
}
