Index: googleanalytics.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/google_analytics/googleanalytics.module,v
retrieving revision 1.14.2.22
diff -u -F^f -r1.14.2.22 googleanalytics.module
--- googleanalytics.module	30 Dec 2007 01:48:30 -0000	1.14.2.22
+++ googleanalytics.module	30 Jan 2008 14:45:54 -0000
@@ -108,41 +108,35 @@ function googleanalytics_footer($main = 
       }
     }
 
-    // Download tracking
+    // Download tracking.
     $path = drupal_get_path('module', 'googleanalytics');
     if ($trackfiles = variable_get('googleanalytics_trackfiles', GA_TRACKFILES)) {
-      drupal_add_js(array('googleanalytics' => array('trackDownload' => $trackfiles)), 'setting', 'header');
+      drupal_add_js(array('googleanalytics' => array('trackDownload' => $trackfiles)), 'setting', 'footer');
       drupal_add_js($path .'/downloadtracker.js', 'module', 'footer');
     }
 
     // Add any custom code snippets if specified
     $codesnippet = variable_get('googleanalytics_codesnippet', '');
 
-    // Should a local cached copy of Urchin.js be used?
-    if (variable_get('googleanalytics_cache', 0) && (variable_get('file_downloads', FILE_DOWNLOADS_PUBLIC) == FILE_DOWNLOADS_PUBLIC)) {
-      $source = googleanalytics_cache();
-      if ($source) {
-        $source = base_path() . $source;
-      }
+    // Depending on the version we're using, we either have to use urchin.js
+    // or ga.js.
+    $js_file = ($legacy_version) ? 'urchin.js' : 'ga.js';
+    $url = 'http'. $prefix .'.google-analytics.com/'. $js_file;
+
+    // Add the .js file. Prefer a locally cached copy.
+    if (variable_get('googleanalytics_cache', 0) && (variable_get('file_downloads', FILE_DOWNLOADS_PUBLIC) == FILE_DOWNLOADS_PUBLIC) && $source = googleanalytics_cache($url)) {
+      drupal_add_js($source, 'module', 'footer');
     }
-    if (!isset($source)) {
-      $source = 'http'. $prefix .'.google-analytics.com/urchin.js';
+    else {
+      $script .= '<script type="text/javascript" src="'. $url .'"></script>';
     }
 
-    // Should the legacy code be used?
+    // Add Javascript code to set parameters and start the tracking.
     if ($legacy_version) {
-      $script = '<script type="text/javascript" src="' . $source . "\"></script>\n";
-      $script .= '<script type="text/javascript">' . "<!--\n_uacct = \"".$id."\";{$segmentation}{$codesnippet}urchinTracker();\n// --></script><noscript></noscript>\n";
-    } else {
-      $script ='<script type="text/javascript">
-                  document.write("\<script src=\'http" + "' . $prefix . '" + ".google-analytics.com/ga.js\' type=\'text/javascript\'>\<\/script>" );
-                </script>
-                <script type="text/javascript">
-                  var pageTracker = _gat._getTracker("'.$id.'");
-                  pageTracker._initData();
-                  '.$segmentation.$codesnippet.'
-                  pageTracker._trackPageview();
-                </script>';
+      drupal_add_js('_uacct = "'. $id .'"; '. $segmentation . $codesnippet .' urchinTracker();', 'inline', 'footer');
+    }
+    else {
+      drupal_add_js('var pageTracker = _gat._getTracker("'. $id .'"); pageTracker._initData(); '. $segmentation . $codesnippet .' pageTracker._trackPageview();', 'inline', 'footer');
     }
 
     return $script;
