function doImg(img,src) {
  document[img.name].src=src;
}

function doBGImg (e,src) {
//alert(e.id)
  document.getElementById(e.id).style.background="url("+src+")  no-repeat";
}

function doImgSel(img, src1, src2, blk) {
  var e = document.getElementById(blk);
  var bIsShown = (e.style.display == 'none');
    if (bIsShown) {
      document[img.name].src=src1;
    }
    else {
      document[img.name].src=src2;
    }
}

function showHide(img, src1, src2, blk) {
  var e = document.getElementById(blk);
  var bIsShown = (e.style.display == 'none');
    if (bIsShown) {
      e.style.display = '';
      document[img.name].src=src2;
    }
    else {
      e.style.display = 'none';
      document[img.name].src=src1;
    }
}

function stat(txt) {
  window.status = txt;
}

function doBtn(id, thestyle, ptr) {
  var e = document.getElementById(id.id)
  e.className = thestyle;
    if (ptr==1) {
      e.style.cursor='pointer';
    }
    else {
      e.style.cursor='default';
    }
}

function checkEnter( e, f ){ 
  e = e || event;
    if ( e.keyCode == 13 || e.which == 13 ) {
      f.submit();
      return false ;
    } 
    else if( !e ) {
      return true;
    }
}

/*
function sh(id) {
  var e = document.getElementById(id);
    if (e.style.display == 'none') {
      e.style.display='';
    }
    else {
      e.style.display='none';
    }
  return false;
}


function sh(a, id) {
  var aref = document.getElementById(a.id);
  var e = document.getElementById(id);
    if (e.className == 'hid') {
      e.className='shw';
      aref.innerHTML = '&nbsp;-&nbsp;';
    }
    else {
      e.className='hid';
      aref.innerHTML = '&nbsp;+&nbsp;';
    }
  return false;
}
*/

function sh(a, id) {
  var aref = document.getElementById(a.id);
  var e = document.getElementById(id);
    if (e.className == 'hid') {
      e.className='shw';
      aref.value = '-';
    }
    else {
      e.className='hid';
      aref.value = '+';
    }
  return false;
}

function shDIVs(divstr, theDiv, theStyle) {
  var divARR = divstr.split(',');
    for (var i in divARR) {
      var e = document.getElementById(divARR[i]);
        if (divARR[i] == theDiv) {
          e.className = theStyle;
        }
        else {
          e.className = 'hidDIV';
        }
    } 
}



function OnButtonGoTo(theForm,thePage) {
  document.forms[theForm].action = thePage;
  document.forms[theForm].submit();
  return true;
}



function doBtn(id, thestyle, ptr) {
  var e = document.getElementById(id.id)
  e.className = thestyle;
    if (ptr==1) {
      e.style.cursor='pointer';
    }
    else {
      e.style.cursor='default';
    }
}

function checkFields(f, fieldStr, msg) {
  var fields = fieldStr.split(",");
  var bOK = true;
    for (i=0; i<fields.length; i++) {
      if (f.elements[fields[i]].value == '') {
        bOK = false;
      }
    }
    if (bOK) {
      return true;
    }
    else {
      alert(msg);
      return false;
    }
}

function checkValidSelect(f, selFieldsStr, msg) {
  var selFields = selFieldsStr.split(",");
  var bOK = true;
    for (i=0; i<selFields.length; i++) {
      var e = f.elements[selFields[i]];
      var selVal = e.options[e.selectedIndex].value
        if ( (selVal == '') || (selVal == '0') || (selVal == null) || (selVal == "undefined") ) {
        // NOTE: selVal IS defined... it is its VALUE that is undefined - hence the quotes!!!
          bOK = false;
        }
    }
    if (bOK) {
      return true;
    }
    else {
      alert(msg);
      return false;
    }
}

function checkDigit(e) {
  var str = e.value;
  var newStr = '';
  var OKstr = '0123456789';
    
    for (i=0; i<str.length; i++) {   
      if (OKstr.indexOf(str.charAt(i)) != -1 ) {
        newStr = newStr + str.charAt(i);
      }
    }
      
    while ( (newStr.length>1) && (newStr.charAt(0) == '0') ) {
      newStr = newStr.substr(1,newStr.length);
    }
    
  e.value = newStr;
    
}

