// This file contains the pseudo "CSS" for the puzzle and menu.
// In addition it contains message text that may be translated as well as
// options for controlling the startup and operation of the puzzle

// The file is format and case sensitive and follows Javascript conventions for defining objects
// Be careful in modifying since Javascript error messages are not very helpful......
// Best approach is to change only values within quotes.......
//___________________________________________________________________________________________________________//
/// S_Options defines the options for how the puzzle will be started and what menu items will be shown
// The format is tag:  ["value"] or tag: ["value", "last"] 
//         where tag is an internal tag used to identify the option and "value" is one of the predefined values for this option
//         the "last" tag defines whether the last selected value by the user should be used the next time the puzzle is loaded
//         if "last" is specified the value is stored in a cookie and retrieved during loading.
//         The format is IMPORTANT, please note the brackets and commas and the fact that the last entry does not have a comma  
//         All entries are case sensitive and should be lower case letters...     
S_Options =
  { StartupPuzzleDifficulty: ["1", "last"],                 // startup puzzle difficulty where 1=easy, 2=difficult, 3=fiendish and 4=superior
    StartupPuzzleSize: ["3", "last"],                       // startup puzzle size where 1=very small, 2=small, 3=medium and 4=large 
    ShowCellCandidates: ["none"],                         // Possible values are "all" , "single" or "none" for showing cell candidates when menu selected
    AutoUpdateCellCandidates: ["yes", "last"],              // Automatically update cell candidates when entry made. Values are "yes" or "no"
    FlyoverCellEntryHints:    ["no"],                       // Show entry option hints for cells. Values are "yes" or "no"
    FlyoverHintTechniques:    ["yes"],                      // Show flyover hint techiques when hint requested. Values are "yes" or "no"
    RandomSeed: ["random"],                                 // Random number generator seed, either "random", "today" or 6 digit number .., "last" not a useful option here
    HelpFile: ["Sudoku_Help.html"],                         // The name of the Sudoku help file ...   "last" not a useful option here
    HintDelay: [1000],                                       // delay for showing hints in milliseconds ... "last" not a useful option here
    ShowMenu:["yes"],                                       // Show menu - option to not show menu at all ... "last" not a useful option here 
    ShowMenuControls:["yes"],                               // Show "Controls"  menu item ... "last" not a useful option here 
    ShowMenuSaveRestore: ["yes"],                           // Show "Save" and "Restore Saved" menu items ... "last" not a useful option here;  
    ShowMenuCreate:    ["yes"],                             // Show "New" menu item ... "last" not a useful option here
    ShowSaveRestore: ["yes"],                                // Show "Save" and "Restore Saved" menu items;  
    ShowMenuReset:    ["yes"],                              // Show "Reset" menu item ... "last" not a useful option here
    ShowMenuHints:     ["yes"],                             // Show "Hints" menu item ... "last" not a useful option here
    ShowMenuValidate: ["yes"],                              // Show "Validate" menu item ... "last" not a useful option here
    ShowMenuCandidates: ["yes"],                            // Show "Cell Candidates" menu item ... "last" not a useful option here
    ShowMenuSingleStep: ["yes"],                            // Show "Single Step" menu item ... "last" not a useful option here
    ShowMenuSolution: ["yes"],                              // Show "Solution" menu item ... "last" not a useful option here
    ShowMenuSolutionSteps: ["yes"],                         // Show "Solution Steps" menu item ... "last" not a useful option here
    ShowMenuPrint: ["yes"],                                 // Show "Print" menu item ... "last" not a useful option here
    ShowMenuKeypad: ["no"],                                // Show "Keypad" menu item ... "last" not a useful option here
    ShowMenuOptions:["yes"],                                // Show "Options" menu item ... "last" not a useful option here 
    ShowMenuPuzzleSize: ["yes"],                            // Show "Puzzle Size" menu item ... "last" not a useful option here
    ShowMenuCandidateOptions:["no"],                       // Show "Show Candidates " menu item ... "last" not a useful option here
    ShowMenuFlyoverOptions:["no"],                         // Show "Show Flyover Hints " menu item ... "last" not a useful option here 
    ShowMenuTimer:["no"]                                   // Show timer ... "last" not a useful option here 
  };

