const bibUtil = (function () { return { parseField: function (fieldString, field, tagCategories) { function tagSort(a, b) { var categoryA = a.substring(0, a.indexOf(':')).toLowerCase(); var categoryB = b.substring(0, b.indexOf(':')).toLowerCase(); if (categoryA && categoryB) { if (categoryA != categoryB) { var indexA = Object.keys(tagCategories).indexOf(categoryA); var indexB = Object.keys(tagCategories).indexOf(categoryB); return ((indexA < indexB) ? -1 : ((indexA > indexB) ? 1 : 0)); } } else if (categoryA) { return -1; } else if (categoryB) { return 1; } var aName = a.toLowerCase(); var bName = b.toLowerCase(); return ((aName < bName) ? -1 : ((aName > bName) ? 1 : 0)); } if (!fieldString) { fieldString = '?'; } switch (field) { case 'keywords': var tags = []; const splitter = fieldString.indexOf(',') < 0?';':','; $.each(fieldString.split(splitter), function (i, tag) { tag = $.trim(tag.split("\\").join("")).toLowerCase(); if ($.inArray(tag, tags) == -1) { tags.push(tag); } }); $.each(tagCategories, function (categoryName) { if (fieldString.indexOf(categoryName + ":") == -1) { tags.push(categoryName + ":?"); } }); tags.sort(tagSort); return tags; case 'author': return fieldString.split(' and '); default : return [fieldString]; } } } })(); const tagUtil = (function () { return { simplifyTag: function (tag) { return tag.toLowerCase().replace(/\W/g, ''); }, getFrequencyClass: function (frequency) { var frequencyClass = 'freq1'; if (frequency >= 2) { frequencyClass = 'freq2'; } if (frequency >= 3) { frequencyClass = 'freq3'; } if (frequency >= 5) { frequencyClass = 'freq5'; } if (frequency >= 10) { frequencyClass = 'freq10'; } if (frequency >= 20) { frequencyClass = 'freq20'; } if (frequency >= 35) { frequencyClass = 'freq35'; } if (frequency >= 50) { frequencyClass = 'freq50'; } if (frequency >= 80) { frequencyClass = 'freq80'; } if (frequency >= 120) { frequencyClass = 'freq120'; } return frequencyClass; } } })(); const latexUtil = (function () { return { latexToHtml: function (latex) { if (!latex) { return ''; } latex = latex.replace(/{|}/g, ''); latex = latex.replace(/---/g, '—'); latex = latex.replace(/--/g, '–'); var encoding = { "'": "acute", "`": "grave", "^": "circ", "\"": "uml", "s": "zlig", '~': 'tilde', 'c': 'cedil', 'l': 'ł', 'L': 'Ł', 'o': 'ø', 'O': 'Ø', 'v': '_̌', 'k': '_̨', '=': '_̄', 'b': '_̱', '.': '_̇', 'd': '_̣', 'r': '_ḁ', 'u': '_̆', 'H': '_̋' }; var html = ""; for (var i = 0; i < latex.length; i++) { var c = latex[i]; if (c == "\\") { if (i + 1 < latex.length && latex[i + 1] == '&') { c = '&'; i++; } else if (i + 1 < latex.length && latex[i + 1] == '_') { c = '_'; i++; } else if (i + 2 < latex.length && encoding[latex[i + 1]]) { if (encoding[latex[i + 1]].indexOf('&') == -1) { c = "&" + latex[i + 2] + encoding[latex[i + 1]] + ";"; i += 2; } else if (encoding[latex[i + 1]].indexOf('_') >= 0) { c = encoding[latex[i + 1]].replace('_', latex[i + 2]); i += 2; } else { c = encoding[latex[i + 1]]; i += 1; } } } html += c; } return html; }, } })(); const browserUtil = (function () { return { // http://stackoverflow.com/questions/19491336/get-url-parameter-jquery getUrlParameter: function (sParam) { var sPageURL = window.location.search.substring(1); var sURLVariables = sPageURL.split('&'); for (var i = 0; i < sURLVariables.length; i++) { var sParameterName = sURLVariables[i].split('='); if (sParameterName[0] == sParam) { return sParameterName[1]; } } } } })(); const uiUtil = (function () { return { toggleControl: function (h2Div) { h2Div.parent().children('.toggle-container').toggle(); var symbol = h2Div.find('span.symbol'); symbol.text(symbol.text() == '/' ? '>' : '/'); }, } })();