aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.old411
-rw-r--r--NEWS76
-rw-r--r--convert/contrib/Original_Script.scptbin0 -> 20608 bytes
-rw-r--r--convert/contrib/imgconv.rb94
-rw-r--r--convert/contrib/web-gallery105
-rwxr-xr-xconvert/contrib/webgallery-zenity.pl160
-rwxr-xr-xconvert/contrib/webgallery.pl154
-rw-r--r--info.txt.sample6
-rw-r--r--www/favicon.icobin0 -> 1150 bytes
-rw-r--r--www/inc/comment.inc.php33
-rw-r--r--www/inc/global.js79
-rw-r--r--www/inc/l10nget.inc.php17
-rw-r--r--www/inc/styles/classic/bcg.pngbin0 -> 87 bytes
-rw-r--r--www/inc/styles/classic/classic.css338
-rw-r--r--www/inc/styles/classic/classic.css.net386
-rw-r--r--www/inc/styles/classic/hascomments.pngbin0 -> 534 bytes
-rw-r--r--www/inc/styles/classic/left-16.pngbin0 -> 298 bytes
-rw-r--r--www/inc/styles/classic/left.pngbin0 -> 523 bytes
-rw-r--r--www/inc/styles/classic/logo-mini.pngbin0 -> 4163 bytes
-rw-r--r--www/inc/styles/classic/minus.pngbin0 -> 291 bytes
-rw-r--r--www/inc/styles/classic/plus.pngbin0 -> 556 bytes
-rw-r--r--www/inc/styles/classic/restricted.pngbin0 -> 729 bytes
-rw-r--r--www/inc/styles/classic/right-16.pngbin0 -> 290 bytes
-rw-r--r--www/inc/styles/classic/right.pngbin0 -> 522 bytes
-rw-r--r--www/inc/styles/classic/title.pngbin0 -> 3434 bytes
-rw-r--r--www/inc/styles/classic/zip.pngbin0 -> 539 bytes
-rw-r--r--www/inc/styles/dark/bcg.pngbin0 -> 87 bytes
-rw-r--r--www/inc/styles/dark/dark.css553
-rw-r--r--www/inc/styles/dark/hascomments.pngbin0 -> 398 bytes
-rw-r--r--www/inc/styles/dark/home-inactive.pngbin0 -> 253 bytes
-rw-r--r--www/inc/styles/dark/home.pngbin0 -> 231 bytes
-rw-r--r--www/inc/styles/dark/left-16.pngbin0 -> 298 bytes
-rw-r--r--www/inc/styles/dark/left-inactive.pngbin0 -> 289 bytes
-rw-r--r--www/inc/styles/dark/left.pngbin0 -> 265 bytes
-rw-r--r--www/inc/styles/dark/logo-mini.pngbin0 -> 4163 bytes
-rw-r--r--www/inc/styles/dark/minus-inactive.pngbin0 -> 175 bytes
-rw-r--r--www/inc/styles/dark/minus.pngbin0 -> 169 bytes
-rw-r--r--www/inc/styles/dark/plus-inactive.pngbin0 -> 203 bytes
-rw-r--r--www/inc/styles/dark/plus.pngbin0 -> 188 bytes
-rw-r--r--www/inc/styles/dark/restricted-inactive.pngbin0 -> 376 bytes
-rw-r--r--www/inc/styles/dark/restricted.pngbin0 -> 367 bytes
-rw-r--r--www/inc/styles/dark/right-16.pngbin0 -> 290 bytes
-rw-r--r--www/inc/styles/dark/right-inactive.pngbin0 -> 294 bytes
-rw-r--r--www/inc/styles/dark/right.pngbin0 -> 269 bytes
-rw-r--r--www/inc/styles/dark/title.pngbin0 -> 3342 bytes
-rw-r--r--www/inc/styles/dark/zip-inactive.pngbin0 -> 241 bytes
-rw-r--r--www/inc/styles/dark/zip.pngbin0 -> 231 bytes
-rw-r--r--www/inc/styles/default/home-inactive.pngbin0 -> 253 bytes
-rw-r--r--www/inc/styles/default/home.pngbin0 -> 213 bytes
-rw-r--r--www/inc/styles/default/left-inactive.pngbin0 -> 289 bytes
-rw-r--r--www/inc/styles/default/minus-inactive.pngbin0 -> 175 bytes
-rw-r--r--www/inc/styles/default/plus-inactive.pngbin0 -> 203 bytes
-rw-r--r--www/inc/styles/default/restricted-inactive.pngbin0 -> 376 bytes
-rw-r--r--www/inc/styles/default/restricted.pngbin0 -> 367 bytes
-rw-r--r--www/inc/styles/default/right-inactive.pngbin0 -> 294 bytes
-rw-r--r--www/inc/styles/default/zip-inactive.pngbin0 -> 241 bytes
-rw-r--r--www/inc/styles/grey/grey.css258
-rw-r--r--www/inc/styles/grey/left.pngbin0 -> 1644 bytes
-rw-r--r--www/inc/styles/grey/minus.pngbin0 -> 1403 bytes
-rw-r--r--www/inc/styles/grey/plus.pngbin0 -> 1436 bytes
-rw-r--r--www/inc/styles/grey/right.pngbin0 -> 1661 bytes
-rw-r--r--www/inc/styles/grey/title.pngbin0 -> 2506 bytes
-rw-r--r--www/inc/styles/ie7/README.txt28
-rw-r--r--www/inc/styles/ie7/blank.gifbin0 -> 48 bytes
-rw-r--r--www/inc/styles/ie7/ie7-box-model.js2
-rw-r--r--www/inc/styles/ie7/ie7-core.js2
-rw-r--r--www/inc/styles/ie7/ie7-css-strict.js2
-rw-r--r--www/inc/styles/ie7/ie7-css2.js2
-rw-r--r--www/inc/styles/ie7/ie7-css3.js2
-rw-r--r--www/inc/styles/ie7/ie7-fixed.js2
-rw-r--r--www/inc/styles/ie7/ie7-html4.js2
-rw-r--r--www/inc/styles/ie7/ie7-ie5.js2
-rw-r--r--www/inc/styles/ie7/ie7-lite-p.js3
-rw-r--r--www/inc/styles/ie7/ie7-lite.js2
-rw-r--r--www/inc/styles/ie7/ie7-logo.gifbin0 -> 1135 bytes
-rw-r--r--www/inc/styles/ie7/ie7-png.js2
-rw-r--r--www/inc/styles/ie7/ie7-server.css43
-rw-r--r--www/inc/styles/ie7/ie7-standard-p.js3
-rw-r--r--www/inc/styles/ie7/ie7-standard.js2
-rw-r--r--www/inc/styles/ie7/ie7.gifbin0 -> 208 bytes
-rw-r--r--www/inc/styles/ie7/license17
-rw-r--r--www/inc/styles/ie7/test-trans.pngbin0 -> 106 bytes
-rw-r--r--www/l10n/cs/date.lang79
-rw-r--r--www/l10n/cs/exif.lang21
-rw-r--r--www/l10n/cs/main.lang111
-rw-r--r--www/l10n/fr/date.lang79
-rw-r--r--www/l10n/fr/main.lang111
-rw-r--r--www/lib/lib.l10n.php58
-rw-r--r--www/stock_camera-16.pngbin0 -> 768 bytes
89 files changed, 3245 insertions, 0 deletions
diff --git a/ChangeLog.old b/ChangeLog.old
new file mode 100644
index 0000000..4aa5c96
--- /dev/null
+++ b/ChangeLog.old
@@ -0,0 +1,411 @@
+2005-01-19 Jakub Steiner <jimmac@ximian.com>
+
+ * index.php: check for comments dir writability. You can disable
+ comments per album by making comments not writable.
+ * inc/config.inc.php: add options to specify date segment to show
+ - ($yearsince, $yearto)
+
+2005-01-16 Jakub Steiner <jimmac@ximian.com>
+
+ Should update more often, or drop this in favour of NEWS, hmm
+
+ * convert/imgconv: added unsharp mask & saturation boost
+ thumbnails are stripped off EXIF tags. To do this for your
+ existing thumbnails, run `mogrify -strip thumbs/*jpg`. You'll gain
+ a lot of space if your exif header in the thumbnail includes a
+ thumbnail (DOH). Added a world writable flag to comments dir,
+ since it's required for the new feature - user comments.
+
+ * convert/contrib: moved all the funky scripts there, please help
+ me maintain them, patches very welcome.
+
+ * www/:
+ - Implemented user comments based on a patch by Christian
+ Troester. Had to add a simple form check since it was full of
+ spam the next day. Eek.
+
+ - Added image access log (also needs comments dir writable)
+
+ - Added some formatting to the PHP4 EXIF data
+
+ - Cleaned up the default theme, now called dark. How original.
+ The Previous/Next thumbnails have access keys (Alt+P, Alt+N).
+ The previews are top aligned so they don't jump depending on
+ the height of the image. If you don't like any of these, feel
+ free to use the old stylesheet.
+
+ - Moved the javascript to a separate file, wondered why IE
+ suddenly prefers not to render page, then used <script></script>
+ instead of <script />
+
+ - Made it XHTML 1.0 Strict compilant, Didn't want to get rid of
+ the -moz-* CSS extensions, but apart from that and the IE's
+ Filter it's CSS2 compilant too. Classic and Gorilla don't use
+ them and are compilant.
+
+ - info.txt now accepts more date formats (You can even do
+ foolish things like "Today")
+
+ * info.txt.sample: Sample info.txt file to add metainfo to your
+ album as described in the README.
+
+2004-09-28 Jakub Steiner <jimmac@ximian.com>
+
+ * README:
+ * www/inc/header.inc.php:
+ * www/inc/www.class.inc.php:
+ * www/inc/config.inc.php: implement meta information loading (see README)
+ * www/inc/styles/default: new default style
+
+
+2004-02-16 Jakub Steiner <jimmac@ximian.com>
+
+ * www/inc/header.inc.php:
+ * www/inc/javascript.inc.php:
+ * www/inc/www.class.inc.php:
+ * www/inc/config.inc.php: make stylesheet selectable in the
+ document (javascript dependent). Set a cookie so it gets stored
+ across session.
+
+ * www/inc/stylesheet/ie/ie.css: dummy (doesn't crash IE)
+ * www/inc/stylesheet/default/default.css: doesn't jump in
+ thumbnail view
+ * www/inc/stylesheet/gorilla/gorilla.css: implemented centering
+ of the image properly. First, I hacked up a gross javascript
+ kludge then figured a trivial solution with CSS. ehm
+ * www/index.php: solve tall images overlapping description by a
+ small inline style="" definition. This breaks CSS2 validity,
+ though?
+
+2004-01-10 Colin Marquardt <colin@marquardt-home.de>
+
+ * convert/webgallery-zenity.pl: Quote $arg in system calls to
+ handle filenames with spaces.
+
+ * www/index.php,
+ www/inc/header.inc.php,
+ www/inc/footer.inc.php,
+ www/inc/www.class.inc.php,
+ www/inc/funkce.inc.php:
+ Make it validate with W3C.
+ Make resulting HTML more readable.
+
+2003-12-15 Colin Marquardt <colin@marquardt-home.de>
+
+ * convert/webgallery-zenity.pl: Set mtime of web-gallery directory
+ to the mtime of the first image with a good-looking time stamp.
+ Skip directories and non-image files.
+ Set autoflush for PROGRESS in a more readable way.
+ (make_dirs): Better error messages (show them to the user).
+
+2003-12-07 Colin Marquardt <colin@marquardt-home.de>
+
+ * convert/webgallery-zenity.pl: Use gdk-pixbuf-convert if
+ available, otherwise convert. Make error messages more in spirit
+ of the HIG (zenity doesn't support Pango markup though?). Some
+ cleanup.
+
+2003-11-02 Jakub Steiner <jimmac@ximian.com>
+
+ patch from Colin Marquardt <colin@marquardt-home.de>:
+
+ * convert/gdk-pixbuf-convert.c: Add '-quality' switch.
+
+ * convert/webgallery-zenity.pl: Use new '-quality' switch.
+ Make error messages nicer.
+
+2003-11-01 Jakub Steiner <jimmac@ximian.com>
+
+ * www/index.php
+ * www/inc/exif.inc.php
+ * www/inc/funkce.inc.php
+ * www/inc/www.class.inc.php: stylesheet & $gallery_dir updates
+
+ * www/inc/styles/gorilla/left.png
+ * www/inc/styles/gorilla/right.png
+ * www/inc/styles/gorilla/gorilla.css: stylesheet updates
+
+ * www/inc/styles/default/bcg.png
+ * www/inc/styles/default/default.css
+ * www/inc/styles/default/left-16.png
+ * www/inc/styles/default/left.png
+ * www/inc/styles/default/logo-mini.png
+ * www/inc/styles/default/minus.png
+ * www/inc/styles/default/plus.png
+ * www/inc/styles/default/right-16.png
+ * www/inc/styles/default/right.png
+ * www/inc/styles/default/title.png
+ * www/inc/styles/default/zip.png: default stylesheet (WIP)
+
+2003-10-27 Jakub Steiner <jimmac@ximian.com>
+
+ * www/inc/styles/gorilla/gorilla.css
+ * www/inc/styles/gorilla/minus.png
+ * www/inc/styles/gorilla/plus.png
+ * www/inc/styles/gorilla/title.png
+ * www/inc/header.inc.php
+ * www/index.php: more stylesheet work. _Some_ issues. Like
+ killing IE6 *ehm* ;)
+
+ I'll concentrate on doing the original stylesheet first and let
+ my gorilla playground there for a while.
+
+2003-10-27 Jakub Steiner <jimmac@ximian.com>
+
+ * www/index.php:
+ * www/inc/funkce.inc.php: applied a patch from Mark, fixing
+ issues with local relative paths
+
+ Also fixed archive listing in the gallery thumbnail view.
+
+2003-10-27 Jakub Steiner <jimmac@ximian.com>
+
+ * www/index.php: remove legacy style definitions
+
+2003-10-27 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/index.php:
+ (Re)Add year sorting when generating the index page.
+
+2003-10-26 Jakub Steiner <jimmac@ximian.com>
+
+ * www/index.php
+ * www/inc/config.inc.php
+ * www/inc/footer.inc.php
+ * www/inc/funkce.inc.php
+ * www/inc/header.inc.php
+ * www/inc/www.class.inc.php: start breaking style and document
+ structure apart. There will be multiple styles to choose from,
+ including a plaintext one. The navigation and titlebar artwork
+ will be implemented in CSS eventually so no php-fu for this
+ will be required.
+
+ Because of this, the plaintext config option will go, since
+ this will all be defined by using a specific stylesheet.
+
+ Cleaned up the navigation() function.
+
+ Header and footer are unfinished.
+
+ * www/inc/stylesheet.inc.css: removed global stylesheet
+ * www/inc/styles/gorilla/gorilla.css: sample Gorilla stylesheet.
+ It will not be the default. It's just something to start with.
+ The existing artwork will go to the stylesheet directory.
+
+2003-10-26 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/index.php:
+ Change datefile format in expectance
+ of supporting sorting by date of the
+ month.
+
+2003-10-26 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/inc/config.inc.php:
+ Fix comment for $gallery_dir
+
+2003-10-26 Jakub Steiner <jimmac@ximian.com>
+
+ * www/index.php:
+ * www/inc/www.class.inc.php:
+ * www/inc/funkce.inc.php: implement $gallery_dir correctly
+
+2003-10-26 Jakub Steiner <jimmac@ximian.com>
+
+ * www/inc/config.inc.php: get rid of old gallery listing
+
+ * www/inc/www.class.inc.php: rename the SortedDir() function to
+ be the constructor (easier-to-read code).
+
+ * www/index.php: used spaces instead of tabs, the indentation
+ looked weird (3 spaces == 1 tab)
+
+2003-10-26 Jakub Steiner <jimmac@ximian.com>
+
+ * www/inc/www.class.inc.php:
+ * www/index.php: remove old unused classes, start renaming
+ cz>en variables
+
+ * TODO: prepare for the stylesheet stuff
+
+2003-10-26 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/inc/config.inc.php:
+ Remove the trailing / from $gallery_dir
+
+ * www/index.php:
+ Implement using $gallery_dir preference
+
+ * www/galleries:
+ Directory Added; new location for galleries
+
+2003-10-26 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/inc/config.inc.php:
+ Add gallery directory preference; still need
+ to make index.php use this preference.
+
+2003-10-25 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/index.php:
+ Fix include() and require() statements so that they work
+ on more php configurations.
+
+2003-10-25 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/inc/config.inc.php:
+ Turn off EXIF retreival by default
+
+2003-10-25 Colin Marquardt <colin@marquardt-home.de>
+
+ * www/inc/config.inc.php: Set version to "0.7-cvs".
+ Make format more customization friendly.
+
+ * www/inc/exif.inc.php: Quote filename given to exec in case there
+ are spaces in the path.
+
+ * www/inc/config.inc.php: Add examples for jhead.
+
+ * www/inc/exif.inc.php: Use trim() for comparisons, this makes it
+ work with jhead as EXIF extractor.
+
+2003-10-24 Colin Marquardt <colin@marquardt-home.de>
+
+ * www/inc/www.class.inc.php: New class SortDir with SortedDir()
+ and Read() functions. (patch by Markus Ulbricht, thanks)
+
+ * www/index.php: Use SortedDir() function. (patch by Markus Ulbricht)
+
+2003-10-24 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/index.php:
+ Fix navigation bar so it works with register_globals off
+
+2003-10-24 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/inc/header.inc.php:
+ Use Same header for all pages
+
+ * www/index.php:
+ Add heirarchy navigation bar
+
+2003-10-24 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/index.php:
+ Fix new sorting algorithm to show newest galleries first
+
+2003-10-24 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/index.php:
+ Add the ability to use date.txt in each gallery to specify
+ the date for that gallery.
+
+2003-10-23 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ * www/inc/footer.inc.php:
+ * www/inc/header.inc.php:
+ ADDED; Make the header image a link to the root of the site
+ instead of the Original Home Page.
+
+ * www/index.php:
+ Modified to use new header and footer include files;
+ Added comments to sepporate different pages
+
+2003-10-22 Colin Marquardt <colin@marquardt-home.de>
+
+ * www/index.php:
+ * www/inc/config.inc.php:
+ * www/inc/exif.inc.php:
+ * www/inc/funkce.inc.php:
+ * www/inc/www.class.inc.php:
+
+ Make it work with register_globals = Off in php.ini.
+
+2003-10-22 Colin Marquardt <colin@marquardt-home.de>
+
+ * convert/Makefile (uninstall): New target.
+
+2003-10-21 Colin Marquardt <colin@marquardt-home.de>
+
+ * convert/gdk-pixbuf-convert.c: #include
+ <gdk-pixbuf/gdk-pixbuf.h>, not local file.
+ (main): Add meaningful usage text.
+
+ * convert/Makefile: New file.
+
+2003-10-21 Mark Finlay <sisob@tuxfamilyDOTorg>
+
+ Initial Checkin of Original to CVS
+
+2003-08-22 Jakub Steiner <jimmac@ximian.com>
+
+ * convert/webgallery-zenity.pl: modification of Tuomas' script.
+ Uses gnome2's zenity for progress bars, no gtk-perl magic
+ * convert/gdk-pixbuf-convert.c: Larry Ewing's pixbuf-based
+ scaler. This thing is fast!
+
+2002-11-19 Jakub Steiner <jimmac@ximian.com>
+
+ * convert/imgconv:
+ * convert/webgallery.pl: go back to ImageMagcik. It keeps EXIF
+ info while scaling, jpeg thumbnails
+ * www/index.php, www/inc/config.inc.php, www/inc/exif.inc.php:
+ - nicer index
+ - jpeg thumbnail support
+ - don't show EXIF mode switch when no EXIF info available
+ - fix portrait thumbnail scaling (should work fo most aspect
+ ratios now)
+ - previous/next image thumbnails (in image mode)
+ - Mozilla's link navigation (First, Previous, Next, Last, Top)
+ * www/left.png, right.png, top.png, plus.png, minus.png: new icons (from
+ gorilla)
+ * logo.xcf.bz2, www/logo.png, www/logo-mini.png: pretty logo
+
+2002-04-01 Jakub Steiner <jimmac@ximian.com>
+
+ * convert/imgconv:
+ * convert/webgallery.pl: use netpbm instead of ImageMagick;
+ imgconv now uses the same subdir as webgallery.pl
+
+ * www/index.php, www/inc/config.inc.php: portrait thumbnails are now the
+ same height as the landscape ones. Also incorporated suggestion from
+ Eduardo Prez <100018135@alumnos.uc3m.es> to support ISO 8601
+ date format instead of the US format.
+
+ And last but not least the imgconv has a commented-out line to
+ tar up or zip the HQ or MQ images. index.php links to those in
+ the thumbnail view if you have them uploaded. The minithumbnail
+ view also has a small floppy icon (zip.png) for the HQ version.
+
+
+2001-10-27 Jakub Steiner <jimmac@ximian.com>
+
+ * www/inc/config.inc.php:
+ * www/inc/exif.inc.php: php4 exif handling (untested); also added
+ config option to have fixed thumbnails (looks better on
+ portrait photos)
+ * convert/webgallery.pl: use nautilus metafile to get comments
+
+2001-10-16 Jakub Steiner <jimmac@ximian.com>
+
+ * www/index.php: mini thumbnails
+ * www/inc/exif.inc.php: EXIF stuff (using Metacam), check
+ REQUIREMENTS
+
+2001-04-14 Jakub Steiner <jimmac@ximian.com>
+
+ * REQUIREMENTS: Imagemagick, perl, gtk-perl, bash ;)
+ * convert/webgallery.pl: Tigert's Nautilus web-gallery
+ script for Nautilus. It simply rocks!
+ * *.png: I accidentaly left the gif images in the
+ distribution
+ * index.php: check for mq and hq dirs before creating a link
+
+
+16.10.2000 - few configuration addditions
+ - dropped nasty GIF format for the navigation
+ (1bit mask is screwed under NN4, but its CSS support
+ is so crap, so that the default theme is unusable for it)
+ also imgconv is using png fro thumbnails (64 colors should
+ be enough for everyone (tm))
+15.10.2000 - first public release
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..023cfaf
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,76 @@
+Version 0.11
+------------
+
+ Convert script
+ --------------
+ - New scripts from Boris de Laage <bdelaage@free.fr> with
+ more parameters, interactive mode, help and other goodies
+ - iPhoto->Original script (Stephen Gerstacker)
+
+ Web script
+ ----------
+ - Localisation (partial fr and cs locales). Language taken from
+ UA's accept language. Based on patch by some good soul I can't
+ seem to find the identity for.
+ - Security and polishing (Lennart Poettering and Stephan Poehlsen).
+
+
+Version 0.10
+------------
+
+ Convert script
+ --------------
+
+ - I added unsharp mask & saturation boost.
+ - Thumbnails are stripped off EXIF tags. To do this for your existing
+ thumbnails, run `mogrify -strip thumbs/*jpg`. You'll gain a lot of space if
+ your exif header in the thumbnail includes a thumbnail (DOH).
+ - Added a world writable flag to comments dir, since it's required for the
+ new feature - user comments.
+
+ * convert/contrib: moved all the funky scripts there, please help
+ me maintain them, patches very welcome.
+
+ Web scripts
+ -----------
+
+ - Implemented user comments based on a patch by Christian
+ Troester. Had to add a simple form check since it was full of
+ spam the next day. Eek.
+
+ - Added image access log (also needs comments dir writable)
+
+ - Added some formatting to the PHP4 EXIF data
+
+ - Cleaned up the default theme, now called dark. How original.
+ The Previous/Next thumbnails have access keys (Alt+P, Alt+N).
+ The previews are top aligned so they don't jump depending on
+ the height of the image. If you don't like any of these, feel
+ free to use the old stylesheet.
+
+ - Moved the javascript to a separate file, wondered why IE
+ suddenly prefers not to render page, then used <script></script>
+ instead of <script />
+
+ - Made it XHTML 1.0 Strict compilant, Didn't want to get rid of
+ the -moz-* CSS extensions, but apart from that and the IE's
+ Filter it's CSS2 compilant too. Classic and Gorilla don't use
+ them and are compilant.
+
+ - info.txt now accepts more date formats (You can even do
+ foolish things like "Today")
+
+ * info.txt.sample: Sample info.txt file to add metainfo to your
+ album as described in the README.
+
+
+version 0.9
+-----------
+* New default stylesheet. Is pwetty and doesn't crash IE, yay!
+* Optional per-gallery meta information. Finally you can now edit a fancy name
+ (utf8), add a short description, specify author or override dir date.
+ More on this in the README.
+* Restricted Galleries (using info.txt). Note you need to make sure info.txt
+ isn't readable (imgconv generated an appropriate .htaccess)
+* Customizable sorting within month. $sortinmonth defines whether you want
+ theitems sorted alphabetically or descending date.
diff --git a/convert/contrib/Original_Script.scpt b/convert/contrib/Original_Script.scpt
new file mode 100644
index 0000000..5ff3bd5
--- /dev/null
+++ b/convert/contrib/Original_Script.scpt
Binary files differ
diff --git a/convert/contrib/imgconv.rb b/convert/contrib/imgconv.rb
new file mode 100644
index 0000000..676ef42
--- /dev/null
+++ b/convert/contrib/imgconv.rb
@@ -0,0 +1,94 @@
+#!/usr/bin/ruby
+
+require 'fileutils'
+
+if ARGV.size < 2
+ puts "Usage: #$0 source_images gallery_name"
+ exit 1
+end
+
+class Gallery
+
+ CONF = {}
+ CONF[:thumbs] = { :target => 'thumbs', :geom => '120x120', :quality => '60' }
+ CONF[:lq] = { :target => 'lq', :geom => '640x480', :quality => '90' }
+ CONF[:mq] = { :target => 'mq', :geom => '800x600', :quality => '80' }
+
+ def initialize(source_dir = '.', gallery = 'web-gallery')
+ @source_dir = source_dir
+ @gallery = gallery
+ end
+
+ def setup_dirs
+ %w(thumbs lq mq hq zip comments).each do |dir|
+ target = File.join(@gallery, dir)
+
+ if File.exists? target
+ warn "Skipping creation of, #{target}, already exists."
+ next
+ end
+
+ FileUtils.mkdir_p target
+ end
+ end
+
+ def setup_access
+ ht = File.join(@gallery, ".htaccess")
+
+ open(ht, 'w') do |fp|
+ fp.puts "<Files info.txt>"
+ fp.puts " deny from all"
+ fp.puts "</Files>"
+ end
+ end
+
+ def create_comment(num)
+ comment_file = File.join(@gallery, 'comments', "#{num}.txt")
+
+ open(comment_file, 'w') do |fp|
+ fp.puts "<span>image #{num}</span>"
+ end
+ end
+
+ def convert_image(conf, src, num)
+ target = File.join(@gallery, conf[:target], "img-#{num}.jpg")
+
+ cmd = "convert -geometry #{conf[:geom]} -unsharp 1x5 "
+ cmd += "-quality #{conf[:quality]} #{src} #{target}"
+
+ system cmd
+ end
+
+ def build_zip_files
+ puts "Building zip files."
+ system("zip -R #@gallery/zip/mq.zip #@gallery/mq/*.jpg");
+ system("zip -R #@gallery/zip/hq.zip #@gallery/hq/*.jpg");
+ end
+
+ def create
+ setup_dirs
+ setup_access
+
+ num = 1
+
+ Dir["#@source_dir/*.jpg"].sort.each do |src|
+ puts "Working on: #{src}"
+
+ FileUtils.cp(src, File.join(@gallery, 'hq', "img-#{num}.jpg"))
+
+ convert_image(CONF[:thumbs], src, num)
+ convert_image(CONF[:lq], src, num)
+ convert_image(CONF[:mq], src, num)
+
+ create_comment(num)
+
+ num += 1
+ end
+
+ build_zip_files
+ end
+end
+
+gal = Gallery.new ARGV[0], ARGV[1]
+gal.create
+
diff --git a/convert/contrib/web-gallery b/convert/contrib/web-gallery
new file mode 100644
index 0000000..952f8fe
--- /dev/null
+++ b/convert/contrib/web-gallery
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+# Nautilus script to generate image galleries for use with original
+# uses Gnome's zenity for user dialogs
+# uses ImageMagick's convert
+# (c) 2005 boris de laage <bdelaage@free.fr>
+# based on imgconv bu Jakub Steiner
+
+set -e
+
+name=`basename $0`
+
+# convert options
+convertor=`which convert`
+extra_ops="-strip"
+
+#default options
+dir=./web-gallery
+
+files=$(echo $@ | sed 's/ /\n/g' | sort)
+numfiles=$#
+
+if [ -z $convertor ]; then
+ zenity --title $name --error --error-text "convert not found !"
+ exit 1
+fi
+
+if [ $numfiles == 0 ]; then
+ zenity --title $name --error --error-text "No input files !"
+ exit 1
+fi
+
+#progressbar stuff
+steps=5
+increment=`expr 100 / \( $numfiles \* $steps \) `
+progress=0
+
+
+mkdir -p $dir/thumbs
+mkdir -p $dir/lq
+mkdir -p $dir/mq
+mkdir -p $dir/hq
+mkdir -p $dir/zip
+mkdir -p $dir/comments
+chmod o+w $dir/comments
+
+echo "<Files info.txt>" > $dir/.htaccess
+echo " deny from all" >> $dir/.htaccess
+echo "</Files>" >> $dir/.htaccess
+
+
+i=1
+
+for imagefile in $files
+ do
+ process="converting $imagefile"
+
+ # Thumbnail
+ echo "#$process : thumbnail"
+ $convertor -geometry 120x120 -modulate 100,140,100 -unsharp 1x20 \
+ -quality 60 $extra_opts $imagefile $dir/thumbs/img-$i.jpg
+ progress=`expr $progress + $increment`
+ echo $progress
+
+ # LQ
+ echo "#$process : lq"
+ $convertor -geometry 640x480 -modulate 100,130,100 -unsharp 1x5 \
+ -quality 90 $imagefile $dir/lq/img-$i.jpg
+ progress=`expr $progress + $increment`
+ echo $progress
+
+ #MQ
+ echo "#$process : mq"
+ $convertor -geometry 1024x768 -modulate 100,130,100 -unsharp 1x5 \
+ -quality 80 $imagefile $dir/mq/img-$i.jpg
+ progress=`expr $progress + $increment`
+ echo $progress
+
+ #HQ
+ echo "#$process : hq"
+ cp $imagefile $dir/hq/img-$i.jpg
+ progress=`expr $progress + $increment`
+ echo $progress
+
+ #Comments
+ echo "#$process : comments"
+ # template for comment
+ echo "<span>Photo $i</span> " > $dir/comments/$i.txt
+ progress=`expr $progress + $increment`
+ echo $progress
+
+ i=`expr $i + 1`
+
+done | zenity --progress --title="Scaling images, please wait..." --auto-close
+
+
+(
+ echo "1"
+ echo "#Making archives"
+ zip -R $dir/zip/mq.zip web-gallery/mq/*.jpg
+ zip -R $dir/zip/hq.zip web-gallery/hq/*.jpg
+ echo "100"
+) | zenity --progress --pulsate --auto-close --title="Zipping images"
+
+zenity --title $name --info --info-text "Your <b>O.R.I.G.I.N.A.L</b> gallery is ready."
diff --git a/convert/contrib/webgallery-zenity.pl b/convert/contrib/webgallery-zenity.pl
new file mode 100755
index 0000000..7f06826
--- /dev/null
+++ b/convert/contrib/webgallery-zenity.pl
@@ -0,0 +1,160 @@
+#!/usr/bin/perl -w
+
+# little script to generate image galleries for use with original PHP backend
+# uses Gnome's zenity for user dialogs
+# uses gdk-pixbuf-convert if available, otherwise convert (from ImageMagick)
+# (c) 2003-2004 Jakub 'jimmac' Steiner, (c) 2003-2004 Colin Marquardt
+# based on webgallery.pl by Tuomas Kuosmanen
+
+use strict;
+use warnings;
+use FileHandle;
+
+my $num_of_args = scalar @ARGV;
+
+if (!@ARGV or ($num_of_args == 0)) {
+ exec("zenity --error --title \"\" --text \"No args\n\nYou have to select images to work on.\"");
+ exit;
+}
+
+my $GdkPixbufConvert = "gdk-pixbuf-convert";
+my $Convert = "convert";
+my $dir = "web-gallery";
+
+
+# try to find a scaler program
+my $scaler;
+$scaler = `which $GdkPixbufConvert`;
+if ($scaler eq "") {
+ $scaler = `which $Convert`;
+}
+if ($scaler eq "") {
+ exec("zenity --error --title \"\" --text \"No scaling program\n\nYou need to have '$GdkPixbufConvert' or '$Convert' available.\"");
+ exit;
+}
+chomp $scaler;
+
+my @args = sort(@ARGV);
+my $NumOfIncrements = 5; # 5 increments per file (as we are
+ # expecting to create 5 files for each
+ # image)
+my $increment = 100 / ($num_of_args * $NumOfIncrements);
+my $progress=0;
+my $reply="";
+
+sub make_dirs {
+ my $ErrMsg;
+ unless (-d "$dir") {
+ mkdir("./$dir") or
+ $ErrMsg .= "Could not create './$dir'!\n";
+ }
+ unless (-d "$dir/thumbs") {
+ mkdir("./$dir/thumbs") or
+ $ErrMsg .= "Could not create './$dir/thumbs'!\n";
+ }
+ unless (-d "$dir/lq") {
+ mkdir("./$dir/lq") or
+ $ErrMsg .= "Could not create './$dir/lq'!\n";
+ }
+ unless (-d "$dir/mq") {
+ mkdir("./$dir/mq") or
+ $ErrMsg .= "Could not create './$dir/mq'!\n";
+ }
+ unless (-d "$dir/hq") {
+ mkdir("./$dir/hq") or
+ $ErrMsg .= "Could not create './$dir/hq'!\n";
+ }
+ unless (-d "$dir/comments") {
+ mkdir("./$dir/comments") or
+ $ErrMsg .= "Could not create './$dir/comments'!\n";
+ }
+ unless (-d "$dir/zip") {
+ mkdir("./$dir/zip") or
+ $ErrMsg .= "Could not create './$dir/zip'!\n";
+ }
+ if ($ErrMsg ne "") {
+ exec("zenity --error --title \"Giving Up\" --text \"Fatal Error\n\n$ErrMsg\"");
+ die "Errors occurred:\n$ErrMsg";
+ }
+}
+make_dirs();
+
+# ------------------------------------------------------------------------
+open(PROGRESS,"| zenity --progress --auto-close --title=\"\" \\
+ --text=\"Scaling images, please wait\"");
+PROGRESS->autoflush(1);
+
+my $i=1;
+my $SetDirDate = 0;
+foreach my $arg (@args) {
+ if (-d $arg) { # argument is a directory, skip it
+ $progress += ($increment * $NumOfIncrements);
+ print PROGRESS "$progress\n";
+ next;
+ }
+ my $FileType = `file "$arg"`;
+ unless ($FileType =~ /image data/i) { # check for valid file type
+ # maybe check for JPEG and PNG explicitly?
+ #print $FileType;
+ $progress += ($increment * $NumOfIncrements);
+ print PROGRESS "$progress\n";
+ next;
+ }
+ if ($SetDirDate == 0) { # we are looking at the first image
+ $SetDirDate = (stat $arg)[9]; # get mtime
+ if ($SetDirDate > 0) {
+ # (can also return -1 if strange mtime, don't use this
+ # time stamp then)
+ # set mtime of gallery directory to the one of the first
+ # image file:
+ $reply .= `touch -r "$arg" $dir`;
+ print "Setting mtime of $dir to $SetDirDate\n";
+ } else {
+ # give it another try the next time around:
+ $SetDirDate = 0;
+ }
+ }
+ # thumbnails
+ $reply .= `$scaler -geometry 120x120 -quality 60 "$arg" $dir/thumbs/img-$i\.jpg 2>&1`;
+ $progress += $increment;
+ print PROGRESS "$progress\n";
+ # LQ size
+ $reply .= `$scaler -geometry 640x480 -quality 75 "$arg" $dir/lq/img-$i\.jpg 2>&1`;
+ $progress += $increment;
+ print PROGRESS "$progress\n";
+ # MQ size
+ $reply .= `$scaler -geometry 800x600 -quality 75 "$arg" $dir/mq/img-$i\.jpg 2>&1`;
+ $progress += $increment;
+ print PROGRESS "$progress\n";
+ # HQ size (just copy the original)
+ $reply .= `cp "$arg" $dir/hq/img-$i\.jpg 2>&1`;
+ $progress += $increment;
+ print PROGRESS "$progress\n";
+ # comment
+ open(COMM, ">$dir/comments/$i\.txt");
+ print(COMM "<span>image $i</span>\n");
+ close(COMM);
+ $progress += $increment;
+ print PROGRESS "$progress\n";
+ $i++;
+
+ # an error occurred:
+ if ($reply ne "") {
+ print PROGRESS "100\n";
+ close(PROGRESS);
+ exec("zenity --error --title \"\" --text \"Fatal Error\n\n$reply\"");
+ die("Error while scaling");
+ }
+}
+print PROGRESS "100\n";
+close(PROGRESS);
+
+# ------------------------------------------------------------------------
+open(PROGRESS, "| zenity --progress --pulsate --auto-close \\
+--title \"\" --text \"Zipping images\"");
+PROGRESS->autoflush(1);
+print PROGRESS "1";
+system("zip -R $dir/zip/mq.zip $dir/mq/*.jpg");
+system("zip -R $dir/zip/hq.zip $dir/hq/*.jpg");
+print PROGRESS "100\n";
+close(PROGRESS);
diff --git a/convert/contrib/webgallery.pl b/convert/contrib/webgallery.pl
new file mode 100755
index 0000000..d8a7ce7
--- /dev/null
+++ b/convert/contrib/webgallery.pl
@@ -0,0 +1,154 @@
+#!/usr/bin/perl -w
+#
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# #
+# Web Gallery script for Nautilus - Depends on "original" web backend #
+# for displaying the gallery. #
+# #
+# Written in perl because I suck more with sh scripting. #
+# Also needs gnome-utils for gdialog. #
+# #
+# Hacked together by Tuomas Kuosmanen <tigert@ximian.com> #
+# Tweaked to use NetPBM by Jakub Steiner <jimmac@ximian.com> #
+# Released under the GPL license. #
+# #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+die "No files to convert" unless @ARGV;
+
+use Gtk;
+init Gtk;
+
+@files = sort(@ARGV);
+
+my $dir = "web-gallery";
+
+sub make_dirs {
+
+ unless (-d "$dir") {
+ mkdir("./$dir") or die "Aargh.\n";
+ }
+ unless (-d "$dir/thumbs") {
+ mkdir("./$dir/thumbs") or die "Aargh.\n";
+ }
+ unless (-d "$dir/lq") {
+ mkdir("./$dir/lq") or die "Aargh.\n";
+ }
+ unless (-d "$dir/mq") {
+ mkdir("./$dir/mq") or die "Aargh.\n";
+ }
+ unless (-d "$dir/hq") {
+ mkdir("./$dir/hq") or die "Aargh.\n";
+ }
+ unless (-d "$dir/comments") {
+ mkdir("./$dir/comments") or die "Aargh.\n";
+ }
+}
+
+sub make_gallery_fake {
+ my $foo = shift;
+ print ("PARAM: $foo\n");
+ sleep 1;
+}
+
+
+$w = new Gtk::Window;
+$label = new Gtk::Label(' Web Gallery generation in progress... ');
+$pbar = new Gtk::ProgressBar;
+$vb = new Gtk::VBox(0, 0);
+$b = new Gtk::Button('Cancel');
+$w->add($vb);
+$vb->add($label);
+$vb->add($pbar);
+$vb->add($b);
+
+$b->signal_connect('clicked', sub {Gtk->exit(0)});
+$w->signal_connect('destroy', sub {Gtk->exit(0)});
+
+$w->show_all();
+$i = 0;
+$pbar->update($i);
+
+@files = sort(@ARGV);
+$num_of_files = scalar @files;
+$increment = 1 / ( 5 * $num_of_files );
+$i = 1;
+$progress = 0;
+
+make_dirs();
+#read nautilus metafile if available
+open(METAXML, "./.nautilus-metafile.xml") or print("no metafile");
+@meta_xml = <METAXML>;
+close(METAXML);
+
+
+foreach $file (@files) {
+
+ $pbar->update($progress);
+ $pbar->set_show_text(1);
+ $pbar->set_format_string("$i of $num_of_files");
+ $progress += $increment;
+ while (Gtk->events_pending) {
+ Gtk->main_iteration;
+ }
+
+ # do the stuff, collect error messages to a variable.
+ #$reply=`convert -geometry 120x120 -colors 64 -dither $file $dir/thumbs/img-$i\.png 2>&1`;
+ $reply=`convert -geometry 120x120 $file $dir/thumbs/img-$i\.jpg 2>&1`;
+ #$reply =`jpegtopnm $file | pnmscale -xysize 120 120 | ppmquant -floyd 16 | pnmtopng -interlace -compression 9 > $dir/thumbs/img-$i\.png 2>&1`;
+
+ $pbar->update($progress);
+ $progress += $increment;
+ while (Gtk->events_pending) {
+ Gtk->main_iteration;
+ }
+
+ $reply = $reply . `convert -geometry 640x640 $file $dir/lq/img-$i.jpg 2>&1`;
+ #$reply = $reply . `jpegtopnm $file | pnmscale -xysize 640 640 | ppmtojpeg --quality 80 --progressive > $dir/lq/img-$i.jpg 2>&1`;
+
+ $pbar->update($progress);
+ $progress += $increment;
+ while (Gtk->events_pending) {
+ Gtk->main_iteration;
+ }
+
+ $reply = $reply . `convert -geometry 800x800 $file $dir/mq/img-$i.jpg 2>&1`;
+ #$reply = $reply . `jpegtopnm $file | pnmscale -xysize 800 800 | ppmtojpeg --quality 80 --progressive > $dir/mq/img-$i.jpg 2>&1`;
+
+ $pbar->update($progress);
+ $progress += $increment;
+ while (Gtk->events_pending) {
+ Gtk->main_iteration;
+ }
+
+ $reply = $reply . `cp $file $dir/hq/img-$i.jpg 2>&1`;
+
+ $pbar->update($progress);
+ $progress += $increment;
+ while (Gtk->events_pending) {
+ Gtk->main_iteration;
+ }
+
+ # comment
+ open (COMM, ">$dir/comments/$i\.txt");
+ print(COMM "<span>image $i: </span>\n");
+ #check for comments in the metafile
+ #maybe using a proper XML parser would make sense in future
+ foreach $radek (@meta_xml) {
+ chomp($radek);
+ if ($radek =~ m/.*name="([^"]*)".*annotation="([^"]*).*"/) {
+ if ($1 eq $file) {
+ print(COMM "<span>$2</span>\n");
+ }
+ }
+ }
+ close(COMM);
+
+ $i++;
+
+ # print possible error messages
+ if ($reply ne "") {
+ print("There was an error message: $reply\n");
+ }
+}
+
diff --git a/info.txt.sample b/info.txt.sample
new file mode 100644
index 0000000..5a5f0e8
--- /dev/null
+++ b/info.txt.sample
@@ -0,0 +1,6 @@
+name|Sample Gallery
+description|This is a short description
+author|Joe Doe
+date|18.01.2005
+restricted_user|cl3v3r
+restricted_password|44S
diff --git a/www/favicon.ico b/www/favicon.ico
new file mode 100644
index 0000000..6d93ef7
--- /dev/null
+++ b/www/favicon.ico
Binary files differ
diff --git a/www/inc/comment.inc.php b/www/inc/comment.inc.php
new file mode 100644
index 0000000..627a747
--- /dev/null
+++ b/www/inc/comment.inc.php
@@ -0,0 +1,33 @@
+<?php
+/*
+ * The HTML contained in this file is valid XHTML 1.0 Strict
+ */
+
+echo "<div id=\"comment_block\">\n";
+
+?>
+ <?php echo"<div id=\"showhideform\"><strong> " . __('Post a Comment') . "</strong>:"; ?>
+ <span class="comment_toggle">
+ [&nbsp;
+ <?php echo"<a href=\"javascript:toggle_comment()\"><span id=\"showlink\">" . __('Show Form') . "</span><span id=\"hidelink\" style=\"display:none;\">" . __('Hide Form') . "</span></a>"; ?>
+ &nbsp;]
+ </span>
+ </div>
+
+ <div id="comment_form" style="display: none;">
+<?php
+$page->form_start($ThisUrl, "post", NULL);
+$page->input("text", "commentname", $username, __('Name:'), NULL, _('Enter your name.') );
+$page->input("checkbox", "savecommentname", "1", __('Remember Name:'), "yes",
+ __('Should the browser remember your name?'));
+$magic_number = random_digits(4);
+//temporary. should generate an image instead
+echo "<div class=\"row\"><div class=\"control\">$magic_number</div></div>\n";
+$page->input("hidden", "commentkolacek", md5($magic_number), NULL, NULL, NULL);
+$page->input("text", "commentspamcheck", "", __('Retype PIN Above:'), NULL, __('Enter the number shown above.'));
+$page->input("textarea", "commentdata", "", __('Comment') . " :" , NULL, __('Allowed HTML tags: a,b,i,ul,li,blockquote,br.') );
+$page->input("submit", "", __('Send') , NULL, NULL, NULL);
+$page->form_end();
+?>
+ </div>
+</div>
diff --git a/www/inc/global.js b/www/inc/global.js
new file mode 100644
index 0000000..ff8ec21
--- /dev/null
+++ b/www/inc/global.js
@@ -0,0 +1,79 @@
+function setActiveStyleSheet(title) {
+ var i, a, main;
+ for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1
+ && a.getAttribute("title")) {
+ a.disabled = true;
+ if(a.getAttribute("title") == title) a.disabled = false;
+ }
+ }
+ if (title!="") {
+ writeCookie(title);
+ }
+}
+
+function getInactiveStyleSheet() {
+ var i, a;
+ for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && a.disabled) return a.getAttribute("title");
+ }
+ return null;
+}
+
+function readCookie() {
+ var theme = document.cookie;
+ var theme = unescape(theme);
+
+ return theme;
+}
+
+function writeCookie(theme) {
+ //FIXME - set expires
+ var original_cookie = "theme=" + escape(theme);
+ document.cookie = original_cookie;
+}
+
+function checkForTheme() {
+ var theme = readCookie();
+ //alert(theme);
+ if (theme=="undefined") {
+ var theme = "none";
+ }
+}
+
+// what a kludge. Luckily I found a clean way
+function alignForGorilla() {
+var image_preview = document.getElementById('preview');
+image_preview.style.marginLeft = "-" + (image_preview.width/2 + 16) + "px";
+}
+
+// to hide and show the comment block
+// inspired by www.wikipedia.org
+function toggle_comment() {
+ var comment_form = document.getElementById('comment_form');
+ var showlink=document.getElementById('showlink');
+ var hidelink=document.getElementById('hidelink');
+ if(comment_form.style.display == 'none') {
+ comment_was = comment_form.style.display;
+ comment_form.style.display = '';
+ hidelink.style.display='';
+ showlink.style.display='none';
+ } else {
+ comment_form.style.display = comment_was;
+ hidelink.style.display='none';
+ showlink.style.display='';
+ }
+}
+
+function toggle_exif() {
+ var exif_table = document.getElementById('exif_table');
+ var exif_line = document.getElementById('exif_line');
+ if(exif_table.style.display == 'none') {
+ exif_table.style.display = 'block';
+ exif_line.style.display = 'none';
+ } else {
+ exif_table.style.display = 'none';
+ exif_line.style.display = 'block';
+ }
+}
+
diff --git a/www/inc/l10nget.inc.php b/www/inc/l10nget.inc.php
new file mode 100644
index 0000000..f04b18c
--- /dev/null
+++ b/www/inc/l10nget.inc.php
@@ -0,0 +1,17 @@
+<?php
+
+function get_lang_from_agent($accept) {
+
+ $acceptarr = explode("," , $accept);
+ foreach ($acceptarr as $lang) {
+ //get rid of trailing garbage
+ $lang = ereg_replace("^(.*)\;.*","\\1", $lang);
+ if (is_dir("l10n/$lang")) {
+ return $lang;
+ exit;
+ }
+ //no translation for accept language
+ return "en";
+ }
+}
+?>
diff --git a/www/inc/styles/classic/bcg.png b/www/inc/styles/classic/bcg.png
new file mode 100644
index 0000000..d4f7ac8
--- /dev/null
+++ b/www/inc/styles/classic/bcg.png
Binary files differ
diff --git a/www/inc/styles/classic/classic.css b/www/inc/styles/classic/classic.css
new file mode 100644
index 0000000..da56645
--- /dev/null
+++ b/www/inc/styles/classic/classic.css
@@ -0,0 +1,338 @@
+/* Default stylesheet
+ ==================
+
+ stylesheet & artwork
+ (c) 2003 Jakub 'jimmac' Steiner
+
+*/
+
+body {
+ background-color: #f6f6f6;
+ background: url("bcg.png") top left repeat;
+ /*
+ margin: 0px 50px 0px 50px;
+ width: auto;
+ */
+ margin: auto;
+ width: 770px;
+ font-family: "Bitstream Vera Sans", sans-serif;
+ font-size: 10pt;
+}
+
+img {
+ border: 0px;
+}
+
+.bigthumbnails img {
+ width: 120px;
+ height: 80px;
+}
+
+.bigthumbnails a.portrait img {
+ width: 52px;
+}
+
+a:link {
+ color: #909090;
+}
+
+a:visited {
+ color: #808080;
+}
+
+a:hover {
+ color: #f0f0f0;
+ background-color: #707070;
+}
+
+
+h1.title {
+ background-color: #a7a9a6;
+ font-size: 16pt;
+ color: #808080;
+ width: 100%;
+ margin-bottom: 0px;
+ padding: 5px;
+
+}
+
+.title a {
+ display: block;
+ position:relative;
+ width:100%;
+ height:48px;
+ margin:0; padding:0;
+}
+
+.title a:hover {
+ border: 0px;
+ background-color: #a7a9a6;
+}
+
+.title a span {
+ /* this overlays text below with an image */
+ display: block;
+ position:absolute; left:0; top:0; z-index:1;
+ width:338px; height:48px;
+ margin:0; padding:0;
+ background-image: url("title.png");
+ background-attachment: top left;
+ background-repeat: no-repeat;
+}
+
+div.thumbroll {
+ margin: 10px 0px 4px 0px;
+ min-height: 29px;
+}
+
+p.bigthumbnails {
+ text-align: center;
+}
+
+p.bigthumbnails a {
+ padding: 0px;
+ margin: 0px;
+ border: 0px;
+
+}
+/*
+p.bigthumbnails a:link img {
+ border: 1px solid white;
+}
+
+p.bigthumbnails a:hover img {
+ border: 1px solid #909090;
+
+}
+*/
+
+a#minus,a#plus {
+ display: block;
+ position: relative;
+ float: left;
+ width:24px;
+ height:24px;
+ margin:0px; padding:0px;
+}
+
+a#minus {
+ background: url("minus.png") top left no-repeat;
+}
+
+a#plus {
+ background: url("plus.png") top left no-repeat;
+}
+
+a#zip {
+ /* display: block; */
+ position: relative;
+ width:16px;
+ height:16px;
+ margin:0px; padding:0px;
+ font-size: 9px;
+}
+
+a#zip span {
+ background: url("zip.png") top left no-repeat;
+ position:absolute; left:0; top:0; z-index:1;
+ width:16px; height:16px;
+}
+
+div.navigation {
+ background-color: #f6f6f6;
+ width: 100%;
+ padding: 5px;
+ font-size: 10px;
+}
+
+div.navigation a {
+ color: #a0a0a0;
+ font-weight: bold;
+}
+
+div.footer {
+ font-size: 9px;
+ width: 100%;
+ margin-top: 40px;
+ padding: 5px 5px 20px 5px;
+ clear: both;
+ border-top: 1px dotted #909090;
+}
+
+div.year {
+ font-size: 11pt;
+ float: left;
+ margin: 10px;
+}
+
+div.month {
+ margin: 0px 0px 0px 2em;
+ padding: 2px;
+}
+
+div.month h4 {
+ margin: 0px 0px 3px 0px;
+}
+
+.author, .date, .desc {
+ display: block;
+}
+
+.date {
+ color: gray;
+}
+
+.date:before {
+ content: ">>";
+}
+
+/* ul won't work on safari with float: left */
+div.month p {
+ margin: 2px;
+ padding: 0px 0px 0px 6px;
+ list-style: none;
+ font-size: 10px;
+}
+
+div.month p.restricted {
+ background: transparent url("restricted.png") top left no-repeat;
+ padding: 0px 0px 3px 16px;
+}
+
+div#image {
+ /* width: 800px; */
+ display: block;
+ position: relative;
+ clear: both;
+ margin-left: auto;
+ margin-right: auto;
+ /* border: 1px solid black; */
+ min-height: 480px; /* only works in gecko :/ */
+}
+
+img#preview {
+ position: relative;
+ float: left;
+ margin-right: 8px;
+}
+
+div.comment {
+ margin: 2em 0px;
+ color: #808080;
+ font-size: 9px;
+}
+
+div.comment span {
+ color: black;
+ font-weight: bold;
+ font-size: 10px;
+}
+
+div.navbuttons {
+ position: absolute;
+ top: 580px; left: 50%;
+ margin-left: 260px; /* 260px to the right of the center of the page */
+ width: 64px; height: 32px;
+ z-index: 1;
+}
+
+div.navbuttonsshell {
+ position: relative;
+ width: 100%;
+ margin: 2px;
+}
+
+div.navbuttonsshell a#previcon {
+ display: block;
+ position: absolute;
+ width: 24px; height: 24px;
+ margin: 2px; padding: 0;
+ top: 0px;
+ left: 0px;
+ color: #f6f6f6;
+ font-size: 30px; /* make unreadable */
+ text-indent: 2em; /* push it off screen, since khtml doesn't do 0px fonts */
+ overflow: hidden; /* hide the oveflow text */
+ background: url("left.png") top left no-repeat; /* have a pixmap */
+}
+
+div.navbuttonsshell a#nexticon {
+ display: block;
+ position: absolute;
+ width: 24px; height: 24px;
+ margin: 2px 4px 2px auto; padding: 0;
+ right: 4px; top: 0px;
+ color: #f6f6f6;
+ font-size: 30px; /* make unreadable */
+ text-indent: 2em; /* push it off screen, since khtml doesn't do 0px fonts */
+ overflow: hidden; /* hide the overflow text */
+ background: url("right.png") top left no-repeat; /* have a pixmap */
+}
+
+
+div.prevthumb,div.nextthumb {
+ margin-bottom: 1em;
+}
+
+div.nextthumb a,div.prevthumb a {
+ text-decoration: none;
+}
+
+div#mqhq {
+ margin: 2px 2px 4px 0px;
+ height: 32px;
+}
+
+div#mqhq a {
+ display: block;
+ border: 1px solid #909090;
+ padding: 2px;
+ font-size: 10px;
+ background-color: #f6f6f6;
+ color: black;
+ float: left;
+ width: 48px;
+ text-align: center;
+ margin: 2px;
+ -moz-border-radius: 2px;
+}
+
+div#mqhq a:hover {
+ background-color: #909090;
+ border: 1px solid black;
+ color: white;
+}
+
+div.stylenavbar {
+ position:relative;
+ font-size: 9px;
+ margin: 4px 0px;
+ padding-bottom: 0px;
+}
+
+/* Formatting of the user comments */
+/*
+div.commententry {
+ border: 1px dotted pink;
+}
+*/
+
+#comment_block .comment_toggle {
+ font-size: smaller;
+}
+
+div.commentdata {
+ margin-bottom: 10px;
+}
+
+div.name {
+ border-bottom: 1px dotted grey;
+ font-size: 10pt;
+ margin-bottom: 2px;
+}
+
+textarea, input {
+ font-family: "Bitstream Vera Sans", sans-serif;
+ font-size: 10pt;
+ -moz-border-radius: 3px;
+}
diff --git a/www/inc/styles/classic/classic.css.net b/www/inc/styles/classic/classic.css.net
new file mode 100644
index 0000000..c8a0f3f
--- /dev/null
+++ b/www/inc/styles/classic/classic.css.net
@@ -0,0 +1,386 @@
+/* Default stylesheet
+ ==================
+
+ stylesheet & artwork
+ (c) 2003 Jakub 'jimmac' Steiner
+
+*/
+
+body {
+ background-color: #f6f6f6;
+ background: url("bcg.png") top left repeat;
+ /*
+ margin: 0px 50px 0px 50px;
+ width: auto;
+ */
+ margin: auto;
+ width: 770px;
+ font-family: "Bitstream Vera Sans", sans-serif;
+ font-size: 10pt;
+}
+
+img {
+ border: 0px;
+ width: 120px;
+ height: 80px;
+}
+
+img#preview {
+ width: inherit;
+ height: inherit;
+}
+
+a.portrait img {
+ width: 58px;
+}
+
+a:link {
+ color: #909090;
+}
+
+a:visited {
+ color: #808080;
+}
+
+a:hover {
+ color: #f0f0f0;
+ background-color: #707070;
+}
+
+a.hascomments {
+ background-image: url('hascomments.png');
+ background-position: bottom right;
+ background-repeat: no-repeat;
+}
+
+.month p>a {
+ display: block;
+}
+
+.author, .description, .date {
+ display: block;
+ padding: 2px 0px 1em 4px;
+}
+
+.date {
+ color: #666;
+}
+
+.date:before {
+ content: ">> ";
+}
+
+h1.title {
+ background-color: #a7a9a6;
+ font-size: 16pt;
+ color: #808080;
+ width: 100%;
+ margin-bottom: 0px;
+ padding: 5px;
+
+}
+
+.title a {
+ display: block;
+ position:relative;
+ width:100%;
+ height:48px;
+ margin:0; padding:0;
+}
+
+.title a:hover {
+ border: 0px;
+ background-color: #a7a9a6;
+}
+
+.title a span {
+ /* this overlays text below with an image */
+ display: block;
+ position:absolute; left:0; top:0; z-index:1;
+ width:338px; height:48px;
+ margin:0; padding:0;
+ background-image: url("title.png");
+ background-position: top left;
+ background-repeat: no-repeat;
+}
+
+div.thumbroll {
+ margin: 10px 0px 4px 0px;
+ min-height: 29px;
+}
+
+p.bigthumbnails {
+ text-align: center;
+}
+
+p.bigthumbnails a {
+ display: block;
+ float: left;
+ padding: 0px 0px 18px 0px;
+ margin: 4px;
+ border: 0px;
+}
+
+p {
+ clear: both;
+}
+/*
+p.bigthumbnails a:link img {
+ border: 1px solid white;
+}
+
+p.bigthumbnails a:hover img {
+ border: 1px solid #909090;
+
+}
+*/
+
+a#minus,a#plus {
+ display: block;
+ position: relative;
+ float: left;
+ width:24px;
+ height:24px;
+ margin:0px; padding:0px;
+}
+
+a#minus {
+ background: url("minus.png") top left no-repeat;
+}
+
+a#plus {
+ background: url("plus.png") top left no-repeat;
+}
+
+a#zip {
+ /* display: block; */
+ position: relative;
+ width:16px;
+ height:16px;
+ margin:0px; padding:0px;
+ font-size: 9px;
+}
+
+a#zip span {
+ background: url("zip.png") top left no-repeat;
+ position:absolute; left:0; top:0; z-index:1;
+ width:16px; height:16px;
+}
+
+div.navigation {
+ background-color: #f6f6f6;
+ width: 100%;
+ padding: 5px;
+ font-size: 10px;
+}
+
+div.navigation a {
+ color: #a0a0a0;
+ font-weight: bold;
+}
+
+div.footer {
+ font-size: 9px;
+ width: 100%;
+ margin-top: 40px;
+ padding: 5px 5px 20px 5px;
+ clear: both;
+ border-top: 1px dotted #909090;
+}
+
+div.year {
+ font-size: 11pt;
+ float: left;
+ margin: 10px;
+}
+
+div.month {
+ margin: 0px 0px 0px 2em;
+ padding: 2px;
+}
+
+div.month h4 {
+ margin: 0px 0px 3px 0px;
+}
+
+/* ul won't work on safari with float: left */
+div.month p {
+ margin: 2px;
+ padding: 0px 0px 0px 6px;
+ list-style: none;
+ font-size: 10px;
+}
+
+div.month p.restricted {
+ background: transparent url("restricted.png") top left no-repeat;
+ padding: 0px 0px 3px 16px;
+}
+
+div#image {
+ /* width: 800px; */
+ display: block;
+ position: relative;
+ clear: both;
+ margin-left: auto;
+ margin-right: auto;
+ /* border: 1px solid black; */
+ min-height: 480px; /* only works in gecko :/ */
+}
+
+img#preview {
+ position: relative;
+ float: left;
+ margin-right: 8px;
+}
+
+div.comment {
+ margin: 2em 0px;
+ color: #808080;
+ font-size: 10pt;
+}
+
+div.comment span {
+ color: black;
+ font-weight: bold;
+}
+
+div.navbuttons {
+ position: absolute;
+ top: 580px; left: 50%;
+ margin-left: 260px; /* 260px to the right of the center of the page */
+ width: 64px; height: 32px;
+ z-index: 1;
+}
+
+div.navbuttonsshell {
+ position: relative;
+ width: 100%;
+ margin: 2px;
+}
+
+div.navbuttonsshell a#previcon {
+ display: block;
+ position: absolute;
+ width: 24px; height: 24px;
+ margin: 2px; padding: 0;
+ top: 0px;
+ left: 0px;
+ color: #f6f6f6;
+ font-size: 30px; /* make unreadable */
+ text-indent: 2em; /* push it off screen, since khtml doesn't do 0px fonts */
+ overflow: hidden; /* hide the oveflow text */
+ background: url("left.png") top left no-repeat; /* have a pixmap */
+}
+
+div.navbuttonsshell a#nexticon {
+ display: block;
+ position: absolute;
+ width: 24px; height: 24px;
+ margin: 2px 4px 2px auto; padding: 0;
+ right: 4px; top: 0px;
+ color: #f6f6f6;
+ font-size: 30px; /* make unreadable */
+ text-indent: 2em; /* push it off screen, since khtml doesn't do 0px fonts */
+ overflow: hidden; /* hide the overflow text */
+ background: url("right.png") top left no-repeat; /* have a pixmap */
+}
+
+
+div.prevthumb,div.nextthumb {
+ margin-bottom: 1em;
+}
+
+div.nextthumb a,div.prevthumb a {
+ text-decoration: none;
+ background-color: transparent;
+}
+
+div.nextthumb a:hover,div.prevthumb a:hover {
+ color: black;
+}
+
+div#mqhq {
+ margin: 2px 2px 4px 0px;
+ height: 32px;
+}
+
+div#mqhq a {
+ display: block;
+ border: 1px solid #909090;
+ padding: 2px;
+ font-size: 10px;
+ background-color: #f6f6f6;
+ color: black;
+ float: left;
+ width: 48px;
+ text-align: center;
+ margin: 2px;
+}
+
+div#mqhq a:hover {
+ background-color: #909090;
+ border: 1px solid black;
+ color: white;
+}
+
+div.stylenavbar {
+ position:relative;
+ font-size: 9px;
+ margin: 4px 0px;
+ padding-bottom: 0px;
+}
+
+/* Formatting of the user comments */
+
+div#comment_block {
+ margin-bottom: 40px;
+}
+
+div#comment_form {
+ margin-top: 1em;
+}
+
+div.commentdata {
+ padding-left: 1em;
+ color: black;
+ margin-bottom: 2em;
+}
+
+div.user_comment {
+ background-color: #f6f6f6;
+ padding: 4px;
+}
+
+div.name {
+ color: gray;
+ font-size: 9pt;
+ margin-bottom: 2px;
+}
+
+textarea, input {
+ font-family: "Bitstream Vera Sans", sans-serif;
+ font-size: 10pt;
+}
+
+input[type="text"],textarea {
+ width: 300px;
+}
+
+div.row {
+ margin-bottom: 1em;
+ }
+
+div.label {
+ margin-bottom: 4px;
+}
+
+div.label a {
+ text-decoration: none;
+ cursor: help;
+ color: black;
+ border-bottom: 1px dotted gray;
+}
+
+div.label a:hover {
+ background-color: transparent;
+}
diff --git a/www/inc/styles/classic/hascomments.png b/www/inc/styles/classic/hascomments.png
new file mode 100644
index 0000000..957a459
--- /dev/null
+++ b/www/inc/styles/classic/hascomments.png
Binary files differ
diff --git a/www/inc/styles/classic/left-16.png b/www/inc/styles/classic/left-16.png
new file mode 100644
index 0000000..625a1ab
--- /dev/null
+++ b/www/inc/styles/classic/left-16.png
Binary files differ
diff --git a/www/inc/styles/classic/left.png b/www/inc/styles/classic/left.png
new file mode 100644
index 0000000..bd5607c
--- /dev/null
+++ b/www/inc/styles/classic/left.png
Binary files differ
diff --git a/www/inc/styles/classic/logo-mini.png b/www/inc/styles/classic/logo-mini.png
new file mode 100644
index 0000000..8949154
--- /dev/null
+++ b/www/inc/styles/classic/logo-mini.png
Binary files differ
diff --git a/www/inc/styles/classic/minus.png b/www/inc/styles/classic/minus.png
new file mode 100644
index 0000000..19eaef3
--- /dev/null
+++ b/www/inc/styles/classic/minus.png
Binary files differ
diff --git a/www/inc/styles/classic/plus.png b/www/inc/styles/classic/plus.png
new file mode 100644
index 0000000..062d005
--- /dev/null
+++ b/www/inc/styles/classic/plus.png
Binary files differ
diff --git a/www/inc/styles/classic/restricted.png b/www/inc/styles/classic/restricted.png
new file mode 100644
index 0000000..33091eb
--- /dev/null
+++ b/www/inc/styles/classic/restricted.png
Binary files differ
diff --git a/www/inc/styles/classic/right-16.png b/www/inc/styles/classic/right-16.png
new file mode 100644
index 0000000..42e783f
--- /dev/null
+++ b/www/inc/styles/classic/right-16.png
Binary files differ
diff --git a/www/inc/styles/classic/right.png b/www/inc/styles/classic/right.png
new file mode 100644
index 0000000..bc5bcc5
--- /dev/null
+++ b/www/inc/styles/classic/right.png
Binary files differ
diff --git a/www/inc/styles/classic/title.png b/www/inc/styles/classic/title.png
new file mode 100644
index 0000000..8a6ad6b
--- /dev/null
+++ b/www/inc/styles/classic/title.png
Binary files differ
diff --git a/www/inc/styles/classic/zip.png b/www/inc/styles/classic/zip.png
new file mode 100644
index 0000000..0bc44ab
--- /dev/null
+++ b/www/inc/styles/classic/zip.png
Binary files differ
diff --git a/www/inc/styles/dark/bcg.png b/www/inc/styles/dark/bcg.png
new file mode 100644
index 0000000..d4f7ac8
--- /dev/null
+++ b/www/inc/styles/dark/bcg.png
Binary files differ
diff --git a/www/inc/styles/dark/dark.css b/www/inc/styles/dark/dark.css
new file mode 100644
index 0000000..78f82eb
--- /dev/null
+++ b/www/inc/styles/dark/dark.css
@@ -0,0 +1,553 @@
+/* Default stylesheet
+ ==================
+
+ The default stylesheet needed a remake. Photos
+ simply look better on dark background. The color
+ scheme is derived form the Novell palette.
+
+ Should not crash Internet Explorer anymore.
+
+ stylesheet & artwork
+ (c) 2004 Jakub 'jimmac' Steiner
+
+*/
+
+body {
+ /*
+ margin: 0px 50px 0px 50px;
+ width: auto;
+ */
+ margin: 20px 20px 20px 100px;
+ font-family: Georgia, "Bitstream Vera Sans", sans-serif;
+ font-size: 13pt;
+ color: #eeeeec;
+ background: #2e3436 url('title.png') top left no-repeat fixed;
+}
+
+img {
+ border: 0px;
+}
+
+a:link {
+ color: #ffb02f;
+}
+
+a:visited {
+ color: #e88000;
+}
+
+a:hover {
+ color: #ffcc7a;
+}
+
+
+h1.title {
+ display: none;
+}
+
+/* mini thumbnails */
+
+div.thumbroll {
+ margin: 10px 0px 4px 0px;
+ min-height: 29px;
+}
+
+div.thumbroll img {
+ border: 1px solid #6b6c69;
+ -moz-border-radius: 3px;
+ Filter: Gray; /* IE only */
+}
+
+div.thumbroll a:hover img {
+ border: 1px solid #ffb02f;
+ Filter: none;
+}
+
+a#minus,a#plus {
+ display: block;
+ position: relative;
+ float: left;
+ width:16px;
+ height:16px;
+ margin:0px; padding:0px;
+}
+
+a#minus {
+ background: url("minus-inactive.png") top left no-repeat;
+}
+
+a#minus:hover {
+ background: url("minus.png") top left no-repeat;
+}
+
+a#plus {
+ background: url("plus-inactive.png") top left no-repeat;
+}
+
+a#plus:hover {
+ background: url("plus.png") top left no-repeat;
+}
+
+a#zip {
+ display: inline-block;
+ position: relative;
+ width:16px;
+ height:16px;
+ margin:0px; padding:0px;
+ font-size: 9px;
+ color: #2e3436;
+}
+
+a#zip span {
+ background: url("zip-inactive.png") top left no-repeat;
+ position:absolute; left:0; top:0; z-index:1;
+ width:16px; height:16px;
+}
+
+a#zip:hover span {
+ background: url("zip.png") top left no-repeat;
+}
+
+.month p {
+ display: block;
+ width: 200px;
+}
+
+p span.desc, p span.author {
+ font-size: 10px;
+ margin-left: 5px;
+}
+
+.month p>a:after, p span.desc:after, p span.author:after {
+ content: ", ";
+}
+
+p span.date {
+ font-size: 9px;
+ margin-left: 5px;
+ color: #777;
+}
+
+/* in the thumbnail page */
+
+div#info {
+ margin-left: 6px;
+ padding-top: 6px;
+ clear: both;
+ font-size: 11px;
+}
+
+div#info span.key {
+ font-weight: bold;
+}
+
+p {
+ clear: both;
+}
+
+p.bigthumbnails {
+ text-align: left;
+}
+
+p.bigthumbnails a {
+ display: block;
+ float: left;
+ width: 130px;
+ height: 80px;
+ text-align: center;
+ padding: 30px 4px;
+ background-color: #232729;
+ margin: 4px;
+ border: 1px solid #6b6c69;
+ -moz-border-radius: 3px;
+ /* Neat, but too slow
+ opacity: .5;
+ */
+ Filter: Gray; /* IE - I wish we had that in gecko */
+}
+
+p.bigthumbnails a.portrait {
+ padding: 10px 29px;
+ width: 80px;
+ height: 120px; /* why the extra pixels? */
+}
+
+p.bigthumbnails img {
+ /* landscapes */
+ display: inline;
+ width: 120px;
+ height: 80px;
+}
+
+a.portrait img {
+ /* portrait */
+ width: 80px;
+ height: 120px;
+}
+
+p.bigthumbnails a:hover {
+ background-color: #2b2c29;
+ margin: 3px;
+ border: 2px solid #ffb02f;
+ Filter: none; /* IE */
+}
+
+a.hascomments {
+ background: #232729 url('hascomments.png') 95% 95% no-repeat;
+}
+
+div.navigation {
+ margin-top: 20px;
+ background-color: #5b5c59;
+ width: 100%;
+ padding: 5px;
+ font-size: 12px;
+ -moz-border-radius: 3px;
+}
+
+div.navigation a:first-child {
+ padding-left: 24px;
+ background: url('home-inactive.png') top left no-repeat;
+}
+
+div.navigation a:first-child:hover {
+ background: url('home.png') top left no-repeat;
+}
+
+div.footer {
+ font-size: 11px;
+ width: 100%;
+ margin-top: 20px;
+ padding: 5px 5px 20px 5px;
+ clear: both;
+ border-top: 1px dotted #6b6c69;
+ color: #6b6c69;
+}
+
+div.year {
+ color: #6b6c69;
+ font-size: 13pt;
+ float: left;
+ margin: 10px;
+}
+
+div.month {
+ color: #babdb6;
+ margin: 0px 0px 0px 2em;
+ padding: 2px;
+}
+
+div.month h4 {
+ margin: 10px 0px 5px 0px;
+}
+
+/* ul won't work on safari with float: left */
+div.month p {
+ margin: 2px;
+ padding: 4px 4px 6px 6px;
+ list-style: none;
+ font-size: 12px;
+ border: 1px solid #444;
+ -moz-border-radius: 5px;
+}
+
+div.month p.restricted>a {
+ background: transparent url("restricted-inactive.png") top left no-repeat;
+ padding: 0px 0px 3px 14px;
+}
+
+
+div.month p.restricted>a:hover {
+ background: transparent url("restricted.png") top left no-repeat;
+}
+
+div#image {
+ /* width: 800px; */
+ display: block;
+ position: relative;
+ clear: both;
+}
+
+img#preview {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ bottom: 0px;
+ border: 10px solid #232729;
+ background-color: #6b6c69;
+ padding: 1px;
+ -moz-border-radius: 7px;
+ left: 0px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+* html img#preview { /* should only match on IE; how pathetic */
+ margin-left: -320px;
+ left: 50%;
+}
+
+div.comment {
+ margin: 10px 0px 6px 0px;
+ color: #babdb6;
+ font-size: 11pt;
+ /* max-width: 50em; */
+}
+
+div.comment span {
+ color: #6b6c69;
+ font-weight: bold;
+}
+
+div#log {
+ margin: 4px 0px 30px 0px;
+ font-size: 9pt;
+ color: #6b6c69;
+}
+
+div.navbuttons {
+ display: none;
+}
+
+div.prevthumb {
+ position: absolute;
+ margin-bottom: 1em;
+ font-size: 10px;
+ top: top;
+ left: 0px;
+ text-align: right;
+ padding: 4px;
+ /* background-color: #2e3436; */
+ background-color: #232729;
+ -moz-border-radius: 5px;
+ opacity: .7; /* gecko, khtml */
+ filter: alpha(opacity=70); /* IE */
+}
+
+div.nextthumb {
+ position: absolute;
+ margin-bottom: 1em;
+ font-size: 10px;
+ right: 0px;
+ top: top;
+ margin-left: auto;
+ padding: 4px;
+ /* background-color: #2e3436; */
+ background-color: #232729;
+ -moz-border-radius: 5px;
+ opacity: .7; /* gecko, khtml */
+ filter: alpha(opacity=70); /* IE */
+}
+
+div.nextthumb img, div.prevthumb img {
+ margin: 1px;
+ border: 1px solid #6b6c69;
+ -moz-border-radius: 3px;
+}
+
+div.prevthumb a {
+ display: block;
+ text-decoration: none;
+ background: transparent url('left-inactive.png') bottom left no-repeat;
+ padding: 2px;
+}
+
+div.nextthumb a {
+ display: block;
+ text-decoration: none;
+ background: transparent url('right-inactive.png') bottom right no-repeat;
+ padding: 2px;
+}
+
+div.prevthumb a:hover {
+ background: transparent url('left.png') bottom left no-repeat;
+}
+
+div.nextthumb a:hover {
+ background: transparent url('right.png') bottom right no-repeat;
+}
+
+div.nextthumb a img,div.prevthumb a img {
+ Filter: Gray; /* IE - I wish we had that in gecko */
+}
+
+div.nextthumb a:hover img,div.prevthumb a:hover img {
+ border: 2px solid #ffb02f;
+ margin: 0px;
+ Filter: none;
+}
+
+.exif {
+ color: #555;
+ margin: 20px auto 30px auto;
+ font-size: 8pt;
+ width: auto;
+ text-align: center;
+}
+
+.exif tr td:first-child {
+ color: #babdb6;
+}
+
+.exif td + td {
+ text-align: left;
+}
+
+.exif span {
+ cursor: help;
+ border-bottom: 1px dotted #6b6c69;
+}
+
+.exif a {
+ color: #9f4000;
+}
+
+div#mqhq {
+ margin: 10px 2px 4px 0px;
+ height: 32px;
+}
+
+div#mqhq a {
+ display: block;
+ border: 2px solid #6b6c69;
+ padding: 2px;
+ font-size: 10px;
+ background-color: #ffb02f;
+ color: black;
+ float: left;
+ width: 48px;
+ text-align: center;
+ margin: 2px;
+ -moz-border-radius: 3px;
+}
+
+div#mqhq a:hover {
+ background-color: #2e3436;
+ border: 2px solid #ffb02f;
+ color: #ffb02f;
+}
+
+div.stylenavbar {
+ position:absolute;
+ top: 0px;
+ right: 0px;
+ font-size: 9px;
+ padding: 4px;
+ opacity: 0.4;
+}
+
+p.archives {
+ padding-top: 20px;
+ font-size: 9pt;
+ color: #444;
+}
+
+p.archives a {
+ padding-left: 20px;
+ background: transparent url("zip-inactive.png") top left no-repeat;
+ text-decoration: none;
+ padding-bottom: 2px;
+ border-bottom: 1px dotted #df900f;
+ opacity: 0.5;
+}
+
+p.archives a:hover {
+ background: transparent url("zip.png") top left no-repeat;
+ opacity: 1;
+}
+
+.accesskey {
+ text-decoration: underline;
+}
+/* Formatting of the user comment stuff */
+
+form {
+ padding-bottom: 40px;
+ clear: both;
+}
+
+form #comment_block {
+ clear: both;
+ color: #ccc;
+ font-size: 10px;
+}
+
+#comment_block #showhideform {
+ font-size: x-small;
+ margin-bottom: 10px;
+}
+
+#comment_form {
+ font-size: 9pt;
+ padding-top: 20px;
+ width: 420px;
+ margin-bottom: 20px;
+ -moz-border-radius: 3px;
+}
+
+.row {
+ clear: both !important;
+}
+
+div.label {
+ float: left;
+ width: 110px;
+}
+
+.label a {
+ color: white;
+ cursor: help;
+ border-bottom: 1px dotted #6b6c69;
+ text-decoration: none;
+}
+
+div.control {
+ padding: 4px;
+ float: right;
+ width: 270px;
+}
+
+div.user_comment {
+ clear: both;
+ margin-top: 40px;
+ background-color: #3a3a3a;
+ padding: 10px;
+ -moz-border-radius: 7px;
+}
+
+div.user_comment div.commentdata {
+ margin: 10px;
+ font-size: 10pt;
+ margin-bottom: 20px;
+}
+
+div.user_comment div.name {
+ color: #666;
+ font-size: 9pt;
+ margin-bottom: 2px;
+}
+div.user_comment div.name em {
+ font-weight: bold;
+}
+
+textarea, input[type="text"] {
+ font-family: Georgia, "Bitstream Vera Sans", sans-serif;
+ font-size: 9pt;
+ color: #eeeeec;
+ background-color: #5b5c59;
+ -moz-border-radius: 3px;
+ border: 1px solid #888;
+ width: 100%;
+ padding: 4px;
+}
+input[type="submit"] {
+ -moz-border-radius: 3px;
+ border: 1px solid #888;
+ padding: 4px;
+ background-color: #5b5c59;
+ font-family: Georgia, "Bitstream Vera Sans", sans-serif;
+ font-size: 10pt;
+ color: #eeeeec;
+}
+
+
diff --git a/www/inc/styles/dark/hascomments.png b/www/inc/styles/dark/hascomments.png
new file mode 100644
index 0000000..44729de
--- /dev/null
+++ b/www/inc/styles/dark/hascomments.png
Binary files differ
diff --git a/www/inc/styles/dark/home-inactive.png b/www/inc/styles/dark/home-inactive.png
new file mode 100644
index 0000000..16718e2
--- /dev/null
+++ b/www/inc/styles/dark/home-inactive.png
Binary files differ
diff --git a/www/inc/styles/dark/home.png b/www/inc/styles/dark/home.png
new file mode 100644
index 0000000..d1f87e9
--- /dev/null
+++ b/www/inc/styles/dark/home.png
Binary files differ
diff --git a/www/inc/styles/dark/left-16.png b/www/inc/styles/dark/left-16.png
new file mode 100644
index 0000000..625a1ab
--- /dev/null
+++ b/www/inc/styles/dark/left-16.png
Binary files differ
diff --git a/www/inc/styles/dark/left-inactive.png b/www/inc/styles/dark/left-inactive.png
new file mode 100644
index 0000000..38f572d
--- /dev/null
+++ b/www/inc/styles/dark/left-inactive.png
Binary files differ
diff --git a/www/inc/styles/dark/left.png b/www/inc/styles/dark/left.png
new file mode 100644
index 0000000..62985d9
--- /dev/null
+++ b/www/inc/styles/dark/left.png
Binary files differ
diff --git a/www/inc/styles/dark/logo-mini.png b/www/inc/styles/dark/logo-mini.png
new file mode 100644
index 0000000..8949154
--- /dev/null
+++ b/www/inc/styles/dark/logo-mini.png
Binary files differ
diff --git a/www/inc/styles/dark/minus-inactive.png b/www/inc/styles/dark/minus-inactive.png
new file mode 100644
index 0000000..e29159f
--- /dev/null
+++ b/www/inc/styles/dark/minus-inactive.png
Binary files differ
diff --git a/www/inc/styles/dark/minus.png b/www/inc/styles/dark/minus.png
new file mode 100644
index 0000000..c0f3241
--- /dev/null
+++ b/www/inc/styles/dark/minus.png
Binary files differ
diff --git a/www/inc/styles/dark/plus-inactive.png b/www/inc/styles/dark/plus-inactive.png
new file mode 100644
index 0000000..57a6186
--- /dev/null
+++ b/www/inc/styles/dark/plus-inactive.png
Binary files differ
diff --git a/www/inc/styles/dark/plus.png b/www/inc/styles/dark/plus.png
new file mode 100644
index 0000000..10332ae
--- /dev/null
+++ b/www/inc/styles/dark/plus.png
Binary files differ
diff --git a/www/inc/styles/dark/restricted-inactive.png b/www/inc/styles/dark/restricted-inactive.png
new file mode 100644
index 0000000..b572e84
--- /dev/null
+++ b/www/inc/styles/dark/restricted-inactive.png
Binary files differ
diff --git a/www/inc/styles/dark/restricted.png b/www/inc/styles/dark/restricted.png
new file mode 100644
index 0000000..99bd4d5
--- /dev/null
+++ b/www/inc/styles/dark/restricted.png
Binary files differ
diff --git a/www/inc/styles/dark/right-16.png b/www/inc/styles/dark/right-16.png
new file mode 100644
index 0000000..42e783f
--- /dev/null
+++ b/www/inc/styles/dark/right-16.png
Binary files differ
diff --git a/www/inc/styles/dark/right-inactive.png b/www/inc/styles/dark/right-inactive.png
new file mode 100644
index 0000000..ceb394f
--- /dev/null
+++ b/www/inc/styles/dark/right-inactive.png
Binary files differ
diff --git a/www/inc/styles/dark/right.png b/www/inc/styles/dark/right.png
new file mode 100644
index 0000000..a656dc3
--- /dev/null
+++ b/www/inc/styles/dark/right.png
Binary files differ
diff --git a/www/inc/styles/dark/title.png b/www/inc/styles/dark/title.png
new file mode 100644
index 0000000..45286e0
--- /dev/null
+++ b/www/inc/styles/dark/title.png
Binary files differ
diff --git a/www/inc/styles/dark/zip-inactive.png b/www/inc/styles/dark/zip-inactive.png
new file mode 100644
index 0000000..547dceb
--- /dev/null
+++ b/www/inc/styles/dark/zip-inactive.png
Binary files differ
diff --git a/www/inc/styles/dark/zip.png b/www/inc/styles/dark/zip.png
new file mode 100644
index 0000000..1c3bda1
--- /dev/null
+++ b/www/inc/styles/dark/zip.png
Binary files differ
diff --git a/www/inc/styles/default/home-inactive.png b/www/inc/styles/default/home-inactive.png
new file mode 100644
index 0000000..1d756bd
--- /dev/null
+++ b/www/inc/styles/default/home-inactive.png
Binary files differ
diff --git a/www/inc/styles/default/home.png b/www/inc/styles/default/home.png
new file mode 100644
index 0000000..46fce7c
--- /dev/null
+++ b/www/inc/styles/default/home.png
Binary files differ
diff --git a/www/inc/styles/default/left-inactive.png b/www/inc/styles/default/left-inactive.png
new file mode 100644
index 0000000..38f572d
--- /dev/null
+++ b/www/inc/styles/default/left-inactive.png
Binary files differ
diff --git a/www/inc/styles/default/minus-inactive.png b/www/inc/styles/default/minus-inactive.png
new file mode 100644
index 0000000..e29159f
--- /dev/null
+++ b/www/inc/styles/default/minus-inactive.png
Binary files differ
diff --git a/www/inc/styles/default/plus-inactive.png b/www/inc/styles/default/plus-inactive.png
new file mode 100644
index 0000000..57a6186
--- /dev/null
+++ b/www/inc/styles/default/plus-inactive.png
Binary files differ
diff --git a/www/inc/styles/default/restricted-inactive.png b/www/inc/styles/default/restricted-inactive.png
new file mode 100644
index 0000000..ccd0268
--- /dev/null
+++ b/www/inc/styles/default/restricted-inactive.png
Binary files differ
diff --git a/www/inc/styles/default/restricted.png b/www/inc/styles/default/restricted.png
new file mode 100644
index 0000000..23ad5b5
--- /dev/null
+++ b/www/inc/styles/default/restricted.png
Binary files differ
diff --git a/www/inc/styles/default/right-inactive.png b/www/inc/styles/default/right-inactive.png
new file mode 100644
index 0000000..ceb394f
--- /dev/null
+++ b/www/inc/styles/default/right-inactive.png
Binary files differ
diff --git a/www/inc/styles/default/zip-inactive.png b/www/inc/styles/default/zip-inactive.png
new file mode 100644
index 0000000..547dceb
--- /dev/null
+++ b/www/inc/styles/default/zip-inactive.png
Binary files differ
diff --git a/www/inc/styles/grey/grey.css b/www/inc/styles/grey/grey.css
new file mode 100644
index 0000000..9b23168
--- /dev/null
+++ b/www/inc/styles/grey/grey.css
@@ -0,0 +1,258 @@
+/* Gorilla stylesheet
+ ==================
+
+ stylesheet & artwork
+ (c) 2003 Jakub 'jimmac' Steiner
+
+ bugs/TODO:
+
+ * navbuttons overlap minithubroll if there's many images
+*/
+
+body {
+ background-color: #dedfce;
+ margin: 0px 50px 0px 50px;
+ width: auto;
+ /*
+ margin: auto;
+ width: 780px;
+ */
+ font-family: "Bitstream Vera Sans", sans-serif;
+ font-size: 10pt;
+}
+
+img {
+ border: 0px;
+}
+
+a {
+}
+
+a:hover {
+}
+
+h1.title {
+ background-color: black;
+ font-size: 16pt;
+ color: #808080;
+ width: 100%;
+ margin-bottom: 0px;
+ padding: 5px;
+
+}
+
+.title a {
+ display: block;
+ position:relative;
+ width:100%;
+ height:48px;
+ margin:0; padding:0;
+}
+
+.title a span {
+ /* this overlays text below with an image */
+ display: block;
+ position:absolute; left:0; top:0; z-index:1;
+ width:400px; height:48px;
+ margin:0; padding:0;
+ background-image: url("title.png");
+ background-attachment: top left;
+ background-repeat: no-repeat;
+}
+
+div.thumbroll {
+ position: relative;
+ margin: 10px 0px 4px 0px;
+ min-height: 28px;
+}
+
+a#minus,a#plus {
+ display: block;
+ position: relative;
+ float: left;
+ width:24px;
+ height:24px;
+ margin:0px; padding:0px;
+}
+
+a#minus {
+ background: url("minus.png") top left no-repeat;
+}
+
+a#plus {
+ background: url("plus.png") top left no-repeat;
+}
+
+.navigation {
+ background-color: #505050;
+ width: 100%;
+ padding: 5px;
+ font-size: 10px;
+ clear: both;
+}
+
+.navigation a {
+ color: #a0a0a0;
+ font-weight: bold;
+}
+
+div.footer {
+ font-size: 9px;
+ background-color: #d9dac9;
+ width: 100%;
+ margin-top: 2em;
+ padding: 5px 5px 20px 5px;
+ clear: both;
+}
+
+div.year {
+ font-size: 11pt;
+ float: left;
+ margin: 10px;
+}
+
+div.month {
+ margin: 0px 0px 0px 2em;
+ padding: 2px;
+}
+
+div.month h4 {
+ margin: 0px 0px 3px 0px;
+}
+
+/* ul won't work on safari with float: left */
+div.month p {
+ margin: 2px;
+ padding: 0px 0px 0px 6px;
+ list-style: none;
+ font-size: 10px;
+}
+
+div#image {
+ position: relative;
+ display: block;
+ clear: both;
+ margin-left: auto;
+ margin-right: auto;
+ /* border: 1px solid black; */
+ min-height: 480px; /* only works in gecko :/ */
+ height: 500px;
+}
+
+img#preview {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ bottom: 0px;
+ left: 0px;
+ margin-left: auto;
+ margin-right: auto;
+ /* margin-left: -320px; later fixed by javascript; what a kludge this was */
+}
+
+div.comment {
+ margin: 2em 0px;
+ color: #808080;
+ font-size: 9px;
+}
+
+div.comment span {
+ color: black;
+ font-weight: bold;
+ font-size: 10px;
+}
+
+div.prevthumb,div.nextthumb {
+ position: absolute;
+ margin-bottom: 1em;
+ width: 120px;
+ height: 140px;
+}
+
+div.prevthub {
+ top: 0px;
+ left: 0px;
+ text-align: right;
+}
+
+div.nextthumb {
+ margin-left: auto;
+ right: 0px;
+ top: 0px;
+}
+
+div.nextthumb a,div.prevthumb a {
+ text-decoration: none;
+}
+
+div#mqhq a {
+ display: block;
+ border: 2px solid black;
+ padding: 2px;
+ font-size: 10px;
+ font-weight: bold;
+ background-color: #d1940c;
+ color: black;
+ float: left;
+ width: 48px;
+ text-align: center;
+ margin: 2px;
+
+}
+
+div.navbuttons {
+ position: absolute;
+ top: 140px; left: 50%;
+ margin-left: -50px;
+ width: 64px; height: 32px;
+ z-index: 1;
+}
+
+div.navbuttonsshell {
+ position: relative;
+ width: 100%;
+ margin: 2px;
+}
+
+div.navbuttonsshell a#previcon {
+ display: block;
+ position: absolute;
+ width: 24px; height: 24px;
+ margin: 2px; padding: 0;
+ top: 0px;
+ left: 0px;
+ color: #f6f6f6;
+ font-size: 30px; /* make unreadable */
+ text-indent: 2em; /* push it off screen, since khtml doesn't do 0px fonts */
+ overflow: hidden; /* hide the oveflow text */
+ background: url("left.png") top left no-repeat; /* have a pixmap */
+}
+
+div.navbuttonsshell a#nexticon {
+ display: block;
+ position: absolute;
+ width: 24px; height: 24px;
+ margin: 2px 4px 2px auto; padding: 0;
+ right: 4px; top: 0px;
+ color: #f6f6f6;
+ font-size: 30px; /* make unreadable */
+ text-indent: 2em; /* push it off screen, since khtml doesn't do 0px fonts */
+ overflow: hidden; /* hide the overflow text */
+ background: url("right.png") top left no-repeat; /* have a pixmap */
+}
+div#mqhq {
+ margin: 2px 2px 4px 0px;
+ height: 32px;
+}
+
+div.stylenavbar {
+ position:relative;
+ /*
+ left: 0px;
+ right: auto;
+ top:auto;
+ bottom:0px;
+ */
+ margin: 2px;
+ font-size: 9px;
+}
diff --git a/www/inc/styles/grey/left.png b/www/inc/styles/grey/left.png
new file mode 100644
index 0000000..63d306c
--- /dev/null
+++ b/www/inc/styles/grey/left.png
Binary files differ
diff --git a/www/inc/styles/grey/minus.png b/www/inc/styles/grey/minus.png
new file mode 100644
index 0000000..bc7a830
--- /dev/null
+++ b/www/inc/styles/grey/minus.png
Binary files differ
diff --git a/www/inc/styles/grey/plus.png b/www/inc/styles/grey/plus.png
new file mode 100644
index 0000000..6b103cd
--- /dev/null
+++ b/www/inc/styles/grey/plus.png
Binary files differ
diff --git a/www/inc/styles/grey/right.png b/www/inc/styles/grey/right.png
new file mode 100644
index 0000000..f998098
--- /dev/null
+++ b/www/inc/styles/grey/right.png
Binary files differ
diff --git a/www/inc/styles/grey/title.png b/www/inc/styles/grey/title.png
new file mode 100644
index 0000000..275528f
--- /dev/null
+++ b/www/inc/styles/grey/title.png
Binary files differ
diff --git a/www/inc/styles/ie7/README.txt b/www/inc/styles/ie7/README.txt
new file mode 100644
index 0000000..63aaa70
--- /dev/null
+++ b/www/inc/styles/ie7/README.txt
@@ -0,0 +1,28 @@
+Installation
+------------
+
+Follow these simple instructions to get IE7 working immediately on your server:
+
+ * download the latest IE7 ZIP file (https://sourceforge.net/project/showfiles.php?group_id=109983&package_id=119707)
+
+ * extract the contents to a directory on your server (keep the folder names used in the ZIP)
+
+ * you will now have an IE7 directory on your server
+
+ * include the IE7 JavaScript library in the page you wish to test
+
+ <!-- compliance patch for microsoft browsers -->
+ <!--[if lt IE 7]><script src="/ie7/ie7-standard-p.js" type="text/javascript"></script><![endif]-->
+
+ * make sure this also points to the same directory
+
+ * open the page in your web browser
+
+ * the page should now be IE7 enabled.
+
+You may extract the contents of the ZIP file to your hard disk if you do not have access to a web server.
+
+
+Enjoy ;-)
+
+Dean Edwards, 17th August 2004
diff --git a/www/inc/styles/ie7/blank.gif b/www/inc/styles/ie7/blank.gif
new file mode 100644
index 0000000..a4fe2e6
--- /dev/null
+++ b/www/inc/styles/ie7/blank.gif
Binary files differ
diff --git a/www/inc/styles/ie7/ie7-box-model.js b/www/inc/styles/ie7/ie7-box-model.js
new file mode 100644
index 0000000..0ae71bb
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-box-model.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-box-model",function(){var NUMERIC="\x5cs*:\x5cs*\x5cd[\x5cw%]*",UNIT=/^\d\w*$/,PERCENT=/^\d+%$/,PIXEL=/^\d+(px)?$/;var MATCH=(appVersion<6)?/\b(min|max)-(width|height)\s*:\s*\d/gi:/\b(min|max)-width\s*:\s*\d/gi;var AUTO=(appVersion<5.5)?/^auto|0cm$/:/^auto$/;var ie7_tmp=tmpElement();push(IE7.recalcs,function removeTempElement(){if(ie7_tmp.parentElement)ie7_tmp.parentElement.removeChild(ie7_tmp)});CSSFixes.addFix(MATCH,function(match){return match.slice(0,3)+match.charAt(4).toUpperCase()+match.slice(5)});var viewport=(quirksMode)?document.body:documentElement;function isFixed(element){return element.style.position=="fixed"||element.currentStyle.position=="fixed"};function layoutParent(element){var layoutParent=element.offsetParent;while(layoutParent&&!hasLayout(layoutParent))layoutParent=layoutParent.offsetParent;if(!layoutParent||isFixed(element))layoutParent=viewport;return layoutParent};function fixWidth(HEIGHT){fixWidth=function(element,value){if(!element.runtimeStyle.fixedWidth&&(!isHTML||element.tagName!="HR")){if(!value)value=element.currentStyle.width;element.runtimeStyle.fixedWidth=(UNIT.test(value))?Math.max(0,getFixedWidth(element,value)):value;element.runtimeStyle.width=element.runtimeStyle.fixedWidth;boxSizing(element)}};if(quirksMode)CSSFixes.addRecalc("width\x5cs*:\x5cs*\x5cd\x5cw*[^%]",fixWidth);var getFixedWidth=(quirksMode)?function(element,value){return getPixelWidth(element,value)+getBorderWidth(element)+getPaddingWidth(element)}:function(element,value){return getPixelWidth(element,value)};function getBorderWidth(element){return element.offsetWidth-element.clientWidth};function getPaddingWidth(element){return getPixelWidth(element,element.currentStyle.paddingLeft)+getPixelWidth(element,element.currentStyle.paddingRight)};function getMarginWidth(element){return((element.currentStyle.marginLeft=="auto")?0:getPixelLeft(element,element.currentStyle.marginLeft))+((element.currentStyle.marginRight=="auto")?0:getPixelLeft(element,element.currentStyle.marginRight))};function minWidth(element){minWidth[minWidth.count++]=element;if(element.currentStyle.minHeight=="auto")element.runtimeStyle.minHeight=0;fixWidth(element);boxSizing(element);resizeWidth(element)};minWidth.count=0;CSSFixes.addRecalc("min-width"+NUMERIC,minWidth);eval(String(minWidth).replace(/min/g,"max"));maxWidth.count=0;CSSFixes.addRecalc("max-width"+NUMERIC,maxWidth);function resizeWidth(element){var rect=element.getBoundingClientRect();var width=rect.right-rect.left;if(element.currentStyle.maxWidth&&width>=getFixedWidth(element,element.currentStyle.maxWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.maxWidth);else if(element.currentStyle.minWidth&&width<=getFixedWidth(element,element.currentStyle.minWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.minWidth);else element.runtimeStyle.width=element.runtimeStyle.fixedWidth};function fixRight(element){if((element.currentStyle.position=="absolute"||element.currentStyle.position=="fixed")&&element.currentStyle.left!="auto"&&element.currentStyle.right!="auto"&&AUTO.test(element.currentStyle.width)){fixRight[fixRight.count++]=element;boxSizing(element);resizeRight(element)}};fixRight.count=0;CSSFixes.addRecalc("right"+NUMERIC,fixRight);function resizeRight(element){element.runtimeStyle.width="";var parentElement=layoutParent(element);var left=(element.runtimeStyle.screenLeft)?element.getBoundingClientRect().left-2:getPixelLeft(element,element.currentStyle.left);var width=parentElement.clientWidth-getPixelLeft(element,element.currentStyle.right)-left-getMarginWidth(element);if(!quirksMode)width-=getBorderWidth(element)+getPaddingWidth(element);if(width<0)width=0;if(isFixed(element)||HEIGHT||element.offsetWidth<width){element.runtimeStyle.fixedWidth=width;element.runtimeStyle.width=width}};var clientWidth=documentElement.clientWidth;addEventHandler(window,"onresize",function(){var i,wider=(clientWidth<documentElement.clientWidth);clientWidth=documentElement.clientWidth;for(i=0;i<minWidth.count;i++){var element=minWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.minWidth);if(wider&&fixedWidth)element.runtimeStyle.width="";if(wider==fixedWidth)resizeWidth(element)}for(i=0;i<maxWidth.count;i++){var element=maxWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.maxWidth);if(!wider&&fixedWidth)element.runtimeStyle.width="";if(wider!=fixedWidth)resizeWidth(element)}for(i=0;i<fixRight.count;i++)resizeRight(fixRight[i]);removeTempElement()});function getPixelWidth(element,value){if(PIXEL.test(value))return parseInt(value);if(PERCENT.test(value))return parseInt(parseFloat(value)/100*layoutParent(element).clientWidth);var parentElement=(element.canHaveChildren)?element:element.parentElement;parentElement.appendChild(ie7_tmp);ie7_tmp.style.width=value;return ie7_tmp.offsetWidth};function getPixelLeft(element,value){if(parseInt(value)>0)return getPixelWidth(element,value);if(PIXEL.test(value))return parseInt(value);element.parentElement.appendChild(ie7_tmp);ie7_tmp.style.left=value;return ie7_tmp.offsetLeft}};eval(String(fixWidth).replace(/Width/g,"Height").replace(/width/g,"height").replace(/Left/g,"Top").replace(/left/g,"top").replace(/Right/g,"Bottom").replace(/right/g,"bottom"));fixWidth();fixHeight(true)});
diff --git a/www/inc/styles/ie7/ie7-core.js b/www/inc/styles/ie7/ie7-core.js
new file mode 100644
index 0000000..91cf79a
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-core.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(!window.IE7)new function(){try{window.IE7=this;var DUMMY=this.addModule=new Function;function unHide(){if(document.body)document.body.style.visibility="visible"};this.toString=function(){return "IE7 version 0.7.3 (alpha)"};var alert=(/ie7_debug/.test(location.search))?function(message){window.alert(IE7+"\n\n"+message)}:DUMMY;var appVersion=navigator.appVersion.match(/MSIE (\d\.\d)/)[1];if(/ie7_off/.test(location.search)||appVersion<5||!/^ms_/.test(document.documentElement.uniqueID))return unHide();var quirksMode=Boolean(document.compatMode!="CSS1Compat");var isHTML=(typeof document.mimeType=="unknown")?!/\.xml$/i.test(location.pathname):Boolean(document.mimeType!="XML Document");var LINKS=":link{ie7-link:link}:visited{ie7-link:visited}";var HEADER=LINKS;if(!isHTML)HEADER+="*{margin:0}";var HTMLFixes;var documentElement=document.documentElement;var modules={};this.addModule=function(name,script,autoload){if(!modules)return;if(loaded)eval("script="+String(script));if(autoload){script();script=DUMMY}modules[name]=script};var RELATIVE=/^[\w\.]+[^:]*$/;function makePath(href,path){if(RELATIVE.test(href))href=(path||"")+href;return href};function getPath(href,path){href=makePath(href,path);return href.slice(0,href.lastIndexOf("/")+1)};var path=getPath(document.scripts[document.scripts.length-1].src);var httpRequest=new ActiveXObject("Microsoft.XMLHTTP");function load(href,path){try{href=makePath(href,path);httpRequest.open("GET",href,false);httpRequest.send();return httpRequest.responseText}catch(ignore){alert("Error [1]: could not load file "+href);return ""}};var push=function(array,item){return array.push(item)};var pop=function(array){return array.pop()};if(appVersion<5.5)eval(load("ie7-ie5.js",path));if(document.readyState=="complete"||!isHTML)document.createStyleSheet();else document.write("<style></style>");this.styleSheet=document.styleSheets[document.styleSheets.length-1];this.styleSheet.cssText=LINKS;this.styleSheet.ie7=true;var cssText={};function loadStyleSheet(styleSheet,path){var url=makePath(styleSheet.href,path);if(cssText[url])return "";cssText[url]=(styleSheet.disabled)?"":fixUrls(getCSSText(styleSheet,path),getPath(styleSheet.href,path));return cssText[url]};var getCSSText=function(styleSheet){return styleSheet.cssText};var URL=/(url\(['"]?)([\w\.]+[^:\)]*['"]?\))/gi;function fixUrls(cssText,pathname){return cssText.replace(URL,"$1"+pathname.slice(0,pathname.lastIndexOf("/")+1)+"$2")};this.recalcs=[];this.parse=DUMMY;var complete=false;function _load(){try{complete=true;var MEDIA=/\bscreen\b|\ball\b|^$/i;var styleSheets=document.styleSheets;var inlineStyles=[];var styles=document.getElementsByTagName("style");for(var i=styles.length-1;i>=0;i--){push(inlineStyles,/ie7-link/.test(styles[i].innerHTML)?"":styles[i].innerHTML)}function getCSSText(styleSheet,path){var cssText="";if(MEDIA.test(styleSheet.media)){for(var i=0;i<styleSheet.imports.length;i++){cssText+=arguments.callee(styleSheet.imports[i],getPath(styleSheet.href,path))}cssText+=((styleSheet.href)?loadStyleSheet(styleSheet,path):pop(inlineStyles))}return cssText};IE7.cssText="";for(i=0;i<styleSheets.length;i++)IE7.cssText+=getCSSText(styleSheets[i],"");IE7.cssText=encode(IE7.cssText);for(i in modules)modules[i]();delete modules;if(HTMLFixes)HTMLFixes.apply();CSSFixes.apply();IE7.parse();IE7.styleSheet.cssText=HEADER+decode(IE7.cssText);for(i=0;i<styleSheets.length;i++){if(!styleSheets[i].disabled&&!styleSheets[i].ie7)styleSheets[i].cssText=""}IE7.recalc();alert("loaded successfully")}catch(error){alert("Error [2]: "+error.description)}finally{unHide()}};this.recalc=function(){CSSFixes.recalc();for(var i=0;i<this.recalcs.length;i++)this.recalcs[i]()};var CSSFixes=new function(){var fixes=[];this.addFix=function(){push(fixes,arguments)};var recalcs=[];this.addRecalc=function(pattern,fix){var reg=new RegExp("([^{}]*)\x5c{([^}]*[^\x5cw-])?"+pattern,"gi");var cssText=IE7.cssText;pattern=[];while(match=reg.exec(cssText)){push(pattern,match[1]);if(appVersion<5.5)cssText=cssText.slice(match.lastIndex)}if(pattern.length){pattern=pattern.toString();push(recalcs,arguments)}};this.apply=function(){for(var i=0;i<fixes.length;i++){IE7.cssText=IE7.cssText.replace(fixes[i][0],fixes[i][1])}this.addRecalc("box-sizing\x5cs*:\x5cs*content-box",boxSizing);this.addRecalc("position\x5cs*:\x5cs*absolute",function(element){if(element.offsetParent.currentStyle.position=="relative")boxSizing(element.offsetParent)})};this.recalc=function(){for(var i=0;i<recalcs.length;i++){var elements=cssQuery(recalcs[i][0]);for(var j=0;j<elements.length;j++)recalcs[i][1](elements[j])}};this.addFix(/(float\s*:\s*(left|right))/gi,"display:inline;$1");if(appVersion<6)this.addFix(/display\s*:\s*list-item/gi,"display:block");if(quirksMode){var SIZES="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");for(var i=0;i<SIZES.length;i++)SIZES[SIZES[i]]=SIZES[i-1]||"xx-small";function replace($,$1,$2,$3){return $1+SIZES[$3]};this.addFix(new RegExp("(font(-size)?\x5cs*:\x5cs*)("+SIZES.join("|")+")","gi"),replace)}};var STANDARD_SELECT=/^[^>\+~\s]/;var STREAM=/[\s>\+~:@#\.\(\)]|[^\s>\+~:@#\.\(\)]+/g;var NAMESPACE=/\|/;var IMPLIED_SELECTOR=/([\s>~\,]|[^(]\+|^)([\.:#@])/g;var ASTERISK="$1*$2";var cssCache={};function cssQuery(selector,from){var useCache=!from;var base=(from)?(from.constructor==Array)?from:[from]:[document];var selectors=selector.replace(IMPLIED_SELECTOR,ASTERISK).split(",");var match=[];for(var i=0;i<selectors.length;i++){selector=toStream(selectors[i]);if(selector.slice(0,3).join("")==" *#"){selector=selector.slice(2);from=selectById(base,selector[1])}else from=base;var j=0,token,filter,filterArgs,cacheSelector="";while(j<selector.length){token=selector[j++];filter=selector[j++];cacheSelector+=token+filter;filterArgs="";if(selector[j]=="("){while(selector[j++]!=")")filterArgs+=selector[j];filterArgs=filterArgs.slice(0,-1);cacheSelector+="("+filterArgs+")"}from=(useCache&&cssCache[cacheSelector])?cssCache[cacheSelector]:select(from,token,filter,filterArgs);if(useCache)cssCache[cacheSelector]=from}match=match.concat(from)}return match};function toStream(selector){if(STANDARD_SELECT.test(selector))selector=" "+selector;return selector.match(STREAM)};function select(from,token,filter,filterArgs){var scopeName="";if(NAMESPACE.test(filter)){filter=filter.split("|");scopeName=filter[0];filter=filter[1]}var filtered=[];if(selectors[token])selectors[token](filtered,from,filter,scopeName||filterArgs);return filtered};function selectById(from,id){var filtered=[],i,j;for(i=0;i<from.length;i++){var match=from[i].all.item(id);if(match){if(match.length==null)push(filtered,match);else for(j=0;j<match.length;j++)push(filtered,match[j])}}return filtered};var selectors={" ":function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var subset=(filter=="*"&&from[i].all)?from[i].all:from[i].getElementsByTagName(filter);for(var j=0;j<subset.length;j++){if(isElement(subset[j])&&(!scopeName||subset[j].scopeName==scopeName))push(filtered,subset[j])}}},"#":function(filtered,from,filter){for(var i=0;i<from.length;i++)if(from[i].id==filter)push(filtered,from[i])},".":function(filtered,from,filter){filter=new RegExp("(^|\x5cs)"+filter+"(\x5cs|$)");for(var i=0;i<from.length;i++)if(filter.test(from[i].className))push(filtered,from[i])},":":function(filtered,from,filter,filterArgs){filter=pseudoClasses[filter];if(filter)for(var i=0;i<from.length;i++)if(filter(from[i],filterArgs))push(filtered,from[i])}};var attributeTests="";var pseudoClasses={toString:function(){var toString=[];for(var pseudoClass in this){if(pseudoClass!="link"&&pseudoClass!="visited"){if(this[pseudoClass].length>1)pseudoClass+="\x5c([^)]*\x5c)";push(toString,pseudoClass)}}return toString.join("|")},"link":function(element){return Boolean(element.currentStyle["ie7-link"]=="link")},"visited":function(element){return Boolean(element.currentStyle["ie7-link"]=="visited")}};var dynamicPseudoClasses={toString:pseudoClasses.toString};function compareTagName(element,tagName,scopeName){if(scopeName&&element.scopeName!=scopeName)return false;return(tagName=="*")?isElement(element):(isHTML)?(element.tagName==tagName.toUpperCase()):(element.tagName==tagName)};var strings=[];function getString(string){return QUOTED.test(string)?strings[string.slice(1,-1)]:string};var encode=function(cssText){return cssText.replace(/(\x2f\*[^\*]*\*+([^\x2f][^\*]*\*+)*\x2f)|('[^']*')|("[^"]*")/g,function(match){return(match.charAt(0)=="/")?"":"'"+(push(strings,match.slice(1,-1))-1)+"'"}).replace(/@(namespace|import)[^;\n]+[;\n]|<!\-\-|\-\->/g,"").replace(/\x5c:/g,"|").replace(/^\s+|\s*([\{\}\+\,>~\s;])\s*|\s+$/g,"$1")};function decode(cssText){return cssText.replace(/\|/g,"\x5c:").replace(/'(\d+)'/g,function(match,key){return strings[key]})};var handlers=[];function addEventHandler(element,type,handler){element.attachEvent(type,handler);push(handlers,arguments)};function removeEventHandler(element,type,handler){try{element.detachEvent(type,handler)}catch(ignore){}};window.attachEvent("onbeforeunload",function(){while(handlers.length){var handler=pop(handlers);removeEventHandler(handler[0],handler[1],handler[2])}});var hasLayout=(appVersion<6)?function(element){return element.clientWidth}:function(element){return element.currentStyle.hasLayout};function boxSizing(element){if(!hasLayout(element)){element.contentEditable=false;fixMargins(firstChildElement(element))}};function fixMargins(element){while(element){element.runtimeStyle.marginTop=element.currentStyle.marginTop;element=nextElement(element)}};var QUOTED=/('[^']*')|("[^"]*")/;function quote(value){return(QUOTED.test(value))?value:"'"+value+"'"};function unquote(value){return(QUOTED.test(value))?value.slice(1,-1):value};function tmpElement(tagName){var element=document.createElement(tagName||"object");element.style.cssText="position:absolute;padding:0;display:block;border:none;clip:rect(0 0 0 0);left:-9999";return element};function isElement(node){return Boolean(node&&node.nodeType==1&&node.tagName!="!"&&!node.ie7_anon)};function previousElement(element){while(element&&(element=element.previousSibling)&&!isElement(element))continue;return element};function nextElement(element){while(element&&(element=element.nextSibling)&&!isElement(element))continue;return element};function firstChildElement(element){element=element.firstChild;return(isElement(element))?element:nextElement(element)};var loaded=true;if(document.readyState=="complete")_load();else addEventHandler(document,"onreadystatechange",function(){if(!complete&&document.readyState=="complete")setTimeout(_load,0)})}catch(error){unHide();alert("Error [0]: "+error.description)}finally{}}();
diff --git a/www/inc/styles/ie7/ie7-css-strict.js b/www/inc/styles/ie7/ie7-css-strict.js
new file mode 100644
index 0000000..7ed03d2
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-css-strict.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-strict",function(){if(!modules["ie7-css2"])return;var NONE=[],ID=/#/g,CLASS=/[:@\.]/g,TAG=/^\w|[\s>+~]\w/g;IE7.parser.parse=function(cssText){var DYNAMIC=new RegExp("(.*):("+dynamicPseudoClasses+")(.*)");function addRule(selector,cssText){var match=selector.match(DYNAMIC);if(match)new DynamicRule(selector,match[1],match[2],match[3],cssText);else new Rule(selector,cssText)};cssText=cssText.replace(IE7.PseudoElement.ALL,IE7.PseudoElement.ID);var RULE=/([^\{]+)\{(\d+)\}/g,match;while(match=RULE.exec(cssText)){addRule(match[1],match[2]);if(appVersion<5.5)cssText=cssText.slice(match.lastIndex)}IE7.classes.sort(Rule.compare);return IE7.classes.join("\n")};function Rule(selector,cssText){this.cssText=cssText;this.specificity=Rule.score(selector);this.inherit=IE7.Class;this.inherit(selector)};Rule.prototype=new IE7.Class.ancestor;Rule.prototype.toString=function(){return "."+this.name+"{"+this.cssText+"}"};Rule.score=function(selector){return(selector.match(ID)||NONE).length*10000+(selector.match(CLASS)||NONE).length*100+(selector.match(TAG)||NONE).length};Rule.compare=function(rule1,rule2){return rule1.specificity-rule2.specificity};function DynamicRule(selector,attach,dynamicPseudoClass,target,cssText){this.cssText=cssText;this.specificity=Rule.score(selector);this.inherit=IE7.DynamicStyle;this.inherit(selector,attach,dynamicPseudoClass,target)};DynamicRule.prototype=new IE7.DynamicStyle.ancestor;DynamicRule.prototype.toString=Rule.prototype.toString});
diff --git a/www/inc/styles/ie7/ie7-css2.js b/www/inc/styles/ie7/ie7-css2.js
new file mode 100644
index 0000000..a9a03b7
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-css2.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-css2",function(){var CHILD=/>/g,ANCHOR=/(\ba(\.[\w-]+)?)$/i;IE7.classes=[];IE7.parser=new Parser;IE7.Class=Class;IE7.DynamicStyle=DynamicStyle;IE7.PseudoElement=PseudoElement;IE7.parse=function(){with(this.parser)this.cssText=decode(parse(encode(this.cssText)));for(var i=0;i<IE7.classes.length;i++)IE7.classes[i].exec();for(i=0;i<pseudoElements.length;i++)pseudoElements[i].create()};getCSSText=function(styleSheet,path){return load(styleSheet.href,path)};var encoded=[];function Parser(){this.parse=function(cssText){Class.ALL=new RegExp("[^},\x5cs]*([>+~][^:@,\x5cs{]+|:("+pseudoClasses+")|\x5c.[\x5cw-]+\x5c.[\x5cw-.]+|@[@\x5cd]+)","g");Class.COMPLEX=new RegExp("[^\x5cs(]+[+~]|@\x5cd+|:(link|visited|"+pseudoClasses+"|"+dynamicPseudoClasses+")|\x5c.[\x5cw-.]+","g");DynamicStyle.ALL=new RegExp("([^}]*):("+dynamicPseudoClasses+")([^{]*)","g");return cssText.replace(PseudoElement.ALL,PseudoElement.ID).replace(DynamicStyle.ALL,DynamicStyle.ID).replace(Class.ALL,Class.ID)};this.encode=function(cssText){AttributeSelector.ALL=new RegExp("\x5c[([^"+attributeTests+"=\x5c]]+)(["+attributeTests+"]?=?)([^\x5c]]+)?\x5c]","g");return cssText.replace(AttributeSelector.ALL,AttributeSelector.ID).replace(/\{[^\}]*\}/g,function($){return "{"+(push(encoded,$)-1)+"}"}).replace(/::/g,":").replace(/([^\}\s]*\,[^\{]*)(\{\d+\})/g,function(match,left,right){return left.split(",").join(right)+right})};this.decode=function(cssText){return cssText.replace(/\{(\d+)\}/g,function($,$1){return encoded[$1]})}};function _Class(){this.toString=function(){return "."+this.name};this.add=function(element){element.className+=" "+this.name};this.remove=function(element){element.className=element.className.replace(this.MATCH,"")};this.exec=function(){var match=cssQuery(this.selector);for(var i=0;i<match.length;i++)this.add(match[i])}};function Class(selector,cssText){this.id=IE7.classes.length;this.name=Class.PREFIX+this.id;this.selector=selector;this.MATCH=new RegExp("\x5cs"+this.name+"\x5cb","g");push(IE7.classes,this)};Class.ancestor=_Class;Class.prototype=new _Class;Class.PREFIX="ie7_";Class.ID=function(match){return simpleSelector(match)+new Class(match)};function _DynamicStyle(){this.exec=function(){var match=cssQuery(this.attach);for(var i=0;i<match.length;i++){var target=(this.target)?cssQuery(this.target,match[i]):[match[i]];if(target)this.dynamicPseudoClass(match[i],target,this)}}};_DynamicStyle.prototype=new _Class;function DynamicStyle(selector,attach,dynamicPseudoClass,target){this.attach=attach;this.dynamicPseudoClass=dynamicPseudoClasses[dynamicPseudoClass];this.target=target;this.inherit=Class;this.inherit(selector)};DynamicStyle.ancestor=_DynamicStyle;DynamicStyle.prototype=new _DynamicStyle;DynamicStyle.ID=function(match,attach,dynamicPseudoClass,target){if(isHTML&&dynamicPseudoClass!="focus"&&ANCHOR.test(attach)&&!/[+>~]/.test(target))return match;return simpleSelector(match)+new DynamicStyle(match,attach,dynamicPseudoClass,target)};HEADER+=".ie7_anon{vertical-align:top;display:inline}";var HEX=/\x5c([a-fA-F\d]+)/g;function unicode(match,code){return eval("'\x5cu"+"0000".slice(code.length)+code+"'")};var pseudoElements=[];function _PseudoElement(){this.content=null;this.toString=function(){return ""};this.specificity=0;function addTimer(object,content,cssText){var timer=setInterval(function(){try{if(!object.load)return;object.load(object,content,cssText);clearInterval(timer)}catch(ignore){clearInterval(timer)}},10)};this.create=function(){if(this.content==null)return;for(var i=0;i<this.match.length;i++){var target=this.match[i];var pseudoElement=target.runtimeStyle[this.position];if(pseudoElement){var parentElement=target.canHaveChildren?target:target.parentElement;var isURL=/^url\(.*\)$/.test(this.content);var element=document.createElement(isURL?PseudoElement.OBJECT:"!");element.ie7_anon=true;element.runtimeStyle.cssText=pseudoElement.cssText;if(!isURL)element.innerText=pseudoElement.content;if(this.position=="before"){parentElement.insertBefore(element,parentElement.firstChild)}else{parentElement.appendChild(element)}if(isURL)addTimer(element,pseudoElement.content,pseudoElement.cssText);target.runtimeStyle[this.position]=null}}};this.exec=function(){this.match=cssQuery(this.selector);for(var i=0;i<this.match.length;i++){var runtimeStyle=this.match[i].runtimeStyle;if(!runtimeStyle[this.position])runtimeStyle[this.position]={cssText:""};runtimeStyle[this.position].cssText+=";"+this.cssText;if(this.content!=null)runtimeStyle[this.position].content=this.content}}};_PseudoElement.prototype=new _Class;function PseudoElement(selector,position,cssText){this.position=position;this.cssText=encoded[cssText].slice(1,-1);var content=this.cssText.match(PseudoElement.CONTENT);if(content)this.content=getString(content[1]).replace(HEX,unicode);this.inherit=Class;this.inherit(selector);push(pseudoElements,this)};PseudoElement.ancestor=_PseudoElement;PseudoElement.prototype=new _PseudoElement;PseudoElement.ID=function(match,selector,position,cssText){return new PseudoElement(selector,position,cssText)};PseudoElement.ALL=/([^}]*):(before|after)[^{]*\{([^}]*)\}/g;PseudoElement.CONTENT=/content\s*:\s*([^;]*)(;|$)/;PseudoElement.OBJECT="<object class=ie7_anon data='"+makePath("ie7-content.htm",path)+"' width=100% height=0 type=text/x-scriptlet>";selectors[">"]=function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var subset=from[i].children;for(var j=0;j<subset.length;j++)if(compareTagName(subset[j],filter,scopeName))push(filtered,subset[j])}};selectors["+"]=function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var adjacent=nextElement(from[i]);if(adjacent&&compareTagName(adjacent,filter,scopeName))push(filtered,adjacent)}};selectors["@"]=function(filtered,from,filter){filter=attributeSelectors[filter];for(var i=0;i<from.length;i++)if(filter(from[i]))push(filtered,from[i])};pseudoClasses["first-child"]=function(element){return!previousElement(element)};pseudoClasses["lang"]=function(element,filterArgs){filterArgs=new RegExp("^"+filterArgs,"i");while(element&&!element.getAttribute("lang"))element=element.parentNode;return element&&filterArgs.test(element.getAttribute("lang"))};dynamicPseudoClasses.hover=function(element){var instance=arguments;addEventHandler(element,"onmouseover",function(){IE7.Event.hover.register(instance)});addEventHandler(element,"onmouseout",function(){IE7.Event.hover.unregister(instance)})};dynamicPseudoClasses.active=function(element){var instance=arguments;addEventHandler(element,"onmousedown",function(){IE7.Event.active.register(instance)})};dynamicPseudoClasses.focus=function(element){var instance=arguments;addEventHandler(element,"onfocus",function(){IE7.Event.focus.register(instance)});addEventHandler(element,"onblur",function(){IE7.Event.focus.unregister(instance)});if(element==document.activeElement){IE7.Event.focus.register(instance)}};addEventHandler(document,"onmouseup",function(){var ie7Event=IE7.Event.active;var instances=ie7Event.instances,i;for(i in instances)ie7Event.unregister(instances[i]);ie7Event=IE7.Event.hover;instances=ie7Event.instances;for(i in instances)if(!instances[i][0].contains(event.srcElement))ie7Event.unregister(instances[i])});var attributeSelectors=[];var ESCAPE=/([/()[\]?{}|*+])/g;function AttributeSelector(attribute,compare,value){value=getString(value);this.id=attributeSelectors.length;switch(attribute.toLowerCase()){case "id":attribute="element.id.replace(/ms_\x5cd+/g,'')";break;case "class":attribute="element.className.replace(/\x5cb\x5cs*ie7_\x5cd+/g,'')";break;default:attribute="element.getAttribute('"+attribute+"')"}compare=attributeTests[compare];push(attributeSelectors,new Function("element","return "+compare(attribute,value)))};AttributeSelector.ID=function(match,attribute,compare,value){return new AttributeSelector(attribute,compare,value)};AttributeSelector.prototype.toString=function(){return AttributeSelector.PREFIX+this.id};attributeTests={toString:function(){var toString=[];for(var i in this)if(i&&i!="escape")push(toString,i);return toString.join("").replace(/=/g,"")},escape:function(value){return value.replace(ESCAPE,"\x5c$1")},"":function(attribute){return attribute},"=":function(attribute,value){return attribute+"=="+quote(value)},"~=":function(attribute,value){return "/(^|\x5cs)"+attributeTests.escape(value)+"(\x5cs|$)/.test("+attribute+")"},"|=":function(attribute,value){return "/^"+attributeTests.escape(value)+"(-|$)/.test("+attribute+")"}};AttributeSelector.PREFIX="@";function _ie7Event(){this.register=function(instance){var element=instance[0];var target=instance[1];var Class=instance[2];for(var i=0;i<target.length;i++)Class.add(target[i]);this.instances[Class.id+element.uniqueID]=instance};this.unregister=function(instance){var element=instance[0];var target=instance[1];var Class=instance[2];for(var i=0;i<target.length;i++)Class.remove(target[i]);delete this.instances[Class.id+element.uniqueID]}};IE7.Event=function(type){this.type=type;this.instances={};IE7.Event[type]=this};IE7.Event.prototype=new _ie7Event;new IE7.Event("hover");new IE7.Event("active");new IE7.Event("focus");function simpleSelector(selector){return selector.replace(Class.COMPLEX,"").replace(CHILD," ")}},true);
diff --git a/www/inc/styles/ie7/ie7-css3.js b/www/inc/styles/ie7/ie7-css3.js
new file mode 100644
index 0000000..56d312e
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-css3.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-css3",function(){if(!modules["ie7-css2"])return;selectors["~"]=function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var adjacent=from[i];while(adjacent=nextElement(adjacent)){if(adjacent&&compareTagName(adjacent,filter,scopeName))push(filtered,adjacent)}}};var documentElement=(isHTML)?document.documentElement:firstChildElement(document.body);pseudoClasses["root"]=function(element){return Boolean(element==documentElement||element==document.body)};pseudoClasses["empty"]=function(element){return!firstChildElement(element)&&!element.innerText};pseudoClasses["last-child"]=function(element){return!nextElement(element)};pseudoClasses["only-child"]=function(element){return(element.parentNode&&childElements(element.parentNode).length==1)};pseudoClasses["nth-child"]=function(element,filterArgs,step){return nthChild(element,filterArgs,previousElement)};pseudoClasses["nth-last-child"]=function(element,filterArgs){return nthChild(element,filterArgs,nextElement)};function nthChild(element,filterArgs,traverse){switch(filterArgs){case "n":return true;case "even":filterArgs="2n";break;case "odd":filterArgs="2n+1"}var children=childElements(element.parentNode);function checkIndex(index){index=(traverse==nextElement)?children.length-index:index-1;return children[index]==element};if(!isNaN(filterArgs))return checkIndex(filterArgs);filterArgs=filterArgs.split("n");var multiplier=parseInt(filterArgs[0]);var step=parseInt(filterArgs[1]);if(isNaN(multiplier)||(multiplier==1))return true;if(multiplier==0&&!isNaN(step))return checkIndex(step);if(isNaN(step))step=0;var count=1;while(element=traverse(element))count++;return((count%multiplier)==step)};function childElements(element){var childElements=[],i;for(i=0;i<element.childNodes.length;i++){if(isElement(element.childNodes[i]))push(childElements,element.childNodes[i])}return childElements};attributeTests["^="]=function(attribute,value){return "/^"+attributeTests.escape(value)+"/.test("+attribute+")"};attributeTests["$="]=function(attribute,value){return "/"+attributeTests.escape(value)+"$/.test("+attribute+")"};attributeTests["*="]=function(attribute,value){return "/"+attributeTests.escape(value)+"/.test("+attribute+")"}});
diff --git a/www/inc/styles/ie7/ie7-fixed.js b/www/inc/styles/ie7/ie7-fixed.js
new file mode 100644
index 0000000..f3c5b7a
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-fixed.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-fixed",function(){var PERCENT=/^\d+%$/;CSSFixes.addRecalc("position\x5cs*:\x5cs*fixed",positionFixed);CSSFixes.addRecalc("background[\x5cw\x5cs-]*:[^};]*fixed",backgroundFixed);var body=document.body;var viewport$=(quirksMode)?"body":"documentElement";var viewport=eval(viewport$);function fixBackground(){if(body.currentStyle.backgroundAttachment!="fixed"){if(body.currentStyle.backgroundImage=="none"){body.runtimeStyle.backgroundImage="url("+location.protocol+")"}body.runtimeStyle.backgroundAttachment="fixed"}fixBackground=DUMMY};var ie7_tmp=tmpElement("img");function topFunction(leftFunction){return String(leftFunction).replace(/Left/g,"Top").replace(/left/g,"top").replace(/Width/g,"Height").replace(/X/g,"Y")};function backgroundFixed(element){if(element.currentStyle.backgroundAttachment!="fixed")return;if(!element.contains(body)){fixBackground();backgroundFixed[backgroundFixed.count++]=element;backgroundLeft(element);backgroundTop(element);backgroundPosition(element)}};backgroundFixed.count=0;function backgroundPosition(element){ie7_tmp.src=element.currentStyle.backgroundImage.slice(5,-2);var parentElement=(element.canHaveChildren)?element:element.parentElement;parentElement.appendChild(ie7_tmp);setOffsetLeft(element);setOffsetTop(element);parentElement.removeChild(ie7_tmp)};function backgroundLeft(element){element.style.backgroundPositionX=element.currentStyle.backgroundPositionX;if(!isFixed(element)){var expression="(parseInt(runtimeStyle.offsetLeft)+document."+viewport$+".scrollLeft)||0";element.runtimeStyle.setExpression("backgroundPositionX",expression)}};eval(topFunction(backgroundLeft));function setOffsetLeft(element){var propertyName=isFixed(element)?"backgroundPositionX":"offsetLeft";element.runtimeStyle[propertyName]=getOffsetLeft(element,element.style.backgroundPositionX)-element.getBoundingClientRect().left-element.clientLeft};eval(topFunction(setOffsetLeft));function isFixed(element){if(!element)return false;if(element.style.position=="fixed"||element.currentStyle.position=="fixed")return true;return arguments.callee(element.parentElement)};function getOffsetLeft(element,position){switch(position){case "left":case "top":return 0;case "right":case "bottom":return viewport.clientWidth-ie7_tmp.offsetWidth;case "center":return(viewport.clientWidth-ie7_tmp.offsetWidth)/2;default:if(PERCENT.test(position)){return parseInt((viewport.clientWidth-ie7_tmp.offsetWidth)*parseFloat(position)/100)}ie7_tmp.style.left=position;return ie7_tmp.offsetLeft}};eval(topFunction(getOffsetLeft));function positionFixed(element){if(element.currentStyle.position!="fixed")return;fixBackground();positionFixed[positionFixed.count++]=element;element.style.position="fixed";element.runtimeStyle.position="absolute";foregroundPosition(element)};positionFixed.count=0;function foregroundPosition(element,recalc){positionLeft(element,recalc);positionTop(element,recalc);if(!recalc||element.runtimeStyle.autoTop){if(parseInt(element.currentStyle.bottom)==0)element.runtimeStyle.screenTop++}};function positionLeft(element,recalc){if(!recalc&&PERCENT.test(element.currentStyle.width))element.runtimeStyle.fixWidth=element.currentStyle.width;if(element.runtimeStyle.fixWidth)element.runtimeStyle.width=parseInt(parseFloat(element.runtimeStyle.fixWidth)/100*viewport.clientWidth);if(recalc){if(!element.runtimeStyle.autoLeft)return}else{element.runtimeStyle.autoLeft=element.currentStyle.right!="auto"&&element.currentStyle.left=="auto"}element.runtimeStyle.left="";element.runtimeStyle.screenLeft=getScreenLeft(element);if(element.currentStyle.marginLeft!="auto"){element.parentElement.appendChild(ie7_tmp);ie7_tmp.style.left=element.currentStyle.marginLeft;element.runtimeStyle.screenLeft-=ie7_tmp.offsetLeft;element.parentElement.removeChild(ie7_tmp)}if(isFixed(element.offsetParent))element.runtimeStyle.pixelLeft=element.runtimeStyle.screenLeft;else if(!recalc)element.runtimeStyle.setExpression("pixelLeft","runtimeStyle.screenLeft+document."+viewport$+".scrollLeft")};eval(topFunction(positionLeft).replace(/right/g,"bottom").replace(/width/g,"height"));function getScreenLeft(element){var getScreenLeft=element.offsetLeft,nested=false;var fixed=isFixed(element.offsetParent)&&element.runtimeStyle.autoLeft;while(element=element.offsetParent){if(!fixed&&element.currentStyle.position!="static")nested=true;getScreenLeft+=element.offsetLeft*(nested?-1:1)}return getScreenLeft};eval(topFunction(getScreenLeft));function resize(){for(var i=0;i<backgroundFixed.count;i++)backgroundPosition(backgroundFixed[i]);for(i=0;i<positionFixed.count;i++)foregroundPosition(positionFixed[i],true);timer=0};var timer;addEventHandler(window,"onresize",function(){if(!timer)timer=setTimeout(resize,10)})});
diff --git a/www/inc/styles/ie7/ie7-html4.js b/www/inc/styles/ie7/ie7-html4.js
new file mode 100644
index 0000000..86a4c95
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-html4.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-html4",function(){if(isHTML)HTMLFixes=new function(){var fixes=[];function fix(element){var fixedElement=document.createElement("<HTML:"+element.outerHTML.slice(1));if(element.outerHTML.slice(-2)!="/>"){var endTag="</"+element.tagName+">",nextSibling;while((nextSibling=element.nextSibling)&&nextSibling.outerHTML!=endTag){element.parentNode.removeChild(nextSibling);fixedElement.appendChild(nextSibling)}if(nextSibling)element.parentNode.removeChild(nextSibling)}element.parentNode.replaceChild(fixedElement,element);return fixedElement};this.add=function(){push(fixes,arguments)};this.apply=function(){try{if(appVersion>5)document.namespaces.add("HTML","http://www.w3.org/1999/xhtml")}catch(ignore){}finally{for(var i=0;i<fixes.length;i++){var elements=cssQuery(fixes[i][0]);for(var j=0;j<elements.length;j++)fixes[i][1](elements[j])}}};this.add("label",function(element){if(!element.htmlFor){var input=cssQuery("input,select,textarea",element)[0];if(input){if(!input.id)input.id=input.uniqueID;element.htmlFor=input.id}}});this.add("abbr",function(element){fix(element);delete cssCache[" abbr"]});this.add("button,input",function(element){if(element.tagName=="BUTTON"){var match=element.outerHTML.match(/ value="([^"]*)"/i);element.runtimeStyle.value=(match)?match[1]:""}if(element.type=="submit"){addEventHandler(element,"onclick",function(){element.runtimeStyle.clicked=true;setTimeout("document.all."+element.uniqueID+".runtimeStyle.clicked=false",1)})}});this.add("form",function(element){var UNSUCCESSFUL=/^(submit|reset|button)$/;addEventHandler(element,"onsubmit",function(){for(var i=0;i<element.length;i++){if(UNSUCCESSFUL.test(element[i].type)&&!element[i].disabled&&!element[i].runtimeStyle.clicked){element[i].disabled=true;setTimeout("document.all."+element[i].uniqueID+".disabled=false",1)}else if(element[i].tagName=="BUTTON"&&element[i].type=="submit"){setTimeout("document.all."+element[i].uniqueID+".value='"+element[i].value+"'",1);element[i].value=element[i].runtimeStyle.value}}})})}},true); \ No newline at end of file
diff --git a/www/inc/styles/ie7/ie7-ie5.js b/www/inc/styles/ie7/ie7-ie5.js
new file mode 100644
index 0000000..4529d95
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-ie5.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(isHTML){HEADER+="address,blockquote,body,dd,div,dl,dt,fieldset,form,frame,"+"frameset,h1,h2,h3,h4,h5,h6,iframe,noframes,object,p,applet,center,"+"dir,hr,menu,pre{display:block;height:0cm}li,ol,ul{display:block}"}if(![].push)push=function(array,item){array[array.length]=item;return array.length};if(![].pop)pop=function(array){var item=array[array.length-1];array.length--;return item};if("i".replace(/i/,function(){return""})){var a=String.prototype.replace,b=function(r,w){var m,n="",s=this;while((m=r.exec(s))){n+=s.slice(0,m.index)+w(m[0],m[1],m[2],m[3],m[4]);s=s.slice(m.lastIndex)}return n+s};String.prototype.replace=function(r,w){this.replace=(typeof w=="function")?b:a;return this.replace(r,w)}} \ No newline at end of file
diff --git a/www/inc/styles/ie7/ie7-lite-p.js b/www/inc/styles/ie7/ie7-lite-p.js
new file mode 100644
index 0000000..887f62f
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-lite-p.js
@@ -0,0 +1,3 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+eval(function(A,r,s,e,n,a,l){s=function(e){return((e<a)?'':s(e/a))+n[l[340]](e%a+161)};while(++r<474)l[r]=(r<378)?'/'+l[r]+'/':'"'+l[r]+'"';while(--r>=0)A=A.replace(new RegExp(s(r),'g'),l[r]);return A}('if(!.) (){{.=; =.= ; (){if(.)...=};.=(){ }; =(.(.))?(){.(++)}:; =..()[1];if(.(.)||<5||!.(..)) (); =(.!=); =( .==)?!i.(.):(.!=); =; =;if(!)+=; ; =.; ={};.=(,,){if(!);if()(+());if(){();=}[]=}; =; (,){if(.())=(||)+; }; (,){=(,); .(0,.()+1)}; =(.[..-1].); = (); (,){{=(,);.(,,);.(); .}(){(+); }}; =(,){ .()}; =(){ .()};if(<5.5)((,));if(.==||!).(); .();.=.[..-1];..=;..=; ={}; (,){ =(.,);if([]) ;[]=(.)?:((,),(.,)); []}; =(){ .}; =gi; (,){ .(,+.(0,.()+1)+)};.=[];.=; =; _(){{=; =i; =.; =[]; =.();( i=.-1;i>=0;i--){(,.([i].)?:[i].)} (,){ =;if(.(.)){( i=0;i<..;i++){+=.(.[i],(.,))}+=((.)?(,):())} };.=;(i=0;i<.;i++).+=([i],);.=(.);(i in )[i](); ;if().();.();.();..=+(.);(i=0;i<.;i++){if(![i].&&![i].)[i].=}.();()}(){(+.)}{()}};.=(){.();( i=0;i<..;i++).[i]()}; = (){ =[];.=(){(,)}; =[];.=(,){ = (+,); =.;=[];(=.()){(,[1]);if(<5.5)=.(.)}if(.){=.();(,)}};.=(){( i=0;i<.;i++){.=..([i][0],[i][1])}.(,);.(,(){if(...==)(.)})};.=(){( i=0;i<.;i++){ =([i][0]);( j=0;j<.;j++)[i][1]([j])}};.(gi,);if(<6).(gi,);if(){ =.();( i=0;i<.;i++)[[i]]=[i-1]||; ($,$1,$2,$3){ $1+[$3]};.( (+.()+,),)}}; =; =g; =; =g; =; ={}; (,){ =!; =()?(.==)?:[]:[]; =.(,).(); =[];( i=0;i<.;i++){=([i]);if(.(0,3).()==){=.(2);=(,[1])} =; j=0,,,,=;(j<.){=[j++];=[j++];+=+;=;if([j]==){([j++]!=)+=[j];=.(0,-1);+=++}=(&&[])?[]:(,,,);if()[]=}=.()} }; (){if(.())=+; .()}; (,,,){ =;if(.()){=.();=[0];=[1]} =[];if([])[](,,,||); }; (,id){ =[],i,j;(i=0;i<.;i++){ =[i]..(id);if(){if(.==)(,); (j=0;j<.;j++)(,[j])}} }; ={:(,,,){( i=0;i<.;i++){ =(==&&[i].)?[i].:[i].();( j=0;j<.;j++){if(([j])&&(!||[j].==))(,[j])}}},:(,,){( i=0;i<.;i++)if([i].id==)(,[i])},:(,,){= (++);( i=0;i<.;i++)if(.([i].))(,[i])},:(,,,){=[];if()( i=0;i<.;i++)if(([i],))(,[i])}}; =; ={:(){ =[];( in ){if(!=&&!=){if([].>1)+=;(,)}} .()},:(){ (.[]==)},:(){ (.[]==)}}; ={:.}; (,,){if(&&.!=) ;(==)?():()?(.==.()):(.==)}; =[]; (){ .()?[.(1,-1)]:}; =(){ .(g,(){(.(0)==)?:+((,.(1,-1))-1)+}).(g,).(g,).(g,)}; (){ .(g,).(g,(,){ []})}; =[]; (,,){.(,);(,)}; (,,){{.(,)}(){}};.(,(){(.){ =();([0],[1],[2])}}); =(<6)?(){ .}:(){ ..}; (){if(!()){.=;(())}}; (){(){..=..;=()}}; =; (){(.())?:++}; (){(.())?.(1,-1):}; (){ =.(||);..=; }; (){ (&&.==1&&.!=&&!.)}; (){(&&(=.)&&!()); }; (){(&&(=.)&&!()); }; (){=.;(())?:()}; =;.(,(){if()= (){ =[]; (){ =.(+..(1));if(..(-2)!=){ =+.+,;((=.)&&.!=){..();.()}if()..()}..(,); };.=(){(,)};.=(){{if(>5)..(,)}(){}{( i=0;i<.;i++){ =([i][0]);( j=0;j<.;j++)[i][1]([j])}}};.(,(){if(!.){ =(,)[0];if(){if(!.id).id=.;.=.id}}});.(,(){(); []});.(,(){if(.==){ =..(i);..=()?[1]:}if(.==){(,,(){..=;(+.+,1)})}});.(,(){ =;(,,(){( i=0;i<.;i++){if(.([i].)&&![i].&&![i]..){[i].=;(+[i].+,1)} if([i].==&&[i].==){(+[i].++[i].+,1);[i].=[i]..}}})})}},);.(,(){ =,=,=,=; =(<6)?gi:gi; =(<5.5)?:; =();(., (){if(.)..()});.(,(){ .(0,3)+.(4).()+.(5)}); =()?.:; (){ ..==||..==}; (){ =.;(&&!())=.;if(!||())=; }; (){=(,){if(!..&&(!||.!=)){if(!)=..;..=(.())?.(0,(,)):;..=..;()}};if().(,); =()?(,){ (,)+()+()}:(,){ (,)}; (){ .-.}; (){ (,..)+(,..)}; (){((..==)?0:(,..))+((..==)?0:(,..))}; (){[.++]=;if(..==)..=0;();();()};.=0;.(+,);(().(g,));.=0;.(+,); (){ =.(); =.-.;if(..&&>=(,..))..=(,..); if(..&&<=(,..))..=(,..); ..=..}; (){if((..==||..==)&&..!=&&..!=&&.(..)){[.++]=;();()}};.=0;.(+,); (){..=; =(); =(..)?.().-2:(,..); =.-(,..)--();if(!)-=()+();if(<0)=0;if(()||||.<){..=;..=}}; =.;(,,(){ i,=(<.);=.;(i=0;i<.;i++){ =[i]; =(..==..);if(&&)..=;if(==)()}(i=0;i<.;i++){ =[i]; =(..==..);if(!&&)..=;if(!=)()}(i=0;i<.;i++)([i]);()}); (,){if(.()) ();if(.()) (()/100*().); =(.)?:.;.();..=; .}; (,){if(()>0) (,);if(.()) ();..();..=; .}};(().(g,).(g,).(g,).(g,).(g,).(g,));();()});=;if(.==)_(); (,,(){if(!&&.==)(_,0)})}(){();(+.)}{}}();',340,0,/./,String,95,'element`var`function`return`value`from`cssText`width`currentStyle`this`document`match`length`filter`for`runtimeStyle`test`href`replace`IE7`selector`styleSheet`push`filtered`path`tagName`slice`minWidth`x5cs`layoutParent`fixedWidth`scopeName`filterArgs`left`ie7_tmp`clientWidth`appVersion`ie7`fixes`link`styleSheets`while`recalcs`nextSibling`style`parentElement`count`maxWidth`CSSFixes`input`new`handler`toString`else`true`fixRight`documentElement`addRecalc`auto`position`type`false`token`SIZES`pattern`alert`load`complete`fixWidth`right`getPixelWidth`quirksMode`boxSizing`getFixedWidth`isHTML`all`add`elements`isElement`pseudoClass`selectors`cacheSelector`modules`script`catch`addEventHandler`getPixelLeft`wider`window`max`addFix`uniqueID`disabled`cssCache`try`arguments`node`Boolean`x5c`visited`subset`url`error`unHide`setTimeout`loaded`eval`parseInt`resizeWidth`NUMERIC`rect`min`offsetParent`hasLayout`addModule`outerHTML`cssQuery`apply`fixedElement`HTMLFixes`display`QUOTED`handlers`pop`strings`string`item`small`recalc`getCSSText`getPath`styles`DUMMY`pathname`makePath`array`httpRequest`finally`Error`readyState`String`appendChild`PIXEL`offsetWidth`resizeRight`isFixed`getPaddingWidth`getBorderWidth`fixed`absolute`x5cw`body`removeChild`box`submit`clicked`fix`select`ignore`parentNode`nextElement`x2f`pseudoClasses`join`RegExp`split`useCache`base`large`HEADER`inlineStyles`LINKS`location`description`height`PERCENT`removeTempElement`HEIGHT`getMarginWidth`getBoundingClientRect`AUTO`minHeight`marginRight`marginLeft`x5cd`UNIT`viewport`toUpperCase`charAt`MATCH`tmpElement`BUTTON`UNSUCCESSFUL`button`abbr`delete`htmlFor`HTML`endTag`createElement`firstChildElement`continue`block`marginTop`fixMargins`removeEventHandler`attachEvent`key`decode`encode`getElementsByTagName`selectById`NAMESPACE`STREAM`STANDARD_SELECT`toStream`ASTERISK`IMPLIED_SELECTOR`reg`parse`loadStyleSheet`imports`MEDIA`innerHTML`lastIndexOf`URL`fixUrls`scripts`RELATIVE`name`autoload`mimeType`search`message`onreadystatechange`fixHeight`bottom`Bottom`Right`top`Top`Left`Height`Width`offsetLeft`canHaveChildren`parseFloat`onresize`screenLeft`paddingRight`paddingLeft`Math`model`onsubmit`reset`form`onclick`textarea`label`xhtml`org`www`http`namespaces`replaceChild`html4`firstChild`previousSibling`previousElement`ie7_anon`nodeType`clip`none`border`padding`object`unquote`quote`contentEditable`onbeforeunload`detachEvent`import`namespace`getString`compareTagName`dynamicPseudoClasses`attributeTests`className`null`concat`Array`constructor`size`font`medium`list`inline`float`relative`content`sizing`lastIndex`exec`successfully`callee`media`ball`bscreen`write`createStyleSheet`ie5`file`not`could`responseText`send`GET`open`XMLHTTP`Microsoft`ActiveXObject`src`margin`Document`XML`xml`unknown`typeof`CSS1Compat`compatMode`ms_`ie7_off`MSIE`navigator`ie7_debug`alpha`version`visible`visibility`Function`fromCharCode`` (\\d\\.\\d)``^`\\.$`^[\\w\\.]+[^:]*$`(\\([\x27"]?)([\\w\\.]+[^:\\)]*[\x27"]?\\))`\\\\b|\\\\b|^$`-`(\\s*:\\s*(|))`\\s*:\\s*-`^[^>\\+~\\s]`[\\s>\\+~:@#\\.\\(\\)]|[^\\s>\\+~:@#\\.\\(\\)]+`\\|`([\\s>~\\,]|[^(]\\+|^)([\\.:#@])`(\\\\*[^\\*]*\\*+([^\\][^\\*]*\\*+)*\\)|(\x27[^\x27]*\x27)|("[^"]*")`@(|)[^;\\n]+[;\\n]|<!\\-\\-|\\-\\->`\\:`^\\s+|\\s*([\\{\\}\\+\\,>~\\s;])\\s*|\\s+$`\x27(\\d+)\x27`(\x27[^\x27]*\x27)|("[^"]*")` ="([^"]*)"`^(||)$`^\\d\\w*$`^\\d+%$`^\\d+(px)?$`\\b(|)-(|)\\s*:\\s*\\d`\\b(|)-\\s*:\\s*\\d`^|0cm$`^$````````` 0.7.3 ()`\\n\\n``` `:{-:}:{-:}`*{:0}`=``/`.`` [1]: `-.js``<></>`$1`$2`` ` [2]: `([^{}]*)\\{([^}]*[^\\-])?`gi`-\\*:\\*-`\\*:\\*``:;$1`:`xx-,x-,,,,x-,xx-`,`xx-`((-)?\\*:\\*)(`|`)`$1*$2` *#`(` `*`#`.`(^|\\)`(\\|$)`:```\\([^)]*\\)`-`\x27`\\:```:;:0;:;:;:(0 0 0 0);:-9999`!`-`<:`/>`</`>``://.w3./1999/``,,`` `,````..`..=```.=`.=\x27`--`\\*:\\*\\[\\%]*``HR`\\*:\\*\\\\*[^%]``-``-``````````` [0]: '.split('\x60')));
+/* packed with http://dean.edwards.name/packer/ */
diff --git a/www/inc/styles/ie7/ie7-lite.js b/www/inc/styles/ie7/ie7-lite.js
new file mode 100644
index 0000000..493d8f1
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-lite.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(!window.IE7)new function(){try{window.IE7=this;var DUMMY=this.addModule=new Function;function unHide(){if(document.body)document.body.style.visibility="visible"};this.toString=function(){return "IE7 version 0.7.3 (alpha)"};var alert=(/ie7_debug/.test(location.search))?function(message){window.alert(IE7+"\n\n"+message)}:DUMMY;var appVersion=navigator.appVersion.match(/MSIE (\d\.\d)/)[1];if(/ie7_off/.test(location.search)||appVersion<5||!/^ms_/.test(document.documentElement.uniqueID))return unHide();var quirksMode=Boolean(document.compatMode!="CSS1Compat");var isHTML=(typeof document.mimeType=="unknown")?!/\.xml$/i.test(location.pathname):Boolean(document.mimeType!="XML Document");var LINKS=":link{ie7-link:link}:visited{ie7-link:visited}";var HEADER=LINKS;if(!isHTML)HEADER+="*{margin:0}";var HTMLFixes;var documentElement=document.documentElement;var modules={};this.addModule=function(name,script,autoload){if(!modules)return;if(loaded)eval("script="+String(script));if(autoload){script();script=DUMMY}modules[name]=script};var RELATIVE=/^[\w\.]+[^:]*$/;function makePath(href,path){if(RELATIVE.test(href))href=(path||"")+href;return href};function getPath(href,path){href=makePath(href,path);return href.slice(0,href.lastIndexOf("/")+1)};var path=getPath(document.scripts[document.scripts.length-1].src);var httpRequest=new ActiveXObject("Microsoft.XMLHTTP");function load(href,path){try{href=makePath(href,path);httpRequest.open("GET",href,false);httpRequest.send();return httpRequest.responseText}catch(ignore){alert("Error [1]: could not load file "+href);return ""}};var push=function(array,item){return array.push(item)};var pop=function(array){return array.pop()};if(appVersion<5.5)eval(load("ie7-ie5.js",path));if(document.readyState=="complete"||!isHTML)document.createStyleSheet();else document.write("<style></style>");this.styleSheet=document.styleSheets[document.styleSheets.length-1];this.styleSheet.cssText=LINKS;this.styleSheet.ie7=true;var cssText={};function loadStyleSheet(styleSheet,path){var url=makePath(styleSheet.href,path);if(cssText[url])return "";cssText[url]=(styleSheet.disabled)?"":fixUrls(getCSSText(styleSheet,path),getPath(styleSheet.href,path));return cssText[url]};var getCSSText=function(styleSheet){return styleSheet.cssText};var URL=/(url\(['"]?)([\w\.]+[^:\)]*['"]?\))/gi;function fixUrls(cssText,pathname){return cssText.replace(URL,"$1"+pathname.slice(0,pathname.lastIndexOf("/")+1)+"$2")};this.recalcs=[];this.parse=DUMMY;var complete=false;function _load(){try{complete=true;var MEDIA=/\bscreen\b|\ball\b|^$/i;var styleSheets=document.styleSheets;var inlineStyles=[];var styles=document.getElementsByTagName("style");for(var i=styles.length-1;i>=0;i--){push(inlineStyles,/ie7-link/.test(styles[i].innerHTML)?"":styles[i].innerHTML)}function getCSSText(styleSheet,path){var cssText="";if(MEDIA.test(styleSheet.media)){for(var i=0;i<styleSheet.imports.length;i++){cssText+=arguments.callee(styleSheet.imports[i],getPath(styleSheet.href,path))}cssText+=((styleSheet.href)?loadStyleSheet(styleSheet,path):pop(inlineStyles))}return cssText};IE7.cssText="";for(i=0;i<styleSheets.length;i++)IE7.cssText+=getCSSText(styleSheets[i],"");IE7.cssText=encode(IE7.cssText);for(i in modules)modules[i]();delete modules;if(HTMLFixes)HTMLFixes.apply();CSSFixes.apply();IE7.parse();IE7.styleSheet.cssText=HEADER+decode(IE7.cssText);for(i=0;i<styleSheets.length;i++){if(!styleSheets[i].disabled&&!styleSheets[i].ie7)styleSheets[i].cssText=""}IE7.recalc();alert("loaded successfully")}catch(error){alert("Error [2]: "+error.description)}finally{unHide()}};this.recalc=function(){CSSFixes.recalc();for(var i=0;i<this.recalcs.length;i++)this.recalcs[i]()};var CSSFixes=new function(){var fixes=[];this.addFix=function(){push(fixes,arguments)};var recalcs=[];this.addRecalc=function(pattern,fix){var reg=new RegExp("([^{}]*)\x5c{([^}]*[^\x5cw-])?"+pattern,"gi");var cssText=IE7.cssText;pattern=[];while(match=reg.exec(cssText)){push(pattern,match[1]);if(appVersion<5.5)cssText=cssText.slice(match.lastIndex)}if(pattern.length){pattern=pattern.toString();push(recalcs,arguments)}};this.apply=function(){for(var i=0;i<fixes.length;i++){IE7.cssText=IE7.cssText.replace(fixes[i][0],fixes[i][1])}this.addRecalc("box-sizing\x5cs*:\x5cs*content-box",boxSizing);this.addRecalc("position\x5cs*:\x5cs*absolute",function(element){if(element.offsetParent.currentStyle.position=="relative")boxSizing(element.offsetParent)})};this.recalc=function(){for(var i=0;i<recalcs.length;i++){var elements=cssQuery(recalcs[i][0]);for(var j=0;j<elements.length;j++)recalcs[i][1](elements[j])}};this.addFix(/(float\s*:\s*(left|right))/gi,"display:inline;$1");if(appVersion<6)this.addFix(/display\s*:\s*list-item/gi,"display:block");if(quirksMode){var SIZES="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");for(var i=0;i<SIZES.length;i++)SIZES[SIZES[i]]=SIZES[i-1]||"xx-small";function replace($,$1,$2,$3){return $1+SIZES[$3]};this.addFix(new RegExp("(font(-size)?\x5cs*:\x5cs*)("+SIZES.join("|")+")","gi"),replace)}};var STANDARD_SELECT=/^[^>\+~\s]/;var STREAM=/[\s>\+~:@#\.\(\)]|[^\s>\+~:@#\.\(\)]+/g;var NAMESPACE=/\|/;var IMPLIED_SELECTOR=/([\s>~\,]|[^(]\+|^)([\.:#@])/g;var ASTERISK="$1*$2";var cssCache={};function cssQuery(selector,from){var useCache=!from;var base=(from)?(from.constructor==Array)?from:[from]:[document];var selectors=selector.replace(IMPLIED_SELECTOR,ASTERISK).split(",");var match=[];for(var i=0;i<selectors.length;i++){selector=toStream(selectors[i]);if(selector.slice(0,3).join("")==" *#"){selector=selector.slice(2);from=selectById(base,selector[1])}else from=base;var j=0,token,filter,filterArgs,cacheSelector="";while(j<selector.length){token=selector[j++];filter=selector[j++];cacheSelector+=token+filter;filterArgs="";if(selector[j]=="("){while(selector[j++]!=")")filterArgs+=selector[j];filterArgs=filterArgs.slice(0,-1);cacheSelector+="("+filterArgs+")"}from=(useCache&&cssCache[cacheSelector])?cssCache[cacheSelector]:select(from,token,filter,filterArgs);if(useCache)cssCache[cacheSelector]=from}match=match.concat(from)}return match};function toStream(selector){if(STANDARD_SELECT.test(selector))selector=" "+selector;return selector.match(STREAM)};function select(from,token,filter,filterArgs){var scopeName="";if(NAMESPACE.test(filter)){filter=filter.split("|");scopeName=filter[0];filter=filter[1]}var filtered=[];if(selectors[token])selectors[token](filtered,from,filter,scopeName||filterArgs);return filtered};function selectById(from,id){var filtered=[],i,j;for(i=0;i<from.length;i++){var match=from[i].all.item(id);if(match){if(match.length==null)push(filtered,match);else for(j=0;j<match.length;j++)push(filtered,match[j])}}return filtered};var selectors={" ":function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var subset=(filter=="*"&&from[i].all)?from[i].all:from[i].getElementsByTagName(filter);for(var j=0;j<subset.length;j++){if(isElement(subset[j])&&(!scopeName||subset[j].scopeName==scopeName))push(filtered,subset[j])}}},"#":function(filtered,from,filter){for(var i=0;i<from.length;i++)if(from[i].id==filter)push(filtered,from[i])},".":function(filtered,from,filter){filter=new RegExp("(^|\x5cs)"+filter+"(\x5cs|$)");for(var i=0;i<from.length;i++)if(filter.test(from[i].className))push(filtered,from[i])},":":function(filtered,from,filter,filterArgs){filter=pseudoClasses[filter];if(filter)for(var i=0;i<from.length;i++)if(filter(from[i],filterArgs))push(filtered,from[i])}};var attributeTests="";var pseudoClasses={toString:function(){var toString=[];for(var pseudoClass in this){if(pseudoClass!="link"&&pseudoClass!="visited"){if(this[pseudoClass].length>1)pseudoClass+="\x5c([^)]*\x5c)";push(toString,pseudoClass)}}return toString.join("|")},"link":function(element){return Boolean(element.currentStyle["ie7-link"]=="link")},"visited":function(element){return Boolean(element.currentStyle["ie7-link"]=="visited")}};var dynamicPseudoClasses={toString:pseudoClasses.toString};function compareTagName(element,tagName,scopeName){if(scopeName&&element.scopeName!=scopeName)return false;return(tagName=="*")?isElement(element):(isHTML)?(element.tagName==tagName.toUpperCase()):(element.tagName==tagName)};var strings=[];function getString(string){return QUOTED.test(string)?strings[string.slice(1,-1)]:string};var encode=function(cssText){return cssText.replace(/(\x2f\*[^\*]*\*+([^\x2f][^\*]*\*+)*\x2f)|('[^']*')|("[^"]*")/g,function(match){return(match.charAt(0)=="/")?"":"'"+(push(strings,match.slice(1,-1))-1)+"'"}).replace(/@(namespace|import)[^;\n]+[;\n]|<!\-\-|\-\->/g,"").replace(/\x5c:/g,"|").replace(/^\s+|\s*([\{\}\+\,>~\s;])\s*|\s+$/g,"$1")};function decode(cssText){return cssText.replace(/\|/g,"\x5c:").replace(/'(\d+)'/g,function(match,key){return strings[key]})};var handlers=[];function addEventHandler(element,type,handler){element.attachEvent(type,handler);push(handlers,arguments)};function removeEventHandler(element,type,handler){try{element.detachEvent(type,handler)}catch(ignore){}};window.attachEvent("onbeforeunload",function(){while(handlers.length){var handler=pop(handlers);removeEventHandler(handler[0],handler[1],handler[2])}});var hasLayout=(appVersion<6)?function(element){return element.clientWidth}:function(element){return element.currentStyle.hasLayout};function boxSizing(element){if(!hasLayout(element)){element.contentEditable=false;fixMargins(firstChildElement(element))}};function fixMargins(element){while(element){element.runtimeStyle.marginTop=element.currentStyle.marginTop;element=nextElement(element)}};var QUOTED=/('[^']*')|("[^"]*")/;function quote(value){return(QUOTED.test(value))?value:"'"+value+"'"};function unquote(value){return(QUOTED.test(value))?value.slice(1,-1):value};function tmpElement(tagName){var element=document.createElement(tagName||"object");element.style.cssText="position:absolute;padding:0;display:block;border:none;clip:rect(0 0 0 0);left:-9999";return element};function isElement(node){return Boolean(node&&node.nodeType==1&&node.tagName!="!"&&!node.ie7_anon)};function previousElement(element){while(element&&(element=element.previousSibling)&&!isElement(element))continue;return element};function nextElement(element){while(element&&(element=element.nextSibling)&&!isElement(element))continue;return element};function firstChildElement(element){element=element.firstChild;return(isElement(element))?element:nextElement(element)};var loaded=false;IE7.addModule("ie7-html4",function(){if(isHTML)HTMLFixes=new function(){var fixes=[];function fix(element){var fixedElement=document.createElement("<HTML:"+element.outerHTML.slice(1));if(element.outerHTML.slice(-2)!="/>"){var endTag="</"+element.tagName+">",nextSibling;while((nextSibling=element.nextSibling)&&nextSibling.outerHTML!=endTag){element.parentNode.removeChild(nextSibling);fixedElement.appendChild(nextSibling)}if(nextSibling)element.parentNode.removeChild(nextSibling)}element.parentNode.replaceChild(fixedElement,element);return fixedElement};this.add=function(){push(fixes,arguments)};this.apply=function(){try{if(appVersion>5)document.namespaces.add("HTML","http://www.w3.org/1999/xhtml")}catch(ignore){}finally{for(var i=0;i<fixes.length;i++){var elements=cssQuery(fixes[i][0]);for(var j=0;j<elements.length;j++)fixes[i][1](elements[j])}}};this.add("label",function(element){if(!element.htmlFor){var input=cssQuery("input,select,textarea",element)[0];if(input){if(!input.id)input.id=input.uniqueID;element.htmlFor=input.id}}});this.add("abbr",function(element){fix(element);delete cssCache[" abbr"]});this.add("button,input",function(element){if(element.tagName=="BUTTON"){var match=element.outerHTML.match(/ value="([^"]*)"/i);element.runtimeStyle.value=(match)?match[1]:""}if(element.type=="submit"){addEventHandler(element,"onclick",function(){element.runtimeStyle.clicked=true;setTimeout("document.all."+element.uniqueID+".runtimeStyle.clicked=false",1)})}});this.add("form",function(element){var UNSUCCESSFUL=/^(submit|reset|button)$/;addEventHandler(element,"onsubmit",function(){for(var i=0;i<element.length;i++){if(UNSUCCESSFUL.test(element[i].type)&&!element[i].disabled&&!element[i].runtimeStyle.clicked){element[i].disabled=true;setTimeout("document.all."+element[i].uniqueID+".disabled=false",1)}else if(element[i].tagName=="BUTTON"&&element[i].type=="submit"){setTimeout("document.all."+element[i].uniqueID+".value='"+element[i].value+"'",1);element[i].value=element[i].runtimeStyle.value}}})})}},true);IE7.addModule("ie7-box-model",function(){var NUMERIC="\x5cs*:\x5cs*\x5cd[\x5cw%]*",UNIT=/^\d\w*$/,PERCENT=/^\d+%$/,PIXEL=/^\d+(px)?$/;var MATCH=(appVersion<6)?/\b(min|max)-(width|height)\s*:\s*\d/gi:/\b(min|max)-width\s*:\s*\d/gi;var AUTO=(appVersion<5.5)?/^auto|0cm$/:/^auto$/;var ie7_tmp=tmpElement();push(IE7.recalcs,function removeTempElement(){if(ie7_tmp.parentElement)ie7_tmp.parentElement.removeChild(ie7_tmp)});CSSFixes.addFix(MATCH,function(match){return match.slice(0,3)+match.charAt(4).toUpperCase()+match.slice(5)});var viewport=(quirksMode)?document.body:documentElement;function isFixed(element){return element.style.position=="fixed"||element.currentStyle.position=="fixed"};function layoutParent(element){var layoutParent=element.offsetParent;while(layoutParent&&!hasLayout(layoutParent))layoutParent=layoutParent.offsetParent;if(!layoutParent||isFixed(element))layoutParent=viewport;return layoutParent};function fixWidth(HEIGHT){fixWidth=function(element,value){if(!element.runtimeStyle.fixedWidth&&(!isHTML||element.tagName!="HR")){if(!value)value=element.currentStyle.width;element.runtimeStyle.fixedWidth=(UNIT.test(value))?Math.max(0,getFixedWidth(element,value)):value;element.runtimeStyle.width=element.runtimeStyle.fixedWidth;boxSizing(element)}};if(quirksMode)CSSFixes.addRecalc("width\x5cs*:\x5cs*\x5cd\x5cw*[^%]",fixWidth);var getFixedWidth=(quirksMode)?function(element,value){return getPixelWidth(element,value)+getBorderWidth(element)+getPaddingWidth(element)}:function(element,value){return getPixelWidth(element,value)};function getBorderWidth(element){return element.offsetWidth-element.clientWidth};function getPaddingWidth(element){return getPixelWidth(element,element.currentStyle.paddingLeft)+getPixelWidth(element,element.currentStyle.paddingRight)};function getMarginWidth(element){return((element.currentStyle.marginLeft=="auto")?0:getPixelLeft(element,element.currentStyle.marginLeft))+((element.currentStyle.marginRight=="auto")?0:getPixelLeft(element,element.currentStyle.marginRight))};function minWidth(element){minWidth[minWidth.count++]=element;if(element.currentStyle.minHeight=="auto")element.runtimeStyle.minHeight=0;fixWidth(element);boxSizing(element);resizeWidth(element)};minWidth.count=0;CSSFixes.addRecalc("min-width"+NUMERIC,minWidth);eval(String(minWidth).replace(/min/g,"max"));maxWidth.count=0;CSSFixes.addRecalc("max-width"+NUMERIC,maxWidth);function resizeWidth(element){var rect=element.getBoundingClientRect();var width=rect.right-rect.left;if(element.currentStyle.maxWidth&&width>=getFixedWidth(element,element.currentStyle.maxWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.maxWidth);else if(element.currentStyle.minWidth&&width<=getFixedWidth(element,element.currentStyle.minWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.minWidth);else element.runtimeStyle.width=element.runtimeStyle.fixedWidth};function fixRight(element){if((element.currentStyle.position=="absolute"||element.currentStyle.position=="fixed")&&element.currentStyle.left!="auto"&&element.currentStyle.right!="auto"&&AUTO.test(element.currentStyle.width)){fixRight[fixRight.count++]=element;boxSizing(element);resizeRight(element)}};fixRight.count=0;CSSFixes.addRecalc("right"+NUMERIC,fixRight);function resizeRight(element){element.runtimeStyle.width="";var parentElement=layoutParent(element);var left=(element.runtimeStyle.screenLeft)?element.getBoundingClientRect().left-2:getPixelLeft(element,element.currentStyle.left);var width=parentElement.clientWidth-getPixelLeft(element,element.currentStyle.right)-left-getMarginWidth(element);if(!quirksMode)width-=getBorderWidth(element)+getPaddingWidth(element);if(width<0)width=0;if(isFixed(element)||HEIGHT||element.offsetWidth<width){element.runtimeStyle.fixedWidth=width;element.runtimeStyle.width=width}};var clientWidth=documentElement.clientWidth;addEventHandler(window,"onresize",function(){var i,wider=(clientWidth<documentElement.clientWidth);clientWidth=documentElement.clientWidth;for(i=0;i<minWidth.count;i++){var element=minWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.minWidth);if(wider&&fixedWidth)element.runtimeStyle.width="";if(wider==fixedWidth)resizeWidth(element)}for(i=0;i<maxWidth.count;i++){var element=maxWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.maxWidth);if(!wider&&fixedWidth)element.runtimeStyle.width="";if(wider!=fixedWidth)resizeWidth(element)}for(i=0;i<fixRight.count;i++)resizeRight(fixRight[i]);removeTempElement()});function getPixelWidth(element,value){if(PIXEL.test(value))return parseInt(value);if(PERCENT.test(value))return parseInt(parseFloat(value)/100*layoutParent(element).clientWidth);var parentElement=(element.canHaveChildren)?element:element.parentElement;parentElement.appendChild(ie7_tmp);ie7_tmp.style.width=value;return ie7_tmp.offsetWidth};function getPixelLeft(element,value){if(parseInt(value)>0)return getPixelWidth(element,value);if(PIXEL.test(value))return parseInt(value);element.parentElement.appendChild(ie7_tmp);ie7_tmp.style.left=value;return ie7_tmp.offsetLeft}};eval(String(fixWidth).replace(/Width/g,"Height").replace(/width/g,"height").replace(/Left/g,"Top").replace(/left/g,"top").replace(/Right/g,"Bottom").replace(/right/g,"bottom"));fixWidth();fixHeight(true)});loaded=true;if(document.readyState=="complete")_load();else addEventHandler(document,"onreadystatechange",function(){if(!complete&&document.readyState=="complete")setTimeout(_load,0)})}catch(error){unHide();alert("Error [0]: "+error.description)}finally{}}();
diff --git a/www/inc/styles/ie7/ie7-logo.gif b/www/inc/styles/ie7/ie7-logo.gif
new file mode 100644
index 0000000..fe4a7bc
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-logo.gif
Binary files differ
diff --git a/www/inc/styles/ie7/ie7-png.js b/www/inc/styles/ie7/ie7-png.js
new file mode 100644
index 0000000..f9c7e80
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-png.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(window.IE7)IE7.addModule("ie7-png",function(){if(appVersion<5.5)return;var FILTER="progid:DXImageTransform.Microsoft.AlphaImageLoader(src=%1,sizingMethod='scale')";var NULL=(/\bSV1\b/.test(navigator.userAgent))?makePath("blank.gif",path):"javascript:'#define x_width 1\x5cn#define x_height 1\x5cnstatic char x_bits[]={0x00}'";var pngTest=new RegExp((window.IE7_PNG_SUFFIX||"-trans.png")+"$","i");function addFilter(element,src){element.runtimeStyle.filter=FILTER.replace(/%1/,src)};var MATCH=/background(-image)?\s*:([^(};]*)url\(([^\)]+)\)([^;}]*)/gi;CSSFixes.addFix(MATCH,function replace(match,image,prefix,url,suffix){url=getString(url);return pngTest.test(url)?"filter:"+FILTER.replace(/scale/,"crop").replace(/%1/,url)+";zoom:1;background"+(image||"")+":"+(prefix||"")+"none"+(suffix||""):match});if(HTMLFixes){function fixImg(element){if(pngTest.test(element.src)){var width=element.width,height=element.height;addFilter(element,element.src);element.src=NULL;element.width=width;element.height=height}else element.runtimeStyle.filter=""};HTMLFixes.add("img,input",function(element){if(element.tagName=="INPUT"&&element.type!="image")return;fixImg(element);addEventHandler(element,"onpropertychange",function(){if(event.propertyName=="src")fixImg(element)})})}});
diff --git a/www/inc/styles/ie7/ie7-server.css b/www/inc/styles/ie7/ie7-server.css
new file mode 100644
index 0000000..47c7edd
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-server.css
@@ -0,0 +1,43 @@
+body, td, dd {font: 10pt Verdana, Arial, Helvetica, sans-serif; color: black;}
+body {margin: 8px; background: #333;}
+h1 {margin: 0;}
+h1 a:hover {background-color: transparent;}
+h2 {font-size: 1.75em;}
+h3 {font-size: 1.1em;}
+a:active {color: #ff0000;}
+a:link {color: #0a6cce;}
+a:visited {color: #0a6cce;}
+code, *.code {font-family: monospace; font-size: 100%; font-style: normal; white-space: nowrap;
+ padding: 0 1px; background: #f2f3f8; border: #d6d9e9 1px solid;}
+code.box {display: block; padding: 10px; margin: 0.5em 0;}
+ul {list-style-type: square;}
+dd {margin: .2em 0 .5em 1em;}
+dl.library dt {display: list-item; margin-left: 3em; list-style-type: square;}
+dl.library dd {font-style: italic; margin-left: 3em;}
+dt {font-weight: bold;}
+dt.pack {color: brown;}
+a img {border-style: none;}
+hr {height: 1px; color: #000; border-style: solid;}
+hr.short {height: 2px; width: 100px;}
+div.document {background: #eef; padding: 20px 20px 5px 20px; width: 600px; border: 1px solid black;}
+hr {border-bottom-width: 0px;}
+div.header hr {color: #0a6cce; background-color: #0a6cce;}
+div.content {min-height: 100px;}
+div.footer hr {color: #898e79; background-color: #898e79; }
+div.header, div.header a:link, div.header a:visited, h3 a:link, h3 a:visited {text-decoration: none;}
+a:hover {color: #fff; background-color: #0a6cce; text-decoration: none;}
+div.footer a:hover {background-color: transparent; text-decoration: none;}
+div.header .menu {text-align: right;}
+div.footer {font-size: x-small; margin-top: 8px;}
+div.footnote {font-family: "times new roman", times; font-style: italic; margin-top: 10px;}
+#license {margin-top: 5px; font-size: xx-small;}
+table {border-top: 1px solid #000; border-left: 1px solid #000;}
+th {background-color: #fff; text-align: left;}
+th, td {border-right: 1px solid #000; border-bottom: 1px solid #000;}
+th.small {width: 100px;}
+th.medium {width: 200px;}
+th.large {width: 270px;}
+th.x-large {width: 408px;}
+table.fixed {table-layout: fixed;}
+span.comment {color: #666;}
+
diff --git a/www/inc/styles/ie7/ie7-standard-p.js b/www/inc/styles/ie7/ie7-standard-p.js
new file mode 100644
index 0000000..8dfb5e0
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-standard-p.js
@@ -0,0 +1,3 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+eval(function(A,r,s,e,n,a,l){s=function(e){return((e<a)?'':s(e/a))+n[l[493]](e%a+161)};while(++r<735)l[r]=(r<549)?'/'+l[r]+'/':'"'+l[r]+'"';while(--r>=0)A=A.replace(new RegExp(s(r),'g'),l[r]);return A}('if(!.) (){{.=; =.= ; (){if(.)...=};.=(){ }; =(.(.))?(){.(++)}:; =..()[1];if(.(.)||<5||!.(..)) (); =(.!=); =( .==)?!i.(.):(.!=); =; =;if(!)+=; ; =.; ={};.=(,,){if(!);if()(+());if(){();=}[]=}; =; (,){if(.())=(||)+; }; (,){=(,); .(0,.()+1)}; =(.[..-1].); = (); (,){{=(,);.(,,);.(); .}(){(+); }}; =(,){ .()}; =(){ .()};if(<5.5)((,));if(.==||!).(); .();.=.[..-1];..=;..=; ={}; (,){ =(.,);if([]) ;[]=(.)?:((,),(.,)); []}; =(){ .}; =gi; (,){ .(,+.(0,.()+1)+)};.=[];.=; =; _(){{=; =i; =.; =[]; =.();( i=.-1;i>=0;i--){(,.([i].)?:[i].)} (,){ =;if(.(.)){( i=0;i<..;i++){+=.(.[i],(.,))}+=((.)?(,):())} };.=;(i=0;i<.;i++).+=([i],);.=(.);(i in )[i](); ;if().();.();.();..=+(.);(i=0;i<.;i++){if(![i].&&![i].)[i].=}.();()}(){(+.)}{()}};.=(){.();( i=0;i<..;i++).[i]()}; = (){ =[];.=(){(,)}; =[];.=(,){ = (+,); =.;=[];(=.()){(,[1]);if(<5.5)=.(.)}if(.){=.();(,)}};.=(){( i=0;i<.;i++){.=..([i][0],[i][1])}.(,);.(,(){if(...==)(.)})};.=(){( i=0;i<.;i++){ =([i][0]);( j=0;j<.;j++)[i][1]([j])}};.(gi,);if(<6).(gi,);if(){ =.();( i=0;i<.;i++)[[i]]=[i-1]||; ($,$1,$2,$3){ $1+[$3]};.( (+.()+,),)}}; =; =g; =; =g; =; ={}; (,){ =!; =()?(.==)?:[]:[]; =.(,).(); =[];( i=0;i<.;i++){=([i]);if(.(0,3).()==){=.(2);=(,[1])} =; j=0,,,,=;(j<.){=[j++];=[j++];+=+;=;if([j]==){([j++]!=)+=[j];=.(0,-1);+=++}=(&&[])?[]:(,,,);if()[]=}=.()} }; (){if(.())=+; .()}; (,,,){ =;if(.()){=.();=[0];=[1]} =[];if([])[](,,,||); }; (,id){ =[],i,j;(i=0;i<.;i++){ =[i]..(id);if(){if(.==)(,); (j=0;j<.;j++)(,[j])}} }; ={:(,,,){( i=0;i<.;i++){ =(==&&[i].)?[i].:[i].();( j=0;j<.;j++){if(([j])&&(!||[j].==))(,[j])}}},:(,,){( i=0;i<.;i++)if([i].id==)(,[i])},:(,,){= (++);( i=0;i<.;i++)if(.([i].))(,[i])},:(,,,){=[];if()( i=0;i<.;i++)if(([i],))(,[i])}}; =; ={:(){ =[];( in ){if(!=&&!=){if([].>1)+=;(,)}} .()},:(){ (.[]==)},:(){ (.[]==)}}; ={:.}; (,,){if(&&.!=) ;(==)?():()?(.==.()):(.==)}; =[]; (){ .()?[.(1,-1)]:}; =(){ .(g,(){(.(0)==)?:+((,.(1,-1))-1)+}).(g,).(g,).(g,)}; (){ .(g,).(g,(,){ []})}; =[]; (,,){.(,);(,)}; (,,){{.(,)}(){}};.(,(){(.){ =();([0],[1],[2])}}); =(<6)?(){ .}:(){ ..}; (){if(!()){.=;(())}}; (){(){..=..;=()}}; =; (){(.())?:++}; (){(.())?.(1,-1):}; (){ =.(||);..=; }; (){ (&&.==1&&.!=&&!.)}; (){(&&(=.)&&!()); }; (){(&&(=.)&&!()); }; (){=.;(())?:()}; =;.(,(){if()= (){ =[]; (){ =.(+..(1));if(..(-2)!=){ =+.+,;((=.)&&.!=){..();.()}if()..()}..(,); };.=(){(,)};.=(){{if(>5)..(,)}(){}{( i=0;i<.;i++){ =([i][0]);( j=0;j<.;j++)[i][1]([j])}}};.(,(){if(!.){ =(,)[0];if(){if(!.id).id=.;.=.id}}});.(,(){(); []});.(,(){if(.==){ =..(i);..=()?[1]:}if(.==){(,,(){..=;(+.+,1)})}});.(,(){ =;(,,(){( i=0;i<.;i++){if(.([i].)&&![i].&&![i]..){[i].=;(+[i].+,1)} if([i].==&&[i].==){(+[i].++[i].+,1);[i].=[i]..}}})})}},);.(,(){ =,=,=,=; =(<6)?gi:gi; =(<5.5)?:; =();(., (){if(.)..()});.(,(){ .(0,3)+.(4).()+.(5)}); =()?.:; (){ ..==||..==}; (){ =.;(&&!())=.;if(!||())=; }; (){=(,){if(!..&&(!||.!=)){if(!)=..;..=(.())?.(0,(,)):;..=..;()}};if().(,); =()?(,){ (,)+()+()}:(,){ (,)}; (){ .-.}; (){ (,..)+(,..)}; (){((..==)?0:(,..))+((..==)?0:(,..))}; (){[.++]=;if(..==)..=0;();();()};.=0;.(+,);(().(g,));.=0;.(+,); (){ =.(); =.-.;if(..&&>=(,..))..=(,..); if(..&&<=(,..))..=(,..); ..=..}; (){if((..==||..==)&&..!=&&..!=&&.(..)){[.++]=;();()}};.=0;.(+,); (){..=; =(); =(..)?.().-2:(,..); =.-(,..)--();if(!)-=()+();if(<0)=0;if(()||||.<){..=;..=}}; =.;(,,(){ i,=(<.);=.;(i=0;i<.;i++){ =[i]; =(..==..);if(&&)..=;if(==)()}(i=0;i<.;i++){ =[i]; =(..==..);if(!&&)..=;if(!=)()}(i=0;i<.;i++)([i]);()}); (,){if(.()) ();if(.()) (()/100*().); =(.)?:.;.();..=; .}; (,){if(()>0) (,);if(.()) ();..();..=; .}};(().(g,).(g,).(g,).(g,).(g,).(g,));();()});.(,(){ =g,=i;.=[];.= ;.=;.=;.=;.=(){(.).=(((.)));( i=0;i<..;i++).[i].();(i=0;i<.;i++)[i].()};=(,){ (.,)}; =[]; (){.=(){.= (++,);.= (++++,);.= (++,); .(.,.ID).(.,.ID).(.,.ID)};.=(){.= (++++,); .(.,.ID).(g,($){ +((,$)-1)+}).(g,).(g,(,,){ .().()+})};.=(){ .(g,($,$1){ [$1]})}}; _(){.=(){ +.};.=(){.+=+.};.=(){.=..(.,)};.=(){ =(.);( i=0;i<.;i++).([i])}}; (,){.id=..;.=.+.id;.=;.= (+.+,);(.,)};.=_;.= _;.=;.ID=(){ ()+ ()}; _(){.=(){ =(.);( i=0;i<.;i++){ =(.)?(.,[i]):[[i]];if().([i],,)}}};_.= _; (,,,){.=;.=[];.=;.=;.()};.=_;.= _;.ID=(,,,){if(&&!=&&.()&&!.()) ; ()+ (,,,)};+=; =g; (,){ (+.(.)++)}; =[]; _(){.=;.=(){ };.=0; (,,){ =((){{if(!.);.(,,);()}(){()}},10)};.=(){if(.==);( i=0;i<..;i++){ =.[i]; =.[.];if(){ =.?:.; =.(.); =.(?.:);.=;..=.;if(!).=.;if(.==){.(,.)}{.()}if()(,.,.);.[.]=}}};.=(){.=(.);( i=0;i<..;i++){ =.[i].;if(![.])[.]={:};[.].+=+.;if(.!=)[.].=.}}};_.= _; (,,){.=;.=[].(1,-1); =..(.);if().=([1]).(,);.=;.();(,)};.=_;.= _;.ID=(,,,){ (,,)};.=g;.=;.=+(,)+;[]=(,,,){( i=0;i<.;i++){ =[i].;( j=0;j<.;j++)if(([j],,))(,[j])}};[]=(,,,){( i=0;i<.;i++){ =([i]);if(&&(,,))(,)}};[]=(,,){=[];( i=0;i<.;i++)if(([i]))(,[i])};[]=(){!()};[]=(,){= (+,);(&&!.())=.; &&.(.())};.=(){ =;(,,(){...()});(,,(){...()})};.=(){ =;(,,(){...()})};.=(){ =;(,,(){...()});(,,(){...()});if(==.){...()}};(,,(){ =..; =.,i;(i in ).([i]);=..;=.;(i in )if(![i][0].(.)).([i])}); =[]; =g; (,,){=();.id=.;(.()){ :=;; :=;;:=++}=[];(, (,+(,)))};.ID=(,,,){ (,,)};..=(){ .+.id};={:(){ =[];( i in )if(i&&i!=)(,i); .().(g,)},:(){ .(,)},:(){ },:(,){ ++()},:(,){ +.()+++},:(,){ +.()+++}};.=; _(){.=(){ =[0]; =[1]; =[2];( i=0;i<.;i++).([i]);.[.id+.]=};.=(){ =[0]; =[1]; =[2];( i=0;i<.;i++).([i]); .[.id+.]}};.=(){.=;.={};.[]=};..= _; .(); .(); .(); (){ .(.,).(,)}},);.(,(){if(<5.5); =; =(.(.))?(,):; = ((.||)+,); (,){..=.(,)}; =gi;.(, (,,,,){=(); .()?+.(,).(,)++(||)++(||)++(||):});if(){ (){if(.(.)){ =.,=.;(,.);.=;.=;.=} ..=};.(,(){if(.==&&.!=);();(,,(){if(.==)()})})}});.(,(){ =;.(,);.(,); =.; $=()?:; =($); (){if(..!=){if(..==){..=+.+}..=}=}; =(); (){ ().(g,).(g,).(g,).(g,)}; (){if(..!=);if(!.()){();[.++]=;();();()}};.=0; (){.=...(5,-2); =(.)?:.;.();();();.()}; (){..=..;if(!()){ =+$+;..(,)}};(()); (){ =()?:;.[]=(,..)-.().-.};(()); (){if(!) ;if(..==||..==) ; .(.)}; (,){(){ : : 0; : : .-.; :(.-.)/2;:if(.()){ ((.-.)*()/100)}..=; .}};(()); (){if(..!=);();[.++]=;..=;..=;()};.=0; (,){(,);(,);if(!||..){if((..)==0)..++}}; (,){if(!&&.(..))..=..;if(..)..=((..)/100*.);if(){if(!..)}{..=..!=&&..==}..=;..=();if(..!=){..();..=..;..-=.;..()}if((.))..=..; if(!)..(,+$+)};(().(g,).(g,)); (){ =.,=; =(.)&&..;(=.){if(!&&..!=)=;+=.*(?-1:1)} };(()); (){( i=0;i<.;i++)([i]);(i=0;i<.;i++)([i],);=0}; ;(,,(){if(!)=(,10)})});=;if(.==)_(); (,,(){if(!&&.==)(_,0)})}(){();(+.)}{}}();',493,0,/./,String,95,'element`function`var`this`return`runtimeStyle`match`cssText`value`IE7`currentStyle`replace`from`for`length`width`filter`document`position`selector`test`new`Class`push`ie7_tmp`target`x5cs`filtered`parentElement`href`styleSheet`left`path`instance`PseudoElement`attribute`content`slice`fixed`toString`filterArgs`scopeName`count`style`clientWidth`ie7`tagName`Event`x5c`DynamicStyle`addEventHandler`url`type`true`right`recalc`instances`minWidth`else`eval`while`viewport`body`CSSFixes`appVersion`link`layoutParent`fixedWidth`auto`add`RegExp`fixes`styleSheets`load`false`fixWidth`arguments`src`addRecalc`input`AttributeSelector`selectors`subset`recalcs`nextSibling`isFixed`height`parseInt`documentElement`ie7Event`ALL`cssQuery`maxWidth`handler`timer`window`positionFixed`backgroundFixed`offsetLeft`offsetParent`case`quirksMode`x5cw`addModule`prototype`uniqueID`attributeTests`dynamicPseudoClasses`pseudoClasses`dynamicPseudoClass`attach`isHTML`fixRight`token`SIZES`pattern`alert`catch`complete`getScreenLeft`topFunction`appendChild`offsetWidth`HTMLFixes`MATCH`addFix`makePath`focus`compare`x5cd`object`pseudoElement`try`name`visited`getPixelWidth`boxSizing`getFixedWidth`all`elements`isElement`pseudoClass`cacheSelector`modules`script`setTimeout`screenLeft`removeChild`PERCENT`backgroundPositionX`DUMMY`hover`unregister`register`join`className`null`exec`display`classes`parse`getCSSText`getPixelLeft`wider`max`disabled`cssCache`node`Boolean`error`unHide`loaded`bottom`marginLeft`absolute`fixBackground`top`String`location`image`getString`active`PREFIX`escape`attributeSelectors`x2f`parentNode`adjacent`nextElement`ie7_anon`pseudoElements`inherit`encoded`isURL`ignore`HEADER`decode`split`encode`resizeWidth`NUMERIC`rect`min`hasLayout`outerHTML`apply`fixedElement`QUOTED`handlers`pop`strings`string`item`small`getPath`styles`pathname`array`httpRequest`finally`Error`readyState`foregroundPosition`backgroundPosition`nested`autoLeft`positionLeft`parseFloat`getOffsetLeft`setOffsetLeft`getBoundingClientRect`propertyName`backgroundLeft`canHaveChildren`backgroundImage`backgroundAttachment`tmpElement`none`background`fixImg`pngTest`FILTER`simpleSelector`delete`getAttribute`lang`compareTagName`ancestor`createElement`code`PIXEL`resizeRight`getPaddingWidth`getBorderWidth`box`submit`clicked`fix`select`useCache`base`large`inlineStyles`LINKS`description`resize`onresize`scrollLeft`pixelLeft`setExpression`default`switch`callee`expression`contains`Height`Width`Top`Left`leftFunction`img`event`NULL`addFilter`suffix`prefix`scale`png`define`navigator`Microsoft`CHILD`COMPLEX`remove`quote`ESCAPE`Function`break`ie7_`x5cb`class`ms_`previousElement`OBJECT`CONTENT`before`unicode`HEX`addTimer`firstChild`create`clearInterval`inline`ANCHOR`Parser`parser`removeTempElement`HEIGHT`getMarginWidth`AUTO`minHeight`marginRight`UNIT`toUpperCase`charAt`BUTTON`UNSUCCESSFUL`button`abbr`htmlFor`HTML`endTag`firstChildElement`continue`block`marginTop`fixMargins`removeEventHandler`attachEvent`key`getElementsByTagName`selectById`NAMESPACE`STREAM`STANDARD_SELECT`toStream`ASTERISK`IMPLIED_SELECTOR`reg`loadStyleSheet`imports`MEDIA`innerHTML`lastIndexOf`URL`fixUrls`scripts`RELATIVE`autoload`mimeType`search`message`onreadystatechange`static`screenTop`autoTop`positionTop`center`clientLeft`setOffsetTop`backgroundTop`protocol`onpropertychange`INPUT`zoom`crop`trans`IE7_PNG_SUFFIX`x00`x_bits`char`x5cnstatic`x_height`x5cn`x_width`javascript`gif`blank`userAgent`bSV1`sizingMethod`AlphaImageLoader`DXImageTransform`progid`toLowerCase`srcElement`onmouseup`activeElement`onblur`onfocus`onmousedown`onmouseout`onmouseover`child`first`children`scriptlet`text`htm`data`after`insertBefore`innerText`setInterval`specificity`x5cu`align`vertical`with`css2`fixHeight`Bottom`Right`paddingRight`paddingLeft`Math`model`onsubmit`reset`form`onclick`textarea`label`xhtml`org`www`http`namespaces`replaceChild`html4`previousSibling`nodeType`clip`border`padding`unquote`contentEditable`onbeforeunload`detachEvent`import`namespace`concat`Array`constructor`size`font`medium`list`float`relative`sizing`lastIndex`successfully`media`ball`bscreen`write`createStyleSheet`ie5`file`not`could`responseText`send`GET`open`XMLHTTP`ActiveXObject`margin`Document`XML`xml`unknown`typeof`CSS1Compat`compatMode`ie7_off`MSIE`ie7_debug`alpha`version`visible`visibility`fromCharCode`` (\\d\\.\\d)``^`\\.$`^[\\w\\.]+[^:]*$`(\\([\x27"]?)([\\w\\.]+[^:\\)]*[\x27"]?\\))`\\\\b|\\\\b|^$`-`(\\s*:\\s*(|))`\\s*:\\s*-`^[^>\\+~\\s]`[\\s>\\+~:@#\\.\\(\\)]|[^\\s>\\+~:@#\\.\\(\\)]+`\\|`([\\s>~\\,]|[^(]\\+|^)([\\.:#@])`(\\\\*[^\\*]*\\*+([^\\][^\\*]*\\*+)*\\)|(\x27[^\x27]*\x27)|("[^"]*")`@(|)[^;\\n]+[;\\n]|<!\\-\\-|\\-\\->`\\:`^\\s+|\\s*([\\{\\}\\+\\,>~\\s;])\\s*|\\s+$`\x27(\\d+)\x27`(\x27[^\x27]*\x27)|("[^"]*")` ="([^"]*)"`^(||)$`^\\d\\w*$`^\\d+%$`^\\d+(px)?$`\\b(|)-(|)\\s*:\\s*\\d`\\b(|)-\\s*:\\s*\\d`^|0cm$`^$````````>`(\\ba(\\.[\\w-]+)?)$`\\{[^\\}]*\\}`::`([^\\}\\s]*\\,[^\\{]*)(\\{\\d+\\})`\\{(\\d+)\\}`[+>~]`\\([a-fA-F\\d]+)`^\\(.*\\)$`([^}]*):(|)[^{]*\\{([^}]*)\\}`\\s*:\\s*([^;]*)(;|$)`([\\()[\\]?{}|*+])`=`\\\\b`%1`(-)?\\s*:([^(};]*)\\(([^\\)]+)\\)([^;}]*)``X`` 0.7.3 ()`\\n\\n``` `:{-:}:{-:}`*{:0}`=``/`.`` [1]: `-.js``<></>`$1`$2`` ` [2]: `([^{}]*)\\{([^}]*[^\\-])?`gi`-\\*:\\*-`\\*:\\*``:;$1`:`xx-,x-,,,,x-,xx-`,`xx-`((-)?\\*:\\*)(`|`)`$1*$2` *#`(` `*`#`.`(^|\\)`(\\|$)`:```\\([^)]*\\)`-`\x27`\\:```:;:0;:;:;:(0 0 0 0);:-9999`!`-`<:`/>`</`>``://.w3./1999/``,,`` `,````..`..=```.=`.=\x27`--`\\*:\\*\\[\\%]*``HR`\\*:\\*\\\\*[^%]``-``-``````````-`[^},\\]*([>+~][^:@,\\{]+|:(`)|\\.[\\-]+\\.[\\-.]+|@[@\\]+)`g`[^\\(]+[+~]|@\\+|:(||`)|\\.[\\-.]+`([^}]*):(`)([^{]*)`\\[([^`=\\]]+)([`]?=?)([^\\]]+)?\\]`{`}`\\`\\```.{-:;:}`\x27\\`0000``;`< = =\x27`-.`\x27 =100% =0 =/x->`+`@`-``^`i```````id`.id.(/\\+/g,\x27\x27)``..(/\\\\*\\+/g,\x27\x27)`.(\x27`\x27)`` ``\\$1`=`==`~=`/(^|\\)`(\\|$)/.(`|=`/^`(-|$)/.(```-`:..(=%1,=\x27\x27)`.`:\x27# 1\\# 1\\ []={0}\x27`-.`$`:``;:1;``,`````-`\\*:\\*`[\\\\-]*:[^};]*```(``Y`((.)+.`.)||0``````.+.`.``` [0]: '.split('\x60')));
+/* packed with http://dean.edwards.name/packer/ */
diff --git a/www/inc/styles/ie7/ie7-standard.js b/www/inc/styles/ie7/ie7-standard.js
new file mode 100644
index 0000000..85608fb
--- /dev/null
+++ b/www/inc/styles/ie7/ie7-standard.js
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */
+if(!window.IE7)new function(){try{window.IE7=this;var DUMMY=this.addModule=new Function;function unHide(){if(document.body)document.body.style.visibility="visible"};this.toString=function(){return "IE7 version 0.7.3 (alpha)"};var alert=(/ie7_debug/.test(location.search))?function(message){window.alert(IE7+"\n\n"+message)}:DUMMY;var appVersion=navigator.appVersion.match(/MSIE (\d\.\d)/)[1];if(/ie7_off/.test(location.search)||appVersion<5||!/^ms_/.test(document.documentElement.uniqueID))return unHide();var quirksMode=Boolean(document.compatMode!="CSS1Compat");var isHTML=(typeof document.mimeType=="unknown")?!/\.xml$/i.test(location.pathname):Boolean(document.mimeType!="XML Document");var LINKS=":link{ie7-link:link}:visited{ie7-link:visited}";var HEADER=LINKS;if(!isHTML)HEADER+="*{margin:0}";var HTMLFixes;var documentElement=document.documentElement;var modules={};this.addModule=function(name,script,autoload){if(!modules)return;if(loaded)eval("script="+String(script));if(autoload){script();script=DUMMY}modules[name]=script};var RELATIVE=/^[\w\.]+[^:]*$/;function makePath(href,path){if(RELATIVE.test(href))href=(path||"")+href;return href};function getPath(href,path){href=makePath(href,path);return href.slice(0,href.lastIndexOf("/")+1)};var path=getPath(document.scripts[document.scripts.length-1].src);var httpRequest=new ActiveXObject("Microsoft.XMLHTTP");function load(href,path){try{href=makePath(href,path);httpRequest.open("GET",href,false);httpRequest.send();return httpRequest.responseText}catch(ignore){alert("Error [1]: could not load file "+href);return ""}};var push=function(array,item){return array.push(item)};var pop=function(array){return array.pop()};if(appVersion<5.5)eval(load("ie7-ie5.js",path));if(document.readyState=="complete"||!isHTML)document.createStyleSheet();else document.write("<style></style>");this.styleSheet=document.styleSheets[document.styleSheets.length-1];this.styleSheet.cssText=LINKS;this.styleSheet.ie7=true;var cssText={};function loadStyleSheet(styleSheet,path){var url=makePath(styleSheet.href,path);if(cssText[url])return "";cssText[url]=(styleSheet.disabled)?"":fixUrls(getCSSText(styleSheet,path),getPath(styleSheet.href,path));return cssText[url]};var getCSSText=function(styleSheet){return styleSheet.cssText};var URL=/(url\(['"]?)([\w\.]+[^:\)]*['"]?\))/gi;function fixUrls(cssText,pathname){return cssText.replace(URL,"$1"+pathname.slice(0,pathname.lastIndexOf("/")+1)+"$2")};this.recalcs=[];this.parse=DUMMY;var complete=false;function _load(){try{complete=true;var MEDIA=/\bscreen\b|\ball\b|^$/i;var styleSheets=document.styleSheets;var inlineStyles=[];var styles=document.getElementsByTagName("style");for(var i=styles.length-1;i>=0;i--){push(inlineStyles,/ie7-link/.test(styles[i].innerHTML)?"":styles[i].innerHTML)}function getCSSText(styleSheet,path){var cssText="";if(MEDIA.test(styleSheet.media)){for(var i=0;i<styleSheet.imports.length;i++){cssText+=arguments.callee(styleSheet.imports[i],getPath(styleSheet.href,path))}cssText+=((styleSheet.href)?loadStyleSheet(styleSheet,path):pop(inlineStyles))}return cssText};IE7.cssText="";for(i=0;i<styleSheets.length;i++)IE7.cssText+=getCSSText(styleSheets[i],"");IE7.cssText=encode(IE7.cssText);for(i in modules)modules[i]();delete modules;if(HTMLFixes)HTMLFixes.apply();CSSFixes.apply();IE7.parse();IE7.styleSheet.cssText=HEADER+decode(IE7.cssText);for(i=0;i<styleSheets.length;i++){if(!styleSheets[i].disabled&&!styleSheets[i].ie7)styleSheets[i].cssText=""}IE7.recalc();alert("loaded successfully")}catch(error){alert("Error [2]: "+error.description)}finally{unHide()}};this.recalc=function(){CSSFixes.recalc();for(var i=0;i<this.recalcs.length;i++)this.recalcs[i]()};var CSSFixes=new function(){var fixes=[];this.addFix=function(){push(fixes,arguments)};var recalcs=[];this.addRecalc=function(pattern,fix){var reg=new RegExp("([^{}]*)\x5c{([^}]*[^\x5cw-])?"+pattern,"gi");var cssText=IE7.cssText;pattern=[];while(match=reg.exec(cssText)){push(pattern,match[1]);if(appVersion<5.5)cssText=cssText.slice(match.lastIndex)}if(pattern.length){pattern=pattern.toString();push(recalcs,arguments)}};this.apply=function(){for(var i=0;i<fixes.length;i++){IE7.cssText=IE7.cssText.replace(fixes[i][0],fixes[i][1])}this.addRecalc("box-sizing\x5cs*:\x5cs*content-box",boxSizing);this.addRecalc("position\x5cs*:\x5cs*absolute",function(element){if(element.offsetParent.currentStyle.position=="relative")boxSizing(element.offsetParent)})};this.recalc=function(){for(var i=0;i<recalcs.length;i++){var elements=cssQuery(recalcs[i][0]);for(var j=0;j<elements.length;j++)recalcs[i][1](elements[j])}};this.addFix(/(float\s*:\s*(left|right))/gi,"display:inline;$1");if(appVersion<6)this.addFix(/display\s*:\s*list-item/gi,"display:block");if(quirksMode){var SIZES="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");for(var i=0;i<SIZES.length;i++)SIZES[SIZES[i]]=SIZES[i-1]||"xx-small";function replace($,$1,$2,$3){return $1+SIZES[$3]};this.addFix(new RegExp("(font(-size)?\x5cs*:\x5cs*)("+SIZES.join("|")+")","gi"),replace)}};var STANDARD_SELECT=/^[^>\+~\s]/;var STREAM=/[\s>\+~:@#\.\(\)]|[^\s>\+~:@#\.\(\)]+/g;var NAMESPACE=/\|/;var IMPLIED_SELECTOR=/([\s>~\,]|[^(]\+|^)([\.:#@])/g;var ASTERISK="$1*$2";var cssCache={};function cssQuery(selector,from){var useCache=!from;var base=(from)?(from.constructor==Array)?from:[from]:[document];var selectors=selector.replace(IMPLIED_SELECTOR,ASTERISK).split(",");var match=[];for(var i=0;i<selectors.length;i++){selector=toStream(selectors[i]);if(selector.slice(0,3).join("")==" *#"){selector=selector.slice(2);from=selectById(base,selector[1])}else from=base;var j=0,token,filter,filterArgs,cacheSelector="";while(j<selector.length){token=selector[j++];filter=selector[j++];cacheSelector+=token+filter;filterArgs="";if(selector[j]=="("){while(selector[j++]!=")")filterArgs+=selector[j];filterArgs=filterArgs.slice(0,-1);cacheSelector+="("+filterArgs+")"}from=(useCache&&cssCache[cacheSelector])?cssCache[cacheSelector]:select(from,token,filter,filterArgs);if(useCache)cssCache[cacheSelector]=from}match=match.concat(from)}return match};function toStream(selector){if(STANDARD_SELECT.test(selector))selector=" "+selector;return selector.match(STREAM)};function select(from,token,filter,filterArgs){var scopeName="";if(NAMESPACE.test(filter)){filter=filter.split("|");scopeName=filter[0];filter=filter[1]}var filtered=[];if(selectors[token])selectors[token](filtered,from,filter,scopeName||filterArgs);return filtered};function selectById(from,id){var filtered=[],i,j;for(i=0;i<from.length;i++){var match=from[i].all.item(id);if(match){if(match.length==null)push(filtered,match);else for(j=0;j<match.length;j++)push(filtered,match[j])}}return filtered};var selectors={" ":function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var subset=(filter=="*"&&from[i].all)?from[i].all:from[i].getElementsByTagName(filter);for(var j=0;j<subset.length;j++){if(isElement(subset[j])&&(!scopeName||subset[j].scopeName==scopeName))push(filtered,subset[j])}}},"#":function(filtered,from,filter){for(var i=0;i<from.length;i++)if(from[i].id==filter)push(filtered,from[i])},".":function(filtered,from,filter){filter=new RegExp("(^|\x5cs)"+filter+"(\x5cs|$)");for(var i=0;i<from.length;i++)if(filter.test(from[i].className))push(filtered,from[i])},":":function(filtered,from,filter,filterArgs){filter=pseudoClasses[filter];if(filter)for(var i=0;i<from.length;i++)if(filter(from[i],filterArgs))push(filtered,from[i])}};var attributeTests="";var pseudoClasses={toString:function(){var toString=[];for(var pseudoClass in this){if(pseudoClass!="link"&&pseudoClass!="visited"){if(this[pseudoClass].length>1)pseudoClass+="\x5c([^)]*\x5c)";push(toString,pseudoClass)}}return toString.join("|")},"link":function(element){return Boolean(element.currentStyle["ie7-link"]=="link")},"visited":function(element){return Boolean(element.currentStyle["ie7-link"]=="visited")}};var dynamicPseudoClasses={toString:pseudoClasses.toString};function compareTagName(element,tagName,scopeName){if(scopeName&&element.scopeName!=scopeName)return false;return(tagName=="*")?isElement(element):(isHTML)?(element.tagName==tagName.toUpperCase()):(element.tagName==tagName)};var strings=[];function getString(string){return QUOTED.test(string)?strings[string.slice(1,-1)]:string};var encode=function(cssText){return cssText.replace(/(\x2f\*[^\*]*\*+([^\x2f][^\*]*\*+)*\x2f)|('[^']*')|("[^"]*")/g,function(match){return(match.charAt(0)=="/")?"":"'"+(push(strings,match.slice(1,-1))-1)+"'"}).replace(/@(namespace|import)[^;\n]+[;\n]|<!\-\-|\-\->/g,"").replace(/\x5c:/g,"|").replace(/^\s+|\s*([\{\}\+\,>~\s;])\s*|\s+$/g,"$1")};function decode(cssText){return cssText.replace(/\|/g,"\x5c:").replace(/'(\d+)'/g,function(match,key){return strings[key]})};var handlers=[];function addEventHandler(element,type,handler){element.attachEvent(type,handler);push(handlers,arguments)};function removeEventHandler(element,type,handler){try{element.detachEvent(type,handler)}catch(ignore){}};window.attachEvent("onbeforeunload",function(){while(handlers.length){var handler=pop(handlers);removeEventHandler(handler[0],handler[1],handler[2])}});var hasLayout=(appVersion<6)?function(element){return element.clientWidth}:function(element){return element.currentStyle.hasLayout};function boxSizing(element){if(!hasLayout(element)){element.contentEditable=false;fixMargins(firstChildElement(element))}};function fixMargins(element){while(element){element.runtimeStyle.marginTop=element.currentStyle.marginTop;element=nextElement(element)}};var QUOTED=/('[^']*')|("[^"]*")/;function quote(value){return(QUOTED.test(value))?value:"'"+value+"'"};function unquote(value){return(QUOTED.test(value))?value.slice(1,-1):value};function tmpElement(tagName){var element=document.createElement(tagName||"object");element.style.cssText="position:absolute;padding:0;display:block;border:none;clip:rect(0 0 0 0);left:-9999";return element};function isElement(node){return Boolean(node&&node.nodeType==1&&node.tagName!="!"&&!node.ie7_anon)};function previousElement(element){while(element&&(element=element.previousSibling)&&!isElement(element))continue;return element};function nextElement(element){while(element&&(element=element.nextSibling)&&!isElement(element))continue;return element};function firstChildElement(element){element=element.firstChild;return(isElement(element))?element:nextElement(element)};var loaded=false;IE7.addModule("ie7-html4",function(){if(isHTML)HTMLFixes=new function(){var fixes=[];function fix(element){var fixedElement=document.createElement("<HTML:"+element.outerHTML.slice(1));if(element.outerHTML.slice(-2)!="/>"){var endTag="</"+element.tagName+">",nextSibling;while((nextSibling=element.nextSibling)&&nextSibling.outerHTML!=endTag){element.parentNode.removeChild(nextSibling);fixedElement.appendChild(nextSibling)}if(nextSibling)element.parentNode.removeChild(nextSibling)}element.parentNode.replaceChild(fixedElement,element);return fixedElement};this.add=function(){push(fixes,arguments)};this.apply=function(){try{if(appVersion>5)document.namespaces.add("HTML","http://www.w3.org/1999/xhtml")}catch(ignore){}finally{for(var i=0;i<fixes.length;i++){var elements=cssQuery(fixes[i][0]);for(var j=0;j<elements.length;j++)fixes[i][1](elements[j])}}};this.add("label",function(element){if(!element.htmlFor){var input=cssQuery("input,select,textarea",element)[0];if(input){if(!input.id)input.id=input.uniqueID;element.htmlFor=input.id}}});this.add("abbr",function(element){fix(element);delete cssCache[" abbr"]});this.add("button,input",function(element){if(element.tagName=="BUTTON"){var match=element.outerHTML.match(/ value="([^"]*)"/i);element.runtimeStyle.value=(match)?match[1]:""}if(element.type=="submit"){addEventHandler(element,"onclick",function(){element.runtimeStyle.clicked=true;setTimeout("document.all."+element.uniqueID+".runtimeStyle.clicked=false",1)})}});this.add("form",function(element){var UNSUCCESSFUL=/^(submit|reset|button)$/;addEventHandler(element,"onsubmit",function(){for(var i=0;i<element.length;i++){if(UNSUCCESSFUL.test(element[i].type)&&!element[i].disabled&&!element[i].runtimeStyle.clicked){element[i].disabled=true;setTimeout("document.all."+element[i].uniqueID+".disabled=false",1)}else if(element[i].tagName=="BUTTON"&&element[i].type=="submit"){setTimeout("document.all."+element[i].uniqueID+".value='"+element[i].value+"'",1);element[i].value=element[i].runtimeStyle.value}}})})}},true);IE7.addModule("ie7-box-model",function(){var NUMERIC="\x5cs*:\x5cs*\x5cd[\x5cw%]*",UNIT=/^\d\w*$/,PERCENT=/^\d+%$/,PIXEL=/^\d+(px)?$/;var MATCH=(appVersion<6)?/\b(min|max)-(width|height)\s*:\s*\d/gi:/\b(min|max)-width\s*:\s*\d/gi;var AUTO=(appVersion<5.5)?/^auto|0cm$/:/^auto$/;var ie7_tmp=tmpElement();push(IE7.recalcs,function removeTempElement(){if(ie7_tmp.parentElement)ie7_tmp.parentElement.removeChild(ie7_tmp)});CSSFixes.addFix(MATCH,function(match){return match.slice(0,3)+match.charAt(4).toUpperCase()+match.slice(5)});var viewport=(quirksMode)?document.body:documentElement;function isFixed(element){return element.style.position=="fixed"||element.currentStyle.position=="fixed"};function layoutParent(element){var layoutParent=element.offsetParent;while(layoutParent&&!hasLayout(layoutParent))layoutParent=layoutParent.offsetParent;if(!layoutParent||isFixed(element))layoutParent=viewport;return layoutParent};function fixWidth(HEIGHT){fixWidth=function(element,value){if(!element.runtimeStyle.fixedWidth&&(!isHTML||element.tagName!="HR")){if(!value)value=element.currentStyle.width;element.runtimeStyle.fixedWidth=(UNIT.test(value))?Math.max(0,getFixedWidth(element,value)):value;element.runtimeStyle.width=element.runtimeStyle.fixedWidth;boxSizing(element)}};if(quirksMode)CSSFixes.addRecalc("width\x5cs*:\x5cs*\x5cd\x5cw*[^%]",fixWidth);var getFixedWidth=(quirksMode)?function(element,value){return getPixelWidth(element,value)+getBorderWidth(element)+getPaddingWidth(element)}:function(element,value){return getPixelWidth(element,value)};function getBorderWidth(element){return element.offsetWidth-element.clientWidth};function getPaddingWidth(element){return getPixelWidth(element,element.currentStyle.paddingLeft)+getPixelWidth(element,element.currentStyle.paddingRight)};function getMarginWidth(element){return((element.currentStyle.marginLeft=="auto")?0:getPixelLeft(element,element.currentStyle.marginLeft))+((element.currentStyle.marginRight=="auto")?0:getPixelLeft(element,element.currentStyle.marginRight))};function minWidth(element){minWidth[minWidth.count++]=element;if(element.currentStyle.minHeight=="auto")element.runtimeStyle.minHeight=0;fixWidth(element);boxSizing(element);resizeWidth(element)};minWidth.count=0;CSSFixes.addRecalc("min-width"+NUMERIC,minWidth);eval(String(minWidth).replace(/min/g,"max"));maxWidth.count=0;CSSFixes.addRecalc("max-width"+NUMERIC,maxWidth);function resizeWidth(element){var rect=element.getBoundingClientRect();var width=rect.right-rect.left;if(element.currentStyle.maxWidth&&width>=getFixedWidth(element,element.currentStyle.maxWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.maxWidth);else if(element.currentStyle.minWidth&&width<=getFixedWidth(element,element.currentStyle.minWidth))element.runtimeStyle.width=getFixedWidth(element,element.currentStyle.minWidth);else element.runtimeStyle.width=element.runtimeStyle.fixedWidth};function fixRight(element){if((element.currentStyle.position=="absolute"||element.currentStyle.position=="fixed")&&element.currentStyle.left!="auto"&&element.currentStyle.right!="auto"&&AUTO.test(element.currentStyle.width)){fixRight[fixRight.count++]=element;boxSizing(element);resizeRight(element)}};fixRight.count=0;CSSFixes.addRecalc("right"+NUMERIC,fixRight);function resizeRight(element){element.runtimeStyle.width="";var parentElement=layoutParent(element);var left=(element.runtimeStyle.screenLeft)?element.getBoundingClientRect().left-2:getPixelLeft(element,element.currentStyle.left);var width=parentElement.clientWidth-getPixelLeft(element,element.currentStyle.right)-left-getMarginWidth(element);if(!quirksMode)width-=getBorderWidth(element)+getPaddingWidth(element);if(width<0)width=0;if(isFixed(element)||HEIGHT||element.offsetWidth<width){element.runtimeStyle.fixedWidth=width;element.runtimeStyle.width=width}};var clientWidth=documentElement.clientWidth;addEventHandler(window,"onresize",function(){var i,wider=(clientWidth<documentElement.clientWidth);clientWidth=documentElement.clientWidth;for(i=0;i<minWidth.count;i++){var element=minWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.minWidth);if(wider&&fixedWidth)element.runtimeStyle.width="";if(wider==fixedWidth)resizeWidth(element)}for(i=0;i<maxWidth.count;i++){var element=maxWidth[i];var fixedWidth=(element.runtimeStyle.width==element.currentStyle.maxWidth);if(!wider&&fixedWidth)element.runtimeStyle.width="";if(wider!=fixedWidth)resizeWidth(element)}for(i=0;i<fixRight.count;i++)resizeRight(fixRight[i]);removeTempElement()});function getPixelWidth(element,value){if(PIXEL.test(value))return parseInt(value);if(PERCENT.test(value))return parseInt(parseFloat(value)/100*layoutParent(element).clientWidth);var parentElement=(element.canHaveChildren)?element:element.parentElement;parentElement.appendChild(ie7_tmp);ie7_tmp.style.width=value;return ie7_tmp.offsetWidth};function getPixelLeft(element,value){if(parseInt(value)>0)return getPixelWidth(element,value);if(PIXEL.test(value))return parseInt(value);element.parentElement.appendChild(ie7_tmp);ie7_tmp.style.left=value;return ie7_tmp.offsetLeft}};eval(String(fixWidth).replace(/Width/g,"Height").replace(/width/g,"height").replace(/Left/g,"Top").replace(/left/g,"top").replace(/Right/g,"Bottom").replace(/right/g,"bottom"));fixWidth();fixHeight(true)});IE7.addModule("ie7-css2",function(){var CHILD=/>/g,ANCHOR=/(\ba(\.[\w-]+)?)$/i;IE7.classes=[];IE7.parser=new Parser;IE7.Class=Class;IE7.DynamicStyle=DynamicStyle;IE7.PseudoElement=PseudoElement;IE7.parse=function(){with(this.parser)this.cssText=decode(parse(encode(this.cssText)));for(var i=0;i<IE7.classes.length;i++)IE7.classes[i].exec();for(i=0;i<pseudoElements.length;i++)pseudoElements[i].create()};getCSSText=function(styleSheet,path){return load(styleSheet.href,path)};var encoded=[];function Parser(){this.parse=function(cssText){Class.ALL=new RegExp("[^},\x5cs]*([>+~][^:@,\x5cs{]+|:("+pseudoClasses+")|\x5c.[\x5cw-]+\x5c.[\x5cw-.]+|@[@\x5cd]+)","g");Class.COMPLEX=new RegExp("[^\x5cs(]+[+~]|@\x5cd+|:(link|visited|"+pseudoClasses+"|"+dynamicPseudoClasses+")|\x5c.[\x5cw-.]+","g");DynamicStyle.ALL=new RegExp("([^}]*):("+dynamicPseudoClasses+")([^{]*)","g");return cssText.replace(PseudoElement.ALL,PseudoElement.ID).replace(DynamicStyle.ALL,DynamicStyle.ID).replace(Class.ALL,Class.ID)};this.encode=function(cssText){AttributeSelector.ALL=new RegExp("\x5c[([^"+attributeTests+"=\x5c]]+)(["+attributeTests+"]?=?)([^\x5c]]+)?\x5c]","g");return cssText.replace(AttributeSelector.ALL,AttributeSelector.ID).replace(/\{[^\}]*\}/g,function($){return "{"+(push(encoded,$)-1)+"}"}).replace(/::/g,":").replace(/([^\}\s]*\,[^\{]*)(\{\d+\})/g,function(match,left,right){return left.split(",").join(right)+right})};this.decode=function(cssText){return cssText.replace(/\{(\d+)\}/g,function($,$1){return encoded[$1]})}};function _Class(){this.toString=function(){return "."+this.name};this.add=function(element){element.className+=" "+this.name};this.remove=function(element){element.className=element.className.replace(this.MATCH,"")};this.exec=function(){var match=cssQuery(this.selector);for(var i=0;i<match.length;i++)this.add(match[i])}};function Class(selector,cssText){this.id=IE7.classes.length;this.name=Class.PREFIX+this.id;this.selector=selector;this.MATCH=new RegExp("\x5cs"+this.name+"\x5cb","g");push(IE7.classes,this)};Class.ancestor=_Class;Class.prototype=new _Class;Class.PREFIX="ie7_";Class.ID=function(match){return simpleSelector(match)+new Class(match)};function _DynamicStyle(){this.exec=function(){var match=cssQuery(this.attach);for(var i=0;i<match.length;i++){var target=(this.target)?cssQuery(this.target,match[i]):[match[i]];if(target)this.dynamicPseudoClass(match[i],target,this)}}};_DynamicStyle.prototype=new _Class;function DynamicStyle(selector,attach,dynamicPseudoClass,target){this.attach=attach;this.dynamicPseudoClass=dynamicPseudoClasses[dynamicPseudoClass];this.target=target;this.inherit=Class;this.inherit(selector)};DynamicStyle.ancestor=_DynamicStyle;DynamicStyle.prototype=new _DynamicStyle;DynamicStyle.ID=function(match,attach,dynamicPseudoClass,target){if(isHTML&&dynamicPseudoClass!="focus"&&ANCHOR.test(attach)&&!/[+>~]/.test(target))return match;return simpleSelector(match)+new DynamicStyle(match,attach,dynamicPseudoClass,target)};HEADER+=".ie7_anon{vertical-align:top;display:inline}";var HEX=/\x5c([a-fA-F\d]+)/g;function unicode(match,code){return eval("'\x5cu"+"0000".slice(code.length)+code+"'")};var pseudoElements=[];function _PseudoElement(){this.content=null;this.toString=function(){return ""};this.specificity=0;function addTimer(object,content,cssText){var timer=setInterval(function(){try{if(!object.load)return;object.load(object,content,cssText);clearInterval(timer)}catch(ignore){clearInterval(timer)}},10)};this.create=function(){if(this.content==null)return;for(var i=0;i<this.match.length;i++){var target=this.match[i];var pseudoElement=target.runtimeStyle[this.position];if(pseudoElement){var parentElement=target.canHaveChildren?target:target.parentElement;var isURL=/^url\(.*\)$/.test(this.content);var element=document.createElement(isURL?PseudoElement.OBJECT:"!");element.ie7_anon=true;element.runtimeStyle.cssText=pseudoElement.cssText;if(!isURL)element.innerText=pseudoElement.content;if(this.position=="before"){parentElement.insertBefore(element,parentElement.firstChild)}else{parentElement.appendChild(element)}if(isURL)addTimer(element,pseudoElement.content,pseudoElement.cssText);target.runtimeStyle[this.position]=null}}};this.exec=function(){this.match=cssQuery(this.selector);for(var i=0;i<this.match.length;i++){var runtimeStyle=this.match[i].runtimeStyle;if(!runtimeStyle[this.position])runtimeStyle[this.position]={cssText:""};runtimeStyle[this.position].cssText+=";"+this.cssText;if(this.content!=null)runtimeStyle[this.position].content=this.content}}};_PseudoElement.prototype=new _Class;function PseudoElement(selector,position,cssText){this.position=position;this.cssText=encoded[cssText].slice(1,-1);var content=this.cssText.match(PseudoElement.CONTENT);if(content)this.content=getString(content[1]).replace(HEX,unicode);this.inherit=Class;this.inherit(selector);push(pseudoElements,this)};PseudoElement.ancestor=_PseudoElement;PseudoElement.prototype=new _PseudoElement;PseudoElement.ID=function(match,selector,position,cssText){return new PseudoElement(selector,position,cssText)};PseudoElement.ALL=/([^}]*):(before|after)[^{]*\{([^}]*)\}/g;PseudoElement.CONTENT=/content\s*:\s*([^;]*)(;|$)/;PseudoElement.OBJECT="<object class=ie7_anon data='"+makePath("ie7-content.htm",path)+"' width=100% height=0 type=text/x-scriptlet>";selectors[">"]=function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var subset=from[i].children;for(var j=0;j<subset.length;j++)if(compareTagName(subset[j],filter,scopeName))push(filtered,subset[j])}};selectors["+"]=function(filtered,from,filter,scopeName){for(var i=0;i<from.length;i++){var adjacent=nextElement(from[i]);if(adjacent&&compareTagName(adjacent,filter,scopeName))push(filtered,adjacent)}};selectors["@"]=function(filtered,from,filter){filter=attributeSelectors[filter];for(var i=0;i<from.length;i++)if(filter(from[i]))push(filtered,from[i])};pseudoClasses["first-child"]=function(element){return!previousElement(element)};pseudoClasses["lang"]=function(element,filterArgs){filterArgs=new RegExp("^"+filterArgs,"i");while(element&&!element.getAttribute("lang"))element=element.parentNode;return element&&filterArgs.test(element.getAttribute("lang"))};dynamicPseudoClasses.hover=function(element){var instance=arguments;addEventHandler(element,"onmouseover",function(){IE7.Event.hover.register(instance)});addEventHandler(element,"onmouseout",function(){IE7.Event.hover.unregister(instance)})};dynamicPseudoClasses.active=function(element){var instance=arguments;addEventHandler(element,"onmousedown",function(){IE7.Event.active.register(instance)})};dynamicPseudoClasses.focus=function(element){var instance=arguments;addEventHandler(element,"onfocus",function(){IE7.Event.focus.register(instance)});addEventHandler(element,"onblur",function(){IE7.Event.focus.unregister(instance)});if(element==document.activeElement){IE7.Event.focus.register(instance)}};addEventHandler(document,"onmouseup",function(){var ie7Event=IE7.Event.active;var instances=ie7Event.instances,i;for(i in instances)ie7Event.unregister(instances[i]);ie7Event=IE7.Event.hover;instances=ie7Event.instances;for(i in instances)if(!instances[i][0].contains(event.srcElement))ie7Event.unregister(instances[i])});var attributeSelectors=[];var ESCAPE=/([\x2f()[\]?{}|*+])/g;function AttributeSelector(attribute,compare,value){value=getString(value);this.id=attributeSelectors.length;switch(attribute.toLowerCase()){case "id":attribute="element.id.replace(/ms_\x5cd+/g,'')";break;case "class":attribute="element.className.replace(/\x5cb\x5cs*ie7_\x5cd+/g,'')";break;default:attribute="element.getAttribute('"+attribute+"')"}compare=attributeTests[compare];push(attributeSelectors,new Function("element","return "+compare(attribute,value)))};AttributeSelector.ID=function(match,attribute,compare,value){return new AttributeSelector(attribute,compare,value)};AttributeSelector.prototype.toString=function(){return AttributeSelector.PREFIX+this.id};attributeTests={toString:function(){var toString=[];for(var i in this)if(i&&i!="escape")push(toString,i);return toString.join("").replace(/=/g,"")},escape:function(value){return value.replace(ESCAPE,"\x5c$1")},"":function(attribute){return attribute},"=":function(attribute,value){return attribute+"=="+quote(value)},"~=":function(attribute,value){return "/(^|\x5cs)"+attributeTests.escape(value)+"(\x5cs|$)/.test("+attribute+")"},"|=":function(attribute,value){return "/^"+attributeTests.escape(value)+"(-|$)/.test("+attribute+")"}};AttributeSelector.PREFIX="@";function _ie7Event(){this.register=function(instance){var element=instance[0];var target=instance[1];var Class=instance[2];for(var i=0;i<target.length;i++)Class.add(target[i]);this.instances[Class.id+element.uniqueID]=instance};this.unregister=function(instance){var element=instance[0];var target=instance[1];var Class=instance[2];for(var i=0;i<target.length;i++)Class.remove(target[i]);delete this.instances[Class.id+element.uniqueID]}};IE7.Event=function(type){this.type=type;this.instances={};IE7.Event[type]=this};IE7.Event.prototype=new _ie7Event;new IE7.Event("hover");new IE7.Event("active");new IE7.Event("focus");function simpleSelector(selector){return selector.replace(Class.COMPLEX,"").replace(CHILD," ")}},true);IE7.addModule("ie7-png",function(){if(appVersion<5.5)return;var FILTER="progid:DXImageTransform.Microsoft.AlphaImageLoader(src=%1,sizingMethod='scale')";var NULL=(/\bSV1\b/.test(navigator.userAgent))?makePath("blank.gif",path):"javascript:'#define x_width 1\x5cn#define x_height 1\x5cnstatic char x_bits[]={0x00}'";var pngTest=new RegExp((window.IE7_PNG_SUFFIX||"-trans.png")+"$","i");function addFilter(element,src){element.runtimeStyle.filter=FILTER.replace(/%1/,src)};var MATCH=/background(-image)?\s*:([^(};]*)url\(([^\)]+)\)([^;}]*)/gi;CSSFixes.addFix(MATCH,function replace(match,image,prefix,url,suffix){url=getString(url);return pngTest.test(url)?"filter:"+FILTER.replace(/scale/,"crop").replace(/%1/,url)+";zoom:1;background"+(image||"")+":"+(prefix||"")+"none"+(suffix||""):match});if(HTMLFixes){function fixImg(element){if(pngTest.test(element.src)){var width=element.width,height=element.height;addFilter(element,element.src);element.src=NULL;element.width=width;element.height=height}else element.runtimeStyle.filter=""};HTMLFixes.add("img,input",function(element){if(element.tagName=="INPUT"&&element.type!="image")return;fixImg(element);addEventHandler(element,"onpropertychange",function(){if(event.propertyName=="src")fixImg(element)})})}});IE7.addModule("ie7-fixed",function(){var PERCENT=/^\d+%$/;CSSFixes.addRecalc("position\x5cs*:\x5cs*fixed",positionFixed);CSSFixes.addRecalc("background[\x5cw\x5cs-]*:[^};]*fixed",backgroundFixed);var body=document.body;var viewport$=(quirksMode)?"body":"documentElement";var viewport=eval(viewport$);function fixBackground(){if(body.currentStyle.backgroundAttachment!="fixed"){if(body.currentStyle.backgroundImage=="none"){body.runtimeStyle.backgroundImage="url("+location.protocol+")"}body.runtimeStyle.backgroundAttachment="fixed"}fixBackground=DUMMY};var ie7_tmp=tmpElement("img");function topFunction(leftFunction){return String(leftFunction).replace(/Left/g,"Top").replace(/left/g,"top").replace(/Width/g,"Height").replace(/X/g,"Y")};function backgroundFixed(element){if(element.currentStyle.backgroundAttachment!="fixed")return;if(!element.contains(body)){fixBackground();backgroundFixed[backgroundFixed.count++]=element;backgroundLeft(element);backgroundTop(element);backgroundPosition(element)}};backgroundFixed.count=0;function backgroundPosition(element){ie7_tmp.src=element.currentStyle.backgroundImage.slice(5,-2);var parentElement=(element.canHaveChildren)?element:element.parentElement;parentElement.appendChild(ie7_tmp);setOffsetLeft(element);setOffsetTop(element);parentElement.removeChild(ie7_tmp)};function backgroundLeft(element){element.style.backgroundPositionX=element.currentStyle.backgroundPositionX;if(!isFixed(element)){var expression="(parseInt(runtimeStyle.offsetLeft)+document."+viewport$+".scrollLeft)||0";element.runtimeStyle.setExpression("backgroundPositionX",expression)}};eval(topFunction(backgroundLeft));function setOffsetLeft(element){var propertyName=isFixed(element)?"backgroundPositionX":"offsetLeft";element.runtimeStyle[propertyName]=getOffsetLeft(element,element.style.backgroundPositionX)-element.getBoundingClientRect().left-element.clientLeft};eval(topFunction(setOffsetLeft));function isFixed(element){if(!element)return false;if(element.style.position=="fixed"||element.currentStyle.position=="fixed")return true;return arguments.callee(element.parentElement)};function getOffsetLeft(element,position){switch(position){case "left":case "top":return 0;case "right":case "bottom":return viewport.clientWidth-ie7_tmp.offsetWidth;case "center":return(viewport.clientWidth-ie7_tmp.offsetWidth)/2;default:if(PERCENT.test(position)){return parseInt((viewport.clientWidth-ie7_tmp.offsetWidth)*parseFloat(position)/100)}ie7_tmp.style.left=position;return ie7_tmp.offsetLeft}};eval(topFunction(getOffsetLeft));function positionFixed(element){if(element.currentStyle.position!="fixed")return;fixBackground();positionFixed[positionFixed.count++]=element;element.style.position="fixed";element.runtimeStyle.position="absolute";foregroundPosition(element)};positionFixed.count=0;function foregroundPosition(element,recalc){positionLeft(element,recalc);positionTop(element,recalc);if(!recalc||element.runtimeStyle.autoTop){if(parseInt(element.currentStyle.bottom)==0)element.runtimeStyle.screenTop++}};function positionLeft(element,recalc){if(!recalc&&PERCENT.test(element.currentStyle.width))element.runtimeStyle.fixWidth=element.currentStyle.width;if(element.runtimeStyle.fixWidth)element.runtimeStyle.width=parseInt(parseFloat(element.runtimeStyle.fixWidth)/100*viewport.clientWidth);if(recalc){if(!element.runtimeStyle.autoLeft)return}else{element.runtimeStyle.autoLeft=element.currentStyle.right!="auto"&&element.currentStyle.left=="auto"}element.runtimeStyle.left="";element.runtimeStyle.screenLeft=getScreenLeft(element);if(element.currentStyle.marginLeft!="auto"){element.parentElement.appendChild(ie7_tmp);ie7_tmp.style.left=element.currentStyle.marginLeft;element.runtimeStyle.screenLeft-=ie7_tmp.offsetLeft;element.parentElement.removeChild(ie7_tmp)}if(isFixed(element.offsetParent))element.runtimeStyle.pixelLeft=element.runtimeStyle.screenLeft;else if(!recalc)element.runtimeStyle.setExpression("pixelLeft","runtimeStyle.screenLeft+document."+viewport$+".scrollLeft")};eval(topFunction(positionLeft).replace(/right/g,"bottom").replace(/width/g,"height"));function getScreenLeft(element){var getScreenLeft=element.offsetLeft,nested=false;var fixed=isFixed(element.offsetParent)&&element.runtimeStyle.autoLeft;while(element=element.offsetParent){if(!fixed&&element.currentStyle.position!="static")nested=true;getScreenLeft+=element.offsetLeft*(nested?-1:1)}return getScreenLeft};eval(topFunction(getScreenLeft));function resize(){for(var i=0;i<backgroundFixed.count;i++)backgroundPosition(backgroundFixed[i]);for(i=0;i<positionFixed.count;i++)foregroundPosition(positionFixed[i],true);timer=0};var timer;addEventHandler(window,"onresize",function(){if(!timer)timer=setTimeout(resize,10)})});loaded=true;if(document.readyState=="complete")_load();else addEventHandler(document,"onreadystatechange",function(){if(!complete&&document.readyState=="complete")setTimeout(_load,0)})}catch(error){unHide();alert("Error [0]: "+error.description)}finally{}}();
diff --git a/www/inc/styles/ie7/ie7.gif b/www/inc/styles/ie7/ie7.gif
new file mode 100644
index 0000000..64a2c2d
--- /dev/null
+++ b/www/inc/styles/ie7/ie7.gif
Binary files differ
diff --git a/www/inc/styles/ie7/license b/www/inc/styles/ie7/license
new file mode 100644
index 0000000..1876e75
--- /dev/null
+++ b/www/inc/styles/ie7/license
@@ -0,0 +1,17 @@
+
+ This work is licensed under a Creative Commons License.
+
+ License: http://creativecommons.org/licenses/by/2.0/
+
+ You are free:
+
+ to copy, distribute, display, and perform the work
+ to make derivative works
+ to make commercial use of the work
+
+ Under the following conditions:
+
+ Attribution. You must give the original author credit
+
+ Author: Dean Edwards/2004
+ Web: http://dean.edwards.name/
diff --git a/www/inc/styles/ie7/test-trans.png b/www/inc/styles/ie7/test-trans.png
new file mode 100644
index 0000000..e187e2c
--- /dev/null
+++ b/www/inc/styles/ie7/test-trans.png
Binary files differ
diff --git a/www/l10n/cs/date.lang b/www/l10n/cs/date.lang
new file mode 100644
index 0000000..72a45a0
--- /dev/null
+++ b/www/l10n/cs/date.lang
@@ -0,0 +1,79 @@
+;Jan
+Led
+;Feb
+Úno
+;Mar
+Bře
+;Apr
+Dub
+;May
+Kvě
+;Jun
+Čer
+;Jul
+Čec
+;Aug
+Srp
+;Sep
+Zář
+;Oct
+Říj
+;Nov
+Lis
+;Dec
+Pro
+
+;January
+Leden
+;February
+Únor
+;March
+Březen
+;April
+Duben
+;May
+Květen
+;June
+Červen
+;July
+Červenec
+;August
+Srpen
+;September
+Září
+;October
+Říjen
+;November
+Listopad
+;December
+Prosinec
+
+;Mon
+Po
+;Tue
+Út
+;Wed
+St
+;Thu
+Čt
+;Fri
+Pá
+;Sat
+So
+;Sun
+Ne
+
+;Monday
+Pondělí
+;Tuesday
+Úterý
+;Wednesday
+Středa
+;Thursday
+Čtvrtek
+;Friday
+Pátek
+;Saturday
+Sobota
+;Sunday
+Neděle
diff --git a/www/l10n/cs/exif.lang b/www/l10n/cs/exif.lang
new file mode 100644
index 0000000..2fc7526
--- /dev/null
+++ b/www/l10n/cs/exif.lang
@@ -0,0 +1,21 @@
+;Time Taken
+Čas pořízení
+;Camera Manufacturer
+Výrobce fotoaparátu
+;Camera Model
+Typ
+;Real Focal Length
+Ohnisková vzdálenost
+;Focal Length Relative to 35mm Film
+Ohnisková vzdálenost (přepočteno na 35mm)
+;F Stop
+Clona
+;Time of Exposure
+Čas expozice
+;Flash
+Blesk
+
+;More info
+Více informací
+;Less info
+Méně informací
diff --git a/www/l10n/cs/main.lang b/www/l10n/cs/main.lang
new file mode 100644
index 0000000..2c2dc57
--- /dev/null
+++ b/www/l10n/cs/main.lang
@@ -0,0 +1,111 @@
+;No comment spam
+Žádné reklamní příspěvky
+
+;Your comment includes blacklisted word
+Váš komentář obsahuje nepovolené slovo
+
+;You ve written the check number wrong
+Kontorlní číslo opsáno chybně
+
+;Could not set name cookie!
+Nepovedlo se zapsat koláček se jménem
+
+;Anonymous
+Anonymní
+
+;Could not write to
+nepovedlo se zapsat do
+
+;Comment from
+Komentář od
+
+;Comment
+Komentář
+
+;Comments
+Komentářů
+
+;zipped MQ images
+archiv obrázků ZIP (SK)
+
+;MQ images tarball
+archiv obrázků TGZ (SK)
+
+;zipped HQ images
+archiv obrázků ZIP (VK)
+
+;HQ images tarball
+archiv obrázků TGZ (VK)
+
+;No such image
+Obrázek neexistuje
+
+;Show Thumbnail Navigation
+Zobrazit náhledy
+
+;Could not write to
+Nepovedlo se zapsat do
+
+;This image has been viewed
+Obrázek již byl viděn
+
+;times
+krát
+
+;WARNING: comment dir not writable
+POZOR: do adresáře s komentáři není právo zápisu
+
+;MQ
+Stř.
+
+;HQ
+Velké
+
+;Generated by
+Vygenerováno pomocí
+
+;Post a Comment
+Přidej komentář
+
+;Show Form
+Zobraz formulář
+
+;Hide Form
+Schovej formulář
+
+;Name:
+Jméno :
+
+;Enter your name.
+Vložte svoje jméno.
+
+;Remember Name:
+Zapamatuj jméno:
+
+;Should the browser remember your name?
+Má se jméno zapamatovat pro další použití?
+
+;Retype PIN Above:
+Vložte kontrolní číslo:
+
+;Enter the number shown above.
+Kontrolní čislo uvedené nahoře je nutné přepsat do tohoto políčka
+
+;Send
+Pošli
+
+;Allowed HTML tags: a,b,i,ul,li,blockquote,br.
+Povolené HTML značky: a,b,i,ul,li,blockquote,br.
+
+
+;display line
+zobrazit na řádce
+
+;display table
+zobrazit jako tabulku
+
+;Previous
+Předchozí
+
+;Next
+Následující
diff --git a/www/l10n/fr/date.lang b/www/l10n/fr/date.lang
new file mode 100644
index 0000000..e9d56b5
--- /dev/null
+++ b/www/l10n/fr/date.lang
@@ -0,0 +1,79 @@
+;Jan
+Jan
+;Feb
+Fv
+;Mar
+Mar
+;Apr
+Avr
+;May
+Mai
+;Jun
+Juin
+;Jul
+Juil
+;Aug
+Ao
+;Sep
+Sep
+;Oct
+Oct
+;Nov
+Nov
+;Dec
+Dec
+
+;January
+Janvier
+;February
+Fvrier
+;March
+Mars
+;April
+Avril
+;May
+Mai
+;June
+Juin
+;July
+Juillet
+;August
+Aot
+;September
+Septembre
+;October
+Octobre
+;November
+Novembre
+;December
+Dcembre
+
+;Mon
+Lun
+;Tue
+Mar
+;Wed
+Mer
+;Thu
+Jeu
+;Fri
+Ven
+;Sat
+Sam
+;Sun
+Dim
+
+;Monday
+Lundi
+;Tuesday
+Mardi
+;Wednesday
+Mercredi
+;Thursday
+Jeudi
+;Friday
+Vendredi
+;Saturday
+Samedi
+;Sunday
+Dimanche
diff --git a/www/l10n/fr/main.lang b/www/l10n/fr/main.lang
new file mode 100644
index 0000000..e824a4e
--- /dev/null
+++ b/www/l10n/fr/main.lang
@@ -0,0 +1,111 @@
+;No comment spam
+Ne spammer pas les commentaires
+
+;Your comment includes blacklisted word
+Votre commentaire contient des mots interdits.
+
+;You ve written the check number wrong
+Le code de verification est faux
+
+;Could not set name cookie!
+Ne peu cr&eacute;er le nom du cookie
+
+;Anonymous
+Anonyme
+
+;Could not write to
+Ne peut ecrire dans
+
+;Comment from
+Commentaire de
+
+;Comment
+ Commentaire
+
+;Comments
+Commentaires
+
+;zipped MQ images
+archive zip (MQ)
+
+;MQ images tarball
+archive tgz (MQ)
+
+;zipped HQ images
+archive zip (HQ)
+
+;HQ images tarball
+archive tgz (HQ)
+
+;No such image
+Aucune image
+
+;Show Thumbnail Navigation
+Affiche les vignettes de navigation
+
+;Could not write to
+Ne peu &eacute;crire dans
+
+;This image has been viewed
+Cette image a &eacute;t&eacute; vu
+
+;times
+fois
+
+;WARNING: comment dir not writable
+ATENTION : le r&eacute;pertoire des commentaire n'est pas accessible en &eacute;criture
+
+;MQ
+Qualit&eacute; moyenne
+
+;HQ
+haute qualit&eacute;
+
+;Generated by
+g&eacute;ner&eacute; par
+
+;Post a Comment
+Laisser un commentaire
+
+;Show Form
+Afficher le formulaire
+
+;Hide Form
+Cacher le formulaire
+
+;Name:
+Nom :
+
+;Enter your name.
+Entrer votre nom.
+
+;Remember Name:
+Se souvenir de mon nom
+
+;Should the browser remember your name?
+Le navigateur doit-il se rappeller votre nom?
+
+;Retype PIN Above:
+Retaper le code au dessus
+
+;Enter the number shown above.
+Entrer le code au dessus
+
+;Send
+Envoyer
+
+;Allowed HTML tags: a,b,i,ul,li,blockquote,br.
+;tags HTML autoris&eacute;: a,b,i,ul,li,blockquote,br.
+
+
+;display line
+affichage en ligne
+
+;display table
+affichage table
+
+;Previous
+Pr&eacute;cedente
+
+;Next
+Suivante
diff --git a/www/lib/lib.l10n.php b/www/lib/lib.l10n.php
new file mode 100644
index 0000000..b2bf6c2
--- /dev/null
+++ b/www/lib/lib.l10n.php
@@ -0,0 +1,58 @@
+<?php
+# ***** BEGIN LICENSE BLOCK *****
+# This file is part of DotClear.
+# Copyright (c) 2004 Olivier Meunier and contributors. All rights
+# reserved.
+#
+# DotClear is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# DotClear is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with DotClear; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# ***** END LICENSE BLOCK *****
+
+
+function __($str)
+{
+ return (!empty($GLOBALS['__l10n'][$str])) ? $GLOBALS['__l10n'][$str] : $str;
+}
+
+//why is this a class damnit!
+//probably just to structure the functions
+class l10n
+{
+ function init()
+ {
+ $GLOBALS['__l10n'] = array();
+ $GLOBALS['__l10n_files'] = array();
+ }
+
+ function set($file)
+ {
+ if (!file_exists($file)) {
+ //trigger_error('l10n file not found',E_USER_NOTICE);
+ return false;
+ }
+
+ $f = file($file);
+ $GLOBALS['__l10n_files'][] = $file;
+
+ for ($i=0; $i<count($f); $i++) {
+ if (substr($f[$i],0,1) == ';' && !empty($f[$i+1])) {
+ $GLOBALS['__l10n'][trim(substr($f[$i],1))] = trim($f[$i+1]);
+ $i++;
+ }
+ }
+ }
+}
+
+?>
diff --git a/www/stock_camera-16.png b/www/stock_camera-16.png
new file mode 100644
index 0000000..42ec54a
--- /dev/null
+++ b/www/stock_camera-16.png
Binary files differ