//      The following section can be altered to suit...     //

var new_high_popup_window=false;	// this decides whether to do "popup" when new high scored
var new_high_url="127.0.0.1/index.html";// change this to url of high score popup window
var new_high_width=400;			// change this to desired high score window width
var new_high_height=200;		// change this to desired high score window height
var new_high_resizable=true;		// true if high score window is to be resizable
var new_high_scrolling=true;		// true if high score window is to be scrollable

var SCRIPT='http://lovers.ru/cgi-bin/gamesst.cgi';
//var SCRIPT='http://localhost/cgi-bin/gamesst.cgi';


//var high_score_reset=1000;		// initial high score value when game starts
var high_score_reset=MAXSCORE;

var number_of_lives=3;			// lives per game.

var game_difficulty=0;			// 0 (normal) up to 5 (hard)

var close_after_gameover=false;		// if true, the game will close itself after each game


// End of section. Don't change anything below this line... //

var ie4=(document.all)?true:false;
var ns4=(document.layers)?true:false;
var adder=0, gameon=false, pause=false, pausetmr=0, pauseflipflop=false, jumpheight=0, gid=0, lowestball=0, exploding=false, ballinuse=0, lchk=0, gamespeed=10, levelsetpos=0, lastlevel=0, gameon=false, gametmr=0, gs=0, score=0, hi=0, lives=0, playerpos=0, playerheight=0, shooting=false, level=0, nxtball=0, keyleft=false, keyright=false, keyfire=false, lastkey=-1, demospd=0, bn=0, spin=0, nxt=0, demotmr=0, demtxton=false, demtxtflash=4, demspeed=50, sprac=50, spracdir=1, spracloops=0, spracrunning=true, ob=new Array(), dig=new Array(), timebonus1=null, timebonus2=null, pauselyr=null, txtlayer=null, thebar=null, sin=new Array(), cos=new Array(), ball=new Array(), grid=new Array(), gridlookup=new Array(), tmr=null, tmr2=null, bcheck=0, exparray=new Array(), fallarray=new Array(), globarray=new Array(), globptr=0, globcol=0; levelsetup=new Array(4,4,4,4,4,4,4,4,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,-2,6,290,-1,0,1,2,3,2,1,0,0,1,2,3,3,2,1,0,-1,1,2,3,4,3,2,1,0,1,2,3,3,2,1,0,-1,0,1,2,3,2,1,0,-2,10,290,1,2,3,4,5,1,2,3,-1,-1,-1,-1,-1,-1,-1,4,-1,1,5,4,3,2,1,5,2,-1,-1,-1,-1,-1,-1,-1,-1,3,4,5,1,2,3,4,-1,-1,-1,-1,-1,-1,-1,5,3,2,1,5,4,3,2,1,-2,40,290,-1,-1,-1,1,1,-1,-1,-1,-1,-1,2,1,2,-1,-1,-1,-1,-1,3,2,2,3,-1,-1,-1,4,3,2,3,4,-1,-1,-1,-1,5,4,4,5,-1,-1,-1,-1,6,5,6,-1,-1,-1,-1,-1,-1,1,1,-2,11,290,3,0,3,1,1,3,0,3,3,3,2,2,2,3,3,-1,0,6,6,4,4,6,6,0,6,6,6,-1,6,6,6,-1,-2,12,290,-1,-1,1,2,2,1,-1,-1,-1,2,-1,3,-1,2,-1,-1,-1,3,-1,2,2,-1,3,-1,4,-1,3,3,3,-1,4,-1,-1,3,-1,2,2,-1,3,-1,-1,2,-1,-1,-1,2,-1,-1,-1,-1,1,2,2,1,-1,-1,-2,10,290,-1,-1,-1,1,2,-1,-1,-1,-1,-1,3,-1,1,-1,-1,-1,-1,2,3,1,2,3,1,-1,2,-1,3,-1,1,-1,2,-1,-1,3,1,2,3,1,2,-1,-1,-1,3,-1,1,-1,-1,-1,-1,-1,-1,2,3,-1,-1,-1,-2,10,290,2,3,4,2,3,4,2,3,4,-1,-1,-1,-1,-1,4,-1,-1,3,-1,-1,-1,-1,2,-1,-1,2,-1,-1,-1,3,-1,-1,-1,-1,4,-1,-1,4,-1,-1,-1,-1,3,-1,2,-1,-1,-1,-1,-1,-1,2,3,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-2,12,290,2,-1,-1,-1,-1,-1,-1,4,2,-1,-1,-1,-1,-1,-1,4,6,6,6,6,-1,-1,-1,4,3,-1,-1,-1,-1,-1,-1,2,3,-1,-1,-1,-1,-1,-1,2,4,-1,-1,-1,6,6,6,6,4,-1,-1,-1,-1,-1,-1,-1,4,-2,11,290,-1,-1,-1,5,0,-1,-1,-1,-1,-1,0,2,5,-1,-1,-1,-1,0,5,2,2,0,5,-1,5,2,4,4,4,2,0,-1,-1,0,2,4,4,2,5,-1,-1,5,2,4,2,0,-1,-1,-1,-1,0,5,0,5,-2,9,290,0,-1,-1,1,2,-1,-1,3,0,-1,1,-1,2,-1,3,-1,-1,0,1,-1,-1,2,3,-1,-1,0,-1,6,-1,1,-1,-1,-1,2,-1,3,0,-1,1,-1,0,4,0,4,0,4,0,-1,-2,9,290,0,0,1,2,3,4,0,1,1,6,3,4,0,1,2,2,3,4,4,0,1,1,2,3,3,4,0,6,2,3,4,0,-2,12,290,4,3,4,3,4,3,4,3,1,6,1,6,1,6,-1,-1,-1,1,6,1,6,1,6,-1,-1,1,6,1,6,1,6,-1,-1,-1,1,6,1,6,1,6,-2,10,290,1,2,-1,-1,-1,-1,2,1,3,4,2,3,2,4,3,-1,-1,1,2,-1,-1,2,1,-1,-1,3,4,2,4,3,-1,-1,-1,-1,1,2,2,1,-1,-1,-1,-1,3,4,3,-1,-1,-1,-1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,4,-2,10,290,-1,4,3,2,2,3,4,-1,0,-1,-1,1,-1,-1,0,-1,-1,4,3,2,2,3,4,-1,-1,-1,0,-1,0,-1,-1,-1,-1,4,3,2,2,3,4,-1,0,-1,-1,1,-1,-1,0,-1,-1,4,3,2,2,3,4,-1,-2,12,295,-1,5,5,5,5,5,5,5,6,6,6,0,0,6,6,6,-1,4,3,4,3,4,3,4,6,0,6,0,6,0,6,0,-2,12,290,2,2,-1,-1,-1,-1,2,2,6,3,4,-1,4,3,6,-1,6,4,-1,3,3,-1,4,6,6,3,4,-1,4,3,6,-1,-1,6,6,3,3,6,6,-1,-2,12,290,-1,-1,5,3,3,5,-1,-1,-1,5,6,3,6,5,-1,-1,-1,3,5,6,6,5,3,-1,5,6,6,6,6,6,5,-1,-1,3,5,6,6,5,3,-1,-1,5,6,3,6,5,-2,40,290,1,2,2,1,2,2,1,-1,5,4,5,5,4,5,-1,-1,1,2,2,1,2,2,1,-2,10,180,-1,5,3,4,3,5,3,4,6,2,6,2,6,2,-1,-1,-1,6,2,6,2,6,2,-1,-1,6,2,6,2,6,2,-1,-2,10,290,-3);
//var numm = Math.round((Math.random() * (10000000 - 1)));
var numm;

