1<?xml version="1.0" encoding="UTF-8" ?> 2 3<Module> 4 5 <ModulePrefs 6 title="Chess Puzzler" 7 directory_title="Chess Puzzler" 8 title_url="http://pgn4web.casaschi.net/" 9 description="chess puzzler of the day from the pgn4web project at http://pgn4web.casaschi.net" 10 author="Paolo Casaschi" 11 author_email="pgn4web@casaschi.net" 12 height="270" 13 width="240"> 14 <Require feature="dynamic-height"/> 15 </ModulePrefs> 16 17 <UserPref name="squareSize" 18 display_name="size" 19 datatype="enum" 20 default_value="0"> 21 <EnumValue value="0" display_value="auto resize"/> 22 <EnumValue value="20" display_value="tiny"/> 23 <EnumValue value="24" display_value="small"/> 24 <EnumValue value="30" display_value="medium"/> 25 <EnumValue value="40" display_value="large"/> 26 <EnumValue value="60" display_value="big"/> 27 <EnumValue value="80" display_value="huge"/> 28 <EnumValue value="110" display_value="giant"/> 29 <EnumValue value="150" display_value="colossal"/> 30 </UserPref> 31 <UserPref name="colorScheme" 32 display_name="color" 33 datatype="enum" 34 default_value="0"> 35 <EnumValue value="7" display_value="black"/> 36 <EnumValue value="0" display_value="blue"/> 37 <EnumValue value="1" display_value="braun"/> 38 <EnumValue value="8" display_value="cyan"/> 39 <EnumValue value="2" display_value="gray"/> 40 <EnumValue value="3" display_value="green"/> 41 <EnumValue value="4" display_value="pink"/> 42 <EnumValue value="5" display_value="white"/> 43 <EnumValue value="6" display_value="wood"/> 44 </UserPref> 45 <UserPref name="showBorder" 46 display_name="border" 47 datatype="bool" 48 default_value="false"/> 49 <UserPref name="advancedParameters" 50 display_name="advanced" 51 datatype="string" 52 default_value=""/> 53 54 <Content type="html"> 55 <![CDATA[ 56 57 <body onLoad="myOnResize();" onResize="myOnResize();"> 58 59 <center> 60 <iframe id='mainframe' frameborder='0' scrolling='no' marginheight='0' marginwidth='0'> 61 iframe support required to display the chess puzzler 62 </iframe> 63 </center> 64 65 <script type="text/javascript"> 66 <!-- 67 68 /* 69 * pgn4web javascript chessboard 70 * copyright (C) 2009-2015 Paolo Casaschi 71 * see README file and http://pgn4web.casaschi.net 72 * for credits, license and more details 73 */ 74 75 "use strict"; 76 77 function myOnResize() { 78 79 function getWidth() { 80 if (self.innerHeight) { return self.innerWidth; } 81 else if (document.documentElement && document.documentElement.clientHeight) { 82 return document.documentElement.clientWidth; 83 } else if (document.body) { return document.body.clientWidth; } 84 return 0; 85 } 86 87 var prefs = new _IG_Prefs(); 88 var lightColorHex = 89 new Array("E8E8E8","F2D798","F4F4F4","EFF4EC","EDE8D5","FFFFFF","FFCC99","999999", "F4F4FF"); 90 var darkColorHex = 91 new Array("C2C9D1","C9AD6F","E0E0E0","C6CEC3","CFCBB3","E4E4E4","CC9966","888888", "D4E6FC"); 92 var controlBackgroundColorHex = 93 new Array("E8E8E8","F2D798","F4F4F4","EFF4EC","EDE8D5","FFFFFF","FFCC99","888888", "D4E6FC"); 94 var controlTextColorHex = 95 new Array("585B5E","54110C","888888","888888","615F54","888888","705438","000000", "87AFDA"); 96 var frameBorderColorHex = 97 new Array("C2C9D1","C9AD6F","E0E0E0","C6CEC3","CFCBB3","E4E4E4","CC9966","888888", "D4E6FC"); 98 var colorScheme = prefs.getInt("colorScheme"); 99 100 var squareSize = prefs.getInt("squareSize"); 101 var showBorder = prefs.getBool("showBorder"); 102 var borderSize = showBorder ? Math.ceil(squareSize / 50) : 0; 103 var frameBorderColorHexValue = showBorder ? frameBorderColorHex[colorScheme] : "none"; 104 if (squareSize == 0) { 105 var containerWidth = getWidth(); 106 squareSize = Math.floor(containerWidth / 8); 107 if (squareSize == 0) { squareSize = 30; } 108 if (showBorder) { 109 borderSize = Math.ceil(squareSize / 50); 110 if (squareSize * 8 + borderSize * 2 > containerWidth) { 111 squareSize = squareSize - Math.ceil(squareSize / (50 * 8 / 2)); 112 borderSize = Math.ceil(squareSize / 50); 113 } 114 } 115 } 116 117 var advancedParameters = prefs.getString("advancedParameters"); 118 if (advancedParameters && (advancedParameters.charAt(0) != "&")) { 119 advancedParameters = "&" + advancedParameters; 120 } 121 122 var matches, frameHeight, frameWidth; 123 if (matches = advancedParameters.match(/frameHeight=([^&]*)/)) { frameHeight = matches[1]; } 124 else if (matches = advancedParameters.match(/fh=([^&]*)/)) { frameHeight = matches[1]; } 125 else { frameHeight = squareSize * 9 + borderSize * 2; } 126 advancedParameters = advancedParameters.replace(/(frameHeight|fh)=([^&]*)/, ""); 127 if (matches = advancedParameters.match(/frameWidth=([^&]*)/)) { frameWidth = matches[1]; } 128 else if (matches = advancedParameters.match(/fw=([^&]*)/)) { frameWidth = matches[1]; } 129 else { frameWidth = squareSize * 8 + borderSize * 2; } 130 advancedParameters = advancedParameters.replace(/(frameWidth|fw)=([^&]*)/, ""); 131 132 var theObj = document.getElementById('mainframe'); 133 if (theObj) { 134 theObj.height = frameHeight; 135 theObj.style.height = frameHeight + "px"; 136 theObj.width = frameWidth; 137 theObj.style.width = frameWidth + "px"; 138 theObj.src = "http://pgn4web.casaschi.net/puzzler.php?" + 139 "pf=hash" + 140 "&ss=" + squareSize + 141 "&lch=" + lightColorHex[colorScheme] + 142 "&dch=" + darkColorHex[colorScheme] + 143 "&cbch=" + controlBackgroundColorHex[colorScheme] + 144 "&ctch=" + controlTextColorHex[colorScheme] + 145 "&fbch=" + frameBorderColorHexValue + 146 advancedParameters; 147 } 148 149 gadgets.window.adjustHeight(); 150 151 } 152 // --> 153 </script> 154 ]]> 155 </Content> 156 157</Module> 158