
var shift_pressed = false;

var prices = new Object();

var cat;
var check_price = 0;

function ckeydown(e) {
	if (!e) e = window.event;
	if (e) {
  	var keycode = (e.which) ? e.which : e.keyCode;
  	if (keycode == 16) shift_pressed = true;
	}
}
function ckeyup(e,obj) {
	if (!e) e = window.event;
	var keycode = (e.which) ? e.which : e.keyCode;
	if (keycode == 16) shift_pressed = false;
	valvalidate(obj);
}
function number_format(num) {
  num = Math.round(num*100)/100;
  var fnum = '';
  num = num.toString();
  var nachkomma = '00';
  if (num.indexOf('.') != -1) {
    var nachkomma = num.substr(num.indexOf('.')+1,2);
    if (nachkomma.length == 1) nachkomma = nachkomma+'0';
    num = num.substring(0,num.indexOf('.'));
  }
  /* alert(num+'--'+nachkomma); */
  var fl = num.length;
  for (i=0;i<(fl/3);i++) {
    fnum = num.substring(Math.max(0,fl-3-(i*3)),fl-(i*3)) + ',' + fnum;
  }
  fnum = fnum.substr(0,fnum.length-1);
  return fnum+'.'+nachkomma;
}

var tmp_ids = new Object();

function redtostandard(tmp_cat,tmp_id,line_id) {
  if (tmp_ids[line_id] != tmp_id)
    return;
	document.getElementById('c'+tmp_cat+'-vorh'+line_id).style.color = '#000';
	document.getElementById('c'+tmp_cat+'-vorh'+line_id).style.fontWeight = 'normal';
}

function valvalidate(obj) {
  var line_id = obj.name.substring(obj.name.indexOf('[')+1,obj.name.length-1);

	if (obj.value.indexOf('.') != -1)
	  obj.value = obj.value.replace(/\./, '');
	if (isNaN(parseInt(obj.value))) {
	  obj.value = '0';
	}

	if (obj.value*1 > document.bform.elements['max-'+obj.name].value*1) {
	  obj.value = document.bform.elements['max-'+obj.name].value;
	  document.getElementById('c'+cat+'-vorh'+line_id).style.color = 'red';
	  document.getElementById('c'+cat+'-vorh'+line_id).style.fontWeight = 'bold';
	  if (tmp_ids[line_id])
	    tmp_ids[line_id]++;
	  else
	    tmp_ids[line_id] = 1;
	  window.setTimeout('redtostandard('+cat+','+tmp_ids[line_id]+','+line_id+')',1500);
	}
	if (obj.value.substr(0,1) == '0' && obj.value.length > 1)
	  obj.value = obj.value.substring(1,obj.value.length);
	var priceeach = document.bform.elements['price-'+obj.name].value*1;
	var price = (obj.value) * priceeach;
	/* alert('c'+cat+'-paprice_'+line_id); */
	document.getElementById('c'+cat+'-paprice_'+line_id).innerHTML = number_format(price)+' Euro';
	prices[line_id] = price;
	show_prices();
}

var db_perc = 0;
var rabatt = 43;

function show_prices() {
	var sap_wert = 0;
  for (var val in prices)
    sap_wert += prices[val];
	document.getElementById('c'+cat+'-sapwert').innerHTML = number_format(sap_wert)+' Euro';
	var plusdbo = sap_wert * db_perc / 100;
	document.getElementById('c'+cat+'-dbwert').innerHTML = '+ '+number_format(plusdbo)+' Euro';
	var plusdb = sap_wert + plusdbo;
	document.getElementById('c'+cat+'-sapang').innerHTML = number_format(plusdb)+' Euro';
	var angrab = plusdb * rabatt / 100;
	//document.getElementById('endrabdis').style.display = (plusdb >= 1000000) ? 'block' : 'none'; //Der Satz soll jetzt immer angezeigt werden. (Bernhard 18.9.2008)
	document.getElementById('c'+cat+'-angrab').innerHTML = '- '+number_format(angrab)+' Euro';
	var afterrabatt = plusdb - angrab;
	document.getElementById('c'+cat+'-endsumme').innerHTML = number_format(afterrabatt)+' Euro';
	check_price = afterrabatt;
}

function sel_db(obj) {
  var db_data = new Array(0,3,8,11,4.5);
  db_perc = db_data[obj.value];
	document.getElementById('c'+cat+'-dbperc').innerHTML = db_perc.toString().replace('.', ',')+'%';
  show_prices();


}


function checknum(e) {
	if (!e) e = window.event;
	var keycode = e.which || e.keyCode;
	if (keycode) //
		if (((keycode < 31 || !isNaN(String.fromCharCode(keycode))) && keycode != 32 || keycode == 46) || (!shift_pressed && keycode >= 37 && keycode <= 40))
			return true;                                                        /* ^^ Pfeiltasten ^^ */
	if (e.preventDefault) e.preventDefault();
	else e.returnValue = false;
	return false;
}
function checknull(obj) {
  if (obj.value == '0') {
    obj.focus();
    obj.select();
  }
}
function checkempty(obj) {
  if (obj.value == '') {
    obj.value = '0';
  }
}

function init() {
  /* dostep(); */
	var inp_fields = document.getElementsByTagName('input');
	for (i=0; i<inp_fields.length; i++)
		if (inp_fields[i].className.indexOf('num') > -1) {
      inp_fields[i].onkeypress = function (e) {
        checknum(e);
        valvalidate(this);
      };
      inp_fields[i].onkeydown = ckeydown;
      inp_fields[i].onkeyup = function (e) {
        ckeyup(e,this);
      };
      inp_fields[i].onfocus = function () {
        checknull(this);
      };
      inp_fields[i].onblur = function () {
        checkempty(this);
        valvalidate(this);
      };
		}
}



function dostep(cat_num) {
  for (i=1;i<=3;i++) {
    document.getElementById('bstl-'+i).style.display = 'none';
    document.getElementById('cas-'+i).style.fontWeight = 'normal';
  }
  document.getElementById('bstl-'+cat_num).style.display = 'block';
  document.getElementById('cas-'+cat_num).style.fontWeight = 'bold';
  document.getElementById('contact').style.display = 'block';
  cat = cat_num;
  document.forms[0].cat.value = cat_num;
}

function check_form() {
  if (check_price == 0) {
    alert('Bitte wählen Sie Produkte aus.');
    return false;
  }
}


window.onload = init;