Code refactoring

The code was repetitive and old. This change is one iteration towards a
complete refactoring of the code which brings it to a better state.

Also, the extension icon now can be clicked to open the options page.

Change-Id: I998355cd871e31d6590608ff2563d43040944a83
diff --git a/src/js/common.js b/src/js/common.js
new file mode 100644
index 0000000..8289ced
--- /dev/null
+++ b/src/js/common.js
@@ -0,0 +1,106 @@
+var isoLangs = {
+  'af': {'name': 'Afrikaans', 'nativeName': 'Afrikaans'},
+  'sq': {'name': 'Albanian', 'nativeName': 'Shqip'},
+  'am': {'name': 'Amharic', 'nativeName': 'አማርኛ'},
+  'ar': {'name': 'Arabic', 'nativeName': 'العربية'},
+  'hy': {'name': 'Armenian', 'nativeName': 'Հայերեն'},
+  'az': {'name': 'Azerbaijani', 'nativeName': 'azərbaycan dili'},
+  'eu': {'name': 'Basque', 'nativeName': 'euskara'},
+  'be': {'name': 'Belarusian', 'nativeName': 'Беларуская'},
+  'bn': {'name': 'Bengali', 'nativeName': 'বাংলা'},
+  'bs': {'name': 'Bosnian', 'nativeName': 'bosanski jezik'},
+  'bg': {'name': 'Bulgarian', 'nativeName': 'български език'},
+  'ca': {'name': 'Catalan', 'nativeName': 'Català'},
+  'ceb': {'name': 'Cebuano', 'nativeName': 'Bisaya'},
+  'ny': {'name': 'Chichewa', 'nativeName': 'chiCheŵa'},
+  'zh': {'name': 'Chinese', 'nativeName': '中文 (Zhōngwén)'},
+  'co': {'name': 'Corsican', 'nativeName': 'corsu'},
+  'hr': {'name': 'Croatian', 'nativeName': 'hrvatski'},
+  'cs': {'name': 'Czech', 'nativeName': 'česky'},
+  'da': {'name': 'Danish', 'nativeName': 'dansk'},
+  'nl': {'name': 'Dutch', 'nativeName': 'Nederlands'},
+  'en': {'name': 'English', 'nativeName': 'English'},
+  'eo': {'name': 'Esperanto', 'nativeName': 'Esperanto'},
+  'et': {'name': 'Estonian', 'nativeName': 'eesti'},
+  'tl': {'name': 'Filipino', 'nativeName': 'Pilipino'},
+  'fi': {'name': 'Finnish', 'nativeName': 'suomi'},
+  'fr': {'name': 'French', 'nativeName': 'français'},
+  'fy': {'name': 'Frisian', 'nativeName': 'Frysk'},
+  'gl': {'name': 'Galician', 'nativeName': 'Galego'},
+  'ka': {'name': 'Georgian', 'nativeName': 'ქართული'},
+  'de': {'name': 'German', 'nativeName': 'Deutsch'},
+  'el': {'name': 'Greek', 'nativeName': 'Ελληνικά'},
+  'gu': {'name': 'Gujarati', 'nativeName': 'ગુજરાતી'},
+  'ht': {'name': 'Haitian Creole', 'nativeName': 'Kreyòl ayisyen'},
+  'ha': {'name': 'Hausa', 'nativeName': 'Hausa'},
+  'haw': {'name': 'Hawaiian', 'nativeName': 'Hausa'},
+  'iw': {'name': 'Hebrew', 'nativeName': 'עברית'},
+  'hi': {'name': 'Hindi', 'nativeName': 'हिन्दी, हिंदी'},
+  'hmn': {'name': 'Hmong', 'nativeName': 'lus Hmoob'},
+  'hu': {'name': 'Hungarian', 'nativeName': 'Magyar'},
+  'is': {'name': 'Icelandic', 'nativeName': 'Íslenska'},
+  'ig': {'name': 'Igbo', 'nativeName': 'Asụsụ Igbo'},
+  'id': {'name': 'Indonesian', 'nativeName': 'Bahasa Indonesia'},
+  'ga': {'name': 'Irish', 'nativeName': 'Gaeilge'},
+  'it': {'name': 'Italian', 'nativeName': 'Italiano'},
+  'ja': {'name': 'Japanese', 'nativeName': '日本語 (にほんご/にっぽんご)'},
+  'jv': {'name': 'Javanese', 'nativeName': 'basa Jawa'},
+  'kn': {'name': 'Kannada', 'nativeName': 'ಕನ್ನಡ'},
+  'kk': {'name': 'Kazakh', 'nativeName': 'Қазақ тілі'},
+  'km': {'name': 'Khmer', 'nativeName': 'ភាសាខ្មែរ'},
+  'ko': {'name': 'Korean', 'nativeName': '한국어 (韓國語)'},
+  'ku': {'name': 'Kurdish (Kurmanji)', 'nativeName': 'Kurdî'},
+  'ky': {'name': 'Kyrgyz', 'nativeName': 'кыргыз тили'},
+  'lo': {'name': 'Lao', 'nativeName': 'ພາສາລາວ'},
+  'la': {'name': 'Latin', 'nativeName': 'latine'},
+  'lv': {'name': 'Latvian', 'nativeName': 'latviešu valoda'},
+  'lt': {'name': 'Lithuanian', 'nativeName': 'lietuvių kalba'},
+  'lb': {'name': 'Luxembourgish', 'nativeName': 'Lëtzebuergesch'},
+  'mk': {'name': 'Macedonian', 'nativeName': 'македонски јазик'},
+  'mg': {'name': 'Malagasy', 'nativeName': 'Malagasy fiteny'},
+  'ms': {'name': 'Malay', 'nativeName': 'bahasa Melayu'},
+  'ml': {'name': 'Malayalam', 'nativeName': 'മലയാളം'},
+  'mt': {'name': 'Maltese', 'nativeName': 'Malti'},
+  'mi': {'name': 'Māori', 'nativeName': 'te reo Māori'},
+  'mr': {'name': 'Marathi', 'nativeName': 'मराठी'},
+  'mn': {'name': 'Mongolian', 'nativeName': 'монгол'},
+  'my': {'name': 'Myanmar', 'nativeName': 'ဗမာစာ'},
+  'ne': {'name': 'Nepali', 'nativeName': 'नेपाली'},
+  'no': {'name': 'Norwegian', 'nativeName': 'Norsk'},
+  'ps': {'name': 'Pashto', 'nativeName': 'پښتو'},
+  'fa': {'name': 'Persian', 'nativeName': 'فارسی'},
+  'pl': {'name': 'Polish', 'nativeName': 'polski'},
+  'pt': {'name': 'Portuguese', 'nativeName': 'Português'},
+  'pa': {'name': 'Punjabi', 'nativeName': 'ਪੰਜਾਬ'},
+  'ro': {'name': 'Romanian', 'nativeName': 'română'},
+  'ru': {'name': 'Russian', 'nativeName': 'русский язык'},
+  'sm': {'name': 'Samoan', 'nativeName': 'gagana faa Samoa'},
+  'gd': {'name': 'Scots Gaelic', 'nativeName': 'Gàidhlig'},
+  'sr': {'name': 'Serbian', 'nativeName': 'српски језик'},
+  'st': {'name': 'Sesotho', 'nativeName': 'Sesotho'},
+  'sn': {'name': 'Shona', 'nativeName': 'chiShona'},
+  'sd': {'name': 'Sindhi', 'nativeName': 'सिन्धी'},
+  'si': {'name': 'Sinhala', 'nativeName': 'සිංහල'},
+  'sk': {'name': 'Slovak', 'nativeName': 'slovenčina'},
+  'sl': {'name': 'Slovenian', 'nativeName': 'slovenščina'},
+  'so': {'name': 'Somali', 'nativeName': 'Soomaaliga'},
+  'es': {'name': 'Spanish', 'nativeName': 'español'},
+  'su': {'name': 'Sundanese', 'nativeName': 'Basa Sunda'},
+  'sw': {'name': 'Swahili', 'nativeName': 'Kiswahili'},
+  'sv': {'name': 'Swedish', 'nativeName': 'svenska'},
+  'tg': {'name': 'Tajik', 'nativeName': 'тоҷикӣ'},
+  'ta': {'name': 'Tamil', 'nativeName': 'தமிழ்'},
+  'te': {'name': 'Telugu', 'nativeName': 'తెలుగు'},
+  'th': {'name': 'Thai', 'nativeName': 'ไทย'},
+  'tr': {'name': 'Turkish', 'nativeName': 'Türkçe'},
+  'uk': {'name': 'Ukrainian', 'nativeName': 'українська'},
+  'ur': {'name': 'Urdu', 'nativeName': 'اردو'},
+  'uz': {'name': 'Uzbek', 'nativeName': 'zbek'},
+  'vi': {'name': 'Vietnamese', 'nativeName': 'Tiếng Việt'},
+  'cy': {'name': 'Welsh', 'nativeName': 'Cymraeg'},
+  'xh': {'name': 'Xhosa', 'nativeName': 'isiXhosa'},
+  'yi': {'name': 'Yiddish', 'nativeName': 'ייִדיש'},
+  'yo': {'name': 'Yoruba', 'nativeName': 'Yorùbá'},
+  'za': {'name': 'Zhuang, Chuang', 'nativeName': 'Saɯ cueŋƅ'},
+  'zu': {'name': 'Zulu', 'nativeName': 'isiZulu'}
+};