function perRound(num, precision) {
	var precision = 9; 
	precision = parseInt(precision); 
	var result1 = num * Math.pow(10, precision);
	var result2 = Math.round(result1);
	var result3 = result2 / Math.pow(10, precision);
	return result3;
}

function Abs(x) { return Math.abs(x) }

function netscapeKeyPress(e) {
    if (e.which == 13)
        myCon();
}

function microsoftKeyPress() {
    if (window.event.keyCode == 13)
        myCon();
}

if (navigator.appName == 'Netscape') {
    window.captureEvents(Event.KEYPRESS);
    window.onKeyPress = netscapeKeyPress;
}

function myCon() {
  var FromVal, ToVal, FromName, ToName, v1, Factor, FromVal2, ToVal2, FromName2, ToName2, v2, Factor2, Final, FromVal3, ToVal3, FromName3, ToName3, v3, Factor3, FromVal4, ToVal4, FromName4, ToName4, v4, Factor4, FromVal5, ToVal5, FromName5, ToName5, v5, Factor5, v6;

  v1 = document.MainForm.what.value;
  v1 = stripBad(v1);
  eval('v1 = parseFloat(' + v1 + ');');
  if (isNaN(v1)) v1 = 1;
  v1 = Math.abs(v1);
  document.MainForm.what.value = v1;
  
  v2 = document.MainForm.what0.value;
  v2 = stripBad(v2);
  eval('v2 = parseFloat(' + v2 + ');');
  if (isNaN(v2)) v2 = 1;
  v2 = Math.abs(v2);
  document.MainForm.what0.value = v2;
  
  v3 = document.MainForm.what1.value;
  v3 = stripBad(v3);
  eval('v3 = parseFloat(' + v3 + ');');
  if (isNaN(v3)) v3 = 1;
  v3 = Math.abs(v3);
  document.MainForm.what1.value = v3;
 
  v4 = document.MainForm.what2.value;
  v4 = stripBad(v4);
  eval('v4 = parseFloat(' + v4 + ');');
  if (isNaN(v4)) v4= 1;
  v4 = Math.abs(v4);
  document.MainForm.what2.value = v4;

  v5 = document.MainForm.what3.value;
  v5 = stripBad(v5);
  eval('v5 = parseFloat(' + v5 + ');');
  if (isNaN(v5)) v5= 1;
  v5 = Math.abs(v5);
  document.MainForm.what3.value = v5;
  v6 = Abs((v4*v1*v2)/v3);

  document.MainForm.answer.value =space(1-1-(v4*(v2*v2)*(3*v1-v2))/(6*v5*v3));
  document.MainForm.answer0.value =space(v6);
  document.MainForm.answer1.value =space(v4 * ( v1 - v2));
  document.MainForm.answer2.value =space(1-1-v4); 
  document.MainForm.answer3.value =space(1-1- (v4*(2*v1-v2)*v2)/(2*v5*v3));
}


function resetanswer() {
  document.MainForm.answer.value = "";
}

function get_result(ff,factor){
 ff *= factor;

 var s = ff.toString(), first, last = '';
 var i = s.indexOf('e');
 if (i != -1)
 {
	 first = s.substring(0, i);
	 last = s.substring(i);
 }
 else
	 first = s;

	 return perRound(first) + last;
}

function stripBad(string) {
    for (var i=0, output='', valid="eE+/*-0123456789.()"; i<string.length; i++)
       if (valid.indexOf(string.charAt(i)) != -1)
          output += string.charAt(i)
    return output;
} 

function space (num)
{
	num = num + '';
	// exit if scientific notation
	if (num.indexOf('e') > -1){ return num; }

	var dec = num.indexOf('.');

	var left, right = '';
	if (dec >= 0)
	{
		left = num.substring(0, dec);
		right = num.substring(dec + 1);
	}
	else
		left = num;

	var new_left = '', new_right = '';
	for (var i = 0; i < right.length; i++)
	{
		new_right += right.charAt(i);
		if (i % 3 == 2 && i != right.length - 1)
			new_right += ' ';
	}
	for (var i = left.length - 1; i >= 0; i--)
	{
		new_left = left.charAt(i) + new_left;
		if ((left.length - 1 - i) % 3 == 2 && i != 0)
			new_left = ' ' + new_left;
	}

	return (dec >= 0) ? new_left + '.' + new_right : new_left;
}



