169 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			169 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
								 | 
							
								<!DOCTYPE HTML>
							 | 
						||
| 
								 | 
							
								<html>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<!--
							 | 
						||
| 
								 | 
							
								  pgn4web javascript chessboard
							 | 
						||
| 
								 | 
							
								  copyright (C) 2009-2013 Paolo Casaschi
							 | 
						||
| 
								 | 
							
								  see README file and http://pgn4web.casaschi.net
							 | 
						||
| 
								 | 
							
								  for credits, license and more details
							 | 
						||
| 
								 | 
							
								-->
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<head>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<title>Gelfand Grisichuk 2011 - needs an HTML5 browser with SVG IMG support</title>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<!-- use viewport settings when body.onresize adapts the chessboard to the available space -->
							 | 
						||
| 
								 | 
							
								<meta name="viewport" content="initial-scale=1, maximum-scale=1">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<link rel="shortcut icon" href="pawn.ico" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<style type="text/css">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								html, body {
							 | 
						||
| 
								 | 
							
								  margin:0px;
							 | 
						||
| 
								 | 
							
								  padding:0px;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								body {
							 | 
						||
| 
								 | 
							
								  background: #F4F4F4;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.boardTable {
							 | 
						||
| 
								 | 
							
								  border-style: solid;
							 | 
						||
| 
								 | 
							
								  border-color: transparent;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.whiteSquare, .highlightWhiteSquare {
							 | 
						||
| 
								 | 
							
								  background-color: #FFCE9E;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.blackSquare, .highlightBlackSquare {
							 | 
						||
| 
								 | 
							
								  background-color: #D18B47;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</style>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<style id="dynamicStyle" type="text/css"></style>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<script type="text/javascript">
							 | 
						||
| 
								 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var squareSize;
							 | 
						||
| 
								 | 
							
								function myOnResize() {
							 | 
						||
| 
								 | 
							
								  var boardObject = document.getElementById("GameBoard");
							 | 
						||
| 
								 | 
							
								  var squareSize = Math.floor(Math.min(window.innerWidth, window.innerHeight) / 9);
							 | 
						||
| 
								 | 
							
								  if (squareSize > 0) {
							 | 
						||
| 
								 | 
							
								    var pieceSize = Math.floor(squareSize * (pieceFont == "svgchess" ? 0.9 : 0.8));
							 | 
						||
| 
								 | 
							
								    var boardBorder = Math.ceil(squareSize / 20);
							 | 
						||
| 
								 | 
							
								    var shadowBorder = Math.floor(squareSize / 2);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var sheet = document.styleSheets[1];
							 | 
						||
| 
								 | 
							
								    var oldRules = sheet.cssRules.lenght;
							 | 
						||
| 
								 | 
							
								    sheet.insertRule(".boardTable { border-width: " + boardBorder + "px; border-radius: " + boardBorder + "px; box-shadow: 0px 0px " + shadowBorder + "px #734C27; } ", sheet.cssRules.length);
							 | 
						||
| 
								 | 
							
								    sheet.insertRule(".pieceImage { width:" + pieceSize + "px; height:" + pieceSize + "px; } ", sheet.cssRules.length);
							 | 
						||
| 
								 | 
							
								    sheet.insertRule(".whiteSquare, .blackSquare, .highlightWhiteSquare, .highlightBlackSquare { width:" + squareSize + "px; height:" + squareSize + "px; } ", sheet.cssRules.length);
							 | 
						||
| 
								 | 
							
								    for (var ii = 0; ii < oldRules; ii++) { sheet.deleteRule(0); }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    boardObject.style.paddingTop = (window.innerHeight - 8 * squareSize - 2 * boardBorder) / 2 + "px";
							 | 
						||
| 
								 | 
							
								    boardObject.style.paddingBottom = (window.innerHeight - 8 * squareSize - 2 * boardBorder) / 2 + "px";
							 | 
						||
| 
								 | 
							
								    boardObject.style.paddingLeft = (window.innerWidth - 8 * squareSize - 2 * boardBorder) / 2 + "px";
							 | 
						||
| 
								 | 
							
								    boardObject.style.paddingRight = (window.innerWidth - 8 * squareSize - 2 * boardBorder) / 2 + "px";
							 | 
						||
| 
								 | 
							
								    var theObj = document.getElementById("boardTable");
							 | 
						||
| 
								 | 
							
								    if (theObj) {
							 | 
						||
| 
								 | 
							
								      theObj.style.height = (squareSize * 8 + boardBorder * 2) + "px";
							 | 
						||
| 
								 | 
							
								      theObj.style.width = (squareSize * 8 + boardBorder * 2) + "px";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<script src="pgn4web.js" type="text/javascript"></script>
							 | 
						||
| 
								 | 
							
								<script type="text/javascript">
							 | 
						||
| 
								 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var pieceFont = "random";
							 | 
						||
| 
								 | 
							
								var thisRegExp = /(&|\?)(pieceFont|pf)=([^&]*)(&|$)/i;
							 | 
						||
| 
								 | 
							
								if (window.location.search.match(thisRegExp) !== null) {
							 | 
						||
| 
								 | 
							
								  pieceFont = unescape(window.location.search.match(thisRegExp)[3]);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								if (pieceFont == "i") { pieceFont = "igorsvg"; }
							 | 
						||
| 
								 | 
							
								if (pieceFont == "s") { pieceFont = "svgchess"; }
							 | 
						||
| 
								 | 
							
								if (pieceFont == "t") { pieceFont = "tilesvg"; }
							 | 
						||
| 
								 | 
							
								if ((pieceFont != "igorsvg") && (pieceFont != "svgchess") && (pieceFont != "tilesvg")) { pieceFont = "random"; }
							 | 
						||
| 
								 | 
							
								if ((pieceFont == "random") || (pieceFont == "r")) {
							 | 
						||
| 
								 | 
							
								  pieceFont = ["igorsvg", "svgchess", "tilesvg"][Math.floor(3 * Math.random())];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SetImagePath("images/" + pieceFont);
							 | 
						||
| 
								 | 
							
								SetImageType("svg");
							 | 
						||
| 
								 | 
							
								SetHighlightOption(true);
							 | 
						||
| 
								 | 
							
								SetAutoplayDelay(2000); // milliseconds
							 | 
						||
| 
								 | 
							
								SetAutostartAutoplay(true);
							 | 
						||
| 
								 | 
							
								SetAutoplayNextGame(true);
							 | 
						||
| 
								 | 
							
								SetShortcutKeysEnabled(false);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function customFunctionOnPgnGameLoad() { myOnResize(); }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function customDebugInfo() { return "squareSize=" + squareSize; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// redefine FlipBoard() to include myOnResize()
							 | 
						||
| 
								 | 
							
								window['defaultFlipBoard'] = window['FlipBoard'];
							 | 
						||
| 
								 | 
							
								window['FlipBoard'] = function() { defaultFlipBoard(); myOnResize(); };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</head>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<body onResize="myOnResize();">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<!-- paste your PGN below and make sure you dont specify an external source with SetPgnUrl() -->
							 | 
						||
| 
								 | 
							
								<form style="display: none;"><textarea style="display: none;" id="pgnText">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[Event "WCh Candidates"]
							 | 
						||
| 
								 | 
							
								[Site "Kazan RUS"]
							 | 
						||
| 
								 | 
							
								[Date "2011.05.25"]
							 | 
						||
| 
								 | 
							
								[Round "3.6"]
							 | 
						||
| 
								 | 
							
								[White "Gelfand, Boris"]
							 | 
						||
| 
								 | 
							
								[Black "Grischuk, Alexander"]
							 | 
						||
| 
								 | 
							
								[Result "1-0"]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1. d4 Nf6 2. c4 g6 3. Nf3 Bg7 4. g3 d5 5. cxd5 Nxd5 6. Bg2 Nb6 7. Nc3 Nc6 8. e3
							 | 
						||
| 
								 | 
							
								O-O 9. O-O Re8 10. Re1 a5 11. Qe2 Bg4 12. h3 Be6 13. b3 a4 14. Rb1 axb3 15. axb3
							 | 
						||
| 
								 | 
							
								Qc8 16. Kh2 Ra5 17. Rd1 Rh5 18. Nh4 Bf6 19. f4 Rd8 20. Qf2 Bxh4 21. gxh4 Nd5 22.
							 | 
						||
| 
								 | 
							
								Nxd5 Rhxd5 23. Bb2 Rb5 24. Qe2 Rh5 25. e4 Bxb3 26. Rdc1 Na5 27. d5 b6 28. Be5 c5
							 | 
						||
| 
								 | 
							
								29. dxc6 f6 30. Ba1 Rc5 31. Rxc5 bxc5 32. Qb5 Qc7 33. Rxb3 Nxc6 34. e5 Nd4 35.
							 | 
						||
| 
								 | 
							
								Qc4+ 1-0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</textarea></form>
							 | 
						||
| 
								 | 
							
								<!-- paste your PGN above and make sure you dont specify an external source with SetPgnUrl() -->
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<div id="GameBoard"></div>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<script type="text/javascript">
							 | 
						||
| 
								 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								window.onerror = function(msg, url, linenumber) {
							 | 
						||
| 
								 | 
							
								  document.body.innerHTML = "<p style='font-family: sans-serif; text-align: center;'><br>this web browser<br>is not supported</p>";
							 | 
						||
| 
								 | 
							
								  document.body.innerHTML += "<p style='font-family: sans-serif; text-align: left;'><br><br>message: " + msg + "<br><br>url: " + url + "<br><br>line: " + linenumber + "<br><br>browser: " + navigator.userAgent + "</p>";
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function checkSVGSupport() {
							 | 
						||
| 
								 | 
							
								  var img = document.createElement("img");
							 | 
						||
| 
								 | 
							
								  img.onerror = function() { throw("SVG browser support required for the IMG HTML tag"); };
							 | 
						||
| 
								 | 
							
								  img.onload = function() { };
							 | 
						||
| 
								 | 
							
								  img.setAttribute("src","data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNzUiIGhlaWdodD0iMjc1Ij48L3N2Zz4%3D");
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function pgn4web_onload(e) {
							 | 
						||
| 
								 | 
							
								  checkSVGSupport();
							 | 
						||
| 
								 | 
							
								  myOnResize();
							 | 
						||
| 
								 | 
							
								  start_pgn4web();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</body>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</html>
							 |