NS4 = (document.layers) ? true : false;

var MAXARBZEIT=48;
var MAXARBZEITU18=40;
var MAXARBZEITV18H=8;
var MAXARBZEITV18M=30;
var MAXARBZEITN18H=10;
var TEXTWOCHE = 'wöchentliche Arbeitszeit';
var TEXTTAG = 'tägliche Arbeitszeit';
var TEXTV18 = 'tägliche Arbeitszeit vor dem 18. Lebensjahr';
var TEXTN18 = 'tägliche Arbeitszeit nach dem 18. Lebensjahr';
var FULLAGE = 18;
var AZUBIAGE = 13;

var von;
var bis;
var diff = new Array(3);
var TAG=0;
var MONAT=1;
var JAHR=2;
var JANUAR=1;
var FEBRUAR=2;
var MAERZ=3;
var APRIL=4;
var MAI=5;
var JUNI=6;
var JULI=7;
var AUGUST=8;
var SEPTEMBER=9;
var OKTOBER=10;
var NOVEMBER=11;
var DEZEMBER=12;
var MITTLEREREIFE=6;
var ABITUR=12;
var FACHHOCHSCHULREIFE=12;
var BERUFSCHULE=12;
var BFS=12; // bislang nur genutzt in BELV
var BGJ=12; // 6 - 12 bislang nur genutzt in BELV
var monatsTage = new Array (13);
var endeArray = new makeArray(3);
var beginnArray = new makeArray(3);
var arbeitsArray = new makeArray(3);
monatsTage[JANUAR]=31;
monatsTage[FEBRUAR]=28;
monatsTage[MAERZ]=31;
monatsTage[APRIL]=30;
monatsTage[MAI]=31;
monatsTage[JUNI]=30;
monatsTage[JULI]=31;
monatsTage[AUGUST]=31;
monatsTage[SEPTEMBER]=30;
monatsTage[OKTOBER]=31;
monatsTage[NOVEMBER]=30;
monatsTage[DEZEMBER]=31;
diff[TAG]=-1;
diff[MONAT]=-1;
diff[JAHR]=-1;

var mindestlehrzeit=new makeArray(1);
mindestlehrzeit[0] = new Object();
mindestlehrzeit[0]["24"]= "12";
mindestlehrzeit[0]["36"]= "18";
mindestlehrzeit[0]["42"]= "24";

/****************************************Beginn******Datumsfunktionen**********************************************************************************************/
/****************************************Beginn******Datumsfunktionen**********************************************************************************************/

/****************************************Beginn******Initialisieren************************************************************************************************/
//aus der Form ins Array
function holeRegulaereAusbildungszeit(){
	initArbeitsArray();
	if (isNaN(parseInt(document.forms[1].tai_ausbmonate.value))==false){
		regEnde = parseInt(document.forms[1].tai_ausbmonate.value,10);
	}
	arbeitsArray[JAHR] = regEnde / 12;
	arbeitsArray[MONAT] = regEnde % 12;
}
function leseAnfang(){
	beginnArray = document.forms[1].ved_vbeginn.value.split('.');
}
function leseEnde(){
	endeArray = document.forms[1].ved_vende.value.split('.');
}
//aus anderem Array ins Array
function initEnd(){
	endeArray[TAG] = parseInt(beginnArray[TAG],10);
	endeArray[MONAT] = parseInt(beginnArray[MONAT],10);
	endeArray[JAHR] = parseInt(beginnArray[JAHR],10);
}
//ende "initialisieren" vom Array in die Form
function writeEnd(){
	formatEndeArray();
	document.forms[1].ved_vende.value=endeArray[TAG]+"."+endeArray[MONAT]+"."+endeArray[JAHR];
}
function formatEndeArray(){
	if (endeArray[MONAT] < 10)
		endeArray[MONAT] = "0"+endeArray[MONAT];
	if (endeArray[TAG] < 10)
		endeArray[TAG] = "0"+endeArray[TAG];
}
function writeGesamtLZDauer(gesamtMonate, gesamtTage){
	document.forms[1].ved_monate.value=gesamtMonate;
	document.forms[1].ved_tage.value=gesamtTage;
}
function writeIntermediateResults(von, source){
	initArbeitsArray();
	initEndeArray();
	leseAnfang();
	if (document.forms[1].ved_vbeginn.value.length == 10){
		beginnArray = von.split('.');
		holeRegulaereAusbildungszeit(); 	//arbeitsarray mit jahr und monat ende ohne vk befüllen
		berechneAusbildungsEndeRegulaer(); 	//endearray für reguläres ende setzen
		switch (source) {
		  case "aab":
			  leseAabMonate();
			  break;
		  case "ber":
			  leseBerMonate();
			  break;
		  case "sab":
			  leseSabMonate();
			  break;
		  case "alt":
			  leseAlterMonate();
			  break;
		  default:
		    break;
		}
		berechneAusbildungsEndeVerkuerzung();
		formatEndeArray();
		switch (source) {
		  case "aab":
			  if ((getInt(document.forms[1].abgeschl_ber_monate)||getInt(document.forms[1].abgeschl_ber_tage)) > 0)
				  document.forms[1].intermediateResult_aab.value=endeArray[TAG]+"."+endeArray[MONAT]+"."+endeArray[JAHR];
			  else document.forms[1].intermediateResult_aab.value = "";
			  break;
		  case "ber":
			  if (document.forms[1].ber_tage == undefined){
				  //do nothing
			  }else {
				  if ((getInt(document.forms[1].ber_monate)||getInt(document.forms[1].ber_tage)) > 0)
					  document.forms[1].intermediateResult_ber.value=endeArray[TAG]+"."+endeArray[MONAT]+"."+endeArray[JAHR];
				  else document.forms[1].intermediateResult_ber.value = "";
			  }
			  break;
		  case "sab":
			  if ((getInt(document.forms[1].sab_monate)||getInt(document.forms[1].sab_tage)) > 0)
				  document.forms[1].intermediateResult_sab.value=endeArray[TAG]+"."+endeArray[MONAT]+"."+endeArray[JAHR];
			  else document.forms[1].intermediateResult_sab.value = "";
			  break;
		  case "alt":
			  if (getInt(document.forms[1].ved_kurzmonate) > 0)
				  document.forms[1].intermediateResult_alt.value=endeArray[TAG]+"."+endeArray[MONAT]+"."+endeArray[JAHR];
			  else document.forms[1].intermediateResult_alt.value = "";
			  break;
		  default:
		    break;
		}
	}
	else {
		switch (source) {
		  case "aab":
			  document.forms[1].intermediateResult_aab.value = "";
			  break;
		  case "ber":
			  document.forms[1].intermediateResult_ber.value = "";
			  break;
		  case "sab":
			  document.forms[1].intermediateResult_sab.value = "";
			  break;
		  default:
		    break;
		}
	}
}
function writeAllIntermediateResults(von){
	writeIntermediateResults(von, "aab");
	writeIntermediateResults(von, "ber");
	writeIntermediateResults(von, "sab");
}
function getInt (feld){
	if (isNaN(parseInt(feld.value))==false)
		return parseInt(feld.value);
	else return 0;
}
/****************************************Ende********Initialisieren************************************************************************************************/

/****************************************Beginn******ENDE**********************************************************************************************************/
function berechneAusbildungsEndeRegulaer(){
	endeArray[JAHR] = parseInt(beginnArray[JAHR],10) + parseInt(arbeitsArray[JAHR],10);
	setSchaltjahr (beginnArray[JAHR]);
	endeArray[MONAT] = parseInt(beginnArray[MONAT],10) + parseInt(arbeitsArray[MONAT],10);
	endeArray[TAG] = parseInt(beginnArray[TAG],10);
	korrekturMonat();
	if(pruefeldM(beginnArray[0], monatsTage[parseInt(beginnArray[1])])) {
		setSchaltjahr (endeArray[JAHR]);
		endeArray[TAG]= monatsTage[parseInt(endeArray[1])];
	}
	endeArray[TAG] = parseInt(endeArray[TAG],10) - 1;
	korrekturTag();	
}
//Grund 12, 10, 13
function berechneAusbildungsEndeVerkuerzung () {
	var ldm=0;
	if(pruefeldM(endeArray[0], monatsTage[parseInt(endeArray[1])])) ldm=1;
	endeArray[JAHR] = parseInt(endeArray[JAHR],10) - parseInt(arbeitsArray[JAHR],10);
	endeArray[MONAT] = parseInt(endeArray[MONAT],10) - parseInt(arbeitsArray[MONAT],10);
	korrekturMonat();
	setSchaltjahr(endeArray[JAHR]);
	if(ldm == 1)endeArray[TAG]= monatsTage[parseInt(endeArray[1])];
	korrekturTag();
	endeArray[TAG] = parseInt(endeArray[TAG],10) - parseInt(arbeitsArray[TAG],10);
	korrekturTag();
}

