function killNonNums(e) {
	if (window.event) 
		var key = window.event.keyCode;
	else if (e) 
		var key = e.which;
	else
		return true;

	var keychar = String.fromCharCode(key);
	return ((key==null) || (key==0) || (key==8) ||  (key==9) || (key==13) || (key==27) || (("0123456789").indexOf(keychar) > -1));
}


var errors=new Object();

function trim (str) {
  return str.replace(/^\s+|\s+$/, '');
}

var fields=new Array(
	// Daten, Bezeichnun, "Seite", CheckFunc, Preis, Versand, MwSt
	new Array('Name', 'Name', 0, 'NotEmpty'),
	new Array('Vorname', 'Vorname', 0, 'NotEmpty'),
	new Array('Strasse', 'Strasse', 0, 'NotEmpty'),
	//new Array('Nr', 'Nr.', 0, ''),
	new Array('PLZ', 'PLZ', 0, 'IsNumNonEmpty'),
	new Array('Ort', 'Ort', 0, 'NotEmpty'),

	new Array('Tel', 'Telefon', 0, 'NotEmpty'),

	new Array('Mail', 'E-Mail', 0, 'Mail'),
	new Array('GebDat', 'Geburtsdatum', 0, 'Date'),
	new Array('BLSDat', 'Datum Ihres letzten BLS-Kurses oder FKs', 0, '2YearDate'),
	
	new Array('Lehrmittel1', '', 0, '', 58, 0, 0.024), 
	new Array('Lehrmittel2', '', 0, '', 33, 0, 0.024), 
	new Array('Lehrmittel3', '', 0, '', 25), 
	new Array('Lehrmittel4', '', 0, '', 55), 
	new Array('Lehrmittel5', '', 0, '', 55)
);


function addListeners() {
	var i=0;
	for(field in fields) {
		i++;
		//if(!document.getElementById('ausb'+fields[field][0])) alert(fields[field][0]);
		if (document.getElementById('ausb'+fields[field][0])) {
			document.getElementById('ausb'+fields[field][0]).onchange=new Function("checkErrors(this);");
			document.getElementById('ausb'+fields[field][0]).onblur=new Function("checkErrors(this);");
			if(fields[field][3]=='IsNumOrEmpty' || fields[field][3]=='IsNumNonEmpty') {
				document.getElementById('ausb'+fields[field][0]).setAttribute("onkeypress", "return killNonNums(event);");
				if(navigator.appVersion.indexOf("MSIE 7.")!=-1 || navigator.appVersion.indexOf("MSIE 6.")!=-1 ||navigator.appVersion.indexOf("MSIE 5.")!=-1)
					document.getElementById('ausb'+fields[field][0]).onkeypress=new Function("return killNonNums();");
			}
		}
	}
}

function checkErrors(input) {
	if(input) input.wasChecked=false;
	for(field in fields) {
		if (document.getElementById('ausb'+fields[field][0])) {
			var f=fields[field];
			var e=document.getElementById('ausb'+f[0]);
			if(e.wasChecked || f[3]=='') continue;
			eval("check"+f[3]+"(e, '"+f[1]+"', "+f[2]+")");
			e.wasChecked=true;
		}
	}
	window.setTimeout("printErrors();", 100);
}

function addError(en, field) {
	var hasErr=(field.className.indexOf('error')>=0);
	if(en && hasErr) return;
	if(en) field.className+=' error';
	if(!en && hasErr) field.className=field.parentNode.className.substr(0, field.parentNode.className.length-6);
}

function checkMail(field, name, cont) {
  var reg = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
	//alert(reg.test(field.value));
	if(!reg.test(field.value)) {
		addError(true, field.parentNode);
		errors[cont+field.id]='Bitte E-Mail überprüfen';
	} else {
		addError(false, field.parentNode);
		errors[cont+field.id]='';
	}
}

function checkIsNumOrEmpty(field, name, cont) {
	//field.value=trim(field.value);
	if(isNaN(trim(field.value)) && trim(field.value)!='') {
		addError(true, field.parentNode);
		errors[cont+field.id]='Bitte '+name+' überprüfen, da keine Zahl erkannt werden kann';
	} else {
		addError(false, field.parentNode);
		errors[cont+field.id]='';
	}
}

function checkIsNumNonEmpty(field, name, cont) {
	//field.value=trim(field.value);
	if(isNaN(trim(field.value)) || trim(field.value)=='') {
		addError(true, field.parentNode);
		errors[cont+field.id]='Bitte '+name+' überprüfen, da keine Zahl erkannt werden kann';
	} else {
		addError(false, field.parentNode);
		errors[cont+field.id]='';
	}
}

function checkDate(field, name, cont) {
	var reg = /^\d{2}\.\d{2}\.\d{4}$/;
	if (!reg.test(field.value)) {
		addError(true, field.parentNode);
		errors[cont+field.id]='Bitte ein korrektes Geburtsdatum (z.B. 01.01.1970) eingeben';
	} else {
		addError(false, field.parentNode);
		errors[cont+field.id]='';
	}
}

