Index: /extensions/UserCollections/include/collections.inc.php
===================================================================
--- /extensions/UserCollections/include/collections.inc.php	(revision 16607)
+++ /extensions/UserCollections/include/collections.inc.php	(revision 16608)
@@ -135,5 +135,4 @@
       {
         $col['name'] = 'temp #'.$col['id'];
-        $col['U_VIEW'] = $col['U_EDIT'];
         $col['U_SAVE'] = USER_COLLEC_PUBLIC.'&amp;action=save&amp;col_id='.$col['id'];
         $template->append('temp_col', $col);
@@ -141,5 +140,4 @@
       else
       {
-        $col['U_VIEW'] = USER_COLLEC_PUBLIC.'view/'.$col['id'];
         $template->append('collections', $col);
       }
@@ -166,4 +164,5 @@
       'U_VIEW' => $self_url,
       'U_LIST' => USER_COLLEC_PUBLIC,
+      'COL_ID' => $page['col_id'],
       ));
     
@@ -191,5 +190,5 @@
       $template->assign('collection', $UserCollection->getCollectionInfo());
       
-      $template->set_prefilter('index_thumbnails', 'user_collection_thumbnails_list_prefilter');
+      $template->set_prefilter('index_thumbnails', 'user_collections_thumbnails_list_special_prefilter');
       
       $page['start'] = isset($_GET['start']) ? $_GET['start'] : 0;
@@ -282,13 +281,46 @@
 $template->assign('USER_COLLEC_PATH', USER_COLLEC_PATH);
 
-function user_collection_thumbnails_list_prefilter($content, &$smarty)
+
+function user_collections_thumbnails_list_special_prefilter($content, &$smarty)
 {
-  $search = '<span class="thumbName">';
+  // custom style
+  $search[0] = '{/html_style}';
+  $replace[0] = '.thumbnails  .wrap1 {ldelim} position:relative; }
+.addCollection {ldelim} width:100%;height:16px;display:none;position:absolute;top:0;background:rgba(0,0,0,0.8);padding:2px;border-radius:2px;font-size:0.8em; }
+.wrap1:hover .addCollection {ldelim} display:block; }'
+.$search[0];
+
+  // links
+  $search[1] = '<span class="wrap1">';
+  $replace[1] = $search[1].'
+{strip}<a class="addCollection" href="{$U_VIEW}&amp;remove={$thumbnail.id}" data-id="{$thumbnail.id}" rel="nofollow">
+{\'Remove from collection\'|@translate}&nbsp;<img src="{$USER_COLLEC_PATH}template/image_delete.png" title="{\'Remove from collection\'|@translate}">
+</a>{/strip}';
+
+  // AJAX request
+  $search[2] = '{/html_style}';
+  $replace[2] = $search[2].'
+{footer_script require=\'jquery\'}
+jQuery(".addCollection").click(function() {ldelim}
+  var toggle_id = jQuery(this).data("id");
+  var $trigger = jQuery(this);
   
-  $add = '<a href="{$U_VIEW}&amp;remove={$thumbnail.id}" rel="nofollow">
-<img src="{$USER_COLLEC_PATH}template/image_delete.png" title="{\'Remove from collection\'|@translate}">
-</a>&nbsp;';
-
-  return str_replace($search, $search.$add, $content);
+  jQuery.ajax({ldelim}
+    type: "POST",
+    url: "{$USER_COLLEC_PATH}toggle_image.php",
+    data: {ldelim} "col_id": "{$COL_ID}", "toggle_id": toggle_id }
+  }).done(function(msg) {ldelim}
+    if (msg == "false") {ldelim}
+      $trigger.parent(".wrap1").hide("fast", function() {ldelim} $trigger.remove() });
+    } else {ldelim}
+      $trigger.html(\'{\'Un unknown error occured\'|@translate}\');
+    }
+  });
+  
+  return false;
+});
+{/footer_script}';
+
+  return str_replace($search, $replace, $content);
 }
 
Index: /extensions/UserCollections/include/events.inc.php
===================================================================
--- /extensions/UserCollections/include/events.inc.php	(revision 16607)
+++ /extensions/UserCollections/include/events.inc.php	(revision 16608)
@@ -19,5 +19,5 @@
   {
     $page['section'] = 'collections';
-    $page['title'] = '<a href="'.USER_COLLEC_PUBLIC.'">'.l10n('Collections').'</a>';
+    $page['title'] = '<a href="'.get_absolute_root_url().'">'.l10n('Home').'</a>'.$conf['level_separator'].'<a href="'.USER_COLLEC_PUBLIC.'">'.l10n('Collections').'</a>';
     
     if (in_array(@$tokens[1], array('edit','view','list')))
@@ -116,15 +116,49 @@
 function user_collections_thumbnails_list_prefilter($content, &$smarty)
 {
-  $search = '<span class="thumbName">';
-  
-  $add = '<a href="{$collection_toggle_url}&amp;collection_toggle={$thumbnail.id}" rel="nofollow">
+  // custom style
+  $search[0] = '{/html_style}';
+  $replace[0] = '.thumbnails  .wrap1 {ldelim} position:relative; }
+.addCollection {ldelim} width:100%;height:16px;display:none;position:absolute;top:0;background:rgba(0,0,0,0.8);padding:2px;border-radius:2px;font-size:0.8em; }
+.wrap1:hover .addCollection {ldelim} display:block; }'
+.$search[0];
+
+  // links
+  $search[1] = '<span class="wrap1">';
+  $replace[1] = $search[1].'
+{strip}<a class="addCollection" href="{$collection_toggle_url}&amp;collection_toggle={$thumbnail.id}" data-id="{$thumbnail.id}" rel="nofollow">
 {if $thumbnail.COLLECTION_SELECTED}
