/* Z Scale Calculator */

function ResetForm()
{
	CalcForm = document.Calculator;
	CalcForm.InputFt.value = "";
	CalcForm.InputIn.value = "";
	CalcForm.InputM.value = "";
	CalcForm.InputCm.value = "";
	CalcForm.InputMm.value = "";
	CalcForm.Output.value = "";
	CalcForm.ScaleFromRB[0].checked = true;
	CalcForm.ScaleToRB[0].checked = true;
	CalcForm.Units[0].checked = true;
}

function Truncate(input)
{
	if (isNaN(input))
		return "NaN";

   var val = Math.floor(input);
   var tmp = new String(input);

   for ( var decimalAt = 0; decimalAt < tmp.length; decimalAt++ ) {
      if ( tmp.charAt(decimalAt)=="." )
         break;
   }

   var decimal = "00" + Math.round(input * 1000);

   decimal = decimal.substring(decimal.length-3, decimal.length)


   if ( decimal == "0" )
      decimal = "000";

   return(val + "." + decimal);
}

function GetResult()
{

	CalcForm = document.Calculator;
	
	InputFt = CalcForm.InputFt.value;
	InputIn = CalcForm.InputIn.value;

	InputM = CalcForm.InputM.value;
	InputCm = CalcForm.InputCm.value;
	InputMm = CalcForm.InputMm.value;	

//Scale To/From
	for (i=0; i < CalcForm.ScaleToRB.length; i++)
	{
		if (CalcForm.ScaleToRB[i].checked)
		{
			ScaleToRB = CalcForm.ScaleToRB[i].value;
		}
		if (CalcForm.ScaleFromRB[i].checked)
		{
			ScaleFromRB = CalcForm.ScaleFromRB[i].value;
		}
	}
		

//Result form
	for (i=0; i < CalcForm.Units.length; i++)
	{
		if (CalcForm.Units[i].checked)
		{
			ResultUnits = CalcForm.Units[i].value;
		}
	}

	InputInch = Number(InputFt*12) + Number(InputIn);
	InputMillim = Number(InputM*1000) + Number(InputCm*10) + Number(InputMm);
	
	TotalIn = InputInch + (InputMillim/25.4);
	TotalMm = InputMillim + (InputInch*25.4);
	
	ResultIn = (TotalIn * ScaleToRB )/ScaleFromRB;
	ResultMm = (TotalMm * ScaleToRB)/ScaleFromRB;

	if (isNaN(ResultIn) || isNaN(ResultMm))
	{
		alert ("Invalid Entry");
		return;
	}
	if (ResultUnits == "FeetInch")
	{
		ResultTxt =  Math.floor(ResultIn/12) + " feet   " + Truncate(ResultIn%12)+ " inches   ";
	}
	else //Defaults to Metric 
	{
		ResultTxt = Math.floor(ResultMm/1000) + " m   " + Math.floor((ResultMm%1000)/10)+ " cm   " +Truncate(ResultMm%10) + " mm   ";
	}


	CalcForm.Output.value =ResultTxt;
}
