/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


// Aufzählung für Feiertage
		var ftNeujahr = 1;
		var ftErscheinungsfest = 2;
		var ftKarfreitag = 3;
		var ftOstersonntag = 4;
		var ftOstermontag = 5;
		var ftMaifeiertag = 6;
		var ftChristiHimmelfahrt = 7;
		var ftPfingstmontag = 8;
		var ftFronleichnam = 9;
		var ftMariaeHimmelfahrt = 10;
		var ftTagDerEinheit = 11;
		var ftReformationstag = 12;
		var ftAllerheiligen = 13;
		var ftBussUndBettag = 14;
		var ftWeihnachtsfeiertag1 = 15;
		var ftWeihnachtsfeiertag2 = 16;
		var ftFriedensfest = 17;

		// Aufzählung für Bundesländer
		var blBadenWuerttemberg = 1;
		var blBayern = 2;
		var blBayernKat = 65536;
		var blBayernAug = 131072;
		var blBerlin = 4;
		var blBrandenburg = 8;
		var blBremen = 16;
		var blHamburg = 32;
		var blHessen = 64;
		var blMecklenburgVorpommern = 128;
		var blNiedersachsen = 256;
		var blNordrheinWestfalen = 512;
		var blRheinlandPfalz = 1024;
		var blSaarland = 2048;
		var blSachsen = 4096;
		var blSachsenFron = 262144;
		var blSachsenAnhalt = 8192;
		var blSchleswigHolstein = 16384;
		var blThueringen = 32768;
		var blThueringenKat = 524288;

		function pv_recalc()
		{
			var mz_ok=false;
			var mz=0;
			var anz_member=0;
			var anz_frei=0;
			var femalez=0;
			var femalez_ok=false;
			var malez=0;
			var malez_ok=false;
			var bl_sel_visible=false;

			if (document.getElementsByName("pv_mitarbeiterzahl")[0].value!="")
			{
				if (!isNaN(parseInt(document.getElementsByName("pv_mitarbeiterzahl")[0].value)))
				{
					mz=parseInt(document.getElementsByName("pv_mitarbeiterzahl")[0].value);
					mz_ok=true;
					if (mz<0)
					{
						mz=-mz;
					}
					document.getElementsByName("pv_mitarbeiterzahl")[0].value=mz;
					sanitizeFemale()
					sanitizeMale()
				}
				else
				{
					document.getElementsByName("pv_mitarbeiterzahl")[0].value="";
				}
			}
			if (document.getElementsByName("pv_frauen")[0].value!="")
			{
				if (!isNaN(parseInt(document.getElementsByName("pv_frauen")[0].value)))
				{
					femalez=parseInt(document.getElementsByName("pv_frauen")[0].value);
					femalez_ok=true;
					if (femalez<0)
					{
						femalez=-femalez;
					}
					document.getElementsByName("pv_frauen")[0].value=femalez;
				}
				else
				{
					document.getElementsByName("pv_frauen")[0].value="";
				}
			}
			if (document.getElementsByName("pv_maenner")[0].value!="")
			{
				if (!isNaN(parseInt(document.getElementsByName("pv_maenner")[0].value)))
				{
					malez=parseInt(document.getElementsByName("pv_maenner")[0].value);
					malez_ok=true;
					if (malez<0)
					{
						malez=-malez;
					}
					document.getElementsByName("pv_maenner")[0].value=malez;
				}
				else
				{
					document.getElementsByName("pv_maenner")[0].value="";
				}
			}

			if (mz_ok)
			{
				document.getElementById("pv_betr_groesse").style.display="block";
				anz_member=pv_calc_betr_member(mz);
				if (anz_member==0)
				{
					document.getElementById("pv_betr_span_member").firstChild.data='keinem';
					document.getElementById("pv_betr_span_member2").firstChild.data='Mitglied';
				}
				else if (anz_member==1)
				{
					document.getElementById("pv_betr_span_member").firstChild.data='einem';
					document.getElementById("pv_betr_span_member2").firstChild.data='Mitglied';
				}
				else
				{
					document.getElementById("pv_betr_span_member").firstChild.data=anz_member;
					document.getElementById("pv_betr_span_member2").firstChild.data='Mitgliedern';
				};
				anz_frei=pv_calc_betr_frei(mz);
				if (anz_frei==0)
				{
					document.getElementById("pv_betr_span_frei").firstChild.data='kein';
					document.getElementById("pv_betr_span_frei2").firstChild.data='Betriebsratsmitglied';
				}
				else if (anz_frei==1)
				{
					document.getElementById("pv_betr_span_frei").firstChild.data='ein';
					document.getElementById("pv_betr_span_frei2").firstChild.data='Betriebsratsmitglied';
				}
				else
				{
					document.getElementById("pv_betr_span_frei").firstChild.data=anz_frei;
					document.getElementById("pv_betr_span_frei2").firstChild.data='Betriebsratsmitglieder';
				};
			}
			else
			{
				document.getElementById("pv_betr_groesse").style.display="none";
			};
			if (anz_member>=1)
			{
				document.getElementById("pv_geschlechterverteilung").style.display="block";
				if ((mz_ok)&&(femalez_ok)&&(malez_ok))
				{
					pv_calc_minderheiten_text_arr=pv_calc_minderheiten_text(anz_member,femalez,malez)
					document.getElementById("pv_quote_ausgabe_pre").firstChild.data=pv_calc_minderheiten_text_arr[0];
					document.getElementById("pv_quote_ausgabe").firstChild.data=pv_calc_minderheiten_text_arr[1];
					document.getElementById("pv_quote_ausgabe_post").firstChild.data=pv_calc_minderheiten_text_arr[2];
					document.getElementById("pv_quote_ausgabe_pre").style.display="inline";
					document.getElementById("pv_quote_ausgabe").style.display="inline";
					document.getElementById("pv_quote_ausgabe_post").style.display="inline";
				}
				else
				{
					document.getElementById("pv_quote_ausgabe_pre").style.display="none";
					document.getElementById("pv_quote_ausgabe").style.display="none";
					document.getElementById("pv_quote_ausgabe_post").style.display="none";
				}
				document.getElementById("pv_fristenkalender").style.display="block";
				if (mz<=50)
				{
					document.getElementsByName("pv_verfahren_nor_ein")[1].disabled=false;
					document.getElementsByName("pv_verfahren_nor_ein")[1].checked=true;
					document.getElementsByName("pv_verfahren_nor_ein")[0].disabled=true;
				}
				else if (mz>100)
				{
					document.getElementsByName("pv_verfahren_nor_ein")[0].disabled=false;
					document.getElementsByName("pv_verfahren_nor_ein")[0].checked=true;
					document.getElementsByName("pv_verfahren_nor_ein")[1].disabled=true;
				}
				else
				{
					document.getElementsByName("pv_verfahren_nor_ein")[0].disabled=false;
					document.getElementsByName("pv_verfahren_nor_ein")[1].disabled=false;
				}
				if (document.getElementsByName("pv_verfahren_nor_ein")[1].checked)
				{
					document.getElementById("pv_vereinfacht_stufen").style.display="block";
				}
				else
				{
					document.getElementById("pv_vereinfacht_stufen").style.display="none";
				}
				if ((document.getElementsByName("pv_verfahren_nor_ein")[0].checked)||((document.getElementsByName("pv_verfahren_nor_ein")[1].checked)&&((document.getElementsByName("pv_vereinfacht_stufen_zahl")[0].checked)||(document.getElementsByName("pv_vereinfacht_stufen_zahl")[1].checked))))
				{
					document.getElementById("pv_bundesland").style.display="block";
					bl_sel_visible=true;
				}
				else
				{
					document.getElementById("pv_bundesland").style.display="none";
					bl_sel_visible=false;
				}

				if (bl_sel_visible)
				{

					if ((document.getElementsByName("pv_verfahren_nor_ein")[0].checked)||(document.getElementsByName("pv_vereinfacht_stufen_zahl")[0].checked))
					{
						//Normales Wahlverfahren oder vereinfacht einstufig

						document.getElementById("pv_datum_erste_wahl_wahlvorstand_div").style.display="none";
						document.getElementById("pv_datum_erste_wahl_wahlvorstand_fehler_div").style.display="none";
						document.getElementById("pv_vereinfacht_2st_ausgabe_div").style.display="none";

						Bundesland=document.getElementsByName("pv_bundesland_sel")[0].value

						if (Bundesland!='')
						{
							document.getElementById("pv_datum_ablauf_div").style.display="block";
							if (!testempty(document.getElementsByName("pv_datum_ablauf")[0].value))
							{
								if (testdate(document.getElementsByName("pv_datum_ablauf")[0].value))
								{
									Ende_der_Amtszeit=getdate(document.getElementsByName("pv_datum_ablauf")[0].value);
									document.getElementsByName("pv_datum_ablauf")[0].value=formatDate(Ende_der_Amtszeit);
									while (DatumIstFeiertagIn(Ende_der_Amtszeit,Bundesland) || istWochenende(Ende_der_Amtszeit))
									{
										Ende_der_Amtszeit=new Date(Ende_der_Amtszeit.getFullYear(),Ende_der_Amtszeit.getMonth(),Ende_der_Amtszeit.getDate()-1);
									}
									spaetester_Wahltermin=new Date(Ende_der_Amtszeit.getFullYear(),Ende_der_Amtszeit.getMonth(),Ende_der_Amtszeit.getDate()-7);
									while (DatumIstFeiertagIn(spaetester_Wahltermin,Bundesland) || istWochenende(spaetester_Wahltermin))
									{
										spaetester_Wahltermin=new Date(spaetester_Wahltermin.getFullYear(),spaetester_Wahltermin.getMonth(),spaetester_Wahltermin.getDate()-1);
									}
									document.getElementById("pv_spaetester_wahltermin_div").style.display="block";


									if ((spaetester_Wahltermin.getMonth()<2)||(spaetester_Wahltermin.getMonth()>4))
									{
										document.getElementById("pv_spaetester_wahltermin_div_error").style.display="block";

										spaetester_Wahltermin_erlaubt=new Date(spaetester_Wahltermin.getFullYear(),2,1);
										while (DatumIstFeiertagIn(spaetester_Wahltermin_erlaubt,Bundesland) || istWochenende(spaetester_Wahltermin_erlaubt))
										{
											spaetester_Wahltermin_erlaubt=new Date(spaetester_Wahltermin_erlaubt.getFullYear(),spaetester_Wahltermin_erlaubt.getMonth(),spaetester_Wahltermin_erlaubt.getDate()+1);
										}
										document.getElementById("spaetester_wahltermin_error_erlaubt").firstChild.data=formatDate(spaetester_Wahltermin_erlaubt);

									}
									else
									{
										document.getElementById("pv_spaetester_wahltermin_div_error").style.display="none";
										spaetester_Wahltermin_erlaubt=spaetester_Wahltermin
									}

									document.getElementById("spaetester_wahltermin").firstChild.data=formatDate(spaetester_Wahltermin);

									if (!testempty(document.getElementsByName("pv_datum_wahltermin")[0].value))
									{
										if (testdate(document.getElementsByName("pv_datum_wahltermin")[0].value))
										{
											Datum_Wahltermin=getdate(document.getElementsByName("pv_datum_wahltermin")[0].value);
											document.getElementsByName("pv_datum_wahltermin")[0].value=formatDate(Datum_Wahltermin);
											Datum_Wahltermin_Fehler=false;
											Datum_Wahltermin_Fehler_Meldung="";
											if ((Datum_Wahltermin.valueOf()>spaetester_Wahltermin.valueOf())&&(Datum_Wahltermin.valueOf()!=spaetester_Wahltermin_erlaubt.valueOf()))
											
											{
												Datum_Wahltermin_Fehler=true;
												if(Datum_Wahltermin_Fehler_Meldung!='')
												{
													Datum_Wahltermin_Fehler_Meldung+="\r\n";
												}
												Datum_Wahltermin_Fehler_Meldung+='Der von Ihnen gewählte Wahltag liegt nach dem letztmöglichen Wahltermin.';
											}
											if (DatumIstFeiertagIn(Datum_Wahltermin,Bundesland))
											{
												Datum_Wahltermin_Fehler=true;
												if(Datum_Wahltermin_Fehler_Meldung!='')
												{
													Datum_Wahltermin_Fehler_Meldung+="\r\n";
												}
												Datum_Wahltermin_Fehler_Meldung+='Der von Ihnen gewählte Wahltag fällt auf einen Feiertag.';
											}
											if (Datum_Wahltermin.getDay()==0)
											{
												Datum_Wahltermin_Fehler=true;
												if(Datum_Wahltermin_Fehler_Meldung!='')
												{
													Datum_Wahltermin_Fehler_Meldung+="\r\n";
												}
												Datum_Wahltermin_Fehler_Meldung+='Der von Ihnen gewählte Wahltag fällt auf einen Sonntag.';
											}
											if (Datum_Wahltermin.getDay()==6)
											{
												Datum_Wahltermin_Fehler=true;
												if(Datum_Wahltermin_Fehler_Meldung!='')
												{
													Datum_Wahltermin_Fehler_Meldung+="\r\n";
												}
												Datum_Wahltermin_Fehler_Meldung+='Der von Ihnen gewählte Wahltag fällt auf einen Samstag.';
											}
											if (Datum_Wahltermin_Fehler)
											{
												document.getElementById("pv_wahltermin_fehler_div").style.display="block";
												document.getElementById("pv_wahltermin_fehler").firstChild.data=Datum_Wahltermin_Fehler_Meldung;
												document.getElementById("pv_normal_ausgabe_div").style.display="none";
												document.getElementById("pv_vereinfacht_1st_ausgabe_div").style.display="none";
											}
											else
											{
												if ((Datum_Wahltermin.getMonth()<2)||(Datum_Wahltermin.getMonth()>4))
												{
													document.getElementById("pv_wahltermin_fehler_div").style.display="block";
													document.getElementById("pv_wahltermin_fehler").firstChild.data="Bei allen Eingaben in den Rechner ist darauf zu achten, dass dann, wenn ein BR bereits gebildet wurde und es sich um eine reguläre Neuwahl handelt, der Wahltermin (Tag der Wahl) gem. § 13 Abs. 1 BetrVG zwischen dem 01.03. und dem 31.05 liegen muss. Die Einleitung der Wahl durch wahlvorbereitende Maßnahmen kann bereits vor dem 01.03. liegen. Nur der Wahltag selber darf nicht vor dem 01.03. liegen.";
												}
												else
												{
													document.getElementById("pv_wahltermin_fehler_div").style.display="none";
												}
												if (document.getElementsByName("pv_verfahren_nor_ein")[0].checked)
												{
													//Berechnungen normales Wahlverfahren

													//Wahltermin
													document.getElementsByName("pv_nor_Wahltag")[0].value=formatDate(Datum_Wahltermin);

													//Bestellung Wahlvorstand
													Bestellung_Wahlvorstand=new Date(Ende_der_Amtszeit.getFullYear(),Ende_der_Amtszeit.getMonth(),Ende_der_Amtszeit.getDate()-70);
													while (DatumIstFeiertagIn(Bestellung_Wahlvorstand,Bundesland) || istWochenende(Bestellung_Wahlvorstand))
													{
														Bestellung_Wahlvorstand=new Date(Bestellung_Wahlvorstand.getFullYear(),Bestellung_Wahlvorstand.getMonth(),Bestellung_Wahlvorstand.getDate()-1);
													}
													document.getElementsByName("pv_nor_bestellung_wahlvorstand")[0].value=formatDate(Bestellung_Wahlvorstand);

													//Auslage Wählerliste + Erlass Wahlausschreiben / Einleitung der Wahl
													auslegungWV=new Date(Datum_Wahltermin.getFullYear(),Datum_Wahltermin.getMonth(),Datum_Wahltermin.getDate()-43);
													while (DatumIstFeiertagIn(auslegungWV,Bundesland) || istWochenende(auslegungWV))
													{
														auslegungWV=new Date(auslegungWV.getFullYear(),auslegungWV.getMonth(),auslegungWV.getDate()-1);
													}
													document.getElementsByName("pv_nor_auslegung_waehlerliste")[0].value=formatDate(auslegungWV);
													document.getElementsByName("pv_nor_erlass_wahlausschreiben")[0].value=formatDate(auslegungWV);

													//Zuordnung Leitender Angestellte
													leitendeAngestellte=new Date(auslegungWV.getFullYear(),auslegungWV.getMonth(),auslegungWV.getDate()-14);
													while (DatumIstFeiertagIn(leitendeAngestellte,Bundesland) || istWochenende(leitendeAngestellte))
													{
														leitendeAngestellte=new Date(leitendeAngestellte.getFullYear(),leitendeAngestellte.getMonth(),leitendeAngestellte.getDate()-1);
													}
													document.getElementsByName("pv_nor_zuordnung_leit_ang")[0].value=formatDate(leitendeAngestellte);

													//Ende Einspruchsfrist gegen Wählerliste + Ende Einreichungsfrist Vorschlagsliste
													endeeinspruch=new Date(auslegungWV.getFullYear(),auslegungWV.getMonth(),auslegungWV.getDate()+14);
													while (DatumIstFeiertagIn(endeeinspruch,Bundesland) || istWochenende(endeeinspruch))
													{
														endeeinspruch=new Date(endeeinspruch.getFullYear(),endeeinspruch.getMonth(),endeeinspruch.getDate()+1);
													}
													document.getElementsByName("pv_nor_ende_einspruchsfrist")[0].value=formatDate(endeeinspruch);
													document.getElementsByName("pv_nor_ende_einreichungsfrist_vorschlagsliste")[0].value=formatDate(endeeinspruch);

													//Ende Nachfrist Einreichung Vorschlagsliste
													endenachfrist=new Date(endeeinspruch.getFullYear(),endeeinspruch.getMonth(),endeeinspruch.getDate()+8);
													while (DatumIstFeiertagIn(endenachfrist,Bundesland) || istWochenende(endenachfrist))
													{
														endenachfrist=new Date(endenachfrist.getFullYear(),endenachfrist.getMonth(),endenachfrist.getDate()+1);
													}
													document.getElementsByName("pv_nor_ende_Nachfrist_Einreichung")[0].value=formatDate(endenachfrist);

													//Späteste Bekanntmachung gültiger Vorschlagslisten
													bekanntmach=new Date(Datum_Wahltermin.getFullYear(),Datum_Wahltermin.getMonth(),Datum_Wahltermin.getDate()-8);
													while (DatumIstFeiertagIn(bekanntmach,Bundesland) || istWochenende(bekanntmach))
													{
														bekanntmach=new Date(bekanntmach.getFullYear(),bekanntmach.getMonth(),bekanntmach.getDate()-1);
													}
													document.getElementsByName("pv_nor_spaetest_Bekanntmachung_Vorschlag")[0].value=formatDate(bekanntmach);

													//Späteste Bekanntgabe Entscheidung Einsprüche + Späteste Berichtigung Wählerliste
													bekanntgabe=new Date(Datum_Wahltermin.getFullYear(),Datum_Wahltermin.getMonth(),Datum_Wahltermin.getDate()-1);
													while (DatumIstFeiertagIn(bekanntgabe,Bundesland) || istWochenende(bekanntgabe))
													{
														bekanntgabe=new Date(bekanntgabe.getFullYear(),bekanntgabe.getMonth(),bekanntgabe.getDate()-1);
													}
													document.getElementsByName("pv_nor_ende_Bekanntgabe_Entscheidung_Einsprueche")[0].value=formatDate(bekanntgabe);
													document.getElementsByName("pv_nor_spaetest_Berichtigung_Waehlerliste")[0].value=formatDate(bekanntgabe);

													//Spätester Zeitpunkt Einberufung konstituierenden Sitzung
													sitzung=new Date(Datum_Wahltermin.getFullYear(),Datum_Wahltermin.getMonth(),Datum_Wahltermin.getDate()+7);
													while (DatumIstFeiertagIn(sitzung,Bundesland) || istWochenende(sitzung))
													{
														sitzung=new Date(sitzung.getFullYear(),sitzung.getMonth(),sitzung.getDate()+1);
													}
													document.getElementsByName("pv_nor_spaetest_Zeitpunkt_Konst_Sitzung")[0].value=formatDate(sitzung);

													document.getElementById("pv_normal_ausgabe_div").style.display="block";
													document.getElementById("pv_vereinfacht_1st_ausgabe_div").style.display="none";
												}
												else
												{
													// Berechnungen einfaches 1stufiges Wahlverfahren

													//Wahlversammlung
													document.getElementsByName("pv_ein1st_Wahlversammlung")[0].value=formatDate(Datum_Wahltermin);

													//Bestellung Wahlvorstand durch BR
													Bestellung_Wahlvorstand=new Date(Ende_der_Amtszeit.getFullYear(),Ende_der_Amtszeit.getMonth(),Ende_der_Amtszeit.getDate()-28);
													while (DatumIstFeiertagIn(Bestellung_Wahlvorstand,Bundesland) || istWochenende(Bestellung_Wahlvorstand))
													{
														Bestellung_Wahlvorstand=new Date(Bestellung_Wahlvorstand.getFullYear(),Bestellung_Wahlvorstand.getMonth(),Bestellung_Wahlvorstand.getDate()-1);
													}
													document.getElementsByName("pv_ein1st_bestellung_wahlvorstand_BR")[0].value=formatDate(Bestellung_Wahlvorstand);

													//Bestellung Wahlvorstand nicht durch BR
													Bestellung_Wahlvorstand_Kein_BR=new Date(Ende_der_Amtszeit.getFullYear(),Ende_der_Amtszeit.getMonth(),Ende_der_Amtszeit.getDate()-21);
													while (DatumIstFeiertagIn(Bestellung_Wahlvorstand_Kein_BR,Bundesland) || istWochenende(Bestellung_Wahlvorstand_Kein_BR))
													{
														Bestellung_Wahlvorstand_Kein_BR=new Date(Bestellung_Wahlvorstand_Kein_BR.getFullYear(),Bestellung_Wahlvorstand_Kein_BR.getMonth(),Bestellung_Wahlvorstand_Kein_BR.getDate()-1);
													}
													document.getElementsByName("pv_ein1st_bestellung_wahlvorstand_Kein_BR")[0].value=formatDate(Bestellung_Wahlvorstand_Kein_BR);

													//Letzter Termin nachträglicher schriftlicher Stimmabgabe
													Nachtraeglich_Schrift_Stimabgabe=new Date(Ende_der_Amtszeit.getFullYear(),Ende_der_Amtszeit.getMonth(),Ende_der_Amtszeit.getDate()-7);
													while (DatumIstFeiertagIn(Nachtraeglich_Schrift_Stimabgabe,Bundesland) || istWochenende(Nachtraeglich_Schrift_Stimabgabe))
													{
														Nachtraeglich_Schrift_Stimabgabe=new Date(Nachtraeglich_Schrift_Stimabgabe.getFullYear(),Nachtraeglich_Schrift_Stimabgabe.getMonth(),Nachtraeglich_Schrift_Stimabgabe.getDate()-1);
													}
													document.getElementsByName("pv_ein1st_letzter_temin_Nacht_Stimmabg")[0].value=formatDate(Nachtraeglich_Schrift_Stimabgabe);

													//Ende Einreichungsfrist Wahlvorschläge
													endeeinreichungsfrist=new Date(Datum_Wahltermin.getFullYear(),Datum_Wahltermin.getMonth(),Datum_Wahltermin.getDate()-8);
													while (DatumIstFeiertagIn(endeeinreichungsfrist,Bundesland) || istWochenende(endeeinreichungsfrist))
													{
														endeeinreichungsfrist=new Date(endeeinreichungsfrist.getFullYear(),endeeinreichungsfrist.getMonth(),endeeinreichungsfrist.getDate()-1);
													}
													document.getElementsByName("pv_ein1st_ende_Einreichungsfrist")[0].value=formatDate(endeeinreichungsfrist);

													//Letzer Termin Antrag nachträgliche schriftliche Stimmabgabe
													Antrag_nachtr_stimmabgabe=new Date(Datum_Wahltermin.getFullYear(),Datum_Wahltermin.getMonth(),Datum_Wahltermin.getDate()-4);
													while (DatumIstFeiertagIn(Antrag_nachtr_stimmabgabe,Bundesland) || istWochenende(Antrag_nachtr_stimmabgabe))
													{
														Antrag_nachtr_stimmabgabe=new Date(Antrag_nachtr_stimmabgabe.getFullYear(),Antrag_nachtr_stimmabgabe.getMonth(),Antrag_nachtr_stimmabgabe.getDate()-1);
													}
													document.getElementsByName("pv_ein1st_Frist_Antrag_nachtraeglich")[0].value=formatDate(Antrag_nachtr_stimmabgabe);

													//Späteste Bekanntgabe Entscheidung Einsprüche
													bekanntgabe=new Date(Datum_Wahltermin.getFullYear(),Datum_Wahltermin.getMonth(),Datum_Wahltermin.getDate()-1);
													while (DatumIstFeiertagIn(bekanntgabe,Bundesland) || istWochenende(bekanntgabe))
													{
														bekanntgabe=new Date(bekanntgabe.getFullYear(),bekanntgabe.getMonth(),bekanntgabe.getDate()-1);
													}
													document.getElementsByName("pv_ein1st_ende_Bekanntgabe_Entscheidung_Einsprueche")[0].value=formatDate(bekanntgabe);

													document.getElementById("pv_normal_ausgabe_div").style.display="none";
													document.getElementById("pv_vereinfacht_1st_ausgabe_div").style.display="block";
												}
											}
										}
										else
										{
											document.getElementsByName("pv_datum_wahltermin")[0].value="";
											document.getElementById("pv_wahltermin_fehler_div").style.display="none";
											document.getElementById("pv_normal_ausgabe_div").style.display="none";
											document.getElementById("pv_vereinfacht_1st_ausgabe_div").style.display="none";
										};
									}

								}
								else
								{
									document.getElementsByName("pv_datum_ablauf")[0].value="";
									document.getElementById("pv_spaetester_wahltermin_div").style.display="none";
									document.getElementById("pv_wahltermin_fehler_div").style.display="none";
									document.getElementById("pv_normal_ausgabe_div").style.display="none";
									document.getElementById("pv_vereinfacht_1st_ausgabe_div").style.display="none";
								};
							}
							else
							{
								document.getElementById("pv_spaetester_wahltermin_div").style.display="none";
								document.getElementById("pv_wahltermin_fehler_div").style.display="none";
								document.getElementById("pv_normal_ausgabe_div").style.display="none";
								document.getElementById("pv_vereinfacht_1st_ausgabe_div").style.display="none";
							};
						}
						else
						{
							document.getElementById("pv_datum_ablauf_div").style.display="none";
							document.getElementById("pv_spaetester_wahltermin_div").style.display="none";
							document.getElementById("pv_wahltermin_fehler_div").style.display="none";
							document.getElementById("pv_normal_ausgabe_div").style.display="none";
							document.getElementById("pv_vereinfacht_1st_ausgabe_div").style.display="none";
						}

					}
					else
					{

						document.getElementById("pv_datum_ablauf_div").style.display="none";
						document.getElementById("pv_spaetester_wahltermin_div").style.display="none";
						document.getElementById("pv_wahltermin_fehler_div").style.display="none";
						document.getElementById("pv_normal_ausgabe_div").style.display="none";
						document.getElementById("pv_vereinfacht_1st_ausgabe_div").style.display="none";

						Bundesland=document.getElementsByName("pv_bundesland_sel")[0].value

						if (Bundesland!='')
						{
							document.getElementById("pv_datum_erste_wahl_wahlvorstand_div").style.display="block";

							if (!testempty(document.getElementsByName("pv_datum_erste_wahl_wahlvorstand")[0].value))
							{
								if (testdate(document.getElementsByName("pv_datum_erste_wahl_wahlvorstand")[0].value))
								{
									Datum_Erste_Wahl_Vorstand=getdate(document.getElementsByName("pv_datum_erste_wahl_wahlvorstand")[0].value);
									document.getElementsByName("pv_datum_erste_wahl_wahlvorstand")[0].value=formatDate(Datum_Erste_Wahl_Vorstand);
									Datum_Erste_Wahl_Vorstand_Fehler=false;
									Datum_Erste_Wahl_Vorstand_Fehler_Meldung="";
									if (DatumIstFeiertagIn(Datum_Erste_Wahl_Vorstand,Bundesland))
									{
										Datum_Erste_Wahl_Vorstand_Fehler=true;
										if(Datum_Erste_Wahl_Vorstand_Fehler_Meldung!='')
										{
											Datum_Erste_Wahl_Vorstand_Fehler_Meldung+="\r\n";
										}
										Datum_Erste_Wahl_Vorstand_Fehler_Meldung+='Der von Ihnen gewählte Wahltag fällt auf einen Feiertag.';
									}
									if (Datum_Erste_Wahl_Vorstand.getDay()==0)
									{
										Datum_Erste_Wahl_Vorstand_Fehler=true;
										if(Datum_Erste_Wahl_Vorstand_Fehler_Meldung!='')
										{
											Datum_Erste_Wahl_Vorstand_Fehler_Meldung+="\r\n";
										}
										Datum_Erste_Wahl_Vorstand_Fehler_Meldung+='Der von Ihnen gewählte Wahltag fällt auf einen Sonntag.';
									}
									if (Datum_Erste_Wahl_Vorstand.getDay()==6)
									{
										Datum_Erste_Wahl_Vorstand_Fehler=true;
										if(Datum_Erste_Wahl_Vorstand_Fehler_Meldung!='')
										{
											Datum_Erste_Wahl_Vorstand_Fehler_Meldung+="\r\n";
										}
										Datum_Erste_Wahl_Vorstand_Fehler_Meldung+='Der von Ihnen gewählte Wahltag fällt auf einen Samstag.';
									}
									if (Datum_Erste_Wahl_Vorstand_Fehler)
									{
										document.getElementById("pv_datum_erste_wahl_wahlvorstand_fehler_div").style.display="block";
										document.getElementById("pv_datum_erste_wahl_wahlvorstand_fehler").firstChild.data=Datum_Erste_Wahl_Vorstand_Fehler_Meldung;
										document.getElementById("pv_vereinfacht_2st_ausgabe_div").style.display="none";
									}
									else
									{
										document.getElementById("pv_datum_erste_wahl_wahlvorstand_fehler_div").style.display="none";

										//Berechnungen einfaches 2-stufiges Wahlverfahren

										//Tag erste Wahl + Erstellung Wählerliste + Fristende Wahlvorschläge + Auslegung Wählerliste + Bekanntmachung Wählerliste
										document.getElementsByName("pv_ein2st_datum_wahl_wahlvorstand")[0].value=formatDate(Datum_Erste_Wahl_Vorstand);
										document.getElementsByName("pv_ein2st_erstellung_waehlerliste")[0].value=formatDate(Datum_Erste_Wahl_Vorstand);
										document.getElementsByName("pv_ein2st_fristende_wahlvorschlaege")[0].value=formatDate(Datum_Erste_Wahl_Vorstand);
										document.getElementsByName("pv_ein2st_auslegung_waehlerliste")[0].value=formatDate(Datum_Erste_Wahl_Vorstand);
										document.getElementsByName("pv_ein2st_bekanntmachung_waehlerliste")[0].value=formatDate(Datum_Erste_Wahl_Vorstand);

										//Spätester Termin Einladung erste Wahlversammlung
										Einladung_erste_Wahlversammlung=new Date(Datum_Erste_Wahl_Vorstand.getFullYear(),Datum_Erste_Wahl_Vorstand.getMonth(),Datum_Erste_Wahl_Vorstand.getDate()-7);
										while (DatumIstFeiertagIn(Einladung_erste_Wahlversammlung,Bundesland) || istWochenende(Einladung_erste_Wahlversammlung))
										{
											Einladung_erste_Wahlversammlung=new Date(Einladung_erste_Wahlversammlung.getFullYear(),Einladung_erste_Wahlversammlung.getMonth(),Einladung_erste_Wahlversammlung.getDate()-1);
										}
										document.getElementsByName("pv_ein2st_einladung_wahl_wahlvorstand")[0].value=formatDate(Einladung_erste_Wahlversammlung);

										//Ende der Einspruchsfrist gegen die Wählerliste
										Ende_Einspruchsfrist=new Date(Datum_Erste_Wahl_Vorstand.getFullYear(),Datum_Erste_Wahl_Vorstand.getMonth(),Datum_Erste_Wahl_Vorstand.getDate()+3);
										while (DatumIstFeiertagIn(Ende_Einspruchsfrist,Bundesland) || istWochenende(Ende_Einspruchsfrist))
										{
											Ende_Einspruchsfrist=new Date(Ende_Einspruchsfrist.getFullYear(),Ende_Einspruchsfrist.getMonth(),Ende_Einspruchsfrist.getDate()+1);
										}
										document.getElementsByName("pv_ein2st_ende_einspruch_waehlerliste")[0].value=formatDate(Ende_Einspruchsfrist);

										//Zweite Wahlversammlung zur Wahl des Betriebsrats
										zweitewv=new Date(Datum_Erste_Wahl_Vorstand.getFullYear(),Datum_Erste_Wahl_Vorstand.getMonth(),Datum_Erste_Wahl_Vorstand.getDate()+7);
										while (DatumIstFeiertagIn(zweitewv,Bundesland) || istWochenende(zweitewv))
										{
											zweitewv=new Date(zweitewv.getFullYear(),zweitewv.getMonth(),zweitewv.getDate()+1);
										}
										document.getElementsByName("pv_ein2st_datum_wahl_betriebsrat")[0].value=formatDate(zweitewv);

										//Frist zur Stellung eines Antrages auf schriftliche Stimmabgabe
										fristschriftl=new Date(zweitewv.getFullYear(),zweitewv.getMonth(),zweitewv.getDate()-3);
										while (DatumIstFeiertagIn(fristschriftl,Bundesland) || istWochenende(fristschriftl))
										{
											fristschriftl=new Date(fristschriftl.getFullYear(),fristschriftl.getMonth(),fristschriftl.getDate()-1);
										}
										document.getElementsByName("pv_ein2st_Frist_Antrag_schriftlich")[0].value=formatDate(fristschriftl);

										//Bekanntgabe Entscheidung Einsprüche gegen die Wählerliste
										bekanntgabe=new Date(zweitewv.getFullYear(),zweitewv.getMonth(),zweitewv.getDate()-1);
										while (DatumIstFeiertagIn(bekanntgabe,Bundesland) || istWochenende(bekanntgabe))
										{
											bekanntgabe=new Date(bekanntgabe.getFullYear(),bekanntgabe.getMonth(),bekanntgabe.getDate()-1);
										}
										document.getElementsByName("pv_ein2st_ende_Bekanntgabe_Entscheidung_Einsprueche")[0].value=formatDate(bekanntgabe);



										document.getElementById("pv_vereinfacht_2st_ausgabe_div").style.display="block";

									}
								}
								else
								{
									document.getElementsByName("pv_datum_erste_wahl_wahlvorstand")[0].value="";
									document.getElementById("pv_datum_erste_wahl_wahlvorstand_fehler_div").style.display="none";
									document.getElementById("pv_vereinfacht_2st_ausgabe_div").style.display="none";
								};
							}
							else
							{
								document.getElementById("pv_datum_erste_wahl_wahlvorstand_fehler_div").style.display="none";
								document.getElementById("pv_vereinfacht_2st_ausgabe_div").style.display="none";
							};
						}
						else
						{
							document.getElementById("pv_datum_erste_wahl_wahlvorstand_div").style.display="none";
							document.getElementById("pv_datum_erste_wahl_wahlvorstand_fehler_div").style.display="none";
							document.getElementById("pv_vereinfacht_2st_ausgabe_div").style.display="none";
						}
					}
				}
				else
				{
					document.getElementById("pv_datum_ablauf_div").style.display="none";
					document.getElementById("pv_spaetester_wahltermin_div").style.display="none";
					document.getElementById("pv_wahltermin_fehler_div").style.display="none";
					document.getElementById("pv_normal_ausgabe_div").style.display="none";
					document.getElementById("pv_vereinfacht_1st_ausgabe_div").style.display="none";
					document.getElementById("pv_vereinfacht_2st_ausgabe_div").style.display="none";
				}
			}
			else
			{
				document.getElementById("pv_geschlechterverteilung").style.display="none";
				document.getElementById("pv_fristenkalender").style.display="none";
				document.getElementById("pv_datum_ablauf_div").style.display="none";
				document.getElementById("pv_spaetester_wahltermin_div").style.display="none";
				document.getElementById("pv_wahltermin_fehler_div").style.display="none";
				document.getElementById("pv_normal_ausgabe_div").style.display="none";
				document.getElementById("pv_vereinfacht_1st_ausgabe_div").style.display="none";
				document.getElementById("pv_vereinfacht_2st_ausgabe_div").style.display="none";
			};
		}

		function pv_calc_betr_member(mz)
		{
			var fixedSizes=new Array()

			fixedSizes[fixedSizes.length]=new Array(7001,35);
			fixedSizes[fixedSizes.length]=new Array(6001,33);
			fixedSizes[fixedSizes.length]=new Array(5001,31);
			fixedSizes[fixedSizes.length]=new Array(4501,29);
			fixedSizes[fixedSizes.length]=new Array(4001,27);
			fixedSizes[fixedSizes.length]=new Array(3501,25);
			fixedSizes[fixedSizes.length]=new Array(3001,23);
			fixedSizes[fixedSizes.length]=new Array(2501,21);
			fixedSizes[fixedSizes.length]=new Array(2001,19);
			fixedSizes[fixedSizes.length]=new Array(1501,17);
			fixedSizes[fixedSizes.length]=new Array(1001,15);
			fixedSizes[fixedSizes.length]=new Array(701,13);
			fixedSizes[fixedSizes.length]=new Array(401,11);
			fixedSizes[fixedSizes.length]=new Array(201,9);
			fixedSizes[fixedSizes.length]=new Array(101,7);
			fixedSizes[fixedSizes.length]=new Array(51,5);
			fixedSizes[fixedSizes.length]=new Array(21,3);
			fixedSizes[fixedSizes.length]=new Array(5,1);
			fixedSizes[fixedSizes.length]=new Array(0,0);

			if (mz>9000)
			{
				return 37 + Math.floor((mz - 9001) / 3000) * 2;
			}
			else
			{
				for (var i=0;i<fixedSizes.length;i++)
				{
					if (mz>=fixedSizes[i][0])
					{
						return fixedSizes[i][1];
					}
				}
			}
			return 0;
		}

		function pv_calc_betr_frei(mz)
		{
			var fixedSizes=new Array()

			fixedSizes[fixedSizes.length]=new Array(9001,12);
			fixedSizes[fixedSizes.length]=new Array(8001,11);
			fixedSizes[fixedSizes.length]=new Array(7001,10);
			fixedSizes[fixedSizes.length]=new Array(6001,9);
			fixedSizes[fixedSizes.length]=new Array(5001,8);
			fixedSizes[fixedSizes.length]=new Array(4001,7);
			fixedSizes[fixedSizes.length]=new Array(3001,6);
			fixedSizes[fixedSizes.length]=new Array(2001,5);
			fixedSizes[fixedSizes.length]=new Array(1501,4);
			fixedSizes[fixedSizes.length]=new Array(901,3);
			fixedSizes[fixedSizes.length]=new Array(501,2);
			fixedSizes[fixedSizes.length]=new Array(200,1);
			fixedSizes[fixedSizes.length]=new Array(0,0);

			if (mz>10000)
			{
				return 13 + Math.floor((mz - 10001) / 2000);
			}
			else
			{
				for (var i=0;i<fixedSizes.length;i++)
				{
					if (mz>=fixedSizes[i][0])
					{
						return fixedSizes[i][1];
					}
				}
			}
			return 0;
		}

		function sanitizeFemale()
		{
			var femalez=0;
			var femalez_ok=false;
			var mz_ok=false;
			var mz=0;

			if (document.getElementsByName("pv_frauen")[0].value!="")
			{
				if (!isNaN(parseInt(document.getElementsByName("pv_frauen")[0].value)))
				{
					femalez=parseInt(document.getElementsByName("pv_frauen")[0].value);
					femalez_ok=true;
					if (femalez<0)
					{
						femalez=-femalez;
					}
					document.getElementsByName("pv_frauen")[0].value=femalez;
				}
				else
				{
					document.getElementsByName("pv_frauen")[0].value="";
				}
			}
		}

		function sanitizeMale()
		{
			var malez=0;
			var malez_ok=false;
			var mz_ok=false;
			var mz=0;

			if (document.getElementsByName("pv_maenner")[0].value!="")
			{
				if (!isNaN(parseInt(document.getElementsByName("pv_maenner")[0].value)))
				{
					malez=parseInt(document.getElementsByName("pv_maenner")[0].value);
					malez_ok=true;
					if (malez<0)
					{
						malez=-malez;
					}
					document.getElementsByName("pv_maenner")[0].value=malez;
				}
				else
				{
					document.getElementsByName("pv_maenner")[0].value="";
				}
			}
		}

		function pv_calc_minderheiten_text(br,frauen,maenner)
		{
			var sitz_mann = 0;
			var sitz_frau = 0;
			var m = 0;
			var f = 0;
			var sitze = 0;
			var engpass = '';
			var zusatz = '';
			var sitz_ausgabe_pre = '';
			var sitz_ausgabe = '';
			var sitz_ausgabe_post = '';
			var array_m = new Array();
			var array_f = new Array();

			m = 1;
			while (m <= br)
			{
				array_m[m] = maenner / m;
				++m;
			}
			f = 1;
			while (f <= br)
			{
				array_f[f] = frauen / f;
				++f;
			}
			if (frauen == maenner)
			{
				sitz_ausgabe_pre = 'In dem zu wählenden Betriebsrat ist kein Geschlecht in der Minderheit';
			}
			else
			{
				m = 1;
				f = 1;
				while (sitze < br)
				{
			  		if (array_f[f] > array_m[m])
			  		{
						++sitz_frau;
						++f;
						++sitze;
			  		}
			  		else
			  		{
						if (array_f[f] < array_m[m])
						{
						  ++sitz_mann;
						  ++m;
						  ++sitze;
						}
						else
						{
				  			if (br - sitze <= 1)
				  			{
								zusatz = 'Über den letzten Sitz des Betriebrats entscheidet das Los. Diesen Vorgang kann das Programm nicht simulieren, so dass Sie ihn bitte selber durchführen. Fällt das Los auf das Geschlecht in der Minderheit, erhöht sich dadurch die Zahl der Sitze, mit denen es im Betriebsrat vertreten sein muss, um eins.';
								++sitze;
				  			}
				  			else
				  			{
								++sitz_mann;
								++sitz_frau;
								++m;
								++f;
								++sitze;
								++sitze;
				  			}
						}
			  		}
				}
			}
			if (maenner > frauen)
			{
				if (sitz_frau == 1)
				{
			  		sitz_ausgabe = 'eine Frau'
			  		sitz_frau = ' muss mindestens';
				}
				else
				{
			  		if (sitz_frau > 1)
			  		{
				  		sitz_ausgabe = ''+ sitz_frau + ' Frauen'
				  		sitz_frau = ' müssen mindestens';
			  		}
			  		else
			  		{
			  		sitz_ausgabe = 'keine Frau'
			  		sitz_frau = ' muss';
			  		}
				}
				sitz_ausgabe_pre = 'In dem zu wählenden Betriebsrat' + sitz_frau
				sitz_ausgabe_post = 'vertreten sein.\r\n' + zusatz;
			}
			else
			{
				if (maenner < frauen)
				{
			  		if (sitz_mann == 1)
			  		{
				  		sitz_ausgabe = 'ein Mann'
				  		sitz_mann = ' muss mindestens';
			  		}
			  		else
			  		{
						if (sitz_mann > 1)
						{
					  		sitz_ausgabe = ''+ sitz_mann + ' Männer'
					  		sitz_mann = ' müssen mindestens';
						}
						else
						{
				  			sitz_ausgabe = 'kein Mann';
					  		sitz_mann = ' muss';
						}
			  		}
					sitz_ausgabe_pre = 'In dem zu wählenden Betriebsrat' + sitz_mann
					sitz_ausgabe_post = 'vertreten sein.\r\n' + zusatz;
				}
			}
			if (br <= 1)
			{
				sitz_ausgabe_pre = 'Bei einer Person im Betriebsrat gibt es keine Geschlechterquote.';
				sitz_ausgabe='';
				sitz_ausgabe_post='';
			}
			return new Array(sitz_ausgabe_pre,sitz_ausgabe,sitz_ausgabe_post)
      }

	function ostersonntag(jahr)
	{
		//Nach Carl Friedrich Gauß. Gültigkeitsbereich: 1583 - 8702
		var a;
		var b;
		var c;
		var d;
		var e;
		var f;

		a = jahr % 19;
		b = (jahr - (jahr % 100)) / 100;
		c = (8 * b + 13 - ((8 * b + 13) % 25)) / 25 - 2;
		d = b - (jahr - (jahr % 400)) / 400 - 2;
		e = (19 * (jahr % 19) + ((15 - c + d) % 30)) % 30;
		if (e==28)
		{
			if (a>10)
			{
				e=27;
			}
		}
		else if (e==29)
		{
			e=28;
		};
		f = (d + 6 * e + 2 * (jahr % 4) + 4 * (jahr % 7) +6 ) % 7
		return new Date(jahr, 2, e + f + 22);
	}

	function feiertagsdatum(feiertag,jahr)
	{
		var ostern = ostersonntag(jahr);
		switch(feiertag)
		{
			case ftNeujahr:
			{
				return new Date(jahr,0,1);
				break;
			}
			case ftErscheinungsfest:
			{
				return new Date(jahr,0,6);
				break;
			}
			case ftKarfreitag:
			{
				return new Date(ostern.getFullYear(),ostern.getMonth(),ostern.getDate()-2);
				break;
			}
			case ftOstersonntag:
			{
				return ostern;
				break;
			}
			case ftOstermontag:
			{
				return new Date(ostern.getFullYear(),ostern.getMonth(),ostern.getDate()+1);
				break;
			}
			case ftMaifeiertag:
			{
				return new Date(jahr,4,1);
				break;
			}
			case ftChristiHimmelfahrt:
			{
				return new Date(ostern.getFullYear(),ostern.getMonth(),ostern.getDate()+39);
				break;
			}
			case ftPfingstmontag:
			{
				return new Date(ostern.getFullYear(),ostern.getMonth(),ostern.getDate()+50);
				break;
			}
			case ftFronleichnam:
			{
				return new Date(ostern.getFullYear(),ostern.getMonth(),ostern.getDate()+60);
				break;
			}
			case ftFriedensfest:
			{
				return new Date(jahr,7,8);
				break;
			}
			case ftMariaeHimmelfahrt:
			{
				return new Date(jahr,7,15);
				break;
			}
			case ftTagDerEinheit:
			{
				return new Date(jahr,9,3);
				break;
			}
			case ftReformationstag:
			{
				return new Date(jahr,9,31);
				break;
			}
			case ftAllerheiligen:
			{
				return new Date(jahr,10,1);
				break;
			}
			case ftBussUndBettag:
			{
				return new Date(jahr,11,25-CorrectSunday((new Date(jahr,11,25)).getDay())-32);
				break;
			}
			case ftWeihnachtsfeiertag1:
			{
				return new Date(jahr,11,25);
				break;
			}
			case ftWeihnachtsfeiertag2:
			{
				return new Date(jahr,11,26);
				break;
			}

		};
		return "na";
	}

	function CorrectSunday(w)
	{
		if (w<1)
		{
			return w+7;
		}
		else
		{
			return w;
		}
	}

	function IstFeiertagIn(feiertag, Bundesland)
	{
		switch(feiertag)
		{
			case ftNeujahr:
			case ftKarfreitag:
			case ftOstersonntag:
			case ftOstermontag:
			case ftMaifeiertag:
			case ftChristiHimmelfahrt:
			case ftPfingstmontag:
			case ftTagDerEinheit:
			case ftWeihnachtsfeiertag1:
			case ftWeihnachtsfeiertag2:
			{
				return true;
				break;
			}
		}

		if (Bundesland==0)
		{
			return false;
		}

		switch(feiertag)
		{
			case ftErscheinungsfest:
			{
				return (Bundesland & (blBadenWuerttemberg | blBayern | blBayernKat | blBayernAug | blSachsenAnhalt) ) == Bundesland;
				break;
			}
			case ftFronleichnam:
			{
				return (Bundesland & (blBadenWuerttemberg | blBayern | blBayernKat | blBayernAug | blHessen | blNordrheinWestfalen | blRheinlandPfalz | blSaarland | blThueringenKat | blSachsenFron) ) == Bundesland;
				break;
			}
			case ftMariaeHimmelfahrt:
			{
				return (Bundesland & (blSaarland | blBayernKat | blBayernAug)) == Bundesland;
				break;
			}
			case ftReformationstag:
			{
				return (Bundesland & (blBrandenburg | blMecklenburgVorpommern | blSachsen)) == Bundesland;
				break;
			}
			case ftAllerheiligen:
			{
				return (Bundesland & (blBadenWuerttemberg | blBayern | blBayernKat | blBayernAug | blNordrheinWestfalen | blRheinlandPfalz | blSaarland)) == Bundesland;
				break;
			}
			case ftBussUndBettag:
			{
				return (Bundesland & (blSachsen | blSachsenFron) ) == Bundesland;
				break;
			}
			case ftFriedensfest:
			{
				return (Bundesland & (blBayernAug) ) == Bundesland;
				break;
			}
		}
	}

	function DatumIstFeiertagIn(Datum, Bundesland)
	{
		for (var i=1;i<=17;i++)
		{
			if ((Datum.valueOf()==feiertagsdatum(i,Datum.getFullYear()).valueOf())&&IstFeiertagIn(i, parseInt(Bundesland)))
			{
				return true;
			}
		}
		return false;
	}

	function istWochenende(Datum)
	{
		if ((Datum.getDay()==0)||(Datum.getDay()==6))
		{
			return true;
		}
		else
		{
			return false;
		}
	}

	function getdate(contents)
	{
		var trimcontents;
		var tmp;
		var out;

		trimcontents=contents.replace(/ /g,"");
		if (trimcontents.split("-").length==3)
		{
			trimcontents=trimcontents.replace(/-/g,"/");
		};
		if (trimcontents.indexOf(".")>=0)
		{
			trimcontents=trimcontents.split(".")
		}
		else
		{
			trimcontents=trimcontents.split("/")
			tmp=trimcontents[0];
			trimcontents[0]=trimcontents[1];
			trimcontents[1]=tmp;
		};

		trimcontents[0]=myParseInt(trimcontents[0]);
		trimcontents[1]=myParseInt(trimcontents[1]);
		trimcontents[2]=myParseInt(trimcontents[2]);

		if (trimcontents[2]<30)
		{
			trimcontents[2]=trimcontents[2]+2000;
		};
		if (trimcontents[2]<100)
		{
			trimcontents[2]=trimcontents[2]+1900;
		};

		out=new Date(trimcontents[2],trimcontents[1]-1,trimcontents[0])

		return out;
	};

	function testdate(contents)
	{
		var i;
		var test;
		var trimcontents;
		var tmp;
		var daysinmonth;

		test='1234567890./';
		trimcontents=contents.replace(/ /g,"");
		daysinmonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

		if (trimcontents!='')
		{

			if (trimcontents.split("-").length==3)
			{
				trimcontents=trimcontents.replace(/-/g,"/");
			};

			for (i=0;i<trimcontents.length;i++)
			{
				if (test.indexOf(trimcontents.substring(i,i+1))<0)
				{
					return false;
				};
			};

			if (trimcontents.indexOf(".")>=0)
			{
				trimcontents=trimcontents.split(".")
				if (trimcontents.length!=3)
				{
					return false;
				};
			}
			else
			{
				trimcontents=trimcontents.split("/")
				if (trimcontents.length!=3)
				{
					return false;
				};
				tmp=trimcontents[0];
				trimcontents[0]=trimcontents[1];
				trimcontents[1]=tmp;
			};
			trimcontents[0]=myParseInt(trimcontents[0]);
			if (isNaN(trimcontents[0]))
			{
				return false;
			};
			trimcontents[1]=myParseInt(trimcontents[1]);
			if (isNaN(trimcontents[1]))
			{
				return false;
			};
			trimcontents[2]=myParseInt(trimcontents[2]);
			if (isNaN(trimcontents[2]))
			{
				return false;
			};

			if ((trimcontents[0]<1)||(trimcontents[1]<1)||(trimcontents[1]>12)||(trimcontents[2]<-9999)||(trimcontents[2]>9999))
			{
				return false;
			};

			if ((trimcontents[2]%4)==0)
			{
				daysinmonth[1]++;
			};
			if ((trimcontents[2]%100)==0)
			{
				daysinmonth[1]--;
			};
			if ((trimcontents[2]%400)==0)
			{
				daysinmonth[1]++;
			};

			if (trimcontents[0]>daysinmonth[trimcontents[1]-1])
			{
				return false;
			};

		};
		return true;
	};

	function testempty(contents)
	{
		if (trim(contents)=='')
		{
			return true;
		}
		else
		{
			return false;
		};
	};

	function trim(st)
	{
		var test;
		var tmp;
		tmp=st;

		test=" "+String.fromCharCode(9)+String.fromCharCode(10)+String.fromCharCode(13);
		while((tmp!='')&&(test.indexOf(tmp.substring(0,1))>=0))
		{
			tmp=tmp.substring(1,tmp.length)
		};
		while((tmp!='')&&(test.indexOf(tmp.substring(tmp.length-1,tmp.length))>=0))
		{
			tmp=tmp.substring(0,tmp.length-1)
		};

		return tmp;
	};

	function myParseInt(x)
	{
		var y;
		y=x;
		if (y.length>1)
		{
			while ((y.length>1) && (y.substr(0,1)=="0") && (y.substr(1,1)!="."))
			{
				y=y.substr(1)
			}
			return parseInt(y)
		}
		else
		{
			return parseInt(x)
		};
	}

	function formatDate(datum)
	{
		var out='';
		if (datum.getDate()<10)
		{
			out+="0"
		}
		out+=''+datum.getDate()+"."
		if (datum.getMonth()+1<10)
		{
			out+="0"
		}
		out+=''+(datum.getMonth()+1)+"."+datum.getFullYear()
		return out;
	}

