mie = false;
if (document.all) mie = true;


imo=1;
var a;
var wald=new Array(18);
for (a=0;a<20;a++)
	{
	wald[a]=new Array(18);
	};
	
var kk=".";
var ss=" ";
var aktivint=0;
var NIX =0;
var GRAS =1;
var BAUM =2;
var STEIN =3;
var GEOCOIN =4;
var ALINEUNDGERD =5;
var ZECK =6;
var STEIN_FALL =7;
var GEOCOIN_FALL =8;
var COINS=9;

var zecken;
var level;
var zufall;
var maxlevels;    
var gover;
var geocoins;
var zahl;
var zahlz;
var main_x;
var main_y;
var gg="°";
var leben;
var level_erreicht;
var gestorben;
var ablauf;
var sammeln;

var sklein=new Array(7);
var leerbild;
var gameoverbild;
var startbild;
var aundg=new Object();
var zecke=new Array
for (a=0;a<100;a++)
	{
	zecke[a]=new Object();
	}
var joypad;
var error_code;
var wahl;
 var wahlnr;
 var x;
 var y;

 wahl=1;
 ablauf=1;



var mylevel=new Array(
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
2,3,3,3,3,1,1,1,1,1,1,1,1,6,1,4,1,1,4,2,
2,4,4,4,4,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
2,2,2,2,2,6,0,0,4,1,1,1,1,1,1,1,1,1,1,2,
2,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,
2,1,1,1,1,1,1,1,2,2,2,4,4,0,0,6,1,1,1,2,
2,1,1,1,1,1,1,1,3,3,2,2,2,2,2,2,1,1,1,2,
2,6,0,0,0,1,1,1,3,3,1,1,1,1,1,2,1,1,1,2,
2,2,2,4,0,6,1,1,3,3,1,1,1,1,1,2,6,0,0,2,
2,3,2,2,2,2,4,4,1,1,1,1,1,2,2,2,2,2,0,2,
2,4,4,4,4,2,2,2,2,1,1,1,1,3,3,3,2,3,0,2,
2,4,4,4,4,4,2,3,3,1,1,1,1,3,3,3,0,3,1,2,
2,2,2,4,4,4,2,3,3,1,1,1,1,2,4,4,2,4,1,2,
2,4,4,4,4,4,1,1,1,1,1,1,1,2,4,4,2,1,1,2,
2,4,4,2,2,2,1,1,4,4,1,1,1,2,4,4,1,1,1,2,
2,4,4,6,6,6,0,1,2,2,1,1,1,2,4,4,1,5,1,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
);

 document.write("<table BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=20 WIDTH=320 HEIGHT=288 >");
 
 for (y=0;y<18;y++)
 {
  document.write("<tr>");  
  for (x=0;x<20;x++)
   {
  	document.write("<td WIDTH=32 HEIGHT=32><img  SRC=\"leveledit/sklein1.gif\"WIDTH=32 HEIGHT=32></td>")
    	
   }; 
  document.write("</tr>");   
 }
 document.write("</table>"); 


 sklein[0] = new Image(); sklein[0].src = "leveledit/sklein0.gif";
 sklein[1] = new Image(); sklein[1].src = "leveledit/sklein1.gif";
 sklein[2] = new Image(); sklein[2].src = "leveledit/sklein2.gif";
 sklein[3] = new Image(); sklein[3].src = "leveledit/sklein3.gif";
 sklein[4] = new Image(); sklein[4].src = "leveledit/sklein4.gif";
 sklein[5] = new Image(); sklein[5].src = "leveledit/sklein5.gif";
 sklein[6] = new Image(); sklein[6].src = "leveledit/sklein6.gif";
 sklein[7] = new Image(); sklein[7].src = "leveledit/sklein3.gif";
 sklein[8] = new Image(); sklein[8].src = "leveledit/sklein4.gif";
 leerbild = new Image(); leerbild.src = "leveledit/nix.gif";
 gameoverbild = new Image(); gameoverbild.src = "spiel/gameover.gif";
 startbild = new Image(); startbild.src = "startbild/startbmp_bc.gif";

 
 function startspiel()
 {
  
  error_code=" ";
  joypad=100;
  sammeln=0;
      zecken=0;
      geocoins=0;
      for (main_y=0;main_y<18;main_y++)
      {
         for (main_x=0;main_x<20;main_x++)
         {
       
	     setze(main_x,main_y,mylevel[main_x+main_y*20]);
             sammeln=sammeln+mylevel[main_x+main_y*20]*main_y*main_x;
	     sammeln=sammeln % 65536;
	     		

             if (wald[main_x][main_y]==ALINEUNDGERD) 
                { 
    		aundg.x=main_x; aundg.y=main_y; 
		}
             if (wald[main_x][main_y]==ZECK) 
             {
                zecke[zecken].x=main_x;
                zecke[zecken].y=main_y;
                zecke[zecken].dir=0;
                zecken++;
             }
             if (wald[main_x][main_y]==GEOCOIN) 
             { geocoins++; }


 
         }
      }
 //alert(sammeln);
 GetErrorCode();
 //if (sammeln!=56297)
 // {error_code="";window.setInterval('spielen()',50);}
 
 }
	
 function geladen()
 { 
 startclick();
 }
 


