/************************************************************\
*
\************************************************************/
function roundup(n)
{
  var ret;
  ret = n * 1000
  ret = Math.round(ret /10) + ""
  while (ret.length < 3)
    ret = "0" + ret;

  len = ret.length;
  ret = ret.substring(0,len-2) + "." + ret.substring(len-2,len);
  //ret.replace(",",".");

  return ret;
}
/************************************************************\
*
\************************************************************/

var getEl = function(id)
{
  return document.getElementById(id);
}

function GrossSalCal(salent)
{
  var Sal,spSick,spNurs;
  strent = salent;
  if (strent != null)
    Sal = strent;
  else
    Sal = document.formcal.txtSal.value;

  reg = new RegExp('(^-?[0-9]+(.[0-9]+)?$)');
  strSal = Sal;
  Sal = strSal.replace(",",".");
  if (!reg.test(Sal))
    Sal = 0;

  Sal = parseFloat(Sal);
  Sal = roundup(Math.abs(eval(Sal)));
  document.formcal.hidtxtSal.value = Sal;
  hidSal = eval(Sal);

                                       // Fixkosten ()
  calc_sozvers         = Math.abs(19.91/100); // 19.91% - Sozialversicherung (Arbeitgeberanteil)
  calc_berufsgen       = Math.abs(3.09/100);  //  3.09% - Berufsgenossenschaft, Schwerbehindertenabgabe
  calc_weiterbildung   = Math.abs(1.75/100);  //  1.75% - Weiterbildung
  calc_kleidung        = Math.abs(1.25/100);  //  1.25% - Persönliche Schutzausrüstung, Kleidung
  calc_lohnfortzahlung = Math.abs(22.20/100); // 22.20% - Lohnfortzahlung (Krankheit, Feiertage, Urlaub etc.)

  // Sozialversicherung (Arbeitgeberanteil)
  result_sozvers = roundup(Math.abs(Sal * calc_sozvers));
  float_sozvers = eval(result_sozvers);
  result_sozvers = result_sozvers.replace(".",",");
  getEl("sozvers").innerHTML = result_sozvers;

  // Berufsgenossenschaft, Schwerbehindertenabgabe
  result_berufsgen = roundup(Math.abs(Sal * calc_berufsgen));
  float_berufsgen = eval(result_berufsgen);
  result_berufsgen = result_berufsgen.replace(".",",");
  getEl("berufsgen").innerHTML = result_berufsgen;

  // Weiterbildung
  result_weiterbildung = roundup(Math.abs(Sal * calc_weiterbildung));
  float_weiterbildung = eval(result_weiterbildung);
  result_weiterbildung = result_weiterbildung.replace(".",",");
  getEl("weiterbildung").innerHTML = result_weiterbildung;

  // Persönliche Schutzausrüstung, Kleidung
  result_kleidung = roundup(Math.abs(Sal * calc_kleidung));
  float_kleidung = eval(result_kleidung);
  result_kleidung = result_kleidung.replace(".",",");
  getEl("kleidung").innerHTML = result_kleidung;

  // Lohnfortzahlung (Krankheit, Feiertage, Urlaub etc.)
  result_lohnfortzahlung = roundup(Math.abs(Sal * calc_lohnfortzahlung));
  float_lohnfortzahlung = eval(result_lohnfortzahlung);
  result_lohnfortzahlung = result_lohnfortzahlung.replace(".",",");
  getEl("lohnfortzahlung").innerHTML = result_lohnfortzahlung;

  // Summierung der Fixkosten
  result_fix = roundup(Math.abs(eval(float_sozvers + float_berufsgen + float_weiterbildung + float_kleidung + float_lohnfortzahlung)));
  float_fix = eval(result_fix);
  result_fix = roundup(eval(hidSal + float_fix));
  getEl("fixkosten").innerHTML = result_fix.replace(".", ",");
  result_fix = eval(result_fix);
                                        //
  calc_verwaltung = Math.abs(25.00/100); // 25.00% Verwaltung, Rekrutierung, allg. Kosten etc.
  calc_werbung    = Math.abs(2.50/100);  //  2.50% Werbung
  calc_ergebnis   = Math.abs(7.50/100);  //  7.50% Ergebnis, Wagnis

  // Verwaltung, Rekrutierung, allg. Kosten etc.
  result_verwaltung = roundup(Math.abs(result_fix * calc_verwaltung));
  float_verwaltung = eval(result_verwaltung);
  result_verwaltung = result_verwaltung.replace(".",",");
  getEl("verwaltung").innerHTML = result_verwaltung;

  // Werbung
  result_werbung = roundup(Math.abs(result_fix * calc_werbung));
  float_werbung = eval(result_werbung);
  result_werbung = result_werbung.replace(".",",");
  getEl("werbung").innerHTML = result_werbung;

  // Ergebnis, Wagnis
  result_ergebnis = roundup(Math.abs(result_fix * calc_ergebnis));
  float_ergebnis = eval(result_ergebnis);
  result_ergebnis = result_ergebnis.replace(".",",");
  getEl("ergebnis").innerHTML = result_ergebnis;

  // Summierung des gesamten Stundenlohnes
  result_sum = roundup(Math.abs(eval(float_verwaltung + float_werbung + float_ergebnis)));
  float_sum = eval(result_sum);
  result_sum = roundup(eval(result_fix + float_sum));

  getEl("stundensatz").innerHTML = result_sum.replace(".", ",");
}

/************************************************************\
*
\************************************************************/
function checkEnter(e)
{
    var characterCode;
    Sal = document.formcal.txtSal.value;
    if(e && e.which)
    {
        e = e;
        characterCode = e.which;
        //character code is contained in NN4's which property
    }
    else
    {
        e = event;
        characterCode = e.keyCode;
        //character code is contained in IE's keyCode property
    }
    if(characterCode == 13) //if generated character code is equal to ascii 13 (if enter key)
    {
        ret = OnbodyLoad();
        return false;
    }
    else
    {
        return true;
    }
}
/************************************************************\
*
\************************************************************/
function OnbodyLoad()
{
    if (document.formcal.txtSal.value !="")
    {
        document.formcal.hidtxtSal.value = document.formcal.txtSal.value;
        salent = document.formcal.hidtxtSal.value;
    }
    else
    {
        document.formcal.txtSal.value = 0
        document.formcal.hidtxtSal.value = document.formcal.txtSal.value;
        salent = document.formcal.hidtxtSal.value;
    }
    GrossSalCal(salent);
}
