Index: js/ajax_view.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/js/ajax_view.js,v
retrieving revision 1.13
diff -u -p -r1.13 ajax_view.js
--- js/ajax_view.js	2 Dec 2008 18:35:50 -0000	1.13
+++ js/ajax_view.js	5 Dec 2008 08:00:34 -0000
@@ -98,16 +98,18 @@ Drupal.behaviors.ViewsAjaxView = functio
         var target = this;
         $(this)
         .addClass('views-processed')
-        // Process pager links.
-        .find('ul.pager > li > a')
+        // Process pager links and tablesort links.
+        .find('ul.pager > li > a, th.views-field a, .views-summary a')
         .each(function () {
-          var viewData = Drupal.Views.parseQueryString($(this).attr('href'));
-          if (!viewData['view_name']) {
-            $.each(settings, function (key, setting) {
-              viewData[key] = setting;
-            });
-          }
-
+          var viewData = {};
+          // Construct an object using the settings defaults and then overriding
+          // with data specific to the link.
+          $.extend(
+            viewData,
+            settings,
+            Drupal.Views.parseQueryString($(this).attr('href')),
+            Drupal.Views.parseViewArgs($(this).attr('href'), settings.view_base_path)
+          );
           $(this)
             .click(function () {
               $(this).addClass('views-throbbing');
@@ -117,6 +119,8 @@ Drupal.behaviors.ViewsAjaxView = functio
                 data: viewData,
                 success: function(response) {
                   $(this).removeClass('views-throbbing');
+                  var offset = $(target).offset();
+                  window.scrollTo(0, offset.top - 10);
                   // Call all callbacks.
                   if (response.__callbacks) {
                     $.each(response.__callbacks, function(i, callback) {
@@ -131,38 +135,6 @@ Drupal.behaviors.ViewsAjaxView = functio
               return false;
             });
         })
-        .end()
-        // Process tablesort links.
-        .find('th.views-field a')
-        .each(function () {
-          var viewData = Drupal.Views.parseQueryString($(this).attr('href'));
-          $.each(settings, function (key, setting) {
-            viewData[key] = setting;
-          });
-
-          $(this)
-            .click(function () {
-              $(this).addClass('views-throbbing');
-              $.ajax({
-                url: ajax_path,
-                type: 'GET',
-                data: viewData,
-                success: function(response) {
-                  $(this).removeClass('views-throbbing');
-                  // Call all callbacks.
-                  if (response.__callbacks) {
-                    $.each(response.__callbacks, function(i, callback) {
-                      eval(callback)(target, response);
-                    });
-                  }
-                },
-                error: function() { $(this).removeClass('views-throbbing'); alert(Drupal.t("An error occurred at @path.", {'@path': ajax_path})); },
-                dataType: 'json'
-              });
-
-              return false;
-            });
-        }); // .each 'th.views-field a'
       }); // $view.filter().each
     }); // .each Drupal.settings.views.ajaxViews
   } // if
Index: js/base.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/js/base.js,v
retrieving revision 1.8
diff -u -p -r1.8 base.js
--- js/base.js	29 May 2008 19:44:50 -0000	1.8
+++ js/base.js	5 Dec 2008 08:00:34 -0000
@@ -74,4 +74,53 @@ Drupal.Views.parseQueryString = function
   }
   return args;
 };
