var f0=7;
function chk(x) {
y=parseFloat(x);
if (isNaN(y)) return 0;
else return y;
}
function format(x, n) {
if (x==0) return 0;
if (x>1e99 || x<-1e99) return "Infinity";
else {

  if (n<3) n=3;
  if (x<0) {x=-x; sign="-";} else sign="";
  
  try {
   	ord = Math.floor( (Math.log(x)/Math.log(10)).toPrecision(7) );
  } catch (ex) {
   	ord = Math.floor(Math.log(x)/Math.log(10)); //for browser that don't support javascript 1.5
  }
  
  k = n-ord-1;
  m = Math.pow(10, k);
  x = Math.round(x*m);
  s="" + x;
  if (ord<n && ord>-n+3) {
    if (k<0) {for (var i=0; i>k; i--) s=s+"0";}
    else if (k>0) {
      if (k<=n) {s=s.substring(0, n-k) + "." + s.substring(n-k, n);}
      else {for (var i=0; i<k-n; i++) s="0"+s; s="0."+s;}
      while (s.charAt(s.length-1)=="0") s=s.substring(0, s.length-1);
      if (s.charAt(s.length-1)==".") s=s.substring(0,s.length-1);
      }
    }
  else { //expo
    if (ord>0) {signE="+";} else signE="-";
    s=s.substring(0, 1) + "." + s.substring(1, n-2) + "e" + signE + Math.abs(ord);
    }
  return sign+s;
  }
}

function convert() { //args: 1st=input, 2nd..last=coefficients
var first=0; // the 3rd form field is the 1st data field
var x, pos, fields;
fields=convert.arguments.length-1;
inp=convert.arguments[0];
x=chk(inp.value);
for (var i=first; i<=inp.form.elements.length-1; i++) {
	if (inp.name == inp.form.elements[i].name){ 
		pos=i-first+1;
		break;
	}
}
for (var i=1; i<=fields; i++) {
  if(i==pos) continue;
  var answer = x*convert.arguments[i]/convert.arguments[pos];
  inp.form.elements[first+i-1].value=format(x*convert.arguments[i]/convert.arguments[pos], f0);
}
return;
}

