Index: /extensions/autoupdate/trunk/admin.php
===================================================================
--- /extensions/autoupdate/trunk/admin.php	(revision 9711)
+++ /extensions/autoupdate/trunk/admin.php	(revision 9712)
@@ -3,6 +3,4 @@
 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
 
-include_once(AUTOUPDATE_PATH.'include/functions.inc.php');
-include_once(PHPWG_ROOT_PATH.'admin/include/pclzip.lib.php');
 include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
 
Index: /extensions/autoupdate/trunk/ajax/check_updates.php
===================================================================
--- /extensions/autoupdate/trunk/ajax/check_updates.php	(revision 9711)
+++ /extensions/autoupdate/trunk/ajax/check_updates.php	(revision 9712)
@@ -5,5 +5,4 @@
 include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
 include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
-include_once(PHPWG_ROOT_PATH.'admin/include/functions_plugins.inc.php');
 
 check_status(ACCESS_ADMINISTRATOR);
Index: /extensions/autoupdate/trunk/ajax/ignore_list.php
===================================================================
--- /extensions/autoupdate/trunk/ajax/ignore_list.php	(revision 9711)
+++ /extensions/autoupdate/trunk/ajax/ignore_list.php	(revision 9712)
@@ -5,5 +5,4 @@
 include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
 include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
-include_once(PHPWG_ROOT_PATH.'admin/include/functions_plugins.inc.php');
 
 check_status(ACCESS_ADMINISTRATOR);
Index: /extensions/autoupdate/trunk/ajax/update_language.php
===================================================================
--- /extensions/autoupdate/trunk/ajax/update_language.php	(revision 9711)
+++ /extensions/autoupdate/trunk/ajax/update_language.php	(revision 9712)
@@ -5,5 +5,4 @@
 include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
 include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
-include_once(PHPWG_ROOT_PATH.'admin/include/functions_plugins.inc.php');
 
 check_status(ACCESS_ADMINISTRATOR);
Index: /extensions/autoupdate/trunk/ajax/update_plugin.php
===================================================================
--- /extensions/autoupdate/trunk/ajax/update_plugin.php	(revision 9711)
+++ /extensions/autoupdate/trunk/ajax/update_plugin.php	(revision 9712)
@@ -5,5 +5,4 @@
 include_once(PHPWG_ROOT_PATH.'include/common.inc.php' );
 include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
-include_once(PHPWG_ROOT_PATH.'admin/include/functions_plugins.inc.php');
 
 if (!defined('AUTOUPDATE_PATH'))
Index: /extensions/autoupdate/trunk/ajax/update_theme.php
===================================================================
--- /extensions/autoupdate/trunk/ajax/update_theme.php	(revision 9711)
+++ /extensions/autoupdate/trunk/ajax/update_theme.php	(revision 9712)
@@ -5,5 +5,4 @@
 include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
 include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
-include_once(PHPWG_ROOT_PATH.'admin/include/functions_plugins.inc.php');
 
 check_status(ACCESS_ADMINISTRATOR);
Index: /extensions/autoupdate/trunk/include/functions.inc.php
===================================================================
--- /extensions/autoupdate/trunk/include/functions.inc.php	(revision 9711)
+++ /extensions/autoupdate/trunk/include/functions.inc.php	(revision 9712)
@@ -295,5 +295,5 @@
   if (!version_compare($_POST['upgrade_to'], PHPWG_VERSION, '>'))
   {
-    redirect(get_admin_plugin_menu_link(AUTOUPDATE_PATH . '/autoupdate.php'));
+    redirect(get_root_url().'admin.php?page=plugin-'.basename(dirname(__FILE__)));
   }
 
@@ -417,12 +417,4 @@
 }
 
-if (!function_exists('is_webmaster'))
-{
-  function is_webmaster($user_status = '')
-  {
-    return is_autorize_status(ACCESS_WEBMASTER, $user_status);
-  }
-}
-
 define('AU_DEFAULT_INDEX', file_get_contents(AUTOUPDATE_PATH.'index.php'));
 ?>
