<!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>pgn4web live broadcast</title> <link rel="shortcut icon" href="pawn.ico" /> <script src="pgn4web.js" type="text/javascript"></script> <script type="text/javascript"> "use strict"; var pgnFile; var pgnFile_default = detectBaseLocation() ? location.protocol + "//" + location.hostname + location.pathname.replace(/\/[^\/]*$/, "/live/live.pgn") : "live/live.pgn"; // accepts pgnData as alias for pgnFile for consistency with board.html if ((pgnFile = gup("pgnData")) === "") { if ((pgnFile = gup("pgnFile")) === "") { pgnFile = pgnFile_default; } } var demoFlag = false; var alertFlag = false; if ((gup("demo") == "true") || (gup("demo") == "t") || (gup("refreshDemo") == "true") || (gup("refreshDemo") == "t")) { demoFlag = true; alertFlag = true; } var refreshMinutes; if ((refreshMinutes = gup("refreshMinutes")) === "") { refreshMinutes = 1; } else { var testMinutes = refreshMinutes + ""; if ((testMinutes.match(/[^0-9\.]/)) || (refreshMinutes === 0)) { if (alertFlag) { alert("ERROR: refreshMinutes parameter must be a positive number.\n" + "Supplied " + testMinutes + "; defaulting to 1."); } refreshMinutes = 1; } } SetPgnUrl(pgnFile); SetShortcutKeysEnabled(true); SetLiveBroadcast(refreshMinutes, alertFlag, demoFlag, false); function customFunctionOnPgnTextLoad() { var resultObject = document.getElementById("results"); if (resultObject) { var resultString = ""; resultString += fillWithBlanks("white", 15) + " "; resultString += fillWithBlanks("black", 15) + " "; resultString += fillWithBlanks("result", 7) + " "; resultString += "\n \n"; for (var gg = 0; gg < numberOfGames; gg++) { resultString += fillWithBlanks(gameWhite[gg], 15) + " "; resultString += fillWithBlanks(gameBlack[gg], 15) + " "; resultString += fillWithBlanks(gameResult[gg], 7) + " "; resultString += "\n"; } resultObject.innerText = resultString; } } var blanks = " "; function fillWithBlanks(str, num) { if (str.length >= num) { return str.substr(0, num); } else { return str + blanks.substr(0, num - str.length); } } function gup(name) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; // commented below to match first occurrence (to avoid users overruling setting) // regexS = regexS+"(?!.*"+regexS+")"; // matches the LAST occurrence var regex = new RegExp( regexS, "i" ); var results = regex.exec( window.location.href ); if (results !== null) { return decodeURIComponent(results[1]); } // allows for short version of the URL parameters, for instance sC matches squareColor var compact_name = name.charAt(0); for (var i=1; i<name.length; i++) { if (name.charAt(i).match(/[A-Z]/)) { compact_name = compact_name + name.charAt(i).toLowerCase(); } } name = compact_name; name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); regexS = "[\\?&]"+name+"=([^&#]*)"; // commented below to match first occurrence (to avoid users overruling setting) // regexS = regexS+"(?!.*"+regexS+")"; // matches the LAST occurrence regex = new RegExp( regexS, "i" ); results = regex.exec( window.location.href ); if (results !== null) { return decodeURIComponent(results[1]); } return ""; } </script> </head> <body style="margin:0px; padding:1.75em; font-family:monospace; color:black; font-size:16px;"> <pre id="results" style="font-size:16px;"></pre> <a id="GameLiveStatus" style="text-decoration:none; color:black;" href="javascript:void(0);" onclick="refreshPgnSource(); this.blur();"></a> </body> </html>