var krPrKwh = 2;

var powerWorkingDays = 220;
var powerWorkingHours = 10;
var powerPrintPrDay = 500;

var powerPrinterPagesPrMin = 45;
var powerPrinterTimeToStandby = 15;
var powerPrinterWattPrinting = 1000;
var powerPrinterWattReady = 100;
var powerPrinterWattStandby = 20;
var powerPrinterWattOff = 0.5;

computePowerSavings();

function computePowerSavings() {
  var form = document.forms['powerSavings'];
  if(form==null) return;
  
  if(!isNum(form.krPrKwh))
    form.krPrKwh.value = krPrKwh;
  if(!isNum(form.powerWorkingDays))
    form.powerWorkingDays.value = powerWorkingDays;
  if(!isNum(form.powerWorkingHours))
    form.powerWorkingHours.value = powerWorkingHours;
  if(!isNum(form.powerPrintPrDay))
    form.powerPrintPrDay.value = powerPrintPrDay;
  if(!isNum(form.powerPrinterPagesPrMin))
    form.powerPrinterPagesPrMin.value = powerPrinterPagesPrMin;
  if(!isNum(form.powerPrinterTimeToStandby))
    form.powerPrinterTimeToStandby.value = powerPrinterTimeToStandby;
  if(!isNum(form.powerPrinterWattPrinting))
    form.powerPrinterWattPrinting.value = powerPrinterWattPrinting;
  if(!isNum(form.powerPrinterWattReady))
    form.powerPrinterWattReady.value = powerPrinterWattReady;
  if(!isNum(form.powerPrinterWattStandby))
    form.powerPrinterWattStandby.value = powerPrinterWattStandby ;
  if(!isNum(form.powerPrinterWattOff))
    form.powerPrinterWattOff.value = powerPrinterWattOff;
  
  
  var powerWorkHoursPrinting = eval(form.powerPrintPrDay.value) / eval(form.powerPrinterPagesPrMin.value) / 60 * eval(form.powerWorkingDays.value);

  var powerPrintingBlocksPrDay = 5;
  var powerReadyPrintRatio = 10; // Ready tid pr Print tid  
  var powerWorkHoursStandby = (eval(form.powerWorkingHours.value) - eval(powerWorkHoursPrinting) / eval(form.powerWorkingDays.value) - eval(powerWorkHoursPrinting) / eval(form.powerWorkingDays.value) * eval(powerReadyPrintRatio) ) / eval(powerPrintingBlocksPrDay);
  if( eval(powerWorkHoursStandby) > ( eval(form.powerPrinterTimeToStandby.value) / 60) )
    powerWorkHoursStandby = (eval(powerWorkHoursStandby) - eval(form.powerPrinterTimeToStandby.value) / 60) * eval(powerPrintingBlocksPrDay) * eval(form.powerWorkingDays.value);
  else
    powerWorkHoursStandby = 0;
  
  var powerWorkHoursReady = ( eval(form.powerWorkingHours.value) - eval(powerWorkHoursPrinting)/eval(form.powerWorkingDays.value) - eval(powerWorkHoursStandby)/eval(form.powerWorkingDays.value) ) * eval(form.powerWorkingDays.value);
  
  var powerWorkHoursNight = (24 - eval(form.powerWorkingHours.value)) * eval(form.powerWorkingDays.value);
    
  var powerWorkHoursWeekends = 52 * 2 * 24;
  var powerWorkHoursHolidays = (365 - eval(form.powerWorkingDays.value) - eval(powerWorkHoursWeekends) / 24) * 24;
  
  form.powerWorkHoursPrintingKwh.value = Math.round( eval(powerWorkHoursPrinting) * eval(form.powerPrinterWattPrinting.value) / 1000 *10)/10;
  form.powerWorkHoursPrintingKr.value = eval(form.powerWorkHoursPrintingKwh.value) * eval(form.krPrKwh.value);
  
  form.powerWorkHoursReadyKwh.value = Math.round( eval(powerWorkHoursReady) * eval(form.powerPrinterWattReady.value) / 1000 *10)/10;
  form.powerWorkHoursReadyKr.value = eval(form.powerWorkHoursReadyKwh.value) * eval(form.krPrKwh.value);
  
  form.powerWorkHoursStandbyKwh.value = Math.round( eval(powerWorkHoursStandby) * eval(form.powerPrinterWattStandby.value) / 1000 *10)/10;
  form.powerWorkHoursStandbyKr.value = eval(form.powerWorkHoursStandbyKwh.value) * eval(form.krPrKwh.value);
  
  form.powerWorkingDaysKwhTotal.value = eval(form.powerWorkHoursPrintingKwh.value) + eval(form.powerWorkHoursReadyKwh.value) + eval(form.powerWorkHoursStandbyKwh.value);
  form.powerWorkingDaysKrTotal.value = eval(form.powerWorkHoursPrintingKr.value) + eval(form.powerWorkHoursReadyKr.value) + eval(form.powerWorkHoursStandbyKr.value);
  
  form.powerNotWorkingNightOffKwh.value = Math.round( eval(powerWorkHoursNight) * eval(form.powerPrinterWattOff.value) / 1000 *10)/10;
  form.powerNotWorkingNightOffKr.value = eval(form.powerNotWorkingNightOffKwh.value) * eval(form.krPrKwh.value);
  form.powerNotWorkingNightStandbyKwh.value = Math.round( eval(powerWorkHoursNight) * eval(form.powerPrinterWattStandby.value) / 1000 *10)/10;
  form.powerNotWorkingNightStandbyKr.value = eval(form.powerNotWorkingNightStandbyKwh.value) * eval(form.krPrKwh.value);
  
  form.powerNotWorkingWeekendsOffKwh.value = Math.round( eval(powerWorkHoursWeekends) * eval(form.powerPrinterWattOff.value) / 1000 *10)/10;
  form.powerNotWorkingWeekendsOffKr.value = eval(form.powerNotWorkingWeekendsOffKwh.value) * eval(form.krPrKwh.value);
  form.powerNotWorkingWeekendsStandbyKwh.value = Math.round( eval(powerWorkHoursWeekends) * eval(form.powerPrinterWattStandby.value) / 1000 *10)/10;
  form.powerNotWorkingWeekendsStandbyKr.value = eval(form.powerNotWorkingWeekendsStandbyKwh.value) * eval(form.krPrKwh.value);
  
  form.powerNotWorkingHolidaysOffKwh.value = Math.round( eval(powerWorkHoursHolidays) * eval(form.powerPrinterWattOff.value) / 1000 *10)/10;
  form.powerNotWorkingHolidaysOffKr.value = eval(form.powerNotWorkingHolidaysOffKwh.value) * eval(form.krPrKwh.value);
  form.powerNotWorkingHolidaysStandbyKwh.value = Math.round( eval(powerWorkHoursHolidays) * eval(form.powerPrinterWattStandby.value) / 1000 *10)/10;
  form.powerNotWorkingHolidaysStandbyKr.value = eval(form.powerNotWorkingHolidaysStandbyKwh.value) * eval(form.krPrKwh.value);
  
  form.powerNotWorkingOffKwhTotal.value = eval(form.powerNotWorkingNightOffKwh.value) + eval(form.powerNotWorkingWeekendsOffKwh.value) + eval(form.powerNotWorkingHolidaysOffKwh.value);
  form.powerNotWorkingOffKrTotal.value = eval(form.powerNotWorkingNightOffKr.value) + eval(form.powerNotWorkingWeekendsOffKr.value) + eval(form.powerNotWorkingHolidaysOffKr.value);
  form.powerNotWorkingStandbyKwhTotal.value = eval(form.powerNotWorkingNightStandbyKwh.value) + eval(form.powerNotWorkingWeekendsStandbyKwh.value) + eval(form.powerNotWorkingHolidaysStandbyKwh.value);
  form.powerNotWorkingStandbyKrTotal.value = eval(form.powerNotWorkingNightStandbyKr.value) + eval(form.powerNotWorkingWeekendsStandbyKr.value) + eval(form.powerNotWorkingHolidaysStandbyKr.value);
  
}