function game_loop()
{
  if(pause) 
    pausing();
  else if(gs==1) 
    playing();
  else if(gs==3) 
    balls_dropping();
  else if(gs==2)
    level_clear();
  else if(gs==4) 
    lose_life();
  else if(gs==5)
// **************************************************************************
  {
    game_over();
    document.writeln("<form action='"+SCRIPT+"' method='POST' name='MYFORM'>");
    document.writeln("<input type='HIDDEN' name='f' value='check'>");
    document.writeln("<input type='HIDDEN' name='f2' value='"+numm+"'>");
    document.writeln("<input type='HIDDEN' name='game' value='9'>");  
    document.writeln("<input type='HIDDEN' name='score' value='"+score+"'>");
    document.writeln("</form>");
    document.MYFORM.submit();    
  }  
  else if(gs==0) 
    start_level();
  if(ie4&&(lastkey==32))
    document.body.scrollTop=0;
  if(!gameon)
   {
     clearInterval(tmr); 
     start_demo()
   }
}

function balls_dropping()
{
  if(keyleft&&(playerpos>100)){playerpos-=2;draw_player()}if(keyright&&(playerpos<170)){playerpos+=2;draw_player()}if(gametmr++==0){for(n=0;n<globptr;n++){var b=globarray[n];var b2=gridlookup[b-30];exparray[n*2]=b2;exparray[(n*2)+1]=((globptr-1)-n)*3;ball[b2].on=false;ball[b2].ydir=jumpheight;ball[b2].xdir=(ball[b2].x<120)?-3:3;grid[b]=-1;gridlookup[b-30]=-1}}else if(exparray[1]>-30){for(n=0;n<globptr;n++){if(exparray[(n*2)+1]--<1){var e=exparray[n*2];if(ball[e].y<300){ob[e].left=ball[e].x+=ball[e].xdir;ob[e].top=ball[e].y+=ball[e].ydir;ball[e].ydir+=4}else if(ball[e].ydir!=0){ball[e].ydir=0;ob[e].left=-1000;ball[e].x=-1000;exparray[(n*2)+1]=-40;if(bcheck==0)add_score(5);else add_score(10)}}}}else if(bcheck==0){bcheck=1;globptr=0;jumpheight=-10;check_recur2(15);for(n=30;n<196;n++) fallarray[n]=-1;for(n=0;n<globptr;n++){grid[globarray[n]]+=1000;fallarray[globarray[n]]=1}globptr=0;for(n=30;n<196;n++) if((grid[n]!=-1)&&(fallarray[n]==-1)) globarray[globptr++]=n;if(globptr>0) gametmr=0}else{gametmr=0;gs=1;get_next_ball()}
}

