Twitter’s typeahead.js looks like a great base for — it certainly has better UX than my current technique