Index: /extensions/autoupdate/trunk/main.inc.php
===================================================================
--- /extensions/autoupdate/trunk/main.inc.php	(revision 9711)
+++ /extensions/autoupdate/trunk/main.inc.php	(revision 9712)
@@ -28,7 +28,5 @@
 function check_for_auto_upgrade($plugin_menu_links)
 {
-  global $template, $page, $conf, $header_notes, $prefixeTable;
-
-  load_language('plugin.lang', dirname(__FILE__).'/');
+  global $template, $page, $header_notes;
 
   if ($page['page'] == 'intro')
@@ -44,4 +42,5 @@
       or $_SESSION['need_update'] !== false or $_SESSION['extensions_need_update'] !== array())
     {
+      load_language('plugin.lang', dirname(__FILE__).'/');
       $template->set_filename('autoupdate_head', realpath(AUTOUPDATE_PATH.'template/head.tpl'));
       array_push($header_notes, $template->parse('autoupdate_head', true));
Index: tensions/autoupdate/trunk/remote.php
===================================================================
--- /extensions/autoupdate/trunk/remote.php	(revision 9711)
+++ 	(revision )
@@ -1,55 +1,0 @@
-<?php
-
-define('PHPWG_ROOT_PATH','../../');
-define('IN_ADMIN', true);
-include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
-include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
-include_once(PHPWG_ROOT_PATH.'admin/include/functions_plugins.inc.php');
-
-check_status(ACCESS_ADMINISTRATOR);
-
-if (isset($_POST['autoupdate_ignore'])
-  and is_array($_POST['autoupdate_ignore'])
-  and count($_POST['autoupdate_ignore']) == 2)
-{
-  // Add or remove plugin from ignore list
-  $ignore = unserialize($conf['autoupdate_ignore_list']);
-  $ignore = array_flip($ignore);
-
-  if ($_POST['autoupdate_ignore'][1] == "false" and isset($ignore[$_POST['autoupdate_ignore'][0]]))
-  {
-    unset($ignore[$_POST['autoupdate_ignore'][0]]);
-    $ignore = array_flip($ignore);
-  }
-  elseif ($_POST['autoupdate_ignore'][1] == "true" and !isset($ignore[$_POST['autoupdate_ignore'][0]]))
-  {
-    $ignore = array_flip($ignore);
-    array_push($ignore, $_POST['autoupdate_ignore'][0]);
-  }
-  else
-  {
-    die;
-  }
-  sort($ignore);  
-
-  $query = '
-UPDATE '.CONFIG_TABLE.'
-SET value = "'.addslashes(serialize($ignore)).'"
-WHERE param = "autoupdate_ignore_list"
-;';
-  pwg_query($query);
-
-  unset($_SESSION['plugins_need_update']);
-  echo 'ok';
-}
-else
-{
-  // Check if gallery or plugins are up to date
-  load_language('plugin.lang', dirname(__FILE__).'/');
-  header('Content-Type: text/html; charset=UTF-8');
-
-  include(AUTOUPDATE_PATH.'include/functions_remote.inc.php');
-  echo autoupdate_check_version();
-}
-
-?>
Index: /extensions/autoupdate/trunk/template/autoupdate.js
===================================================================
--- /extensions/autoupdate/trunk/template/autoupdate.js	(revision 9712)
+++ /extensions/autoupdate/trunk/template/autoupdate.js	(revision 9712)
@@ -0,0 +1,118 @@
+function updateAll() {
+  if (confirm(confirmMsg)) {
+    extList = [];
+    jQuery('.updateExtension').each( function() {
+      if (jQuery(this).parents('div').css('display') == 'block') {
+        extList.push(jQuery(this).attr('onClick'));
+      }
+    });
+    if (extList.length > 0) eval(extList[0]);
+  }
+  return false;
+};
+
+function resetIgnored() {
+  jQuery.post(
+    "plugins/autoupdate/ajax/ignore_list.php",
+    { reset: true },
+    function(data) {
+      if (data == "ok") {
+        jQuery(".pluginBox, fieldset").show();
+        jQuery("#update_all").show();
+        jQuery("#up_to_date").hide();
+        jQuery("#reset_ignore").hide();
+        jQuery("#ignored").hide();
+      }
+    }
+  );
+  return false;
+};
+
+function checkFieldsets() {
+  var types = new Array('plugin', 'theme', 'language');
+  var total = 0;
+  var ignored = 0;
+  for (i=0;i<3;i++) {
+    nbExtensions = 0;
+    jQuery("div[id^='"+types[i]+"_']").each(function(index) {
+        if (jQuery(this).css('display') == 'block')
+          nbExtensions++;
+        else
+          ignored++;
+      });
+    total = total + nbExtensions;
+    if (nbExtensions == 0)
+      jQuery("#"+types[i]+"s").hide();
+  }
+
+  if (total == 0) {
+    jQuery("#update_all").hide();
+    jQuery("#up_to_date").show();
+  }
+  if (ignored > 0) {
+    jQuery("#reset_ignore").val(restoreMsg + ' (' + ignored + ')');
+  }
+};
+
+function upgradeExtension(type, id, revision) {
+  jQuery.ajax({
+    type: 'POST',
+    url: 'plugins/autoupdate/ajax/update_'+type+'.php',
+    data: { id: id, revision: revision },
+    success: function(data) {
+      if (data['result']) {
+        jQuery("#"+type+"_"+id).remove();
+        checkFieldsets();
+        jQuery.jGrowl(
+          data['msg'],
+          {
+            theme:  'success',
+            header: successHead,
+            life:   4000,
+            sticky: false
+          }
+        );
+        if (extList.length > 0) extList.shift();
+        if (extList.length > 0) eval(extList[0]);
+      } else {
+        jQuery.jGrowl(
+          data['msg'],
+          {
+            theme:  'error',
+            header: errorHead,
+            sticky: true
+          }
+        );
+        extList = [];
+      }
+    },
+    error: function(data) {
+      jQuery.jGrowl(
+        errorMsg,
+        {
+          theme:  'error',
+          header: errorHead,
+          sticky: true
+        }
+      );
+      extList = [];
+    },
+    dataType: 'json'
+  });
+  return false;
+};
+
+function ignoreExtension(type, id) {
+  jQuery.post(
+    "plugins/autoupdate/ajax/ignore_list.php",
+    { type: type+'s', id: id },
+    function(data) {
+      if (data == "ok") {
+        jQuery("#"+type+"_"+id).hide();
+        jQuery("#reset_ignore").show();
+        checkFieldsets();
+      }
+    }
+  );
+  return false;
+};
Index: tensions/autoupdate/trunk/template/autoupdate.tpl
===================================================================
--- /extensions/autoupdate/trunk/template/autoupdate.tpl	(revision 9711)
+++ 	(revision )
@@ -1,82 +1,0 @@
-{html_head}
-{literal}
-<style type="text/css">
-form { width: 750px; }
-fieldset { padding-bottom: 30px; }
-p, form p { text-align: left; margin-left:20px; }
-li { margin: 5px; }
-</style>
-{/literal}
-{/html_head}
-
-<div class="titrePage">
-{if $STEP < 2}
-<h2>Piwigo AutoUpgrade</h2>
-{else}
-<h2>{'Upgrade to Piwigo %s'|@translate|@sprintf:$UPGRADE_TO}</h2>
-{/if}
-</div>
-
-{if $STEP == 0}
-  {if $CHECK_VERSION}
-    <p>{'You are running the latest version of Piwigo.'|@translate}</p>
-  {elseif $DEV_VERSION} 
-    <p>{'You are running on development sources, no check possible.'|@translate}</p>
-  {else}
-    <p>{'Check for upgrade failed for unknown reasons.'|@translate}</p>
-  {/if}
-{/if}
-
-{if $STEP == 1}
-<h4>{'Two upgrades are available'|@translate}:</h4>
-<p>
-<ul>
-  <li><a href="{$AU_URL}&amp;step=2&amp;to={$MINOR_VERSION}"><strong>{'Upgrade to Piwigo %s'|@translate|@sprintf:$MINOR_VERSION}</strong></a>: {'This is a minor upgrade, with only bug corrections.'|@translate}</li>
-  <li><a href="{$AU_URL}&amp;step=3&amp;to={$MAJOR_VERSION}"><strong>{'Upgrade to Piwigo %s'|@translate|@sprintf:$MAJOR_VERSION}</strong></a>: {'This is a major upgrade, with <a href="%s">new exciting features</a>.'|@translate|@sprintf:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate}</li>
-</ul>
-</p>
-<p>{'You can upgrade to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate|@sprintf:$MAJOR_VERSION:$MINOR_VERSION}</p>
-{/if}
-
-{if $STEP == 2}
-<p>
-  {'A new version of Piwigo is available.'|@translate}<br>
-  {'This is a minor upgrade, with only bug corrections.'|@translate}
-</p>
-<form action="" method="post">
-<p><input type="submit" name="submit" value="{'Upgrade to Piwigo %s'|@translate|@sprintf:$UPGRADE_TO}" onClick="return confirm('{'autoupdate_alert'|@translate}');"></p>
-<p><input type="hidden" name="upgrade_to" value="{$UPGRADE_TO}"></p>
-</form>
-{/if}
-
-{if $STEP == 3}
-<p>
-  {'A new version of Piwigo is available.'|@translate}<br>
-  {'This is a major upgrade, with <a href="%s">new exciting features</a>.'|@translate|@sprintf:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate}
-</p>
-<form action="" method="post">
-
-{if version_compare($PHPWG_VERSION, '2.1', '<')}
-{counter assign=i}
-<fieldset>
-  <legend>{'autoupdate_step_'|cat:$i|@translate}</legend>
-  <p><input type="submit" name="saveTemplate" value="{'Save Template Directory'|@translate}"></p>
-</fieldset>
-{/if}
-
-{counter assign=i}
-<fieldset>
-  <legend>{'autoupdate_step_'|cat:$i|@translate}</legend>
-  <p><input type="checkbox" name="includeHistory"> &nbsp; {'Include history data (Warning: server memory limit may be exceeded)'|@translate}</p>
-  <p><input type="submit" name="dumpDatabase" value="{'Dump Database'|@translate}"></p>
-</fieldset>
-
-{counter assign=i}
-<fieldset>
-  <legend>{'autoupdate_step_'|cat:$i|@translate}</legend>
-  <p><input type="submit" name="submit" value="{'Upgrade to Piwigo %s'|@translate|@sprintf:$UPGRADE_TO}" onClick="return confirm('{'autoupdate_alert'|@translate}');"></p>
-</fieldset>
-
-<p><input type="hidden" name="upgrade_to" value="{$UPGRADE_TO}"></p>
-</form>
-{/if}
Index: tensions/autoupdate/trunk/template/extensions.tpl
===================================================================
--- /extensions/autoupdate/trunk/template/extensions.tpl	(revision 9711)
+++ 	(revision )
@@ -1,280 +1,0 @@
-{combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js' }
-{combine_css path="admin/themes/default/uploadify.jGrowl.css"}
-
-{footer_script require='jquery.jgrowl'}
-var extList = new Array();
-var confirmMsg  = '{'Are you sure?'|@translate|@escape:'javascript'}';
-var errorHead   = '{'ERROR'|@translate|@escape:'javascript'}';
-var successHead = '{'Upgrade Complete'|@translate|@escape:'javascript'}';
-var errorMsg    = '{'an error happened'|@translate|@escape:'javascript'}';
-var restoreMsg  = '{'autoupdate_reset_ignore'|@translate|@escape:'javascript'}';
-
-{literal}
-jQuery(document).ready(function() {
-
-	jQuery("td[id^='desc_'], p[id^='revdesc_']").click(function() {
-		id = this.id.split('_');
-		jQuery("#revdesc_"+id[1]).toggle('blind');
-    jQuery(".button_"+id[1]).toggle();
-		return false;
-	});
-
-  jQuery("#update_all").click(function() {
-    if (confirm(confirmMsg)) {
-      extList = [];
-      jQuery('.updateExtension').each( function() {
-        if (jQuery(this).parents('div').css('display') == 'block') {
-          extList.push(jQuery(this).attr('onClick'));
-        }
-      });
-      if (extList.length > 0) eval(extList[0]);
-    }
-    return false;
-  });  
-
-  jQuery("#reset_ignore").click(function() {
-    jQuery.post(
-      "plugins/autoupdate/ajax/ignore_list.php",
-      { reset: true },
-      function(data) {
-        if (data == "ok") {
-          jQuery(".pluginBox, fieldset").show();
-          jQuery("#up_to_date").hide();
-          jQuery("#reset_ignore").hide();
-          jQuery("#ignored").hide();
-        }
-      }
-    );
-    return false;
-  });
-
-});
-
-function checkFieldsets() {
-  var types = new Array('plugin', 'theme', 'language');
-  var total = 0;
-  var ignored = 0;
-  for (i=0;i<3;i++) {
-    nbExtensions = 0;
-    jQuery("div[id^='"+types[i]+"_']").each(function(index) {
-        if (jQuery(this).css('display') == 'block')
-          nbExtensions++;
-        else
-          ignored++;
-      });
-    total = total + nbExtensions;
-    if (nbExtensions == 0)
-      jQuery("#"+types[i]+"s").hide();
-  }
-
-  if (total == 0) {
-    jQuery("#update_all").hide();
-    jQuery("#up_to_date").show();
-  }
-  if (ignored > 0) {
-    jQuery("#reset_ignore").val(restoreMsg + ' (' + ignored + ')');
-  }
-}
-
-function upgradeExtension(type, id, revision) {
-  jQuery.ajax({
-    type: 'POST',
-    url: 'plugins/autoupdate/ajax/update_'+type+'.php',
-    data: { id: id, revision: revision },
-    success: function(data) {
-      if (data['result']) {
-        jQuery("#"+type+"_"+id).remove();
-        checkFieldsets();
-        jQuery.jGrowl(
-          data['msg'],
-          {
-            theme:  'success',
-            header: successHead,
-            life:   4000,
-            sticky: false
-          }
-        );
-        if (extList.length > 0) extList.shift();
-        if (extList.length > 0) eval(extList[0]);
-      } else {
-        jQuery.jGrowl(
-          data['msg'],
-          {
-            theme:  'error',
-            header: errorHead,
-            sticky: true
-          }
-        );
-        extList = [];
-      }
-    },
-    error: function(data) {
-      jQuery.jGrowl(
-        errorMsg,
-        {
-          theme:  'error',
-          header: errorHead,
-          sticky: true
-        }
-      );
-      extList = [];
-    },
-    dataType: 'json'
-  });
-  return false;
-}
-
-function ignoreExtension(type, id) {
-  jQuery.post(
-    "plugins/autoupdate/ajax/ignore_list.php",
-    { type: type+'s', id: id },
-    function(data) {
-      if (data == "ok") {
-        jQuery("#"+type+"_"+id).hide();
-        jQuery("#reset_ignore").show();
-        checkFieldsets();
-      }
-    }
-  );
-  return false;
-}
-
-checkFieldsets();
-{/literal}{/footer_script}
-
-<div class="titrePage">
-  <h2>Piwigo AutoUpgrade</h2>
-</div>
-
-<div>
-<input type="button" id="update_all" value="{'autoupdate_update_all'|@translate}">
-<input type="button" id="reset_ignore" value="{'autoupdate_reset_ignore'|@translate}" {if !$SHOW_RESET}style="display:none;"{/if}>
-</div>
-
-<p id="up_to_date" style="display:none; text-align:left; margin-left:20px;">{'All extensions are up to date.'|@translate}</p>
-
-{if not empty($update_plugins)}
-<div>
-<fieldset id="plugins">
-<legend>{'Plugins which need upgrade'|@translate}</legend>
-{foreach from=$update_plugins item=plugin name=plugins_loop}
-<div class="pluginBox" id="plugin_{$plugin.PLUGIN_ID}" {if $plugin.IGNORED}style="display:none;"{/if}>
-  <table>
-    <tr>
-      <td class="pluginBoxNameCell">
-        {$plugin.EXT_NAME}
-      </td>
-      <td>
-        <a href="#" onClick="upgradeExtension('plugin', '{$plugin.PLUGIN_ID}', {$plugin.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>
-        | <a href="{$plugin.URL_DOWNLOAD}">{'Download'|@translate}</a>
-        | <a href="#" onClick="ignoreExtension('plugin', '{$plugin.PLUGIN_ID}');">{'autoupdate_ignore'|@translate}</a>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        {'Version'|@translate} {$plugin.CURRENT_VERSION}
-      </td>
-      <td class="pluginDesc" id="desc_{$plugin.ID}">
-        <em>{'Downloads'|@translate}: {$plugin.DOWNLOADS}</em>
-        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/plus.gif" alt="" class="button_{$plugin.ID}">
-        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/minus.gif" alt="" class="button_{$plugin.ID}" style="display:none;">
-        {'New Version'|@translate} : {$plugin.NEW_VERSION}
-        | {'By %s'|@translate|@sprintf:$plugin.AUTHOR}
-      </td>
-    </tr>
-    <tr>
-      <td></td>
-      <td class="pluginDesc">
-        <p id="revdesc_{$plugin.ID}" style="display:none;">{$plugin.REV_DESC|htmlspecialchars|nl2br}</p>
-      </td>
-    </tr>
-  </table>
-</div>
-{/foreach}
-</fieldset>
-</div>
-{/if}
-
-{if not empty($update_themes)}
-<div>
-<fieldset id="themes">
-<legend>{'Themes which need upgrade'|@translate}</legend>
-{foreach from=$update_themes item=theme name=themes_loop}
-<div class="pluginBox" id="theme_{$theme.THEME_ID}" {if $theme.IGNORED}style="display:none;"{/if}>
-  <table>
-    <tr>
-      <td class="pluginBoxNameCell">
-        {$theme.EXT_NAME}
-      </td>
-      <td>
-        <a href="#" onClick="upgradeExtension('theme', '{$theme.THEME_ID}', {$theme.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>
-        | <a href="{$theme.URL_DOWNLOAD}">{'Download'|@translate}</a>
-        | <a href="#" onClick="ignoreExtension('theme', '{$theme.THEME_ID}');">{'autoupdate_ignore'|@translate}</a>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        {'Version'|@translate} {$theme.CURRENT_VERSION}
-      </td>
-      <td class="pluginDesc" id="desc_{$theme.ID}">
-        <em>{'Downloads'|@translate}: {$theme.DOWNLOADS}</em>
-        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/plus.gif" alt="" class="button_{$theme.ID}">
-        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/minus.gif" alt="" class="button_{$theme.ID}" style="display:none;">
-        {'New Version'|@translate} : {$theme.NEW_VERSION}
-        | {'By %s'|@translate|@sprintf:$theme.AUTHOR}
-      </td>
-    </tr>
-    <tr>
-      <td></td>
-      <td class="pluginDesc">
-        <p id="revdesc_{$theme.ID}" style="display:none;">{$theme.REV_DESC|htmlspecialchars|nl2br}</p>
-      </td>
-    </tr>
-  </table>
-</div>
-{/foreach}
-</fieldset>
-</div>
-{/if}
-
-{if not empty($update_languages)}
-<div>
-<fieldset id="languages">
-<legend>{'Languages which need upgrade'|@translate}</legend>
-{foreach from=$update_languages item=language name=languages_loop}
-<div class="pluginBox" id="language_{$language.LANGUAGE_ID}" {if $language.IGNORED}style="display:none;"{/if}>
-  <table>
-    <tr>
-      <td class="pluginBoxNameCell">
-        {$language.EXT_NAME}
-      </td>
-      <td>
-        <a href="#" onClick="upgradeExtension('language', '{$language.LANGUAGE_ID}', {$language.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>
-        | <a href="{$language.URL_DOWNLOAD}">{'Download'|@translate}</a>
-        | <a href="#" onClick="ignoreExtension('language', '{$language.LANGUAGE_ID}');">{'autoupdate_ignore'|@translate}</a>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        {'Version'|@translate} {$language.CURRENT_VERSION}
-      </td>
-      <td class="pluginDesc" id="desc_{$language.ID}">
-        <em>{'Downloads'|@translate}: {$language.DOWNLOADS}</em>
-        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/plus.gif" alt="" class="button_{$language.ID}">
-        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/minus.gif" alt="" class="button_{$language.ID}" style="display:none;">
-        {'New Version'|@translate} : {$language.NEW_VERSION}
-        | {'By %s'|@translate|@sprintf:$language.AUTHOR}
-      </td>
-    </tr>
-    <tr>
-      <td></td>
-      <td class="pluginDesc">
-        <p id="revdesc_{$language.ID}" style="display:none;">{$language.REV_DESC|htmlspecialchars|nl2br}</p>
-      </td>
-    </tr>
-  </table>
-</div>
-{/foreach}
-</fieldset>
-</div>
-{/if}
Index: /extensions/autoupdate/trunk/template/update_ext.tpl
===================================================================
--- /extensions/autoupdate/trunk/template/update_ext.tpl	(revision 9712)
+++ /extensions/autoupdate/trunk/template/update_ext.tpl	(revision 9712)
@@ -0,0 +1,162 @@
+{combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js' }
+{combine_script id='jquery.autoupdate' load='footer' require='jquery' path='plugins/autoupdate/template/autoupdate.js' }
+{combine_css path="admin/themes/default/uploadify.jGrowl.css"}
+
+{footer_script require='jquery.autoupdate,jquery.effects.blind,jquery.jgrowl'}
+var extList = new Array();
+var confirmMsg  = '{'Are you sure?'|@translate|@escape:'javascript'}';
+var errorHead   = '{'ERROR'|@translate|@escape:'javascript'}';
+var successHead = '{'Upgrade Complete'|@translate|@escape:'javascript'}';
+var errorMsg    = '{'an error happened'|@translate|@escape:'javascript'}';
+var restoreMsg  = '{'autoupdate_reset_ignore'|@translate|@escape:'javascript'}';
+
+checkFieldsets();
+
+{literal}
+jQuery(document).ready(function() {
+	jQuery("td[id^='desc_'], p[id^='revdesc_']").click(function() {
+		id = this.id.split('_');
+		jQuery("#revdesc_"+id[1]).toggle('blind');
+    jQuery(".button_"+id[1]).toggle();
+		return false;
+	});
+});
+{/literal}
+{/footer_script}
+
+<div class="titrePage">
+  <h2>Piwigo AutoUpgrade</h2>
+</div>
+
+<div>
+<input type="button" id="update_all" value="{'autoupdate_update_all'|@translate}" onClick="updateAll();">
+<input type="button" id="reset_ignore" value="{'autoupdate_reset_ignore'|@translate}" onClick="resetIgnored();" {if !$SHOW_RESET}style="display:none;"{/if}>
+</div>
+
+<p id="up_to_date" style="display:none; text-align:left; margin-left:20px;">{'All extensions are up to date.'|@translate}</p>
+
+{if not empty($update_plugins)}
+<div>
+<fieldset id="plugins">
+<legend>{'Plugins which need upgrade'|@translate}</legend>
+{foreach from=$update_plugins item=plugin name=plugins_loop}
+<div class="pluginBox" id="plugin_{$plugin.PLUGIN_ID}" {if $plugin.IGNORED}style="display:none;"{/if}>
+  <table>
+    <tr>
+      <td class="pluginBoxNameCell">
+        {$plugin.EXT_NAME}
+      </td>
+      <td>
+        <a href="#" onClick="upgradeExtension('plugin', '{$plugin.PLUGIN_ID}', {$plugin.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>
+        | <a href="{$plugin.URL_DOWNLOAD}">{'Download'|@translate}</a>
+        | <a href="#" onClick="ignoreExtension('plugin', '{$plugin.PLUGIN_ID}');">{'autoupdate_ignore'|@translate}</a>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        {'Version'|@translate} {$plugin.CURRENT_VERSION}
+      </td>
+      <td class="pluginDesc" id="desc_{$plugin.ID}">
+        <em>{'Downloads'|@translate}: {$plugin.DOWNLOADS}</em>
+        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/plus.gif" alt="" class="button_{$plugin.ID}">
+        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/minus.gif" alt="" class="button_{$plugin.ID}" style="display:none;">
+        {'New Version'|@translate} : {$plugin.NEW_VERSION}
+        | {'By %s'|@translate|@sprintf:$plugin.AUTHOR}
+      </td>
+    </tr>
+    <tr>
+      <td></td>
+      <td class="pluginDesc">
+        <p id="revdesc_{$plugin.ID}" style="display:none;">{$plugin.REV_DESC|htmlspecialchars|nl2br}</p>
+      </td>
+    </tr>
+  </table>
+</div>
+{/foreach}
+</fieldset>
+</div>
+{/if}
+
+{if not empty($update_themes)}
+<div>
+<fieldset id="themes">
+<legend>{'Themes which need upgrade'|@translate}</legend>
+{foreach from=$update_themes item=theme name=themes_loop}
+<div class="pluginBox" id="theme_{$theme.THEME_ID}" {if $theme.IGNORED}style="display:none;"{/if}>
+  <table>
+    <tr>
+      <td class="pluginBoxNameCell">
+        {$theme.EXT_NAME}
+      </td>
+      <td>
+        <a href="#" onClick="upgradeExtension('theme', '{$theme.THEME_ID}', {$theme.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>
+        | <a href="{$theme.URL_DOWNLOAD}">{'Download'|@translate}</a>
+        | <a href="#" onClick="ignoreExtension('theme', '{$theme.THEME_ID}');">{'autoupdate_ignore'|@translate}</a>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        {'Version'|@translate} {$theme.CURRENT_VERSION}
+      </td>
+      <td class="pluginDesc" id="desc_{$theme.ID}">
+        <em>{'Downloads'|@translate}: {$theme.DOWNLOADS}</em>
+        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/plus.gif" alt="" class="button_{$theme.ID}">
+        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/minus.gif" alt="" class="button_{$theme.ID}" style="display:none;">
+        {'New Version'|@translate} : {$theme.NEW_VERSION}
+        | {'By %s'|@translate|@sprintf:$theme.AUTHOR}
+      </td>
+    </tr>
+    <tr>
+      <td></td>
+      <td class="pluginDesc">
+        <p id="revdesc_{$theme.ID}" style="display:none;">{$theme.REV_DESC|htmlspecialchars|nl2br}</p>
+      </td>
+    </tr>
+  </table>
+</div>
+{/foreach}
+</fieldset>
+</div>
+{/if}
+
+{if not empty($update_languages)}
+<div>
+<fieldset id="languages">
+<legend>{'Languages which need upgrade'|@translate}</legend>
+{foreach from=$update_languages item=language name=languages_loop}
+<div class="pluginBox" id="language_{$language.LANGUAGE_ID}" {if $language.IGNORED}style="display:none;"{/if}>
+  <table>
+    <tr>
+      <td class="pluginBoxNameCell">
+        {$language.EXT_NAME}
+      </td>
+      <td>
+        <a href="#" onClick="upgradeExtension('language', '{$language.LANGUAGE_ID}', {$language.REVISION_ID});" class="updateExtension">{'Install'|@translate}</a>
+        | <a href="{$language.URL_DOWNLOAD}">{'Download'|@translate}</a>
+        | <a href="#" onClick="ignoreExtension('language', '{$language.LANGUAGE_ID}');">{'autoupdate_ignore'|@translate}</a>
+      </td>
+    </tr>
+    <tr>
+      <td>
+        {'Version'|@translate} {$language.CURRENT_VERSION}
+      </td>
+      <td class="pluginDesc" id="desc_{$language.ID}">
+        <em>{'Downloads'|@translate}: {$language.DOWNLOADS}</em>
+        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/plus.gif" alt="" class="button_{$language.ID}">
+        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/minus.gif" alt="" class="button_{$language.ID}" style="display:none;">
+        {'New Version'|@translate} : {$language.NEW_VERSION}
+        | {'By %s'|@translate|@sprintf:$language.AUTHOR}
+      </td>
+    </tr>
+    <tr>
+      <td></td>
+      <td class="pluginDesc">
+        <p id="revdesc_{$language.ID}" style="display:none;">{$language.REV_DESC|htmlspecialchars|nl2br}</p>
+      </td>
+    </tr>
+  </table>
+</div>
+{/foreach}
+</fieldset>
+</div>
+{/if}
Index: /extensions/autoupdate/trunk/template/update_pwg.tpl
===================================================================
--- /extensions/autoupdate/trunk/template/update_pwg.tpl	(revision 9712)
+++ /extensions/autoupdate/trunk/template/update_pwg.tpl	(revision 9712)
@@ -0,0 +1,82 @@
+{html_head}
+{literal}
+<style type="text/css">
+form { width: 750px; }
+fieldset { padding-bottom: 30px; }
+p, form p { text-align: left; margin-left:20px; }
+li { margin: 5px; }
+</style>
+{/literal}
+{/html_head}
+
+<div class="titrePage">
+{if $STEP < 2}
+<h2>Piwigo AutoUpgrade</h2>
+{else}
+<h2>{'Upgrade to Piwigo %s'|@translate|@sprintf:$UPGRADE_TO}</h2>
+{/if}
+</div>
+
+{if $STEP == 0}
+  {if $CHECK_VERSION}
+    <p>{'You are running the latest version of Piwigo.'|@translate}</p>
+  {elseif $DEV_VERSION} 
+    <p>{'You are running on development sources, no check possible.'|@translate}</p>
+  {else}
+    <p>{'Check for upgrade failed for unknown reasons.'|@translate}</p>
+  {/if}
+{/if}
+
+{if $STEP == 1}
+<h4>{'Two upgrades are available'|@translate}:</h4>
+<p>
+<ul>
+  <li><a href="{$AU_URL}&amp;step=2&amp;to={$MINOR_VERSION}"><strong>{'Upgrade to Piwigo %s'|@translate|@sprintf:$MINOR_VERSION}</strong></a>: {'This is a minor upgrade, with only bug corrections.'|@translate}</li>
+  <li><a href="{$AU_URL}&amp;step=3&amp;to={$MAJOR_VERSION}"><strong>{'Upgrade to Piwigo %s'|@translate|@sprintf:$MAJOR_VERSION}</strong></a>: {'This is a major upgrade, with <a href="%s">new exciting features</a>.'|@translate|@sprintf:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate}</li>
+</ul>
+</p>
+<p>{'You can upgrade to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate|@sprintf:$MAJOR_VERSION:$MINOR_VERSION}</p>
+{/if}
+
+{if $STEP == 2}
+<p>
+  {'A new version of Piwigo is available.'|@translate}<br>
+  {'This is a minor upgrade, with only bug corrections.'|@translate}
+</p>
+<form action="" method="post">
+<p><input type="submit" name="submit" value="{'Upgrade to Piwigo %s'|@translate|@sprintf:$UPGRADE_TO}" onClick="return confirm('{'autoupdate_alert'|@translate}');"></p>
+<p><input type="hidden" name="upgrade_to" value="{$UPGRADE_TO}"></p>
+</form>
+{/if}
+
+{if $STEP == 3}
+<p>
+  {'A new version of Piwigo is available.'|@translate}<br>
+  {'This is a major upgrade, with <a href="%s">new exciting features</a>.'|@translate|@sprintf:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate}
+</p>
+<form action="" method="post">
+
+{if version_compare($PHPWG_VERSION, '2.1', '<')}
+{counter assign=i}
+<fieldset>
+  <legend>{'autoupdate_step_'|cat:$i|@translate}</legend>
+  <p><input type="submit" name="saveTemplate" value="{'Save Template Directory'|@translate}"></p>
+</fieldset>
+{/if}
+
+{counter assign=i}
+<fieldset>
+  <legend>{'autoupdate_step_'|cat:$i|@translate}</legend>
+  <p><input type="checkbox" name="includeHistory"> &nbsp; {'Include history data (Warning: server memory limit may be exceeded)'|@translate}</p>
+  <p><input type="submit" name="dumpDatabase" value="{'Dump Database'|@translate}"></p>
+</fieldset>
+
+{counter assign=i}
+<fieldset>
+  <legend>{'autoupdate_step_'|cat:$i|@translate}</legend>
+  <p><input type="submit" name="submit" value="{'Upgrade to Piwigo %s'|@translate|@sprintf:$UPGRADE_TO}" onClick="return confirm('{'autoupdate_alert'|@translate}');"></p>
+</fieldset>
+
+<p><input type="hidden" name="upgrade_to" value="{$UPGRADE_TO}"></p>
+</form>
+{/if}
Index: /extensions/autoupdate/trunk/update_ext.inc.php
===================================================================
--- /extensions/autoupdate/trunk/update_ext.inc.php	(revision 9711)
+++ /extensions/autoupdate/trunk/update_ext.inc.php	(revision 9712)
@@ -112,5 +112,5 @@
 $template->assign('update_languages', $update_languages);
 $template->assign('SHOW_RESET', (!empty($conf['AU_ignore']['plugins']) or !empty($conf['AU_ignore']['themes']) or !empty($conf['AU_ignore']['languages'])));
-$template->set_filename('plugin_admin_content', realpath(AUTOUPDATE_PATH.'template/extensions.tpl'));
+$template->set_filename('plugin_admin_content', realpath(AUTOUPDATE_PATH.'template/update_ext.tpl'));
 $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
 
Index: /extensions/autoupdate/trunk/update_pwg.inc.php
===================================================================
--- /extensions/autoupdate/trunk/update_pwg.inc.php	(revision 9711)
+++ /extensions/autoupdate/trunk/update_pwg.inc.php	(revision 9712)
@@ -2,4 +2,7 @@
 
 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+include_once(AUTOUPDATE_PATH.'include/functions.inc.php');
+include_once(PHPWG_ROOT_PATH.'admin/include/pclzip.lib.php');
 
 /*
@@ -137,5 +140,5 @@
 );
 
-$template->set_filename('plugin_admin_content', realpath(AUTOUPDATE_PATH.'template/autoupdate.tpl'));
+$template->set_filename('plugin_admin_content', realpath(AUTOUPDATE_PATH.'template/update_pwg.tpl'));
 $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
 
