// p6.js 1.52 08-08-09 00:40 

function getNewPuzzle()
{
	var b = ' src="http://wheredidmybraingo.com/g/B.gif" alt="B"';
	var w = ' src="http://wheredidmybraingo.com/g/W.gif" alt="W"';
	var x = ' src="http://wheredidmybraingo.com/g/X.gif" alt="X"';
    var n0 = '<table border="2" cellpadding="8" cellspacing="0" style="margin-top: 128px;" summary="The Lucas Problem"><tbody><tr>';
    var n1 = '<td><img onclick="return getMove(this)" name="Z1BBBBXWWWW0"' + b;
    var n2 = '></td><td><img onclick="return getMove(this)" name="Z2BBBBXWWWW0" ' + b;
    var n3 = '></td><td><img onclick="return getMove(this)" name="Z3BBBBXWWWW0" ' + b;
    var n4 = '></td><td><img onclick="return getMove(this)" name="Z4BBBBXWWWW0" ' + b;
    var n5 = '></td><td><img title="Restart" onclick="return getMove(this)" name="0" ' + x;
    var n6 = '></td><td><img onclick="return getMove(this)" name="Z6BBBBXWWWW0" ' + w;
    var n7 = '></td><td><img onclick="return getMove(this)" name="Z7BBBBXWWWW0" ' + w;
    var n8 = '></td><td><img onclick="return getMove(this)" name="Z8BBBBXWWWW0" ' + w;
    var n9 = '></td><td><img onclick="return getMove(this)" name="Z9BBBBXWWWW0" ' + w;
    var n10 = '></td></tr></tbody></table>';
    var s = document.getElementById("special");
   if (s != null)
   {
      s.innerHTML = n0 + n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8 + n9 + n10;
      return true;
   }
   else
   {
      return false;
   }
} // end getNewPuzzle

function newXMLHttpRequest()
{
   var xmlreq = false;
   if (window.XMLHttpRequest)
   {
      xmlreq = new XMLHttpRequest();
      return xmlreq;
   }

   if (window.ActiveXObject)
   {
      try
      {
         xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
      }  catch (err)
         {
            xmlreq = false;
         }
   } // end if ActiveX
   return xmlreq;
} // end newXMLHttpRequest

function getMove(move)
{
   var retval = false;
   var test=move.getAttribute("name");
   var cgi="/cgi-bin/puzzle.cgi/?" + test
   var s = document.getElementById("special");
   var req = newXMLHttpRequest();

   if ( (s == null) || (req == false) )
      return retval;

   req.open("GET", cgi, false);
   req.send(null);
   if (req.status != 200)
   {
      alert("System Error");
      return getNewPuzzle();
   } /* end if error */

   retval = true;
   var first = req.responseText.charAt(0);
   switch (first)
   {
      case 'Q':   getNewPuzzle();
                  break;
      case 'I':   alert(req.responseText);
                  break;
      case 'C':   getNewPuzzle();
                  alert(req.responseText);
                  break;
      case 'L':   first = req.responseText.charAt(1);
                  if (first != 'o')
                     s.innerHTML = '<' + req.responseText.substr(1);

                  if (confirm("You can't move! Try again?"))
                     retval = getNewPuzzle();

                  break;
      default :   s.innerHTML = req.responseText;
                  break;
   } // end switch
   return retval;
} // end getMove


