Cannot convert get/set property functions to lambda expressions.
Use let/const instead of var keyword.
Use const to assign lambda function to variable.
Use the const and let keywords to define variables instead of var.
Test long usernames to see how they display.
Test user marks.
Consider links where getVerb returns Maybe? For puzzles with placers like "Is age1 less than age2?" See "Dandy Salespeople".
Consider "Scroll Into View" as an option.
updated "Puzzle Parts" project to include session in its pages.
Added session to almost every page.
Encrypted password in MySQL. The password fields now have the blob type.
Use regular expressions to validate various fields in the member page.
Added include file "session.php" to track current member. The current member is displayed in include file "header.php".
Added include file "Logjam.php" containing its class and code to log to a file.
Added include file "Debe.php" (pronounced "Debbie"), a database wrapper class for MySQL.
Renamed maxNouns to numNouns in Puzzle class.
Removed following "max" variables from Puzzle class: maxNounTypes, maxLinks, maxFacts, maxRules.
Incorporated Helper.getElapsedTimeAsString() method into Solver class.
Added "Scroll To Bottom" button in header.php files for main page and puzzle pages.
Added "Scroll To Top" button in footer.php files for main page and puzzle pages.
Removed reference to gridVerb from TabbyViewer.js
Converted var to const and let.
Added PHP header <?php header("X-XSS-Protection: 0") ?> as the first line of savePuzzleParts.php
Renamed global print(msg) method to jot(msg) for debugging.
Moved Helper.getClueNumMsg to private method in Puzzle class.
Renamed Helper.getMsgElapsedTime to Helper.getElapsedTimeAsString
Inline Helper.getStartedMsg method at Solver.sayStarted.
Inline Helper.getStoppedMsg method at Solver.sayStopped.
Inline Helper.getSolutionMsg method at Solver.saySolution.
The head.php file in root/inc folder now loads: Helper.js, Locker.js, UIX.js, Verb.js.
Adding these files allow "puzzle part" documents to be clickable without raising errors (though the clicks may not invoke anything).
Update all "puzzle parts" under the "puzzle" and "solved" folders in the help folder.
Changed column header for marks from "Name" to "Reason".
Update only mark in Marks form and Grids form instead of entire form. This renders form much faster.
Added "Scroll Into View" for facts, rules, marks, but is too jarring for big grids.
Set okPauseNext flag to false in Viewer.updateUI, Viewer.reset.
Removed updateRule in Viewer.
Set chkPauseSolution to true in SetupViewer.reset.
Updated all puzzle part files under the help folder.
Puzzle footer has links to the unfilled Grids form and the filled Marks form.
Set checkmark for valid marks in the Marks form.
Removed Filer.js and use PHP to save puzzle parts to appropriate files under the help folder.
Changed field name from chkPausePlacers to chkPausePlacer.
When User enables/disables fact/rule before there are marks, this overrides initEnabled flag for fact/rule.
Passed toggleFact, toggleRule events from UI to WW as updateFact, updateRule.
Removed Viewer variable from Worker.js file.
Use Google's closure compiler to create solver-lib.js, viewer-lib.js, worker-lib.js
Renamed WebWorker.js to Worker.js.
Optimized "Hello Dolly!" puzzle module to solve without assumptions.
Removed lonerNum from Mark class. lonerNum is now local to doAssumptions.
Implement undo after solution is found for level 4 to see if there are additional solutions.
Rule 3 in "Small Town Motels" is not be necessary since I implemented the link "twice the sequence number of".
Updates placers in UI. See "Abbondanza!", "Astrophysics Conference", "Dandy Salespeople".
In mark.addPlacer, don't add if already there or noun.noun is already that value.
Changed pairs array to hold noun instead of mark. See Noun class and solver.addMark.
Changed Solver.MaxLevels to Solver.MAX_LEVELS.
Changed Solver.MaxLaws to Solver.MAX_LAWS.
Removed "this" keyword with returning closures in most classes.
Return closures have get/set functions for variables.
Added optional getVerb parameter to puzzle.addLink method.
Canceled Yahoo! Small Business for hosting the Mystery Master website.
Changed the contact email address to my Hotmail account.
Began transition of hosting the Mystery Master website from Yahoo! to GoDaddy.
Set css display to none for the Solver component of the puzzle page.