Don't trigger an init() on ready if already active or mkws_noready
[mkws-moved-to-github.git] / src / mkws-core.js
index 3632a64..3031dd0 100644 (file)
@@ -14,6 +14,7 @@
 window.mkws = {
   $: $, // Our own local copy of the jQuery object
   authenticated: false,
+  authenticating: false,
   active: false,
   log_level: 1, // Will be overridden from mkws.config, but
                 // initial value allows jQuery popup to use logging.
@@ -445,6 +446,7 @@ mkws.pagerNext = function(tname) {
    * for the site.
    */
   function authenticateSession(auth_url, auth_domain, pp2_url) {
+    mkws.authenticating = true;
     log("service proxy authentication on URL: " + auth_url);
 
     if (!auth_domain) {
@@ -458,6 +460,7 @@ mkws.pagerNext = function(tname) {
     }, auth_domain);
 
     request.get(null, function(data) {
+      mkws.authenticating = false;
       if (!$.isXMLDoc(data)) {
         alert("Service Proxy authentication response is not a valid XML document");
         return;
@@ -650,14 +653,12 @@ mkws.pagerNext = function(tname) {
       }
     */
 
-    if (mkws.config.use_service_proxy) {
-      if (!mkws.authenticated) {
-        authenticateSession(mkws.config.service_proxy_auth,
-                            mkws.config.service_proxy_auth_domain,
-                            mkws.config.pazpar2_url);
-      }
-    } else {
-      // raw pp2
+    if (mkws.config.use_service_proxy && !mkws.authenticated && !mkws.authenticating) {
+      authenticateSession(mkws.config.service_proxy_auth,
+                          mkws.config.service_proxy_auth_domain,
+                          mkws.config.pazpar2_url);
+    } else if (!mkws.authenticating) {
+      // raw pp2 or we have a session already open
       runAutoSearches();
     }
     
@@ -666,7 +667,9 @@ mkws.pagerNext = function(tname) {
   };
 
   $(document).ready(function() {
-    mkws.init();
+    if (!window.mkws_noready && !mkws.authenticating && !mkws.active) {
+       mkws.init();
+    }
   });
 
 })(mkws.$);