<commit_before># jQuery UI MultiSelect Widget

MultiSelect progessively enhances an ordinary multiple select control into elegant drop down list of checkboxes, stylable with ThemeRoller.  

![Example](http://www.erichynds.com/examples/jquery-multiselect/screenshot-widget.gif)
<commit_msg>documenting the differences between the mainstream/vanilla multiselect and this clone.<commit_after># jQuery UI MultiSelect Widget

MultiSelect progessively enhances an ordinary multiple select control into elegant drop down list of checkboxes, stylable with ThemeRoller.  

![Example](http://www.erichynds.com/examples/jquery-multiselect/screenshot-widget.gif)

## Particulars of this clone

This clone includes a few additions and fixes from other people:

- options: 

  + `menuWidth`: (number) when specified, you can set the menu's outerWidth to this fixed value. 

  + both `noneSelectedText` and `selectedText` options can be either strings or functions producing strings.
    The call to `noneSelectedText` will set the function's `this` to the <select> element.
    The call to `selectedText` will do likewise and pass these parameters as function arguments:

  + `selectedListSeparator`: (default: `', '`) can be set to any string which will be used as the separator when multiple selected values are joined to produce the selection result.

- each &lt;option> 'title' is derived from its `.innerText` rather than the `.innerHTML`.

- &lt;option>'s which have a `data-image` attribute will be rendered with an image (icon) preceding their description, where the image `src` attribute is set to the `data-image` attribute value. Each &lt;img> will have the `data-image` class.

    &lt;img class="data-image" src="{the &lt;option> data-image attribute value}" />

- the event `buttonvaluechanged` is fired whenever the `update()` method was invoked

- the `input[type="checkbox"]`, `input[type="radio"]` and `click.multiselect` events delegates now can specify an 'extraParameters' value, which is passed on to the 'click' event when fired.
  That event would previously pass an object with these fields:
  + `value`
  + `text`
  + `checked`
  and now also includes the field `extraParameters`

- the class now also provides the `getUnChecked()` API which logically returns the set of UNchecked options.

- we popup on top of the button if the menu would otherwise be cut off by the bottom of the window.

- fix select/deselect bug in single-selection mode.

{'fraction_non_alphanumeric': 0.08143322475570032, 'fraction_numerical': 0.0, 'mean_word_length': 4.7272727272727275, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4689788', 'n_tokens_mistral': 665, 'n_tokens_neox': 637, 'n_words': 304}