function berechneAusbildungsEnde (von) {
	initArbeitsArray();
	if (document.forms[1].ved_vbeginn.value.length == 10){
		beginnArray = von.split('.');
		calculateTrainingsEnd('-1');
	}
	else {
		document.forms[1].ved_vende.value = "";
	}	
}
function calculateTrainingsEnd(skip){
	holeRegulaereAusbildungszeit();
	berechneAusbildungsEndeRegulaer();
	leseBerMonate();
	berechneAusbildungsEndeVerkuerzung();	//12
	leseSabMonate();
	berechneAusbildungsEndeVerkuerzung();	//10
	leseAabMonate();
	berechneAusbildungsEndeVerkuerzung();	//10
	leseAlterMonate();
	berechneAusbildungsEndeVerkuerzung();	//25
	//13
	if (parseInt(document.forms[1].vha_liste.length) > 0){
		for (i=0; i<document.forms[1].vha_liste.length; i++){
			if (skip != i){
				leseListenEintrag(i);
				berechneAusbildungsEndeVerkuerzung();
			}
		}
	}
	writeEnd();
}
/****************************************Ende********ENDE**********************************************************************************************************/

/****************************************Beginn******VHA***********************************************************************************************************/
function checkVhaInput(actionvalue, action){
	if ((document.forms[1].vha_als.value=='') || (document.forms[1].vha_bei.value=='')){ 
		if ((document.forms[1].vha_von.value=='') ||
			(document.forms[1].vha_bis.value=='')||
			((document.forms[1].vha_monate.value=='')||(document.forms[1].vha_monate.value=='0'))){
			alert ("Bitte füllen Sie alle Felder für vorherige Ausbildung aus und geben eine Ausbildungszeitverkürzung von mindestens einem Monat an !");
		}
	}else if (document.forms[1].checkmindestlehrzeit){
		if (calcGewuenschteRestLehrzeitMitVha(document.forms[1].vha_monate.value, document.forms[1].vha_tage.value, document.forms[1].vha_monate)){
			proceed(actionvalue, action);
		}
	} else proceed(actionvalue, action);
}
function proceed(actionvalue, action){
	berechneGesamtVha ();
	berechneGesamtVerkuerzung ();
	if (document.forms[1].ved_vende.value.length != 0){
		leseEnde();
		leseFelder();
		berechneAusbildungsEndeVerkuerzung();
		writeEnd();
	}		
	setActionValue (actionvalue);
	setAction (action);
}
function checkVhaSelection (actionvalue, action){
	leseAnfang();
	if ((document.forms[1].vha_liste.selectedIndex==-1)&& (actionvalue=="vha_loeschen")){
		alert ("Bitte wählen Sie eine vorherige Ausbildung aus");
	}
	else {
		if (actionvalue=="vha_loeschen")subtrahiereGesamtMonateVha ();
		berechneGesamtVerkuerzung();
		if (document.forms[1].ved_vende.value.length != 0){
			nr=document.forms[1].vha_liste.selectedIndex;	
			calculateTrainingsEnd(nr);
		}
		setActionValue (actionvalue);
		setAction (action);
	}
}
function leseListenEintrag (nr) {
	initArbeitsArray();
	var text=document.forms[1].vha_liste.options[nr].text;
	var index=text.indexOf (":");
	monate=parseInt(text.substr(index+2),10);
	var trennzeichen=text.indexOf ("/", index);
	tage=parseInt(text.substr(trennzeichen+1),10);
	arbeitsArray[MONAT] = parseInt(monate,10);
	arbeitsArray[TAG] = parseInt(tage,10);
	//tagZuMonat();
	monatZuJahr();
}
function leseFelder(){
	initArbeitsArray();
	if (isNaN(parseInt(document.forms[1].vha_monate.value))==false){
		arbeitsArray[MONAT] = parseInt(document.forms[1].vha_monate.value,10);
	}
	if (isNaN(parseInt(document.forms[1].vha_tage.value))==false){
		arbeitsArray[TAG] = parseInt(document.forms[1].vha_tage.value,10);
	}
	//tagZuMonat();
	monatZuJahr();
}
function subtrahiereGesamtMonateVha (){
	var text=document.forms[1].vha_liste.options[document.forms[1].vha_liste.selectedIndex].text;
	var index=text.indexOf (":");
	var monate=parseInt(text.substr(index+2),10);
	var monateGesamt=parseInt((parseInt(document.forms[1].vha_liste_monate.value,10)-parseInt(monate,10)),10);
	index=text.indexOf ("/");
	var tage=parseInt(text.substr(index+1),10);	
	var tageGesamt=parseInt((parseInt(document.forms[1].vha_liste_tage.value,10)-parseInt(tage,10)),10);
	if (tageGesamt < 0){
		monateGesamt--;
		tageGesamt = parseInt(30 + parseInt(tageGesamt,10),10);
	}
	document.forms[1].vha_liste_monate.value=monateGesamt;
	document.forms[1].vha_liste_tage.value=tageGesamt;
}
function berechneGesamtVha (){
	var vha_liste_monate=0;
	var vha_liste_tage=0;
	var monate=0;
	var tage=0;
	if (isNaN(parseInt(document.forms[1].vha_liste_monate.value,10))==false){
		vha_liste_monate=parseInt(document.forms[1].vha_liste_monate.value,10);
	}
	if (isNaN(parseInt(document.forms[1].vha_liste_tage.value,10))==false){
		vha_liste_tage=parseInt(document.forms[1].vha_liste_tage.value,10);
	}
	if (isNaN(parseInt(document.forms[1].vha_monate.value,10))==false){
		monate = parseInt(document.forms[1].vha_monate.value,10);
	}	
	if (isNaN(parseInt(document.forms[1].vha_tage.value,10))==false){
		tage = parseInt(document.forms[1].vha_tage.value,10);
	}
	vha_liste_monate = parseInt(parseInt(vha_liste_monate,10) + parseInt(monate,10),10);
	vha_liste_tage = parseInt(parseInt(vha_liste_tage,10) + parseInt(tage,10),10);
	if (vha_liste_tage > 30){
		vha_liste_monate = parseInt(parseInt(vha_liste_monate,10)+parseInt((Math.floor(vha_liste_tage/30)),10),10);
		vha_liste_tage = parseInt(vha_liste_tage%30,10);
	}
	document.forms[1].vha_liste_monate.value=vha_liste_monate;
	document.forms[1].vha_liste_tage.value=vha_liste_tage;
}
function checkVhaMonate (){
	if ((diff[TAG]>-1) && (diff[MONAT]>-1)){
		if ((parseInt (document.forms[1].vha_monate.value,10) >= parseInt (diff[MONAT],10)) &&
			(parseInt (document.forms[1].vha_tage.value,10) > parseInt (diff[TAG],10)))
		{
			alert ("Der manuelle Eintrag darf nicht größer als die Dauer der vorherigen Ausbildung sein !");
			document.forms[1].vha_monate.value = diff[MONAT];
			document.forms[1].vha_tage.value= diff[TAG];
		}
		else if ((parseInt (document.forms[1].vha_monate.value,10) > parseInt (diff[MONAT],10)) &&
				(parseInt (document.forms[1].vha_tage.value,10) >= parseInt (diff[TAG],10)))
		{
			alert ("Der manuelle Eintrag darf nicht größer als die Dauer der vorherigen Ausbildung sein !");
			document.forms[1].vha_monate.value = diff[MONAT];
			document.forms[1].vha_tage.value= diff[TAG];
		}
	}
}
/****************************************Ende********VHA***********************************************************************************************************/

