
function doSelect(theText) {
  theText.select();
}

function comma(srcNumber) {
  var txtNumber = '' + srcNumber;
  //if (isNaN(txtNumber) || txtNumber == "") {
    //fieldName.select();
    //fieldName.focus();
  //} else {
    var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
    var arrNumber = txtNumber.split('.');
    arrNumber[0] += '.';
    do {
      arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
    } while (rxSplit.test(arrNumber[0]));
    if (arrNumber.length > 1) {
      return arrNumber.join('');
    } else {
      return arrNumber[0].split('.')[0];
    }
  //}
}


function calculate() {
  var iws = immersion_washer_savings();
  var swes = spray_washer_energy_savings();
  // Scrap/Rejects Savings
  var sf_asr = eval(document.calcform.sf_asr.value/100);
    document.forwarder.sf_asr.value = sf_asr;
  var sf_apv = eval(document.calcform.sf_apv.value);
    document.forwarder.sf_apv.value = sf_apv;
  var sf_esv = eval(document.calcform.sf_esv.value);
    document.forwarder.sf_esv.value = sf_esv;
  var pac_asr = eval(document.calcform.pac_asr.value/100);
    document.forwarder.pac_asr.value = pac_asr;
  var pac_apv = eval(document.calcform.pac_apv.value);
    document.forwarder.pac_apv.value = pac_apv;
  var pac_esv = eval(document.calcform.pac_esv.value);
    document.forwarder.pac_esv.value = pac_esv;
  var wa_asr = eval(document.calcform.wa_asr.value/100);
    document.forwarder.wa_asr.value = wa_asr;
  var wa_apv = eval(document.calcform.wa_apv.value);
    document.forwarder.wa_apv.value = wa_apv;
  var wa_esv = eval(document.calcform.wa_esv.value);
    document.forwarder.wa_esv.value = wa_esv;
  var ppc_asr = eval(document.calcform.ppc_asr.value/100);
    document.forwarder.ppc_asr.value = ppc_asr;
  var ppc_apv = eval(document.calcform.ppc_apv.value);
    document.forwarder.ppc_apv.value = ppc_apv;
  var ppc_esv = eval(document.calcform.ppc_esv.value);
    document.forwarder.ppc_esv.value = ppc_esv;
    document.forwarder.mg1.value = document.calcform.mg1.value;
    document.forwarder.mg2.value = document.calcform.mg2.value;
    document.forwarder.mg3.value = document.calcform.mg3.value;
    document.forwarder.mg4.value = document.calcform.mg4.value;

  var sf_cc = eval(sf_asr * sf_apv * sf_esv);
  document.calcform.sf_cc.value = comma(Math.round(sf_cc));
    document.forwarder.sf_cc.value = comma(Math.round(sf_cc));
  var sf_ps = eval(sf_cc * 0.5);
  document.calcform.sf_ps.value = comma(Math.round(sf_ps));
  if (document.calcform.sf_asr.value != "0" && document.calcform.sf_apv.value != "0" && document.calcform.sf_esv.value != "0") {
    document.calcform.sf_sr.value = 50;
      document.forwarder.sf_ps.value = comma(Math.round(sf_ps));
      document.forwarder.sf_sr.value = 50;
  } else {
    document.calcform.sf_sr.value = 0;
    document.forwarder.sf_sr.value = 0;
  }
  var sf_ic = eval(sf_cc - sf_ps);
  document.calcform.sf_ic.value = comma(Math.round(sf_ic));
    document.forwarder.sf_ic.value = comma(Math.round(sf_ic));
  var pac_cc = eval(pac_asr * pac_apv * pac_esv);
  document.calcform.pac_cc.value = comma(Math.round(pac_cc));
    document.forwarder.pac_cc.value = comma(Math.round(pac_cc));
  var pac_ps = eval(pac_cc * 0.75);
  document.calcform.pac_ps.value = comma(Math.round(pac_ps));
  if (document.calcform.pac_asr.value != "0" && document.calcform.pac_apv.value != "0" && document.calcform.pac_esv.value != "0") {
    document.calcform.pac_sr.value = 75;
      document.forwarder.pac_ps.value = comma(Math.round(pac_ps));
      document.forwarder.pac_sr.value = 75;
  } else {
    document.calcform.pac_sr.value = 0;
    document.forwarder.pac_sr.value = 0;
  }
  var pac_ic = eval(pac_cc - pac_ps);
  document.calcform.pac_ic.value = comma(Math.round(pac_ic));
    document.forwarder.pac_ic.value = comma(Math.round(pac_ic));
  var wa_cc = eval(wa_asr * wa_apv * wa_esv);
  document.calcform.wa_cc.value = comma(Math.round(wa_cc));
    document.forwarder.wa_cc.value = comma(Math.round(wa_cc));
  var wa_ps = eval(wa_cc * 0.75);
  document.calcform.wa_ps.value = comma(Math.round(wa_ps));
  if (document.calcform.wa_asr.value != "0" && document.calcform.wa_apv.value != "0" && document.calcform.wa_esv.value != "0") {
    document.calcform.wa_sr.value = 75;
      document.forwarder.wa_ps.value = comma(Math.round(wa_ps));
      document.forwarder.wa_sr.value = 75;
  } else {
    document.calcform.wa_sr.value = 0;
      document.forwarder.wa_sr.value = 0;
  }
  var wa_ic = eval(wa_cc - wa_ps);
  document.calcform.wa_ic.value = comma(Math.round(wa_ic));
    document.forwarder.wa_ic.value = comma(Math.round(wa_ic));
  var ppc_cc = eval(ppc_asr * ppc_apv * ppc_esv);
  document.calcform.ppc_cc.value = comma(Math.round(ppc_cc));
    document.forwarder.ppc_cc.value = comma(Math.round(ppc_cc));
  var ppc_ps = eval(ppc_cc * 0.5);
  document.calcform.ppc_ps.value = comma(Math.round(ppc_ps));
  if (document.calcform.ppc_asr.value != "0" && document.calcform.ppc_apv.value != "0" && document.calcform.ppc_esv.value != "0") {
    document.calcform.ppc_sr.value = 50;
      document.forwarder.ppc_ps.value = comma(Math.round(ppc_ps));
      document.forwarder.ppc_sr.value = 50;
  } else {
    document.calcform.ppc_sr.value = 0;
      document.forwarder.ppc_sr.value = 0;
  }
  var ppc_ic = eval(ppc_cc - ppc_ps);
  document.calcform.ppc_ic.value = comma(Math.round(ppc_ic));
    document.forwarder.ppc_ic.value = comma(Math.round(ppc_ic));

  // Tool Savings
  var tg1 = eval(document.calcform.tg1.value);
    document.forwarder.tg1.value = tg1;
  var tg2 = eval(document.calcform.tg2.value);
    document.forwarder.tg2.value = tg2;
  var ipdp_atu = eval(document.calcform.ipdp_atu.value);
    document.forwarder.ipdp_atu.value = ipdp_atu;
  var ipdp_mf = eval(document.calcform.ipdp_mf.value);
    document.forwarder.ipdp_mf.value = ipdp_mf;
  var ipdp_hvc = eval(document.calcform.ipdp_hvc.value);
    document.forwarder.ipdp_hvc.value = ipdp_hvc;
  var trdp_atu = eval(document.calcform.trdp_atu.value);
    document.forwarder.trdp_atu.value = trdp_atu;
  var trdp_mf = eval(document.calcform.trdp_mf.value);
    document.forwarder.trdp_mf.value = trdp_mf;
  var trdp_hvc = eval(document.calcform.trdp_hvc.value);
    document.forwarder.trdp_hvc.value = trdp_hvc;

  document.calcform.ipdp_sr.value = tg1;
    document.forwarder.ipdp_sr.value = tg1;
  var ipdp_cc = eval(ipdp_atu * ipdp_mf * ipdp_hvc * 12);
  document.calcform.ipdp_cc.value = comma(Math.round(ipdp_cc));
    document.forwarder.ipdp_cc.value = comma(Math.round(ipdp_cc));
  var ipdp_ps = eval(ipdp_cc * (tg1/100));
  document.calcform.ipdp_ps.value = comma(Math.round(ipdp_ps));
  if (document.calcform.tg1.value != "0" && document.calcform.ipdp_atu.value != "0" && document.calcform.ipdp_mf.value != "0" && document.calcform.ipdp_hvc.value != "0") {
    document.calcform.ipdp_sr.value = tg1;
      document.forwarder.ipdp_ps.value = comma(Math.round(ipdp_ps));
      document.forwarder.ipdp_sr.value = tg1;
  } else {
    document.calcform.ipdp_sr.value = 0;
      document.forwarder.ipdp_sr.value = 0;
  }
  var ipdp_ic = eval(ipdp_cc - ipdp_ps);
  document.calcform.ipdp_ic.value = comma(Math.round(ipdp_ic));
    document.forwarder.ipdp_ic.value = comma(Math.round(ipdp_ic));
  var trdp_cc = eval(trdp_atu * trdp_mf * trdp_hvc * 12);
  document.calcform.trdp_cc.value = comma(Math.round(trdp_cc));
    document.forwarder.trdp_cc.value = comma(Math.round(trdp_cc));
  var trdp_ps = eval(trdp_cc * (tg2/100));
  document.calcform.trdp_ps.value = comma(Math.round(trdp_ps));
    document.forwarder.trdp_ps.value = comma(Math.round(trdp_ps));
  var trdp_ic = eval(trdp_cc - trdp_ps);
  document.calcform.trdp_ic.value = comma(Math.round(trdp_ic));
    document.forwarder.trdp_ic.value = comma(Math.round(trdp_ic));
  if (document.calcform.tg2.value != "0" && document.calcform.trdp_atu.value != "0" && document.calcform.trdp_mf.value != "0" && document.calcform.trdp_hvc.value != "0") {
    document.calcform.trdp_sr.value = tg2;
      document.forwarder.trdp_ps.value = comma(Math.round(trdp_ps));
      document.forwarder.trdp_sr.value = tg2;
  } else {
    document.calcform.trdp_sr.value = 0;
      document.forwarder.trdp_sr.value = 0;
  }

  // Stamping Fluid, Soap, Disposal Savings
  var stf_mv = eval(document.calcform.stf_mv.value);
    document.forwarder.stf_mv.value = stf_mv;
  var stf_cpg = eval(document.calcform.stf_cpg.value);
    document.forwarder.stf_cpg.value = stf_cpg;
  var pws_mv = eval(document.calcform.pws_mv.value);
    document.forwarder.pws_mv.value = pws_mv;
  var pws_cpg = eval(document.calcform.pws_cpg.value);
    document.forwarder.pws_cpg.value = pws_cpg;
  var sfd_mv = eval(document.calcform.sfd_mv.value);
    document.forwarder.sfd_mv.value = sfd_mv;
  var sfd_cpg = eval(document.calcform.sfd_cpg.value);
    document.forwarder.sfd_cpg.value = sfd_cpg;

  var stf_cc = eval(stf_mv * stf_cpg * 12);
  document.calcform.stf_cc.value = comma(Math.round(stf_cc));
    document.forwarder.stf_cc.value = comma(Math.round(stf_cc));
  var stf_ps = eval(stf_cc * 0.5);
  document.calcform.stf_ps.value = comma(Math.round(stf_ps));
  if (document.calcform.stf_mv.value != "0" && document.calcform.stf_cpg.value != "0") {
    document.calcform.stf_sr.value = 50;
      document.forwarder.stf_ps.value = comma(Math.round(stf_ps));
      document.forwarder.stf_sr.value = 50;
  } else {
    document.calcform.stf_sr.value = 0;
      document.forwarder.stf_sr.value = 0;
  }
  var stf_ic = eval(stf_cc - stf_ps);
  document.calcform.stf_ic.value = comma(Math.round(stf_ic));
    document.forwarder.stf_ic.value = comma(Math.round(stf_ic));
  var pws_cc = eval(pws_mv * pws_cpg * 12);
  document.calcform.pws_cc.value = comma(Math.round(pws_cc));
    document.forwarder.pws_cc.value = comma(Math.round(pws_cc));
  var pws_ps = eval(pws_cc * 0.75);
  document.calcform.pws_ps.value = comma(Math.round(pws_ps));
  if (document.calcform.pws_mv.value != "0" && document.calcform.pws_cpg.value != "0") {
    document.calcform.pws_sr.value = 75;
      document.forwarder.pws_ps.value = comma(Math.round(pws_ps));
      document.forwarder.pws_sr.value = 75;
  } else {
    document.calcform.pws_sr.value = 0;
      document.forwarder.pws_sr.value = 0;
  }
  var pws_ic = eval(pws_cc - pws_ps);
  document.calcform.pws_ic.value = comma(Math.round(pws_ic));
    document.forwarder.pws_ic.value = comma(Math.round(pws_ic));
  var sfd_cc = eval(sfd_mv * sfd_cpg * 12);
  document.calcform.sfd_cc.value = comma(Math.round(sfd_cc));
    document.forwarder.sfd_cc.value = comma(Math.round(sfd_cc));
  var sfd_ps = eval(sfd_cc * 0.75);
  document.calcform.sfd_ps.value = comma(Math.round(sfd_ps));
  if (document.calcform.sfd_mv.value != "0" && document.calcform.sfd_cpg.value != "0") {
    document.calcform.sfd_sr.value = 75;
      document.forwarder.sfd_ps.value = comma(Math.round(sfd_ps));
      document.forwarder.sfd_sr.value = 75;
  } else {
    document.calcform.sfd_sr.value = 0;
      document.forwarder.sfd_sr.value = 0;
  }
  var sfd_ic = eval(sfd_cc - sfd_ps);
  document.calcform.sfd_ic.value = comma(Math.round(sfd_ic));
    document.forwarder.sfd_ic.value = comma(Math.round(sfd_ic));

  var tasp = eval(sf_ps + pac_ps + wa_ps + ppc_ps + ipdp_ps + trdp_ps + stf_ps + pws_ps + sfd_ps + iws + swes);
  document.calcform.tasp.value = comma(Math.round(tasp));
    document.forwarder.tasp.value = comma(Math.round(tasp));
}
function get_heat_loss(temp) {
  heat_loss = new Array();
  heat_loss['60']  = 34;
  heat_loss['65']  = 69.5;
  heat_loss['70']  = 105;
  heat_loss['75']  = 157.5;
  heat_loss['80']  = 210;
  heat_loss['85']  = 270;
  heat_loss['90']  = 330;
  heat_loss['95']  = 405;
  heat_loss['100'] = 480;
  heat_loss['105'] = 575;
  heat_loss['110'] = 670;
  heat_loss['115'] = 800;
  heat_loss['120'] = 930;
  heat_loss['125'] = 1085;
  heat_loss['130'] = 1240;
  heat_loss['135'] = 1420;
  heat_loss['140'] = 1600;
  heat_loss['145'] = 1850;
  heat_loss['150'] = 2100;
  heat_loss['155'] = 2400;
  heat_loss['160'] = 2700;
  heat_loss['165'] = 3200;
  heat_loss['170'] = 3700;
  heat_loss['175'] = 4350;
  heat_loss['180'] = 5000;
  heat_loss['185'] = 5950;
  heat_loss['190'] = 6900;
  heat_loss['195'] = 8300;
  heat_loss['200'] = 9700;
  return heat_loss[temp];
}


