// CED subroutine for cleaning up JavaScript rounding errors 
// to any reasonable number of decimal places 5/5/1997 last mod 2/19/2004
// round for decimal of (value of precision) places, default is 3
// This routine can be used to pass a number and a number for precision
// or just a number only, that is to be rounded to a set number of decimal
// places. This routine supports leading and training zeros, leading and
// trailing spaces, and padding. To prevent errors, pass variables as a string.

function perRound(num, precision) {
	var precision = 3; //default value if not passed from caller, change if desired
	// remark if passed from caller
	precision = parseInt(precision); // make certain the decimal precision is an integer
    var result1 = num * Math.pow(10, precision);
    var result2 = Math.round(result1);
    var result3 = result2 / Math.pow(10, precision);
    return zerosPad(result3, precision);
}

function zerosPad(rndVal, decPlaces) {
    var valStrg = rndVal.toString(); // Convert the number to a string
    var decLoc = valStrg.indexOf("."); // Locate the decimal point
    // check for a decimal 
    if (decLoc == -1) {
        decPartLen = 0; // If no decimal, then all decimal places will be padded with 0s
        // If decPlaces is greater than zero, add a decimal point
        valStrg += decPlaces > 0 ? "." : "";
    }
    else {
        decPartLen = valStrg.length - decLoc - 1; // If there is a decimal already, only the needed decimal places will be padded with 0s
    }
     var totalPad = decPlaces - decPartLen;    // Calculate the number of decimal places that need to be padded with 0s
    if (totalPad > 0) {
        // Pad the string with 0s
        for (var cntrVal = 1; cntrVal <= totalPad; cntrVal++) 
            valStrg += "0";
        }
    return valStrg;
}
// send the value in as "num" in a variable

// clears field of default value
function clear_field(field) {
		if (field.value==field.defaultValue) {
			field.value=''
		}
	}

