From af51358ab86a9d468bc642fdcaf931a339e6e439 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org>
Date: Sat, 17 May 2008 21:01:00 +0000
Subject: [PATCH] Merge from ship-simu trunk

---
 .gitattributes                                |  20 +
 docs/COPYING                                  | 675 +---------------
 docs/COPYING.documents                        | 397 +++++++++
 docs/COPYING.software                         | 674 ++++++++++++++++
 docs/Conception - Ship-Simu 0.0.1.odt         | Bin 0 -> 23610 bytes
 docs/NEWS                                     |  23 +
 docs/Ship-Simu ArgoUML Diagram.zargo          | Bin 0 -> 4753 bytes
 docs/Ship-Simu Ship-Simulator.mm              | 274 +++++++
 docs/THANKS                                   |   1 +
 docs/mindmap_20080517.html                    | 755 ++++++++++++++++++
 .../main/class_ClassNotFoundException.php     |  10 +-
 .../response/class_Responseable.php           |   2 +-
 .../main/class_BaseFrameworkSystem.php        |   3 +-
 inc/classes/main/commands/web/.htaccess       |   1 +
 .../commands/web/class_WebHomeCommand.php     | 117 +++
 inc/classes/main/controller/class_            |   2 +-
 .../default/class_WebDefaultController.php    |  96 +++
 .../class_WebDefaultNewsController.php        | 110 +++
 .../class_DefaultRegistrationController.php   |   2 +-
 inc/classes/main/factories/.htaccess          |   1 +
 .../main/factories/class_BaseFactory.php      |  69 ++
 inc/classes/main/factories/objects/.htaccess  |   1 +
 .../factories/objects/class_ObjectFactory.php |  77 ++
 inc/classes/main/factories/web/.htaccess      |   1 +
 .../main/factories/web/class_NewsFactory.php  | 117 +++
 .../main/language/class_LanguageSystem.php    |   2 +-
 .../main/resolver/class_BaseResolver.php      |   2 +-
 inc/classes/main/resolver/web/.htaccess       |   1 +
 .../resolver/web/class_WebCommandResolver.php | 184 +++++
 .../web/class_WebControllerResolver.php       | 189 +++++
 .../main/response/class_HttpResponse.php      |  18 +-
 .../main/template/class_TemplateEngine.php    |   2 +-
 .../compressor/class_CompressorChannel.php    |   2 +-
 inc/config/config-hubmaster.php               |  88 ++
 34 files changed, 3229 insertions(+), 687 deletions(-)
 create mode 100644 docs/COPYING.documents
 create mode 100644 docs/COPYING.software
 create mode 100644 docs/Conception - Ship-Simu 0.0.1.odt
 create mode 100644 docs/Ship-Simu ArgoUML Diagram.zargo
 create mode 100644 docs/Ship-Simu Ship-Simulator.mm
 create mode 100644 docs/mindmap_20080517.html
 create mode 100644 inc/classes/main/commands/web/.htaccess
 create mode 100644 inc/classes/main/commands/web/class_WebHomeCommand.php
 create mode 100644 inc/classes/main/controller/default/class_WebDefaultController.php
 create mode 100644 inc/classes/main/controller/default/class_WebDefaultNewsController.php
 create mode 100644 inc/classes/main/factories/.htaccess
 create mode 100644 inc/classes/main/factories/class_BaseFactory.php
 create mode 100644 inc/classes/main/factories/objects/.htaccess
 create mode 100644 inc/classes/main/factories/objects/class_ObjectFactory.php
 create mode 100644 inc/classes/main/factories/web/.htaccess
 create mode 100644 inc/classes/main/factories/web/class_NewsFactory.php
 create mode 100644 inc/classes/main/resolver/web/.htaccess
 create mode 100644 inc/classes/main/resolver/web/class_WebCommandResolver.php
 create mode 100644 inc/classes/main/resolver/web/class_WebControllerResolver.php
 create mode 100644 inc/config/config-hubmaster.php

diff --git a/.gitattributes b/.gitattributes
index f2cc2248d..ad4c031ca 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -47,9 +47,15 @@ db/SimulatorPersonell/829292aeca3f6bf78c16e25fc4f75c98.serialized -text
 devel/.htaccess -text
 devel/class_Debug.php -text
 docs/COPYING -text
+docs/COPYING.documents -text
+docs/COPYING.software -text
+docs/Conception[!!-~]-[!!-~]Ship-Simu[!!-~]0.0.1.odt -text
 docs/NEWS -text
 docs/README -text
+docs/Ship-Simu[!!-~]ArgoUML[!!-~]Diagram.zargo -text
+docs/Ship-Simu[!!-~]Ship-Simulator.mm -text
 docs/THANKS -text
+docs/mindmap_20080517.html -text
 inc/.htaccess -text
 inc/classes.php -text
 inc/classes/.htaccess -text
@@ -166,6 +172,8 @@ inc/classes/main/commands/.htaccess -text
 inc/classes/main/commands/class_BaseCommand.php -text
 inc/classes/main/commands/local/.htaccess -text
 inc/classes/main/commands/local/class_LocalHomeCommand.php -text
+inc/classes/main/commands/web/.htaccess -text
+inc/classes/main/commands/web/class_WebHomeCommand.php -text
 inc/classes/main/compressor/.htaccess -text
 inc/classes/main/compressor/class_Bzip2Compressor.php -text
 inc/classes/main/compressor/class_GzipCompressor.php -text
@@ -178,6 +186,8 @@ inc/classes/main/controller/class_BaseController.php -text
 inc/classes/main/controller/default/.htaccess -text
 inc/classes/main/controller/default/class_LocalDefaultController.php -text
 inc/classes/main/controller/default/class_LocalDefaultNewsController.php -text
+inc/classes/main/controller/default/class_WebDefaultController.php -text
+inc/classes/main/controller/default/class_WebDefaultNewsController.php -text
 inc/classes/main/controller/registration/.htaccess -text
 inc/classes/main/controller/registration/class_DefaultRegistrationController.php -text
 inc/classes/main/database/.htaccess -text
@@ -191,6 +201,12 @@ inc/classes/main/debug/class_DebugWebOutput.php -text
 inc/classes/main/extended/.htaccess -text
 inc/classes/main/extended/class_ObjectLimits.php -text
 inc/classes/main/extended/class_SerializationContainer.php -text
+inc/classes/main/factories/.htaccess -text
+inc/classes/main/factories/class_BaseFactory.php -text
+inc/classes/main/factories/objects/.htaccess -text
+inc/classes/main/factories/objects/class_ObjectFactory.php -text
+inc/classes/main/factories/web/.htaccess -text
+inc/classes/main/factories/web/class_NewsFactory.php -text
 inc/classes/main/io/.htaccess -text
 inc/classes/main/io/class_FileIOStream.php -text
 inc/classes/main/io/class_FrameworkDirectoryPointer.php -text
@@ -208,6 +224,9 @@ inc/classes/main/resolver/class_BaseResolver.php -text
 inc/classes/main/resolver/local/.htaccess -text
 inc/classes/main/resolver/local/class_LocalCommandResolver.php -text
 inc/classes/main/resolver/local/class_LocalControllerResolver.php -text
+inc/classes/main/resolver/web/.htaccess -text
+inc/classes/main/resolver/web/class_WebCommandResolver.php -text
+inc/classes/main/resolver/web/class_WebControllerResolver.php -text
 inc/classes/main/response/.htaccess -text
 inc/classes/main/response/class_HttpResponse.php -text
 inc/classes/main/template/.htaccess -text
@@ -225,6 +244,7 @@ inc/classes/middleware/io/class_FileIOHandler.php -text
 inc/config.php -text
 inc/config/.htaccess -text
 inc/config/class_FrameworkConfiguration.php -text
+inc/config/config-hubmaster.php -text
 inc/config/config-override.php -text
 inc/database.php -text
 inc/database/.htaccess -text