function checkFloatingPointDigit(e) {
  var str = e.value;
  var newStr = '';
  var OKstr = '0123456789.';
  var dotCount = 0;
    for (i=0; i<str.length; i++) {   
      if (OKstr.indexOf(str.charAt(i)) != -1 ) {
        if (str.charAt(i) == '.') {
          dotCount++;
        }
        if (dotCount < 2) {
          newStr = newStr + str.charAt(i);
        }
        else {
          dotCount--;
        }
      }
    }
      
    while ( (newStr.length>1) && (newStr.charAt(0) == '0') && (newStr.charAt(1) != '.') ) {
      newStr = newStr.substr(1,newStr.length); // remove leading zeros
    }
    
    if (newStr.charAt(0) == '.') {
      newStr = '0' + newStr;
    }
    
  e.value = newStr;
  
}

function calculateFuelUsed() {
  var f = document.AFPform;
  var FuelType = f.FuelTypeB.value;
  var GaugeUnitsType = f.GaugeUnitsTypeB.value;
  
    if (PreviousFlightExistsTR.className == 'shwDIV') {
      var FuelAtBlockOnPREVIOUS = document.getElementById("fuelAtBlockOn_Previous").innerHTML;
    }
    else {
      var FuelAtBlockOnPREVIOUS = f.FuelAtBlockOff.value;
    }
  
  var FuelUpliftedByVolume = f.FuelUpliftedByVolumeB.value;
  var FuelUpliftedByVolumeUnits = f.FuelUpliftedByVolumeUnitsB.value;
  var FuelDensity = f.FuelDensityB.value;
  var FuelDensityUnits = f.FuelDensityUnitsB.value;
  var FuelUpliftedByWeight = f.FuelUpliftedByWeightB.value;
  
  var FuelAtBlockOn = f.FuelAtBlockOnB.value;
  
  var fuelUsed = 0;
  var fuelUsedTEXT = document.getElementById('fuelUsed');  // Container for entire fuel usage report
  
  var CO2ConversionFactorARR = f.CO2ConversionFactorSTR.value.split(',');
  var WeightScalingARR = f.WeightScalingSTR.value.split(',');
  var VolumeScalingARR = f.VolumeScalingSTR.value.split(',');
  var DensityScalingARR = f.DensityScalingSTR.value.split(',');
  
  var CO2ConversionFactor = CO2ConversionFactorARR[f.GaugeUnitsTypeB.selectedIndex];
  var WeightScaling = WeightScalingARR[f.GaugeUnitsTypeB.selectedIndex];
  var VolumeScaling = VolumeScalingARR[f.FuelUpliftedByVolumeUnitsB.selectedIndex];
  var DensityScaling = DensityScalingARR[f.FuelDensityUnitsB.selectedIndex];
  
  f.FuelUsed_CALCULATED.value = '';
  f.CO2Emitted_CALCULATED.value = '';
  
    if ( (FuelAtBlockOnPREVIOUS) &&  (FuelUpliftedByVolume) &&  (FuelDensity) && (FuelAtBlockOn) ) {
      var fuelBeforeWeight = (FuelAtBlockOnPREVIOUS * WeightScaling);
      var fuelUpliftedWeight = (FuelUpliftedByVolume * VolumeScaling) * (FuelDensity * DensityScaling);
      fuelAtTakeoff = fuelBeforeWeight + fuelUpliftedWeight; // kg
      var fuelAfterWeight = (FuelAtBlockOn * WeightScaling);
      fuelUsed = fuelAtTakeoff - fuelAfterWeight;
      var CO2Emitted = fuelUsed * CO2ConversionFactor;
      
      f.FuelUsed_CALCULATED.value = fuelUsed;
      f.CO2Emitted_CALCULATED.value = CO2Emitted;
      
        if (fuelUsed >= 0) {
          fuelUsedTEXT.innerHTML = '<table style="width: 275px;" cellspacing="0" cellpadding="8">'+
          '<tr><td style="text-align: right; width: 150px; font-size: 8pt;"><b>Fuel&nbsp;before&nbsp;uplift</b></td><td style="text-align: right; width: 125px; font-size: 8pt;">' + fuelBeforeWeight.toFixed(4) + '&nbsp;kg</td></tr>' +
          '<tr><td style="text-align: right; width: 150px; font-size: 8pt;"><b>Fuel&nbsp;uplifted</b></td><td style="text-align: right; width: 125px; font-size: 8pt;">' + fuelUpliftedWeight.toFixed(4) + '&nbsp;kg</td></tr>' +
          '<tr><td style="text-align: right; width: 150px; font-size: 8pt;"><b>Fuel&nbsp;at&nbsp;block off</b></td><td style="text-align: right; width: 125px; font-size: 8pt;">' + fuelAtTakeoff.toFixed(4) + '&nbsp;kg</td></tr>' +
          
          '<tr><td style="text-align: right; width: 150px; font-size: 8pt;"><b>Fuel&nbsp;at&nbsp;block on</b></td><td style="text-align: right; width: 125px; font-size: 8pt;">' + fuelAfterWeight.toFixed(4) + '&nbsp;kg</td></tr>' +
          
          '<tr><td style="text-align: right; width: 150px; font-size: 8pt;"><b>Fuel&nbsp;used</b></td><td style="text-align: right; width: 125px; font-size: 8pt;"><b>' + fuelUsed.toFixed(4) + ' kg</b></td></tr>' +
          '<tr style="color: #ff0000;"><td style="text-align: right; width: 150px; font-size: 8pt;"><b>CO<sub>2</sub>&nbsp;emitted</b></td><td style="text-align: right; width: 125px; font-size: 8pt;"><b>' + CO2Emitted.toFixed(4) + '&nbsp;kg</b></td></tr></table>';
        }
        else {
          fuelUsedTEXT.innerHTML = '<table style="width: 275px;" cellspacing="0" cellpadding="8">'+
          '<tr><td style="text-align: right; width: 150px; font-size: 8pt;"><b>Fuel&nbsp;before&nbsp;uplift</b></td><td style="text-align: right; width: 125px; font-size: 8pt;">' + fuelBeforeWeight.toFixed(4) + '&nbsp;kg</td></tr>' +
          '<tr><td style="text-align: right; width: 150px; font-size: 8pt;"><b>Fuel&nbsp;uplifted</b></td><td style="text-align: right; width: 125px; font-size: 8pt;">' + fuelUpliftedWeight.toFixed(4) + '&nbsp;kg</td></tr>' +
          '<tr><td style="text-align: right; width: 150px; font-size: 8pt;"><b>Fuel&nbsp;at&nbsp;takeoff</b></td><td style="text-align: right; width: 125px; font-size: 8pt;">' + fuelAtTakeoff.toFixed(4) + '&nbsp;kg</td></tr>' +
          
          '<tr><td style="text-align: right; width: 150px; font-size: 8pt;"><b>Fuel&nbsp;at&nbsp;landing</b></td><td style="text-align: right; width: 125px; font-size: 8pt;">' + fuelAfterWeight.toFixed(4) + '&nbsp;kg</td></tr>' +
          
          '<tr><td style="text-align: right; width: 150px; font-size: 8pt;"><b>Fuel&nbsp;used</b></td><td style="text-align: right; width: 125px; font-size: 8pt;"><b><span style="color: #ff0000;">ERROR</span></b></td></tr>' +
          '<tr style="color: #ff0000;"><td style="text-align: right; width: 150px; font-size: 8pt;"><b>CO<sub>2</sub>&nbsp;emitted</b></td><td style="text-align: right; width: 125px; font-size: 8pt;"><b><span style="color: #ff0000;">ERROR</span></b></td></tr></table>';
        }
      
    }
    else {
      fuelUsedTEXT.innerHTML = '';
    }
}

function checkExempt(e) {
  var f = document.AFPform;
  var ETSSTR = document.getElementById("ETSSTR");
  var exemptSTR = document.getElementById("exemptSTR");
      if ( 
           (e.value == 'COM') ||
           (e.value == 'NONCOM') ||
           (e.value == 'MAINT') 
         ) {
        ETSSTR.className = 'shwDIV';
        exemptSTR.className = 'hidDIV';
        f.ExemptionFlightType.value = 0;
      }
      else {
        ETSSTR.className = 'hidDIV';
        exemptSTR.className = 'shwDIV';
        f.ExemptionFlightType.value = 1;
      }
}