function draw_ball()
{
  var bb=ball[ballinuse];if(shooting){bb.x+=bb.xdir;bb.y+=bb.ydir;var by=Math.floor((bb.y-13)/25);if((bb.x>224)||(bb.x<18)){bb.xdir=-bb.xdir;if(bb.x<18) bb.x=18;else if(bb.x>224) bb.x=224}var hit=check_collide();if(hit>-1){shooting=false;var thisok=true;bmbh=bb.y-ball[hit].y;bmbh2=bb.x-ball[hit].x;if(bmbh>6) ty=ball[hit].y+25;else if(bmbh<-6) ty=ball[hit].y-25;else ty=ball[hit].y;if(ty!=ball[hit].y){if(bmbh2>0) tx=ball[hit].x+14;else tx=ball[hit].x-14;for(n2=0;n2<96;n2++){if((ball[n2].x==tx)&&(ball[n2].y==ty)){thisok=false;break}}if(!thisok){ty=ball[hit].y;tx=ball[hit].x+((bb.xdir>0)?-28:28);if(tx<12||tx>224) thisok=false;else{thisok=true;for(n2=0;n2<96;n2++){if((ball[n2].x==tx)&&(ball[n2].y==ty)){thisok=false;break}}}if(!thisok){ty+=25;tx+=(bb.xdir>0)?14:-14}}}else tx=ball[hit].x+((bb.xdir>0)?-28:28);ob[ballinuse].left=tx;ob[ballinuse].top=ty;bb.x=tx;bb.y=ty;var row=(ty-13)/25;var adder=28;var off=1;if(row/2==Math.floor(row/2)){off=0;adder=14}var col=((tx-adder)/28);var abspos=row*16+(col*2)+off;bb.abspos=abspos;gridlookup[abspos]=ballinuse;grid[abspos+30]=bb.color;bb.on=true;if(check_link(abspos+30,grid[abspos+30])>2){gs=3;gametmr=0;bcheck=0;jumpheight=-5}if(gs==1) get_next_ball()}}else bb.y=playerheight;ob[ballinuse].left=ball[ballinuse].x;ob[ballinuse].top=ball[ballinuse].y
}

