MediaWiki:ExpansionData.js

From Wikicarpedia
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
//
// Expansion Selector Data
//

// Global preferences
var PreferencesMap = 
{
  show: { C1: true, C2: true, WE: false },    // Editions visible
  prefer: "C2",                               // Edition preferences serving as primary
  marks: false                                // Highlights Order of Play 
};


// Constants to identify by number tabs and selector ids
var GROUP_MAJOR = 0,
    GROUP_MINOR = 1,
    GROUP_LICENSED = 2,
    GROUP_OTHER = 2,
    GROUP_FAN = 3,
    GROUP_TOTAL = 4;

//
// Base expansion info - Master Tree of Expansions
//
// Generates CSS classes for:
//  * Individual entries: 1 class name indicated by "className"
//  * Group entries: 4 derived class names based on prefix indicated by "classNamePrefix"
//    - <Prefix_> + Full: visible when all the entries in the group are selected
//    - <Prefix_> + None: visible when none of the entries in the group is selected
//    - <Prefix_> + Any: visible when any of the entries in the group is selected
//    - <Prefix_> + Partial: visible when some -but not all- of the entries in the group are selected
//
var ItemTree = 
[
  { 
    label: "Exp. 1 - Inns And Cathedrals",
    inputFieldId: "inputInnsAndCathedrals",
    classNamePrefix: "showInnsAndCathedrals_",   // Generates: <Prefix_> + [Full|Any|None|Partial]
    edition: [ "C1", "C2" ],
    group: GROUP_MAJOR,
    selected: false,
    open: false,
    children: 
    [
      {
        label: "Inns",
        inputFieldId: "inputInns",
        className: "showInns"
      },
      {
        label: "Cathedrals",
        inputFieldId: "inputCathedrals",
        className: "showCathedrals"
      },
      {
        label: "Big Follower",
        inputFieldId: "inputBigFollower",
        className: "showBigFollower"
      },
    ]
  },
  { 
    label: "Exp. 2 - Traders And Builders",
    inputFieldId: "inputTradersAndBuilders",
    classNamePrefix: "showTradersAndBuilders_",   // Generates: <Prefix_> + [Full|Any|None|Partial]
    edition: [ "C1", "C2" ],
    group: GROUP_MAJOR,
    selected: false,
    open: false,
    children: 
    [
      {
        label: "Trade good tokens",
        inputFieldId: "inputTraders",
        className: "showTraders"
      },
      {
        label: "Builder",
        inputFieldId: "inputBuilder",
        className: "showBuilder"
      },
      {
        label: "Pig",
        inputFieldId: "inputPig",
        className: "showPig"
      },
    ]
  },
  { 
    label: "Exp. 3 - The Princess And The Dragon",
    inputFieldId: "inputPrincessAndDragon",
    classNamePrefix: "showPrincessAndDragon_",   // Generates: <Prefix_> + [Full|Any|None|Partial]
    edition: [ "C1", "C2" ],
    group: GROUP_MAJOR,
    selected: false,
    open: false,
    children: 
    [
      {
        label: "Princess",
        inputFieldId: "inputPrincess",
        className: "showPrincess"
      },
      {
        label: "Dragon",
        inputFieldId: "inputDragon",
        className: "showDragon"
      },
      {
        label: "Fairy",
        inputFieldId: "inputFairy",
        className: "showFairy"
      },
      {
        label: "Magic portal",
        inputFieldId: "inputMagicPortal",
        className: "showMagicPortal"
      },
    ]
  },
  {
    label: "Exp. 4 - The Tower",
    inputFieldId: "inputTower",
    className: "showTower",
    edition: [ "C1", "C2" ],
    group: GROUP_MAJOR,
    selected: false
  },
  { 
    label: "Exp. 5 - Abbey &amp; Mayor",
    inputFieldId: "inputAbbeyAndMayor",
    classNamePrefix: "showAbbeyAndMayor_",   // Generates: <Prefix_> + [Full|Any|None|Partial]
    edition: [ "C1", "C2" ],
    group: GROUP_MAJOR,
    selected: false,
    open: false,
    children: 
    [
      {
        label: "Abbey",
        inputFieldId: "inputAbbey",
        className: "showAbbey"
      },
      {
        label: "Mayor",
        inputFieldId: "inputMayor",
        className: "showMayor"
      },
      {
        label: "Wagon",
        inputFieldId: "inputWagon",
        className: "showWagon"
      },
      {
        label: "Barn",
        inputFieldId: "inputBarn",
        className: "showBarn"
      },
    ]
  },
  { 
    label: "Exp. 6 - Count, King &amp; Robber",
    inputFieldId: "inputCountKingAndRobber",
    classNamePrefix: "showCountKingAndRobber_",   // Generates: <Prefix_> + [Full|Any|None|Partial]
    edition: [ "C1", "C2" ],
    group: GROUP_MAJOR,
    selected: false,
    open: false,
    children: 
    [
      {
        label: "Count of Carcassonne",
        inputFieldId: "inputCountOfCarcassonne",
        className: "showCountOfCarcassonne"
      },
      {
        label: "King & Robber Baron",
        inputFieldId: "inputKingAndRobber",
        className: "showKingAndRobber"
      },
      {
        label: "The River II",
        inputFieldId: "inputRiverII",
        className: "showRiverII"
      },
      {
        label: "Shrines",
        inputFieldId: "inputShrines",
        className: "showShrines"
      },
    ]
  },
  {
    label: "Exp. 7 - The Catapult",
    inputFieldId: "inputCatapult",
    className: "showCatapult",
    edition: [ "C1" ],
    group: GROUP_MAJOR,
    selected: false
  },
  { 
    label: "Exp. 8 - Bridges, Castles &amp; Bazaars",
    inputFieldId: "inputBridgesCastlesAndBazaars",
    classNamePrefix: "showBridgesCastlesAndBazaars_",// Generates: <Prefix_>+[Full|Any|None|Partial]
    edition: [ "C1", "C2" ],
    group: GROUP_MAJOR,
    selected: false,
    open: false,
    children: 
    [
      {
        label: "Bridges",
        inputFieldId: "inputBridges",
        className: "showBridges"
      },
      {
        label: "Castles",
        inputFieldId: "inputCastles",
        className: "showCastles"
      },
      {
        label: "Bazaars",
        inputFieldId: "inputBazaars",
        className: "showBazaars"
      },
    ]
  },
  { 
    label: "Exp. 9 - Hills &amp; Sheep",
    inputFieldId: "inputHillsAndSheep",
    classNamePrefix: "showHillsAndSheep_",   // Generates: <Prefix_> + [Full|Any|None|Partial]
    edition: [ "C1", "C2" ],
    group: GROUP_MAJOR,
    selected: false,
    open: false,
    children: 
    [
      {
        label: "Hills",
        inputFieldId: "inputHills",
        className: "showHills"
      },
      {
        label: "Shepherd",
        inputFieldId: "inputSheep",
        className: "showSheep"
      },
      {
        label: "Vineyards",
        inputFieldId: "inputVineyards",
        className: "showVineyards"
      },
    ]
  },
  { 
    label: "Exp. 10 - Under The Big Top",
    inputFieldId: "inputUnderTheBigTop",
    classNamePrefix: "showUnderTheBigTop_",   // Generates: <Prefix_> + [Full|Any|None|Partial]
    edition: [ "C2" ],
    group: GROUP_MAJOR,
    selected: false,
    open: false,
    children: 
    [
      {
        label: "Circus",
        inputFieldId: "inputCircus",
        className: "showCircus"
      },
      {
        label: "Acrobats",
        inputFieldId: "inputAcrobats",
        className: "showAcrobats"
      },
      {
        label: "Ringmaster",
        inputFieldId: "inputRingmaster",
        className: "showRingmaster"
      },
    ]
  },
  { 
    label: "Exp. 11 - Ghosts, Castles &amp; Cemeteries",
    inputFieldId: "inputGhostsCastlesAndCemeteries",
    classNamePrefix: "showGhostsCastlesAndCemeteries_",   // Generates: <Prefix_> + [Full|Any|None|Partial]
    edition: [ "C2" ],
    group: GROUP_MAJOR,
    selected: false,
    open: false,
    children: 
    [
      {
        label: "Guard Meeples",
        inputFieldId: "inputGuardMeeples",
        className: "showGuardMeeples"
      },
      {
        label: "Ghosts",
        inputFieldId: "inputGhosts",
        className: "showGhosts"
      },
      {
        label: "Haunted Castles",
        inputFieldId: "inputHauntedCastles",
        className: "showHauntedCastles"
      },
      {
        label: "Cemeteries",
        inputFieldId: "inputCemeteries",
        className: "showCemeteries"
      },
    ]
  },
  {
    label: "The Wheel Of Fortune",
    inputFieldId: "inputWheelOfFortune",
    className: "showWheelOfFortune",
    edition: [ "C1" ],
    group: GROUP_MAJOR,
    selected: false
  },
  {
    label: "Mini 1 - The Flier",
    inputFieldId: "inputFlier",
    className: "showFlier",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Mini 2 - Dispatches (Messages)",
    inputFieldId: "inputMessages",
    className: "showMessages",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Mini 3 - The Ferries",
    inputFieldId: "inputFerries",
    className: "showFerries",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Mini 4 - Goldmines",
    inputFieldId: "inputGoldmines",
    className: "showGoldmines",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Mini 5 - Mage & Witch",
    inputFieldId: "inputMageAndWitch",
    classNamePrefix: "showMageAndWitch_",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false,
    open: false,
    children: 
    [
      {
        label: "Mage",
        inputFieldId: "inputMage",
        className: "showMage"
      },
      {
        label: "Witch",
        inputFieldId: "inputWitch",
        className: "showWitch"
      },
    ]
  },
  {
    label: "Mini 6 - Robbers",
    inputFieldId: "inputRobbers",
    className: "showRobbers",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Mini 7 - Crop Circles & Crop Circles II / WE Corn Circles",
    inputFieldId: "inputCropCircles",
    className: "showCropCircles",
    edition: [ "C1", "C2", "WE" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "The River / WE River",
    inputFieldId: "inputRiverI",
    className: "showRiverI",
    edition: [ "C1", "C2", "WE" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "20th Anniversary River",
    inputFieldId: "input20thAnniversaryRiver",
    className: "show20thAnniversaryRiver",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Cathars / Siege / Besiegers",
    inputFieldId: "inputCathars",
    className: "showCathars",
    edition: [ "C1" ],
    group: GROUP_MINOR,
    selected: false
  },

  {
    label: "Licensed Expansions",
    inputFieldId: "inputLicensed",
    edition: [ "C1", "C2" ],
    group: GROUP_LICENSED,
    separator: true,
    labelOnly: true 
  },

  {
    label: "Mini Expansion GQ#11",
    inputFieldId: "inputGQ11",
    className: "showGQ11",
    edition: [ "C1" ],
    group: GROUP_LICENSED,
    selected: false
  },
  {
    label: "The Phantom",
    inputFieldId: "inputPhantom",
    className: "showPhantom",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Halflings",
    inputFieldId: "inputHalflings",
    className: "showHalflings",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "The Plague",
    inputFieldId: "inputPlague",
    className: "showPlague",
    edition: [ "C1" ],
    group: GROUP_LICENSED,
    selected: false
  },
  {
    label: "The Tunnel",
    inputFieldId: "inputTunnel",
    className: "showTunnel",
    edition: [ "C1" ],
    group: GROUP_LICENSED,
    selected: false
  },
  {
    label: "The Festival",
    inputFieldId: "inputFestival",
    className: "showFestival",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "The Wind Roses",
    inputFieldId: "inputWindRoses",
    className: "showWindRoses",
    edition: [ "C1" ],
    group: GROUP_LICENSED,
    selected: false
  },
  {
    label: "Little Buildings",
    inputFieldId: "inputLittleBuildings",
    className: "showLittleBuildings",
    edition: [ "C1" ],
    group: GROUP_LICENSED,
    selected: false
  },
  {
    label: "Darmstadt Promo",
    inputFieldId: "inputDarmstadt",
    className: "showDarmstadt",
    edition: [ "C1" ],
    group: GROUP_LICENSED,
    selected: false
  },
  {
    label: "The School",
    inputFieldId: "inputTeacher",
    className: "showTeacher",
    edition: [ "C1" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Russian Promos",
    inputFieldId: "inputRussianPromos",
    className: "showRussianPromos",
    edition: [ "C1" ],
    group: GROUP_LICENSED,
    selected: false
  },
  {
    label: "German Castles",
    inputFieldId: "inputGermanCastles",
    className: "showGermanCastles",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "German Cathedrals",
    inputFieldId: "inputGermanCathedrals",
    className: "showGermanCathedrals",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Monasteries in Germany or Netherlands & Belgium / Japanese buildings",
    inputFieldId: "inputMonasteries",
    className: "showMonasteries",
    edition: [ "C1", "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Spiel Promo Tiles",
    inputFieldId: "inputSpielPromos",
    className: "showSpielPromos",
    edition: [ "C2" ],
    group: GROUP_LICENSED,
    selected: false
  },
  {
    label: "The Labyrinth",
    inputFieldId: "inputLabyrinth",
    className: "showLabyrinth",
    edition: [ "C1", "C2" ],
    group: GROUP_LICENSED,
    selected: false
  },
  {
    label: "The Abbot",
    inputFieldId: "inputAbbotAndGardens",
    classNamePrefix: "showAbbotAndGardens_",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false,
    hidden: false,
    open: false,
    children: 
    [
      {
        label: "Abbot",
        inputFieldId: "inputAbbot",
        className: "showAbbot"
      },
      {
        label: "Gardens",
        inputFieldId: "inputGardens",
        className: "showGardens"
      },
    ]
  },
  {
    label: "The Watchtowers",
    inputFieldId: "inputWatchtowers",
    className: "showWatchtowers",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false,
    hidden: false
  },
  {
    label: "Markets Of Leipzig",
    inputFieldId: "inputMarketsOfLeipzig",
    className: "showMarketsOfLeipzig",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false,
    hidden: false
  },
  {
    label: "The Fruit-Bearing Trees",
    inputFieldId: "inputFruitBearingTrees",
    className: "showFruitBearingTrees",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false,
    hidden: false
  },
  {
    label: "The Barber-Surgeons",
    inputFieldId: "inputBathhouses",
    className: "showBathhouses",
    group: GROUP_MINOR,
    edition: [ "C2" ],
    selected: false,
    hidden: false
  },
  {
    label: "Spiel Doch! 02/2018",
    inputFieldId: "inputSpielDoch2018",
    className: "showSpielDoch2018",
    group: GROUP_LICENSED,
    edition: [ "C2" ],
    selected: false,
    hidden: false
  },
  {
    label: "The Tollkeepers",
    inputFieldId: "inputTollkeepers",
    className: "showTollkeepers",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "The Peasant Revolts",
    inputFieldId: "inputPeasantRevolts",
    className: "showPeasantRevolts",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "20th Anniversary Expansion",
    inputFieldId: "input20thAnniversaryExpansion",
    className: "show20thAnniversaryExpansion",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "The Gifts",
    inputFieldId: "inputGifts",
    className: "showGifts",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "The Signposts",
    inputFieldId: "inputSignposts",
    className: "showSignposts",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "The Bets",
    inputFieldId: "inputBets",
    className: "showBets",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "Ukraine Promo",
    inputFieldId: "inputUkrainePromo",
    className: "showUkrainePromo",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "The Wonders of Humanity",
    inputFieldId: "inputWondersOfHumanity",
    className: "showWondersOfHumanity",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "The Spell Circles",
    inputFieldId: "inputSpellCircles",
    className: "showSpellCircles",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },
  {
    label: "The Drawbridges",
    inputFieldId: "inputDrawbridges",
    className: "showDrawbridges",
    edition: [ "C2" ],
    group: GROUP_MINOR,
    selected: false
  },

  {
    label: "Unofficial Expansions",
    inputFieldId: "inputUnofficial",
    edition: [ "C1" ],
    group: GROUP_OTHER,
    separator: true,
    labelOnly: false 
  },
  {
    label: "La Porxada",
    inputFieldId: "inputPorxada",
    className: "showPorxada",
    edition: [ "C1" ],
    group: GROUP_OTHER,
    selected: false
  },

  {
    label: "Print & Play (PnP) and Cut & Play (CnP)",
    inputFieldId: "inputPnP",
    edition: [ "C1", "C2" ],
    group: GROUP_OTHER,
    separator: true,
    labelOnly: false 
  },
  {
    label: "Easter In Carcassonne (PnP)",
    inputFieldId: "inputEasterInCarcassonne",
    className: "showEasterInCarcassonne",
    edition: [ "C1" ],
    group: GROUP_OTHER,
    selected: false
  },
  {
    label: "The City Gates (PnP)",
    inputFieldId: "inputCityGates",
    className: "showCityGates",
    edition: [ "C1" ],
    group: GROUP_OTHER,
    selected: false
  },
  {
    label: "The Fortune Teller (PnP)",
    inputFieldId: "inputFortuneTeller",
    className: "showFortuneTeller",
    edition: [ "C1", "C2" ],
    group: GROUP_OTHER,
    selected: false
  },
  {
    label: "The Land Surveyors (PnP)",
    inputFieldId: "inputLandSurveyors",
    className: "showLandSurveyors",
    edition: [ "C2" ],
    group: GROUP_OTHER,
    selected: false
  },

  {
    label: "CutCassonne (CnP)",
    inputFieldId: "inputCutCassonne",
    className: "showCutCassonne",
    edition: [ "C2" ],
    group: GROUP_OTHER,
    selected: false
  },

/*
  {
    label: "Winter Edition",
    inputFieldId: "inputWinter",
    className: "showWinter",
    category: "WE",
    selected: false,
    hidden: true
  },
*/
  {
    label: "WE Gingerbread Man",
    inputFieldId: "inputGingerbreadMan",
    className: "showGingerbreadMan",
    edition: [ "WE" ],
    group: GROUP_MINOR,
    selected: false,
    hidden: false
  },

];


// Constants for expresions
var AND = function ( a, b ) { return ( a && b ); }, 
    OR = function ( a, b ) { return ( a || b ); }, 
    XOR = function ( a, b ) { return ( ( a || b ) && !( a && b ) ); }, 
    NOT = function ( a ) { return !( a ); },
    COUNT = function ( a, b ) { return ( +a ) + ( +b ); };

var OperatorLookup = {
  NOT: NOT,
  OR: OR,
  AND: AND,
  XOR: XOR
};


// Constants for associanted actions
var ACTION_SET_VISIBILITY = "SET_VISIBILITY",
    ACTION_SET_COLSPAN = "SET_COLSPAN",
    ACTION_SET_ROWSPAN = "SET_ROWSPAN";

// Derives classes definition
var DerivedClassesTable =
[
// -- Order Of Play --

  {
    className: "showFerriesOrTunnel",
    expression: [ OR, "showFerries", "showTunnel" ]
  },
  {
    className: "showFerriesAndTunnel",
    expression: [ AND, "showFerries", "showTunnel" ]
  },

  {
    className: "showMessages_ForC1",
    expression: [ AND, "showMessages", "showC1" ]
  },
  {
    className: "showMessages_ForC2",
    expression: [ AND, "showMessages", "showC2" ]
  },


  {
    className: "showAlternativeRulesMessage",
    expression: [ AND, "showC1", [ OR, "showDragon", "showMessages" ] ]
  },

  {
    className: "showFortuneTellerAndBuilder",
    expression: [ AND, "showFortuneTeller", "showBuilder" ]
  },


  {
    className: "showMandatoryTiles",
    expression: [ OR, "showBazaars", "showWondersOfHumanity", "showFortuneTellerAndBuilder" ]
  },
  {
    className: "showTilesInSupply",
    expression: [ OR, "showAbbey", "showHalflings", "showGermanCastles" ]
  },

  {
    className: "showTilesNotDrawnConsidered",
    expression: [ OR, "showMandatoryTiles", "showTilesInSupply" ]
  },
  {
    className: "showTilesDrawnOnly",
    expression: [ NOT, "showTilesNotDrawnConsidered" ]
  },

  {
    className: "showFortuneTellerAndBuilderAndTileInSupply",
    expression: [ AND, "showFortuneTeller", "showBuilder", "showTilesInSupply" ]
  },


/*
  {
    className: "showBazaarsOrAbbeyOrHalflingsOrGermanCastlesOrFortuneTeller",
    expression: [ OR, "showBazaars", "showAbbey", "showHalflings", "showGermanCastles", "showFortuneTeller" ]
  },
  {
    className: "showNotBazaarsAndNotAbbeyAndNotHalflingsAndNotGermanCastlesAndNotFortuneTeller",
    expression: [ NOT, "showBazaarsOrAbbeyOrHalflingsOrGermanCastlesOrFortuneTeller" ]
  },
*/

  {
    className: "showNotBazaars",
    expression: [ NOT, "showBazaars" ]
  },

  {
    className: "showNotFairyAndNotPlague",
    expression: [ NOT, [ OR, "showFairy", "showPlague" ] ]
  },
  {
    className: "showMageOrWitch",
    expression: [ OR, "showMage", "showWitch" ]
  },
  {
    className: "showMageAndWitch",
    expression: [ AND, "showMage", "showWitch" ]
  },
  {
    className: "showMageAndNotWitch",
    expression: [ AND, "showMage", [ NOT, "showWitch" ] ]
  },
  {
    className: "showNotMageAndWitch",
    expression: [ AND, [ NOT, "showMage" ], "showWitch" ]
  },
  {
    className: "showNotPrincess",
    expression: [ NOT, "showPrincess" ]
  },
  {
    className: "showNotPhantom",
    expression: [ NOT, "showPhantom" ]
  },
  {
    className: "showFlierOrMagicPortal",
    expression: [ OR, "showFlier", "showMagicPortal" ]
  },
  {
    className: "showFlierAndMagicPortal",
    expression: [ AND, "showFlier", "showMagicPortal" ]
  },
  {
    className: "showFlierAndNotMagicPortal",
    expression: [ AND, "showFlier", [ NOT, "showMagicPortal" ] ]
  },
  {
    className: "showNotFlierAndMagicPortal",
    expression: [ AND, [ NOT, "showFlier" ], "showMagicPortal" ]
  },
  {
    className: "showDragonAndC1",
    expression: [ AND, "showDragon", "showC1" ]
  },
  {
    className: "showDragonAndC2",
    expression: [ AND, "showDragon", "showC2" ]
  },
  {
    className: "showDragonAndNotRiverII",
    expression: [ AND, "showDragon", [ NOT, "showRiverII" ] ]
  },
  {
    className: "showDragonAndPlague",
    expression: [ AND, "showDragon", "showPlague" ]
  },
  {
    className: "showNotDragonAndPlague",
    expression: [ AND, [ NOT, "showDragon" ], "showPlague" ]
  },
  {
    className: "showDragonAndNotPlague",
    expression: [ AND, "showDragon", [ NOT, "showPlague" ] ]  
  },
  {
    className: "showMessagesForEntriesStep5",
    expression: [ AND, "showMessages", [ OR, "showAcrobats", "showAbbot", "showSheep", "showFruitBearingTrees", "showWondersOfHumanity" ] ]
  },

  {
    className: "showMessagesForEntriesStep5_markWE_ForC1",
    expression: [ AND, "showC1", "showMessagesForEntriesStep5", [ OR,  "showSheep", [ NOT, [ OR, "showAcrobats", "showAbbot", "showFruitBearingTrees", "showWondersOfHumanity" ] ] ] ]
  },

  {
    className: "showMessagesForEntriesStep5_markC1AndmarkWE_ForC1",
    expression: [ AND, "showC1", "showMessagesForEntriesStep5", [ NOT, "showSheep" ], [ OR, "showAcrobats", "showAbbot", "showFruitBearingTrees", "showWondersOfHumanity" ] ]
  },

  {
    className: "showMessagesAndWindRoses",
    expression: [ AND, "showMessages", "showWindRoses" ]
  },


  {
    className: "showMessagesAndNotWindRosesAndNot20thAnniversaryExpansion",
    expression: [ AND, "showMessages", [ NOT, "showWindRoses" ], [ NOT, "show20thAnniversaryExpansion" ] ]
  },
  {
    className: "showMessagesAndWindRosesAndNot20thAnniversaryExpansionPlus_ForC1",
    expression: [ AND, "showC1", "showMessages", "showWindRoses", [ NOT, [ OR, "show20thAnniversaryExpansion", "showWondersOfHumanity" ] ] ]
  },
  {
    className: "showMessagesAndNotWindRosesAnd20thAnniversaryExpansionPlus_ForC1",
    expression: [ AND, "showC1", "showMessages", [ NOT, "showWindRoses" ], [ OR, "show20thAnniversaryExpansion", "showWondersOfHumanity" ] ]
  },
  {
    className: "showMessagesAndWindRosesAnd20thAnniversaryExpansionPlus_ForC1",
    expression: [ AND, "showC1", "showMessages", "showWindRoses", [ OR, "show20thAnniversaryExpansion", "showWondersOfHumanity" ] ]
  },


  {
    className: "showMessagesForEntriesStep5_OnlyC1",
    expression: [ AND, "showMessages", "showSheep", [ NOT, "showAcrobats" ], [ NOT, "showAbbot"] , [ NOT, "showFruitBearingTrees" ] ]
  },
  {
    className: "showMessagesForEntriesStep5_NotOnlyC1",
    expression: [ NOT, "showMessagesForEntriesStep5_OnlyC1" ]
  },

  {
    className: "showEntriesStep5",
    expression: [ OR, "showFerries", "showSheep", "showFruitBearingTrees", "showWondersOfHumanity", "showMessagesForEntriesStep5" ]
  },
  {
    className: "showNoEntriesStep5",
    expression: [ NOT, "showEntriesStep5" ]
  },
  {
    className: "showTradersOrKingAndRobber",
    expression: [ OR, "showTraders", "showKingAndRobber" ]
  },
  {
    className: "showTradersOrKingOrRobberAndFortuneTeller",
    expression: [ OR, "showTraders", "showKingAndRobber", "showFortuneTeller" ]
  },
  {
    className: "showNotMessages",
    expression: [ NOT, "showMessages" ]
  },
  {
    className: "showPigOrBuilderOrSheep",
    expression: [ OR, "showPig", "showBuilder", "showSheep" ]
  },
  {
    className: "showMessagesOrRobbers",
    expression: [ OR, "showMessages", "showRobbers" ]
  },
  {
    className: "showWoFOrFestivalOrAbbotOrRussianPromos",
    expression: [ OR, "showWheelOfFortune", "showFestival", "showAbbot", "showRussianPromos" ]
  }, 
  {
    className: "showTowerOrLittleBuildingsOrFairyOrTollkeepers",
    expression: [ OR, "showTower", "showLittleBuildings", "showFairy", "showTollkeepers" ]
  },
  {
    className: "showNotBuilderAndBazaars",
    expression: [ AND, [ NOT, "showBuilder" ] , "showBazaars" ]
  },
  {
    className: "showBuilderAndBazaars",
    expression: [ AND, "showBuilder", "showBazaars" ]
  },

  {
    className: "showBuilderAndBazaarsAndC1",
    expression: [ AND, "showBuilder", "showBazaars", "showC1" ]
  },
  {
    className: "showBuilderAndBazaarsAndC2",
    expression: [ AND, "showBuilder", "showBazaars", "showC2" ]
  },

  {
    className: "showCountOfCarcassonneOrMarketsOfLeipzig",
    expression: [ OR, "showCountOfCarcassonne", "showMarketsOfLeipzig" ]
  }, 
  {
    className: "showCountOfCarcassonneAndMarketsOfLeipzig",
    expression: [ AND, "showCountOfCarcassonne", "showMarketsOfLeipzig" ]
  }, 
  {
    className: "showCountOfCarcassonneAndNotMarketsOfLeipzig",
    expression: [ AND, "showCountOfCarcassonne", [ NOT, "showMarketsOfLeipzig" ] ]
  }, 
  {
    className: "showNotCountOfCarcassonneAndMarketsOfLeipzig",
    expression: [ AND, [ NOT, "showCountOfCarcassonne" ], "showMarketsOfLeipzig" ]
  }, 
  {
    className: "showCountOfCarcassonneOrMarketsOfLeipzigOrCastles",
    expression: [ OR, "showCountOfCarcassonne", "showMarketsOfLeipzig", "showCastles" ]
  }, 
  {
    className: "showNotCatapultAndNotCropCirclesAndNotCatharsAndNotBazaarsAndNotEasterInCarcassonneAndNotBets_ForC1",
    expression: [ AND, "showC1", [ NOT, [ OR, "showCatapult", "showCropCircles", "showCathars", "showBazaars", "showEasterInCarcassonne", "showBets" ] ] ]
  }, 
  {
    className: "showNotCatapultAndNotCropCirclesAndNotCatharsAndNotBazaarsAndNotEasterInCarcassonneAndNotBetsAndNotMessages_ForC2",
    expression: [ AND, "showC2", [ NOT, [ OR, "showCatapult", "showCropCircles", "showCathars", "showBazaars", "showEasterInCarcassonne", "showBets", "showMessages" ] ] ]
  }, 
  {
    className: "showNotBuilder",
    expression: [ NOT, "showBuilder" ]
  },
  {
    className: "showNotBathhouses",
    expression: [ NOT, "showBathhouses" ]
  },

  {
    className: "showNotBathhousesAndNotGhosts",
    expression: [ NOT, [ OR, "showBathhouses", "showGhosts" ] ]
  },
  {
    className: "showCastlesOrRobbers",
    expression: [ OR, "showCastles", "showRobbers" ]
  },
  {
    className: "showNotTollkeepersAndNotCircusAndNotGingerbreadManAndNotCountOfCarcassonneAndNotMessagesAndNotGoldminesAndNotLandSurveyors_ForC1",
    expression: [ AND, "showC1", [ NOT, [ OR, "showTollkeepers", "showCircus", "showGingerbreadMan", "showCountOfCarcassonne", "showMessages", "showGoldmines", "showLandSurveyors" ] ] ]
  }, 
  {
    className: "showNotTollkeepersAndNotCircusAndNotGingerbreadManAndNotCountOfCarcassonneAndNotGoldminesAndNotLandSurveyors_ForC2",
    expression: [ AND, "showC2", [ NOT, [ OR, "showTollkeepers", "showCircus", "showGingerbreadMan", "showCountOfCarcassonne", "showGoldmines", "showLandSurveyors" ] ] ]
  }, 
  {
    className: "showCastlesOrTeacher",
    expression: [ OR, "showCastles", "showTeacher" ]
  },

  {
    className: "showLittleBuildingsOrTollkeepers",
    expression: [ OR, "showLittleBuildings", "showTollkeepers" ]
  },

  {
    className: "showRobbersOrWatchtowers",
    expression: [ OR, "showRobbers", "showWatchtowers" ]
  },

  {
    className: "showWheelOfFortuneAndPeasantRevolts",
    expression: [ AND, "showWheelOfFortune", "showPeasantRevolts" ]
  },
  {
    className: "showWheelOfFortuneAndNotPeasantRevolts",
    expression: [ AND, "showWheelOfFortune", [ NOT, "showPeasantRevolts" ] ]
  },
  {
    className: "showNotWheelOfFortuneAndPeasantRevolts",
    expression: [ AND, [ NOT, "showWheelOfFortune" ], "showPeasantRevolts" ]
  },

  {
    className: "showMessagesAndWheelOfFortuneAndPeasantRevolts_ForC1",
    expression: [ AND, "showC1", "showMessages", "showWheelOfFortuneAndPeasantRevolts" ]
  },
  {
    className: "showMessagesAndWheelOfFortuneAndNotPeasantRevolts_ForC1",
    expression: [ AND, "showC1", "showMessages", "showWheelOfFortuneAndNotPeasantRevolts" ]
  },
  {
    className: "showMessagesAndNotWheelOfFortuneAndPeasantRevolts_ForC1",
    expression: [ AND, "showC1", "showMessages", "showNotWheelOfFortuneAndPeasantRevolts" ]
  },
  {
    className: "showSpellCirclesAndGhosts",
    expression: [ AND, "showSpellCircles", "showGhosts" ]
  },

  {
    className: "showFortuneTellerAndNotWondersOfHumanity",
    expression: [ AND, [ NOT, "showWondersOfHumanity" ], "showFortuneTeller" ]
  },

/*
  {
    className: "showWondersOfHumanityAndFortuneTeller",
    expression: [ AND, "showWondersOfHumanity", "showFortuneTeller" ]
  },
  {
    className: "showWondersOfHumanityXorFortuneTeller",
    expression: [ XOR, "showWondersOfHumanity", "showFortuneTeller" ]
  },
*/

// -- Figure Reference
  {
    className: "showBuilderOrPigOrBarnOrSheep",
    expression: [ OR, "showBuilder", "showPig", "showBarn", "showSheep" ]
  },
  {
    className: "showNotBuilderAndNotPigAndNotBarnAndNotSheep",
    expression: [ NOT, "showBuilderOrPigOrBarnOrSheep" ]
  },
  {
    className: "showTowerOrCatharsOrPrincess",
    expression: [ OR, "showTower", "showCathars", "showPrincess" ]
  },
  {
    className: "showNeutralFiguresPart1",
    expression: [ OR, "showDragon", "showFairy", "showTower", "showCountOfCarcassonne", "showBridges", "showCircus", "showGhosts", "showWheelOfFortune"  ]
  },
  {
    className: "showNotNeutralFiguresPart1",
    expression: [ NOT, "showNeutralFiguresPart1" ]
  },
  {
    className: "showNeutralFiguresPart2",
    expression: [ OR, "showFlier", "showFerries", "showGoldmines", "showMage", "showWitch", "showTeacher", "showEasterInCarcassonne", "showGingerbreadMan" ]
  },
  {
    className: "showNotNeutralFiguresPart2",
    expression: [ NOT, "showNeutralFiguresPart2" ]
  },
  {
    className: "showDragonFairyOrCastlesOrCountOfCarcassonneOrWoFOrGermanCastlesOrMarketsOfLeipzig",
    expression: [ AND, "showDragon", [ OR, "showFairy", "showCastles", "showCountOfCarcassonne", "showWheelOfFortune", "showGermanCastles", "showMarketsOfLeipzig" ] ]
  },

  {
    className: "showCircusOrGhosts",
    expression: [ OR, "showCircus", "showGhosts" ]
  },

  {
    className: "showCatapultForMayor",
    expression: [ AND, "showCatapult", "showMayor" ]
  },
  {
    className: "showCatapultForWagon",
    expression: [ AND, "showCatapult", "showWagon" ]
  },
  {
    className: "showCatapultForAbbot",
    expression: [ AND, "showCatapult", "showAbbot" ]
  },


  {
    className: "showSectionFigureDeploymentByOtherMeans",
    expression: [ OR, "showMagicPortal", "showFlier", "showCropCircles", "show20thAnniversaryExpansion" ],
  },

  {
    className: "showMagicPortalOrFlier",
    expression: [ OR, "showMagicPortal", "showFlier" ],
  },
  {
    className: "showMagicPortalOrFlierForPhantom",
    expression: [ AND, "showMagicPortalOrFlier", "showPhantom" ],
  },
  {
    className: "showMagicPortalForPhantom",
    expression: [ AND, "showMagicPortal", "showPhantom" ],
  },
  {
    className: "showFlierForPhantom",
    expression: [ AND, "showFlier", "showPhantom" ],
  },

  {    
    className: "showSectionDeploymentTriggeredByEvents",
    expression: [ OR, "showWagon", "showCountOfCarcassonne", "showRussianPromos", "showMarketsOfLeipzig", "showBathhouses", "showGifts", "showCatapult" ]
  },
  {
    className: "showSectionFigureRemoval",
    expression: [ OR, "showDragon", "showAbbot", "showPrincess", "showTower", "showCropCircles", "showCathars", "showFestival", "showPlague", "showCatapult", "showRussianPromos", "showBathhouses" ],
  },
  {
    className: "showSectionNeutralFigureRemoval",
    expression: [ OR, "showDragon", "showCircus", "showPrincess", "showTower", "showCropCircles", "showCathars", "showFestival", "showPlague", "showCatapult", "showRussianPromos", "showBathhouses" ],
  },
  {    
    className: "showSectionDragonProtection",
    expression: [ AND, "showDragon", [ OR, "showFairy", "showCastles", "showCountOfCarcassonne", "showWheelOfFortune", "showGermanCastles", "showMarketsOfLeipzig" ] ]
  },
  {    
    className: "showSectionTowerProtection",
    expression: [ AND, "showTower", [ OR, "showFairy", "showCastles", "showCountOfCarcassonne", "showWheelOfFortune", "showGermanCastles", "showMarketsOfLeipzig" ] ]
  },
  {    
    className: "showSectionPlagueProtection",
    expression: [ AND, "showPlague", [ OR, "showFairy", "showCastles", "showCountOfCarcassonne", "showWheelOfFortune", "showGermanCastles", "showMarketsOfLeipzig" ] ]
  },


  {    
    className: "showDragonAndFairy",
    expression: [ AND, "showDragon", "showFairy" ]
  },
  {    
    className: "showDragonAndCastles",
    expression: [ AND, "showDragon", "showCastles" ]
  },
  {
    className: "showDragonAndCountOfCarcassonne",
    expression: [ AND, "showDragon", "showCountOfCarcassonne" ]
  },
  {
    className: "showDragonAndWoF",
    expression: [ AND, "showDragon", "showWheelOfFortune" ]
  },
  {
    className: "showDragonAndGermanCastles",
    expression: [ AND, "showDragon", "showGermanCastles" ]
  },
  {
    className: "showDragonAndMarketsOfLeipzig",
    expression: [ AND, "showDragon", "showMarketsOfLeipzig" ]
  },


  {    
    className: "showTowerAndFairy",
    expression: [ AND, "showTower", "showFairy" ]
  },
  {    
    className: "showTowerAndCastles",
    expression: [ AND, "showTower", "showCastles" ]
  },
  {
    className: "showTowerAndCountOfCarcassonne",
    expression: [ AND, "showTower", "showCountOfCarcassonne" ]
  },
  {
    className: "showTowerAndWoF",
    expression: [ AND, "showTower", "showWheelOfFortune" ]
  },
  {
    className: "showTowerAndGermanCastles",
    expression: [ AND, "showTower", "showGermanCastles" ]
  },
  {
    className: "showTowerAndMarketsOfLeipzig",
    expression: [ AND, "showTower", "showMarketsOfLeipzig" ]
  },


  {    
    className: "showPlagueAndFairy",
    expression: [ AND, "showPlague", "showFairy" ]
  },
  {    
    className: "showPlagueAndCastles",
    expression: [ AND, "showPlague", "showCastles" ]
  },
  {
    className: "showPlagueAndCountOfCarcassonne",
    expression: [ AND, "showPlague", "showCountOfCarcassonne" ]
  },
  {
    className: "showPlagueAndWoF",
    expression: [ AND, "showPlague", "showWheelOfFortune" ]
  },
  {
    className: "showPlagueAndGermanCastles",
    expression: [ AND, "showPlague", "showGermanCastles" ]
  },
  {
    className: "showPlagueAndMarketsOfLeipzig",
    expression: [ AND, "showPlague", "showMarketsOfLeipzig" ]
  },


  {
    className: "showCountOfCarcassonneForMayor",
    expression: [ AND, "showCountOfCarcassonne", "showMayor" ]
  },
  {
    className: "showCountOfCarcassonneForWagon",
    expression: [ AND, "showCountOfCarcassonne", "showWagon" ]
  },
  {
    className: "showCountOfCarcassonneForAbbot",
    expression: [ AND, "showCountOfCarcassonne", "showAbbot" ]
  },
  {
    className: "showAcrobatsForPhantom",
    expression: [ AND, "showAcrobats", "showPhantom" ]
  },
  {
    className: "showMayorOrWagon",
    expression: [ AND, "showMayor", "showWagon" ]
  },

  {
    className: "showMonasteriesForBigFollowerOrWagonOrRingmasterOrGuardMeeplesOrAbbotOrPhantom",
    expression: [ AND, "showMonasteries", [ OR, "showBigFollower", "showWagon", "showRingmaster", "showGuardMeeples", "showAbbot", "showPhantom" ] ]
  },
  {
    className: "showMarketsOfLeipzigForBigFollowerOrWagonOrRingmasterOrGuardMeeplesOrPhantom",
    expression: [ AND, "showMarketsOfLeipzig", [ OR, "showBigFollower", "showWagon", "showRingmaster", "showGuardMeeples", "showPhantom" ] ]
  },
  {
    className: "showMagicPortalOrFlierOrCropCirclesOr20thAnniversaryExpansionForMayorOrWagonOrAbbot",
    expression: [ AND, [ OR, "showMagicPortal", "showFlier", "showCropCircles", "show20thAnniversaryExpansion" ], [ OR, "showMayor", "showWagon", "showAbbot" ] ]
  },
  {    
    className: "showDragonAndFairyAndAcrobats",
    expression: [ AND, "showDragon", "showFairy", "showAcrobats" ]
  },
  {    
    className: "showTowerAndFairyAndAcrobats",
    expression: [ AND, "showTower", "showFairy", "showAcrobats" ]
  },
  {    
    className: "showPlagueAndFairyAndAcrobats",
    expression: [ AND, "showPlague", "showFairy", "showAcrobats" ]
  },

  {    
    className: "showTowerForBigFollower",
    expression: [ AND, "showTower", "showBigFollower" ]
  },
  {    
    className: "showTowerForRingmaster",
    expression: [ AND, "showTower", "showRingmaster" ]
  },
  {    
    className: "showTowerForGuardMeeples",
    expression: [ AND, "showTower", "showGuardMeeples" ]
  },
  {    
    className: "showTowerForPhantom",
    expression: [ AND, "showTower", "showPhantom" ]
  },
  {    
    className: "showRussianPromosForBigFollower",
    expression: [ AND, "showRussianPromos", "showBigFollower" ]
  },
  {    
    className: "showRussianPromosForMayor",
    expression: [ AND, "showRussianPromos", "showMayor" ]
  },
  {    
    className: "showRussianPromosForWagon",
    expression: [ AND, "showRussianPromos", "showWagon" ]
  },
  {    
    className: "showRussianPromosForRingmaster",
    expression: [ AND, "showRussianPromos", "showRingmaster" ]
  },
  {    
    className: "showRussianPromosForGuardMeeples",
    expression: [ AND, "showRussianPromos", "showGuardMeeples" ]
  },
  {    
    className: "showRussianPromosForAbbot",
    expression: [ AND, "showRussianPromos", "showAbbot" ]
  },
  {    
    className: "showRussianPromosForPhantom",
    expression: [ AND, "showRussianPromos", "showPhantom" ]
  },
  {    
    className: "showMonasteriesForBigFollower",
    expression: [ AND, "showMonasteries", "showBigFollower" ]
  },
  {    
    className: "showMonasteriesForWagon",
    expression: [ AND, "showMonasteries", "showWagon" ]
  },
  {    
    className: "showMonasteriesForRingmaster",
    expression: [ AND, "showMonasteries", "showRingmaster" ]
  },
  {    
    className: "showMonasteriesForAbbot",
    expression: [ AND, "showMonasteries", "showAbbot" ]
  },
  {    
    className: "showMonasteriesForGuardMeeples",
    expression: [ AND, "showMonasteries", "showGuardMeeples" ]
  },
  {    
    className: "showMonasteriesForPhantom",
    expression: [ AND, "showMonasteries", "showPhantom" ]
  },

  {    
    className: "showMarketsOfLeipzigForBigFollower",
    expression: [ AND, "showMarketsOfLeipzig", "showBigFollower" ]
  },
  {    
    className: "showMarketsOfLeipzigForWagon",
    expression: [ AND, "showMarketsOfLeipzig", "showWagon" ]
  },
  {    
    className: "showMarketsOfLeipzigForRingmaster",
    expression: [ AND, "showMarketsOfLeipzig", "showRingmaster" ]
  },
  {    
    className: "showMarketsOfLeipzigForGuardMeeples",
    expression: [ AND, "showMarketsOfLeipzig", "showGuardMeeples" ]
  },
  {    
    className: "showMarketsOfLeipzigForPhantom",
    expression: [ AND, "showMarketsOfLeipzig", "showPhantom" ]
  },

  {    
    className: "showBathhousesForBigFollower",
    expression: [ AND, "showBathhouses", "showBigFollower" ]
  },
  {    
    className: "showBathhousesForMayor",
    expression: [ AND, "showBathhouses", "showMayor" ]
  },
  {    
    className: "showBathhousesForWagon",
    expression: [ AND, "showBathhouses", "showWagon" ]
  },
  {    
    className: "showBathhousesForRingmaster",
    expression: [ AND, "showBathhouses", "showRingmaster" ]
  },
  {    
    className: "showBathhousesForAbbot",
    expression: [ AND, "showBathhouses", "showAbbot" ]
  },
  {    
    className: "showBathhousesForPhantom",
    expression: [ AND, "showBathhouses", "showPhantom" ]
  },

  {    
    className: "showMagicPortalForMayor",
    expression: [ AND, "showMagicPortal", "showMayor" ]
  },
  {    
    className: "showMagicPortalForWagon",
    expression: [ AND, "showMagicPortal", "showWagon" ]
  },
  {    
    className: "showMagicPortalForAbbot",
    expression: [ AND, "showMagicPortal", "showAbbot" ]
  },
  {    
    className: "showFlierForMayor",
    expression: [ AND, "showFlier", "showMayor" ]
  },
  {    
    className: "showFlierForWagon",
    expression: [ AND, "showFlier", "showWagon" ]
  },
  {    
    className: "showFlierForAbbot",
    expression: [ AND, "showFlier", "showAbbot" ]
  },
  {    
    className: "showCropCirclesForMayor",
    expression: [ AND, "showCropCircles", "showMayor" ]
  },
  {    
    className: "showCropCirclesForWagon",
    expression: [ AND, "showCropCircles", "showWagon" ]
  },
  {    
    className: "showCropCirclesForAbbot",
    expression: [ AND, "showCropCircles", "showAbbot" ]
  },

  {    
    className: "show20thAnniversaryExpansionForMayor",
    expression: [ AND, "show20thAnniversaryExpansion", "showMayor" ]
  },
  {    
    className: "show20thAnniversaryExpansionForWagon",
    expression: [ AND, "show20thAnniversaryExpansion", "showWagon" ]
  },
  {    
    className: "show20thAnniversaryExpansionForAbbot",
    expression: [ AND, "show20thAnniversaryExpansion", "showAbbot" ]
  },

  {    
    className: "showPrincessForBigFollower",
    expression: [ AND, "showPrincess", "showBigFollower" ]
  },
  {    
    className: "showPrincessForWagon",
    expression: [ AND, "showPrincess", "showWagon" ]
  },
  {    
    className: "showPrincessForRingmaster",
    expression: [ AND, "showPrincess", "showRingmaster" ]
  },
  {    
    className: "showPrincessForGuardMeeples",
    expression: [ AND, "showPrincess", "showGuardMeeples" ]
  },
  {    
    className: "showPrincessForPhantom",
    expression: [ AND, "showPrincess", "showPhantom" ]
  },

  {    
    className: "showFairyAndAcrobats",
    expression: [ AND, "showFairy", "showAcrobats" ]
  },
  {    
    className: "showFairyAndNotAcrobats",
    expression: [ AND, "showFairy", [ NOT, "showAcrobats" ] ]
  },

  {    
    className: "showFairyAndAcrobatsForPhantom",
    expression: [ AND, "showFairy", "showAcrobats", "showPhantom" ]
  },
  {    
    className: "showDragonAndFairyAndAcrobatsForPhantom",
    expression: [ AND, "showDragon", "showFairy", "showAcrobats", "showPhantom" ]
  },

  {    
    className: "showDragonAndMarketsOfLeipzigForBigFollower",
    expression: [ AND, "showDragonAndMarketsOfLeipzig", "showBigFollower" ]
  },
  {    
    className: "showDragonAndMarketsOfLeipzigForWagon",
    expression: [ AND, "showDragonAndMarketsOfLeipzig", "showWagon" ]
  },
  {    
    className: "showDragonAndMarketsOfLeipzigForRingmaster",
    expression: [ AND, "showDragonAndMarketsOfLeipzig", "showRingmaster" ]
  },

  {    
    className: "showDragonAndMarketsOfLeipzigForGuardMeeples",
    expression: [ AND, "showDragonAndMarketsOfLeipzig", "showGuardMeeples" ]
  },
  {    
    className: "showDragonAndMarketsOfLeipzigForPhantom",
    expression: [ AND, "showDragonAndMarketsOfLeipzig", "showPhantom" ]
  },

  {    
    className: "showTowerAndFairyAndAcrobatsForPhantom",
    expression: [ AND, "showTower", "showFairy", "showAcrobats", "showPhantom" ]
  },
  {    
    className: "showTowerAndMarketsOfLeipzigForBigFollower",
    expression: [ AND, "showTowerAndMarketsOfLeipzig", "showBigFollower" ]
  },
  {    
    className: "showTowerAndMarketsOfLeipzigForWagon",
    expression: [ AND, "showTowerAndMarketsOfLeipzig", "showWagon" ]
  },
  {    
    className: "showTowerAndMarketsOfLeipzigForRingmaster",
    expression: [ AND, "showTowerAndMarketsOfLeipzig", "showRingmaster" ]
  },
  {    
    className: "showTowerAndMarketsOfLeipzigForGuardMeeples",
    expression: [ AND, "showTowerAndMarketsOfLeipzig", "showGuardMeeples" ]
  },
  {    
    className: "showTowerAndMarketsOfLeipzigForPhantom",
    expression: [ AND, "showTowerAndMarketsOfLeipzig", "showPhantom" ]
  },


  {    
    className: "showPlagueAndFairyAndAcrobatsForPhantom",
    expression: [ AND, "showPlague", "showFairy", "showAcrobats", "showPhantom" ]
  },


  {    
    className: "showPlagueAndMarketsOfLeipzigForBigFollower",
    expression: [ AND, "showPlagueAndMarketsOfLeipzig", "showBigFollower" ]
  },
  {    
    className: "showPlagueAndMarketsOfLeipzigForWagon",
    expression: [ AND, "showPlagueAndMarketsOfLeipzig", "showWagon" ]
  },
  {    
    className: "showPlagueAndMarketsOfLeipzigForRingmaster",
    expression: [ AND, "showPlagueAndMarketsOfLeipzig", "showRingmaster" ]
  },
  {    
    className: "showPlagueAndMarketsOfLeipzigForGuardMeeples",
    expression: [ AND, "showPlagueAndMarketsOfLeipzig", "showGuardMeeples" ]
  },
  {    
    className: "showPlagueAndMarketsOfLeipzigForPhantom",
    expression: [ AND, "showPlagueAndMarketsOfLeipzig", "showPhantom" ]
  },

  {    
    className: "showSupporterRemovedForBuilder",
    expression: [ AND, [ OR, "showCatapult", "showPlague", "showRussianPromos", "showDragon", "showPrincess", "showTower", "showCropCircles", "showCathars", "showFestival", "showPorxada" ], "showBuilder" ]
  },
  {    
    className: "showSupporterRemovedForPig",
    expression: [ AND, [ OR, "showCatapult", "showPlague", "showRussianPromos", "showDragon", "showTower", "showCropCircles", "showFestival", "showPorxada" ], "showPig" ]
  },
  {    
    className: "showNoRulesForSpecialFigures",
    expression: [ OR, "showCatapult", "showPlague", "showRussianPromos", "showDragon", "showTower", "showCropCircles", "showFestival", "showPorxada" ]
  },

  {    
    className: "showSpecialFiguresOnTiles",
    expression: [ OR, "showBuilder", "showPig", "showSheep" ]
  },
  {    
    className: "showPlagueForSpecialFiguresOnTiles",
    expression: [ AND, "showPlague", "showSpecialFiguresOnTiles" ]
  },
  {    
    className: "showFestivalForSheep",
    expression: [ AND, "showFestival", "showSheep" ]
  },
  {    
    className: "showDragonAndFairyForSpecialFiguresOnTiles",
    expression: [ AND, "showDragonAndFairy", "showSpecialFiguresOnTiles" ]
  },
  {    
    className: "showRussianPromosForSpecialFiguresOnTiles",
    expression: [ AND, "showRussianPromos", "showSpecialFiguresOnTiles" ]
  },
  {    
    className: "showDragonForSheep",
    expression: [ AND, "showDragon", "showSheep" ]
  },

  {    
    className: "showFootnoteRowForSpecialFigures",
    expression: [ OR, "showBarn", "showSupporterRemovedForBuilder", "showSupporterRemovedForPig", "showPlagueForSpecialFiguresOnTiles", "showRussianPromosForSpecialFiguresOnTiles", "showPorxada", "showDragonForSheep", "showCathars", "showFestivalForSheep", "showPlagueForSpecialFiguresOnTiles", "showDragonAndFairyForSpecialFiguresOnTiles" ]
  },

  {    
    className: "showFootnoteRowForNeutralFiguresPart1",
    expression: [ OR, "showBridges", "showCountOfCarcassonne", "showFairy", "showWheelOfFortune", "showDragon", "showTower", "showGhosts" ]
  },

  {    
    className: "showAdditionalScoring",
    expression: [ OR, "showRingmaster", "showBarn", "showSheep", "showFairy", "showCircus", "showWheelOfFortune", "showGoldmines", "showTeacher", "showEasterInCarcassonne", "showGingerbreadMan"  ]
  },


  {    
    className: "showPaidPoints",
    expression: [ OR, "showTower", "showBazaars", "showBathhouses" ]
  },

  {    
    className: "showBridgesOrFerries",
    expression: [ OR, "showBridges", "showFerries" ]
  },

  {    
    className: "showCountOfCarcassonneOrFlier",
    expression: [ OR, "showCountOfCarcassonne", "showFlier" ]
  },

  {    
    className: "showMageOrWitchOrPigOrGhosts",
    expression: [ OR, "showMageAndWitch_Any", "showPig", "showGhosts" ]
  },

  {    
    className: "showDragonOrTowerOrGhostsOrWoF",
    expression: [ OR, "showDragon", "showTower", "showGhosts", "showWheelOfFortune" ]
  },

  {    
    className: "showCountOfCarcassonneOrWoF",
    expression: [ OR, "showCountOfCarcassonne", "showWheelOfFortune" ]
  },
  {    
    className: "showFairyForCountOfCarcassonneOrWoFOrMarketsOfLeipzig",
    expression: [ AND, [ OR, "showCountOfCarcassonne", "showWheelOfFortune", "showMarketsOfLeipzig" ], "showFairy" ]
  },

  {    
    className: "showCountOfCarcassonneOrWoFOrTeacher",
    expression: [ OR, "showCountOfCarcassonne", "showWheelOfFortune", "showTeacher" ]
  },
  {    
    className: "showDragonForCountOfCarcassonneOrWoFOrMarketsOfLeipzigOrTeacher",
    expression: [ AND, [ OR, "showCountOfCarcassonne", "showWheelOfFortune", "showMarketsOfLeipzig", "showTeacher" ], "showDragon" ]
  },

  {    
    className: "showDragonAndFairyForMageOrWitchOrTeacherOrEasterInCarcassonneOrGingerbreadMan",
    expression: [ AND, "showDragonAndFairy", [ OR, "showMageAndWitch_Any", "showTeacher", "showEasterInCarcassonne", "showGingerbreadMan" ] ]
  },

  {    
    className: "showDragonForTeacher",
    expression: [ AND, "showDragon", "showTeacher" ]
  },


// -- Footnotes --
  {
    className: "showGingerbreadManAndCountOfCarcassonne",
    expression: [ AND, "showGingerbreadMan", "showCountOfCarcassonne" ]
  },
  {
    className: "showFootnotes",
    expression: "showGingerbreadManAndCountOfCarcassonne"
  },
// -- Scoring During The Game--
  {
    className: "showDoubleSizedTiles",
    expression: [ OR, "showGermanCastles", "showMarketsOfLeipzig", "show20thAnniversaryRiver" ]
  },

  {
    className: "showOtherTiles",
    expression: [ OR, "showHalflings", "showDoubleSizedTiles", "showGhostsCastlesAndCemeteries_Any", "showWondersOfHumanity" ]
  },
  {
    className: "showSquareTiles",
    expression: [ NOT, "showOtherTiles" ]
  },
  {
    className: "showNotHalflings",
    expression: [ NOT, "showHalflings" ]
  },
  {
    className: "showRingmasterScoring",
    expression: [ AND, "showRingmaster", "showRingmaster" /*[ OR, "showCircus", "showAcrobats" ]*/ ]
  },
  {
    className: "showFigureScoringDuringGame",
    expression: [ OR, "showFairy", "showTower", "showTeacher", "showMessages", "showRobbers", "showGingerbreadMan", "showSheep", "showAbbot", "showRingmasterScoring", "showBathhouses", "showPeasantRevolts" ]
  },
  {
    className: "showOtherScoringDuringGame",
    expression: [ OR, "showCatapult", "showBazaars", "showWheelOfFortune", "showGifts" ]
  },
  {
    className: "showPigHerd",
    expression: [ OR, "showRiverII" /*, "showGQ11"*/ ]
  },
  {
    className: "showCircusAndNotAcrobats",
    expression: [ AND, "showCircus", [ NOT, "showAcrobats" ] ]
  },
  {
    className: "showNotCircusAndAcrobats",
    expression: [ AND, [ NOT, "showCircus" ], "showAcrobats" ]
  },
  {
    className: "showCircusAndAcrobats",
    expression: [ AND, "showCircus", "showAcrobats" ]
  },

  {
    className: "showGermanCathedralsOrInnsOrMageOrMarketsOfLeipzig",
    expression: [ OR, "showGermanCathedrals", "showInns", "showMage", "showMarketsOfLeipzig" ]
  },
  {
    className: "showCatharsOrCathedralsOrMage",
    expression: [ OR, "showCathars", "showCathedrals", "showMage" ]
  },


// -- Scoring After The Game
  {
    className: "showFigureScoringAfterGame",
    expression: [ OR, "showFairy", "showBarn", "showRobbers", "showSheep", "showRingmasterScoring" ]
  },
  {
    className: "showOtherScoringAfterGame",
    expression: [ OR, "showTraders", "showKingAndRobber", "showGoldmines", "showFruitBearingTrees", "showGifts", "showEasterInCarcassonne" ]
  },
/*
  {
    className: "showAll",
    expression: true
  },
*/
  {
    className: "hideAll",
    expression: false
  },

  {
    className: "showCountOfCarcassonneAndBarn",
    expression: [ AND, "showCountOfCarcassonne", "showBarn" ]
  }, 


// -- Preparation --

  {
    className: "showPrepareTokens",
    expression: [ OR, "showCatapult", "showCastles", "showTunnel", "showLittleBuildings", "showTollkeepers", "showBets" ]
  },

  {
    className: "showRivers_Any",
    expression: [ OR, "showRiverI", "showRiverII", "show20thAnniversaryRiver" ]
  },
  {
    className: "showRivers_Full",
    expression: [ AND, "showRiverI", "showRiverII", "show20thAnniversaryRiver" ]
  },
  {
    className: "showRivers_None",
    expression: [ NOT, "showRivers_Full" ]
  },

  {
    className: "showGQ11AndNotRivers",
    expression: [ AND, "showGQ11", "showRivers_None" ]
  },
  {
    className: "showCutCassonneAndNotRivers",
    expression: [ AND, "showCutCassonne", "showRivers_None" ]
  },

  {
    className: "showRemoveExtraTiles",
    expression: [ OR, "showMonasteries", "showBathhouses", "showGQ11AndNotRivers", "showCutCassonneAndNotRivers", "showDarmstadt", "showPeasantRevolts" ]
  },

  {
    className: "showGQ11AndNotRiverII",
    expression: [ AND, "showGQ11", [ NOT, "showRiverII" ] ]
  },

  {
    className: "showGQ11AndNotRiverII",
    expression: [ AND, "showGQ11", [ NOT, "showRiverII" ] ]
  },

  {
    className: "showClassicRiver",
    expression: [ AND, [ OR, "showRiverI", "showRiverII" ], [ NOT, "show20thAnniversaryRiver" ] ]
  },


  {
    className: "showComplexStart",
    expression: [ OR, "showRivers_Any", "showCountOfCarcassonne", "showWheelOfFortune", "showWindRoses", "showMarketsOfLeipzig", "showSpielDoch2018", "showGhostsCastlesAndCemeteries_Any" ]
  },
  {
    className: "showBasicStart",
    expression: [ NOT, "showComplexStart" ]
  },
  
  {
    className: "showTilesAndTokens",
    expression: [ OR, "showInnsAndCathedrals_Any", "showTraders", "showKingAndRobber", "showSheep", "showCircus", "showMessages", "showPlague", "showFruitBearingTrees" ]
  },
  {
    className: "showWoodenFiguresAndMore",
    expression: [ OR, "showFairy", "showDragon", "showCatapult", "showCircus", "showFlier", "showFerries", "showGoldmines", "showMage", "showWitch", "showGingerbreadMan", "showEasterInCarcassonne", "showGuardMeeples" ]
  },
  
  {
    className: "showEasterInCarcassonneAndNotFlier",
    expression: [ AND, "showEasterInCarcassonne", [ NOT, "showFlier" ] ]
  },
  {
    className: "showNotGuardMeeples",
    expression: [ NOT, "showGuardMeeples" ]
  },




// -- Final Scoring --

  {
    className: "showPrepareFinalScoring",
    expression: [ OR, "showCircus", "showMessages", "showGoldmines", "showRobbers", "showGifts", "showCastles", "showEasterInCarcassonne", "showCountOfCarcassonne", "showBets", "showCemeteries", "showWondersOfHumanity" ]
  },
  {
    className: "showEndOfGameScoring",
    expression: [ OR, "showFruitBearingTrees", "showGoldmines", "showTraders", "showKingAndRobber", "showEasterInCarcassonne" ]
  },

  {
    className: "showFairyAndRingmaster",
    expression: [ AND, "showFairy", "showRingmaster" ]
  },
  {
    className: "showFairyOrRingmaster",
    expression: [ OR, "showFairy", "showRingmaster" ]
  },
  {
    className: "showNotFairyAndNotRingmaster",
    expression: [ NOT, "showFairyOrRingmaster" ]
  },
  {
    className: "showNotFairyAndRingmaster",
    expression: [ AND, [ NOT, "showFairy" ], "showRingmaster" ]
  },
  {
    className: "showFairyAndNotRingmaster",
    expression: [ AND, "showFairy", [ NOT, "showRingmaster" ] ]
  },
  {
    className: "showCastlesOrAcrobats",
    expression: [ OR, "showCastles", "showAcrobats" ]
  },

  {
    className: "showBarnAndRussianPromos",
    expression: [ AND, "showBarn", "showRussianPromos" ]
  },
  {
    className: "showBarnAndNotRussianPromos",
    expression: [ AND, "showCastles", [ NOT, "showRussianPromos" ] ]
  },




// -- Game Reference

  {
    className: "showNotFairy",
    expression: [ NOT, "showFairy" ]
  },
  {
    className: "showFairyOrSheepOrAbbot",
    expression: [ OR, "showFairy", "showSheep", "showAbbot" ]
  },
  {
    className: "showNotFairyAndNotSheepAndNotAbbot",
    expression: [ NOT, "showFairyOrSheepOrAbbot" ]
  },
  {
    className: "showSheepAndNotAcrobats",
    expression: [ AND, "showSheep", [ NOT, "showAcrobats" ] ]
  },
  {
    className: "showAbbeyAndC1",
    expression: [ AND, "showAbbey", "showC1" ]
  },


// -- New Scoring During the Game


  {
    className: "showIntroDuringGame",
    expression: [ OR, "showTower", "showMessages", "showRobbers" ]
  },

  {
    className: "showStep1A_Complete",
    expression: [ OR, "showFairy" ]
  },
  {
    className: "showStep1A_Empty",
    expression: [ NOT, "showStep1A_Complete" ]
  },
  {
    className: "showStep1A_Messages",
    expression: [ AND, "showFairy", "showMessages", "showC1" ]
  },

  {
    className: "showStep1B_Complete",
    expression: [ OR, "showWheelOfFortune", "showPeasantRevolts", "showGifts" ]
  },
  {
    className: "showStep1B_Empty",
    expression: [ NOT, "showStep1B_Complete"  ]
  },
  {
    className: "showStep1B_Messages",
    expression: [ AND, "showStep1B_Complete", "showMessages", "showC1" ]
  },

  {
    className: "showStep1C_Complete",
    expression: [ OR, "showWindRoses", "show20thAnniversaryExpansion", "showSpielDoch2018", "showWondersOfHumanity" ]
  },
  {
    className: "showStep1C_Empty",
    expression: [ NOT, "showStep1C_Complete" ]
  },
  {
    className: "showStep1C_Messages",
    expression: [ AND, "showMessages", "showStep1C_Complete", "showC1" ]
  },


  {
    className: "showPhase1_Empty",
    expression: [ AND, "showStep1A_Empty", "showStep1B_Empty", "showStep1C_Empty" ]
  },
  {
    className: "showPhase1_Complete",
    expression: [ NOT, "showPhase1_Empty" ]
  },



  {
    className: "showStep2A_Complete",
    expression: [ OR, "showBathhouses" ]
  },
  {
    className: "showStep2A_Empty",
    expression: [ NOT, "showStep2A_Complete" ]
  },

  {
    className: "showStep2B-1_Complete",
    expression: [ OR, "showAbbot", "showAcrobats", "showPeasantRevolts" ]
  },
  {
    className: "showStep2B-1_Empty",
    expression: [ NOT, "showStep2B-1_Complete" ]
  },

  {
    className: "showStep2B-2_Complete",
    expression: [ AND, "showPeasantRevolts", "showPhantom" ]
  },
  {
    className: "showStep2B-2_Empty",
    expression: [ NOT, "showStep2B-2_Complete" ]
  },

  {
    className: "showStep2C_Complete",
    expression: [ OR, "showSheep", "showFruitBearingTrees", "showWondersOfHumanity" ]
  },
  {
    className: "showStep2C_Messages",
    expression: [ AND, "showC1", "showMessages", [ OR, "showStep2A_Complete", "showStep2B-1_Complete", "showSheep", "showFruitBearingTrees", "showWondersOfHumanity" ] ]
  },
  {
    className: "showStep2C_Empty",
    expression: [ AND, [ NOT, "showStep2C_Complete" ], [ NOT, "showStep2C_Messages" ] ]
  },

  {
    className: "showPhase2_Empty",
    expression: [ AND, "showStep2A_Empty", "showStep2B-1_Empty", "showStep2B-2_Empty", "showStep2C_Empty" ]
  },
  {
    className: "showPhase2_Complete",
    expression: [ NOT, "showPhase2_Empty" ]
  },


  {
    className: "showRobbersOrTeacher",
    expression: [ OR, "showRobbers", "showTeacher" ]
  },

  {
    className: "showCastlesOrRobbersOrTeacher",
    expression: [ OR, "showCastles", "showRobbers", "showTeacher" ]
  },

  {
    className: "showRoad_PrologHeaderDuringGame",
    expression: [ OR, "showWatchtowers", "showTollkeepers" ]
  },
  {
    className: "showRoad_NotPrologHeaderDuringGame",
    expression: [ NOT, "showRoad_PrologHeaderDuringGame" ]
  },

  {
    className: "showRoad_EpilogHeaderDuringGame",
    expression: [ OR, "showTeacher", "showMarketsOfLeipzig", "showRingmasterScoring", "showFairy", "showCastles", "showRobbers"]
  },
  {
    className: "showRoad_NotEpilogHeaderDuringGame",
    expression: [ NOT, "showRoad_EpilogHeaderDuringGame" ]
  },

  {
    className: "showCity_PrologHeaderDuringGame",
    expression: [ OR, "showWatchtowers", "showGingerbreadMan" ]
  },
  {
    className: "showCity_NotPrologHeaderDuringGame",
    expression: [ NOT, "showCity_PrologHeaderDuringGame" ]
  },

  {
    className: "showCity_EpilogHeaderDuringGame",
    expression: [ OR, "showTeacher", "showMarketsOfLeipzig", "showRingmasterScoring", "showFairy", "showCastles", "showRobbers"]
  },
  {
    className: "showCity_NotEpilogHeaderDuringGame",
    expression: [ NOT, "showCity_EpilogHeaderDuringGame" ]
  },

  {
    className: "showNonBasicMonasticBuildingForRingmaster",
    expression: [ OR, "showAbbey", "showShrines", "showMonasteries", "showDarmstadt" ]
  },
  {
    className: "showNonBasicFeatureForRingmaster",
    expression: [ OR, "showNonBasicMonasticBuildingForRingmaster", "showCastles", "showGermanCastles", "showGermanCathedrals", "showRussianPromos", "showFortuneTeller" ]
  },


  {
    className: "showMonasticBuilding_EpilogHeaderDuringGame",
    expression: [ OR, "showTeacher", "showMarketsOfLeipzig", "showRingmasterScoring", "showFairy", "showDarmstadt", "showCastles", "showRobbers" ]
  },
  {
    className: "showMonasticBuilding_NotEpilogHeaderDuringGame",
    expression: [ NOT, "showMonasticBuilding_EpilogHeaderDuringGame" ]
  },
  {
    className: "showRingmasterScoring_Extended",
    expression: [ OR ]  // Always false - Hides Ringmaster in non-basic features
  },

  {
    className: "showNotFlier",
    expression: [ NOT, "showFlier" ]
  },

  {
    className: "showFeature_EpilogHeaderDuringGame",
    expression: [ OR, "showTeacher", "showRingmasterScoring_Extended", "showFairy", "showCastles", "showRobbers" ] 
  },
/*
  {
    className: "showFeature_EpilogHeaderDuringGame_Extended",
    expression: [ OR, "showTeacher", "showRingmasterScoring_Extended", "showFairy" ]  // For non-basic features (hides Ringmaster)
  },
*/
  {
    className: "showFeature_NotEpilogHeaderDuringGame",
    expression: [ NOT, "showFeature_EpilogHeaderDuringGame" ] // Not used
  },

  {
    className: "showFeature_EpilogHeaderDuringGame_ForFortuneTeller",
    expression: [ OR, "showTeacher", "showRingmasterScoring_Extended", "showFairy", "showFortuneTeller" ]  // Hides Ringmaster
  },

  {
    className: "showFeature_EpilogHeaderDuringGame_ForGarden",
    expression: [ OR, "showTeacher", "showFairy" ]
  },

  {
    className: "showStep3C_Complete",
    expression: [ OR, "showCircus", "showGingerbreadMan", "showBets", [ AND, "showC1", "showMessages" ] ]
  },
  {
    className: "showStep3C_Empty",
    expression: [ NOT, "showStep3C_Complete" ]
  },

  {
    className: "showStep4A_Complete",
    expression: [ OR, "showCatapult", "showEasterInCarcassonne", "showBazaars", [ AND, "showC2", "showMessages" ] ]
  },
  {
    className: "showStep4A_Empty",
    expression: [ NOT, "showStep4A_Complete" ]
  },



  {
    className: "showNotMonasteries",
    expression: [ NOT, "showMonasteries" ]
  },

  {
    className: "showFlierOrCropCircles",
    expression: [ OR, "showFlier", "showCropCircles" ]
  },

  {
    className: "showNotFlierAndNotCropCircles",
    expression: [ NOT, "showFlierOrCropCircles" ]
  },

//
// == Fan Expansions ==
//

  {
    className: "showDragonOrMagicPortal",
    expression: [ OR, "showDragon", "showMagicPortal" ]
  },
  {
    className: "showHalflingsAndDoubleSizedTiles",
    expression: [ AND, "showHalflings", "showDoubleSizedTiles" ]
  },
  {
    className: "showInnsOrCathedrals",
    expression: [ OR, "showInns", "showCathedrals" ]
  },
  {
    className: "showCountOfCarcassonneOrShrines",
    expression: [ OR, "showCountOfCarcassonne", "showShrines" ]
  },

  {
    className: "showDoubleSizedTilesRoads",
    expression: [ OR, "showGermanCastles", "showMarketsOfLeipzig" ]
  },

  {
    className: "showDetermineLengthOfRoad",
    expression: [ OR, "showDoubleSizedTilesRoads", "showGermanCathedrals", "showHalflings", "showWondersOfHumanity", "showLandSurveyors" ]
  },
  {
    className: "showNotDetermineLengthOfRoad", 
    expression: [ NOT, "showDetermineLengthOfRoad" ]
  },
  {
    className: "showDetermineLengthOfRoadFinalScoring",
    expression: [OR, "showDoubleSizedTilesRoads", "showHalflings", "showWondersOfHumanity" ]
  },
  {
    className: "showNotDetermineLengthOfRoadFinalScoring",
    expression: [ NOT, "showDetermineLengthOfRoadFinalScoring" ]
  },
  {
    className: "showDetermineMajorityOnRoad",
    expression: [ OR ]
  },
  {
    className: "showNotDetermineMajorityOnRoad",
    expression: [ NOT, "showDetermineMajorityOnRoad" ]
  },
  {
    className: "showDetermineMajorityOnRoadFinalScoring",
    expression: [ OR ]
  },
  {
    className: "showNotDetermineMajorityOnRoadFinalScoring",
    expression: [ NOT, "showDetermineMajorityOnRoadFinalScoring" ]
  },

  {
    className: "showStep3A_Complete",
    expression: [ OR ]
  },
  {
    className: "showStep3A_Empty",
    expression: [ NOT, "showStep3A_Complete" ]
  },
  {
    className: "showStep4B_Complete",
    expression: [ OR ]
  },
  {
    className: "showStep4B_Empty",
    expression: [ NOT, "showStep4B_Complete" ]
  },

  {
    className: "showPhase4_Empty",
    expression: [ AND, "showStep4A_Empty", "showStep4B_Empty" ]
  },

  {
    className: "showPhase4_Complete",
    expression: [ NOT, "showPhase4_Empty" ]
  },

 
  {
    className: "showStepAnyTimeOnce_Complete",
    expression: [ OR, "showTower" ]
  }, 
  {
    className: "showStepAnyTimeOnce_Empty",
    expression: [ NOT, "showStepAnyTimeOnce_Complete" ]
  }, 
  {
    className: "showStepAnyTimeAlways_Complete",
    expression: [ OR ]
  },
  {
    className: "showStepAnyTimeAlways_Empty",
    expression: [ NOT, "showStepAnyTimeAlways_Complete" ]
  },
  {
    className: "showPhaseAnyTime_Empty",
    expression: [ AND, "showStepAnyTimeOnce_Empty", "showStepAnyTimeAlways_Empty" ]
  },
  {
    className: "showPhaseAnyTime_Complete",
    expression: [ NOT, "showPhaseAnyTime_Empty" ]
  }, 
  {
    className: "showFinalPrologue_Complete",
    expression: [ OR, "showCastles" ],
  },
  {
    className: "showFinalPrologue_Empty",
    expression: [ NOT, "showFinalPrologue_Complete" ]
  },
  {
    className: "showFinalCityOfCarcassonne_Complete",
    expression: [ OR, "showCountOfCarcassonneAndBarn" ],
  },  
  {
    className: "showFinalCityOfCarcassonne_Empty",
    expression: [ NOT, "showFinalCityOfCarcassonne_Complete" ]
  },
  {
    className: "showFinalFigures_Complete",
    expression: [ OR, "showFairy", "showRingmasterScoring", "showBarn", "showCircus", "showWondersOfHumanity", "showAcrobats","showRobbers"  ]
  },
  {
    className: "showFinalFigures_Empty",
    expression: [ NOT, "showFinalFigures_Complete" ]
  }, 


//
// == Consolidated Clarifications ==
//

  // I&C
  {
    className: "showInns_Section",
    expression: [ NOT, [ NOT, "showInns" ] ]
  },
  {
    className: "showBigFollower_Section",
    expression: [ NOT, [ NOT, "showBigFollower" ] ]
  },
  {
    className: "showInnsAndCathedrals_Section",
    expression: [ OR, "showInns_Section", "showBigFollower_Section" ]
  },


  // T&B 
  {
    className: "showNoActionsHappeningOnce",
    expression: [ NOT, [ OR, "showFairy", "showTower", "showTunnel", "showPlague" ] ]
  },

  {
    className: "showTraders_Section",
    expression: [ AND, "showTraders", "showAbbey" ]
  },
  {
    className: "showBuider_Section",
    expression: [ NOT, [ NOT, "showBuilder" ] ]
  },
  {
    className: "showTradersAndBuilders_Section",
    expression: [ OR, "showTraders_Section", "showBuider_Section" ]
  },

  // P&D

  {
    className: "showNoFigureOnVolcano",
    expression: [ NOT, [ OR, "showFairy", "showTower", "showBarn", "showBridges", "showAcrobats", "showWheelOfFortune", "showLittleBuildings" ] ]
  },
  {
    className: "showOtherVolcanoActions",
    expression: [ OR, "showSheep", "showAcrobats", "showAbbot", "showFerries", "showRussianPromos", "showPeasantRevolts" ]
  },

  {
    className: "showBuilderOrPig",
    expression: [ OR, "showBuilder", "showPig" ]
  },

  {
    className: "showSpecialFiguresEatenByDragon_Bullet",
    expression: [ OR, "showPig", "showBuilder", "showSheep" ]
  },
  {
    className: "showNeutralFiguresEatenByDragon_Bullet",
    expression: [ OR, "showMage", "showWitch", "showGingerbreadMan" ]
  },
  {
    className: "showFiguresNotEatenByDragon_Bullet",
    expression: [ OR, "showBarn", "showCastles", "showTeacher" ]
  },

  {
    className: "showVolcano_Section",
    expression: [ NOT, [ NOT, "showDragon" ] ]
  },
  {
    className: "showDragon_Section",
    expression: [ NOT, [ NOT, "showDragon" ] ]
  },
  {
    className: "showPrincess_Section",
    expression: [ NOT, [ NOT, "showPrincess" ] ]
  },
  {
    className: "showMagicPortal_Section",
    expression: [ NOT, [ NOT, "showMagicPortal" ] ]
  },
  {
    className: "showFairy_Section",
    expression: [ NOT, [ NOT, "showFairy" ] ]
  },
  {
    className: "showNewTiles_Section",
    expression: [ AND, "showPrincessAndDragon_Any", "showTunnel" ]
  },
  {
    className: "showPrincessAndDragon_Section",
    expression: [ OR, "showVolcano_Section", "showDragon_Section", "showPrincess_Section", "showMagicPortal_Section", "showFairy_Section", "showNewTiles_Section"  ] 
  },


  /*
  ===== New classes for fan expansions ====
  */

  {
    className: "showDoubleSizedTilesCities",
    expression: [ OR ]
  },
  {
    className: "showDetermineSizeOfCity",
    expression: [OR, "showDoubleSizedTilesCities", "showHalflings", "showWondersOfHumanity", "showLandSurveyors" ]
  },
  {
    className: "showNotDetermineSizeOfCity",
    expression: [ NOT, "showDetermineSizeOfCity" ]
  },
  {
    className: "showDetermineSizeOfCityFinalScoring",
    expression: [ OR, "showDoubleSizedTilesCities", "showHalflings", "showWondersOfHumanity" ]
  },
  {
    className: "showNotDetermineSizeOfCityFinalScoring",
    expression: [ NOT, "showDetermineSizeOfCityFinalScoring" ]
  },
  {
    className: "showDetermineCoatOfArmsOfCity",
    expression: [ OR ]
  },
  {
    className: "showNotDetermineCoatOfArmsOfCity",
    expression: [ NOT, "showDetermineCoatOfArmsOfCity" ]
  },
  {
    className: "showDetermineMajorityInCity",
    expression: [ OR, "showMayor", "showLandSurveyors" ]
  },
  {
    className: "showNotDetermineMajorityInCity",
    expression: [ NOT, "showDetermineMajorityInCity" ]
  },
  {
    className: "showDetermineMajorityInCityFinalScoring",
    expression: [ OR, "showMayor" ]
  },
  {
    className: "showNotDetermineMajorityInCityFinalScoring",
    expression: [ NOT, "showDetermineMajorityInCityFinalScoring" ]
  },

];


var ACTION_CLEAR_ALL = "CLEAR_ALL",
    ACTION_SELECT_ALL = "SELECT_ALL",
    ACTION_SELECT_ALL_C1 = "SELECT_ALL_C1",
    ACTION_SELECT_ALL_C2 = "SELECT_ALL_C2",
    ACTION_SELECT_ALL_WE = "SELECT_ALL_WE",
    ACTION_LOAD_PRESET = "LOAD_PRESET";
    

var QuickSelectorDefinition =
[
/*
  {
    _id: "preClearAll",
    label: "Clear All", // Empty
    readOnly: true,
    action: ACTION_CLEAR_ALL
  },
  {
    _id: "preSelectAll",
    label: "Select All", // All
    readOnly: true,
    action: ACTION_SELECT_ALL
  },
*/
  {
    _id: "preSelectAllC1",
    label: "Select All C1", // All C1
    readOnly: true,
    action: ACTION_SELECT_ALL_C1
  },
  {
    _id: "preSelectAllC2",
    label: "Select All C2", // All C2
    readOnly: true,
    action: ACTION_SELECT_ALL_C2
  },
  {
    _id: "preSelectAllWE",
    label: "Select All WE", // All WE
    readOnly: true,
    action: ACTION_SELECT_ALL_WE
  },
  {
    _id: "preNeutralExpansions",
    label: "Select Edition Neutral", // All Neutral
    readOnly: true,
    classNames: 
    [
      "showBigFollower",
      "showBuilder",
      "showFairy",
      "showAbbey",
      "showMayor",
      "showWagon",
      "showBarn",
      "showKingAndRobber",
      "showBridges",
      "showCastles",
      "showSheep",
      "showLittleBuildings",
      "showPhantom",
      "showMessages"
    ]
  },
  {
    _id: "preBigBox1",
    label: "Big Box 1", // 1, 2, 3, 4
    readOnly: true,
    classNames: 
    [
      "showInnsAndCathedrals_Full",
      "showTradersAndBuilders_Full",
      "showPrincessAndDragon_Full",
      "showTower"
    ]
  },
  {
    _id: "preBigBox1_RGG",
    label: "Big Box 1 (RGG)", // 1, 2, 3, 4, River
    readOnly: true,
    classNames: 
    [
      "showInnsAndCathedrals_Full",
      "showTradersAndBuilders_Full",
      "showPrincessAndDragon_Full",
      "showTower",
      "showRiverI"
    ]
  },
  {
    _id: "preBigBox2",
    label: "Big Box 2", // 1, 2, 3, 5, 6
    readOnly: true,
    classNames: 
    [
      "showInnsAndCathedrals_Full",
      "showTradersAndBuilders_Full",
      "showPrincessAndDragon_Full",
      "showAbbeyAndMayor_Full",
      "showCountKingAndRobber_Full"
    ]
  },
  {
    _id: "preBigBox3",
    label: "Big Box 3", // 1, 2, 3, 5, 8
    readOnly: true,
    classNames: 
    [
      "showInnsAndCathedrals_Full",
      "showTradersAndBuilders_Full",
      "showPrincessAndDragon_Full",
      "showAbbeyAndMayor_Full",
      "showBridgesCastlesAndBazaars_Full"
    ]
  },
  {
    _id: "preBigBox4",
    label: "Big Box 4", // 1, 2, Minis 1-7
    readOnly: true,
    classNames: 
    [
      "showInnsAndCathedrals_Full",
      "showTradersAndBuilders_Full",
      "showFlier",
      "showMessages",
      "showFerries",
      "showGoldmines",
      "showMageAndWitch_Full",
      "showRobbers",
      "showCropCircles"
    ]
  },
  {
    _id: "preBigBox5",
    label: "Big Box 5", // 1, 2, 9, WoF, River I
    readOnly: true,
    classNames: 
    [
      "showInnsAndCathedrals_Full",
      "showTradersAndBuilders_Full",
      "showHillsAndSheep_Full",
      "showWheelOfFortune",
      "showRiverI",
    ]
  },
  {
    _id: "preBigBox6",
    label: "Big Box 6", // 1, 2, Minis 1-7, River, Abbot
    readOnly: true,
    classNames: 
    [
      "showInnsAndCathedrals_Full",
      "showTradersAndBuilders_Full",
      "showFlier",
      "showMessages",
      "showFerries",
      "showGoldmines",
      "showMageAndWitch_Full",
      "showRobbers",
      "showCropCircles",
      "showRiverI",
      "showAbbotAndGardens_Full"
    ]
  },
  {
    _id: "preBigBox7",
    label: "Big Box 7", // 1, 2, Minis 1-7, River, Abbot
    readOnly: true,
    classNames: 
    [
      "showInnsAndCathedrals_Full",
      "showTradersAndBuilders_Full",
      "showFlier",
      "showMessages",
      "showFerries",
      "showGoldmines",
      "showMageAndWitch_Full",
      "showRobbers",
      "showCropCircles",
      "showRiverI",
      "showAbbotAndGardens_Full"
    ]
  },
  {
    _id: "preLE2003",
    label: "Limited Edition 2003", // 1, 2, River
    readOnly: true,
    classNames: 
    [
      "showInnsAndCathedrals_Full",
      "showTradersAndBuilders_Full",
      "showRiverI"
    ]
  },
  {
    _id: "preLE_TB",
    label: "LE Traders And Builders", // 2
    readOnly: true,
    classNames: 
    [
      "showTradersAndBuilders_Full"    
    ]
  },
  {
    _id: "preLE_PD",
    label: "LE Princess And Dragon", // 3
    readOnly: true,
    classNames: 
    [
      "showPrincessAndDragon_Full"    
    ]
  },
  {
    _id: "preLE_CC",
    label: "LE Crop Circles", // Crop Circles
    readOnly: true,
    classNames: 
    [
      "showCropCircles"    
    ]
  },
  {
    _id: "preLE_10Anniversary",
    label: "LE 10th Anniversary", // The Festival
    readOnly: true,
    classNames: 
    [
      "showFestival"    
    ]
  },
  {
    _id: "preLE_Mueller",
    label: "LE Müller Exclusive", // 6, The Besiegers
    readOnly: true,
    classNames: 
    [
      "showCountKingAndRobber_Full",    
      "showCathars"    
    ]
  },
  {
    _id: "preLE_20Anniversary",
    label: "LE 20th Anniversary", // 20th Anniversary
    readOnly: true,
    classNames: 
    [
      "show20thAnniversaryRiver",
      "showAbbot",
      "show20thAnniversaryExpansion"   
    ]
  },
  {
    _id: "custom1",
    defaultLabel: "Custom 1 (Empty)", // Empty
    readOnly: false,
  },
  {
    _id: "custom2",
    defaultLabel: "Custom 2 (Empty)", // Empty
    readOnly: false,
  },
  {
    _id: "custom3",
    defaultLabel: "Custom 3 (Empty)", // Empty
    readOnly: false,
  },
  {
    _id: "custom4",
    defaultLabel: "Custom 4 (Empty)", // Empty
    readOnly: false,
  },
  {
    _id: "custom5",
    defaultLabel: "Custom 5 (Empty)", // Empty
    readOnly: false,
  },
];


var strPage =
'<div id="_Tabs_">\
  <ul>\
  <li><a href="#tabs-major" class="wica-translate-contents" id="tabMajorExpansions_Label">Major Expansions <span id="_Expansion_Counter_Major_">(0/0)</span></a></li>\
  <li><a href="#tabs-minor" class="wica-translate-contents" id="tabMinorExpansions_Label">Minor Expansions <span id="_Expansion_Counter_Minor_">(0/0)</span></a></li>\
<!--\
  <li><a href="#tabs-licensed" class="wica-translate-contents" id="tabLicensedExpansions_Label">Licensed Expansions <span id="_Expansion_Counter_Licensed_">(0/0)</span></a></li>\
-->\
  <li><a href="#tabs-other" class="wica-translate-contents" id="tabOtherExpansions_Label">Other Expansions <span id="_Expansion_Counter_Other_">(0/0)</span></a></li>\
  <li id="tabs-fan-label"><a href="#tabs-fan" class="wica-translate-contents" id="tabFanExpansions_Label">Fan Expansions <span id="_Expansion_Counter_Fan_">(0/0)</span></a></li>\
  <li><a href="#tabs-quick" class="wica-translate-contents" id="tabQuickSelectors_Label">Quick Selectors</a></li>\
  <li><a href="#tabs-filters" class="wica-translate-contents" id="tabFilters_Label">Filters <span id="_Expansion_Filter_">(-)</span></a></li>\
  <!--li><a href="#tabs-custom">Preferences</a></li-->\
  <li><a href="#tabs-help" class="wica-translate-contents" id="tabHelp_Label"\
><span  style="color: blue; background-color: white;"><b>&nbsp;?&nbsp;</b></span></a></li>\
  </ul>\
  <div id="tabs-major">\
  <form xclass="multi-column">\
    <span id="_Expansion_Selector_Major_"></span>\
  </form>\
  </div>\
  <div id="tabs-minor">\
  <form xclass="multi-column">\
    <span id="_Expansion_Selector_Minor_"></span>\
  </form>\
  </div>\
<!--\
  <div id="tabs-licensed">\
  <form xclass="multi-column">\
    <span id="_Expansion_Selector_Licensed_"></span>\
  </form>\
  </div>\
-->\
  <div id="tabs-other">\
  <form xclass="multi-column">\
      <span id="_Expansion_Selector_Other_"></span>\
  </form>\
  </div>\
  <div id="tabs-fan" class="hiddenFanExpansions">\
  <form xclass="multi-column">\
      <span id="_Expansion_Selector_Fan_"></span>\
  </form>\
  </div>\
  <div id="tabs-quick">\
  <form>\
  <div class="form-box-container">\
  <div class="form-box">\
  <b class="wica-translate-contents" id="buttonQuickSelection_Label">Quick Selection:</b><br /><br />\
  <select id="quickSelectList" style="width: 200px;">\
    <option value="defaultSetting" class="wica-translate-contents" id="optionSelectOne_Label">Select one...</option>\
  </select><br /><input type="button" name="quickSelectButton" id="quickSelectButton" value="Select Expansions" class="ui-state-active ui-button wica-translate-attr-value" style="margin-top: 5px;"/>\
  <br /><br /><br />\
  <input type="button" name="quickClearAllButton" id="quickClearAllButton" value="Clear All" class="ui-state-active ui-button wica-translate-attr-value" />&nbsp;&nbsp;&nbsp;\
  <input type="button" name="quickSelectAllButton" id="quickSelectAllButton" value="Select All" class="ui-state-active ui-button wica-translate-attr-value" />\
    </div>\
    </div>\
  </form>\
  </div>\
  <div id="tabs-filters">\
  <form>\
  <div class="form-box-container">\
  <div class="form-box">\
  <b class="wica-translate-contents" id="textShowEditions_Label">Show Editions:</b><br /><br />\
  <input type="checkbox" name="filterC1" id ="filterC1" class="inputFilter" value="C1" /> <span class="wica-translate-contents" id="textFirstEdition_Label">1st Edition (C1)</span><br />\
  <input type="checkbox" name="filterC2" id ="filterC2" class="inputFilter" value="C2" /> <span class="wica-translate-contents" id="textSecondEdition_Label">New Edition (C2)</span><br />\
  <input type="checkbox" name="filterWE" id ="filterWE" class="inputFilter" value="WE" /> <span class="wica-translate-contents" id="textWinterEdition_Label">Winter Edition (WE)</span><br />\
    </div>\
    <div class="form-box">\
  <b class="wica-translate-contents" id="textPreferredEdition_Label">Preferred Edition:</b><br /><br />\
  <input type="radio" name="preferredEdition" id="preferC1" value="C1" class="inputPrefer" /> <span id="label_preferC1"><span class="wica-translate-contents" id="textFirstEdition_Label">1st Edition (C1)</span></span><br />\
  <input type="radio" name="preferredEdition" id="preferC2" value="C2" class="inputPrefer" /> <span id="label_preferC2"><span class="wica-translate-contents" id="textSecondEdition_Label">New Edition (C2)</span></span><br />\
  <input type="radio" name="preferredEdition" id="preferWE" value="WE" class="inputPrefer" /> <span id="label_preferWE"><span class="wica-translate-contents" id="textWinterEdition_Label">Winter Edition (WE)</span></span><br />\
  <br />\
  <input type="checkbox" name="markAdaptations" id="markAdaptations" value="WE" class="inputMark" /> <span class="wica-translate-contents" id="textMarkAdaptions_Label">Mark rules adaptations</span><br />\
  </div>\
  </div>\
  </form>\
  </div>\
  <!--div id="tabs-custom">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.</div-->\
  <div id="tabs-help"><div  class="wica-translate-contents" id="textHelp_Label">\
\
<h3>1. Introduction</h3>\
\
<p>This <b>Expansion Selector</b> allows you to pick what expansions (or parts of them) to use in the reference pages of <b>WICA</b>. According to your selection, the <b>Order of Play</b> and <b>Scoring sections</b> will be adapted. This way, you can customize <b>WICA</b> to suit your game without any hinderance from the expansions left out.</p>\
\
<p>As hinted above, the expansions combining multiple elements permit a fine-grain selection of its elements. For example, you can choose the abbey tiles and the wagon from "Abbey and Mayor" and to leave out the barn and the mayor.</p>\
\
<h3>2. Use Guide</h3>\
\
<p>The selector has several tabs and below there is an area that lists the current selection at all times, no matter the tab displayed.</p>\
\
<p>You can click on any tab label to go to the desired tab. Additional clicks on a selected tab will collapse it and expand it back in order to access the selector when needed. Switching to another tab will expand the selector automatically.</p>\
\
<p>The following sections describe the tabs and their funcionality.</p>\
\
<h4>2.1. "Expansions" tabs</h4>\
\
<p>The first three (or four) tabs from the left allow you to pick expansions in full or partially when possible.</p>\
\
<ul>\
<li><b>Major expansions:</b> lists all official major expansions by HiG.</li>\
<li><b>Minor expansions:</b> lists all official minor expansions by HiG and some of their licensed equivalents.</li>\
<li><b>Other expansions:</b> lists the rest of licensed expansions as well as some unofficial ones.</li>\
<li><b>Fan expansions:</b> lists some fan-made expansions. This tab may not be available in some cases.</li>\
</ul>\
\
<p>These tabs show a listing of expansions where each label is preceded by a checkbox to allow its selection and deselection if full.</p>\
\
<p>Those expansions with various components show a clickable <b>"[+]"</b> symbol after them when closed or <b>"[&ndash;]"</b> when open. In the latter case, all the components are displayed and can be selected and deselected individually.</p>\
\
<p>Each tab has a text label in accordance with the format <b>"Group (X/Y)"</b> in order to identify the set of expansions listed (indicated by <b>Group</b>), the  number of expansions selected (represented by <b>X</b>) and the total number available (represented by <b>Y</b>).</p>\
\
<h4>2.2. "Quick Selectors" tab</h4>\
\
<p>This is the fourth tab from the left. It allows you to choose from a predefined list of available expansions sets. This tab contains the following elements:</p>\
\
<ul>\
<li><b>A dropdown list and a "Select Expansions" button:</b> They allow you select and load a predefined expansion bundle, such as a Big Box or all the expansions for the New Edition. </li>\
<li><b>The "Clear All" button</b> empties your current with one click.</li>\
<li><b>The "Select All" button</b> selects all the expansions available with one click.</li>\
</ul>\
\
<h4>2.3. "Filters" tab</h4>\
\
<p>This is the fifth tab from the left. It allows you to choose what Carcassonne editions are displayed and your preferred edition. The editions considered are the <b>1st Edition (C1)</b>, the <b>New Edition (C2)</b>, and the <b>Winter Edition (WE)</b>, which is included in a creative way if some of its expansions are of interest.</p>\
\
<p>The tab displays two panels:</p>\
\
<ul>\
<li><b>"Show Editions" panel:</b> it contains a checkbox for each edition available (C1, C2 and WE.) The selector will show the expansions belonging to the checked editions only. For example, if the 1st edition (C1) checkbox is selected, expansions such as "The Wheel Of Fortune" or "Halflings" will be eligible in the <b>Expansion Selector</b>, otherwise they will not be available for selection. At least one of the main editions (C1 or C2) has to be selected, thus they cannot be deselected at the same time.</li>\
\
<li><b>"Preferred Edition" panel:</b> it contains a set of radio buttons for the <b>1st Edition (C1)</b>, the <b>New Edition (C2)</b> and the <b>Winter Edition</b>. The radio button selected will indicate the <b>Expansion Selector</b> which edition has precedence over the other when:\
<ul>\
   <li><b>Describing the Order of Play and the Scoring rules:</b> If there are diferences between editions, the preferred edition rules and wording will be displayed. For example, the movement of the dragon will be displayed in different steps in the <b>Order of Play</b> depending on whether C1 or C2 is selected.</li>\
   <li><b>Displaying graphics in the Scoring sections:</b> For expansions available in both editions, the images shown will correspond to the selected edition. Images from an expansion only existing in one edition will not change.</ul>\
The radio button for an edition will be enabled only if such an edition is available, that is, it is selected in the "Show Editions" panel.</li>\
<br />\
It also includes a checkbox with the label "Mark rules adaptations": If checked, all the rules displayed in the <b>Game Reference</b> and the <b>Order of Play</b> not corresponding to the preferred edition will be highlighted.\
</li>\
</ul>\
\
<p>This tab shows a label similar to <b>"Filters (C1/<u>C2</u>/WE) #"</b> that lists all the editions selected in parentheses and one of them is underlined, indicating that it is the preferred one. The hash sign is present if rules adaptations are highlighted.</p>\
\
<h4>2.4. Help</h4>\
\
<p>This is the current tab displayed with help information about the <b>Expansion Selector</b>.</p>\
<p>&nbsp;</p>\
<hr />\
\
  </div></div>\
  <div id="tabs-selection" class="ui-tabs-panel ui-corner-bottom ui-widget-content">\
  <span class="wica-translate-contents" id="textSelectedExpansions_Label">Selected expansions:</span> \
  <ul id="_Expansion_Result_List_">\
  <li class="spaceLines"><b class="wica-translate-contents" id="textMajor_Label">Major:</b> <span id="_Expansion_Result_Major_" class="showMajorExpansions"></span><span class="showNoMajorExpansions wica-translate-contents" id="textNone_Label">None</span></li>\
  <li class="spaceLines"><b class="wica-translate-contents" id="textMinor_Label">Minor:</b> <span id="_Expansion_Result_Minor_" class="showMinorExpansions"></span><span class="showNoMinorExpansions wica-translate-contents" id="textNone_Label">None</span></li>\
  <!--li class="spaceLines"><b class="wica-translate-contents" id="textLicensed_Label">Licensed:</b> <span id="_Expansion_Result_Licensed_" class="showLicensedExpansions"></span><span class="showNoLicensedExpansions wica-translate-contents" id="textNone_Label">None</span></li-->\
  <li class="spaceLines"><b class="wica-translate-contents" id="textOther_Label">Other:</b> <span id="_Expansion_Result_Other_" class="showOtherExpansions"></span><span class="showNoOtherExpansions wica-translate-contents" id="textNone_Label">None</span></li>\
  <li id="tabs-fan-result" class="spaceLines"><b class="wica-translate-contents" id="textFan_Label">Fan:</b> <span id="_Expansion_Result_Fan_" class="showFanExpansions"></span><span class="showNoFanExpansions wica-translate-contents" id="textNone_Label">None</span></li>\
    </ul>\
  </div>\
</div>';