function formatInt(i) {
    return (i < 10) ? "0" + i : i;
}

function showCalendar(fieldId, iconId) {
    YAHOO.util.Event.addListener(iconId, "click", createCalendar(fieldId, iconId), null, false);
}

function createCalendar(fieldId, iconId) {
    return function() {
        var calendarContainerName = fieldId + 'calendarContainer';
        var dialog = new YAHOO.widget.Dialog(fieldId + "container", {
            visible:false,
            context:[iconId, "tl", "bl", ["beforeShow"]],
            draggable:false,
            close:true
        });
        dialog.setHeader('Kies een datum');
        dialog.setBody('<div id="' + calendarContainerName + '"></div>');
        dialog.render(document.body);


        var cal = new YAHOO.widget.Calendar(fieldId + "calendar", calendarContainerName, { iframe:false });
        cal.cfg.setProperty("MDY_DAY_POSITION", 1);
        cal.cfg.setProperty("MDY_MONTH_POSITION", 2);
        cal.cfg.setProperty("MDY_YEAR_POSITION", 3);
        cal.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"]); 
        cal.cfg.setProperty("MONTHS_LONG",    ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"]);
        cal.cfg.setProperty("WEEKDAYS_1CHAR", ["Z", "M", "D", "W", "D", "V", "Z"]);
        cal.cfg.setProperty("WEEKDAYS_SHORT", ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"]);
        cal.cfg.setProperty("WEEKDAYS_MEDIUM",["Zon", "Maa", "Din", "Woe", "Don", "Vri", "Zat"]);
        cal.cfg.setProperty("WEEKDAYS_LONG",  ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"]);
        cal.render();



        cal.selectEvent.subscribe(function() {
            if (cal.getSelectedDates().length > 0) {
                var selected = cal.getSelectedDates()[0];
                YAHOO.util.Dom.get(fieldId).value = formatInt(selected.getDate()) + "/" + formatInt(selected.getMonth() + 1) + "/" + selected.getFullYear();
            } else {
                YAHOO.util.Dom.get(fieldId).value = "";
            }
            dialog.hide();
        });

         if (YAHOO.util.Dom.get(fieldId).value) {
            cal.select(YAHOO.util.Dom.get(fieldId).value);
        }
        cal.cfg.setProperty("pagedate", cal.getSelectedDates()[0]);
        cal.render();
        dialog.show();
    }

}