function check_collide()
{
  var x=ball[ballinuse].x;var y=ball[ballinuse].y;for(n=0;n<95;n++) if(ball[n].on&&(n!=ballinuse)) if(!((x>ball[n].x+20)||(x<ball[n].x-20)||(y>ball[n].y+18)||(y<ball[n].y-18))) return n;return -1
}

function draw_player()
{
  var amp=18;for(n=101;n<105;n++){ob[n].left=132+cos[playerpos]*amp;ob[n].top=playerheight+14+sin[playerpos]*amp;amp+=3}
}

function playing()
{
  if(keyleft&&(playerpos>100)){playerpos-=2;draw_player()}if(keyright&&(playerpos<170)){playerpos+=2;draw_player()}if(keyfire&&!shooting) fire_ball();if(gametmr++>gamespeed){playerheight-=2;gametmr=0;thebar.top=playerheight+22;draw_player();if(playerheight-6<lowestball){gametmr=0;gs=4}}draw_ball()
}

function get_next_ball()
{
  lowestball=0;for(n=0;n<96;n++) if(ball[n].on&&(ball[n].y>lowestball)) lowestball=ball[n].y;for(n=0;n<96;n++) if(!ball[n].on){ballinuse=n;break}ball[ballinuse].x=120;ball[ballinuse].y=playerheight;ball[ballinuse].on=true;ball[ballinuse].color=nxtball;ob[ballinuse].top=playerheight;ob[ballinuse].left=120;set_ball(ballinuse,nxtball);var tmpa=new Array();var tmpan=0;for(n=30;n<192;n++){if((grid[n]!=-1)&&(grid[n]<6)){var fnd=false;for(g=0;g<tmpan;g++){if(tmpa[g]==grid[n]) fnd=true}if(!fnd){tmpa[tmpan]=grid[n];tmpan++}}}if(tmpan==0){gametmr=0;gs=2}else{nxtball=tmpa[Math.floor(Math.random()*tmpan)];set_ball(95,nxtball)}
}

function fire_ball()
{
  shooting=true;lchk=-1;ball[ballinuse].xdir=cos[playerpos]*11;ball[ballinuse].ydir=sin[playerpos]*11; window.open("/games/banner.html", "banner");
}

function game_over()
{
  if(gametmr++==0)
   {
     // ************* ÂÓÈÃÏ 0001
     layer_write('<table width=200 border=0 cellpadding=0 cellspacing=0><tr><td><font size=6 color="#ffdd00" face="Arial,Helvetica,sans-serif">ÈÃÐÀ ÎÊÎÍ×ÅÍÍÀ</font></td></tr></table>');
     demotmr=252;
     demospd=16
   }
  else if(gametmr<99)
   {
     timebonus2.left=demotmr;
     demotmr-=demospd;
     if(demotmr<-150)
      {
        demotmr+=400; demospd-=5;
      }
   }
  else if((gametmr==130)&&(score>=hi))
   {
     layer_write('<table width=200 border=0 cellpadding=0 cellspacing=0><tr><td><font size=6 color="#ffdd00" face="Arial,Helvetica,sans-serif">ËÓ×ØÈÉ ÐÅÇÓËÜÒÀÒ!</font></td></tr></table>');
     if(new_high_popup_window)
      {
        var additional="";
        additional+=(new_high_resizable)?",resizable":"";
        additional+=(new_high_scrolling)?",scrollbars":"";
        newhigh=window.open(new_high_url+"?score="+score+"&level="+level,"highwin","status,left="+(((screen.width-4)-new_high_width)/2)+",top="+(((screen.height-10)-new_high_height)/2)+",width="+new_high_width+",height="+new_high_height+additional)};
        if(close_after_gameover)
         self.close()
      }
     else if(gametmr==170)
      { 
        gameon=false;
      }
}

function set_ball(wch,col)
{
  if(ie4) document.images[wch].src="ball"+col+".gif";else document.layers[wch].document.images[0].src="ball"+col+".gif"
}

function obclip(obj,left,right,top,bottom)
{   if(ns4){obj.clip.left=left;obj.clip.right=right;obj.clip.top=top;obj.clip.bottom=bottom}else obj.clip="rect("+top+","+right+","+bottom+","+left+")"
}

function kd()
{
  lastkey=window.event.keyCode;
  setkey(lastkey,true);
  return false
}

