A multi-device javascript framework