//___________________________________________________________________________________________________________//
// S_Puzzle defines the formatting of the Sudoku Puzzle
// The format is tag: "style" where tag is internal label for attribute and "style" is the pseudo "CSS" attribute
// Styles must be enclosed in quotes and followed by a comma, except for the last entry in the S_Puzzle object
S_Puzzle =                                      // this defines the puzzle style
    {width:  "550px",                           // width must be specified in pixels, height is determined by width automatically
     fontFamily: "verdana, arial",            // any font family or group of font families generally available on the web may be specified                
     backgroundColor: "white",                  // any valid html,css color definition for a border is permissible.
     InitialValuesColor: "blue",                // the font color used to render the initial puzzle values.
     EnteredValuesColor: "black",               // the font color used to render the entered puzzle values.
     puzzleBorderWidth: "10px",                  // puzzle border width must be specified in pixels, the default is one pixel border
     puzzleBorderStyle: "solid",                // any valid html,css style definition for a border is permissible.
     puzzleBorderColor: "#6AA6D8 #4280B0 #4280B0 #6AA6D8",  // any valid html,css color definition for a border is permissible.
     focusCellColor: "RGB(208,208,224)",                    // the background color used to show focus on cell.
     oddBlockAttributes:                        // odd block attributes.
        {backgroundColor: "#E8F8FF",            // any valid html,css color definition is permissible.
         blockBorderWidth: "3px",               // puzzle border width must be specified in pixels, the default is one pixel border
         blockBorderStyle: "inset",             // any valid html,css style definition for a border is permissible.
         blockBorderColor: "#808000"                // any valid html,css color definition for a border is permissible.
        }, 
     evenBlockAttributes:                       // even block attributes.
        {backgroundColor: "white",              // any valid html,css color definition is permissible.
         blockBorderWidth: "3px",               // puzzle border width must be specified in pixels, the default is one pixel border
         blockBorderStyle: "inset",             // any valid html,css style definition for a border is permissible.
         blockBorderColor: "#808000"   // any valid html,css color definition for a border is permissible.
        }, 
     cellAttributes:                            // cell attributes.
        {backgroundColor: "transparent",        // any valid html,css color definition is permissible.
         cellBorderWidth: "1px",                // puzzle border width must be specified in pixels, the default is one pixel border
         cellBorderStyle: "solid",              // any valid html,css style definition for a border is permissible.
         cellBorderColor: "RGB(224,224,160)"              // any valid html,css color definition for a border is permissible.
        }, 
     subCellAttributes:                         // sub cell attributes.
        {backgroundColor: "transparent",        // any valid html,css color definition is permissible.
         subCellBorderWidth: "1px",             // puzzle border width must be specified in pixels, the default is one pixel border
         subCellBorderStyle: "solid",           // any valid html,css style definition for a border is permissible.
         subCellBorderColor: "RGB(224,224,240)" // any valid html,css color definition for a border is permissible.
        }, 
     floatingWindows:                           // popup windows for Solution Steps and Keypad.
        {backgroundColor: "RGB(66,126,176)",    // any valid html,css color definition is permissible.
         fontColor: "#F8F8FF"                  // any valid html,css color definition is permissible.
        }, 
     hintAttributes:                            // sub cell attributes.
        {backgroundColor: "yellow",             // any valid html,css color definition is permissible.
         fontColor: "red"                       // any valid html,css color definition is permissible.
        } 
    }; 