function ku()
{
  lastkey=window.event.keyCode;
  setkey(lastkey,false);
  return false
}

function kd2(evt)
{
  lastkey=evt.which;
  setkey(lastkey,true);
  return false
}

function ku2(evt)
{
  lastkey=evt.which;
  setkey(lastkey,false);
  return false
}

function setkey(key,state)
{
  if(key==81||key==113){keyleft=state;lastkey=1}else if(key==87||key==119){keyright=state;lastkey=2}else if(key==80||key==112){keyfire=state;lastkey=3}else if((key==88||key==120)&&state){pause=!pause;pauselyr.left=-1000}
}

function start_demo()
{
  var bcol=0;for(n=0;n<96;n++){set_ball(n,bcol);if(bcol++==6) bcol=0}for(n=0;n<105;n++){ob[n].left=-1000;if(n<96) ball[n].on=false}thebar.top=-1000;timebonus2.left=-1000;bn=94;nxt=2;spin=0;gameon=false;demotmr=0;demtxton=false;demtxtflash=4;lastkey=0;tmr=setInterval("demo()",demspeed)
}

function demo()
{
  if(nxt--==0){nxt=(ie4)?1:3;if(demtxtflash--==0){demtxtflash=4;demtxton=!demtxton;if(demtxton) ob[98].left=-1000;else ob[98].left=54}ball[bn].on=true;ball[bn].x=120;ball[bn].y=160;ball[bn].xdir=cos[spin]*6;ball[bn].ydir=sin[spin]*6;spin+=83;if(spin>179) spin-=180;if(bn--==0) bn=94}for(n=0;n<96;n++){if(ball[n].on){ball[n].x+=ball[n].xdir;ball[n].y+=ball[n].ydir;ob[n].left=ball[n].x;ob[n].top=ball[n].y;if((ball[n].y>310)||(ball[n].y<-5)||(ball[n].x>250)||(ball[n].x<-10)){ball[n].on=false;ob[n].left=-1000}}}if(demotmr++==1){ob[100].left=-1000;ob[96].left=38}else if(demotmr==demspeed*2){ob[96].left=-1000;ob[97].left=55}else if(demotmr==demspeed*4){ob[97].left=-1000;ob[99].left=18}else if(demotmr==demspeed*8){ob[99].left=-1000;ob[100].left=22}else if(demotmr==demspeed*11) demotmr=0;	if(ie4&&(lastkey==32)) document.body.scrollTop=0;if(lastkey==3){clearInterval(tmr);for(n=0;n<101;n++) ob[n].left=-1000;start_game()}
}

function clear_balls()
{
  for(n=0;n<95;n++)
    ob[n].left=-1000;
}

function layer_write(txt)
{
  if(ie4) txtlayer.innerHTML=txt;else{txtlayer.document.open();txtlayer.document.write(txt);txtlayer.document.close()}
}

function reset_score()
{
  score=0;
  for(n=0;n<6;n++)
   {
     dig[n].top=337;obclip(dig[n],0,16,0,16);
   }
}

function set_hi(s)
{
  hi=s; show_score(1,hi);
}

function add_score(s)
{
  score+=s; show_score(0,score);
}

function show_score(wch,s)
{
  ix=(wch*6)+5;while(s>0){s2=Math.floor(s/10)*10;s3=(s-s2)*16;dig[ix].top=337-s3;obclip(dig[ix],0,16,s3,s3+16);ix--;s=Math.floor(s2/10)}if(score>hi) set_hi(score)
}

function check_recur(cpos)
{
  var mycpos=cpos;globarray[globptr]=mycpos;globptr++;grid[mycpos]++;if(grid[mycpos+2]==globcol) check_recur(mycpos+2);if(grid[mycpos+15]==globcol) check_recur(mycpos+15);if(grid[mycpos+17]==globcol) check_recur(mycpos+17);if(grid[mycpos-17]==globcol) check_recur(mycpos-17);if(grid[mycpos-15]==globcol) check_recur(mycpos-15);if(grid[mycpos-2]==globcol) check_recur(mycpos-2);return
}

