	var komma = ',';
	var punkt = '.';
	
	function formatPreis(preis){
		var changepreis = preis.toString(10);
		if (changepreis.search(/\.\b/gi)>=0){
			changepreis = changepreis.replace(/\.\b/gi,komma);
		}
		return changepreis;
	}
	//prüft ob in alle gruppen die angegeben max module ausgewählt wurden, wenn ja wird true zurückgegeben
	function checkAllGruppeMaxModule(){
		var AllGruppeMaxModule = true;
		for (var i=0;i<document.anmeldung.elements.length;i++){ //prüfen wie viele sind schon mal von der andere gruppen
			var count = 0;
			var maxcountmodule = 0;
			var el=document.anmeldung.elements[i];
			if (el.type=="checkbox"){
				var sub_name = el.name;
				var pos_gruppeid = sub_name.substr(17,1);
				for (var j=0;j<document.anmeldung.elements.length;j++){ //prüfen wie viele sind schon mal gechecket
					var el=document.anmeldung.elements[j];
					if (el.type=="checkbox"){
						if (el.name.substring(0,19)=='anmeldung[modul]['+pos_gruppeid+']'){
							if (el.checked==true){
								count++;
							}
						}
					}
					if (el.type=="hidden" && maxcountmodule==0){
						if (el.name=='gruppeaufbauList['+pos_gruppeid+'][maxcountmodule]'){
							maxcountmodule = el.value;
						}
					}
				}
				if (count!=maxcountmodule){
					AllGruppeMaxModule = false;
				}
			}
		}
		return AllGruppeMaxModule;
	}
	
	function checkState(gruppeid,moduleid,maxcountmodule,mincountmodule,add) {
		var count=0;
		var Seminar_preisstaffel = document.anmeldung.Seminar_preisstaffel.value;
		//alert('add '+add);
		if (add){ //wenn neu checken
			for (var i=0;i<document.anmeldung.elements.length;i++){ //prüfen wie viele sind schon mal gechecket
				var el=document.anmeldung.elements[i];
				if (el.type=="checkbox"){
					if (el.name.substring(0,19)=='anmeldung[modul]['+gruppeid+']'){
						if (el.checked==true){
							count++;
						}
					}
				}
				if (el.type=="hidden" && el.name=='gruppeaufbauList['+gruppeid+'][modulecount]'){
					var modulecount = el.value;
				}
			}
			var minus_teilnehmerpreis=0;
			//alert(count+'>'+maxcountmodule);
			if (count>maxcountmodule){
				for (var i=0;i<document.anmeldung.elements.length;i++){//die letzt ausgewählte deaktivieren weil die max anzahl erreicht wurde
					var el=document.anmeldung.elements[i];
					if (el.type=="checkbox"){
						if (el.name.substring(0,19)=='anmeldung[modul]['+gruppeid+']'){
							if (maxcountmodule>1 && modulecount>1){
								if (el.checked==true && el.name== 'anmeldung[modul]['+gruppeid+']['+moduleid+']'){
									el.checked=false;
								}
							}else if (modulecount>1){
								if (el.checked==true && el.name!= 'anmeldung[modul]['+gruppeid+']['+moduleid+']'){
									var module_id_false = el.name.substring(20,21);
									minus_teilnehmerpreis = minus_teilnehmerpreis+parseFloat(document.forms['anmeldung'].elements['anmeldung[modul]['+gruppeid+']['+module_id_false+'][moduleprice]'].value);
									el.checked=false;
								}
							}
						}
					}
				}
			}
			//else{
				//wenn checkbox gecheckt wird, soll der preis aktualisiert werden
				var teilnehmerPreis = parseFloat(document.getElementById('teilnehmerpreis_netto').innerHTML);
				var packageprice = 0;
				var moduleprice = 0;
				var prozentsatz = 0;
				for (var i=0;i<document.anmeldung.elements.length;i++){//die letzt ausgewählte deaktivieren weil die max anzahl erreicht wurde
					var el=document.anmeldung.elements[i];
					if (el.type=="hidden"){
						if (el.name== 'gruppeaufbauList['+gruppeid+'][packageprice]' && (count==maxcountmodule) && parseFloat(el.value) > 0){
								packageprice = parseFloat(el.value); 
						}
						if (el.name== 'anmeldung[modul]['+gruppeid+']['+moduleid+'][moduleprice]'){
								moduleprice = parseFloat(el.value);
						}
						if (el.name== 'gruppeaufbauList['+gruppeid+'][prozentsatz]'){
								prozentsatz = parseFloat(el.value);
						}
					}
				}
				var gruppe_packageprice=0;
				if (document.anmeldung.elements['gruppeaufbauList['+gruppeid+'][packageprice]']!=undefined){
						var gruppe_packageprice = document.anmeldung.elements['gruppeaufbauList['+gruppeid+'][packageprice]'].value;
					}
				if (packageprice!=0 || moduleprice!=0 || prozentsatz!=0 || Seminar_preisstaffel!=0){
					if (packageprice>0){
						//alert("packageprice: "+packageprice+" + teilnehmerPreis: "+teilnehmerPreis+" - minus_teilnehmerpreis:"+minus_teilnehmerpreis);
						var new_teilnehmerPreis = packageprice;
						document.anmeldung.elements["anmeldung[modul][teilnehmerPreis_ohne_package_preis]"].value = teilnehmerPreis+moduleprice-minus_teilnehmerpreis;
					}else if (moduleprice>0){
						//alert("moduleprice: "+moduleprice+" teilnehmerPreis: "+teilnehmerPreis+" - minus_teilnehmerpreis:"+minus_teilnehmerpreis);
						var new_teilnehmerPreis = teilnehmerPreis + moduleprice-minus_teilnehmerpreis;
					}
					//alert('new_teilnehmerPreis: '+new_teilnehmerPreis);
					var is_AllGruppeMaxModule = checkAllGruppeMaxModule();
					if (Seminar_preisstaffel==1){
						//alert('hier Seminar_preisstaffel '+Seminar_preisstaffel);
						//prüfen ob zu dem count ein preis hinterlegt ist wenn nicht wird die bisherige preis ausgegeben
						if (document.forms['anmeldung'].elements['preisstaffel['+gruppeid+']['+count+'][packageprice]']!=undefined){ 
							//alert('hier packageprice '+document.forms['anmeldung'].elements['preisstaffel['+gruppeid+']['+count+'][packageprice]']);
							var new_teilnehmerPreis = parseFloat(document.forms['anmeldung'].elements['preisstaffel['+gruppeid+']['+count+'][packageprice]'].value);
							document.anmeldung.elements["anmeldung[modul][teilnehmerPreis_ohne_package_preis]"].value = new_teilnehmerPreis;
						}else{
							var new_teilnehmerPreis = parseFloat(document.getElementById('teilnehmerpreis_netto').innerHTML);
						}
						if (packageprice>0){
							var new_teilnehmerPreis = packageprice;
						}
					}
					if (document.anmeldung.AdministrativeGruppePackageprice!=undefined){
						//alert('hier AdministrativeGruppePackageprice '+is_AllGruppeMaxModule);
						//prüfen ob Administrative gruppen definition abgegebe wurde und wenn ja welche type
						if (document.anmeldung.AdministrativeGruppePackageprice.value > 0 && is_AllGruppeMaxModule){
							var new_teilnehmerPreis = parseFloat(document.anmeldung.AdministrativeGruppePackageprice.value);
							document.anmeldung.elements["anmeldung[modul][teilnehmerPreis_ohne_package_preis]"].value = teilnehmerPreis+moduleprice-minus_teilnehmerpreis;
							var AdministrativeGruppePackageprice = 1;
						}else if (document.anmeldung.AdministrativeGruppeProzentsatz.value > 0 && is_AllGruppeMaxModule){
							var prozentsatz = document.anmeldung.AdministrativeGruppeProzentsatz.value;
							var AdministrativeGruppeProzentsatzprice = 1;
						}
					}
					document.getElementById('teilnehmerpreis_netto').innerHTML = formatPreis(new_teilnehmerPreis);
					document.anmeldung.elements["anmeldung[modul][teilnehmerPreis]"].value = new_teilnehmerPreis;
					
					if (prozentsatz > 0 && gruppe_packageprice==0){ //wenn prozentsatz existiert soll von dem gesamtpreis die rabatt errechnet werden aber nur dann wenn keine gruppenpaketpreis angegeben wurde
						document.anmeldung.elements["anmeldung[modul][RabattteilnehmerPreis]"].value = 0;
						var new_rabattteilnehmerpreis = new_teilnehmerPreis * (prozentsatz/100);
						//alert("AdministrativeGruppeProzentsatzprice: "+AdministrativeGruppeProzentsatzprice);
						if (AdministrativeGruppeProzentsatzprice != 1){
							//beim preisstafel nur dann ausgeben wenn alle gruppen ausgewählt sind 
							if ((Seminar_preisstaffel==1 && count==maxcountmodule) || Seminar_preisstaffel!=1){
								var vorauswahl = document.anmeldung.check_vorauswahl.value;
								document.anmeldung.elements["anmeldung[modul][RabattteilnehmerPreis]"].value = formatPreis(new_rabattteilnehmerpreis);
								if (Math.round(new_rabattteilnehmerpreis).toFixed(2)!= new_rabattteilnehmerpreis.toFixed(2)){
									document.getElementById('rabattteilnehmerpreis_netto').innerHTML = '- '+formatPreis(new_rabattteilnehmerpreis.toFixed(2));
									document.getElementById('rabattteilnehmerpreis_netto_euro_text').innerHTML = ' EUR netto';
								}else{
									document.getElementById('rabattteilnehmerpreis_netto').innerHTML = '- '+formatPreis(new_rabattteilnehmerpreis);
									document.getElementById('rabattteilnehmerpreis_netto_euro_text').innerHTML = ', -- EUR netto';
								}
								//prüfen ob ein modul vorausgewählt sein soll, wenn nicht dann soll die rabattext td eingeblendet werden
								if (vorauswahl!=1){
									document.getElementById('rabattteilnehmerpreis_text').style.display = 'block';
									document.getElementById('rabattteilnehmerpreis').style.display = 'block';
									
								}
							}
						}else{
							document.getElementById('rabattGPPText').style.display = 'block';
							document.anmeldung.elements["anmeldung[modul][RabattteilnehmerPreis]"].value = formatPreis(new_rabattteilnehmerpreis);
							document.getElementById('rabattGPPteilnehmerpreis_netto').innerHTML = '- '+formatPreis(new_rabattteilnehmerpreis);
							document.getElementById('rabattGPPteilnehmerpreis').style.display = 'block';
						}
					}else if (packageprice>0 || AdministrativeGruppePackageprice == 1){
						//alert('159 packageprice: '+packageprice);
						if ((Seminar_preisstaffel==1 && count==maxcountmodule) || (Seminar_preisstaffel!=1 && document.getElementById('rabattGPPText')!=undefined)){
							//alert('819 new_teilnehmerPreis: '+new_teilnehmerPreis);
							document.getElementById('teilnehmerpreis').className = 'durchstrich';
							document.getElementById('teilnehmerpreis_text').className = 'durchstrich';
							document.getElementById('rabattGPPText').style.display = 'block';
							document.getElementById('rabattGPPteilnehmerpreis_netto').innerHTML = formatPreis(new_teilnehmerPreis);
							document.getElementById('rabattGPPteilnehmerpreis').style.display = 'block';
							document.getElementById('teilnehmerpreis_netto').innerHTML = document.anmeldung.elements["anmeldung[modul][teilnehmerPreis_ohne_package_preis]"].value;
						}
					}
				}//wenn kein preis
			//}else auskommentiert
		}else{
			//Auschecken
			for (var i=0;i<document.anmeldung.elements.length;i++){ //prüfen wie viele sind schon mal gechecket
				var el=document.anmeldung.elements[i];
				if (el.type=="checkbox"){
					if (el.name.substring(0,19)=='anmeldung[modul]['+gruppeid+']'){
						if (el.checked==true){
							count++;
						}
					}
				}
			}
			if (count<mincountmodule){
				for (var i=0;i<document.anmeldung.elements.length;i++){
					var el=document.anmeldung.elements[i];
					if (el.type=="checkbox"){
						if (el.name.substring(0,19)=='anmeldung[modul]['+gruppeid+']'){
							if (el.checked==false && el.name == 'anmeldung[modul]['+gruppeid+']['+moduleid+']'){
								el.checked=true;
							}
						}
					}
				}
			}else{
				//wenn checkbox ausgecheckt wird, soll der preis aktualisiert werden
				
				var packageprice = 0;
				var moduleprice = 0;
				var prozentsatz = 0;
				
				var teilnehmerPreis = parseFloat(document.getElementById('teilnehmerpreis_netto').innerHTML);
				
				for (var i=0;i<document.anmeldung.elements.length;i++){//die letzt ausgewählte deaktivieren weil die max anzahl erreicht wurde
					var el=document.anmeldung.elements[i];
					if (el.type=="hidden"){
						if (el.name== 'gruppeaufbauList['+gruppeid+'][packageprice]' && parseFloat(el.value) > 0){
								packageprice = parseFloat(el.value);
						}
						if (el.name== 'anmeldung[modul]['+gruppeid+']['+moduleid+'][moduleprice]'){
								moduleprice = parseFloat(el.value);
						}
						if (el.name== 'gruppeaufbauList['+gruppeid+'][prozentsatz]'){
								prozentsatz = parseFloat(el.value);
						}
					}
				}
				var gruppe_packageprice=0;
				if (document.anmeldung.elements['gruppeaufbauList['+gruppeid+'][packageprice]']!=undefined){
						var gruppe_packageprice = document.anmeldung.elements['gruppeaufbauList['+gruppeid+'][packageprice]'].value;
					}
				if (packageprice!=0 || moduleprice!=0 || prozentsatz!=0 || Seminar_preisstaffel!=0){
					var is_AllGruppeMaxModule = checkAllGruppeMaxModule();
					if (count<maxcountmodule && packageprice>0){
						//alert("hier 1");
						/**
						*wenn die ausgewählte module kleiner sind als die angegeben max und auch ein GruppenPackagePreis angegeben ist, dann soll die ausgecheckte preis
						*nicht von dem modulpreis abgezogeb werden sonndern von dem preis der bisherige modulpreise
						*die rabatttext und preis darf nicht mehr erscheinen
						*
						*wenn auch preisstaffel angegeben wurde dann soll der preis zu dem aktuell ausgewählte modul count ausgegeben werden.
						*
						*wenn die ausgewählte module gleich mit die angegeben max sind und auch ein GruppenPackagePreis angegeben ist, dann soll die packagepreis bleiben
						*
						*in alle andere fall soll geprüft werden ob preisstaffel angegeben wurde , wenn ja dann soll der preis zu dem aktuell ausgewählte modul count ausgegeben werden
						**/
						if (Seminar_preisstaffel!=1){
							teilnehmerPreis = parseFloat(document.anmeldung.elements["anmeldung[modul][teilnehmerPreis_ohne_package_preis]"].value);
							document.anmeldung.elements["anmeldung[modul][teilnehmerPreis_ohne_package_preis]"].value = 0;
							var new_teilnehmerPreis = teilnehmerPreis - moduleprice;
						}else{
							document.anmeldung.elements["anmeldung[modul][teilnehmerPreis_ohne_package_preis]"].value = 0;
							if (document.forms['anmeldung'].elements['preisstaffel['+gruppeid+']['+count+'][packageprice]']!=undefined){ 
								var new_teilnehmerPreis = parseFloat(document.forms['anmeldung'].elements['preisstaffel['+gruppeid+']['+count+'][packageprice]'].value);
							}else{
								var new_teilnehmerPreis = moduleprice;
							}
						}
						document.getElementById('teilnehmerpreis').className = 'bluestar';
						document.getElementById('teilnehmerpreis_text').className = 'bluestar';
						if (document.getElementById('rabattGPPText')!=undefined){
							document.getElementById('rabattGPPText').style.display = 'none';
							document.getElementById('rabattGPPteilnehmerpreis_netto').innerHTML = 0;
							document.getElementById('rabattGPPteilnehmerpreis').style.display = 'none';
						}
					}else if (count==maxcountmodule && packageprice>0){
						//alert("hier 2");
						var new_teilnehmerPreis = packageprice;
					}else if (document.anmeldung.AdministrativeGruppePackageprice!=undefined && !is_AllGruppeMaxModule){
						//alert("hier 3");
						var new_teilnehmerPreis = teilnehmerPreis - moduleprice;
						document.getElementById('teilnehmerpreis').className = 'bluestar';
						document.getElementById('teilnehmerpreis_text').className = 'bluestar';
						document.getElementById('rabattGPPText').style.display = 'none';
						document.getElementById('rabattGPPteilnehmerpreis_netto').innerHTML = 0;
						document.getElementById('rabattGPPteilnehmerpreis').style.display = 'none';
					}else{
						//alert("hier 4"+'Seminar_preisstaffel: '+Seminar_preisstaffel);
						var vorauswahl = document.anmeldung.check_vorauswahl.value;
						if (Seminar_preisstaffel==1){
							//prüfen ob zu dem count ein preis hinterlegt ist wenn nicht wird die modulepreis ausgegeben
							if (document.forms['anmeldung'].elements['preisstaffel['+gruppeid+']['+count+'][packageprice]']!=undefined){ 
								var new_teilnehmerPreis = parseFloat(document.forms['anmeldung'].elements['preisstaffel['+gruppeid+']['+count+'][packageprice]'].value);
							}else{
								var new_teilnehmerPreis = moduleprice;
							}
							//prüfen ob ein modul vorausgewählt sein soll, wenn nicht dann soll die rabattext td ausgeblendet werden
							if ((vorauswahl!=1 || count < maxcountmodule) && document.getElementById('rabattteilnehmerpreis_text')!=undefined){
								document.getElementById('rabattteilnehmerpreis_text').style.display = 'none';
								document.getElementById('rabattteilnehmerpreis').style.display = 'none';
								document.anmeldung.elements["anmeldung[modul][RabattteilnehmerPreis]"].value = 0;
								//alert('hier 4-1'+document.anmeldung.elements["anmeldung[modul][RabattteilnehmerPreis]"].value);
								prozentsatz=0;
							}
						}else{
							var new_teilnehmerPreis = teilnehmerPreis - moduleprice;
						}
					}
					document.getElementById('teilnehmerpreis_netto').innerHTML = formatPreis(new_teilnehmerPreis);
					document.anmeldung.elements["anmeldung[modul][teilnehmerPreis]"].value = new_teilnehmerPreis;
					if (prozentsatz>0 && gruppe_packageprice==0){ //wenn prozentsatz existiert soll von dem gesamtpreis die rabatt errechnet werden aber nur dann wenn keine gruppenpaketpreis angegeben wurde
						var new_rabattteilnehmerpreis = new_teilnehmerPreis * (prozentsatz/100);
						document.anmeldung.elements["anmeldung[modul][RabattteilnehmerPreis]"].value = formatPreis(new_rabattteilnehmerpreis);
						if (Math.round(new_rabattteilnehmerpreis).toFixed(2)!= new_rabattteilnehmerpreis.toFixed(2)){
							document.getElementById('rabattteilnehmerpreis_netto').innerHTML = '- '+formatPreis(new_rabattteilnehmerpreis.toFixed(2));
							document.getElementById('rabattteilnehmerpreis_netto_euro_text').innerHTML = ' EUR netto';
						}else{
							document.getElementById('rabattteilnehmerpreis_netto').innerHTML = '- '+formatPreis(new_rabattteilnehmerpreis);
							document.getElementById('rabattteilnehmerpreis_netto_euro_text').innerHTML = ', -- EUR netto';
						}
						//alert('hier 5: '+document.anmeldung.elements["anmeldung[modul][RabattteilnehmerPreis]"].value);
					}
				}//wenn kein preis
			}
		}
	}