]> gitweb.fluxo.info Git - original.git/commitdiff
0.11
authorjimmacfx <jimmacfx@4fa712ea-3c06-0410-9261-c11b4c06c003>
Fri, 25 Nov 2005 22:45:21 +0000 (22:45 +0000)
committerjimmacfx <jimmacfx@4fa712ea-3c06-0410-9261-c11b4c06c003>
Fri, 25 Nov 2005 22:45:21 +0000 (22:45 +0000)
git-svn-id: https://forgesvn1.novell.com/svn/original/trunk@8 4fa712ea-3c06-0410-9261-c11b4c06c003

133 files changed:
AUTHORS [new file with mode: 0644]
COPYING [new file with mode: 0644]
ChangeLog.old [new file with mode: 0644]
NEWS [new file with mode: 0644]
README [new file with mode: 0644]
REQUIREMENTS [new file with mode: 0644]
TODO [new file with mode: 0644]
convert/contrib/Original_Script.scpt [new file with mode: 0644]
convert/contrib/imgconv.rb [new file with mode: 0644]
convert/contrib/web-gallery [new file with mode: 0644]
convert/contrib/webgallery-zenity.pl [new file with mode: 0755]
convert/contrib/webgallery.pl [new file with mode: 0755]
convert/gdk-pixbuf-convert/Makefile [new file with mode: 0644]
convert/gdk-pixbuf-convert/gdk-pixbuf-convert.c [new file with mode: 0644]
convert/imgconv [new file with mode: 0755]
info.txt.sample [new file with mode: 0644]
logo.xcf.bz2 [new file with mode: 0644]
www/bcg.png [new file with mode: 0644]
www/favicon.ico [new file with mode: 0644]
www/inc/comment.inc.php [new file with mode: 0644]
www/inc/config.inc.php [new file with mode: 0644]
www/inc/exif.inc.php [new file with mode: 0644]
www/inc/footer.inc.php [new file with mode: 0644]
www/inc/funkce.inc.php [new file with mode: 0644]
www/inc/global.js [new file with mode: 0644]
www/inc/header.inc.php [new file with mode: 0644]
www/inc/l10nget.inc.php [new file with mode: 0644]
www/inc/styles/classic/bcg.png [new file with mode: 0644]
www/inc/styles/classic/classic.css [new file with mode: 0644]
www/inc/styles/classic/classic.css.net [new file with mode: 0644]
www/inc/styles/classic/hascomments.png [new file with mode: 0644]
www/inc/styles/classic/left-16.png [new file with mode: 0644]
www/inc/styles/classic/left.png [new file with mode: 0644]
www/inc/styles/classic/logo-mini.png [new file with mode: 0644]
www/inc/styles/classic/minus.png [new file with mode: 0644]
www/inc/styles/classic/plus.png [new file with mode: 0644]
www/inc/styles/classic/restricted.png [new file with mode: 0644]
www/inc/styles/classic/right-16.png [new file with mode: 0644]
www/inc/styles/classic/right.png [new file with mode: 0644]
www/inc/styles/classic/title.png [new file with mode: 0644]
www/inc/styles/classic/zip.png [new file with mode: 0644]
www/inc/styles/dark/bcg.png [new file with mode: 0644]
www/inc/styles/dark/dark.css [new file with mode: 0644]
www/inc/styles/dark/hascomments.png [new file with mode: 0644]
www/inc/styles/dark/home-inactive.png [new file with mode: 0644]
www/inc/styles/dark/home.png [new file with mode: 0644]
www/inc/styles/dark/left-16.png [new file with mode: 0644]
www/inc/styles/dark/left-inactive.png [new file with mode: 0644]
www/inc/styles/dark/left.png [new file with mode: 0644]
www/inc/styles/dark/logo-mini.png [new file with mode: 0644]
www/inc/styles/dark/minus-inactive.png [new file with mode: 0644]
www/inc/styles/dark/minus.png [new file with mode: 0644]
www/inc/styles/dark/plus-inactive.png [new file with mode: 0644]
www/inc/styles/dark/plus.png [new file with mode: 0644]
www/inc/styles/dark/restricted-inactive.png [new file with mode: 0644]
www/inc/styles/dark/restricted.png [new file with mode: 0644]
www/inc/styles/dark/right-16.png [new file with mode: 0644]
www/inc/styles/dark/right-inactive.png [new file with mode: 0644]
www/inc/styles/dark/right.png [new file with mode: 0644]
www/inc/styles/dark/title.png [new file with mode: 0644]
www/inc/styles/dark/zip-inactive.png [new file with mode: 0644]
www/inc/styles/dark/zip.png [new file with mode: 0644]
www/inc/styles/default/bcg.png [new file with mode: 0644]
www/inc/styles/default/default.css [new file with mode: 0644]
www/inc/styles/default/home-inactive.png [new file with mode: 0644]
www/inc/styles/default/home.png [new file with mode: 0644]
www/inc/styles/default/left-16.png [new file with mode: 0644]
www/inc/styles/default/left-inactive.png [new file with mode: 0644]
www/inc/styles/default/left.png [new file with mode: 0644]
www/inc/styles/default/logo-mini.png [new file with mode: 0644]
www/inc/styles/default/minus-inactive.png [new file with mode: 0644]
www/inc/styles/default/minus.png [new file with mode: 0644]
www/inc/styles/default/plus-inactive.png [new file with mode: 0644]
www/inc/styles/default/plus.png [new file with mode: 0644]
www/inc/styles/default/restricted-inactive.png [new file with mode: 0644]
www/inc/styles/default/restricted.png [new file with mode: 0644]
www/inc/styles/default/right-16.png [new file with mode: 0644]
www/inc/styles/default/right-inactive.png [new file with mode: 0644]
www/inc/styles/default/right.png [new file with mode: 0644]
www/inc/styles/default/title.png [new file with mode: 0644]
www/inc/styles/default/zip-inactive.png [new file with mode: 0644]
www/inc/styles/default/zip.png [new file with mode: 0644]
www/inc/styles/gorilla/gorilla.css [new file with mode: 0644]
www/inc/styles/gorilla/left.png [new file with mode: 0644]
www/inc/styles/gorilla/minus.png [new file with mode: 0644]
www/inc/styles/gorilla/plus.png [new file with mode: 0644]
www/inc/styles/gorilla/right.png [new file with mode: 0644]
www/inc/styles/gorilla/title.png [new file with mode: 0644]
www/inc/styles/grey/grey.css [new file with mode: 0644]
www/inc/styles/grey/left.png [new file with mode: 0644]
www/inc/styles/grey/minus.png [new file with mode: 0644]
www/inc/styles/grey/plus.png [new file with mode: 0644]
www/inc/styles/grey/right.png [new file with mode: 0644]
www/inc/styles/grey/title.png [new file with mode: 0644]
www/inc/styles/ie/ie.css [new file with mode: 0644]
www/inc/styles/ie7/README.txt [new file with mode: 0644]
www/inc/styles/ie7/blank.gif [new file with mode: 0644]
www/inc/styles/ie7/ie7-box-model.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-core.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-css-strict.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-css2.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-css3.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-fixed.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-html4.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-ie5.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-lite-p.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-lite.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-logo.gif [new file with mode: 0644]
www/inc/styles/ie7/ie7-png.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-server.css [new file with mode: 0644]
www/inc/styles/ie7/ie7-standard-p.js [new file with mode: 0644]
www/inc/styles/ie7/ie7-standard.js [new file with mode: 0644]
www/inc/styles/ie7/ie7.gif [new file with mode: 0644]
www/inc/styles/ie7/license [new file with mode: 0644]
www/inc/styles/ie7/test-trans.png [new file with mode: 0644]
www/inc/stylesheet.inc.css [new file with mode: 0644]
www/inc/www.class.inc.php [new file with mode: 0644]
www/index.php [new file with mode: 0644]
www/l10n/cs/date.lang [new file with mode: 0644]
www/l10n/cs/exif.lang [new file with mode: 0644]
www/l10n/cs/main.lang [new file with mode: 0644]
www/l10n/fr/date.lang [new file with mode: 0644]
www/l10n/fr/main.lang [new file with mode: 0644]
www/left.png [new file with mode: 0644]
www/lib/lib.l10n.php [new file with mode: 0644]
www/logo-mini.png [new file with mode: 0644]
www/logo.png [new file with mode: 0644]
www/minus.png [new file with mode: 0644]
www/plus.png [new file with mode: 0644]
www/right.png [new file with mode: 0644]
www/stock_camera-16.png [new file with mode: 0644]
www/top.png [new file with mode: 0644]
www/zip.png [new file with mode: 0644]

diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..d3a30a9
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,3 @@
+Jakub Steiner <jimmac@ximian.com> (original package, zenity-based frontend)
+Tuomas Kuosmanen <tigert@tigert.com> (Nautilus script)
+Larry Ewing <lewing@ximian.com> (gdk-pixbuf scaler)
diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..d60c31a
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,340 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program 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.
+
+    This program 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 this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/ChangeLog.old b/ChangeLog.old
new file mode 100644 (file)
index 0000000..4aa5c96
--- /dev/null
@@ -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 Pérez <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 (file)
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/README b/README
new file mode 100644 (file)
index 0000000..dcfc23a
--- /dev/null
+++ b/README
@@ -0,0 +1,55 @@
+This package includes two separate applications. In the www dir, there is the
+PHP frontend app, the convert dir includes a simple (too simple i guess) script
+that converts your wildcard of images into three subdirs in the current
+directory. You can easily create and upload all images using:
+
+   mkdir temp
+   cd $_
+   /path/to/imgconv *.png *.gif *.{jpeg,jpg}
+   scp -rp ./web-gallery me@my_server:public_html/galleries/gallery_name
+
+and that's it.
+
+Tuomas Kuosmannen (tigert@tigert.com) has created a Nautilus script to create
+"original" galleries (check the REQUIREMENTS file). Just copy the
+convert/contrib/webgallery.pl file to ~/.gnome2/nautilus-scripts and make sure it's got
+the execute bit set.
+
+# UPDATE
+
+   Apart from using netpbm package (http://sourceforge.net/projects/netpbm/) for
+   scaling images, the new webgallery-zenity.pl script uses Larry Ewing's
+   gdk-pixbuf-based scaler. See REQUIREMENTS for details.
+
+   Latest versions of the tools can be found at
+   http://jimmac.musichall.cz/original.php3
+
+Various Notes
+=============
+
+Gallery Dates
+-------------
+By default, original uses the directory timestamp to figure out the date of the
+gallery. If I need to tweak it, i use `touch -d`. However some folks requested
+a more convenient (is it?) way, using a "$gallery/date.txt" file. This
+functionality has been replaced by the mew meta info file - info.txt:
+
+  Info.txt format
+       ---------------
+
+       The file is a simple text of "key|value" pairs on separate lines. The '|'
+       separator is used, since you may want to use '=' and ':' as you're free to
+       use html markup in the file. Make sure you use a utf8 capable editor.
+
+       Some useful keys:
+       -----------------
+
+       date - can be used to override the timestamp of the directory
+       name - you can override the dir name if you prefer not using utf8 filenames
+       description - _short_ dexcription. Will be show in the index page.
+       author - Useful if the photographer isn't you.
+
+
+
+--
+Jakub 'Jimmac' Steiner <jimmac@linux.com>
diff --git a/REQUIREMENTS b/REQUIREMENTS
new file mode 100644 (file)
index 0000000..119c570
--- /dev/null
@@ -0,0 +1,44 @@
+The web backend requires to have a PHP scripting engine running on
+your web server. 
+
+There are two scripts doing the scaling work. convert/imgconv is a plain
+bash script using Imagemagick to generate thumbnails and scaling images.
+You can get Imagemagick at http://www.imagemagick.org/.
+
+# UPDATES #
+
+* netpbm
+  ------
+   You can use netpbm tools instead of ImageMagick for better speed. You can
+   grab netpbm at http://sourceforge.net/projects/netpbm/ but ususally your
+   distro ships with it already. My YDL distro has all the toos in netpbm-progs
+   package.
+
+* webgallery.pl
+  -------------
+
+   Tuomas Kuosmannen created a nautilus script that operates on selection
+   of images. It's way cooler than the bash script. Because the operation
+   can take a while, it has a nifty progressbar. The script itself is in
+   Perl, so you obviously need a functiuoning installation of Perl. For the
+   progressbar to work, you need gtk-perl bindings. You can get them at
+   ftp://ftp.gtk.org. Nautilus is a GUI file manager that rocks for photo
+   management. you can grab it at http://www.eazel.com.
+
+* webgallery-zenity.pl
+  --------------------
+
+   I hacked up Tuomas' script to use only gnome's zenity for the progress bars,
+   so there's no more gtk-perl dependency. Also this script uses Larry Ewing's
+   cool gdk-pixbuf scaler. It is an alternative to ImageMagick's convert
+   (sharing the basic commandline parameters) that discards EXIF information
+   (yet), but is 5 to 8 times as fast. You can really tell on large galleries.
+   You can find both at the convert/ directory. Instructions how to compile
+   gdk-pixbuf-convert.c are included in the file header.
+   
+
+If you wan't to have advanced EXIF information for your photos, make sure you
+use a recent ImageMagick so that convert doesn't throw away this info when
+scaling down. Also grab Metacam
+(http://www.cheeseplant.org/~daniel/pages/metacam.html) and configure the path
+to it in inc/config.inc.php.
diff --git a/TODO b/TODO
new file mode 100644 (file)
index 0000000..d28d222
--- /dev/null
+++ b/TODO
@@ -0,0 +1,6 @@
+- sqlite dependency
+       - page views
+       - rating
+       - comments
+
+  - tags + search?
diff --git a/convert/contrib/Original_Script.scpt b/convert/contrib/Original_Script.scpt
new file mode 100644 (file)
index 0000000..5ff3bd5
Binary files /dev/null and b/convert/contrib/Original_Script.scpt differ
diff --git a/convert/contrib/imgconv.rb b/convert/contrib/imgconv.rb
new file mode 100644 (file)
index 0000000..676ef42
--- /dev/null
@@ -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 (file)
index 0000000..952f8fe
--- /dev/null
@@ -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>\r" > $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 (executable)
index 0000000..7f06826
--- /dev/null
@@ -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 (executable)
index 0000000..d8a7ce7
--- /dev/null
@@ -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/convert/gdk-pixbuf-convert/Makefile b/convert/gdk-pixbuf-convert/Makefile
new file mode 100644 (file)
index 0000000..e350747
--- /dev/null
@@ -0,0 +1,44 @@
+PREFIX = /usr/local
+
+GTKCFLAGS = `pkg-config --cflags gtk+-2.0`
+GTKLDFLAGS += `pkg-config --libs gtk+-2.0`
+GDKPIXBUFCFLAGS = `pkg-config --cflags gdk-pixbuf-2.0`
+GDKPIXBUFLDFLAGS += `pkg-config --libs gdk-pixbuf-2.0`
+
+CPPFLAGS = $(GTKCFLAGS) -D_GNU_SOURCE 
+ifeq ($(DEBUG),yes)
+CFLAGS += -O2 -g
+LDFLAGS = -g #-lefence
+else
+CFLAGS += -Os -fomit-frame-pointer
+endif
+CFLAGS += -Wall
+CPPFLAGS += -DPACKAGE=\"$(PACKAGE)\" -DPREFIX=\"$(PREFIX)\" -DPACKAGE_LOCALE_DIR=\"$(PREFIX)/share/locale\"
+CFLAGS += -MD
+
+MEMBERS = gdk-pixbuf-convert
+LIB_MEMBERS =
+
+OBJS = $(patsubst %,%.o,$(MEMBERS))
+SOURCES = $(patsubst %,%.c,$(MEMBERS) $(LIB_MEMBERS))
+LIB_OBJS = $(patsubst %,%.o,$(LIB_MEMBERS))
+LIB_SOURCES = $(patsubst %,%.c,$(LIB_MEMBERS))
+
+DEPS = $(patsubst %,%.d,$(MEMBERS) $(LIB_MEMBERS))
+
+
+all: gdk-pixbuf-convert
+
+gdk-pixbuf-convert: $(OBJS)
+       $(CC) -o $@ $^  $(GDKPIXBUFCFLAGS) $(GDKPIXBUFLDFLAGS) $(LDFLAGS) -L.
+
+clean:
+       rm -f $(MEMBERS) $(OBJS) $(DEPS)
+
+install: all 
+       mkdir -p $(PREFIX)/bin
+       install -s $(MEMBERS) $(PREFIX)/bin/
+
+uninstall:
+       $(RM) $(PREFIX)/bin/$(MEMBERS)
+
diff --git a/convert/gdk-pixbuf-convert/gdk-pixbuf-convert.c b/convert/gdk-pixbuf-convert/gdk-pixbuf-convert.c
new file mode 100644 (file)
index 0000000..2bdbeca
--- /dev/null
@@ -0,0 +1,226 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+
+/* 
+ * gdk-pixbuf-convert.c gdk pixbuf replacement for convert geometry commands
+ *
+ * Copyright (C) 2003 Ximian Inc.
+ *
+ * Author: Larry Ewing <lewing@ximian.com>
+ *
+ * This program 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.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/* 
+ * build with 
+ * gcc `pkg-config --cflags gdk-pixbuf-2.0` gdk-pixbuf-convert.c -o gdk-pixbuf-convert `pkg-config --libs gdk-pixbuf-2.0`
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <glib-object.h>
+
+#define d(x) x
+
+typedef enum {
+       SAVE_JPG,
+       SAVE_PNG
+} OutputType;
+
+GdkPixbuf *
+scale (GdkPixbuf *src, char *geom)
+{
+       GdkPixbuf *dest = NULL;
+       char *s, *e;
+       guint w;
+       guint h;
+       guint src_w, dest_w;
+       guint src_h, dest_h;
+       double scale_w = 1.0;
+       double scale_h = 1.0;
+       gboolean force = FALSE;
+
+       src_w = gdk_pixbuf_get_width (src);
+       src_h = gdk_pixbuf_get_height (src);
+       
+       /* d(printf ("%d %d ", src_w, src_h);) */
+
+       s = e = geom;
+       
+       w = strtol (s, &e, 10);
+       /* d(printf ("%d ", w);) */
+       if (e != s) {
+               scale_w = w / (double)src_w;
+       } else {
+               w = 100;
+       }
+               
+       
+       if (*e == 'x')
+               e++;
+       else 
+               return NULL;
+       
+       s = e;
+       
+       h = strtol (s, &e, 10);
+       /* d(printf ("%d ", h);) */
+       if (e != s) {
+               scale_h = h / (double)src_h;
+       } else {
+               h = 100;
+       }
+
+       if (*e == '%') {
+               scale_h = h / 100.0;
+               scale_w = w / 100.0;
+               e++;
+       }
+
+       /* d(printf ("%f %f\n", scale_w, scale_h);) */
+       
+       while (*e) {
+               switch (*e) {
+               case '!':
+                       force = TRUE;
+                       break;
+               case '>':
+                       if (scale_w >= 1.0 && scale_h >= 1.0)
+                               scale_w = scale_h = 1.0;                
+                       break;
+               case '<':
+                       if (scale_w < 1.0 || scale_h <= 1.0)
+                               scale_w = scale_h = 1.0;
+                       break;
+               default:
+                       break;
+               }
+               e++;
+       }               
+       
+       if (!force) {
+               /* Keep aspect ratio */
+               scale_w = scale_h = MIN (scale_h, scale_w);
+       }
+
+       dest_w = (int)(src_w * scale_w + 0.5);
+       dest_h = (int)(src_h * scale_h + 0.5);
+
+       /* printf ("%dx%d\n", dest_w, dest_h); */
+
+       /* dest = gdk_pixbuf_scale_simple (src, dest_w, dest_h, GDK_INTERP_BILINEAR);*/
+       dest = gdk_pixbuf_scale_simple (src, dest_w, dest_h, GDK_INTERP_HYPER);
+
+       return dest;
+}
+
+OutputType
+get_filetype (char *filename)
+{
+       gint len = strlen (filename);
+       
+       if (len > 4 && g_ascii_strncasecmp (filename + len - 4, ".png", 4)== 0)
+               return SAVE_PNG;
+       else
+               return SAVE_JPG;
+}
+
+int
+convert (char *geom, char *quality, char *sfile, char *dfile)
+{
+       GdkPixbuf *src;
+       GdkPixbuf *dest;
+       GError *error = NULL;
+       
+       src = gdk_pixbuf_new_from_file (sfile, &error);
+       
+       if (!src) {
+               fprintf (stderr, "Unable to open input file");
+               return 1;
+       }
+       
+       if (geom) {
+               dest = scale (src, geom);
+       } else {
+               dest = src;
+               g_object_ref (dest);
+       }
+       
+       if (!dest)
+               return 1;
+       
+       unlink (dfile);
+       if (get_filetype (dfile) == SAVE_JPG)
+               gdk_pixbuf_save (dest, dfile, "jpeg", &error,
+                                "quality", quality, NULL);
+       else
+               gdk_pixbuf_save (dest, dfile, "png", &error, NULL);
+       
+       g_object_unref (src);
+       g_object_unref (dest);
+       
+       if (error) {
+               return 1;
+       }
+       
+       return 0;
+}
+
+int
+main (int argc, char **argv)
+{
+       char *dfile;
+       char *sfile;
+       char *geom = NULL;
+       char *quality = "100";
+       
+       g_type_init ();
+       
+       if (argc > 4) {
+               int i = 1;
+               if (!g_ascii_strcasecmp (argv[i], "-geometry")) {
+                       i++;
+                       geom = argv[i++];                       
+                       if (argc < 5)
+                               goto usage;
+               }
+               if (!g_ascii_strcasecmp (argv[i], "-quality")) {
+                       i++;
+                       quality = argv[i++];
+                       if (argc < 7)
+                               goto usage;
+                       if ((atoi(quality) < 0) || (atoi(quality) > 100)) {
+                               g_print ("Value for '-quality' must be in range 0-100!\n");
+                               goto usage;
+                       }
+               }
+               sfile = argv[i++];
+               dfile = argv[i++];
+       } else {
+               goto usage;
+       }
+       
+       return convert (geom, quality, sfile, dfile);
+       
+ usage:
+       g_print ("Usage:\n");
+       g_print ("   gdk-pixbuf-convert -geometry <X>x<Y> [-quality <0-100>] <input> <output>\n");
+       g_print ("\n");
+       g_print ("Example:\n");
+       g_print ("   gdk-pixbuf-convert -geometry 120x120 -quality 75 foo.jpg bar.jpg\n");
+       exit (2);
+}
diff --git a/convert/imgconv b/convert/imgconv
new file mode 100755 (executable)
index 0000000..854b664
--- /dev/null
@@ -0,0 +1,238 @@
+#!/bin/bash
+
+# little script to generate image galleries for use with original.
+# uses imagemagick's convert
+# (c) 2005 boris de laage <bdelaage@free.fr>
+# based on imgconv by Jakub Steiner
+#
+# The 'help' section sucks, as my english does.
+
+
+#default options
+dir=./web-gallery
+zip=0
+mq=0
+hq=0
+interactive=0
+verbose=echo
+
+#info.txt stuff
+gal_auth=""
+gal_name=""
+gal_desc=""
+gal_date=""
+gal_user=""
+gal_pass=""
+
+# convert options
+convertor=`which convert`
+extra_ops="-strip"
+
+# This script
+name=`basename $0`
+
+# getopt stuff
+shortopts="a:hHin:d:D:Mqo:Z"
+longopts="author:quiet,help,interactive,name:,date:,description:,\
+mq,hq,output:,archive"
+
+
+
+function echo_help {
+cat <<EOF
+Usage : $1 [OPTIONS]... [FILE]...
+Convert FILEs
+
+  -o, --output DIR           make gallery in DIR
+  -M, --mq                   include 1024x768 images (MQ)
+  -H, --hq                   include original images (HQ)
+  -Z, --archive              make archives
+  -i, --interactive          edit gallery informations interactively
+  -a, --author NAME          set author's name
+  -n, --name NAME            set gallery's name
+  -d, --date DATE            set date to DATE
+  -D, --description DESC     description
+  -q, --quiet                don't say anything
+  -h, --help                 display this help and exit
+
+FILEs must be JPEG  or PNG. if DIR is not given, the
+gallery will be created in $dir.
+
+EOF
+
+}
+
+good_file() {
+    local ftype
+
+    ftype=`file -b "$1" | cut -d " " -f 1`
+
+    if [ "$ftype" == "JPEG" ] || [ "$ftype" == "PNG" ]
+    then
+       return 0
+    else
+       return 1
+    fi
+
+}
+
+
+# If we don't have ImageMagick, cry & exit
+if [ -z $convertor ]; then
+    echo "convert not found... Please install ImageMagick."
+    exit 1
+fi
+
+
+# Parse options
+TEMP=`getopt -o $shortopts --long $longopts -n $name -- "$@"`
+[ $? != 0 ] && exit 1
+
+eval set -- "$TEMP"
+while true; do
+    case "$1" in
+       -h|--help)
+           echo_help $name ; exit 0 ;;
+
+       -i|--interactive)
+           interactive=1 ; shift ;;
+
+       -n|--name)
+           gal_name=$2 ; shift 2 ;;
+
+       -d|--date)
+           gal_date=$2 ; shift 2 ;;
+
+       -D|--description)
+           gal_desc=$2 ; shift 2 ;;
+
+       -a|--author)
+           gal_auth=$2 ; shift 2 ;;
+
+       -o|--output)
+           dir=$2 ; shift 2 ;;
+
+       -Z|--zip)
+           zip=1 ; shift ;;
+
+       -q|--quiet)
+           verbose=false ; shift ;;
+
+       -M|--mq)
+           mq=1 ;  shift ;;
+
+       -H|--hq)
+           hq=1 ; shift ;;
+
+       --)
+           shift ; break ;;
+
+       *)
+           echo "OOops.. getopt error !" ; echo $@ ; exit 1 ;;
+    esac
+done
+
+
+# If no input files are given, display usage & exit
+if [ $# == 0 ]; then
+    cat <<EOF
+Usage: $name [-hMHZ] [-o directory] file...
+       $name -o Gallery *.jpg
+Try \`$name --help' for more information.
+EOF
+    exit 1
+fi
+
+# make dirs
+mkdir -p $dir/thumbs
+mkdir -p $dir/lq
+mkdir -p $dir/comments
+chmod o+w $dir/comments
+[ $mq -gt 0 ] && mkdir -p $dir/mq
+[ $hq -gt 0 ] && mkdir -p $dir/hq
+[ $zip -gt 0 ] && mkdir -p $dir/zip
+
+# Protect info.txt, even if we don't make it.
+echo "<Files info.txt>" > $dir/.htaccess
+echo "        deny from all" >> $dir/.htaccess
+echo "</Files>" >> $dir/.htaccess
+
+
+$verbose "Generating O.R.I.G.I.N.A.L gallery in $dir"
+
+files=$(echo $@ | sed 's/ /\n/g' | sort)
+
+#files=$@
+
+i=1
+for imagefile in $files; do
+
+    good_file "$imagefile"
+    if [ $? != 0 ]; then
+       $verbose "$imagefile is not a JPEG or PNG file, skipped"
+       continue
+    fi
+
+  $verbose -n "converting $imagefile "
+
+  $verbose -n "."
+  $convertor -geometry 120x120 -modulate 100,140,100 -unsharp 1x20 \
+      -quality 60 $extra_opts "$imagefile" $dir/thumbs/img-$i.jpg
+
+  $verbose -n "."
+  $convertor -geometry 640x480 -modulate 100,130,100 -unsharp 1x5 \
+      -quality 90 "$imagefile" $dir/lq/img-$i.jpg
+
+  if [ $mq -gt 0 ]; then
+      $verbose -n "."
+      $convertor -geometry 1024x768 -modulate 100,130,100 -unsharp 1x5 \
+         -quality 80 "$imagefile" $dir/mq/img-$i.jpg
+  fi
+
+  if [ $hq -gt 0 ] ; then
+      $verbose -n "."
+      cp "$imagefile" $dir/hq/img-$i.jpg
+  fi
+
+  # template for comment
+  echo "<span>Photo $i</span>\r" > $dir/comments/$i.txt
+
+
+  i=`expr $i + 1`
+  $verbose " done"
+done
+
+# zip stuff
+if [ $zip -gt 0 ]; then
+    $verbose "archiving"
+    [ $mq ] && zip -R $dir/zip/mq.zip  web-gallery/mq/*.jpg
+    [ $hq ] && zip -R $dir/zip/hq.zip web-gallery/hq/*.jpg
+fi
+
+#info.txt
+protect=n
+if [ $interactive == 1 ]; then
+    echo -n "Gallery name [$gal_name]: "
+    read gal_name
+    echo -n "Description: "
+    read gal_desc
+    echo -n "Author [$gal_auth]: "
+    read gal_auth
+    echo -n "Date [$gal_date]: "
+    read gal_date
+    echo -n "Resctrict access ? [y/N]: "
+    read protect
+    if [ "$protect" == "y" ] || [ "$protect" == "Y" ]; then
+       echo -n "restricted user [$gal_user]: "
+       read gal_user
+       echo -n "restricted password [$gal_pass]: "
+       read gal_pass
+    fi
+fi
+
+[ "$gal_name" != "" ] && echo "name|$gal_name" >> $dir/info.txt
+[ "$gal_auth" != "" ] && echo "author|$gal_auth" >> $dir/info.txt
+[ "$gal_date" != "" ] && echo "date|$gal_date" >> $dir/info.txt
+[ "$gal_desc" != "" ] && echo "description|$gal_desc" >> $dir/info.txt
+[ "$gal_user" != "" ] && echo "restricted_user|$gal_user" >> $dir/info.txt
+[ "$gal_pass" != "" ] && echo "restricted_password|$gal_pass" >> $dir/info.txt
diff --git a/info.txt.sample b/info.txt.sample
new file mode 100644 (file)
index 0000000..5a5f0e8
--- /dev/null
@@ -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/logo.xcf.bz2 b/logo.xcf.bz2
new file mode 100644 (file)
index 0000000..73268eb
Binary files /dev/null and b/logo.xcf.bz2 differ
diff --git a/www/bcg.png b/www/bcg.png
new file mode 100644 (file)
index 0000000..d4f7ac8
Binary files /dev/null and b/www/bcg.png differ
diff --git a/www/favicon.ico b/www/favicon.ico
new file mode 100644 (file)
index 0000000..6d93ef7
Binary files /dev/null and b/www/favicon.ico differ
diff --git a/www/inc/comment.inc.php b/www/inc/comment.inc.php
new file mode 100644 (file)
index 0000000..627a747
--- /dev/null
@@ -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/config.inc.php b/www/inc/config.inc.php
new file mode 100644 (file)
index 0000000..1f0bbd3
--- /dev/null
@@ -0,0 +1,119 @@
+<?php
+#base dirname
+   //dirname("__FILE__/..")
+   eregi("^(.*)/[^/]*$", $ScriptFileName, $x);
+   $root = $x[1];
+# ===========================================================================
+# dir index
+        $sortinmonth = 0;// 1 - alphabetically
+                                                                         // 0 - by date (reverse)
+
+# ===========================================================================
+# default languages
+# use UA's accept language
+require_once("$root/inc/l10nget.inc.php"); //get from UA
+if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) {
+       $sclang = get_lang_from_agent($_SERVER["HTTP_ACCEPT_LANGUAGE"]);
+} else {
+       $sclang = "en";
+}
+l10n::set("$root/l10n/".$GLOBALS['sclang']."/exif.lang");
+
+# ===========================================================================
+#Name to dsplay on the gallery
+$scnamegallery = "Photo Gallery Index";
+
+
+# ===========================================================================
+# albums to show
+   $yearsince = 1999;
+   $yearto = 2005;
+#images FIXME - this is stylesheet's job
+   $img["left"] = "left.png";
+   $img["right"] = "right.png";
+   $img["top"] = "top.png";
+# ===========================================================================
+#thumbnail behaviour
+   //keep this unset for dynamic thumbnail size
+   //$thumbsize = "fixed";
+   //How the previous and Next thumbnails should be scaled
+   // 1 is 1:1, >1 is smaller, <1 is bigger
+   $PNthumbScale = 1.5;
+# Photos Copyright
+#      CHANGE THIS! I am not trying to take over the world ;)
+        $copy = "Copyright &copy; 1999-2005 Jakub Steiner";
+#app info
+   $app["name"] = "Original"; // opensource remote image gallery,
+                              // initialy not as lovely 
+   $app["url"] = "http://jimmac.musichall.cz/original.php3";
+   $app["version"] = "0.11";
+# ===========================================================================
+# EXIF metadata app path (helper app for php3 and older php4)
+# uncomment the method you want to use if you want EXIF data reported
+# ---------------------------------------------------------------------------
+## use internal function of PHP 4:
+   $exif_prog = "php4";
+   $exif_show = array("DateTime"=>__("Time Taken"), 
+                                                       "Make"=>__("Camera Manufacturer"), 
+                                                       "Model"=>__("Camera Model"), 
+                                                       "FocalLength"=>__("Real Focal Length"), 
+                                                       "FocalLengthIn35mmFilm"=>__("Focal Length Relative to 35mm Film"),
+                                                       "FNumber"=>__("F Stop"), 
+                                                       "ExposureTime"=>__("Time of Exposure"), 
+                                                       "ISOSpeedRatings"=>__("Film/Chip Sensitivity"),
+                                                       "Flash"=>__("Flash"));
+# ---------------------------------------------------------------------------
+## use metacam (give absolute path to the binary on the server):
+#   $exif_prog = "/usr/local/bin/metacam";
+## what EXIF data to show (if unset, all will be shown)
+## some example fields for metacam:
+#   $exif_show = array("Image Capture Date", "Make", "Model",
+#                "Exposure Program", "Exposure Mode",
+#                "Focal Length", "Exposure Time",
+#                "Aperture Value", "ISO Speed Rating", "White Balance",
+#                "Flash", "Scene Capture Type",
+#                "Metering Mode", "Max Aperture Value", "Shutter Speed Value"
+#                );
+# ---------------------------------------------------------------------------
+## use jhead (give absolute path to the binary on the server):
+#  $exif_prog = "/usr/local/bin/jhead";
+## what EXIF data to show (if unset, all will be shown)
+## some example fields for jhead:
+# $exif_show = array(
+#                    "Date/Time",
+#                    "Camera make",
+#                    "Camera model",
+#                    "Focal length",
+#                    "Exposure time",
+#                    "Aperture Value",
+#                    "ISO equiv.",
+#                    "Exposure",
+#                  );
+# ===========================================================================
+## Gallery Directory
+# This is a path relative to the directory where original is installed
+# eg. it can be "../galleries" to use a galleries dir above the original dir.
+  $gallery_dir="../galleries";
+
+# This controls wheather web visitors will be able to post
+# comments to images
+$comments = 1;
+
+# Access Log/Counter
+# $log_access = 0; // no access logging
+# $log_access = 1; // simple counter
+# $log_access = 2; // detailed log FIXME: TODO (not sure about doing this, as 
+                                                                        // it duplicates server's access log and tends to grow large
+$log_access = 1; 
+
+#css styles
+   $themes = array(
+               "dark" => "inc/styles/dark/dark.css",
+               "classic" => "inc/styles/classic/classic.css",
+               "gorilla" => "inc/styles/gorilla/gorilla.css"
+   );
+
+
+
+
+?>
diff --git a/www/inc/exif.inc.php b/www/inc/exif.inc.php
new file mode 100644 (file)
index 0000000..f78741e
--- /dev/null
@@ -0,0 +1,223 @@
+<?php
+
+
+function formatEXIF ($k,$v) {
+       // format some special cases
+       // dunno if EXIF support formats it so weirdly everywhere.
+       // Sure does in my php4
+
+       switch ($k) {
+               case "FocalLength":
+                       $out = eval("return $v;"); 
+                       $out .= "mm";
+                       return $out;
+                       break;
+               case "FNumber":
+                       $out = "f/";
+                       $out .= eval("return $v;");
+                       return $out;
+                       break;
+               case "ExposureTime":
+                       // numerator = cistatel; jmenovatel = denominator :)
+                       $x = explode("/",$v,2);
+                       if ($x[0]>=100) {
+                               $out = eval("return ${x[0]}/${x[1]};");
+                               $out .= "s";
+                               return $out;
+                       } else {
+                               return "1/".(1.0/($x[0]/$x[1]))."s";
+                       }
+                       break;
+               case "Flash";
+                       if ($v=="0") {
+                               return "No Flash";
+                       } else {
+                               return $v;
+                       }
+                       break;
+               case "ISOSpeedRatings":
+                       return "ISO" . $v;
+                       break;
+               case "GainControl";
+                       return "EV" . $v;
+                       break;
+               case "FocalLengthIn35mmFilm":
+                       return $v . "mm";
+                       break;
+               case "DateTime":
+                       //return date("M d Y H:i:s", $v);
+                       ereg("^([0-9]{4}):([0-9]{1,2}):([0-9]{1,2}) (.*)",$v,$x);
+                       return $x[1] . "/" . $x[2] . "/" . $x[3] . " " . $x[4];
+                       break;
+               default:
+                       return $v;
+       }
+}
+
+
+if ($exif_prog=="php4") {
+   // php internal handling
+        // $file is LQ image
+   $exif_array = exif_read_data("$file");
+        reset($exif_array);
+        if ($exif_show) reset($exif_show);
+
+        if ($exif_array["Make"]) { // only render all this 
+                                                                                                                       // if there is EXIF header
+                       // fancy table look
+                       echo "<div id=\"exif_table\" style=\"display: none;\">\n";
+                       echo "<table class=\"exif\" border=\"0\">\n";
+                       //co ukazat (podle exif_show)
+                       if ($exif_show) {
+                                while (list($kx,$x) = each($exif_show)) {
+                                        while(list($k,$v)=each($exif_array)) {
+                                        if ($kx==$k) {
+                                                echo "<tr>";
+                                                echo "<td align=\"right\">";
+                                                echo $x;
+                                                echo ": </td>";
+                                                echo "<td><b>";
+                                                echo formatEXIF($k,$v);
+                                                echo "</b></td>";
+                                                echo "</tr>\n";
+                                        }
+                                        }
+                                        reset($exif_array);
+                                }
+                       } else {
+                                //ukaze vsechno v tabulce
+                                while(list($k,$v)=each($exif_array)) {
+                                               echo "<tr>";
+                                               echo "<td align=\"right\">";
+                                               echo $k;
+                                               echo ": </td>";
+                                               echo "<td><b>";
+                                               echo formatEXIF($k,$v);
+                                               echo "</b></td>";
+                                               echo "</tr>\n";
+                                }
+                       }
+                       echo "<tr>\n";
+                       echo "<td></td>";
+                       echo "<td><a href=\"javascript:toggle_exif()\">" . __("Less info");
+                       echo "</a></td>";
+                       echo "</tr>\n";
+                       echo "</table>\n";
+                       echo "</div>\n";
+
+
+
+
+
+                       // selected EXIF header on one line
+                       echo "<div id=\"exif_line\">\n";
+                       echo "<p class=\"exif\">";
+                       reset($exif_array);
+                       if ($exif_show) reset($exif_show);
+                       if ($exif_show) {
+                                while (list($kx,$x) = each($exif_show)) {
+                                        while(list($k,$v)=each($exif_array)) {
+                                                        if ($kx==$k) {
+                                                                       echo "<span title=\"$x\">";
+                                                                       echo formatEXIF($k,$v);
+                                                                       echo "</span> | ";
+                                                        }
+                                               }
+                                reset($exif_array);
+                                }
+                       } else {
+                               /* vsechny exif headers inline */
+                                while(list($k,$v)=each($exif_array)) {
+                                               echo "<span title=\"";
+                                               echo $k;
+                                               echo "\">";
+                                               echo formatEXIF($k,$v);
+                                               echo "</span> | ";
+                                }
+                       }
+
+                       echo "<a href=\"javascript:toggle_exif()\">" . __("More info");
+                       echo "</a></p>\n";
+                       echo "</div>\n";
+               }
+
+
+
+
+
+
+
+
+        
+} else {
+   // the old code, handles e.g. metacam and jhead as EXIF extractors
+   // loading lq means it won't work if the convertor doesn't copy EXIF data
+   // (newer ImageMagick can)
+        // PATCHES WELCOME
+   exec("$exif_prog \"$gallery_dir/$galerie/lq/img-$snimek.jpg\"", $exif_data, $exif_status);
+   if ($exif_status!="2") {
+      if ($exif_style=="descriptive") {
+         // fancy table look
+         echo "<table border=\"0\" align=\"center\" class=\"exif\">\n";
+         while ($x = current($exif_data)) {
+            eregi("^ *([^:]*): *(.*)", $x, $y);
+            //filter according to $exif_show array
+            if (!$exif_show) { //all fields shown
+                     echo "<tr>";
+                     echo "<td align=\"right\">$y[1] :</td>";
+                     echo "<td><b>$y[2]</b></td>";
+                     echo "</tr>\n";
+            } else {
+               reset($exif_show);
+               while ($z = current($exif_show)) {
+                  //echo ".$z. ::: .$y[1].<br>";
+                 if (trim($z) == trim($y[1])) {
+                     echo "<tr>";
+                     echo "<td align=\"right\">$y[1] :</td>";
+                     echo "<td><b>$y[2]</b></td>";
+                     echo "</tr>\n";
+                  }
+               next($exif_show);
+               }
+            }
+            next($exif_data);
+         }
+         echo "<tr>\n";
+         echo "<td></td>";
+      # only show if EXIF header exists
+      if ($y[1]!="File") { // don't show when no EXIF
+            echo "<td><a href=\"$ThisScript?galerie=$galerie&photo=$snimek";
+            echo "&exif_style=simple&show_thumbs=$show_thumbs\">";
+            echo "<b>display in-line</b></a></td>\n";
+      }
+         echo "</tr>\n";
+         echo "</table>\n";
+      } else {
+         //simple plaintext look
+         echo "<p class=\"exif\" align=\"center\">";
+         while ($x = current($exif_data)) {
+            eregi("^ *([^:]*): *(.*)", $x, $y);
+            if (!$exif_show) { //all fields shown
+               echo "$y[2] |";
+            } else {
+               reset($exif_show);
+               while ($z = current($exif_show)) {
+                 if (trim($z) == trim($y[1])) {
+                     echo "$y[2] | ";
+                  }
+                  next($exif_show);
+               }
+            }
+            next($exif_data);
+         }
+         # only show if EXIF header exists
+         if ($y[1]!="File") {
+            echo "<a href=\"$ThisScript?galerie=$galerie&photo=$snimek";
+            echo "&exif_style=descriptive&show_thumbs=$show_thumbs\">";
+            echo "<b>display table</b></a>\n";
+            echo "</p>\n";
+         }
+      }
+   }
+}
+?>
diff --git a/www/inc/footer.inc.php b/www/inc/footer.inc.php
new file mode 100644 (file)
index 0000000..28b4eee
--- /dev/null
@@ -0,0 +1,29 @@
+<?php
+
+/*
+echo "<p class=\"copyright\">\n";
+echo "<a href=\"http://jigsaw.w3.org/css-validator/validator?uri=";
+echo "http://$HostName$ThisScript\">";
+echo "<img align=\"top\" style=\"border:0;width:88px;height:31px\"";
+echo " src=\"http://jigsaw.w3.org/css-validator/images/vcss\""; 
+echo " alt=\"Valid CSS!\">";
+echo "</a>\n";
+
+echo "<a href=\"http://validator.w3.org/check?uri=";
+echo "http://$HostName$ThisScript\">";
+echo "<img align=\"top\" style=\"border:0;width:88px;height:31px\"";
+echo " src=\"http://www.w3.org/Icons/valid-html401\""; 
+echo " alt=\"Valid HTML 4.01!\">";
+echo "</a>\n";
+*/
+
+echo "\n\n<div class=\"footer\">";
+echo "$copy";
+echo "<br />" . __('Generated by') . "\n   <em>";
+echo "<a href=\"" . $app["url"] . "\">";
+echo $app["name"];
+echo "</a>";
+echo " ver. " . $app["version"];
+echo "</em>\n";
+echo "</div>\n";
+?>
diff --git a/www/inc/funkce.inc.php b/www/inc/funkce.inc.php
new file mode 100644 (file)
index 0000000..be897f7
--- /dev/null
@@ -0,0 +1,197 @@
+<?php
+function navigation ($gallery, $snapshot, $image) {
+   global $gallery_dir, $root, $ThisScript, $textnav, $img, 
+          $show_thumbs, $exif_style, $PNthumbScale;
+
+   $next = $snapshot + 1;
+   $prev = $snapshot - 1;
+
+   if (!$image) { // this will render a navigation bar - max 3 buttons
+      echo "\n<div class=\"navbuttons\">\n";
+      echo "<div class=\"navbuttonsshell\">\n";
+      if ($snapshot > 1) { //previous 
+         echo "<a id=\"previcon\" href=\"$ThisScript?galerie=$gallery&amp;photo=$prev";
+         echo "&amp;exif_style=$exif_style&amp;show_thumbs=$show_thumbs\"";
+                                echo " accesskey=\"p\">";
+         echo "&lt; <span class=\"accesskey\">P</span>revious</a>\n";
+      }
+      echo "&nbsp;";
+      if (is_file("$gallery_dir/$gallery/lq/img-$next.jpg")) { //next
+         echo "<a id=\"nexticon\" href=\"$ThisScript?galerie=$gallery&amp;photo=$next";
+         echo "&amp;exif_style=$exif_style&amp;show_thumbs=$show_thumbs\"";
+                                echo " accesskey=\"n\">";
+         echo "<span class=\"accesskey\">N</span>ext &gt;</a>\n";
+      }
+      echo "</div>\n</div>\n";
+   } elseif ($image=="prev") { //previous thumbnail
+      if ($snapshot > 1) { //previous 
+         echo "<div class=\"prevthumb\">";
+         echo "<a href=\"$ThisScript?galerie=$gallery&amp;photo=$prev";
+         echo "&amp;exif_style=$exif_style&amp;show_thumbs=$show_thumbs\">";
+         if (file_exists("$gallery_dir/$gallery/thumbs/img-$prev.png")) {
+            $Pthumb = "$gallery_dir/$gallery/thumbs/img-$prev.png";
+         } else {
+            $Pthumb = "$gallery_dir/$gallery/thumbs/img-$prev.jpg";
+         }
+         $v = getimagesize("$root/$Pthumb");
+         echo "<img alt=\"Previous\" src=\"";
+         echo $Pthumb . "\" width=\"" . round($v[0]/$PNthumbScale);
+         echo "\" height=\"" . round($v[1]/$PNthumbScale) . "\" />";
+         echo "<br />" . __('Previous');
+         echo "</a></div>\n";
+      }
+   } else { //next thumbnail
+      if (is_file("$gallery_dir/$gallery/lq/img-$next.jpg")) {
+         echo "<div class=\"nextthumb\">";
+         echo "<a href=\"$ThisScript?galerie=$gallery&amp;photo=$next";
+         echo "&amp;exif_style=$exif_style&amp;show_thumbs=$show_thumbs\">";
+         if (file_exists("$gallery_dir/$gallery/thumbs/img-$next.png")) {
+            $Nthumb = "$gallery_dir/$gallery/thumbs/img-$next.png";
+         } else {
+            $Nthumb = "$gallery_dir/$gallery/thumbs/img-$next.jpg";
+         }
+         $v = getimagesize("$root/$Nthumb");
+         echo "<img alt=\"Next\" src=\"";
+         echo $Nthumb . "\" width=\"" . round($v[0]/$PNthumbScale);
+         echo "\" height=\"" . round($v[1]/$PNthumbScale) . "\" />";
+         //echo "<br /><span class=\"accesskey\">N</span>ext";
+         echo "<br />" . __('Next') ;   
+         echo "</a></div>\n";
+      }
+   }
+
+}
+
+function check($file) {
+   global $gallery_dir, $page;
+   
+#   if (eregi("[^0-9a-z\_\-\ ]",$file) || !file_exists("$gallery_dir/$file")) {
+#   if (eregi("CVS",$file) || !file_exists("$gallery_dir/$file")) {
+   if (!file_exists("$gallery_dir/$file")) {
+      echo "funkce.inc.php/check(): Bad input";
+      $page->footer();
+      exit;
+   }
+}
+
+function browserCheck() {
+   global $HTTP_USER_AGENT;
+   
+        $HTTP_USER_AGENT=$_SERVER["HTTP_USER_AGENT"];
+   if (eregi("(MSIE.[456789]).*Mac.*",$HTTP_USER_AGENT)) {
+        return("macie4+");
+   } elseif (eregi("(MSIE.[678])",$HTTP_USER_AGENT)) {
+        return("ie6+");
+   } elseif (eregi("(MSIE.[45])",$HTTP_USER_AGENT)) {
+        return("ie4+");
+   } elseif (eregi("Opera",$HTTP_USER_AGENT)) {
+        return("opera");
+   } elseif (eregi("(Mozilla.4)",$HTTP_USER_AGENT)) {
+        return("netscape4");
+   } elseif (eregi("(Mozilla.[5-9])",$HTTP_USER_AGENT)) {
+        return("mozilla");
+   } elseif (eregi("KMeleon",$HTTP_USER_AGENT)) {
+        return("mozilla");
+   } else {
+        return("Netscape3");
+   }
+}
+
+function infoParse ($infofile) {
+       
+       $info_array = file($infofile);
+       foreach ($info_array as $line) {
+               list($key,$value) = split("\|",$line);
+               $result[$key]=$value;
+       }
+       return $result;
+}
+
+function readInfo ($infofile, $file) {
+       global $galerieyear, $galeriemonth, $galerieday, $galeriedesc, $galerieauthor,
+              $galeriename, $galerielogin, $galeriepw, $gallery_dir;
+       
+       if (file_exists($infofile)) {
+               //read from info.txt
+               $info_array = infoParse($infofile);
+               if ($info_array["date"]) {
+                       // try to be a little smarter about format
+                       if (ereg("([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})",
+                               $info_array["date"])) {
+                               // remain compatible - DD.MM.YYYY
+                               list($day,$month,$year) = split("\.", $info_array["date"]);
+                               rtrim($year);
+                               rtrim($month);
+                               rtrim($day);
+                               $info_array["date"] = "$year-$month-$day"; //make it US date
+                       }
+                       // US date format at this point
+                       $tstamp = strtotime($info_array["date"]);
+               } else {
+                       $tstamp = filemtime("$gallery_dir/$file");// Get from filesystem
+               }
+               $galerieyear["$file"] = date("Y", $tstamp);
+               $galeriemonth["$file"] = date("m", $tstamp);
+               $galerieday["$file"] = date("d", $tstamp);
+               
+               if (@$info_array["description"]) {
+                       $galeriedesc["$file"] = rtrim($info_array["description"]);
+               }
+               
+               if (@$info_array["author"]) {
+                       $galerieauthor["$file"] = rtrim($info_array["author"]);
+               }
+               
+               if (@$info_array["name"]) {
+                       $galeriename["$file"] = rtrim($info_array["name"]);
+               }
+               
+               if (@$info_array["restricted_user"]) {
+                       $galerielogin["$file"] = rtrim($info_array["restricted_user"]);
+                       $galeriepw["$file"] = rtrim($info_array["restricted_password"]);
+               }
+ } else { // Get Dates from modification stamp
+               $mtime = filemtime("$gallery_dir/$file");
+               $galerieyear["$file"] = date("Y", $mtime);
+               $galeriemonth["$file"] = date("m", $mtime); //F
+               $galerieday["$file"] = date("d", $mtime);
+ }
+}
+
+function access_check($login, $password,$realm) {
+   if (!($_SERVER['PHP_AUTH_USER']=="$login" && $_SERVER['PHP_AUTH_PW']=="$password")) {
+      header("WWW-authenticate: Basic Realm=$realm");
+      Header("HTTP/1.0 401 Unauthorized");
+                       $err = new C_www;
+      $err->header("Access Denied");
+                       echo "<div class=\"error\">\n";
+                       echo "<h1>Access Denied</h1>\n";
+                       echo "<p>Sorry, this gallery is restricted</p>\n";
+                       echo "<p><a href=\"index.php\">Return to index</a></p>\n";
+                       echo "</div>\n";
+                       $err->footer();
+      exit;
+   }
+
+}
+
+function random_digits($times) {
+       $random="";
+       for ($i=0;$i<$times;$i++) {
+               $random .= rand(0,9);
+       }
+       return $random;
+}
+
+function get_photo_title($galerie, $id) {
+  global $gallery_dir;
+  if ($title = @file_get_contents("$gallery_dir/$galerie/comments/${id}.txt")) {
+    $title = trim(preg_replace('/[\s\n\r]+/', ' ', strip_tags($title)));
+    if (strlen($title) > 80)
+      $title = trim(substr($title, 0, 77)) . "...";
+  } else 
+    $title = "Photo ${id}";
+  return $title;
+}
+
+?>
diff --git a/www/inc/global.js b/www/inc/global.js
new file mode 100644 (file)
index 0000000..ff8ec21
--- /dev/null
@@ -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/header.inc.php b/www/inc/header.inc.php
new file mode 100644 (file)
index 0000000..483b6ef
--- /dev/null
@@ -0,0 +1,14 @@
+<div class="stylenavbar">
+[ style: 
+<?php
+foreach ($themes as $skin => $url) {
+      echo "<a href=\"#\" title=\"$skin\"";
+      echo " onclick=\"setActiveStyleSheet('$skin')\">";
+      echo "$skin</a> \n";
+}
+?>
+]
+</div>
+<?php
+echo "<h1 class=\"title\"><a href=\"http://$HostName$ThisScript\">Photo Gallery<span /></a></h1>\n\n";
+?>
diff --git a/www/inc/l10nget.inc.php b/www/inc/l10nget.inc.php
new file mode 100644 (file)
index 0000000..f04b18c
--- /dev/null
@@ -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 (file)
index 0000000..d4f7ac8
Binary files /dev/null and b/www/inc/styles/classic/bcg.png differ
diff --git a/www/inc/styles/classic/classic.css b/www/inc/styles/classic/classic.css
new file mode 100644 (file)
index 0000000..da56645
--- /dev/null
@@ -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 (file)
index 0000000..c8a0f3f
--- /dev/null
@@ -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 (file)
index 0000000..957a459
Binary files /dev/null and b/www/inc/styles/classic/hascomments.png differ
diff --git a/www/inc/styles/classic/left-16.png b/www/inc/styles/classic/left-16.png
new file mode 100644 (file)
index 0000000..625a1ab
Binary files /dev/null and b/www/inc/styles/classic/left-16.png differ
diff --git a/www/inc/styles/classic/left.png b/www/inc/styles/classic/left.png
new file mode 100644 (file)
index 0000000..bd5607c
Binary files /dev/null and b/www/inc/styles/classic/left.png differ
diff --git a/www/inc/styles/classic/logo-mini.png b/www/inc/styles/classic/logo-mini.png
new file mode 100644 (file)
index 0000000..8949154
Binary files /dev/null and b/www/inc/styles/classic/logo-mini.png differ
diff --git a/www/inc/styles/classic/minus.png b/www/inc/styles/classic/minus.png
new file mode 100644 (file)
index 0000000..19eaef3
Binary files /dev/null and b/www/inc/styles/classic/minus.png differ
diff --git a/www/inc/styles/classic/plus.png b/www/inc/styles/classic/plus.png
new file mode 100644 (file)
index 0000000..062d005
Binary files /dev/null and b/www/inc/styles/classic/plus.png differ
diff --git a/www/inc/styles/classic/restricted.png b/www/inc/styles/classic/restricted.png
new file mode 100644 (file)
index 0000000..33091eb
Binary files /dev/null and b/www/inc/styles/classic/restricted.png differ
diff --git a/www/inc/styles/classic/right-16.png b/www/inc/styles/classic/right-16.png
new file mode 100644 (file)
index 0000000..42e783f
Binary files /dev/null and b/www/inc/styles/classic/right-16.png differ
diff --git a/www/inc/styles/classic/right.png b/www/inc/styles/classic/right.png
new file mode 100644 (file)
index 0000000..bc5bcc5
Binary files /dev/null and b/www/inc/styles/classic/right.png differ
diff --git a/www/inc/styles/classic/title.png b/www/inc/styles/classic/title.png
new file mode 100644 (file)
index 0000000..8a6ad6b
Binary files /dev/null and b/www/inc/styles/classic/title.png differ
diff --git a/www/inc/styles/classic/zip.png b/www/inc/styles/classic/zip.png
new file mode 100644 (file)
index 0000000..0bc44ab
Binary files /dev/null and b/www/inc/styles/classic/zip.png differ
diff --git a/www/inc/styles/dark/bcg.png b/www/inc/styles/dark/bcg.png
new file mode 100644 (file)
index 0000000..d4f7ac8
Binary files /dev/null and b/www/inc/styles/dark/bcg.png differ
diff --git a/www/inc/styles/dark/dark.css b/www/inc/styles/dark/dark.css
new file mode 100644 (file)
index 0000000..78f82eb
--- /dev/null
@@ -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 (file)
index 0000000..44729de
Binary files /dev/null and b/www/inc/styles/dark/hascomments.png differ
diff --git a/www/inc/styles/dark/home-inactive.png b/www/inc/styles/dark/home-inactive.png
new file mode 100644 (file)
index 0000000..16718e2
Binary files /dev/null and b/www/inc/styles/dark/home-inactive.png differ
diff --git a/www/inc/styles/dark/home.png b/www/inc/styles/dark/home.png
new file mode 100644 (file)
index 0000000..d1f87e9
Binary files /dev/null and b/www/inc/styles/dark/home.png differ
diff --git a/www/inc/styles/dark/left-16.png b/www/inc/styles/dark/left-16.png
new file mode 100644 (file)
index 0000000..625a1ab
Binary files /dev/null and b/www/inc/styles/dark/left-16.png differ
diff --git a/www/inc/styles/dark/left-inactive.png b/www/inc/styles/dark/left-inactive.png
new file mode 100644 (file)
index 0000000..38f572d
Binary files /dev/null and b/www/inc/styles/dark/left-inactive.png differ
diff --git a/www/inc/styles/dark/left.png b/www/inc/styles/dark/left.png
new file mode 100644 (file)
index 0000000..62985d9
Binary files /dev/null and b/www/inc/styles/dark/left.png differ
diff --git a/www/inc/styles/dark/logo-mini.png b/www/inc/styles/dark/logo-mini.png
new file mode 100644 (file)
index 0000000..8949154
Binary files /dev/null and b/www/inc/styles/dark/logo-mini.png differ
diff --git a/www/inc/styles/dark/minus-inactive.png b/www/inc/styles/dark/minus-inactive.png
new file mode 100644 (file)
index 0000000..e29159f
Binary files /dev/null and b/www/inc/styles/dark/minus-inactive.png differ
diff --git a/www/inc/styles/dark/minus.png b/www/inc/styles/dark/minus.png
new file mode 100644 (file)
index 0000000..c0f3241
Binary files /dev/null and b/www/inc/styles/dark/minus.png differ
diff --git a/www/inc/styles/dark/plus-inactive.png b/www/inc/styles/dark/plus-inactive.png
new file mode 100644 (file)
index 0000000..57a6186
Binary files /dev/null and b/www/inc/styles/dark/plus-inactive.png differ
diff --git a/www/inc/styles/dark/plus.png b/www/inc/styles/dark/plus.png
new file mode 100644 (file)
index 0000000..10332ae
Binary files /dev/null and b/www/inc/styles/dark/plus.png differ
diff --git a/www/inc/styles/dark/restricted-inactive.png b/www/inc/styles/dark/restricted-inactive.png
new file mode 100644 (file)
index 0000000..b572e84
Binary files /dev/null and b/www/inc/styles/dark/restricted-inactive.png differ
diff --git a/www/inc/styles/dark/restricted.png b/www/inc/styles/dark/restricted.png
new file mode 100644 (file)
index 0000000..99bd4d5
Binary files /dev/null and b/www/inc/styles/dark/restricted.png differ
diff --git a/www/inc/styles/dark/right-16.png b/www/inc/styles/dark/right-16.png
new file mode 100644 (file)
index 0000000..42e783f
Binary files /dev/null and b/www/inc/styles/dark/right-16.png differ
diff --git a/www/inc/styles/dark/right-inactive.png b/www/inc/styles/dark/right-inactive.png
new file mode 100644 (file)
index 0000000..ceb394f
Binary files /dev/null and b/www/inc/styles/dark/right-inactive.png differ
diff --git a/www/inc/styles/dark/right.png b/www/inc/styles/dark/right.png
new file mode 100644 (file)
index 0000000..a656dc3
Binary files /dev/null and b/www/inc/styles/dark/right.png differ
diff --git a/www/inc/styles/dark/title.png b/www/inc/styles/dark/title.png
new file mode 100644 (file)
index 0000000..45286e0
Binary files /dev/null and b/www/inc/styles/dark/title.png differ
diff --git a/www/inc/styles/dark/zip-inactive.png b/www/inc/styles/dark/zip-inactive.png
new file mode 100644 (file)
index 0000000..547dceb
Binary files /dev/null and b/www/inc/styles/dark/zip-inactive.png differ
diff --git a/www/inc/styles/dark/zip.png b/www/inc/styles/dark/zip.png
new file mode 100644 (file)
index 0000000..1c3bda1
Binary files /dev/null and b/www/inc/styles/dark/zip.png differ
diff --git a/www/inc/styles/default/bcg.png b/www/inc/styles/default/bcg.png
new file mode 100644 (file)
index 0000000..d4f7ac8
Binary files /dev/null and b/www/inc/styles/default/bcg.png differ
diff --git a/www/inc/styles/default/default.css b/www/inc/styles/default/default.css
new file mode 100644 (file)
index 0000000..4ff7fb6
--- /dev/null
@@ -0,0 +1,386 @@
+/* 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;
+}
+
+p span.desc, p span.author {
+       font-size: 10px;
+       margin-left: 10px;
+}
+
+p span.date {
+       font-size: 9px;
+       margin-left: 80px;
+       color: #777;
+}
+
+/* in the thumbnail page */
+
+div#info {
+       font-size: 11px;
+}
+
+div#info span.key {
+       font-weight: bold;
+}
+
+p.bigthumbnails {
+   text-align: left;
+}
+
+p.bigthumbnails img {
+   padding: 10px 4px;
+        background-color: #232729;
+   margin: 1px;
+   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:hover img {
+   margin: 0px;
+   border: 2px solid #ffb02f;
+        Filter: none; /* IE */
+}
+
+
+
+
+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: 2px 0px;
+   color: #babdb6;
+   font-size: 12px;
+}
+
+div.comment span {
+   color: #6b6c69;
+   font-weight: bold;
+   font-size: 12px;
+}
+
+div.navbuttons {
+   display: none;
+}
+
+div.prevthumb {
+       position: absolute;
+  margin-bottom: 1em;
+  font-size: 10px;
+  top: 40%;
+  left: 0px;
+  text-align: right;
+       padding: 4px;
+       /* background-color: #2e3436; */
+       background-color: #232729;
+  -moz-border-radius: 5px; 
+       border: 1px solid #6b6c69;
+       opacity: .7; /* gecko, khtml */
+       filter: alpha(opacity=70); /* IE */
+}
+
+div.nextthumb {
+       position: absolute;
+  margin-bottom: 1em;
+       font-size: 10px;
+  right: 0px;
+  top: 40%;
+       margin-left: auto;
+       padding: 4px;
+       /* background-color: #2e3436; */
+       background-color: #232729;
+  -moz-border-radius: 5px; 
+       border: 1px solid #6b6c69;
+       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 {
+       margin-top: 20px;
+       font-size: 12px;
+       margin-left: auto;
+       margin-right: auto;
+       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;
+}
+
+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:relative;
+   font-size: 9px; 
+   margin: 4px 0px;
+   padding-bottom: 0px;
+}
diff --git a/www/inc/styles/default/home-inactive.png b/www/inc/styles/default/home-inactive.png
new file mode 100644 (file)
index 0000000..1d756bd
Binary files /dev/null and b/www/inc/styles/default/home-inactive.png differ
diff --git a/www/inc/styles/default/home.png b/www/inc/styles/default/home.png
new file mode 100644 (file)
index 0000000..46fce7c
Binary files /dev/null and b/www/inc/styles/default/home.png differ
diff --git a/www/inc/styles/default/left-16.png b/www/inc/styles/default/left-16.png
new file mode 100644 (file)
index 0000000..625a1ab
Binary files /dev/null and b/www/inc/styles/default/left-16.png differ
diff --git a/www/inc/styles/default/left-inactive.png b/www/inc/styles/default/left-inactive.png
new file mode 100644 (file)
index 0000000..38f572d
Binary files /dev/null and b/www/inc/styles/default/left-inactive.png differ
diff --git a/www/inc/styles/default/left.png b/www/inc/styles/default/left.png
new file mode 100644 (file)
index 0000000..62985d9
Binary files /dev/null and b/www/inc/styles/default/left.png differ
diff --git a/www/inc/styles/default/logo-mini.png b/www/inc/styles/default/logo-mini.png
new file mode 100644 (file)
index 0000000..8949154
Binary files /dev/null and b/www/inc/styles/default/logo-mini.png differ
diff --git a/www/inc/styles/default/minus-inactive.png b/www/inc/styles/default/minus-inactive.png
new file mode 100644 (file)
index 0000000..e29159f
Binary files /dev/null and b/www/inc/styles/default/minus-inactive.png differ
diff --git a/www/inc/styles/default/minus.png b/www/inc/styles/default/minus.png
new file mode 100644 (file)
index 0000000..c0f3241
Binary files /dev/null and b/www/inc/styles/default/minus.png differ
diff --git a/www/inc/styles/default/plus-inactive.png b/www/inc/styles/default/plus-inactive.png
new file mode 100644 (file)
index 0000000..57a6186
Binary files /dev/null and b/www/inc/styles/default/plus-inactive.png differ
diff --git a/www/inc/styles/default/plus.png b/www/inc/styles/default/plus.png
new file mode 100644 (file)
index 0000000..10332ae
Binary files /dev/null and b/www/inc/styles/default/plus.png differ
diff --git a/www/inc/styles/default/restricted-inactive.png b/www/inc/styles/default/restricted-inactive.png
new file mode 100644 (file)
index 0000000..ccd0268
Binary files /dev/null and b/www/inc/styles/default/restricted-inactive.png differ
diff --git a/www/inc/styles/default/restricted.png b/www/inc/styles/default/restricted.png
new file mode 100644 (file)
index 0000000..23ad5b5
Binary files /dev/null and b/www/inc/styles/default/restricted.png differ
diff --git a/www/inc/styles/default/right-16.png b/www/inc/styles/default/right-16.png
new file mode 100644 (file)
index 0000000..42e783f
Binary files /dev/null and b/www/inc/styles/default/right-16.png differ
diff --git a/www/inc/styles/default/right-inactive.png b/www/inc/styles/default/right-inactive.png
new file mode 100644 (file)
index 0000000..ceb394f
Binary files /dev/null and b/www/inc/styles/default/right-inactive.png differ
diff --git a/www/inc/styles/default/right.png b/www/inc/styles/default/right.png
new file mode 100644 (file)
index 0000000..a656dc3
Binary files /dev/null and b/www/inc/styles/default/right.png differ
diff --git a/www/inc/styles/default/title.png b/www/inc/styles/default/title.png
new file mode 100644 (file)
index 0000000..45286e0
Binary files /dev/null and b/www/inc/styles/default/title.png differ
diff --git a/www/inc/styles/default/zip-inactive.png b/www/inc/styles/default/zip-inactive.png
new file mode 100644 (file)
index 0000000..547dceb
Binary files /dev/null and b/www/inc/styles/default/zip-inactive.png differ
diff --git a/www/inc/styles/default/zip.png b/www/inc/styles/default/zip.png
new file mode 100644 (file)
index 0000000..1c3bda1
Binary files /dev/null and b/www/inc/styles/default/zip.png differ
diff --git a/www/inc/styles/gorilla/gorilla.css b/www/inc/styles/gorilla/gorilla.css
new file mode 100644 (file)
index 0000000..0b8cc9b
--- /dev/null
@@ -0,0 +1,350 @@
+/* Gorilla stylesheet
+   ==================
+
+   stylesheet & artwork
+   (c) 2003 Jakub 'jimmac' Steiner
+
+   bugs/TODO: 
+      
+      * navbuttons overlap minithubroll if there are 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;
+   color: #000000;
+}
+
+img {
+   border: 0px;
+}
+
+.bigthumbnails img {
+       width: inherit;
+       height: inherit;
+}
+
+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-position: 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;
+}
+
+
+.month p {
+       display: block;
+       min-width: 300px;
+}
+
+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;
+}
+
+
+.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;
+}
+
+.exif {
+       display: block;
+       width: 400px;
+       margin: 0px auto;
+       padding: 4px;
+  background-color: #d9dac9;
+}
+
+.exif span {
+       cursor: help;
+       border-bottom: 1px dotted gray;
+}
+
+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; 
+}
+
+/* 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: #d9dac9;
+       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;
+}
diff --git a/www/inc/styles/gorilla/left.png b/www/inc/styles/gorilla/left.png
new file mode 100644 (file)
index 0000000..63d306c
Binary files /dev/null and b/www/inc/styles/gorilla/left.png differ
diff --git a/www/inc/styles/gorilla/minus.png b/www/inc/styles/gorilla/minus.png
new file mode 100644 (file)
index 0000000..bc7a830
Binary files /dev/null and b/www/inc/styles/gorilla/minus.png differ
diff --git a/www/inc/styles/gorilla/plus.png b/www/inc/styles/gorilla/plus.png
new file mode 100644 (file)
index 0000000..6b103cd
Binary files /dev/null and b/www/inc/styles/gorilla/plus.png differ
diff --git a/www/inc/styles/gorilla/right.png b/www/inc/styles/gorilla/right.png
new file mode 100644 (file)
index 0000000..f998098
Binary files /dev/null and b/www/inc/styles/gorilla/right.png differ
diff --git a/www/inc/styles/gorilla/title.png b/www/inc/styles/gorilla/title.png
new file mode 100644 (file)
index 0000000..275528f
Binary files /dev/null and b/www/inc/styles/gorilla/title.png differ
diff --git a/www/inc/styles/grey/grey.css b/www/inc/styles/grey/grey.css
new file mode 100644 (file)
index 0000000..9b23168
--- /dev/null
@@ -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 (file)
index 0000000..63d306c
Binary files /dev/null and b/www/inc/styles/grey/left.png differ
diff --git a/www/inc/styles/grey/minus.png b/www/inc/styles/grey/minus.png
new file mode 100644 (file)
index 0000000..bc7a830
Binary files /dev/null and b/www/inc/styles/grey/minus.png differ
diff --git a/www/inc/styles/grey/plus.png b/www/inc/styles/grey/plus.png
new file mode 100644 (file)
index 0000000..6b103cd
Binary files /dev/null and b/www/inc/styles/grey/plus.png differ
diff --git a/www/inc/styles/grey/right.png b/www/inc/styles/grey/right.png
new file mode 100644 (file)
index 0000000..f998098
Binary files /dev/null and b/www/inc/styles/grey/right.png differ
diff --git a/www/inc/styles/grey/title.png b/www/inc/styles/grey/title.png
new file mode 100644 (file)
index 0000000..275528f
Binary files /dev/null and b/www/inc/styles/grey/title.png differ
diff --git a/www/inc/styles/ie/ie.css b/www/inc/styles/ie/ie.css
new file mode 100644 (file)
index 0000000..36cd2c4
--- /dev/null
@@ -0,0 +1,8 @@
+/* IE sucks; this is the only stylesheet doesn't crash it
+   this is low priority for me; if you want a nice stylesheet for IE
+   (if such thing can be written), please send a patch to jimmac@ximian.com
+*/
+
+body {
+   font-family: Verdana, Sans-Serif;
+}
diff --git a/www/inc/styles/ie7/README.txt b/www/inc/styles/ie7/README.txt
new file mode 100644 (file)
index 0000000..63aaa70
--- /dev/null
@@ -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 (file)
index 0000000..a4fe2e6
Binary files /dev/null and b/www/inc/styles/ie7/blank.gif 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 (file)
index 0000000..0ae71bb
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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)});\r
diff --git a/www/inc/styles/ie7/ie7-core.js b/www/inc/styles/ie7/ie7-core.js
new file mode 100644 (file)
index 0000000..91cf79a
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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{}}();\r
diff --git a/www/inc/styles/ie7/ie7-css-strict.js b/www/inc/styles/ie7/ie7-css-strict.js
new file mode 100644 (file)
index 0000000..7ed03d2
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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});\r
diff --git a/www/inc/styles/ie7/ie7-css2.js b/www/inc/styles/ie7/ie7-css2.js
new file mode 100644 (file)
index 0000000..a9a03b7
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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);\r
diff --git a/www/inc/styles/ie7/ie7-css3.js b/www/inc/styles/ie7/ie7-css3.js
new file mode 100644 (file)
index 0000000..56d312e
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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+")"}});\r
diff --git a/www/inc/styles/ie7/ie7-fixed.js b/www/inc/styles/ie7/ie7-fixed.js
new file mode 100644 (file)
index 0000000..f3c5b7a
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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)})});\r
diff --git a/www/inc/styles/ie7/ie7-html4.js b/www/inc/styles/ie7/ie7-html4.js
new file mode 100644 (file)
index 0000000..86a4c95
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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 (file)
index 0000000..4529d95
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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 (file)
index 0000000..887f62f
--- /dev/null
@@ -0,0 +1,3 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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')));\r
+/* packed with http://dean.edwards.name/packer/ */\r
diff --git a/www/inc/styles/ie7/ie7-lite.js b/www/inc/styles/ie7/ie7-lite.js
new file mode 100644 (file)
index 0000000..493d8f1
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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{}}();\r
diff --git a/www/inc/styles/ie7/ie7-logo.gif b/www/inc/styles/ie7/ie7-logo.gif
new file mode 100644 (file)
index 0000000..fe4a7bc
Binary files /dev/null and b/www/inc/styles/ie7/ie7-logo.gif differ
diff --git a/www/inc/styles/ie7/ie7-png.js b/www/inc/styles/ie7/ie7-png.js
new file mode 100644 (file)
index 0000000..f9c7e80
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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)})})}});\r
diff --git a/www/inc/styles/ie7/ie7-server.css b/www/inc/styles/ie7/ie7-server.css
new file mode 100644 (file)
index 0000000..47c7edd
--- /dev/null
@@ -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 (file)
index 0000000..8dfb5e0
--- /dev/null
@@ -0,0 +1,3 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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')));\r
+/* packed with http://dean.edwards.name/packer/ */\r
diff --git a/www/inc/styles/ie7/ie7-standard.js b/www/inc/styles/ie7/ie7-standard.js
new file mode 100644 (file)
index 0000000..85608fb
--- /dev/null
@@ -0,0 +1,2 @@
+/* IE7 version 0.7.3 (alpha) 2004/09/18 */\r
+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{}}();\r
diff --git a/www/inc/styles/ie7/ie7.gif b/www/inc/styles/ie7/ie7.gif
new file mode 100644 (file)
index 0000000..64a2c2d
Binary files /dev/null and b/www/inc/styles/ie7/ie7.gif differ
diff --git a/www/inc/styles/ie7/license b/www/inc/styles/ie7/license
new file mode 100644 (file)
index 0000000..1876e75
--- /dev/null
@@ -0,0 +1,17 @@
+\r
+       This work is licensed under a Creative Commons License.\r
+\r
+       License: http://creativecommons.org/licenses/by/2.0/\r
+\r
+       You are free:\r
+\r
+       to copy, distribute, display, and perform the work\r
+       to make derivative works\r
+       to make commercial use of the work\r
+\r
+       Under the following conditions:\r
+\r
+       Attribution. You must give the original author credit\r
+\r
+       Author:  Dean Edwards/2004\r
+       Web:     http://dean.edwards.name/\r
diff --git a/www/inc/styles/ie7/test-trans.png b/www/inc/styles/ie7/test-trans.png
new file mode 100644 (file)
index 0000000..e187e2c
Binary files /dev/null and b/www/inc/styles/ie7/test-trans.png differ
diff --git a/www/inc/stylesheet.inc.css b/www/inc/stylesheet.inc.css
new file mode 100644 (file)
index 0000000..9415271
--- /dev/null
@@ -0,0 +1,141 @@
+<!--
+   body {
+      <?php if ($this->background) echo "background-image: url('" . $this->background . "');\n";?>
+      background-color: <?php echo $this->bgcolor?>;
+      font-family: <?php echo $this->font?>;
+      font-size: <?php echo $this->fontsize?>;
+      color: <?php echo $this->textcol?>;
+   }
+
+   a:link {
+      color: <?php echo $this->link?>;
+   }
+
+   a:visited {
+      color: <?php echo $this->vlink?>;
+   }
+
+   a:active {
+      color: <?php echo $this->alink?>;
+   }
+
+   a:hover {
+      color: <?php echo $this->hover?>;
+   }
+
+   td {
+      font-family: <?php echo $this->font?>;
+      font-size: <?php echo $this->fontsize?>;
+   }
+
+   input {
+      font-family: <?php echo $this->font?>;
+      font-size: <?php echo $this->fontsize?>;
+   }
+   .navigation {
+      color: white;
+      background-color: #808080;
+      padding-top: 2px;
+      padding-bottom: 3px;
+      padding-left: 4px;
+      padding-right: 4px;
+   }
+
+   p.exif {
+      font-size: 9px;
+   }
+
+   p.navigation a {
+      color: #f0f0f0;
+      font-weight: bold;
+      padding-top: 2px;
+      padding-bottom: 2px;
+      border: 0px;
+      text-align: left;
+   }
+
+   p.copyright {
+      clear: both;
+      padding-top: 4ex;
+      font-size: 9px;
+      text-align: left;
+      text-decoration: none;
+   }
+
+   h1 {
+      letter-spacing: .5em;
+   }
+
+   img {
+      /* makes really interesting stuff on nn4 ;) 
+      display: inline; */
+      margin: 2px;
+      border-top: solid black 1px;
+      border-bottom: solid black 1px;
+      border-left: dotted #808080 1px;
+      border-right: dotted #808080 1px;
+   }
+
+   .navigation img, div.title img {
+      border: 0px;
+      margin: 0px;
+      text-align: left;
+   }
+
+   div.title {
+      font-size: 16pt;
+      font-weight: bold;
+      letter-spacing: .5em;
+   }
+
+   div.title a {
+      text-decoration: none;
+   }
+   
+   p.image img {
+      /* margin-left: 10px; */
+      border: 0px;
+      margin: 0px;
+      text-align: center;
+      /*
+      border-bottom: 0px;
+      margin-bottom: 0px;
+      */
+   }
+   
+   p.comment {
+      font-size: 10px;
+      text-align: justify;
+      color: #606060;
+      width: 640px;
+      /* margin-left: 130px; */
+   }
+
+   span {
+      color: black;
+      font-weight: bold;
+   }
+
+   img.thumb {
+      border: 1px black solid;
+      margin-top: 2px;
+      margin-bottom: 2px;
+   }
+
+   a:hover img.thumb {
+      border: 1px white solid;
+   }
+
+   div.year {
+      float: left;
+      margin: 2px 1em;
+   }
+
+   div.year p {
+      margin: 2px 2em;
+   }
+
+   div.year h4 {
+      margin: 1em 1em 2px 1em;
+   }
+-->
diff --git a/www/inc/www.class.inc.php b/www/inc/www.class.inc.php
new file mode 100644 (file)
index 0000000..2206382
--- /dev/null
@@ -0,0 +1,221 @@
+<?php
+// www.class.inc.php
+class C_www {
+   var $background, $bgcolor, $link, $vlink, $alink, $hover, $language;
+   var $textcol, $font, $fontsize;
+
+   ////
+   // !vykpise HTML hlavicku dokumentu
+   // Ten CSS style jeste neni moc dodelanej
+   function header($title) {
+      global $gallery_dir,$root, $snimek, $galerie, $ThisScript, $themes;
+
+                       header("Content-Type: text/html; charset=utf-8");// make sure we send in utf8
+                                                                                                                                                                                                                        // and override Apache
+
+                                                                                                                                                                                                                        // For some reason text/xml is
+                                                                                                                                                                                                                        // causing trouble with stylesheets
+                       echo "<?xml version=\"1.0\"?>\n";
+                       /*
+                       echo "<?xml-stylesheet type=\"text/css\" media=\"screen\""; // doesn't work yet :/
+                       echo " href=\"inc/style/dark/dark.css\" ?>\n";
+                       */
+      echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
+      echo "   \"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd\">\n";
+      echo "<html>\n";
+      echo "<head>\n";
+
+                       #IE hacks
+                       echo "<!-- This makes IE6 suck less (a bit) -->\n";
+                       echo "<!--[if lt IE 7]>\n";
+                       echo "<script src=\"inc/styles/ie7/ie7-standard.js\" type=\"text/javascript\">\n";
+                       echo "</script>\n";
+                       echo "<![endif]-->\n";
+
+      echo "   <title>$title</title>\n";
+                       echo "<link rel=\"icon\" href=\"stock_camera-16.png\" ";
+                       echo "type=\"image/png\" />\n";
+                       echo "<link rel=\"shortcut icon\" href=\"favicon.ico\" ";
+                       echo "type=\"image/x-icon\" />\n";
+      # mozilla style links
+               if ($snimek && $galerie) {
+                       #Top
+                       echo "   <link rel=\"Top\"      href=\"$ThisScript\" />\n";
+                       #First
+                       #Prev
+                       $predchozi = $snimek - 1;
+                       $dalsi = $snimek + 1;
+               if ($snimek > 1) {
+                               echo "   <link rel=\"First\" ";
+                               echo "   href=\"$ThisScript?galerie=$galerie&amp;photo=1\" />\n";
+                               echo "   <link rel=\"Previous\" ";
+                               echo "href=\"$ThisScript?galerie=$galerie&amp;photo=$predchozi\" />\n";
+                       }
+                       #Next
+                       if (is_file("$gallery_dir/$galerie/lq/img-$dalsi.jpg")) {
+                               echo "   <link rel=\"Next\" ";
+                               echo "    href=\"$ThisScript?galerie=$galerie&amp;photo=$dalsi\" />\n";
+                       }
+                       #Last
+                       $adr = opendir("$gallery_dir/$galerie/thumbs/");
+                       $i = -2;
+                       while ($file = readdir($adr)) {
+                               $i++;
+                       }
+                       if ($i!=$snimek) {
+                               echo "   <link rel=\"Last\" ";
+                               echo "    href=\"$ThisScript?galerie=$galerie&amp;photo=$i\" />\n";
+                       }
+               }
+      
+      /* check the theme in a cookie */
+      $theme = @$_COOKIE["theme"];
+      if (!$theme) { //we didn't set the cookie yet
+        // select first key of the themes array in config.inc.php as default
+        $theme_keys = array_keys($themes);
+        $theme = $theme_keys[0]; 
+      }
+      foreach ($themes as $skin => $url) {
+         echo "<link type=\"text/css\" rel=\"";
+         if ($skin==$theme) {
+            echo "stylesheet";
+         } else {
+            echo "prefertch alternate stylesheet";
+         }
+         echo "\" href=\"$url\" title=\"$skin\"";
+         echo " media=\"screen\" />\n";
+      }
+     
+      //require("javascript.inc.php");
+                       echo "<script src=\"inc/global.js\" ";
+                       echo "type=\"text/javascript\"></script>\n";
+      echo "</head>\n\n";
+      echo "<body onload=\"checkForTheme()";
+      echo "\">\n";
+   }
+
+   ////
+   // !zavre html stranku
+   function footer() {
+      echo "</body>\n";
+      echo "</html>\n";
+   }
+
+   ////
+   // !vypise chybovou hlasku
+   // $title - nadpis a title HTML stranky
+   // $message - vlastni chybova hlaska
+   function error($title, $message) {
+         $this->header($title);
+         echo "<h1>$title</h1>\n";
+         echo $message;
+         $this->footer();
+         exit; //vysere se na vsechno
+   }
+
+  
+     
+   ////
+   // !zacatek fomrulare
+   function form_start($action, $method, $upload) {
+      echo "<form ";
+      if ($upload) echo "enctype=\"multipart/form-data\" ";
+      echo "action=\"";
+                       echo htmlentities($action,ENT_COMPAT,"UTF-8");
+                       echo "\" method=\"$method\">\n";
+   }
+
+   ////
+   // !konec formulare
+   function form_end() {
+      echo "</form>\n";
+   }
+   ////
+   // !vykresli polozku formulare
+   // umi text, password, submit, file, hidden, textarea, select
+   // u textarea je default pocet radku...
+   function input($type, $name, $value, $popis, $default, $title) {
+                       echo "<div class=\"row\">\n";
+                       if (!$title) {
+                               echo "  <div class=\"label\">$popis</div>\n";
+                       } else {
+                               echo "  <div class=\"label\"><a title=\"$title\" ";
+                               echo "href=\"#\">$popis</a></div>\n";
+                       }
+                       echo "  <div class=\"control\">";
+      switch ($type) {
+         case "checkbox":
+            echo "<input type=\"$type\" name=\"$name\" value=\"$value\"";
+            if ($default) echo " checked=\"checked\"";
+            echo " />";
+            break;
+         case "password": 
+         case "text": 
+            echo "<input type=\"$type\" size=\"30\" name=\"$name\" value=\"$value\" />";
+            break;
+         case "file": 
+            echo "<input type=\"$type\" size=\"30\" name=\"$name\" />";
+            break;
+         case "hidden": 
+            echo "<input type=\"$type\" name=\"$name\" value=\"$value\" />";
+            break;
+         case "textarea":
+            echo "<textarea name=\"$name\" cols=\"40\"";
+            if ($default) {
+                echo " rows=\"$default\"";
+            } else {
+                echo " rows=\"10\"";
+            }
+            echo ">$value</textarea>";
+            break;
+         case "select":
+            echo "<select name=\"$name\" size=\"1\">\n";
+            while (list($optval, $option) = each($value)) {
+                echo "<option value=\"$optval\"";
+                if ($optval == $default) echo " selected";
+                echo ">";
+                echo $option;
+                echo "</option>\n";
+            }
+            echo "</select>";
+            break;
+         case "submit":
+            echo "<input type=\"$type\" name=\"$name\" value=\"$value\" />";
+            break;
+      }
+                       echo "  </div>\n";
+                       echo "</div>\n";
+   }
+
+          
+}
+
+# return dirs sorted
+class SortDir {
+   var $items;
+
+   function SortDir($directory) {
+      $handle=@opendir($directory);
+                       if (!$handle) return;
+      while ($file = readdir($handle)) {
+         if ($file != "." && $file != "..") {
+            $this->items[]=$file;
+         }
+      }
+      closedir($handle);
+           if ($this->items) {
+         natsort($this->items);
+           }
+   }
+
+   function Read() {
+                       if ($this->items) {
+                               $getback= (pos($this->items));
+                               next($this->items);
+                               return $getback;
+                       }
+   }
+}
+
+?>
diff --git a/www/index.php b/www/index.php
new file mode 100644 (file)
index 0000000..011a614
--- /dev/null
@@ -0,0 +1,540 @@
+<?php
+# uncomment this to check for uninitialized variables etc.:
+# error_reporting (E_ALL);
+
+# get variables from the _SERVER array in order to not 
+# rely on register_globals = On
+# (this will not work with standalone PHP)
+$ThisScript=preg_replace('/\?.*$/', '', $_SERVER['REQUEST_URI']);
+$ScriptFileName=$_SERVER['SCRIPT_FILENAME'];
+$HostName=$_SERVER['SERVER_NAME']; 
+$ThisUrl = $_SERVER['REQUEST_URI'];
+
+#language support
+require_once ("lib/lib.l10n.php");
+require_once("inc/config.inc.php");
+require_once("inc/www.class.inc.php");
+require_once("inc/funkce.inc.php");
+//session_name("navstevnik");
+//session_register("page");
+
+#set the language translation
+l10n::set("$root/l10n/".$sclang."/main.lang");
+l10n::set("$root/l10n/".$sclang."/date.lang");
+
+
+
+
+# always get sorted directory entries
+$adr = new SortDir("$gallery_dir");
+
+# get variables passed in from the URL:
+$galerie='';
+if (isset($_GET['galerie'])) $galerie=$_GET["galerie"];
+if (isset($_GET['gallery'])) $galerie=$_GET["gallery"];
+$galerie = preg_replace('/\//', '', $galerie);
+if (isset($_GET["thumbsize"])) $thumbsize=$_GET["thumbsize"];
+$snimek = 0;
+if (isset($_GET["snimek"])) $snimek=$_GET["snimek"];
+if (isset($_GET["photo"])) $snimek=$_GET["photo"];
+$snimek = intval($snimek);
+$y='';
+if (isset($_GET['y'])) $y=$_GET["y"];
+$cmnt='';
+if (isset($_GET["cmnt"])) $cmnt=$_GET["cmnt"];
+$show_thumbs='';
+if (isset($_GET["show_thumbs"])) $show_thumbs=$_GET["show_thumbs"];
+$exif_style='';
+if (isset($_GET["exif_style"])) $exif_style=$_GET["exif_style"];
+
+/*
+if(!$exif_style) {
+       $exif_style="descriptive";
+} */
+
+$page = new C_www;
+//default colors
+
+if (!is_dir("$gallery_dir/$galerie/thumbs")) {
+  $galerie = "";
+}
+
+//read interesting stuff from info.txt
+if ($galerie) { 
+       readInfo("$root/$gallery_dir/$galerie/info.txt", $galerie);
+//check for restricted access
+       if ($galerielogin[$galerie]) {
+                        access_check($galerielogin[$galerie],$galeriepw[$galerie],$galerie);
+       }
+}
+
+// processing of the user comment data
+if($comments && @$_POST["commentdata"]) {
+    $username = @$_COOKIE["username"];
+    $comment_name = @$_POST["commentname"];
+    $save_comment_name = @$_POST["savecommentname"];
+    $comment_data = @$_POST["commentdata"];
+               $comment_kolacek = @$_POST["commentkolacek"];
+               $comment_spamcheck = @$_POST["commentspamcheck"];
+
+               #check for HTML tags
+               
+               $comment_name = stripslashes(strip_tags($comment_name));
+               $allowedTags = '<a><b><i><ul><li><blockquote><br>';
+               $comment_data = stripslashes(strip_tags($comment_data,$allowedTags));
+               // thanks google: 
+               // http://www.google.com/googleblog/2005/01/preventing-comment-spam.html
+               $comment_data = eregi_replace("<a ","<a rel=\"nofollow\" ",$comment_data);
+
+               #further comment spam
+               $comment_blacklist = array("pharmacy", "poker", "Viagra");
+
+               foreach($comment_blacklist as $blackword) {
+                       $check = addslashes($blackword);
+                       if (eregi($check,$comment_data)) {
+                               #write error message
+                               $page->error( __('No comment spam'), __('Your comment includes blacklisted word') . __('No comment spam') );
+                               $page->footer();
+                               exit; //stop everything
+                       }
+               }
+
+               if ($comment_kolacek!=md5($comment_spamcheck)) {
+                               $page->error( __('No comment spam'), __('You ve written the check number wrong' ) );
+                               $page->footer();
+                               exit; //stop everything
+               }
+
+    if (!$comment_name) {
+                       $comment_name = $_COOKIE["username"];
+    }
+    
+               // ok so we got a comment
+               if ($comment_name && $save_comment_name) {
+               // save out name in a cookie
+                       if (!setcookie("username","$comment_name", 
+                                                                       mktime(0, 0, 0, 12, 30, 2030))) {
+                               print __('Could not set name cookie!');
+                               exit;
+                       }
+               }
+
+               // create a user_comment file if not existant or append to it
+               if (is_writable("$root/$gallery_dir/$galerie/comments")) { // needs perms
+                       $comment = "$root/$gallery_dir/$galerie/comments/user_$snimek.txt";
+                       $fh = fopen("$comment", "a");
+
+                       if (!$comment_name) {
+                                       $comment_name = __('Anonymous');
+                       }
+                       if (!fwrite($fh, "<div class=\"commententry\">\n")) {
+                                       $page->error( __('Could not write to')  . $comment . "!" );
+                                       $page->footer();
+                                       exit; //stop everything
+                       }
+                       fwrite($fh, "   <div class=\"name\">" . __('Comment from') . "<em>$comment_name</em></div>\n",90);
+                       fwrite($fh, "   <div class=\"commentdata\">$comment_data</div>\n",280);
+                       fwrite($fh, "</div>\n");
+                       
+                       fclose($fh);
+               }
+}
+
+
+//START RENDERING
+
+
+$page->header("Photos");
+require("inc/header.inc.php");
+
+// folder > tree
+//echo "<div class=\"navigation\"><a href=\"$ThisScript\">" . $scnamegallery . "</a>";
+echo "<div class=\"navigation\"><a href=\"./\">" . $scnamegallery . "</a>";
+
+#############################
+#      Overall Gallery Index           #
+#############################
+if (!$galerie) {
+   # finish off navigation bar
+   echo "</div>\n\n<!-- listing galleries-->\n\n";  
+        # I've nuked date.txt to replace it with a more generic info.txt
+   # It optionally supplies i18n name, camera model, author and date
+        # TODO: imgconv script support
+   while ($file = $adr->Read()) {
+      // checking for inc is only really needed when gallery_dir == $root
+      // hopefully not many galleries will be named inc ;)
+      if (is_dir("$gallery_dir/$file") && !ereg("\.", $file) && $file!="inc") { 
+         // Use date file for gallery date if avaliable
+                                // info.txt format described in README
+         readInfo("$root/$gallery_dir/$file/info.txt", $file);
+         
+      }
+   }
+
+        if (!isset($galeriemonth)) $galeriemonth = array();
+   if (!isset($galerieday)) $galerieday = array();
+        //sort within month depending on $sortinmonth
+        if ($sortinmonth) {
+                //alphabetically
+                ksort($galeriemonth);
+                reset($galeriemonth);
+        } else {//by date
+                arsort($galerieday);
+                reset($galerieday);
+        }
+
+
+        $thisyear = 0;
+   for ($i = $yearto; $i >= $yearsince; $i--) {
+      for ($thismonth=12; $thismonth>0; $thismonth--) { // go year by year, month by month
+                                                                                                                                                                                                                               // down
+                                foreach ($galerieday as $foldername => $day) { //using $galerieday (for when sorted)
+                                               if ($galeriemonth["$foldername"] == $thismonth && 
+                                                             $galerieyear["$foldername"] == $i) { //such Y/M exists
+
+                                                               $galerieyearordered["$foldername"]=$galerieyear["$foldername"];
+                                                               $galeriemonthordered["$foldername"]=$galeriemonth["$foldername"];
+                                               }
+                                }
+      }
+   }
+
+
+        $months = array(__('January'), __('February'), __('March'), __('April'), __('May'), __('June'), __('July'), __('August'),
+        __('September'), __('October'), __('November'), __('December'));
+        $one_out = false;
+        foreach ($galerieyearordered as $foldername => $year) {
+                 $one_out = true;
+                       if (@$thisyear!=$year) { #if the year is not equal to the current year
+                                #This is the first year
+                                if (@$thisyear) { echo "   </div>\n</div>\n";}// end last year if this is 
+                                                                                                                                                                // not the first one
+                                #This is a new year
+                                unset($thismonth);
+                                echo "<div class=\"year\"><h3>$year</h3>\n";
+                                echo "";
+                       }
+                       $month=$galeriemonth["$foldername"];
+                       # now months
+                       if (@$thismonth!=$month) {
+                                #first one
+                                if (@$thismonth) { echo "   </div>\n"; } // end of last month if
+                                                                                                                                                                                       // this is not the first one
+                                #new month
+                                $monthindex = $month - 1;
+                                $monthname = $months[$monthindex];
+                                echo "   <div class=\"month\"><h4>$monthname</h4>\n";
+                       }
+                       #galleries within month 
+                       if ($galerielogin[$foldername]) {
+                               echo "      <p class=\"restricted\"><a ";
+                       } else {
+                               echo "      <p><a ";
+                       }
+                       if (@$galeriename[$foldername]) {
+                               echo " href=\"$ThisScript?galerie=$foldername\">";
+                               echo $galeriename[$foldername];
+                               echo "</a>";
+                       } else {
+                               echo " href=\"$ThisScript?galerie=$foldername\">$foldername</a>";
+                       }
+                       if (@$galeriedesc[$foldername]) {
+                               echo "<span class=\"desc\">" . $galeriedesc[$foldername];
+                               echo "</span>\n";
+                       }
+                       if (@$galerieauthor[$foldername]) {
+                               echo "<span class=\"author\">by&nbsp;" . $galerieauthor[$foldername];
+                               echo "</span>\n";
+                       }
+                       if (@$galerieday[$foldername]) {
+                               echo "<span class=\"date\">";
+                               echo "$monthname&nbsp;" . $galerieday[$foldername];
+                               echo "</span>\n";
+                       }
+                       echo "</p>\n";
+                       $thisyear=$year;
+                       $thismonth=$month;
+        }
+        if ($one_out) echo ("   </div>\n</div>\n\n");
+   
+##############################
+#  Individual Gallery Index  #
+##############################
+} elseif (!$snimek) {
+        
+   # finish off navigation header
+        
+   echo "\n &gt; ";
+        if ($galeriename[$galerie]) {
+                echo $galeriename[$galerie];
+        } else {
+                echo $galerie;
+        }
+        echo "</div>\n\n";
+
+        //thumbnails
+        echo "<p class=\"bigthumbnails\">\n";
+   $path = "$gallery_dir/$galerie/thumbs";
+   $imgfiles = new SortDir($path);
+   check($galerie); // check for nasty input
+   while ($file = $imgfiles->read()) {
+      if (is_file("$path/$file") && eregi("^img-([0-9]+)\.(png|jpe?g)", $file, $x)) {
+                                                                
+         $thumb = "$gallery_dir/$galerie/thumbs/img-${x[1]}.${x[2]}";
+         $imgsize = getimagesize("$root/$thumb");
+                                //check for portraits
+                                $portrait = "false";
+                                $class = "";
+                                if($imgsize[0]<100) {
+                                        //portraits need a special class for styling
+                                        $class = "portrait";
+                                }
+                                //check for number of comments per photo
+                                if ($comments) { //there probably won't be user comments if it's off
+                                  $NumOfComments = 0;
+                                        if (file_exists("$gallery_dir/$galerie/comments/user_${x[1]}.txt")) {
+                                                       if ($class) $class .= " ";
+                                                       $class .= "hascomments";
+                                                       //now let's count'em
+                                                       $fh = fopen("$gallery_dir/$galerie/comments/user_${x[1]}.txt","r");
+                                                       while (!feof($fh)) {
+                                                               $line = fgets($fh);
+                                                               if (eregi("commententry",$line)) $NumOfComments++;
+                                                       }
+                                                       fclose($fh);
+                                        }
+                                        if ($NumOfComments==1) {
+                                                $NumOfComments = $NumOfComments . " " . __('Comment');
+                                        } else {
+                                                $NumOfComments = $NumOfComments . " " . __('Comments');
+                                        }
+                                }
+        if (file_exists("$gallery_dir/$galerie/comments/${x[1]}.txt") &&
+                  $title = file_get_contents("$gallery_dir/$galerie/comments/${x[1]}.txt")) {
+            $title = ereg_replace("(\"|\')","",trim(strip_tags($title)));
+            $title = ereg_replace("(.{77}).*","\\1",$title);
+        } else 
+          $title = "Photo ${x[1]}";
+
+         echo "   <a href=\"$ThisScript?galerie=$galerie&amp;photo=${x[1]}\"";
+                                echo " title=\"$title, $NumOfComments\"";
+                                if ($class) echo " class=\"$class\"";
+                                echo ">";
+         echo "<img ";
+         if ($thumbsize) {
+            echo "width=\"120\" height=\"80\" ";
+         } else {
+            // scale portraits to 80 height
+            if ($portrait) {
+                                                       //portrait
+               echo "width=\"";
+               $scaled = round($imgsize[0] / 1.5);
+               echo $scaled;
+               echo "\" height=\"${imgsize[0]}\"";
+            } else {
+                                                       //landscape
+               echo $imgsize[3]; 
+            }
+         }
+         echo " src=\"$thumb\" ";
+         echo "alt=\"photo No. ${x[1]}\" />";
+         echo "</a>\n";
+      }
+   }
+   echo "</p>\n";
+
+        //info
+        echo "<div id=\"info\">\n";
+        if ($galeriedesc[$galerie]) {
+                echo "<p>";
+                echo "<span class=\"value\">";
+                echo $galeriedesc[$galerie] . "</span></p>\n";
+        }
+        if ($galerieauthor[$galerie]) {
+                echo "<p><span class=\"key\">Author: </span>";
+                echo "<span class=\"value\">";
+                echo $galerieauthor[$galerie] . "</span></p>\n";
+        }
+        echo "</div>\n";
+
+   //and links to archived images:
+   echo "\n<p class=\"archives\">\n";
+   if (file_exists("$gallery_dir/$galerie/zip/mq.zip")) {
+      echo "[ <a href=\"$gallery_dir/$galerie/zip/mq.zip\">" . __('zipped MQ images') . "</a> ] ";
+   }
+   if (file_exists("$gallery_dir/$galerie/zip/mq.tar.bz2")) {
+      echo "[ <a href=\"$gallery_dir/$galerie/zip/mq.tar.bz2\">" . __('MQ images tarball') . "</a> ] ";
+   }
+   if (file_exists("$gallery_dir/$galerie/zip/hq.zip")) {
+      echo "[ <a href=\"$gallery_dir/$galerie/zip/hq.zip\">" . __('zipped HQ images') . "</a> ]";
+   }
+   if (file_exists("$gallery_dir/$galerie/zip/hq.tar.bz2")) {
+      echo "[ <a href=\"$gallery_dir/$galerie/zip/hq.tar.bz2\">" . __('HQ images tarball') . "</a> ]";
+   }
+   echo "</p>";
+
+#######################
+#      Individual Image        #
+#######################
+} else { //low-res image
+   # finish off header
+   echo "\n &gt; <a href=\"$ThisScript?galerie=$galerie\">";
+        if ($galeriename[$galerie]) {
+                echo $galeriename[$galerie];
+        } else {
+                echo $galerie;
+        }
+        echo "</a>\n &gt; Photo";
+   echo " $snimek</div>";
+   $path = "$gallery_dir/$galerie/thumbs";
+   $imgfiles = new SortDir("$path");
+   check($galerie);
+   $path = "$gallery_dir/$galerie/lq";
+   $file = "$path/img-$snimek.jpg";
+   if (!file_exists($file)) {
+      echo __('No such image');
+      $page->footer();
+      exit;
+   }
+   $imgsize = getimagesize("$root/$file");
+   /*
+   navigation($galerie, $snimek, null);
+   */
+
+   // mini thumbnail roll
+
+   if ($show_thumbs) {
+      echo "\n<!--mini thumbnail roll-->\n<div class=\"thumbroll\">";
+      echo "<a id=\"minus\" href=\"$ThisScript?galerie=$galerie&amp;photo=$snimek";
+      echo "&amp;exif_style=$exif_style\">";
+      echo "</a>\n";
+      echo " : \n";
+      while ($thumbfile = $imgfiles->read()) {
+         if ( eregi("^img-([0-9]+)\.(png|jpe?g)",
+             $thumbfile, $x)) {
+            $thumb = "$gallery_dir/$galerie/thumbs/img-${x[1]}.${x[2]}";
+            echo "   <a href=\"$ThisScript?galerie=$galerie&amp;photo=${x[1]}";
+            echo "&amp;show_thumbs=$show_thumbs\"";
+                                               echo " title=" . get_photo_title($galerie, $x[1]) . ">";
+            echo "<img class=\"thumb\" ";
+            // hadess' hack (TM) ;)
+            if ($thumbsize) {
+                 echo " width=\"24\" height=\"16\"";
+            } else {
+                 $minithumb=getimagesize("$root/$thumb");
+                 $w=$minithumb[0]/6;
+                 $h=$minithumb[1]/6;
+                 echo " width=\"$w\" height=\"$h\"";
+            }
+            echo " src=\"$thumb\" ";
+            echo "alt=\"photo No. ${x[1]}\" />";
+            echo "</a> \n";
+         }
+      }
+      if (file_exists("$gallery_dir/$galerie/zip/hq.zip")) {
+         echo "<a id=\"zip\" href=\"$gallery_dir/$galerie/zip/hq.zip\">";
+         echo "zip<span /></a>";
+      }
+      if (file_exists("$gallery_dir/$galerie/zip/hq.tar.bz2")) {
+         echo "<a id=\"zip\" href=\"$gallery_dir/$galerie/zip/hq.tar.bz2\">";
+         echo "zip<span /></a>";
+      }
+      echo "</div>\n";
+   } else {
+      // show the popup button
+      echo "\n<!--mini thumbnail popup-->\n<div class=\"thumbroll\">";
+      echo "<a id=\"plus\" href=\"$ThisScript?galerie=$galerie&amp;photo=$snimek";
+      echo "&amp;exif_style=$exif_style&amp;show_thumbs=yes\"";
+                       echo " title=\"" . __('Show Thumbnail Navigation') . "\">";
+      echo "</a>\n";
+      echo "</div>\n";
+   }
+
+   /* main image + thumbnail navigation (prev/next) */
+   
+   $divheight = $imgsize[1] + 10;
+   echo "<div id=\"image\" style=\"height: ${divheight}px\">\n"; // extra kludge 
+                                                                 // because of tall 
+                                                                 // images
+
+   echo "<img id=\"preview\" ${imgsize[3]} src=\"$file\" alt=\"$snimek\" />\n";
+   navigation($galerie, $snimek, "prev");
+   navigation($galerie, $snimek, "next");
+   echo "</div>\n"; //image
+
+
+   if ($exif_prog) require("$root/inc/exif.inc.php"); 
+        /* Image comment (caption really) */
+   $comment = "$root/$gallery_dir/$galerie/comments/$snimek.txt";
+   if (file_exists($comment)) {
+      echo "<div class=\"comment\">";
+                       include($comment);
+                       echo "</div>";
+   }
+        /* Counter/Access Log - also requires comments dir world writable */
+        if ($log_access==1) {
+                //simple counter
+                if (is_writable("$root/$gallery_dir/$galerie/comments")) { // needs perms
+                        $log = "$root/$gallery_dir/$galerie/comments/log_$snimek.txt";
+                        if (file_exists($log)){
+                                $fh = fopen($log, "r");
+                                $counter = rtrim(fgets($fh));
+                                fclose($fh);
+                        } else {
+                                $counter = 0;
+                        }
+                        $counter++;
+                        $fh = fopen($log,"w");
+                        if (!fwrite($fh, "$counter\n")) {
+                                       $page->error( __('Could not write to') . $log . "!");
+                                       $page->footer();
+                                       exit; //stop everything
+                        }
+                        fclose($fh);
+                        //Now display something
+                        echo "\n<div id=\"log\">\n";
+                        echo __('This image has been viewed') . " ";
+                        echo "<strong>$counter</strong>". " " . __('times') . ".";
+                        //echo date("F dS, Y",filectime($log));
+                        echo "</div>\n\n";
+                } else {
+                        echo "<!-- ". __('WARNING: comment dir not writable') . "-->\n";
+                }
+        } elseif ($logaccess==2) {
+                // log time, IP, UA
+                // TODO - is this really a good thing to do?
+        }
+        
+
+   if (file_exists("$gallery_dir/$galerie/mq/img-$snimek.jpg") || file_exists("$gallery_dir/$galerie/hq/img-$snimek.jpg")) {
+                echo "<div id=\"mqhq\">";
+                if (file_exists("$gallery_dir/$galerie/mq/img-$snimek.jpg")) {
+                               echo "<a href=\"$gallery_dir/$galerie/mq/img-$snimek.jpg\">". __('MQ') . "</a> ";
+                }
+                if (file_exists("$gallery_dir/$galerie/hq/img-$snimek.jpg")) {
+                               echo "<a href=\"$gallery_dir/$galerie/hq/img-$snimek.jpg\">" . __('HQ') . "</a>";
+                }
+                echo "</div>\n"; //mqhq
+        }
+
+   /* User comments */
+   if ($comments) {
+                if (is_writable("$root/$gallery_dir/$galerie/comments")) { // needs perms
+                        require("inc/comment.inc.php");
+                        $user_comment = "$root/$gallery_dir/$galerie/comments/user_$snimek.txt";
+
+                        if (file_exists($user_comment)) {
+                                       echo "<div class=\"user_comment\">";
+                                       include($user_comment);
+                                       echo "</div>";
+                        }
+                } else {
+                        echo "<!-- WARNING: comment dir not writable -->\n";
+                }
+   }
+   navigation($galerie, $snimek, null);
+}
+
+require("inc/footer.inc.php");
+$page->footer();
+?>
diff --git a/www/l10n/cs/date.lang b/www/l10n/cs/date.lang
new file mode 100644 (file)
index 0000000..72a45a0
--- /dev/null
@@ -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 (file)
index 0000000..2fc7526
--- /dev/null
@@ -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 (file)
index 0000000..2c2dc57
--- /dev/null
@@ -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 (file)
index 0000000..e9d56b5
--- /dev/null
@@ -0,0 +1,79 @@
+;Jan
+Jan
+;Feb
+Fév
+;Mar
+Mar
+;Apr
+Avr
+;May
+Mai
+;Jun
+Juin
+;Jul
+Juil
+;Aug
+Aoû
+;Sep
+Sep
+;Oct
+Oct
+;Nov
+Nov
+;Dec
+Dec
+
+;January
+Janvier
+;February
+Février
+;March
+Mars
+;April
+Avril
+;May
+Mai
+;June
+Juin
+;July
+Juillet
+;August
+Août
+;September
+Septembre
+;October
+Octobre
+;November
+Novembre
+;December
+Décembre
+
+;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 (file)
index 0000000..e824a4e
--- /dev/null
@@ -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/left.png b/www/left.png
new file mode 100644 (file)
index 0000000..63d306c
Binary files /dev/null and b/www/left.png differ
diff --git a/www/lib/lib.l10n.php b/www/lib/lib.l10n.php
new file mode 100644 (file)
index 0000000..b2bf6c2
--- /dev/null
@@ -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/logo-mini.png b/www/logo-mini.png
new file mode 100644 (file)
index 0000000..8949154
Binary files /dev/null and b/www/logo-mini.png differ
diff --git a/www/logo.png b/www/logo.png
new file mode 100644 (file)
index 0000000..24878c3
Binary files /dev/null and b/www/logo.png differ
diff --git a/www/minus.png b/www/minus.png
new file mode 100644 (file)
index 0000000..bc7a830
Binary files /dev/null and b/www/minus.png differ
diff --git a/www/plus.png b/www/plus.png
new file mode 100644 (file)
index 0000000..6b103cd
Binary files /dev/null and b/www/plus.png differ
diff --git a/www/right.png b/www/right.png
new file mode 100644 (file)
index 0000000..f998098
Binary files /dev/null and b/www/right.png differ
diff --git a/www/stock_camera-16.png b/www/stock_camera-16.png
new file mode 100644 (file)
index 0000000..42ec54a
Binary files /dev/null and b/www/stock_camera-16.png differ
diff --git a/www/top.png b/www/top.png
new file mode 100644 (file)
index 0000000..8cc26b4
Binary files /dev/null and b/www/top.png differ
diff --git a/www/zip.png b/www/zip.png
new file mode 100644 (file)
index 0000000..b52d1d7
Binary files /dev/null and b/www/zip.png differ