var Game0_Ply_Text = null;
var Game0_Ply_Position = null;
var Game0_Ply_Comment = null;
var Game0_Max_Ply = 0;
var shade = null;
var Current_Position = null;
var Current_Comment = null;
var Current_Ply_Text = null;
var Current_Game_Max_Ply = 0;
var Current_Game_Ply = 0;
var dir_path = null;



//  Function to map light and dark squares.

function Square_is_Light_or_Dark()
{
  var row, col;
  var square;

  shade = new Array();
  for(row = 0, square = 0; row < 8; row++)
  {
    for(col = 0; col < 8; col++, square++)
    {
      if ((row + col) % 2 != 0)
        shade[square] = "d.gif";
      else
        shade[square] = "l.gif";
    }
  }
}

//  Function to Select Game for Display

function Select_Game()
{
  Current_Game_Ply = 0;
  Current_Position = Game0_Ply_Position[0];
  Current_Comment = Game0_Ply_Comment[0];
  Current_Ply_Text = Game0_Ply_Text[0];
  Current_Game_Max_Ply = Game0_Max_Ply;
  Display_Diagram(Current_Position, Current_Comment, Current_Ply_Text);
}

//  Function to Display Move

function Move(Ply)
{
  Current_Game_Ply = Ply;
  Current_Position = Game0_Ply_Position[Ply];
  Current_Comment = Game0_Ply_Comment[Ply];
  Current_Ply_Text = Game0_Ply_Text[Ply];
  Display_Diagram(Current_Position, Current_Comment, Current_Ply_Text);
}

//  Function to Display Next Move

function Next_Move()
{
  Current_Game_Ply++;
  Current_Position = Game0_Ply_Position[Current_Game_Ply];
  Current_Comment = Game0_Ply_Comment[Current_Game_Ply];
  Current_Ply_Text = Game0_Ply_Text[Current_Game_Ply];
  Display_Diagram(Current_Position, Current_Comment, Current_Ply_Text);
}

//  Function to Display Previous Move

function Previous_Move()
{
  Current_Game_Ply--;
  Current_Position = Game0_Ply_Position[Current_Game_Ply];
  Current_Comment = Game0_Ply_Comment[Current_Game_Ply];
  Current_Ply_Text = Game0_Ply_Text[Current_Game_Ply];
  Display_Diagram(Current_Position, Current_Comment, Current_Ply_Text);
}

//  Function to convert Forsythe_Notation to a 64-square board array.

function Display_Diagram(Forsythe_Notation, Comment, Ply_Text)
{
  var index, num, row, col;
  var num_of_empty_squares = 0;
  var length_of_Forsythe_Notation = 0;
  var current_char = "";
  var icon = "";
  var piece;
  var square;

  piece = new Array();
  square = 0;
  length_of_Forsythe_Notation = Forsythe_Notation.length;
  for (index = 0; index < length_of_Forsythe_Notation; index++)
  {
    current_char = Forsythe_Notation.charAt(index);
    if (current_char == "/")
      continue;
    if (current_char == "p")
    {
      piece[square++] = "bp";
      continue;
    }
    if (current_char == "P")
    {
      piece[square++] = "wp";
      continue;
    }
    if (current_char == "n")
    {
      piece[square++] = "bn";
      continue;
    }
    if (current_char == "N")
    {
      piece[square++] = "wn";
      continue;
    }
    if (current_char == "b")
    {
      piece[square++] = "bb";
      continue;
    }
    if (current_char == "B")
    {
      piece[square++] = "wb";
      continue;
    }
    if (current_char == "r")
    {
      piece[square++] = "br";
      continue;
    }
    if (current_char == "R")
    {
      piece[square++] = "wr";
      continue;
    }
    if (current_char == "k")
    {
      piece[square++] = "bk";
      continue;
    }
    if (current_char == "K")
    {
      piece[square++] = "wk";
      continue;
    }
    if (current_char == "q")
    {
      piece[square++] = "bq";
      continue;
    }
    if (current_char == "Q")
    {
      piece[square++] = "wq";
      continue;
    }
    num_of_empty_squares = parseInt(current_char);
    for (num = 0; num < num_of_empty_squares; num++)
    {
      piece[square++] = "s";
    }
  }
  //
  //Create Diagram Display HTML
  //
  parent.frames[1].document.open();
  parent.frames[1].document.write("<HTML><BODY background=\"" + dir_path + "chessboard/bg.jpg\"><center>");
  parent.frames[1].document.write("<NOBR>");
  for (row = 0, square = 0; row < 8; row++)
  {
    for (col = 0; col < 8; col++, square++)
    {
      icon = "img src=\"" + dir_path + "chessboard/" + piece[square] + shade[square] + "\" height=33 width=33";
      parent.frames[1].document.write("<" + icon + ">");
    }
    parent.frames[1].document.write("<BR CLEAR=ALL>");
  }
  parent.frames[1].document.write("</NOBR>");
  parent.frames[1].document.write(Ply_Text + "<BR>");
  parent.frames[1].document.write("<FORM>");
  if (Current_Game_Ply > 0)
  {
    parent.frames[1].document.write("<INPUT TYPE=\"button\" VALUE=\"&lt; Previous\" onClick=\"parent.frames[0].Previous_Move()\">");
  }
  if (Current_Game_Ply < Current_Game_Max_Ply)
  {
    parent.frames[1].document.write(" <INPUT TYPE=\"button\" VALUE=\"Next Move &gt;\" onClick=\"parent.frames[0].Next_Move()\">");
  }
  parent.frames[1].document.write("</FORM>");
  parent.frames[1].document.write("</center> <br>");
  parent.frames[1].document.write(Comment + "<BR>");
  parent.frames[1].document.write("</BODY></HTML>");
  parent.frames[1].document.close();
}