+var cc = false;
+/**
+ * Helper function to return a view's arguments based on a path.
+ */
+Drupal.Views.parseViewArgs = function (href, viewPath) {
+  var returnObj = {};
+  var path = Drupal.Views.getPath(href);
+  // Ensure we have a correct path.
+  if (viewPath && path.substring(0, viewPath.length + 1) == viewPath + '/') {
+    var args = path.substring(viewPath.length + 1, path.length);
+    returnObj.view_args = args;
+    returnObj.view_path = path;
+  }
+  return returnObj;
+};
+
+
+/**
+ * Strip off the protocol plus domain from an href.
+ */
+Drupal.Views.pathPortion = function (href) {
+  // Remove e.g. http://example.com if present.
+  var protocol = window.location.protocol;
+  if (href.substring(0, protocol.length) == protocol) {
+    // 2 is the length of the '//' that normally follows the protocol
+    href = href.substring(href.indexOf('/', protocol.length + 2));
+  }
+  return href;
+};
+
+/**
+ * Return the Drupal path portion of an href.
+ */
+Drupal.Views.getPath = function (href) {
+  href = Drupal.Views.pathPortion(href);
+  href = href.substring(Drupal.settings.basePath.length, href.length);
+  // 3 is the length of the '?q=' added to the url without clean urls.
+  if (href.substring(0, 3) == '?q=') {
+    href = href.substring(3, href.length);
+  }
+  var chars = ['#', '?', '&'];
+  for (i in chars) {
+    if (href.indexOf(chars[i]) > -1) {
+      href = href.substr(0, href.indexOf(chars[i]));
+    }
+  }
+  return href;
+};
+
 
Index: theme/theme.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/theme/theme.inc,v
retrieving revision 1.65
diff -u -p -r1.65 theme.inc
--- theme/theme.inc	2 Dec 2008 22:17:42 -0000	1.65
+++ theme/theme.inc	5 Dec 2008 08:00:37 -0000
@@ -38,6 +38,8 @@ function _views_theme_functions($hook, $
  * Preprocess the primary theme implementation for a view.
  */
 function template_preprocess_views_view(&$vars) {
+  global $base_path;
+
   $view = $vars['view'];
 
   $vars['rows']       = !empty($view->result) || !empty($view->style_plugin->definition['even empty']) ? $view->style_plugin->render($view->result) : '';
@@ -136,6 +138,8 @@ function template_preprocess_views_view(
             'view_display_id' => $view->current_display,
             'view_args' => implode('/', $view->args),
             'view_path' => $_GET['q'],
+            // Pass through URL to ensure we get e.g. language prefixes.
+            'view_base_path' => isset($view->display['page']) ? substr(url($view->display['page']->display_options['path']), strlen($base_path)) : '',
             'view_dom_id' => $vars['dom_id'],
             // To fit multiple views on a page, the programmer may have
             // overridden the display's pager_element.
Index: theme/views-view-summary-unformatted.tpl.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/theme/views-view-summary-unformatted.tpl.php,v
retrieving revision 1.1
diff -u -p -r1.1 views-view-summary-unformatted.tpl.php
--- theme/views-view-summary-unformatted.tpl.php	6 Jun 2008 22:43:08 -0000	1.1
+++ theme/views-view-summary-unformatted.tpl.php	5 Dec 2008 08:00:37 -0000
@@ -10,7 +10,7 @@
  */
 ?>
 <?php foreach ($rows as $row): ?>
-  <?php print !empty($options['inline']) ? '<span>' : '<div>'; ?>
+  <?php print (!empty($options['inline']) ? '<span' : '<div') . ' class="views-summary views-summary-unformatted">'; ?>
     <?php if (!empty($row->separator)) { print $row->separator; } ?>
     <a href="<?php print $row->url; ?>"><?php print $row->link; ?></a>
     <?php if (!empty($options['count'])): ?>
Index: theme/views-view-summary.tpl.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/theme/views-view-summary.tpl.php,v
retrieving revision 1.5
diff -u -p -r1.5 views-view-summary.tpl.php
--- theme/views-view-summary.tpl.php	29 Apr 2008 00:35:08 -0000	1.5
+++ theme/views-view-summary.tpl.php	5 Dec 2008 08:00:37 -0000
@@ -8,7 +8,7 @@
  */
 ?>
 <div class="item-list">
-  <ul>
+  <ul class="views-summary">
   <?php foreach ($rows as $row): ?>
     <li><a href="<?php print $row->url; ?>"><?php print $row->link; ?></a>
       <?php if (!empty($options['count'])): ?>
