+ if (!config.switch_menu) {
+ debug("disable switch menu");
+ $("#mkwsSwitch").css("display", "none");
+ }
+}
+
+function mkws_html_sort(config) {
+ debug("HTML sort");
+ var sort_html = '<select name="sort" id="sort">';
+
+ for(var i = 0; i < config.sort.length; i++) {
+ var key = config.sort[i][0];
+ var val = config.sort[i].length == 1 ? config.sort[i][0] : config.sort[i][1];
+
+ sort_html += '<option value="' + key + '"';
+ if (key == config.sort_default) {
+ sort_html += ' selected="selected"';
+ }
+ sort_html += '>' + val + '</option>';
+ }
+ sort_html += '</select>';
+
+ return sort_html;
+}
+
+function mkws_html_perpage(config) {
+ debug("HTML perpage");
+ var perpage_html = '<select name="perpage" id="perpage">';
+
+ for(var i = 0; i < config.perpage.length; i++) {
+ var key = config.perpage[i];
+
+ perpage_html += '<option value="' + key + '"';
+ if (key == config.perpage_default) {
+ perpage_html += ' selected="selected"';
+ }
+ perpage_html += '>' + key + '</option>';
+ }
+ perpage_html += '</select>';
+
+ return perpage_html;
+}
+
+/*
+ * Run service-proxy authentication in background (after page load).
+ * The username/password is configured in the apache config file
+ * for the site.
+ */
+function mkws_service_proxy_auth(auth_url) {
+ if (!auth_url)
+ auth_url = "/service-proxy-auth";
+
+ debug("Run service proxy auth URL: " + auth_url);
+
+ var jqxhr = jQuery.get(auth_url)
+ .fail(function() {
+ alert("service proxy authentication failed, give up!");
+ })
+ .success(function(data) {
+ if (!jQuery.isXMLDoc(data)) {
+ alert("service proxy auth response document is not valid XML document, give up!");
+ return;
+ }
+ var status = $(data).find("status");
+ if (status.text() != "OK") {
+ alert("service proxy auth repsonse status: " + status.text() + ", give up!");
+ return;
+ }
+ });
+}
+
+/* create locale language menu */
+function mkws_html_lang(mkws_config) {
+ var lang_default = "en";
+ var lang = mkws_config.lang || lang_default;
+ var list = [];
+
+ /* display a list of configured languages, or all */
+ var lang_display = mkws_config.lang_display || [];
+ var hash = {};
+ for (var i = 0; i < lang_display.length; i++) {
+ hash[lang_display[i]] = 1;
+ }
+
+ for (var k in mkws_locale_lang) {
+ if (hash[k] == 1 || lang_display.length == 0)
+ list.push(k);
+ }
+
+ // add english link
+ if (lang_display.length == 0 || hash[lang_default] == 1)
+ list.push(lang_default);
+
+ debug("Language menu for: " + list.join(", "));
+
+ /* the HTML part */
+ var data = "";
+ for(var i = 0; i < list.length; i++) {
+ var l = list[i];
+
+ if (data)
+ data += ' | ';
+
+ if (lang == l) {
+ data += l;
+ } else {
+ data += ' <a href="?lang=' + l + '">' + l + '</a> '
+ }
+ }
+
+ $("#mkwsLang").html(data);
+}
+
+/* locale */
+function M(word) {
+ var lang = mkws_config.lang;