//DEKLARACE PROMĚNÝCH 
var timerID = null
var INT = 100					//rychlost kulicky - cim vyssi tim pomalejsi - orig 35
var loadFLG=0
var gameFLG=0
var missFLG=0
var tim = 0                                    //time
var blcol = new Array(5)                       //block color
var blsta = new Array(40)                      //block status
var blclr = 0                                  //clear block
var ballX = 0                                  //ball data
var ballY = 0
var ballN = 10					//počet pokusů na jednu hru - orig 3
var ballDX= 0
var ballDY= 0
var tmpRL = 178					//orig 193
var keyP=0
var keyPr=0
var endFLG=0

blcol[0]="#FFFF00"
blcol[1]="#FFB000"
blcol[2]="#FF8000"
blcol[3]="#FF4000"
blcol[4]="#FF0000"
blcol[5]="#000000"

var ieFLG=0
var n4FLG=0
if (document.all){
 ieFLG=1
}else{
 if (document.getElementById){
  n4FLG=0
 }else{
  n4FLG=1
 }
}


//-----------------------------------------
//------------- main function -------------
//-----------------------------------------

function mainF(){
 clearTimeout(timerID)
 tim=tim+1
 with (Math){tmptim=floor(tim/10)}
 tmptc=""
 tmptb=tim/10
 if (tim==tmptim*10){tmptc=".0"}
 ballX=ballX+ballDX
 ballY=ballY+ballDY
 outCHK()
 blkCHK()
 if (document.getElementById){
  document.SC.TM.value=tmptb+tmptc
  document.SC.CL.value=blclr
  document.SC.SR.value=blclr*200-tim
  document.getElementById("ball").style.top =  ballY
  document.getElementById("ball").style.left = ballX
 }else{
  if (ieFLG==1){
   document.SC.TM.value=tmptb+tmptc
   document.SC.CL.value=blclr
   document.SC.SR.value=blclr*200-tim
   ball.style.posTop = ballY
   ball.style.posLeft = ballX
  }else{
   document.layers["info"].document.forms[0].TM.value=tmptb+tmptc
   document.layers["info"].document.forms[0].CL.value=blclr
   document.layers["info"].document.forms[0].SR.value=blclr*200-tim
   document.layers["ball"].moveTo(ballX,ballY)
  }
 }
 racketMove()
 if (gameFLG==1){timerID = setTimeout("mainF()",INT)}
}


//-----------------------------------------
//------------- sub functions -------------
//-----------------------------------------

//game init
function initG(){
  keyP=0
 if (endFLG == 0){
  endFLG=1
  blclr=0
  tim=0
  //ballN=3
  with (Math){tmptim=floor(tim/10)}
  if (document.getElementById){
   document.SC.TM.value=tmptim
   document.getElementById("ovrmes").style.top=-1000
   document.getElementById("clrmes").style.top=-1000
  }else{
   if (ieFLG==1){
    document.SC.TM.value=tmptim
    clrmes.style.top=-1000
    ovrmes.style.top=-1000
   }else{
    document.layers["info"].document.forms[0].TM.value=tmptim
    document.layers["ovrmes"].visibility="HIDE"
    document.layers["clrmes"].visibility="HIDE"
   }
  }
  for (ib=0; ib<5; ib++){for (ia=0; ia<8; ia++){
   tmpIDn=ib*8+ia+1
   if (document.getElementById){
    document.getElementById(tmpIDn).style.backgroundColor = blcol[ib]
   }else{
    if (ieFLG==1){
     document.all(tmpIDn+9).style.backgroundColor = blcol[ib]
    }else{
     document.layers[tmpIDn].bgColor=blcol[ib]
    }
   }
   blsta[ib*8+ia]=ib
  }}
 }
 if (document.getElementById){
  document.SC.BL.value=ballN
  document.getElementById("starter").style.top=-1000
 }else{
  if (ieFLG==1){
   document.SC.BL.value=ballN
   starter.style.top=-1000
  }else{
   document.layers["info"].document.forms[0].BL.value=ballN
   document.layers["starter"].visibility="HIDE"
  }
 }
 gameFLG=1;loadFLG=1
 ballX=209;ballY=270;ballDX=-8;ballDY=-8;tmpRL=178;missFLG=0  //orig tmpRL=178
 timerID = setTimeout("mainF()",INT)
}


