Indeed, in the modern version shown here the piece confinement doesn't need scripting anymore, but can be done with morph definitions. Enforcing the 'face off' rule can now simply be done with an fkR move on the Kings. For a non-checkered board shading one still has to provide a custom script, though. The I.D. looks for a function xxxShade(x, y) on the page, where xxx is the value of the satellite parameter. This function can return a 0 or 1 for selecting the defined light and dark shades, or a string like '#123456' for defining an arbitrary other color.
The best way for doing what you want is probably to make what that function returns dependent on some parameter that can be set by the buttons that select the theme. Unless you define the light and dark shades as transparent in all cases, and then provide a whole-board image for each of those. (And assign that to the variable background when the corresponding button is pressed.)
Indeed, in the modern version shown here the piece confinement doesn't need scripting anymore, but can be done with morph definitions. Enforcing the 'face off' rule can now simply be done with an fkR move on the Kings. For a non-checkered board shading one still has to provide a custom script, though. The I.D. looks for a function xxxShade(x, y) on the page, where xxx is the value of the satellite parameter. This function can return a 0 or 1 for selecting the defined light and dark shades, or a string like '#123456' for defining an arbitrary other color.
The best way for doing what you want is probably to make what that function returns dependent on some parameter that can be set by the buttons that select the theme. Unless you define the light and dark shades as transparent in all cases, and then provide a whole-board image for each of those. (And assign that to the variable background when the corresponding button is pressed.)