? .DS_Store
? async02.patch
? async_01.patch
Index: woopra.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/woopra/woopra.module,v
retrieving revision 1.1.2.9
diff -u -p -r1.1.2.9 woopra.module
--- woopra.module	11 Jan 2010 21:07:14 -0000	1.1.2.9
+++ woopra.module	15 Nov 2010 02:29:59 -0000
@@ -96,6 +96,19 @@ function woopra_settings_form() {
       '#default_value' => variable_get('woopra_track_rid_'. $rid, TRUE),
     );
   }
+   
+  $form['advanced'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Advanced'),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+  );
+  $form['advanced']['woopra_async'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Asynchronous'),
+    '#default_value' => variable_get('woopra_async', FALSE),
+    '#description' => t("Use Woopra's asynchronous javascript."),    
+  ); 
 
   return system_settings_form($form);
 }
@@ -107,11 +120,26 @@ function woopra_footer($main = 0) {
   global $user;
   global $base_url;
   $script = '';
+  $async_code = '';
   if (arg(0) != 'admin') {
     if ((_woopra_track($user))) {
-      $woopra_js = '//static.woopra.com/js/woopra.v2.js';
-      $script .= "<script type=\"text/javascript\" src=\"$woopra_js\"></script>\n";
-      $script .= "<script type=\"text/javascript\">\n  woopraTracker.track();\n</script>\n";
+      if (variable_get('woopra_async', FALSE) == TRUE) {
+        $async_code .= '<script type="text/javascript">';
+        $async_code .=  'var woo_visitor={name:\''. $user->name .'\'};';         
+        $async_code .= '(function(){';
+        $async_code .= 'var wsc=document.createElement(\'script\');';
+        $async_code .= 'wsc.src=document.location.protocol+\'//static.woopra.com/js/woopra.js\';';
+        $async_code .= 'wsc.async=true;';
+        $async_code .= 'var ssc = document.getElementsByTagName(\'script\')[0];';
+        $async_code .= 'ssc.parentNode.insertBefore(wsc, ssc);';
+        $async_code .= '})();';
+        $async_code .= '</script>';
+        $script .= $async_code;
+      }
+      else {
+        $woopra_js = '//static.woopra.com/js/woopra.v2.js';
+        $script .= "<script type=\"text/javascript\" src=\"$woopra_js\"></script>\n";
+        $script .= "<script type=\"text/javascript\">\n  woopraTracker.track();\n</script>\n";
     }
   }
   return $script;