function keyDown(DnEvents){
 if (ieFLG==0){
  k=DnEvents.which
 }else{
  k=window.event.keyCode
 }

  if (k == 54){keyP=5}                         //6
  if (k == 102){keyP=5}                        //6

  if (k == 52){keyP=-5}                        //4
  if (k == 100){keyP=-5}                       //4

  if (k == 83){if (gameFLG==0){initG()}}       //S
  if (k == 115){if (gameFLG==0){initG()}}      //s
}

function keyUp(UpEvents){
 if (ieFLG==0){
  k=UpEvents.which
 }else{
  k=window.event.keyCode
 }
  if (k == 102){keyP=0}                   //6
  if (k == 54 ){keyP=0}                   //4
  if (k == 100){keyP=0}                   //6
  if (k == 52 ){keyP=0}                   //4
}


//racket move
function racketMove(){
 if (loadFLG==1){
  if (keyP != 0){
   tmpkeyP=keyP*keyPr
   if (tmpkeyP>=0){
    if (keyPr != 0){
     if (Math.abs(keyPr)<15){keyPr=keyPr*1.2}
    }else{
     keyPr=keyP
    }
   }else{
   keyPr=keyP
   }
  }else{
   keyPr=0
  }
  tmpRL=tmpRL+keyPr
  if (tmpRL<1){tmpRL=1}  //orig 16
  if (tmpRL>355){tmpRL=355}  //orig 370
  if (document.getElementById){
   document.getElementById("racket").style.left=tmpRL
  }else{
   if (ieFLG==1){
    racket.style.left=tmpRL
   }else{
    document.layers["racket"].left=tmpRL
   }
  }
 }
}

//wall and racket check
function outCHK(){
 if (ballX < 1){ballX=2-ballX;ballDX=-ballDX}		//bylo 16 a 32
 if (ballX > 386){ballX=772-ballX;ballDX=-ballDX}	//bylo 401 a 802
 if (ballY < 16){ballY=32-ballY;ballDY=-ballDY}
 if (ballY >= 272){
  if (missFLG==0){
   tmpX=(ballDX/ballDY)*(272-ballY)+ballX
   if (tmpX >= tmpRL-12){
    if (tmpX <= tmpRL+42){
     ballY=272;ballDY=-ballDY
     ballX=tmpX
     ballRD=tmpX-tmpRL
     with (Math){ballDX=8*abs(ballDX)/ballDX}
     if (ballRD<-4){ballDX=-15}
     if (ballRD>36){ballDX=15}
     if (ballRD>=14){if (ballRD<=16){ballDX=-2}}
     if (ballRD>=17){if (ballRD<=20){ballDX=2}}
     if (ballRD>=0){if (ballRD<=4){ballDX=-4}}
     if (ballRD>=28){if (ballRD<=32){ballDX=4}}
     if (ballRD>=-4){if (ballRD<=-1){ballDX=-11}}
     if (ballRD>=33){if (ballRD<=36){ballDX=11}}
    }
   }
  if (ballDY>0){missFLG=1}
  }else{
  if (ballY>290){missFLG=0;ballN=ballN-1;gameEnd()}
  }
 }
}

