/* javascripts for stimulus march 2009
udo wekemann
created: 2009-03-12
*/
$weight_unit = " Lbs ";
$currency_unit = " US$ ";

function createCurrency ($val, $decimals)
{
  var num = new NumberFormat();
  num.setInputDecimal('.');
  num.setNumber($val);
  num.setPlaces($decimals, false);
  num.setCurrencyValue($currency_unit);
  num.setCurrency(true);
  num.setCurrencyPosition(num.LEFT_OUTSIDE);
  num.setNegativeFormat(num.LEFT_DASH);
  num.setNegativeRed(false);
  num.setSeparators(true, ',', ',');
  return(num.toFormatted());
}
function createWeeks ($val, $decimals)
{
  var num = new NumberFormat();
  num.setInputDecimal('.');
  num.setNumber($val);
  num.setPlaces($decimals, false);
  num.setNegativeFormat(num.LEFT_DASH);
  num.setNegativeRed(false);
  num.setSeparators(true, ',', ',');
  return(num.toFormatted());
}
function createPercent ($val)
{
  var num = new NumberFormat();
  num.setInputDecimal('.');
  num.setNumber($val);
  num.setPlaces('0', false);
  num.setCurrencyValue('%');
  num.setCurrency(true);
  num.setCurrencyPosition(num.RIGHT_OUTSIDE);
  num.setNegativeFormat(num.LEFT_DASH);
  num.setNegativeRed(false);
  num.setSeparators(true, ',', ',');
  return(num.toFormatted());
}
function createWeight ($val, $decimal, $unit)
{
  var num = new NumberFormat();
  num.setInputDecimal('.');
  num.setNumber($val);
  num.setPlaces($decimal, false);
  num.setCurrencyValue($unit);
  num.setCurrency(true);
  num.setCurrencyPosition(num.RIGHT_OUTSIDE);
  num.setNegativeFormat(num.LEFT_DASH);
  num.setNegativeRed(false);
  num.setSeparators(true, ',', ',');
  return(num.toFormatted());
}

