When parsing detailed record the subject nodes are placed in an array.
[pazpar2-moved-to-github.git] / js / pz2.js
index cf34cb7..36fc4f3 100644 (file)
--- a/js/pz2.js
+++ b/js/pz2.js
@@ -1,5 +1,5 @@
 /*
-** $Id: pz2.js,v 1.63 2007-10-30 13:41:05 jakub Exp $
+** $Id: pz2.js,v 1.66 2007-11-13 12:51:29 jakub Exp $
 ** pz2.js - pazpar2's javascript client library.
 */
 
@@ -50,6 +50,7 @@ var pz2 = function ( paramArray )
     this.errorHandler = paramArray.errorhandler || null;
     
     // function callbacks
+    this.initCallback = paramArray.oninit || null;
     this.statCallback = paramArray.onstat || null;
     this.showCallback = paramArray.onshow || null;
     this.termlistCallback = paramArray.onterm || null;
@@ -191,6 +192,8 @@ pz2.prototype =
                             },
                             context.keepAlive
                         );
+                        if ( context.initCallback )
+                            context.initCallback();
                     }
                     else
                         context.throwError('Init failed. Malformed WS resonse.',
@@ -531,8 +534,9 @@ pz2.prototype =
                                 != 'location' ) {
                                 var nodeName = 
                                     recordNode.childNodes[i].nodeName;
-                                var nodeText = 
-                                    recordNode.childNodes[i]
+                                var nodeText = '';
+                                if (recordNode.childNodes[i].firstChild)
+                                    nodeText = recordNode.childNodes[i]
                                         .firstChild.nodeValue;
                                 record[nodeName] = nodeText;                            
                             }
@@ -560,7 +564,21 @@ pz2.prototype =
                                         nodeText = 
                                             locationNodes[i].childNodes[j]
                                                 .firstChild.nodeValue;
-                                    record["location"][i][nodeName] = nodeText;                            
+                                    // this is stupid
+                                    if (nodeName == 'md-subject') {
+                                        if (record["location"][i]['nodeName']) {
+                                            record["location"][i][nodeName]
+                                                .push(nodeText)
+                                        } else {
+                                            record["location"][i][nodeName] 
+                                                = new Array();
+                                            record["location"][i][nodeName]
+                                                .push(nodeText)
+                                        }
+                                    } else {
+                                        record["location"][i][nodeName] 
+                                            = nodeText;
+                                    }
                                 }
                             }
                         }