function get_spray_temp_drop(water_temp, size) {
  // Small canopy size
  temp_drop_small = new Array();
  temp_drop_small['70']  = 0;
  temp_drop_small['75']  = 0;
  temp_drop_small['80']  = 0;
  temp_drop_small['85']  = 0;
  temp_drop_small['90']  = 0;
  temp_drop_small['95']  = 0.3;
  temp_drop_small['100'] = 1;
  temp_drop_small['105'] = 0.8;
  temp_drop_small['110'] = 2;
  temp_drop_small['115'] = 2.5;
  temp_drop_small['120'] = 3;
  temp_drop_small['125'] = 3.5;
  temp_drop_small['130'] = 4;
  temp_drop_small['135'] = 4.5;
  temp_drop_small['140'] = 5;
  temp_drop_small['145'] = 5.5;
  temp_drop_small['150'] = 6;
  temp_drop_small['155'] = 6.5;
  temp_drop_small['160'] = 7;
  temp_drop_small['165'] = 7.5;
  temp_drop_small['170'] = 9;
  temp_drop_small['175'] = 10;
  temp_drop_small['180'] = 11;
  temp_drop_small['185'] = 12;
  temp_drop_small['190'] = 13;
  
  // Large canopy size
  temp_drop_large = new Array();
  temp_drop_large['70']  = 0;
  temp_drop_large['75']  = 0;
  temp_drop_large['80']  = 0;
  temp_drop_large['85']  = 0;
  temp_drop_large['90']  = 0;
  temp_drop_large['95']  = 1;
  temp_drop_large['100'] = 2;
  temp_drop_large['105'] = 2.5;
  temp_drop_large['110'] = 3;
  temp_drop_large['115'] = 3.5;
  temp_drop_large['120'] = 4;
  temp_drop_large['125'] = 4.5;
  temp_drop_large['130'] = 5;
  temp_drop_large['135'] = 5.5;
  temp_drop_large['140'] = 6;
  temp_drop_large['145'] = 6.5;
  temp_drop_large['150'] = 7;
  temp_drop_large['155'] = 7.5;
  temp_drop_large['160'] = 8;
  temp_drop_large['165'] = 9;
  temp_drop_large['170'] = 10;
  temp_drop_large['175'] = 11;
  temp_drop_large['180'] = 12;
  temp_drop_large['185'] = 13;
  temp_drop_large['190'] = 14;

  if(size == 'large') return temp_drop_large[water_temp];
  if(size == 'small') return temp_drop_small[water_temp];
  
  return 0;
}

