(no move made yet)
<div id="puzzle">
<img id="image_5" src="http://script.aculo.us/images/puzzle5.jpg" alt="" />
<img id="image_1" src="http://script.aculo.us/images/puzzle1.jpg" alt="" />
<img id="image_9" src="http://script.aculo.us/images/puzzle9.jpg" alt="" />
<img id="image_7" src="http://script.aculo.us/images/puzzle7.jpg" alt="" />
<img id="image_4" src="http://script.aculo.us/images/puzzle4.jpg" alt="" />
<img id="image_8" src="http://script.aculo.us/images/puzzle8.jpg" alt="" />
<img id="image_3" src="http://script.aculo.us/images/puzzle3.jpg" alt="" />
<img id="image_6" src="http://script.aculo.us/images/puzzle6.jpg" alt="" />
<img id="image_2" src="http://script.aculo.us/images/puzzle2.jpg" alt="" />
</div>
<p>
<span id="puzzleinfo">(no move made yet)</span>
</p>
<script type="text/javascript" language="javascript">
// <![CDATA[
Sortable.create("puzzle",
{tag:'img',overlap:'horizontal',constraint: false,
onUpdate:function(){
p = $("puzzle");
p.moves = p.moves || 0;
p.moves++;
$('puzzleinfo').innerHTML =
"You've made " + p.moves + " move" +
(p.moves>1 ? "s" : "");
if(Sortable.serialize("puzzle")==
"puzzle[]=1&puzzle[]=2&puzzle[]=3&" +
"puzzle[]=4&puzzle[]=5&puzzle[]=6&" +
"puzzle[]=7&puzzle[]=8&puzzle[]=9") {
$('puzzleinfo').innerHTML =
"You've solved the puzzle in <i>" + p.moves + "</i> moves!";
Element.Class.add('puzzleinfo','congrats');
}
}
})
// ]]>
</script>