function tot()
{
     gover=1;
     leben--;
     gestorben=true;
     ablauf=100;
     alert("... tchja .. das wars dann wohl ..."); 
     startclick();   
}

function win()
{
     gover=1;
     alert("Gewonnen !!! - der Final Cache liegt bei N48°12.345 E008°48.177"); 
     startclick();   
}



function gehe_nach(gehe_zu_x ,gehe_zu_y)
{
var gn_x,gn_y;
 
   gn_x=aundg.x;
   gn_y=aundg.y;

if (wald[gehe_zu_x][gehe_zu_y]==ZECK)
  {
      tot();
  } 
  

if   (wald[gehe_zu_x][gehe_zu_y]==GEOCOIN)
{
  geocoins--;         

  if (geocoins==0)  
  { gover=1;
    //debugen();    
    //win();   
    alert("You win !!");     
    ablauf=100;    
  }            
}

  
if ((wald[gehe_zu_x][gehe_zu_y]==NIX) || (wald[gehe_zu_x][gehe_zu_y]==GRAS) || (wald[gehe_zu_x][gehe_zu_y]==GEOCOIN))
 {
  setze(gn_x,gn_y,NIX);

   setze(gehe_zu_x,gehe_zu_y,ALINEUNDGERD);
   aundg.x=gehe_zu_x;
   aundg.y=gehe_zu_y;

  }




if (wald[gehe_zu_x][gehe_zu_y]==STEIN)
{ 

  if (gehe_zu_x>gn_x)
  {
    if (wald[gehe_zu_x+1][gehe_zu_y]==NIX)
    {
    setze(gn_x,gn_y,NIX);
    setze(gehe_zu_x,gehe_zu_y,ALINEUNDGERD);
    setze(gehe_zu_x+1,gehe_zu_y,STEIN);
    aundg.x=gehe_zu_x;
    aundg.y=gehe_zu_y;
    }
  }

  if (gehe_zu_x<gn_x)
  {
    if (wald[gehe_zu_x-1][gehe_zu_y]==NIX)
    {
    setze(gn_x,gn_y,NIX);
    setze(gehe_zu_x,gehe_zu_y,ALINEUNDGERD);
    setze(gehe_zu_x-1,gehe_zu_y,STEIN);
    aundg.x=gehe_zu_x;
    aundg.y=gehe_zu_y;
    }
  }


}



}
function  GetErrorCode()
{
 error_code=error_code+GEOCOIN+COINS+gg+BAUM+STEIN+kk+STEIN_FALL+ZECK+ALINEUNDGERD+ss+NIX+NIX+GEOCOIN_FALL+gg+BAUM+STEIN+kk+STEIN_FALL+ZECK+ALINEUNDGERD;
}

/*
var NIX =0;
var GRAS =1;
var BAUM =2;
var STEIN =3;
var GEOCOIN =4;
var ALINEUNDGERD =5;
var ZECK =6;
var STEIN_FALL =7;
var GEOCOIN_FALL =8;
var COINS=9;
*/

function zecke_nach(mn_x,mn_y,mn_i) 
{
var mo_x,mo_y,mn_dir;
var m_auf_neu;

  mo_x=zecke[mn_i].x;
  mo_y=zecke[mn_i].y;
  mn_dir=zecke[mn_i].dir;
  m_auf_neu=wald[mn_x][mn_y];

  if ( m_auf_neu==NIX)
    {
    setze(mo_x,mo_y,NIX);
    zecke[mn_i].x=mn_x;
    zecke[mn_i].y=mn_y;
    setze(mn_x,mn_y,ZECK);
    }

  if (m_auf_neu==ALINEUNDGERD)
     {
      tot();
     }
     
 
         
  if (( m_auf_neu==GRAS) || ( m_auf_neu==BAUM) || ( m_auf_neu==STEIN)|| ( m_auf_neu==GEOCOIN)||( m_auf_neu==ZECK))
    {
    
        if (mn_dir >=3)
       { zecke[mn_i].dir=0;}
        else
        { zecke[mn_i].dir=mn_dir+1;};
    }  
}






function Zecke_bewegen()
{
var m_i,m_x,m_y,m_dir;

   
  for (m_i=(zecken-1);m_i>=0;m_i--)
  {
  m_x=zecke[m_i].x;
  m_y=zecke[m_i].y; 
  m_dir=zecke[m_i].dir;

  
     switch (m_dir)
     {
     case (0):
        {
           zecke_nach(m_x+1,m_y,m_i);
           break;   
        }
     case (1):
        {
           zecke_nach(m_x,m_y+1,m_i);
           break;   
        }
     case (2):
        {
          zecke_nach(m_x-1,m_y,m_i);
           break;   
        }
     default:
        {
          zecke_nach(m_x,m_y-1,m_i);
           break;   
        }
    
        
     } 
  }
}