var yearColorOrg = 100000;
var yearMonoOrg = 100000;

var savedColorOrg = 0.15;
var savedMonoOrg = 0.2;

var krColorOrg = 0.1;
var krMonoOrg = 0.5;

var co2ColorOrg = 0.5;
var co2MonoOrg = 0.5;

computePaperSavings();

function computePaperSavings() {
  var form = document.forms['paperSavings'];
  if(form==null) return;

  if(!isNum(form.yearColor))
    form.yearColor.value = yearColorOrg;
  if(!isNum(form.yearMono))
    form.yearMono.value = yearMonoOrg;

  if(!isNum(form.savedColor))
    form.savedColor.value = savedColorOrg;
  if(!isNum(form.savedMono))
    form.savedMono.value = savedMonoOrg;

  if(!isNum(form.krColor))
    form.krColor.value = krColorOrg;
  if(!isNum(form.krMono))
    form.krMono.value = krMonoOrg;

  if(!isNum(form.co2Color))
    form.co2Color.value = co2ColorOrg;
  if(!isNum(form.co2Mono))
    form.co2Mono.value = co2MonoOrg;


  form.res1Co2Color.value = eval(form.yearColor.value) * eval(form.co2Color.value);
  form.res1Co2Mono.value = eval(form.yearMono.value) * eval(form.co2Mono.value);

  form.res2Co2Color.value = eval(form.res1Co2Color.value) * (1 - eval(form.savedColor.value));
  form.res2Co2Mono.value = eval(form.res1Co2Mono.value) * (1 - eval(form.savedMono.value));

  form.resSavedCo2Color.value = eval(form.res1Co2Color.value) - eval(form.res2Co2Color.value);
  form.resSavedCo2Mono.value = eval(form.res1Co2Mono.value) - eval(form.res2Co2Mono.value);


  form.res1KrColor.value = eval(form.yearColor.value) * eval(form.krColor.value);
  form.res1KrMono.value = eval(form.yearMono.value) * eval(form.krMono.value);

  form.res2KrColor.value = eval(form.res1KrColor.value) * (1 - eval(form.savedColor.value));
  form.res2KrMono.value = eval(form.res1KrMono.value) * (1 - eval(form.savedMono.value));

  form.resSavedKrColor.value = eval(form.res1KrColor.value) - eval(form.res2KrColor.value);
  form.resSavedKrMono.value = eval(form.res1KrMono.value) - eval(form.res2KrMono.value);


  form.resSavedCo2.value = eval(form.resSavedCo2Color.value) + eval(form.resSavedCo2Mono.value);
  form.resSavedKr.value = eval(form.resSavedKrColor.value) + eval(form.resSavedKrMono.value);

}

function isNum(input) {
  input.value = input.value.replace(",", ".");
  var value = input.value;
  if(value == ""||value == ".")
    return false;
  var ValidChars = "0123456789.";
  var Char;

  for (i = 0; i < value.length; i++) {
    Char = value.charAt(i);
    if (ValidChars.indexOf(Char) == -1) {
      return false;
    }
  }
  return true;
}