//block check
function blkCHK(){
 tmpY=ballY+4;tmpX=ballX+4
 if (tmpY>=48){if (tmpY<=147){if (tmpX>=29){if (tmpX<=396){
  with (Math) {
   ia=floor((tmpX-29)/46);ib=floor((tmpY-48)/20);ic=ib*8+ia
  }
  if (blsta[ic]<=4){
   tmpbc=blsta[ic]+1
   blsta[ic]=tmpbc
   tmpIDnc=ic+1
   if (document.getElementById){
    document.getElementById(tmpIDnc).style.backgroundColor = blcol[tmpbc]
   }else{
    if (ieFLG==1){
     document.all(tmpIDnc+9).style.backgroundColor = blcol[tmpbc]
    }else{
     document.layers[tmpIDnc].bgColor=blcol[tmpbc]
    }
   }
   if (tmpbc==5){blclr=blclr+1}
   if (blclr >= 40){gameEnd()}

   if (ballDX>0){
    iy=(ballDY/ballDX)*(29+46*ia-tmpX)+tmpY
    if (iy>48+20*ib+18){
     tmpY1=48+20*ib+18
     tmpX1=(ballDX/ballDY)*(48+20*ib+18-tmpY)+tmpX  
     ballX=tmpX1-4;ballY=tmpY1-4
     ballDY=-ballDY
    }else{
     if (iy<44+20*ib){
      tmpY1=48+20*ib
      tmpX1=(ballDX/ballDY)*(48+20*ib-tmpY)+tmpX  
      ballX=tmpX1-4;ballY=tmpY1-4
      ballDY=-ballDY
     }else{
      tmpX1=29+46*ia
      tmpY1=(ballDY/ballDX)*(29+46*ia-tmpX)+tmpY
      ballX=tmpX1-4;ballY=tmpY1-4
      ballDX=-ballDX
     }
    }
   }else{
    iy=(ballDY/ballDX)*(29+46*ia+44-tmpX)+tmpY
    if (iy>48+20*ib+18){
     tmpY1=48+20*ib+18
     tmpX1=(ballDX/ballDY)*(48+20*ib+18-tmpY)+tmpX  
     ballX=tmpX1-4;ballY=tmpY1-4
     ballDY=-ballDY
    }else{
     if (iy<44+20*ib){
      tmpY1=48+20*ib
      tmpX1=(ballDX/ballDY)*(48+20*ib-tmpY)+tmpX  
      ballX=tmpX1-4;ballY=tmpY1-4
      ballDY=-ballDY
     }else{
      tmpX1=29+46*ia+44
      tmpY1=(ballDY/ballDX)*(29+46*ia+44-tmpX)+tmpY
      ballX=tmpX1-4;ballY=tmpY1-4
      ballDX=-ballDX
     }
    }
   }

  }
 }}}}
}

//game end
function gameEnd(){
 gameFLG=0
 loadFLG=0
 if (document.getElementById){
  document.SC.BL.value=ballN
  document.getElementById("starter").style.top=200
  if (blclr >= 40){
   document.getElementById("clrmes").style.top=10 // bylo top=150
   endFLG=0
  }
  if (ballN <= 0){
   document.getElementById("ovrmes").style.top=160
   endFLG=0
  }
 }else{
  if (ieFLG==1){
   document.SC.BL.value=ballN
   starter.style.top=200
   if (blclr >= 40){
    clrmes.style.top=10 // bylo top=150
    endFLG=0
   }
   if (ballN <= 0){
    ovrmes.style.top=160
    endFLG=0
   }
  }else{
   document.layers["info"].document.forms[0].BL.value=ballN
   document.layers["starter"].visibility="SHOW"
   if (blclr >= 40){
    document.layers["clrmes"].visibility="SHOW"
    endFLG=0
   }
   if (ballN <= 0){
    document.layers["ovrmes"].visibility="SHOW"
    endFLG=0
   }
  }
 }
}

//Event init
function onLD(){
 document.onkeydown = keyDown
 document.onkeyup = keyUp

 if (document.getElementById){
  document.getElementById("starter").style.top=200
  document.getElementById("info").style.top=16
 }else{
  if (ieFLG==1){
   starter.style.top=200
   info.style.top=16
  }else{
   document.layers["starter"].visibility="SHOW"
  }
 }
 if (n4FLG!=0){document.captureEvents(Event.KEYDOWN|Event.KEYUP)}
}

