* Refactored Admin.queue(), Admin.dequeue() and Admin.purgeSites() methods to use new Admin.Job prototype
* Refactored Exporter and Importer objects to use new Admin.Job prototype (the way sites are im/exported still needs to be rewritten)
* Refactored resetting and importing a layout to always backup the current layout in a temporary ZIP file
* Moved import_action() method along with corresponding skins from Root to Site
* Moved #create skin from $Root to $Site
* Added the root site itself to the Root.sites collection
* Permitted deletion of the root site by adding appropriate checks and treatment in Site.remove()
* Moved call for Admin.dequeue() from scheduler() to nightly() method
* Removed obsolete Admin.importExport() method
* Removed obsolete app.data.exports and app.data.imports properties
* Fixed global nightly() scheduler method to run only once even if the main scheduler is running many times per minute
* Fixed call for jala.i18n.setLocaleGetter() method in Global to prevent nasty exceptions in scheduler methods (ie. where res.handlers.site is not set)
* Fixed bug in Root.getCreationPermission() method
* Updated i18n template, catalog and message files
* Minor change in $Site#create skin
* Moved SITENOTIFICATIONPERIOD constant, health property as well as getFormOptions(), commitEntries(), commitRequests(), purgeReferrers(), invokeCallbacks(), updateHealth(), exportImport(), updateDomains(), queue() and dequeue() methods from Root to Admin prototype
* Renamed Admin.purgeDatabase() method to Admin.purgeSites() and added code for automatic blocking/deletion of restricted/abandoned sites
* Renamed Root.getScopes() method to Admin.getNotificationScopes()
* Renamed User.getScopes() method to Admin.getCreationScopes()
* Added Admin.getPhaseOutModes() method
* Removed obsolete code
* Fixed and renamed Admin.privateSites to Admin.restrictedSites collection
* Finally added simple and reasonable quota implementation
* Fixed gettext_macro() and ngettext_macro() with check for necessary arguments
* Removed sender argument from global sendMail() method – instead, the root.replyTo property is used
* Fixed some i18n messages
* Moved code setting res.handlers.layout before permission check in HopObject.onRequest() to prevent broken layout in error screen
* Completely rewrote HopObject.notify() method (hopefully fixing issue 49)
* Check free disk space before invoking create_action() of Files and Images prototypes
* Modified output of Membership.toString() method
* Fixed some linebreaks in Membership.skin
* Added option to set session.data.error for additonal information in $Root#error skin
* Slightly modified output of $Root#health skin
* Replaced Root.phaseOutInactiveSites and Root.phaseOutPrivateSites with Root.phaseOutMode
* Removed qualifyingDate property from Root
* Renamed Root.qualifyingPeriod property to Root.probationPeriod
* Removed autoCleanupEnabled and autoCleanupStartTime properties from Root
* Added replyTo property to Root
* Rewrote Root.getCreationPermission() method
* Added #notify_blocking and #notify_deletion skins to $Site.skin
* Replaced Site.notifiedOfBlocking and Site.notifiedOfDeletion properties with Site.notified
* Added Site.diskspace_macro() returning the free disk space in MB
* Fixed bug in Site.main_action() causing erroneous display of deletion warning
* Refactored and unified remove() methods and calls for greater flexibility as well as reliability
* Added option to remove all comments by a user to Comment.remove() method and $Comment#delete skin
* Added global #listItemFlag skin as well as listItemFlag_macro() for rendering vertically written text of items in a list view (e.g. closed)
* Fixed bug in gettext_macro() and ngettext_macro() causing incorrect whitespace
* Refactored timezone and locale handling
* Modified automatic translation of untitled links in HopObject.link_macro()
* Added honeypot to login and registration forms
* Fixed client-side JavaScript to be evaluated when login or registration form is submitted, not only when the submit button is clicked
* Removed redundant filter expression from DB mapping of Membership.images collection
* Added Membership.content collection
* Changed terminology from open to running polls, thus renaming Polls.open_action() method and Polls.open collection
* Moved a lot of CSS used in root or administration sections from Site#stylesheet to $Root#stylesheet skin
* Added Root.updateDomains() method (most likely already obsolete)
* Removed Root.processHref() method (only necessary for very advanced setup) and obsolete comments
* Fixed Root.xgettext() method to correctly read UTF-8 encoded data
* Fixed Site.deleted_macro() to return the date object for late formatting
* Refactored Site.processHref() for more convenient custom domain name mapping
* Renamed Skins.advanced_action() method to Skins.all_action()
* Removed redundant filter from Stories.comments collection
* Removed unnecessary filter from Story.comments collection
* Improved import/export feature to run asynchronously amongst other things
* Remvoved exclusion of root site in Root's default collection (fingers crossed that this has no negative side effects)
* Reverted to GET method in Site.referrers_macro() because otherwise the display of filtered spam won't work (Antville.Query cannot handle POST requests)
* Added Membership.toString() method for human-readable output
* Assigned Membership.valueOf() method original toString() method
* Fixed output of site list in userland
* Added mountpoint for Api prototype in Root
* Added trimming for Story text and title input
* Wrapped zipping of layout images in try/catch block to prevent exceptions when there is no thumbnail image
* Introduced a more elegant way to include necessary script files (jQuery et al.) in Site.main_js_action()
* Slightly modified jQuery "onload" calls
* Fixed various b/w compatibility issues found in some sites
* Fixed pager action in Images
* Added confirmation dialog before resetting a layout
* Added collection containing updated sites in reverse chronological order
* Modified site listing (still work in progress)
* Save site name as title if no title is entered
* Removed some res.debug() calls
* Removed obsolete skin files (ie. content moved to the protected skin file)
* Moved contents of Messages.skins to their protected siblings
* Prefixed notification skins (used in e-mails) with "notify_"
* Fixed and simplified a whole bunch of issues in compatibility layer