Index: /main/waeup.plonetheme.ngren3/trunk/MANIFEST.in
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/MANIFEST.in	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/MANIFEST.in	(revision 10084)
@@ -0,0 +1,2 @@
+recursive-include plonetheme *
+global-exclude *pyc
Index: /main/waeup.plonetheme.ngren3/trunk/README.rst
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/README.rst	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/README.rst	(revision 10084)
@@ -0,0 +1,77 @@
+Introduction
+============
+
+waeup.plonetheme.ngren3 integrates Twitter Bootstrap CSS/JS framework
+into Plone. You can checkout the framework at http://twitter.github.com/bootstrap
+
+It overrides some templates and uses javascript to transform
+some markup in order for it to work correctly.
+
+It's not perfect, but it's close.
+
+Dependencies
+==============
+
+Latest Twitter Bootstrap requires jQuery 1.7.x, you can install
+it in Plone pinning plone.app.jquery in your buildout to version 1.7.2.
+You will also need to pin plone.app.jquerytools to version
+1.5.1 to guarantee jQuery 1.7.x compatibility::
+
+ [versions]
+ ...
+ plone.app.jquery = 1.7.2
+ plone.app.jquerytools = 1.5.1
+ ...
+
+Twitter Boostrap itself is provided as browser resources by the addon
+`collective.js.bootstrap`_.
+
+Documentation
+===============
+
+This product is based in Twitter Bootstrap version 2.3.x.
+
+This product adds both the basic CSS file and also the Responsive one to have
+a mobile-enabled site from the start.
+
+The generated markup is based on 'fluid CSS' and it contains a 12 column grid.
+
+The basic HTML markup is a mix of `plonetheme.sunburst`_ and Twitter Bootstrap
+and it uses the same approach of constructing the columns as Sunburst Theme:
+a simple view that returns the classes needed to have the correct column widths.
+
+If you want to change those widths, just override the view following the common
+Plone overriding patterns.
+
+This product is intended to be used in two scenarios:
+
+ - As a theme from Plone
+ - As a base theme to build Plone themes for your site following 'old practices'
+
+Some designers prefer to work following the old best-practices instead of using
+the Diazo-way-of-theming, this product is for them. You can create a theme package
+(check `templer skeleton generator`_), and base your them on this one.
+
+If you have any problem using this product or find any bug, please report it
+using the `GitHub issue tracker`_.
+
+Upgrade
+=========
+
+To upgrade from version 1.0a1, just go to the add-on controlpanel and click
+on upgrade. Old skin paths and javascripts will be disabled and new ones imported
+
+
+
+Authors
+=========
+
+- Nathan van Gheem, initial author
+- Mikel Larreategi, update to Twitter Bootstrap 2.3.x, current mantainer
+
+
+
+.. _`plonetheme.sunburst`: http://pypi.python.org/pypi/plonetheme.sunburst
+.. _`templer skeleton generator`: http://templer-manual.readthedocs.org/en/latest/
+.. _`GitHub issue tracker`: https://github.com/collective/waeup.plonetheme.ngren3/issues
+.. _`collective.js.bootstrap`: https://pypi.python.org/pypi/collective.js.bootstrap
Index: /main/waeup.plonetheme.ngren3/trunk/docs/HISTORY.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/docs/HISTORY.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/docs/HISTORY.txt	(revision 10084)
@@ -0,0 +1,49 @@
+Changelog
+=========
+
+1.0b4 (2013-03-18)
+--------------------
+
+- Remove label class from ArchetypesSelectionWidget class tag [libargutxi]
+- Prepend ArchetypesSelectionWidget radio input into label [libargutxi]
+- Changed the main menu creation view using the plone standard method [libargutxi]
+- Fix personal_bar template, it was broken if you just had 1 action. [erral]
+- Upgrade to Twitter Bootstrap 2.3.0 [erral]
+- Move glipycons image into a directory called 'img', it's a requirement of the bootstrap css file [erral]
+- Fix selected class in view [erral]
+- Remove useless skin directory. skin directory should only be used to customize
+  already existing resource. Use browser:resource instead [toutpt]
+- Add dependencies over collective.js.bootstrap. More easy to manage upgrade [toutpt]
+
+1.0b3 (2012-12-11)
+-------------------
+
+- Brown bag release. I had my git environment messed-up [erral]
+
+1.0b2 (2012-12-11)
+------------------
+
+- Fix bootstrap integration JS to avoid jQuery errors and make collection criteria
+  configuration work [erral]
+- Add uninstall support [erral]
+- Add Plone 4.1.x profile [erral]
+- Enable livesearch [erral]
+- Upgrade to Twitter Bootstrap 2.2.2 [erral]
+- Added missing properties for TinyMCE css in base_properties.props [petschki]
+- Fixed folder_contents checkbox inputs.
+- Added i18n:translate in plone.app.layout.viewlet.sections.pt, plone.app.layout.viewlet.search_box.pt and plone.app.layout.viewlets.path_bar.pt
+- Added more missing properties [regebro]
+
+1.0b1 (2012-11-14)
+------------------
+
+- Added upgradestep from version 1.0a1
+
+- Reimplementation based on Twitter Bootstrap 2.2.1 and plonetheme.sunburst
+  [erral]
+
+
+1.0a1dev (2011-10-16)
+---------------------
+
+- Initial release
Index: /main/waeup.plonetheme.ngren3/trunk/docs/INSTALL.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/docs/INSTALL.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/docs/INSTALL.txt	(revision 10084)
@@ -0,0 +1,52 @@
+waeup.plonetheme.ngren3 Installation
+------------------------------------
+
+To install waeup.plonetheme.ngren3 into the global Python environment (or a workingenv),
+using a traditional Zope 2 instance, you can do this:
+
+* When you're reading this you have probably already run 
+  ``easy_install waeup.plonetheme.ngren3``. Find out how to install setuptools
+  (and EasyInstall) here:
+  http://peak.telecommunity.com/DevCenter/EasyInstall
+
+* If you are using Zope 2.9 (not 2.10), get `pythonproducts`_ and install it 
+  via::
+
+    python setup.py install --home /path/to/instance
+
+into your Zope instance.
+
+* Create a file called ``waeup.plonetheme.ngren3-configure.zcml`` in the
+  ``/path/to/instance/etc/package-includes`` directory.  The file
+  should only contain this::
+
+    <include package="waeup.plonetheme.ngren3" />
+
+.. _pythonproducts: http://plone.org/products/pythonproducts
+
+
+Alternatively, if you are using zc.buildout and the plone.recipe.zope2instance
+recipe to manage your project, you can do this:
+
+* Add ``waeup.plonetheme.ngren3`` to the list of eggs to install, e.g.:
+
+    [buildout]
+    ...
+    eggs =
+        ...
+        waeup.plonetheme.ngren3
+       
+* Tell the plone.recipe.zope2instance recipe to install a ZCML slug:
+
+    [instance]
+    recipe = plone.recipe.zope2instance
+    ...
+    zcml =
+        waeup.plonetheme.ngren3
+      
+* Re-run buildout, e.g. with:
+
+    $ ./bin/buildout
+        
+You can skip the ZCML slug if you are going to explicitly include the package
+from another package's configure.zcml file.
Index: /main/waeup.plonetheme.ngren3/trunk/docs/LICENSE.GPL
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/docs/LICENSE.GPL	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/docs/LICENSE.GPL	(revision 10084)
@@ -0,0 +1,339 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, 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.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
Index: /main/waeup.plonetheme.ngren3/trunk/docs/LICENSE.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/docs/LICENSE.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/docs/LICENSE.txt	(revision 10084)
@@ -0,0 +1,16 @@
+  waeup.plonetheme.ngren3 is copyright 
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
+  MA 02111-1307 USA.
Index: /main/waeup.plonetheme.ngren3/trunk/setup.cfg
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/setup.cfg	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/setup.cfg	(revision 10084)
@@ -0,0 +1,5 @@
+[egg_info]
+tag_build = 
+tag_date = 0
+tag_svn_revision = 0
+
Index: /main/waeup.plonetheme.ngren3/trunk/setup.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/setup.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/setup.py	(revision 10084)
@@ -0,0 +1,40 @@
+from setuptools import setup, find_packages
+import os
+
+version = '0.1'
+
+setup(name='waeup.plonetheme.ngren3',
+      version=version,
+      description="WAeUP Bootstrap Plone Theme for NgREN",
+      long_description=open("README.rst").read() + "\n" +
+                       open(os.path.join("docs", "HISTORY.txt")).read(),
+      # Get more strings from
+      # http://pypi.python.org/pypi?%3Aaction=list_classifiers
+      classifiers=[
+        "Framework :: Plone",
+        "Programming Language :: Python",
+        ],
+      keywords='plone theme twitterbootstrap',
+      author='Henrik Bettermann',
+      author_email='henrik@waeup.org',
+      url='https://www.waeup.org',
+      license='GPL',
+      packages=find_packages(exclude=['ez_setup']),
+      namespace_packages=['waeup'],
+      include_package_data=True,
+      zip_safe=False,
+      install_requires=[
+          'setuptools',
+          'z3c.jbot',
+          'plone.browserlayer',
+          'plone.app.jquery >1.7,<1.8',
+          'collective.js.bootstrap',
+          # -*- Extra requirements: -*-
+      ],
+      entry_points="""
+      # -*- Entry points: -*-
+
+      [z3c.autoinclude.plugin]
+      target = plone
+      """
+      )
Index: /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3-configure.zcml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3-configure.zcml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3-configure.zcml	(revision 10084)
@@ -0,0 +1,1 @@
+<include package="waeup.plonetheme.ngren3" />
Index: /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/PKG-INFO
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/PKG-INFO	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/PKG-INFO	(revision 10084)
@@ -0,0 +1,140 @@
+Metadata-Version: 1.1
+Name: waeup.plonetheme.ngren3
+Version: 0.1
+Summary: WAeUP Bootstrap Plone Theme for NgREN
+Home-page: https://www.waeup.org
+Author: Henrik Bettermann
+Author-email: henrik@waeup.org
+License: GPL
+Description: Introduction
+        ============
+        
+        waeup.plonetheme.ngren3 integrates Twitter Bootstrap CSS/JS framework
+        into Plone. You can checkout the framework at http://twitter.github.com/bootstrap
+        
+        It overrides some templates and uses javascript to transform
+        some markup in order for it to work correctly.
+        
+        It's not perfect, but it's close.
+        
+        Dependencies
+        ==============
+        
+        Latest Twitter Bootstrap requires jQuery 1.7.x, you can install
+        it in Plone pinning plone.app.jquery in your buildout to version 1.7.2.
+        You will also need to pin plone.app.jquerytools to version
+        1.5.1 to guarantee jQuery 1.7.x compatibility::
+        
+         [versions]
+         ...
+         plone.app.jquery = 1.7.2
+         plone.app.jquerytools = 1.5.1
+         ...
+        
+        Twitter Boostrap itself is provided as browser resources by the addon
+        `collective.js.bootstrap`_.
+        
+        Documentation
+        ===============
+        
+        This product is based in Twitter Bootstrap version 2.3.x.
+        
+        This product adds both the basic CSS file and also the Responsive one to have
+        a mobile-enabled site from the start.
+        
+        The generated markup is based on 'fluid CSS' and it contains a 12 column grid.
+        
+        The basic HTML markup is a mix of `plonetheme.sunburst`_ and Twitter Bootstrap
+        and it uses the same approach of constructing the columns as Sunburst Theme:
+        a simple view that returns the classes needed to have the correct column widths.
+        
+        If you want to change those widths, just override the view following the common
+        Plone overriding patterns.
+        
+        This product is intended to be used in two scenarios:
+        
+         - As a theme from Plone
+         - As a base theme to build Plone themes for your site following 'old practices'
+        
+        Some designers prefer to work following the old best-practices instead of using
+        the Diazo-way-of-theming, this product is for them. You can create a theme package
+        (check `templer skeleton generator`_), and base your them on this one.
+        
+        If you have any problem using this product or find any bug, please report it
+        using the `GitHub issue tracker`_.
+        
+        Upgrade
+        =========
+        
+        To upgrade from version 1.0a1, just go to the add-on controlpanel and click
+        on upgrade. Old skin paths and javascripts will be disabled and new ones imported
+        
+        
+        
+        Authors
+        =========
+        
+        - Nathan van Gheem, initial author
+        - Mikel Larreategi, update to Twitter Bootstrap 2.3.x, current mantainer
+        
+        
+        
+        .. _`plonetheme.sunburst`: http://pypi.python.org/pypi/plonetheme.sunburst
+        .. _`templer skeleton generator`: http://templer-manual.readthedocs.org/en/latest/
+        .. _`GitHub issue tracker`: https://github.com/collective/waeup.plonetheme.ngren3/issues
+        .. _`collective.js.bootstrap`: https://pypi.python.org/pypi/collective.js.bootstrap
+        
+        Changelog
+        =========
+        
+        1.0b4 (2013-03-18)
+        --------------------
+        
+        - Remove label class from ArchetypesSelectionWidget class tag [libargutxi]
+        - Prepend ArchetypesSelectionWidget radio input into label [libargutxi]
+        - Changed the main menu creation view using the plone standard method [libargutxi]
+        - Fix personal_bar template, it was broken if you just had 1 action. [erral]
+        - Upgrade to Twitter Bootstrap 2.3.0 [erral]
+        - Move glipycons image into a directory called 'img', it's a requirement of the bootstrap css file [erral]
+        - Fix selected class in view [erral]
+        - Remove useless skin directory. skin directory should only be used to customize
+          already existing resource. Use browser:resource instead [toutpt]
+        - Add dependencies over collective.js.bootstrap. More easy to manage upgrade [toutpt]
+        
+        1.0b3 (2012-12-11)
+        -------------------
+        
+        - Brown bag release. I had my git environment messed-up [erral]
+        
+        1.0b2 (2012-12-11)
+        ------------------
+        
+        - Fix bootstrap integration JS to avoid jQuery errors and make collection criteria
+          configuration work [erral]
+        - Add uninstall support [erral]
+        - Add Plone 4.1.x profile [erral]
+        - Enable livesearch [erral]
+        - Upgrade to Twitter Bootstrap 2.2.2 [erral]
+        - Added missing properties for TinyMCE css in base_properties.props [petschki]
+        - Fixed folder_contents checkbox inputs.
+        - Added i18n:translate in plone.app.layout.viewlet.sections.pt, plone.app.layout.viewlet.search_box.pt and plone.app.layout.viewlets.path_bar.pt
+        - Added more missing properties [regebro]
+        
+        1.0b1 (2012-11-14)
+        ------------------
+        
+        - Added upgradestep from version 1.0a1
+        
+        - Reimplementation based on Twitter Bootstrap 2.2.1 and plonetheme.sunburst
+          [erral]
+        
+        
+        1.0a1dev (2011-10-16)
+        ---------------------
+        
+        - Initial release
+        
+Keywords: plone theme twitterbootstrap
+Platform: UNKNOWN
+Classifier: Framework :: Plone
+Classifier: Programming Language :: Python
Index: /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/SOURCES.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/SOURCES.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/SOURCES.txt	(revision 10084)
@@ -0,0 +1,27 @@
+MANIFEST.in
+README.rst
+setup.cfg
+setup.py
+waeup.plonetheme.ngren3-configure.zcml
+docs/HISTORY.txt
+docs/INSTALL.txt
+docs/LICENSE.GPL
+docs/LICENSE.txt
+waeup/__init__.py
+waeup.plonetheme.ngren3.egg-info/PKG-INFO
+waeup.plonetheme.ngren3.egg-info/SOURCES.txt
+waeup.plonetheme.ngren3.egg-info/dependency_links.txt
+waeup.plonetheme.ngren3.egg-info/entry_points.txt
+waeup.plonetheme.ngren3.egg-info/namespace_packages.txt
+waeup.plonetheme.ngren3.egg-info/not-zip-safe
+waeup.plonetheme.ngren3.egg-info/requires.txt
+waeup.plonetheme.ngren3.egg-info/top_level.txt
+waeup/plonetheme/__init__.py
+waeup/plonetheme/ngren3/__init__.py
+waeup/plonetheme/ngren3/setuphandlers.py
+waeup/plonetheme/ngren3/tests.py
+waeup/plonetheme/ngren3/Extensions/Install.py
+waeup/plonetheme/ngren3/Extensions/__init__.py
+waeup/plonetheme/ngren3/browser/__init__.py
+waeup/plonetheme/ngren3/browser/interfaces.py
+waeup/plonetheme/ngren3/browser/utils.py
Index: /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/dependency_links.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/dependency_links.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/dependency_links.txt	(revision 10084)
@@ -0,0 +1,1 @@
+
Index: /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/entry_points.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/entry_points.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/entry_points.txt	(revision 10084)
@@ -0,0 +1,6 @@
+
+      # -*- Entry points: -*-
+
+      [z3c.autoinclude.plugin]
+      target = plone
+      
Index: /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/namespace_packages.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/namespace_packages.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/namespace_packages.txt	(revision 10084)
@@ -0,0 +1,1 @@
+waeup
Index: /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/not-zip-safe
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/not-zip-safe	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/not-zip-safe	(revision 10084)
@@ -0,0 +1,1 @@
+
Index: /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/requires.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/requires.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/requires.txt	(revision 10084)
@@ -0,0 +1,5 @@
+setuptools
+z3c.jbot
+plone.browserlayer
+plone.app.jquery >1.7,<1.8
+collective.js.bootstrap
Index: /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/top_level.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/top_level.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup.plonetheme.ngren3.egg-info/top_level.txt	(revision 10084)
@@ -0,0 +1,1 @@
+waeup
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/__init__.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/__init__.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/__init__.py	(revision 10084)
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__)
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/__init__.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/__init__.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/__init__.py	(revision 10084)
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__)
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/Extensions/Install.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/Extensions/Install.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/Extensions/Install.py	(revision 10084)
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+
+from Products.CMFPlone.utils import getToolByName
+
+
+def isPlone42(portal):
+    migration_tool = getToolByName(portal, 'portal_migration')
+    core_versions = migration_tool.coreVersions()
+    plone = core_versions.get('Plone', '')
+    if plone:
+        versions = plone.split('.')
+        return versions[0] == '4' and versions[1] == '2'
+
+    return False
+
+
+def isPlone41(portal):
+    migration_tool = getToolByName(portal, 'portal_migration')
+    core_versions = migration_tool.coreVersions()
+    plone = core_versions.get('Plone', '')
+    if plone:
+        versions = plone.split('.')
+        return versions[0] == '4' and versions[1] == '1'
+
+    return False
+
+
+def uninstall(portal):
+    """ Apply the correct so called uninstall-profile when uninstalling
+        according to the installed Plone version
+    """
+
+    if isPlone42(portal):
+        profile = 'profile-waeup.plonetheme.ngren3:uninstall'
+    elif isPlone41(portal):
+        profile = 'profile-waeup.plonetheme.ngren3:uninstall-plone41'
+    else:
+        profile = ''
+
+    if profile:
+        setup_tool = getToolByName(portal, 'portal_setup')
+        setup_tool.runAllImportStepsFromProfile(profile)
+        return "Ran all uninstall steps."
+
+    else:
+        return "Nothing to uninstall"
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/Extensions/__init__.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/Extensions/__init__.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/Extensions/__init__.py	(revision 10084)
@@ -0,0 +1,1 @@
+#
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/__init__.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/__init__.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/__init__.py	(revision 10084)
@@ -0,0 +1,1 @@
+  #
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/__init__.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/__init__.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/__init__.py	(revision 10084)
@@ -0,0 +1,1 @@
+#
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/bootstrap-integration.js
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/bootstrap-integration.js	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/bootstrap-integration.js	(revision 10084)
@@ -0,0 +1,136 @@
+/*
+ * Helper JS to change classnames and HTML on the fly
+ * because it would be too hard to do it customizing
+ * each template
+ *
+ */
+
+function fixArchetypesForms(){
+    /* Remove class=label from datetime widgets */
+    $('.ArchetypesCalendarWidget .label').each(function(){
+        var cont = $(this).contents().filter(function(){
+            return this.nodeType == 3 && $(this).text().trim();
+        }).wrap('<label></label>');
+        $(this).removeClass('label');
+    });
+
+    /* Move archetypes BooleanFields' checkbox, inside the label */
+    $('.ArchetypesBooleanWidget label').each(function(){
+        var checkbox = $(this).parent().find('input[type=checkbox]');
+        $(this).prepend(checkbox);
+    });
+
+    $('.ArchetypesSelectionWidget label').each(function(){
+        var radio = $(this).prev();
+	if ($(radio).attr("type")=='radio'){
+	    $(this).prepend(radio);
+	}  
+    });
+
+
+    $('.ArchetypesSelectionWidget .formQuestion.label').each(function(){
+	 $(this).removeClass('label');
+    }
+    );
+    
+
+    /* Move add-on control-panel inputs inside labels */
+    $('input[type=checkbox]').each(function(){
+        var label = $(this).parent().find('label');
+        for (var i = label.length - 1; i >= 0; i--) {
+            if ($(label[i]).attr('for') == $(this).attr('id')) {
+                if ($(label[i]).hasClass('hiddenStructure')) {
+                    var labeltext = $(label[i]).text();
+                    $(label[i]).text('');
+                    $(label[i]).removeClass('hiddenStructure');
+                    $(label[i]).prepend($("<span />", { 'class': 'hiddenStructure', 'text': labeltext}));
+
+                }
+                $(label[i]).prepend($(this));
+
+            }
+
+        };
+
+    });
+
+    $('form.edit-form .label').removeClass('label');
+
+    /* Help text in Archetypes forms */
+    $('.formHelp').addClass('help-block').removeClass('formHelp');
+}
+
+$(document).ready(function(){
+
+    /* Automatically generated portal status messages */
+    $('dl.portalMessage #kssPortalMessage').each(function(){
+        var message = $(this);
+        message.removeClass('portalMessage');
+        var replacement = $(
+            '<div data-alert="alert" class="alert ' + message[0].className + '">' +
+                    '<strong>' + message.find('dt').html() + '</strong> ' +
+                    message.find('dd').html() +
+            '</div>');
+        message.replaceWith(replacement);
+    });
+
+    /* Convert input[type=buttons] to button tags */
+    var foundPrimary = false;
+    $('div.formControls input[type="submit"]').each(function(){
+        var input = $(this);
+        var button = $('<button type="submit" class="btn" name="' + input.attr('name') + '">' +
+            input.attr('value') + '</button>');
+
+        if(input.hasClass('context') && !foundPrimary){
+            button.addClass('primary');
+            foundPrimary = true;
+        }
+        input.replaceWith(button);
+    });
+
+    /* Add btn class to the rest form buttons */
+    $('input[type="submit"], input[type="button"]').addClass('btn');
+
+    /* Edit form tabs */
+    $('form ul.formTabs').each(function(){
+        var ul = $(this);
+        ul.addClass('nav');
+        ul.addClass('nav-tabs')
+        ul.removeClass('formTabs');
+        ul.find('li').removeClass('formTab firstFormTab lastFormTab');
+
+        ul.find('li:first').addClass('active');
+        ul.find('li').click(function(){
+            $(this).parent().find('li').removeClass('active');
+            $(this).addClass('active');
+            /* Fix forms after showing */
+            fixArchetypesForms();
+        });
+        ul.find('li a span').each(function(){
+            var span = $(this);
+            var a = span.parent().html(span.html());
+        });
+    });
+
+
+
+    /* Plone's default class for tables */
+    $('table.listing').addClass('zebra-striped');
+
+    /* Fix archetypes forms if there's any */
+    fixArchetypesForms();
+
+    /*
+    $('ul#navigation li[data-dropdown="dropdown"]').hover(function(){
+        $(this).addClass('open');
+    }, function(){
+        $(this).removeClass('open');
+    });
+    $('ul#navigation li[data-dropdown="dropdown"] ul').hover(function(){}, function(){
+        $(this).parent().removeClass('open');
+    });
+    $('ul#navigation li[data-dropdown="dropdown"] a').click(function(){
+        window.location = $(this).attr('href');
+    });
+    */
+});
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/configure.zcml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/configure.zcml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/configure.zcml	(revision 10084)
@@ -0,0 +1,23 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:browser="http://namespaces.zope.org/browser"
+    i18n_domain="waeup.plonetheme.ngren3">
+
+  <include package="z3c.jbot" file="meta.zcml" />
+
+  <browser:jbot
+      layer=".interfaces.IThemeSpecific"
+      directory="templates" />
+
+  <browser:page
+      name="bootstrapview"
+      for="*"
+      class=".utils.BootstrapView"
+      allowed_interface=".interfaces.IBootstrapView"
+      permission="zope.Public"
+    />
+  <browser:resource
+    name="bootstrap-integration.js"
+    file="bootstrap-integration.js"/>
+
+</configure>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/interfaces.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/interfaces.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/interfaces.py	(revision 10084)
@@ -0,0 +1,25 @@
+from zope.interface import Interface
+
+
+class IThemeSpecific(Interface):
+    """Marker interface that defines a Zope 3 browser layer.
+    """
+
+
+class IBootstrapUtils(Interface):
+    def bootstrap():
+        pass
+
+
+class IBootstrapView(Interface):
+    """ """
+
+    def getColumnsClasses(view=None):
+        """ A helper method to return the clases for the columns of the site
+            it should return a dict with three elements:'one', 'two', 'content'
+            Each of them should contain the classnames for the first (leftmost)
+            second (rightmost) and middle column
+        """
+
+    def getViewportValues(view=None):
+        """ Determine the value of the viewport meta-tag """
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.contentmenu.contentmenu.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.contentmenu.contentmenu.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.contentmenu.contentmenu.pt	(revision 10084)
@@ -0,0 +1,90 @@
+<div id="editContentActionMenus"
+    xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+    xmlns:tal="http://xml.zope.org/namespaces/tal"
+    tal:define="menu view/menu"
+    tal:condition="view/available"
+    i18n:domain="plone"
+    class="pull-right btn-toolbar">
+
+    <tal:menuItem repeat="menuItem menu">
+
+        <div class="editActionMenu dropdown btn-group pull-right"
+            tal:attributes="id menuItem/extra/id"
+            tal:define="submenu menuItem/submenu">
+          <button tal:define="state_class menuItem/extra/class | nothing;
+                             state_class python:state_class and state_class or ''"
+              data-toggle="dropdown"
+              tal:omit-tag="not:menuItem/action"
+              tal:attributes="href menuItem/action;
+                              title menuItem/description;
+                              class string:btn dropdown-toggle actionMenuHeader label-${state_class}"
+               i18n:attributes="title;">
+               <span tal:omit-tag="menuItem/action"
+                     class="noMenuAction">
+                  <span tal:content="menuItem/title"
+                        i18n:translate="">
+                      Title
+                  </span>
+                  <span tal:condition="menuItem/extra/stateTitle | nothing"
+                        tal:attributes="class menuItem/extra/class | nothing"
+                        tal:content="menuItem/extra/stateTitle"
+                        i18n:translate="">
+                      State title
+                  </span>
+                  <span class="caret"
+                      tal:condition="not:menuItem/extra/hideChildren | not:submenu | nothing"></span>
+               </span>
+          </button>
+          <ul class="dropdown-menu editActionMenuContent" role="menu"
+              tal:condition="not:menuItem/extra/hideChildren | not:submenu | nothing">
+              <tal:block repeat="subMenuItem submenu">
+                <tal:separator condition="subMenuItem/extra/separator">
+                  <li class="divider"></li>
+                </tal:separator>
+                <li tal:attributes="class python:subMenuItem.get('selected', None) and 'active' or None">
+                  <a href="#"
+                     tal:condition="subMenuItem/action"
+                     tal:attributes="href subMenuItem/action;
+                                     title subMenuItem/description;
+                                     id subMenuItem/extra/id | nothing;
+                                     class subMenuItem/extra/class | nothing"
+                     i18n:attributes="title">
+                      <img width="16"
+                           height="16"
+                           alt=""
+                           tal:condition="subMenuItem/icon"
+                           tal:attributes="src subMenuItem/icon;
+                                           title subMenuItem/description;
+                                           width subMenuItem/width|string:16;
+                                           height subMenuItem/height|string:16;"
+                           i18n:attributes="alt;"/>
+                      <span tal:replace="structure subMenuItem/title"
+                            i18n:translate=""
+                            class="editSubMenuTitle">
+                          Title
+                      </span>
+                  </a>
+                  <a tal:condition="not:subMenuItem/action"
+                     href="#"
+                     tal:attributes="id subMenuItem/extra/id | nothing;
+                                       class subMenuItem/extra/class | nothing">
+                      <img width="16"
+                           height="16"
+                           alt=""
+                           tal:condition="subMenuItem/icon"
+                           tal:attributes="src subMenuItem/icon;
+                                           title subMenuItem/description"
+                           i18n:attributes="alt;"/>
+                      <span tal:replace="structure subMenuItem/title"
+                            i18n:translate=""
+                            class="subMenuTitle">
+                          Title
+                      </span>
+                  </a>
+                </li>
+              </tal:block>
+          </ul>
+        </div>
+
+    </tal:menuItem>
+</div>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.contentactions.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.contentactions.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.contentactions.pt	(revision 10084)
@@ -0,0 +1,37 @@
+<div i18n:domain="plone"
+     class="editContentActions"
+     tal:define="ploneview context/@@plone"
+     tal:condition="ploneview/showEditableBorder">
+
+    <tal:block define="content_actions view/object_actions;">
+
+        <h5 class="hiddenStructure"
+            tal:condition="content_actions | wf_state"
+            i18n:translate="heading_actions">Actions</h5>
+
+        <ul tal:condition="content_actions" class="editActionItems">
+            <li tal:repeat="action content_actions"
+                tal:attributes="id string:contentaction-${action/id};">
+
+                <a class="" href=""
+                   tal:define="icon python:view.icon(action)"
+                   tal:attributes="href action/url;
+                                   target action/link_target|nothing;">
+
+                    <img alt="" src=""
+                         tal:condition="icon"
+                         tal:attributes="src icon; alt action/title;" />
+
+                    <tal:action tal:content="action/title" i18n:translate="">
+                        Action name
+                    </tal:action>
+                </a>
+
+            </li>
+        </ul>
+
+        <div tal:replace="structure provider:plone.contentmenu" />
+
+    </tal:block>
+
+</div>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.contentviews.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.contentviews.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.contentviews.pt	(revision 10084)
@@ -0,0 +1,33 @@
+<div i18n:domain="plone"
+     tal:omit-tag=""
+     tal:define="ploneview context/@@plone;"
+     tal:condition="ploneview/showEditableBorder">
+
+    <tal:block define="view_actions view/prepareObjectTabs;">
+
+        <h5 class="hiddenStructure"
+            tal:condition="view_actions"
+            i18n:translate="heading_views">Views</h5>
+
+        <ul class="nav nav-pills pull-left"
+            id="edit-content-views"
+            i18n:domain="plone">
+
+            <tal:views repeat="action view_actions">
+              <li tal:define="selected action/selected|nothing;"
+                  tal:attributes="id string:contentview-${action/id};
+                                  class python:selected and 'active' or 'plain'">
+                <a href=""
+                   tal:content="action/title"
+                   tal:attributes="href action/url;
+                                   target action/link_target|nothing;"
+                   i18n:translate="">
+                View name
+                </a>
+              </li>
+            </tal:views>
+
+        </ul>
+
+    </tal:block>
+</div>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.logo.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.logo.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.logo.pt	(revision 10084)
@@ -0,0 +1,11 @@
+<a metal:define-macro="portal_logo"
+   id="portal-logo"
+   class="brand"
+   title="Home"
+   accesskey="1"
+   tal:attributes="href view/navigation_root_url;
+                   title view/navigation_root_title"
+   i18n:domain="plone"
+   i18n:attributes="title">
+    <img src="logo.jpg" alt=""
+         tal:replace="structure view/logo_tag" /></a>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.manage_portlets_fallback.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.manage_portlets_fallback.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.manage_portlets_fallback.pt	(revision 10084)
@@ -0,0 +1,8 @@
+<div tal:condition="view/available" class="row-fluid">
+    <a class="managePortletsFallback"
+        tal:attributes="href string:${view/object_url}/@@manage-portlets"
+        i18n:domain="plone"
+        i18n:translate="manage_portlets_link">
+        Manage portlets
+    </a>
+</div>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.path_bar.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.path_bar.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.path_bar.pt	(revision 10084)
@@ -0,0 +1,37 @@
+<ul class="breadcrumb"
+    tal:define="breadcrumbs view/breadcrumbs;
+                is_rtl view/is_rtl"
+    tal:attributes="dir python:is_rtl and 'rtl' or 'ltr'"
+    i18n:domain="plone">
+
+  <li id="breadcrumbs-home">
+    <a href="#" i18n:translate="Home" tal:attributes="href view/navigation_root_url">Home</a>
+      <span class="divider" tal:condition="breadcrumbs">
+          <tal:ltr condition="not: is_rtl">/</tal:ltr>
+          <tal:rtl condition="is_rtl">\</tal:rtl>
+      </span>
+  </li>
+
+  <tal:crumb tal:repeat="crumb breadcrumbs">
+      <tal:item tal:define="is_last repeat/crumb/end;
+                            url crumb/absolute_url;
+                            title crumb/Title">
+        <li tal:attributes="class python: is_last and 'active' or '';
+                            id string:breadcrumbs-${repeat/crumb/number};">
+            <a href="#"
+               tal:omit-tag="not: url"
+               tal:condition="python:not is_last"
+               tal:attributes="href url"
+               tal:content="title">
+                crumb
+            </a>
+            <span class="divider" tal:condition="not: is_last">
+                <tal:ltr condition="not: is_rtl">/</tal:ltr>
+                <tal:rtl condition="is_rtl">\</tal:rtl>
+            </span>
+            <tal:last tal:content="title" tal:condition="is_last" />
+        </li>
+      </tal:item>
+  </tal:crumb>
+
+</ul>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.personal_bar.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.personal_bar.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.personal_bar.pt	(revision 10084)
@@ -0,0 +1,69 @@
+<div id="portal-personaltools-wrapper"
+     class="dropdown pull-right"
+     i18n:domain="plone">
+
+<h5 class="hiddenStructure" i18n:translate="heading_personal_tools">Personal tools</h5>
+
+<tal:logged
+    tal:condition="python:view.user_actions and not view.anonymous">
+
+    <a id="user-name"
+       class="btn btn-info dropdown-toggle"
+       data-toggle="dropdown"
+       tal:attributes="href view/homelink_url">
+       <span
+       tal:replace="view/user_name">
+        John
+      </span>
+      <span class="caret"></span>
+    </a>
+    <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+        <li tal:repeat="action view/user_actions"
+            tal:attributes="id string:personaltools-${action/id}">
+            <a href=""
+               tal:attributes="href action/url;
+                               target action/link_target|nothing"
+               tal:content="action/title"
+               i18n:translate="">
+                action title
+            </a>
+        </li>
+    </ul>
+</tal:logged>
+<tal:anon
+  tal:condition="python:view.user_actions and view.anonymous"
+  tal:define="actions view/user_actions;
+              action python:len(actions)!= 0 and actions[0] or None;
+              other_actions python:len(actions) > 1 and actions[1:] or []">
+      <a id="user-name"
+          class="btn btn-info dropdown-toggle"
+          data-target="#"
+          data-toggle="dropdown"
+          tal:attributes="href action/url;
+                          id string:personaltools-${action/id};
+                          target action/link_target|nothing;
+                          class python:other_actions and 'btn btn-info dropdown-toggle' or 'btn btn-info';
+                          data-toggle python:other_actions and 'dropdown' or None"
+          tal:content="action/title"
+          i18n:translate="">
+              action title
+      </a>
+      <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"
+          tal:condition="other_actions"
+          id="portal-personaltools"
+          >
+        <li id="anon-personalbar">
+          <tal:actions repeat="action other_actions">
+              <a href=""
+                 tal:attributes="href action/url;
+                                 id string:personaltools-${action/id};
+                                 target action/link_target|nothing;"
+                 tal:content="action/title"
+                 i18n:translate="">
+                  action title
+              </a>
+          </tal:actions>
+        </li>
+      </ul>
+</tal:anon>
+</div>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.searchbox.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.searchbox.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.searchbox.pt	(revision 10084)
@@ -0,0 +1,45 @@
+<tal:define
+     tal:define="navigation_root_url view/navigation_root_url;"
+     >
+    <form name="searchform" class="form-search pull-right"
+          action="search"
+          i18n:domain="plone"
+          tal:attributes="action string:${navigation_root_url}/@@search;">
+      <div class="LSBox">
+        <input name="SearchableText"
+               type="text"
+               size="18"
+               value=""
+               title="Search Site"
+               accesskey="4"
+               i18n:attributes="title title_search_site;placeholder text_search"
+               tal:attributes="value request/form/SearchableText|nothing;"
+               id="searchGadget"
+               class="searchField search-query inputLabel input-medium" />
+
+        <button i18n:translate="label_search" class="btn" type="submit">Search</button>
+
+        <div class="searchSection">
+            <label for="searchbox_currentfolder_only"
+                   style="cursor: pointer">
+              <span
+                   i18n:translate="label_searchbox_currentfolder_only"
+                   tal:omit-tag="">
+                only in current section
+              </span>
+              <input id="searchbox_currentfolder_only"
+                     class="noborder"
+                     type="checkbox"
+                     name="path"
+                     tal:attributes="value view/folder_path;
+                                     checked request/form/path|nothing"
+                     />
+
+            </label>
+        </div>
+
+        <div class="LSResult" id="LSResult"><div class="LSShadow" id="LSShadow"></div></div>
+
+      </div>
+    </form>
+</tal:define>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.sections.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.sections.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/templates/plone.app.layout.viewlets.sections.pt	(revision 10084)
@@ -0,0 +1,44 @@
+<tal:sections tal:define="nav view/portal_tabs;
+                          selected_tab python:view.selected_portal_tab"
+     tal:condition="nav"
+     i18n:domain="plone">
+    <h5 class="hiddenStructure" i18n:translate="heading_sections">Sections</h5>
+    <nav class="navbar">
+        <div class="navbar-inner">
+            <div class="container">
+                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                    <span class="icon-bar"></span>
+                    <span class="icon-bar"></span>
+                    <span class="icon-bar"></span>
+                </a>
+                <a class="brand hidden-desktop"
+                    tal:attributes="href context/@@plone_portal_state/navigation_root_url"
+                    tal:content="context/@@plone_portal_state/portal_title">
+                    Site title
+                </a>
+
+                <div class="nav-collapse collapse">
+                    <ul class="nav" id="navigation">
+                        
+                        
+                        <tal:tabs tal:repeat="tab nav">
+                            
+                                <li tal:define="tid tab/id"
+                                    tal:attributes="id string:portaltab-${tid};
+                                                    class python:selected_tab==tid and 'active' or ''">
+                                    <a href=""
+                                        tal:content="tab/name"
+                                        tal:attributes="href tab/url;
+                                                        title item/description|nothing">
+                                        Tab Name
+                                    </a>
+                                    
+                                </li>
+                            
+                        </tal:tabs>
+                    </ul>
+                </div>
+            </div>
+        </div>
+    </nav>
+</tal:sections>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/utils.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/utils.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/browser/utils.py	(revision 10084)
@@ -0,0 +1,69 @@
+from zope.component import getMultiAdapter
+from zope.interface import implements
+from Products.Five import BrowserView
+from plone.app.layout.navigation.navtree import buildFolderTree
+from Products.CMFPlone.browser.navtree import NavtreeQueryBuilder
+from interfaces import IBootstrapUtils, IBootstrapView
+
+
+class BootstrapView(BrowserView):
+    implements(IBootstrapView)
+
+    def getViewportValues(self, view=None):
+        """ Determine the value of the viewport meta-tag """
+        return {'width': 'device-width',
+                'initialscale': '0.6666',
+                'maximumscale': '1.0',
+                'minimumscale': '0.6666',
+                }
+
+    def getColumnsClasses(self, view=None):
+        """ Determine whether a column should be shown. The left column is
+            called plone.leftcolumn; the right column is called
+            plone.rightcolumn.
+        """
+
+        plone_view = getMultiAdapter(
+            (self.context, self.request), name=u'plone')
+        portal_state = getMultiAdapter(
+            (self.context, self.request), name=u'plone_portal_state')
+
+        sl = plone_view.have_portlets('plone.leftcolumn', view=view)
+        sr = plone_view.have_portlets('plone.rightcolumn', view=view)
+
+        isRTL = portal_state.is_rtl()
+
+        # pre-fill dictionary
+        columns = dict(one="", content="", two="")
+
+        if not sl and not sr:
+            # we don't have columns, thus conten takes the whole width
+            columns['content'] = "span12"
+
+        elif sl and sr:
+            # In case we have both columns, content takes 50% of the whole
+            # width and the rest 50% is spread between the columns
+            columns['one'] = "span3"
+            columns['content'] = "span6"
+            columns['two'] = "span3"
+
+        elif (sr and not sl) and not isRTL:
+            # We have right column and we are NOT in RTL language
+            columns['content'] = "span9"
+            columns['two'] = "span3"
+
+        elif (sl and not sr) and isRTL:
+            # We have left column and we are in RTL language
+            columns['one'] = "span3"
+            columns['content'] = "span9"
+
+        elif (sl and not sr) and not isRTL:
+            # We have left column and we are in NOT RTL language
+            columns['one'] = "span3"
+            columns['content'] = "span9"
+
+        # # append cell to each css-string
+        # for key, value in columns.items():
+        #     columns[key] = "cell " + value
+
+        return columns
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/configure.zcml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/configure.zcml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/configure.zcml	(revision 10084)
@@ -0,0 +1,15 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:five="http://namespaces.zope.org/five"
+    xmlns:cmf="http://namespaces.zope.org/cmf"
+    xmlns:i18n="http://namespaces.zope.org/i18n"
+    i18n_domain="waeup.plonetheme.ngren3">
+
+  <five:registerPackage package="." />
+
+  <cmf:registerDirectory name="skins" directory="skins" recursive="True" />
+
+  <include package=".browser" />
+  <include file="profiles.zcml" />
+
+</configure>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles.zcml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles.zcml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles.zcml	(revision 10084)
@@ -0,0 +1,65 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:zcml="http://namespaces.zope.org/zcml"
+    xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
+    i18n_domain="waeup.plonetheme.ngren3">
+
+  <genericsetup:registerProfile
+      zcml:condition="have plone-42"
+      name="default"
+      title="NgREN Bootstrap Theme"
+      directory="profiles/default"
+      description='Extension profile for the "NgREN Bootstrap Theme" Plone theme.'
+      provides="Products.GenericSetup.interfaces.EXTENSION"
+      />
+
+  <genericsetup:importStep
+      zcml:condition="have plone-42"
+      name="waeup.plonetheme.ngren3.various"
+      title="NgREN Bootstrap Theme: miscellaneous import steps"
+      description="Various import steps that are not handled by GS import/export handlers."
+      handler="waeup.plonetheme.ngren3.setuphandlers.setupVarious">
+
+    <depends name="actions"/>
+    <depends name="skins"/>
+
+  </genericsetup:importStep>
+
+  <genericsetup:registerProfile
+      zcml:condition="have plone-42"
+      name="uninstall"
+      title="NgREN Bootstrap Theme uninstall"
+      directory="profiles/uninstall"
+      description="Uninstall profile for the NgREN Bootstrap Theme Plone theme"
+      provides="Products.GenericSetup.interfaces.EXTENSION"
+      />
+
+
+  <genericsetup:registerProfile
+      zcml:condition="not-have plone-42"
+      name="plone-41"
+      title="NgREN Bootstrap Theme"
+      directory="profiles/plone-41"
+      description='Extension profile for the "NgREN Bootstrap Theme" Plone theme for Plone 4.1.x'
+      provides="Products.GenericSetup.interfaces.EXTENSION"
+      />
+
+  <genericsetup:registerProfile
+      zcml:condition="not-have plone-42"
+      name="uninstall-plone41"
+      title="NgREN Bootstrap Theme uninstall"
+      directory="profiles/uninstall-plone41"
+      description="Uninstall profile for the NgREN Bootstrap Theme Plone theme"
+      provides="Products.GenericSetup.interfaces.EXTENSION"
+      />
+
+  <genericsetup:upgradeStep
+      zcml:condition="have plone-42"
+      title="Upgrade waeup.plonetheme.ngren3 to last version"
+      description=""
+      source="*"
+      destination="1003"
+      handler=".upgrades.common"
+      profile="waeup.plonetheme.ngren3:default" />
+
+</configure>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/browserlayer.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/browserlayer.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/browserlayer.xml	(revision 10084)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<layers>
+    <layer name="waeup.plonetheme.ngren3"
+           interface="waeup.plonetheme.ngren3.browser.interfaces.IThemeSpecific" />
+</layers>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/cssregistry.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/cssregistry.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/cssregistry.xml	(revision 10084)
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<!-- This file holds the setup configuration for the portal_css tool. -->
+
+<object name="portal_css">
+
+ <!-- Stylesheets that will be registered with the portal_css tool are defined
+      here. You can also specify values for existing resources if you need to
+      modify some of their properties.
+      Stylesheet elements accept these parameters:
+      - 'id' (required): it must respect the name of the css or DTML file
+        (case sensitive). '.dtml' suffixes must be ignored.
+      - 'expression' (optional - default: ''): a tal condition.
+      - 'media' (optional - default: ''): possible values: 'screen', 'print',
+        'projection', 'handheld'...
+      - 'rel' (optional - default: 'stylesheet')
+      - 'title' (optional - default: '')
+      - 'rendering' (optional - default: 'import'): 'import', 'link' or
+        'inline'.
+      - 'enabled' (optional - default: True): boolean
+      - 'cookable' (optional - default: True): boolean (aka 'merging allowed')
+      See registerStylesheet() arguments in
+      ResourceRegistries/tools/CSSRegistry.py for the latest list of all
+      available keys and default values.
+      -->
+
+ <stylesheet 
+    id="++resource++collective.js.bootstrap/css/bootstrap.min.css"
+    applyPrefix="True"
+    media="" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="++resource++collective.js.bootstrap/css/bootstrap-responsive.min.css"
+    applyPrefix="True"
+    media="" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <!-- Deactivate emtpy CSS stylesheet that come with Sunburst theme -->
+ <stylesheet title=""
+    id="base.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="authoring.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="columns.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="controlpanel.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="deprecated.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="forms.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="navtree.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="invisibles.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="kupuplone.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="ploneCustom.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="mobile.css"
+    media="handheld, screen and (max-device-width: 480px)" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet remove="True" id="bootstrap.min.css"/>
+ <stylesheet remove="True" id="bootstrap-responsive.min.css"/>
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/jsregistry.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/jsregistry.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/jsregistry.xml	(revision 10084)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<object name="portal_javascripts">
+ <javascript cacheable="True" compression="none" cookable="True"
+    enabled="True" inline="False" expression="" insert-before="*"
+    bundle="default" id="++resource++plone.app.jquery.js" />
+
+ <javascript
+    id="++resource++bootstrap-integration.js"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="True" expression=""  inline="False"/>
+
+ <javascript
+    id="++resource++collective.js.bootstrap/js/bootstrap.min.js"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="True" expression=""  inline="False"/>
+
+ <javascript remove="True" id="bootstrap.min.js" />
+ <javascript remove="True" id="bootstrap-dropdown.js" />
+ <javascript remove="True" id="bootstrap-alerts.js" />
+ <javascript remove="True" id="bootstrap-integration.js" />
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/metadata.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/metadata.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/metadata.xml	(revision 10084)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<metadata>
+    <version>1003</version>
+</metadata>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/skins.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/skins.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/skins.xml	(revision 10084)
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!-- This file holds the setup configuration for the portal_skins tool -->
+
+<!-- Change the value of these parameters to modify portal_skins behavior:
+     - allow_any: change it to True if you want users to be able to select the
+       skin to use from their personal preferences management page. In the
+       ZMI, this value is known as 'Skin flexibility'.
+     - cookie_persistence: change it to True if you want to make the skin cookie
+       persist indefinitely. In the ZMI, this value is known as 'Skin Cookie
+       persistence'.
+       -->
+<object name="portal_skins" allow_any="False" cookie_persistence="False"
+   default_skin="NgREN Bootstrap Theme">
+
+ <!-- This list registers the folders that are stored in the skins directory
+      of your product (on the filesystem) as Filesystem Directory Views within
+      the portal_skins tool, so that they become usable as skin layers.
+      -->
+ <object name="plonetheme_bootstrap_custom"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_custom"/>
+
+ <object remove="True" name="plonetheme_bootstrap_custom_images" />
+ <object remove="True" name="plonetheme_bootstrap_custom_templates" />
+ <object remove="True" name="plonetheme_bootstrap_images" />
+ <object remove="True" name="plonetheme_bootstrap_templates" />
+ <object remove="True" name="plonetheme_bootstrap_styles" />
+ <object remove="True" name="plonetheme_bootstrap_javascript" />
+
+ <!-- A skin-path in this file corresponds to a Skin Selection in the
+     'Properties' tab of the portal_skins tool, in the ZMI.
+     You can define for each new skin path the layers that it holds. A new
+     skin can be based on another existing one by using the 'based-on'
+     attribute.
+     The definition of a layer accepts these parameters:
+       - name: quite self explanatory, the name of the layer.
+       - insert-before: name of the layer before which it must be added.
+       - insert-after: name of the layer after which it must be added.
+       Note: insert-before (and -after) accepts the value "*" which means
+       "all".
+       -->
+ <skin-path name="NgREN Bootstrap Theme" based-on="Plone Default">
+  <layer name="plonetheme_bootstrap_custom"
+     insert-after="custom"/>
+ </skin-path>
+ <skin-path name="*">
+   <layer remove="True" name="plonetheme_bootstrap_custom_images"/>
+   <layer remove="True" name="plonetheme_bootstrap_custom_templates"/>
+   <layer remove="True" name="plonetheme_bootstrap_images"/>
+   <layer remove="True" name="plonetheme_bootstrap_templates"/>
+   <layer remove="True" name="plonetheme_bootstrap_styles"/>
+   <layer remove="True" name="plonetheme_bootstrap_javascript"/>
+ </skin-path>
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/waeup.plonetheme.ngren1_various.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/waeup.plonetheme.ngren1_various.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/default/waeup.plonetheme.ngren1_various.txt	(revision 10084)
@@ -0,0 +1,1 @@
+This file is used as a marker in setuphandlers.py.
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/browserlayer.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/browserlayer.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/browserlayer.xml	(revision 10084)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<layers>
+    <layer name="waeup.plonetheme.ngren3"
+           interface="waeup.plonetheme.ngren3.browser.interfaces.IThemeSpecific" />
+</layers>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/cssregistry.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/cssregistry.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/cssregistry.xml	(revision 10084)
@@ -0,0 +1,106 @@
+<?xml version="1.0"?>
+<!-- This file holds the setup configuration for the portal_css tool. -->
+
+<object name="portal_css">
+
+ <!-- Stylesheets that will be registered with the portal_css tool are defined
+      here. You can also specify values for existing resources if you need to
+      modify some of their properties.
+      Stylesheet elements accept these parameters:
+      - 'id' (required): it must respect the name of the css or DTML file
+        (case sensitive). '.dtml' suffixes must be ignored.
+      - 'expression' (optional - default: ''): a tal condition.
+      - 'media' (optional - default: ''): possible values: 'screen', 'print',
+        'projection', 'handheld'...
+      - 'rel' (optional - default: 'stylesheet')
+      - 'title' (optional - default: '')
+      - 'rendering' (optional - default: 'import'): 'import', 'link' or
+        'inline'.
+      - 'enabled' (optional - default: True): boolean
+      - 'cookable' (optional - default: True): boolean (aka 'merging allowed')
+      See registerStylesheet() arguments in
+      ResourceRegistries/tools/CSSRegistry.py for the latest list of all
+      available keys and default values.
+      -->
+
+ <stylesheet title=""
+    id="bootstrap.min.css"
+    media="" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="bootstrap-responsive.min.css"
+    media="" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <!-- Deactivate emtpy CSS stylesheet that come with Sunburst theme -->
+ <stylesheet title=""
+    id="base.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="authoring.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="columns.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="controlpanel.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="deprecated.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="forms.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="navtree.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="invisibles.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="kupuplone.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="ploneCustom.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+ <stylesheet title=""
+    id="mobile.css"
+    media="handheld, screen and (max-device-width: 480px)" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="0" expression=""/>
+
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/jsregistry.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/jsregistry.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/jsregistry.xml	(revision 10084)
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<object name="portal_javascripts">
+
+
+ <javascript cacheable="True" compression="none" cookable="True"
+    enabled="True" inline="False" expression="" insert-before="*"
+    id="++resource++plone.app.jquery.js" />
+
+ <javascript cacheable="True" compression="none" cookable="True"
+    enabled="False" inline="False" expression="" insert-before="*"
+    id="jquery.js" />
+
+ <javascript
+    id="bootstrap-integration.js"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="True" expression=""  inline="False"/>
+
+ <javascript
+    id="bootstrap.min.js"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="True" expression=""  inline="False"/>
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/metadata.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/metadata.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/metadata.xml	(revision 10084)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<metadata>
+    <version>1001</version>
+</metadata>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/skins.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/skins.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/skins.xml	(revision 10084)
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<!-- This file holds the setup configuration for the portal_skins tool -->
+
+<!-- Change the value of these parameters to modify portal_skins behavior:
+     - allow_any: change it to True if you want users to be able to select the
+       skin to use from their personal preferences management page. In the
+       ZMI, this value is known as 'Skin flexibility'.
+     - cookie_persistence: change it to True if you want to make the skin cookie
+       persist indefinitely. In the ZMI, this value is known as 'Skin Cookie
+       persistence'.
+       -->
+<object name="portal_skins" allow_any="False" cookie_persistence="False"
+   default_skin="NgREN Bootstrap Theme">
+
+ <!-- This list registers the folders that are stored in the skins directory
+      of your product (on the filesystem) as Filesystem Directory Views within
+      the portal_skins tool, so that they become usable as skin layers.
+      -->
+ <object name="plonetheme_bootstrap_images"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_images"/>
+ <object name="plonetheme_bootstrap_templates"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_templates"/>
+ <object name="plonetheme_bootstrap_styles"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_styles"/>
+ <object name="plonetheme_bootstrap_javascript"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_javascript"/>
+
+
+ <!-- A skin-path in this file corresponds to a Skin Selection in the
+     'Properties' tab of the portal_skins tool, in the ZMI.
+     You can define for each new skin path the layers that it holds. A new
+     skin can be based on another existing one by using the 'based-on'
+     attribute.
+     The definition of a layer accepts these parameters:
+       - name: quite self explanatory, the name of the layer.
+       - insert-before: name of the layer before which it must be added.
+       - insert-after: name of the layer after which it must be added.
+       Note: insert-before (and -after) accepts the value "*" which means
+       "all".
+       -->
+ <skin-path name="NgREN Bootstrap Theme" based-on="Plone Default">
+  <layer name="plonetheme_bootstrap_images"
+     insert-after="custom"/>
+  <layer name="plonetheme_bootstrap_templates"
+     insert-after="plonetheme_bootstrap_images"/>
+  <layer name="plonetheme_bootstrap_styles"
+     insert-after="plonetheme_bootstrap_templates"/>
+  <layer name="plonetheme_bootstrap_javascript"
+     insert-after="plonetheme_bootstrap_styles"/>
+
+ </skin-path>
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/waeup.plonetheme.ngren1_various.txt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/waeup.plonetheme.ngren1_various.txt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/plone-41/waeup.plonetheme.ngren1_various.txt	(revision 10084)
@@ -0,0 +1,1 @@
+This file is used as a marker in setuphandlers.py.
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall-plone41/cssregistry.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall-plone41/cssregistry.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall-plone41/cssregistry.xml	(revision 10084)
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+<!-- This file holds the setup configuration for the portal_css tool. -->
+
+<object name="portal_css">
+
+ <stylesheet title=""
+    id="base.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="authoring.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="columns.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="controlpanel.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="deprecated.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="forms.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="navtree.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="invisibles.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="kupuplone.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="ploneCustom.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="mobile.css"
+    media="handheld, screen and (max-device-width: 480px)" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall-plone41/jsregistry.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall-plone41/jsregistry.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall-plone41/jsregistry.xml	(revision 10084)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<object name="portal_javascripts">
+
+
+ <javascript cacheable="True" compression="none" cookable="True"
+    enabled="False" inline="False" expression="" insert-before="*"
+    id="++resource++plone.app.jquery.js" />
+
+ <javascript cacheable="True" compression="none" cookable="True"
+    enabled="True" inline="False" expression="" insert-before="*"
+    id="jquery.js" />
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall-plone41/skins.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall-plone41/skins.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall-plone41/skins.xml	(revision 10084)
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!-- This file holds the setup configuration for the portal_skins tool -->
+
+<!-- Change the value of these parameters to modify portal_skins behavior:
+     - allow_any: change it to True if you want users to be able to select the
+       skin to use from their personal preferences management page. In the
+       ZMI, this value is known as 'Skin flexibility'.
+     - cookie_persistence: change it to True if you want to make the skin cookie
+       persist indefinitely. In the ZMI, this value is known as 'Skin Cookie
+       persistence'.
+       -->
+<object name="portal_skins" allow_any="False" cookie_persistence="False"
+   default_skin="Sunburst Theme">
+
+ <!-- This list registers the folders that are stored in the skins directory
+      of your product (on the filesystem) as Filesystem Directory Views within
+      the portal_skins tool, so that they become usable as skin layers.
+      -->
+ <object name="plonetheme_bootstrap_images"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_images"
+    remove="True"
+    />
+ <object name="plonetheme_bootstrap_templates"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_templates"
+    remove="True"
+    />
+ <object name="plonetheme_bootstrap_styles"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_styles"
+    remove="True"
+    />
+ <object name="plonetheme_bootstrap_javascript"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_javascript"
+    remove="True"
+    />
+
+
+ <skin-path name="NgREN Bootstrap Theme" based-on="Plone Default" remove="True">
+
+ </skin-path>
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall/cssregistry.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall/cssregistry.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall/cssregistry.xml	(revision 10084)
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+<!-- This file holds the setup configuration for the portal_css tool. -->
+
+<object name="portal_css">
+
+ <stylesheet title=""
+    id="base.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="authoring.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="columns.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="controlpanel.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="deprecated.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="forms.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="navtree.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="invisibles.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="kupuplone.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="ploneCustom.css"
+    media="screen" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+ <stylesheet title=""
+    id="mobile.css"
+    media="handheld, screen and (max-device-width: 480px)" rel="stylesheet" rendering="link"
+    cacheable="True" compression="safe" cookable="True"
+    enabled="1" expression=""/>
+
+
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall/jsregistry.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall/jsregistry.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall/jsregistry.xml	(revision 10084)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<object name="portal_javascripts">
+
+z
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall/skins.xml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall/skins.xml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/profiles/uninstall/skins.xml	(revision 10084)
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!-- This file holds the setup configuration for the portal_skins tool -->
+
+<!-- Change the value of these parameters to modify portal_skins behavior:
+     - allow_any: change it to True if you want users to be able to select the
+       skin to use from their personal preferences management page. In the
+       ZMI, this value is known as 'Skin flexibility'.
+     - cookie_persistence: change it to True if you want to make the skin cookie
+       persist indefinitely. In the ZMI, this value is known as 'Skin Cookie
+       persistence'.
+       -->
+<object name="portal_skins" allow_any="False" cookie_persistence="False"
+   default_skin="Sunburst Theme">
+
+ <!-- This list registers the folders that are stored in the skins directory
+      of your product (on the filesystem) as Filesystem Directory Views within
+      the portal_skins tool, so that they become usable as skin layers.
+      -->
+ <object name="plonetheme_bootstrap_images"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_images"
+    remove="True"
+    />
+ <object name="plonetheme_bootstrap_templates"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_templates"
+    remove="True"
+    />
+ <object name="plonetheme_bootstrap_styles"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_styles"
+    remove="True"
+    />
+ <object name="plonetheme_bootstrap_javascript"
+    meta_type="Filesystem Directory View"
+    directory="waeup.plonetheme.ngren3:skins/plonetheme_bootstrap_javascript"
+    remove="True"
+    />
+
+
+ <skin-path name="NgREN Bootstrap Theme" based-on="Plone Default" remove="True">
+
+ </skin-path>
+
+</object>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/setuphandlers.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/setuphandlers.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/setuphandlers.py	(revision 10084)
@@ -0,0 +1,24 @@
+from Products.CMFCore.ActionInformation import Action
+from Products.CMFCore.utils import getToolByName
+
+
+def setupVarious(context):
+    """ Only in plonetheme.sunburst profile """
+
+    if context.readDataFile('waeup.plonetheme.ngren3_various.txt') is None:
+        return
+
+    # Do what plonetheme.sunburst does
+    # Copy the plone_setup action to the user category
+    atool = getToolByName(context.getSite(), 'portal_actions')
+    user_category = atool.user
+    if 'plone_setup' in user_category:
+        return
+
+    state = dict(atool.site_actions.plone_setup.propertyItems())
+    state['visible'] = True
+    new_action = Action('plone_setup', **state)
+    user_category['plone_setup'] = new_action
+
+    position = user_category.getObjectPosition('preferences') + 1
+    user_category.moveObjectToPosition('plone_setup', position)
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/IEFixes.css
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/IEFixes.css	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/IEFixes.css	(revision 10084)
@@ -0,0 +1,48 @@
+/* fix shift on content views list under ie6 */
+*html ul#content-views{
+    margin: -2px -3px 0px -3px;
+}
+
+/* removes extra space above logo */
+#portal-logo {
+    margin-top: 0;
+}
+
+/* ensures hidden elements don't take up space */
+.hiddenStructure {
+    position: absolute;
+}
+
+/* IE8: keeps livesearch from falling behind content area,
+   and display menu from falling behind footer
+   Keeping float for IE7, so the portlets don't fall */
+div.cell {
+    float: none;
+    *float: left;
+}
+
+/* IE8: prevent ghost top-margin in folder summary listing */
+h2.tileHeadline {
+    display: block;
+    *display: inline;
+}
+
+/* IE7: fixes super-wide div for JavaScript Tag selector */
+div.optionsBox {
+    !width: 50%;
+}
+.optionsBox input {
+    !margin: 0px;
+}
+/* IE7: Display menu falls under footer (see Events page) (IE7) #10872 */
+#portal-columns {
+    z-index: 1;
+}
+/* IE7: Live search appears under content action menu (IE7/IE8) #10872 */
+#portal-top {
+    z-index: 2;
+}
+/* IE7: set z-indexes on content menus for narrow browsers #10872 */
+#contentActionMenus #plone-contentmenu-workflow {
+    z-index: 6;
+}
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/RTL.css
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/RTL.css	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/RTL.css	(revision 10084)
@@ -0,0 +1,190 @@
+/*  Style sheet for RTL (right-to-left) scripts  */
+
+/* Please note this stylesheet has comment placeholders for several
+** stylesheets used within Plone. If you are correcting or overriding
+** styles for RTL scripts, please place the styles within the respective
+** comments below.
+**
+*/
+
+
+/* RTL overides of member.css */
+
+
+
+
+/* RTL overides of base.css */
+
+
+
+
+/* RTL overides of public.css */
+
+/* Fix to get bulleted and numbered lists to stay inside the content area */
+#content ol,
+#content ul {
+    list-style-position: inside;
+}
+
+#portal-globalnav li a {
+    border-right: none;
+    border-left: 0.1em solid white;
+}
+
+#portal-personaltools {
+    float: left;
+    right: auto;
+    left: 0;
+}
+
+/* Navigation and Search */
+
+#portal-languageselector {
+    float: left;
+    right: auto;
+    left: 1px;
+}
+
+#portal-searchbox {
+    padding: 0 0 0 2em;
+    float: left;
+    clear: left;
+    text-align: right;
+}
+
+/* LiveSearch styles */
+
+#LSResult {
+    margin: -1.5em -7em 0 0;
+    right: auto;
+    left: 0;
+}
+
+/* Status messages */
+
+#content dl.portalMessage dt {
+    float: right;
+    margin: 0 0 0 0.5em;
+}
+
+/* Editing */
+/* Tabs */
+
+#content-views {
+    float: right;
+}
+
+/* Pulldown menus */
+
+/* Personal tools pulldown */
+
+#portal-personaltools dd {
+    right: auto;
+    left: 0;
+}
+
+dl.actionMenu {
+    margin-left: auto;
+    margin-right: 0.5em;
+}
+
+/* Content pulldowns */
+
+#contentActionMenus {
+    float: left;
+    margin: auto;
+}
+
+#contentActionMenus dl.actionMenu.activated dd {
+    right: auto;
+}
+
+dl.actionMenu.activated {
+    direction: ltr;
+}
+dl.actionMenu.activated dt {
+    direction: rtl;
+}
+dd.actionMenuContent ul {
+    direction: rtl;
+}
+
+/* Core content type sprites */
+
+.icons-on .contenttype-document {
+    background: no-repeat transparent right 4px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-event {
+    background: no-repeat transparent right -212px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-folder {
+    background: no-repeat transparent right -644px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-link {
+    background: no-repeat transparent right -1076px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-news-item {
+    background: no-repeat transparent right -1292px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-plone-site {
+    background: no-repeat transparent right -1508px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-collection {
+    background: no-repeat transparent right -1724px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-topic {
+    background: no-repeat transparent right -1724px url(contenttypes-sprite.png);
+}
+
+/* These should only appear in the add menu */
+.icons-on #plone-contentmenu-factories .contenttype-file {
+    background: no-repeat transparent right -428px url(contenttypes-sprite.png);
+}
+.icons-on #plone-contentmenu-factories .contenttype-image {
+    background: no-repeat transparent right -860px url(contenttypes-sprite.png);
+}
+
+.icons-on .contenttype-document,
+.icons-on .contenttype-event,
+.icons-on .contenttype-folder,
+.icons-on .contenttype-link,
+.icons-on .contenttype-news-item,
+.icons-on .contenttype-plone-site,
+.icons-on .contenttype-topic,
+.icons-on #plone-contentmenu-factories .contenttype-file,
+.icons-on #plone-contentmenu-factories .contenttype-image {
+    padding-left: auto !important;
+    padding-right: 20px !important;
+}
+
+/* RTL overides of columns.css */
+
+
+
+
+/* RTL overides of authoring.css */
+
+
+
+
+/* RTL overides of portlets.css */
+
+
+
+
+/* RTL overides of controlpanel.css */
+
+
+
+
+/* RTL overides of print.css */
+
+
+
+
+/* RTL overides of mobile.css */
+
+
+
+
+/* RTL overides of navtree.css */
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/base_properties.props
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/base_properties.props	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/base_properties.props	(revision 10084)
@@ -0,0 +1,16 @@
+plone_skin:string=NgREN Bootstrap Theme
+logoName:string=logo.png
+
+linkColor:string=inherit
+backgroundColor:string=transparent
+
+fontSmallSize:string=100%
+borderWidth:string=1px
+borderStyle:string=solid
+
+globalBorderColor:string=White
+globalBackgroundColor:string=#dddddd
+
+discreetColor:string=#76797c
+
+textTransform:string=none
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/global_statusmessage.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/global_statusmessage.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/global_statusmessage.pt	(revision 10084)
@@ -0,0 +1,36 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
+      xmlns:tal="http://xml.zope.org/namespaces/tal"
+      xmlns:metal="http://xml.zope.org/namespaces/metal"
+      xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+      i18n:domain="plone">
+
+  <body>
+    <tal:block i18n:domain="plone"
+               metal:define-macro="portal_message">
+
+        <div class="alert" id="kssPortalMessage" style="display:none">
+          <button type="button" class="close" data-dismiss="alert">×</button>
+          <strong>Info</strong> <tal:block replace="nothing">KSS portal message</tal:block>
+        </div>
+
+
+        <tal:statusmsg tal:define="messages python:context.plone_utils.showPortalMessages()"
+                       tal:repeat="message messages">
+
+            <div class="alert alert-block"
+                 tal:attributes="class string:alert alert-${message/type}">
+                <button type="button" class="close" data-dismiss="alert">×</button>
+                <strong tal:define="mtype message/type | nothing;"
+                        tal:content="python:mtype.capitalize()"
+                    i18n:translate="">
+                    Info
+                </strong>
+               <tal:message content="message/message | nothing"
+                    i18n:translate="">
+                    The status message.
+                </tal:message>
+            </div>
+        </tal:statusmsg>
+    </tal:block>
+  </body>
+</html>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/main_template.pt
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/main_template.pt	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/main_template.pt	(revision 10084)
@@ -0,0 +1,178 @@
+<metal:page define-macro="master"><tal:doctype tal:replace="structure string:&lt;!DOCTYPE html&gt;" />
+
+<html xmlns="http://www.w3.org/1999/xhtml"
+    tal:define="portal_state context/@@plone_portal_state;
+        context_state context/@@plone_context_state;
+        plone_view context/@@plone;
+        lang portal_state/language;
+        view nocall:view | nocall: plone_view;
+        dummy python: plone_view.mark_view(view);
+        portal_url portal_state/portal_url;
+        checkPermission nocall: context/portal_membership/checkPermission;
+        site_properties context/portal_properties/site_properties;
+        ajax_load request/ajax_load | nothing;
+        ajax_include_head request/ajax_include_head | nothing;
+        dummy python:request.RESPONSE.setHeader('X-UA-Compatible', 'IE=edge,chrome=1');
+        bootstrapview nocall:context/@@bootstrapview"
+    tal:attributes="lang lang;">
+
+    <metal:cache use-macro="context/global_cache_settings/macros/cacheheaders">
+    Get the global cache headers located in global_cache_settings.
+    </metal:cache>
+
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+    <metal:baseslot define-slot="base">
+        <base tal:attributes="href plone_view/renderBase" /><!--[if lt IE 7]></base><![endif]-->
+    </metal:baseslot>
+
+    <tal:notajax tal:condition="python:not ajax_load or ajax_include_head">
+        <div tal:replace="structure provider:plone.htmlhead" />
+        <link tal:replace="structure provider:plone.htmlhead.links" />
+
+        <tal:comment replace="nothing">
+            Various slots where you can insert elements in the header from a template.
+        </tal:comment>
+        <metal:topslot define-slot="top_slot" />
+        <metal:headslot define-slot="head_slot" />
+        <metal:styleslot define-slot="style_slot" />
+        <metal:javascriptslot define-slot="javascript_head_slot" />
+
+        <meta name="viewport"
+              tal:define="viewportvalues bootstrapview/getViewportValues"
+              tal:attributes="content string:width=${viewportvalues/width},initial-scale=${viewportvalues/initialscale},maximum-scale=${viewportvalues/maximumscale},minimum-scale=${viewportvalues/minimumscale}"
+                content="width=device-width, initial-scale=0.6666, maximum-scale=1.0, minimum-scale=0.6666" />
+        <meta name="generator" content="Plone - http://plone.org" />
+    </tal:notajax>
+</head>
+
+<body tal:define="isRTL portal_state/is_rtl;
+                  sl python:plone_view.have_portlets('plone.leftcolumn', view);
+                  sr python:plone_view.have_portlets('plone.rightcolumn', view);
+                  body_class python:plone_view.bodyClass(template, view);
+                  classes python:bootstrapview.getColumnsClasses(view)"
+    tal:attributes="class body_class;
+                    dir python:isRTL and 'rtl' or 'ltr'">
+
+    <div id="visual-portal-wrapper">
+        <header tal:condition="not:ajax_load">
+            <div id="portal-header-wrapper" class="container-fluid">
+                <div tal:replace="structure provider:plone.portaltop" />
+            </div>
+        </header>
+        <div id="portal-columns" class="container-fluid">
+            <div class="row-fluid">
+                <tal:notajax tal:condition="not:ajax_load">
+                <div id="portal-column-one"
+                    class="cell width-1:4 position-0"
+                    metal:define-slot="column_one_slot"
+                    tal:condition="sl"
+                    tal:attributes="class classes/one">
+                    <metal:portlets define-slot="portlets_one_slot">
+                        <tal:block replace="structure provider:plone.leftcolumn" />
+                    </metal:portlets>
+                </div>
+                </tal:notajax>
+
+                <div id="portal-column-content" class="cell"
+                     tal:attributes="class classes/content">
+
+                    <div id="viewlet-above-content" tal:content="structure provider:plone.abovecontent" tal:condition="not:ajax_load" />
+
+                    <metal:block define-slot="content">
+                        <div metal:define-macro="content"
+                            tal:define="show_border context/@@plone/showEditableBorder; show_border python:show_border and not ajax_load"
+                            tal:attributes="class python:show_border and 'documentEditable' or ''">
+
+                            <div id="editing-bar"
+                                class="row-fluid"
+                                tal:condition="show_border"
+                                tal:content="structure provider:plone.contentviews" />
+
+                            <div metal:use-macro="context/global_statusmessage/macros/portal_message">
+                             Status message
+                            </div>
+
+                            <metal:slot define-slot="body">
+                                <div id="content">
+
+                                    <metal:header define-slot="header" tal:content="nothing">
+                                    Visual Header
+                                    </metal:header>
+
+                                    <metal:bodytext define-slot="main">
+
+                                     <div id="viewlet-above-content-title" tal:content="structure provider:plone.abovecontenttitle" tal:condition="not:ajax_load" />
+                                     <metal:title define-slot="content-title">
+                                         <metal:comment tal:content="nothing">
+                                             If you write a custom title always use
+                                             <h1 class="documentFirstHeading"></h1> for it
+                                         </metal:comment>
+                                         <h1 metal:use-macro="context/kss_generic_macros/macros/generic_title_view">
+                                             Generic KSS Title. Is rendered with class="documentFirstHeading".
+                                         </h1>
+                                     </metal:title>
+                                     <div id="viewlet-below-content-title" tal:content="structure provider:plone.belowcontenttitle" tal:condition="not:ajax_load" />
+
+                                     <metal:description define-slot="content-description">
+                                         <metal:comment tal:content="nothing">
+                                             If you write a custom description always use
+                                             <div class="documentDescription"></div> for it
+                                         </metal:comment>
+                                         <div metal:use-macro="context/kss_generic_macros/macros/generic_description_view">
+                                             Generic KSS Description. Is rendered with class="documentDescription".
+                                         </div>
+                                     </metal:description>
+
+                                     <div id="viewlet-above-content-body" tal:content="structure provider:plone.abovecontentbody" tal:condition="not:ajax_load" />
+                                     <div id="content-core">
+                                         <metal:text define-slot="content-core" tal:content="nothing">
+                                             Page body text
+                                         </metal:text>
+                                     </div>
+                                     <div id="viewlet-below-content-body" tal:content="structure provider:plone.belowcontentbody" tal:condition="not:ajax_load" />
+
+                                    </metal:bodytext>
+                                </div>
+                            </metal:slot>
+
+                            <metal:sub define-slot="sub" tal:content="nothing">
+                               This slot is here for backwards compatibility only.
+                               Don't use it in your custom templates.
+                            </metal:sub>
+                        </div>
+                    </metal:block>
+
+                    <div id="viewlet-below-content" tal:content="structure provider:plone.belowcontent" tal:condition="not:ajax_load" />
+                </div>
+
+                <tal:notajax tal:condition="not:ajax_load">
+                <div id="portal-column-two"
+                    class="cell width-1:4 position-3:4"
+                    metal:define-slot="column_two_slot"
+                    tal:condition="sr"
+                    tal:attributes="class classes/two">
+                    <metal:portlets define-slot="portlets_two_slot">
+                        <tal:block replace="structure provider:plone.rightcolumn" />
+                    </metal:portlets>
+                </div>
+                </tal:notajax>
+            </div>
+        </div>
+
+        <footer tal:condition="not:ajax_load">
+            <div id="portal-footer-wrapper"
+                class="container-fluid">
+                <div class="row-fluid">
+                    <div tal:replace="structure provider:plone.portalfooter" />
+                    <div id="kss-spinner">
+                        <img tal:attributes="src string:${portal_url}/spinner.gif" alt="" />
+                    </div>
+                </div>
+            </div>
+        </footer>
+    </div>
+</body>
+</html>
+</metal:page>
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/member.css
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/member.css	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/member.css	(revision 10084)
@@ -0,0 +1,61 @@
+/* - member.css - */
+
+/* workflow state colors */
+
+.state-private {
+    color: Red !important;
+}
+.state-visible {
+    color: #74AE0B !important;
+}
+.state-published {
+    color: #436976 !important;
+}
+.state-pending {
+    color: #FFA500 !important;
+}
+.state-expired {
+    color: Red !important;
+}
+.syndicated {
+    color: #008000 !important;
+}
+
+/* Pulldown menu state indicators */
+
+#plone-contentmenu-workflow .state-private {
+    padding: 0 0.5em;
+    background-color: Red;
+    border: 0.1em solid Red;
+    color: White !important;
+    border-radius: 0.5em;
+    -webkit-border-radius: 0.5em;
+    -moz-border-radius: 0.5em;
+}
+#plone-contentmenu-workflow .state-visible {
+    padding: 0 0.5em;
+    background-color: #74AE0B;
+    border: 0.1em solid #74AE0B;
+    color: White !important;
+    border-radius: 0.5em;
+    -webkit-border-radius: 0.5em;
+    -moz-border-radius: 0.5em;
+}
+#plone-contentmenu-workflow .state-published {
+    padding: 0 0.5em;
+    background-color: #436976;
+    border: 0.1em solid #436976;
+    color: White !important;
+    border-radius: 0.5em;
+    -webkit-border-radius: 0.5em;
+    -moz-border-radius: 0.5em;
+}
+#plone-contentmenu-workflow .state-pending {
+    padding: 0 0.5em;
+    background-color: #FFA500;
+    border: 0.1em solid #FFA500;
+    color: White !important;
+    border-radius: 0.5em;
+    -webkit-border-radius: 0.5em;
+    -moz-border-radius: 0.5em;
+}
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/plone.kss.dtml
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/plone.kss.dtml	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/plone.kss.dtml	(revision 10084)
@@ -0,0 +1,340 @@
+
+/* - plone.kss - */
+/* <dtml-call expr="RESPONSE.setHeader('pragma','no-cache')"> */
+
+/*
+    The above trick to let this file not be cached does not work, unless this file is renamed to have
+    a kss.dtml extension.
+*/
+
+
+/* General stylesheet for Plone AJAX */
+
+/* Add class to body to allow conditional styling when kss is available */
+
+body:load {
+  action-client: addClass;
+  addClass-value: kssActive;
+}
+
+ul.contentViews li a:plone-formProtectionChecked {
+    action-server: replaceContentRegion;
+    replaceContentRegion-tabid: nodeAttr(id, true);
+    replaceContentRegion-url: nodeAttr(href);
+    replaceContentRegion-error: plone-followLink;
+    action-client: plone-removeLockProtection;
+}
+
+/*
+Load the kupu editor.
+
+The editor is also loaded from the page, so
+we give the initial=false, otherwise that
+should be left out if we do that too.
+*/
+
+iframe.kupu-editor-iframe:load {
+    action-client: plone-initKupu;
+}
+
+#content:load {
+    evt-load-initial: false;
+    action-client: initializeCollapsible;
+}
+
+/*
+This loads the external links markers each time an element marked inlineEditable
+is reloaded (needed to make it work with inlineEditable). However, this isn't the best,
+client-performance wise.
+TODO: Find a better way to "bind just once" or just bind the effectively reloaded links,
+and not rebind everything
+*/
+#content .inlineEditable:load {
+    evt-load-initial: false;
+    action-client: bindExternalLinks;
+}
+
+/*
+Portlet refreshing. The refreshing portlets
+must have the kssPortletRefresh class for selection.
+You can also select per portlet, however this shows
+how to handle them all in one rule.
+*/
+/*
+dl.kssPortletRefresh:timeout {
+    evt-timeout-delay: 60000;
+    action-server: refreshPortlet;
+    refreshPortlet-portlethash: kssAttr("portlethash", True);
+    refreshPortlet-name: nodeAttr(id);
+}
+*/
+
+/* Deferred portlets */
+div.portlet-deferred:load {
+    action-server: refreshPortlet;
+    refreshPortlet-portlethash: kssAttr(portlethash, True);
+}
+
+/*
+Content Menu Sections: General
+*/
+
+#contentActionMenus:load {
+    evt-load-initial: false;
+    action-client: bindActionMenus;
+}
+
+/*
+Content Menu Sections: Change View
+*/
+
+/*
+#plone-contentmenu-display dd.actionMenuContent a:click {
+    evt-click-preventdefault: True;
+    action-server: changeViewTemplate;
+    evt-click-allowbubbling: True;
+    changeViewTemplate-url: nodeAttr(href);
+}
+*/
+
+/* This rule is needed for keeping the default behavior for menu elements that */
+/* are supposed to send user to another page */
+#contextSetDefaultPage:click {
+    evt-click-preventdefault: False;
+    action-cancel: changeViewTemplate;
+}
+#folderChangeDefaultPage:click {
+    evt-click-preventdefault: False;
+    action-cancel: changeViewTemplate;
+}
+
+/*
+Content Menu Sections: Cut and Paste
+*/
+ /* Needed allowbubbling, because the menu-item is inside a span an the event selector is on the enclosing a-tag */
+
+/*
+a.actionicon-object_buttons-cut:click {
+    evt-click-preventdefault: True;
+    evt-click-allowbubbling: True;
+    action-server: cutObject;
+}
+
+a.actionicon-object_buttons-copy:click {
+    evt-click-preventdefault: True;
+    evt-click-allowbubbling: True;
+    action-server: copyObject;
+}
+*/
+/*
+Content Menu Sections: Workflow State
+*/
+#plone-contentmenu-workflow dd.actionMenuContent a:click {
+    evt-click-preventdefault: True;
+    evt-click-allowbubbling: True;
+    action-server: changeWorkflowState;
+    changeWorkflowState-url: nodeAttr(href);
+}
+
+
+#plone-contentmenu-workflow dd.actionMenuContent a.kssIgnore:click {
+    evt-click-preventdefault: False;
+    action-cancel: changeWorkflowState;
+}
+
+/*
+In-place calendar changing
+*/
+a.kssCalendarChange:click {
+    evt-click-preventdefault:      true;
+    action-server:                 refreshCalendar;
+    refreshCalendar-portlethash:   kssAttr(portlethash, True);
+    refreshCalendar-year:          kssAttr(year);
+    refreshCalendar-month:         kssAttr(month);
+}
+
+/* Spinner */
+
+
+/* effects do not seem to like animated gifs
+#kss-spinner:spinneron {
+    evt-spinneron-laziness: 1000;
+    action-client: effect;
+    effect-type: appear;
+}
+
+#kss-spinner:spinneroff {
+    action-client: effect;
+    effect-type: fade;
+}
+*/
+
+#kss-spinner:spinneron {
+    action-client: setStyle;
+    setStyle-name: display;
+    setStyle-value: block;
+}
+
+#kss-spinner:spinneroff {
+    action-client: setStyle;
+    setStyle-name: display;
+    setStyle-value: none;
+}
+
+
+/*
+** Form tabs
+*/
+
+form.enableFormTabbing:load {
+    evt-load-initial: false;
+    action-client: plone-initFormTabs;
+}
+
+form.enableUnloadProtection:load {
+    evt-load-initial: false;
+    action-client: plone-initFormProtection;
+}
+
+form.enableUnlockProtection:load {
+    evt-load-initial: false;
+    action-client: plone-initLockingProtection;
+}
+
+/* disable lock refreshing when an inlineEditable field is reloaded
+   in view mode via AJAX (e.g. when Cancel is pressed) */
+div.inlineEditable:load {
+    evt-load-initial: false;
+    action-client: plone-removeLockProtection;
+}
+
+/*  Selector for the sharing page in plone.app.workflow.
+    the search_term parameters, puts the needed info into the request
+ */
+
+#sharing-save-button:click {
+  evt-click-preventdefault: true;
+  action-server: updateSharingInfo;
+  updateSharingInfo-kssSubmitForm: currentForm();
+  updateSharingInfo-error: plone-submitCurrentForm;
+}
+
+#sharing-user-group-search:keyup {
+  evt-keyup-preventdefault: true;
+  evt-keyup-keycodes: 13;
+  action-server: updateSharingInfo;
+  updateSharingInfo-kssSubmitForm: currentForm();
+}
+
+
+/* kupu stuff */
+#kupu-save-button:load {
+   action-client: setStyle;
+   setStyle-name: display;
+   setStyle-value: inline;
+}
+
+button.kupu-save:click {
+   action-server: savekupu;
+   savekupu-text: currentFormVarFromKssAttr("atfieldname", true);
+   savekupu-fieldname: kssAttr("atfieldname", true);
+}
+
+/* Folder contents stuff */
+
+body:load {
+    action-client: plone-initShiftDetection;
+}
+
+#folderlisting-main-table input[type="checkbox"]:change {
+    action-client: plone-createCheckBoxSelection;
+    plone-createCheckBoxSelection-group: 'table.listing input[type="checkbox"]';
+}
+
+
+#folderlisting-main-table input[type="checkbox"]:change {
+    action-client: toggleClass;
+    toggleClass-kssSelector: parentnode("table.listing tbody tr");
+    toggleClass-classname: "selected";
+}
+
+/* Generic setup which (made more specific by other rules) */
+.update-selection:click, #listing-table .column:click {
+    action-server: update_table url(kssAttr("serveraction", true));
+    evt-click-preventdefault: True;
+    update_table-pagenumber: currentFormVar('pagenumber');
+    update_table-show_all: currentFormVar('show_all');
+    update_table-sort_on: currentFormVar('sort_on');
+}
+
+#foldercontents-show-batched:click {
+    update_table-show_all: "false";
+}
+
+#foldercontents-show-all:click {
+    update_table-show_all: "true";
+        update_table-pagenumber: "1";
+}
+
+#foldercontents-title-column:click {
+    update_table-sort_on: "sortable_title";
+}
+
+#foldercontents-modified-column:click {
+    update_table-sort_on: "modified";
+}
+
+#foldercontents-status-column:click {
+    update_table-sort_on: "review_state";
+}
+
+#foldercontents-selectall:click {
+    update_table-select: 'screen';
+}
+
+#foldercontents-selectall-completebatch:click {
+    update_table-select: 'all';
+}
+
+#foldercontents-clearselection:click {
+    update_table-select: 'none';
+}
+
+#folderlisting-main-table:load {
+    action-client: plone-initDragAndDrop;
+    plone-initDragAndDrop-table: '#listing-table';
+}
+
+#folderlisting-main-table:load {
+    action-client: plone-initCheckBoxSelection;
+}
+
+/* kupu stuff */
+#kupu-save-button:load {
+   action-client: setStyle;
+   setStyle-name: display;
+   setStyle-value: inline;
+}
+
+div.kupu-save-message:timeout {
+   evt-timeout-delay: 2000;
+   evt-timeout-repeat: '';
+   action-client: deleteNode;
+}
+
+#portal-message:timeout {
+   evt-timeout-delay: 2000;
+   evt-timeout-repeat: '';
+   action-client: deleteNode;
+}
+
+/* check if the object if really locked before showing the icon */
+/* an xmlhttprequest might have just been sent on the object to */
+/* unlock just a few moment ago. So we need to be really sure   */
+/* that the object wasn't locked, to be sure, we do one more    */
+/* xmlhttprequest */
+#lock-icon:load{
+    action-server: updateLockInfo;
+}
+
+
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/portlets.css
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/portlets.css	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/portlets.css	(revision 10084)
@@ -0,0 +1,100 @@
+.managedPortlet {
+    margin: 0.8em 0;
+}
+
+.blockedPortlet .portletHeader {
+    border: 1px dashed #ddd;
+    margin: -1px;
+    background: none !important;
+}
+
+.blockedPortlet .portletHeader a {
+    color: #666;
+}
+
+.blockedPortlet .portletBlockedMessage {
+    color: white;
+    display: inline;
+}
+
+.portletCalendar {
+    width: 100%;
+    margin: 1px 0 1em 0;
+}
+
+.portletCalendar dt {
+    background-color: #eee;
+    font-weight: bold;
+    text-align: center;
+    line-height: 1.6em;
+    border-bottom: none;
+}
+
+.portletCalendar dd {
+    margin: 0;
+    padding: 0;
+}
+
+.portletCalendar dt a#calendar-previous {
+    float: left;
+    padding: 0 1em;
+    margin: 0 -.5em;
+}
+
+.portletCalendar dt a#calendar-next {
+    float: right;
+    padding: 0 1em;
+    margin: 0 -.5em;
+}
+
+.portletCalendar a, .portletCalendar a:focus,
+.portletCalendar a, .portletCalendar a:hover {
+    text-decoration: none;
+}
+
+.ploneCalendar {
+    border-spacing: 0;
+    width: 100%;
+}
+
+.ploneCalendar a {
+    text-decoration: none;
+    border-bottom: none !important;
+}
+
+.ploneCalendar td {
+    background-color: transparent;
+    width: 14%;
+    text-align: center;
+    padding: 2px;
+}
+
+.ploneCalendar .weekdays th {
+    background-color: #eee;
+    text-align: center;
+    padding: 2px;
+    font-weight: normal;
+}
+
+.ploneCalendar .event {
+    background-color: #eee;
+    font-weight: bold;
+}
+
+.ploneCalendar .todayevent {
+    background-color: #eee;
+    border: 2px solid #205C90;
+    font-weight: bold;
+}
+
+.ploneCalendar .todaynoevent {
+    border: 2px solid #205C90;
+}
+
+.portletItemDetails {
+    font-size: 85%;
+    padding-top: .5em;
+    line-height: 1.5em;
+    margin-left: 1em;
+    display: block;
+}
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/print.css
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/print.css	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/print.css	(revision 10084)
@@ -0,0 +1,144 @@
+/* Removes certain elements when printing, and apply basic font styles
+   for the remaining content. */
+
+body {
+    font-family: "Helvetica Neue", Arial, FreeSans, sans-serif;
+}
+h1, h2, h3, h4, h5, h6 {
+    font-family: "Helvetica Neue", Arial, FreeSans, sans-serif;
+    font-weight: bold;
+    line-height: 125%;
+    page-break-inside: avoid;
+    page-break-after: avoid;
+}
+h1, h2 {
+    letter-spacing: -0.05em;
+}
+a {
+    text-decoration: none;
+    border-bottom: 0.1em solid gray;
+    color: black;
+}
+#portal-column-content {
+    width: 95%;
+}
+
+.documentDescription {
+    font-weight: bold;
+}
+pre {
+    border: 1pt dotted black;
+    white-space: pre;
+    font-size: 8pt;
+    overflow: auto;
+    padding: 1em;
+}
+table.listing,
+table.listing td {
+    border: 1pt solid black;
+    border-collapse: collapse;
+}
+table.listing td,
+table.listing th {
+    padding: 6px;
+}
+
+/* Page break class for use when printing */
+div.pageBreak {
+    page-break-before: always;
+}
+
+/* Basic styles for listing and document views */
+#content dt {
+    margin:1em 0 0.625em;
+}
+#content p, #content table {
+    margin-bottom:0.625em;
+    margin-top:0.625em;
+}
+#content .documentDescription, #content #description {
+    margin:0.5em 0 1.31em;
+}
+
+/* Uncomment these if you want link addresses inserted along with the link text
+   when you print.
+#content a:link:after,
+#content a:visited:after {
+   content: " [" attr(href) "] ";
+}
+*/
+
+/* Hide all the elements that are irrelevant for printing */
+div.top,
+#portal-logo,
+#portal-siteactions,
+.hiddenStructure,
+#portal-searchbox,
+#portal-globalnav,
+#portal-personaltools,
+#portal-breadcrumbs,
+#edit-bar,
+#portal-column-one,
+#portal-column-two,
+#portal-languageselector,
+.contentViews,
+.contentActions,
+.help,
+.legend,
+.portalMessage,
+.documentActions,
+.netscape4,
+#viewlet-below-content .reply,
+#viewlet-below-content .discussion,
+#kss-spinner,
+#review-history,
+#content-history,
+.listingBar,
+#portal-footer,
+#portal-colophon,
+.skipnav,
+#kss-spinner,
+#review-history,
+#content-history,
+.listingBar,
+.link-presentation,
+input.standalone,
+.overlay,
+.managePortletsFallback,
+.close,
+.link-parent,
+.draggingHook,
+#foldercontents-order-column,
+input.context,
+.visualNoPrint {
+    display: none;
+}
+
+/* Image alignment classes */
+.image-left {
+    float: left;
+    clear: both;
+    margin: 0.5em 1em 0.5em 0;
+    border: 0.4pt solid Black;
+}
+.image-inline {
+    float: none;
+}
+.image-right {
+    float: right;
+    clear: both;
+    margin: 0.5em;
+    border: 0.4pt solid Black;
+}
+dd.image-caption {
+    text-align:left;
+    padding: 0; margin:0;
+}
+dl.captioned {
+    padding: 0.8em;
+}
+.newsImageContainer {
+    float:right;
+    margin: 0 0 0.5em 1em;
+    width: 16em;
+}
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/public.css
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/public.css	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/skins/plonetheme_bootstrap_custom/public.css	(revision 10084)
@@ -0,0 +1,2267 @@
+/* @override
+    http://localhost:8080/4/portal_css/Sunburst%20Theme/public.css
+    http://localhost:8080/sprites/portal_css/Sunburst%20Theme/public.css
+*/
+
+/* @group CSS Reset */
+
+/* Remove implicit browser styles to have a neutral starting point:
+   - No elements should have implicit margin/padding
+   - No underline by default on links (we add it explicitly in the body text)
+   - When we want markers on lists, we will be explicit about it, and they render inline by default
+   - Browsers are inconsistent about hX/pre/code, reset
+   - Linked images should not have borders
+   */
+
+* { margin: 0; padding: 0; }
+* :link,:visited { text-decoration:none }
+* ul,ol { list-style:none; }
+* li { display: inline; }
+* h1,h2,h3,h4,h5,h6,pre,code { font-size:1em; }
+* a img,:link img,:visited img { border:none }
+a { outline: none; }
+table { border-spacing: 0; }
+img { vertical-align: text-bottom; }
+iframe { border-width: 0; border-style:none; }
+
+
+/* @end */
+
+/* @group Navigation/search */
+
+#portal-header {
+    position: relative;
+    z-index: 2;
+}
+
+#portal-logo {
+    display: inline-block;
+    margin: 1.375em 0;
+}
+/* removes extra space above logo in IE6 and IE7 */
+/* .ie6 and .ie7 is set on <html> by Modernizr library */
+.ie6 #portal-logo,
+.ie7 #portal-logo {
+    margin-top: 0;
+}
+
+
+nav {
+    clear: both;
+    background: #ddd;
+    margin: 0 0 1em 0;
+}
+/*
+nav li a {
+    display: inline-block;
+    padding: 0.5em 1em 2em 1em;
+    background: #ddd;
+    min-width: 6em;
+    white-space: normal;
+    border-right: 0.1em solid white;
+}
+
+nav .selected a,
+nav a:hover {
+    background: #205c90;
+    color: White;
+}
+nav .selected a:hover {
+    background: #ddd;
+    color: #205c90;
+}
+*/
+#portal-personaltools {
+    float: right;
+    background: #e3e3e3;
+    position: relative;
+    z-index: 3; /* personaltools should be above #portal-header (with z-index: 2) */
+    top: 0;
+    right: 0;
+    padding: 0.25em 0.5em;
+    font-size: 80%;
+    border-bottom-right-radius: 0.5em;
+    border-bottom-left-radius: 0.5em;
+    -webkit-border-bottom-right-radius: 0.5em;
+    -webkit-border-bottom-left-radius: 0.5em;
+    -moz-border-radius-bottomleft: 0.5em;
+    -moz-border-radius-bottomright: 0.5em;
+}
+#portal-personaltools #anon-personalbar a {
+    float: left;
+    margin: 0 0.5em;
+}
+
+#portal-languageselector {
+    float: right;
+    background: #e3e3e3;
+    position: relative;
+    top: 0;
+    right: 1px;
+    z-index: 3; /* portal-header has 2 and we need to be above to be clickable */
+    padding: 0.25em 0.5em;
+    font-size: 80%;
+    border-bottom-right-radius: 0.5em;
+    border-bottom-left-radius: 0.5em;
+    -webkit-border-bottom-right-radius: 0.5em;
+    -webkit-border-bottom-left-radius: 0.5em;
+    -moz-border-radius-bottomleft: 0.5em;
+    -moz-border-radius-bottomright: 0.5em;
+    max-width: 50%;
+}
+
+#portal-searchbox {
+    float: right;
+    text-align: left;
+    clear: right;
+    margin: 1.2em 0;
+    font-size: 80%;
+}
+
+#portal-searchbox form {
+    white-space: nowrap;
+}
+
+#portal-searchbox label {
+    font-weight: normal;
+}
+
+#searchGadget {
+    width: 13em;
+}
+#searchGadget,
+.LSBox input.searchButton {
+}
+
+.LSBox .searchSection {
+}
+
+#content input.searchField {
+    margin-bottom: 1em;
+}
+
+input.searchField {
+/*  -webkit-appearance: searchfield;*/
+    -moz-appearance: searchfield;
+}
+
+/* Collapsible elements in search_form */
+
+.collapsible .collapser.collapsed {
+    padding-right: 14px;
+    background: url('arrowRight.png') center right no-repeat;
+}
+
+.collapsible .collapser.expanded {
+    padding-right: 14px;
+    background: url('arrowDown.png') center right no-repeat;
+}
+/* @end */
+
+/* @group LiveSearch */
+
+#LSResult {
+    position: absolute;
+    right: 0;
+    background: White;
+    margin: -1.5em 0 0 -7em;
+}
+
+#LSResult fieldset {
+    padding: 1em 0 0;
+    border: 0.1em solid #ccc;
+}
+
+#livesearchLegend {
+    background-color:#ccc;
+    padding:0.3em;
+}
+
+#LSResult .LSDescr {
+    font-size: 85%;
+    color: #666;
+}
+
+.LSRow,
+#LSNothingFound {
+    display: block;
+    padding: 0.5em 1em;
+    white-space: normal;
+    width:28em;
+}
+
+.LSHighlight {
+    background: #ddd;
+}
+
+/* @end */
+
+
+/* @group Path indicator (breadcrumbs) */
+
+#portal-breadcrumbs {
+    font-size: 80%;
+    margin-bottom: 1em;
+    margin-left: 0.25em;
+}
+#portal-breadcrumbs a {
+    border-bottom: none;
+    display: inline-block;
+}
+
+.breadcrumbSeparator {
+      color: #666666;
+}
+
+/* @end */
+
+
+
+
+
+/* @group Site actions */
+
+#portal-siteactions {
+    font-size: 85%;
+    padding-bottom: 2em;
+    text-align: center;
+    clear: left;
+}
+#portal-siteactions li {
+    margin-right: 0.5em;
+}
+#portal-siteactions li a:hover {
+    color: #75ad0a
+}
+
+/* @end */
+
+/* @group Listings */
+
+a.link-parent {
+}
+
+a.link-anchor {
+    border: none !important;
+    color: Black !important;
+    cursor: default !important;
+}
+#content a.link-overlay {
+    border-bottom: 1px dotted #205c90 !important;
+}
+
+dl dt .documentByLine {
+    font-weight: normal;
+}
+
+dl dt span.summary a {
+    border: none !important;
+}
+
+/* @end */
+
+/* @group Portlets */
+
+dl.portlet {
+    margin: 0 0 1em;
+
+}
+dl.portletError {
+    background-color: #FFA500;
+}
+
+dl.portlet dt,
+div.portletAssignments div.portletHeader {
+    padding: 0.42em 1em;
+    background: #ddd;
+    line-height: normal;
+}
+dl.portlet dt.hiddenStructure {
+    padding: 0;
+}
+div.portletAssignments {
+    font-size: 0.8em;
+    line-height: 2em;
+}
+
+div.portletAssignments .managedPortletActions {
+    float: right;
+}
+div.portletAssignments .managedPortletActions a, div.portletAssignments .managedPortletActions button {
+    margin: 0 0.25em;
+    border: none;
+    cursor: pointer;
+    background-color: transparent;
+    color: #205C90;
+}
+
+div.portletAssignments .managedPortletActions form {
+    display: inline;
+}
+
+dl.portlet dt a:link,
+dl.portlet dt a:visited,
+dl.portlet dt a:hover {
+    color: black;
+    display: block;
+    border: none;
+}
+
+dl.portlet dd.portletItem,
+dl.portlet dd.portletFooter,
+dl.portletError dd {
+    padding: 1em;
+}
+
+
+
+div.managePortletsLink,
+a.managePortletsFallback {
+    text-align: center;
+    padding: 0.25em 0.5em;
+    font-size: 80%;
+    margin: 0 auto 1em;
+    background: #ddd;
+    border-radius: 0.5em;
+    -webkit-border-radius: 0.5em;
+    -moz-border-radius: 0.5em;
+}
+a.managePortletsFallback {
+    display:inline-block; /* in order for our vertical margins to work on inline element */
+}
+#content a.managePortletsFallback {
+    display: block;
+    border-bottom: none !important;
+}
+
+#portlet-prefs a {
+    border: none;
+    line-height: 2em;
+}
+
+#visual-portal-wrapper dl.portletCalendar dd {
+    padding: 0;
+}
+
+#dashboard-portlets1,
+#dashboard-portlets2,
+#dashboard-portlets3,
+#dashboard-portlets4 {
+    display: inline-block;
+}
+
+/* @end */
+
+/* @group Navigation portlet */
+
+dl.portlet ul.navTree li a {
+    border: none;
+    display: block;
+    zoom: 1;
+}
+
+dl.portlet ul.navTree li a:hover {
+
+}
+
+dl.portletNavigationTree dd.portletItem {
+    padding: 0;
+}
+
+dl.portlet ul.navTreeLevel0 > .navTreeItem {
+    padding: 0.25em 1em;
+    border-bottom: 0.1em dotted #ddd;
+    line-height: 2em;
+}
+
+dl.portlet ul.navTreeLevel1 .navTreeItem {
+    padding-left: 0.5em;
+    line-height: 2em;
+}
+
+dl.portlet ul.navTree .navTreeCurrentItem {
+    background-color: #ddd;
+    border-left: 1em solid #ddd;
+    margin-left: -1em;
+    margin-right: -1em;
+}
+
+/* @end */
+
+/* @group Content Area */
+/*
+#content {
+    line-height: 1.5em;
+    clear: both;
+    font-size: 90%;
+    margin: 1em 0.25em 2em 0.25em;
+}
+*/
+/* Special case of #content - TinyMCE */
+body#content {
+    margin: 1em;
+}
+
+#content h1 {
+    margin-top: 0.5em;
+}
+
+#content h1.documentFirstHeading {
+    margin-top: 0;
+}
+
+#content p,
+#content table,
+#content dl,
+dl.portlet p,
+dl.portlet {
+    margin-bottom: 1em;
+}
+
+#content ul,
+#content ol {
+
+}
+
+#content a:link,
+dl.portlet a:link {
+    color: #205c90;
+    border-bottom: 0.1em solid #ccc;
+}
+
+#content a:visited,
+dl.portlet a:visited {
+    color: #427597;
+    border-bottom: 0.1em solid #ccc;
+}
+#content a:hover,
+dl.portlet a:hover {
+    color: #75ad0a !important; /* This one gets an !important because it should always activate in the content area, even when state coloring is active */
+}
+#content a:target {
+    background-color: #ffb;
+}
+#content span.link-external a {
+    background: transparent url(link_icon.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+#category {
+    font-size: 75%;
+    margin-bottom: 1em;
+    color: #666;
+    text-align: right;
+}
+
+#category a.link-category, span.selectedTag {
+    color: black;
+    padding: 0.25em 0.5em;
+    background: #ddd;
+    border-radius: 0.5em;
+    -webkit-border-radius: 0.5em;
+    -moz-border-radius: 0.5em;
+}
+#category a.link-category:hover {
+    background: #205c90;
+    color: White;
+    border-color: #205c90;
+}
+#category .separator {
+    display: none;
+}
+
+#content ul {
+    list-style-type: disc;
+    margin-left: 2em;
+}
+
+#content ol,
+dl.portlet ol,
+div.portletStaticText ol {
+    list-style-type: decimal;
+    margin-left: 2em;
+}
+
+#content li,
+dl.portlet li,
+div.portletStaticText li {
+    margin-bottom: 0.25em;
+    line-height: 1.5em;
+    display: list-item;
+}
+
+#content dt {
+    font-weight: bold;
+    margin-bottom: 0;
+    margin-right: 0;
+}
+#content dd {
+    margin: 0 0 1em 2em;
+}
+
+#content pre {
+    background-color: #222;
+    color: White;
+    font-family: Consolas, Inconsolata, Menlo, "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace;
+    padding: 1em;
+    overflow-x: auto;
+    font-size: 90%;
+    margin-bottom: 1em;
+    line-height: 1.25em;
+}
+#content pre.python {
+    background-color: White;
+}
+
+#content code {
+    font-family: Consolas, Inconsolata, Menlo, "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace;
+}
+
+#content div.documentByLine {
+    font-size: 85%;
+    display: block;
+    color: #666;
+}
+
+#content .discreet,
+#sidebar .discreet {
+    color: #666;
+    font-size: 85%;
+    font-weight: normal;
+}
+
+#content .visualHighlight {
+    background-color: #ffb;
+}
+
+#content .pullquote {
+    margin: 0 1em 0.5em 0.5em;
+    font-weight: bold;
+    line-height: 1.25em;
+    float: right;
+    width: 35%;
+    clear: right;
+    color: #444;
+    font-size: 1.6em;
+    letter-spacing: -0.08em !important;
+}
+#content .callout {
+    background: #eee;
+    padding: 1em;
+    border-left: 1em solid #ccc;
+    clear: both;
+}
+
+
+#content table {
+    text-align: left;
+    border-collapse: collapse;
+    border-spacing: 0px;
+}
+
+#content .documentDescription,
+#content #description {
+    color: #666;
+    margin-left: 0;
+    font: bold 1.25em "Helvetica Neue", Arial, FreeSans, sans-serif;
+}
+
+#content img.tileImage,
+#content div.newsImageContainer {
+    float: right;
+    margin: 0 1em 0.5em 1em;
+}
+#content div.newsImageContainer a {
+    border-bottom: none;
+}
+#content div.newsImageContainer p.discreet {
+    margin: 0;
+    padding: 0.5em;
+    background-color: #666;
+    background-color: rgba(40,40,40,0.7);
+    color: White;
+    font-weight: bold;
+    position: relative;
+    width: 190px;
+    top: -3em;
+}
+.eventDetails {
+    float: right;
+    clear: right;
+    margin: 0 0 0.5em 1em;
+}
+/* For event view template, changed headerless table to headings and divs,
+ * for better accessibility.  */
+
+#content .eventDetails {
+    border-color: #CCCCCC;
+    border-style: solid;
+    border-width: 0.08em;
+    width: 22em;
+    margin-top: 1em;
+}
+#content .eventDetails h2 {
+    background-color: #DDDDDD;
+    font-size: 100%;
+    letter-spacing: 0;
+    padding: 0.5em;
+    padding-left: 1em;
+}
+#content .eventDetails .eventDetail {
+    clear: both;
+}
+#content .eventDetails .eventDetail h3,
+#content .eventDetails .eventDetail div {
+    padding: 2%;
+}
+#content .eventDetails .eventDetail h3 {
+    float: left;
+    font-size: 100%;
+    text-align: right;
+    width: 37%;
+}
+#content .eventDetails .eventDetail div {
+    float: left;
+    width: 55%;
+}
+/* @end */
+
+
+
+/* @group Data tables */
+
+table.listing,
+table.plain {
+    border-spacing: 0;
+    border-collapse: collapse;
+}
+
+table.invisible td,
+table.invisible th,
+table.plain td,
+table.plain th,
+table.listing td,
+table.listing th {
+    padding: 0.5em 1em;
+    vertical-align: top;
+}
+table.plain th,
+table.plain td {
+    border: 1px solid #ddd;
+}
+
+table.listing td.listingCheckbox,
+table.listing th.listingCheckbox {
+    text-align: center;
+}
+
+
+table.listing {
+    border-left: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+}
+table.listing .top {
+    border-left: 1px solid #ddd;
+    border-top: 1px solid #ddd;
+    border-right: 1px solid #ddd;
+}
+table.listing th {
+    text-align: left;
+    color: #666;
+    border: 0.1em solid #e7e7e7;
+    border-style: solid solid none;
+    background: #ddd;
+}
+table.listing tr.odd th {
+    border: 0.1em solid #fff;
+    border-style: solid solid none none;
+}
+table.listing tbody th {
+    font-weight: bold;
+}
+table.listing tbody tr {
+    text-align:left;
+}
+table.listing tbody tr.odd {
+    background: #eee;
+}
+table.listing tbody tr td {
+    background: transparent;
+}
+table.listing tbody tr.odd td {
+    background: #eee;
+}
+table.listing td {
+    border-right: 1px solid #ddd;
+}
+.icons-on table.listing td {
+    line-height: 2em;
+}
+table.listing a {
+    border: none;
+    display: inline-block;
+    border-bottom: none !important;
+}
+
+table.listing td.draggable {
+    text-shadow: White 1px 1px 1px;
+    background: #ddd !important;
+    border-bottom: 1px solid white;
+    padding: 0.4em 0.4em 0 0.5em;
+}
+/* Vertical table data listings */
+table.vertical {
+}
+table.vertical th {
+    text-align: right;
+}
+table.vertical td {
+    border-top: 0.1em solid #e7e7e7;
+    padding: 0.5em;
+}
+/* Grid table listings */
+table.grid td,
+table.grid th {
+    border: 1px solid #e7e7e7;
+    padding: 0.5em;
+}
+
+.dragindicator {
+    outline: 2px solid #FFD700;
+}
+
+#foldercontents-order-column {
+    padding: 0;
+}
+
+div.listingBar {
+    font-size: 80%;
+    margin: 1em 0;
+}
+
+div.listingBar .next {
+    display: inline-block;
+    float: right;
+}
+
+div.listingBar .previous {
+    display: inline-block;
+}
+
+div.listingBar a {
+    display: inline-block;
+    padding: 0.25em 0.5em;
+    border: 0.1em solid #ccc;
+}
+
+div.listingBar a:hover {
+    color: White;
+    background-color: #329fd7;
+    border-color: #329fd7;
+}
+
+/* @end */
+
+/* @group Status messages */
+
+dl.portalMessage {
+    margin: 1em 0;
+    font-size: 80%;
+    border: 1px solid #996;
+    background-color: #ffffe3;
+    clear:both;
+}
+dl.portalMessage a,
+#content dl.portalMessage a {
+    color: black;
+    border-bottom: 1px solid #888;
+}
+dl.portalMessage dt {
+    background-color: #996;
+    font-weight: bold;
+    float: left;
+    margin: 0 0.5em 0 0;
+    padding: 0.5em 0.75em;
+    color: White;
+    line-height: 1.25em;
+}
+dl.portalMessage dd {
+    padding: 0.5em 0.5em;
+    margin: 0;
+    line-height: 1.25em;
+}
+dl.warning {
+    border-color: #d80;
+}
+dl.warning dt {
+    background-color: #d80;
+}
+dl.error {
+    border-color: #d00;
+}
+dl.error dt {
+    background-color: #d00;
+}
+dl.warning {
+    border-color: #d80;
+}
+dl.warning dd {
+    background-color: #fd7;
+}
+dl.error {
+    border-color: red;
+}
+dl.error dd {
+    background-color: #fdc;
+}
+
+/* Additional specificity for when status is shown inside #content */
+#content dl.portalMessage {
+    font-size: 100%;
+}
+#content dl.portalMessage dt {
+    margin: 0 0.5em 0 0;
+    padding: 0.5em 0.75em;
+}
+#content dl.portalMessage dd {
+    margin: 0;
+}
+
+/* @end */
+
+/* @group Editing */
+
+/* @group Tabs */
+
+/* Color differences between the two tab types */
+#content ul.formTabs {
+    background-color: #ddd;
+    border: 0.3em solid #ddd;
+}
+#edit-bar {
+    /*background-color: #75ad0a;
+    border: 0.25em solid #75ad0a;
+    */
+    font-size: 90%;
+    min-height: 2em;
+    margin-bottom: 1em;
+    padding-top: 0.05em;
+}
+
+#edit-bar ul, #edit-bar ol {
+    margin: 0;
+}
+
+#edit-bar dl {
+    margin-bottom: 0;
+}
+
+/*
+#content-views {
+    float: left;
+    background-color: #75ad0a;
+}
+*/
+/* fix shift on content views list under ie6 */
+/* .ie6 is set on <html> by Modernizr library */
+.ie6 ul#content-views{
+    margin: -2px -3px 0px -3px;
+}
+/*
+#content-views a {
+    color: White;
+}
+*/
+/* Shared CSS between the two tab types */
+#edit-bar,
+#content ul.formTabs,
+#content-core ul.formTabs {
+    display: block;
+    border-style: solid solid none solid;
+    margin-left: 0;
+    border-top-right-radius: 0.5em;
+    border-top-left-radius: 0.5em;
+    -webkit-border-top-right-radius: 0.5em;
+    -webkit-border-top-left-radius: 0.5em;
+    -moz-border-radius-topleft: 0.5em;
+    -moz-border-radius-topright: 0.5em;
+}
+#content li.formTab,
+#content-core li.formTab {
+    display: inline;
+    margin-right:0.25em;
+}
+#content-views a,
+#content li.formTab a,
+#content-core li.formTab a {
+    /* this isn't supported by all browsers, so we keep it in a separate rule */
+    display: inline-block;
+}
+#content-views a,
+#content li.formTab a,
+#content-core li.formTab a {
+    line-height: 2em;
+    padding: 0 0.75em;
+    text-decoration: none;
+    border: none;
+    margin: 0 ;
+}
+#content-views li.selected a,
+#content li.formTab a.selected,
+#content-core li.formTab a.selected {
+    font-weight: bold;
+}
+#content-views li.selected a,
+#content-views li a:hover,
+#content li.formTab a.selected,
+#content li.formTab a:hover,
+#content-core li.formTab a.selected,
+#content-core li.formTab a:hover {
+    background: White;
+    color: Black;
+    border-top-right-radius: 0.5em;
+    border-top-left-radius: 0.5em;
+    -webkit-border-top-right-radius: 0.5em;
+    -webkit-border-top-left-radius: 0.5em;
+    -moz-border-radius-topleft: 0.5em;
+    -moz-border-radius-topright: 0.5em;
+}
+#content li.formTab a.notify,
+#content-core li.formTab a.notify {
+    background-color: red;
+    color: White;
+}
+#content li.formTab a.required span:after,
+#content-core li.formTab a.required span:after,
+div.field span.required:after {
+    content: "■";
+    color: Red;
+    padding-left: 0.2em;
+}
+#content fieldset.formPanel,
+#content-core fieldset.formPanel {
+    border: none;
+}
+#content fieldset.formPanel.hidden,
+#content-core fieldset.formPanel.hidden {
+    display: none;
+}
+#content div.formControls input.hidden,
+#content-core div.formControls input.hidden {
+    display: none;
+}
+
+/* @end */
+
+/* @group Pulldown menus */
+
+/* @group Personal tools pulldown */
+#portal-personaltools dl {
+}
+#portal-personaltools dt {
+    font-weight: normal;
+}
+#portal-personaltools dt.actionMenuHeader a:after {
+    content: " ▼";
+}
+#portal-personaltools dd {
+    right: 0;
+    padding-top: 0.5em;
+}
+#portal-personaltools dd {
+    background: #e3e3e3;
+    padding-bottom: 0.5em;
+}
+#portal-personaltools dd a {
+    line-height: 2em;
+    padding: 0 0.75em;
+}
+#portal-personaltools dd a:hover {
+    background: #205c90;
+    color: White;
+}
+
+/* @end */
+
+/* @group Content pulldowns */
+#contentActionMenus > li {
+    margin-left: 2px;
+}
+
+#contentActionMenus li.actionMenu a,
+#contentActionMenus li.actionMenu.activated dd {
+    background-color: #75ad0a;
+    color: White;
+    z-index: 5;
+}
+#contentActionMenus li.actionMenu.activated dd {
+    border-bottom: 0.5em solid #75ad0a;
+        right: -3px;
+}
+#contentActionMenus li.actionMenu.activated dd a:hover,
+#contentActionMenus li.actionMenu.activated dd .actionMenuSelected {
+    background-color: White !important;
+    color: #666;
+}
+#contentActionMenus li.actionMenu {
+    line-height: 2em;
+}
+
+#folderHeader, #contextHeader {
+        border-bottom: 2px solid white;
+}
+
+.dropdown-menu .divider {
+    margin: 0 !important;
+    border-bottom: 0;
+}
+
+#contextHeader { margin-top: 5px; }
+
+
+/* @end */
+
+#contentActionMenus {
+    float: right;
+    background: #75ad0a;
+    margin: 0;
+    position: relative;
+    top: -0.23em;
+    right:-0.24em;
+    padding: 0.1em 0.24em 0 0;
+    border-radius: 0.5em;
+    border-top-left-radius: 0;
+    -webkit-border-radius: 0.5em;
+    -webkit-border-top-left-radius: 0;
+    -moz-border-radius: 0.5em;
+    -moz-border-radius-topleft: 0;
+}
+
+.actionMenuContent {
+    padding: 0 0.25em;
+}
+
+dl.actionMenu {
+    float: right;
+    white-space: nowrap;
+    position: relative;
+    margin-left: 0.5em;
+}
+dl.actionMenu a,
+dl.actionMenu div {
+    display: block !important;
+    white-space: nowrap;
+}
+dl.actionMenu dt {
+    font-weight: normal;
+}
+dl.actionMenu ul {
+    margin: 0;
+}
+.actionMenuContent li {
+    display: block;
+}
+
+span.arrowDownAlternative {
+    font-size: 80%;
+}
+dl.actionMenu.deactivated dt {
+    margin: 0 0.25em;
+}
+dl.actionMenu.deactivated dd {
+    display: none;
+}
+dl.actionMenu.activated dd {
+    position: absolute;
+    width: auto;
+    min-width: 100%;
+    border-bottom-right-radius: 0.5em;
+    border-bottom-left-radius: 0.5em;
+    -webkit-border-bottom-right-radius: 0.5em;
+    -webkit-border-bottom-left-radius: 0.5em;
+    -moz-border-radius-bottomleft: 0.5em;
+    -moz-border-radius-bottomright: 0.5em;
+}
+dl.actionMenu.activated dt a,
+dl.actionMenu.activated dd a,
+dl.actionMenu.activated dd div {
+    margin: 0 0.25em;
+}
+
+/* @end */
+
+/* @group Control panel */
+
+#setup-link {
+    font-size: 90%;
+}
+
+#content ul.configlets {
+    margin: 1em 0;
+    list-style-image: none;
+    list-style: none;
+}
+#content ul.configlets li {
+    margin-bottom: 1em;
+    list-style: none;
+    display: block;
+}
+#content ul.configlets li a {
+    text-decoration: none;
+    border: none;
+}
+#content ul.configlets li a:visited {
+    color: #436976;
+    background-color: transparent;
+}
+#content ul.configlets li a:active {
+    color: #436976;
+    background-color: transparent;
+}
+#content ul.configlets li label {
+    font-weight: bold;
+}
+#content ul.configletDetails {
+    margin: 0em 1em 1em 4em;
+    list-style-image: none;
+    list-style: none;
+}
+#content ul.configletDetails li {
+    margin-bottom: 1em;
+    display: inline;
+}
+#content ul.configletDetails li a {
+    text-decoration: none;
+}
+#content ul.configletDetails li label {
+    font-weight: bold;
+}
+#content ul.configletDetails li.configletDescription {
+    display: block;
+    color: #76797c;
+    margin: 0;
+}
+.inlineDisplay {
+    display:inline
+}
+table.controlpanel-listing {
+    width:100%;
+}
+table.controlpanel-listing td, table.controlpanel-listing th {
+    font-size:120%;
+}
+table.controlpanel-listing dl {
+    margin-top:0;
+}
+table.controlpanel-listing dd {
+    margin-left: 1em;
+}
+table.controlpanel-listing dl dt a .trigger{
+    font-weight:normal;
+}
+table .controlpanel-listing td {
+    vertical-align:top;
+}
+table.controlpanel-listing td.checker{
+    text-align:center;
+}
+table.controlpanel-listing th.smallcolumn {
+    width:1.5em;
+}
+.chooser-right {
+    float:right;
+    margin-right:0;
+    margin-bottom:0;
+}
+.rule-element {
+    background-color:#EEF3F5;
+    margin:0.5em 0pt 0.5em;
+    padding:0.3em 1em 0.3em 1em;
+    width:auto;
+}
+.rule-element dl {
+}
+.rule-element dl dd {
+    margin-left:1em;
+}
+.rule-updown, .rule-operations {
+    float:right;
+    padding-top:0.8em;
+}
+/* @end */
+
+/* @group Collapsible */
+dl.collapsible {
+    border: 0.1em solid #8cacbb;
+    margin: 1em 0;
+    padding: 0;
+}
+dl.collapsible dt.collapsibleHeader {
+    display: block;
+    float: left;
+    background: White;
+    line-height: 1.2em;
+    vertical-align: middle;
+    font-size: 90%;
+    position: relative;
+    top: -0.6em;
+    width: auto;
+    margin: 0 0 -0.6em 1em;
+    padding: 0 0.5em;
+}
+dl.collapsible dd.collapsibleContent {
+    margin: 0;
+    padding: 0 1em 0.4em;
+    clear: left;
+}
+
+/* for IE the following isn't needed, that's why the css2 selector is used */
+dl.collapsible dd.collapsibleContent > dl {
+    margin: 0;
+    padding: 0;
+}
+
+dl.expandedInlineCollapsible dt.collapsibleHeader,
+dl.expandedBlockCollapsible dt.collapsibleHeader {
+    padding: 0 0.5em 0 2em;
+    background: White url(treeExpanded.png) no-repeat 0.5em 50%;
+    cursor: pointer;
+}
+
+dl.collapsedBlockCollapsible {
+    border: none;
+    height: 1em;
+    width: auto;
+}
+dl.collapsedInlineCollapsible dt.collapsibleHeader,
+dl.collapsedBlockCollapsible dt.collapsibleHeader {
+    float: none;
+    position: relative;
+    margin: 0 0 0 1em;
+    padding: 0 0.5em 0 2em;
+    line-height: 1.2em;
+    cursor: pointer;
+    background: White url(treeCollapsed.png) no-repeat 0.5em 50%;
+}
+dl.collapsedInlineCollapsible dd.collapsibleContent,
+dl.collapsedBlockCollapsible dd.collapsibleContent {
+    display: none;
+}
+dl.collapsedInlineCollapsible {
+    border: none;
+    height: 1em;
+    width: auto;
+    display: inline;
+}
+dl.collapsedInlineCollapsible dt.collapsibleHeader {
+    position: static;
+    float: none;
+    margin: 0;
+    padding: 0 0 0 2em;
+    line-height: 1em;
+    cursor: pointer;
+    display: inline;
+}
+
+/* @end */
+
+/* @group Comments */
+
+.comment {
+    margin-top: 1.5em;
+    font-size: 80%;
+}
+
+.comment .documentByLine {
+    margin-left: 1em;
+}
+
+.comment .formControls {
+    margin-left: 0;
+}
+
+.commentTime {
+    color: #666;
+}
+
+.commentBody {
+    padding: 1em;
+    margin: 0.5em 0;
+    border-radius: 0.5em;
+    -webkit-border-radius: 0.5em;
+    -moz-border-radius: 0.5em;
+    box-shadow: 0 0 1em 0 #888;
+    -moz-box-shadow: 0 0 0.5em 0 #888;
+    -webkit-box-shadow: 0 0 0.5em #888;
+}
+
+.comment h1,
+.comment h2,
+.comment h3,
+.comment h4,
+.comment h5,
+.comment h6 {
+    font-weight: normal;
+}
+
+/* @end */
+
+.reviewHistory,
+.contentHistory {
+    display: inline;
+    color: Black;
+}
+.spacer {
+    margin: 1em;
+}
+
+.label {
+    font-weight: bold;
+    display: inline;
+}
+.optionsToggle {
+    border: 0.1em solid #8cacbb;
+    color: Black;
+    background-color: #dee7ec;
+    font-weight: normal;
+    font-size: 90%;
+}
+
+/* for highlighting of search terms */
+.highlightedSearchTerm {
+   background-color: #ffa;
+}
+dl.searchResults .highlightedSearchTerm {
+    background-color: transparent;
+    font-weight: bold;
+}
+/* for greying out inherited roles */
+.noInheritedRoles {
+    color: #a0a0a0;
+}
+/* for highlighting current items, like the language or today in the calendar */
+.currentItem {
+    border-collapse: collapse;
+    border: 0.2em solid #ffa500;
+    padding: 0.1em;
+}
+
+
+/* @end */
+
+/* @group Search results page */
+
+fieldset#search-field {
+    border: none !important;
+    text-align: center;
+}
+input.searchPage {
+    font-size:200% !important;
+}
+#rss-subscription {
+    float: left;
+    line-height: 3em;
+}
+#search-results-bar .actionMenuContent {
+    margin-top: 1em;
+    padding: 0;
+}
+#search-filter {
+    background: #ddd;
+    margin: 0;
+    padding: 0;
+}
+#content #search-filter fieldset {
+    border: none !important;
+    position: relative;
+    padding: 0;
+    margin: 0;
+}
+#content #search-filter legend {
+    background: transparent;
+    font-size: 1.1em;
+    padding: 0.5em 0.9em;
+    font-weight: bold;
+}
+#search-filter .field {
+    background: #eee;
+    padding: 1em 1.5em;
+    margin: 0;
+}
+#search-filter .field label {
+    font-weight: normal;
+}
+#search-filter .formControls {
+    text-align:center
+}
+#search-results-wrapper {
+    margin-top: 1em;
+}
+form.searchPage h1.documentFirstHeading {
+    font-weight:normal;
+    letter-spacing:0;
+    float: left;
+    margin-right: 0.8em;
+}
+form.searchPage h1.documentFirstHeading .highlightedSearchTerm {
+    background: transparent !important;
+}
+#search-results-bar > * {
+    float: left;
+}
+#searchResultsSort{
+    float:right;
+}
+#search-results-bar {
+    position: relative;
+    z-index: 1;
+    float: left;
+    width: 100%;
+    border-top: 1px solid #DDD;
+    border-bottom: 1px solid #DDD;
+    padding: 1em 0;
+}
+#search-results-bar dl.actionMenu {
+    margin-bottom: 0;
+}
+#search-results-bar dd.actionMenuContent {
+    margin-left: 0;
+    padding-left: 0;
+}
+#search-results-bar dt.actionMenuHeader a {
+    border-bottom: none;
+}
+#search-results-bar dt.actionMenuHeader a::after {
+    content: " ▼";
+}
+#search-results {
+    padding: 1em;
+}
+.searchResults {
+    margin-top: 0;
+}
+#ajax-search-res {
+    display: none;
+}
+
+/* @end */
+
+
+/* @group Image alignment classes */
+
+.image-left {
+   float: left;
+   margin: 0.5em 1em 0.5em 0;
+}
+.image-right {
+   float: right;
+   margin: 0.5em;
+}
+.image-inline {
+   float: none;
+}
+/*note: the tricky thing here is that image-inline|image-left|image-right
+can both be on an image and a wrapper element e.g. a dl tag*/
+img.image-left,
+img.image-right,
+.captioned img {
+    border: 1px solid #ddd;
+}
+dd.image-caption {
+    text-align: left;
+    padding: 0 0 0 3px; /*image padding+border with*/
+    margin: 0;
+    color: #666;
+    font-size: 85%;
+}
+
+/* @end */
+
+
+/* @group Dashboard */
+
+#dashboard-actions ul,
+#dashboard-actions ul li {
+    list-style: none;
+}
+#dashboard-actions ul {
+    margin-left: 0;
+}
+
+#dashboard {
+    font-size: 125%;
+    line-height: 1em;
+}
+
+#dashboard dd {
+    margin: 0;
+}
+
+
+#dashboard dl.portlet a:link {
+    border-bottom: none;
+}
+
+#dashboard-portlets1,
+#dashboard-portlets2,
+#dashboard-portlets3 {
+    float:left;
+    width:23%;
+    padding:0.7em 1.3em 0 0;
+}
+
+#dashboard-portlets4 {
+    float:left;
+    width:23%;
+    padding-top:0.7em;
+}
+
+#dashboard-portlets1 dl.portlet,
+#dashboard-portlets2 dl.portlet,
+#dashboard-portlets3 dl.portlet,
+#dashboard-portlets4 dl.portlet {
+    margin-bottom:1.5em;
+}
+
+/* @end */
+
+/* @group Forms */
+
+fieldset,
+.editionComment {
+    line-height:1.5em;
+    margin:1em 0;
+    padding:0 1em 1em;
+    width:auto;
+}
+
+/* Emulates the styling from the h1 tag */
+#content .field input[type="text"][name$=".title"],
+#archetypes-fieldname-title input {
+    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+    line-height: 40px;
+    height: 40px;
+    color: Black;
+    letter-spacing: -0.05em;
+    margin: inherit -0.05em;
+    font-size: 38.5px; /* 26px equiv */
+    font-weight: bold;
+}
+
+/* Emulates styling from the description's view */
+#content .field textarea[name$=".description"],
+#archetypes-fieldname-description textarea#description {
+    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+    color:#666666;
+    font-size:1.25em;
+    font-weight: bold;
+}
+
+
+form.enableFormTabbing li {
+    margin-bottom: 0 !important;
+    list-style: none !important;
+}
+
+form.enableFormTabbing ul.nav {
+    margin-left: 0 !important;
+}
+
+div.formControls {
+    margin: 1em;
+}
+input[type="text"]:focus,
+input[type="password"]:focus,
+textarea:focus {
+    background-color: #ffffe0;
+}
+
+#content textarea {
+    font: 100% Monaco, "Courier New", Courier, monospace;
+    width: 100%;
+}
+#content select {
+    vertical-align: top;
+}
+#content fieldset {
+    border: 0.1em solid #329fd7;
+    border-style: solid none none none;
+}
+#content legend {
+    padding: 0.5em;
+    font-size: 85%;
+}
+label {
+    font-weight:bold;
+}
+
+#content label {
+}
+
+#content optgroup {
+    font-style: normal;
+    font-weight: bold;
+    color: #999;
+    padding-left: 0.25em;
+}
+#content option {
+    color: black;
+}
+#content optgroup > option {
+    padding: 0 0.25em 0 1em;
+}
+dl.enableFormTabbing dd {
+    margin-left: 0;
+    padding-top: 2em;
+}
+.searchSection {
+    color: #76797c;
+    margin-top: 0.25em;
+}
+.searchSection label:hover {
+    color: Black;
+}
+.field {
+    clear: both;
+    margin-bottom: 1em;
+}
+.field input[type="text"] {
+   width: 20em;
+}
+.field input[type="text"][size] {
+   width: auto;
+}
+.field input[type="text"][name$=".title"],
+input#title {
+    width: 100%;
+}
+.field.error input[type="text"][name$=".title"],
+.error input#title {
+    width: 99%;
+}
+
+.fieldRequired {
+    background: url(required.png) center left no-repeat;
+    padding: 0 0 0 1em;
+    color: White;
+}
+.fieldUploadFile {
+    text-align: right;
+    margin-right: 0.75em;
+    display: none;
+}
+.fieldTextFormat {
+    text-align: right;
+    margin-right: 0.75em
+}
+.formHelp {
+    color: #555;
+    margin: 0 0 0.2em 0;
+    display: block;
+    font-weight: normal;
+}
+div.field.error {
+    background-color: #fdc;
+    border:  1px solid red;
+    padding: 0.5em;
+    margin:  1em 0;
+}
+.error .fieldRequired {
+    color: #d00;
+}
+div.error.warning {
+    background-color: transparent;
+    border: none;
+    margin-top: 0;
+    padding: 0;
+}
+
+div.error.warning input {
+    border: 2px solid red;
+}
+
+input.inputLabelActive {
+    color: #76797c;
+}
+textarea#form\.description {
+    height: 6em;
+    width: 99%;
+}
+table.listing tbody tr.odd.selected td,
+table.listing tbody tr.odd.dragging td,
+tr.dragging,
+tr.selected {
+    background-color: #ffa;
+}
+table.listing tbody tr.odd.error td,
+tr.error {
+    background-color: #fdc;
+}
+.multi-widget-field {
+    padding-left: 0.5em;
+    border-left: 1.5em solid #DDD;
+}
+
+.multi-widget-checkbox {
+    margin-left: -2em;
+    margin-right: 0.5em;
+    width: 1.5em;
+    display: inline-block;
+}
+
+/* @group Login form */
+
+body.template-logged_out #content,
+body.template-login_form #content,
+.pb-ajax #login-form {
+    text-align: center;
+}
+
+#fieldset-openid-login input, #login-form input {
+    font-size: 150%;
+}
+
+
+body.template-register #content input,
+body.template-new-user #content input {
+    font-size: 150%;
+    width: inherit;
+
+}
+
+#fieldset-openid-login label, #login-form label {
+    margin-right:0.5em;
+    padding-top:0.2em;
+    text-align:right;
+    width: 10em;
+    display: inline-block;
+}
+
+#fieldset-openid-login .formControls input, #login-form .formControls input {
+margin-left: 0.25em;
+}
+
+/* @end */
+
+/* @end */
+
+/* @group Table of Contents */
+
+ /*Table of Contents styling - essentially a portlet with smaller fonts and aligned right + limited in width*/
+
+dl.toc {
+    float: right;
+    width: 35%;
+    font-size: 100%;
+    margin: 1em 0 0.5em 1.5em;
+}
+dl.toc dt {
+    margin-left: 1em;
+    font-weight: normal;
+    text-transform: uppercase;
+}
+dl.toc dd {
+    margin-bottom: 0;
+    padding-left: 2em;
+}
+dl.toc dd ol {
+    margin-left: 1.5em;
+}
+
+/* @end */
+
+/* @group Footer */
+
+#portal-footer {
+    font-size: 75%;
+    background: #ddd;
+    padding: 1em;
+    margin: 1em 0;
+    line-height: 2em;
+}
+
+#portal-colophon {
+    font-size: 70%;
+    text-align: center;
+    margin-bottom: 1em;
+}
+
+#portal-colophon li {
+    padding:0 0.75em;
+}
+
+#portal-colophon a {
+    color: #444;
+}
+
+/* @end */
+
+/* @group Sitemap */
+
+#portal-sitemap {
+    list-style: none;
+    margin-left: 0;
+    font-size: 130%;
+    font-weight: bold;
+}
+
+#portal-sitemap li {
+    list-style: none;
+    margin-left: 0;
+}
+
+#portal-sitemap a {
+    border-bottom: none;
+    display: block;
+}
+
+#portal-sitemap > li {
+    border-bottom:0.1em dotted #ddd;
+    line-height:1.8em;
+    padding:0.25em 1em;
+    margin-bottom: 0;
+}
+
+#portal-sitemap .navTreeLevel2,
+#portal-sitemap .navTreeLevel2 ul {
+    font-size: 85%;
+    font-weight: normal;
+    margin-bottom: 0;
+    padding: 0.25em 0;
+}
+
+/* @end */
+
+/* @group Album view classes */
+.photoAlbumEntry {
+    float: left;
+    position:relative;
+    overflow: hidden;
+    height: 185px;
+    width: 143px;
+    margin: 0em;
+    padding: 0px 6px 0px 9px;
+    text-align: center;
+    background-image: url('polaroid-single.png');
+    background-repeat: no-repeat;
+}
+.photoAlbumEntry img {
+    border: 1px solid #ccc;
+    display: block;
+    margin: 0 auto;
+}
+.photoAlbumEntryWrapper {
+    /*display: block;*/
+    height: 130px;
+    width: 128px;
+    margin-bottom: 7px;
+}
+.photoAlbumEntry a {
+    display: block;
+    text-decoration: none;
+    font-size: 90%;
+    height: 169px;
+    width: 130px;
+    margin: 16px auto 0px;
+}
+.photoAlbumFolder {
+    background-image: url('polaroid-multi.png');
+    background-repeat: no-repeat;
+}
+.photoAlbumEntryTitle {
+    color: #76797c;
+    display: block;
+    width: 128px;
+    height: 3.6em;
+}
+
+/* @end */
+
+/* @group Invisibles */
+
+.hiddenStructure {
+    display: block;
+    background: transparent;
+    background-image: none; /* safari bug */
+    border: none;
+    height: 0.1em;
+    overflow: hidden;
+    padding: 0;
+    margin: -0.1em 0 0 -0.1em;
+    width: 1px;
+}
+/* ensures hidden elements don't take up space */
+/* .ie6 is set on <html> by Modernizr library */
+.ie6 .hiddenStructure,
+.ie7 .hiddenStructure {
+    position: absolute;
+}
+
+#content .visualNoMarker {
+    list-style:none;
+    margin-left: 0;
+}
+
+.visualClear {
+    clear: both;
+}
+
+/* @end */
+
+/* @group Accessibility elements, applied by JS */
+
+body.largeText { font-size: 125%; }
+body.smallText { font-size: 85%; }
+
+/* @end */
+
+/* @group Overlay windows */
+
+/* styling for overlays (popups) */
+
+div.overlay {
+    width: auto;
+    height: auto;
+    /* initially overlay is hidden */
+    display: none;
+    /* some padding to layout nested elements nicely  */
+    margin: 1em;
+    font-size: 80%;
+}
+
+div.overlay-iframe,
+div.overlay-ajax {
+    width: 60%;
+    min-height: 100px;
+    z-index: 99; /* overlays should be above everything */
+}
+
+div.overlay-iframe {
+    height: 60%;
+}
+
+/* default close button positioned on upper-left corner */
+div.overlaybg div.close,
+div.overlay div.close {
+    background-image: url(pb_close.png);
+    position: absolute;
+    left: -14px;
+    top: -14px;
+    cursor: pointer;
+    height: 30px;
+    width: 30px;
+}
+
+.pb-ajax {
+    overflow-y: auto;
+}
+
+.pb-ajax, .pb-image, .overlay iframe {
+    background-color: #fff;
+    border: 1px solid #999;
+    white-space: normal;
+    box-shadow: 0 0 3em 0.5em #666;
+    -moz-box-shadow: 0 0 3em 0.5em #666;
+    -webkit-box-shadow: 0 0 3em #666;
+}
+
+.pb-ajax > div {
+    width: 92%;
+    padding: 1em;
+}
+
+.pb-ajax .documentActions {display:none}
+
+div.overlay div.close span {
+    display: block;
+    height: 1px;
+    margin: -1px 0 0 -1px;
+    overflow: hidden;
+    padding: 0;
+    width: 1px;
+}
+
+div.overlay textarea { width: 100%; }
+
+/* Hide form elements that don't make sense within an overlay. */
+div.overlay .link-parent { display: none; }
+div.overlay #createGroup legend { display: none; }
+div.overlay #createGroup fieldset { border: none; }
+
+/* lets play nice with paragraphs, links, tabbed pages in overlay e.g. when plone.openid is installed */
+div.overlay p {
+    margin-bottom: 1em;
+}
+div.overlay label {
+    margin-bottom: 0.25em;
+}
+div.overlay a:hover {
+    color: #75ad0a;
+}
+div.overlay a:hover label{
+    cursor: pointer;
+}
+div.overlay a.selected {
+    color: #000000;
+}
+div.overlay .formTab {
+    margin-right:1em;
+    font-weight: bold;
+}
+div.overlay .formTab.lastFormTab {
+    margin-right:0em;
+}
+div.overlay .formControls a {
+    display: block;
+    margin: 0.75em;
+}
+
+/* @end */
+
+/* @group Content History */
+
+#history dd {
+}
+
+div.historyRecord {
+    margin-bottom: 1em;
+}
+
+
+div.historyTools ul {
+    float: right;
+    margin: 2px 1em;
+}
+
+div.historyTools ul li {
+    display: inline;
+    padding: 0 0.015em;
+}
+
+div.historyTools ul li a{
+    border-bottom: none;
+}
+
+div.historyTools form {
+    display: inline;
+}
+
+.historyAction {
+
+}
+
+.historyByLine {
+    background: #ddd;
+    padding: 0.5em;
+    border-top-right-radius: 0.5em;
+    border-top-left-radius: 0.5em;
+    -webkit-border-top-right-radius: 0.5em;
+    -webkit-border-top-left-radius: 0.5em;
+    -moz-border-radius-topleft: 0.5em;
+    -moz-border-radius-topright: 0.5em;
+}
+
+div.historyLinks {
+    float: right;
+    clear: right;
+    margin: 0.5em 1em 0 0;
+}
+
+
+div.historyComment {
+    padding: 0.5em 1em;
+    border: 1px solid #ddd;
+}
+
+div.historyComment p {
+    margin: 0;
+    padding-top: 1px;
+}
+
+a.historyComparePrevious {
+    border-top: 1px dotted #ccc;
+    display: block;
+    margin-top: 1.5em;
+    margin-bottom: -0.5em;
+    text-align: center;
+}
+
+a.historyComparePrevious span {
+    background-color: white;
+    position: relative;
+    top: -0.75em;
+    padding: 0 0.5em;
+}
+
+/* @end */
+
+/* @group Core content type sprites */
+
+/* Generated using http://spritegen.website-performance.org, with the following
+   parameters:
+   - Build direction: Vertical
+   - Horizontal offset: (doesn't matter, but can't be 0)
+   - Vertical offset: 200px
+   - Compress image with OptiPNG: yes
+   - Class prefix: contenttype-
+   - Display width and height: no
+  Then, add 4 px to the background-position to line up the icons to text.
+
+.contenttype-document_icon { background-position: 0 0;  }
+.contenttype-event_icon { background-position: 0 -216px;  }
+.contenttype-file_icon { background-position: 0 -432px;  }
+.contenttype-folder_icon { background-position: 0 -648px;  }
+.contenttype-image_icon { background-position: 0 -864px;  }
+.contenttype-link_icon { background-position: 0 -1080px;  }
+.contenttype-newsitem_icon { background-position: 0 -1296px;  }
+.contenttype-site_icon { background-position: 0 -1512px;  }
+.contenttype-topic_icon { background-position: 0 -1728px;  }
+
+*/
+
+.icons-on .contenttype-document {
+    background: no-repeat transparent 0px 4px url(contenttypes-sprite.png) ;
+}
+
+.icons-on .contenttype-event {
+    background: no-repeat transparent 0px -212px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-folder {
+    background: no-repeat transparent 0px -644px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-link {
+    background: no-repeat transparent 0px -1076px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-news-item {
+    background: no-repeat transparent 0px -1292px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-plone-site {
+    background: no-repeat transparent 0px -1508px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-collection {
+    background: no-repeat transparent 0px -1724px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-topic {
+    background: no-repeat transparent 0px -1724px url(contenttypes-sprite.png);
+}
+
+/* These should only appear in the add menu */
+.icons-on .contenttype-file {
+    background: no-repeat transparent 0px -428px url(contenttypes-sprite.png);
+}
+.icons-on .contenttype-image {
+    background: no-repeat transparent 0px -860px url(contenttypes-sprite.png);
+}
+
+
+.icons-on .contenttype-document,
+.icons-on .contenttype-event,
+.icons-on .contenttype-folder,
+.icons-on .contenttype-link,
+.icons-on .contenttype-news-item,
+.icons-on .contenttype-plone-site,
+.icons-on .contenttype-collection,
+.icons-on .contenttype-topic,
+.icons-on .contenttype-file,
+.icons-on .contenttype-image {
+    line-height: 2em;
+    /*display: inline-block;
+    *display: block;*/
+    padding-left: 20px !important;
+}
+
+.icons-on #plone-contentmenu-factories .contenttype-document,
+.icons-on #plone-contentmenu-factories .contenttype-event,
+.icons-on #plone-contentmenu-factories .contenttype-folder,
+.icons-on #plone-contentmenu-factories .contenttype-link,
+.icons-on #plone-contentmenu-factories .contenttype-news-item,
+.icons-on #plone-contentmenu-factories .contenttype-plone-site,
+.icons-on #plone-contentmenu-factories .contenttype-collection,
+.icons-on #plone-contentmenu-factories .contenttype-topic,
+.icons-on #plone-contentmenu-factories .contenttype-file,
+.icons-on #plone-contentmenu-factories .contenttype-image {
+    margin:3px 20px;
+    padding:0px 20px !important;
+}
+
+
+
+/* @end */
+
+/* @group jQuery Tag multiple selector */
+.optionsBox {
+    overflow-y: auto;
+    border: solid 1px #999999;
+    background: #FFFFFF;
+    height: 14em;
+    width: 100%;
+}
+/* IE7: fixes super-wide div for JavaScript Tag selector */
+/* .ie7 is set on <html> by Modernizr library */
+.ie7 div.optionsBox {
+    width: 50%;
+}
+.optionsBox LABEL {
+    padding: 2px 0 0 0;
+    display: block;
+    line-height: 1em;
+    font-weight: normal;
+}
+.optionsBox input{
+    vertical-align: middle;
+    margin: 1px 4px 4px 6px;
+}
+/* IE7: fixes super-wide div for JavaScript Tag selector */
+/* .ie7 is set on <html> by Modernizr library */
+.ie7 .optionsBox input {
+    margin: 0px;
+}
+.optionsBox LABEL.checked {
+    background-color: #EEEEEE;
+}
+.optionsBox LABEL.hover {
+    background-color: #777777;
+    color: #FFFFFF;
+}
+#archetypes-fieldname-subject .formHelp {
+    font-weight: normal;
+}
+#existingTagsSection {
+    position: relative;
+    margin-left: 3em;
+}
+#existingTags {
+    float: left;
+    width: 50%;
+}
+#content #existingTags dd {
+    margin-bottom: 1px;
+    margin-left: 0;
+}
+#content #selectedTags, #content #newTags {
+    margin-bottom: 0;
+    margin-left: 0;
+}
+#content #selectedTagsSection {
+    margin-left: 3em;
+    float: left;
+    width: 43%;
+    margin-bottom: 0;
+}
+#newTagsSection {
+    width: 48%;
+    margin-left: 3em;
+}
+#content p.selectedTag {
+    margin-bottom: .4em;
+}
+#existingTagsTitle, #newTagsTitle {
+    float: left;
+}
+#existingTagsHelp, #newTagsHelp {
+    float: right;
+}
+#noTagsSelected, #oneOrMoreTagsSelected {
+    display: none;
+}
+/* @end */
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/tests.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/tests.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/tests.py	(revision 10084)
@@ -0,0 +1,55 @@
+import unittest
+
+#from zope.testing import doctestunit
+#from zope.component import testing
+from Testing import ZopeTestCase as ztc
+
+from Products.Five import fiveconfigure
+from Products.PloneTestCase import PloneTestCase as ptc
+from Products.PloneTestCase.layer import PloneSite
+ptc.setupPloneSite()
+
+import waeup.plonetheme.ngren3
+
+
+class TestCase(ptc.PloneTestCase):
+
+    class layer(PloneSite):
+
+        @classmethod
+        def setUp(cls):
+            fiveconfigure.debug_mode = True
+            ztc.installPackage(waeup.plonetheme.ngren3)
+            fiveconfigure.debug_mode = False
+
+        @classmethod
+        def tearDown(cls):
+            pass
+
+
+def test_suite():
+    return unittest.TestSuite([
+
+        # Unit tests
+        #doctestunit.DocFileSuite(
+        #    'README.txt', package='waeup.plonetheme.ngren3',
+        #    setUp=testing.setUp, tearDown=testing.tearDown),
+
+        #doctestunit.DocTestSuite(
+        #    module='waeup.plonetheme.ngren3.mymodule',
+        #    setUp=testing.setUp, tearDown=testing.tearDown),
+
+
+        # Integration tests that use PloneTestCase
+        #ztc.ZopeDocFileSuite(
+        #    'README.txt', package='waeup.plonetheme.ngren3',
+        #    test_class=TestCase),
+
+        #ztc.FunctionalDocFileSuite(
+        #    'browser.txt', package='waeup.plonetheme.ngren3',
+        #    test_class=TestCase),
+
+        ])
+
+if __name__ == '__main__':
+    unittest.main(defaultTest='test_suite')
Index: /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/upgrades.py
===================================================================
--- /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/upgrades.py	(revision 10084)
+++ /main/waeup.plonetheme.ngren3/trunk/waeup/plonetheme/ngren3/upgrades.py	(revision 10084)
@@ -0,0 +1,16 @@
+from Products.CMFCore.utils import getToolByName
+
+import logging
+
+PROFILE_ID = 'profile-waeup.plonetheme.ngren3:default'
+
+
+def common(context, logger=None):
+    if logger is None:
+        # Called as upgrade step: define our own logger.
+        logger = logging.getLogger('waeup.plonetheme.ngren3')
+
+    setup = getToolByName(context, 'portal_setup')
+    setup.runAllImportStepsFromProfile(PROFILE_ID)
+
+    logger.info("Migrated from previous version")
