Commits

Nuno Maltez committed b7403f0

Initial version

  • Participants

Comments (0)

Files changed (649)

+syntax: regexp
+^gaebar/backups
+
+syntax: glob
+.svn
+*.pyc
+*~
+.DS_Store
+b14b50ac481de2a14c34c12b25f9603711484158 BETA1
+            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.

File README-WalkOn

+Copyright 2010 Cognitiva Lda.
+http://www.cognitiva.com
+info@cognitiva.com
+
+Thanks for downloading Walkon.
+
+Walkon is a Django application running on AppEngine to track sports and walking within a 
+group of friends. To fully enjoy the challenge you should wear a pedometer and have everyone 
+track their steps each day.
+
+
+INSTALL
+#######
+
+Walkon is a Google App Engine application.
+
+1) Change your application ID in app.yaml and upload the Walkon app to appspot.
+
+
+2) Edit settings.py
+
+a)change the ADMINS setting to the name and email of a developer
+of your appspot account. e.g.:
+
+ADMINS = (
+   ('PL', 'pedro.lima@gmail.com'),
+)
+
+b) Edit DOMAIN_URL according to your application's URL.
+
+
+3) Access the following url from your browser: 
+
+http://YOUR_ID.appspot.com/init/
+
+to initialize the datastore
+
+
+4) Now access the application and register a new user.
+
+
+5) Go to appengine.google.com and navigate to your application settings. 
+Under "Datastore View" select "Users" and edit the user created on the previous step. 
+Set "superuser" and "staff" to True and save your changes.
+
+
+6) Login to Walkon, and click on the "Admin" link
+
+a) set your global configuration:
+
+- email address (required)
+- google maps key for your domain (if you want to use the maps)
+
+b) define your Goal.
+
+
+7) in the admin settings select a theme (optional).
+
+
+
+Bugs and Feature Requests
+#########################
+
+Please use the Bitbucket issue tracker to submit bugs and feature requests. 
+
+
+

File __init__.py

Empty file added.

File _generated_media/1/admin_media/css/base.css

+@import "null.css?\"\{";@import url("/media/1/admin_media/css/global.css");@import url("/media/1/admin_media/css/layout.css");/*\*/ @import "patch-iewin.css";/**/

File _generated_media/1/admin_media/css/changelists.css

+@import url("/media/1/admin_media/css/base.css");#changelist{position:relative;width:100%;}#changelist table{width:100%;}.change-list .filtered table{border-right:1px solid #ddd;}.change-list .filtered{min-height:400px;}.change-list .filtered{background:white url("/media/1/admin_media/img/admin/changelist-bg.gif") top right repeat-y!important;}.change-list .filtered table,.change-list .filtered .paginator,.filtered #toolbar,.filtered div.xfull{margin-right:160px!important;width:auto!important;}.change-list .filtered table tbody th{padding-right:1em;}#changelist .toplinks{border-bottom:1px solid #ccc!important;}#changelist .paginator{color:#666;border-top:1px solid #eee;border-bottom:1px solid #eee;background:white url("/media/1/admin_media/img/admin/nav-bg.gif") 0 180% repeat-x;overflow:hidden;}.change-list .filtered .paginator{border-right:1px solid #ddd;}#changelist table thead th{white-space:nowrap;}#changelist table tbody td{border-left:1px solid #ddd;}#changelist table tfoot{color:#666;}#changelist #toolbar{padding:3px;border-bottom:1px solid #ddd;background:#e1e1e1 url("/media/1/admin_media/img/admin/nav-bg.gif") top left repeat-x;color:#666;}#changelist #toolbar form input{font-size:11px;padding:1px 2px;}#changelist #toolbar form #searchbar{padding:2px;}#changelist #changelist-search img{vertical-align:middle;}#changelist-filter{position:absolute;top:0;right:0;z-index:1000;width:160px;border-left:1px solid #ddd;background:#efefef;margin:0;}#changelist-filter h2{font-size:11px;padding:2px 5px;border-bottom:1px solid #ddd;}#changelist-filter h3{font-size:12px;margin-bottom:0;}#changelist-filter ul{padding-left:0;margin-left:10px;}#changelist-filter li{list-style-type:none;margin-left:0;padding-left:0;}#changelist-filter a{color:#999;}#changelist-filter a:hover{color:#036;}#changelist-filter li.selected{border-left:5px solid #ccc;padding-left:5px;margin-left:-10px;}#changelist-filter li.selected a{color:#5b80b2!important;}.change-list ul.toplinks{display:block;background:white url("/media/1/admin_media/img/admin/nav-bg-reverse.gif") 0 -10px repeat-x;border-top:1px solid white;float:left;padding:0!important;margin:0!important;width:100%;}.change-list ul.toplinks li{float:left;width:9em;padding:3px 6px;font-weight:bold;list-style-type:none;}.change-list ul.toplinks .date-back a{color:#999;}.change-list ul.toplinks .date-back a:hover{color:#036;}.paginator{font-size:11px;padding-top:10px;padding-bottom:10px;line-height:22px;margin:0;border-top:1px solid #ddd;}.paginator a:link,.paginator a:visited{padding:2px 6px;border:solid 1px #ccc;background:white;text-decoration:none;}.paginator a.showall{padding:0!important;border:none!important;}.paginator a.showall:hover{color:#036!important;background:transparent!important;}.paginator .end{border-width:2px!important;margin-right:6px;}.paginator .this-page{padding:2px 6px;font-weight:bold;font-size:13px;vertical-align:top;}.paginator a:hover{color:white;background:#5b80b2;border-color:#036;}

File _generated_media/1/admin_media/css/dashboard.css

+@import url("/media/1/admin_media/css/base.css");.dashboard .module table th{width:100%;}.dashboard .module table td{white-space:nowrap;}.dashboard .module table td a{display:block;padding-right:.6em;}.module ul.actionlist{margin-left:0;}ul.actionlist li{list-style-type:none;}

File _generated_media/1/admin_media/css/forms.css

