Обновил автокомплит

Вчера весь вечер сидел дописывал в autocomplete вещи которые больше нельзя было игнорировать. А сегодня вашему вниманию предлагается changelog:

  • Полностью убрано определение браузеров, потому что оно не просто бесполезно а по большому счету мешает и сбивает с толку в случаи с Chrome которого jQuery определяет как Safari , а на самом деле он ведет себя как FireFox . Теперь все везде работает за счет хаков CSS и сглаживания jQuery .
  • Сделал давно прошеную фишку, чтобы можно было передавать не только видимое значение (text) но и реальное значение (value). Это работает не только с option, но также с объектами и массивами. Для объекта будет возвращаться ключ, а для массива будет возвращаться порядковый номер начиная с нуля.
  • Для того чтобы передача истинного значения выглядела аккуратно пришлось еще добавить режим select-only который не даст пользователю написать свой вариант в autocomplete, но как по мне это не правильно, потому что так все возвращается обратно к функциональности select-box’a.
  • По скольку до объекта autocomplete напрямую кроме как из событий добраться нельзя я сделал событие onSetup в котором можно произвести произвольные манипуляции с autocomplete после того как он будет создан. Это позволит управлять элементами назначая им новые обработчики или стили.
  • Еще убран хак для Safari так как у меня на винде в найтбилдах он больше не появляется, если он не исчез — пишите и я верну.

В остальных местах еще немного порефакторил. Но это влияет только на производительность. Где-то в глубине рефакторинга решил использовать метод live для всех элементов выпадающего списка, но потом понял что для этого придется отказаться от поддержки jQuery версии 1.2.6, а мне этого не хотелось и подумав еще я сумел сделать код еще проще.