/****************************************Beginn******andere Verkuerzungen******************************************************************************************/
function checkBerMonate (){
	if (isNaN(parseInt(document.forms[1].ber_monate.value,10)) == false){
		document.forms[1].ber_monate.value = parseInt(document.forms[1].ber_monate.value,10);
	}
	if (document.forms[1].ber_nr.options[document.forms[1].ber_nr.selectedIndex].text != ''){
		if (document.forms[1].ber_schule_bestanden[0].checked == true){
			if (parseInt(document.forms[1].ber_monate.value,10) != BERUFSCHULE){
				alert ("Ein bestandens BGJ bzw. bestandene BFS muss mit "+BERUFSCHULE+" Monaten angerechnet werden !");
				document.forms[1].ber_monate.value = BERUFSCHULE;
			}
		}
		else if (document.forms[1].ber_schule_bestanden[1].checked == true){
			if (parseInt(document.forms[1].ber_monate.value,10) > 6){
				alert ("Für ein nicht bestandenes BGJ bzw. nicht bestandene BFS können maximal 6 Monate angerechnet werden !");
				document.forms[1].ber_monate.value = '';
			}
		}
	}
	else{
		alert ("Eine Lehrzeitverkürzung kann nur für ein bestimmtes Berufsfeld angerechnet werden !");
		document.forms[1].ber_monate.value="";
	}
	getMindestlehrzeit(document.forms[1].ber_monate);
	berechneGesamtVerkuerzung ();	
	berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
}
function checkAbgeschlAusbMonate (){
	var ber_bezeich = document.forms[1].abgeschl_ber_bezeich.value;
	var ber_monate = parseInt(document.forms[1].abgeschl_ber_monate.value,10);
	if ((ber_monate <= 0) || (isNaN (ber_monate) == true) || (ber_bezeich=="")){
		document.forms[1].abgeschl_ber_monate.value = "";
	}
	if (document.forms[1].checkmindestlehrzeit){
		getMindestlehrzeit(document.forms[1].abgeschl_ber_monate);
	}
	berechneGesamtVerkuerzung ();
	berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
	writeIntermediateResults (document.forms[1].ved_vbeginn.value, "aab");
}
function checkAbgeschlAusbTage (){
	var ber_bezeich = document.forms[1].abgeschl_ber_bezeich.value;
	var ber_tage = parseInt(document.forms[1].abgeschl_ber_tage.value,10);
	if ((ber_tage <= 0) || (isNaN (ber_tage) == true) || (ber_bezeich=="")){
		document.forms[1].abgeschl_ber_tage.value = "";
	}
	if (document.forms[1].checkmindestlehrzeit){
		getMindestlehrzeit(document.forms[1].abgeschl_ber_monate);
	}
	initArbeitsArray();
	berechneGesamtVerkuerzung ();
	berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
	writeIntermediateResults (document.forms[1].ved_vbeginn.value, "aab");
}
function checkBerVorBild (feld, grund){
	if ((feld.value > 0) && !(grund.value)){
		alert('Bitte geben Sie einen Grund für die Verkürzung ein');
		feld.value = "";
		writeIntermediateResults (document.forms[1].ved_vbeginn.value, "ber");
	}
	if (getInt(feld) > 0){
		feld.value = parseInt(feld.value,10);
	}
	//getMindestlehrzeit(document.forms[1].ber_monate); //TODO use feld but ber_tage isn't considered
	initArbeitsArray();
	berechneGesamtVerkuerzung ();
	berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
	writeIntermediateResults (document.forms[1].ved_vbeginn.value, "ber");
}
function checkAlterVerk (feld){
	if (getInt(feld) > 0){
		feld.value = parseInt(feld.value,10);
	}
	initArbeitsArray();
	berechneGesamtVerkuerzung ();
	berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
	writeIntermediateResults (document.forms[1].ved_vbeginn.value, "alt");
}
function checkSab(feld, org){
	var bundesland = (org.toString()).substr(0, 1);
	var sab = document.forms[1].sab_nr.options[document.forms[1].sab_nr.selectedIndex].text;
	var sabnr = document.forms[1].sab_nr.options[document.forms[1].sab_nr.selectedIndex].value;
	var sab_monate = 0;
	var sab_tage = 0;
	if ((feld.value <= 0) || (isNaN (feld.value) == true)){
		feld.value = "";
	} else {
		sab_monate = getInt(document.forms[1].sab_monate);
		sab_monate += getInt(document.forms[1].sab_tage)/30; //caculated for validating reduced trainingship
		sab_tage = getInt(feld)% 30;

		if (bundesland == "0"){
			if ((sabnr == '3') || (sabnr == '6') || (sabnr == '5')){
				hoch(sab_monate, sab);
			}
			else if ((sabnr == '2')){
				mittlere(sab_monate, sab);
			}
			else {
				sonstige(sab);
			}
		}
		else if (bundesland == "4"){ // #39027 Berufsfachschule Schlüssel Nr. 4 hinzugefügt
			if ((sabnr == '3') || (sabnr == '6') || (sabnr == '5') || (sabnr == '8') || (sabnr == '4')){
				hoch(sab_monate, sab);
			}
			else if ((sabnr == '2')){
				mittlere(sab_monate, sab);
			}
			else {
				sonstige(sab);
			}
		}
		else if (bundesland == "2" || bundesland == "5"){ //#37390 #38771
			if ((sabnr == '3') || (sabnr == '6') || (sabnr == '7') || (sabnr == '4') || (sabnr == '8')){ // 3 Abitur und 6 Fachhochschule und 7 Hochschulabschluss und 4 Berufsfachschule und 8 BGJ
				hoch(sab_monate, sab);
			}
			else if ((sabnr == '2') || (sabnr == '5')){//2 Mittlere Reife und 5 Wirtschaftsschulabschluss
				mittlere(sab_monate, sab);
			}
			else {
				sonstige(sab);
			}
		}
		else if (bundesland == "6"){
			default12(document.forms[1].sab_monate, document.forms[1].sab_tage);
		}
		else {
			if ((sabnr == '3') || (sabnr == '6') || (sabnr == '7')){ // 3 Abitur und 6 Fachhochschule und 7 Hochschulabschluss
				hoch(sab_monate, sab);
			}
			else if ((sabnr == '2') || (sabnr == '5')){//2 Mittlere Reife und 5 Wirtschaftsschulabschluss
				mittlere(sab_monate, sab);
			}		
			else {
				sonstige(sab);
			}
		}
		if (document.forms[1].checkmindestlehrzeit){
			getMindestlehrzeit(document.forms[1].sab_monate);
		}
		initArbeitsArray();
		berechneGesamtVerkuerzung ();
		berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
		writeIntermediateResults (document.forms[1].ved_vbeginn.value, "sab");
	} 
}
function checkBerMonateBeruf (){
	if (document.forms[1].ber_nr.options[document.forms[1].ber_nr.selectedIndex].text == 'unbekannt'){
		document.forms[1].ber_schule_bestanden[1].checked = true;
		document.forms[1].ber_monate.value = '';
	}
	if (document.forms[1].ber_nr.options[document.forms[1].ber_nr.selectedIndex].text == ''){
		document.forms[1].ber_schule_bestanden[1].checked = true;
		document.forms[1].ber_monate.value = '';
	}
	getMindestlehrzeit(document.forms[1].ber_monate);
	berechneGesamtVerkuerzung ();
	berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
}

function checkBerMonateBestanden (){
	if (document.forms[1].ber_nr.options[document.forms[1].ber_nr.selectedIndex].text != 'unbekannt'){
		if (document.forms[1].ber_schule_bestanden[0].checked == true){
			document.forms[1].ber_monate.value = BERUFSCHULE;
		}
		else{
			document.forms[1].ber_monate.value='';
		}
	}
	else{
		document.forms[1].ber_schule_bestanden[1].checked = true;
	}
	getMindestlehrzeit(document.forms[1].ber_monate);
	berechneGesamtVerkuerzung ();
	berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
}
function saveSchulabschluss (){	
	if (document.forms[1].sab_nr.options[document.forms[1].sab_nr.selectedIndex].value == '2'){
		document.forms[1].sab_monate.value = MITTLEREREIFE;
	}
	else if (document.forms[1].sab_nr.options[document.forms[1].sab_nr.selectedIndex].value == '3'){
		document.forms[1].sab_monate.value = ABITUR;
	}
	else if (document.forms[1].sab_nr.options[document.forms[1].sab_nr.selectedIndex].value == '6'){
		document.forms[1].sab_monate.value = FACHHOCHSCHULREIFE;
	}
	else {
		document.forms[1].sab_monate.value = 0;
	}
	getMindestlehrzeit(document.forms[1].sab_monate);
	berechneGesamtVerkuerzung ();
	berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
}
function leseAabMonate(){	
	initArbeitsArray(); 
	if (isNaN(parseInt(document.forms[1].abgeschl_ber_monate.value))==false){
		arbeitsArray[MONAT] = parseInt(document.forms[1].abgeschl_ber_monate.value,10);	
	}
	if (isNaN(parseInt(document.forms[1].abgeschl_ber_tage.value))==false){
		arbeitsArray[TAG] = parseInt(document.forms[1].abgeschl_ber_tage.value,10);	
	}
	tagZuMonat();
	monatZuJahr();
}
function leseBerMonate(){
	initArbeitsArray();
	help=0;
	if (isNaN(parseInt(document.forms[1].ber_monate.value))==false){
		arbeitsArray[MONAT] = parseInt(document.forms[1].ber_monate.value,10);
	}
	if (document.forms[1].ber_tage == undefined){
		arbeitsArray[TAG] = parseInt(help,10);
	} else {
		if (isNaN(parseInt(document.forms[1].ber_tage.value))==false){
			arbeitsArray[TAG] = parseInt(document.forms[1].ber_tage.value,10);
		}
	}
	tagZuMonat();
	monatZuJahr();
}
function leseSabMonate(){
	initArbeitsArray(); 
	if (isNaN(parseInt(document.forms[1].sab_monate.value))==false){
		arbeitsArray[MONAT] = parseInt(document.forms[1].sab_monate.value,10);
	}
	if (isNaN(parseInt(document.forms[1].sab_tage.value))==false){
		arbeitsArray[TAG] = parseInt(document.forms[1].sab_tage.value,10);
	}
	tagZuMonat();
	monatZuJahr();
}
function leseAlterMonate(){
	initArbeitsArray(); 
	if (document.forms[1].ved_kurzmonate > 0 && isNaN(parseInt(document.forms[1].ved_kurzmonate.value))==false){
		arbeitsArray[MONAT] = parseInt(document.forms[1].ved_kurzmonate.value,10);
	}
	tagZuMonat();
	monatZuJahr();
}
function doKurzMonate (){
	if (document.forms[1].ved_kurzmonate > 0 && isNaN(parseInt(document.forms[1].ved_kurzmonate.value,10)) == false)	
	{
		document.forms[1].ved_kurzmonate.value = parseInt(document.forms[1].ved_kurzmonate.value,10);
	}
	if (document.forms[1].checkmindestlehrzeit){
		getMindestlehrzeit(document.forms[1].ved_kurzmonate);
	}
	berechneGesamtVerkuerzung ();
	berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
}
/****************************************Ende********andere*Verkuerzungen******************************************************************************************/

