<!-- Begin
// ---- Make array
function MakeArray( n){
    this.length = n;
    for (var i = 1; i <= n; i++) { 
        this[i] = 0 
    }
    return this
}

// ----- poor man's random number
var d0 = new Date();
var r0 = d0.getSeconds();
function poor_rand(){
    d1 = new Date();
    r0 = (r0 * r0 + r0 + d1.getSeconds()) % 3721 ;
    return r0 % width_n;
}

// ---- Parameters of game
var height_n = 8;
var width_n =5;

// ---- state of game
var enemy = new MakeArray( width_n); // enemy positions
var wtime; // wait time
var score; // points
var gameover; // in case of gameover set to true


// ----- game main timer event 
// -----     enemy come one step
function come(){
    var n = poor_rand();
    document.fm2.elements[ width_n * enemy[n+1] + n].checked = true;
    enemy[n+1]++;
    if( enemy[n+1] < height_n){
        setTimeout("come()", wtime);
    }else{
      gameover = true;
      document.fm1.message.value =  "GAME OVER:" + score ;
      AskWindow=window.open('http://www.onefunsite.com/cgi-bin/dbman/fire/db.cgi?Score='+score+'&db=default&uid=&add_form=1','AskWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=400,height=250,left=100,top=100');
    }
}

// ----- Fire the n th beam
function fire( n){
    if( gameover ) return;
    for( var i=0; i<enemy[n+1]; i++){ // clear enemy
        document.fm2.elements[ width_n * i + n].checked = false;
    }
    score += enemy[ n+1];
    document.fm1.message.value = "Points:" + score;
    enemy[ n+1] = 0;
    if( wtime > 100){ wtime -= 10};
}

// ---- initialize & start game
function game_start(){
   for( var n=0; n<width_n; n++){
        for( var i=0; i<enemy[n+1]; i++){
            document.fm2.elements[ width_n * i + n].checked = false;
        }
        enemy[n+1] = 0;
    }
    wtime = 400;
    score = 0;
    gameover = false;
    document.fm1.message.value = "Points:" + score;
    setTimeout("come()", wtime);
}

// End -->