How to implement a JavaScript-based barcode scanner?