function calc() {
  var re= ((148.6 / 12) * 39.3);
  var dr= ((144.1 / 12) * 39.3);
  var di= ((133.4 / 12) * 39.3);
  var x= 468; // feet - 142.6464 meters
  var y= document.typeb73y.freq.value;

  var ref= re / y;
  var dri= dr / y;
  var dir= di / y;
  var result= x / y;
  var result= result * 2;
  var spa= result * .1565;
  var refm= ((ref) * 0.3048);
  var drim= ((dri) * 0.3048);
  var drihm= (((dri) *.5) * 0.3048);
  var dirm= ((dir) * 0.3048);
  var spam= ((spa) * 0.3048);
  var rdrefm= perRound(refm);
  var rddrim= perRound(drim);
  var rddrihm= perRound(drihm);
  var rddirm= perRound(dirm);
  var rdspam= perRound(spam);

  var reft= Math.floor(ref);
  var var1= ref - reft;
  var var2= var1 * 12;
  var reinch= Math.floor(var2);
  var var3= var2 - reinch;
  if (var3 <= .03125) resifr = "1/32"
  else if ((var3 > .03125) && (var3 <=.0625)) resifr= "1/16"
  else if ((var3 > .0625) && (var3 <=.09375)) resifr = "3/32"
  else if ((var3 > .09375) && (var3 <=.125)) resifr= "1/8"
  else if ((var3 > .125) && (var3 <=.15625)) resifr= "5/32"
  else if ((var3 > .15625) && (var3 <=.1875)) resifr= "3/16"
  else if ((var3 > .1875) && (var3 <=.21875)) resifr= "7/32"
  else if ((var3 > .21875) && (var3 <=.25)) resifr="1/4"
  else if ((var3 > .25) && (var3 <=.28125)) resifr="9/32"
  else if ((var3 > .28125) && (var3 <=.3125)) resifr="5/16"
  else if ((var3 > .3125) && (var3 <=.34375)) resifr="11/32"
  else if ((var3 > .34375) && (var3 <=.375)) resifr="3/8"
  else if ((var3 > .375) && (var3 <=.40625)) resifr="13/32"
  else if ((var3 > .40625) && (var3 <=.4375)) resifr="7/16"
  else if ((var3 > .4375) && (var3 <=.46875)) resifr="15/32"
  else if ((var3 > .46875) && (var3 <=.5)) resifr="1/2"
  else if ((var3 > .5) && (var3 <=.53125)) resifr="17/32"
  else if ((var3 > .53125) && (var3 <=.5625)) resifr="9/16"
  else if ((var3 > .5625) && (var3 <=.59375)) resifr="19/32"
  else if ((var3 > .59375) && (var3 <=.625)) resifr="5/8"
  else if ((var3 > .625) && (var3 <=.65625)) resifr="21/32"
  else if ((var3 > .65625) && (var3 <=.6875)) resifr="11/16"
  else if ((var3 > .6875) && (var3 <=.71875)) resifr="23/32"
  else if ((var3 > .71875) && (var3 <=.75)) resifr="3/4"
  else if ((var3 > .75) && (var3 <=.78125)) resifr="25/32"
  else if ((var3 > .78125) && (var3 <=.8125)) resifr="13/16"
  else if ((var3 > .8125) && (var3 <=.84375)) resifr="27/32"
  else if ((var3 > .84375) && (var3 <=.875)) resifr="7/8"
  else if ((var3 > .875) && (var3 <=.90625)) resifr="29/32"
  else if ((var3 > .90625) && (var3 <=.9375)) resifr="15/16"
  else if (var3 > .9375) resifr="31/32";
 
  var drft= Math.floor(dri);
  var var1= dri - drft;
  var var2= var1 * 12;
  var drinch= Math.floor(var2);
  var var3= var2 - drinch;
  if (var3 <= .03125) drsifr = "1/32"
  else if ((var3 > .03125) && (var3 <=.0625)) drsifr= "1/16"
  else if ((var3 > .0625) && (var3 <=.09375)) drsifr = "3/32"
  else if ((var3 > .09375) && (var3 <=.125)) drsifr= "1/8"
  else if ((var3 > .125) && (var3 <=.15625)) drsifr= "5/32"
  else if ((var3 > .15625) && (var3 <=.1875)) drsifr= "3/16"
  else if ((var3 > .1875) && (var3 <=.21875)) drsifr= "7/32"
  else if ((var3 > .21875) && (var3 <=.25)) drsifr="1/4"
  else if ((var3 > .25) && (var3 <=.28125)) drsifr="9/32"
  else if ((var3 > .28125) && (var3 <=.3125)) drsifr="5/16"
  else if ((var3 > .3125) && (var3 <=.34375)) drsifr="11/32"
  else if ((var3 > .34375) && (var3 <=.375)) drsifr="3/8"
  else if ((var3 > .375) && (var3 <=.40625)) drsifr="13/32"
  else if ((var3 > .40625) && (var3 <=.4375)) drsifr="7/16"
  else if ((var3 > .4375) && (var3 <=.46875)) drsifr="15/32"
  else if ((var3 > .46875) && (var3 <=.5)) drsifr="1/2"
  else if ((var3 > .5) && (var3 <=.53125)) drsifr="17/32"
  else if ((var3 > .53125) && (var3 <=.5625)) drsifr="9/16"
  else if ((var3 > .5625) && (var3 <=.59375)) drsifr="19/32"
  else if ((var3 > .59375) && (var3 <=.625)) drsifr="5/8"
  else if ((var3 > .625) && (var3 <=.65625)) drsifr="21/32"
  else if ((var3 > .65625) && (var3 <=.6875)) drsifr="11/16"
  else if ((var3 > .6875) && (var3 <=.71875)) drsifr="23/32"
  else if ((var3 > .71875) && (var3 <=.75)) drsifr="3/4"
  else if ((var3 > .75) && (var3 <=.78125)) drsifr="25/32"
  else if ((var3 > .78125) && (var3 <=.8125)) drsifr="13/16"
  else if ((var3 > .8125) && (var3 <=.84375)) drsifr="27/32"
  else if ((var3 > .84375) && (var3 <=.875)) drsifr="7/8"
  else if ((var3 > .875) && (var3 <=.90625)) drsifr="29/32"
  else if ((var3 > .90625) && (var3 <=.9375)) drsifr="15/16"
  else if (var3 > .9375) drsifr="31/32";

  var dift= Math.floor(dir);
  var var1= dir - dift;
  var var2= var1 * 12;
  var diinch= Math.floor(var2);
  var var3= var2 - diinch;
  if (var3 <= .03125) disifr = "1/32"
  else if ((var3 > .03125) && (var3 <=.0625)) disifr= "1/16"
  else if ((var3 > .0625) && (var3 <=.09375)) disifr = "3/32"
  else if ((var3 > .09375) && (var3 <=.125)) disifr= "1/8"
  else if ((var3 > .125) && (var3 <=.15625)) disifr= "5/32"
  else if ((var3 > .15625) && (var3 <=.1875)) disifr= "3/16"
  else if ((var3 > .1875) && (var3 <=.21875)) disifr= "7/32"
  else if ((var3 > .21875) && (var3 <=.25)) disifr="1/4"
  else if ((var3 > .25) && (var3 <=.28125)) disifr="9/32"
  else if ((var3 > .28125) && (var3 <=.3125)) disifr="5/16"
  else if ((var3 > .3125) && (var3 <=.34375)) disifr="11/32"
  else if ((var3 > .34375) && (var3 <=.375)) disifr="3/8"
  else if ((var3 > .375) && (var3 <=.40625)) disifr="13/32"
  else if ((var3 > .40625) && (var3 <=.4375)) disifr="7/16"
  else if ((var3 > .4375) && (var3 <=.46875)) disifr="15/32"
  else if ((var3 > .46875) && (var3 <=.5)) disifr="1/2"
  else if ((var3 > .5) && (var3 <=.53125)) disifr="17/32"
  else if ((var3 > .53125) && (var3 <=.5625)) disifr="9/16"
  else if ((var3 > .5625) && (var3 <=.59375)) disifr="19/32"
  else if ((var3 > .59375) && (var3 <=.625)) disifr="5/8"
  else if ((var3 > .625) && (var3 <=.65625)) disifr="21/32"
  else if ((var3 > .65625) && (var3 <=.6875)) disifr="11/16"
  else if ((var3 > .6875) && (var3 <=.71875)) disifr="23/32"
  else if ((var3 > .71875) && (var3 <=.75)) disifr="3/4"
  else if ((var3 > .75) && (var3 <=.78125)) disifr="25/32"
  else if ((var3 > .78125) && (var3 <=.8125)) disifr="13/16"
  else if ((var3 > .8125) && (var3 <=.84375)) disifr="27/32"
  else if ((var3 > .84375) && (var3 <=.875)) disifr="7/8"
  else if ((var3 > .875) && (var3 <=.90625)) disifr="29/32"
  else if ((var3 > .90625) && (var3 <=.9375)) disifr="15/16"
  else if (var3 > .9375) disifr="31/32";

  var spft= Math.floor(spa);
  var var1= spa - spft;
  var var2= var1 * 12;
  var spinch= Math.floor(var2);
  var var3= var2 - spinch;
  if (var3 <= .03125) spsifr = "1/32"
  else if ((var3 > .03125) && (var3 <=.0625)) spsifr= "1/16"
  else if ((var3 > .0625) && (var3 <=.09375)) spsifr = "3/32"
  else if ((var3 > .09375) && (var3 <=.125)) spsifr= "1/8"
  else if ((var3 > .125) && (var3 <=.15625)) spsifr= "5/32"
  else if ((var3 > .15625) && (var3 <=.1875)) spsifr= "3/16"
  else if ((var3 > .1875) && (var3 <=.21875)) spsifr= "7/32"
  else if ((var3 > .21875) && (var3 <=.25)) spsifr="1/4"
  else if ((var3 > .25) && (var3 <=.28125)) spsifr="9/32"
  else if ((var3 > .28125) && (var3 <=.3125)) spsifr="5/16"
  else if ((var3 > .3125) && (var3 <=.34375)) spsifr="11/32"
  else if ((var3 > .34375) && (var3 <=.375)) spsifr="3/8"
  else if ((var3 > .375) && (var3 <=.40625)) spsifr="13/32"
  else if ((var3 > .40625) && (var3 <=.4375)) spsifr="7/16"
  else if ((var3 > .4375) && (var3 <=.46875)) spsifr="15/32"
  else if ((var3 > .46875) && (var3 <=.5)) spsifr="1/2"
  else if ((var3 > .5) && (var3 <=.53125)) spsifr="17/32"
  else if ((var3 > .53125) && (var3 <=.5625)) spsifr="9/16"
  else if ((var3 > .5625) && (var3 <=.59375)) spsifr="19/32"
  else if ((var3 > .59375) && (var3 <=.625)) spsifr="5/8"
  else if ((var3 > .625) && (var3 <=.65625)) spsifr="21/32"
  else if ((var3 > .65625) && (var3 <=.6875)) spsifr="11/16"
  else if ((var3 > .6875) && (var3 <=.71875)) spsifr="23/32"
  else if ((var3 > .71875) && (var3 <=.75)) spsifr="3/4"
  else if ((var3 > .75) && (var3 <=.78125)) spsifr="25/32"
  else if ((var3 > .78125) && (var3 <=.8125)) spsifr="13/16"
  else if ((var3 > .8125) && (var3 <=.84375)) spsifr="27/32"
  else if ((var3 > .84375) && (var3 <=.875)) spsifr="7/8"
  else if ((var3 > .875) && (var3 <=.90625)) spsifr="29/32"
  else if ((var3 > .90625) && (var3 <=.9375)) spsifr="15/16"
  else if (var3 > .9375) spsifr="31/32";

  var half1 = dri / 2;
  var halfft= Math.floor(half1);
  var var1= half1 - halfft;
  var var2= var1 * 12;
  var halfinch= Math.floor(var2);
  var var3= var2 - halfinch;
  if (var3 <= .03125) halfsifr = "1/32"
  else if ((var3 > .03125) && (var3 <=.0625)) halfsifr= "1/16"
  else if ((var3 > .0625) && (var3 <=.09375)) halfsifr = "3/32"
  else if ((var3 > .09375) && (var3 <=.125)) halfsifr= "1/8"
  else if ((var3 > .125) && (var3 <=.15625)) halfsifr= "5/32"
  else if ((var3 > .15625) && (var3 <=.1875)) halfsifr= "3/16"
  else if ((var3 > .1875) && (var3 <=.21875)) halfsifr= "7/32"
  else if ((var3 > .21875) && (var3 <=.25)) halfsifr="1/4"  ;else if ((var3 > .25) && (var3 <=.28125)) halfsifr="9/32"
  else if ((var3 > .28125) && (var3 <=.3125)) halfsifr="5/16"
  else if ((var3 > .3125) && (var3 <=.34375)) halfsifr="11/32"
  else if ((var3 > .34375) && (var3 <=.375)) halfsifr="3/8"
  else if ((var3 > .375) && (var3 <=.40625)) halfsifr="13/32"
  else if ((var3 > .40625) && (var3 <=.4375)) halfsifr="7/16"
  else if ((var3 > .4375) && (var3 <=.46875)) halfsifr="15/32"
  else if ((var3 > .46875) && (var3 <=.5)) halfsifr="1/2"
  else if ((var3 > .5) && (var3 <=.53125)) halfsifr="17/32"
  else if ((var3 > .53125) && (var3 <=.5625)) halfsifr="9/16"
  else if ((var3 > .5625) && (var3 <=.59375)) halfsifr="19/32"
  else if ((var3 > .59375) && (var3 <=.625)) halfsifr="5/8"
  else if ((var3 > .625) && (var3 <=.65625)) halfsifr="21/32"
  else if ((var3 > .65625) && (var3 <=.6875)) halfsifr="11/16"
  else if ((var3 > .6875) && (var3 <=.71875)) halfsifr="23/32"
  else if ((var3 > .71875) && (var3 <=.75)) halfsifr="3/4"
  else if ((var3 > .75) && (var3 <=.78125)) halfsifr="25/32"
  else if ((var3 > .78125) && (var3 <=.8125)) halfsifr="13/16"
  else if ((var3 > .8125) && (var3 <=.84375)) halfsifr="27/32"
  else if ((var3 > .84375) && (var3 <=.875)) halfsifr="7/8"
  else if ((var3 > .875) && (var3 <=.90625)) halfsifr="29/32"
  else if ((var3 > .90625) && (var3 <=.9375)) halfsifr="15/16"
  else if (var3 > .9375) halfsifr="31/32";


  var relength = (reft + "ft. " + reinch + " - " + resifr +"in." + " or " + rdrefm + " M")
  var drlength = (drft + "ft. " + drinch + " - " + drsifr +"in." + " or " + rddrim + " M")
  var dilength = (dift + "ft. " + diinch + " - " + disifr +"in." + " or " + rddirm + " M")
  var splength = (spft + "ft. " + spinch + " - " + spsifr +"in." + " or " + rdspam + " M")
  var drhalflength = (halfft+ "ft. " + halfinch + " - " + halfsifr +"in." + " or " + rddrihm + " M")

  document.typeb73y.total1.value = relength;
  document.typeb73y.total2.value = drlength;
  document.typeb73y.total3.value = dilength;
  document.typeb73y.total4.value = splength;
  document.typeb73y.total5.value = drhalflength;
}