function check_recur2(cpos)
{
  var mycpos=cpos;globarray[globptr]=mycpos;globptr++;grid[mycpos]-=1000;if(grid[mycpos-15]>-1) check_recur2(mycpos-15);if(grid[mycpos+15]>-1) check_recur2(mycpos+15);if(grid[mycpos+17]>-1) check_recur2(mycpos+17);if(grid[mycpos-2]>-1) check_recur2(mycpos-2);if(grid[mycpos-17]>-1) check_recur2(mycpos-17);if(grid[mycpos+2]>-1) check_recur2(mycpos+2);return
}

function check_link(gpos,col)
{
  globptr=0;globcol=col;check_recur(gpos);if(globptr<3){grid[globarray[0]]--;if(globptr>1) grid[globarray[1]]--}return globptr
}

function level_clear()
{
  if(keyleft&&(playerpos>100)){playerpos-=2;draw_player()}if(keyright&&(playerpos<170)){playerpos+=2;draw_player()}if(gametmr++==0){layer_write('<font size=6 color="#ffffff" face="Arial,Helvetica,sans-serif">'+playerheight+'</font>')}else if(gametmr<70){timebonus1.left=(gametmr*7)-200;timebonus2.left=360-(gametmr*7)}else{timebonus1.left=-1000;timebonus2.left=-1000;add_score(playerheight);gametmr=0;gs=0}
}

function lose_life()
{  if(gametmr++==0){if(lives>0){var s=(lives>1)?"ves":"fe";timebonus2.left=-1000;layer_write('<table cellpadding=0 cellspacing=0 border=0 width=240><tr><td><font size=5 color="#ffffff" face="Arial,Helvetica,sans-serif">'+lives+'</font> <font size=5 color="#ffdd00" face="Arial,Helvetica,sans-serif">Li'+s+' îñòàëîñü</font></td></tr></table>');lives--;window.open('/games/banner.html','banner');levelsetpos=lastlevel;level--}else{gs=5;gametmr=0}}else if(gametmr<70){timebonus2.left=300-(gametmr*8)}else{timebonus2.left=-1000;gs=0;gametmr=0}
}

function start_game()
{
  reset_score();gid=0;playerpos=135;thebar.left=-3;thebar.top=500;gameon=true;ballinuse=0;lastlevel=0;levelsetpos=0;lives=number_of_lives-1;level=0;gs=0;gametmr=0;nxtball=1;tmr=setInterval("game_loop()",demspeed)
}

function start_level()
{
  if(keyleft&&(playerpos>100))
   { playerpos-=2; draw_player(); }
  if(keyright&&(playerpos<170))
   { playerpos+=2; draw_player(); }
  if(gametmr++==0)
   {
     lowestball=0; lastlevel=levelsetpos; exploding=false; ballinuse=94;
     clear_balls();
     level++;
     shooting=false;
     var gridpos=0;
     var stilldata=true;
     var ld=0;
     var xadd=1;
     for(n=0;n<96;n++)
      {
        grid[n+30]=-1; grid[96+30+n]=-1; gridlookup[n]=-1; gridlookup[n+96]=-1;
        ball[n].on=false;  ball[n].x=-1000; ob[n].left=-1000
      }
     ob[95].left=135; ob[95].top=331;
     while(stilldata)
      {
        ps=levelsetup[levelsetpos++];
        if(ps!=-2)
         {
           if(ps>-1)
             grid[gridpos+30]=ps;
           gridpos+=2
         }
        else
           stilldata=false;
        if(ld++==7)
         { 
           ld=0; gridpos+=xadd; xadd=(xadd==1)?-1:1;
         }
      }
     gamespeed=levelsetup[levelsetpos++]-(gid+game_difficulty);
     playerheight=levelsetup[levelsetpos++];
     if(levelsetup[levelsetpos]==-3)
      { 
        levelsetpos=0; gid+=2;
      }
     var x=0;
     var gp=0;
     var adder=0;
     for(n=0;n<12;n++)
      {
        for(g=0;g<16;g++)
         {
           if(grid[gp+30]>-1)
            {
              ob[x].left=14+(g*14); ob[x].top=13+(n*25);
              ball[x].x=14+(g*14); ball[x].y=13+(n*25); ball[x].on=true;    ball[x].color=grid[gp+30]; ball[x].abspos=gp;
              set_ball(x,grid[gp+30]);
              gridlookup[gp]=x;
              if(ball[x].y>lowestball)
                lowestball=ball[x].y;
              x++;
            }
           gp++
         }	
        adder=(adder==0)?14:0
      }
     for(n=0;n<8;n++)
      {
        ball[x+n].x=28+(n*28); ball[x+n].y=-12;
        ob[x+n].left=ball[x+n].x; ob[x+n].top=ball[x+n].y;
        set_ball(x+n,99);
        ball[x+n].on=true; ball[x+n].color=99; ball[x+n].abspos=(n*2)+15
      }
     get_next_ball();
     ball[ballinuse].on=false; 
     ob[ballinuse].left=-1000;
     get_next_ball();
     thebar.top=playerheight+22;
     draw_player();
     keyfire=false;
     layer_write('<font size=6 color="#ffdd00" face="Arial,Helvetica,sans-serif">Óðîâåíü </font><font size=6 color="#ffffff" face="Arial,Helvetica,sans-serif">'+level+'</font>');
     timebonus2.left=80
   }
  else if(gametmr==15)
   {
     timebonus2.left=-1000;gs=1;pause=false
   }
}