/****************************************Beginn******alle Verkuerzungen********************************************************************************************/
function berechneGesamtVerkuerzung (){
	var vkMonate=0;
	vkMonate = berechneGesamtVerkuerzungMonate();
	berechneRestAusbildungszeit(vkMonate);
}
function berechneGesamtVerkuerzungMonate (){
	var vkMonate=0;
	if (isNaN(parseInt(document.forms[1].vha_liste_monate.value))==false){
		vkMonate += parseInt(document.forms[1].vha_liste_monate.value,10);
	}
	if (isNaN(parseInt(document.forms[1].ber_monate.value))==false){
		vkMonate += parseInt(document.forms[1].ber_monate.value,10);
	}
	if (isNaN(parseInt(document.forms[1].sab_monate.value))==false){
		vkMonate += parseInt(document.forms[1].sab_monate.value,10);
	}
	if (isNaN(parseInt(document.forms[1].abgeschl_ber_monate.value))==false){
		vkMonate += parseInt(document.forms[1].abgeschl_ber_monate.value,10);
	}
	if (document.forms[1].ved_kurzmonate > 0 && isNaN(parseInt(document.forms[1].ved_kurzmonate.value))==false){
		vkMonate += parseInt(document.forms[1].ved_kurzmonate.value,10);
	}
	return vkMonate;
}
function berechneGesamtVerkuerzungTage (){
	var vkTage=0;
	if (isNaN(parseInt(document.forms[1].vha_liste_tage.value))==false){
		vkTage += parseInt(document.forms[1].vha_liste_tage.value,10);
	}
	if (isNaN(parseInt(document.forms[1].abgeschl_ber_tage.value))==false){
		vkTage += parseInt(document.forms[1].abgeschl_ber_tage.value,10);
	}
	if (document.forms[1].ber_tage == undefined){
		  //do nothing
	}else {
		  if (isNaN(parseInt(document.forms[1].ber_tage.value))==false){
			  vkTage += parseInt(document.forms[1].ber_tage.value,10);
		  }
	}
	if (isNaN(parseInt(document.forms[1].sab_tage.value))==false){
		vkTage += parseInt(document.forms[1].sab_tage.value,10);
	}
	return vkTage;
}
function berechneRestAusbildungszeit(vkMonate){
	var gesamtMonate=0;
	var gesamtTage=0;
	var anzahlMonateAusTagen=0;
	var anzahlTageAusRest=0;
	//Restmonate berechnen
	if (isNaN(parseInt(document.forms[1].tai_ausbmonate.value))==false){
		gesamtMonate = parseInt(document.forms[1].tai_ausbmonate.value,10)-vkMonate;
	}
	//Resttage berechnen und eventuell Monate dezimieren
	anzahlMonateAusTagen = parseInt(berechneGesamtVerkuerzungTage()/30);
	anzahlTageAusRest = berechneGesamtVerkuerzungTage()% 30;	
	gesamtMonate = gesamtMonate-anzahlMonateAusTagen;
	if (anzahlTageAusRest > 0){
		gesamtMonate = gesamtMonate -(anzahlMonateAusTagen + 1)
		gesamtTage = 30-berechneGesamtVerkuerzungTage();
	}
	else gesamtTage = 0;
	writeGesamtLZDauer(gesamtMonate, gesamtTage);
}
function copyValue (from, to){
	to.value=from.value;
	if (document.forms[1].checkmindestlehrzeit){
		getMindestlehrzeit(); //document.forms[1].ved_kurzmonate
	}
	berechneGesamtVerkuerzung();
}
/****************************************Ende********alle Verkuerzungen********************************************************************************************/

/****************************************Beginn******allgemein zu verwendende**************************************************************************************/
function initArbeitsArray(){	
	for (var i = 0; i < arbeitsArray.length; i++) {
		arbeitsArray[i] = 0;
	}
}
function initEndeArray(){	
	for (var i = 0; i < endeArray.length; i++) {
		endeArray[i] = 0;
	}
}
function makeArray(n){
	this.length = n;
	for (var i = 0; i < n; i++) {
		this[i] = 0;
	}
	return this;
}
function setSchaltjahr (jahr){
	if ((((jahr%4) == 0) && ((jahr%100)!=0)) || ((jahr%400) == 0)){
		monatsTage[FEBRUAR]=29;
	}
	else{
		monatsTage[FEBRUAR]=28;
	}
}
function pruefeldM(ttage, stage ){
	if(parseInt(ttage) == parseInt(stage)){
		return true;
	}
}
function tagZuMonat(){
	temp = (parseInt (arbeitsArray[TAG], 10) / 30); temp = temp + "";
	verkuerzung = temp.split('.');
	arbeitsArray[MONAT] = parseInt(arbeitsArray[MONAT]) + parseInt(verkuerzung[0]);
	arbeitsArray[TAG] = parseInt (arbeitsArray[TAG], 10) % 30;
}
function monatZuJahr(){
	temp = (parseInt (arbeitsArray[MONAT], 10) / 12); temp = temp + "";
	verkuerzung = temp.split('.');
	arbeitsArray[JAHR] = verkuerzung[0];
	arbeitsArray[MONAT] = parseInt (arbeitsArray[MONAT], 10) % 12;
}
function berechneDatumDifferenz (von, bis){
	if ((von.length == 10) && (bis.length == 10)){
		if ((von.charAt(2) == '.') && (von.charAt(5) == '.') &&
			(bis.charAt(2) == '.') && (bis.charAt(5) == '.'))
		{
			teileEingabeAuf (von, VONFLAG);
			teileEingabeAuf (bis, BISFLAG);	
			setSchaltjahr (jahrVon);
			if (checkDateInput (VONFLAG) == true){
				von = new Date (jahrVon, monatVon-1, tagVon);
				setSchaltjahr (jahrBis);
				if (checkDateInput (BISFLAG) == true){
					bis = new Date (jahrBis, monatBis-1, tagBis);
					if (von < bis){
						var tage = parseInt(((bis-von)/(1000*60*60*24))+2,10);
						var restMonate = parseInt (tage/30,10);
						return restMonate;
					}
					else{
						alert ("Datum 'von' muss kleiner als Datum 'bis' sein !");
						return -1;
					}
				}
			}
		}
	}	
	return 0;
}
function makeDatum (control){
control.value = control.value.replace(/[^0-9]/g, '');
	if ((control.value.length==6) || (control.value.length==8)){
		var dd = control.value.substr(0,2);
		if(parseInt(dd,10)==0){
			dd="01";
		}
		var mm = control.value.substr(2,2);
		if(parseInt(mm,10)==0){
			mm="01";
		}
		var yy = control.value.substr(4,4);
		if (isNaN(yy) == false){
			if (yy.length == 2){
				if (parseInt(yy,10) < 20){
					yy = parseInt(2000+parseInt(yy,10),10);
				}
				else{
					yy = parseInt(1900+parseInt(yy,10),10);
				}
			}
		}
		setSchaltjahr(yy);
		if (mm > 12) mm = 12;
		if (
			(((mm % 2 == 1) && (mm < 8)) || ((mm % 2 == 0) && (mm >= 8)))
			&& 
			dd > 31
		) dd = 31;
		if (
			(((mm % 2 == 0) && (mm < 8) && (mm != 2)) || ((mm % 2 == 1) && (mm > 8)))
			&& 
			dd > 30
		) dd = 30;
		if ((mm == 2) && (dd > monatsTage[FEBRUAR])) dd=monatsTage[FEBRUAR];
		control.value=dd+"."+mm+"."+yy;
	}
}
function berechneDatDif (from, to){
	replaceWs (from);
	replaceWs (to);
	if (checkDateInput (from.value, to.value) == true){
		teileEingabeAuf (from.value, to.value);
		if (checkDatFormat (von, bis) == true){
			setStringToNumber (von, bis);
			setSchaltjahr (bis[JAHR]);	
			addToDate (bis, 1);
			subtrahiereDatum ();
			document.forms[1].vha_monate.value=diff[MONAT];
			document.forms[1].vha_tage.value=diff[TAG];
		}
		else {
			alert ("Ungültiges Datumsformat");
		}
	}
}
function checkDateInput (dateVon, dateBis){
	if ((dateVon == '') || (dateBis == '')) {
		return false;
	}
	else if ((dateVon.length != 10) || (dateBis.length != 10)){
		return false;
	}
	return true;
}

