% !TEX root = ../Main.tex


% Input Validation: Summe
\newcommand{\validateCurrency}{\detokenize{
		var amount = String(event.value ?? "0").replaceAll(".", "").replaceAll(",", ".");
		if (amount && (isNaN(amount) || parseFloat(amount) < 0)) {
				app.alert("Ungueltiger Betrag: " + event.value + ". Bitte geben Sie eine gueltige Zahl ein.");
				event.rc = false;
			} else {
				event.value = parseFloat(amount).toLocaleString("de-DE", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
			}
	}}

\begin{Form}[]
	\paPage{QSM – Allgemeiner Teil}{
	% Abschnitt 1: Antragsteller : entweder Institution oder Person
	% -> aktiviert/deaktiviert zugehörige Felder (über radio buttons) mit JavaScript
	\FormSection{Antragsteller}{%
		% Radio buttons : horizontal oben
		\begin{tabular}{@{}p{0.3\textwidth}p{0.35\textwidth}p{0.35\textwidth}@{}}
			\textbf{Art des Antragstellers} & \raisebox{-1pt}{\ChoiceMenu[
					radio,
					name=pa-applicant-type,
					width=1em,
					height=1em,
					radiosymbol=\ding{108}
			]{}{=person}} Person            & \raisebox{-1pt}{\ChoiceMenu[
					radio,
					name=pa-applicant-type,
					width=1em,
					height=1em,
					radiosymbol=\ding{108}
				]{}{=institution}} Institution
		\end{tabular}\vspace{-1em}
	}

	\FormSection{Institution (sofern vorhanden)}{%
		% Radio buttons : horizontal oben
		\begin{tabular}{@{}p{0.3\textwidth}p{0.35\textwidth}p{0.35\textwidth}@{}}
			\textbf{Art der Institution}  & \multicolumn{2}{p{0.73\textwidth}}{
				\CustomChoiceMenuDefault{pa-institution-type}{}{width=\linewidth,default=-,value=-}{-,Fachschaft=stud-fs,STUPA-Referat=stud-rf,Studentische Hochschulgruppe=stud-hg,Fakultät=faculty,Hochschuleinrichtung=hs-institution}
			}                                                                   \\
			\textbf{Name der Institution} & \multicolumn{2}{p{0.73\textwidth}}{
				\CustomTextFieldDefault{pa-institution}{}{Institution}{width=\linewidth}
			}                                                                   \\
		\end{tabular}
	}

	% Validate: E-Mail-Adresse
	\newcommand{\validateEmail}{\detokenize{
	var email = event.value;
	if (email && !/^[a-zA-Z0-9._\%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/.test(email)) { /*$*/
				app.alert("Ungueltige E-Mail-Adresse: " + email + ". Bitte geben Sie eine gueltige E-Mail-Adresse ein.");
				event.rc = false;
			}
		}}

		% Validate: Telefonnummer
		\newcommand{\validatePhone}{\detokenize{
		var phone = event.value;
		if (phone && !/^\+?[0-9]{1,3}[-\s]?[0-9]{1,4}[-\s]?[0-9]{1,4}[-\s]?[0-9]{1,9}$/.test(phone)) { /*$*/
			app.alert("Ungueltige Telefonnummer: " + phone + ". Bitte geben Sie eine gueltige Telefonnummer ein.");
			event.rc = false;
		}
	}}

	% Abschnitt 2: Ansprechperson
	\FormSection{Ansprechperson}{%
		\begin{tabular}{@{}p{0.3\textwidth}p{0.35\textwidth}p{0.35\textwidth}@{}}
			\textbf{Vorname, Name}  & \CustomTextFieldDefault{pa-first-name}{}{Vorname}{width=\linewidth} & \CustomTextFieldDefault{pa-last-name}{}{Nachname}{width=\linewidth} \\
			\textbf{Fakultät}       & \multicolumn{2}{p{0.73\textwidth}}{
				\CustomChoiceMenuDefault{pa-course}{}{width=\linewidth,default=-}{-,INF,ESB,LS,TEC,TEX,NXT}
			}                                                                                                                                                                   \\
			\textbf{Rolle}          & \multicolumn{2}{p{0.73\textwidth}}{
				\CustomChoiceMenuDefault{pa-role}{}{width=\linewidth,default=-}{-,Student,Professor,Mitarbeiter,ASTA,Referatsleitung,Fachschaftsvorstand}
			}                                                                                                                                                                   \\
			\textbf{E-Mail-Adresse} & \multicolumn{2}{p{0.73\textwidth}}{
				\CustomTextFieldDefault{pa-email}{}{E-Mail-Addresse}{width=\linewidth,validate=\validateEmail}
			}                                                                                                                                                                   \\
			\textbf{Telefonnummer}  & \multicolumn{2}{p{0.73\textwidth}}{
				\CustomTextFieldDefault{pa-phone}{}{Telefonnummer}{width=\linewidth,validate=\validatePhone}
			}                                                                                                                                                                   \\
		\end{tabular}
	}

	% Abschnitt 3: Allgmeine Informationen zum Projekt
	\FormSection{Allgemeine Informationen zum Projekt}{%
		% Validate: Teilnehmerzahl >= 0 und integer
		\newcommand{\validateParticipants}{\detokenize{
				if (isNaN(event.value) || parseInt(event.value) != parseFloat(event.value) || parseInt(event.value) < 0) {
						app.alert("Ungueltige Teilnehmerzahl: " + event.value + ". Bitte geben Sie eine positive ganze Zahl ein.");
						event.rc = false;
					}
			}}

		\begin{tabular}{@{}p{0.3\textwidth}p{0.35\textwidth}p{0.35\textwidth}@{}}
			\textbf{Projektname}                                                                                    & \multicolumn{2}{p{0.73\textwidth}}{
				\CustomTextFieldDefault{pa-project-name}{}{Projektname}{width=\linewidth}
			}                                                                                                                                             \\
			% Sofern zutreffend: Bekannte Anzahl der Teilnehmer
			\multicolumn{2}{p{0.667\textwidth}}{\hspace{-6pt}\textbf{Anzahl der stud. Teilnehmer (sofern bekannt)}} & {
					\CustomTextFieldDefault{pa-participants}{}{Anzahl der Teilnehmer}{width=\linewidth,align=2,default=0,validate=\validateParticipants}
			}                                                                                                                                             \\
			\textbf{Teilnehmende Fakultäten}                                                                        & \multicolumn{2}{p{0.73\textwidth}}{
				%\CustomChoiceMenuDefault{pa-participing-faculties}{}{width=\linewidth,default=-}{-,Hochschulöffentlich=ALL,INF,ESB,LS,TEC,TEX,NXT}
				\raisebox{-1pt}{\CheckBox[
						radio,
						name=pa-participating-faculties-inf,
						width=1em,
						height=1em
					]{}} INF\quad
				\raisebox{-1pt}{\CheckBox[
						radio,
						name=pa-participating-faculties-esb,
						width=1em,
						height=1em
					]{}} ESB\quad
				\raisebox{-1pt}{\CheckBox[
						radio,
						name=pa-participating-faculties-ls,
						width=1em,
						height=1em
					]{}} LS\quad
				\raisebox{-1pt}{\CheckBox[
						radio,
						name=pa-participating-faculties-tec,
						width=1em,
						height=1em
					]{}} TEC\quad
				\raisebox{-1pt}{\CheckBox[
						radio,
						name=pa-participating-faculties-tex,
						width=1em,
						height=1em
					]{}} TEX\quad
				\raisebox{-1pt}{\CheckBox[
						radio,
						name=pa-participating-faculties-nxt,
						width=1em,
						height=1em
					]{}} NXT\quad
				\raisebox{-1pt}{\CheckBox[
						radio,
						name=pa-participating-faculties-open,
						width=1em,
						height=1em
					]{}} Öffentlich
			}                                                                                                                                             \\
		\end{tabular}

		% Input Validation: Date
		\newcommand{\validateStartDate}{\detokenize{
				if (event.value != "JJJJ-MM") {
						var date = new Date(event.value);
						if (date == "Invalid Date") {
								app.alert("Ungueltiges Datum: " + event.value + ". Bitte geben Sie ein gueltiges Datum im Format JJJJ-MM ein.");
								event.rc = false;
							} else {
								event.value = date.toISOString().slice(0, 7);
							}
						if (this.getField("pa-end-date").value != "JJJJ-MM") {
								var endDate = new Date(this.getField("pa-end-date").value);
								if (date > endDate) {
										app.alert("Das Startdatum muss vor dem Enddatum liegen.");
										event.rc = false;
									}
							}
					}
			}}

		% Input Validation: End Date
		\newcommand{\validateEndDate}{\detokenize{
				if (event.value != "JJJJ-MM") {
						var date = new Date(event.value);
						if (date == "Invalid Date") {
								app.alert("Ungueltiges Datum: " + event.value + ". Bitte geben Sie ein gueltiges Datum im Format JJJJ-MM ein.");
								event.rc = false;
							} else {
								event.value = date.toISOString().slice(0, 7);
							}
						if (this.getField("pa-start-date").value != "JJJJ-MM") {
								var startDate = new Date(this.getField("pa-start-date").value);
								if (startDate > date) {
										app.alert("Das Enddatum muss nach dem Startdatum liegen.");
										event.rc = false;
									}
							}
					}
			}}

		\begin{tabular}{@{}p{0.3\textwidth}p{0.35\textwidth}p{0.35\textwidth}@{}}
			\textbf{Antragssumme (insg.)}       &  & \hspace{\fill} \CustomTextFieldDefault{pa-requested-amount-euro-sum}{}{Antragssumme (\euro)}{width=6em,align=2,default={0,00},validate=\validateCurrency}~\euro                                                                                                                                                        \\
			\textbf{Projektzeitraum (von, bis)} &  & \hspace{\fill} \CustomTextFieldDefault{pa-start-date}{}{von}{width=0.4\linewidth,default=JJJJ-MM,align=1,validate=\validateStartDate} – \CustomTextFieldDefault{pa-end-date}{}{bis}{width=0.4\linewidth,default=JJJJ-MM,align=1,validate=\validateEndDate}{\BeginAccSupp{ActualText=}\color{white}~\euro\EndAccSupp{}} \\
		\end{tabular}
	}

	\FormSection{Erfüllte Aufgabe der VS nach §65 des Landeshochschulgesetzes}{
		\vspace{0.5em}
		\begin{minipage}{1.05\textwidth}
			\setstretch{1.0}\color{black}\dinfont
			Welche Erfüllte Aufgabe der VS nach §65 des Landeshochschulgesetzes trifft auf das Projekt am ehesten zu?
			Im Zweifelsfall bitte leer lassen.
			\vspace{1em}
		\end{minipage}

		\CustomChoiceMenuDefault{pa-vsm-financing}{}{width=1.05\textwidth,default=-}{
			{-=-},
			{Hochschulpolitische, fachliche, soziale, wirtschaftliche und kulturelle Belange=lhg-01},
			{Mitwirkung an den Aufgaben der Hochschulen nach den §§ 2 bis 7=lhg-02},
			{Politische Bildung=lhg-03},
			{Förderung der Chancengleichheit und Abbau von Benachteiligungen=lhg-04},
			{Förderung der Integration ausländischer Studierender=lhg-05},
			{Förderung der sportlichen Aktivitäten=lhg-06},
			{Pflege der überregionalen Studierendenbeziehungen=lhg-07}
		}\vspace{-1em}
	}

	% \Submit{Absenden}
	}

	\paPage{VSM – Projektbeschreibung}{
		\FormSection{Projektbeschreibung}{%
			\vspace{0.5em}
			\begin{minipage}{1.05\textwidth}
				\setstretch{1.0}\color{black}\dinfont
				Bitte beschreiben Sie hier das Projekt, die Ziele und die geplanten Maßnahmen.
				\vspace{1em}
			\end{minipage}

			% Textfeld für die Projektbeschreibung
			\TextField[
				name=pa-project-description,
				multiline,
				width=1.055\textwidth,
				height=26\baselineskip,
				bordercolor=black,
				backgroundcolor=white,
				charsize=12pt,
				align=0,
				readonly=\isReadOnlyVariant
			]{}\vspace{-1.5em}
		}
	}

	% Seite für Kostenaufstellung
	\iffalse
		Tabelle mit:
		- Index (hardcoded)
		- Bezeichnung
		- Kosten (Euro)

		Hinweis, dass pro Position ein Beiblatt Vergleichsangebote eingereicht werden muss.
	\fi
	\paPage{VSM – Kostenaufstellung}{
		\FormSection{Kostenaufstellung}{%
			\vspace{0.5em}
			\begin{minipage}{1.05\textwidth}
				\setstretch{1.0}\color{black}\dinfont\small
				Hier bitte alle Kosten im Rahmen des Projektes eintragen. Pro Position ist ein Beiblatt "Vergleichsangebote" anzuhängen.
				\vspace{1em}
			\end{minipage}

			% JS-Code to update cell on blur of any number field
			\newcommand{\updateSum}{\detokenize{
					var total = 0;
					for (var i = 1; i <= 24; i++) {
							var amountField = this.getField("pa-cost-" + i + "-amount-euro");
							if (amountField) {
									var amount = String(amountField.value ?? "0").replaceAll(".", "").replaceAll(",", ".");
									var value = parseFloat(amount) || 0;
									total += value;
									amountField.value = value.toLocaleString("de-DE", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
								}
						}
					this.getField("pa-requested-amount-euro-sum").value = total.toLocaleString("de-DE", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
				}}

			\newcommand{\validateAndUpdateSum}{
				\validateCurrency
				\updateSum
			}

			% Tabelle für die Kostenaufstellung
			\begin{tabular}{@{}p{0.02\textwidth}p{0.82\textwidth}p{0.16\textwidth}@{}}
				% Index
				\textbf{\#}       & \multicolumn{1}{c}{\textbf{Bezeichnung}}                                  & \multicolumn{1}{c}{\textbf{Kosten (\euro)}}                                                                                                  \\
				% Insg. 24 Positionen
				1                 & \CustomTextFieldDefault{pa-cost-1-name}{}{Bezeichnung}{width=\linewidth}  & \CustomTextFieldDefault{pa-cost-1-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum}  \\
				2                 & \CustomTextFieldDefault{pa-cost-2-name}{}{Bezeichnung}{width=\linewidth}  & \CustomTextFieldDefault{pa-cost-2-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum}  \\
				3                 & \CustomTextFieldDefault{pa-cost-3-name}{}{Bezeichnung}{width=\linewidth}  & \CustomTextFieldDefault{pa-cost-3-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum}  \\
				4                 & \CustomTextFieldDefault{pa-cost-4-name}{}{Bezeichnung}{width=\linewidth}  & \CustomTextFieldDefault{pa-cost-4-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum}  \\
				5                 & \CustomTextFieldDefault{pa-cost-5-name}{}{Bezeichnung}{width=\linewidth}  & \CustomTextFieldDefault{pa-cost-5-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum}  \\
				6                 & \CustomTextFieldDefault{pa-cost-6-name}{}{Bezeichnung}{width=\linewidth}  & \CustomTextFieldDefault{pa-cost-6-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum}  \\
				7                 & \CustomTextFieldDefault{pa-cost-7-name}{}{Bezeichnung}{width=\linewidth}  & \CustomTextFieldDefault{pa-cost-7-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum}  \\
				8                 & \CustomTextFieldDefault{pa-cost-8-name}{}{Bezeichnung}{width=\linewidth}  & \CustomTextFieldDefault{pa-cost-8-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum}  \\
				9                 & \CustomTextFieldDefault{pa-cost-9-name}{}{Bezeichnung}{width=\linewidth}  & \CustomTextFieldDefault{pa-cost-9-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum}  \\
				10                & \CustomTextFieldDefault{pa-cost-10-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-10-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				11                & \CustomTextFieldDefault{pa-cost-11-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-11-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				12                & \CustomTextFieldDefault{pa-cost-12-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-12-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				13                & \CustomTextFieldDefault{pa-cost-13-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-13-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				14                & \CustomTextFieldDefault{pa-cost-14-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-14-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				15                & \CustomTextFieldDefault{pa-cost-15-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-15-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				16                & \CustomTextFieldDefault{pa-cost-16-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-16-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				17                & \CustomTextFieldDefault{pa-cost-17-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-17-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				18                & \CustomTextFieldDefault{pa-cost-18-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-18-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				19                & \CustomTextFieldDefault{pa-cost-19-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-19-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				20                & \CustomTextFieldDefault{pa-cost-20-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-20-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				21                & \CustomTextFieldDefault{pa-cost-21-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-21-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				22                & \CustomTextFieldDefault{pa-cost-22-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-22-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				23                & \CustomTextFieldDefault{pa-cost-23-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-23-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				24                & \CustomTextFieldDefault{pa-cost-24-name}{}{Bezeichnung}{width=\linewidth} & \CustomTextFieldDefault{pa-cost-24-amount-euro}{}{Kosten}{width=6em,align=2,default={0,00},onblur=\updateSum,validate=\validateAndUpdateSum} \\
				\textbf{$\Sigma$} &                                                                           & \CustomTextFieldDefault{pa-requested-amount-euro-sum}{}{Summe}{width=6em,align=2,default={0,00},validate=\validateCurrency}                  \\
			\end{tabular}
		}
	}

	\paPage{VSM – Checklisten}{
		\FormSection{Checkliste: VS-Mittel}{
			\vspace{0.5em}
			\begin{minipage}{1.05\textwidth}
				\setstretch{1.0}\color{black}\dinfont
				Durch VS-Mittel finanzierte Projekte müssen die Anforderungen des §65 f. des Landeshochschulgesetzes (LHG) erfüllen.
				Dieses Beiblatt dient der Sicherstellung, dass die Anforderungen erfüllt werden.
				\vspace{1em}
			\end{minipage}

			%% Tabelle; Checkboxen auf rechter Seite, Text links
			\begin{tabular}{@{}p{\textwidth}p{0.05\textwidth}@{}}
				% Die Maßnahme erfüllt die Aufgaben der VS gem. §65 Abs. 2 LHG
				\textbf{Die Maßnahme erfüllt die Aufgaben der VS gem. §65 Abs. 2 LHG}  & \raisebox{-1pt}{\CheckBox[
						name=pa-vsm-aufgaben,
						width=1em,
						height=1em
				]{}}                                                                                                \\
				% Es findet keine individuelle Förderung von Studierenden statt
				\textbf{Es findet keine individuelle Förderung von Studierenden statt} & \raisebox{-1pt}{\CheckBox[
						name=pa-vsm-individuell,
						width=1em,
						height=1em
				]{}}                                                                                                \\
			\end{tabular}
		}

		\FormSection{Checkliste: Anhänge}{
			\vspace{0.5em}
			\begin{minipage}{1.05\textwidth}
				\setstretch{1.0}\color{black}\dinfont
				Hier bitte alle mit dem Dokument eingereichten Dokumente ankreuzen:
				\vspace{1em}
			\end{minipage}

			\begin{tabular}{@{}p{\textwidth}p{0.05\textwidth}@{}}
				\textbf{Beiblatt Vergleichsangebote}                        & \raisebox{-1pt}{\CheckBox[
						name=pa-anh-vergleichsangebote,
						width=1em,
						height=1em
				]{}}                                                                                     \\
				Jeweils ein Formular pro Position – siehe Kostenaufstellung &                            \\
			\end{tabular}
		}

		% \Submit{Absenden}
	}
\end{Form}
