function getSelectSelectedValue (p_sObj, p_nLength) {
	var l_oObj = document.getElementById(p_sObj);
	if (l_oObj) {
		if (l_oObj.options) {
			for (var i = 0; i < l_oObj.options.length; i++) {
				if (l_oObj.options[i].selected) {
					var l_sValue = l_oObj.value;
					if (l_sValue == '') {
						l_sValue = l_oObj.options[i].innerHTML;
					}
					l_sValue = parseInt(l_sValue, 10);
					if (isNaN(l_sValue)) {
						l_sValue = '0';
					} else {
						l_sValue = ''+l_sValue;
					}
					if (l_sValue.length == p_nLength) {
						return l_sValue;
					}
					if (l_sValue.length < p_nLength) {
						l_sValue = '000000000'+l_sValue;
					}
					if (l_sValue.length > p_nLength) {
						return l_sValue.substr(l_sValue.length-p_nLength, p_nLength);
					}

				}
			}
		}
	}
	return "";
}

function setSelectSelectedValue (p_sObj, p_sValue) {
	var l_oObj = document.getElementById(p_sObj);
	if (l_oObj) {
		if (l_oObj.options) {
			for (var i = 0; i < l_oObj.options.length; i++) {
				if (l_oObj.options[i].value == p_sValue) {
					l_oObj.options[i].selected = true;
				} else {
					l_oObj.options[i].selected = false;
				}
			}
		}
	}
	return "";
}

function getcalDate(p_oObj) {
	var l_sName = p_oObj.name.substr(0, p_oObj.name.length-3);

    var l_sDay = getSelectSelectedValue (l_sName+'[0]', 2);
    var l_sMonth = getSelectSelectedValue (l_sName+'[1]', 2);
    var l_sYear = getSelectSelectedValue (l_sName+'[2]', 4);

	l_oErg = document.getElementById(l_sName+'[all]');
	if (l_oErg) {
		l_oErg.value = l_sYear+"-"+l_sMonth+'-'+l_sDay;
	}
}

function setcalDate(p_oCal) {
	var l_sName = p_oCal.params.inputField.id.substr(0, p_oCal.params.inputField.id.length-5);

    setSelectSelectedValue (l_sName+'[0]', p_oCal.date.getDate());
    setSelectSelectedValue (l_sName+'[1]', p_oCal.date.getMonth()+1);
    setSelectSelectedValue (l_sName+'[2]', p_oCal.date.getFullYear());
}

function caldateChanged(cal) {
	var p = cal.params;
	var update = (cal.dateClicked || p.electric);
	if (update && p.flat) {
		if (typeof p.flatCallback == "function")
			p.flatCallback(cal);
		else
			alert("No flatCallback given -- doing nothing.");
		return false;
	}
	if (update && p.inputField) {
		p.inputField.value = cal.date.print(p.ifFormat);
		if (typeof p.inputField.onchange == "function")
			p.inputField.onchange();

		// Rückschreiben der Werte
		setcalDate(cal)
	}
	if (update && p.displayArea)
		p.displayArea.innerHTML = cal.date.print(p.daFormat);
	if (update && p.singleClick && cal.dateClicked)
		cal.callCloseHandler();
	if (update && typeof p.onUpdate == "function")
		p.onUpdate(cal);
}
