function getNumber(number) {
        if (number < 10) {
                return "0"+number;
        } else {
                return number;
        }
}

//parses a date string dd-mm-yyyy into a date object
function parseDate (dateString) {
	s = new String (dateString);
	if (s.length != 10) {
		//window.alert ("length");
		return new Date ();
	}
	y = s.substr (6);
	if (!_isInteger (y)) {
		//window.alert ("year");
		return new Date ();
	}
	m = s.substr (3,2);
	if ((!_isInteger(m)) || (m<1) || (m>12)) {
		//window.alert ("month");
		return new Date ();
	}
	d = s.substr (0,2);
	if ((!_isInteger(d)) || (d<1) || (d>31)) {
		//window.alert ("day");
		return new Date ();
	}
	//window.alert (y+"-"+(m-1)+"-"+d);
	ret = new Date ();
	ret.setFullYear (y,m-1,d);
	return ret;
}

//TODO: check if reusableDayCalendar.(monthNames, monthAbbreviations, dayHeaders, weekHeader, todayText)
//can be used to provide a localized calendar...
//warn: div display is nicer, but has issues with the select box in IE 
var reusableDayCalendar = new CalendarPopup("calendarDisplayDiv");
//var reusableDayCalendar = new CalendarPopup();
reusableDayCalendar.setDisplayType("date");
reusableDayCalendar.setReturnFunction("reusableDayCalendarReturn");
reusableDayCalendar.showYearNavigation();
reusableDayCalendar.setWeekStartDay (1);
reusableDayCalendar.currentDate = null;
reusableDayCalendarTargetId = null;

function showReusableDayCalendar (anchorId, targetId) {
	var initialDay = new Date ();
	if ((document.getElementById (targetId) != null) && 
		(document.getElementById (targetId).value != null) &&
		(document.getElementById (targetId).value != '')) {
			initialDay = parseDate (document.getElementById (targetId).value);
		}
	reusableDayCalendar.currentDate = initialDay;
	
	reusableDayCalendarTargetId = targetId;
	reusableDayCalendar.showCalendar (anchorId);
}

function reusableDayCalendarReturn(y,m,d) {
 	if ((reusableDayCalendarTargetId != null) && (document.getElementById (reusableDayCalendarTargetId) != null)) {
	  	document.getElementById (reusableDayCalendarTargetId).value = getNumber(d) + "-" +  getNumber(m) + "-" + y;
	}else {
		window.alert ("Internal script error : reusableDayCalendar is in a inconsistent state. Please report this issue!")
	}

	var newDate = new Date ();
	newDate.setFullYear (y, m-1, d);
	reusableDayCalendar.currentDate = newDate;
}