function calcRoi() 
{
  $resin_usage                  = replaceCommas(document.roi.resin_usage.value);
  $resin_cost                   = replaceCommas(document.roi.resin_cost.value);
  $percent_virgin               = replaceCommas(document.roi.percent_virgin.value);  
  $cost_regrind                 = replaceCommas(document.roi.cost_regrind.value);
  $percent_scrap                = replaceCommas(document.roi.percent_scrap.value);
  $units_per_day                = replaceCommas(document.roi.units_per_day.value);
  $workingdays_per_year         = replaceCommas(document.roi.workingdays_per_year.value);
  $weight_per_unit              = replaceCommas(document.roi.weight_per_unit.value);
  $unit_price                   = replaceCommas(document.roi.unit_price.value);
  $maint_hours_day              = replaceCommas(document.roi.maint_hours_day.value);
  $maint_person_rate            = replaceCommas(document.roi.maint_person_rate.value);
  $maint_mat_per_month          = replaceCommas(document.roi.maint_mat_per_month.value);
  $health_per_month             = replaceCommas(document.roi.health_per_month.value);
  $expected_scrap_reduction     = replaceCommas(document.roi.expected_scrap_reduction.value);
  $deduster_budget              = replaceCommas(document.roi.deduster_budget.value);
  $estimated_installation_cost  = replaceCommas(document.roi.estimated_installation_cost.value);
  
  
  // limit percentage to max 100 and min 0
  
  if ($percent_virgin > 100) {$percent_virgin = 100; }
  if ($percent_scrap > 100) {$percent_scrap = 100; }
  if ($expected_scrap_reduction > 100) {$expected_scrap_reduction = 100; }
  if ($workingdays_per_year > 356) {$workingdays_per_year = 356; }
  
  // writing back the corrected values
  document.roi.resin_usage.value                  = $resin_usage;
  document.roi.resin_cost.value                   = $resin_cost;
  document.roi.percent_virgin.value               = $percent_virgin;
  document.roi.cost_regrind.value                 = $cost_regrind;
  document.roi.percent_scrap.value                = $percent_scrap
  document.roi.units_per_day.value                = $units_per_day  
  document.roi.workingdays_per_year.value         = $workingdays_per_year ;
  document.roi.weight_per_unit.value              = $weight_per_unit;
  document.roi.unit_price.value                   = $unit_price;
  document.roi.maint_hours_day.value              = $maint_hours_day;
  document.roi.maint_person_rate.value            = $maint_person_rate;
  document.roi.maint_mat_per_month.value          = $maint_mat_per_month 
  document.roi.health_per_month.value             = $health_per_month;
  document.roi.expected_scrap_reduction.value     = $expected_scrap_reduction;
  document.roi.deduster_budget.value              = $deduster_budget;
  document.roi.estimated_installation_cost.value  = $estimated_installation_cost;
  
  
  $percent_regrind      = 100-$percent_virgin;
  $total_mat_month      = 12 * $maint_mat_per_month;
  $maint_wage_per_day   = $maint_hours_day * $maint_person_rate;
  $total_maint_labor    = $maint_wage_per_day * $workingdays_per_year;
  $total_maint_cost_per_year = $total_maint_labor + $total_mat_month;
  
  
  $total_scrap_loss_per_year = $resin_usage * $workingdays_per_year * ($percent_scrap/100)*((($percent_virgin/100) * $resin_cost) + (($percent_regrind/100) * $cost_regrind));
  $total_potential_sell      = -.1 * ($workingdays_per_year * ($percent_scrap/100) * $resin_usage);
  $total_estimated_scrap_loss = $total_scrap_loss_per_year + $total_potential_sell;
  
  $total_productivity_loss = ($resin_usage/$weight_per_unit) * $workingdays_per_year * ($percent_scrap/100)* $unit_price;
  
  $total_annual_loss = $total_productivity_loss + $total_estimated_scrap_loss + $total_maint_cost_per_year;
  
  if ($total_annual_loss > 0)
  {
    $deduster_budget = parseInt($deduster_budget);
    $estimated_installation_cost = parseInt($estimated_installation_cost);
    $roi_weeks = ($deduster_budget + $estimated_installation_cost)/(($total_annual_loss*($expected_scrap_reduction/100)) / 52);
    $expected_savings_per_week = ($deduster_budget + $estimated_installation_cost) / $roi_weeks;
  } else {
    $roi_weeks = "";
    $expected_savings_per_week = "";
  }
  
  
  document.getElementById('_resin_usage1').innerHTML          = createWeight($resin_usage,0, $weight_unit);  
  document.getElementById('_resin_usage2').innerHTML          = createWeight($resin_usage,0, $weight_unit);
  document.getElementById('_resin_cost1').innerHTML           = createCurrency($resin_cost,2);
  document.getElementById('_percent_virgin1').innerHTML       = createPercent($percent_virgin);  
  document.getElementById('_percent_regrind1').innerHTML      = createPercent($percent_regrind);
  document.getElementById('_cost_regrind1').innerHTML         = createCurrency($cost_regrind,2);
  document.getElementById('_percent_scrap1').innerHTML        = createPercent($percent_scrap);
  document.getElementById('_percent_scrap2').innerHTML        = createPercent($percent_scrap);
  //document.getElementById('_units_per_day1').innerHTML        = $units_per_day;
  document.getElementById('_workingdays_per_year1').innerHTML = $workingdays_per_year;
  document.getElementById('_workingdays_per_year2').innerHTML = $workingdays_per_year;
  document.getElementById('_workingdays_per_year3').innerHTML = $workingdays_per_year;
  document.getElementById('_weight_per_unit1').innerHTML      = createWeight($weight_per_unit,2, $weight_unit);
  document.getElementById('_unit_price1').innerHTML           = createCurrency($unit_price,2);
  
  document.getElementById('_maint_hours_day1').innerHTML      = $maint_hours_day;
  document.getElementById('_maint_person_rate1').innerHTML    = createCurrency($maint_person_rate,0);
  document.getElementById('_maint_mat_per_month1').innerHTML  = createCurrency($maint_mat_per_month,0);  
  //document.getElementById('_health_per_month1').innerHTML     = $health_per_month;  
  document.getElementById('_total_mat_month1').innerHTML                 = createCurrency($total_mat_month, 0);  
  document.getElementById('_maint_wage_per_day1').innerHTML              = createCurrency($maint_wage_per_day, 0);
  document.getElementById('_total_maint_labor1').innerHTML               = createCurrency($total_maint_labor, 0);
  document.getElementById('_total_maint_cost_per_year1').innerHTML       = createCurrency($total_maint_cost_per_year,0);
  document.getElementById('_total_scrap_loss_per_year1').innerHTML       = createCurrency($total_scrap_loss_per_year,0);  
  document.getElementById('_total_potential_sell1').innerHTML            = createCurrency($total_potential_sell,0);  
  document.getElementById('_total_estimated_scrap_loss1').innerHTML      = createCurrency($total_estimated_scrap_loss,0);
  document.getElementById('_total_productivity_loss1').innerHTML         = createCurrency($total_productivity_loss,0);
  
  document.getElementById('_total_annual_loss1').innerHTML               = createCurrency($total_annual_loss,0);
  
  document.getElementById('_expected_savings_per_week').innerHTML        = createCurrency($expected_savings_per_week,0);
  document.getElementById('_roi_weeks').innerHTML                        = createWeeks($roi_weeks,1)+" weeks";
 
}

