Use keyboard for Cairo, Damascus and Tunis, change the virtual keyboard if another context is selected.
Make the GetUrlParams function private to the class it's used in and it's decendants. Don't make OpenLayers a hard dependency of the MapPanel it may be loaded after mappanel.js (drupal).