Improved prefetching algorithm to work every time, when no photos are being loaded.
Added keyboard shortcuts to PhotoView.
Modified AlbumView to not rely on DOM for storing elements.
AlbumView now uses a map to associate idx->div element, instead of relying on jQuery selectors based on IDs.
Removed unused and unsafe generateId() utility function.
Replaced 'hover' state by a 'selected' class which is programmatically added/removed to thumbnail elements in AlbumView.
Changed semantic of m_children. The indices are not necessarily aligned with the underlying m_item.children(), as elements without photos are skipped.
Removed debug mode log messages.
Added keyboard shortcuts to AlbumView.
Blocked default behavior for keyboard in PhotoView.
Otherwise, hitting 'esc' may navigate outside of the next AlbumView, as well as outside of the PhotoView itself.
Added basic grunt support for contact+uglify of javascript.
Added sublime text project ignore flags.
Build system is added via Tools->Build System->New Build Systems.
See http://stackoverflow.com/questions/15385424/sublime-text-2-build-with-grunt-v0-4-0 for example.
Changed tabulation of gruntfile.js to 4 spaces, like existing project files.
Added automated processing of HTML files with Handlebars to generate appropriate SCRIPT elements.
Added grunt-contrib-copy task to copy PHP and CSS files.
Moved documentation into /doc subdirectory. Added /doc and readme.md to copy build task.
Added JSHint support to build
Added copy rule for .htaccess file. Made file visible in sources.
Added support for clean task
Removed unused fix_permissions.sh
Created target 'build' for incremental/non minified build and target 'release' for complete clean and minified build.
Fixed custom html task, to use the same syntax as grunt-contrib-copy.
Added watch task to trigger default incremental build when js or php files are modified.
Added version number to minified js file.