var EmptyX = 4;
var EmptyY = 1;
var Mixtime = 50;
var Rows  = 4;		
var Cols = 4; 		
var loaded = 0;
var EmptyPosistion = ((EmptyY - 1) * Cols) + (EmptyX - 1);
var TempListe = new Array(NumberOfPics);
var EmptyA = EmptyX;
var EmptyB = EmptyY;
var Mode = "off";
var skdjfoier = new Array( "elebibpuzzle/elebib1_01.jpg", "elebibpuzzle/elebib1_02.jpg", "elebibpuzzle/elebib1_03.jpg", "elebibpuzzle/elebib1_00.jpg", "elebibpuzzle/elebib1_04.jpg", "elebibpuzzle/elebib1_05.jpg", "elebibpuzzle/elebib1_06.jpg", "elebibpuzzle/elebib1_07.jpg", "elebibpuzzle/elebib1_08.jpg", "elebibpuzzle/elebib1_09.jpg", "elebibpuzzle/elebib1_10.jpg", "elebibpuzzle/elebib1_11.jpg", "elebibpuzzle/elebib1_12.jpg", "elebibpuzzle/elebib1_13.jpg", "elebibpuzzle/elebib1_14.jpg", "elebibpuzzle/elebib1_15.jpg");
var NumberOfPics = skdjfoier.length;	


function getit() {
 loaded = 1;
 Reset();
}
function setPic(index, Source){
 var i = index + 1;
 document.images['pic'+i].src = Source ;
}
function Pushing( xpos, ypos ) {
 if (( xpos == EmptyA ) && ( ypos == EmptyB ))
 return;
 if (ypos == EmptyB) {						
  Empty = ((EmptyB-1) * Cols) + EmptyA - 1;
  if (EmptyA < xpos) {
	while (EmptyA != xpos) {
    TempListe[Empty] = TempListe[Empty+1];
    TempListe[Empty+1] = skdjfoier[EmptyPosistion];
    setPic(Empty, TempListe[Empty]);
    EmptyA += 1;
    Empty += 1;
    setPic(Empty, TempListe[Empty]);
   }
  }
  else {
   while (EmptyA != xpos) {
    TempListe[Empty] = TempListe[Empty-1];
    TempListe[Empty-1] = skdjfoier[EmptyPosistion];
    setPic(Empty, TempListe[Empty]);
    EmptyA -= 1;
    Empty -= 1;
    setPic(Empty, TempListe[Empty]);
   }
  }
 }
 else {
  if (xpos == EmptyA) {
   Empty = ((EmptyB-1) * Cols) + EmptyA - 1;
   if (EmptyB < ypos) {
    while (EmptyB != ypos) {
     TempListe[Empty] = TempListe[Empty+Cols];
     TempListe[Empty+Cols] = skdjfoier[EmptyPosistion];
     setPic(Empty, TempListe[Empty]);
     EmptyB += 1;
     Empty += Cols;
     setPic(Empty, TempListe[Empty])
    }
   }
	else {
    while (EmptyB != ypos) {
     TempListe[Empty] = TempListe[(Empty-Cols)];
     TempListe[Empty-Cols] = skdjfoier[EmptyPosistion];
     setPic(Empty, TempListe[Empty])
     EmptyB -= 1;
     Empty -= Cols;
     setPic(Empty, TempListe[Empty])
    }
   }
  }
 }
 Check();
}

function reReset() {
 for (var i = 0; i < NumberOfPics; i++) {
  TempListe[i] = skdjfoier[i];
 }
}
function Check()
{
  var sdfwer = false;
  var rtzrtz = true;
  for (var i = 0; i < NumberOfPics; i++)
  {
   istgleich = (  TempListe[i] == skdjfoier[i] )
   if ( sdfwer == false ) { rtzrtz = false };
  }
  if ( rtzrtz )
  {
   if( confirm( "Nochmal spielen?") )
   {
     Mixing();
   }
  }
}
function Reset() {
 Mode = "off";
 for (var i = 0; i < NumberOfPics; i++){
  setPic(i, skdjfoier[i])
  TempListe[i] = skdjfoier[i];
 }
 EmptyA = EmptyX;
 EmptyB = EmptyY;
}
function Mixing() {
  getit();
 Mode = "off";
 if (loaded == 0) {
  return;
 }
 var Temp;
 for (var MischVorgang = 0; MischVorgang < Mixtime ; MischVorgang++) {
  Temp = EmptyA;
  while ( Temp == EmptyA) {
   Temp = (rndnumber (Cols)) + 1;
  }
  Pushing (Temp, EmptyB);
  Temp = EmptyB;
  while (Temp == EmptyB) {
   Temp = (rndnumber (Rows)) + 1;
  }
  Pushing (EmptyA, Temp);
 }
 Mode = "on";
}
today=new Date();
hhh=today.getTime();
function rndnumber(number) {
  msnumber = Math.floor(Math.random()*number);
  return msnumber;	
}
