- log("Locale language: " + (mkws_config.lang ? mkws_config.lang : "none"));
- return mkws_config.lang;
- }
-
-
- /* create locale language menu */
- function mkwsHtmlLang() {
- var lang_default = "en";
- var lang = mkws_config.lang || lang_default;
- var list = [];
-
- /* display a list of configured languages, or all */
- var lang_options = mkws_config.lang_options || [];
- var toBeIncluded = {};
- for (var i = 0; i < lang_options.length; i++) {
- toBeIncluded[lang_options[i]] = true;
- }
-
- for (var k in mkws.locale_lang) {
- if (toBeIncluded[k] || lang_options.length == 0)
- list.push(k);
- }
-
- // add english link
- if (lang_options.length == 0 || toBeIncluded[lang_default])
- list.push(lang_default);
-
- log("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 += ' <span>' + l + '</span> ';
- } else {
- data += ' <a href="?lang=' + l + '">' + l + '</a> '
- }
- }
-
- findnode(".mkwsLang").html(data);
- }
-
-
- function mkwsHtmlSort() {
- log("HTML sort, m_sortOrder = '" + m_sortOrder + "'");
- var sort_html = '<select class="mkwsSort mkwsTeam_' + m_teamName + '">';
-
- for(var i = 0; i < mkws_config.sort_options.length; i++) {
- var opt = mkws_config.sort_options[i];
- var key = opt[0];
- var val = opt.length == 1 ? opt[0] : opt[1];
-
- sort_html += '<option value="' + key + '"';
- if (m_sortOrder == key || m_sortOrder == val) {
- sort_html += ' selected="selected"';
- }
- sort_html += '>' + M(val) + '</option>';
- }
- sort_html += '</select>';
-
- return sort_html;
- }
-
-
- function mkwsHtmlPerpage() {
- log("HTML perpage, m_perpage = " + m_perpage);
- var perpage_html = '<select class="mkwsPerpage mkwsTeam_' + m_teamName + '">';
-
- for(var i = 0; i < mkws_config.perpage_options.length; i++) {
- var key = mkws_config.perpage_options[i];
-
- perpage_html += '<option value="' + key + '"';
- if (key == m_perpage) {
- perpage_html += ' selected="selected"';
- }
- perpage_html += '>' + key + '</option>';
- }
- perpage_html += '</select>';
-
- return perpage_html;
- }
-
-
- function mkwsHtmlSwitch() {
- log("HTML switch for team " + m_teamName);
-
- var node = findnode(".mkwsSwitch");
- node.append($('<a href="#" onclick="mkws.switchView(\'' + m_teamName + '\', \'records\')">' + M('Records') + '</a>'));
- node.append($("<span/>", { text: " | " }));
- node.append($('<a href="#" onclick="mkws.switchView(\'' + m_teamName + '\', \'targets\')">' + M('Targets') + '</a>'));
-
- log("HTML targets");
- var node = findnode(".mkwsTargets");
- node.html('\
-<div class="mkwsBytarget mkwsTeam_' + m_teamName + '">\
- No information available yet.\
-</div>');
- node.css("display", "none");
- }
-
-
- that.runAutoSearch = function() {
- var node = findnode('.mkwsRecords,.mkwsTermlists');
- var query = node.attr('autosearch');
- if (!query)
- return;
-
- if (query.match(/^!param!/)) {
- var param = query.replace(/^!param!/, '');
- query = getParameterByName(param);
- log("obtained query '" + query + "' from param '" + param + "'");
- if (!query) {
- alert("This page has a MasterKey widget that needs a query specified by the '" + param + "' parameter");
- }
- } else if (query.match(/^!path!/)) {
- var index = query.replace(/^!path!/, '');
- var path = window.location.pathname.split('/');
- query = path[path.length - index];
- log("obtained query '" + query + "' from path-component '" + index + "'");
- if (!query) {
- alert("This page has a MasterKey widget that needs a query specified by the path-component " + index);
- }
- }
-
- log("node=" + node + ", class='" + node.className + "', query=" + query);
-
- var sortOrder = node.attr('sort');
- var targets = node.attr('targets');
- var s = "running auto search: '" + query + "'";
- if (sortOrder) s += " sorted by '" + sortOrder + "'";
- if (targets) s += " in targets '" + targets + "'";
- log(s);
-
- newSearch(query, sortOrder, targets);
- }
-
-
- // This function is taken from a StackOverflow answer
- // http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript/901144#901144
- function getParameterByName(name) {
- name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
- var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
- results = regex.exec(location.search);
- return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));