<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1102,10 +1102,25 @@ Remedie.prototype = {
     );
 
     // TODO Do NOT display items that are not bound to the event: e.g. Cooliris
+    var gridEvents = [];
     $(&quot;#channel-&quot; + channel.id)
       .click( function(){ remedie.showChannel(channel) } )
-      .hover( function(){ $(this).addClass(&quot;hover-channel&quot;) },
-              function(){ $(this).removeClass(&quot;hover-channel&quot;) } )
+      .hover( function(){
+                $(this).addClass(&quot;hover-channel&quot;);
+                if (!$(this).data('gridEventsInstalled')) {
+                  var _this = this;
+                  var id = setTimeout(function(){
+                    remedie.installGridEvents($(_this), channel.id);
+                  }, 1000);
+                  gridEvents.push(id);
+                }
+              },
+              function(){
+                $.each(gridEvents, function(idx, id) { clearTimeout(id) });
+                $(this).removeClass(&quot;hover-channel&quot;);
+                if (!default_thumbnail)
+                  RemedieUtil.layoutImage($(&quot;#channel-thumbnail-image-&quot; + channel.id), thumbnail, 192, 192);
+              } )
       .contextMenu(&quot;channel-context-menu&quot;, {
         bindings: {
           channel_context_refresh:      function(){ remedie.refreshChannel(channel) },
@@ -1119,6 +1134,37 @@ Remedie.prototype = {
       RemedieUtil.layoutImage($(&quot;#channel-thumbnail-image-&quot; + channel.id), thumbnail, 192, 192);
   },
 
+  installGridEvents: function(element, id) {
+    $.ajax({
+      url: &quot;/rpc/channel/show&quot;,
+      type: 'get',
+      data: { id: id },
+      dataType: 'json',
+      success: function(r) {
+        element.data('gridEventsInstalled', true);
+        var images = [];
+        var width = element.width();
+        $.each(r.items, function(index, item) {
+          if (item.props.thumbnail &amp;&amp; item.props.thumbnail.url) {
+            images.push(item.props.thumbnail.url);
+          }
+        });
+
+        if (images.length &gt; 0) {
+          var d = 192 / images.length;
+          element.bind('mousemove', function(event) {
+            var offset = $(this).offset({ scroll: false });
+            var x = event.pageX - offset.left;
+            var image = images[parseInt(x / d)];
+            if (image) {
+              RemedieUtil.layoutImage($('#channel-thumbnail-image-' + id), image, 192, 192);
+            }
+          });
+        }
+      },
+    });
+  },
+
   cursorPos: -1,
 
   moveCursor: function(index) {</diff>
      <filename>root/static/js/remedie.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>abcd39e06f44778935e4b2b738642762760382d0</id>
    </parent>
  </parents>
  <author>
    <name>Tatsuhiko Miyagawa</name>
    <email>miyagawa@bulknews.net</email>
  </author>
  <url>http://github.com/miyagawa/remedie/commit/b669720525b97f568bad3da6ab5fc62c1dd62629</url>
  <id>b669720525b97f568bad3da6ab5fc62c1dd62629</id>
  <committed-date>2009-01-12T18:40:43-08:00</committed-date>
  <authored-date>2009-01-12T18:40:43-08:00</authored-date>
  <message>installed mousemove grid events inspired by jquery.rack.js</message>
  <tree>29072e17bb3843b6a3e705a795ad54aee4e364be</tree>
  <committer>
    <name>Tatsuhiko Miyagawa</name>
    <email>miyagawa@bulknews.net</email>
  </committer>
</commit>