//___________________________________________________________________________________________________________//
// S_MenuCSS defines the formatting of the Sudoku Menu
// The format is tag: "style" where tag is internal label for style attribute and "style" is the pseudo "CSS" attribute
// Styles must be enclosed in quotes and followed by a comma, except for the last entry in S_MenuCSS object
S_MenuCSS =                                     // this defines the format of the memu used by Sudoku puzzle
    {backgroundColor: "RGB(70,130,180)",       // background color must be specified in RGB format... sorry about that...
     menuAlignment: "vertical",                 // This value cannot be changed 
     menuSize:  "100%",                         // This value cannot be changed 
     menuItemWidth:  "fit",                     // This value cannot be changed 
     borderSize: "3px",                         // border size around main menu
     fontSize: "14px",                          // font size is only limited to space available on screen
     fontFamily: "verdana, arial",            // any font family or group of font families generally available on the web may be specified                
     textAlign: "center",                       // alignment may be "left", "center" or "right"
     headingAttributes:                         // heading attributes.
        {backgroundColor: "#4682B4",   // any valid html,css color definition is permissible.
         fontWeight: "bold",                    // any valid css fontWeight definition 
         fontColor: "white"                   // any valid html,css color definition is permissible.
        }, 
     defaultAttributes:                         // default menu attributes.
        {backgroundColor: "#4682B4",   // any valid html,css color definition is permissible.
         fontWeight: "normal",                  // any valid css fontWeight definition 
         fontColor: "white"                     // any valid html,css color definition is permissible.
        }, 
     activeAttributes:                          // active menu attributes.
        {backgroundColor: "#A6E2FF",  		 // any valid html,css color definition is permissible.
         fontWeight: "bold",                    // any valid css fontWeight definition 
         fontColor: "RGB(66,126,176)"           // any valid html,css color definition  is permissible.
        }, 
     hoverAttributes:                           // hover menu attributes.
        {backgroundColor: "RGB(66,126,176)",   // any valid html,css color definition is permissible.
         fontWeight: "bold",                    // any valid css fontWeight definition 
         fontColor: "white"                   // any valid html,css color definition is permissible.
        }, 
     hintAttributes:                            // sub cell attributes.
        {backgroundColor: "yellow",             // any valid html,css color definition is permissible.
         fontWeight: "normal",                  // any valid css fontWeight definition 
         fontColor: "red"                       // any valid html,css color definition is permissible.
        }, 
     subMenus:[                                 // left square bracket begins definition of sub menu unique elements
        {menuSuffix: "",                        // This value cannot be changed 
         textAlign: "center",                   // This value cannot be changed 
         fontWeight: "bold",                    // any valid css fontWeight definition 
         menusPerRow: "1"                       // This value cannot be changed 
        },
        {menuSuffix: "_N",
         textAlign: "center",                   // This value cannot be changed 
         menusPerRow: "3"                       // This value cannot be changed 
        },
        {menuSuffix: "_N1",
         textAlign: "center",                   // This value cannot be changed 
         menusPerRow: "1"                       // This value cannot be changed 
        },
        {menuSuffix: "_C2",
         textAlign: "center",                   // This value cannot be changed
         menusPerRow: "2"                       // This value cannot be changed
        },
        {menuSuffix: "_S",
         textAlign: "left",                     // This value cannot be changed 
         menusPerRow: "1"                       // This value cannot be changed 
        }
     ]                                          // right square bracket ends definition of sub menu unique elements
        
    };                                          // right curly bracket ends definition of menu


