<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -12,10 +12,10 @@ var Exploder = {
     this.positions = [];
     this.draggables = [];
     var w = this.picture.getWidth() / 3, h = this.picture.getHeight() / 3,
-        p = this.picture.cumulativeOffset(), offset = 15;
+        p = this.picture.cumulativeOffset(), offset = 15, n = 0;
     (3).times(function(i) {
       (3).times(function(j) {
-        var piece = new Element('div', { className: 'piece' }).setStyle({
+        var piece = new Element('div', { className: 'piece', id: 'piece' + n }).setStyle({
           width: w + 'px',
           height: h + 'px',
           position: 'absolute',
@@ -33,6 +33,7 @@ var Exploder = {
           onDrag: this.onDrag.bind(this),
           onDrop: this.onDrop.bind(this)
         }));
+        n++;
       }, this);
     }, this);
     this.picture.setOpacity(0);
@@ -107,32 +108,29 @@ var Exploder = {
     if (!target.hasClassName('piece'))
       return;
 
-    this.reorderTo(target, draggable);
-
-    if (this.fx.state == 'running')
-      this.fx.cancel();
+    if ((this.fx.state == 'finished') &amp;&amp; this.reorderTo(target, draggable)) {
+      this.renderPositions(this.pieces, { 
+        omitElement: draggable,
+        after: this.checkOrder.bind(this),
+        duration: .2
+      });
+    }
+  },
 
-    this.renderPositions(this.pieces, { 
-      omitElement: draggable,
-      after: this.checkOrder.bind(this),
-      duration: .2
-    });  
-  },  
-  
   onDrop: function(event, draggable) {
     this.renderPositions(this.pieces);
   },
-  
+
   reorderTo: function(target, draggable) {
     var sourceIndex = this.pieces.indexOf(draggable);
-    this.pieces.splice(sourceIndex, 1);
-
     var targetIndex = this.pieces.indexOf(target);
 
-    if (targetIndex &gt;= sourceIndex) targetIndex++;
+    var orig = this.pieces.clone();
+    this.pieces.splice(sourceIndex, 1);
     this.pieces.splice(targetIndex, 0, draggable);
+    return orig != this.pieces;
   },
-  
+
   checkOrder: function() {
     
   }</diff>
      <filename>javascripts/exploder.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9169ed6cc6fa936450d420d1fbaabf0d73e203da</id>
    </parent>
  </parents>
  <author>
    <name>Dieter Komendera</name>
    <email>dieter@komendera.com</email>
  </author>
  <url>http://github.com/joe-loco/exploder/commit/98576e787a7b377efd678fbdaa78ea848a378849</url>
  <id>98576e787a7b377efd678fbdaa78ea848a378849</id>
  <committed-date>2009-06-23T09:38:18-07:00</committed-date>
  <authored-date>2009-06-23T09:37:42-07:00</authored-date>
  <message>Fix reordering a bit.</message>
  <tree>1378912764bbf2bf02d77b8a6cd52ba0cb8fa9f6</tree>
  <committer>
    <name>Dieter Komendera</name>
    <email>dieter@komendera.com</email>
  </committer>
</commit>