function speed_test()
{
  layer_write('<font color="#ffdd00" face="Arial,Helvetica,sans-serif" size=3>Òåñò ñêîðîñòè...</font>');
  timebonus2.left=90;
  sprac=50;
  spracdir=1;
  spracloops=0;
  spracrunning=true;
  tmr=setInterval("timer()",2500);
  tmr2=setTimeout("spdtst()",2)
}

function spdtst()
{
  spracloops++;
  sprac+=spracdir;
  if(sprac>150)
    spracdir=-1;
  else if(sprac<50)
    spracdir=1;
  ob[1].left=sprac;  ob[1].top=100;
  if(spracrunning) 
    tmr2=setTimeout("spdtst()",2);
  else 
    ob[1].left=-1000
}

function timer()
{
  clearTimeout(tmr);
  timebonus2.left=-1000;
  spracrunning=false;
  demspeed=spracloops;
  if(demspeed>50)
    demspeed=50;
  start_demo()
}

function init()
{
  if(game_difficulty>5)
   game_difficulty=5;
  else if(game_difficulty<0)
   game_difficulty=0;
  var bcol=0;
  for(n=0;n<105;n++)
   {
     ob[n]=(ie4)?document.all["b"+n].style:document.layers["b"+n];
     if(n<96)
      {
        ball[n]=new Ball();
        set_ball(n,bcol);
        if(bcol++==6)  
          bcol=0;
      }
   }
  for(n=0;n<12;n++)
   {
     dig[n]=(ie4)?document.all["num"+n].style:document.layers["num"+n];
   }
  thebar=(ie4)?document.all["thebar"].style:document.thebar;
  pauselyr=(ie4)?document.all["pausediv"].style:document.pausediv;
  timebonus1=(ie4)?document.all["timebonus"].style:document.timebonus;
  timebonus2=(ie4)?document.all["timebonus2"].style:document.timebonus2;
  txtlayer=(ie4)?document.all["timebonus2"]:document.timebonus2;
  if(ns4)
   {
     document.captureEvents(Event.KEYDOWN);
     document.onkeydown=kd2;
     document.captureEvents(Event.KEYUP);
     document.onkeyup=ku2;
   }
  for(n=0;n<30;n++) 
    grid[n]=-1;
  for(n=15;n<30;n+=2) 
    grid[n]=99;
  for(n=0;n<180;n++)
   {
    sin[n]=(Math.sin(3.14159*n/90));
    cos[n]=(Math.cos(3.14159*n/90))
   }
  set_hi(high_score_reset);
  focus();
  speed_test();
  window.status=""
  numm = Math.round((Math.random() * (10000000 - 1)));
}

function Ball()
{
  this.x=0; this.y=0; this.xdir=0; this.ydir=0; this.on=false; this.color=0; this.abspos=0;
}

function pausing()
{
  if(lastkey==88||lastkey==120)
   {
     lastkey=-1; pausetmr=8; pauseflipflop=false; 
   }
  if(pausetmr++==8)
   {
     pauseflipflop=!pauseflipflop; pausetmr=0;
     if(pauseflipflop&&pause) 
       pauselyr.left=86;
     else pauselyr.left=-1000;
   }
}