var right = 54;var boyobj = null;var lastRoom = 0;var roomArr = new Array();var robotArr = new Array(13);
var gameover=false;var bScore=0;var rScore=0;var doorsOpen = false;var boyTagged = false;var roomPicked=0;
function initScr()
{
    var str = "";
    var dArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
    shuffleArray(dArr);
    for (var i = 1; i <= 12; i++)
    {
        str += ('<div id="d_' + i + '" class="d' + dArr[i-1] + '" onClick="selectSq(' + i + ');"><div id="r_' + i + '" class="rbt"></div></div>');
    }
    
    var o = document.getElementById("room"); if (o != null) {o.innerHTML = str;}    
    boyobj = document.getElementById("boy");
    lastRoom = getRandom(1,12);
    placeBoy(lastRoom);
    right = 54;roomPicked=0;doorsOpen=false;boyTagged = false;
    showStart();
}

function shuffleArray(a)
{
    for (var m = 0; m < a.length; m++)
    {
	t1 = getRandom(0,a.length-1);t2 = getRandom(0,a.length-1);
	if (t1 != t2) {tt = a[t1];a[t1]=a[t2];a[t2]=tt;}
    }
}

function getRandom(min,max)
{
    return min + Math.floor(Math.random()*(max-min+1))
}

function splashBoy(flag)
{
    if (boyTagged) 
    {
        if (boyobj != null)
        {
            if (flag) {rScore += roomArr.length;showScores();boyobj.innerHTML = '<div class="splash_b"></div>';} else {boyTagged=false;boyobj.innerHTML = "";}
        }
    }
}


function openDoors()
{
    if (right > 0) {right -= 2;} else {splashBoy(true);return setTimeout("closeDoors()", 1000);}
    for (var k = 0; k < roomArr.length; k++)
    {
        if (robotArr[roomArr[k]] != null) {robotArr[roomArr[k]].style.clip = "rect(0px 54px 89px " + right + "px)";}
    }
    setTimeout("openDoors()", 10);
}

function closeDoors()
{
    if (right < 54) {right += 2;} else {splashBoy(false);doorsOpen=false;return;}
    for (var k = 0; k < roomArr.length; k++)
    {
        if (robotArr[roomArr[k]] != null) {robotArr[roomArr[k]].style.clip = "rect(0px 54px 89px " + right + "px)";}
    }
    setTimeout("closeDoors()", 10);
}

function isRoboTagged(id)
{
    var isTagged = false;
    for (var k = 0; k < roomArr.length;k++)
    {
        if (roomArr[k] == id)
        {
            if (robotArr[id] != null && robotArr[id].innerHTML == "") 
            {
                isTagged = true;
                robotArr[id].innerHTML = '<div class="splash_r"></div>';
            }
        }
    }
    
    return isTagged;
}

function selectSq(sq)
{
    if (gameover) {return;}
    if (boyTagged) {return;}
    if (doorsOpen && isRoboTagged(sq)) {bScore++;showScores();}
    placeBoy(sq);lastRoom=sq;
}

function placeBoy(n)
{
    var row = Math.floor((n-1)/4);
    var col = (n-1)%4;
    var left = col*77 + 15;
    var top = row*103 + 58;
    if (boyobj != null) {boyobj.style.top = top+'px'; boyobj.style.left=left+'px';}
}

function pickARoom()
{
    if (roomPicked > 0) {roomPicked=0;}
    else {roomPicked = lastRoom;}
    return roomPicked;
}


function showRobots()
{
    if (gameover) {return;}
    while (roomArr.length > 0) {roomArr.pop();}
    var x = getRandom(1, 6);numRobots=x;
    if (roomPicked > 0) {x--;roomArr.push(roomPicked);}
    for (var i = 0; i < x;) 
    {
        var y = getRandom(1,12);
        if (isUnique(y, roomArr)) {roomArr.push(y);i++;}
    }
    
    for (var k = 0; k < roomArr.length; k++) 
    {
        if (robotArr[roomArr[k]] != null) {robotArr[roomArr[k]].innerHTML = "";}
        if (roomArr[k] == lastRoom) {boyTagged = true;}
    }

    pickARoom();
    openDoors();doorsOpen=true;
    setTimeout("showRobots()", getRandom(4000, 8000));
}

function isUnique(n, arr)
{
    var unq = true;
    for (var k = 0; unq && (k < arr.length); k++) {if (arr[k] == n) {unq = false;}}
    return unq;
}

function showScores()
{
    var o = document.getElementById("lft");  if (o != null) {o.innerHTML = "Robo Score:" + rScore;}
    o = document.getElementById("rht");  if (o != null) {o.innerHTML = "Your Score:" + bScore;}
    if ((bScore + rScore) >= 50) 
    {
        gameover=true;
        var str = '<div style="float:right"><div style="float:left;padding:6px;">Game Over</div><div id="lbtn"></div><div id="mbtn" onClick="submitfrm();">OK</div><div id="rbtn"></div></div>';
        var f = document.getElementById("infobrd"); if (f != null) {f.innerHTML = str;}        
    }
}


function submitfrm()
{
    var f = document.getElementById("scene");
    if (f != null) 
    {
        var str = "";
        if (bScore > rScore)
        {
            str = "You won by " + bScore + " to " + rScore;
        }
        else if (bScore < rScore)
        {
            str = "Robots won by " + rScore + " to " + bScore;
        }
        else
        {
            str = "It is a tie.";
        }
        
        f.innerHTML = "";
        var o = f.appendChild(document.createElement('div'));
        o.innerHTML='<input type="hidden" name="helppage" value="robotaghelp.html" />';
        var o = f.appendChild(document.createElement('div'));
        o.innerHTML='<input type="hidden" name="gamepage" value="robotag.html" />';
        o = f.appendChild(document.createElement('div'));
        o.innerHTML='<input type="hidden" name="msg" value="' + str + '" />';
    }
        
    document.robotag_frm.submit();
}    


function startGame()
{
    for (var k = 1; k < 13; k++)
    {
        var obj = document.getElementById("r_" + k);
        if (obj != null) {robotArr[k] = obj;}        
    }
    showRobots();
    var f = document.getElementById("infobrd"); if (f != null) {f.innerHTML = '<div id="lft"></div><div id="rht">';}        
    showScores();
}

function showStart()
{
        var str = '<div style="float:right"><div style="float:left;padding:6px;">Are you ready?</div><div id="lbtn"></div><div id="mbtn" onClick="startGame();">Yes</div><div id="rbtn"></div></div>';
        var f = document.getElementById("infobrd"); if (f != null) {f.innerHTML = str;}        
}