function checkDatFormat (dateV, dateB){
	if ((dateV[TAG].length != 2)		||
		(dateV[MONAT].length != 2)		||
		(dateV[JAHR].length != 4)		||
		(dateB[TAG].length != 2)		||
		(dateB[MONAT].length != 2)	||
		(dateB[JAHR].length != 4))
	{
		return false;
	}
	else if ((isNaN (dateV[TAG]))	||
		(isNaN (dateV[MONAT]))		||
		(isNaN (dateV[JAHR]))		||
		(isNaN (dateB[TAG]))		||
		(isNaN (dateB[MONAT]))		||
		(isNaN (dateB[JAHR])))
	{
		return false;
	}
	else if ((parseInt(dateV[MONAT],10) > DEZEMBER)		||
			 (parseInt(dateB[MONAT],10) > DEZEMBER))
	{
		return false;
	}
	else if (new Date (dateV[JAHR], dateV[MONAT], dateV[TAG]) >= new Date (dateB[JAHR], dateB[MONAT], dateB[TAG])){
		return false;
	}
	else {
		setSchaltjahr (dateV[JAHR]);
		if (parseInt(dateV[TAG],10) > monatsTage[parseInt(dateV[MONAT],10)]){
			return false;
		}
		setSchaltjahr (dateB[JAHR]);
		if (parseInt(dateB[TAG],10) > monatsTage[parseInt(dateB[MONAT],10)]){
			return false;
		}
	}
	return true;
}

function setStringToNumber (dateVon, dateBis){
	dateVon[TAG] = parseInt(dateVon[TAG],10);
	dateVon[MONAT] = parseInt(dateVon[MONAT],10);
	dateVon[JAHR] = parseInt(dateVon[JAHR],10);
	dateBis[TAG] = parseInt(dateBis[TAG],10);
	dateBis[MONAT] = parseInt(dateBis[MONAT],10);
	dateBis[JAHR] = parseInt(dateBis[JAHR],10);
}

function teileEingabeAuf (dateVon, dateBis){
	von = dateVon.split('.');
	bis = dateBis.split('.');
}
function addToDate (dateValue, value){
	dateValue[TAG] = parseInt(parseInt(dateValue[TAG],10)+1,10);
	if (dateValue[TAG] > monatsTage[dateValue[MONAT]]){
		dateValue[MONAT] += 1;
		dateValue[TAG] = 1;
		if (dateValue[MONAT] > 12){
			dateValue[JAHR] += 1;
			dateValue[MONAT] = 1;
		}
	}
}

function subtrahiereDatum (){
	diff[JAHR] = bis[JAHR]-von[JAHR];
	diff[MONAT] = bis[MONAT]-von[MONAT];
	diff[TAG] = bis[TAG]-von[TAG];
	diff[MONAT] = diff[MONAT] + 12*diff[JAHR];
	if (diff[TAG] < 0){
		if (bis[MONAT] == JANUAR){
			diff[TAG] = monatsTage[DEZEMBER]-Math.abs(diff[TAG]);
		}
		else{
			diff[TAG] = monatsTage[bis[MONAT]-1]-Math.abs(diff[TAG]);
		}
		diff[MONAT] -= 1;
	}
	if (diff[TAG] == monatsTage[bis[MONAT]-1]){
		diff[MONAT] = parseInt(parseInt(diff[MONAT],10) + 1,10);
		diff[TAG] = 0;
	}
}
/****************************************Ende********allgemein zu verwendende**************************************************************************************/

/****************************************Beginn******Korrekturen zum Ende******************************************************************************************/
function korrekturMonat(){
	if (endeArray[MONAT] > 12){
		endeArray[JAHR] = endeArray[JAHR] + 1;
		setSchaltjahr (endeArray[JAHR]);
		endeArray[MONAT] = endeArray[MONAT] -12;
	} else	if(endeArray[MONAT] <= 0){
		endeArray[JAHR] = endeArray[JAHR] - 1;
		setSchaltjahr(endeArray[JAHR]);
		endeArray[MONAT] = endeArray[MONAT] + 12;
	}
}

function korrekturTag(){
	if (endeArray[TAG] <= 0){
		endeArray[MONAT] = endeArray[MONAT] - 1;
		if (endeArray[MONAT] == 0){
			endeArray[MONAT] = 12;
			endeArray[JAHR] = endeArray[JAHR] - 1;
			setSchaltjahr (endeArray[JAHR]);
		}
	endeArray[TAG] = endeArray[TAG] + monatsTage[endeArray[MONAT]];
	}		
	if (endeArray[TAG] > monatsTage[endeArray[MONAT]])
		endeArray[TAG] = monatsTage[endeArray[MONAT]];
}
/****************************************Ende********Korrekturen zum Ende******************************************************************************************/

/****************************************Beginn******Mindestlehrzeit***********************************************************************************************/

//Mindestlehrzeit holen
function getMindestlehrzeit(feld){
	var gewuenschteRestLehrzeit = calcGewuenschteRestLehrzeit();
	checkVerkuerzung(gewuenschteRestLehrzeit, mindestlehrzeit[0][getLehrzeit()], feld);
}
function checkVerkuerzung(gewuenschteRestLehrzeit, moeglicheRestLehrzeit, feld){
	if (gewuenschteRestLehrzeit < moeglicheRestLehrzeit){
		resetFeld(feld);
		return false;
	}
	return true;
}
function calcGewuenschteRestLehrzeit(){
	var gewuenschteVerkuerzung = berechneGesamtVerkuerzungMonate();
	gewuenschteVerkuerzung += berechneGesamtVerkuerzungTage()/30;
	var gewuenschteRestLehrzeit = getLehrzeit() - gewuenschteVerkuerzung;
	return gewuenschteRestLehrzeit;
}
function calcGewuenschteRestLehrzeitMitVha(monate, tage, feld){
	var lehrzeit = getLehrzeit();
	if (tage > 0) monate = parseInt(monate,10) + (parseInt(tage, 10) /30);
	var gewuenschteRestLehrzeit = calcGewuenschteRestLehrzeit() - monate;
	return checkVerkuerzung(gewuenschteRestLehrzeit, getMindestLehrzeit(), feld);
}
function getLehrzeit(){
	if (!(document.forms[1].tai_ausbmonate.value == "undefined"))
		return document.forms[1].tai_ausbmonate.value;
	else return 0;
}
function getMindestLehrzeit(){
	var lehrzeit = getLehrzeit();
	return mindestlehrzeit[0][lehrzeit];
}
function resetFeld(feld){
	alert("Mindestlehrzeit bei " + getLehrzeit() + " Ausbildungsmonaten sind " + getMindestLehrzeit() + " Monate." );
	if(!feld){
		resetAlleVerkuerzungen();
	}
	else if (feld.name == "vha_monate"){
		//nicht addieren
	} else feld.value=0;
}
function resetAlleVerkuerzungen(){
	var actionvalue= "allvha_loeschen";
	var action= document.forms[1].usedaction.value;
	var zaehler=document.forms[1].vha_liste.length;
	with (document.forms[1]){
		abgeschl_ber_monate.value="0";
		ber_monate.value="0";
		sab_monate.value="0";
		vha_liste_monate.value="0";
		vha_liste_tage.value="0";
	}
	if (zaehler >0) checkVhaSelection(actionvalue, action);
}

/****************************************Ende********Mindestlehrzeit***********************************************************************************************/


/****************************************Ende********Datumsfunktionen**********************************************************************************************/
/****************************************Ende********Datumsfunktionen**********************************************************************************************/

/****************************************Anfang******Maske***Login*************************************************************************************************/
function checkAccount (actionvalue, action, frm){
	if (document.frmUser.username.value != ''){
		document.frmUser.op.value=actionvalue;
		document.frmUser.action = action;
		document.frmUser.submit ();		
	}
	else{
		alert ("Bitte geben Sie eine gültige Email-Adresse ein !");
	}
}

function checkLoginAendern (controlUser, controlAlt, controlNeu, controlWh, actionvalue, action){
	if (controlUser.value != ''){
		if (controlAlt.value != ''){
			if ((controlNeu.value != '') && (controlWh.value != '')){
				if (controlNeu.value != controlAlt.value){
					if (controlNeu.value == controlWh.value){
						if (controlNeu.value.length >= 6){
							j=0;
							for (i=0; i<controlNeu.value.length; i++){
								if ((controlNeu.value.charAt(i) >='0') && (controlNeu.value.charAt(i) <= '9')){
									j++;
								}
							}
							if (j==2){
								setActionValue (actionvalue);
								setAction (action);
							}
							else{
								alert ("Ihr Passwort muss zwei Zahlen enthalten !");
							}
						}
						else{
							alert ("Sie müssen ein Passwort mit mindestens sechs Zeichen eingeben !");
						}
					}
					else{
						alert ("Sie müssen Ihr neues Passwort korrekt bestätigen !");
					}
				}
				else{
					alert ("Das alte und das neue Passwort müssen sich unterscheiden !");
				}
			}
			else{
				alert ("Sie müssen Ihr neues Passwort eingeben und bestätigen !");	
			}
		}
		else{
			alert ("Sie müssen Ihr altes Passwort angeben !");
		}
	}
	else{
		alert ("Sie müssen Ihren Benutzernamen (E-Mail-Adresse) eingeben !");
	}
}

