var mfAutocompletion = 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];
        }
    }
    
    /*
        field-specific..
    */
    if (formData.fields[id].dataSource == 'local') {
        $("#mariaForm"+id+"_userInput").autocomplete(formData.fields[id].values).result(function(e, item) {
            $("#"+id).val("<p>selected " + item.value + "</p>");
        });
    } else {

        var apiClient = new restlikeApi(formData.className,formData.formServer,formData.connectionErrMsg);
        
        $("#mariaForm_"+id+"_userInput").autocomplete(apiClient.getUrl(), {
            dataType: apiClient.getDatatype(),
            extraParams: objectMerge(apiClient.getParams('getValues'),{'fieldId':id}),
            parse: function (data) {
                if (!data.isError) {
                    var parsed = [];
                    if (typeof(data.data.length) != 'undefined') {
                        for (var i=0;i<data.data.length;i++) {
                            parsed[parsed.length] = {
                                data: { text:data.data[i], value:data.data[i]},
                                value: data.data[i],
                                result: data.data[i]
                            };
                        }
                    } else {
                        for (var i in data.data) {
                            parsed[parsed.length] = {
                                data: { text:data.data[i], value:i},
                                value: i,
                                result: data.data[i]
                            };
                        }
                    }
                    return parsed;
                }
                log("autocompletion: error with the request");
            },
            formatItem: function(item,val) {
                return item.text;
            }
        }).result(function(e, item) {
            $("#"+id).val(item.value);
        });
    
    }
    
}
