about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--scripts/main.js150
1 files changed, 76 insertions, 74 deletions
diff --git a/scripts/main.js b/scripts/main.js
index e59c47e..c6b831f 100644
--- a/scripts/main.js
+++ b/scripts/main.js
@@ -1,85 +1,87 @@
-// load i18n and perform translation
-var i18n = new I18nText({path: 'lang'});
-i18n.once(I18nText.EVT_LOCALE_CHANGE, function (data) {
-	translate_ui();
-});
-i18n.setLocale('en');
+(function() {
+	// load i18n and perform translation
+	var i18n = new I18nText({path: 'lang'});
+	i18n.once(I18nText.EVT_LOCALE_CHANGE, function (data) {
+		translate_ui();
+	});
+	i18n.setLocale('en');
 
-// i18n key prefix for MUC ("muc.") or 1:1 chat ("chat.")
-var key_prefix;
-var display_data = null;
+	// i18n key prefix for MUC ("muc.") or 1:1 chat ("chat.")
+	var key_prefix;
+	var display_data = null;
 
-function show_clients(client_array) {
-	var list = document.getElementById('client_list');
-	for (var id = 0; id < client_array.length; id++) {
-		var item = document.createElement('li');
-		item.innerHTML = client_array[id];
-		list.appendChild(item);
+	function show_clients(client_array) {
+		var list = document.getElementById('client_list');
+		for (var id = 0; id < client_array.length; id++) {
+			var item = document.createElement('li');
+			item.innerHTML = client_array[id];
+			list.appendChild(item);
+		}
 	}
-}
 
-function load_clients() {
-	url = "clients.json";
-	var request = new XMLHttpRequest();
-	request.open('GET', url);
-	request.onreadystatechange = function () {
-		if (request.readyState === 4) {
-			if (request.status == 200 || (isLocalFileRequest(url) && request.responseText.length > 0)) {
-				show_clients(JSON.parse(request.responseText));
+	function load_clients() {
+		var url = "clients.json";
+		var request = new XMLHttpRequest();
+		request.open('GET', url);
+		request.onreadystatechange = function () {
+			if (request.readyState === 4) {
+				if (request.status == 200 || (isLocalFileRequest(url) && request.responseText.length > 0)) {
+					show_clients(JSON.parse(request.responseText));
+				}
 			}
-		}
-	};
-	request.send(null);
-}
-
-function load_hash() {
-	var muc = false;
-	key_prefix = "chat.";
-	var jid = window.location.search || window.location.hash;
-	jid = decodeURIComponent(jid.substring(jid.indexOf('#') + 1, jid.length));
-	try {
-		base_decoded = window.atob(jid);
-		if (base_decoded.search('@') >= 0)
-			jid = base_decoded;
-	} catch (err) {
-		// ignore error, JID wasn't base64 encoded
-	}
-	if (jid.search("\\?join") >= 0) {
-		muc = true;
-		key_prefix = "muc.";
+		};
+		request.send(null);
 	}
 
-	// TODO: proper error checking / display / Creation of invitations
-	if (jid.search("@") <= 0) return {jid:"", name: "Somebody"};
+	function load_hash() {
+		var muc = false;
+		key_prefix = "chat.";
+		var jid = window.location.search || window.location.hash;
+		jid = decodeURIComponent(jid.substring(jid.indexOf('#') + 1, jid.length));
+		try {
+			base_decoded = window.atob(jid);
+			if (base_decoded.search('@') >= 0)
+				jid = base_decoded;
+		} catch (err) {
+			// ignore error, JID wasn't base64 encoded
+		}
+		if (jid.search("\\?join") >= 0) {
+			muc = true;
+			key_prefix = "muc.";
+		}
+
+		// TODO: proper error checking / display / Creation of invitations
+		if (jid.search("@") <= 0) return {jid:"", name: "Somebody"};
 
-	var name = jid.split("@")[0];
-	name = name.charAt(0).toUpperCase() + name.slice(1);
-	return {jid: jid, name: name};
-}
+		var name = jid.split("@")[0];
+		name = name.charAt(0).toUpperCase() + name.slice(1);
+		return {jid: jid, name: name};
+	}
 
-function translate_ui() {
-	// translation
-	document.title = i18n.text(key_prefix + 'title',  display_data);
-	// MUC/chat specific
-	['heading', 'intro', 'button'].forEach(function(id) {
-		document.getElementById(id).innerHTML = i18n.text(key_prefix + id, display_data);
-	});
-	// and agnostic
-	['clients', 'recommend', 'checkfulllist', 'xmppis'].forEach(function(id) {
-		document.getElementById(id).innerHTML = i18n.text(id, display_data);
-	});
-}
+	function translate_ui() {
+		// translation
+		document.title = i18n.text(key_prefix + 'title',  display_data);
+		// MUC/chat specific
+		['heading', 'intro', 'button'].forEach(function(id) {
+			document.getElementById(id).innerHTML = i18n.text(key_prefix + id, display_data);
+		});
+		// and agnostic
+		['clients', 'recommend', 'checkfulllist', 'xmppis'].forEach(function(id) {
+			document.getElementById(id).innerHTML = i18n.text(id, display_data);
+		});
+	}
 
-function rehash() {
-	display_data = load_hash();
-	document.getElementById('button').href = "xmpp:" + display_data.jid;
-	document.getElementById('url_in').value = "xmpp:" + display_data.jid;
-	translate_ui();
-}
+	function rehash() {
+		display_data = load_hash();
+		document.getElementById('button').href = "xmpp:" + display_data.jid;
+		document.getElementById('url_in').value = "xmpp:" + display_data.jid;
+		translate_ui();
+	}
 
-function load_done() {
-	// functionality
-	load_clients();
-	rehash();
-	window.addEventListener("hashchange", rehash, false);
-}
+	function load_done() {
+		// functionality
+		load_clients();
+		rehash();
+		window.addEventListener("hashchange", rehash, false);
+	}
+})();