function checkModule (actionvalue, action){
	if ((document.forms[1].log_module[0].checked==false) && (document.forms[1].log_module[1].checked==false)){
		alert ("Bitte waehlen Sie mindestens ein Modul aus !");
	}
	else{
		setActionValue(actionvalue);
		setAction(action);
	}
}

function checkLogin (control, action){
	if ((document.forms[1].user.value.length==0) || (document.forms[1].password.value.length==0)){
		alert ("Sie müssen einen Benutzernamen UND das zugehörende Passwort eingeben !");
	}
	else{
		setActionValue (control);
		setAction (action);
	}
}

function logReset (control){
	control.value="";
}
/****************************************Ende********Maske***Login*************************************************************************************************/

/*Maske eingeloggter Zustand*****************************************************/
function checkTracking (control, actionvalue, action){
	if (control.value != ''){
		if ((control.value.length == 7) || (control.value.length == 8)){
			if (isNaN(control.value) == false){
				setActionValue(actionvalue);
				setAction(action);
			}
			else{
				alert ("Bitte geben Sie eine gültige Betriebsnummer ein !");
			}
		}
		else{
			alert ("Bitte geben Sie eine gültige Betriebsnummer ein !");
		}
	}
}

/*****************************************Anfang*******Maske allgemeine Templates********************************************************************************/
function copyFromTo (controlFrom, controlTo){
	indexFrom = controlFrom.selectedIndex;
	controlTo.value = controlFrom.options[indexFrom].text;
}
function setAction (action){
	document.forms[1].action = action;
	document.forms[1].submit ();
}
function setActionValue (value){
	document.forms[1].op.value=value;
}
function deleteActionValue (control){
	control.value='';
}
function setTarget (target){
	document.forms[1].target = target;
}
function saveLevId (id){
	document.forms[1].lev_id.value=id;
}

function submitFormOnEnter(event,actionvalue,action) {
	var key=0;
	if (NS4)
		key=event.which;
	else
		key=event.keyCode;
	if(key==13) {
		setActionValue(actionvalue);
		setAction (action);
	}
}
function loeschen (control){
	for (i=0; i<control.options.length; i++){
		control.options[i].text="";
		control.options[i].value=0;
		control.selectedIndex=0;
	}
}
function saveValue (source, target){
	target.value = source.options[source.selectedIndex].text;
}

function setValue (text, target){
	target.value = text;
}

function saveSubmit (button){
	document.forms[1].submitButton.value = button;
}
function replaceWs (control){
	while (control.value.match (/\s/)){
		control.value = control.value.replace (/\s/, "");
	}
}
function replace (control, ist, soll){
	control.value = control.value.replace(ist, soll);
}
function checkSelectValue( control, value ){
	for(i=0; i<control.options.length; i++ ){
		if( control.options[i].value==value ){
			control.options[i].selected=true;
			break;
		}
	}
}
function setControlValue( control, value ) {
	control.value=value;
}
function showTable (id){
	document.getElementById (id).style.visibility='visible';
}
function hideTable (id){
	document.getElementById (id).style.visibility='hidden';
}
function ResetCheck() {
 var chk = window.confirm("Wollen Sie alle Eingaben loeschen?");
 return(chk);
}
function reset (){
	document.forms[1].reset();
}
function setHomeLocation( home ){
	window.location.href=home;	
}
function openWindow (url){
	openWindow(url,'');
}
function openWindow (url, title){
	window.open (url,title,'width=360px,height=350px,scrollbars=yes,resizable=yes,left=342px,top=180px');
}
/****************************************Ende********Maske***allgemeine Templates**********************************************************************************/


/****************************************Anfang******Maske***Azubi*************************************************************************************************/
function setFlagBClearTeilnahme (control){
	if (control.checked){
		document.forms[1].beraus1.checked=false;	
		document.forms[1].beraus2.checked=false;
		document.forms[1].beraus3.checked =false;
		document.forms[1].beraus1_als.value="";	
		document.forms[1].beraus2_als.value="";
		document.forms[1].beraus3_als.value="";
		document.getElementById ('bvb1').style.backgroundColor='#FFFFFF';
		document.getElementById ('bvb2').style.backgroundColor='#FFFFFF';
		document.getElementById ('bvb3').style.backgroundColor='#FFFFFF';
	}
}

function setFlagBClearKeine (control){
	if (control.checked)
		document.forms[1].beraus0.checked=false;
}

function clearBvbText (sender, control) {
	if (!sender.checked)
		control.value="";
}

function checkBVB (sender, control){
	if (control.name == "beraus1_als") {
		if (sender.checked){
			document.getElementById ('bvb1').style.backgroundColor='#D6E3F8';
		} 	else {
			document.getElementById ('bvb1').style.backgroundColor='#FFFFFF';
			document.forms[1].beraus1_als.value='';
		}
	}	else if (control.name == "beraus2_als"){
		if (sender.checked){
			document.getElementById ('bvb2').style.backgroundColor='#D6E3F8';
		} else {
			document.getElementById ('bvb2').style.backgroundColor='#FFFFFF';
			document.forms[1].beraus2_als.value='';
		}
	} else if (control.name == "beraus3_als"){
		if (sender.checked){
			document.getElementById ('bvb3').style.backgroundColor='#D6E3F8';
		} 	else {
			document.getElementById ('bvb3').style.backgroundColor='#FFFFFF';
			document.forms[1].beraus3_als.value='';
		}
	}
}

function checkArztKz (field){
	sFullAge='0';
	bFullAge=false;
	if (isNaN (field.value) == true){
		if (compareDateWithToday(addYearsToDate(field.value, FULLAGE))){
			document.forms[1].azu_arztkz[0].checked = true;
			sFullAge='1'; bFullAge=true;
			lockArztKz(sFullAge, bFullAge);
		}
		else{
			document.forms[1].azu_arztkz[1].checked = true;
			lockArztKz(sFullAge, bFullAge);
		}
	}
	checkGvt(document.forms[1].azu_arztkz);
}

function checkArztKzAll (field){
	sFullAge='0';
	bFullAge=false;
	if (isNaN (field.value) == true){
		if (compareDateWithToday(addYearsToDate(field.value, FULLAGE))){
			document.forms[1].azu_arztkz[0].checked = true;
			sFullAge='1'; bFullAge=true;
			lockArztKz(sFullAge, bFullAge);
		}
		else{
			document.forms[1].azu_arztkz[1].checked = true;
			lockArztKz(sFullAge, bFullAge);
		}
	}
	checkGvtAll(document.forms[1].azu_arztkz);
}

function lockArztKz (sFullAge, bFullAge) {
	if (document.forms[1].hLockArztKz.value = true){
		document.forms[1].fullAged.value = sFullAge;
		document.forms[1].azu_arztkz[0].disabled = bFullAge;
		document.forms[1].azu_arztkz[1].disabled = bFullAge;
	}
}

function checkGvtAll (control){
	if (control[0].checked){
		document.getElementById ('gvt01').style.backgroundColor='#D6E3F8';
		document.getElementById ('gvt02').style.backgroundColor='#D6E3F8';
		document.getElementById ('gvt03').style.backgroundColor='#D6E3F8';
		document.getElementById ('gvt04').style.backgroundColor='#D6E3F8';
		document.getElementById ('gvt05').style.backgroundColor='#D6E3F8';
		document.getElementById ('gvt06').style.backgroundColor='#D6E3F8';
		document.getElementById ('gvt07').style.backgroundColor='#D6E3F8';
		document.getElementById ('gvt08').style.backgroundColor='#D6E3F8';
		document.getElementById ('gvt09').style.backgroundColor='#D6E3F8';
		document.getElementById ('gvt10').style.backgroundColor='#D6E3F8';
	}		
	else if (control[1].checked){
		document.getElementById ('gvt01').style.backgroundColor='#FFFFFF';
		document.getElementById ('gvt02').style.backgroundColor='#FFFFFF';
		document.getElementById ('gvt03').style.backgroundColor='#FFFFFF';
		document.getElementById ('gvt04').style.backgroundColor='#FFFFFF';
		document.getElementById ('gvt05').style.backgroundColor='#FFFFFF';
		document.getElementById ('gvt06').style.backgroundColor='#FFFFFF';
		document.getElementById ('gvt07').style.backgroundColor='#FFFFFF';
		document.getElementById ('gvt08').style.backgroundColor='#FFFFFF';
		document.getElementById ('gvt09').style.backgroundColor='#FFFFFF';
		document.getElementById ('gvt10').style.backgroundColor='#FFFFFF';
	}
}

function checkGvt (control){
	if (control[0].checked){
		document.getElementById ('gvt09').style.backgroundColor='#D6E3F8';
	}
	else if (control[1].checked){
		document.getElementById ('gvt09').style.backgroundColor='#FFFFFF';
	}
}