diff --git a/docs/COPYING b/docs/COPYING
index 94a9ed024..370436ec2 100644
--- a/docs/COPYING
+++ b/docs/COPYING
@@ -1,674 +1,3 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
+For scripts, except templates and compileable templates see COPYING.software.
 
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  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
-them 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 prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  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.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey 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;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If 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 convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU 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 that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  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.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-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.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-                     END OF TERMS AND CONDITIONS
-
-            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
-state 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 3 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, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <program>  Copyright (C) <year>  <name of author>
-    This program 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, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
-  You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
-  The GNU 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 Lesser General
-Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+For documents see COPYING.documents.
diff --git a/docs/COPYING.documents b/docs/COPYING.documents
new file mode 100644
index 000000000..4a0fe1c8d
--- /dev/null
+++ b/docs/COPYING.documents
@@ -0,0 +1,397 @@
+		GNU Free Documentation License
+		  Version 1.2, November 2002
+
+
+ Copyright (C) 2000,2001,2002  Free Software Foundation, Inc.
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The "Document", below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as "you".  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject.  (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification.  Examples of
+transparent image formats include PNG, XCF and JPG.  Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".)  To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+3. COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+A. Use in the Title Page (and on the covers, if any) a title distinct
+   from that of the Document, and from those of previous versions
+   (which should, if there were any, be listed in the History section
+   of the Document).  You may use the same title as a previous version
+   if the original publisher of that version gives permission.
+B. List on the Title Page, as authors, one or more persons or entities
+   responsible for authorship of the modifications in the Modified
+   Version, together with at least five of the principal authors of the
+   Document (all of its principal authors, if it has fewer than five),
+   unless they release you from this requirement.
+C. State on the Title page the name of the publisher of the
+   Modified Version, as the publisher.
+D. Preserve all the copyright notices of the Document.
+E. Add an appropriate copyright notice for your modifications
+   adjacent to the other copyright notices.
+F. Include, immediately after the copyright notices, a license notice
+   giving the public permission to use the Modified Version under the
+   terms of this License, in the form shown in the Addendum below.
+G. Preserve in that license notice the full lists of Invariant Sections
+   and required Cover Texts given in the Document's license notice.
+H. Include an unaltered copy of this License.
+I. Preserve the section Entitled "History", Preserve its Title, and add
+   to it an item stating at least the title, year, new authors, and
+   publisher of the Modified Version as given on the Title Page.  If
+   there is no section Entitled "History" in the Document, create one
+   stating the title, year, authors, and publisher of the Document as
+   given on its Title Page, then add an item describing the Modified
+   Version as stated in the previous sentence.
+J. Preserve the network location, if any, given in the Document for
+   public access to a Transparent copy of the Document, and likewise
+   the network locations given in the Document for previous versions
+   it was based on.  These may be placed in the "History" section.
+   You may omit a network location for a work that was published at
+   least four years before the Document itself, or if the original
+   publisher of the version it refers to gives permission.
+K. For any section Entitled "Acknowledgements" or "Dedications",
+   Preserve the Title of the section, and preserve in the section all
+   the substance and tone of each of the contributor acknowledgements
+   and/or dedications given therein.
+L. Preserve all the Invariant Sections of the Document,
+   unaltered in their text and in their titles.  Section numbers
+   or the equivalent are not considered part of the section titles.
+M. Delete any section Entitled "Endorsements".  Such a section
+   may not be included in the Modified Version.
+N. Do not retitle any existing section to be Entitled "Endorsements"
+   or to conflict in title with any Invariant Section.
+O. Preserve any Warranty Disclaimers.
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications".  You must delete all sections
+Entitled "Endorsements".
+
+
+6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+
+8. TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+
+9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document 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.
+
+
+10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation 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.  See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+    Copyright (c)  YEAR  YOUR NAME.
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the GNU Free Documentation License, Version 1.2
+    or any later version published by the Free Software Foundation;
+    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+    A copy of the license is included in the section entitled "GNU
+    Free Documentation License".
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+    with the Invariant Sections being LIST THEIR TITLES, with the
+    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
diff --git a/docs/COPYING.software b/docs/COPYING.software
new file mode 100644
index 000000000..94a9ed024
--- /dev/null
+++ b/docs/COPYING.software
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  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
+them 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 prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  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.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey 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;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If 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 convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU 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 that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  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.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+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.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            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
+state 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 3 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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program 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, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU 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 Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/docs/Conception - Ship-Simu 0.0.1.odt b/docs/Conception - Ship-Simu 0.0.1.odt
new file mode 100644
index 0000000000000000000000000000000000000000..05a025efd13360b5cf131a72a38d39415aab94b6
GIT binary patch
literal 23610
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%0D_n=|J?Dade#}$5lf0^mx1jxy+C?iWF$9
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
ALI3~&

literal 0
HcmV?d00001

diff --git a/docs/NEWS b/docs/NEWS
index 9ad0e8539..e3f49f058 100644
--- a/docs/NEWS
+++ b/docs/NEWS
@@ -1,6 +1,29 @@
 NEWS
 ====
 
+[2008-05-10]
+------------
+- Initial ArgoUML document added. Don't expect anything big here! :-)
+
+[2008-04-04]
+------------
+- Revision 33 does now contain the conception document as an OpenOffice
+  document (draft) and a FreeMind mind map where I have visualized my
+  first ideas for this game.
+
 [2008-01-26]
 ------------
 - First complete SVN import announced
+
+-------------------------------------------
+Links to used software:
+-------------------------------------------
+
+ArgoUML (SVN checkout):
+  http://argouml.tigris.org
+
+FreeMind:
+  http://freemind.sourceforget.net
+
+OpenOffice:
+  http://www.openoffice.org
diff --git a/docs/Ship-Simu ArgoUML Diagram.zargo b/docs/Ship-Simu ArgoUML Diagram.zargo
new file mode 100644
index 0000000000000000000000000000000000000000..690eea71dd550f29e10fa14fd5f4bea585ffeb68
GIT binary patch
literal 4753
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

literal 0
HcmV?d00001

diff --git a/docs/Ship-Simu Ship-Simulator.mm b/docs/Ship-Simu Ship-Simulator.mm
new file mode 100644
index 000000000..b03d985e4
--- /dev/null
+++ b/docs/Ship-Simu Ship-Simulator.mm	
@@ -0,0 +1,274 @@
+<map version="0.7.1">
+<node TEXT="Ship-Simu Ship-Simulation">
+<font NAME="SansSerif" BOLD="true" SIZE="18"/>
+<node TEXT="Browser-Game" POSITION="right">
+<font NAME="SansSerif" BOLD="true" SIZE="16"/>
+<icon BUILTIN="messagebox_warning"/>
+<node TEXT="Tick-based simulation">
+<node TEXT="Cronological job (cron)">
+<node TEXT="Addional requirement for installation"/>
+</node>
+</node>
+<node TEXT="Click-based simulation">
+<node TEXT="User clicks a button, action performed"/>
+</node>
+<node TEXT="Pseudo-3D graphics">
+<node TEXT="Still graphics">
+<node TEXT="Different ships">
+<node TEXT="Passenger ship"/>
+<node TEXT="Oil tanker"/>
+<node TEXT="Container ship"/>
+<node TEXT="Misc small ships"/>
+</node>
+<node TEXT="Buildings">
+<node TEXT="Shipyard"/>
+<node TEXT="Dry dock"/>
+<node TEXT="Terminal building"/>
+</node>
+<node TEXT="Vehicles">
+<node TEXT="Container carrier"/>
+<node TEXT="Crane"/>
+</node>
+<node TEXT="All pics should be self-shooted">
+<node TEXT="This avoids copyright conflicts"/>
+<node TEXT="The requested buildings/vehicles must be found in reality"/>
+</node>
+</node>
+<node TEXT="Slightly moved graphics (GIF)">
+<node TEXT="Water surface"/>
+<node TEXT="Sky texture"/>
+</node>
+</node>
+<node TEXT="Fully XHTML 1.0">
+<node TEXT="Latest Internet standard"/>
+<node TEXT="Older browsers will make lesser trouble"/>
+<node TEXT="Should validate with the W3C HTML Validator">
+<node LINK="http://validator.w3.org" TEXT="http://validator.w3.org">
+<icon BUILTIN="attach"/>
+</node>
+</node>
+</node>
+<node TEXT="Design is CSS-based">
+<font NAME="SansSerif" SIZE="12"/>
+<node TEXT="Themes are possible"/>
+</node>
+<node TEXT="Nice AJAX features">
+<icon BUILTIN="idea"/>
+<icon BUILTIN="desktop_new"/>
+</node>
+<node TEXT="News on the front page (home)">
+<node TEXT="The news source can be choosen from different">
+<node TEXT="Previously typed and stored in database"/>
+<node TEXT="Local XML files">
+<node TEXT="Hint: Created by external generators">
+<font NAME="SansSerif" SIZE="12"/>
+</node>
+</node>
+<node TEXT="Remote XMLs like RSS feeds"/>
+</node>
+<node TEXT="The typer can choose a category">
+<node TEXT="New categories can be suggested by the typer"/>
+<node TEXT="An admin can create new categories"/>
+</node>
+<node TEXT="Comments are allowable">
+<node TEXT="Logged-in users"/>
+<node TEXT="Guests as well">
+<icon BUILTIN="clanbomber"/>
+<node TEXT="Secured with CAPTCHA">
+<icon BUILTIN="messagebox_warning"/>
+</node>
+</node>
+</node>
+<node TEXT="One object for all news should be fine">
+<node TEXT="Do not use one object per news entry!">
+<icon BUILTIN="clanbomber"/>
+<icon BUILTIN="stop"/>
+</node>
+<node TEXT="The object receives a &quot;Requestable&quot; object">
+<node TEXT="Obtain page number and sent comment data from it"/>
+</node>
+</node>
+</node>
+<node TEXT="Strict coding guidelines for better PHP code">
+<font NAME="SansSerif" BOLD="true" SIZE="14"/>
+<icon BUILTIN="xmag"/>
+<node TEXT="General code structure">
+<font NAME="SansSerif" BOLD="true" SIZE="12"/>
+<icon BUILTIN="messagebox_warning"/>
+<node TEXT="Fully object-oriented"/>
+<node TEXT="Use of different but practical design patterns"/>
+</node>
+<node TEXT="Documentation">
+<font NAME="SansSerif" BOLD="true" SIZE="12"/>
+<node TEXT="In-line documentation">
+<node TEXT="Script header with full copyright and license as requested by GNU GPL 3"/>
+<node TEXT="Method headers with Doxygen compatible tags"/>
+<node TEXT="Comments above single lines for better understanding what is happening"/>
+</node>
+<node TEXT="Files in directory &quot;docs&quot;">
+<node TEXT="COPYING*"/>
+<node TEXT="Conception"/>
+<node TEXT="NEWS"/>
+<node TEXT="README"/>
+<node TEXT="ArgoUML diagram"/>
+<node TEXT="FreeMind document"/>
+<node TEXT="THANKS"/>
+<node TEXT="minmap_yyyymmdd.html"/>
+</node>
+</node>
+<node TEXT="Folding of the code">
+<font NAME="SansSerif" BOLD="true" SIZE="12"/>
+</node>
+<node TEXT="Tabs and spaces">
+<font NAME="SansSerif" BOLD="true" SIZE="12"/>
+</node>
+</node>
+</node>
+<node TEXT="How does a shipping company work?" POSITION="left">
+<font NAME="SansSerif" BOLD="true" SIZE="16"/>
+<icon BUILTIN="messagebox_warning"/>
+<node TEXT="Start as a founder by selecting a harbor">
+<cloud/>
+<node TEXT="Construct neccessary buildings">
+<node TEXT="Make contract with construction companies"/>
+</node>
+<node TEXT="Order ship parts">
+<node TEXT="Fron your partners"/>
+<node TEXT="On global market"/>
+</node>
+<node TEXT="Make contracts with other companies">
+<node TEXT="Construct ships for your partner"/>
+<node TEXT="Drive constructed ships by your partner"/>
+</node>
+<node TEXT="Build ship parts and trade them"/>
+<node TEXT="Become CEO and manage your company">
+<node TEXT="Nominate department managers"/>
+<node TEXT="Recruit new employees"/>
+<node TEXT="Pay salery to your employees"/>
+</node>
+<node TEXT="Let other gamer manage your company"/>
+<node TEXT="Compare prices">
+<node TEXT="Make a purchase computation system"/>
+</node>
+<node TEXT="Manage a journey"/>
+</node>
+<node TEXT="Or start as an employee">
+<cloud/>
+<node TEXT="Start as a simple sailor">
+<node TEXT="And end up as a captain">
+<node TEXT="Control your ship (depends on client)"/>
+</node>
+</node>
+<node TEXT="Or start as a shipbuilder">
+<node TEXT="Repair ships">
+<node TEXT="Renew the painting"/>
+<node TEXT="Fix broken things"/>
+</node>
+<node TEXT="Build up new ships"/>
+</node>
+<node TEXT="As an officer">
+<icon BUILTIN="idea"/>
+<icon BUILTIN="help"/>
+</node>
+<node TEXT="As a cleaner"/>
+</node>
+<node TEXT="Create a board of managers">
+<icon BUILTIN="idea"/>
+<icon BUILTIN="help"/>
+<node TEXT="Only for bigger comanpies"/>
+</node>
+<node TEXT="Design your own ships">
+<node TEXT="From templates (default ships)"/>
+<node TEXT="Or your complete freely designed layout"/>
+</node>
+<node TEXT="Ride constructed ships">
+<node TEXT="Make sail plans"/>
+<node TEXT="Transportate cargo or humans">
+<node TEXT="Make your passengers happy"/>
+<node TEXT="Load containers and bring them to other harbors"/>
+<node TEXT="Transportate oil from ricks to the refineries"/>
+</node>
+<node TEXT="Depends on used client"/>
+</node>
+<node TEXT="Earn a lot (virtual/real) money">
+<node TEXT="Sell a journey"/>
+<node TEXT="Trade with goods"/>
+<node TEXT="Construct ships for other companies"/>
+</node>
+<node TEXT="Play as a passenger">
+<node TEXT="Order a jorney to your desired destionation"/>
+</node>
+</node>
+<node TEXT="Multi-Player Mode" POSITION="right">
+<font NAME="SansSerif" BOLD="true" SIZE="16"/>
+<icon BUILTIN="messagebox_warning"/>
+<node TEXT="Networked over hubs"/>
+<node TEXT="Big map which holds all harbors">
+<node TEXT="Seperated into small maps to cluster the load over the network"/>
+</node>
+</node>
+<node TEXT="Java client" POSITION="left">
+<cloud/>
+<icon BUILTIN="idea"/>
+<node TEXT="Real-time simulation"/>
+<node TEXT="OpenGL (3D Graphics)">
+<node TEXT="JOGL"/>
+</node>
+<node TEXT="OpenAL (3D sound)"/>
+</node>
+<node TEXT="&quot;Faked&quot; Single-Player" POSITION="right">
+<node TEXT="Locally installed version"/>
+<node TEXT="Does not connect to other hubs"/>
+<node TEXT="&quot;Save games&quot; should be incompatible with MP mode">
+<node TEXT="Avoids cheating"/>
+</node>
+</node>
+<node TEXT="Sand-Box Mode" POSITION="right">
+<node TEXT="The player can test the game">
+<node TEXT="Some people like to &quot;explore&quot; the game"/>
+<node TEXT="Or just wanna have a look"/>
+</node>
+<node TEXT="There are no competitors">
+<font NAME="SansSerif" SIZE="12"/>
+</node>
+</node>
+<node TEXT="Modern-epoche game" POSITION="left">
+<node TEXT="Age: 1950+"/>
+<node TEXT="The abstraction level is kept low"/>
+</node>
+<node TEXT="License" POSITION="left">
+<node TEXT="The game">
+<node TEXT="Ship-Simu is licensed under the GNU GPL 3 or any newer version">
+<node TEXT="See docs/COPYING.software"/>
+</node>
+</node>
+<node TEXT="This document">
+<node TEXT="This mind-map is licensed under the GNU FDL 1.2 or any newer version">
+<node TEXT="See docs/COPYING.documents"/>
+</node>
+</node>
+</node>
+<node TEXT="Data exchange protocol" POSITION="right">
+<node TEXT="Default is an own small format">
+<node TEXT="Reduces traffic between servers"/>
+</node>
+<node TEXT="Easy rewriteable to e.g. XML">
+<node TEXT="Other clients (Flash) can also connect"/>
+</node>
+<node TEXT="Java and browser client can play together"/>
+</node>
+<node TEXT="Optional Pillory" POSITION="left">
+<node TEXT="To make e.g. nazi activity public"/>
+<node TEXT="Shall keep bad players away"/>
+<node TEXT="Requires some &quot;game-moderator&quot; access level to manage">
+<node TEXT="The moderator shall have an extra flag e.g. &quot;pillory_accessable&quot;"/>
+</node>
+<node TEXT="Players, companies et cetera should be lockable">
+<node TEXT="The moderator can choose wether to lock with pillory entry or just locking down"/>
+</node>
+</node>
+<node LINK="http://www.ship-simu.org" TEXT="http://www.ship-simu.org" POSITION="right">
+<icon BUILTIN="attach"/>
+</node>
+</node>
+</map>
diff --git a/docs/THANKS b/docs/THANKS
index bd56a2cfa..91bd29d10 100644
--- a/docs/THANKS
+++ b/docs/THANKS
@@ -1,6 +1,7 @@
 Special Thanks goes to:
  - Daff
  - toms
+ - Arne Brodowski (http://www.arnebrodowski.de/blog/)
  - And all the others I have not listed here.
 
 If you think your name is missing here please ICQ me: 8809296
diff --git a/docs/mindmap_20080517.html b/docs/mindmap_20080517.html
new file mode 100644
index 000000000..67a14c974
--- /dev/null
+++ b/docs/mindmap_20080517.html
@@ -0,0 +1,755 @@
+<html>
+<head>
+<title>Ship-Simu Ship-Simulation</title>
+<style type="text/css">
+    span.foldopened { color: white; font-size: xx-small;
+    border-width: 1; font-family: monospace; padding: 0em 0.25em 0em 0.25em; background: #e0e0e0;
+    VISIBILITY: visible;
+    cursor:pointer; }
+
+
+    span.foldclosed { color: #666666; font-size: xx-small;
+    border-width: 1; font-family: monospace; padding: 0em 0.25em 0em 0.25em; background: #e0e0e0;
+    VISIBILITY: hidden;
+    cursor:pointer; }
+
+    span.foldspecial { color: #666666; font-size: xx-small; border-style: none solid solid none;
+    border-color: #CCCCCC; border-width: 1; font-family: sans-serif; padding: 0em 0.1em 0em 0.1em; background: #e0e0e0;
+    cursor:pointer; }
+
+    li { list-style: none; }
+
+    span.l { color: red; font-weight: bold; }
+
+    a:link {text-decoration: none; color: black; }
+    a:visited {text-decoration: none; color: black; }
+    a:active {text-decoration: none; color: black; }
+    a:hover {text-decoration: none; color: black; background: #eeeee0; }
+
+</style>
+<!-- ^ Position is not set to relative / absolute here because of Mozilla -->
+</head>
+<body>
+
+<script language="JavaScript">
+   // Here we implement folding. It works fine with MSIE5.5, MSIE6.0 and
+   // Mozilla 0.9.6.
+
+   if (document.layers) {
+      //Netscape 4 specific code
+      pre = 'document.';
+      post = ''; }
+   if (document.getElementById) {
+      //Netscape 6 specific code
+      pre = 'document.getElementById("';
+      post = '").style'; }
+   if (document.all) {
+      //IE4+ specific code
+      pre = 'document.all.';
+      post = '.style'; }
+
+function layer_exists(layer) {
+   try {
+      eval(pre + layer + post);
+      return true; }
+   catch (error) {
+      return false; }}
+
+function show_layer(layer) {
+   eval(pre + layer + post).position = 'relative'; 
+   eval(pre + layer + post).visibility = 'visible'; }
+
+function hide_layer(layer) {
+   eval(pre + layer + post).visibility = 'hidden';
+   eval(pre + layer + post).position = 'absolute'; }
+
+function hide_folder(folder) {
+    hide_folding_layer(folder)
+    show_layer('show'+folder);
+
+    scrollBy(0,0); // This is a work around to make it work in Browsers (Explorer, Mozilla)
+}
+
+function show_folder(folder) {
+    // Precondition: all subfolders are folded
+
+    show_layer('hide'+folder);
+    hide_layer('show'+folder);
+    show_layer('fold'+folder);
+
+    scrollBy(0,0); // This is a work around to make it work in Browsers (Explorer, Mozilla)
+
+    var i;
+    for (i=1; layer_exists('fold'+folder+'_'+i); ++i) {
+       show_layer('show'+folder+'_'+i); }
+}
+function show_folder_completely(folder) {
+    // Precondition: all subfolders are folded
+
+    show_layer('hide'+folder);
+    hide_layer('show'+folder);
+    show_layer('fold'+folder);
+
+    scrollBy(0,0); // This is a work around to make it work in Browsers (Explorer, Mozilla)
+
+    var i;
+    for (i=1; layer_exists('fold'+folder+'_'+i); ++i) {
+       show_folder_completely(folder+'_'+i); }
+}
+
+
+
+function hide_folding_layer(folder) {
+   var i;
+   for (i=1; layer_exists('fold'+folder+'_'+i); ++i) {
+       hide_folding_layer(folder+'_'+i); }
+
+   hide_layer('hide'+folder);
+   hide_layer('show'+folder);
+   hide_layer('fold'+folder);
+
+   scrollBy(0,0); // This is a work around to make it work in Browsers (Explorer, Mozilla)
+}
+
+function fold_document() {
+   var i;
+   var folder = '1';
+   for (i=1; layer_exists('fold'+folder+'_'+i); ++i) {
+       hide_folder(folder+'_'+i); }
+}
+
+function unfold_document() {
+   var i;
+   var folder = '1';
+   for (i=1; layer_exists('fold'+folder+'_'+i); ++i) {
+       show_folder_completely(folder+'_'+i); }
+}
+
+</script>
+<SPAN class=foldspecial onclick="fold_document()">All +</SPAN>
+<SPAN class=foldspecial onclick="unfold_document()">All -</SPAN>
+<p><span style="font-size: 150%;font-family: SansSerif, sans-serif; font-weight: bold; ">Ship-Simu Ship-Simulation</span>
+<ul><li><span id="show1_1" class="foldclosed" onClick="show_folder('1_1')" style="POSITION: absolute">+</span> <span id="hide1_1" class="foldopened" onClick="hide_folder('1_1')">-</Span>
+<span style="font-size: 133%;font-family: SansSerif, sans-serif; font-weight: bold; ">Browser-Game</span>
+<ul id="fold1_1" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_1_1" class="foldclosed" onClick="show_folder('1_1_1')" style="POSITION: absolute">+</span> <span id="hide1_1_1" class="foldopened" onClick="hide_folder('1_1_1')">-</Span>
+Tick-based simulation
+<ul id="fold1_1_1" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_1_1_1" class="foldclosed" onClick="show_folder('1_1_1_1')" style="POSITION: absolute">+</span> <span id="hide1_1_1_1" class="foldopened" onClick="hide_folder('1_1_1_1')">-</Span>
+Cronological job (cron)
+<ul id="fold1_1_1_1" style="POSITION: relative; VISIBILITY: visible;"><li>Addional requirement for installation
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_2" class="foldclosed" onClick="show_folder('1_1_2')" style="POSITION: absolute">+</span> <span id="hide1_1_2" class="foldopened" onClick="hide_folder('1_1_2')">-</Span>
+Click-based simulation
+<ul id="fold1_1_2" style="POSITION: relative; VISIBILITY: visible;"><li>User clicks a button, action performed
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_3" class="foldclosed" onClick="show_folder('1_1_3')" style="POSITION: absolute">+</span> <span id="hide1_1_3" class="foldopened" onClick="hide_folder('1_1_3')">-</Span>
+Pseudo-3D graphics
+<ul id="fold1_1_3" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_1_3_1" class="foldclosed" onClick="show_folder('1_1_3_1')" style="POSITION: absolute">+</span> <span id="hide1_1_3_1" class="foldopened" onClick="hide_folder('1_1_3_1')">-</Span>
+Still graphics
+<ul id="fold1_1_3_1" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_1_3_1_1" class="foldclosed" onClick="show_folder('1_1_3_1_1')" style="POSITION: absolute">+</span> <span id="hide1_1_3_1_1" class="foldopened" onClick="hide_folder('1_1_3_1_1')">-</Span>
+Different ships
+<ul id="fold1_1_3_1_1" style="POSITION: relative; VISIBILITY: visible;"><li>Passenger ship
+
+</li>
+<li>Oil tanker
+
+</li>
+<li>Container ship
+
+</li>
+<li>Misc small ships
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_3_1_2" class="foldclosed" onClick="show_folder('1_1_3_1_2')" style="POSITION: absolute">+</span> <span id="hide1_1_3_1_2" class="foldopened" onClick="hide_folder('1_1_3_1_2')">-</Span>
+Buildings
+<ul id="fold1_1_3_1_2" style="POSITION: relative; VISIBILITY: visible;"><li>Shipyard
+
+</li>
+<li>Dry dock
+
+</li>
+<li>Terminal building
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_3_1_3" class="foldclosed" onClick="show_folder('1_1_3_1_3')" style="POSITION: absolute">+</span> <span id="hide1_1_3_1_3" class="foldopened" onClick="hide_folder('1_1_3_1_3')">-</Span>
+Vehicles
+<ul id="fold1_1_3_1_3" style="POSITION: relative; VISIBILITY: visible;"><li>Container carrier
+
+</li>
+<li>Crane
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_3_1_4" class="foldclosed" onClick="show_folder('1_1_3_1_4')" style="POSITION: absolute">+</span> <span id="hide1_1_3_1_4" class="foldopened" onClick="hide_folder('1_1_3_1_4')">-</Span>
+All pics should be self-shooted
+<ul id="fold1_1_3_1_4" style="POSITION: relative; VISIBILITY: visible;"><li>This avoids copyright conflicts
+
+</li>
+<li>The requested buildings/vehicles must be found in reality
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_3_2" class="foldclosed" onClick="show_folder('1_1_3_2')" style="POSITION: absolute">+</span> <span id="hide1_1_3_2" class="foldopened" onClick="hide_folder('1_1_3_2')">-</Span>
+Slightly moved graphics (GIF)
+<ul id="fold1_1_3_2" style="POSITION: relative; VISIBILITY: visible;"><li>Water surface
+
+</li>
+<li>Sky texture
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_4" class="foldclosed" onClick="show_folder('1_1_4')" style="POSITION: absolute">+</span> <span id="hide1_1_4" class="foldopened" onClick="hide_folder('1_1_4')">-</Span>
+Fully XHTML 1.0
+<ul id="fold1_1_4" style="POSITION: relative; VISIBILITY: visible;"><li>Latest Internet standard
+
+</li>
+<li>Older browsers will make lesser trouble
+
+</li>
+<li><span id="show1_1_4_1" class="foldclosed" onClick="show_folder('1_1_4_1')" style="POSITION: absolute">+</span> <span id="hide1_1_4_1" class="foldopened" onClick="hide_folder('1_1_4_1')">-</Span>
+Should validate with the W3C HTML Validator
+<ul id="fold1_1_4_1" style="POSITION: relative; VISIBILITY: visible;"><li><a href="http://validator.w3.org" target="_blank"><span class=l>~</span>&nbsp;http://validator.w3.org
+</a>
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_5" class="foldclosed" onClick="show_folder('1_1_5')" style="POSITION: absolute">+</span> <span id="hide1_1_5" class="foldopened" onClick="hide_folder('1_1_5')">-</Span>
+<span style="font-family: SansSerif, sans-serif; ">Design is CSS-based</span>
+<ul id="fold1_1_5" style="POSITION: relative; VISIBILITY: visible;"><li>Themes are possible
+
+</li>
+
+</ul>
+</li>
+<li>Nice AJAX features
+
+</li>
+<li><span id="show1_1_6" class="foldclosed" onClick="show_folder('1_1_6')" style="POSITION: absolute">+</span> <span id="hide1_1_6" class="foldopened" onClick="hide_folder('1_1_6')">-</Span>
+News on the front page (home)
+<ul id="fold1_1_6" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_1_6_1" class="foldclosed" onClick="show_folder('1_1_6_1')" style="POSITION: absolute">+</span> <span id="hide1_1_6_1" class="foldopened" onClick="hide_folder('1_1_6_1')">-</Span>
+The news source can be choosen from different
+<ul id="fold1_1_6_1" style="POSITION: relative; VISIBILITY: visible;"><li>Previously typed and stored in database
+
+</li>
+<li><span id="show1_1_6_1_1" class="foldclosed" onClick="show_folder('1_1_6_1_1')" style="POSITION: absolute">+</span> <span id="hide1_1_6_1_1" class="foldopened" onClick="hide_folder('1_1_6_1_1')">-</Span>
+Local XML files
+<ul id="fold1_1_6_1_1" style="POSITION: relative; VISIBILITY: visible;"><li><span style="font-family: SansSerif, sans-serif; ">Hint: Created by external generators</span>
+
+</li>
+
+</ul>
+</li>
+<li>Remote XMLs like RSS feeds
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_6_2" class="foldclosed" onClick="show_folder('1_1_6_2')" style="POSITION: absolute">+</span> <span id="hide1_1_6_2" class="foldopened" onClick="hide_folder('1_1_6_2')">-</Span>
+The typer can choose a category
+<ul id="fold1_1_6_2" style="POSITION: relative; VISIBILITY: visible;"><li>New categories can be suggested by the typer
+
+</li>
+<li>An admin can create new categories
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_6_3" class="foldclosed" onClick="show_folder('1_1_6_3')" style="POSITION: absolute">+</span> <span id="hide1_1_6_3" class="foldopened" onClick="hide_folder('1_1_6_3')">-</Span>
+Comments are allowable
+<ul id="fold1_1_6_3" style="POSITION: relative; VISIBILITY: visible;"><li>Logged-in users
+
+</li>
+<li><span id="show1_1_6_3_1" class="foldclosed" onClick="show_folder('1_1_6_3_1')" style="POSITION: absolute">+</span> <span id="hide1_1_6_3_1" class="foldopened" onClick="hide_folder('1_1_6_3_1')">-</Span>
+Guests as well
+<ul id="fold1_1_6_3_1" style="POSITION: relative; VISIBILITY: visible;"><li>Secured with CAPTCHA
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_6_4" class="foldclosed" onClick="show_folder('1_1_6_4')" style="POSITION: absolute">+</span> <span id="hide1_1_6_4" class="foldopened" onClick="hide_folder('1_1_6_4')">-</Span>
+One object for all news should be fine
+<ul id="fold1_1_6_4" style="POSITION: relative; VISIBILITY: visible;"><li>Do not use one object per news entry!
+
+</li>
+<li><span id="show1_1_6_4_1" class="foldclosed" onClick="show_folder('1_1_6_4_1')" style="POSITION: absolute">+</span> <span id="hide1_1_6_4_1" class="foldopened" onClick="hide_folder('1_1_6_4_1')">-</Span>
+The object receives a "Requestable" object
+<ul id="fold1_1_6_4_1" style="POSITION: relative; VISIBILITY: visible;"><li>Obtain page number and sent comment data from it
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_7" class="foldclosed" onClick="show_folder('1_1_7')" style="POSITION: absolute">+</span> <span id="hide1_1_7" class="foldopened" onClick="hide_folder('1_1_7')">-</Span>
+<span style="font-size: 116%;font-family: SansSerif, sans-serif; font-weight: bold; ">Strict coding guidelines for better PHP code</span>
+<ul id="fold1_1_7" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_1_7_1" class="foldclosed" onClick="show_folder('1_1_7_1')" style="POSITION: absolute">+</span> <span id="hide1_1_7_1" class="foldopened" onClick="hide_folder('1_1_7_1')">-</Span>
+<span style="font-family: SansSerif, sans-serif; font-weight: bold; ">General code structure</span>
+<ul id="fold1_1_7_1" style="POSITION: relative; VISIBILITY: visible;"><li>Fully object-oriented
+
+</li>
+<li>Use of different but practical design patterns
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_7_2" class="foldclosed" onClick="show_folder('1_1_7_2')" style="POSITION: absolute">+</span> <span id="hide1_1_7_2" class="foldopened" onClick="hide_folder('1_1_7_2')">-</Span>
+<span style="font-family: SansSerif, sans-serif; font-weight: bold; ">Documentation</span>
+<ul id="fold1_1_7_2" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_1_7_2_1" class="foldclosed" onClick="show_folder('1_1_7_2_1')" style="POSITION: absolute">+</span> <span id="hide1_1_7_2_1" class="foldopened" onClick="hide_folder('1_1_7_2_1')">-</Span>
+In-line documentation
+<ul id="fold1_1_7_2_1" style="POSITION: relative; VISIBILITY: visible;"><li>Script header with full copyright and license as requested by GNU GPL 3
+
+</li>
+<li>Method headers with Doxygen compatible tags
+
+</li>
+<li>Comments above single lines for better understanding what is happening
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_1_7_2_2" class="foldclosed" onClick="show_folder('1_1_7_2_2')" style="POSITION: absolute">+</span> <span id="hide1_1_7_2_2" class="foldopened" onClick="hide_folder('1_1_7_2_2')">-</Span>
+Files in directory "docs"
+<ul id="fold1_1_7_2_2" style="POSITION: relative; VISIBILITY: visible;"><li>COPYING*
+
+</li>
+<li>Conception
+
+</li>
+<li>NEWS
+
+</li>
+<li>README
+
+</li>
+<li>ArgoUML diagram
+
+</li>
+<li>FreeMind document
+
+</li>
+<li>THANKS
+
+</li>
+<li>minmap_yyyymmdd.html
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span style="font-family: SansSerif, sans-serif; font-weight: bold; ">Folding of the code</span>
+
+</li>
+<li><span style="font-family: SansSerif, sans-serif; font-weight: bold; ">Tabs and spaces</span>
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_2" class="foldclosed" onClick="show_folder('1_2')" style="POSITION: absolute">+</span> <span id="hide1_2" class="foldopened" onClick="hide_folder('1_2')">-</Span>
+<span style="font-size: 133%;font-family: SansSerif, sans-serif; font-weight: bold; ">How does a shipping company work?</span>
+<ul id="fold1_2" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_2_1" class="foldclosed" onClick="show_folder('1_2_1')" style="POSITION: absolute">+</span> <span id="hide1_2_1" class="foldopened" onClick="hide_folder('1_2_1')">-</Span>
+Start as a founder by selecting a harbor
+<ul id="fold1_2_1" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_2_1_1" class="foldclosed" onClick="show_folder('1_2_1_1')" style="POSITION: absolute">+</span> <span id="hide1_2_1_1" class="foldopened" onClick="hide_folder('1_2_1_1')">-</Span>
+Construct neccessary buildings
+<ul id="fold1_2_1_1" style="POSITION: relative; VISIBILITY: visible;"><li>Make contract with construction companies
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_2_1_2" class="foldclosed" onClick="show_folder('1_2_1_2')" style="POSITION: absolute">+</span> <span id="hide1_2_1_2" class="foldopened" onClick="hide_folder('1_2_1_2')">-</Span>
+Order ship parts
+<ul id="fold1_2_1_2" style="POSITION: relative; VISIBILITY: visible;"><li>Fron your partners
+
+</li>
+<li>On global market
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_2_1_3" class="foldclosed" onClick="show_folder('1_2_1_3')" style="POSITION: absolute">+</span> <span id="hide1_2_1_3" class="foldopened" onClick="hide_folder('1_2_1_3')">-</Span>
+Make contracts with other companies
+<ul id="fold1_2_1_3" style="POSITION: relative; VISIBILITY: visible;"><li>Construct ships for your partner
+
+</li>
+<li>Drive constructed ships by your partner
+
+</li>
+
+</ul>
+</li>
+<li>Build ship parts and trade them
+
+</li>
+<li><span id="show1_2_1_4" class="foldclosed" onClick="show_folder('1_2_1_4')" style="POSITION: absolute">+</span> <span id="hide1_2_1_4" class="foldopened" onClick="hide_folder('1_2_1_4')">-</Span>
+Become CEO and manage your company
+<ul id="fold1_2_1_4" style="POSITION: relative; VISIBILITY: visible;"><li>Nominate department managers
+
+</li>
+<li>Recruit new employees
+
+</li>
+<li>Pay salery to your employees
+
+</li>
+
+</ul>
+</li>
+<li>Let other gamer manage your company
+
+</li>
+<li><span id="show1_2_1_5" class="foldclosed" onClick="show_folder('1_2_1_5')" style="POSITION: absolute">+</span> <span id="hide1_2_1_5" class="foldopened" onClick="hide_folder('1_2_1_5')">-</Span>
+Compare prices
+<ul id="fold1_2_1_5" style="POSITION: relative; VISIBILITY: visible;"><li>Make a purchase computation system
+
+</li>
+
+</ul>
+</li>
+<li>Manage a journey
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_2_2" class="foldclosed" onClick="show_folder('1_2_2')" style="POSITION: absolute">+</span> <span id="hide1_2_2" class="foldopened" onClick="hide_folder('1_2_2')">-</Span>
+Or start as an employee
+<ul id="fold1_2_2" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_2_2_1" class="foldclosed" onClick="show_folder('1_2_2_1')" style="POSITION: absolute">+</span> <span id="hide1_2_2_1" class="foldopened" onClick="hide_folder('1_2_2_1')">-</Span>
+Start as a simple sailor
+<ul id="fold1_2_2_1" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_2_2_1_1" class="foldclosed" onClick="show_folder('1_2_2_1_1')" style="POSITION: absolute">+</span> <span id="hide1_2_2_1_1" class="foldopened" onClick="hide_folder('1_2_2_1_1')">-</Span>
+And end up as a captain
+<ul id="fold1_2_2_1_1" style="POSITION: relative; VISIBILITY: visible;"><li>Control your ship (depends on client)
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_2_2_2" class="foldclosed" onClick="show_folder('1_2_2_2')" style="POSITION: absolute">+</span> <span id="hide1_2_2_2" class="foldopened" onClick="hide_folder('1_2_2_2')">-</Span>
+Or start as a shipbuilder
+<ul id="fold1_2_2_2" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_2_2_2_1" class="foldclosed" onClick="show_folder('1_2_2_2_1')" style="POSITION: absolute">+</span> <span id="hide1_2_2_2_1" class="foldopened" onClick="hide_folder('1_2_2_2_1')">-</Span>
+Repair ships
+<ul id="fold1_2_2_2_1" style="POSITION: relative; VISIBILITY: visible;"><li>Renew the painting
+
+</li>
+<li>Fix broken things
+
+</li>
+
+</ul>
+</li>
+<li>Build up new ships
+
+</li>
+
+</ul>
+</li>
+<li>As an officer
+
+</li>
+<li>As a cleaner
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_2_3" class="foldclosed" onClick="show_folder('1_2_3')" style="POSITION: absolute">+</span> <span id="hide1_2_3" class="foldopened" onClick="hide_folder('1_2_3')">-</Span>
+Create a board of managers
+<ul id="fold1_2_3" style="POSITION: relative; VISIBILITY: visible;"><li>Only for bigger comanpies
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_2_4" class="foldclosed" onClick="show_folder('1_2_4')" style="POSITION: absolute">+</span> <span id="hide1_2_4" class="foldopened" onClick="hide_folder('1_2_4')">-</Span>
+Design your own ships
+<ul id="fold1_2_4" style="POSITION: relative; VISIBILITY: visible;"><li>From templates (default ships)
+
+</li>
+<li>Or your complete freely designed layout
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_2_5" class="foldclosed" onClick="show_folder('1_2_5')" style="POSITION: absolute">+</span> <span id="hide1_2_5" class="foldopened" onClick="hide_folder('1_2_5')">-</Span>
+Ride constructed ships
+<ul id="fold1_2_5" style="POSITION: relative; VISIBILITY: visible;"><li>Make sail plans
+
+</li>
+<li><span id="show1_2_5_1" class="foldclosed" onClick="show_folder('1_2_5_1')" style="POSITION: absolute">+</span> <span id="hide1_2_5_1" class="foldopened" onClick="hide_folder('1_2_5_1')">-</Span>
+Transportate cargo or humans
+<ul id="fold1_2_5_1" style="POSITION: relative; VISIBILITY: visible;"><li>Make your passengers happy
+
+</li>
+<li>Load containers and bring them to other harbors
+
+</li>
+<li>Transportate oil from ricks to the refineries
+
+</li>
+
+</ul>
+</li>
+<li>Depends on used client
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_2_6" class="foldclosed" onClick="show_folder('1_2_6')" style="POSITION: absolute">+</span> <span id="hide1_2_6" class="foldopened" onClick="hide_folder('1_2_6')">-</Span>
+Earn a lot (virtual/real) money
+<ul id="fold1_2_6" style="POSITION: relative; VISIBILITY: visible;"><li>Sell a journey
+
+</li>
+<li>Trade with goods
+
+</li>
+<li>Construct ships for other companies
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_2_7" class="foldclosed" onClick="show_folder('1_2_7')" style="POSITION: absolute">+</span> <span id="hide1_2_7" class="foldopened" onClick="hide_folder('1_2_7')">-</Span>
+Play as a passenger
+<ul id="fold1_2_7" style="POSITION: relative; VISIBILITY: visible;"><li>Order a jorney to your desired destionation
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_3" class="foldclosed" onClick="show_folder('1_3')" style="POSITION: absolute">+</span> <span id="hide1_3" class="foldopened" onClick="hide_folder('1_3')">-</Span>
+<span style="font-size: 133%;font-family: SansSerif, sans-serif; font-weight: bold; ">Multi-Player Mode</span>
+<ul id="fold1_3" style="POSITION: relative; VISIBILITY: visible;"><li>Networked over hubs
+
+</li>
+<li><span id="show1_3_1" class="foldclosed" onClick="show_folder('1_3_1')" style="POSITION: absolute">+</span> <span id="hide1_3_1" class="foldopened" onClick="hide_folder('1_3_1')">-</Span>
+Big map which holds all harbors
+<ul id="fold1_3_1" style="POSITION: relative; VISIBILITY: visible;"><li>Seperated into small maps to cluster the load over the network
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_4" class="foldclosed" onClick="show_folder('1_4')" style="POSITION: absolute">+</span> <span id="hide1_4" class="foldopened" onClick="hide_folder('1_4')">-</Span>
+Java client
+<ul id="fold1_4" style="POSITION: relative; VISIBILITY: visible;"><li>Real-time simulation
+
+</li>
+<li><span id="show1_4_1" class="foldclosed" onClick="show_folder('1_4_1')" style="POSITION: absolute">+</span> <span id="hide1_4_1" class="foldopened" onClick="hide_folder('1_4_1')">-</Span>
+OpenGL (3D Graphics)
+<ul id="fold1_4_1" style="POSITION: relative; VISIBILITY: visible;"><li>JOGL
+
+</li>
+
+</ul>
+</li>
+<li>OpenAL (3D sound)
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_5" class="foldclosed" onClick="show_folder('1_5')" style="POSITION: absolute">+</span> <span id="hide1_5" class="foldopened" onClick="hide_folder('1_5')">-</Span>
+"Faked" Single-Player
+<ul id="fold1_5" style="POSITION: relative; VISIBILITY: visible;"><li>Locally installed version
+
+</li>
+<li>Does not connect to other hubs
+
+</li>
+<li><span id="show1_5_1" class="foldclosed" onClick="show_folder('1_5_1')" style="POSITION: absolute">+</span> <span id="hide1_5_1" class="foldopened" onClick="hide_folder('1_5_1')">-</Span>
+"Save games" should be incompatible with MP mode
+<ul id="fold1_5_1" style="POSITION: relative; VISIBILITY: visible;"><li>Avoids cheating
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_6" class="foldclosed" onClick="show_folder('1_6')" style="POSITION: absolute">+</span> <span id="hide1_6" class="foldopened" onClick="hide_folder('1_6')">-</Span>
+Sand-Box Mode
+<ul id="fold1_6" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_6_1" class="foldclosed" onClick="show_folder('1_6_1')" style="POSITION: absolute">+</span> <span id="hide1_6_1" class="foldopened" onClick="hide_folder('1_6_1')">-</Span>
+The player can test the game
+<ul id="fold1_6_1" style="POSITION: relative; VISIBILITY: visible;"><li>Some people like to "explore" the game
+
+</li>
+<li>Or just wanna have a look
+
+</li>
+
+</ul>
+</li>
+<li><span style="font-family: SansSerif, sans-serif; ">There are no competitors</span>
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_7" class="foldclosed" onClick="show_folder('1_7')" style="POSITION: absolute">+</span> <span id="hide1_7" class="foldopened" onClick="hide_folder('1_7')">-</Span>
+Modern-epoche game
+<ul id="fold1_7" style="POSITION: relative; VISIBILITY: visible;"><li>Age: 1950+
+
+</li>
+<li>The abstraction level is kept low
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_8" class="foldclosed" onClick="show_folder('1_8')" style="POSITION: absolute">+</span> <span id="hide1_8" class="foldopened" onClick="hide_folder('1_8')">-</Span>
+License
+<ul id="fold1_8" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_8_1" class="foldclosed" onClick="show_folder('1_8_1')" style="POSITION: absolute">+</span> <span id="hide1_8_1" class="foldopened" onClick="hide_folder('1_8_1')">-</Span>
+The game
+<ul id="fold1_8_1" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_8_1_1" class="foldclosed" onClick="show_folder('1_8_1_1')" style="POSITION: absolute">+</span> <span id="hide1_8_1_1" class="foldopened" onClick="hide_folder('1_8_1_1')">-</Span>
+Ship-Simu is licensed under the GNU GPL 3 or any newer version
+<ul id="fold1_8_1_1" style="POSITION: relative; VISIBILITY: visible;"><li>See docs/COPYING.software
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_8_2" class="foldclosed" onClick="show_folder('1_8_2')" style="POSITION: absolute">+</span> <span id="hide1_8_2" class="foldopened" onClick="hide_folder('1_8_2')">-</Span>
+This document
+<ul id="fold1_8_2" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_8_2_1" class="foldclosed" onClick="show_folder('1_8_2_1')" style="POSITION: absolute">+</span> <span id="hide1_8_2_1" class="foldopened" onClick="hide_folder('1_8_2_1')">-</Span>
+This mind-map is licensed under the GNU FDL 1.2 or any newer version
+<ul id="fold1_8_2_1" style="POSITION: relative; VISIBILITY: visible;"><li>See docs/COPYING.documents
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><span id="show1_9" class="foldclosed" onClick="show_folder('1_9')" style="POSITION: absolute">+</span> <span id="hide1_9" class="foldopened" onClick="hide_folder('1_9')">-</Span>
+Data exchange protocol
+<ul id="fold1_9" style="POSITION: relative; VISIBILITY: visible;"><li><span id="show1_9_1" class="foldclosed" onClick="show_folder('1_9_1')" style="POSITION: absolute">+</span> <span id="hide1_9_1" class="foldopened" onClick="hide_folder('1_9_1')">-</Span>
+Default is an own small format
+<ul id="fold1_9_1" style="POSITION: relative; VISIBILITY: visible;"><li>Reduces traffic between servers
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_9_2" class="foldclosed" onClick="show_folder('1_9_2')" style="POSITION: absolute">+</span> <span id="hide1_9_2" class="foldopened" onClick="hide_folder('1_9_2')">-</Span>
+Easy rewriteable to e.g. XML
+<ul id="fold1_9_2" style="POSITION: relative; VISIBILITY: visible;"><li>Other clients (Flash) can also connect
+
+</li>
+
+</ul>
+</li>
+<li>Java and browser client can play together
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_10" class="foldclosed" onClick="show_folder('1_10')" style="POSITION: absolute">+</span> <span id="hide1_10" class="foldopened" onClick="hide_folder('1_10')">-</Span>
+Optional Pillory
+<ul id="fold1_10" style="POSITION: relative; VISIBILITY: visible;"><li>To make e.g. nazi activity public
+
+</li>
+<li>Shall keep bad players away
+
+</li>
+<li><span id="show1_10_1" class="foldclosed" onClick="show_folder('1_10_1')" style="POSITION: absolute">+</span> <span id="hide1_10_1" class="foldopened" onClick="hide_folder('1_10_1')">-</Span>
+Requires some "game-moderator" access level to manage
+<ul id="fold1_10_1" style="POSITION: relative; VISIBILITY: visible;"><li>The moderator shall have an extra flag e.g. "pillory_accessable"
+
+</li>
+
+</ul>
+</li>
+<li><span id="show1_10_2" class="foldclosed" onClick="show_folder('1_10_2')" style="POSITION: absolute">+</span> <span id="hide1_10_2" class="foldopened" onClick="hide_folder('1_10_2')">-</Span>
+Players, companies et cetera should be lockable
+<ul id="fold1_10_2" style="POSITION: relative; VISIBILITY: visible;"><li>The moderator can choose wether to lock with pillory entry or just locking down
+
+</li>
+
+</ul>
+</li>
+
+</ul>
+</li>
+<li><a href="http://www.ship-simu.org" target="_blank"><span class=l>~</span>&nbsp;http://www.ship-simu.org
+</a>
+
+</li>
+
+</ul><SCRIPT language=JavaScript>
+fold_document();
+</SCRIPT>
+</body>
+</html>
diff --git a/inc/classes/exceptions/main/class_ClassNotFoundException.php b/inc/classes/exceptions/main/class_ClassNotFoundException.php
index b7242e727..b77de9a7f 100644
--- a/inc/classes/exceptions/main/class_ClassNotFoundException.php
+++ b/inc/classes/exceptions/main/class_ClassNotFoundException.php
@@ -3,10 +3,10 @@
  * An exception thrown when a class was not found
  *
  * @author		Roland Haeder <webmaster@mxchange.org>
- * @version		0.3.0
+ * @version		0.0.0
  * @copyright	Copyright(c) 2007, 2008 Roland Haeder, this is free software
  * @license		GNU GPL 3.0 or any newer version
- * @link 		http://www.mxchange.org
+ * @link 		http://www.ship-simu.org
  * 
  * 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
@@ -19,17 +19,17 @@
  * 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, see <http://www.gnu.org/licenses/>.
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 class ClassNotFoundException extends FrameworkException {
 	/**
 	 * The constructor
 	 *
-	 * @param		$message		Message from the exception
+	 * @param		$class		Class' name we have no class found for
 	 * @param		$code		Code number for the exception
 	 * @return	void
 	 */
-	public function __construct (BaseFrameworkSystem $class, $code) {
+	public function __construct ($class, $code) {
 		// Add a message around the missing class
 		$message = sprintf("Die interne Script-Klasse <u>%s</u> konnte nicht gefunden werden!", $class);
 
diff --git a/inc/classes/interfaces/response/class_Responseable.php b/inc/classes/interfaces/response/class_Responseable.php
index d8fdaee1f..7416b948c 100644
--- a/inc/classes/interfaces/response/class_Responseable.php
+++ b/inc/classes/interfaces/response/class_Responseable.php
@@ -56,7 +56,7 @@ interface Responseable extends FrameworkInterface {
 	 * @throws	ResponseHeadersAlreadySentException		Thrown if headers are
 	 *													already sent
 	 */
-	function flushResponse($force=false);
+	function flushBuffer($force=false);
 }
 
 //
diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php
index 4abdf2995..f341fc9d3 100644
--- a/inc/classes/main/class_BaseFrameworkSystem.php
+++ b/inc/classes/main/class_BaseFrameworkSystem.php
@@ -149,6 +149,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
 	const EXCEPTION_INVALID_CONTROLLER           = 0x032;
 	const EXCEPTION_HEADERS_ALREADY_SENT         = 0x033;
 	const EXCEPTION_DEFAUL_CONTROLLER_GONE       = 0x034;
+	const EXCEPTION_CLASS_NOT_FOUND              = 0x035;
 
 	/**
 	 * In the super constructor these system classes shall be ignored or else
@@ -304,7 +305,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
 	 *
 	 * @return	$cfhInstance - Configuration instance
 	 */
-	public final function getConfigInstance () {
+	protected final function getConfigInstance () {
 		return self::$cfgInstance;
 	}
 
diff --git a/inc/classes/main/commands/web/.htaccess b/inc/classes/main/commands/web/.htaccess
new file mode 100644
index 000000000..3a4288278
--- /dev/null
+++ b/inc/classes/main/commands/web/.htaccess
@@ -0,0 +1 @@
+Deny from all
diff --git a/inc/classes/main/commands/web/class_WebHomeCommand.php b/inc/classes/main/commands/web/class_WebHomeCommand.php
new file mode 100644
index 000000000..9629b9742
--- /dev/null
+++ b/inc/classes/main/commands/web/class_WebHomeCommand.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * A command for the "home" page
+ *
+ * @author		Roland Haeder <webmaster@mxchange.org>
+ * @version		0.0.0
+ * @copyright	Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license		GNU GPL 3.0 or any newer version
+ * @link 		http://www.ship-simu.org
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+class WebHomeCommand extends BaseCommand implements Commandable {
+	/**
+	 * Protected constructor
+	 *
+	 * @return	void
+	 */
+	protected function __construct () {
+		// Call parent constructor
+		parent::__construct(__CLASS__);
+
+		// Set special description
+		$this->setObjectDescription("Home-Command");
+
+		// Create unique ID number
+		$this->createUniqueID();
+
+		// Clean up a little
+		$this->removeSystemArray();
+	}
+
+	/**
+	 * Creates an instance of this class
+	 *
+	 * @param	$resolverInstance		An instance of a command resolver class
+	 * @return	$commandInstance		An instance a prepared command class
+	 */
+	public final static function createWebHomeCommand (CommandResolver $resolverInstance) {
+		// Get new instance
+		$commandInstance = new WebHomeCommand();
+
+		// Set the application instance
+		$commandInstance->setResolverInstance($resolverInstance);
+
+		// Return the prepared instance
+		return $commandInstance;
+	}
+
+	/**
+	 * Executes the given command with given request and response objects
+	 *
+	 * @param	$requestInstance		An instance of a class with an Requestable interface
+	 * @param	$responseInstance		An instance of a class with an Responseable interface
+	 * @return	void
+	 */
+	public function execute (Requestable $requestInstance, Responseable $responseInstance) {
+		// Get the application instance
+		$appInstance = $this->getResolverInstance()->getApplicationInstance();
+
+		// Prepare a template instance
+		$templateInstance = $this->prepareTemplateEngine($appInstance);
+
+		// Load the master template
+		$masterTemplate = $appInstance->getMasterTemplate();
+
+		// Load header template
+		$templateInstance->loadCodeTemplate("header");
+
+		// Compile and assign it with a variable
+		$templateInstance->compileTemplate();
+		$templateInstance->assignTemplateWithVariable("header", "header");
+
+		// Load footer template
+		$templateInstance->loadCodeTemplate("footer");
+
+		// Compile and assign it with a variable
+		$templateInstance->compileTemplate();
+		$templateInstance->assignTemplateWithVariable("footer", "footer");
+
+		// Load the home template
+		$templateInstance->loadWebTemplate("home");
+
+		// Assign the home template with the master template as a content ... ;)
+		$templateInstance->assignTemplateWithVariable("home", "content");
+
+		// Load the master template
+		$templateInstance->loadCodeTemplate($masterTemplate);
+
+		// Set title
+		$title = ucfirst($requestInstance->getRequestElement($this->getConfigInstance()->readConfig("command_parameter")));
+		if (empty($title)) $title = "Home";
+		$templateInstance->assignVariable("title", $title);
+
+		// ... and all variables. This should be merged together in a pattern
+		// to make things easier. A cache mechanism should be added between
+		// these two calls to cache compiled templates.
+		$templateInstance->compileVariables();
+
+		// Get the content back from the template engine and put it in the response class
+		$templateInstance->transferToResponse($responseInstance);
+	}
+}
+
+// [EOF]
+?>
diff --git a/inc/classes/main/controller/class_ b/inc/classes/main/controller/class_
index 8ac8f489a..2c22f0647 100644
--- a/inc/classes/main/controller/class_
+++ b/inc/classes/main/controller/class_
@@ -21,7 +21,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-class Controller extends BaseController {
+class Controller extends BaseController implements Controller {
 	/**
 	 * Private constructor
 	 *
diff --git a/inc/classes/main/controller/default/class_WebDefaultController.php b/inc/classes/main/controller/default/class_WebDefaultController.php
new file mode 100644
index 000000000..983089194
--- /dev/null
+++ b/inc/classes/main/controller/default/class_WebDefaultController.php
@@ -0,0 +1,96 @@
+<?php
+/**
+ * The default controller for all other requests
+ *
+ * @author		Roland Haeder <webmaster@ship-simu.org>
+ * @version		0.0.0
+ * @copyright	Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license		GNU GPL 3.0 or any newer version
+ * @link		http://www.ship-simu.org
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+class WebWebDefaultController extends BaseController implements Controller {
+	/**
+	 * Instance of a CommandResolver class
+	 */
+	private $resolverInstance = null;
+
+	/**
+	 * Protected constructor
+	 *
+	 * @return	void
+	 */
+	protected function __construct () {
+		// Call parent constructor
+		parent::__construct(__CLASS__);
+
+		// Set part description
+		$this->setObjectDescription("Standart-Controller f&uuml;r alle &uuml;brigen Anfragen");
+
+		// Create unique ID number
+		$this->createUniqueID();
+
+		// Clean up a little
+		$this->removeSystemArray();
+	}
+
+	/**
+	 * Creates an instance of this class
+	 *
+	 * @param	$resolverInstance		An instance of a command resolver class
+	 * @return	$controllerInstance		A prepared instance of this class
+	 */
+	public final static function createWebDefaultController (CommandResolver $resolverInstance) {
+		// Create the instance
+		$controllerInstance = new WebDefaultController();
+
+		// Set the command resolver
+		$controllerInstance->setResolverInstance($resolverInstance);
+
+		// Return the prepared instance
+		return $controllerInstance;
+	}
+
+	/**
+	 * Setter for a command resolver instance
+	 *
+	 * @param	$resolverInstance	An instance of a command resolver class
+	 * @return	void
+	 */
+	public final function setResolverInstance (CommandResolver $resolverInstance) {
+		$this->resolverInstance = $resolverInstance;
+	}
+
+	/**
+	 * Handles the given request and response
+	 *
+	 * @param	$requestInstance	An instance of a request class
+	 * @param	$responseInstance	An instance of a response class
+	 * @return	void
+	 */
+	public function handleRequest (Requestable $requestInstance, Responseable $responseInstance) {
+		// Get the command instance
+		$commandInstance = $this->resolverInstance->resolvCommandByRequest($requestInstance);
+
+		// Execute the command
+		$commandInstance->execute($requestInstance, $responseInstance);
+
+		// Flush the response out
+		$responseInstance->flushBuffer();
+	}
+}
+
+// [EOF]
+?>
diff --git a/inc/classes/main/controller/default/class_WebDefaultNewsController.php b/inc/classes/main/controller/default/class_WebDefaultNewsController.php
new file mode 100644
index 000000000..ea690a9ec
--- /dev/null
+++ b/inc/classes/main/controller/default/class_WebDefaultNewsController.php
@@ -0,0 +1,110 @@
+<?php
+/**
+ * The default controller with news for e.g. home or news page
+ *
+ * @author		Roland Haeder <webmaster@ship-simu.org>
+ * @version		0.0.0
+ * @copyright	Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license		GNU GPL 3.0 or any newer version
+ * @link		http://www.ship-simu.org
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+class WebDefaultNewsController extends BaseController implements Controller {
+	/**
+	 * Instance of a CommandResolver class
+	 */
+	private $resolverInstance = null;
+
+	/**
+	 * Protected constructor
+	 *
+	 * @return	void
+	 */
+	protected function __construct () {
+		// Call parent constructor
+		parent::__construct(__CLASS__);
+
+		// Set part description
+		$this->setObjectDescription("Standart-Controller mit News-Auflistung");
+
+		// Create unique ID number
+		$this->createUniqueID();
+
+		// Clean up a little
+		$this->removeSystemArray();
+	}
+
+	/**
+	 * Creates an instance of this class
+	 *
+	 * @param	$resolverInstance		An instance of a command resolver class
+	 * @return	$controllerInstance		A prepared instance of this class
+	 */
+	public final static function createWebDefaultNewsController (CommandResolver $resolverInstance) {
+		// Create the instance
+		$controllerInstance = new WebDefaultNewsController();
+
+		// Set the command resolver
+		$controllerInstance->setResolverInstance($resolverInstance);
+
+		// Return the prepared instance
+		return $controllerInstance;
+	}
+
+	/**
+	 * Setter for a command resolver instance
+	 *
+	 * @param	$resolverInstance	An instance of a command resolver class
+	 * @return	void
+	 */
+	public final function setResolverInstance (CommandResolver $resolverInstance) {
+		$this->resolverInstance = $resolverInstance;
+	}
+
+	/**
+	 * Handles the given request and response
+	 *
+	 * @param	$requestInstance	An instance of a request class
+	 * @param	$responseInstance	An instance of a response class
+	 * @return	void
+	 */
+	public function handleRequest (Requestable $requestInstance, Responseable $responseInstance) {
+		// Get the command instance from the resolver by sending a request instance to the resolver
+		$commandInstance = $this->resolverInstance->resolvCommandByRequest($requestInstance);
+
+		// Load the news here
+		$this->loadNewsByRequest($requestInstance);
+
+		// Execute the command
+		$commandInstance->execute($requestInstance, $responseInstance);
+
+		// Flush the response out
+		$responseInstance->flushBuffer();
+	}
+
+	/**
+	 * Loads news by a given request
+	 *
+	 * @param	$requestInstance	An instance of a request class
+	 * @return	void
+	 */
+	private function loadNewsByRequest (Requestable $requestInstance) {
+		// Generate a new news object but not carring about which concrete we have
+		$newsInstance = NewsFactory::createFactoryByRequest($requestInstance)->createNewsObject();
+	}
+}
+
+// [EOF]
+?>
diff --git a/inc/classes/main/controller/registration/class_DefaultRegistrationController.php b/inc/classes/main/controller/registration/class_DefaultRegistrationController.php
index 2f15e400d..24d7040f7 100644
--- a/inc/classes/main/controller/registration/class_DefaultRegistrationController.php
+++ b/inc/classes/main/controller/registration/class_DefaultRegistrationController.php
@@ -24,7 +24,7 @@
  */
 class DefaultRegistrationController extends BaseController implements Controller {
 	/**
-	 * Private constructor
+	 * Protected constructor
 	 *
 	 * @return	void
 	 */
diff --git a/inc/classes/main/factories/.htaccess b/inc/classes/main/factories/.htaccess
new file mode 100644
index 000000000..3a4288278
--- /dev/null
+++ b/inc/classes/main/factories/.htaccess
@@ -0,0 +1 @@
+Deny from all
diff --git a/inc/classes/main/factories/class_BaseFactory.php b/inc/classes/main/factories/class_BaseFactory.php
new file mode 100644
index 000000000..db2611c28
--- /dev/null
+++ b/inc/classes/main/factories/class_BaseFactory.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * A general (base) factory
+ *
+ * @author		Roland Haeder <webmaster@ship-simu.org>
+ * @version		0.0.0
+ * @copyright	Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license		GNU GPL 3.0 or any newer version
+ * @link		http://www.ship-simu.org
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+class BaseFactory extends BaseFrameworkSystem {
+	/**
+	 * An instance of the real factory class
+	 */
+	private $realFactoryInstance = null;
+
+	/**
+	 * Protected constructor
+	 *
+	 * @param	$class	Name of the real class (not BaseFactory)
+	 * @return	void
+	 */
+	protected function __construct ($class) {
+		// Call parent constructor
+		parent::__construct($class);
+
+		// Create unique ID number
+		$this->createUniqueID();
+
+		// Clean up a little
+		$this->removeNumberFormaters();
+		$this->removeSystemArray();
+	}
+
+	/**
+	 * Setter for the *real* factory instance
+	 *
+	 * @param	$realFactoryInstance	An instance of the real factory class
+	 * @return	void
+	 */
+	public final function setRealFactoryInstance (BaseFrameworkSystem $realFactoryInstance) {
+		$this->realFactoryInstance = $realFactoryInstance;
+	}
+
+	/**
+	 * Getter for the *real* factory instance
+	 *
+	 * @return	$realFactoryInstance	An instance of the real factory class
+	 */
+	protected final function getRealFactoryInstance () {
+		return $this->realFactoryInstance;
+	}
+}
+
+// [EOF]
+?>
diff --git a/inc/classes/main/factories/objects/.htaccess b/inc/classes/main/factories/objects/.htaccess
new file mode 100644
index 000000000..3a4288278
--- /dev/null
+++ b/inc/classes/main/factories/objects/.htaccess
@@ -0,0 +1 @@
+Deny from all
diff --git a/inc/classes/main/factories/objects/class_ObjectFactory.php b/inc/classes/main/factories/objects/class_ObjectFactory.php
new file mode 100644
index 000000000..fd983cac7
--- /dev/null
+++ b/inc/classes/main/factories/objects/class_ObjectFactory.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * An general object factory
+ *
+ * @author		Roland Haeder <webmaster@ship-simu.org>
+ * @version		0.0.0
+ * @copyright	Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license		GNU GPL 3.0 or any newer version
+ * @link		http://www.ship-simu.org
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+class ObjectFactory extends BaseFactory {
+	/**
+	 * Protected constructor
+	 *
+	 * @param	$class	Name of the real class (not BaseFactory)
+	 * @return	void
+	 */
+	protected function __construct () {
+		// Call parent constructor
+		parent::__construct(__CLASS__);
+
+		// Set object description
+		$this->setObjectDescription("Objekte-Fabrik");
+	}
+
+	/**
+	 * Creates a new object given by the name or throws an exception if
+	 * the class was not found. No parameters for the object are currently
+	 * supported.
+	 *
+	 * @param	$className				Name of the class we shall construct
+	 * @return	$objectInstance			An instance of the requested object
+	 * @throws	ClassNotFoundException	If the requested class was not found
+	 * @throws	EmptyVariableException	If a variable is empty unexpectly
+	 */
+	public final static function createObjectByName ($className) {
+		// First get an instance of this factory
+		$factoryInstance = new ObjectFactory();
+
+		// Is the class name valid and is the class there?
+		if (empty($className)) {
+			// Throw an exception here
+			throw new EmptyVariableException(array($factoryInstance, 'className'), self::EXCEPTION_UNEXPECTED_EMPTY_STRING);
+		} elseif (!class_exists($className)) {
+			// Then throw an exception
+			throw new ClassNotFoundException($className, self::EXCEPTION_CLASS_NOT_FOUND);
+		}
+
+		// Then Prepare the eval() command
+		$eval = sprintf("\$objectInstance = %s::create%s();",
+			$className,
+			$className
+		);
+
+		// Run the command
+		eval($eval);
+
+		// Return the prepared instance
+		return $objectInstance;
+	}
+}
+
+// [EOF]
+?>
diff --git a/inc/classes/main/factories/web/.htaccess b/inc/classes/main/factories/web/.htaccess
new file mode 100644
index 000000000..3a4288278
--- /dev/null
+++ b/inc/classes/main/factories/web/.htaccess
@@ -0,0 +1 @@
+Deny from all
diff --git a/inc/classes/main/factories/web/class_NewsFactory.php b/inc/classes/main/factories/web/class_NewsFactory.php
new file mode 100644
index 000000000..3da66f9f7
--- /dev/null
+++ b/inc/classes/main/factories/web/class_NewsFactory.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * A news factory for web pages
+ *
+ * @author		Roland Haeder <webmaster@ship-simu.org>
+ * @version		0.0.0
+ * @copyright	Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license		GNU GPL 3.0 or any newer version
+ * @link		http://www.ship-simu.org
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+class NewsFactory extends BaseFactory {
+	/**
+	 * Instance of a request class
+	 */
+	private $requestInstance = null;
+
+	/**
+	 * Protected constructor
+	 *
+	 * @return	void
+	 */
+	protected function __construct () {
+		// Call parent constructor
+		parent::__construct(__CLASS__);
+
+		// Set part description
+		$this->setObjectDescription("News-Fabrik f&uuml;r Webseiten");
+	}
+
+	/**
+	 * Singleton getter for a special factory instance depending on the given
+	 * request
+	 *
+	 * @param	$requestInstance	An instance of a request class
+	 * @return	$factoryInstance	An instance of a NewsFactory class
+	 */
+	public final static function createFactoryByRequest (Requestable $requestInstance) {
+		// Generate the new instance
+		$factoryInstance = new NewsFactory();
+
+		// Get the element name from configuration
+		$element = FrameworkConfiguration::getInstance()->readConfig("app_selector_get");
+
+		// Analyze the request, first get the Uni* application name (short one from URL)
+		$appName = $requestInstance->getRequestElement($element);
+
+		// Initialize some variables
+		$className = "";
+		$className2 = $appName;
+
+		// Then construct the class name
+		foreach (array("_", "-") as $exp) {
+			$array = explode($exp, $className2);
+			foreach ($array as $el) {
+				$className .= ucfirst(strtolower($el));
+			}
+
+			// Copy it back and clear the class name
+			$className2 = $className;
+			$className = "";
+		}
+
+		// After all is done, copy it back and add this class' name
+		$className = $className2 . $factoryInstance->__toString();
+
+		// Once we have that name, try to load initialize it
+		$realFactoryInstance = ObjectFactory::createObjectByName($className);
+
+		// And assign it with the factory
+		$factoryInstance->setRealFactoryInstance($realFactoryInstance);
+
+		// Remember the request we have used for later usage
+		$factoryInstance->setRequestInstance($requestInstance);
+
+		// Return the prepared factory instance
+		return $factoryInstance;
+	}
+
+	/**
+	 * Setter for the request instance
+	 *
+	 * @param	$requestInstance	An instance of a request object
+	 * @return	void
+	 */
+	public final function setRequestInstance (Requestable $requestInstance) {
+		$this->requestInstance = $requestInstance;
+	}
+
+	/**
+	 * Creates a new object instance and returns it
+	 *
+	 * @return	$newsInstance	An instance of a news object
+	 */
+	public function createNewsObject () {
+		// Ask the real factory class for doing this
+		$newsInstance = $this->getRealFactoryInstance()->createNewObject($this->requestInstance);
+
+		// And return it
+		return $newsInstance;
+	}
+}
+
+// [EOF]
+?>
diff --git a/inc/classes/main/language/class_LanguageSystem.php b/inc/classes/main/language/class_LanguageSystem.php
index 4aa9490c2..35db75c56 100644
--- a/inc/classes/main/language/class_LanguageSystem.php
+++ b/inc/classes/main/language/class_LanguageSystem.php
@@ -101,7 +101,7 @@ class LanguageSystem extends BaseFrameworkSystem implements ManageableLanguage {
 		$langInstance->initLanguageStrings();
 
 		// Set language code from default config
-		$langInstance->setLanguageCode($langInstance->getConfigInstance()->readConfig("default_lang"));
+		$langInstance->setLanguageCode(FrameworkConfiguration::getInstance()->readConfig("default_lang"));
 
 		// Remember this instance
 		self::$thisInstance = $langInstance;
diff --git a/inc/classes/main/resolver/class_BaseResolver.php b/inc/classes/main/resolver/class_BaseResolver.php
index d442ef38e..d947d89e3 100644
--- a/inc/classes/main/resolver/class_BaseResolver.php
+++ b/inc/classes/main/resolver/class_BaseResolver.php
@@ -33,7 +33,7 @@ class BaseResolver extends BaseFrameworkSystem {
 	private $commandPrefix = "";
 
 	/**
-	 * Private constructor
+	 * Protected constructor
 	 *
 	 * @return	void
 	 */
diff --git a/inc/classes/main/resolver/web/.htaccess b/inc/classes/main/resolver/web/.htaccess
new file mode 100644
index 000000000..3a4288278
--- /dev/null
+++ b/inc/classes/main/resolver/web/.htaccess
@@ -0,0 +1 @@
+Deny from all
diff --git a/inc/classes/main/resolver/web/class_WebCommandResolver.php b/inc/classes/main/resolver/web/class_WebCommandResolver.php
new file mode 100644
index 000000000..2ab4e5003
--- /dev/null
+++ b/inc/classes/main/resolver/web/class_WebCommandResolver.php
@@ -0,0 +1,184 @@
+<?php
+/**
+ * A command resolver for local (non-hubbed) commands
+ *
+ * @author		Roland Haeder <webmaster@ship-simu.org>
+ * @version		0.0.0
+ * @copyright	Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license		GNU GPL 3.0 or any newer version
+ * @link		http://www.ship-simu.org
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+class WebCommandResolver extends BaseResolver implements CommandResolver {
+	/**
+	 * Last successfull resolved command
+	 */
+	private $lastCommandInstance = "";
+
+	/**
+	 * Protected constructor
+	 *
+	 * @return	void
+	 */
+	protected function __construct () {
+		// Call parent constructor
+		parent::__construct(__CLASS__);
+
+		// Set part description
+		$this->setObjectDescription("Lokaler Kommandoaufl&ouml;ser");
+
+		// Create unique ID number
+		$this->createUniqueID();
+
+		// Clean up a little
+		$this->removeNumberFormaters();
+		$this->removeSystemArray();
+
+		// Set prefix to "Web"
+		$this->setCommandPrefix("Web");
+	}
+
+	/**
+	 * Creates an instance of a Web command resolver with a given default command
+	 *
+	 * @param	$defaultCommand				The default command we shall execute
+	 * @param	$appInstance				An instance of a manageable application helper class
+	 * @return	$resolverInstance			The prepared command resolver instance
+	 * @throws	EmptyVariableException		Thrown if the default command is not set
+	 * @throws	InvalidCommandException		Thrown if the default command is invalid
+	 */
+	public final static function createWebCommandResolver ($defaultCommand, ManageableApplication $appInstance) {
+		// Create the new instance
+		$resolverInstance = new WebCommandResolver();
+
+		// Is the variable $defaultCommand set and the command is valid?
+		if (empty($defaultCommand)) {
+			// Then thrown an exception here
+			throw new EmptyVariableException(array($resolverInstance, 'defaultCommand'), self::EXCEPTION_UNEXPECTED_EMPTY_STRING);
+		} elseif (!$resolverInstance->isCommandValid($defaultCommand)) {
+			// Invalid command found
+			throw new InvalidCommandException(array($resolverInstance, $defaultCommand), self::EXCEPTION_INVALID_COMMAND);
+		}
+
+		// Set the application instance
+		$resolverInstance->setApplicationInstance($appInstance);
+
+		// Return the prepared instance
+		return $resolverInstance;
+	}
+
+	/**
+	 * Returns an command instance for a given request class or null if
+	 * MissingArrayElementsException was thrown
+	 *
+	 * @param	$requestInstance	An instance of a request class
+	 * @return	$commandInstance	An instance of the resolved command
+	 * @throws	InvalidCommandException				Thrown if $commandName is
+	 *												invalid
+	 * @throws	InvalidCommandInstanceException		Thrown if $commandInstance
+	 *												is an invalid instance
+	 */
+	public function resolvCommandByRequest (Requestable $requestInstance) {
+		// Init variables
+		$commandName = "";
+		$commandInstance = null;
+
+		// Test if the required parameter is set
+		try {
+			// This goes fine so let's resolv the command
+			$commandName = $requestInstance->getRequestElement($this->getConfigInstance()->readConfig("command_parameter"));
+
+			// Is the command empty? Then fall back to default command
+			if (empty($commandName)) $commandName = $this->getConfigInstance()->readConfig("default_command");
+
+			// Check if the command is valid
+			if (!$this->isCommandValid($commandName)) {
+				// This command is invalid!
+				throw new InvalidCommandException(array($this, $commandName), self::EXCEPTION_INVALID_COMMAND);
+			}
+
+			// Get the command
+			$commandInstance = $this->loadCommand($commandName);
+
+			// And validate it
+			if ((!is_object($commandInstance)) || (!$commandInstance instanceof Commandable)) {
+				// This command has an invalid instance!
+				throw new InvalidCommandInstanceException(array($this, $commandName), self::EXCEPTION_INVALID_COMMAND);
+			}
+
+			// Set last command
+			$this->lastCommandInstance = $commandInstance;
+		} catch (MissingArrayElementsException $e) {
+			// Just catch it here...
+		}
+
+		// Return the resolved command instance
+		return $commandInstance;
+	}
+
+	/**
+	 * "Loads" a given command and instances it if not yet cached
+	 *
+	 * @param	$commandName				A command name we shall look for
+	 * @return	$commandInstance			A loaded command instance
+	 * @throws	InvalidCommandException		Thrown if even the default
+	 *										command class is missing (bad!)
+	 */
+	private function loadCommand ($commandName) {
+		// Cache default command
+		$defaultCommand = $this->getConfigInstance()->readConfig("default_command");
+
+		// Init command instance
+		$commandInstance = null;
+
+		// Create command class name
+		$class = sprintf("Web%sCommand",
+			ucfirst(strtolower($commandName))
+		);
+
+		// Is this class loaded?
+		if (!class_exists($class)) {
+			// Class not found, so try the default one or throw exception
+			if ($commandName != $defaultCommand) {
+				// Try the default command
+				return $this->loadCommand($defaultCommand);
+			} else {
+				// Still not found?
+				throw new InvalidCommandException(array($this, $defaultCommand), self::EXCEPTION_INVALID_COMMAND);
+			}
+		}
+
+		// Initiate the command
+		$eval = sprintf("\$commandInstance = %s::create%s(\$this);",
+			$class,
+			$class
+		);
+
+		// Run the command
+		eval($eval);
+
+		// Is the instance valid?
+		if ((!is_object($commandInstance)) || (!$commandInstance instanceof Commandable)) {
+			// Something is wrong
+			$commandInstance = null;
+		}
+
+		// Return the result
+		return $commandInstance;
+	}
+}
+
+// [EOF]
+?>
diff --git a/inc/classes/main/resolver/web/class_WebControllerResolver.php b/inc/classes/main/resolver/web/class_WebControllerResolver.php
new file mode 100644
index 000000000..16ad0c2c4
--- /dev/null
+++ b/inc/classes/main/resolver/web/class_WebControllerResolver.php
@@ -0,0 +1,189 @@
+<?php
+/**
+ * A resolver for resolving controllers locally
+ *
+ * @author		Roland Haeder <webmaster@ship-simu.org>
+ * @version		0.0.0
+ * @copyright	Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license		GNU GPL 3.0 or any newer version
+ * @link		http://www.ship-simu.org
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+class WebControllerResolver extends BaseResolver implements ControllerResolver {
+	/**
+	 * Last successfull resolved controller
+	 */
+	private $lastControllerName = "";
+
+	/**
+	 * Protected constructor
+	 *
+	 * @return	void
+	 */
+	protected function __construct () {
+		// Call parent constructor
+		parent::__construct(__CLASS__);
+
+		// Set part description
+		$this->setObjectDescription("");
+
+		// Create unique ID number
+		$this->createUniqueID();
+
+		// Clean up a little
+		$this->removeNumberFormaters();
+		$this->removeSystemArray();
+
+		// Set prefix to "Web"
+		$this->setCommandPrefix("Web");
+	}
+
+	/**
+	 * Creates an instance of a resolver class with a given command
+	 *
+	 * @param	$commandName				The default command we shall execute
+	 * @param	$appInstance				An instance of a manageable application helper class
+	 * @return	$resolverInstance			The prepared command resolver instance
+	 * @throws	EmptyVariableException		Thrown if the default command is not set
+	 * @throws	InvalidCommandException		Thrown if the default command is invalid
+	 */
+	public final static function createWebControllerResolver ($commandName, ManageableApplication $appInstance) {
+		// Create the new instance
+		$resolverInstance = new WebControllerResolver();
+
+		// Is the variable $commandName set and the command is valid?
+		if (empty($commandName)) {
+			// Then thrown an exception here
+			throw new EmptyVariableException(array($resolverInstance, 'commandName'), self::EXCEPTION_UNEXPECTED_EMPTY_STRING);
+		} elseif (!$resolverInstance->isCommandValid($commandName)) {
+			// Invalid command found
+			throw new InvalidCommandException(array($resolverInstance, $commandName), self::EXCEPTION_INVALID_COMMAND);
+		}
+
+		// Set the application instance
+		$resolverInstance->setApplicationInstance($appInstance);
+
+		// Return the prepared instance
+		return $resolverInstance;
+	}
+
+	/**
+	 * Resolves the default controller of the given command
+	 *
+	 * @return	$controllerInstance		A controller instance for the default
+	 *									command
+	 * @throws	InvalidCommandException				Thrown if $commandName is
+	 *												invalid
+	 * @throws	InvalidControllerInstanceException	Thrown if $commandInstance
+	 *												is invalid
+	 */
+	public function resolveDefaultController () {
+		// Init variables
+		$commandName = "";
+		$controllerInstance = null;
+
+		// Try to resolv the command
+		try {
+			// Get the command name 
+			$commandName = $this->getCommandName();
+
+			// Check if the command is valid
+			if (!$this->isCommandValid($commandName)) {
+				// This command is invalid!
+				throw new InvalidCommandException(array($this, $commandName), self::EXCEPTION_INVALID_COMMAND);
+			}
+
+			// Get the command
+			$controllerInstance = $this->loadController($commandName);
+
+			// And validate it
+			if ((!is_object($controllerInstance)) || (!$controllerInstance instanceof Controller)) {
+				// This command has an invalid instance!
+				throw new InvalidControllerInstanceException(array($this, $commandName), self::EXCEPTION_INVALID_CONTROLLER);
+			}
+
+			// Set last command
+			$this->lastCommandInstance = $controllerInstance;
+		} catch (MissingArrayElementsException $e) {
+			// Just catch it here...
+		}
+
+		// Return the maybe resolved instance
+		return $controllerInstance;
+	}
+
+	/**
+	 * "Loads" a given controller and instances it if not yet cached
+	 *
+	 * @param	$commandName			A controller name we shall look for
+	 * @return	$controllerInstance		A loaded controller instance
+	 * @throws	DefaultControllerException	Thrown if even the default
+	 *										controller class is missing (bad!)
+	 */
+	private function loadController ($commandName) {
+		// Cache default command
+		$defaultCommand = $this->getConfigInstance()->readConfig("default_command");
+
+		// Init controller instance
+		$controllerInstance = null;
+
+		// Default controller
+		$class = "WebDefaultController";
+
+		// Generate the class name
+		if ($commandName != $defaultCommand) {
+			// Create controller class name
+			$class = sprintf("Web%sController",
+				ucfirst(strtolower($commandName))
+			);
+		} elseif ($this->getConfigInstance()->readConfig("home_with_news") == "Y") {
+			// Yes, display news in home then set default controller with news
+			$class = "WebDefaultNewsController";
+		}
+
+		// Is this class loaded?
+		if (!class_exists($class)) {
+			// Class not found, so try the default one or throw exception
+			if ($commandName != $defaultCommand) {
+				// Try the default controller
+				return $this->loadController($defaultCommand);
+			} else {
+				// Still not found?
+				throw new DefaultControllerException($this, self::EXCEPTION_DEFAUL_CONTROLLER_GONE);
+			}
+		}
+
+		// Initiate the controller
+		$eval = sprintf("\$controllerInstance = %s::create%s(WebCommandResolver::createWebCommandResolver(\$commandName, \$this->getApplicationInstance()));",
+			$class,
+			$class
+		);
+
+		// Run the command
+		eval($eval);
+
+		// Is the instance valid?
+		if ((!is_object($controllerInstance)) || (!$controllerInstance instanceof Controller)) {
+			// Something is wrong
+			$controllerInstance = null;
+		}
+
+		// Return the result
+		return $controllerInstance;
+	}
+}
+
+// [EOF]
+?>
diff --git a/inc/classes/main/response/class_HttpResponse.php b/inc/classes/main/response/class_HttpResponse.php
index 3679fe96a..8172191ac 100644
--- a/inc/classes/main/response/class_HttpResponse.php
+++ b/inc/classes/main/response/class_HttpResponse.php
@@ -20,6 +20,9 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The extended headers are taken from phpMyAdmin setup tool, written by
+ * Michal Cihar <michal@cihar.com>, licensed under GNU GPL 2.0.
  */
 class HttpResponse extends BaseFrameworkSystem implements Responseable {
 	/**
@@ -119,13 +122,26 @@ class HttpResponse extends BaseFrameworkSystem implements Responseable {
 	 * @throws	ResponseHeadersAlreadySentException		Thrown if headers are
 	 *													already sent
 	 */
-	public function flushResponse ($force=false) {
+	public function flushBuffer ($force=false) {
 		if ((headers_sent()) && (!$force)) {
 			// Headers are already sent!
 			throw new ResponseHeadersAlreadySentException($this, self::EXCEPTION_HEADERS_ALREADY_SENT);
 		} elseif (!headers_sent()) {
 			// Send headers out
 			header("HTTP/1.0 {$this->responseStatus}");
+
+			// Used later
+			$now = gmdate('D, d M Y H:i:s') . ' GMT';
+
+			// General header for no caching
+			$this->addHeader('Expired', $now); // rfc2616 - Section 14.21
+			$this->addHeader('Last-Modified', $now);
+			$this->addHeader('Cache-Control:', 'no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
+			$this->addHeader('Pragma:', 'no-cache'); // HTTP/1.0
+
+			// Define the charset to be used
+			$this->addHeader('Content-Type:', 'text/html; charset=utf-8');
+
 			foreach ($this->responseHeaders as $name=>$value) {
 				header("{$name}: {$value}");
 			}
diff --git a/inc/classes/main/template/class_TemplateEngine.php b/inc/classes/main/template/class_TemplateEngine.php
index e11b84d55..4c1500625 100644
--- a/inc/classes/main/template/class_TemplateEngine.php
+++ b/inc/classes/main/template/class_TemplateEngine.php
@@ -167,7 +167,7 @@ class TemplateEngine extends BaseFrameworkSystem implements CompileableTemplate
 		}
 
 		// Get configuration instance
-		$cfgInstance = $tplInstance->getConfigInstance();
+		$cfgInstance = FrameworkConfiguration::getInstance();
 
 		// Set the base path
 		$tplInstance->setBasePath($basePath);
diff --git a/inc/classes/middleware/compressor/class_CompressorChannel.php b/inc/classes/middleware/compressor/class_CompressorChannel.php
index b5fa5654a..fd04ac118 100644
--- a/inc/classes/middleware/compressor/class_CompressorChannel.php
+++ b/inc/classes/middleware/compressor/class_CompressorChannel.php
@@ -55,7 +55,7 @@ class CompressorChannel extends BaseMiddleware {
 			// Read all directories but no sub directories
 			while ($dir = $dirPointer->readDirectoryExcept(array("..", ".", ".htaccess"))) {
 				// Is this a class file?
-				if ((substr($dir, 0, 6) == "class_") && (substr($dir, -4, 4) == $cInstance->getConfigInstance()->readConfig("php_extension"))) {
+				if ((substr($dir, 0, 6) == "class_") && (substr($dir, -4, 4) == FrameworkConfiguration::getInstance()->readConfig("php_extension"))) {
 					// Get the compressor's name. That's why you must name
 					// your files like your classes and also that's why you
 					// must keep on class in one file.
diff --git a/inc/config/config-hubmaster.php b/inc/config/config-hubmaster.php
new file mode 100644
index 000000000..1ec81dfae
--- /dev/null
+++ b/inc/config/config-hubmaster.php
@@ -0,0 +1,88 @@
+<?php
+/**
+ * Configuration entries for connecting to the hub
+ *
+ * @author		Roland Haeder <webmaster@ship-simu.org>
+ * @version		0.0
+ * @copyright	Copyright(c) 2007, 2008 Roland Haeder, this is free software
+ * @license		GNU GPL 3.0 or any newer version
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+// Get the configuration instance
+$cfg = FrameworkConfiguration::getInstance();
+
+// CFG: HUB-LISTEN-ADDR
+$cfg->setConfigEntry("hub_listen_addr", "0.0.0.0");
+
+// CFG: HUB-LISTEN-PORT (zero = auto-choose)
+$cfg->setConfigEntry("hub_listen_port", 9060);
+
+// CFG: HUB-MAX-AUTH-TRIES
+$cfg->setConfigEntry("hub_max_auth_tries", 3);
+
+// CFG: HUB-MSG-AUTH-TRIES
+$cfg->setConfigEntry("hub_msg_auth_tries", "AUTH_MAX_TRIES");
+
+// CFG: HUB-MSG-SPOOFING
+$cfg->setConfigEntry("hub_msg_spoofing", "SPOOFING");
+
+// CFG: HUB-MSG-AUTH-REPLY
+$cfg->setConfigEntry("hub_msg_auth_reply_timeout", "TIMEOUT_AUTH");
+
+// CFG: HUB-MSG-BYE
+$cfg->setConfigEntry("hub_msg_bye", "BYE");
+
+// CFG: HUB-MASTER-IP
+$cfg->setConfigEntry("hub_master_ip", "192.168.1.17");
+
+// CFG: HUB-MASTER-PORT
+$cfg->setConfigEntry("hub_master_port", 9060);
+
+// CFG: HUB-AUTH-REQUEST
+$cfg->setConfigEntry("hub_auth_request", "AUTH");
+
+// CFG: HUB-AUTH-REQUEST-TIMEOUT (5 seconds for whole auth procedure shall be fine)
+$cfg->setConfigEntry("hub_auth_request_timeout", 5);
+
+// CFG: HUB-PEER-HELLO
+$cfg->setConfigEntry("hub_peer_hello", "HELLO");
+
+// CFG: HUB-HELLO-REPLY
+$cfg->setConfigEntry("hub_hello_reply", "ELHO");
+
+// CFG: HUB-HELLO-TIMEOUT
+$cfg->setConfigEntry("hub_hello_timeout", 30);
+
+// CFG: HUB-HELLO-RETRIES
+$cfg->setConfigEntry("hub_hello_retires", 3);
+
+// CFG: HUB-PEER-PING
+$cfg->setConfigEntry("hub_peer_ping", "PING");
+
+// CFG: HUB-PING-REPLY
+$cfg->setConfigEntry("hub_ping_reply", "PONG");
+
+// CFG: HUB-PING-TIMEOUT
+$cfg->setConfigEntry("hub_ping_timeout", 10);
+
+// CFG: HUB-PING-MAXDROPS
+$cfg->setConfigEntry("hub_ping_maxdrops", 3);
+
+// CFG: HUB-PEER-MISS-PONG
+$cfg->setConfigEntry("hub_peer_miss_pong", "PONG_MISS");
+
+// [EOF]
+?>
-- 
2.39.5