added WidgetImage, reworked player.js to simplify widget handling