var termlist = document.getElementById("mkwsTermlists");
replaceHtml(termlist, acc.join(''));
-
- if (mkws_config.responsive_design)
- mkws_mobile_resize();
}
function add_single_facet(acc, caption, data, max, cclIndex) {
var results = document.getElementById('mkwsResults') ||
document.getElementById('mkwsRecords');
var blanket = document.getElementById('mkwsBlanket');
- var motd = document.getElementById('mkwsEmbeddedMOTD');
+ var motd = document.getElementById('mkwsMOTD');
switch(view) {
case 'targets':
perpage_menu: true, /* show/hide perpage menu */
lang_display: [], /* display languages links for given languages, [] for all */
facets: ["sources", "subjects", "authors"], /* display facets, in this order, [] for none */
- responsive_design_width: 980, /* a page with less pixel width considered as mobile */
+ responsive_design_width: 980, /* a page with less pixel width considered as narrow */
debug: 1, /* debug level for development: 0..2 */
dummy: "dummy"
$("#mkwsResults").html('\
<table width="100%" border="0" cellpadding="6" cellspacing="0">\
<tr>\
- <td width="250" valign="top">\
+ <td id="mkwsTermlistContainer1" width="250" valign="top">\
<div id="mkwsTermlists"></div>\
</td>\
- <td valign="top">\
+ <td id="mkwsMOTDContainer" valign="top">\
<div id="mkwsRanking"></div>\
<div id="mkwsPager"></div>\
<div id="mkwsNavi"></div>\
<div id="mkwsRecords"></div>\
- <div id="mkwsEmbeddedMOTD"></div>\
+ </td>\
+ </tr>\
+ <tr>\
+ <td colspan="2">\
+ <div id="mkwsTermlistContainer2"></div>\
</td>\
</tr>\
</table>');
if (mkws_config.use_service_proxy)
mkws_service_proxy_auth(config.service_proxy_auth);
- if (mkws_config.responsive_design)
- mkws_responsive_design();
+ if (mkws_config.responsive_design) {
+ // Responsive web design - change layout on the fly based on
+ // current screen width. Required for mobile devices.
+ $(window).resize( function(e) { mkws_resize_page() });
+ // initial check after page load
+ $(document).ready(function() { mkws_resize_page() });
+ }
domReady();
// on first page, hide the termlist
$(document).ready(function() { $("#mkwsTermlists").hide(); } );
- var elem = document.getElementById("mkwsMOTD");
- if (elem) {
- // Move the MOTD from the provided element down into the embedded one
- document.getElementById("mkwsEmbeddedMOTD").innerHTML = elem.innerHTML;
- elem.style.display = "none";
+ var motd = document.getElementById("mkwsMOTD");
+ var container = document.getElementById("mkwsMOTDContainer");
+ if (motd && container) {
+ // Move the MOTD from the provided element down into the container
+ motd.parentNode.removeChild(motd);
+ container.appendChild(motd);
}
}
-/* Responsive web design - change layout on the fly depending on
- * the current screen size width/height. Required for mobile devices.
- */
-function mkws_responsive_design () {
- var timeout = null;
-
- $(window).resize( function(e) {
- if (timeout)
- clearTimeout(timeout);
- timeout = setTimeout(function () { mkws_mobile_resize() }, 50);
- });
-
- // initial check after page load
- $(document).ready(function() { mkws_mobile_resize() });
-}
-
function mkws_set_lang(mkws_config) {
var lang = jQuery.parseQuerystring().lang || mkws_config.lang || "";
if (!lang || !mkws_locale_lang[lang]) {
$("#mkwsLang").html(data);
}
-function mkws_mobile_resize () {
- debug("resize width: " + $(window).height() + ", width: " + $(window).width());
+function mkws_resize_page () {
var list = ["mkwsSwitch"];
- var obj;
- // alert($(window).width());
var width = mkws_config.responsive_design_width || 980;
-
- if ($(window).width() <= width) {
+ var parentId = $("#mkwsTermlists").parent().attr('id');
+
+ if ($(window).width() <= width &&
+ parentId === "mkwsTermlistContainer1") {
+ debug("changing from wide to narrow: " + $(window).width());
+ $("#mkwsTermlists").appendTo($("#mkwsTermlistContainer2"));
+ $("#mkwsTermlistContainer1").hide();
+ $("#mkwsTermlistContainer2").show();
for(var i = 0; i < list.length; i++) {
$("#" + list[i]).hide();
}
-
- $("#mkwsTermlists").hide();
- obj = $("#mkwsTermlists").html();
- $("#mkwsShiftedTermlists").html(obj);
- } else {
+ } else if ($(window).width() > width &&
+ parentId === "mkwsTermlistContainer2") {
+ debug("changing from narrow to wide: " + $(window).width());
+ $("#mkwsTermlists").appendTo($("#mkwsTermlistContainer1"));
+ $("#mkwsTermlistContainer1").show();
+ $("#mkwsTermlistContainer2").hide();
for(var i = 0; i < list.length; i++) {
$("#" + list[i]).show();
}
- $("#mkwsTermlists").show();
- $("#mkwsShiftedTermlists").html("");
}
};
return mkws_locale_lang[lang][word] ? mkws_locale_lang[lang][word] : word;
}
-/* implement jQuery.parseQuerystring() for parsing URL parameters */
+/*
+ * implement jQuery plugins
+ */
jQuery.extend({
- parseQuerystring: function() {
- var nvpair = {};
- var qs = window.location.search.replace('?', '');
- var pairs = qs.split('&');
- $.each(pairs, function(i, v){
- var pair = v.split('=');
- nvpair[pair[0]] = pair[1];
- });
- return nvpair;
- },
- pazpar2: function(data) {
- document.write('<div id="mkwsSwitch"></div>\
- <div id="mkwsLang"></div>\
- <div id="mkwsSearch"></div>\
- <div id="mkwsResults"></div>\
- <div id="mkwsTargets"></div>\
- <div id="mkwsFooter">\
- <div id="mkwsStat"></div>\
- <span>Powered by MKWS © 2013 <a target="_new" href="http://www.indexdata.com">Index Data</a></span>\
- </div>');
-
- mkws_html_all(mkws_config);
- }
+ // implement jQuery.parseQuerystring() for parsing URL parameters
+ parseQuerystring: function() {
+ var nvpair = {};
+ var qs = window.location.search.replace('?', '');
+ var pairs = qs.split('&');
+ $.each(pairs, function(i, v){
+ var pair = v.split('=');
+ nvpair[pair[0]] = pair[1];
+ });
+ return nvpair;
+ },
+
+ debug2: function(string) { // delayed debug, internal variables are set after dom ready
+ setTimeout(function() { debug(string); }, 500);
+ },
+
+ // service-proxy or pazpar2
+ pazpar2: function(config) {
+ // simple layout
+ var div = '<div id="mkwsSwitch"></div>\
+ <div id="mkwsLang"></div>\
+ <div id="mkwsSearch"></div>\
+ <div id="mkwsResults"></div>\
+ <div id="mkwsTargets"></div>\
+ <div id="mkwsStat"></div>';
+
+ // new table layout
+ var table = '\
+ <style type="text/css">\
+ #mkwsTermlists div.facet {\
+ float:left;\
+ width: 30%;\
+ margin: 0.3em;\
+ }\
+ #mkwsStat {\
+ text-align: right;\
+ }\
+ </style>\
+ \
+ <table width="100%" border="0">\
+ <tr>\
+ <td>\
+ <div id="mkwsSwitch"></div>\
+ <div id="mkwsLang"></div>\
+ <div id="mkwsSearch"></div>\
+ </td>\
+ </tr>\
+ <tr>\
+ <td>\
+ <div style="height:500px; overflow: auto">\
+ <div id="mkwsPager"></div>\
+ <div id="mkwsNavi"></div>\
+ <div id="mkwsRecords"></div>\
+ <div id="mkwsTargets"></div>\
+ <div id="mkwsRanking"></div>\
+ </div>\
+ </td>\
+ </tr>\
+ <tr>\
+ <td>\
+ <div style="height:300px; overflow: hidden">\
+ <div id="mkwsTermlists"></div>\
+ </div>\
+ </td>\
+ </tr>\
+ <tr>\
+ <td>\
+ <div id="mkwsStat"></div>\
+ </td>\
+ </tr>\
+ </table>';
+
+ var popup = '\
+ <div id="mkwsSearch"></div>\
+ <div id="mkwsPopup">\
+ <div id="mkwsSwitch"></div>\
+ <div id="mkwsLang"></div>\
+ <div id="mkwsResults"></div>\
+ <div id="mkwsTargets"></div>\
+ <div id="mkwsStat"></div>\
+ </div>'
+
+ if (config && config.layout == 'div') {
+ this.debug2("jquery plugin layout: div");
+ document.write(div);
+ } else if (config && config.layout == 'popup') {
+ this.debug2("jquery plugin layout: popup");
+ document.write(popup);
+ $(document).ready( function() { init_popup(config); } );
+ } else {
+ this.debug2("jquery plugin layout: table");
+ document.write(table);
+ }
+ }
});
+function init_popup(obj) {
+ var config = obj ? obj : {};
+
+ var height = config.height || 760;
+ var width = config.width || 880;
+ var id_button = config.button || "input#mkwsButton";
+ var id_popup = config.popup || "#mkwsPopup";
+
+ debug("popup height: " + height + ", width: " + width);
+
+ $(id_popup).dialog({
+ closeOnEscape: true,
+ autoOpen: false,
+ height: height,
+ width: width,
+ modal: true,
+ resizable: true,
+ buttons: {
+ Cancel: function() {
+ $(this).dialog("close");
+ }
+ },
+ close: function() { }
+ });
+
+ $(id_button)
+ .button()
+ .click(function() {
+ $(id_popup).dialog("open");
+ });
+};
+
function debug(string) {
if (!mkws_debug)
return;
console.log(string);
}
+
/* magic */
$(document).ready(function() { mkws_html_all(mkws_config) });