Put an alert in ajaxError. This is not pretty and should be moved to the client
[pazpar2-moved-to-github.git] / js / pz2.js
index 5870bae..d6d7f7d 100644 (file)
--- a/js/pz2.js
+++ b/js/pz2.js
@@ -1,5 +1,5 @@
 /*
-** $Id: pz2.js,v 1.7 2007-04-15 03:24:18 quinn Exp $
+** $Id: pz2.js,v 1.10 2007-04-18 04:23:53 quinn Exp $
 ** pz2.js - pazpar2's javascript client library.
 */
 
@@ -75,6 +75,7 @@ var pz2 = function(paramArray) {
     __myself.termTimer = null;
     __myself.showTime = paramArray.showtime || 1000;
     __myself.showTimer = null;
+    __myself.showFastCount = 4;
     __myself.bytargetTime = paramArray.bytargettime || 1000;
     __myself.bytargetTimer = null;
 
@@ -91,7 +92,15 @@ var pz2 = function(paramArray) {
     $(document).ajaxError( 
     function (request, settings, exception) {
         if ( settings.responseXML && settings.responseXML.getElementsByTagName("error") )
-            throw new Error( settings.responseXML.getElementsByTagName("error")[0].childNodes[0].nodeValue);
+       {
+           var err = settings.responseXML.getElementsByTagName("error")[0].childNodes[0].nodeValue;
+           if (err == 'QUERY')
+                   alert("Your query was not understood. Please rephrase");
+           else
+                   throw new Error( settings.responseXML.getElementsByTagName("error")[0].childNodes[0].nodeValue);
+       }
+       else
+           throw exception;
     });
     
     // auto init session?
@@ -278,8 +287,11 @@ pz2.prototype = {
                     }
                     __myself.showCallback(show);
                     __myself.showCounter++;
+                   var delay = __myself.showTime;
+                   if (__myself.showCounter > __myself.showFastCount)
+                           delay *= 2;
                     if (activeClients > 0)
-                        __myself.showTimer = setTimeout("__myself.show()", (__myself.showTime + __myself.showCounter*__myself.dumpFactor));
+                        __myself.showTimer = setTimeout("__myself.show()", delay);
                 }
                 else
                     // if it gets here the http return code was 200 (pz2 errors are 417)