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

function doImgID(id,src) {
  document.getElementById(id).src=src;
}

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 toggleStyle(a, theID, fromStyle, toStyle, fromText, toText) {
  var aref = document.getElementById(a.id); // the control (this) that initiated the event
  var e = document.getElementById(theID);
    if (e.className == fromStyle) {
      e.className = toStyle;
      aref.value = toText;
    }
    else {
      e.className = fromStyle;
      aref.value = fromText;
    }
}

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 switchFrame(theFrame) { 
  var frameset = parent.document.getElementById("AFID"); 
    switch (theFrame) {
      case 'AFP':
        frameset.rows = "100%,0%";
        break;
      case 'AFS':
        frameset.rows = "0%,100%";
        break;
    }
}

function enumerateCheckboxes(f) {
  for (i=0; i<f.elements.length; i++) {
//alert(f.elements[i].name.substring(0,1));
    if ( (f.elements[i].type=="checkbox") && (f.elements[i].name.substring(0,2)=="lk") ) {
    
      f.elements[i].checked = f.lockALL.checked;
    }
  }
}

function showinfo(theURL, w, h) {
  var w=window.open(theURL,'Example','width='+w+',height='+h+', top=0, left=0, titlebar=no,menubar=no,location=no,resizable=yes,scrollbars=yes,toolbar=no','false');
  var d=w.document;
  d.close;
  w.focus();
}

function ajaxUpload(ssnID, id, list, w, h) {
  var w=window.open('ajaxFileUpload.php?ssnID='+ssnID+'&id='+id+'&list='+list,'UploadWin','width='+w+',height='+h+', top=0, left=0, titlebar=no,menubar=no,location=no,resizable=yes,scrollbars=yes,toolbar=no','false');
  var d=w.document;
  d.close;
  w.focus();
}

function ajaxMRVPlanUpload(ssnID, w, h) {
    if (MRVwin) {
      MRVwin.close();
    }
  var MRVwin=window.open('ajaxMRVPLanFileUpload.php?ssnID='+ssnID,'UploadMRVWin','width='+w+',height='+h+', top=0, left=0, titlebar=no,menubar=no,location=no,resizable=yes,scrollbars=yes,toolbar=no','false');
  var d=MRVwin.document;
  d.close;
  MRVwin.focus();
}



function verifierViewDocs(ssnID, id, list, w, h) {
    if (reqwin) {
      reqwin.close();
    }
  reqwin=window.open('adminVerificationViewDocs.php?ssnID='+ssnID+'&id='+id+'&list='+list,'UploadWin','width='+w+',height='+h+', top=0, left=0, titlebar=no,menubar=no,location=no,resizable=yes,scrollbars=yes,toolbar=no','false');
//  var d=w.document;
  //d.close;
  reqwin.focus();
}