function setFlagQClearTeilnahme (control){
	if (control.checked){
		document.forms[1].desqual1.checked=false;
		document.forms[1].desqual2.checked=false;
		document.forms[1].desqual3.checked=false;
		if (document.forms[1].desqual4)
			document.forms[1].desqual4.checked=false;
		if (document.forms[1].desqual5)
			document.forms[1].desqual5.checked=false;
		if (document.forms[1].desqual6)
			document.forms[1].desqual6.checked=false;
	}
}
function setFlagQClearKeine (control){
	if (control.checked)
		document.forms[1].desqual0.checked=false;
}
function checkEU (control){
	if (control.value != ''){
		var eukz = control.value.substr(control.value.indexOf('_')+1);
		if (eukz != 'J'){
			alert ("Bei Auszubildenden aus Ländern außerhalb der EU muss dem Betrieb eine Arbeits- bzw. Aufenthaltserlaubnis des Auszubildenden vorliegen.");
		}
	}
}
/****************************************Ende********Maske***Azubi*************************************************************************************************/

/****************************************Anfang******Maske***Beruf*************************************************************************************************/
function farscpLoeschen () {
	loeschen (document.forms[1].fachrichtung);
	loeschen (document.forms[1].schwerpunkt);
	loeschen (document.forms[1].wahlqualifikationseinheit);
	document.forms[1].ber_far_bezeich.value='';
	document.forms[1].ber_scp_bezeich.value='';
	document.forms[1].ber_bql_bezeich.value='';
}

function checkFarScp (control){
	var value=control.options[control.selectedIndex].value; //beruf_J_J_12345
	value = value.substr(value.indexOf('_')+1); //J_J_12345 (darf Basis Sachlogik nicht) bzw J__12345, _J_12345, __12345
	var kz=value.substr(0,1); //J oder _
	value = value.substr(value.indexOf('_')+1); //J_12345 oder __12345
	var bqlkz=value.substr(0,1); //J oder _
	farscpLoeschen ();
	fadeOutJobDetails();
	if ((kz=='J')|| (bqlkz=='P') || (bqlkz=='W')){
		/*Ladebutton einblenden*/
		document.getElementById ('laden').style.visibility = "visible";
	}	else {
		/*Ladebutton  und Differenzierungen ausblenden*/
		fadeOutJobDetails();
	}
}

function fadeOutJobDetails(){
		/*Ladebutton  und Differenzierungen ausblenden*/
		document.getElementById ('laden').style.visibility = "hidden";
		document.getElementById ('far').style.visibility = "hidden";
		document.getElementById ('fartext').style.visibility = "hidden";
		document.getElementById ('scp').style.visibility = "hidden";
		document.getElementById ('scptext').style.visibility = "hidden";
		document.getElementById ('bql').style.visibility = "hidden";
		document.getElementById ('bqltext').style.visibility = "hidden";
}

function checkBerufSelection (actionvalue, action){
	var farkz = document.forms[1].beruf.value.match('J');
	var bqlkz = document.forms[1].beruf.value.match('P');
	if (document.forms[1].beruf.selectedIndex==0){
		alert ("Sie müssen einen Beruf auswählen !");
	}
	else if (farkz == 'J'){		
		if ((document.forms[1].fachrichtung.options.length>1) && (document.forms[1].fachrichtung.selectedIndex==0)){
			alert ("Sie müssen eine Fachrichtung auswählen !");
		}
		else if ((document.forms[1].schwerpunkt.options.length>1)&&(document.forms[1].schwerpunkt.selectedIndex==0)){
			alert ("Sie müssen einen Schwerpunkt auswählen !");
		}	
		else if (((document.forms[1].fachrichtung.selectedIndex==-1) && (document.forms[1].schwerpunkt.selectedIndex==-1)) && document.getElementById ('laden').style.visibility == 'visible'){
			alert ("Sie müssen eine Fachrichtung und/oder einen Schwerpunkt auswählen !");
		}	
		else if ((document.forms[1].fachrichtung.selectedIndex==0) && (document.forms[1].schwerpunkt.selectedIndex==0)){
			alert ("Sie müssen eine Fachrichtung und/oder einen Schwerpunkt auswählen !");
		}		
		else{
			setActionValue (actionvalue);
			setAction (action);
		}
	}
	else if (bqlkz == 'P'){	
		if ((document.forms[1].wahlqualifikationseinheit.options.length>1)&&(document.forms[1].wahlqualifikationseinheit.selectedIndex==0)){
			alert ("Sie müssen eine Wahlqualifikationseinheit auswählen !");
		}
		else if ((document.forms[1].wahlqualifikationseinheit.selectedIndex==-1) && document.getElementById ('laden').style.visibility == 'visible'){
			alert ("Sie müssen eine Wahlqualifikationseinheit auswählen !");
		}
		else{
			setActionValue (actionvalue);
			setAction (action);
		}
	}
	else{
		setActionValue (actionvalue);
		setAction (action);	
	}
}

/****************************************Ende********Maske***Beruf*************************************************************************************************/

/****************************************Anfang******Maske***Vertrag***********************************************************************************************/
/*FDA *************************************************************************/
function setFlag (){
	document.forms[1].fda0[1].checked=true;
}
function setFirst (){
	document.forms[1].fda1[0].checked=true;
}
function setFlagClear (){
	document.forms[1].fda1[0].checked=false;
	document.forms[1].fda1[1].checked=false;
	document.forms[1].fda1[2].checked=false;
}

function vhaHinweis (){
	alert('Falls erforderlich, können Sie weitere Vorlehren / Ausbildungen eintragen.');
}
function testCheck (){
	for (i=0; i<document.forms[1].rtai_ausbmonate.length; i++){
		if (document.forms[1].rtai_ausbmonate[i].value == parseInt(document.forms[1].tai_ausbmonate.value,10)){
			document.forms[1].rtai_ausbmonate[i].checked=true;
		}
	}
}

function replaceGehalt (){
	with (document.forms[1]){
		tarifdetail1.value = tarifdetail1.value.replace(/,/, '.');
		tarifdetail2.value = tarifdetail2.value.replace(/,/, '.');
		tarifdetail3.value = tarifdetail3.value.replace(/,/, '.');
		tarifdetail4.value = tarifdetail4.value.replace(/,/, '.');
	}
}

function checkGehalt (control1, control2, control3){
	if (control1.value < control2.value){
		alert ("Gehalt muss mindestens " + control2.value + " betragen !");
		control1.value = control3.value;
	}
}

function checkVertragTarifInput (actionvalue,action){
	if ((document.forms[1].vbeginnh.value!='') && (document.forms[1].ved_arbzeitwochestunden.value!='')){
		setActionValue(actionvalue);
		setAction(action);
	}else if ((document.forms[1].ved_vbeginn.value!='') && (document.forms[1].ved_arbzeitwochestunden.value!='')){ 
		setActionValue(actionvalue);
		setAction(action);
	}
	else{
		alert ("Sie müssen zurerst die Felder 'wöchentliche Ausbildungszeit' und 'tatsächliche Ausbildungszeit von' ausfüllen !");
	}
}

function checkVha (control){
	if (control.value=='ja'){
		document.getElementById('vha').style.visibility="visible";
		jQuery('#vha').removeClass('none');
	}
	else{
		document.getElementById('vha').style.visibility="hidden";
		jQuery('#vha').addClass('none');
		vhaLoeschen ();
	}
}

function vhaLoeschen (){
	loeschen (document.forms[1].vha_liste);
	document.forms[1].vha_als.value="";
	document.forms[1].vha_bei.value="";
	document.forms[1].vha_von.value="";
	document.forms[1].vha_bis.value="";
	document.forms[1].vha_monate.value="";
	document.forms[1].vha_tage.value="";
	document.forms[1].vha_liste_monate.value="";
	document.forms[1].vha_liste_tage.value="";
	berechneGesamtVerkuerzung ();
	berechneAusbildungsEnde (document.forms[1].ved_vbeginn.value);
}

