// JavaScript-Teil zu Solitair

function hilfe() { var win2=window.open("hilfe.htm","Solitair_Hilfe","width=592,height=376,scrollbars=yes,resizable=yes"); }
function hilife() { var win2=window.open("hilife.htm","Solitair_feddich","width=592,height=96,scrollbars=no,resizable=no"); }

function neu()
{ var i,j,k;
  start=false;
  for (i=0; i<zmax; i++) chip[i]=1;
  for (j=0; j<2; j++) for (i=0; i<2; i++)
  { k=xmax*j+i; chip[k]=3; 
    k=xmax*(ymax-j-1)+i; chip[k]=3;
    k=xmax*j+(xmax-i-1); chip[k]=3;
    k=xmax*(ymax-j-1)+(xmax-i-1); chip[k]=3;
  } 
  k=Math.floor(zmax/2);
  chip[k]=0;   
  for (i=0; i<zmax; i++) document.images[i].src=ima[chip[i]];
  gewaehlt=-1;
  count=0;
}

function ende()
{ var i,k; var ok;
  k=0; for (i=0; i<zmax; i++) if ((chip[i]==1) || (chip[i]==2)) k++;
  ok=(k==1);
  return ok;
}



function geklickt(nr)
{ var ok;
  if (chip[nr]==1)
  { if (gewaehlt>=0)
    { chip[gewaehlt]=1;
      document.images[gewaehlt].src=ima[chip[gewaehlt]];
    }  
    chip[nr]=2;
    document.images[nr].src=ima[chip[nr]];
    gewaehlt=nr;
    checkezuege(nr);
  }
  if ((chip[nr]==0) && (gewaehlt>=0))
  { ok=checken(gewaehlt,nr);
    if (ok) ziehen(gewaehlt,nr);
  }
}


function ziehen (von,nach)
{ var k;
  chip[von]=0; document.images[von].src=ima[chip[von]];
  chip[nach]=1; document.images[nach].src=ima[chip[nach]];
  k=(von+nach)/2;
  chip[k]=0; document.images[k].src=ima[chip[k]];
  gewaehlt=-1;
  zugvon[count]=von;
  zugnach[count]=nach;
  count++;
  if (!start) if (ende()) { neu(); hilife(); }
}

function checken(start,ziel)
{ var i; var ok;
  i=Math.abs(start-ziel);
  ok=((i==2) || (i==2*xmax));
  if (ok) ok=(chip[(start+ziel)/2]==1);
  return ok;
}
  
function checkezuege(nr)
{ var i,j,k,l;
  k=0;
  i=nr-2*xmax;
  j=nr-xmax;
  if (i>=0) if ((chip[i]==0) && (chip[j]==1)) k=1;
  i=nr+2*xmax;
  j=nr+xmax;
  if (i<zmax) if ((chip[i]==0) && (chip[j]==1)) k=k+4;
  i=Math.floor(nr/xmax);
  j=Math.floor((nr+2)/xmax);
  if (i==j) if ((chip[nr+1]==1) && (chip[nr+2]==0)) k=k+2;
  i=Math.floor(nr/xmax);
  j=Math.floor((nr-2)/xmax);
  if (i==j) if ((chip[nr-1]==1) && (chip[nr-2]==0)) k=k+8;

  if (k==1) { i=nr-2*xmax; ziehen(nr,i); }
  if (k==2) { i=nr+2; ziehen(nr,i); }
  if (k==4) { i=nr+2*xmax; ziehen(nr,i); }
  if (k==8) { i=nr-2; ziehen(nr,i); }
}
 
function zurueck()
{ var i;
  if (count>0)
  { count--;
    i=zugnach[count]; chip[i]=0; document.images[i].src=ima[chip[i]];
    i=zugvon[count];  chip[i]=1; document.images[i].src=ima[chip[i]];
    i=(zugnach[count]+zugvon[count])/2; chip[i]=1; document.images[i].src=ima[chip[i]];   
  }
}


// --- Loesung -----------------------------------------------------------------------------------------

function loesung() 
{ if (start) 
  { start=false; 
  }
  else 
  { neu();    
    start=true; 
    window.setTimeout("markiere()",500);
  } 
}


function markiere() { document.images[lchip[count]].src=ima[2];  window.setTimeout("zug()",500); }

function zug() 
{ ziehen(lchip[count],lziel[count]); 
  if ((count<31) && (start)) window.setTimeout("markiere()",500); else { start=false; } }

// ------------------------------------------------------------------------------------------------------------------------

  