/*
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 OnButtonGoToTARGET(theForm,thePage,targetName) {
  document.forms[theForm].action = thePage;
  document.forms[theForm].target=targetName;
  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 checkFloatingPointDigit_AllowNegative(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;
    }
    
  var valStart = 0;
  var signChar = '';
    if (newStr.charAt(0) == '-') {               // check for -ve sign at front of string
      var valStart = 1;
      var signChar = '-';
    }
  var posVal = newStr.substr(valStart);          // get positive portion of string
  newStr = signChar + newStr.replace(/-/g, "");  // remove all '-' chars not at beginning of string
    
  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.FuelAtBlockOffB.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 doDensityUnits(AorB) {
  var volUnit = document.getElementById("FuelUpliftedByVolumeUnits"+AorB);
  var denUnit = document.getElementById("FuelDensityUnits"+AorB);
  var density = document.getElementById("FuelDensity"+AorB);
  
  var unitsText = '';
  
    switch (volUnit.value) {
      case 'LITRES':
        denUnit.value = 'KG_PER_LITRE';
        unitsText = 'kilograms per litre';
        density.value = '0.80';
        break;
      case 'GALLONS_IMP':
        denUnit.value = 'POUNDS_PER_GALLON_IMP';
        unitsText = 'pounds per gallon (Imp)';
        density.value = '8.02';
        break;
      case 'GALLONS_US':
        denUnit.value = 'POUNDS_PER_GALLON_US';
        unitsText = 'pounds per gallon (US)';
        density.value = '6.68';
        break;
    }
  
  document.getElementById("densityUnitsText"+AorB).innerHTML = unitsText;
}

function calculateWeight(AorB){
  var vol = document.getElementById("FuelUpliftedByVolume"+AorB);
  var den = document.getElementById("FuelDensity"+AorB);
  var volUnit = document.getElementById("FuelUpliftedByVolumeUnits"+AorB);
  
    switch (volUnit.value) {
      case 'LITRES':
        var wtUnit = 'kilograms';
        break;
      case 'GALLONS_IMP':
        var wtUnit = 'pounds (Imp)';
        break;
      case 'GALLONS_US':
        var wtUnit = 'pounds (US)';
        break;
    }
  
  var wt = parseFloat(vol.value) * parseFloat(den.value);
    if (isNaN(wt)) {
      var wtTxt = '0.00' + ' ' + wtUnit;
    }
    else {
      var wtTxt = wt.toFixed(2) + ' ' + wtUnit;
    }
  var calcWt = document.getElementById("calcWt"+AorB);
  calcWt.innerHTML = wtTxt;
}

function checkExempt(e) {
  var f = document.AFPform;
  var ETSSTR = document.getElementById("ETSSTR");
  var exemptSTR = document.getElementById("exemptSTR");
  var leasedFlightNoteID = document.getElementById("leasedFlightNoteID");
      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;
      }
      
      if (e.value == 'LEASED-OUT') {
        leasedFlightNoteID.className = 'shw';
      }
      else {
        leasedFlightNoteID.className = 'hid';
      }
}



///////////////////////////////////////////////////////////

function SetCookie(cookieName,cookieValue,exp) {

 document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+exp.toGMTString();
}

function getCookie(NameOfCookie) {

  if (document.cookie.length > 0) { 

    begin = document.cookie.indexOf(NameOfCookie+"="); 
      if (begin != -1) { 
        begin += NameOfCookie.length+1; 
        end = document.cookie.indexOf("|", begin);
          if (end == -1) end = document.cookie.length;
        return unescape(document.cookie.substring(begin, end)); 
      } 
  }
  return null; 
}


function saveSelections(frm) {
  var setvalue;
  var fieldType;
  var index;
  var formname = frm.id;
                                  
  // Expire cookie in 1 days.
  var today = new Date();
  var exp   = new Date(today.getTime()+1*24*60*60*1000); 
  var string = "formname=" + formname + "|";
  var cookieName = formname;
  var n = frm.length;
  for (i = 0; i < n; i++) {
    e = frm[i].name;
    fieldValue = frm[i].value;     
    fieldType = frm[i].type;
    
    //
    // RADIO BUTTON
    //
    if (fieldType == "radio") {
      for (x=0; x < frm.elements[e].length; x++) {
        if (frm.elements[e][x].checked)  {
        index = x
        }
      }
    string = string + index + "\|";
    }

    //
    // TEXT, TEXTAREA, HIDDEN and DROPDOWN
    //
    /* // EXCLUDE HIDDEN - ISSUE IN flights.php
    if ((fieldType == "text") || 
      (fieldType == "textarea") ||
      (fieldType == "hidden") ||
      (fieldType == "select-one")) {
    string = string + frm.elements[e].value + "\|";
    }
    */
    
    if ((fieldType == "text") || 
      (fieldType == "textarea") ||
      (fieldType == "select-one")) {
    string = string + frm.elements[e].value + "\|";
    }

    //
    // CHECKBOX
    //
    if (fieldType == "checkbox") 
    {
      if (frm.elements[e].checked==true) {
        var setvalue = "1";
        }
      if (frm.elements[e].checked==false) {
        var setvalue = "0";
        }
    string = string + setvalue + "\|";
    }
    
    //
    // BUTTON - dummy value to keep values in synch with form elements
    //
    if (fieldType == "button") {
      string = string + "x\|";
    }
        
  }

  SetCookie(cookieName, string, exp);
}

//
// LOAD FORM FIELD SELECTIONS FROM SAVED COOKIES
//
function loadSelections(frm) {
  var e;
  var z;
  var x;
  var cookieName;
  var fieldArray;
  var fieldValues;
  var fieldValue;
  var formname = frm.id;

  // Retrieve form elements from cookie and split into array.

  cookieName  = formname;
  fieldValues = getCookie(cookieName);
  
    if (fieldValues != null) {
  
      fieldArray  = fieldValues.split("\|");
    
      var n = frm.length;
      for (i = 0; i < n; i++) {
        e = frm[i].name;
        z = i;
        z++;
        var fieldType  = frm[i].type;
        var fieldValue = fieldArray[z];
        
        //
        // TEXT, TEXTAREA, HIDDEN and DROPDOWN
        //
        /* // EXCLUDE HIDDEN - ISSUE IN flights.php
        if ((fieldType == "text") ||
            (fieldType == "textarea") ||
            (fieldType == "hidden") ||
            (fieldType == "select-one")) {
        frm.elements[e].value = fieldValue;
      }
      */
      
        if ((fieldType == "text") ||
            (fieldType == "textarea") ||
            (fieldType == "select-one")) {
        frm.elements[e].value = fieldValue;
      }
    
        //
        // CHECKBOX
        //
        if (fieldType == "checkbox") {
          fld_checkbox = fieldValue;
          if (fld_checkbox == "1") {
              frm.elements[e].checked = true;
          }
        }
    
        //
        // RADIO BUTTON
        //
        if (fieldType == "radio") {
          x = fieldValue;
          frm.elements[e][x].checked = true;
        }
        
      }
      }
}