function checkArbzeit (control_h, control_m, maxstd, maxmin, text){
	if (isNaN (parseInt(control_h.value,10))){
		control_h.value=0;
	}
	if (isNaN (parseInt(control_m.value,10))){
		control_m.value=0;
	}
	if (control_m.value >= 60){
		control_h.value = parseInt((parseInt(control_h.value,10) + parseInt (control_m.value/60,10)),10);
		control_m.value = parseInt ((parseInt(control_m.value,10)%60),10);
	}	
	if (((control_h.value >= maxstd) && (control_m.value > maxmin)) || (control_h.value > maxstd)){
		var message;
		var bereich = " darf bei Volljährigen ";
		if ((maxstd == 40)||(maxstd == 8))
			bereich= " darf bei Minderjährigen ";
			message = "Die " + text + bereich + maxstd + " Stunden ";
		if (maxmin > 0){
			message += "und " + maxmin + " Minuten ";
		}
		message += "nicht überschreiten !";
		alert (message);
		control_h.value = maxstd;
		control_m.value = maxmin;
	}
	if (control_h.value == 0){
		control_h.value = '';
	}
}
function sonstige(sab){
	alert ("Eine Lehrzeitverkürzung aufgrund des erworbenen Schulabschlusses '"+sab+"' kann nicht gewährt werden !");
	document.forms[1].sab_monate.value = "";
	document.forms[1].sab_tage.value = "";
}
function mittlere(sab_monate, sab){
	if (sab_monate > MITTLEREREIFE){
		alert ("Aufgrund des erworbenen Schulabschlusses '"+sab+"' können maximal "+MITTLEREREIFE+" Monate lehrzeitverkürzend gewährt werden !");
		document.forms[1].sab_monate.value = MITTLEREREIFE;
		document.forms[1].sab_tage.value = "";
	}
}
function hoch(sab_monate, sab){
	if (sab_monate > ABITUR){
		alert ("Aufgrund des erworbenen Schulabschlusses '"+sab+"' können maximal "+ABITUR+" Monate lehrzeitverkürzend gewährt werden !");
		document.forms[1].sab_monate.value = ABITUR;
		document.forms[1].sab_tage.value = "";
	}
}
function default12(monthfield, dayfield){
	if (monthfield.value > 12){
		alert ("Es können maximal 12 Monate lehrzeitverkürzend gewährt werden !");
		monthfield.value = ABITUR;
		dayfield.value = "";
	}
}
function deaArb(control) {
	if (control.value != ""){
		document.forms[1].u0a.value="";
		document.forms[1].u1a.value="";
		document.forms[1].u2a.value="";
		document.forms[1].u3a.value="";
		document.forms[1].u4a.value="";
	}
}

function deaWrk(control){
	if (control.value != ""){
		document.forms[1].u0w.value="";
		document.forms[1].u1w.value="";
		document.forms[1].u2w.value="";
		document.forms[1].u3w.value="";
		document.forms[1].u4w.value="";	
	}
}
/****************************************Ende********Maske***Vertrag***************************************************************************************/

/****************************************Beginn******Maske***Ausbilder*********************************************************************************************/
function testAda (id){
	if (document.forms[1].ausbber2_sonstige.checked==true){
		showTable(id);
	}
	else if ((document.forms[1].ausbber1[2].checked==false) && (document.forms[1].ausbber1[3].checked==false)){
		hideTable(id);
	}
}

function changePabColor7x (pabnr){
	if ((pabnr == '01') || (pabnr == '02') || (pabnr == '03')){
		for (i=1; i<4; i++){
			nr = 'pab0'+i;
			document.getElementById(nr).style.backgroundColor='#F3F5F7';
			if (nr!=pabnr){
				document.getElementById(nr).value="";
			}
		}
		nr = 'pab'+pabnr;
		document.getElementById(nr).style.backgroundColor='#D6E3F8';
	}
	else if (pabnr == '10'){
		check = 'check'+pabnr; nr = 'pab'+pabnr;
		if (document.getElementById(check).checked == true){
			document.getElementById(nr).style.backgroundColor='#D6E3F8'
		}
		else{
			document.getElementById(nr).style.backgroundColor='#F3F5F7';
		}
		document.getElementById(nr).value="";
	}
	else{
		for (i=1; i<4; i++){
			nr = 'pab0'+i;
			document.getElementById(nr).style.backgroundColor='#F3F5F7';
			document.getElementById(nr).value="";
		}
	}
}
function changePabColor4x (pabnr){
	if ((pabnr == '01') || (pabnr == '02') || (pabnr == '03') || (pabnr == '04')){
		for (i=1; i<5; i++){
			nr = 'pab0'+i;
			document.getElementById(nr).style.backgroundColor='#F3F5F7';
			if (nr!=pabnr){
				document.getElementById(nr).value="";
			}
		}
		nr = 'pab'+pabnr;
		document.getElementById(nr).style.backgroundColor='#D6E3F8';
	}
	else{
		for (i=1; i<5; i++){
			nr = 'pab0'+i;
			document.getElementById(nr).style.backgroundColor='#F3F5F7';
			document.getElementById(nr).value="";
		}
	}
}
function changePabColor23 (pabnr){
	if (pabnr == '01'){
		document.getElementById('pab05').style.backgroundColor='#F3F5F7';
		document.getElementById('pab05').value="";
		document.getElementById('pab01').style.backgroundColor='#D6E3F8';
	}
	if (pabnr == '05'){
		document.getElementById('pab01').style.backgroundColor='#F3F5F7';
		document.getElementById('pab01').value="";
		document.getElementById('pab05').style.backgroundColor='#D6E3F8';
	}
}
function changeCertificationColor (pabnr){
	if (pabnr == '1'){
		document.getElementById('org').style.backgroundColor='rgb(214, 227, 248)';
		document.getElementById('dat').style.backgroundColor='rgb(214, 227, 248)';
	} else {
		document.getElementById('org').style.backgroundColor='rgb(255, 255, 255)';
		document.getElementById('dat').style.backgroundColor='rgb(255, 255, 255)';
	}
}
/****************************************Ende********Maske***Ausbilder*********************************************************************************************/

/******************Maske Upload************************************************/
function setFileValue (filecontrol, targetcontrol, filevalue, dokutype, actionvalue, action){	
	if (filecontrol.value.length>0){
		targetcontrol.value = filevalue;
		document.forms[1].dokutype.value=dokutype;
		setActionValue (actionvalue);
		setAction (action);
	}
}

function changeUploadVisibility(){
	document.getElementById ('content').style.visibility='hidden';
	document.getElementById ('hinweis').style.visibility='visible';
}

/******************Maske Druck*************************************************/
function checkDskOld (control){
	if (control[0].checked==true){
		document.getElementById ('content_dsk').style.visibility='hidden';
		document.getElementById ('verlauf_dsk').style.visibility='hidden';
		document.getElementById ('content_dsko').style.visibility='hidden';
		document.getElementById ('hinweis').style.visibility='visible';
	}
	else{
		alert ("Damit Ihre Daten gespeichert werden können, müssen Sie die Datenschutzbestimmungen akzeptieren !");
	}
}
function checkDsk() {
	jQuery('input[name="notice"]').val('true');
	jQuery('#content_dsk').addClass('none');
	jQuery('#hinweis').show();
	jQuery('input[name="op"]').focus();
	jQuery('#next').addClass('none');
	jQuery('#build').removeClass('none');
	jQuery('#build').addClass('submit');
	window.location.href='#top';
}
/******************Browserswitch***********************************************/

function checkBrowserName(name){
	var agent = navigator.userAgent.toLowerCase();
	if (agent.indexOf(name.toLowerCase())>= 0) {
		return true;
	}
		return false;
}
function browserSwitch (){
	if(checkBrowserName('MSIE')){
		//alert('MSIE!');
	}
	if(checkBrowserName('opera')){
		//alert('Opera');
	}
	if(checkBrowserName('safari')){
		//alert('Safari!');
	}
	if(checkBrowserName('firefox')){
		//alert('Firefox!');
	}
}
/*******************standardfunctions*********************************************/
function validateAge(field, age){
	if (isNaN (field.value) == true){
		if (compareDateWithToday(addYearsToDate(field.value, age))){
			field.value = "";
		}
	}
}
function addYearsToDate(value, years){
	dat = value.split ('.');
	date = new Date (parseInt(dat[2], 10)+years, parseInt(dat[1], 10)-1, dat[0]);
	return date;
}
function compareDateWithToday(date){
	heute = new Date ();
	heute.setHours (0);
	heute.setMinutes (0);
	heute.setSeconds (0);
	return compareDate(heute, date);
}
function compareDate(date1, date2 ){
	if ((isNaN (date1) == false) && (isNaN (date2) == false)){
		return (date1 < date2);
	}
}
function checkCount(feld, begin, end){
	var text = 'Bitte geben Sie einen Wert zwischen ' + begin + ' und ' + end + ' ein.'; 
	if (feld.value > end)
		alert(text);
}
/*vgl. general.js*/
function checkEmail(email, value, action) {
	var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
	var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
	var regex = "^"+usr+"\@"+domain+"$";
	var myrxp = new RegExp(regex);
	var check = (myrxp.test(email));
	if(check){
		setActionValue(value);setAction(action);
	}	else alert ("Bitte geben Sie eine gültige Email-Adresse an.\nAn diese wird der Link zum Aufruf des zwischengespeicherten Lehrvertrag gesendet !");
}
function checkSendEmail(value, action) {
	var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
	var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
	var regex = "^"+usr+"\@"+domain+"$";
	var myrxp = new RegExp(regex);
	var check = (myrxp.test(jQuery('#sendmail').val()));
	if(check){
		setActionValue(value);setAction(action);
	}	else alert ("Bitte geben Sie eine gültige Email-Adresse an.\nAn diese wird der Link zum Aufruf des zwischengespeicherten Lehrvertrag gesendet !");
}
function showEndLinks() {
	jQuery('#button').addClass('none');
	jQuery('#links').show();
}
