   <!-- Unauthorized use or redistribution prohibited. -->
   <!--     Luciano Boglione - MTT-14 Web Page (c)     -->

   function nf2t(f) {
     var to = 273.16;
     
     fnum = dB2num(f);
     tnum = to * (fnum - 1);

     return tnum;
   }

   function t2nf(t) {
     var to = 273.16;
     
     fnum = (t/to + 1);
     f = num2dB(fnum);

     return f;
   }

   function cascaded(f1,g1,f2) {
     f1num = dB2num(f1);
     f2num = dB2num(f2);
     g1num = dB2num(g1);

     nfnum = f1num + (f2num - 1) / g1num;
     nf = num2dB(nfnum);

     return nf;
   }

   function compute() {
      f1 = parseFloat(document.FRIIS.F1.value);
         if (checkifnum(f1,"2nd")==0) {
            alert("Noise figure F1 in dB must be a positive number!" + "\n" + "Please, correct your entry");
            document.FRIIS.F1.value = "> 0!";
            n1 = 0;
         } else {
            if (f1<=0) {
               alert("Noise figure F1 in dB must be a positive number!" + "\n" + "Please, correct your entry");
               document.FRIIS.F1.value = "> 0!";
               n1 = 0;
            } else {
               n1 = 1
            };
         };
      f2 = parseFloat(document.FRIIS.F2.value);
         if (checkifnum(f2,"2nd")==0) {
            alert("Noise figure F2 in dB must be a positive number!" + "\n" + "Please, correct your entry");
            document.FRIIS.F2.value = "> 0!";
            n2 = 0;
         } else {
            if (f2<=0) {
               alert("Noise figure F2 in dB must be a positive number!" + "\n" + "Please, correct your entry");
               document.FRIIS.F2.value = "> 0!";
               n2 = 0;
            } else {
               n2 = 1
            };
         };
      g1 = parseFloat(document.FRIIS.G1.value);
         if (checkifnum(g1,"2nd")==0) {
            alert("Gain in dB must be a number!" + "\n" + "Please, correct your entry");
            document.FRIIS.G1.value = "<> 0!";
            n3 = 0;
         } else {
            n3 = 1
         };

      n = n1 * n2 * n3;
      if (n==1) {
         nf = cascaded(f1,g1,f2);
         document.FRIIS.FTOT.value = Math.round(nf * 100) / 100;
      } else {
        document.FRIIS.FTOT.value = "???";
      }
   }

   function checkifnum(x,sw) {
      y = parseFloat(x);
      switch (sw) {
         case "F1" :
            if (isNaN(y)) {
               alert('Enter a number!');
            } else {
               if (y<=0) {
                  alert("Noise figure F1 in dB must be a positive number!" + "\n" + "Please, correct your entry");
                  return true;
               };
            };
            break;
         case "F2" :
            if (isNaN(y)) {
               alert('Enter a number!');
            } else {
               if (y<=0) {
                  alert("Noise figure F2 in dB must be a positive number!" + "\n" + "Please, correct your entry");
                  return true;
               };
            };
            break;
         case "G1" :
            if (isNaN(y)) {
               alert('Enter a number!');
            } else {
               if (y<=0) {
                  alert("Stage 1 does not amplify!" + "\n" + "But the computation can still be performed");
               };
            };
            break;
            case "2nd" :
               if (isNaN(y)) {
                  return 0;
               } else {
                  if (y<=0) {
                     return -1;
                  } else {
                     return +1;
               };
            };
            break;
            default :
               return false;
      };
   };
