use typeof to check if a parameter is set
[mkws-moved-to-github.git] / experiments / spclient / mkws.js
index 4a6eb6d..e3e5fe5 100644 (file)
@@ -13,6 +13,9 @@
 if (!mkws_config)
     var mkws_config = {}; // for the guys who forgot to define mkws_config...
 
+if (typeof mkws_config.use_service_proxy === 'undefined')
+    mkws_config.use_service_proxy = true;
+
 var mkws_debug = 1;
 
 var pazpar2_url = mkws_config.pazpar2_url ? mkws_config.pazpar2_url : "/pazpar2/search.pz2";
@@ -449,10 +452,10 @@ function renderDetails(data, marker)
  * All the HTML stuff to render the search forms and
  * result pages.
  */
-function mkws_html_all(data) {
+function mkws_html_all(config) {
 
-    /* default config */
-    var config = {
+    /* default mkws config */
+    var mkws_config_default = {
        sort: [["relevance"], ["title:1", "title"], ["date:0", "newest"], ["date:1", "oldest"]],
        perpage: [10, 20, 30, 50],
        sort_default: "relevance",
@@ -468,17 +471,19 @@ function mkws_html_all(data) {
     };
 
     /* set global debug flag early */
-    if (data.debug !== 'undefined') {
-       mkws_debug = data.debug;
-    } else if (config.debug !== 'undefined') {
+    if (config.debug !== 'undefined') {
        mkws_debug = config.debug;
+    } else if (mkws_config_default.debug !== 'undefined') {
+       mkws_debug = mkws_config_default.debug;
     }
     
     /* override standard config values by function parameters */
-    for (var k in config) {
-       mkws_config[k] = config[k];
-       debug("Set config: " + k + ' => ' + config[k]);
+    for (var k in mkws_config_default) {
+       if (typeof config[k] === 'undefined')
+          mkws_config[k] = mkws_config_default[k];
+       debug("Set config: " + k + ' => ' + mkws_config[k]);
     }
+
     if (mkws_config.query_width < 5 || mkws_config.query_width > 150) {
        debug("Reset query width: " + mkws_config.query_width);
        mkws_config.query_width = 50;
@@ -644,13 +649,15 @@ function mkws_html_lang(mkws_config) {
        hash[lang_display[i]] = 1;
     }
     
-    if (hash[lang_default] == 1)
-       list.push(lang_default);
-
     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 */
@@ -683,7 +690,7 @@ function M(word) {
 
 /* implement jQuery.parseQuerystring() for parsing URL parameters */
 jQuery.extend({
-    parseQuerystring: function() {
+  parseQuerystring: function() {
     var nvpair = {};
     var qs = window.location.search.replace('?', '');
     var pairs = qs.split('&');
@@ -692,13 +699,27 @@ jQuery.extend({
        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="mkwsRecords"></div>\
+    <div id="mkwsTargets"></div>\
+    <div id="footer">\
+      <div id="mkwsStat"></div>\
+      <span>Powered by MKWS &copy; 2013 <a href="http://www.indexdata.com">Index Data</a></span>\
+    </div>');
+
+    mkws_html_all(mkws_config);
+  }
+});
 
 function debug(string) {
     if (!mkws_debug)
        return;
 
-    if (typeof console === "undefined" || typeof console.log === "undefined") { /* ARGH!!! */
+    if (typeof console === "undefined" || typeof console.log === "undefined") { /* ARGH!!! old IE */
        return;
     }