Commit Qwebchess before fucking with it
[progcomp2013.git] / web / qwebchess / js.js
diff --git a/web/qwebchess/js.js b/web/qwebchess/js.js
new file mode 100644 (file)
index 0000000..732ec4e
--- /dev/null
@@ -0,0 +1,180 @@
+//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

UCC git Repository :: git.ucc.asn.au