function addCommas(nStr) {
  nStr += '';
  x = nStr.split('.');
  x1 = x[0];
  x2 = x.length > 1 ? '.' + x[1] : '';
  var rgx = /(\d+)(\d{3})/;
  while (rgx.test(x1)) {
    x1 = x1.replace(rgx, '$1' + ',' + '$2');
  }
  return x1 + x2;
}

function immersion_washer_savings() {
  var total_savings = 0;
  var total_volume           = $$('.total_volume');           // C8
  var cold_startups          = $$('.cold_startups');          // E8
  var natural_gas_cubic_foot = $$('.natural_gas_cubic_foot'); // F8
  var tank_area              = $$('.tank_area');              // C9
  var hours_a_day            = $$('.hours_a_day');            // E9
  var operating_temp         = $$('.operating_temp');         // C10
  var days_a_year            = $$('.days_a_year');            // E10

  for(var i = 0; i < 3; i++) { // loop through sections
    if(total_volume[i].value != 0) { // skip empty sections
      calculated = calculate_immersion_washer_savings(
        total_volume[i].value,
        cold_startups[i].value,
        natural_gas_cubic_foot[i].value,
        tank_area[i].value,
        hours_a_day[i].value,
        operating_temp[i].options[operating_temp[i].selectedIndex].text,
        days_a_year[i].value
      );
      $$('.current_cost')[i].innerHTML      = '$' + addCommas(calculated.current_cost.toFixed(2));
      $$('.irmco_cost')[i].innerHTML        = '$' + addCommas(calculated.irmco_cost.toFixed(2));
      $$('.potential_savings')[i].innerHTML = '$' + addCommas(calculated.potential_savings.toFixed(2));
      $$('.savings_reduction')[i].innerHTML = (calculated.savings_reduction * 100).toFixed(0) + '%';
      total_savings = total_savings + calculated.potential_savings;
    }
  }
  return total_savings;
}

