var substringMatcher = function(strs) { return function findMatches(q, cb) { var matches, substringRegex; // an array that will be populated with substring matches matches = []; // regex used to determine if a string contains the substring `q` substrRegex = new RegExp(q, 'i'); // iterate through the pool of strings and for any string that // contains the substring `q`, add it to the `matches` array $.each(strs, function(i, str) { if (substrRegex.test(str)) { matches.push(str); } }); cb(matches); }; }; var products = ['Abstracting The Landscape.','Blossoms Walk','Bluebells And Forget-Me-Knots','Breathe In And Believe','Colours Of The Land','Confetti Field','Daisy Dip','Dandelion Clocks.','Dappled Earth','Dreams Seeded In Winter 1','Dreams Seeded In Winter 2','Elegance','Endless Light','Field Of Wishes.','Golden Hour','Gulls Call','Hiding Hollyhocks','Hiding Hollyhocks.','Lavender Fields','Loves Me, Loves Me Not.','Meadow Hive','Meadow Home','mmmm','nnnnn','painting','Sea Mist','Secret Wild Garden','Small Works Placeholder - more items arriving soon','ssss','Through The Grasses','Top Of The Bay','Towards The Tide','Waiting For Butterflies','Wild Daisy Meadow','Wild Flower Path','Wild Grasses','Wild Meadow Grasses.','Within Bluebell Wood','Within The Trees','xxx','zzzzz' ]; var productsIDs = [ ]; $('#our-products .typeahead').typeahead({ hint: true, highlight: true, minLength: 1 }, { name: 'products', limit: 40, source: substringMatcher(products) });