/**
 * Testet des eingegebene Datum
 *
 * @param {Object} elm auslösendes HTML-Element
 * @param {Boolean} submit Formular übermitteln
 */
function checkDate(elm, submit)
{
	/** Referenz auf das Formular */
	var form = document.forms[0];
	/** das heutige Datum */
	var heute = new Date();
	/** Tag des Beginndatums (zum Gültigkeitscheck) */
	var von_tag = getSelectedValue("tag_von");
	/** Tag des Enddatums (zum Gültigkeitscheck) */
	var bis_tag = getSelectedValue("tag_bis");

	/** Beginndatum */
	var von = new Date(
		getSelectedValue("jahr_von"),
		getSelectedValue("monat_von") - 1,
		von_tag
	);

	/** Enddatum */
	var bis = new Date(
		getSelectedValue("jahr_bis"),
		getSelectedValue("monat_bis") - 1,
		bis_tag
	);

	// Beginn kalendarisch korrigieren
	while (von.getDate() != von_tag) {
		von = new Date(
			getSelectedValue("jahr_von"),
			getSelectedValue("monat_von") - 1,
			--von_tag
		);
		form.tag_von.selectedIndex = form.tag_von.selectedIndex - 1;
	}

	// Ende kalendarisch korrigieren
	while (bis.getDate() != bis_tag) {
		bis = new Date(
			getSelectedValue("jahr_bis"),
			getSelectedValue("monat_bis") - 1,
			--bis_tag
		);
		form.tag_bis.selectedIndex = form.tag_bis.selectedIndex - 1;
	}

	// wenn Beginn vor heute, Beginn = heute
	if (von.beforeByDate(heute)) {
		setSelectedValue("tag_von", heute.getDate());
		setSelectedValue("monat_von", heute.getMonth() + 1)
		setSelectedValue("jahr_von", heute.getYear())
	}

	// wenn Ende vor heute, Ende = heute
	if (von.beforeByDate(heute)) {
		setSelectedValue("tag_bis", heute.getDate());
		setSelectedValue("monat_bis", heute.getMonth() + 1)
		setSelectedValue("jahr_bis", heute.getYear())
	}

	// wenn Beginn vor Ende, Ende auf Beginn setzen
	/*if (bis.beforeByDate(von)) {
		//alert(von.formatDate() + " - " + bis.formatDate());
		form.tag_bis.selectedIndex		= form.tag_von.selectedIndex;
		form.monat_bis.selectedIndex	= form.monat_von.selectedIndex;
		form.jahr_bis.selectedIndex		= form.jahr_von.selectedIndex;
	}*/

	if (submit) {
		document.forms[0].submit();

		/*
		var query = location.search;
		//alert(query);

		if (von.equalByDate(von_default)) {
			//alert("Beginndatum entfernen");
			query = query.replace(/\&tag_von=\d+/, "");
			query = query.replace(/\&monat_von=\d+/, "");
			query = query.replace(/\&jahr_von=\d+/, "");
		}
		else if (/tag_von/.test(query)) {
			//alert("Beginndatum ersetzen");
			query = query.replace(/tag_von=\d+/, "tag_von=" + von.getDate());
			query = query.replace(/monat_von=\d+/, "monat_von=" + von.getRealMonth());
			query = query.replace(/jahr_von=\d+/, "jahr_von=" + von.getFullYear());
		}
		else {
			//alert("Beginndatum anhängen");
			query += ("&tag_von=" + von.getDate() + "&monat_von=" + von.getRealMonth() + "&jahr_von=" + von.getFullYear());
		}

		if (bis.equalByDate(bis_default)) {
			//alert("Enddatum entfernen");
			query = query.replace(/\&tag_bis=\d+/, "");
			query = query.replace(/\&monat_bis=\d+/, "");
			query = query.replace(/\&jahr_bis=\d+/, "");
		}
		else if (/tag_bis/.test(query)) {
			//alert("Enddatum ersetzen");
			query = query.replace(/tag_bis=\d+/, "tag_bis=" + bis.getDate());
			query = query.replace(/monat_bis=\d+/, "monat_bis=" + bis.getRealMonth());
			query = query.replace(/jahr_bis=\d+/, "jahr_bis=" + bis.getFullYear());
		}
		else {
			//alert("Enddatum anhängen");
			query += ("&tag_bis=" + bis.getDate() + "&monat_bis=" + bis.getRealMonth() + "&jahr_bis=" + bis.getFullYear());
		}

		//alert(query);
		location.href = location.pathname + query;
		*/
	}
}

/**
 *
 */
function getSelectedValue(name)
{
	var elm = document.forms[0].elements[name];
	return parseInt(elm[elm.selectedIndex].value);
}

/**
 *
 */
function setSelectedValue(name, val)
{
	var elm = document.forms[0].elements[name];
	for (var i = 0, ii = elm.options.length; i < ii; i++) {
		if (elm.options[i].value == val) {
			elm.selectedIndex = i;
			break;
		}
	}
}

function filter(rubrik)
{
	document.forms[0].rubrik.value = rubrik;
	document.forms[0].submit();
}
