function formatZahl(zahl, k, fix) {
  if(!k) k = 0;
  var neu = '';
	var dec_point = ',';
	var thousands_sep = '.';
  // Runden
  var f = Math.pow(10, k);
  zahl = '' + parseInt(zahl * f + (.5 * (zahl > 0 ? 1 : -1)) ) / f ;
  // Komma ermittlen
  var idx = zahl.indexOf('.');
  // fehlende Nullen einfügen
  if(fix)    {
    zahl += (idx == -1 ? '.' : '' ) + f.toString().substring(1);
  }
	var sign = zahl < 0;
	if(sign) zahl = zahl.substring(1);
  idx = zahl.indexOf('.');
	// Nachkommastellen ermittlen
  if( idx == -1) idx = zahl.length;
  else neu = dec_point + zahl.substr(idx + 1, k);
  while(idx > 0)    {
    if(idx - 3 > 0) neu = thousands_sep + zahl.substring( idx - 3, idx) + neu;
    else neu = zahl.substring(0, idx) + neu;
    idx -= 3;
  }
  return (sign ? '-' : '') + neu;
}

function u_blur(val) {
  if (val < 10) {
    val = 10;
  } else if (val > 500) {
    val = 500;
  }
  document.getElementById(user_field).value=Math.ceil(parseFloat(val)/10)*10;
  if ((val / 10) > 50) {
    s.setValue(50);
  } else {
    s.setValue(val / 10);
  }
  calc_all();
}