function change_units()
{
  for (i = 0; i < document.roi.measurements.length; ++i)
    if (document.roi.measurements.options[i].selected == true)
      $v = (document.roi.measurements.options[i].value);
  if ($v == "metric") 
  {
    $weight_unit = " kg ";
  }
  if ($v == "statute")
  {
    $weight_unit = " Lbs ";
  }
  for (i=1; i < 17; i++)
  {
  document.getElementById('w'+i).innerHTML = $weight_unit;
  }
  calcRoi()
}

function change_currency()
{
for (i = 0; i < document.roi.currency.length; ++i)
    if (document.roi.currency.options[i].selected == true)
      $currency_unit = " "+(document.roi.currency.options[i].value)+" ";
  for (i=1; i < 13; i++)
  {
  document.getElementById('c'+i).innerHTML = $currency_unit;
  }
  calcRoi()
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}

function replaceCommas ($val)
{
// clean a given number, maybe float, from thousand-dividers like points or commas, and only replaces the last point or comma with a point
  $retstr = "";
  $count = 0;
  $charpos = 0;
  for($i=0; $i<= $val.length ; $i++)
  {
    $c = $val.charAt($i);
    if ($c != "," && $c !=".")
    {
      $retstr += $c;
    } else {
      $count++;
      $charpos = $i;
    }
    
  }
  // check if there might be a decimal intended
  if ($count > 0) 
  {
    // someone entered at least a point or a comma.
    // so restore the last one with a point
    $pos = $val.length - $charpos -1;
    $partA = $retstr.substring(0 , $retstr.length-$pos);
    $partB = $retstr.substring($retstr.length - $pos , $retstr.length);
    $retstr = $partA+"."+$partB;
  }  
  if(isNaN($retstr))
  { // parse error 
    alert('The field must contain a numerical amount.');
    return 0;
  }
  return $retstr;
}

function callUs()
{
  var now = new Date();
  var day = now.getUTCDay();
  if (day > 0 && day < 6 )
  {
    var hour = now.getUTCHours();
    hour = hour-4; // for UTC
    if (hour > 8 && hour < 17)
    {    
      document.getElementById('contactPelletron').innerHTML ="You may call us now! +1.717.293.4008";
    }
  }
}