+@import url("/media/1/admin_media/css/base.css");@import url("/media/1/admin_media/css/widgets.css");.form-row{overflow:hidden;padding:8px 12px;font-size:11px;border-bottom:1px solid #eee;}.form-row img,.form-row input{vertical-align:middle;}form .form-row p{padding-left:0;font-size:11px;}form h4{margin:0!important;padding:0!important;border:none!important;}label{font-weight:normal!important;color:#666;font-size:12px;}.required label,label.required{font-weight:bold!important;color:#333!important;}form ul.radiolist li{list-style-type:none;}form ul.radiolist label{float:none;display:inline;}form ul.inline{margin-left:0;padding:0;}form ul.inline li{float:left;padding-right:7px;}.aligned label{display:block;padding:3px 10px 0 0;float:left;width:8em;}.colMS .aligned .vLargeTextField,.colMS .aligned .vXMLLargeTextField{width:350px;}form .aligned p,form .aligned ul{margin-left:7em;padding-left:30px;}form .aligned table p{margin-left:0;padding-left:0;}form .aligned p.help{padding-left:38px;}.aligned .vCheckboxLabel{float:none!important;display:inline;padding-left:4px;}.colM .aligned .vLargeTextField,.colM .aligned .vXMLLargeTextField{width:610px;}.checkbox-row p.help{margin-left:0;padding-left:0!important;}fieldset .field-box{float:left;margin-right:20px;}.wide label{width:15em!important;}form .wide p{margin-left:15em;}form .wide p.help{padding-left:38px;}.colM fieldset.wide .vLargeTextField,.colM fieldset.wide .vXMLLargeTextField{width:450px;}fieldset.collapsed *{display:none;}fieldset.collapsed h2,fieldset.collapsed{display:block!important;}fieldset.collapsed h2{background-image:url("/media/1/admin_media/img/admin/nav-bg.gif");background-position:bottom left;color:#999;}fieldset.collapsed .collapse-toggle{padding:3px 5px!important;background:transparent;display:inline!important;}fieldset.monospace textarea{font-family:"Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace;}.submit-row{padding:5px 7px;text-align:right;background:white url("/media/1/admin_media/img/admin/nav-bg.gif") 0 100% repeat-x;border:1px solid #ccc;margin:5px 0;overflow:hidden;}.submit-row input{margin:0 0 0 5px;}.submit-row p{margin:.3em;}.submit-row p.deletelink-box{float:left;}.submit-row .deletelink{background:url("/media/1/admin_media/img/admin/icon_deletelink.gif") 0 50% no-repeat;padding-left:14px;}.vSelectMultipleField{vertical-align:top!important;}.vCheckboxField{border:none;}.vDateField,.vTimeField{margin-right:2px;}.vURLField{width:30em;}.vLargeTextField,.vXMLLargeTextField{width:48em;}.flatpages-flatpage #id_content{height:40.2em;}.module table .vPositiveSmallIntegerField{width:2.2em;}.vTextField{width:20em;}.vIntegerField{width:5em;}.vForeignKeyRawIdAdminField{width:5em;}.inline-group{padding:0;border:1px solid #ccc;margin:10px 0;}.inline-group .aligned label{width:8em;}.inline-related{position:relative;}.inline-related h3{margin:0;color:#666;padding:3px 5px;font-size:11px;background:#e1e1e1 url("/media/1/admin_media/img/admin/nav-bg.gif") top left repeat-x;border-bottom:1px solid #ddd;}.inline-related h3 span.delete{padding-left:20px;position:absolute;top:2px;right:10px;}.inline-related h3 span.delete label{margin-left:2px;font-size:11px;}.inline-related fieldset{margin:0;background:#fff;border:none;}.inline-related fieldset.module h3{margin:0;padding:2px 5px 3px 5px;font-size:11px;text-align:left;font-weight:bold;background:#bcd;color:#fff;}.inline-related.tabular fieldset.module table{width:100%;}.last-related fieldset{border:none;}.inline-group .tabular tr.has_original td{padding-top:2em;}.inline-group .tabular tr td.original{padding:2px 0 0 0;width:0;_position:relative;}.inline-group .tabular th.original{width:0;padding:0;}.inline-group .tabular td.original p{position:absolute;left:0;height:1.1em;padding:2px 7px;overflow:hidden;font-size:9px;font-weight:bold;color:#666;_width:700px;}.inline-group ul.tools{padding:0;margin:0;list-style:none;}.inline-group ul.tools li{display:inline;padding:0 5px;}.inline-group ul.tools a.add{background:url("/media/1/admin_media/img/admin/icon_addlink.gif") 0 50% no-repeat;padding-left:14px;}

File _generated_media/1/admin_media/css/global.css

+body{margin:0;padding:0;font-size:12px;font-family:"Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif;color:#333;background:#fff;}a:link,a:visited{color:#5b80b2;text-decoration:none;}a:hover{color:#036;}a img{border:none;}a.section:link,a.section:visited{color:white;text-decoration:none;}p,ol,ul,dl{margin:.2em 0 .8em 0;}p{padding:0;line-height:140%;}h1,h2,h3,h4,h5{font-weight:bold;}h1{font-size:18px;color:#666;padding:0 6px 0 0;margin:0 0 .2em 0;}h2{font-size:16px;margin:1em 0 .5em 0;}h2.subhead{font-weight:normal;margin-top:0;}h3{font-size:14px;margin:.8em 0 .3em 0;color:#666;font-weight:bold;}h4{font-size:12px;margin:1em 0 .8em 0;padding-bottom:3px;}h5{font-size:10px;margin:1.5em 0 .5em 0;color:#666;text-transform:uppercase;letter-spacing:1px;}ul li{list-style-type:square;padding:1px 0;}ul.plainlist{margin-left:0!important;}ul.plainlist li{list-style-type:none;}li ul{margin-bottom:0;}li,dt,dd{font-size:11px;line-height:14px;}dt{font-weight:bold;margin-top:4px;}dd{margin-left:0;}form{margin:0;padding:0;}fieldset{margin:0;padding:0;}blockquote{font-size:11px;color:#777;margin-left:2px;padding-left:10px;border-left:5px solid #ddd;}code,pre{font-family:"Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace;background:inherit;color:#666;font-size:11px;}pre.literal-block{margin:10px;background:#eee;padding:6px 8px;}code strong{color:#930;}hr{clear:both;color:#eee;background-color:#eee;height:1px;border:none;margin:0;padding:0;font-size:1px;line-height:1px;}.small{font-size:11px;}.tiny{font-size:10px;}p.tiny{margin-top:-2px;}.mini{font-size:9px;}p.mini{margin-top:-3px;}.help,p.help{font-size:10px!important;color:#999;}p img,h1 img,h2 img,h3 img,h4 img,td img{vertical-align:middle;}.quiet,a.quiet:link,a.quiet:visited{color:#999!important;font-weight:normal!important;}.quiet strong{font-weight:bold!important;}.float-right{float:right;}.float-left{float:left;}.clear{clear:both;}.align-left{text-align:left;}.align-right{text-align:right;}.example{margin:10px 0;padding:5px 10px;background:#efefef;}.nowrap{white-space:nowrap;}table{border-collapse:collapse;border-color:#ccc;}td,th{font-size:11px;line-height:13px;border-bottom:1px solid #eee;vertical-align:top;padding:5px;font-family:"Lucida Grande",Verdana,Arial,sans-serif;}th{text-align:left;font-size:12px;font-weight:bold;}thead th,tfoot td{color:#666;padding:2px 5px;font-size:11px;background:#e1e1e1 url("/media/1/admin_media/img/admin/nav-bg.gif") top left repeat-x;border-left:1px solid #ddd;border-bottom:1px solid #ddd;}tfoot td{border-bottom:none;border-top:1px solid #ddd;}thead th:first-child,tfoot td:first-child{border-left:none!important;}thead th.optional{font-weight:normal!important;}fieldset table{border-right:1px solid #eee;}tr.row-label td{font-size:9px;padding-top:2px;padding-bottom:0;border-bottom:none;color:#666;margin-top:-1px;}tr.alt{background:#f6f6f6;}.row1{background:#EDF3FE;}.row2{background:white;}thead th a:link,thead th a:visited{color:#666;display:block;}table thead th.sorted{background-position:bottom left!important;}table thead th.sorted a{padding-right:13px;}table thead th.ascending a{background:url("/media/1/admin_media/img/admin/arrow-down.gif") right .4em no-repeat;}table thead th.descending a{background:url("/media/1/admin_media/img/admin/arrow-up.gif") right .4em no-repeat;}table.orderable tbody tr td:hover{cursor:move;}table.orderable tbody tr td:first-child{padding-left:14px;background-image:url("/media/1/admin_media/img/admin/nav-bg-grabber.gif");background-repeat:repeat-y;}table.orderable-initalized .order-cell,body>tr>td.order-cell{display:none;}input,textarea,select{margin:2px 0;padding:2px 3px;vertical-align:middle;font-family:"Lucida Grande",Verdana,Arial,sans-serif;font-weight:normal;font-size:11px;}textarea{vertical-align:top!important;}input[type=text],input[type=password],textarea,select,.vTextField{border:1px solid #ccc;}.button,input[type=submit],input[type=button],.submit-row input{background:white url("/media/1/admin_media/img/admin/nav-bg.gif") bottom repeat-x;padding:3px;color:black;border:1px solid #bbb;border-color:#ddd #aaa #aaa #ddd;}.button:active,input[type=submit]:active,input[type=button]:active{background-image:url("/media/1/admin_media/img/admin/nav-bg-reverse.gif");background-position:top;}.button.default,input[type=submit].default,.submit-row input.default{border:2px solid #5b80b2;background:#7CA0C7 url("/media/1/admin_media/img/admin/default-bg.gif") bottom repeat-x;font-weight:bold;color:white;float:right;}.button.default:active,input[type=submit].default:active{background-image:url("/media/1/admin_media/img/admin/default-bg-reverse.gif");background-position:top;}.module{border:1px solid #ccc;margin-bottom:5px;background:white;}.module p,.module ul,.module h3,.module h4,.module dl,.module pre{padding-left:10px;padding-right:10px;}.module blockquote{margin-left:12px;}.module ul,.module ol{margin-left:1.5em;}.module h3{margin-top:.6em;}.module h2,.module caption,.inline-group h2{margin:0;padding:2px 5px 3px 5px;font-size:11px;text-align:left;font-weight:bold;background:#7CA0C7 url("/media/1/admin_media/img/admin/default-bg.gif") top left repeat-x;color:white;}.module table{border-collapse:collapse;}ul.messagelist{padding:0 0 5px 0;margin:0;}ul.messagelist li{font-size:12px;display:block;padding:4px 5px 4px 25px;margin:0 0 3px 0;border-bottom:1px solid #ddd;color:#666;background:#ffc url("/media/1/admin_media/img/admin/icon_success.gif") 5px .3em no-repeat;}.errornote{font-size:12px!important;display:block;padding:4px 5px 4px 25px;margin:0 0 3px 0;border:1px solid red;color:red;background:#ffc url("/media/1/admin_media/img/admin/icon_error.gif") 5px .3em no-repeat;}ul.errorlist{margin:0!important;padding:0!important;}.errorlist li{font-size:12px!important;display:block;padding:4px 5px 4px 25px;margin:0 0 3px 0;border:1px solid red;color:white;background:red url("/media/1/admin_media/img/admin/icon_alert.gif") 5px .3em no-repeat;}td ul.errorlist{margin:0!important;padding:0!important;}td ul.errorlist li{margin:0!important;}.errors{background:#ffc;}.errors input,.errors select{border:1px solid red;}div.system-message{background:#ffc;margin:10px;padding:6px 8px;font-size:.8em;}div.system-message p.system-message-title{padding:4px 5px 4px 25px;margin:0;color:red;background:#ffc url("/media/1/admin_media/img/admin/icon_error.gif") 5px .3em no-repeat;}.description{font-size:12px;padding:5px 0 0 12px;}div.breadcrumbs{background:white url("/media/1/admin_media/img/admin/nav-bg-reverse.gif") 0 -10px repeat-x;padding:2px 8px 3px 8px;font-size:11px;color:#999;border-top:1px solid white;border-bottom:1px solid #ccc;text-align:left;}.addlink{padding-left:12px;background:url("/media/1/admin_media/img/admin/icon_addlink.gif") 0 .2em no-repeat;}.changelink{padding-left:12px;background:url("/media/1/admin_media/img/admin/icon_changelink.gif") 0 .2em no-repeat;}.deletelink{padding-left:12px;background:url("/media/1/admin_media/img/admin/icon_deletelink.gif") 0 .25em no-repeat;}a.deletelink:link,a.deletelink:visited{color:#CC3434;}a.deletelink:hover{color:#933;}.object-tools{font-size:10px;font-weight:bold;font-family:Arial,Helvetica,sans-serif;padding-left:0;float:right;position:relative;margin-top:-2.4em;margin-bottom:-2em;}.form-row .object-tools{margin-top:5px;margin-bottom:5px;float:none;height:2em;padding-left:3.5em;}.object-tools li{display:block;float:left;background:url("/media/1/admin_media/img/admin/tool-left.gif") 0 0 no-repeat;padding:0 0 0 8px;margin-left:2px;height:16px;}.object-tools li:hover{background:url("/media/1/admin_media/img/admin/tool-left_over.gif") 0 0 no-repeat;}.object-tools a:link,.object-tools a:visited{display:block;float:left;color:white;padding:.1em 14px .1em 8px;height:14px;background:#999 url("/media/1/admin_media/img/admin/tool-right.gif") 100% 0 no-repeat;}.object-tools a:hover,.object-tools li:hover a{background:#5b80b2 url("/media/1/admin_media/img/admin/tool-right_over.gif") 100% 0 no-repeat;}.object-tools a.viewsitelink,.object-tools a.golink{background:#999 url("/media/1/admin_media/img/admin/tooltag-arrowright.gif") top right no-repeat;padding-right:28px;}.object-tools a.viewsitelink:hover,.object-tools a.golink:hover{background:#5b80b2 url("/media/1/admin_media/img/admin/tooltag-arrowright_over.gif") top right no-repeat;}.object-tools a.addlink{background:#999 url("/media/1/admin_media/img/admin/tooltag-add.gif") top right no-repeat;padding-right:28px;}.object-tools a.addlink:hover{background:#5b80b2 url("/media/1/admin_media/img/admin/tooltag-add_over.gif") top right no-repeat;}table#change-history{width:100%;}table#change-history tbody th{width:16em;}

File _generated_media/1/admin_media/css/layout.css

+#container{position:relative;width:100%;min-width:760px;padding:0;}#content{margin:10px 15px;}#header{width:100%;}#content-main{float:left;width:100%;}#content-related{float:right;width:18em;position:relative;margin-right:-19em;}#footer{clear:both;padding:10px;}.colMS{margin-right:20em!important;}.colSM{margin-left:20em!important;}.colSM #content-related{float:left;margin-right:0;margin-left:-19em;}.colSM #content-main{float:right;}.popup .colM{width:95%;}.subcol{float:left;width:46%;margin-right:15px;}.dashboard #content{width:500px;}#header{background:#417690;color:#ffc;overflow:hidden;}#header a:link,#header a:visited{color:white;}#header a:hover{text-decoration:underline;}#branding h1{padding:0 10px;font-size:18px;margin:8px 0;font-weight:normal;color:#f4f379;}#branding h2{padding:0 10px;font-size:14px;margin:-8px 0 8px 0;font-weight:normal;color:#ffc;}#user-tools{position:absolute;top:0;right:0;padding:1.2em 10px;font-size:11px;text-align:right;}#content-related h3{font-size:12px;color:#666;margin-bottom:3px;}#content-related h4{font-size:11px;}#content-related .module h2{background:#eee url("/media/1/admin_media/img/admin/nav-bg.gif") bottom left repeat-x;color:#666;}

File _generated_media/1/admin_media/css/login.css

+@import url("/media/1/admin_media/css/base.css");@import url("/media/1/admin_media/css/layout.css");body.login{background:#eee;}.login #container{background:white;border:1px solid #ccc;width:28em;min-width:300px;margin-left:auto;margin-right:auto;margin-top:100px;}.login #content-main{width:100%;}.login form{margin-top:1em;}.login .form-row{padding:4px 0;float:left;width:100%;}.login .form-row label{float:left;width:9em;padding-right:.5em;line-height:2em;text-align:right;font-size:1em;color:#333;}.login .form-row #id_username,.login .form-row #id_password{width:14em;}.login span.help{font-size:10px;display:block;}.login .submit-row{clear:both;padding:1em 0 0 9.4em;}

File _generated_media/1/admin_media/css/null.css

Empty file added.

File _generated_media/1/admin_media/css/patch-iewin.css

+* html #container{position:static;}* html .colMS #content-related{margin-right:0;margin-left:10px;position:static;}* html .colSM #content-related{margin-right:10px;margin-left:-115px;position:static;}* html .form-row{height:1%;}* html .dashboard #content{width:768px;}* html .dashboard #content-main{width:535px;}* html #changelist-filter ul{margin-right:-10px;}* html .change-list .filtered{height:400px;}

File _generated_media/1/admin_media/css/rtl.css

+body{direction:rtl;}.login .form-row{float:right;}.login .form-row label{float:right;padding-left:.5em;padding-right:0;text-align:left;}.login .submit-row{clear:both;padding:1em 9.4em 0 0;}th{text-align:right;}.module h2,.module caption{text-align:right;}.addlink,.changelink{padding-left:0;padding-right:12px;background-position:100% .2em;}.deletelink{padding-left:0;padding-right:12px;background-position:100% .25em;}.object-tools{float:left;}#user-tools{right:auto;left:0;text-align:left;}div.breadcrumbs{text-align:right;}#content-main{float:right;}#content-related{float:left;margin-left:-19em;margin-right:auto;}.colMS{margin-left:20em!important;margin-right:10px!important;}.dashboard .module table td a{padding-left:.6em;padding-right:12px;}.change-list .filtered{background:white url("/media/1/admin_media/img/admin/changelist-bg_rtl.gif") top left repeat-y!important;}.change-list .filtered table{border-left:1px solid #ddd;border-right:0 none;}#changelist-filter{right:auto;left:0;border-left:0 none;border-right:1px solid #ddd;}.change-list .filtered table,.change-list .filtered .paginator,.filtered #toolbar,.filtered div.xfull{margin-right:0!important;margin-left:160px!important;}#changelist-filter li.selected{border-left:0 none;padding-left:0;margin-left:0;border-right:5px solid #ccc;padding-right:5px;margin-right:-10px;}.aligned label{padding:0 0 3px 1em;float:right;}.submit-row{text-align:left;}.submit-row p.deletelink-box{float:right;}.submit-row .deletelink{background:url("/media/1/admin_media/img/admin/icon_deletelink.gif") 0 50% no-repeat;padding-right:14px;}.vDateField,.vTimeField{margin-left:2px;}form ul.inline li{float:right;padding-right:0;padding-left:7px;}input[type=submit].default,.submit-row input.default{float:left;}fieldset .field-box{float:right;margin-left:20px;}.errorlist li{background-position:100% .3em;padding:4px 25px 4px 5px;}.errornote{background-position:100% .3em;padding:4px 25px 4px 5px;.calendarnav-previous{top:0;left:auto;right:0;}.calendarnav-next{top:0;right:auto;left:0;}.calendar caption,.calendarbox h2{text-align:center;}.selector{float:right;}.selector .selector-filter{text-align:right;}.inline-related h2{text-align:right;}

File _generated_media/1/admin_media/css/widgets.css

+.selector{width:580px;float:left;}.selector select{width:270px;height:17.2em;}.selector-available,.selector-chosen{float:left;width:270px;text-align:center;margin-bottom:5px;}.selector-available h2,.selector-chosen h2{border:1px solid #ccc;}.selector .selector-available h2{background:white url("/media/1/admin_media/img/admin/nav-bg.gif") bottom left repeat-x;color:#666;}.selector .selector-filter{background:white;border:1px solid #ccc;border-width:0 1px;padding:3px;color:#999;font-size:10px;margin:0;text-align:left;}.selector .selector-chosen .selector-filter{padding:4px 5px;}.selector .selector-available input{width:230px;}.selector ul.selector-chooser{float:left;width:22px;height:50px;background:url("/media/1/admin_media/img/admin/chooser-bg.gif") top center no-repeat;margin:8em 3px 0 3px;padding:0;}.selector-chooser li{margin:0;padding:3px;list-style-type:none;}.selector select{margin-bottom:5px;margin-top:0;}.selector-add,.selector-remove{width:16px;height:16px;display:block;text-indent:-3000px;}.selector-add{background:url("/media/1/admin_media/img/admin/selector-add.gif") top center no-repeat;margin-bottom:2px;}.selector-remove{background:url("/media/1/admin_media/img/admin/selector-remove.gif") top center no-repeat;}a.selector-chooseall,a.selector-clearall{display:block;width:6em;text-align:left;margin-left:auto;margin-right:auto;font-weight:bold;color:#666;padding:3px 0 3px 18px;}a.selector-chooseall:hover,a.selector-clearall:hover{color:#036;}a.selector-chooseall{width:7em;background:url("/media/1/admin_media/img/admin/selector-addall.gif") left center no-repeat;}a.selector-clearall{background:url("/media/1/admin_media/img/admin/selector-removeall.gif") left center no-repeat;}.stacked{float:left;width:500px;}.stacked select{width:480px;height:10.1em;}.stacked .selector-available,.stacked .selector-chosen{width:480px;}.stacked .selector-available{margin-bottom:0;}.stacked .selector-available input{width:442px;}.stacked ul.selector-chooser{height:22px;width:50px;margin:0 0 3px 40%;background:url("/media/1/admin_media/img/admin/chooser_stacked-bg.gif") top center no-repeat;}.stacked .selector-chooser li{float:left;padding:3px 3px 3px 5px;}.stacked .selector-chooseall,.stacked .selector-clearall{display:none;}.stacked .selector-add{background-image:url("/media/1/admin_media/img/admin/selector_stacked-add.gif");}.stacked .selector-remove{background-image:url("/media/1/admin_media/img/admin/selector_stacked-remove.gif");}p.datetime{line-height:20px;margin:0;padding:0;color:#666;font-size:11px;font-weight:bold;}.datetime span{font-size:11px;color:#ccc;font-weight:normal;white-space:nowrap;}table p.datetime{font-size:10px;margin-left:0;padding-left:0;}p.file-upload{line-height:20px;margin:0;padding:0;color:#666;font-size:11px;font-weight:bold;}.file-upload a{font-weight:normal;}.file-upload .deletelink{margin-left:5px;}.calendarbox,.clockbox{margin:5px auto;font-size:11px;width:16em;text-align:center;background:white;position:relative;}.clockbox{width:auto;}.calendar{margin:0;padding:0;}.calendar table{margin:0;padding:0;border-collapse:collapse;background:white;width:99%;}.calendar caption,.calendarbox h2{margin:0;font-size:11px;text-align:center;border-top:none;}.calendar th{font-size:10px;color:#666;padding:2px 3px;text-align:center;background:#e1e1e1 url("/media/1/admin_media/img/admin/nav-bg.gif") 0 50% repeat-x;border-bottom:1px solid #ddd;}.calendar td{font-size:11px;text-align:center;padding:0;border-top:1px solid #eee;border-bottom:none;}.calendar td.selected a{background:#C9DBED;}.calendar td.nonday{background:#efefef;}.calendar td.today a{background:#ffc;}.calendar td a,.timelist a{display:block;font-weight:bold;padding:4px;text-decoration:none;color:#444;}.calendar td a:hover,.timelist a:hover{background:#5b80b2;color:white;}.calendar td a:active,.timelist a:active{background:#036;color:white;}.calendarnav{font-size:10px;text-align:center;color:#ccc;margin:0;padding:1px 3px;}.calendarnav a:link,#calendarnav a:visited,#calendarnav a:hover{color:#999;}.calendar-shortcuts{background:white;font-size:10px;line-height:11px;border-top:1px solid #eee;padding:3px 0 4px;color:#ccc;}.calendarbox .calendarnav-previous,.calendarbox .calendarnav-next{display:block;position:absolute;font-weight:bold;font-size:12px;background:#C9DBED url("/media/1/admin_media/img/admin/default-bg.gif") bottom left repeat-x;padding:1px 4px 2px 4px;color:white;}.calendarnav-previous:hover,.calendarnav-next:hover{background:#036;}.calendarnav-previous{top:0;left:0;}.calendarnav-next{top:0;right:0;}.calendar-cancel{margin:0!important;padding:0;font-size:10px;background:#e1e1e1 url("/media/1/admin_media/img/admin/nav-bg.gif") 0 50% repeat-x;border-top:1px solid #ddd;}.calendar-cancel a{padding:2px;color:#999;}ul.timelist,.timelist li{list-style-type:none;margin:0;padding:0;}.timelist a{padding:2px;}ul.orderer{position:relative;padding:0!important;margin:0!important;list-style-type:none;}ul.orderer li{list-style-type:none;display:block;padding:0;margin:0;border:1px solid #bbb;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;background:#e2e2e2 url("/media/1/admin_media/img/admin/nav-bg-grabber.gif") repeat-y;}ul.orderer li:hover{cursor:move;background-color:#ddd;}ul.orderer li a.selector{margin-left:12px;overflow:hidden;width:83%;font-size:10px!important;padding:.6em 0;}ul.orderer li a:link,ul.orderer li a:visited{color:#333;}ul.orderer li .inline-deletelink{position:absolute;right:4px;margin-top:.6em;}ul.orderer li.selected{background-color:#f8f8f8;border-right-color:#f8f8f8;}ul.orderer li.deleted{background:#bbb url("/media/1/admin_media/img/admin/deleted-overlay.gif");}ul.orderer li.deleted a:link,ul.orderer li.deleted a:visited{color:#888;}ul.orderer li.deleted .inline-deletelink{background-image:url("/media/1/admin_media/img/admin/inline-restore.png");}ul.orderer li.deleted:hover,ul.orderer li.deleted a.selector:hover{cursor:default;}.inline-deletelink{display:block;text-indent:-9999px;background:transparent url("/media/1/admin_media/img/admin/inline-delete.png") no-repeat;width:15px;height:15px;margin:.4em 0;border:0 none;}.inline-deletelink:hover{background-position:-15px 0;cursor:pointer;}.editinline button.addlink{border:0 none;color:#5b80b2;font-size:100%;cursor:pointer;}.editinline button.addlink:hover{color:#036;cursor:pointer;}.editinline table .help{text-align:right;float:right;padding-left:2em;}.editinline tfoot .addlink{white-space:nowrap;}.editinline table thead th:last-child{border-left:none;}.editinline tr.deleted{background:#ddd url("/media/1/admin_media/img/admin/deleted-overlay.gif");}.editinline tr.deleted .inline-deletelink{background-image:url("/media/1/admin_media/img/admin/inline-restore.png");}.editinline tr.deleted td:hover{cursor:default;}.editinline tr.deleted td:first-child{background-image:none!important;}.editinline-stacked{min-width:758px;}.editinline-stacked .inline-object{margin-left:210px;background:white;}.editinline-stacked .inline-source{float:left;width:200px;background:#f8f8f8;}.editinline-stacked .inline-splitter{float:left;width:9px;background:#f8f8f8 url("/media/1/admin_media/img/admin/inline-splitter-bg.gif") 50% 50% no-repeat;border-right:1px solid #ccc;}.editinline-stacked .controls{clear:both;background:#e1e1e1 url("/media/1/admin_media/img/admin/nav-bg.gif") top left repeat-x;padding:3px 4px;font-size:11px;border-top:1px solid #ddd;}

File _generated_media/1/admin_media/img/admin/arrow-down.gif

Added
New image

File _generated_media/1/admin_media/img/admin/arrow-up.gif

Added
New image

File _generated_media/1/admin_media/img/admin/changelist-bg.gif

Added
New image

File _generated_media/1/admin_media/img/admin/changelist-bg_rtl.gif

Added
New image

File _generated_media/1/admin_media/img/admin/chooser-bg.gif

Added
New image

File _generated_media/1/admin_media/img/admin/chooser_stacked-bg.gif

Added
New image

File _generated_media/1/admin_media/img/admin/default-bg-reverse.gif

Added
New image

File _generated_media/1/admin_media/img/admin/default-bg.gif

Added
New image

File _generated_media/1/admin_media/img/admin/deleted-overlay.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon-no.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon-unknown.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon-yes.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon_addlink.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon_alert.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon_calendar.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon_changelink.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon_clock.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon_deletelink.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon_error.gif

Added
New image

File _generated_media/1/admin_media/img/admin/icon_searchbox.png

Added
New image

File _generated_media/1/admin_media/img/admin/icon_success.gif

Added
New image

File _generated_media/1/admin_media/img/admin/inline-delete-8bit.png

Added
New image

File _generated_media/1/admin_media/img/admin/inline-delete.png

Added
New image

File _generated_media/1/admin_media/img/admin/inline-restore-8bit.png

Added
New image

File _generated_media/1/admin_media/img/admin/inline-restore.png

Added
New image

File _generated_media/1/admin_media/img/admin/inline-splitter-bg.gif

Added
New image

File _generated_media/1/admin_media/img/admin/nav-bg-grabber.gif

Added
New image

File _generated_media/1/admin_media/img/admin/nav-bg-reverse.gif

Added
New image

File _generated_media/1/admin_media/img/admin/nav-bg.gif

Added
New image

File _generated_media/1/admin_media/img/admin/selector-add.gif

Added
New image

File _generated_media/1/admin_media/img/admin/selector-addall.gif

Added
New image

File _generated_media/1/admin_media/img/admin/selector-remove.gif

Added
New image

File _generated_media/1/admin_media/img/admin/selector-removeall.gif

Added
New image

File _generated_media/1/admin_media/img/admin/selector-search.gif

Added
New image

File _generated_media/1/admin_media/img/admin/selector_stacked-add.gif

Added
New image

File _generated_media/1/admin_media/img/admin/selector_stacked-remove.gif

Added
New image

File _generated_media/1/admin_media/img/admin/tool-left.gif

Added
New image

File _generated_media/1/admin_media/img/admin/tool-left_over.gif

Added
New image

File _generated_media/1/admin_media/img/admin/tool-right.gif

Added
New image

File _generated_media/1/admin_media/img/admin/tool-right_over.gif

Added
New image

File _generated_media/1/admin_media/img/admin/tooltag-add.gif

Added
New image

File _generated_media/1/admin_media/img/admin/tooltag-add_over.gif

Added
New image

File _generated_media/1/admin_media/img/admin/tooltag-arrowright.gif

Added
New image

File _generated_media/1/admin_media/img/admin/tooltag-arrowright_over.gif

Added
New image

File _generated_media/1/admin_media/img/gis/move_vertex_off.png

Added
New image

File _generated_media/1/admin_media/img/gis/move_vertex_on.png

Added
New image

File _generated_media/1/admin_media/js/SelectBox.js

+var SelectBox={cache:new Object(),init:function(e){var d=document.getElementById(e);var c;SelectBox.cache[e]=new Array();var a=SelectBox.cache[e];for(var b=0;(c=d.options[b]);b++){a.push({value:c.value,text:c.text,displayed:1})}},redisplay:function(e){var d=document.getElementById(e);d.options.length=0;for(var b=0,a=SelectBox.cache[e].length;b<a;b++){var c=SelectBox.cache[e][b];if(c.displayed){d.options[d.options.length]=new Option(c.text,c.value,false,false)}}},filter:function(g,f){var e=f.toLowerCase().split(/\s+/);var d,c;for(var b=0;(d=SelectBox.cache[g][b]);b++){d.displayed=1;for(var a=0;(c=e[a]);a++){if(d.text.toLowerCase().indexOf(c)==-1){d.displayed=0}}}SelectBox.redisplay(g)},delete_from_cache:function(f,e){var d,c=null;for(var b=0;(d=SelectBox.cache[f][b]);b++){if(d.value==e){c=b;break}}var a=SelectBox.cache[f].length-1;for(var b=c;b<a;b++){SelectBox.cache[f][b]=SelectBox.cache[f][b+1]}SelectBox.cache[f].length--},add_to_cache:function(b,a){SelectBox.cache[b].push({value:a.value,text:a.text,displayed:1})},cache_contains:function(d,c){var b;for(var a=0;(b=SelectBox.cache[d][a]);a++){if(b.value==c){return true}}return false},move:function(f,e){var a=document.getElementById(f);var d=document.getElementById(e);var c;for(var b=0;(c=a.options[b]);b++){if(c.selected&&SelectBox.cache_contains(f,c.value)){SelectBox.add_to_cache(e,{value:c.value,text:c.text,displayed:1});SelectBox.delete_from_cache(f,c.value)}}SelectBox.redisplay(f);SelectBox.redisplay(e)},move_all:function(f,e){var a=document.getElementById(f);var d=document.getElementById(e);var c;for(var b=0;(c=a.options[b]);b++){if(SelectBox.cache_contains(f,c.value)){SelectBox.add_to_cache(e,{value:c.value,text:c.text,displayed:1});SelectBox.delete_from_cache(f,c.value)}}SelectBox.redisplay(f);SelectBox.redisplay(e)},sort:function(a){SelectBox.cache[a].sort(function(d,c){d=d.text.toLowerCase();c=c.text.toLowerCase();try{if(d>c){return 1}if(d<c){return -1}}catch(f){}return 0})},select_all:function(c){var b=document.getElementById(c);for(var a=0;a<b.options.length;a++){b.options[a].selected="selected"}}};

File _generated_media/1/admin_media/js/SelectFilter2.js

+function findForm(a){if(a.tagName.toLowerCase()!="form"){return findForm(a.parentNode)}return a}var SelectFilter={init:function(d,a,k,s){var b=document.getElementById(d);b.id+="_from";b.className="filtered";var p=b.parentNode.getElementsByTagName("p");for(var r=0;r<p.length;r++){b.parentNode.removeChild(p[r])}var h=quickElement("div",b.parentNode);h.className=k?"selector stacked":"selector";var n=quickElement("div",h,"");n.className="selector-available";quickElement("h2",n,interpolate(gettext("Available %s"),[a]));var c=quickElement("p",n,"");c.className="selector-filter";quickElement("img",c,"","src",s+"img/admin/selector-search.gif");c.appendChild(document.createTextNode(" "));var f=quickElement("input",c,"","type","text");f.id=d+"_input";n.appendChild(b);var g=quickElement("a",n,gettext("Choose all"),"href",'javascript: (function(){ SelectBox.move_all("'+d+'_from", "'+d+'_to"); })()');g.className="selector-chooseall";var j=quickElement("ul",h,"");j.className="selector-chooser";var m=quickElement("a",quickElement("li",j,""),gettext("Add"),"href",'javascript: (function(){ SelectBox.move("'+d+'_from","'+d+'_to");})()');m.className="selector-add";var q=quickElement("a",quickElement("li",j,""),gettext("Remove"),"href",'javascript: (function(){ SelectBox.move("'+d+'_to","'+d+'_from");})()');q.className="selector-remove";var l=quickElement("div",h,"");l.className="selector-chosen";quickElement("h2",l,interpolate(gettext("Chosen %s"),[a]));var o=quickElement("p",l,gettext("Select your choice(s) and click "));o.className="selector-filter";quickElement("img",o,"","src",s+(k?"img/admin/selector_stacked-add.gif":"img/admin/selector-add.gif"),"alt","Add");var e=quickElement("select",l,"","id",d+"_to","multiple","multiple","size",b.size,"name",b.getAttribute("name"));e.className="filtered";var t=quickElement("a",l,gettext("Clear all"),"href",'javascript: (function() { SelectBox.move_all("'+d+'_to", "'+d+'_from");})()');t.className="selector-clearall";b.setAttribute("name",b.getAttribute("name")+"_old");addEvent(f,"keyup",function(i){SelectFilter.filter_key_up(i,d)});addEvent(f,"keydown",function(i){SelectFilter.filter_key_down(i,d)});addEvent(b,"dblclick",function(){SelectBox.move(d+"_from",d+"_to")});addEvent(e,"dblclick",function(){SelectBox.move(d+"_to",d+"_from")});addEvent(findForm(b),"submit",function(){SelectBox.select_all(d+"_to")});SelectBox.init(d+"_from");SelectBox.init(d+"_to");SelectBox.move(d+"_from",d+"_to")},filter_key_up:function(c,b){from=document.getElementById(b+"_from");if((c.which&&c.which==13)||(c.keyCode&&c.keyCode==13)){from.selectedIndex=0;SelectBox.move(b+"_from",b+"_to");from.selectedIndex=0;return false}var a=from.selectedIndex;SelectBox.filter(b+"_from",document.getElementById(b+"_input").value);from.selectedIndex=a;return true},filter_key_down:function(b,a){from=document.getElementById(a+"_from");if((b.which&&b.which==39)||(b.keyCode&&b.keyCode==39)){var c=from.selectedIndex;SelectBox.move(a+"_from",a+"_to");from.selectedIndex=(c==from.length)?from.length-1:c;return false}if((b.which&&b.which==40)||(b.keyCode&&b.keyCode==40)){from.selectedIndex=(from.length==from.selectedIndex+1)?0:from.selectedIndex+1}if((b.which&&b.which==38)||(b.keyCode&&b.keyCode==38)){from.selectedIndex=(from.selectedIndex==0)?from.length-1:from.selectedIndex-1}return true}};

File _generated_media/1/admin_media/js/admin/CollapsedFieldsets.js

+function findForm(a){if(a.tagName.toLowerCase()!="form"){return findForm(a.parentNode)}return a}var CollapsedFieldsets={collapse_re:/\bcollapse\b/,collapsed_re:/\bcollapsed\b/,collapsed_class:"collapsed",init:function(){var e=document.getElementsByTagName("fieldset");var b=false;for(var d=0,a;a=e[d];d++){if(a.className.match(CollapsedFieldsets.collapse_re)&&!CollapsedFieldsets.fieldset_has_errors(a)){b=true;a.className+=" "+CollapsedFieldsets.collapsed_class;var f=document.createElement("a");f.className="collapse-toggle";f.id="fieldsetcollapser"+d;f.onclick=new Function("CollapsedFieldsets.show("+d+"); return false;");f.href="#";f.innerHTML=gettext("Show");var c=a.getElementsByTagName("h2")[0];c.appendChild(document.createTextNode(" ("));c.appendChild(f);c.appendChild(document.createTextNode(")"))}}if(b){addEvent(findForm(document.getElementsByTagName("fieldset")[0]),"submit",function(){CollapsedFieldsets.uncollapse_all()})}},fieldset_has_errors:function(a){var c=a.getElementsByTagName("div");for(var b=0;b<c.length;b++){if(c[b].className.match(/\berrors\b/)){return true}}return false},show:function(b){var a=document.getElementsByTagName("fieldset")[b];a.className=a.className.replace(CollapsedFieldsets.collapsed_re,"");var c=document.getElementById("fieldsetcollapser"+b);c.onclick=new Function("CollapsedFieldsets.hide("+b+"); return false;");c.innerHTML=gettext("Hide")},hide:function(b){var a=document.getElementsByTagName("fieldset")[b];a.className+=" "+CollapsedFieldsets.collapsed_class;var c=document.getElementById("fieldsetcollapser"+b);c.onclick=new Function("CollapsedFieldsets.show("+b+"); return false;");c.innerHTML=gettext("Show")},uncollapse_all:function(){var b=document.getElementsByTagName("fieldset");for(var a=0;a<b.length;a++){if(b[a].className.match(CollapsedFieldsets.collapsed_re)){CollapsedFieldsets.show(a)}}}};addEvent(window,"load",CollapsedFieldsets.init);

File _generated_media/1/admin_media/js/admin/DateTimeShortcuts.js

+var DateTimeShortcuts={calendars:[],calendarInputs:[],clockInputs:[],calendarDivName1:"calendarbox",calendarDivName2:"calendarin",calendarLinkName:"calendarlink",clockDivName:"clockbox",clockLinkName:"clocklink",admin_media_prefix:"",init:function(){var b=document.getElementsByTagName("script");for(var d=0;d<b.length;d++){if(b[d].src.match(/DateTimeShortcuts/)){var a=b[d].src.indexOf("js/admin/DateTimeShortcuts");DateTimeShortcuts.admin_media_prefix=b[d].src.substring(0,a);break}}var c=document.getElementsByTagName("input");for(d=0;d<c.length;d++){var e=c[d];if(e.getAttribute("type")=="text"&&e.className.match(/vTimeField/)){DateTimeShortcuts.addClock(e)}else{if(e.getAttribute("type")=="text"&&e.className.match(/vDateField/)){DateTimeShortcuts.addCalendar(e)}}}},addClock:function(e){var c=DateTimeShortcuts.clockInputs.length;DateTimeShortcuts.clockInputs[c]=e;var a=document.createElement("span");e.parentNode.insertBefore(a,e.nextSibling);var d=document.createElement("a");d.setAttribute("href","javascript:DateTimeShortcuts.handleClockQuicklink("+c+", new Date().getHourMinuteSecond());");d.appendChild(document.createTextNode(gettext("Now")));var b=document.createElement("a");b.setAttribute("href","javascript:DateTimeShortcuts.openClock("+c+");");b.id=DateTimeShortcuts.clockLinkName+c;quickElement("img",b,"","src",DateTimeShortcuts.admin_media_prefix+"img/admin/icon_clock.gif","alt",gettext("Clock"));a.appendChild(document.createTextNode("\240"));a.appendChild(d);a.appendChild(document.createTextNode("\240|\240"));a.appendChild(b);var f=document.createElement("div");f.style.display="none";f.style.position="absolute";f.className="clockbox module";f.setAttribute("id",DateTimeShortcuts.clockDivName+c);document.body.appendChild(f);addEvent(f,"click",DateTimeShortcuts.cancelEventPropagation);quickElement("h2",f,gettext("Choose a time"));time_list=quickElement("ul",f,"");time_list.className="timelist";quickElement("a",quickElement("li",time_list,""),gettext("Now"),"href","javascript:DateTimeShortcuts.handleClockQuicklink("+c+", new Date().getHourMinuteSecond());");quickElement("a",quickElement("li",time_list,""),gettext("Midnight"),"href","javascript:DateTimeShortcuts.handleClockQuicklink("+c+", '00:00:00');");quickElement("a",quickElement("li",time_list,""),gettext("6 a.m."),"href","javascript:DateTimeShortcuts.handleClockQuicklink("+c+", '06:00:00');");quickElement("a",quickElement("li",time_list,""),gettext("Noon"),"href","javascript:DateTimeShortcuts.handleClockQuicklink("+c+", '12:00:00');");cancel_p=quickElement("p",f,"");cancel_p.className="calendar-cancel";quickElement("a",cancel_p,gettext("Cancel"),"href","javascript:DateTimeShortcuts.dismissClock("+c+");")},openClock:function(b){var c=document.getElementById(DateTimeShortcuts.clockDivName+b);var a=document.getElementById(DateTimeShortcuts.clockLinkName+b);if(getStyle(document.body,"direction")!="rtl"){c.style.left=findPosX(a)+17+"px"}else{c.style.left=findPosX(a)-110+"px"}c.style.top=findPosY(a)-30+"px";c.style.display="block";addEvent(window,"click",function(){DateTimeShortcuts.dismissClock(b);return true})},dismissClock:function(a){document.getElementById(DateTimeShortcuts.clockDivName+a).style.display="none";window.onclick=null},handleClockQuicklink:function(a,b){DateTimeShortcuts.clockInputs[a].value=b;DateTimeShortcuts.dismissClock(a)},addCalendar:function(g){var d=DateTimeShortcuts.calendars.length;DateTimeShortcuts.calendarInputs[d]=g;var f=document.createElement("span");g.parentNode.insertBefore(f,g.nextSibling);var j=document.createElement("a");j.setAttribute("href","javascript:DateTimeShortcuts.handleCalendarQuickLink("+d+", 0);");j.appendChild(document.createTextNode(gettext("Today")));var b=document.createElement("a");b.setAttribute("href","javascript:DateTimeShortcuts.openCalendar("+d+");");b.id=DateTimeShortcuts.calendarLinkName+d;quickElement("img",b,"","src",DateTimeShortcuts.admin_media_prefix+"img/admin/icon_calendar.gif","alt",gettext("Calendar"));f.appendChild(document.createTextNode("\240"));f.appendChild(j);f.appendChild(document.createTextNode("\240|\240"));f.appendChild(b);var i=document.createElement("div");i.style.display="none";i.style.position="absolute";i.className="calendarbox module";i.setAttribute("id",DateTimeShortcuts.calendarDivName1+d);document.body.appendChild(i);addEvent(i,"click",DateTimeShortcuts.cancelEventPropagation);var c=quickElement("div",i,"");var h=quickElement("a",c,"<","href","javascript:DateTimeShortcuts.drawPrev("+d+");");h.className="calendarnav-previous";var k=quickElement("a",c,">","href","javascript:DateTimeShortcuts.drawNext("+d+");");k.className="calendarnav-next";var l=quickElement("div",i,"","id",DateTimeShortcuts.calendarDivName2+d);l.className="calendar";DateTimeShortcuts.calendars[d]=new Calendar(DateTimeShortcuts.calendarDivName2+d,DateTimeShortcuts.handleCalendarCallback(d));DateTimeShortcuts.calendars[d].drawCurrent();var e=quickElement("div",i,"");e.className="calendar-shortcuts";quickElement("a",e,gettext("Yesterday"),"href","javascript:DateTimeShortcuts.handleCalendarQuickLink("+d+", -1);");e.appendChild(document.createTextNode("\240|\240"));quickElement("a",e,gettext("Today"),"href","javascript:DateTimeShortcuts.handleCalendarQuickLink("+d+", 0);");e.appendChild(document.createTextNode("\240|\240"));quickElement("a",e,gettext("Tomorrow"),"href","javascript:DateTimeShortcuts.handleCalendarQuickLink("+d+", +1);");var a=quickElement("p",i,"");a.className="calendar-cancel";quickElement("a",a,gettext("Cancel"),"href","javascript:DateTimeShortcuts.dismissCalendar("+d+");")},openCalendar:function(b){var c=document.getElementById(DateTimeShortcuts.calendarDivName1+b);var a=document.getElementById(DateTimeShortcuts.calendarLinkName+b);var e=DateTimeShortcuts.calendarInputs[b];if(e.value){var f=e.value.split("-");var d=f[0];var g=parseFloat(f[1]);if(d.match(/\d\d\d\d/)&&g>=1&&g<=12){DateTimeShortcuts.calendars[b].drawDate(g,d)}}if(getStyle(document.body,"direction")!="rtl"){c.style.left=findPosX(a)+17+"px"}else{c.style.left=findPosX(a)-180+"px"}c.style.top=findPosY(a)-75+"px";c.style.display="block";addEvent(window,"click",function(){DateTimeShortcuts.dismissCalendar(b);return true})},dismissCalendar:function(a){document.getElementById(DateTimeShortcuts.calendarDivName1+a).style.display="none"},drawPrev:function(a){DateTimeShortcuts.calendars[a].drawPreviousMonth()},drawNext:function(a){DateTimeShortcuts.calendars[a].drawNextMonth()},handleCalendarCallback:function(a){return"function(y, m, d) { DateTimeShortcuts.calendarInputs["+a+"].value = y+'-'+(m<10?'0':'')+m+'-'+(d<10?'0':'')+d; document.getElementById(DateTimeShortcuts.calendarDivName1+"+a+").style.display='none';}"},handleCalendarQuickLink:function(a,c){var b=new Date();b.setDate(b.getDate()+c);DateTimeShortcuts.calendarInputs[a].value=b.getISODate();DateTimeShortcuts.dismissCalendar(a)},cancelEventPropagation:function(a){if(!a){a=window.event}a.cancelBubble=true;if(a.stopPropagation){a.stopPropagation()}}};addEvent(window,"load",DateTimeShortcuts.init);

File _generated_media/1/admin_media/js/admin/RelatedObjectLookups.js

+function html_unescape(a){a=a.replace(/&lt;/g,"<");a=a.replace(/&gt;/g,">");a=a.replace(/&quot;/g,'"');a=a.replace(/&#39;/g,"'");a=a.replace(/&amp;/g,"&");return a}function id_to_windowname(a){a=a.replace(/\./g,"__dot__");a=a.replace(/\-/g,"__dash__");return a}function windowname_to_id(a){a=a.replace(/__dot__/g,".");a=a.replace(/__dash__/g,"-");return a}function showRelatedObjectLookupPopup(c){var b=c.id.replace(/^lookup_/,"");b=id_to_windowname(b);var a;if(c.href.search(/\?/)>=0){a=c.href+"&pop=1"}else{a=c.href+"?pop=1"}var d=window.open(a,b,"height=500,width=800,resizable=yes,scrollbars=yes");d.focus();return false}function dismissRelatedLookupPopup(d,c){var a=windowname_to_id(d.name);var b=document.getElementById(a);if(b.className.indexOf("vManyToManyRawIdAdminField")!=-1&&b.value){b.value+=","+c}else{document.getElementById(a).value=c}d.close()}function showAddAnotherPopup(b){var a=b.id.replace(/^add_/,"");a=id_to_windowname(a);href=b.href;if(href.indexOf("?")==-1){href+="?_popup=1"}else{href+="&_popup=1"}var c=window.open(href,a,"height=500,width=800,resizable=yes,scrollbars=yes");c.focus();return false}function dismissAddAnotherPopup(e,c,g){c=html_unescape(c);g=html_unescape(g);var b=windowname_to_id(e.name);var d=document.getElementById(b);if(d){if(d.nodeName=="SELECT"){var f=new Option(g,c);d.options[d.options.length]=f;f.selected=true}else{if(d.nodeName=="INPUT"){d.value=c}}}else{var a=b+"_to";d=document.getElementById(a);var f=new Option(g,c);SelectBox.add_to_cache(a,f);SelectBox.redisplay(a)}e.close()};

File _generated_media/1/admin_media/js/admin/ordering.js

+addEvent(window,"load",reorder_init);var lis;var top=0;var left=0;var height=30;function reorder_init(){lis=document.getElementsBySelector("ul#orderthese li");var d=document.getElementsBySelector("input[name=order_]")[0];setOrder(d.value.split(","));d.disabled=true;draw();var b=(lis.length-1)*height;for(var e=0;e<lis.length;e++){var a=lis[e];var c=document.getElementById("handle"+a.id);a.style.zIndex=1;Drag.init(c,a,left+10,left+10,top+10,top+10+b);a.onDragStart=startDrag;a.onDragEnd=endDrag;c.style.cursor="move"}}function submitOrderForm(){var a=document.getElementsBySelector("input[name=order_]")[0];a.value=getOrder();a.disabled=false}function startDrag(){this.style.zIndex="10";this.className="dragging"}function endDrag(a,d){this.style.zIndex="1";this.className="";var c=this.index;var b=Math.round((d-10-top)/height);this.style.top=(10+top+b*height)+"px";this.index=b;moveItem(c,b)}function moveItem(g,c){if(g==c){return}var f,d,a;if(c>g){d=g;a=c;f=-1}else{f=1;a=g;d=c}var e=new Array();for(var b=0;b<lis.length;b++){if(b<d||b>a){e[b]=lis[b];continue}else{if(b==c){e[b]=lis[g];continue}else{e[b]=lis[b-f]}}}reIndex(e);lis=e;draw();document.getElementsBySelector("input[name=order_]")[0].value=getOrder()}function reIndex(a){for(var b=0;b<a.length;b++){a[b].index=b}}function draw(){for(var b=0;b<lis.length;b++){var a=lis[b];a.index=b;a.style.position="absolute";a.style.left=(10+left)+"px";a.style.top=(10+top+(b*height))+"px"}}function getOrder(){var a=new Array(lis.length);for(var b=0;b<lis.length;b++){a[b]=lis[b].id.substring(1,100)}return a.join(",")}function setOrder(b){var c=new Array();for(var a=0;a<b.length;a++){var d="p"+b[a];c[c.length]=document.getElementById(d)}reIndex(c);lis=c;draw()}function addEvent(e,d,b,a){if(e.addEventListener){e.addEventListener(d,b,a);return true}else{if(e.attachEvent){var c=e.attachEvent("on"+d,b);return c}else{e["on"+d]=b}}};

File _generated_media/1/admin_media/js/calendar.js

+function removeChildren(b){while(b.hasChildNodes()){b.removeChild(b.lastChild)}}function quickElement(){var c=document.createElement(arguments[0]);if(arguments[2]!=""&&arguments[2]!=null){var d=document.createTextNode(arguments[2]);c.appendChild(d)}var a=arguments.length;for(var b=3;b<a;b+=2){c.setAttribute(arguments[b],arguments[b+1])}arguments[1].appendChild(c);return c}var CalendarNamespace={monthsOfYear:gettext("January February March April May June July August September October November December").split(" "),daysOfWeek:gettext("S M T W T F S").split(" "),isLeapYear:function(a){return(((a%4)==0)&&((a%100)!=0)||((a%400)==0))},getDaysInMonth:function(b,a){var c;if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){c=31}else{if(b==4||b==6||b==9||b==11){c=30}else{if(b==2&&CalendarNamespace.isLeapYear(a)){c=29}else{c=28}}}return c},draw:function(j,k,e,n){j=parseInt(j);k=parseInt(k);var o=document.getElementById(e);removeChildren(o);var h=document.createElement("table");quickElement("caption",h,CalendarNamespace.monthsOfYear[j-1]+" "+k);var b=quickElement("tbody",h);var a=quickElement("tr",b);for(var c=0;c<7;c++){quickElement("th",a,CalendarNamespace.daysOfWeek[c])}var d=new Date(k,j-1,1).getDay();var m=CalendarNamespace.getDaysInMonth(j,k);a=quickElement("tr",b);for(var c=0;c<d;c++){var g=quickElement("td",a," ");g.style.backgroundColor="#f3f3f3"}var f=1;for(var c=d;f<=m;c++){if(c%7==0&&f!=1){a=quickElement("tr",b)}var l=quickElement("td",a,"");quickElement("a",l,f,"href","javascript:void("+n+"("+k+","+j+","+f+"));");f++}while(a.childNodes.length<7){var g=quickElement("td",a," ");g.style.backgroundColor="#f3f3f3"}o.appendChild(h)}};function Calendar(a,b){this.div_id=a;this.callback=b;this.today=new Date();this.currentMonth=this.today.getMonth()+1;this.currentYear=this.today.getFullYear()}Calendar.prototype={drawCurrent:function(){CalendarNamespace.draw(this.currentMonth,this.currentYear,this.div_id,this.callback)},drawDate:function(b,a){this.currentMonth=b;this.currentYear=a;this.drawCurrent()},drawPreviousMonth:function(){if(this.currentMonth==1){this.currentMonth=12;this.currentYear--}else{this.currentMonth--}this.drawCurrent()},drawNextMonth:function(){if(this.currentMonth==12){this.currentMonth=1;this.currentYear++}else{this.currentMonth++}this.drawCurrent()},drawPreviousYear:function(){this.currentYear--;this.drawCurrent()},drawNextYear:function(){this.currentYear++;this.drawCurrent()}};

File _generated_media/1/admin_media/js/core.js

+var isOpera=(navigator.userAgent.indexOf("Opera")>=0)&&parseFloat(navigator.appVersion);var isIE=((document.all)&&(!isOpera))&&parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0]);function addEvent(d,c,a){if(d.addEventListener){d.addEventListener(c,a,false);return true}else{if(d.attachEvent){var b=d.attachEvent("on"+c,a);return b}else{return false}}}function removeEvent(c,b,a){if(c.removeEventListener){c.removeEventListener(b,a,false);return true}else{if(c.detachEvent){c.detachEvent("on"+b,a);return true}else{return false}}}function quickElement(){var c=document.createElement(arguments[0]);if(arguments[2]!=""&&arguments[2]!=null){var d=document.createTextNode(arguments[2]);c.appendChild(d)}var a=arguments.length;for(var b=3;b<a;b+=2){c.setAttribute(arguments[b],arguments[b+1])}arguments[1].appendChild(c);return c}var xmlhttp;
+/*@cc_on @*/
+/*@if (@_jscript_version >= 5)
+    try {
+        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
+    } catch (e) {
+        try {
+            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+        } catch (E) {
+            xmlhttp = false;
+        }
+    }
+@else
+    xmlhttp = false;
+@end @*/
+if(!xmlhttp&&typeof XMLHttpRequest!="undefined"){xmlhttp=new XMLHttpRequest()}function findPosX(a){var b=0;if(a.offsetParent){while(a.offsetParent){b+=a.offsetLeft-((isOpera)?0:a.scrollLeft);a=a.offsetParent}if(isIE&&a.parentElement){b+=a.offsetLeft-a.scrollLeft}}else{if(a.x){b+=a.x}}return b}function findPosY(b){var a=0;if(b.offsetParent){while(b.offsetParent){a+=b.offsetTop-((isOpera)?0:b.scrollTop);b=b.offsetParent}if(isIE&&b.parentElement){a+=b.offsetTop-b.scrollTop}}else{if(b.y){a+=b.y}}return a}Date.prototype.getCorrectYear=function(){var a=this.getYear()%100;return(a<38)?a+2000:a+1900};Date.prototype.getTwoDigitMonth=function(){return(this.getMonth()<9)?"0"+(this.getMonth()+1):(this.getMonth()+1)};Date.prototype.getTwoDigitDate=function(){return(this.getDate()<10)?"0"+this.getDate():this.getDate()};Date.prototype.getTwoDigitHour=function(){return(this.getHours()<10)?"0"+this.getHours():this.getHours()};Date.prototype.getTwoDigitMinute=function(){return(this.getMinutes()<10)?"0"+this.getMinutes():this.getMinutes()};Date.prototype.getTwoDigitSecond=function(){return(this.getSeconds()<10)?"0"+this.getSeconds():this.getSeconds()};Date.prototype.getISODate=function(){return this.getCorrectYear()+"-"+this.getTwoDigitMonth()+"-"+this.getTwoDigitDate()};Date.prototype.getHourMinute=function(){return this.getTwoDigitHour()+":"+this.getTwoDigitMinute()};Date.prototype.getHourMinuteSecond=function(){return this.getTwoDigitHour()+":"+this.getTwoDigitMinute()+":"+this.getTwoDigitSecond()};String.prototype.pad_left=function(d,c){var b=this;for(var a=0;b.length<d;a++){b=c+b}return b};function getStyle(a,b){var c="";if(document.defaultView&&document.defaultView.getComputedStyle){c=document.defaultView.getComputedStyle(a,"").getPropertyValue(b)}else{if(a.currentStyle){b=b.replace(/\-(\w)/g,function(d,e){return e.toUpperCase()});c=a.currentStyle[b]}}return c};

File _generated_media/1/admin_media/js/dateparse.js

+if(typeof Array.prototype.indexOf=="undefined"){Array.prototype.indexOf=function(c){var a=this.length;for(var b=0;b<a;b++){if(this[b]==c){return b}}return -1}}if(typeof Array.prototype.filter=="undefined"){Array.prototype.filter=function(d){var c=[];var a=this.length;for(var b=0;b<a;b++){if(d(this[b])){c[c.length]=this[b]}}return c}}var monthNames=gettext("January February March April May June July August September October November December").split(" ");var weekdayNames=gettext("Sunday Monday Tuesday Wednesday Thursday Friday Saturday").split(" ");function parseMonth(b){var a=monthNames.filter(function(c){return new RegExp("^"+b,"i").test(c)});if(a.length==0){throw new Error("Invalid month string")}if(a.length>1){throw new Error("Ambiguous month")}return monthNames.indexOf(a[0])}function parseWeekday(b){var a=weekdayNames.filter(function(c){return new RegExp("^"+b,"i").test(c)});if(a.length==0){throw new Error("Invalid day string")}if(a.length>1){throw new Error("Ambiguous weekday")}return weekdayNames.indexOf(a[0])}var dateParsePatterns=[{re:/^tod/i,handler:function(){return new Date()}},{re:/^tom/i,handler:function(){var a=new Date();a.setDate(a.getDate()+1);return a}},{re:/^yes/i,handler:function(){var a=new Date();a.setDate(a.getDate()-1);return a}},{re:/^(\d{1,2})(st|nd|rd|th)?$/i,handler:function(a){var b=new Date();b.setDate(parseInt(a[1],10));return b}},{re:/^(\d{1,2})(?:st|nd|rd|th)? (\w+)$/i,handler:function(a){var b=new Date();b.setDate(parseInt(a[1],10));b.setMonth(parseMonth(a[2]));return b}},{re:/^(\d{1,2})(?:st|nd|rd|th)? (\w+),? (\d{4})$/i,handler:function(a){var b=new Date();b.setDate(parseInt(a[1],10));b.setMonth(parseMonth(a[2]));b.setYear(a[3]);return b}},{re:/^(\w+) (\d{1,2})(?:st|nd|rd|th)?$/i,handler:function(a){var b=new Date();b.setDate(parseInt(a[2],10));b.setMonth(parseMonth(a[1]));return b}},{re:/^(\w+) (\d{1,2})(?:st|nd|rd|th)?,? (\d{4})$/i,handler:function(a){var b=new Date();b.setDate(parseInt(a[2],10));b.setMonth(parseMonth(a[1]));b.setYear(a[3]);return b}},{re:/^next (\w+)$/i,handler:function(e){var f=new Date();var b=f.getDay();var c=parseWeekday(e[1]);var a=c-b;if(c<=b){a+=7}f.setDate(f.getDate()+a);return f}},{re:/^last (\w+)$/i,handler:function(a){throw new Error("Not yet implemented")}},{re:/(\d{1,2})\/(\d{1,2})\/(\d{4})/,handler:function(a){var b=new Date();b.setYear(a[3]);b.setDate(parseInt(a[2],10));b.setMonth(parseInt(a[1],10)-1);return b}},{re:/(\d{4})-(\d{1,2})-(\d{1,2})/,handler:function(a){var b=new Date();b.setYear(parseInt(a[1]));b.setMonth(parseInt(a[2],10)-1);b.setDate(parseInt(a[3],10));return b}},];function parseDateString(d){for(var a=0;a<dateParsePatterns.length;a++){var c=dateParsePatterns[a].re;var b=dateParsePatterns[a].handler;var e=c.exec(d);if(e){return b(e)}}throw new Error("Invalid date string")}function fmt00(a){if(Math.abs(parseInt(a))<10){a="0"+Math.abs(a)}return a}function parseDateStringISO(a){try{var c=parseDateString(a);return c.getFullYear()+"-"+(fmt00(c.getMonth()+1))+"-"+fmt00(c.getDate())}catch(b){return a}}function magicDate(a){var c=a.id+"Msg";try{var g=parseDateString(a.value);a.value=g.getFullYear()+"-"+(fmt00(g.getMonth()+1))+"-"+fmt00(g.getDate());a.className="";if(document.getElementById(c)){document.getElementById(c).firstChild.nodeValue=g.toDateString();document.getElementById(c).className="normal"}}catch(f){a.className="error";var b=f.message;if(b.indexOf("is null or not an object")>-1){b="Invalid date string"}if(document.getElementById(c)){document.getElementById(c).firstChild.nodeValue=b;document.getElementById(c).className="error"}}};

File _generated_media/1/admin_media/js/getElementsBySelector.js

+function getAllChildren(a){return a.all?a.all:a.getElementsByTagName("*")}document.getElementsBySelector=function(v){if(!document.getElementsByTagName){return new Array()}var p=v.split(" ");var g=new Array(document);for(var x=0;x<p.length;x++){token=p[x].replace(/^\s+/,"").replace(/\s+$/,"");if(token.indexOf("#")>-1){var s=token.split("#");var d=s[0];var r=s[1];var b=document.getElementById(r);if(d&&b.nodeName.toLowerCase()!=d){return new Array()}g=new Array(b);continue}if(token.indexOf(".")>-1){var s=token.split(".");var d=s[0];var c=s[1];if(!d){d="*"}var m=new Array;var l=0;for(var y=0;y<g.length;y++){var n;if(d=="*"){n=getAllChildren(g[y])}else{try{n=g[y].getElementsByTagName(d)}catch(z){n=[]}}for(var u=0;u<n.length;u++){m[l++]=n[u]}}g=new Array;var q=0;for(var t=0;t<m.length;t++){if(m[t].className&&m[t].className.match(new RegExp("\\b"+c+"\\b"))){g[q++]=m[t]}}continue}if(token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)){var d=RegExp.$1;var w=RegExp.$2;var a=RegExp.$3;var o=RegExp.$4;if(!d){d="*"}var m=new Array;var l=0;for(var y=0;y<g.length;y++){var n;if(d=="*"){n=getAllChildren(g[y])}else{n=g[y].getElementsByTagName(d)}for(var u=0;u<n.length;u++){m[l++]=n[u]}}g=new Array;var q=0;var f;switch(a){case"=":f=function(h){return(h.getAttribute(w)==o)};break;case"~":f=function(h){return(h.getAttribute(w).match(new RegExp("\\b"+o+"\\b")))};break;case"|":f=function(h){return(h.getAttribute(w).match(new RegExp("^"+o+"-?")))};break;case"^":f=function(h){return(h.getAttribute(w).indexOf(o)==0)};break;case"$":f=function(h){return(h.getAttribute(w).lastIndexOf(o)==h.getAttribute(w).length-o.length)};break;case"*":f=function(h){return(h.getAttribute(w).indexOf(o)>-1)};break;default:f=function(h){return h.getAttribute(w)}}g=new Array;var q=0;for(var t=0;t<m.length;t++){if(f(m[t])){g[q++]=m[t]}}continue}d=token;var m=new Array;var l=0;for(var y=0;y<g.length;y++){var n=g[y].getElementsByTagName(d);for(var u=0;u<n.length;u++){m[l++]=n[u]}}g=m}return g};

File _generated_media/1/admin_media/js/timeparse.js

+var timeParsePatterns=[{re:/^\d{1,2}$/i,handler:function(a){if(a[0].length==1){return"0"+a[0]+":00"}else{return a[0]+":00"}}},{re:/^\d{2}[:.]\d{2}$/i,handler:function(a){return a[0].replace(".",":")}},{re:/^\d[:.]\d{2}$/i,handler:function(a){return"0"+a[0].replace(".",":")}},{re:/^(\d+)\s*([ap])(?:.?m.?)?$/i,handler:function(b){var a=parseInt(b[1]);if(a==12){a=0}if(b[2].toLowerCase()=="p"){if(a==12){a=0}return(a+12)+":00"}else{if(a<10){return"0"+a+":00"}else{return a+":00"}}}},{re:/^(\d+)[.:](\d{2})\s*([ap]).?m.?$/i,handler:function(c){var a=parseInt(c[1]);var b=parseInt(c[2]);if(b<10){b="0"+b}if(a==12){a=0}if(c[3].toLowerCase()=="p"){if(a==12){a=0}return(a+12)+":"+b}else{if(a<10){return"0"+a+":"+b}else{return a+":"+b}}}},{re:/^no/i,handler:function(a){return"12:00"}},{re:/^mid/i,handler:function(a){return"00:00"}}];function parseTimeString(d){for(var a=0;a<timeParsePatterns.length;a++){var c=timeParsePatterns[a].re;var b=timeParsePatterns[a].handler;var e=c.exec(d);if(e){return b(e)}}return d};

File _generated_media/1/admin_media/js/urlify.js

+var LATIN_MAP={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ő":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ű":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ő":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ű":"u","ý":"y","þ":"th","ÿ":"y"};var LATIN_SYMBOLS_MAP={"©":"(c)"};var GREEK_MAP={"α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ά":"a","έ":"e","ί":"i","ό":"o","ύ":"y","ή":"h","ώ":"w","ς":"s","ϊ":"i","ΰ":"y","ϋ":"y","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ά":"A","Έ":"E","Ί":"I","Ό":"O","Ύ":"Y","Ή":"H","Ώ":"W","Ϊ":"I","Ϋ":"Y"};var TURKISH_MAP={"ş":"s","Ş":"S","ı":"i","İ":"I","ç":"c","Ç":"C","ü":"u","Ü":"U","ö":"o","Ö":"O","ğ":"g","Ğ":"G"};var RUSSIAN_MAP={"а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ё":"yo","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ё":"Yo","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya"};var UKRAINIAN_MAP={"Є":"Ye","І":"I","Ї":"Yi","Ґ":"G","є":"ye","і":"i","ї":"yi","ґ":"g"};var CZECH_MAP={"č":"c","ď":"d","ě":"e","ň":"n","ř":"r","š":"s","ť":"t","ů":"u","ž":"z","Č":"C","Ď":"D","Ě":"E","Ň":"N","Ř":"R","Š":"S","Ť":"T","Ů":"U","Ž":"Z"};var POLISH_MAP={"ą":"a","ć":"c","ę":"e","ł":"l","ń":"n","ó":"o","ś":"s","ź":"z","ż":"z","Ą":"A","Ć":"C","Ę":"e","Ł":"L","Ń":"N","Ó":"o","Ś":"S","Ź":"Z","Ż":"Z"};var LATVIAN_MAP={"ā":"a","č":"c","ē":"e","ģ":"g","ī":"i","ķ":"k","ļ":"l","ņ":"n","š":"s","ū":"u","ž":"z","Ā":"A","Č":"C","Ē":"E","Ģ":"G","Ī":"i","Ķ":"k","Ļ":"L","Ņ":"N","Š":"S","Ū":"u","Ž":"Z"};var ALL_DOWNCODE_MAPS=new Array();ALL_DOWNCODE_MAPS[0]=LATIN_MAP;ALL_DOWNCODE_MAPS[1]=LATIN_SYMBOLS_MAP;ALL_DOWNCODE_MAPS[2]=GREEK_MAP;ALL_DOWNCODE_MAPS[3]=TURKISH_MAP;ALL_DOWNCODE_MAPS[4]=RUSSIAN_MAP;ALL_DOWNCODE_MAPS[5]=UKRAINIAN_MAP;ALL_DOWNCODE_MAPS[6]=CZECH_MAP;ALL_DOWNCODE_MAPS[7]=POLISH_MAP;ALL_DOWNCODE_MAPS[8]=LATVIAN_MAP;var Downcoder=new Object();Downcoder.Initialize=function(){if(Downcoder.map){return}Downcoder.map={};Downcoder.chars="";for(var a in ALL_DOWNCODE_MAPS){var b=ALL_DOWNCODE_MAPS[a];for(var d in b){Downcoder.map[d]=b[d];Downcoder.chars+=d}}Downcoder.regex=new RegExp("["+Downcoder.chars+"]|[^"+Downcoder.chars+"]+","g")};downcode=function(b){Downcoder.Initialize();var c="";var e=b.match(Downcoder.regex);if(e){for(var d=0;d<e.length;d++){if(e[d].length==1){var a=Downcoder.map[e[d]];if(a!=null){c+=a;continue}}c+=e[d]}}else{c=b}return c};function URLify(b,a){b=downcode(b);removelist=["a","an","as","at","before","but","by","for","from","is","in","into","like","of","off","on","onto","per","since","than","the","this","that","to","up","via","with"];r=new RegExp("\\b("+removelist.join("|")+")\\b","gi");b=b.replace(r,"");b=b.replace(/[^-\w\s]/g,"");b=b.replace(/^\s+|\s+$/g,"");b=b.replace(/[-\s]+/g,"-");b=b.toLowerCase();return b.substring(0,a)};
+application: rua
+version: 1
+runtime: python
+api_version: 1
+
+default_expiration: '3650d'
+
+handlers:
+- url: /remote_api
+  script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
+  login: admin
+
+- url: /css
+  static_dir: css
+
+- url: /js
+  static_dir: js
+
+- url: /img
+  static_dir: img
+
+- url: /media
+  static_dir: _generated_media
+
+- url: /.*
+  script: common/appenginepatch/main.py
+  
+skip_files:
+  - ^(.*/)?app\.yaml
+  - ^(.*/)?app\.yml
+  - ^(.*/)?index\.yaml
+  - ^(.*/)?index\.yml
+  - ^(.*/)?#.*#
+  - ^(.*/)?.*~
+  - ^(.*/)?.*\.py[co]
+  - ^(.*/)?.*/RCS/.*
+  - ^(.*/)?\..*
+  - ^(.*/)?.*\.psd$

File cogni/__init__.py

Empty file added.

File cogni/getimageinfo.py

+import StringIO
+import struct
+
+def getImageInfo(data):
+    data = str(data)
+    size = len(data)
+    height = -1
+    width = -1
+    content_type = ''
+
+    # handle GIFs
+    if (size >= 10) and data[:6] in ('GIF87a', 'GIF89a'):
+        # Check to see if content_type is correct
+        content_type = 'image/gif'
+        w, h = struct.unpack("<HH", data[6:10])
+        width = int(w)
+        height = int(h)
+
+    # See PNG 2. Edition spec (http://www.w3.org/TR/PNG/)
+    # Bytes 0-7 are below, 4-byte chunk length, then 'IHDR'
+    # and finally the 4-byte width, height
+    elif ((size >= 24) and data.startswith('\211PNG\r\n\032\n')
+          and (data[12:16] == 'IHDR')):
+        content_type = 'image/png'
+        w, h = struct.unpack(">LL", data[16:24])
+        width = int(w)
+        height = int(h)
+
+    # Maybe this is for an older PNG version.
+    elif (size >= 16) and data.startswith('\211PNG\r\n\032\n'):
+        # Check to see if we have the right content type
+        content_type = 'image/png'
+        w, h = struct.unpack(">LL", data[8:16])
+        width = int(w)
+        height = int(h)
+
+    # handle JPEGs
+    elif (size >= 2) and data.startswith('\377\330'):
+        content_type = 'image/jpeg'
+        jpeg = StringIO.StringIO(data)
+        jpeg.read(2)
+        b = jpeg.read(1)
+        try:
+            while (b and ord(b) != 0xDA):
+                while (ord(b) != 0xFF): b = jpeg.read(1)
+                while (ord(b) == 0xFF): b = jpeg.read(1)
+                if (ord(b) >= 0xC0 and ord(b) <= 0xC3):
+                    jpeg.read(3)
+                    h, w = struct.unpack(">HH", jpeg.read(4))
+                    break
+                else:
+                    jpeg.read(int(struct.unpack(">H", jpeg.read(2))[0])-2)
+                b = jpeg.read(1)
+            width = int(w)
+            height = int(h)
+        except struct.error:
+            pass
+        except ValueError:
+            pass
+
+    return content_type, width, height

File cogni/shortcuts.py

+from google.appengine.ext import db
+from django.http import Http404
+from django.core.exceptions import MultipleObjectsReturned
+
+def get_object_or_404(klass, *args):
+    """
+    Return a single object of the class and filter conditions, or 
+    raise an exception. Allows several filter arguments in sequence. 
+    Example: 
+    entry = get_object_or_404(Entry, 'user =', user, 'created_on =', today)
+    """
+    queryset = klass.all()
+    #each pair in args becomes a filter  
+    filter_args = [ (args[i], args[i+1]) for i in range(0, len(args)-1, 2) ]
+    for f_args in filter_args:
+        queryset = queryset.filter(*f_args)
+    results = queryset.fetch(2)
+    if len(results) == 0:
+        raise Http404('No record matches the given query.')
+    if len(results) > 1:
+        raise MultipleObjectsReturned("More than one record returned")
+    else:
+        return results[0]
+
+
+def getkey_object_or_404(klass, key):
+    """
+    Return a single object of the class from the key, or 
+    raise an exception. 
+    """
+    obj = klass.get(db.Key(key))
+    if obj is None:
+        raise Http404('No record matches the given query.')
+    else:
+        return obj

File cogni/templatetags/__init__.py

Empty file added.

File cogni/templatetags/paginator.py

+# from git://github.com/zerok/django-zsutils.git
+# BSD license
+"""
+The pagination tag is a very simple way to add page-navigation to your 
+view/template. When you fetch content from a model and want to have it
+paginated, simply add something like this to your view::
+    
+    page_nr = request.REQUEST.get('p', 1)
+    paginator = Paginator(NewsItem.objects.select_related().all(), 5)
+    page = paginator.page(page_nr)
+    
+and add the page to your context (with the name 'page'). Then add the
+paginator tag to your template first by loading this library::
+    
+    {% load zsutils.pagination %}
+    
+and then by adding the tag itself::
+    
+    {% pagination %}
+    
+That's it. Now you will get a nice simple pagination, which you can easily
+customize by overwriting the pagination.html template.
+ 
+In case the template variable has a different semantic for you, you can
+tell the pagination template tag to use a different context variable through
+settings.CONTEXT_PAGINATION_VARIABLE.
+ 
+By default, you will get 10 pages in your pagination (if your resultset has
+this many pages). You can configure this value again in your settings.py by
+setting PAGINATION_PAGE_LIMIT to whatever number of pages you like (note that
+a value below 3 hardly makes any sense, so you will get an error message if
+you still try that).
+"""
+ 
+from django.template import Library
+from django.conf import settings
+import logging
+
+register = Library()
+ 
+@register.inclusion_tag('pagination.html', takes_context=True)
+def pagination(context, adjacent_pages=2):
+    """
+    For details on this templatetag see the pydoc for this module
+    """
+    ctx_var = getattr(settings, 'CONTEXT_PAGINATION_VARIABLE', 'page')
+    page_limit = int(getattr(settings, 'PAGINATION_PAGE_LIMIT', 10))
+    
+    assert page_limit >= 2, "Set PAGINATION_PAGE_LIMIT to a value bigger than 2"
+    
+    page = context.get(ctx_var, None)
+    if page is None:
+        return {'has_pagination':False}
+    # Calculate the number of pages on each side of the current page
+    lower_half = (page_limit-(page_limit % 2 == 0 and 1 or 0))/2
+    previous_pages = range(1, page.number)[-lower_half:]
+    upper_half = (page_limit/2)
+    if len(previous_pages) < lower_half:
+        upper_half += lower_half-len(previous_pages)
+    next_pages = range(page.number+1, page.paginator.num_pages+1)[:upper_half]
+    if len(next_pages) < upper_half:
+        lower_half += upper_half-len(next_pages)
+        previous_pages = range(1, page.number)[-lower_half:]
+    last_page = page.paginator.num_pages
+    page_numbers = [n for n in \
+                    range(page.number - adjacent_pages, page.number + adjacent_pages + 1) \
+                    if n > 0 and n <= last_page]
+    has_pagination = False or page.paginator.num_pages > 1
+    return {
+        'page': page,