<!--
var playsym = new Array('&nbsp;', 'X', 'O');
var placls = new Array("", "redcls", "blucls");
var moves = new Array(0,0,0,0,0,0,0,0,0,0); 
var winstr = new Array("123", "456", "789", "147", "258", "369", "159", "357");
function initscr()
{
    toggleplay("disabled");
    
    gameover = false;
    for(var i = 0; i <10; i++) {moves[i] = 0;}
    var tblstr = "<table border=0 cellspacing=0 cellpadding=0>";
    for (var i = 1; i < 4; i++)
    {
        tblstr += "<tr>";
        for (var j = 1; j < 4; j++)
        {
            var sq = (i-1)*3 + j;
            tblstr += ("<td class=tds onclick='playsqr(" + sq + ");'><div id=sq" + sq + "></div></td>");
        }
        tblstr += "</tr>";
    }
    tblstr += "</table>";
    var tobj = document.getElementById("ttb");
    if (tobj != null) {tobj.innerHTML = tblstr;}
    
    if (!yourturn) {getmove();togturn=true} else {togturn=false;}
}

function showPlayers()
{
    var tblstr = "<table border=0 cellspacing=1 cellpadding=4 bgcolor=#eeeeee>";
    tblstr += "<tr><td class=tdp>Player 1: <b>" + names[1] + "</b></td><td class=tdp rowspan=3>&nbsp;&nbsp;&nbsp;</td><td class=tdp>Player 2: <b>" + names[2] + "</b></td></tr>";
    tblstr += "<tr><td class=tdp>Symbol: <b><span class=redcls>" + playsym[1] + "</span></b></td><td class=tdp>Symbol: <b><span class=blucls>" + playsym[2] + "</span></b></td></tr>";
    tblstr += "<tr><td class=tdp>Games won: <b><span id=gw1>0</span></b></td><td class=tdp>Games won: <b><span id=gw2>0</span></b></td></tr>";
    tblstr += "</table>";
    var tobj = document.getElementById("ttp");
    if (tobj != null) {tobj.innerHTML = tblstr;}
}


function playsqr(sq)
{
    if (!yourturn || gameover) {return;}
    else if (moves[sq] != 0) {alert("Sorry! you can not use this square.");return;}
    yourturn = false;
    moves[sq] = player;
    var dobj = document.getElementById("sq" + sq);
    if (dobj != null) {dobj.innerHTML = "<span class='" + placls[player] + "'>" + playsym[player] + "</span>";}
    var done = checkgame(player);
    sendmove(player, sq, done);
}

function sendmove(pnum, sq, done)
{
    if (!done)
    {
        getmove();
    }
}

function getsmartmove()
{
    var posstr = "";
    for (i = 1; i <= 9; i++) {if (moves[i] == 0) {posstr += i;}}
    if (posstr.length == 0) {return -1;} /* draw */
    /* return some random at the beginning */
    if (posstr.length >= 8) 
    {
        sq = Math.floor(Math.random()*9+1);
        while (moves[sq] != 0) {sq = Math.floor(Math.random()*9+1);}
        return sq;
    }
    
    /* try a smart move */
    if (posstr.length <= 5)
    {
        for (i = 0; i < winstr.length; i++)
        {
            var sq1 = parseInt(winstr[i].charAt(0));var sq2 = parseInt(winstr[i].charAt(1));var sq3 = parseInt(winstr[i].charAt(2));
            if (moves[sq1] == 2 && moves[sq2] == 2) {if (moves[sq3] == 0) {return sq3;}}
            if (moves[sq2] == 2 && moves[sq3] == 2) {if (moves[sq1] == 0) {return sq1;}}
            if (moves[sq1] == 2 && moves[sq3] == 2) {if (moves[sq2] == 0) {return sq2;}}
        }
    }

    /* try to block opponents game */
    for (i = 0; i < winstr.length; i++)
    {
        var sq1 = parseInt(winstr[i].charAt(0));var sq2 = parseInt(winstr[i].charAt(1));var sq3 = parseInt(winstr[i].charAt(2));
        if (moves[sq1] == 1 && moves[sq2] == 1) {if (moves[sq3] == 0) {return sq3;}}
        if (moves[sq2] == 1 && moves[sq3] == 1) {if (moves[sq1] == 0) {return sq1;}}
        if (moves[sq1] == 1 && moves[sq3] == 1) {if (moves[sq2] == 0) {return sq2;}}
    }

    /* try a good move */
    for (i = 0; i < winstr.length; i++)
    {
        var sq1 = parseInt(winstr[i].charAt(0));var sq2 = parseInt(winstr[i].charAt(1));var sq3 = parseInt(winstr[i].charAt(2));
        if ((moves[sq1]%2 == 0) && (moves[sq2]%2 == 0) && (moves[sq3]%2 == 0))
        {
            if (moves[sq1] == 0) {return sq1;}
            else if (moves[sq2] == 0) {return sq2;}
            else if (moves[sq3] == 0) {return sq3;}
        }
    }

    var len = posstr.length;
    sq = Math.floor(Math.random()*len+1)-1;
    sq = parseInt(posstr.charAt(sq));
    while (moves[sq] != 0) {sq = Math.floor(Math.random()*len+1)-1;sq = parseInt(posstr.charAt(sq));}
    return sq;
}

function getmove()
{
    if (computer) 
    {
        var sq = getsmartmove();
        if (sq == -1)
        {
            alert("Sorry! It is a draw!");
        }
        else
        {
            showopntmove(sq);
        }
    }
    else
    {
        getopntmove();
    }
}

function getopntmove()
{
}

function showopntmove(sq)
{
    var oppnt = player == 1 ? 2 : 1;
    moves[sq] = oppnt;
    var dobj = document.getElementById("sq" + sq);
    if (dobj != null) {dobj.innerHTML = "<span class='" + placls[oppnt] + "'>" + playsym[oppnt] + "</span>";}
    if (!checkgame(oppnt)) {yourturn = true;}
}

function checkgame(n)
{
    gameover = false;
    for (i = 0; i < winstr.length; i++)
    {
        var pstr = winstr[i];
        var sq1 = parseInt(pstr.charAt(0)); var sq2 = parseInt(pstr.charAt(1)); var sq3 = parseInt(pstr.charAt(2));
        if (moves[sq1] == n && moves[sq2] == n && moves[sq3] == n)
        {
            alert(names[n] + " won the game.");
            gameover = true;
            setgameswon(n);
            break;
        }
    }
    
    if (!gameover)
    {
        gameover = true;
        for (i = 1; i <= 9 && gameover; i++) {if (moves[i] == 0) {gameover=false;}}
        if (gameover) {alert("Sorry! It is a draw.");}
    }
    
    if (gameover)
    {
        toggleplay("");yourturn = togturn;
    }
    
    return gameover;
}

function setgameswon(n)
{
    var tobj = document.getElementById("gw"+n);
    if (tobj != null) 
    {
        var w = parseInt(tobj.innerHTML);w++;
        tobj.innerHTML = w;
    }
}

function toggleplay(str)
{
    var tobj = document.getElementById("ttn");
    if (tobj != null) {tobj.innerHTML = "<input class=tdb type=button value='Play again' onClick='initscr();' " + str + ">";}
}

//-->
