/** Stammverzeichnis der gesamten Applikation */
var APPLICATION_ROOT = "http://" + location.host + "/" + location.pathname.split("/")[1];
/** Infofenster */
var INFO_WINDOW = null;
/** Array mit den möglichen Bezeichern der Zulassungsoptionen */
var ZUL_OPTIONEN = new Array("WC", "HF", "HF_NR", "QU", "QU_NR", "NR", "NR_NR");
/** Array mit den Bezeichern der Termindaten */
var TERMIN_DATEN = new Array("Tag", "Monat", "Jahr", "Stunde", "Minute");

/**
 *
 * Öffnet ein Fenster mit spezifischen Informationen,
 * wobei nur eine Instanz des Fensters erlaubt ist
 *
 * @param {String} query übergebene Parameter
 */
function showInfo(query)
{
	var MY_URL = APPLICATION_ROOT + "/common/showInfo.jsp" + query;

	if (INFO_WINDOW == null || INFO_WINDOW.closed)
		INFO_WINDOW = open(MY_URL, "", "left="+(screen.availWidth-420)+",top=0,width=400,height=400,scrollbars=no");
	else {
		// Infofenster-spezifische History zur�cksetzen
		INFO_WINDOW.name          = "";
		INFO_WINDOW.location.href = MY_URL;
	}

	INFO_WINDOW.focus();
}

/**
 * Erzwingt, dass immer nur eine Checkbox für
 * einen Status1 aktiviert sein kann
 *
 * @param {Object} elm auslösende Checkbox
 */
function checkStatus1(elm)
{
	if (elm.checked) {
		var FORM	= document.forms[0];
		var ID		= elm.id.slice(2);
		var NAMES	= new Array("HF", "QU", "NR");

		for (var i = 0, ii = NAMES.length; i < ii; i++)
			if ((NAMES[i]+ID) != elm.id)
				document.getElementById(NAMES[i]+ID).checked = false;
	}
}

/**
 * Kopiert die Zulassungsoptionen aus der Vorlage
 * in die Felder mit der übergebenen ID
 *
 * @param {String} id ID
 */
function copyZulassungsvorlage(id)
{
	var vorlage, ziel;

	for (var i = 0, ii = ZUL_OPTIONEN.length; i < ii; i++) {
		vorlage	= document.getElementById("Vorlage_"+ZUL_OPTIONEN[i]),
		ziel	= document.getElementById(ZUL_OPTIONEN[i]+"["+id+"]");

		if (vorlage && ziel) {
			if (vorlage.type == "checkbox")
				ziel.checked = vorlage.checked;
			else if (vorlage.type == "text")
				ziel.value = vorlage.value;
		}
	}
}

/**
 * Kopiert die Termindaten aus der Vorlage
 * in die Felder mit der übergebenen ID
 *
 * @param {String} id ID
 */
function copyTerminvorlage(id)
{
	for (var i = 0, ii = TERMIN_DATEN.length; i < ii; i++)
		document.getElementById(TERMIN_DATEN[i]+"["+id+"]").value = document.getElementById("Vorlage_"+TERMIN_DATEN[i]).value;
}

/**
 * Überprüft die Eingabe einer Ranglistenposition
 *
 * @param {Object} elm auslösendes Eingabeelement
 */
function checkRanglistenPlatz(elm)
{
	var val = elm.value;
	if (val.length > 0) {
		// Großschreibung erzwingen
		val = val.replace(/a/, "A");
		val = val.replace(/b/, "B");
		val = val.replace(/d/, "D");
		val = val.replace(/n/, "N");
		elm.value = val;

		// Gültigkeit des Wertes überprüfen
	 	if (!REGEXP_RL.test(val)) {
			alert(unescape("Ung%FCltiger Wert f%FCr eine Ranglistenposition!"));
			elm.value = "";
	 	}
	}
}

/**
 * Aktiviert den Radiobutton "KontaktTyp = individuell"
 */
function checkKontaktIndividuell()
{
	document.forms[0].KontaktTyp[1].checked = true;
}

/**
 * Setzt für alle die Option "HF"
 */
function alleZulassen()
{
	var inputs = document.getElementsByTagName("input");

	for (var i = 0, ii = inputs.length; i < ii; i++) {
		var elm = inputs[i];

		if (elm.id.slice(0, 3) == "HF[")
			elm.checked = true;
	}
}

/**
 * Setzt für alle die Terminvorlage
 */
function alleTerminSetzen()
{
	var datumsfeld, elm, i, j;
	var inputs = document.getElementsByTagName("input");

	for (i = 0, ii = TERMIN_DATEN.length; i < ii; i++) {
		datumsfeld = TERMIN_DATEN[i];

		for (j = 0, jj = inputs.length; j < jj; j++) {
			elm = inputs[j];

			if (elm.id.slice(0, datumsfeld.length+1) == datumsfeld+"[")
				elm.value = document.getElementById("Vorlage_"+datumsfeld).value;
		}
	}
}