function check2YearDate(field, name, cont) {
	var reg = /^\d{2}\.\d{2}\.\d{4}$/;
	var jetzt = new Date();
	jetzt = jetzt.getTime()  - (365 * 2 * 24 * 60 * 60 * 1000);
	Tag = field.value.substr(0,2);
	Monat = field.value.substr(3,2);
	Jahr = field.value.substr(6,4);
	USDatum = Monat + "/" + Tag + "/" + Jahr;
	if (!reg.test(field.value)) {
		addError(true, field.parentNode);
		errors[cont+field.id]='Bitte ein korrektes Datum (z.B. 01.01.1970) eingeben';
	} else if (Date.parse(USDatum) < jetzt) {
		addError(true, field.parentNode);
		errors[cont+field.id]='Ihr BLS/CPR-Ausweis ist leider ungültig (älter als 2 Jahre)!';
	}  else {
		addError(false, field.parentNode);
		errors[cont+field.id]='';
	}
}

function checkNotEmpty(field, name, cont) {
	if(trim(field.value)=='') {
		addError(true, field.parentNode);
		errors[cont+field.id]='Bitte '+name+' ausfüllen';
	} else {
		addError(false, field.parentNode);
		errors[cont+field.id]='';
	}
}

function addAnnu() {
	if((document.getElementById('ausbAnnulierungstatus').checked == true) && document.getElementById('ausbAnnulierungstatusagb').checked == true) {
		if (navigator.appName == 'Microsoft Internet Explorer') {
			document.getElementById('annu').style.display = 'block';
		} else {
			document.getElementById('annu').style.display = 'table-row';
		}
	} else {
		document.getElementById('annu').style.display = 'none';
	}
}

function printErrors() {
	var price=0;
	var mwst=0;

	var list='';
	for(f in fields) {
		
		if (document.getElementById('ausb'+fields[f][0]) == null) {
			continue;
		}
		
		if(fields[f][4]==0 && fields[f][5]==0) {
			continue;
		}
			
		if(!document.getElementById('ausb'+fields[f][0]).checked) continue;
		
		price+=fields[f][4];
				
		if(!fields[f][6]) fields[f][6]=0.076;
		mwst+=fields[f][4]*fields[f][6];
		
		//list+=val+'x '+fields[f][1]+'<br/>';
	}
	annuPreis = kursPreis*0.04;	
	if (annuPreis < 8) {
		annuPreis = 8;
	}
	mwst=(Math.ceil(mwst * 100) / 100);
	html='<table style="float:left">';
	if(kursPreis) html+='<tr><td>Kurs: </td><td> Fr. </td><td style="text-align:right"> '+kursPreis.toFixed(2)+'</td></tr>';
	else html+='<tr><td>Kurs: </td><td> Siehe oben</td></tr>';
	html+='<tr><td>Lehrmaterial: </td><td> Fr. </td><td style="text-align:right"> '+price.toFixed(2)+'</td></tr>';
	html+='<tr style="display:none;" id="annu"><td>AKV: </td><td> Fr. </td><td style="text-align:right"> '+annuPreis.toFixed(2)+'</td></tr>';
	html+='<tr><td>MWSt: </td><td> Fr. </td><td style="text-align:right"> '+mwst.toFixed(2)+'</td></tr>';
	html+='<tr><td>Summe: </td><td> Fr. </td><td style="text-align:right"> '+(price+kursPreis+mwst+annuPreis).toFixed(2)+'</td></tr>';
	html+='</table>';
	
	var q=document.getElementById("placePriceDt");
	var p=document.getElementById("placePriceDd");
	//if(p == null) alert(p);
	if(isNaN(price)) {
		p.innerHTML="Bitte korrigieren Sie zuerst die oben genannten Fehler";
		p.style.height="22px";
		q.style.height="22px";
	} else {		
		p.innerHTML=html;
		p.style.height="76px";
		q.style.height="76px";
	}
	
	var d=document.getElementById('placeErrors');
	d.parentNode.style.height='auto';
	var html='';
	for(err in errors) {
		if(errors[err]=='') continue;
		html+='<li>'+errors[err]+'</li>';
	}
	
	var x=document.getElementById("placeErrorsDt");
	var y=document.getElementById("placeErrorsDd");
	var z=document.getElementById("submit");
	
	
	if(html!='') {		
		d.innerHTML='<ul>'+html+'</ul>';
		//x.style.height=y.offsetHeight+"px";
		setTimeout("document.getElementById('placeErrorsDt').style.height=(document.getElementById('placeErrors').offsetHeight+13)+'px'", 100);
		x.style.display='block';
		y.style.display='block';
		z.disabled="disabled";
	} else {
		x.style.display='none';
		y.style.display='none';
		z.disabled="";
	}
}
