/* 17.12.2007: http://www.lihs.org/files/slidegex.htm */

puzzle_size_x=9
puzzle_size_y=6
version="no"
square_size=75
column=8
row=5
moves=0
browser=navigator.appName
browserversion=parseInt(navigator.appVersion)
blank=new Image(square_size,square_size)
blank.src="/puzzle/piece"+column+row+".jpg"
lastx=null
lasty=null
start=false

if (browser == "Netscape" && browserversion>=3){version="yes"};
if (browser == "Microsoft Internet Explorer" && browserversion>=4) {version="yes"}
 
function move(xaxis,yaxis,scrambled){
if (!start && !scrambled){
   alert("\n\n\tBitte erst \"Mischen\", um das Spiel zu starten!\t\t\n\n")
   return}
if ((xaxis==column) && (yaxis==row)) return
if ((start || scrambled) && (xaxis==column) || (yaxis==row)){
   if (yaxis>row) up(xaxis,yaxis)
   if (yaxis<row) down(xaxis,yaxis)
   if (xaxis>column) left(xaxis,yaxis)
   if (xaxis<column) right(xaxis,yaxis)
   column=xaxis; row=yaxis
   if (start) { moves++; unscrambled() }}}

function up(xaxis,yaxis){
for(movey=row;movey<yaxis;movey++){
   movefrom="at"+xaxis+(movey+1)
   moveto="at"+xaxis+movey
   document.images[moveto].src=document.images[movefrom].src}
document.images[movefrom].src=blank.src}

function down(xaxis,yaxis){
for(movey=row;movey>yaxis;movey--){
   movefrom="at"+xaxis+(movey-1)
   moveto="at"+xaxis+movey
   document.images[moveto].src=document.images[movefrom].src}
document.images[movefrom].src=blank.src}

function left(xaxis,yaxis){
for(movex=column;movex<xaxis;movex++){
   movefrom="at"+(movex+1)+yaxis
   moveto="at"+movex+yaxis
   document.images[moveto].src=document.images[movefrom].src}
document.images[movefrom].src=blank.src}

function right(xaxis,yaxis){
for(movex=column;movex>xaxis;movex--){
   movefrom="at"+(movex-1)+yaxis
   moveto="at"+movex+yaxis
   document.images[moveto].src=document.images[movefrom].src}
document.images[movefrom].src=blank.src}

function shuffle(repeat){
start=false
while (repeat--){
   xaxis=column
   yaxis=row
   if (Math.random()>.5){
      while ((xaxis==column) || (xaxis==lastx)){
         xaxis=Math.floor(Math.random()*puzzle_size_x)}
      yaxis=row}
      else{
         while ((yaxis==row) || (yaxis==lasty)){
            yaxis=Math.floor(Math.random()*puzzle_size_y)}
         xaxis=column}
      lastx=column
      lasty=row
      move(xaxis,yaxis,true)}
   unscrambled()
   start=true}

function unscrambled(){
solved=true
for(y=0;y<puzzle_size_y;y++){
   for(x=0;x<puzzle_size_x;x++){
      name1="at"+x+y
      piece=document.images[name1].src
      start=piece.lastIndexOf(".")-2
      name2="at"+piece.substring(start,start+2)
      if (name1!=name2) solved=false}}
   if (solved){
      alert("\nSUPER!\nDu hast das Puzzle in "+moves+" Zügen gelöst.\n")
      moves=0
      start=false}}


