        function calculateTotal(array){
          var total = 0;
          for(var i=0;i<array.length;i++){
            total = total + array[i];
          }
          return(total);
        }
        
        function calculateTotalMoment(weights,arms){
          var total=0;
          for(var i=0;i<weights.length;i++){
            total = total + (Math.round(weights[i] * arms[i]));
          }
          return(total);
        }
        
        function displayValues(weight,moment,arm,weights,arms){
          weight.value = calculateTotal(weights).toString();
          moment.value = calculateTotalMoment(weights,arms).toString();
          arm.value = moment.value / weight.value;
        }
 
        function displayClassification(){
          with(document.WBCalc)
          {
          var divText = document.getElementById("classification-text");

	  /*** Check Takeoff weight & CG ***/
          if(takeoffWeight.value > max_weight.value){
            changeRowColorAndDiv("takeoffRow",divText,"Takeoff Weight - TOO HEAVY (remove weight)","#FF0000"); //RED
 	  }
          else if(takeoffArm.value > max_cg.value){
            changeRowColorAndDiv("takeoffRow",divText,"Takeoff CG - TOO FAR BACK (move weight forward)","#FF0000");
	  }
          else if(takeoffArm.value < min_cg.value){
            changeRowColorAndDiv("takeoffRow",divText,"Takeoff CG - TOO FAR FORWARD (move weight back)","#FF0000");
          }
          else if((takeoffWeight.value/Number(slope.value) + Number(min_cg.value) - Number(slope_weight_min.value)/Number(slope.value)) > 
takeoffArm.value){
            changeRowColorAndDiv("takeoffRow",divText,"Takeoff CG - TOO FAR FORWARD (move weight back or reduce weight)","#FF0000");
          }

	  /*** Check Landing Weight & CG ***/

          else if(landingArm.value > max_cg.value){
            changeRowColorAndDiv("landingRow",divText,"Landing CG - TOO FAR BACK (move weight forward)","#FF0000");
          }
          else if(landingArm.value < min_cg.value){
            changeRowColorAndDiv("landingRow",divText,"Landing CG - TOO FAR FORWARD (move weight back)","#FF0000");
          }
          else if((landingWeight.value/Number(slope.value)) + Number(min_cg.value) -
(Number(slope_weight_min.value)/Number(slope.value)) > landingArm.value){
            changeRowColorAndDiv("landingRow",divText,"Landing CG - TOO FAR FORWARD (move weight back or reduce weight)","#FF0000");
          }

          /*** Check Landing Fuel for 30min ***/
          
          else if((fuelWeight.value / 6 / hourly_fuel_burn.value)-duration_flight.value < 0.5){
           divText.style.backgroundColor = "#FF0000";
           divText.innerHTML = "LOW FUEL WARNING - You will be landing with less than 30min fuel";
          }

          /*** Check for Utility Category ***/
  
          else if(takeoffArm.value <= utility_max_cg.value && takeoffWeight.value <= utility_max_weight.value &&
                  landingArm.value <= utility_max_cg.value){
            changeRowColorAndDiv("takeoffRow",divText,"UTILITY CATEGORY","#347C17"); //GREEN
            changeRowColorAndDiv("landingRow",divText,"UTILITY CATEGORY","#347C17");
	  }

 	  else if(takeoffWeight.value > utility_max_weight.value){
            changeRowColorAndDiv("takeoffRow",divText,"NORMAL CATEGORY","#347C17");
            changeRowColorAndDiv("landingRow",divText,"NORMAL CATEGORY (reduce weight for UTILITY)","#347C17");
	  }
          else if(takeoffArm.value > utility_max_cg.value || landingArm.value > utility_max_cg.value){
	    if(takeoffArm.value > utility_max_cg.value){
	      changeRowColorAndDiv("takeoffRow",divText,"NORMAL CATEGORY (move weight forward for UTILITY)","#347C17");
            }if(landingArm.value > utility_max_cg.value){
              changeRowColorAndDiv("landingRow",divText,"NORMAL CATEGORY (move weight forward for UTILITY)","#347C17");
            }
          }

	    
	    


          }//end with

        }

        function changeRowColorAndDiv(rowName,div,text,color){
           div.style.backgroundColor = color;
           div.innerHTML = text;

	  // cols = document.getElementById(rowName).getElementsByTagName("td");
          // ths =  document.getElementById(rowName).getElementsByTagName("th");
          //  for(i = 0; i < cols.length; i++){
          //    cols[i].style.backgroundColor = color;
          //    ths[i].style.backgroundColor = color;
          //    
          //  }
	}

        
        function WB_Calculate()
        {
          with (document.WBCalc)
          {
            var weights = new Array(6);
            var arms = new Array(6);
            
            weights[0] = Number(emptyWeight.value);
            weights[1] = Number(frontWeight.value);
            weights[2] = Number(rearWeight.value);
            weights[3] = Number(fuelWeight.value)
            weights[4] = Number(baggageWeight.value);
            weights[5] = Number(baggageTwoWeight.value);
            
            arms[0] = Number(emptyArm.value);
            arms[1] = Number(frontArm.value);
            arms[2] = Number(rearArm.value);
            arms[3] = Number(fuelArm.value);
            arms[4] = Number(baggageArm.value);
            arms[5] = Number(baggageTwoArm.value);
            
            displayValues(rampWeight,rampMoment,rampCG,weights,arms);
            weights[3] = weights[3] - 8;
            displayValues(takeoffWeight,takeoffMoment,takeoffArm,weights,arms);
            weights[3] = weights[3] - (duration_flight.value * hourly_fuel_burn.value * 6);
            displayValues(landingWeight,landingMoment,landingArm,weights,arms);
            displayClassification();
          }
        }
        
    
        function WB_Reset()
        {
          with (document.WBCalc)
          {
            // Set the fields to their default values...
            frontWeight.value   = "350";
            rearWeight.value    = "";
            fuelWeight.value    = usable_fuel.value*6;  // Full fuel by default
            baggageWeight.value = "";
            baggageTwoWeight.value = "";
          }
    
          // Calculate based on empty values...
          WB_Calculate();
        }