function steine_fallen()
{
var sf_x,sf_y;
var sf_w,sf_u;

    for (sf_y=17;sf_y>=0;sf_y--)
  {
     for (sf_x=0;sf_x<20;sf_x++)
     {
      sf_w=wald[sf_x][sf_y];
      sf_u=wald[sf_x][sf_y+1];
      
         if ((sf_w==STEIN_FALL )||(sf_w==STEIN)||(sf_w==GEOCOIN_FALL )||(sf_w==GEOCOIN))
         {
      
         if (sf_w==STEIN_FALL )   
           {
            if ((sf_u==GRAS) || (sf_u==BAUM) || (sf_u==STEIN) ||
               (sf_u==GEOCOIN)||(sf_u==ZECK)) 
               {
                setze(sf_x,sf_y,STEIN);
               }
          
              if (sf_u==ALINEUNDGERD) 
               {
                tot();
                }
            
                         
           }

         if (sf_w==GEOCOIN_FALL )   
           {
            if ((sf_u==GRAS) || (sf_u==BAUM) || (sf_u==STEIN) ||
               (sf_u==GEOCOIN)||(sf_u==ZECK)||(sf_u==ALINEUNDGERD)) 
               {
                setze(sf_x,sf_y,GEOCOIN);
               }
                            
           }
           
           
         if ((sf_w==STEIN)|| (sf_w==STEIN_FALL )) 
           { 
                                          
               if (sf_u==NIX) 
               {
                setze(sf_x,sf_y,NIX);
                setze(sf_x,sf_y+1,STEIN_FALL ); 

                
               }
              
              if ((sf_u==STEIN)||(sf_u==GEOCOIN)) 
               {
                  if ((wald[sf_x+1][sf_y]==NIX) && (wald[sf_x+1][sf_y+1]==NIX)) 
                  {
                  setze(sf_x,sf_y,NIX);
                  setze(sf_x+1,sf_y+1,STEIN_FALL );               

               
              
                  }
                  
                  else if ((wald[sf_x-1][sf_y]==NIX) && (wald[sf_x-1][sf_y+1]==NIX))  
                  {
                  setze(sf_x,sf_y,NIX);
                  setze(sf_x-1,sf_y+1,STEIN_FALL );               

                
                 }
               }
                          
           }

         if ((sf_w==GEOCOIN)|| (sf_w==GEOCOIN_FALL )) 
           { 
                                          
               if (sf_u==NIX) 
               {
                setze(sf_x,sf_y,NIX);
                setze(sf_x,sf_y+1,GEOCOIN_FALL );               

              
               }
              
              if ((sf_u==STEIN)||(sf_u==GEOCOIN)) 
               {
                  if ((wald[sf_x+1][sf_y]==NIX) && (wald[sf_x+1][sf_y+1]==NIX)) 
                  {
                  setze(sf_x,sf_y,NIX);
                  setze(sf_x+1,sf_y+1,GEOCOIN_FALL );               

 
                  }
                  else if ((wald[sf_x-1][sf_y]==NIX) && (wald[sf_x-1][sf_y+1]==NIX))  
                  {
                  setze(sf_x,sf_y,NIX);
                  setze(sf_x-1,sf_y+1,GEOCOIN_FALL );               

                 
                 }
               }
                          
           }
     
       }     
     }
  }

}





 function setze(s_x,s_y,wert)
 {
    wald[s_x][s_y]=wert;
    window.document.images[s_x+s_y*20+imo+1].src = sklein[wert].src;
 }


 function spielen()
 {

    if (ablauf==200)
     win();

    
    if (ablauf==20)
    {
    main_x=aundg.x;
    main_y=aundg.y;


     switch (joypad)
    {
     case (0):
                               gehe_nach(main_x+1,main_y) ;break;
     case (1):     
                               gehe_nach(main_x-1,main_y) ; break;
     case (2):       
                                gehe_nach(main_x,main_y-1) ; break;
     case (3): 
                                gehe_nach(main_x,main_y+1) ; break;
     case (4): 
                                tot(); break;
                                
    } 
   joypad=100;
   steine_fallen(); 
   Zecke_bewegen();
   }


    if ((ablauf >99) && (ablauf < 120))
    {
    ablauf++;
    }


  }


 function startclick()
  {
  
  if (aktivint!=0) window.clearInterval(aktivint);
  aktivint=window.setInterval('spielen()',150);
  startspiel();
  ablauf=20;

  }
 
 function selectclick()
  {
  }

 function pruefen()
 {
 alert(ablauf);
 }

 function hilfe1()
 {
 }

 function debugen()
 {
   alert(error_code);
 }




 function loeschebild()
 {


 }

 function joy_click(JoyID)
 {
  joypad=JoyID;

 }

 function ku()
 {
 
 joy_click(100);
 }

 function kd()
 {
 
 }


 function mup()
 {
 }

 function zeigebild(Nr,wert)
 {
 }
 
