//
// Calculation for Steady-state Conduction on Multilayer Isothermal Wall
// Copyright MAYA Simulation (c) 1999
//

function calc() {

var Error = "False";
var ErrorMsg = "Error";
var Layers = 0;
var WallNum = -1;
var x = 2;
var y = 0;
var radiusTemp1;
var radiusTemp2;
var Rsum = 0;

   // get input data and validate
   var height = parseFloat(document.input.Height.value);
   var heightString = document.input.Height.value;
   if ((isNaN(height)||isNaN(heightString)||height<=0.0) && Error=="False")
     {
      ErrorMsg = "Height must be greater than zero.";
      document.input.Height.focus();
      Error = "True";
     }

   var depth = parseFloat(document.input.Depth.value);
   var depthString = document.input.Depth.value;
   if ((isNaN(depth)||isNaN(depthString)||depth<=0.0) && Error=="False")
     {
      ErrorMsg = "Depth must be greater than zero.";
      document.input.Depth.focus();
      Error = "True";
     }
   

   var T1 = parseFloat(document.input.Temperature_1.value);
   var T1String = document.input.Temperature_1.value;
   if ((isNaN(T1)||isNaN(T1String)||T1<=-273.0) && Error=="False")
     {
      ErrorMsg = "Temperature 1 must be greater than -273.0.";
      document.input.Temperature_1.focus();
      Error = "True";
     }

   var q = parseFloat(document.input.Heat_flow.value);
   var qString = document.input.Heat_flow.value;
   if ((isNaN(q)||isNaN(qString)||q==0.0) && Error=="False")
     {
      ErrorMsg = "Heat flow must be greater than or less than zero.";
      document.input.Heat_flow.focus();
      Error = "True";
     }

// Layer properties

   var t1 = parseFloat(document.input.Thick_1.value);
   var t1String = document.input.Thick_1.value;
   if ((isNaN(t1)||isNaN(t1String)||t1<=0.0) && Error=="False")
     {
      ErrorMsg = "Layer 1 thickness must be greater than zero.";
      document.input.Thick_1.focus();
      Error = "True";
     }

   var k1 = parseFloat(document.input.Conductivity_1.value);
   var k1String = document.input.Conductivity_1.value;
   if ((isNaN(k1)||isNaN(k1String)||k1<=0.0) && Error=="False")
     {
      ErrorMsg = "Layer 1 conductivity must be greater than zero.";
      document.input.Conductivity_1.focus();
      Error = "True";
     }

   var t2 = parseFloat(document.input.Thick_2.value);
   var t2String = document.input.Thick_2.value;
   if ((isNaN(t2)||isNaN(t2String)||t2<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 2 thickness must be greater than or equal to zero.";
      document.input.Thick_2.focus();
      Error = "True";
     }

   var k2 = parseFloat(document.input.Conductivity_2.value);
   var k2String = document.input.Conductivity_2.value;
   if ((isNaN(k2)||isNaN(k2String)||k2<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 2 conductivity must be greater than or equal to zero.";
      document.input.Conductivity_2.focus();
      Error = "True";
     }

  if ( (t2 == 0) || (k2 == 0) )
    {
     Layers = 1;                      // Only one layer for calculation
    }

   var t3 = parseFloat(document.input.Thick_3.value);
   var t3String = document.input.Thick_3.value;
   if ((isNaN(t3)||isNaN(t3String)||t3<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 3 thickness must be greater than or equal to zero.";
      document.input.Thick_3.focus();
      Error = "True";
     }

   var k3 = parseFloat(document.input.Conductivity_3.value);
   var k3String = document.input.Conductivity_3.value;
   if ((isNaN(k3)||isNaN(k3String)||k3<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 3 conductivity must be greater than or equal to zero.";
      document.input.Conductivity_3.focus();
      Error = "True";
     }

   var t4 = parseFloat(document.input.Thick_4.value);
   var t4String = document.input.Thick_4.value;
   if ((isNaN(t4)||isNaN(t4String)||t4<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 4 thickness must be greater than or equal to zero.";
      document.input.Thick_4.focus();
      Error = "True";
     }

   var k4 = parseFloat(document.input.Conductivity_4.value);
   var k4String = document.input.Conductivity_4.value;
   if ((isNaN(k4)||isNaN(k4String)||k4<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 4 conductivity must be greater than or equal to zero.";
      document.input.Conductivity_4.focus();
      Error = "True";
     }

   var t5 = parseFloat(document.input.Thick_5.value);
   var t5String = document.input.Thick_5.value;
   if ((isNaN(t5)||isNaN(t5String)||t5<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 5 thickness must be greater than or equal to zero.";
      document.input.Thick_5.focus();
      Error = "True";
     }

   var k5 = parseFloat(document.input.Conductivity_5.value);
   var k5String = document.input.Conductivity_5.value;
   if ((isNaN(k5)||isNaN(k5String)||k5<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 5 conductivity must be greater than or equal to zero.";
      document.input.Conductivity_5.focus();
      Error = "True";
     }

   var t6 = parseFloat(document.input.Thick_6.value);
   var t6String = document.input.Thick_6.value;
   if ((isNaN(t6)||isNaN(t6String)||t6<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 6 thickness must be greater than or equal to zero.";
      document.input.Thick_6.focus();
      Error = "True";
     }

   var k6 = parseFloat(document.input.Conductivity_6.value);
   var k6String = document.input.Conductivity_6.value;
   if ((isNaN(k6)||isNaN(k6String)||k6<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 6 conductivity must be greater than or equal to zero.";
      document.input.Conductivity_6.focus();
      Error = "True";
     }

   var t7 = parseFloat(document.input.Thick_7.value);
   var t7String = document.input.Thick_7.value;
   if ((isNaN(t7)||isNaN(t7String)||t7<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 7 thickness must be greater than or equal to zero.";
      document.input.Thick_7.focus();
      Error = "True";
     }

   var k7 = parseFloat(document.input.Conductivity_7.value);
   var k7String = document.input.Conductivity_7.value;
   if ((isNaN(k7)||isNaN(k7String)||k7<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 7 conductivity must be greater than or equal to zero.";
      document.input.Conductivity_7.focus();
      Error = "True";
     }

   var t8 = parseFloat(document.input.Thick_8.value);
   var t8String = document.input.Thick_8.value;
   if ((isNaN(t8)||isNaN(t8String)||t8<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 8 thickness must be greater than or equal to zero.";
      document.input.Thick_8.focus();
      Error = "True";
     }

   var k8 = parseFloat(document.input.Conductivity_8.value);
   var k8String = document.input.Conductivity_8.value;
   if ((isNaN(k8)||isNaN(k8String)||k8<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 8 conductivity must be greater than or equal to zero.";
      document.input.Conductivity_8.focus();
      Error = "True";
     }

   var t9 = parseFloat(document.input.Thick_9.value);
   var t9String = document.input.Thick_9.value;
   if ((isNaN(t9)||isNaN(t9String)||t9<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 9 thickness must be greater than or equal to zero.";
      document.input.Thick_9.focus();
      Error = "True";
     }

   var k9 = parseFloat(document.input.Conductivity_9.value);
   var k9String = document.input.Conductivity_9.value;
   if ((isNaN(k9)||isNaN(k9String)||k9<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 9 conductivity must be greater than or equal to zero.";
      document.input.Conductivity_9.focus();
      Error = "True";
     }

   var t10 = parseFloat(document.input.Thick_10.value);
   var t10String = document.input.Thick_10.value;
   if ((isNaN(t10)||isNaN(t10String)||t10<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 10 thickness must be greater than or equal to zero.";
      document.input.Thick_10.focus();
      Error = "True";
     }

   var k10 = parseFloat(document.input.Conductivity_10.value);
   var k10String = document.input.Conductivity_10.value;
   if ((isNaN(k10)||isNaN(k10String)||k10<0.0) && Error=="False")
     {
      ErrorMsg = "Layer 10 conductivity must be greater than or equal to zero.";
      document.input.Conductivity_10.focus();
      Error = "True";
     }

// Error message display and calculation.

   if (Error=="True")
   {
      document.input.msgBox.value = "Error: " + ErrorMsg;
      document.result.Temperature_2.value = "Error";
   }
   else
   {
      var WallThickVar = new Array(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);

      var WallkVar     = new Array(k1, k2, k3, k4, k5, k6, k7, k8, k9, k10);

      var x        = 2;
      var WallNum  = -1;

      var area = height * depth;

      if (Layers != 1)
      {
        do
        {
          if ((WallThickVar[x]==0.0)||(WallkVar[x]==0.0))
          {
            WallNum = x;
          }
          else
          {
            if ((WallThickVar[x] > 0.0) && (WallkVar[x] > 0.0) && (x==9))
            {
              WallNum = x+1;
            }
          }
          x = x + 1; 
        }while((x<=9) && (WallNum == -1))   // ****do-while loop only woorks in NS4 and IE4****

        var Rsum = 0;

        for (x = 0; x <= (WallNum - 1); x++)
        {
          Rsum = parseFloat(Rsum) + WallThickVar[x] / (WallkVar[x] * area);
        }
      Condition = "Result: Calculation for i=1 to " + WallNum;
    }
    else
    {
      Rsum = t1 / (k1 * area);
      Condition = "Result: Calculation for i=1";
    }
    T2 = T1 + (q*Rsum);
    document.input.msgBox.value = Condition;
    document.result.Temperature_2.value = engRound(T2);
  }
  return; 
}
