<!-- Generic Unit Conversion Program
// Author            : Jonathan Weesner (jweesner@cyberstation.net)  21 Nov 95
// Portuguese Version: Lincoln Weinhardt (weinhardt@ep.petrobras.com.br) 13 mai 97
// Copyright         : You want it? Take it!
//                      ... but leave the Author line intact please!
function convertform(form){
    var firstvalue = 0;
    for (var i = 1; i <= form.count; i++) {
       // Find first non-blank entry
		if (form.elements[i].value != null && form.elements[i].value.length != 0) {
			if (i == 1 && form.elements[2].value != "") return false;
			firstvalue = parseFloat( form.elements[i].value ) / form.elements[i].factor;
			break;
		}
    }
    if (firstvalue == 0) {
       clearform(form);
       return false;
    }
    for (var i = 1; i <= form.count; i++)
       form.elements[i].value = formatvalue((firstvalue * form.elements[i].factor), form.rsize);
    return true;
}
function formatvalue(input, rsize) {
   var invalid = "**************************";
   var nines = "999999999999999999999999";
   var strin = "" + input;
   var fltin = parseFloat(strin);
   if (strin.length <= rsize) return strin;
   if (strin.indexOf("e") != -1 ||
       fltin > parseFloat(nines.substring(0,rsize)+".4"))
      return invalid.substring(0, rsize);
   var rounded = "" + (fltin + (fltin - parseFloat(strin.substring(0, rsize))));
   return rounded.substring(0, rsize);
}
function resetform(form) {
    clearform(form);
    form[1].value = 1;
    convertform(form);
    return true;
}
function clearform(form) {
    for (var i = 1; i <= form.count; i++) form[i].value = "";
    return true;
}
function conversor() {
	document.forms[0].count = 6;  // number of unit types
	document.forms[0].rsize = 7;  // Rounding size, use same as SIZE
	document.forms[0].val1.factor = 1;            // m to m.
	document.forms[0].val2.factor = 39.37007874;  // m to in.
	document.forms[0].val3.factor = 3.280839895;  // m to ft.
	document.forms[0].val4.factor = 1.093613298;  // m to yards.
	document.forms[0].val5.factor = 0.00062137119; // m to mi.
	document.forms[0].val6.factor = 0.000547045; // m to nm.
	<!-- done hiding from old browsers -->
	
	<!-- Set conversion factors for each item in form.
	document.forms[1].count = 7;
	document.forms[1].rsize = 6;
	document.forms[1].val1.factor = 1;
	document.forms[1].val2.factor = 35.273944;
	document.forms[1].val3.factor = 2.2046215;
	document.forms[1].val4.factor = 2.6792765;
	document.forms[1].val5.factor = 0.13778884375;
	document.forms[1].val6.factor = 0.00110231075;
	document.forms[1].val7.factor = 0.001;
	<!-- done hiding from old browsers -->	
	
	document.forms[2].count = 5;
	document.forms[2].rsize = 6;
	document.forms[2].val1.factor = 1;
	document.forms[2].val2.factor = 33.8239926;
	document.forms[2].val3.factor = 0.00629166;
	document.forms[2].val4.factor = 0.2642499;
	document.forms[2].val5.factor = 0.2200433;
}
<!-- done hiding from old browsers -->
