A javascript autocomplete widget with lots of flexibilty