var mfDatepicker = function (id,formData) {
    
    /*
        inherit from base-class
    */
    var baseClass = new mariaForm_fieldBase(id,formData);
    
    for (var i in baseClass) {
        if (typeof(baseClass[i]) == "function") {
            this[i] = baseClass[i];
        }
    }
    
    var disabledDates = [];
    for (var i=0;i<formData.fields[id].disabledDates.length;i++) {
        disabledDates[disabledDates.length] = new Date(formData.fields[id].disabledDates[i]*1000);
    }
    
    var dpConf = {
        useMode:2,
        target:id,
        dateFormat:"%d.%m.%Y",
        multiselect:formData.fields[id].multiValue,
        targetButton: null,
        imgPath: '',
        language: formData.fields[id].lang,
       disabledDates: [],
        yearsRange:[formData.fields[id].yearsRangeStart,formData.fields[id].yearsRangeEnd]
        /*selectedDate:{                This is an example of what the full configuration offers.
            day:5,                      For full documentation about these settings please see the full version of the code.
            month:9,
            year:2006
        },
        limitToToday:false,
        cellColorScheme:"beige",
        dateFormat:"%m-%d-%Y",
        weekStartDay:1*/
    };
    
    
    var dp = new JsDatePick(dpConf);    
    
    this.setValue = function (newVal) {
        dp.closeCalendar();
        baseClass.setValue(newVal);
    }
    
    /*
        setter for the disabledDates property
    */
    this.setDisabledDates = function (newVal) {
        var disabledDates = [];
        for (var i=0;i<newVal.length;i++) {
            disabledDates[disabledDates.length] = new Date(newVal[i]*1000);
        }
        dp.setDisabledDates(disabledDates);
    }
    
    this.setDisabledDates(formData.fields[id].disabledDates);
    
    this.setDefaultValue = function (newVal) {
        
        var tmp = formData.fields[id].defaultValue.split('.');
        var oldDefaultVal = new Date(tmp[2],tmp[1]-1,tmp[0]);
        var tmp = this.getValue().split('.');
        var currentValue = new Date(tmp[2],tmp[1]-1,tmp[0]);
        
        if (oldDefaultVal.getTime() == currentValue.getTime()) {
            this.setValue(newVal);
        }
        formData.fields[id].defaultValue = newVal;
    }
    
}
