--- /dev/null
+//progcomp.ucc.asn.au/cgi-bin/qchess.cgi?r=start\r
+//progcomp.ucc.asn.au/cgi-bin/qchess.cgi?r=quit\r
+//progcomp.ucc.asn.au/cgi-bin/qchess.cgi?x=X&y=Y (0 indexed)\r
+\r
+pieceSelected = "";\r
+piece = "";\r
+\r
+function selectPiece(loc) {\r
+ x = (""+loc).charAt(1);\r
+ y = (""+loc).charAt(0);\r
+ //alert(loc);\r
+ if (pieceSelected == "") {\r
+ if (document.getElementById(loc).innerHTML.charAt(0) == "W") {\r
+ console.log("Piece Selected: " + loc);\r
+ pieceSelected = loc;\r
+ ajaxUpdate("x=" + x + "&y=" + y);\r
+ }\r
+ }\r
+ else {\r
+ //alert("pieceMoved");\r
+ if (validMove(pieceSelected, piece, loc)) {\r
+ ajaxUpdate("x=" + x + "&y=" + y);\r
+ doMove(pieceSelected, loc);\r
+ pieceSelected = "";\r
+ }\r
+ else {\r
+ console.log("Invalid Move");\r
+ }\r
+ }\r
+}\r
+\r
+function validMove(start, piece, end) {\r
+ return true;\r
+}\r
+\r
+function doMove(start, end) {\r
+ begin = document.getElementById(start);\r
+ end = document.getElementById(end);\r
+ htmlToMove = begin.innerHTML;\r
+ end.innerHTML = htmlToMove;\r
+ begin.innerHTML = "";\r
+ //console.log("Piece Moved");\r
+}\r
+\r
+function boardLoad() {\r
+ ajaxUpdate("r=force_quit");\r
+ \r
+ \r
+ \r
+ for (i = 0; i < 8; i++) {\r
+ for (j = 0; j < 8; j++) {\r
+ e = i + "" + j;\r
+ elem = document.getElementById(e)\r
+ if ((i + j) % 2 == 0)\r
+ elem.style.background="#FFF";\r
+ else\r
+ elem.style.background="#DDD";\r
+ }\r
+ }\r
+ \r
+ //Place pieces on the board\r
+ //Pawns\r
+ for (i = 0; i < 8; i++) {\r
+ black = document.getElementById("1" + i);\r
+ white = document.getElementById("6" + i);\r
+ black.innerHTML = "B<br /><small>p</small> <bold>?</bold> <small>?</small></span>";\r
+ white.innerHTML = "W<br /><small>p</small> <bold>?</bold> <small>?</small></span>";\r
+ \r
+ black = document.getElementById("0" + i);\r
+ white = document.getElementById("7" + i);\r
+ piece = "p";\r
+ if (i == 0 || i == 7)\r
+ piece = "r";\r
+ if (i == 1 || i == 6)\r
+ piece = "h";\r
+ if (i == 2 || i == 5)\r
+ piece = "b";\r
+ if (i == 3)\r
+ piece = "k";\r
+ if (i == 4)\r
+ piece = "q";\r
+ \r
+ black.innerHTML = "B<br /><small>" + piece + "</small> <bold>?</bold> <small>?</small>";\r
+ white.innerHTML = "W<br /><small>" + piece + "</small> <bold>?</bold> <small>?</small>";\r
+ }\r
+ \r
+ setTimeout(function(){ajaxUpdate("r=start");}, 1000);\r
+}\r
+\r
+//AJAX Stuff\r
+function ajaxUpdate(queryString) {\r
+ var ajaxRequest; // The variable that makes Ajax possible!\r
+\r
+ try {\r
+ // Opera 8.0+, Firefox, Safari\r
+ ajaxRequest = new XMLHttpRequest();\r
+ } catch (e) {\r
+ // Internet Explorer Browsers\r
+ try {\r
+ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");\r
+ } catch (e) {\r
+ try {\r
+ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");\r
+ } catch (e) {\r
+ // Something went wrong\r
+ alert("Your Browser is not Ajax Compatible, Please Upgrade to Google Chrome.");\r
+ return false;\r
+ }\r
+ }\r
+ }\r
+ \r
+ //alert(queryString);\r
+ \r
+ // Create a function that will receive data sent from the server\r
+ ajaxRequest.onreadystatechange = function () {\r
+ //alert("RS" + ajaxRequest.readyState);\r
+ if (ajaxRequest.readyState == 4) {\r
+ console.log("AJAX Response: " + ajaxRequest.responseText);\r
+ ret = ""+ajaxRequest.responseText;\r
+ if (ret.charAt(4) == "-" && ret.charAt(5) == ">") {\r
+ //Piece has been moved\r
+ //console.log("Moving other piece");\r
+ lines = ret.split("\n");\r
+ //if (lines[3] != "SELECT?") {\r
+ if (lines[2] != "SELECT?") {\r
+ x1 = lines[2].charAt(0);\r
+ y1 = lines[2].charAt(2);\r
+ x2 = lines[2].charAt(7);\r
+ y2 = lines[2].charAt(9);\r
+ console.log("Black Move: " + x1 + "" + y1 + " -> " + x2 + "" + y2);\r
+ doMove(y1 + "" + x1, y2 + "" + x2);\r
+ }\r
+ else {\r
+ console.log("Black Unable to move");\r
+ }\r
+ }\r
+ else {\r
+ lines = ret.split("\n");\r
+ if (lines[1] == "MOVE?") {\r
+ //We selected a piece\r
+ //console.log("choose where to move our piece");\r
+ piece = lines[0].charAt(6);\r
+ //console.log("Piece: " + piece);\r
+ content = document.getElementById(pieceSelected);\r
+ contentHTML = content.innerHTML;\r
+ //contentHTML = contentHTML.replace("?", piece);\r
+ //"W<br /><small>p</small> <bold>?</bold> <small>?</small></span>";\r
+ if (lines[0].charAt(4) == "1") {\r
+ //console.log("changing quantum piece");\r
+ contentHTML = replaceAt(contentHTML, 44, piece);\r
+ }\r
+ contentHTML = replaceAt(contentHTML, 28, piece);\r
+ //console.log(contentHTML);\r
+ //contentHTML = "CHANGED" + contentHTML;\r
+ content.innerHTML = contentHTML;\r
+ }\r
+ }\r
+ \r
+ //alert(ret);\r
+ }\r
+ }\r
+ \r
+ //ar = "http://progcomp.ucc.asn.au/cgi-bin/qchess.cgi?" + queryString;\r
+ ar = "/../../../cgi-bin/qchess.cgi?" + queryString;\r
+ \r
+ console.log("AJAX Request: " + ar);\r
+ \r
+ ajaxRequest.open("GET", ar, true);\r
+ ajaxRequest.send();\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+function replaceAt(s, n, t) {\r
+ //console.log(s.substring(0, n) + "\n" + t + "\n" + s.substring(n + 1) + "\n");\r
+ return (s.substring(0, n) + t + s.substring(n + 1));\r
+}
\ No newline at end of file