//___________________________________________________________________________________________________________//
//S_Messages is an object to facilitate message translation    
// The format for Sudoku messages is tag: "text" where tag is internal label for message text
// All "text" must be enclosed in quotes and followed by a comma, except for the last entry in message object
// The percent sign(%) followed by a number are parameters that are replaced in the translation process.     
S_Messages =
    {men000: "Sudoku Menu",
     men100: "       Puzzles",         // spaces are for centering with other items without submenus
     men100s: "Create new, save, load or reset",
     men200: "Controls",
     men200s: "Show Controls",
     men210: "New",
     men210s: "Options for creating new puzzles",
     men211: "Easy",
     men211s:"Create easy puzzle with rating below 500",
     men212: "Difficult",
     men212s:"Create puzzle with rating between 500 and 800",
     men213: "Fiendish",
     men213s:"Create puzzle with rating between 800 and 1100",
     men214: "Superior",
     men214s:"Create puzzle with rating over 1100",
     men215: "(manual entry)",
     men215s:"Create empty puzzle for manually entered puzzles",
     men216: "Save",
     men216s:"Save the puzzle (persistent cookies required.)",
     men217: "Restore saved",
     men217s: "Restore saved puzzle",
     men217a:"Cookies are not enabled on this browser.",
     men217b:"Cookies are required to use save feature.",
     men217c:"Puzzle not saved.",
     men217d:"Puzzle saved.",
     men217e:"Requires persistent cookies to work between sessions.",
     men217f:"No saved puzzle to load",
     men220: "Reset",
     men220s:"Reset puzzle to initial state", 
     men230: "Hint",
     men230s:"Provide hint to solve next cell", 
     men240: "Validate",
     men240s:"Validate the current status of the puzzle", 
     men250: "Cell candidates",
     men250s:"Toggle switch to show or not show cell candidates", 
     men257: "Solve",
     men257s:"Options for solving puzzle",
     men258: "Single Step",
     men258s:"Solve the next logical puzzle cell",
     men260: "Complete puzzle",
     men260s:"Toggle switch to show or not show solution to current puzzle",
     men270: "Solution steps",
     men270s:"Toggle switch to show solution steps for current puzzle", 
     men280: "Print puzzle",
     men280s:"Print just the current puzzle", 
     men300: "Keypad",
     men300s:"Show keypad for entering numbers",
     men310: "Clear",
     men400: "Options",
     men400s:"Show option for changing user preferences",
     men410: "Puzzle size",
     men410s:"Select puzzle size suitable for screen", 
     men411: "Large size",
     men411s:"Select large size layout",
     men412: "Medium size",
     men412s:"Select medium size layout",
     men413: "Small size",
     men413s:"Select small size layout",
     men414: "Very small size",
     men414s:"Select very small size layout",
     men420: "Show candidates",
     men420s:"Show cell candidates option", 
     men421: "Single cell",
     men421s:"Show cell candidates for selected cell when 'Cell Candidate' option selected", 
     men422: "All cells",
     men422s:"Show cell candidates for all cell when 'Cell Candidate' option selected",
     men423: "Auto update",
     men423s:"Automatically update cell candidates when cell is solved", 
     men430: "Number cell slider",
     men430s:"Enable the ability to use the mouse to select numbers for cells", 
     men440: "Fly over hints",
     men440s:"Options for showing fly over hints",
     men441: "Cell entry options",
     men441s:"Show fly over hints for how to change cell contents", 
     men442: "Hint techniques",
     men442s: "Show fly over containing hint technique when 'Hint' option selected", 
     men500: "       Help",         // spaces are for centering with other items without submenus
     men500s:"Show help options", 
     men510: "How to play",
     men510s: "Provide explanation on how to solve and use this puzzle", 
     men520: "About...",
     men520s:"Show dialog with information on this puzzle", 
     time1:  "Start",
     time1s: "Start the timer",
     time2:  "Stop",
     time2s: "Stop the timer",
     time3:  "Reset",
     time3s: "Reset the timer",
     time4:  "Timer",  
     solver: "Solver",
     row:    "Row",
     column: "Column",
     block:  "Block", 
     scs1:   "Sole Candidate",                       // used to describe solver technique
     scs2:   "Row=%1, column=%2, value set to %3", 
     nss1:   "Naked Singles",                       // used to describe solver technique
     nss2:   "Row=%1, column=%2, value set to %3", 
     hss1:   "Hidden Singles",                      // used to describe solver technique 
     hss2:   "Row=%1, column=%2, value set to %3", 
     bcris1: "Block and Column / Row Interactions", // used to describe solver technique
     bcris2: "Value of %1 must be in column %2 of block %3, therefore %4 can not be solution in this column for other blocks.",
     bcris3: "Value of %1 must be in row %2 of block %3, therefore %4 can not be solution in this row for other blocks.",
     bbis1:  "Block and Block Interaction",         // used to describe solver technique
     bbis2:  "Candidate cells for %1's in blocks %2 and %3 can eliminate %4's as candidates from corresponding rows in block %5",
     bbis3:  "Candidate cells for %1's in blocks %2 and %3 can eliminate %4's as candidates from corresponding columns in block %5", 
     xws1:   "X Wing",                                // used to describe solver technique
     sdf1:   "Swordfish",                             // used to describe solver technique
     xws2:   "Candidates pairs of %1's in cells (r:c) ",
     xws3:   "can eliminate %1 from row %2, column %3",
     fcs1:   "Forcing Chain",
     fcs2:   "The linked chain in cells (r:c) ",
     fcs3:   "can eliminate %1 from row %2, column %3",
     xyw1:   "XY Wing",
     xyw2:   "The short chain in cells (r:c)",
     xyw3:   "can eliminate value of %1 from row %2, column %3",
     ccs1:   "Colouring",
     ccs2:   "The pair chain in cells (r:c)",
     ccs3:   "can eliminate value of %1 from row %2, column %3",
     nsubss1:"Naked Subset",
     nsubss2:"Candidates with %1 in %2 %3 can eliminate %4 from other cells in this %5.",
     hsss1:  "Hidden Subset",
     hsss2:  "Candidates of %1 in %2 %3 can eliminate other candidates from these cells",
     solList:"Puzzle Rating is %1 and contains %2.",
     create1:"Creating unique puzzle - Try number %1",
     finish1: "Congratulations",
     finish2: "Puzzle solved successfully!",
     copyr1:  "Copyright ©",
     copyr2:  "A freely distributable web based Sudoku puzzle program.",
     copyr3:  "Questions, comments and suggestions may be sent to",
     copyr4:  "",                   // text for another bullet on the "About" dialog. HTML tags allowed.
     print1:  "Wait for print dialog to complete.",
     print2:  "Sudoku Puzzle",
     ssteps1:"Puzzle Solution Steps",
     ssteps2:"No.",
     ssteps3:"Technique",
     ssteps4:"Description",
     ssteps5:"Sudoku Solution Steps Window (movable)",
     val1:   "No errors found!",
     val2:   "Cannot find solution with current values.",
     val3:   "Errors found, no solution possible.",
     focus1: "No cell has focus!",
     hint1:  "Hold mouse down to pick number",
     hint2:  "Double click to restore cell",
     hint3:  "Double click to select value",
     hint4:  "Hints not available with errors in puzzle!"       // note that last entry does not have a comma following "
    }; 

    
    
