// Copyright 1998-2010  All Rights Reserved Richard Shelquist,  January 1998 - Sep 2010

// This calculator is the copyrighted intellectual property of Richard Shelquist, Shelquist Engineering.

// This calculator may be freely used for an individual's personal use via my web site,
// or by means of one copy on an individual's own computer for that person's personal use, 
// but may not be copied or republished in any form on any web site, bulletin board or 
// any other means.



function resetForm()
{
	var inForm=document.inputs;
	var outForm=document.outputs;

	inForm.RPM.value = "";
	inForm.R1.value = "";
	inForm.R2.value = "";
	inForm.r.value = "";
	
	outForm.Speed.value = "";

	inForm.RPM.focus();

}


function roundNum(Num, Places)
////  Rounding function by Jason Moon
{
   if (Places > 0) {
      if ((Num.toString().length - Num.toString().lastIndexOf('.')) > (Places + 1)) {
         var Rounder = Math.pow(10, Places);
         return Math.round(Num * Rounder) / Rounder;
      }
      else {return Num;}
   }
   else {return Math.round(Num);}
}





function validatePrompt (ctrl, prompt)
{
	alert (prompt);
	ctrl.focus();
	ctrl.select();
	return;
}



function validateForm ( vRPM, vR1, vR2, vr)
{
// Validate RPM
	if (vRPM.value.length===0)
	{
		validatePrompt (vRPM, "RPM is required.");
		return false;
	}

// Validate pressure
	if (vR1.value.length===0)
	{
		validatePrompt (vR1, "Transmission Gear Ratio is required.");
		return false;
	}

// Validate vapor pressure
	if (vR2.value.length===0)
	{
		validatePrompt (vR2, "Differential Gear Ratio is required.");
		return false;
	}
	
// Validate vapor pressure
	if (vr.value.length===0)
	{
		validatePrompt (vr, "Tire Radius is required.");
		return false;
	}

// If all of the inputs are properly validated then return true
	return true;
}	


function calc()
{
	var frm=document.inputs;
	var frmout=document.outputs;

// Validate all four of the required inputs

	if (!validateForm(frm.RPM, frm.R1, frm.R2, frm.r)) 
	{
	return;
	}

// Process the input values

	var RPM=1.0*frm.RPM.value;
	var R1=1.0*frm.R1.value;	
	var R2=1.0*frm.R2.value;
	var r=1.0*frm.r.value;


// Calculate the speed

	var Speed=(60/63360)*(RPM*r*6.28318)/(R1*R2);
	frmout.Speed.value=roundNum(Speed,1);

}

