Remove dead code WRT client total counting
[pazpar2-moved-to-github.git] / js / pz2.js
index a57688f..3a99807 100644 (file)
--- a/js/pz2.js
+++ b/js/pz2.js
@@ -1,5 +1,5 @@
 /*
- * Mine
+ * $Id$
 ** pz2.js - pazpar2's javascript client library.
 */
 
@@ -29,7 +29,7 @@ var pz2 = function ( paramArray )
     
     // at least one callback required
     if ( !paramArray )
-        throw new Error("Pz2.js: Array with parameters has to be suplied."); 
+        throw new Error("Pz2.js: Array with parameters has to be supplied."); 
 
     //supported pazpar2's protocol version
     this.suppProtoVer = '1';
@@ -201,6 +201,9 @@ pz2.prototype =
                         context.sessionID = 
                             data.getElementsByTagName("session")[0]
                                 .childNodes[0].nodeValue;
+                        if (data.getElementsByTagName("keepAlive").length > 0) {
+                            context.keepAlive = data.getElementsByTagName("keepAlive")[0].childNodes[0].nodeValue;
+                        }
                         context.pingTimer =
                             setTimeout(
                                 function () {
@@ -281,13 +284,17 @@ pz2.prototype =
         else
             var start = 0;
 
-             var searchParams = { 
+       var searchParams = { 
           "command": "search",
           "query": this.currQuery, 
           "session": this.sessionID,
           "windowid" : window.name
         };
        
+        if( sort !== undefined ) {
+            this.currentSort = sort;
+           searchParams["sort"] = sort;
+       }
         if (filter !== undefined)
                searchParams["filter"] = filter;
 
@@ -391,7 +398,7 @@ pz2.prototype =
               "sort": this.currentSort, 
               "block": 1,
               "type": this.showResponseType,
-              "windowid" : window.name,
+              "windowid" : window.name
           };
         if (query_state)
           requestParameters["query-state"] = query_state;
@@ -1058,35 +1065,43 @@ Element_parseChildNodes = function (node)
 {
     var parsed = {};
     var hasChildElems = false;
+    var textContent = '';
 
     if (node.hasChildNodes()) {
         var children = node.childNodes;
         for (var i = 0; i < children.length; i++) {
             var child = children[i];
-            if (child.nodeType == Node.ELEMENT_NODE) {
+            switch (child.nodeType) {
+              case Node.ELEMENT_NODE:
                 hasChildElems = true;
                 var nodeName = child.nodeName; 
                 if (!(nodeName in parsed))
                     parsed[nodeName] = [];
                 parsed[nodeName].push(Element_parseChildNodes(child));
+                break;
+              case Node.TEXT_NODE:
+                textContent += child.nodeValue;
+                break;
+              case Node.CDATA_SECTION_NODE:
+                textContent += child.nodeValue;
+                break;
             }
         }
     }
 
     var attrs = node.attributes;
     for (var i = 0; i < attrs.length; i++) {
+        hasChildElems = true;
         var attrName = '@' + attrs[i].nodeName;
         var attrValue = attrs[i].nodeValue;
         parsed[attrName] = attrValue;
     }
 
-    // if no nested elements, get text content
-    if (node.hasChildNodes() && !hasChildElems) {
-        if (node.attributes.length) 
-            parsed['#text'] = node.firstChild.nodeValue;
-        else
-            parsed = node.firstChild.nodeValue;
-    }
+    // if no nested elements/attrs set value to text
+    if (hasChildElems)
+      parsed['#text'] = textContent;
+    else
+      parsed = textContent;
     
     return parsed;
 }