function calculate_immersion_washer_savings(total_volume, cold_startups, natural_gas_cubic_foot, tank_area, hours_a_day, operating_temp, days_a_year) {
  var proposed_temp = 110;
  var current_cost = ((cold_startups * total_volume * (operating_temp - 75) * 8.33 / .7) / 1033 * 
                     natural_gas_cubic_foot / 100) + (natural_gas_cubic_foot / 100 * get_heat_loss(operating_temp) * 
                     tank_area * (hours_a_day * days_a_year)) * 0.001383;
  var irmco_cost   = ((cold_startups * total_volume * (proposed_temp - 75) * 8.33 / .7) / 1033 * 
                     natural_gas_cubic_foot / 100) + (natural_gas_cubic_foot / 100 * get_heat_loss(proposed_temp) * 
                     tank_area * (hours_a_day * days_a_year)) * 0.001383;
  var potential_savings = current_cost - irmco_cost;
  var savings_reduction = potential_savings / current_cost;
  var result = {
    'current_cost'      : current_cost,
    'irmco_cost'        : irmco_cost,
    'potential_savings' : potential_savings,
    'savings_reduction' : savings_reduction
  };
  return result;
}



function spray_washer_energy_savings() {
  var total_savings = 0;
  var swes_total_volume      =  $$('.swes_total_volume');      // C3
  var swes_canopy_size       =  $$('.swes_canopy_size');       // C4
  var swes_pump_capacity     =  $$('.swes_pump_capacity');     // C5
  var swes_operating_temp    =  $$('.swes_operating_temp');    // C6
  var swes_leangreen_temp    =  $$('.swes_leangreen_temp');    // C7
  var swes_cold_startups     =  $$('.swes_cold_startups');     // E4
  var swes_hours_per_day     =  $$('.swes_hours_per_day');     // E5
  var swes_days_per_year     =  $$('.swes_days_per_year');     // E6
  var swes_natural_gas_price =  $$('.swes_natural_gas_price'); // F3
  for(var i = 0; i < 3; i++) { // loop through sections
    if(swes_total_volume[i].value != 0) { // skip empty sections
      calculated = calculate_spray_washer_energy_savings(
        swes_canopy_size[i].options[swes_canopy_size[i].selectedIndex].value,
        swes_pump_capacity[i].value,
        swes_hours_per_day[i].value,
        swes_days_per_year[i].value,
        swes_natural_gas_price[i].value, 
        swes_cold_startups[i].value,
        swes_total_volume[i].value,
        swes_operating_temp[i].options[swes_operating_temp[i].selectedIndex].text,
        110
      );
      $$('.swes_current_cost')[i].innerHTML      = '$' + addCommas(calculated.current_cost.toFixed(2));
      $$('.swes_irmco_cost')[i].innerHTML        = '$' + addCommas(calculated.irmco_cost.toFixed(2));
      $$('.swes_potential_savings')[i].innerHTML = '$' + addCommas(calculated.potential_savings.toFixed(2));
      $$('.swes_savings_reduction')[i].innerHTML = (calculated.savings_reduction * 100).toFixed(0) + '%';
      total_savings = total_savings + calculated.potential_savings;
    }
  }
  return total_savings;
}


function calculate_spray_washer_energy_savings(canopy_size, pump_capacity, hours_per_day, days_per_year, natural_gas_price, cold_startups, total_volume, operating_temp, leangreen_temp) {
  var current_cost = (pump_capacity * 70 / 100 * get_spray_temp_drop(operating_temp, canopy_size) * 
                     hours_per_day * days_per_year * 0.6911 * natural_gas_price / 100) + (cold_startups * 
                     total_volume * natural_gas_price / 100 * (operating_temp - 75) * 0.01152);

  var irmco_cost   = (pump_capacity * 70 / 100 * get_spray_temp_drop(leangreen_temp, canopy_size) * 
                     hours_per_day * days_per_year * 0.6911 * natural_gas_price / 100) + (cold_startups * 
                     total_volume * natural_gas_price / 100 * (leangreen_temp - 75) * 0.01152);
  var potential_savings = current_cost - irmco_cost;
  var savings_reduction = potential_savings / current_cost;
  var result = {
    'current_cost'      : current_cost,
    'irmco_cost'        : irmco_cost,
    'potential_savings' : potential_savings,
    'savings_reduction' : savings_reduction
  };
  return result;
}








