

var SelectWidget = {

    update_with: function (extra_value, selected_value) {

        /* selected_value is optional. If given, it will be the
           value of the select box when all the items are loaded
         */

        var dn = this.domNode();
        dn.form[dn.name+'_data'].value = extra_value;

        this.add_spinner();
        var t = this;

        dn.disabled = true;
        RemixWidgets.call_ajax(this.form_name, this.widget_name, 'update',
                function (result) {
                    dn.disabled = false;

                    /* Add the items received from the ajax response */
                    var lst = eval(result);
                    dn.options.length = 0;
                    for (var i = 0; i < lst.length; i++) {
                        var j = lst[i];
                        dn.options[dn.options.length] = new Option(j.label, j.value);
                    }

                    t.remove_spinner();

                    if (selected_value)
                        dn.value = selected_value;

                    if (dn.onchange)
                        dn.onchange();
                });
    },

    get_current_text: function() {
        var dom = this.domNode();
        return dom.options[dom.selectedIndex].text;
    }
};