-<img src="{$USER_COLLEC_PATH}template/image_delete.png" title="{\'Remove from collection\'|@translate}">
+{\'Remove from collection\'|@translate}&nbsp;<img src="{$USER_COLLEC_PATH}template/image_delete.png" title="{\'Remove from collection\'|@translate}">
 {else}
-<img src="{$USER_COLLEC_PATH}template/image_add.png" title="{\'Add to collection\'|@translate}">
+{\'Add to collection\'|@translate}&nbsp;<img src="{$USER_COLLEC_PATH}template/image_add.png" title="{\'Add to collection\'|@translate}">
 {/if}
-</a>&nbsp;';
-
-  return str_replace($search, $search.$add, $content);
+</a>{/strip}';
+
+  // AJAX request
+  $search[2] = '{/html_style}';
+  $replace[2] = $search[2].'
+{footer_script require=\'jquery\'}
+jQuery(".addCollection").click(function() {ldelim}
+  var toggle_id = jQuery(this).data("id");
+  var $trigger = jQuery(this);
+  
+  jQuery.ajax({ldelim}
+    type: "POST",
+    url: "{$USER_COLLEC_PATH}toggle_image.php",
+    data: {ldelim} "toggle_id": toggle_id }
+  }).done(function(msg) {ldelim}
+    if (msg == "true") {ldelim}
+      $trigger.html(\'{\'Remove from collection\'|@translate}&nbsp;<img src="{$USER_COLLEC_PATH}template/image_delete.png" title="{\'Remove from collection\'|@translate}">\');
+    } else if (msg == "false") {ldelim}
+      $trigger.html(\'{\'Add to collection\'|@translate}&nbsp;<img src="{$USER_COLLEC_PATH}template/image_add.png" title="{\'Add to collection\'|@translate}">\');
+    } else {ldelim}
+      $trigger.html(\'{\'Un unknown error occured\'|@translate}\');
+    }
+  });
+  
+  return false;
+});
+{/footer_script}';
+
+  return str_replace($search, $replace, $content);
 }
 
Index: /extensions/UserCollections/template/edit.tpl
===================================================================
--- /extensions/UserCollections/template/edit.tpl	(revision 16607)
+++ /extensions/UserCollections/template/edit.tpl	(revision 16608)
@@ -9,4 +9,5 @@
     copy:$("#publicURL .url").html(),
     afterCopy: function() {ldelim}
+      $('.confirm').remove();
       $('<span class="confirm" style="display:none;">{'Copied'|@translate}</span>').appendTo("#publicURL")
         .fadeIn(400).delay(1000).fadeOut(400, function(){ldelim} $(this).remove(); });
Index: /extensions/UserCollections/template/list.tpl
===================================================================
--- /extensions/UserCollections/template/list.tpl	(revision 16607)
+++ /extensions/UserCollections/template/list.tpl	(revision 16608)
@@ -35,6 +35,6 @@
     <li {if $col.active}class="active"{/if}>
       <p class="collecTitle">
-        <a href="{$col.U_VIEW}" rel="nofollow"><b>{$col.name}</b></a> 
-        <i>{'%d images'|@translate|@sprintf:$col.nb_images}</i>
+        <a href="{$col.U_EDIT}" rel="nofollow"><b>{$col.name}</b></a> 
+        <i>{'%d photos'|@translate|@sprintf:$col.nb_images}</i>
       </p>
       <p class="collecActions">
@@ -61,6 +61,6 @@
       </p>
       <p class="collecTitle">
-        <a href="{$col.U_VIEW}" rel="nofollow"><b>{$col.name}</b></a> 
-        <i>{'%d images'|@translate|@sprintf:$col.nb_images}</i>
+        <a href="{$col.U_EDIT}" rel="nofollow"><b>{$col.name}</b></a> 
+        <i>{'%d photos'|@translate|@sprintf:$col.nb_images}</i>
       </p>
       <p class="collecActions">
Index: /extensions/UserCollections/template/menublock_user_collec.tpl
===================================================================
--- /extensions/UserCollections/template/menublock_user_collec.tpl	(revision 16607)
+++ /extensions/UserCollections/template/menublock_user_collec.tpl	(revision 16608)
@@ -2,5 +2,5 @@
 <dd>
 {if $block->data.current}
-  {'Current collection:'|@translate} <b>{$block->data.current.NAME}</b>, {'%d images'|@translate|@sprintf:$block->data.current.NB_IMAGES}
+  {'Current collection:'|@translate} <b>{$block->data.current.NAME}</b>, {'%d photos'|@translate|@sprintf:$block->data.current.NB_IMAGES}
 	<ul>{strip}
 		{foreach from=$block->data.links item=link}
Index: /extensions/UserCollections/toggle_image.php
===================================================================
--- /extensions/UserCollections/toggle_image.php	(revision 16608)
+++ /extensions/UserCollections/toggle_image.php	(revision 16608)
@@ -0,0 +1,26 @@
+<?php
+define('PHPWG_ROOT_PATH', '../../');
+include(PHPWG_ROOT_PATH.'include/common.inc.php');
+
+check_status(ACCESS_CLASSIC);
+
+if (isset($_POST['toggle_id']))
+{
+  try
+  {
+    $col_id = !empty($_POST['col_id']) ? $_POST['col_id'] : get_current_collection_id(true);
+    $UserCollection = new UserCollection($col_id);
+    $UserCollection->toggleImage($_POST['toggle_id']);
+    echo boolean_to_string($UserCollection->isInSet($_POST['toggle_id']));
+  }
+  catch (Exception $e)
+  {
+    echo 'error';
+  }
+}
+else
+{
+  echo 'error';
+}
+
+?>