function calc_all() {
  var lang = document.getElementsByName("lang")[0].value;
  var monate = 'Monate'
  switch (lang) {
    case 'en': 
      monate = 'months';
    break;
    case 'fr': 
      monate = 'mois';
    break;
  }
  var mon = '12';
  var user = parseInt(Math.ceil(parseFloat(document.getElementById(user_field).value)/10)*10);
  var time_disc = 1;
  var currency = document.getElementById("waehrung").value;
  var cursym = '€';
  var curfac = '1';
  if (currency == 'usd') {
    cursym = '$';
    curfac = '1.48';
  } else if (currency == 'gbp') {
    cursym = '£';
    curfac = '0.92';
  }
  for (j=1;j<=paycount;j++) {
    if (document.getElementById(paytime+j).checked) {
      time_disc = parseFloat(document.getElementById(paytime+j).value);
      switch (j) {
        case 4:
          mon = '24';
        break;
        case 5:
          mon = '36';
        break;
      }
    }
  }
  document.getElementById("dauer").innerHTML=mon+" "+monate;
  var ccuf = 2.5;
  var pfe_disc = 0.5;
  var y2_disc = 0.1;
  var y3_disc = 0.2;
  var Saas_up = 0.2;
  var wss_10ccu = 11700;// * time_disc;
  var ps = 4500 * time_disc;
  var pspm = ps / 12;
  var pfe = ps * pfe_disc;
  var pfepm = pfe / 12;
  var nu_lic = wss_10ccu / ccuf / 10;
  var nu_lic_m = wss_10ccu / ccuf / 10 / 12;
  var vdisc = 0.0;
  dv = new Array(51);
  hv = new Array(51);
  hv[0] = 0; hv[1] = 0; hv[2] = 1.95; hv[3] = 0.975; hv[4] = 0.975; hv[5] = 0.975;
  hv[6] = 0.975; hv[7] = 0.975; hv[8] = 0.975; hv[9] = 0.975; hv[10] = 0.975; hv[11] = 0.75;
  hv[12] = 0.75; hv[13] = 0.75; hv[14] = 0.75; hv[15] = 0.75; hv[16] = 0.75; hv[17] = 0.75;
  hv[18] = 0.75; hv[19] = 0.45; hv[20] = 0.45; hv[21] = 0.45; hv[22] = 0.45; hv[23] = 0.45;
  hv[24] = 0.45; hv[25] = 0.45; hv[26] = 0.45; hv[27] = 0.35; hv[28] = 0.35; hv[29] = 0.35;
  hv[30] = 0.35; hv[31] = 0.35; hv[32] = 0.35; hv[33] = 0.35; hv[34] = 0.3; hv[35] = 0.3;
  hv[36] = 0.3; hv[37] = 0.3; hv[38] = 0.3; hv[39] = 0.3; hv[40] = 0.3; hv[41] = 0.3;
  hv[42] = 0.3; hv[43] = 0.3; hv[44] = 0.25; hv[45] = 0.25; hv[46] = 0.25; hv[47] = 0.25;
  hv[48] = 0.25; hv[49] = 0.22; hv[50] = 0.22;
  dv[0] = nu_lic_m;
  for (d=1;d<=50;d++) {
    dv[d] = dv[d-1] - hv[d];
  }
  
  if (user <= 490) {
    for (i=0;i<50;i++) {
      if (user >= (i*10) && user < ((i+1)*10)) {
        vdisc = 1 - dv[i]/nu_lic_m;
      }
    }
  } else {
    vdisc = 1 - dv[50]/nu_lic_m;
  }
  //alert(user+" -> "+vdisc);
  
  var vd_lic = nu_lic - nu_lic*vdisc;
  var pps = vd_lic * user * time_disc;
  //alert(vd_lic+" * "+user);
  var ppspm = pps / 12;
  var ppspmpu = ppspm / user;
  var ppfe = pps * pfe_disc;
  var ppfepm = ppfe / 12;
  var ppfepmpu = ppfepm / user;
  //alert(nu_lic_m);
  //alert(nu_lic+" -> "+vd_lic);
  document.getElementById(sup_os+"cs").innerHTML = formatZahl(pfepm *curfac,2,true)+" "+cursym;
  document.getElementById(sup_os+"cs2").innerHTML = formatZahl(pfepm *curfac,2,true)+" "+cursym;
  document.getElementById(sup_os+"cs_y").value = pfe *curfac;
  document.getElementById(sup_os+"ps").innerHTML = formatZahl(pspm *curfac,2,true)+" "+cursym;
  document.getElementById(sup_os+"ps2").innerHTML = formatZahl(pspm *curfac,2,true)+" "+cursym;
  document.getElementById(sup_os+"ps_y").value = ps *curfac;
  document.getElementById(premium+"cs_mu").innerHTML = formatZahl(ppfepmpu *curfac,2,true)+" "+cursym;
  document.getElementById(premium+"cs").innerHTML = formatZahl(ppfepm *curfac,2,true)+" "+cursym;
  document.getElementById(premium+"cs_mu2").innerHTML = formatZahl(ppfepmpu *curfac,2,true)+" "+cursym;
  document.getElementById(premium+"cs2").innerHTML = formatZahl(ppfepm *curfac,2,true)+" "+cursym;
  document.getElementById(premium+"cs_y").value = ppfe *curfac;
  document.getElementById(premium+"ps_mu").innerHTML = formatZahl(ppspmpu *curfac,2,true)+" "+cursym;
  document.getElementById(premium+"ps").innerHTML = formatZahl(ppspm *curfac,2,true)+" "+cursym;
  document.getElementById(premium+"ps_mu2").innerHTML = formatZahl(ppspmpu *curfac,2,true)+" "+cursym;
  document.getElementById(premium+"ps2").innerHTML = formatZahl(ppspm *curfac,2,true)+" "+cursym;
  document.getElementById(premium+"ps_y").value = pps *curfac;
}

function set_hide(type) {
  var lfzm = 0;
  for (j=1;j<=paycount;j++) {
    if (document.getElementById(paytime+j).checked) {
      var lfz = parseFloat(document.getElementById(paytime+j).value);
    }
  }
  if (lfz==1.15) {
    lfzm = 3;
  } else if (lfz == 1.1) {
    lfzm = 6;
  } else if (lfz == 1) {
    lfzm = 12;
  } else if (lfz == 0.9) {
    lfzm = 24;
  } else if (lfz == 0.85) {
    lfzm = 36;
  }
  //alert(lfz+" - "+lfzm);
  document.getElementById("Laufzeit_hidden").value = lfzm;
  document.getElementById("Version_hidden").value = type;
  document.getElementById("Preis_hidden").value = document.getElementById(type+"_y").value;
}