← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~widelands-dev/widelands-website/new-design into lp:widelands-website

 

Nasenbaer has proposed merging lp:~widelands-dev/widelands-website/new-design into lp:widelands-website.

Requested reviews:
  Widelands Developers (widelands-dev)
Related bugs:
  Bug #415959 in Widelands Website: "Unable to upload a widelands map"
  https://bugs.launchpad.net/widelands-website/+bug/415959
  Bug #590151 in Widelands Website: "screenshot application does only scale on width"
  https://bugs.launchpad.net/widelands-website/+bug/590151
  Bug #656567 in Widelands Website: "map upload link available if not logged in and no error message"
  https://bugs.launchpad.net/widelands-website/+bug/656567
  Bug #672291 in Widelands Website: "ware list: link to network pdf would be nice"
  https://bugs.launchpad.net/widelands-website/+bug/672291
  Bug #673112 in Widelands Website: "forum preview uses markdown although bbcode is selected"
  https://bugs.launchpad.net/widelands-website/+bug/673112
  Bug #674584 in Widelands Website: "Screenshot dialog opens in the same place as when first opened"
  https://bugs.launchpad.net/widelands-website/+bug/674584
  Bug #734725 in Widelands Website: "Websites online_help does not pick up changes in graphics"
  https://bugs.launchpad.net/widelands-website/+bug/734725
  Bug #736975 in Widelands Website: "The css-files contain invalid css"
  https://bugs.launchpad.net/widelands-website/+bug/736975
  Bug #965157 in Widelands Website: "No error when sending message to non-existing user"
  https://bugs.launchpad.net/widelands-website/+bug/965157

For more details, see:
https://code.launchpad.net/~widelands-dev/widelands-website/new-design/+merge/113444

I guess this is kind of the wrong way, but I really wonder, what is missing for a backmerge and an update of the Widelands.org site.

I really liked the new design and the enhancements and I just can't wait to finally see it in full action.
-- 
https://code.launchpad.net/~widelands-dev/widelands-website/new-design/+merge/113444
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands-website/new-design into lp:widelands-website.
=== modified file 'README.txt'
--- README.txt	2012-01-21 14:06:29 +0000
+++ README.txt	2012-07-04 18:20:26 +0000
@@ -101,6 +101,21 @@
 See also http://docs.djangoproject.com/en/dev/ref/django-admin/#runserver-port-or-address-port
 for further details. 
 
+Setting up the online help / encyclopedia
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+You will need graphviz to generate the graphs for the online help. On Ubunutu run:
+
+   $ sudo apt-get install graphviz
+
+To generate the online help database switch to your local environment and run:
+
+   $ ./manage.py update_help
+
+After that you can create the overview pdf files with
+
+   $ ./manage.py update_help_pdf
+
 Contact
 =======
 

=== modified file 'media/css/base.css'
--- media/css/base.css	2011-11-19 17:37:52 +0000
+++ media/css/base.css	2012-07-04 18:20:26 +0000
@@ -1,368 +1,363 @@
-/* HEADER */
-div#headerbanner {
-    background: url(../img/headback.jpg);
-    background-repeat: repeat-x;
-    color: #FFFFFF;
-    text-align: center;
-    height:110px;
-    border-bottom:2px solid #090909;
-}
-
-/***************************************************************/
-/*                         SIDECOLUMNS                         */
-/***************************************************************/
-#leftcolumn, #rightcolumn {
-    background-color: #555555;
-    background-image: url('../img/Menubackground.png');
-    border-left: 1px solid #151515;
-    border-right: 1px solid #090909;
-    border-bottom: 1px solid #090909;
-    padding-top: 4px; /* A small space */
-    vertical-align: top;
-
-}
-/* The content is capsuled in divs, because
- * Firefox is ignoring min-width arguments
- * for tables
- */
-#leftcontent {
-    min-width: 175px;
-}
-#rightcontent { 
-    min-width: 185px;
-}
-
-
-/*
-* Mainmenu
-*/
-#mainmenu { 
-    margin: 0px;
-    padding: 0px;
-} 
-#mainmenu li {
-    list-style-image: url('../img/1.gif'); 
-    list-style-position: inside;
-    font-weight: bold;
-    padding: 4px;
-} 
-#mainmenu .sub {
-    padding-left: 20px;
-    color: red;
-    font-weight: normal;
-}
-
-
-/******************/
-/* CONTENT COLUMN */
-/******************/
-#content {
-    text-align: left;
-    vertical-align: top;
-    padding: 8px;
-    padding-top: 0px;
-    background-color: #000000;
-    background: url(../img/background.png);
-
-    font-size: 12px;
-    color: #D0DFFF;
-    width: 100%;
-}
-
-/****************/
-/* BOTTOM TABLE */
-/****************/
-table#table_bottom {
-    background-color: #333333;
-    background: url(../img/background.png);
-
-    width: 100%;
-}
-td#table_bottomleft {
-    background: url(../img/table_bottomleft.png);
-    background-repeat: no-repeat;
-    background-position: left;
-    height:8px;
-    width:8px;
-}
-
-td#table_bottomright {
-    background: url(../img/table_bottomright.png);
-    background-repeat: no-repeat;
-    background-position: right;
-    height:8px;
-    width:8px;
-}
-
-/**********/
-/* FOOTER */
-/**********/
-#footer {
-    width: 100%;
-    height: 8px;
-    background: url(../img/background.png); 
-}
-
-/*
- * Menu Blocks 
- */
-h3.box_title {
-    color: #D0DFFF;
-    font-weight: bold;
-    font-size: 12px;
-    padding-left: 12px;
-    background-image: url('../img/Navbar.png');
-    background-repeat: repeat-x;
-    border-left: 0px solid #999999;
-    border-right: 0px solid #999999;
-    border-bottom: 0px solid #999999;
-    padding-top: 2px;
-    padding-bottom: 6px;
-    margin: 0px;
-}
-
-div.box_content {
-    font-size:12px;
-    line-height: 120%;
-    border-left: 0px solid #999999;
-    border-right: 0px solid #999999;
-    padding: 6px;
-    padding-top: 0px;
-    padding-bottom: 20px;
-    background-color: #555555;
-    background-image: url('../img/Menubackground.png');
-}
-
-div.box_content .sub_content {
-    margin-bottom: 15px;
-}
-
-.box_content p {
-    margin: 0px;
-    padding: 0px;
-    padding-bottom: 4px;
-}
-
-.box_content h4 {
-    margin: 0px;
-    padding: 0px;
-    padding-bottom: 4px;
-}
-
-.block_center {
-    text-align: center;
-}
-
-/***************************************************************/
-/*                   GENERAL STYLE ELEMENTS                    */
-/***************************************************************/
+/* Common */
+
 body {
-    color: #D0DFFF;
-    font-family: Verdana, Arial, Helvetica, sans-serif;
-    font-size: 12px;
-    background-color: #000000;
-    margin: 0;
-    padding: 0;
+	background-color: #e9c78a;
+	background-image: url("../img/parchment.png");
+	font-family: sans-serif;
+	font-size: 14px;
+	line-height: 20px;
+	color: #ffffee;
+	text-shadow: #000000 1px 1px 0px;
 }
 
-img {
-    border: 0px;
+a img {
+	border: none;
 }
 
 a {
-    color: #D0DFFF;
-    text-decoration: none;
-    font-weight: bold;
-    background-color: transparent;
-}
-a.external:before {
-	padding-right: 2px;
-    /* Must be an absolute reference, otherwise some browsers give errors */
-    content: url(/wlmedia/img/external_link.gif);
-}
-a.missing {
-    color: rgb(255, 85, 0);
-} 
-
+	text-decoration: none;
+	color: #ffffee;
+	font-weight: bold;
+}
 
 a:hover {
-    color: #A0AAFF;
-    text-decoration: underline;
-}
-  
-/*
- * Default table layout
- */
-th {
-    font-weight: bold;
-    background-position: left;
-    text-align: left;
-    padding-left: 4px;
-    background-image: url('../img/Navbar.png');
-    background-repeat: repeat-x;
-    height: 20px;
-}
-
-/*
- * Odd Even Tags (mainly for tables)
- */
+	color: #181;
+}
+
+a.invertedColor {
+	color: #181;
+}
+
+a.invertedColor:hover {
+	color: #ffffee;
+}
+
+form {
+	display: inline;
+}
+
+input, button, textarea {
+	margin-bottom: 5px;
+	padding: 2px 10px;
+	border: 1px solid black;
+	border-radius: 10px;
+	background: none;
+	background-image: url("../img/black50.png");
+	outline: none;
+	color: #ffffff;
+	text-shadow: #000000 1px 1px 0px;
+	vertical-align: middle;
+	cursor: pointer;
+	font-family: inherit;
+	font-size: 12px;
+	font-weight: bold;
+}
+
+textarea {
+	font-weight: normal;
+	font-size: 14px;
+}
+
+input:hover, button:hover, textarea:hover {
+	background-image: url("../img/black20.png");
+}
+
+input.radio {
+	background: none;
+	border: none;
+	vertical-align: middle;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	color: #181;
+	margin-top: 0px;
+	font-weight: normal;
+}
+
+svg {
+	text-shadow: none;
+}
+
+td {
+	vertical-align: top;
+	line-height: 20px;
+}
+
+.posLeft {
+	float: left
+}
+
+.posRight {
+	float: right;
+}
+
+.clear {
+	clear: both;
+}
+
+.center  {
+	text-align: center;
+}
+
+.middle {
+	vertical-align: middle;
+}
+
+.grey {
+	color: #998;
+}
+
+.green {
+	color: #181;
+}
+
+.green a {
+	color: #181;
+}
+
+.green a:hover {
+	color: #ffffee;
+}
+.small {
+	font-size: 12px;
+}
+
 .even {
-    background-color: #444444;
-    background: url(../img/background-444.png);
-    padding: 5px;
+	background-image: url("../img/black20.png");
 }
 
 .odd {
-    background-color: #4f4f4f;
-    background: url(../img/background-4F4F4F.png);
-    padding: 5px;
-}
-
-/*
- * Error Handling
- */
+	background-image: url("../img/black50.png");
+}
+
+.placeholder {
+  color: #aaa !important;
+}
+
 .errormessage {
-    color: #ff0000;
-    font-size: 13px;
-}
-
-/* 
- * Search Box
- */
-#id_search {
-    width: 150px; 
-}
-
-/*
- * Events
- */
-.event {
-    text-align: center;
-    width: 100%;
-    padding-bottom: 5px;
-}
-
-.event .date {
-    font-size: 80%
-}
-
-
-/*
- * Box Item Model
- */
-.box_item_model {
-
-}
-
-.border {
-    border: 1px solid rgb(9, 9, 9);
-}
-    
-.full_site {
-    width: 100%;
-}
-
-.fixed_site {
-    width: 540px;
-}
-
-.box_item_model img.news {
-    float: right;
-    padding: 0px;
-    width: 20px;
-}
-
-.box_item_model .border_top {
-    border-top: 1px solid rgb(9, 9, 9);
-}
-
-.box_item_model h3.title {
-    font-weight: bold;
-    font-size: 12px;
-    padding-left: 12px;
-    background-image: url('../img/Navbar.png');
-    background-repeat: repeat-x;
-    border-left: 0px solid #999999;
-    border-right: 0px solid #999999;
-    border-top: 0px solid #999999;
-    padding-top: 2px;
-    padding-bottom: 0px;
-    margin: 0px;
-}
-
-.box_item_model .content {
-    line-height: 120%;
-    border: 0px;
-    padding: 2px;
-    padding-top: 5px;
-    padding-left: 15px;
-    background-color: #3F3F3F;
-    background: url('../img/background-3F3F3F.png');
-}
-
-.box_item_model .info_line {
-    text-align: right;
-    padding: 3px;
-    margin: 0px;
-    background-color: #222222;
-    background: url('../img/background-222.png');
-}
-
-.box_item_model .text {
-   vertical-align: baseline;
-   margin-top: 5px;
-   margin-bottom: 5px;
-   margin: 0px;
-   line-height: 130%;
-}
-
-.box_item_model .text:first-letter {
-    color: #7070FF;
-    font-size: 180%;
-    font-family: Cretino, "Bitstream Vera Serif", serif;
-    font-weight: bold;
-}
-
-.box_item_model .show_right {
-    text-align: right;
-    vertical-align: top;
-}
-
-.box_item_model .show_left {
-    text-align: left;
-    vertical-align: top;
-}
-
-.box_item_model .show_center {
-    text-align: center;
-    vertical-align: top;
-}
-
-.show_center {
-    text-align: center;
-    vertical-align: top;
-}
-.button_send {
-    padding:0;
-    margin:0;
-    border:none;
-    color: #222222;
-    background: url(../forum/img/en/send.png) no-repeat center; 
-    background-repeat: no-repeat;
-    font-size:12px;
-    width:100px;
-    height: 25px;
-    cursor: pointer;
-}
-.button_preview {
-    padding:0;
-    margin:0;
-    border:none;
-    color: #222222;
-    background: url(../forum/img/en/preview.png) no-repeat center; 
-    background-repeat: no-repeat;
-    font-size:12px;
-    width:100px;
-    height: 25px;
-    cursor: pointer;
+	color: #ff0000;
+}
+
+.errormessage ul {
+	margin: 0px;
+}
+
+.noshadow {
+	text-shadow: none;
+}
+
+.italic {
+	font-style: italic;
+}
+
+/* Base */
+
+div#wrapper {
+	min-width: 980px;
+	margin: 0px 20px;
+}
+
+div#header {
+
+}
+
+div #main {
+	min-height: 500px;
+}
+
+div#content {
+	margin-right: 240px;
+}
+
+div#footer {
+	background-color: #695536;
+	background-image: url("../img/wood.png");
+	padding: 15px;
+	margin-top: 20px;
+	text-align: center;
+	box-shadow: black 2px 2px 2px 2px;
+	border: 1px solid #222222;
+	-moz-border-radius-bottomleft: 15px;
+	-moz-border-radius-bottomright: 15px;
+	-khtml-border-radius-bottomleft: 15px;
+	-khtml-border-radius-bottomright: 15px;
+	-webkit-border-bottom-left-radius: 15px;
+	-webkit-border-bottom-right-radius: 15px;
+	border-bottom-left-radius: 15px;
+	border-bottom-right-radius: 15px;
+}
+
+/* Header */
+
+div#header  img{
+	position: relative;
+	z-index: 10;
+}
+
+div.loginBox {
+	width: 320px;
+	height: 90px;
+	border: 1px solid black;
+	background-color: #332f29;
+	background-image: url("../img/but1.png");
+	-moz-border-radius: 15px;
+	-webkit-border-radius: 15px;
+	-khtml-border-radius: 15px;
+	border-radius: 15px;
+	position: relative;
+	z-index: 0;
+	padding: 15px;
+	box-shadow: black 2px 2px 2px 2px;
+}
+
+div.loginBox div.right{
+	width: 120px;
+}
+
+div.loginBox ul {
+	margin: 0px;
+	padding: 0px;
+	list-style-type: none;
+	line-height: 18px;
+}
+
+div.loginBox h4 {
+	margin-bottom: 5px;
+}
+
+div.loginBox input {
+	width: 100px;
+}
+
+div.loginBox button {
+	margin: 0px;
+	padding: 0px;
+	border: 1px solid black;
+	width: 60px;
+	height: 20px;
+	border-radius: 10px;
+	background: none;
+	background-image: url("../img/black50.png");
+	outline: none;
+	color: #ffffff;
+}
+
+/* Right Column */
+
+div#rightColumn {
+	width: 220px;
+}
+
+div.columnModule {
+	width: 220px;
+}
+
+div.columnModule h3 {
+	margin-bottom: 10px;
+}
+
+div.columnModuleBox {
+	width: 220px;
+	margin-bottom: 20px;
+	background-color: #695536;
+	background-image: url("../img/wood.png");
+	border: 1px solid black;
+	box-shadow: black 2px 2px 2px 2px;
+}
+
+div.columnModuleBox h4 {
+	color: #ffffee;
+	padding: 8px;
+	padding-bottom: 0px;
+	margin: 0px;
+}
+
+div.columnModuleBox ul.poll {
+	padding: 8px;
+	list-style-type: disc;
+	border: none;
+}
+
+div.columnModuleBox ul.poll li {
+	padding: 0px;
+	border: none;
+	height: 20px;
+}
+
+div.columnModuleBox p {
+	margin: 0px;
+	padding: 8px;
+}
+
+div.columnModuleBox ul {
+	width: 220px;
+	padding: 0px;
+	margin: 0px;
+	list-style-type: none;
+}
+
+div.columnModuleBox ul.player {
+	padding: 4px;
+	list-style-type: disc;
+}
+
+div.columnModuleBox ul.player li{
+	padding: 4px;
+	border: none;
+}
+
+div.columnModuleBox ul li {
+	display: block;
+	padding: 8px;
+	border-top: 1px solid black;
+	font-size: 12px;
+}
+
+div.columnModuleBox ul li:first-child {
+	border-top: none;
+}
+
+input.donate {
+	border: none;
+	background: none;
+}
+
+/* News Posts */
+
+img.landing {
+	margin-left: 20px;
+	margin-bottom: 15px;
+}
+
+div.blogEntry {
+	background-color: #332f29;
+	background-image: url("../img/but1.png");
+	-moz-border-radius: 15px;
+	-webkit-border-radius: 15px;
+	-khtml-border-radius: 15px;
+	border-radius: 15px;
+	border: 1px solid black;
+	padding: 15px;
+	padding-bottom: 30px;
+	margin-bottom: 20px;
+	box-shadow: black 2px 2px 2px 2px;
+}
+
+div.blogEntry img.title {
+	width: 150px;
+	margin-right: 20px;
+	margin-bottom: 10px;
+}
+
+div.blogEntry p {
+	text-align: justify;
+	margin: 0px;
+	margin-bottom: 10px;
+}
+
+div.blogEntry hr {
+	height: 1px;
+	background: #998;
+	border: none;
+	clear: left;
 }

=== added file 'media/css/base_ielt8.css'
--- media/css/base_ielt8.css	1970-01-01 00:00:00 +0000
+++ media/css/base_ielt8.css	2012-07-04 18:20:26 +0000
@@ -0,0 +1,3 @@
+ul.menu li ul {
+	left: -41px;
+}

=== added file 'media/css/base_ielt9.css'
--- media/css/base_ielt9.css	1970-01-01 00:00:00 +0000
+++ media/css/base_ielt9.css	2012-07-04 18:20:26 +0000
@@ -0,0 +1,9 @@
+ul.menu li a:hover {
+	background-image: url("../img/black50.png");
+}
+
+div.loginBox button {
+	margin: 1px 0px 5px 5px;
+	vertical-align: top;
+	height: 22px;
+}
\ No newline at end of file

=== modified file 'media/css/comments.css'
--- media/css/comments.css	2010-06-12 14:58:31 +0000
+++ media/css/comments.css	2012-07-04 18:20:26 +0000
@@ -2,28 +2,33 @@
  * Comment
  */
 .comment {
-    margin: 0px;
-    padding-bottom: 2px;
-    /*
-     * border: 1px solid rgb(20%,20%,20%);
-     */
-    border-top: 0px;
-    width: 100%;
-}
-.comment p {
-    margin: 0px;
-    margin-bottom: 4px;
-}
-.comment .at {
-   text-align: right;
-   font-size: 90%;
-}
+	border: 1px solid black;
+	padding: 8px;
+	margin-bottom: 5px;
+}
+
+.comment table {
+	border-collapse: collapse;
+	width: 100%;
+}
+
 .comment .author {
-   font-size: 110%;
-   font-style: italic;
-   vertical-align: top;
-   margin-bottom: 5px;
-}
-.text textarea {
-    width: 100%;
+	padding-right: 8px;
+	text-align: center;
+	border-right: 1px solid #998;
+	height: 100%;
+}
+
+.comment .text {
+	padding-left: 8px;
+	width: 100%;
+}
+
+textarea {
+	width: 97%;
+}
+
+.comment .reply_link {
+	vertical-align: bottom;
+	text-align: right;
 }

=== added file 'media/css/documentation.css'
--- media/css/documentation.css	1970-01-01 00:00:00 +0000
+++ media/css/documentation.css	2012-07-04 18:20:26 +0000
@@ -0,0 +1,85 @@
+.sphinx a.headerlink {
+	padding: 0 4px 0 4px;
+	visibility: hidden;
+}
+
+.sphinx *:hover > a.headerlink {
+	visibility: visible; 
+}
+
+/*******************************/
+/* Pygment Syntax Highlighting */
+/*******************************/
+pre {
+	margin: 0px;
+}
+.highlight {
+/*	text-shadow: none;
+/*	color: #000000;*/
+	padding: 4px;
+	border: 1px solid black;
+	background-image: url("../img/black20.png");
+	margin: 4px 0px;
+}
+.highlight .hll { background-color: #ffffcc }
+/*.highlight  { background: #f0f0f0; }*/
+.highlight .c { color: #60a0b0; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #007020; font-weight: bold } /* Keyword */
+.highlight .o { color: #998 } /* Operator */
+.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #007020 } /* Comment.Preproc */
+.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #808080 } /* Generic.Output */
+.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0040D0 } /* Generic.Traceback */
+.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #007020 } /* Keyword.Pseudo */
+.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #902000 } /* Keyword.Type */
+.highlight .m { color: #40a070 } /* Literal.Number */
+.highlight .s { color: #4070a0 } /* Literal.String */
+.highlight .na { color: #4070a0 } /* Name.Attribute */
+.highlight .nb { color: #007020 } /* Name.Builtin */
+.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.highlight .no { color: #60add5 } /* Name.Constant */
+.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #007020 } /* Name.Exception */
+.highlight .nf { color: #aaaa00 } /* Name.Function */
+.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
+.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #bb60d5 } /* Name.Variable */
+.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #40a070 } /* Literal.Number.Float */
+.highlight .mh { color: #40a070 } /* Literal.Number.Hex */
+.highlight .mi { color: #40a070 } /* Literal.Number.Integer */
+.highlight .mo { color: #40a070 } /* Literal.Number.Oct */
+.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
+.highlight .sc { color: #4070a0 } /* Literal.String.Char */
+.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
+.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.highlight .sx { color: #c65d09 } /* Literal.String.Other */
+.highlight .sr { color: #235388 } /* Literal.String.Regex */
+.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
+.highlight .ss { color: #517918 } /* Literal.String.Symbol */
+.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
+.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
+.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */
\ No newline at end of file

=== modified file 'media/css/forum.css'
--- media/css/forum.css	2011-11-13 15:47:39 +0000
+++ media/css/forum.css	2012-07-04 18:20:26 +0000
@@ -1,108 +1,83 @@
-
-.index_category, .index_forum {
-    margin-bottom: 20px;
-    border-left: 0px;
-    border-right: 0px;
-}
-
-.list_overview {
-    display: block;
-    font-weight: bold;
-    padding: 0px;
-    margin-top: 0px;
-    margin-bottom: 0px;
-    background: url('../img/background-444.png');
-}
-
-.title {
-    display: block;
-    font-weight: bold;
-    padding: 5px;
-    margin-top: 5px;
-    margin-bottom: 1px;
-    background: url('../img/background-444.png');
-}
-
-.author {
-   text-align: center;
-}
-
-/*
- * POSTS
- */
-.posts {
-   padding: 0px;
-   margin: 0px;
-}
-.posts th {
-   margin-top: 0px;
-   margin-bottom: 0px;
-   height: auto;
-}
-
-/* 
- * Post
- */
-.post {
-   background-color: rgb(20%,20%,20%); 
-   margin: 0px;
-   padding-bottom: 2px;
-}
+.forum {
+	border: none; 
+	border-collapse: collapse;
+	width: 100%;
+}
+
+.forum tr {
+	border: 1px solid black;
+}
+
+.forum thead tr {
+	border: none;
+}
+
+.forum td {
+	vertical-align: middle;
+	padding: 8px;
+}
+
+.forumIcon {
+	width: 50px;
+}
+
+.forumTitle {
+	width: 40%;
+}
+
+.forumCount {
+	width: 120px;
+}
+
+.lastPost {
+	text-align: right;
+}
+
+.forum .author {
+	width: 140px;
+	text-align: center;
+	border-right: 1px solid black;
+	vertical-align: top;
+}
+
+.forum .post {
+	vertical-align: top;
+}
+
+.authorStats {
+	text-align: left;
+	font-size: 10px;
+	line-height: 12px;
+}
+
+tr.spacer {
+	height: 10px;
+	border: none;
+}
+
 .post p {
-    margin: 8px 0px 8px;
-    padding: 0px;
+	margin: 0px;
+	margin-bottom: 8px;
+	padding: 0px;
 }
 
-.post .at {
-   text-align: right;
-   font-size: 90%;
-}
-.post .userinfo {
-   font-size: 90%;
-   vertical-align: top;
-}
-.post .odd {
-   margin: 0px;
-   padding: 0px;
-}
-.post table {
-   border-collapse: collapse;
-}
-.post td {
-   border: 1px solid rgb(20%,20%,20%); 
-}
 .post blockquote {
-   background: rgb(51, 51, 51);
-   border: 0px inset rgb(0, 0, 128);
-   font-family: 'Courier New', Courier, monospace;
-   padding: 0px 6px 6px 6px;
-   margin: 2px;
-   margin-left: 10px;
-}
-.post .tools {
-   vertical-align: bottom;
-}
-.first_post {
-   padding-bottom: 20px;
-   border: 1px solid rgb(100,100,100);
-   margin-bottom: 20px;
-}
-.post .avatar {
-    width: 100%;
-    padding: 2px;
-}
-.post .top {
-    vertical-align: top;
-}
-.post .top .signature .line {
-    color: #D0DFFF;
-    font-weight: bolder;
-}
-
-
-/*
- * Compose
- */
+	background-image: url("../forum/img/quote.png");
+	background-repeat: no-repeat;
+	background-position: 4px 4px;
+	border: 1px solid black;
+	padding: 4px;
+	padding-left: 28px;
+	margin: 4px;
+}
+
+.preview-box .content {
+	background-image: url("../img/black50.png");
+	border: 1px solid black;
+	padding: 4px;
+	width: 98%;
+}
+
 .post-form #id_subject {
     width: 40%;
 }
@@ -111,14 +86,16 @@
 }
 .post-form #id_body {
    width: 98%;
+   max-width: 98%;
    height: 150px;
 }
-.post .bold  {
-    font-weight: bold;
-}
-.post .underline {
-    text-decoration: underline;
-}
-.post .italic {
-    font-style: italic;
+
+a.permalink {
+	width: 16px;
+	height: 20px;
+	background-image: url("../forum/img/permalink.png");
+}
+
+a.permalink:hover {
+	background-image: url("../forum/img/permalink_hover.png");
 }

=== added file 'media/css/help.css'
--- media/css/help.css	1970-01-01 00:00:00 +0000
+++ media/css/help.css	2012-07-04 18:20:26 +0000
@@ -0,0 +1,25 @@
+table.help {
+	width: 100%;
+	border-collapse: collapse;
+	margin-bottom: 20px;
+}
+
+table.help tr {
+	
+}
+
+table.help th {
+	padding: 4px;
+	font-weight: normal;
+	font-size: 12px;
+	text-align: left;
+}
+
+table.help td {
+	padding: 4px;
+	border: 1px solid black;
+}
+
+img.icon {
+	margin: 0px 10px 10px 0px;
+}
\ No newline at end of file

=== modified file 'media/css/maps.css'
--- media/css/maps.css	2009-04-11 15:21:15 +0000
+++ media/css/maps.css	2012-07-04 18:20:26 +0000
@@ -1,26 +1,27 @@
-
-#map_list {
-    padding: 5px;
-}
-
-h1 {
-    display: block;
-    font-weight: bold;
-    padding: 5px;
-    margin-top: 5px;
-    margin-bottom: 1px;
-    background: url('../img/background-444.png');
-}
-
-.map_details .author {
-    display: block;
-}
-.map_details .uploader {
-    display: block;
-    margin-bottom: 10px; 
-}
-
-/* Modified css for jqModal */
-div.jqmDialog {
-    width: 480px;
-}
+img.minimap {
+	max-height: 250px;
+}
+
+img.map {
+	margin: 0px 10px 10px 0px;
+}
+
+.forum table td {
+	padding: 2px;
+}
+
+.forum td {
+	vertical-align: top;
+}
+
+.forum .spacer {
+	width: 15px;
+}
+
+p {
+	vertical-align: top;
+}
+
+textarea {
+	width: 97%;
+}
\ No newline at end of file

=== modified file 'media/css/messages.css'
--- media/css/messages.css	2011-04-10 18:50:34 +0000
+++ media/css/messages.css	2012-07-04 18:20:26 +0000
@@ -1,74 +1,36 @@
-
-
-h1 {
-    display: block;
-    font-weight: bold;
-    padding: 5px;
-    margin-top: 5px;
-    margin-bottom: 1px;
-    background: url('../img/background-444.png');
-}
-
-/*
- * MESSAGES
- */
-.messages {
-    margin-bottom: 20px;
-    width: 100%;
-}
-.messages {
-   padding: 0px;
-   margin: 0px;
-}
 .messages th {
-   margin-top: 4px;
-   margin-bottom: 2px;
-}
-
-/* 
- * Post
- */
-.message {
-   background-color: rgb(20%,20%,20%); 
-   margin: 0px;
-   padding-bottom: 2px;
-   border-top: 0px;
-}
-.message .odd {
-   margin: 0px;
-   padding: 0px;
-}
-.message_display {
-  background: url('../img/background-3f3f3f.png');
-  padding-bottom: 1px;
-}
-.message_display .content {
-   background: url('../img/background-222.png');
-   font-family: 'Courier New', Courier, monospace;
-   padding: 10px;
-   margin: 10px;
-}
-
-/*
- * Compose
- */
-#id_recipient {
-    width: 40%;
-}
-#id_subject {
-    width: 40%;
-}
-#id_body {
-   width: 98%;
-   height: 200px;
-}
-
-/*
- * MessageBox style
- */
-
-.message_image img {
-   float: right;   
-   padding: 0px;
-   margin-left: 20px;
+	border: 1px solid black;
+	font-size: 12px;
+	text-align: left;
+	font-weight: normal;
+	background-image: url("../img/black50.png");
+	padding: 4px;
+}
+
+.messages {
+	width: 100%;
+	border-collapse: collapse;
+}
+
+.messages td {
+	padding: 4px;
+}
+
+th.msg_menu {
+	width: 130px;
+	vertical-align: top;
+}
+
+td.msg_box {
+	padding-top: 0px;
+}
+
+.messages ul {
+	padding: 0px;
+	margin: 0px;
+	list-style-type: none;
+}
+
+.messages textarea {
+	width: 100%;
 }

=== modified file 'media/css/navigation.css'
--- media/css/navigation.css	2011-07-03 18:14:07 +0000
+++ media/css/navigation.css	2012-07-04 18:20:26 +0000
@@ -1,60 +1,111 @@
-div.dropdown {
-	width: auto;
-	min-width: 920px;
-	height: 20px;
+/* Top Menu */
+
+div.searchBox {
+	height: 20px;
+	padding: 15px;
+}
+
+div.searchBoxInner {
+	border: 1px solid black;
+	width: 150px;
+	padding: 0px 10px 0px 10px;
+	height: 20px;
+	border-radius: 10px;
+	-moz-border-radius: 10px;
+	-webkit-border-radius: 10px;
+	-khtml-border-radius: 10px;
+	background-color: #332f29;
+	background-image: url("../img/but1.png");
+}
+
+input.searchField {
+	margin: 0px;
+	border: none;
+	background: none;
+	width: 150px;
+	outline: none;
+	color: #ffffff;
+	padding: 0px;
+}
+
+div#topmenu {
+	position: relative;
+	z-index: 5;
+	top: -30px;
+	clear: both;
+	height: 50px;
+	background-color: #695536;
+	background-image: url("../img/wood.png");
+	border: 1px solid #222222;
+	box-shadow: black 2px 2px 2px 2px;
+}
+
+ul.menu {
+	margin: 0px;
+	padding: 0px;
+}
+
+ul.menu li {
+	list-style-type: none;
+	float: left;
+	position: relative;
+}
+
+ul.menu  li a {
+	display: block;
+	width: 120px;
+	height: 50px;
+	line-height: 50px;
+	float: left;
+	border-right: 1px solid #222222;
+	text-align: center;
+	vertical-align: middle;
+	color: #ffffff;
+	text-transform: uppercase;
+	font-weight: normal;
+}
+
+ul.menu li a:hover {
+	box-shadow: black 0px 0px 10px 0px inset;
+}
+
+ul.menu li a.active {
+	box-shadow: black 0px 0px 10px 0px inset;
+	background-image: url("../img/black50.png");
+}
+
+ul.menu li ul {
+	display: none;
+	position: absolute;
+	top: 50px;
+	left: -1px;
+	background-color: #695536;
+	background-image: url("../img/wood.png");
+	padding: 0px;
+	border: 1px solid #222222;
+	box-shadow: black 2px 2px 2px 2px;
+}
+
+ul.menu li:hover ul {
+	display: block;
+}
+
+ul.menu li ul li {
+	clear: both;
+	border-top: 1px solid #222222;
+}
+
+ul.menu li ul li a {
+	display: block;
+	width: 250px;
+	height: 20px;
+	line-height: 20px;
+	padding: 4px;
 	text-align: left;
-	position:relative;
-	z-index:2;
-}
-
-div.dropdown ul {
-	padding: 0;
-	margin: 0;
-    background-image: url(../img/Navbar.png);
-    background-repeat: repeat-x;
-}
-
-div.dropdown li{
-	list-style: none;
-	position: relative;
-	white-space: nowrap;
-}
-
-div.dropdown a {
-    display: block;
-    text-decoration: none;
-    padding: 3px 20px;
-}
-
-div.dropdown > ul > li{
-	display: inline-block;
-}
-
-div.dropdown li ul {
-/* Positions and hides submenus. */
-	position: absolute;
-	top: 19px;
-	visibility: hidden;
-	border: 1px solid rgb(12,12,12);
-    background-image: url(../img/background-4A4A4A.png);
-    background-repeat: repeat;
-}
-
-div.dropdown li li {
-	 border-bottom: 1px solid rgb(54,54,54);
-}
-
-div.dropdown li:hover > ul {
-	visibility: visible;
-}
-
-div.arrow-down {
-	position: relative;
-	top: -12px;
-	left: +20px;
-	width: 0;
-	height: 0;
-	border-left: 5px solid transparent;
-	border-right: 5px solid transparent;
-	border-top: 5px solid #D0DFFF;
+	font-size: 12px;
+	border: none;
+}
+
+ul.menu li ul li:first-child {
+	border: none;
 }

=== modified file 'media/css/news.css'
--- media/css/news.css	2010-10-30 18:33:48 +0000
+++ media/css/news.css	2012-07-04 18:20:26 +0000
@@ -1,68 +0,0 @@
-/**************************/
-/* General Style elements */
-/**************************/
-.text h1 {
-    font-size: 2.5em;
-    margin: 10px 0px;
-}
-.text h2 {
-    font-size: 2em;
-    margin: 25px 0px 10px;
-    line-height: 70%;
-}
-.text h3 {
-    font-size: 1.4em;
-    margin: 5px 0px;
-}
-.text h4 {
-    font-size: 1.30em;
-    margin: 5px 0px;
-    /*
-     * text-decoration: underline; 
-     * */
-}
-.text h5 {
-    font-size: 1.2em;
-    margin: 5px 0px;
-    /*
-     * text-decoration: underline;
-     * font-style: italic;
-     * */
-}
-.text h6 {
-    font-size: 1.1em; 
-    margin: 5px 0px;
-    /*
-     * font-style: italic;
-     * */
-}
-
-.text h1:first-letter,.text h2:first-letter,.text h3:first-letter,.text h4:first-letter,.text h5:first-letter {
-     vertical-align: baseline;
-     color: #7070FF;
-     font-size: 180%;
-     font-family: Cretino, "Bitstream Vera Serif", serif;
-     font-weight: bold;
-}
-.text h3:first-letter {
-    color: rgb(156,156,86);
-}
-.text h4:first-letter {
-    color: rgb(156,86,156);
-    font-size: 150%;
-}
-.text h5:first-letter {
-    color: rgb(86,156,156);
-    font-size: 120%;
-}
-.news_poster { 
-    font-size: 90%;
-}
-.news_post_date { 
-    font-size: 90%;
-}
-.news_image img {
-    float:right;
-    margin-left:20px;
-    padding:0;
-}

=== modified file 'media/css/notice.css'
--- media/css/notice.css	2010-06-12 15:25:46 +0000
+++ media/css/notice.css	2012-07-04 18:20:26 +0000
@@ -1,12 +1,30 @@
-.notice_poster { 
-    font-size: 90%;
-}
-.notice_post_date { 
-    font-size: 90%;
-}
-.notice_unseen_notice {
-    font-style: italic;
-}
-.notice_type {
-    font-weight: bold;
+.notifications {
+	width: 100%;
+	border-collapse: collapse;
+}
+
+.notifications td {
+	border: 1px solid black;
+	padding: 4px;
+	vertical-align: middle;
+}
+
+.notifications th {
+	border: none;
+	padding: 4px;
+	padding-top: 20px;
+	text-align: left;
+	font-weight: normal;
+}
+
+.notifications .type {
+	width: 20%;
+}
+
+.notifications .text{
+	width: 60%;
+}
+
+.notifications .date {
+	width: 20%;
 }

=== modified file 'media/css/profile.css'
--- media/css/profile.css	2010-06-12 16:05:19 +0000
+++ media/css/profile.css	2012-07-04 18:20:26 +0000
@@ -1,11 +1,3 @@
-.profile_poster { 
-    font-size: 90%;
-}
-.profile_post_date { 
-    font-size: 90%;
-}
-.profile_image img {
-   float: right;   
-   padding: 0px;
-   margin-left: 20px;
-}
+td {
+	padding: 4px;
+}
\ No newline at end of file

=== modified file 'media/css/screens.css'
--- media/css/screens.css	2009-04-11 19:14:49 +0000
+++ media/css/screens.css	2012-07-04 18:20:26 +0000
@@ -1,22 +1,7 @@
-.category {
-    font-weight: bold;
-    padding: 5px;
-    margin-top: 5px;
-    margin-bottom: 1px;
-    background: url('../img/background-444.png');
-}
-
-.image_display {
-    margin: 4px 0px;
-}
-
-.sizes {
-    text-align: right;
-    font-size: 100%;
-}
-
 .screenshot_list {
     list-style-type: none;
+	margin: 0px;
+	padding: 0px;
 }
 
 .screenshot_list li {

=== modified file 'media/css/search.css'
--- media/css/search.css	2009-03-23 20:34:20 +0000
+++ media/css/search.css	2012-07-04 18:20:26 +0000
@@ -1,22 +0,0 @@
-
-
-.search h1 {
-    display: block;
-    font-weight: bold;
-    padding: 5px;
-    margin-top: 5px;
-    margin-bottom: 1px;
-    background: url('../img/background-444.png');
-}
-
-.search ul {
-   list-style: none; 
-}
-
-.search .results .wiki {
-   margin-bottom: 2px;
-}
-
-.posted {
-   font-size: 80%;
-}

=== modified file 'media/css/wiki.css'
--- media/css/wiki.css	2010-01-03 21:51:19 +0000
+++ media/css/wiki.css	2012-07-04 18:20:26 +0000
@@ -1,96 +1,57 @@
-/**************************/
-/* General Style elements */
-/**************************/
-.wiki_article h1 {
-    font-size: 2.5em;
-    margin: 10px 0px;
-}
-.wiki_article h2 {
-    font-size: 2em;
-    margin: 25px 3px 10px;
-    line-height: 70%;
-}
-.wiki_article h3 {
-    font-size: 1.4em;
-    margin: 5px 5px;
-}
-.wiki_article h4 {
-    font-size: 1.30em;
-    margin: 5px 10px;
-    text-decoration: underline;
-}
-.wiki_article h5 {
-    font-size: 1.2em;
-    margin: 5px 10px;
-    text-decoration: underline;
-    font-style: italic;
-}
-.wiki_article h6 {
-    font-size: 1.1em; 
-    margin: 5px 10px;
-    font-style: italic;
-}
-
-.wiki_article h1:first-letter,.wiki_article h2:first-letter,.wiki_article h3:first-letter {
-     vertical-align: baseline;
-	 color: #7070FF;
-	 font-size: 180%;
-	 font-family: Cretino, "Bitstream Vera Serif", serif;
-	 font-weight: bold;
-}
-.wiki_article h3:first-letter {
-    color: rgb(156,156,86);
-}
-
-.wiki_article p {
-    margin: 7px 10px; 
-}
-
+.toc {
+	border: 1px solid black;
+	display: inline-block;
+	padding: 0px 8px;
+	background-image: url("../img/black50.png");
+	font-size: 12px;
+	margin-bottom: 20px;
+	line-height: 18px;
+}
+
+.toc ul {
+	padding-left: 20px;
+}
 
 /***********/
 /* History */
 /***********/
 .history_list {
-    width: 100%;
+	width: 100%;
+	border-collapse: collapse;
+}
+
+.history_list  td {
+	border: 1px solid black;
+	padding: 4px;
+}
+
+.history_list th {
+	border: 1px solid black;
+	background-image: url("../img/black50.png");
+	padding: 4px;
 }
 
 /******************/
 /* Edit Wiki Page */
 /******************/
 #edit_wiki_page_form {
-    width: 100%;
+	width: 100%;
 }
+
 #edit_wiki_page_form th {
-    background: None;
-    margin-top: 15px;
-    width: auto;
+	text-align: left;
 }
+
 #edit_wiki_page_form #id_title,#id_comment {
-    width: 100%;
+	width: 98%;
 }
-    
+
 #id_content {
-   width: 100%;
-   height: 400px;
+	width: 98%;
+	height: 400px;
 }
+
 #id_summary {
-   width: 100%;
-   height: 100px;
-}
-
-/*************/
-/* Changeset */
-/*************/
-
-.changeset_content {
-	line-height: 120%;
-	border: 0px;
-	padding: 2px;
-	padding-top: 5px;
-	padding-left: 15px;
-	background-color: #3F3F3F;
-	background: url(../img/background-3F3F3F.png);
-}
-
-
-
+	width: 98%;
+	height: 100px;
+}

=== added directory 'media/fancybox'
=== added file 'media/fancybox/blank.gif'
Binary files media/fancybox/blank.gif	1970-01-01 00:00:00 +0000 and media/fancybox/blank.gif	2012-07-04 18:20:26 +0000 differ
=== added file 'media/fancybox/fancybox_loading.gif'
Binary files media/fancybox/fancybox_loading.gif	1970-01-01 00:00:00 +0000 and media/fancybox/fancybox_loading.gif	2012-07-04 18:20:26 +0000 differ
=== added file 'media/fancybox/fancybox_sprite.png'
Binary files media/fancybox/fancybox_sprite.png	1970-01-01 00:00:00 +0000 and media/fancybox/fancybox_sprite.png	2012-07-04 18:20:26 +0000 differ
=== added directory 'media/fancybox/helpers'
=== added file 'media/fancybox/helpers/fancybox_buttons.png'
Binary files media/fancybox/helpers/fancybox_buttons.png	1970-01-01 00:00:00 +0000 and media/fancybox/helpers/fancybox_buttons.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/fancybox/helpers/jquery.fancybox-buttons.css'
--- media/fancybox/helpers/jquery.fancybox-buttons.css	1970-01-01 00:00:00 +0000
+++ media/fancybox/helpers/jquery.fancybox-buttons.css	2012-07-04 18:20:26 +0000
@@ -0,0 +1,85 @@
+#fancybox-buttons {
+	position: fixed;
+	left: 0;
+	width: 100%;
+	z-index: 8050;
+}
+
+#fancybox-buttons.top {
+	top: 10px;
+}
+
+#fancybox-buttons.bottom {
+	bottom: 10px;
+}
+
+#fancybox-buttons ul {
+	display: block;
+	width: 170px;
+	height: 30px;
+	margin: 0 auto;
+	padding: 0;
+	list-style: none;
+	background: #111;
+	-webkit-box-shadow: 0 1px 3px #000,0 0 0 1px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.05);
+	-moz-box-shadow: 0 1px 3px #000,0 0 0 1px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.05);
+	background: #111 -webkit-gradient(linear,0% 0%,0% 100%,from(rgba(255,255,255,.2)),color-stop(.5,rgba(255,255,255,.15)),color-stop(.5,rgba(255,255,255,.1)),to(rgba(255,255,255,.15)));
+	background: #111 -moz-linear-gradient(top,rgba(255,255,255,.2) 0%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.1) 50%,rgba(255,255,255,.15) 100%);
+	border-radius: 3px;
+}
+
+#fancybox-buttons ul li {
+	float: left;
+	margin: 0;
+	padding: 0;
+}
+
+#fancybox-buttons a {
+	display: block;
+	width: 30px;
+	height: 30px;
+	text-indent: -9999px;
+	background-image: url('fancybox_buttons.png');
+	background-repeat: no-repeat;
+	outline: none;
+}
+
+#fancybox-buttons a.btnPrev {
+	width: 32px;
+	background-position: 6px 0;
+}
+
+#fancybox-buttons a.btnNext {
+	background-position: -33px 0;
+	border-right: 1px solid #3e3e3e;
+}
+
+#fancybox-buttons a.btnPlay {
+	background-position: 0 -30px;
+}
+
+#fancybox-buttons a.btnPlayOn {
+	background-position: -30px -30px;
+}
+
+#fancybox-buttons a.btnToggle {
+	background-position: 3px -60px;
+	border-left: 1px solid #111;
+	border-right: 1px solid #3e3e3e;
+	width: 35px
+}
+
+#fancybox-buttons a.btnToggleOn {
+	background-position: -27px -60px;
+}
+
+#fancybox-buttons a.btnClose {
+	border-left: 1px solid #111;
+	width: 38px;
+	background-position: -57px 0px;
+}
+
+#fancybox-buttons a.btnDisabled {
+	opacity : 0.5;
+	cursor: default;
+}
\ No newline at end of file

=== added file 'media/fancybox/helpers/jquery.fancybox-buttons.js'
--- media/fancybox/helpers/jquery.fancybox-buttons.js	1970-01-01 00:00:00 +0000
+++ media/fancybox/helpers/jquery.fancybox-buttons.js	2012-07-04 18:20:26 +0000
@@ -0,0 +1,115 @@
+ /*!
+ * Buttons helper for fancyBox
+ * version: 1.0.2
+ * @requires fancyBox v2.0 or later
+ *
+ * Usage: 
+ *     $(".fancybox").fancybox({
+ *         buttons: {
+ *             position : 'top'
+ *         }
+ *     });
+ * 
+ * Options:
+ *     tpl - HTML template
+ *     position - 'top' or 'bottom'
+ * 
+ */
+(function ($) {
+	//Shortcut for fancyBox object
+	var F = $.fancybox;
+
+	//Add helper object
+	F.helpers.buttons = {
+		tpl: '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:jQuery.fancybox.close();"></a></li></ul></div>',
+		list: null,
+		buttons: {},
+
+		update: function () {
+			var toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
+
+			//Size toggle button
+			if (F.current.canShrink) {
+				toggle.addClass('btnToggleOn');
+
+			} else if (!F.current.canExpand) {
+				toggle.addClass('btnDisabled');
+			}
+		},
+
+		beforeLoad: function (opts) {
+			//Remove self if gallery do not have at least two items
+			if (F.group.length < 2) {
+				F.coming.helpers.buttons = false;
+				F.coming.closeBtn = true;
+
+				return;
+			}
+
+			//Increase top margin to give space for buttons
+			F.coming.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
+		},
+
+		onPlayStart: function () {
+			if (this.list) {
+				this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
+			}
+		},
+
+		onPlayEnd: function () {
+			if (this.list) {
+				this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
+			}
+		},
+
+		afterShow: function (opts) {
+			var buttons;
+
+			if (!this.list) {
+				this.list = $(opts.tpl || this.tpl).addClass(opts.position || 'top').appendTo('body');
+
+				this.buttons = {
+					prev : this.list.find('.btnPrev').click( F.prev ),
+					next : this.list.find('.btnNext').click( F.next ),
+					play : this.list.find('.btnPlay').click( F.play ),
+					toggle : this.list.find('.btnToggle').click( F.toggle )
+				}
+			}
+
+			buttons = this.buttons;
+
+			//Prev
+			if (F.current.index > 0 || F.current.loop) {
+				buttons.prev.removeClass('btnDisabled');
+			} else {
+				buttons.prev.addClass('btnDisabled');
+			}
+
+			//Next / Play
+			if (F.current.loop || F.current.index < F.group.length - 1) {
+				buttons.next.removeClass('btnDisabled');
+				buttons.play.removeClass('btnDisabled');
+
+			} else {
+				buttons.next.addClass('btnDisabled');
+				buttons.play.addClass('btnDisabled');
+			}
+
+			this.update();
+		},
+
+		onUpdate: function () {
+			this.update();
+		},
+
+		beforeClose: function () {
+			if (this.list) {
+				this.list.remove();
+			}
+
+			this.list = null;
+			this.buttons = {};
+		}
+	};
+
+}(jQuery));
\ No newline at end of file

=== added file 'media/fancybox/helpers/jquery.fancybox-media.js'
--- media/fancybox/helpers/jquery.fancybox-media.js	1970-01-01 00:00:00 +0000
+++ media/fancybox/helpers/jquery.fancybox-media.js	2012-07-04 18:20:26 +0000
@@ -0,0 +1,85 @@
+ /*!
+ * Media helper for fancyBox
+ * version: 1.0.0
+ * @requires fancyBox v2.0 or later
+ *
+ * Usage:
+ *     $(".fancybox").fancybox({
+ *         media: {}
+ *     });
+ *
+ *  Supports:
+ *      Youtube
+ *          http://www.youtube.com/watch?v=opj24KnzrWo
+ *          http://youtu.be/opj24KnzrWo
+ *      Vimeo
+ *          http://vimeo.com/25634903
+ *      Metacafe
+ *          http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/
+ *          http://www.metacafe.com/watch/7635964/
+ *      Dailymotion
+ *          http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people
+ *      Twitvid
+ *          http://twitvid.com/QY7MD
+ *      Twitpic
+ *          http://twitpic.com/7p93st
+ *      Instagram
+ *          http://instagr.am/p/IejkuUGxQn/
+ *          http://instagram.com/p/IejkuUGxQn/
+ *      Google maps
+ *          http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17
+ *          http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
+ *          http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56
+ */
+(function ($) {
+	//Shortcut for fancyBox object
+	var F = $.fancybox;
+
+	//Add helper object
+	F.helpers.media = {
+		beforeLoad : function(opts, obj) {
+			var href = obj.href || '',
+				type = false,
+				rez;
+
+			if ((rez = href.match(/(youtube\.com|youtu\.be)\/(v\/|u\/|embed\/|watch\?v=)?([^#\&\?]*).*/i))) {
+				href = '//www.youtube.com/embed/' + rez[3] + '?autoplay=1&autohide=1&fs=1&rel=0&enablejsapi=1';
+				type = 'iframe';
+
+			} else if ((rez = href.match(/vimeo.com\/(\d+)\/?(.*)/))) {
+				href = '//player.vimeo.com/video/' + rez[1] + '?hd=1&autoplay=1&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1';
+				type = 'iframe';
+
+			} else if ((rez = href.match(/metacafe.com\/watch\/(\d+)\/?(.*)/))) {
+				href = '//www.metacafe.com/fplayer/' + rez[1] + '/.swf?playerVars=autoPlay=yes';
+				type = 'swf';
+
+			} else if ((rez = href.match(/dailymotion.com\/video\/(.*)\/?(.*)/))) {
+				href = '//www.dailymotion.com/swf/video/' + rez[1] + '?additionalInfos=0&autoStart=1';
+				type = 'swf';
+
+			} else if ((rez = href.match(/twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i))) {
+				href = '//www.twitvid.com/embed.php?autoplay=0&guid=' + rez[1];
+				type = 'iframe';
+
+			} else if ((rez = href.match(/twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i))) {
+				href = '//twitpic.com/show/full/' + rez[1];
+				type = 'image';
+
+			} else if ((rez = href.match(/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i))) {
+				href = '//' + rez[1] + '/p/' + rez[2] + '/media/?size=l';
+				type = 'image';
+
+			} else if ((rez = href.match(/maps\.google\.com\/(\?ll=|maps\/?\?q=)(.*)/i))) {
+				href = '//maps.google.com/' + rez[1] + '' + rez[2] + '&output=' + (rez[2].indexOf('layer=c') ? 'svembed' : 'embed');
+				type = 'iframe';
+			}
+
+			if (type) {
+				obj.href = href;
+				obj.type = type;
+			}
+		}
+	}
+
+}(jQuery));
\ No newline at end of file

=== added file 'media/fancybox/helpers/jquery.fancybox-thumbs.css'
--- media/fancybox/helpers/jquery.fancybox-thumbs.css	1970-01-01 00:00:00 +0000
+++ media/fancybox/helpers/jquery.fancybox-thumbs.css	2012-07-04 18:20:26 +0000
@@ -0,0 +1,54 @@
+#fancybox-thumbs {
+	position: fixed;
+	left: 0;
+	width: 100%;
+	overflow: hidden;
+	z-index: 8050;
+}
+
+#fancybox-thumbs.bottom {
+	bottom: 2px;
+}
+
+#fancybox-thumbs.top {
+	top: 2px;
+}
+
+#fancybox-thumbs ul {
+	position: relative;
+	list-style: none;
+	margin: 0;
+	padding: 0;
+}
+
+#fancybox-thumbs ul li {
+	float: left;
+	padding: 1px;
+	opacity: 0.5;
+}
+
+#fancybox-thumbs ul li.active {
+	opacity: 0.75;
+	padding: 0;
+	border: 1px solid #fff;
+}
+
+#fancybox-thumbs ul li:hover {
+	opacity: 1;
+}
+
+#fancybox-thumbs ul li a {
+	display: block;
+	position: relative;
+	overflow: hidden;
+	border: 1px solid #222;
+	background: #111;
+	outline: none;
+}
+
+#fancybox-thumbs ul li img {
+	display: block;
+	position: relative;
+	border: 0;
+	padding: 0;
+}
\ No newline at end of file

=== added file 'media/fancybox/helpers/jquery.fancybox-thumbs.js'
--- media/fancybox/helpers/jquery.fancybox-thumbs.js	1970-01-01 00:00:00 +0000
+++ media/fancybox/helpers/jquery.fancybox-thumbs.js	2012-07-04 18:20:26 +0000
@@ -0,0 +1,157 @@
+ /*!
+ * Thumbnail helper for fancyBox
+ * version: 1.0.4
+ * @requires fancyBox v2.0 or later
+ *
+ * Usage:
+ *     $(".fancybox").fancybox({
+ *         thumbs: {
+ *             width  : 50,
+ *             height : 50
+ *         }
+ *     });
+ *
+ * Options:
+ *     width - thumbnail width
+ *     height - thumbnail height
+ *     source - function to obtain the URL of the thumbnail image
+ *     position - 'top' or 'bottom'
+ *
+ */
+(function ($) {
+	//Shortcut for fancyBox object
+	var F = $.fancybox;
+
+	//Add helper object
+	F.helpers.thumbs = {
+		wrap: null,
+		list: null,
+		width: 0,
+
+		//Default function to obtain the URL of the thumbnail image
+		source: function (el) {
+			var img;
+
+			if ($.type(el) === 'string') {
+				return el;
+			}
+
+			img = $(el).find('img');
+
+			return img.length ? img.attr('src') : el.href;
+		},
+
+		init: function (opts) {
+			var that = this,
+				list,
+				thumbWidth = opts.width || 50,
+				thumbHeight = opts.height || 50,
+				thumbSource = opts.source || this.source;
+
+			//Build list structure
+			list = '';
+
+			for (var n = 0; n < F.group.length; n++) {
+				list += '<li><a style="width:' + thumbWidth + 'px;height:' + thumbHeight + 'px;" href="javascript:jQuery.fancybox.jumpto(' + n + ');"></a></li>';
+			}
+
+			this.wrap = $('<div id="fancybox-thumbs"></div>').addClass(opts.position || 'bottom').appendTo('body');
+			this.list = $('<ul>' + list + '</ul>').appendTo(this.wrap);
+
+			//Load each thumbnail
+			$.each(F.group, function (i) {
+				$("<img />").load(function () {
+					var width = this.width,
+						height = this.height,
+						widthRatio, heightRatio, parent;
+
+					if (!that.list || !width || !height) {
+						return;
+					}
+
+					//Calculate thumbnail width/height and center it
+					widthRatio = width / thumbWidth;
+					heightRatio = height / thumbHeight;
+					parent = that.list.children().eq(i).find('a');
+
+					if (widthRatio >= 1 && heightRatio >= 1) {
+						if (widthRatio > heightRatio) {
+							width = Math.floor(width / heightRatio);
+							height = thumbHeight;
+
+						} else {
+							width = thumbWidth;
+							height = Math.floor(height / widthRatio);
+						}
+					}
+
+					$(this).css({
+						width: width,
+						height: height,
+						top: Math.floor(thumbHeight / 2 - height / 2),
+						left: Math.floor(thumbWidth / 2 - width / 2)
+					});
+
+					parent.width(thumbWidth).height(thumbHeight);
+
+					$(this).hide().appendTo(parent).fadeIn(300);
+
+				}).attr('src', thumbSource( F.group[ i ] ));
+			});
+
+			//Set initial width
+			this.width = this.list.children().eq(0).outerWidth(true);
+
+			this.list.width(this.width * (F.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (F.current.index * this.width + this.width * 0.5)));
+		},
+
+		//Center list
+		update: function (opts) {
+			if (this.list) {
+				this.list.stop(true).animate({
+					'left': Math.floor($(window).width() * 0.5 - (F.current.index * this.width + this.width * 0.5))
+				}, 150);
+			}
+		},
+
+		beforeLoad: function (opts) {
+			//Remove self if gallery do not have at least two items
+			if (F.group.length < 2) {
+				F.coming.helpers.thumbs = false;
+
+				return;
+			}
+
+			//Increase bottom margin to give space for thumbs
+			F.coming.margin[ opts.position === 'top' ? 0 : 2 ] = opts.height + 30;
+		},
+
+		afterShow: function (opts) {
+			//Check if exists and create or update list
+			if (this.list) {
+				this.update(opts);
+
+			} else {
+				this.init(opts);
+			}
+
+			//Set active element
+			this.list.children().removeClass('active').eq(F.current.index).addClass('active');
+		},
+
+		onUpdate: function () {
+			this.update();
+		},
+
+		beforeClose: function () {
+			if (this.wrap) {
+				this.wrap.remove();
+			}
+
+			this.wrap = null;
+			this.list = null;
+			this.width = 0;
+		}
+	}
+
+}(jQuery));
\ No newline at end of file

=== added file 'media/fancybox/jquery.fancybox.css'
--- media/fancybox/jquery.fancybox.css	1970-01-01 00:00:00 +0000
+++ media/fancybox/jquery.fancybox.css	2012-07-04 18:20:26 +0000
@@ -0,0 +1,234 @@
+/*! fancyBox v2.0.6 fancyapps.com | fancyapps.com/fancybox/#license */
+.fancybox-tmp iframe, .fancybox-tmp object {
+	vertical-align: top;
+	padding: 0;
+	margin: 0;
+}
+
+.fancybox-wrap {
+	position: absolute;
+	top: 0;
+	left: 0;
+	z-index: 8020;
+}
+
+.fancybox-skin {
+	position: relative;
+	padding: 0;
+	margin: 0;
+	background: #f9f9f9;
+	color: #444;
+	text-shadow: none;
+	-webkit-border-radius: 4px;
+	   -moz-border-radius: 4px;
+	        border-radius: 4px;
+}
+
+.fancybox-opened {
+	z-index: 8030;
+}
+
+.fancybox-opened .fancybox-skin {
+	-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+	   -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+	        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+}
+
+.fancybox-outer, .fancybox-inner {
+	padding: 0;
+	margin: 0;
+	position: relative;
+	outline: none;
+}
+
+.fancybox-inner {
+	overflow: hidden;
+}
+
+.fancybox-type-iframe .fancybox-inner {
+	-webkit-overflow-scrolling: touch;
+}
+
+.fancybox-error {
+	color: #444;
+	font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
+	margin: 0;
+	padding: 10px;
+}
+
+.fancybox-image, .fancybox-iframe {
+	display: block;
+	width: 100%;
+	height: 100%;
+	border: 0;
+	padding: 0;
+	margin: 0;
+	vertical-align: top;
+}
+
+.fancybox-image {
+	max-width: 100%;
+	max-height: 100%;
+}
+
+#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
+	background-image: url('fancybox_sprite.png');
+}
+
+#fancybox-loading {
+	position: fixed;
+	top: 50%;
+	left: 50%;
+	margin-top: -22px;
+	margin-left: -22px;
+	background-position: 0 -108px;
+	opacity: 0.8;
+	cursor: pointer;
+	z-index: 8020;
+}
+
+#fancybox-loading div {
+	width: 44px;
+	height: 44px;
+	background: url('fancybox_loading.gif') center center no-repeat;
+}
+
+.fancybox-close {
+	position: absolute;
+	top: -18px;
+	right: -18px;
+	width: 36px;
+	height: 36px;
+	cursor: pointer;
+	z-index: 8040;
+}
+
+.fancybox-nav {
+	position: absolute;
+	top: 0;
+	width: 40%;
+	height: 100%;
+	cursor: pointer;
+	background: transparent url('blank.gif'); /* helps IE */
+	-webkit-tap-highlight-color: rgba(0,0,0,0);
+	z-index: 8040;
+}
+
+.fancybox-prev {
+	left: 0;
+}
+
+.fancybox-next {
+	right: 0;
+}
+
+.fancybox-nav span {
+	position: absolute;
+	top: 50%;
+	width: 36px;
+	height: 34px;
+	margin-top: -18px;
+	cursor: pointer;
+	z-index: 8040;
+	visibility: hidden;
+}
+
+.fancybox-prev span {
+	left: 20px;
+	background-position: 0 -36px;
+}
+
+.fancybox-next span {
+	right: 20px;
+	background-position: 0 -72px;
+}
+
+.fancybox-nav:hover span {
+	visibility: visible;
+}
+
+.fancybox-tmp {
+	position: absolute;
+	top: -9999px;
+	left: -9999px;
+	padding: 0;
+	overflow: visible;
+	visibility: hidden;
+}
+
+/* Overlay helper */
+
+#fancybox-overlay {
+	position: absolute;
+	top: 0;
+	left: 0;
+	overflow: hidden;
+	display: none;
+	z-index: 8010;
+	background: #000;
+}
+
+#fancybox-overlay.overlay-fixed {
+	position: fixed;
+	bottom: 0;
+	right: 0;
+}
+
+/* Title helper */
+
+.fancybox-title {
+	visibility: hidden;
+	font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
+	position: relative;
+	text-shadow: none;
+	z-index: 8050;
+}
+
+.fancybox-opened .fancybox-title {
+	visibility: visible;
+}
+
+.fancybox-title-float-wrap {
+	position: absolute;
+	bottom: 0;
+	right: 50%;
+	margin-bottom: -35px;
+	z-index: 8030;
+	text-align: center;
+}
+
+.fancybox-title-float-wrap .child {
+	display: inline-block;
+	margin-right: -100%;
+	padding: 2px 20px;
+	background: transparent; /* Fallback for web browsers that doesn't support RGBa */
+	background: rgba(0, 0, 0, 0.8);
+	-webkit-border-radius: 15px;
+	   -moz-border-radius: 15px;
+	        border-radius: 15px;
+	text-shadow: 0 1px 2px #222;
+	color: #FFF;
+	font-weight: bold;
+	line-height: 24px;
+	white-space: nowrap;
+}
+
+.fancybox-title-outside-wrap {
+	position: relative;
+	margin-top: 10px;
+	color: #fff;
+}
+
+.fancybox-title-inside-wrap {
+	margin-top: 10px;
+}
+
+.fancybox-title-over-wrap {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	color: #fff;
+	padding: 10px;
+	background: #000;
+	background: rgba(0, 0, 0, .8);
+}
\ No newline at end of file

=== added file 'media/fancybox/jquery.fancybox.js'
--- media/fancybox/jquery.fancybox.js	1970-01-01 00:00:00 +0000
+++ media/fancybox/jquery.fancybox.js	2012-07-04 18:20:26 +0000
@@ -0,0 +1,1463 @@
+/*!
+ * fancyBox - jQuery Plugin
+ * version: 2.0.6 (16/04/2012)
+ * @requires jQuery v1.6 or later
+ *
+ * Examples at http://fancyapps.com/fancybox/
+ * License: www.fancyapps.com/fancybox/#license
+ *
+ * Copyright 2012 Janis Skarnelis - janis@xxxxxxxxxxxxx
+ *
+ */
+
+(function (window, document, $, undefined) {
+	"use strict";
+
+	var W = $(window),
+		D = $(document),
+		F = $.fancybox = function () {
+			F.open.apply( this, arguments );
+		},
+		didResize	= false,
+		resizeTimer	= null,
+		isTouch		= document.createTouch !== undefined,
+		isString	= function(str) {
+			return $.type(str) === "string";
+		},
+		isPercentage = function(str) {
+			return isString(str) && str.indexOf('%') > 0;
+		},
+		getValue = function(value, dim) {
+			if (dim && isPercentage(value)) {
+				value = F.getViewport()[ dim ] / 100 * parseInt(value, 10);
+			}
+
+			return Math.round(value) + 'px';
+		};
+
+	$.extend(F, {
+		// The current version of fancyBox
+		version: '2.0.5',
+
+		defaults: {
+			padding: 15,
+			margin: 20,
+
+			width: 800,
+			height: 600,
+			minWidth: 100,
+			minHeight: 100,
+			maxWidth: 9999,
+			maxHeight: 9999,
+
+			autoSize: true,
+			autoResize: !isTouch,
+			autoCenter : !isTouch,
+			fitToView: true,
+			aspectRatio: false,
+			topRatio: 0.5,
+
+			fixed: false,
+			scrolling: 'auto', // 'auto', 'yes' or 'no'
+			wrapCSS: '',
+
+			arrows: true,
+			closeBtn: true,
+			closeClick: false,
+			nextClick : false,
+			mouseWheel: true,
+			autoPlay: false,
+			playSpeed: 3000,
+			preload : 3,
+
+			modal: false,
+			loop: true,
+			ajax: { dataType: 'html', headers: { 'X-fancyBox': true } },
+			keys: {
+				next: [13, 32, 34, 39, 40], // enter, space, page down, right arrow, down arrow
+				prev: [8, 33, 37, 38], // backspace, page up, left arrow, up arrow
+				close: [27] // escape key
+			},
+
+			// Override some properties
+			index: 0,
+			type: null,
+			href: null,
+			content: null,
+			title: null,
+
+			// HTML templates
+			tpl: {
+				wrap: '<div class="fancybox-wrap"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',
+				image: '<img class="fancybox-image" src="{href}" alt="" />',
+				iframe: '<iframe class="fancybox-iframe" name="fancybox-frame{rnd}" frameborder="0" hspace="0"' + ($.browser.msie ? ' allowtransparency="true"' : '') + '></iframe>',
+				swf: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="wmode" value="transparent" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{href}" /><embed src="{href}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="100%" height="100%" wmode="transparent"></embed></object>',
+				error: '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
+				closeBtn: '<div title="Close" class="fancybox-item fancybox-close"></div>',
+				next: '<a title="Next" class="fancybox-nav fancybox-next"><span></span></a>',
+				prev: '<a title="Previous" class="fancybox-nav fancybox-prev"><span></span></a>'
+			},
+
+			// Properties for each animation type
+			// Opening fancyBox
+			openEffect: 'fade', // 'elastic', 'fade' or 'none'
+			openSpeed: 300,
+			openEasing: 'swing',
+			openOpacity: true,
+			openMethod: 'zoomIn',
+
+			// Closing fancyBox
+			closeEffect: 'fade', // 'elastic', 'fade' or 'none'
+			closeSpeed: 300,
+			closeEasing: 'swing',
+			closeOpacity: true,
+			closeMethod: 'zoomOut',
+
+			// Changing next gallery item
+			nextEffect: 'elastic', // 'elastic', 'fade' or 'none'
+			nextSpeed: 300,
+			nextEasing: 'swing',
+			nextMethod: 'changeIn',
+
+			// Changing previous gallery item
+			prevEffect: 'elastic', // 'elastic', 'fade' or 'none'
+			prevSpeed: 300,
+			prevEasing: 'swing',
+			prevMethod: 'changeOut',
+
+			// Enabled helpers
+			helpers: {
+				overlay: {
+					speedIn: 0,
+					speedOut: 300,
+					opacity: 0.8,
+					css: {
+						cursor: 'pointer'
+					},
+					closeClick: true
+				},
+				title: {
+					type: 'float' // 'float', 'inside', 'outside' or 'over'
+				}
+			},
+
+			// Callbacks
+			onCancel: $.noop, // If canceling
+			beforeLoad: $.noop, // Before loading
+			afterLoad: $.noop, // After loading
+			beforeShow: $.noop, // Before changing in current item
+			afterShow: $.noop, // After opening
+			beforeClose: $.noop, // Before closing
+			afterClose: $.noop // After closing
+		},
+
+		//Current state
+		group: {}, // Selected group
+		opts: {}, // Group options
+		coming: null, // Element being loaded
+		current: null, // Currently loaded element
+		isOpen: false, // Is currently open
+		isOpened: false, // Have been fully opened at least once
+		wrap: null,
+		skin: null,
+		outer: null,
+		inner: null,
+
+		player: {
+			timer: null,
+			isActive: false
+		},
+
+		// Loaders
+		ajaxLoad: null,
+		imgPreload: null,
+
+		// Some collections
+		transitions: {},
+		helpers: {},
+
+		/*
+		 *	Static methods
+		 */
+
+		open: function (group, opts) {
+			//Kill existing instances
+			F.close(true);
+
+			//Normalize group
+			if (group && !$.isArray(group)) {
+				group = group instanceof $ ? $(group).get() : [group];
+			}
+
+			F.isActive = true;
+
+			//Extend the defaults
+			F.opts = $.extend(true, {}, F.defaults, opts);
+
+			//All options are merged recursive except keys
+			if ($.isPlainObject(opts) && opts.keys !== undefined) {
+				F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;
+			}
+
+			F.group = group;
+
+			F._start(F.opts.index || 0);
+		},
+
+		cancel: function () {
+			if (F.coming && false === F.trigger('onCancel')) {
+				return;
+			}
+
+			F.coming = null;
+
+			F.hideLoading();
+
+			if (F.ajaxLoad) {
+				F.ajaxLoad.abort();
+			}
+
+			F.ajaxLoad = null;
+
+			if (F.imgPreload) {
+				F.imgPreload.onload = F.imgPreload.onabort = F.imgPreload.onerror = null;
+			}
+		},
+
+		close: function (a) {
+			F.cancel();
+
+			if (!F.current || false === F.trigger('beforeClose')) {
+				return;
+			}
+
+			F.unbindEvents();
+
+			//If forced or is still opening then remove immediately
+			if (!F.isOpen || (a && a[0] === true)) {
+				$('.fancybox-wrap').stop().trigger('onReset').remove();
+
+				F._afterZoomOut();
+
+			} else {
+				F.isOpen = F.isOpened = false;
+
+				$('.fancybox-item, .fancybox-nav').remove();
+
+				F.wrap.stop(true).removeClass('fancybox-opened');
+				F.inner.css('overflow', 'hidden');
+
+				F.transitions[F.current.closeMethod]();
+			}
+		},
+
+		// Start/stop slideshow
+		play: function (a) {
+			var clear = function () {
+					clearTimeout(F.player.timer);
+				},
+				set = function () {
+					clear();
+
+					if (F.current && F.player.isActive) {
+						F.player.timer = setTimeout(F.next, F.current.playSpeed);
+					}
+				},
+				stop = function () {
+					clear();
+
+					$('body').unbind('.player');
+
+					F.player.isActive = false;
+
+					F.trigger('onPlayEnd');
+				},
+				start = function () {
+					if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {
+						F.player.isActive = true;
+
+						$('body').bind({
+							'afterShow.player onUpdate.player': set,
+							'onCancel.player beforeClose.player': stop,
+							'beforeLoad.player': clear
+						});
+
+						set();
+
+						F.trigger('onPlayStart');
+					}
+				};
+
+			if (F.player.isActive || (a && a[0] === false)) {
+				stop();
+			} else {
+				start();
+			}
+		},
+
+		next: function () {
+			if (F.current) {
+				F.jumpto(F.current.index + 1);
+			}
+		},
+
+		prev: function () {
+			if (F.current) {
+				F.jumpto(F.current.index - 1);
+			}
+		},
+
+		jumpto: function (index) {
+			if (!F.current) {
+				return;
+			}
+
+			index = parseInt(index, 10);
+
+			if (F.group.length > 1 && F.current.loop) {
+				if (index >= F.group.length) {
+					index = 0;
+
+				} else if (index < 0) {
+					index = F.group.length - 1;
+				}
+			}
+
+			if (F.group[index] !== undefined) {
+				F.cancel();
+
+				F._start(index);
+			}
+		},
+
+		reposition: function (e, onlyAbsolute) {
+			var pos;
+
+			if (F.isOpen) {
+				pos = F._getPosition(onlyAbsolute);
+
+				if (e && e.type === 'scroll') {
+					delete pos.position;
+
+					F.wrap.stop(true, true).animate(pos, 200);
+
+				} else {
+					F.wrap.css(pos);
+				}
+			}
+		},
+
+		update: function (e) {
+			if (!F.isOpen) {
+				return;
+			}
+
+			// Run this code after a delay for better performance
+			if (!didResize) {
+				resizeTimer = setTimeout(function () {
+					var current = F.current, anyway = !e || (e && e.type === 'orientationchange');
+
+					if (didResize) {
+						didResize = false;
+
+						if (!current) {
+							return;
+						}
+
+						if ((!e || e.type !== 'scroll') || anyway) {
+							if (current.autoSize && current.type !== 'iframe') {
+								F.inner.height('auto');
+								current.height = F.inner.height();
+							}
+
+							if (current.autoResize || anyway) {
+								F._setDimension();
+							}
+
+							if (current.canGrow && current.type !== 'iframe') {
+								F.inner.height('auto');
+							}
+						}
+
+						if (current.autoCenter || anyway) {
+							F.reposition(e);
+						}
+
+						F.trigger('onUpdate');
+					}
+				}, 200);
+			}
+
+			didResize = true;
+		},
+
+		toggle: function () {
+			if (F.isOpen) {
+				F.current.fitToView = !F.current.fitToView;
+
+				F.update();
+			}
+		},
+
+		hideLoading: function () {
+			D.unbind('keypress.fb');
+
+			$('#fancybox-loading').remove();
+		},
+
+		showLoading: function () {
+			F.hideLoading();
+
+			//If user will press the escape-button, the request will be canceled
+			D.bind('keypress.fb', function(e) {
+				if (e.keyCode === 27) {
+					e.preventDefault();
+					F.cancel();
+				}
+			});
+
+			$('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo('body');
+		},
+
+		getViewport: function () {
+			// See http://bugs.jquery.com/ticket/6724
+			return {
+				x: W.scrollLeft(),
+				y: W.scrollTop(),
+				w: isTouch && window.innerWidth ? window.innerWidth : W.width(),
+				h: isTouch && window.innerHeight ? window.innerHeight : W.height()
+			};
+		},
+
+		// Unbind the keyboard / clicking actions
+		unbindEvents: function () {
+			if (F.wrap) {
+				F.wrap.unbind('.fb');
+			}
+
+			D.unbind('.fb');
+			W.unbind('.fb');
+		},
+
+		bindEvents: function () {
+			var current = F.current,
+				keys = current.keys;
+
+			if (!current) {
+				return;
+			}
+
+			W.bind('resize.fb orientationchange.fb' + (current.autoCenter && !current.fixed ? ' scroll.fb' : ''), F.update);
+
+			if (keys) {
+				D.bind('keydown.fb', function (e) {
+					var code, target = e.target || e.srcElement;
+
+					// Ignore key combinations and key events within form elements
+					if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {
+						code = e.keyCode;
+
+						if ($.inArray(code, keys.close) > -1) {
+							F.close();
+							e.preventDefault();
+
+						} else if ($.inArray(code, keys.next) > -1) {
+							F.next();
+							e.preventDefault();
+
+						} else if ($.inArray(code, keys.prev) > -1) {
+							F.prev();
+							e.preventDefault();
+						}
+					}
+				});
+			}
+
+			if ($.fn.mousewheel && current.mouseWheel && F.group.length > 1) {
+				F.wrap.bind('mousewheel.fb', function (e, delta) {
+					var target = e.target || null;
+
+					if (delta !== 0 && (!target || target.clientHeight === 0 || (target.scrollHeight === target.clientHeight && target.scrollWidth === target.clientWidth))) {
+						e.preventDefault();
+
+						F[delta > 0 ? 'prev' : 'next']();
+					}
+				});
+			}
+		},
+
+		trigger: function (event, o) {
+			var ret, obj = o || F[ $.inArray(event, ['onCancel', 'beforeLoad', 'afterLoad']) > -1 ? 'coming' : 'current' ];
+
+			if (!obj) {
+				return;
+			}
+
+			if ($.isFunction( obj[event] )) {
+				ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));
+			}
+
+			if (ret === false) {
+				return false;
+			}
+
+			if (obj.helpers) {
+				$.each(obj.helpers, function (helper, opts) {
+					if (opts && $.isPlainObject(F.helpers[helper]) && $.isFunction(F.helpers[helper][event])) {
+						F.helpers[helper][event](opts, obj);
+					}
+				});
+			}
+
+			$.event.trigger(event + '.fb');
+		},
+
+		isImage: function (str) {
+			return isString(str) && str.match(/\.(jpe?g|gif|png|bmp)((\?|#).*)?$/i);
+		},
+
+		isSWF: function (str) {
+			return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i);
+		},
+
+		_start: function (index) {
+			var coming = {},
+				element = F.group[index] || null,
+				isDom,
+				href,
+				type,
+				rez,
+				hrefParts;
+
+			if (element && (element.nodeType || element instanceof $)) {
+				isDom = true;
+
+				if ($.metadata) {
+					coming = $(element).metadata();
+				}
+			}
+
+			coming = $.extend(true, {}, F.opts, {index : index, element : element}, ($.isPlainObject(element) ? element : coming));
+
+			// Re-check overridable options
+			$.each(['href', 'title', 'content', 'type'], function(i,v) {
+				coming[v] = F.opts[ v ] || (isDom && $(element).attr( v )) || coming[ v ] || null;
+			});
+
+			// Convert margin property to array - top, right, bottom, left
+			if (typeof coming.margin === 'number') {
+				coming.margin = [coming.margin, coming.margin, coming.margin, coming.margin];
+			}
+
+			// 'modal' propery is just a shortcut
+			if (coming.modal) {
+				$.extend(true, coming, {
+					closeBtn : false,
+					closeClick: false,
+					nextClick : false,
+					arrows : false,
+					mouseWheel : false,
+					keys : null,
+					helpers: {
+						overlay : {
+							css: {
+								cursor : 'auto'
+							},
+							closeClick : false
+						}
+					}
+				});
+			}
+
+			//Give a chance for callback or helpers to update coming item (type, title, etc)
+			F.coming = coming;
+
+			if (false === F.trigger('beforeLoad')) {
+				F.coming = null;
+				return;
+			}
+
+			type = coming.type;
+			href = coming.href || element;
+
+			///Check if content type is set, if not, try to get
+			if (!type) {
+				if (isDom) {
+					type = $(element).data('fancybox-type');
+
+					if (!type) {
+						rez = element.className.match(/fancybox\.(\w+)/);
+						type = rez ? rez[1] : null;
+					}
+				}
+
+				if (!type && isString(href)) {
+					if (F.isImage(href)) {
+						type = 'image';
+
+					} else if (F.isSWF(href)) {
+						type = 'swf';
+
+					} else if (href.match(/^#/)) {
+						type = 'inline';
+					}
+				}
+
+				// ...if not - display element itself
+				if (!type) {
+					type = isDom ? 'inline' : 'html';
+				}
+
+				coming.type = type;
+			}
+
+			// Check before try to load; 'inline' and 'html' types need content, others - href
+			if (type === 'inline' || type === 'html') {
+				if (!coming.content) {
+					if (type === 'inline') {
+						coming.content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7
+
+					} else {
+						coming.content = element;
+					}
+				}
+
+				if (!coming.content || !coming.content.length) {
+					type = null;
+				}
+
+			} else if (!href) {
+				type = null;
+			}
+
+			/*
+			 * Add reference to the group, so it`s possible to access from callbacks, example:
+			 * afterLoad : function() {
+			 *     this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
+			 * }
+			 */
+
+			if (type === 'ajax' && isString(href)) {
+				hrefParts = href.split(/\s+/, 2);
+
+				href = hrefParts.shift();
+				coming.selector = hrefParts.shift();
+			}
+
+			coming.href  = href;
+			coming.group = F.group;
+			coming.isDom = isDom;
+
+			switch (type) {
+				case 'image':
+					F._loadImage();
+					break;
+
+				case 'ajax':
+					F._loadAjax();
+					break;
+
+				case 'inline':
+				case 'iframe':
+				case 'swf':
+				case 'html':
+					F._afterLoad();
+					break;
+
+				default:
+					F._error( 'type' );
+			}
+		},
+
+		_error: function ( type ) {
+			F.hideLoading();
+
+			$.extend(F.coming, {
+				type      : 'html',
+				autoSize  : true,
+				minWidth  : 0,
+				minHeight : 0,
+				padding   : 15,
+				hasError  : type,
+				content   : F.coming.tpl.error
+			});
+
+			F._afterLoad();
+		},
+
+		_loadImage: function () {
+			// Reset preload image so it is later possible to check "complete" property
+			var img = F.imgPreload = new Image();
+
+			img.onload = function () {
+				this.onload = this.onerror = null;
+
+				F.coming.width  = this.width;
+				F.coming.height = this.height;
+
+				F._afterLoad();
+			};
+
+			img.onerror = function () {
+				this.onload = this.onerror = null;
+
+				F._error( 'image' );
+			};
+
+			img.src = F.coming.href;
+
+			if (img.complete === undefined || !img.complete) {
+				F.showLoading();
+			}
+		},
+
+		_loadAjax: function () {
+			F.showLoading();
+
+			F.ajaxLoad = $.ajax($.extend({}, F.coming.ajax, {
+				url: F.coming.href,
+				error: function (jqXHR, textStatus) {
+					if (F.coming && textStatus !== 'abort') {
+						F._error( 'ajax', jqXHR );
+
+					} else {
+						F.hideLoading();
+					}
+				},
+				success: function (data, textStatus) {
+					if (textStatus === 'success') {
+						F.coming.content = data;
+
+						F._afterLoad();
+					}
+				}
+			}));
+		},
+
+		_preloadImages: function() {
+			var group = F.group,
+				current = F.current,
+				len = group.length,
+				item,
+				href,
+				i,
+				cnt = Math.min(current.preload, len - 1);
+
+			if (!current.preload || group.length < 2) {
+				return;
+			}
+
+			for (i = 1; i <= cnt; i += 1) {
+				item = group[ (current.index + i ) % len ];
+				href = item.href || $( item ).attr('href') || item;
+
+				if (item.type === 'image' || F.isImage(href)) {
+					new Image().src = href;
+				}
+			}
+		},
+
+		_afterLoad: function () {
+			F.hideLoading();
+
+			if (!F.coming || false === F.trigger('afterLoad', F.current)) {
+				F.coming = false;
+
+				return;
+			}
+
+			if (F.isOpened) {
+				$('.fancybox-item, .fancybox-nav').remove();
+
+				F.wrap.stop(true).removeClass('fancybox-opened');
+				F.inner.css('overflow', 'hidden');
+
+				F.transitions[F.current.prevMethod]();
+
+			} else {
+				$('.fancybox-wrap').stop().trigger('onReset').remove();
+
+				F.trigger('afterClose');
+			}
+
+			F.unbindEvents();
+
+			F.isOpen    = false;
+			F.current   = F.coming;
+
+			//Build the neccessary markup
+			F.wrap  = $(F.current.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + F.current.type + ' fancybox-tmp ' + F.current.wrapCSS).appendTo('body');
+			F.skin  = $('.fancybox-skin', F.wrap).css('padding', getValue(F.current.padding));
+			F.outer = $('.fancybox-outer', F.wrap);
+			F.inner = $('.fancybox-inner', F.wrap);
+
+			F._setContent();
+		},
+
+		_setContent: function () {
+			var current = F.current,
+				content = current.content,
+				type    = current.type,
+				minWidth    = current.minWidth,
+				minHeight   = current.minHeight,
+				maxWidth    = current.maxWidth,
+				maxHeight   = current.maxHeight,
+				loadingBay;
+
+			switch (type) {
+				case 'inline':
+				case 'ajax':
+				case 'html':
+					if (current.selector) {
+						content = $('<div>').html(content).find(current.selector);
+
+					} else if (content instanceof $) {
+						if (content.parent().hasClass('fancybox-inner')) {
+							content.parents('.fancybox-wrap').unbind('onReset');
+						}
+
+						content = content.show().detach();
+
+						$(F.wrap).bind('onReset', function () {
+							content.appendTo('body').hide();
+						});
+					}
+
+					if (current.autoSize) {
+						loadingBay = $('<div class="fancybox-wrap ' + F.current.wrapCSS + ' fancybox-tmp"></div>')
+							.appendTo('body')
+							.css({
+								minWidth    : getValue(minWidth, 'w'),
+								minHeight   : getValue(minHeight, 'h'),
+								maxWidth    : getValue(maxWidth, 'w'),
+								maxHeight   : getValue(maxHeight, 'h')
+							})
+							.append(content);
+
+						current.width = loadingBay.width();
+						current.height = loadingBay.height();
+
+						// Re-check to fix 1px bug in some browsers
+						loadingBay.width( F.current.width );
+
+						if (loadingBay.height() > current.height) {
+							loadingBay.width(current.width + 1);
+
+							current.width = loadingBay.width();
+							current.height = loadingBay.height();
+						}
+
+						content = loadingBay.contents().detach();
+
+						loadingBay.remove();
+					}
+
+					break;
+
+				case 'image':
+					content = current.tpl.image.replace('{href}', current.href);
+
+					current.aspectRatio = true;
+					break;
+
+				case 'swf':
+					content = current.tpl.swf.replace(/\{width\}/g, current.width).replace(/\{height\}/g, current.height).replace(/\{href\}/g, current.href);
+					break;
+
+				case 'iframe':
+					content = $(current.tpl.iframe.replace('{rnd}', new Date().getTime()) )
+						.attr('scrolling', current.scrolling)
+						.attr('src', current.href);
+
+					current.scrolling = isTouch ? 'scroll' : 'auto';
+
+					break;
+			}
+
+			if (type === 'image' || type === 'swf') {
+				current.autoSize = false;
+				current.scrolling = 'visible';
+			}
+
+			if (type === 'iframe' && current.autoSize) {
+				F.showLoading();
+
+				F._setDimension();
+
+				F.inner.css('overflow', current.scrolling);
+
+				content.bind({
+					onCancel : function() {
+						$(this).unbind();
+
+						F._afterZoomOut();
+					},
+					load : function() {
+						F.hideLoading();
+
+						try {
+							if (this.contentWindow.document.location) {
+								F.current.height = $(this).contents().find('body').height();
+							}
+						} catch (e) {
+							F.current.autoSize = false;
+						}
+
+						F[ F.isOpen ? '_afterZoomIn' : '_beforeShow']();
+					}
+				}).appendTo(F.inner);
+
+			} else {
+				F.inner.append(content);
+
+				F._beforeShow();
+			}
+		},
+
+		_beforeShow : function() {
+			F.coming = null;
+
+			//Give a chance for helpers or callbacks to update elements
+			F.trigger('beforeShow');
+
+			//Set initial dimensions and hide
+			F._setDimension();
+			F.wrap.hide().removeClass('fancybox-tmp');
+
+			F.bindEvents();
+
+			F._preloadImages();
+
+			F.transitions[ F.isOpened ? F.current.nextMethod : F.current.openMethod ]();
+		},
+
+		_setDimension: function () {
+			var wrap      = F.wrap,
+				inner     = F.inner,
+				current   = F.current,
+				viewport  = F.getViewport(),
+				margin    = current.margin,
+				padding2  = current.padding * 2,
+				width     = current.width,
+				height    = current.height,
+				maxWidth  = current.maxWidth + padding2,
+				maxHeight = current.maxHeight + padding2,
+				minWidth  = current.minWidth + padding2,
+				minHeight = current.minHeight + padding2,
+				ratio,
+				height_;
+
+			viewport.w -= (margin[1] + margin[3]);
+			viewport.h -= (margin[0] + margin[2]);
+
+			if (isPercentage(width)) {
+				width = (((viewport.w - padding2) * parseFloat(width)) / 100);
+			}
+
+			if (isPercentage(height)) {
+				height = (((viewport.h - padding2) * parseFloat(height)) / 100);
+			}
+
+			ratio  = width / height;
+			width  += padding2;
+			height += padding2;
+
+			if (current.fitToView) {
+				maxWidth  = Math.min(viewport.w, maxWidth);
+				maxHeight = Math.min(viewport.h, maxHeight);
+			}
+
+			if (current.aspectRatio) {
+				if (width > maxWidth) {
+					width = maxWidth;
+					height = ((width - padding2) / ratio) + padding2;
+				}
+
+				if (height > maxHeight) {
+					height = maxHeight;
+					width = ((height - padding2) * ratio) + padding2;
+				}
+
+				if (width < minWidth) {
+					width = minWidth;
+					height = ((width - padding2) / ratio) + padding2;
+				}
+
+				if (height < minHeight) {
+					height = minHeight;
+					width = ((height - padding2) * ratio) + padding2;
+				}
+
+			} else {
+				width = Math.max(minWidth, Math.min(width, maxWidth));
+				height = Math.max(minHeight, Math.min(height, maxHeight));
+			}
+
+			width = Math.round(width);
+			height = Math.round(height);
+
+			//Reset dimensions
+			$(wrap.add(inner)).width('auto').height('auto');
+
+			inner.width(width - padding2).height(height - padding2);
+			wrap.width(width);
+
+			height_ = wrap.height(); // Real wrap height
+
+			//Fit wrapper inside
+			if (width > maxWidth || height_ > maxHeight) {
+				while ((width > maxWidth || height_ > maxHeight) && width > minWidth && height_ > minHeight) {
+					height = height - 10;
+
+					if (current.aspectRatio) {
+						width = Math.round(((height - padding2) * ratio) + padding2);
+
+						if (width < minWidth) {
+							width = minWidth;
+							height = ((width - padding2) / ratio) + padding2;
+						}
+
+					} else {
+						width = width - 10;
+					}
+
+					inner.width(width - padding2).height(height - padding2);
+					wrap.width(width);
+
+					height_ = wrap.height();
+				}
+			}
+
+			current.dim = {
+				width	: getValue(width),
+				height	: getValue(height_)
+			};
+
+			current.canGrow		= current.autoSize && height > minHeight && height < maxHeight;
+			current.canShrink	= false;
+			current.canExpand	= false;
+
+			if ((width - padding2) < current.width || (height - padding2) < current.height) {
+				current.canExpand = true;
+
+			} else if ((width > viewport.w || height_ > viewport.h) && width > minWidth && height > minHeight) {
+				current.canShrink = true;
+			}
+
+			F.innerSpace = height_ - padding2 - inner.height();
+		},
+
+		_getPosition: function (onlyAbsolute) {
+			var current		= F.current,
+				viewport    = F.getViewport(),
+				margin      = current.margin,
+				width       = F.wrap.width() + margin[1] + margin[3],
+				height      = F.wrap.height() + margin[0] + margin[2],
+				rez         = {
+					position: 'absolute',
+					top  : margin[0] + viewport.y,
+					left : margin[3] + viewport.x
+				};
+
+			if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) {
+				rez = {
+					position: 'fixed',
+					top  : margin[0],
+					left : margin[3]
+				};
+			}
+
+			rez.top     = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio)));
+			rez.left    = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * 0.5)));
+
+			return rez;
+		},
+
+		_afterZoomIn: function () {
+			var current = F.current, scrolling = current ? current.scrolling : 'no';
+
+			if (!current) {
+				return;
+			}
+
+			F.isOpen = F.isOpened = true;
+
+			F.wrap.addClass('fancybox-opened');
+
+			F.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));
+
+			F.trigger('afterShow');
+
+			F.update();
+
+			//Assign a click event
+			if (current.closeClick || current.nextClick) {
+				F.inner.css('cursor', 'pointer').bind('click.fb', function(e) {
+					if (!$(e.target).is('a') && !$(e.target).parent().is('a')) {
+						F[ current.closeClick ? 'close' : 'next' ]();
+					}
+				});
+			}
+
+			//Create a close button
+			if (current.closeBtn) {
+				$(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', F.close);
+			}
+
+			//Create navigation arrows
+			if (current.arrows && F.group.length > 1) {
+				if (current.loop || current.index > 0) {
+					$(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);
+				}
+
+				if (current.loop || current.index < F.group.length - 1) {
+					$(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);
+				}
+			}
+
+			if (F.opts.autoPlay && !F.player.isActive) {
+				F.opts.autoPlay = false;
+
+				F.play();
+			}
+		},
+
+		_afterZoomOut: function () {
+			var current = F.current;
+
+			F.wrap.trigger('onReset').remove();
+
+			$.extend(F, {
+				group: {},
+				opts: {},
+				current: null,
+				isActive: false,
+				isOpened: false,
+				isOpen: false,
+				wrap: null,
+				skin: null,
+				outer: null,
+				inner: null
+			});
+
+			F.trigger('afterClose', current);
+		}
+	});
+
+	/*
+	 *	Default transitions
+	 */
+
+	F.transitions = {
+		getOrigPosition: function () {
+			var current = F.current,
+				element = current.element,
+				padding = current.padding,
+				orig    = $(current.orig),
+				pos     = {},
+				width   = 50,
+				height  = 50,
+				viewport;
+
+			if (!orig.length && current.isDom && $(element).is(':visible')) {
+				orig = $(element).find('img:first');
+
+				if (!orig.length) {
+					orig = $(element);
+				}
+			}
+
+			if (orig.length) {
+				pos = orig.offset();
+
+				if (orig.is('img')) {
+					width = orig.outerWidth();
+					height = orig.outerHeight();
+				}
+
+			} else {
+				viewport = F.getViewport();
+
+				pos.top  = viewport.y + (viewport.h - height) * 0.5;
+				pos.left = viewport.x + (viewport.w - width) * 0.5;
+			}
+
+			pos = {
+				top     : getValue(pos.top - padding),
+				left    : getValue(pos.left - padding),
+				width   : getValue(width + padding * 2),
+				height  : getValue(height + padding * 2)
+			};
+
+			return pos;
+		},
+
+		step: function (now, fx) {
+			var prop = fx.prop, value, ratio;
+
+			if (prop === 'width' || prop === 'height') {
+				value = Math.ceil(now - (F.current.padding * 2));
+
+				if (prop === 'height') {
+					ratio = (now - fx.start) / (fx.end - fx.start);
+
+					if (fx.start > fx.end) {
+						ratio = 1 - ratio;
+					}
+
+					value -= F.innerSpace * ratio;
+				}
+
+				F.inner[prop](value);
+			}
+		},
+
+		zoomIn: function () {
+			var wrap     = F.wrap,
+				current  = F.current,
+				effect   = current.openEffect,
+				elastic  = effect === 'elastic',
+				dim      = current.dim,
+				startPos = $.extend({}, dim, F._getPosition( elastic )),
+				endPos   = $.extend({opacity : 1}, startPos);
+
+			//Remove "position" property that breaks older IE
+			delete endPos.position;
+
+			if (elastic) {
+				startPos = this.getOrigPosition();
+
+				if (current.openOpacity) {
+					startPos.opacity = 0;
+				}
+
+				F.outer.add(F.inner).width('auto').height('auto');
+
+			} else if (effect === 'fade') {
+				startPos.opacity = 0;
+			}
+
+			wrap.css(startPos)
+				.show()
+				.animate(endPos, {
+					duration : effect === 'none' ? 0 : current.openSpeed,
+					easing   : current.openEasing,
+					step     : elastic ? this.step : null,
+					complete : F._afterZoomIn
+				});
+		},
+
+		zoomOut: function () {
+			var wrap     = F.wrap,
+				current  = F.current,
+				effect   = current.openEffect,
+				elastic  = effect === 'elastic',
+				endPos   = {opacity : 0};
+
+			if (elastic) {
+				if (wrap.css('position') === 'fixed') {
+					wrap.css(F._getPosition(true));
+				}
+
+				endPos = this.getOrigPosition();
+
+				if (current.closeOpacity) {
+					endPos.opacity = 0;
+				}
+			}
+
+			wrap.animate(endPos, {
+				duration : effect === 'none' ? 0 : current.closeSpeed,
+				easing   : current.closeEasing,
+				step     : elastic ? this.step : null,
+				complete : F._afterZoomOut
+			});
+		},
+
+		changeIn: function () {
+			var wrap     = F.wrap,
+				current  = F.current,
+				effect   = current.nextEffect,
+				elastic  = effect === 'elastic',
+				startPos = F._getPosition( elastic ),
+				endPos   = { opacity : 1 };
+
+			startPos.opacity = 0;
+
+			if (elastic) {
+				startPos.top = getValue(parseInt(startPos.top, 10) - 200);
+				endPos.top = '+=200px';
+			}
+
+			wrap.css(startPos)
+				.show()
+				.animate(endPos, {
+					duration : effect === 'none' ? 0 : current.nextSpeed,
+					easing   : current.nextEasing,
+					complete : F._afterZoomIn
+				});
+		},
+
+		changeOut: function () {
+			var wrap     = F.wrap,
+				current  = F.current,
+				effect   = current.prevEffect,
+				endPos   = { opacity : 0 },
+				cleanUp  = function () {
+					$(this).trigger('onReset').remove();
+				};
+
+			wrap.removeClass('fancybox-opened');
+
+			if (effect === 'elastic') {
+				endPos.top = '+=200px';
+			}
+
+			wrap.animate(endPos, {
+				duration : effect === 'none' ? 0 : current.prevSpeed,
+				easing   : current.prevEasing,
+				complete : cleanUp
+			});
+		}
+	};
+
+	/*
+	 *	Overlay helper
+	 */
+
+	F.helpers.overlay = {
+		overlay: null,
+
+		update: function () {
+			var width, scrollWidth, offsetWidth;
+
+			//Reset width/height so it will not mess
+			this.overlay.width('100%').height('100%');
+
+			if ($.browser.msie || isTouch) {
+				scrollWidth = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
+				offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
+
+				width = scrollWidth < offsetWidth ? W.width() : scrollWidth;
+
+			} else {
+				width = D.width();
+			}
+
+			this.overlay.width(width).height(D.height());
+		},
+
+		beforeShow: function (opts) {
+			if (this.overlay) {
+				return;
+			}
+
+			opts = $.extend(true, {}, F.defaults.helpers.overlay, opts);
+
+			this.overlay = $('<div id="fancybox-overlay"></div>').css(opts.css).appendTo('body');
+
+			if (opts.closeClick) {
+				this.overlay.bind('click.fb', F.close);
+			}
+
+			if (F.current.fixed && !isTouch) {
+				this.overlay.addClass('overlay-fixed');
+
+			} else {
+				this.update();
+
+				this.onUpdate = function () {
+					this.update();
+				};
+			}
+
+			this.overlay.fadeTo(opts.speedIn, opts.opacity);
+		},
+
+		afterClose: function (opts) {
+			if (this.overlay) {
+				this.overlay.fadeOut(opts.speedOut || 0, function () {
+					$(this).remove();
+				});
+			}
+
+			this.overlay = null;
+		}
+	};
+
+	/*
+	 *	Title helper
+	 */
+
+	F.helpers.title = {
+		beforeShow: function (opts) {
+			var title, text = F.current.title;
+
+			if (text) {
+				title = $('<div class="fancybox-title fancybox-title-' + opts.type + '-wrap">' + text + '</div>').appendTo('body');
+
+				if (opts.type === 'float') {
+					//This helps for some browsers
+					title.width(title.width());
+
+					title.wrapInner('<span class="child"></span>');
+
+					//Increase bottom margin so this title will also fit into viewport
+					F.current.margin[2] += Math.abs(parseInt(title.css('margin-bottom'), 10));
+				}
+
+				title.appendTo(opts.type === 'over' ? F.inner : (opts.type === 'outside' ? F.wrap : F.skin));
+			}
+		}
+	};
+
+	// jQuery plugin initialization
+	$.fn.fancybox = function (options) {
+		var that     = $(this),
+			selector = this.selector || '',
+			index,
+			run      = function(e) {
+				var what = this, idx = index, relType, relVal;
+
+				if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !$(what).is('.fancybox-wrap')) {
+					e.preventDefault();
+
+					relType = options.groupAttr || 'data-fancybox-group';
+					relVal  = $(what).attr(relType);
+
+					if (!relVal) {
+						relType = 'rel';
+						relVal  = what[ relType ];
+					}
+
+					if (relVal && relVal !== '' && relVal !== 'nofollow') {
+						what = selector.length ? $(selector) : that;
+						what = what.filter('[' + relType + '="' + relVal + '"]');
+						idx  = what.index(this);
+					}
+
+					options.index = idx;
+
+					F.open(what, options);
+				}
+			};
+
+		options = options || {};
+		index   = options.index || 0;
+
+		if (selector) {
+			D.undelegate(selector, 'click.fb-start').delegate(selector, 'click.fb-start', run);
+
+		} else {
+			that.unbind('click.fb-start').bind('click.fb-start', run);
+		}
+
+		return this;
+	};
+
+	// Test for fixedPosition needs a body at doc ready
+	$(document).ready(function() {
+		F.defaults.fixed = $.support.fixedPosition || (!($.browser.msie && $.browser.version <= 6) && !isTouch);
+	});
+
+}(window, document, jQuery));
\ No newline at end of file

=== added file 'media/fancybox/jquery.fancybox.pack.js'
--- media/fancybox/jquery.fancybox.pack.js	1970-01-01 00:00:00 +0000
+++ media/fancybox/jquery.fancybox.pack.js	2012-07-04 18:20:26 +0000
@@ -0,0 +1,35 @@
+/*! fancyBox v2.0.6 fancyapps.com | fancyapps.com/fancybox/#license */
+(function(s,l,d,t){var m=d(s),q=d(l),a=d.fancybox=function(){a.open.apply(this,arguments)},u=!1,k=l.createTouch!==t,o=function(a){return"string"===d.type(a)},n=function(b,c){c&&o(b)&&0<b.indexOf("%")&&(b=a.getViewport()[c]/100*parseInt(b,10));return Math.round(b)+"px"};d.extend(a,{version:"2.0.5",defaults:{padding:15,margin:20,width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,autoSize:!0,autoResize:!k,autoCenter:!k,fitToView:!0,aspectRatio:!1,topRatio:0.5,fixed:!1,scrolling:"auto",
+wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},keys:{next:[13,32,34,39,40],prev:[8,33,37,38],close:[27]},tpl:{wrap:'<div class="fancybox-wrap"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe class="fancybox-iframe" name="fancybox-frame{rnd}" frameborder="0" hspace="0"'+
+(d.browser.msie?' allowtransparency="true"':"")+"></iframe>",swf:'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="wmode" value="transparent" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{href}" /><embed src="{href}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="100%" height="100%" wmode="transparent"></embed></object>',error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
+closeBtn:'<div title="Close" class="fancybox-item fancybox-close"></div>',next:'<a title="Next" class="fancybox-nav fancybox-next"><span></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev"><span></span></a>'},openEffect:"fade",openSpeed:300,openEasing:"swing",openOpacity:!0,openMethod:"zoomIn",closeEffect:"fade",closeSpeed:300,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:300,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",
+prevSpeed:300,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:{speedIn:0,speedOut:300,opacity:0.8,css:{cursor:"pointer"},closeClick:!0},title:{type:"float"}}},group:{},opts:{},coming:null,current:null,isOpen:!1,isOpened:!1,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(b,c){a.close(!0);b&&!d.isArray(b)&&(b=b instanceof d?d(b).get():[b]);a.isActive=!0;a.opts=d.extend(!0,{},a.defaults,c);d.isPlainObject(c)&&c.keys!==t&&(a.opts.keys=c.keys?
+d.extend({},a.defaults.keys,c.keys):!1);a.group=b;a._start(a.opts.index||0)},cancel:function(){a.coming&&!1===a.trigger("onCancel")||(a.coming=null,a.hideLoading(),a.ajaxLoad&&a.ajaxLoad.abort(),a.ajaxLoad=null,a.imgPreload&&(a.imgPreload.onload=a.imgPreload.onabort=a.imgPreload.onerror=null))},close:function(b){a.cancel();a.current&&!1!==a.trigger("beforeClose")&&(a.unbindEvents(),!a.isOpen||b&&!0===b[0]?(d(".fancybox-wrap").stop().trigger("onReset").remove(),a._afterZoomOut()):(a.isOpen=a.isOpened=
+!1,d(".fancybox-item, .fancybox-nav").remove(),a.wrap.stop(!0).removeClass("fancybox-opened"),a.inner.css("overflow","hidden"),a.transitions[a.current.closeMethod]()))},play:function(b){var c=function(){clearTimeout(a.player.timer)},e=function(){c();a.current&&a.player.isActive&&(a.player.timer=setTimeout(a.next,a.current.playSpeed))},f=function(){c();d("body").unbind(".player");a.player.isActive=!1;a.trigger("onPlayEnd")};if(a.player.isActive||b&&!1===b[0])f();else if(a.current&&(a.current.loop||
+a.current.index<a.group.length-1))a.player.isActive=!0,d("body").bind({"afterShow.player onUpdate.player":e,"onCancel.player beforeClose.player":f,"beforeLoad.player":c}),e(),a.trigger("onPlayStart")},next:function(){a.current&&a.jumpto(a.current.index+1)},prev:function(){a.current&&a.jumpto(a.current.index-1)},jumpto:function(b){a.current&&(b=parseInt(b,10),1<a.group.length&&a.current.loop&&(b>=a.group.length?b=0:0>b&&(b=a.group.length-1)),a.group[b]!==t&&(a.cancel(),a._start(b)))},reposition:function(b,
+c){var e;a.isOpen&&(e=a._getPosition(c),b&&"scroll"===b.type?(delete e.position,a.wrap.stop(!0,!0).animate(e,200)):a.wrap.css(e))},update:function(b){a.isOpen&&(u||setTimeout(function(){var c=a.current,e=!b||b&&"orientationchange"===b.type;if(u&&(u=!1,c)){if(!b||"scroll"!==b.type||e)c.autoSize&&"iframe"!==c.type&&(a.inner.height("auto"),c.height=a.inner.height()),(c.autoResize||e)&&a._setDimension(),c.canGrow&&"iframe"!==c.type&&a.inner.height("auto");(c.autoCenter||e)&&a.reposition(b);a.trigger("onUpdate")}},
+200),u=!0)},toggle:function(){a.isOpen&&(a.current.fitToView=!a.current.fitToView,a.update())},hideLoading:function(){q.unbind("keypress.fb");d("#fancybox-loading").remove()},showLoading:function(){a.hideLoading();q.bind("keypress.fb",function(b){27===b.keyCode&&(b.preventDefault(),a.cancel())});d('<div id="fancybox-loading"><div></div></div>').click(a.cancel).appendTo("body")},getViewport:function(){return{x:m.scrollLeft(),y:m.scrollTop(),w:k&&s.innerWidth?s.innerWidth:m.width(),h:k&&s.innerHeight?
+s.innerHeight:m.height()}},unbindEvents:function(){a.wrap&&a.wrap.unbind(".fb");q.unbind(".fb");m.unbind(".fb")},bindEvents:function(){var b=a.current,c=b.keys;b&&(m.bind("resize.fb orientationchange.fb"+(b.autoCenter&&!b.fixed?" scroll.fb":""),a.update),c&&q.bind("keydown.fb",function(b){var f;f=b.target||b.srcElement;if(!b.ctrlKey&&!b.altKey&&!b.shiftKey&&!b.metaKey&&(!f||!f.type&&!d(f).is("[contenteditable]")))f=b.keyCode,-1<d.inArray(f,c.close)?(a.close(),b.preventDefault()):-1<d.inArray(f,c.next)?
+(a.next(),b.preventDefault()):-1<d.inArray(f,c.prev)&&(a.prev(),b.preventDefault())}),d.fn.mousewheel&&b.mouseWheel&&1<a.group.length&&a.wrap.bind("mousewheel.fb",function(b,c){var d=b.target||null;if(0!==c&&(!d||0===d.clientHeight||d.scrollHeight===d.clientHeight&&d.scrollWidth===d.clientWidth))b.preventDefault(),a[0<c?"prev":"next"]()}))},trigger:function(b,c){var e,f=c||a[-1<d.inArray(b,["onCancel","beforeLoad","afterLoad"])?"coming":"current"];if(f){d.isFunction(f[b])&&(e=f[b].apply(f,Array.prototype.slice.call(arguments,
+1)));if(!1===e)return!1;f.helpers&&d.each(f.helpers,function(c,e){if(e&&d.isPlainObject(a.helpers[c])&&d.isFunction(a.helpers[c][b]))a.helpers[c][b](e,f)});d.event.trigger(b+".fb")}},isImage:function(a){return o(a)&&a.match(/\.(jpe?g|gif|png|bmp)((\?|#).*)?$/i)},isSWF:function(a){return o(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(b){var c={},e=a.group[b]||null,f,g,i;if(e&&(e.nodeType||e instanceof d))f=!0,d.metadata&&(c=d(e).metadata());c=d.extend(!0,{},a.opts,{index:b,element:e},d.isPlainObject(e)?
+e:c);d.each(["href","title","content","type"],function(b,g){c[g]=a.opts[g]||f&&d(e).attr(g)||c[g]||null});"number"===typeof c.margin&&(c.margin=[c.margin,c.margin,c.margin,c.margin]);c.modal&&d.extend(!0,c,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{css:{cursor:"auto"},closeClick:!1}}});a.coming=c;if(!1===a.trigger("beforeLoad"))a.coming=null;else{g=c.type;b=c.href||e;g||(f&&(g=d(e).data("fancybox-type"),g||(g=(g=e.className.match(/fancybox\.(\w+)/))?
+g[1]:null)),!g&&o(b)&&(a.isImage(b)?g="image":a.isSWF(b)?g="swf":b.match(/^#/)&&(g="inline")),g||(g=f?"inline":"html"),c.type=g);if("inline"===g||"html"===g){if(c.content||(c.content="inline"===g?d(o(b)?b.replace(/.*(?=#[^\s]+$)/,""):b):e),!c.content||!c.content.length)g=null}else b||(g=null);"ajax"===g&&o(b)&&(i=b.split(/\s+/,2),b=i.shift(),c.selector=i.shift());c.href=b;c.group=a.group;c.isDom=f;switch(g){case "image":a._loadImage();break;case "ajax":a._loadAjax();break;case "inline":case "iframe":case "swf":case "html":a._afterLoad();
+break;default:a._error("type")}}},_error:function(b){a.hideLoading();d.extend(a.coming,{type:"html",autoSize:!0,minWidth:0,minHeight:0,padding:15,hasError:b,content:a.coming.tpl.error});a._afterLoad()},_loadImage:function(){var b=a.imgPreload=new Image;b.onload=function(){this.onload=this.onerror=null;a.coming.width=this.width;a.coming.height=this.height;a._afterLoad()};b.onerror=function(){this.onload=this.onerror=null;a._error("image")};b.src=a.coming.href;(b.complete===t||!b.complete)&&a.showLoading()},
+_loadAjax:function(){a.showLoading();a.ajaxLoad=d.ajax(d.extend({},a.coming.ajax,{url:a.coming.href,error:function(b,c){a.coming&&"abort"!==c?a._error("ajax",b):a.hideLoading()},success:function(b,c){"success"===c&&(a.coming.content=b,a._afterLoad())}}))},_preloadImages:function(){var b=a.group,c=a.current,e=b.length,f,g,i,h=Math.min(c.preload,e-1);if(c.preload&&!(2>b.length))for(i=1;i<=h;i+=1)if(f=b[(c.index+i)%e],g=f.href||d(f).attr("href")||f,"image"===f.type||a.isImage(g))(new Image).src=g},_afterLoad:function(){a.hideLoading();
+!a.coming||!1===a.trigger("afterLoad",a.current)?a.coming=!1:(a.isOpened?(d(".fancybox-item, .fancybox-nav").remove(),a.wrap.stop(!0).removeClass("fancybox-opened"),a.inner.css("overflow","hidden"),a.transitions[a.current.prevMethod]()):(d(".fancybox-wrap").stop().trigger("onReset").remove(),a.trigger("afterClose")),a.unbindEvents(),a.isOpen=!1,a.current=a.coming,a.wrap=d(a.current.tpl.wrap).addClass("fancybox-"+(k?"mobile":"desktop")+" fancybox-type-"+a.current.type+" fancybox-tmp "+a.current.wrapCSS).appendTo("body"),
+a.skin=d(".fancybox-skin",a.wrap).css("padding",n(a.current.padding)),a.outer=d(".fancybox-outer",a.wrap),a.inner=d(".fancybox-inner",a.wrap),a._setContent())},_setContent:function(){var b=a.current,c=b.content,e=b.type,f=b.minWidth,g=b.minHeight,i=b.maxWidth,h=b.maxHeight;switch(e){case "inline":case "ajax":case "html":b.selector?c=d("<div>").html(c).find(b.selector):c instanceof d&&(c.parent().hasClass("fancybox-inner")&&c.parents(".fancybox-wrap").unbind("onReset"),c=c.show().detach(),d(a.wrap).bind("onReset",
+function(){c.appendTo("body").hide()}));b.autoSize&&(f=d('<div class="fancybox-wrap '+a.current.wrapCSS+' fancybox-tmp"></div>').appendTo("body").css({minWidth:n(f,"w"),minHeight:n(g,"h"),maxWidth:n(i,"w"),maxHeight:n(h,"h")}).append(c),b.width=f.width(),b.height=f.height(),f.width(a.current.width),f.height()>b.height&&(f.width(b.width+1),b.width=f.width(),b.height=f.height()),c=f.contents().detach(),f.remove());break;case "image":c=b.tpl.image.replace("{href}",b.href);b.aspectRatio=!0;break;case "swf":c=
+b.tpl.swf.replace(/\{width\}/g,b.width).replace(/\{height\}/g,b.height).replace(/\{href\}/g,b.href);break;case "iframe":c=d(b.tpl.iframe.replace("{rnd}",(new Date).getTime())).attr("scrolling",b.scrolling).attr("src",b.href),b.scrolling=k?"scroll":"auto"}if("image"===e||"swf"===e)b.autoSize=!1,b.scrolling="visible";"iframe"===e&&b.autoSize?(a.showLoading(),a._setDimension(),a.inner.css("overflow",b.scrolling),c.bind({onCancel:function(){d(this).unbind();a._afterZoomOut()},load:function(){a.hideLoading();
+try{this.contentWindow.document.location&&(a.current.height=d(this).contents().find("body").height())}catch(b){a.current.autoSize=!1}a[a.isOpen?"_afterZoomIn":"_beforeShow"]()}}).appendTo(a.inner)):(a.inner.append(c),a._beforeShow())},_beforeShow:function(){a.coming=null;a.trigger("beforeShow");a._setDimension();a.wrap.hide().removeClass("fancybox-tmp");a.bindEvents();a._preloadImages();a.transitions[a.isOpened?a.current.nextMethod:a.current.openMethod]()},_setDimension:function(){var b=a.wrap,c=
+a.inner,e=a.current,f=a.getViewport(),g=e.margin,i=2*e.padding,h=e.width,j=e.height,r=e.maxWidth+i,k=e.maxHeight+i,l=e.minWidth+i,m=e.minHeight+i,p;f.w-=g[1]+g[3];f.h-=g[0]+g[2];o(h)&&0<h.indexOf("%")&&(h=(f.w-i)*parseFloat(h)/100);o(j)&&0<j.indexOf("%")&&(j=(f.h-i)*parseFloat(j)/100);g=h/j;h+=i;j+=i;e.fitToView&&(r=Math.min(f.w,r),k=Math.min(f.h,k));if(e.aspectRatio){if(h>r&&(h=r,j=(h-i)/g+i),j>k&&(j=k,h=(j-i)*g+i),h<l&&(h=l,j=(h-i)/g+i),j<m)j=m,h=(j-i)*g+i}else h=Math.max(l,Math.min(h,r)),j=Math.max(m,
+Math.min(j,k));h=Math.round(h);j=Math.round(j);d(b.add(c)).width("auto").height("auto");c.width(h-i).height(j-i);b.width(h);p=b.height();if(h>r||p>k)for(;(h>r||p>k)&&h>l&&p>m;)j-=10,e.aspectRatio?(h=Math.round((j-i)*g+i),h<l&&(h=l,j=(h-i)/g+i)):h-=10,c.width(h-i).height(j-i),b.width(h),p=b.height();e.dim={width:n(h),height:n(p)};e.canGrow=e.autoSize&&j>m&&j<k;e.canShrink=!1;e.canExpand=!1;if(h-i<e.width||j-i<e.height)e.canExpand=!0;else if((h>f.w||p>f.h)&&h>l&&j>m)e.canShrink=!0;a.innerSpace=p-i-
+c.height()},_getPosition:function(b){var c=a.current,e=a.getViewport(),f=c.margin,d=a.wrap.width()+f[1]+f[3],i=a.wrap.height()+f[0]+f[2],h={position:"absolute",top:f[0]+e.y,left:f[3]+e.x};c.autoCenter&&c.fixed&&!b&&i<=e.h&&d<=e.w&&(h={position:"fixed",top:f[0],left:f[3]});h.top=n(Math.max(h.top,h.top+(e.h-i)*c.topRatio));h.left=n(Math.max(h.left,h.left+0.5*(e.w-d)));return h},_afterZoomIn:function(){var b=a.current,c=b?b.scrolling:"no";if(b&&(a.isOpen=a.isOpened=!0,a.wrap.addClass("fancybox-opened"),
+a.inner.css("overflow","yes"===c?"scroll":"no"===c?"hidden":c),a.trigger("afterShow"),a.update(),(b.closeClick||b.nextClick)&&a.inner.css("cursor","pointer").bind("click.fb",function(c){if(!d(c.target).is("a")&&!d(c.target).parent().is("a"))a[b.closeClick?"close":"next"]()}),b.closeBtn&&d(b.tpl.closeBtn).appendTo(a.skin).bind("click.fb",a.close),b.arrows&&1<a.group.length&&((b.loop||0<b.index)&&d(b.tpl.prev).appendTo(a.outer).bind("click.fb",a.prev),(b.loop||b.index<a.group.length-1)&&d(b.tpl.next).appendTo(a.outer).bind("click.fb",
+a.next)),a.opts.autoPlay&&!a.player.isActive))a.opts.autoPlay=!1,a.play()},_afterZoomOut:function(){var b=a.current;a.wrap.trigger("onReset").remove();d.extend(a,{group:{},opts:{},current:null,isActive:!1,isOpened:!1,isOpen:!1,wrap:null,skin:null,outer:null,inner:null});a.trigger("afterClose",b)}});a.transitions={getOrigPosition:function(){var b=a.current,c=b.element,e=b.padding,f=d(b.orig),g={},i=50,h=50;!f.length&&b.isDom&&d(c).is(":visible")&&(f=d(c).find("img:first"),f.length||(f=d(c)));f.length?
+(g=f.offset(),f.is("img")&&(i=f.outerWidth(),h=f.outerHeight())):(b=a.getViewport(),g.top=b.y+0.5*(b.h-h),g.left=b.x+0.5*(b.w-i));return g={top:n(g.top-e),left:n(g.left-e),width:n(i+2*e),height:n(h+2*e)}},step:function(b,c){var e=c.prop,d,g;if("width"===e||"height"===e)d=Math.ceil(b-2*a.current.padding),"height"===e&&(g=(b-c.start)/(c.end-c.start),c.start>c.end&&(g=1-g),d-=a.innerSpace*g),a.inner[e](d)},zoomIn:function(){var b=a.wrap,c=a.current,e=c.openEffect,f="elastic"===e,g=d.extend({},c.dim,
+a._getPosition(f)),i=d.extend({opacity:1},g);delete i.position;f?(g=this.getOrigPosition(),c.openOpacity&&(g.opacity=0),a.outer.add(a.inner).width("auto").height("auto")):"fade"===e&&(g.opacity=0);b.css(g).show().animate(i,{duration:"none"===e?0:c.openSpeed,easing:c.openEasing,step:f?this.step:null,complete:a._afterZoomIn})},zoomOut:function(){var b=a.wrap,c=a.current,d=c.openEffect,f="elastic"===d,g={opacity:0};f&&("fixed"===b.css("position")&&b.css(a._getPosition(!0)),g=this.getOrigPosition(),c.closeOpacity&&
+(g.opacity=0));b.animate(g,{duration:"none"===d?0:c.closeSpeed,easing:c.closeEasing,step:f?this.step:null,complete:a._afterZoomOut})},changeIn:function(){var b=a.wrap,c=a.current,d=c.nextEffect,f="elastic"===d,g=a._getPosition(f),i={opacity:1};g.opacity=0;f&&(g.top=n(parseInt(g.top,10)-200),i.top="+=200px");b.css(g).show().animate(i,{duration:"none"===d?0:c.nextSpeed,easing:c.nextEasing,complete:a._afterZoomIn})},changeOut:function(){var b=a.wrap,c=a.current,e=c.prevEffect,f={opacity:0};b.removeClass("fancybox-opened");
+"elastic"===e&&(f.top="+=200px");b.animate(f,{duration:"none"===e?0:c.prevSpeed,easing:c.prevEasing,complete:function(){d(this).trigger("onReset").remove()}})}};a.helpers.overlay={overlay:null,update:function(){var a,c;this.overlay.width("100%").height("100%");d.browser.msie||k?(a=Math.max(l.documentElement.scrollWidth,l.body.scrollWidth),c=Math.max(l.documentElement.offsetWidth,l.body.offsetWidth),a=a<c?m.width():a):a=q.width();this.overlay.width(a).height(q.height())},beforeShow:function(b){this.overlay||
+(b=d.extend(!0,{},a.defaults.helpers.overlay,b),this.overlay=d('<div id="fancybox-overlay"></div>').css(b.css).appendTo("body"),b.closeClick&&this.overlay.bind("click.fb",a.close),a.current.fixed&&!k?this.overlay.addClass("overlay-fixed"):(this.update(),this.onUpdate=function(){this.update()}),this.overlay.fadeTo(b.speedIn,b.opacity))},afterClose:function(a){this.overlay&&this.overlay.fadeOut(a.speedOut||0,function(){d(this).remove()});this.overlay=null}};a.helpers.title={beforeShow:function(b){var c;
+if(c=a.current.title)c=d('<div class="fancybox-title fancybox-title-'+b.type+'-wrap">'+c+"</div>").appendTo("body"),"float"===b.type&&(c.width(c.width()),c.wrapInner('<span class="child"></span>'),a.current.margin[2]+=Math.abs(parseInt(c.css("margin-bottom"),10))),c.appendTo("over"===b.type?a.inner:"outside"===b.type?a.wrap:a.skin)}};d.fn.fancybox=function(b){var c=d(this),e=this.selector||"",f,g=function(g){var h=this,j=f,k;!g.ctrlKey&&!g.altKey&&!g.shiftKey&&!g.metaKey&&!d(h).is(".fancybox-wrap")&&
+(g.preventDefault(),g=b.groupAttr||"data-fancybox-group",k=d(h).attr(g),k||(g="rel",k=h[g]),k&&""!==k&&"nofollow"!==k&&(h=e.length?d(e):c,h=h.filter("["+g+'="'+k+'"]'),j=h.index(this)),b.index=j,a.open(h,b))},b=b||{};f=b.index||0;e?q.undelegate(e,"click.fb-start").delegate(e,"click.fb-start",g):c.unbind("click.fb-start").bind("click.fb-start",g);return this};d(l).ready(function(){a.defaults.fixed=d.support.fixedPosition||!(d.browser.msie&&6>=d.browser.version)&&!k})})(window,document,jQuery);
\ No newline at end of file

=== added file 'media/forum/img/closed.png'
Binary files media/forum/img/closed.png	1970-01-01 00:00:00 +0000 and media/forum/img/closed.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/delete.png'
Binary files media/forum/img/delete.png	1970-01-01 00:00:00 +0000 and media/forum/img/delete.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/doc_big_work.png'
Binary files media/forum/img/doc_big_work.png	1970-01-01 00:00:00 +0000 and media/forum/img/doc_big_work.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/doc_big_work_star.png'
Binary files media/forum/img/doc_big_work_star.png	1970-01-01 00:00:00 +0000 and media/forum/img/doc_big_work_star.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/edit.png'
Binary files media/forum/img/edit.png	1970-01-01 00:00:00 +0000 and media/forum/img/edit.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/folder_big_work.png'
Binary files media/forum/img/folder_big_work.png	1970-01-01 00:00:00 +0000 and media/forum/img/folder_big_work.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/folder_big_work_star.png'
Binary files media/forum/img/folder_big_work_star.png	1970-01-01 00:00:00 +0000 and media/forum/img/folder_big_work_star.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/new_topic.png'
Binary files media/forum/img/new_topic.png	1970-01-01 00:00:00 +0000 and media/forum/img/new_topic.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/open.png'
Binary files media/forum/img/open.png	1970-01-01 00:00:00 +0000 and media/forum/img/open.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/permalink.png'
Binary files media/forum/img/permalink.png	1970-01-01 00:00:00 +0000 and media/forum/img/permalink.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/permalink_hover.png'
Binary files media/forum/img/permalink_hover.png	1970-01-01 00:00:00 +0000 and media/forum/img/permalink_hover.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/preview.png'
Binary files media/forum/img/preview.png	1970-01-01 00:00:00 +0000 and media/forum/img/preview.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/quote.png'
Binary files media/forum/img/quote.png	1970-01-01 00:00:00 +0000 and media/forum/img/quote.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/send.png'
Binary files media/forum/img/send.png	1970-01-01 00:00:00 +0000 and media/forum/img/send.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/send_pm.png'
Binary files media/forum/img/send_pm.png	1970-01-01 00:00:00 +0000 and media/forum/img/send_pm.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/sticky.png'
Binary files media/forum/img/sticky.png	1970-01-01 00:00:00 +0000 and media/forum/img/sticky.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/subscribe.png'
Binary files media/forum/img/subscribe.png	1970-01-01 00:00:00 +0000 and media/forum/img/subscribe.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/top.png'
Binary files media/forum/img/top.png	1970-01-01 00:00:00 +0000 and media/forum/img/top.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/unstick.png'
Binary files media/forum/img/unstick.png	1970-01-01 00:00:00 +0000 and media/forum/img/unstick.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/forum/img/unsubscribe.png'
Binary files media/forum/img/unsubscribe.png	1970-01-01 00:00:00 +0000 and media/forum/img/unsubscribe.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/black20.png'
Binary files media/img/black20.png	1970-01-01 00:00:00 +0000 and media/img/black20.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/black50.png'
Binary files media/img/black50.png	1970-01-01 00:00:00 +0000 and media/img/black50.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/but1.png'
Binary files media/img/but1.png	1970-01-01 00:00:00 +0000 and media/img/but1.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/delete.png'
Binary files media/img/delete.png	1970-01-01 00:00:00 +0000 and media/img/delete.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/download.png'
Binary files media/img/download.png	1970-01-01 00:00:00 +0000 and media/img/download.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/easter.png'
Binary files media/img/easter.png	1970-01-01 00:00:00 +0000 and media/img/easter.png	2012-07-04 18:20:26 +0000 differ
=== added directory 'media/img/lightbox'
=== added file 'media/img/lightbox/lightbox-blank.gif'
Binary files media/img/lightbox/lightbox-blank.gif	1970-01-01 00:00:00 +0000 and media/img/lightbox/lightbox-blank.gif	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/lightbox/lightbox-btn-close.gif'
Binary files media/img/lightbox/lightbox-btn-close.gif	1970-01-01 00:00:00 +0000 and media/img/lightbox/lightbox-btn-close.gif	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/lightbox/lightbox-btn-next.gif'
Binary files media/img/lightbox/lightbox-btn-next.gif	1970-01-01 00:00:00 +0000 and media/img/lightbox/lightbox-btn-next.gif	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/lightbox/lightbox-btn-prev.gif'
Binary files media/img/lightbox/lightbox-btn-prev.gif	1970-01-01 00:00:00 +0000 and media/img/lightbox/lightbox-btn-prev.gif	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/lightbox/lightbox-ico-loading.gif'
Binary files media/img/lightbox/lightbox-ico-loading.gif	1970-01-01 00:00:00 +0000 and media/img/lightbox/lightbox-ico-loading.gif	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/parchment.png'
Binary files media/img/parchment.png	1970-01-01 00:00:00 +0000 and media/img/parchment.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/replied.png'
Binary files media/img/replied.png	1970-01-01 00:00:00 +0000 and media/img/replied.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/smileys/face-confused.png'
Binary files media/img/smileys/face-confused.png	1970-01-01 00:00:00 +0000 and media/img/smileys/face-confused.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/smileys/face-cool.png'
Binary files media/img/smileys/face-cool.png	1970-01-01 00:00:00 +0000 and media/img/smileys/face-cool.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/smileys/face-mad.png'
Binary files media/img/smileys/face-mad.png	1970-01-01 00:00:00 +0000 and media/img/smileys/face-mad.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/smileys/face-shock.png'
Binary files media/img/smileys/face-shock.png	1970-01-01 00:00:00 +0000 and media/img/smileys/face-shock.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/smileys/face-tongue.png'
Binary files media/img/smileys/face-tongue.png	1970-01-01 00:00:00 +0000 and media/img/smileys/face-tongue.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/smileys/face-upset.png'
Binary files media/img/smileys/face-upset.png	1970-01-01 00:00:00 +0000 and media/img/smileys/face-upset.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/undelete.png'
Binary files media/img/undelete.png	1970-01-01 00:00:00 +0000 and media/img/undelete.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/welcome.png'
Binary files media/img/welcome.png	1970-01-01 00:00:00 +0000 and media/img/welcome.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/img/wood.png'
Binary files media/img/wood.png	1970-01-01 00:00:00 +0000 and media/img/wood.png	2012-07-04 18:20:26 +0000 differ
=== added file 'media/js/scripts.js'
--- media/js/scripts.js	1970-01-01 00:00:00 +0000
+++ media/js/scripts.js	2012-07-04 18:20:26 +0000
@@ -0,0 +1,15 @@
+$(document).ready(function() { 
+	$('[placeholder]').focus(function() {
+		var input = $(this);
+		if (input.val() == input.attr('placeholder')) {
+			input.val('');
+			input.removeClass('placeholder');
+		}
+	}).blur(function() {
+	var input = $(this);
+		if (input.val() == '' || input.val() == input.attr('placeholder')) {
+			input.addClass('placeholder');
+			input.val(input.attr('placeholder'));
+		}
+	}).blur();
+});

=== added directory 'media/wlprofile'
=== added file 'media/wlprofile/anonymous.png'
Binary files media/wlprofile/anonymous.png	1970-01-01 00:00:00 +0000 and media/wlprofile/anonymous.png	2012-07-04 18:20:26 +0000 differ
=== removed directory 'online_help/templates'
=== removed file 'online_help/templates/inlines/display_building.html'
--- online_help/templates/inlines/display_building.html	2010-11-01 19:02:28 +0000
+++ online_help/templates/inlines/display_building.html	1970-01-01 00:00:00 +0000
@@ -1,232 +0,0 @@
-{% comment %}
-   vim:ft=htmldjango
-{% endcomment %}
-
-      <!-- Header -->
-    <tr>
-
-      {% if b.has_build_cost and b.has_outputs and b.has_stored_wares %}
-            <!-- With build cost and production and stored wares 111 -->
-        <th width="152px"><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}" name="{{ b.name }}">{{b.displayname|title }}</a></th>
-        <th>Description</th>
-        <th>Build cost</th>
-        <th>Produces</th>
-        <th>Stores</th>
-      {% endif %}
-
-      {% if b.has_build_cost and b.has_outputs and not b.has_stored_wares %}
-            <!-- With build cost and production 110 -->
-        <th width="152px"><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}" name="{{ b.name }}">{{b.displayname|title }}</a></th>
-        <th colspan="2">Description</th>
-        <th>Build cost</th>
-        <th>Produces</th>
-      {% endif %}
-
-      {% if b.has_build_cost and not b.has_outputs and b.has_stored_wares %}
-            <!-- With build cost and stored wares 101 -->
-        <th width="152px"><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}" name="{{ b.name }}">{{b.displayname|title }}</a></th>
-        <th colspan="2">Description</th>
-        <th>Build cost</th>
-        <th>Stores</th>
-      {% endif %}
-
-      {% if not b.has_build_cost and b.has_outputs and b.has_stored_wares %}
-            <!-- With production and stored wares 011 -->
-        <th width="152px"><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}" name="{{ b.name }}">{{b.displayname|title }}</a></th>
-        <th colspan="2">Description</th>
-        <th>Produces</th>
-        <th>Stores</th>
-      {% endif %}
-
-      {% if b.has_build_cost and not b.has_outputs and not b.has_stored_wares %}
-            <!-- With build cost 100 -->
-        <th width="152px"><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}" name="{{ b.name }}">{{b.displayname|title }}</a></th>
-        <th colspan="3">Description</th>
-        <th>Build cost</th>
-      {% endif %}
-
-      {% if not b.has_build_cost and b.has_outputs and not b.has_stored_wares %}
-            <!-- With production 010 -->
-        <th width="152px"><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}" name="{{ b.name }}">{{b.displayname|title }}</a></th>
-        <th colspan="3">Description</th>
-        <th>Produces</th>
-      {% endif %}
-
-      {% if not b.has_build_cost and b.has_outputs and not b.has_stored_wares %}
-            <!-- With stored wares 001 -->
-        <th width="152px"><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}" name="{{ b.name }}">{{b.displayname|title }}</a></th>
-        <th colspan="3">Description</th>
-        <th>Stores</th>
-      {% endif %}
-
-      {% if not b.has_outputs and not b.has_build_cost and not b.has_stored_wares %}
-            <!-- For headquaters 000 -->
-        <th width="152px"><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}" name="{{ b.name }}">{{b.displayname|title }}</a></th>
-        <th colspan="4">Description</th>
-      {% endif %}
-    </tr>
-
-      <!-- Content -->
-    <tr class="odd">
-
-      {% if b.has_build_cost and b.has_outputs and b.has_stored_wares %}
-            <!-- With build cost and production and stored wares 111 -->
-        <td><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}"><img alt="{{b.displayname}}" src="{{ b.image_url }}" /></a></td>
-        <td>{{ b.help }}</td>
-        <td>
-          {% for costs in b.get_build_cost %}
-              {% for w in costs %}
-              <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-              {% endfor %}
-            <br />
-          {%endfor%}
-        </td> 
-        <td>
-          {% if b.produces and not b.trains %}
-            {% for w in b.get_ware_outputs %}
-            <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-            {%endfor%}
-          {% endif %}
-          {% if b.trains and not b.produces %}
-            {% for wor in b.get_worker_outputs %}
-            <img src="{{ wor.image_url }}" alt="{{ wor.name }}" />
-            {%endfor%}
-          {% endif %}
-        </td>
-        <td>
-          {% for costs in b.get_stored_wares %}
-              {% for w in costs %}
-              <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-              {% endfor %}
-            <br />
-          {%endfor%}
-        </td> 
-      {% endif %}
-
-      {% if b.has_build_cost and b.has_outputs and not b.has_stored_wares %}
-            <!-- With build cost and production 110 -->
-        <td><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}"><img alt="{{b.displayname}}" src="{{ b.image_url }}" /></a></td>
-        <td colspan="2">{{ b.help }}</td>
-        <td>
-          {% for costs in b.get_build_cost %}
-              {% for w in costs %}
-              <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-              {% endfor %}
-            <br />
-          {%endfor%}
-        </td> 
-        <td>
-          {% if b.produces and not b.trains %}
-            {% for w in b.get_ware_outputs %}
-            <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-            {%endfor%}
-          {% endif %}
-          {% if b.trains and not b.produces %}
-            {% for wor in b.get_worker_outputs %}
-            <img src="{{ wor.image_url }}" alt="{{ wor.name }}" />
-            {%endfor%}
-          {% endif %}
-        </td>
-      {% endif %}
-
-      {% if b.has_build_cost and not b.has_outputs and b.has_stored_wares%}
-            <!-- With build cost and stored wares 101 -->
-        <td><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}"><img alt="{{b.displayname}}" src="{{ b.image_url }}" /></a></td>
-        <td colspan="2">{{ b.help }}</td>
-        <td>
-          {% for costs in b.get_build_cost %}
-              {% for w in costs %}
-              <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-              {% endfor %}
-            <br />
-          {%endfor%}
-        </td> 
-        <td>
-          {% for costs in b.get_stored_wares %}
-              {% for w in costs %}
-              <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-              {% endfor %}
-            <br />
-          {%endfor%}
-        </td> 
-      {% endif %}
-
-      {% if not b.has_build_cost and b.has_outputs and b.has_stored_wares %}
-            <!-- With production and stored wares 011 -->
-        <td><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}"><img alt="{{b.displayname}}" src="{{ b.image_url }}" /></a></td>
-        <td colspan="2">{{ b.help }}</td>
-        <td>
-          {% if b.produces and not b.trains %}
-            {% for w in b.get_ware_outputs %}
-            <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-            {%endfor%}
-          {% endif %}
-          {% if b.trains and not b.produces %}
-            {% for wor in b.get_worker_outputs %}
-            <img src="{{ wor.image_url }}" alt="{{ wor.name }}" />
-            {%endfor%}
-          {% endif %}
-        </td>
-        <td>
-          {% for costs in b.get_stored_wares %}
-              {% for w in costs %}
-              <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-              {% endfor %}
-            <br />
-          {%endfor%}
-        </td> 
-      {% endif %}
-
-      {% if b.has_build_cost and not b.has_outputs and not b.has_stored_wares %}
-            <!-- With build cost 100 -->
-        <td><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}"><img alt="{{b.displayname}}" src="{{ b.image_url }}" /></a></td>
-        <td colspan="3">{{ b.help }}</td>
-        <td>
-          {% for costs in b.get_build_cost %}
-              {% for w in costs %}
-              <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-              {% endfor %}
-            <br />
-          {%endfor%}
-        </td> 
-      {% endif %}
-
-      {% if not b.has_build_cost and b.has_outputs and not b.has_stored_wares %}
-            <!-- With production 010 -->
-        <td><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}"><img alt="{{b.displayname}}" src="{{ b.image_url }}" /></a></td>
-        <td colspan="3">{{ b.help }}</td>
-        <td>
-          {% if b.produces and not b.trains %}
-            {% for w in b.get_ware_outputs %}
-            <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-            {%endfor%}
-          {% endif %}
-          {% if b.trains and not b.produces %}
-            {% for wor in b.get_worker_outputs %}
-            <img src="{{ wor.image_url }}" alt="{{ wor.name }}" />
-            {%endfor%}
-          {% endif %}
-        </td>
-      {% endif %}
-
-      {% if not b.has_build_cost and not b.has_outputs and b.has_stored_wares %}
-            <!-- With stored wares 001 -->
-        <td><a href="{% url help_building_details b.tribe.name b.name %}" title="{{ b.displayname }}"><img alt="{{b.displayname}}" src="{{ b.image_url }}" /></a></td>
-        <td colspan="3">{{ b.help }}</td>
-        <td>
-          {% for costs in b.get_stored_wares %}
-              {% for w in costs %}
-              <a href="{% url help_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
-              {% endfor %}
-            <br />
-          {%endfor%}
-        </td> 
-      {% endif %}
-
-      {% if not b.has_build_cost and not b.has_outputs and not b.has_stored_wares %}
-            <!-- For headquaters 000 -->
-        <td><a href="{% url help_building_details b.tribe.name b.name %}" title="{{b.displayname}}"><img alt="{{b.displayname}}" src="{{ b.image_url }}" /></a></td>
-        <td colspan="4">{{ b.help }}</td>
-      {% endif %}
-    </tr>
-

=== removed file 'online_help/templates/inlines/display_ware.html'
--- online_help/templates/inlines/display_ware.html	2010-11-01 19:02:28 +0000
+++ online_help/templates/inlines/display_ware.html	1970-01-01 00:00:00 +0000
@@ -1,10 +0,0 @@
-{% comment %}
-   vim:ft=htmldjango
-{% endcomment %}
-
-   <tr class="odd">
-      <td><a href="{% url help_ware_details ware.tribe.name ware.name %}" title="{{ ware.displayname }}"><img src="{{ ware.image_url }}"  alt="{{ ware.name }}" /></a></td>
-      <td><a href="{% url help_ware_details ware.tribe.name ware.name %}" title="{{ ware.displayname }}" name="{{ ware.name }}">{{ ware.displayname }}</a></td>
-      <td>{{ ware.help }}</td> 
-   </tr>
-

=== removed file 'online_help/templates/inlines/display_worker.html'
--- online_help/templates/inlines/display_worker.html	2010-11-06 19:35:10 +0000
+++ online_help/templates/inlines/display_worker.html	1970-01-01 00:00:00 +0000
@@ -1,10 +0,0 @@
-{% comment %}
-   vim:ft=htmldjango
-{% endcomment %}
-
-   <tr class="odd">
-      <td><img src="{{ worker.image_url }}"  alt="{{ worker.name }}" /></td>
-      <td><a name="{{ worker.name }}" href="{{worker.name}}/">{{ worker.displayname }}</a></td>
-      <td>{{ worker.help }}</td> 
-   </tr>
-

=== modified file 'pybb/forms.py'
--- pybb/forms.py	2011-08-24 13:09:49 +0000
+++ pybb/forms.py	2012-07-04 18:20:26 +0000
@@ -27,7 +27,10 @@
         self.ip = kwargs.pop('ip', None)
         super(AddPostForm, self).__init__(*args, **kwargs)
 
-        self.fields.keyOrder = ['name', 'body', 'markup', 'attachment']
+        self.fields.keyOrder = ['name', 
+                                'body', 
+                                'markup', 
+                                'attachment']
 
         if self.topic:
             self.fields['name'].widget = forms.HiddenInput()
@@ -49,7 +52,7 @@
 
     def save(self, *args, **kwargs):
         if self.forum:
-	    topic_is_new = True
+            topic_is_new = True
             topic = Topic(forum=self.forum,
                           user=self.user,
                           name=self.cleaned_data['name'])
@@ -91,7 +94,7 @@
 class EditPostForm(forms.ModelForm):
     class Meta:
         model = Post
-        fields = ['body']
+        fields = ['body', 'markup']
 
     def save(self, *args, **kwargs):
         post = super(EditPostForm, self).save(commit=False)

=== modified file 'pybb/templatetags/pybb_extras.py'
--- pybb/templatetags/pybb_extras.py	2011-09-11 18:15:47 +0000
+++ pybb/templatetags/pybb_extras.py	2012-07-04 18:20:26 +0000
@@ -90,7 +90,7 @@
     return {
         'posts': answer,
         'user': context['user'],
-	}
+        }
 
 @register.simple_tag
 def pybb_link(object, anchor=u''):

=== modified file 'pybb/urls.py'
--- pybb/urls.py	2010-06-08 19:08:52 +0000
+++ pybb/urls.py	2012-07-04 18:20:26 +0000
@@ -11,7 +11,7 @@
 urlpatterns = patterns('',
     # Misc
     url('^$', views.index, name='pybb_index'),
-    # url('^category/(?P<category_id>\d+)/$', views.show_category, name='pybb_category'),
+    url('^category/(?P<category_id>\d+)/$', views.show_category, name='pybb_category'),
     url('^forum/(?P<forum_id>\d+)/$', views.show_forum, name='pybb_forum'),
     url('^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed',
         {'feed_dict': feeds}, name='pybb_feed'),

=== modified file 'pybb/util.py'
--- pybb/util.py	2010-09-28 21:26:23 +0000
+++ pybb/util.py	2012-07-04 18:20:26 +0000
@@ -170,11 +170,11 @@
     """
     Quote message using selected markup.
     """
-    text = user.username + " wrote:\n" + text
+    text = "*" + user.username + " wrote:*\n\n" + text
 
     # if markup == 'markdown':
     if markup == 'markdown':
-        return '>'+text.replace('\n','\n>').replace('\r','\n>') + '\n'
+        return '>'+text.replace('\r','').replace('\n','\n>') + '\n'
     elif markup == 'bbcode':
         return '[quote]\n%s\n[/quote]\n' % text
     else:

=== modified file 'pybb/views.py'
--- pybb/views.py	2011-11-13 15:20:13 +0000
+++ pybb/views.py	2012-07-04 18:20:26 +0000
@@ -31,17 +31,7 @@
              'last_posts': Post.objects.order_by('-created').select_related()[:pybb_settings.QUICK_POSTS_NUMBER],
              }
 
-    cats = {}
-    forums = {}
-
-    for forum in Forum.objects.all().select_related():
-        cat = cats.setdefault(forum.category.id,
-            {'cat': forum.category, 'forums': []})
-        cat['forums'].append(forum)
-        forums[forum.id] = forum
-
-    cmpdef = lambda a, b: cmp(a['cat'].position, b['cat'].position)
-    cats = sorted(cats.values(), cmpdef)
+    cats = Category.objects.all().select_related()
 
     return {'cats': cats,
             'quick': quick,
@@ -161,7 +151,7 @@
         quote = ''
     else:
         post = get_object_or_404(Post, pk=quote_id)
-        quote = quote_text(post.body_text, post.user, "markdown")
+        quote = quote_text(post.body, post.user, "markdown")
 
     ip = request.META.get('REMOTE_ADDR', '')
     form = build_form(AddPostForm, request, topic=topic, forum=forum,
@@ -170,7 +160,7 @@
 
     if form.is_valid():
         post = form.save();
-	if not topic:
+        if not topic:
             post.topic.subscribers.add(request.user)
         return HttpResponseRedirect(post.get_absolute_url())
 
@@ -348,7 +338,7 @@
 @ajax
 def post_ajax_preview(request):
     content = request.POST.get('content')
-    markup = "markdown"
+    markup = request.POST.get('markup')
 
     if not markup in dict(MARKUP_CHOICES).keys():
         return {'error': 'Invalid markup'}

=== modified file 'settings.py'
--- settings.py	2011-08-26 15:45:24 +0000
+++ settings.py	2012-07-04 18:20:26 +0000
@@ -29,7 +29,7 @@
 
 # Language code for this installation. All choices can be found here:
 # http://www.i18nguy.com/unicode/language-identifiers.html
-LANGUAGE_CODE = 'de'
+LANGUAGE_CODE = 'en'
 
 SITE_ID = 1
 
@@ -66,7 +66,7 @@
 
 MIDDLEWARE_CLASSES = (
     # 'simplestats.middleware.RegexLoggingMiddleware',
-    'django.middleware.gzip.GZipMiddleware', # Remove this, when load gets to high
+    'django.middleware.gzip.GZipMiddleware', # Remove this, when load gets to high or attachments are enabled
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
@@ -103,12 +103,15 @@
 # Wiki configuration #
 ######################
 WIKI_LOCK_DURATION = 30
+WIKI_URL_RE = r'[:\-\w ]+'
+WIKI_WORD_RE = r'[:\-\w ]+'
 
 ######################
 # User configuration #
 ######################
 AUTH_PROFILE_MODULE = 'wlprofile.Profile'
 DEFAULT_TIME_ZONE = 3
+DEFAULT_TIME_DISPLAY = r"%ND(m-d-y), H:i"
 DEFAULT_MARKUP ="markdown"
 SIGNATURE_MAX_LENGTH = 255
 SIGNATURE_MAX_LINES = 8
@@ -118,8 +121,9 @@
 ######################
 # Pybb Configuration #
 ######################
-PYBB_ATTACHMENT_ENABLE = False
+PYBB_ATTACHMENT_ENABLE = False # disable gzip middleware when enabling attachments
 PYBB_DEFAULT_MARKUP = 'markdown'
+PYBB_FREEZE_FIRST_POST = False
 
 ##############################################
 # Link classification and other Markup stuff #
@@ -131,27 +135,51 @@
 # Keep this list ordered by length of smileys
 SMILEYS = [
     ("O:-)", "face-angel.png"),
+    ("O:)", "face-angel.png"),
+    (":-/", "face-confused.png"),
+    #(":/", "face-confused.png"),
+    ("B-)", "face-cool.png"),
+    ("B)", "face-cool.png"),
     (":'-(", "face-crying.png"),
+    (":'(", "face-crying.png"),
     ("&gt;:-)", "face-devilish.png"), # Hack around markdown replacement. see also SMILEY_PREESCAPING
-    (":(|)", "face-monkey.png"),
+    ("8-)", "face-glasses.png"),
+    #("8)", "face-glasses.png"), # Might occur unwanted
     (":-D", "face-grin.png"),
-    ("8-)", "face-glasses.png"),
+    (":D", "face-grin.png"),
     (":-x", "face-kiss.png"),
+    (":x", "face-kiss.png"),
+    (":-*", "face-kiss.png"),
+    (":*", "face-kiss.png"),
+    (":-((", "face-mad.png"),
+    (":((", "face-mad.png"),
+    (":-||", "face-mad.png"),
+    (":||", "face-mad.png"),
+    (":(|)", "face-monkey.png"),
     (":-|", "face-plain.png"),
+    (":|", "face-plain.png"),
     (":-(", "face-sad.png"),
+    (":(", "face-sad.png"),
+    (":-O", "face-shock.png"),
+    (":O", "face-shock.png"),
+    (":-)", "face-smile.png"),
+    (":)", "face-smile.png"),
+    (":-))", "face-smile-big.png"),
     (":))", "face-smile-big.png"),
-    (":-)", "face-smile.png"),
-    (":-O", "face-surprise.png"),
+    (":-o", "face-surprise.png"),
+    (":o", "face-surprise.png"),
+    (":-P", "face-tongue.png"),
+    (":P", "face-tongue.png"),
+    (":-S", "face-upset.png"),
+    (":S", "face-upset.png"),
     (";-)", "face-wink.png"),
-    (":D", "face-grin.png"),
-    (":(", "face-sad.png"),
-    (":)", "face-smile.png"),
-    (":O", "face-surprise.png"),
     (";)", "face-wink.png"),
 ]
 # This needs to be done to keep some stuff hidden from markdown
 SMILEY_PREESCAPING = [
     (">:-)", "\>:-)"),
+    (":-*", ":-\*"),
+    #(":*", ":\*"),
 ]
 
 ###############################
@@ -183,6 +211,11 @@
 ###############
 THUMBNAIL_SIZE = ( 160, 160 )
 
+########
+# Maps #
+########
+MAPS_PER_PAGE = 10
+
 INSTALLED_APPS = (
     'django.contrib.auth',
     'django.contrib.contenttypes',
@@ -200,7 +233,7 @@
 
     # Our own apps
     'widelands.mainpage',
-    'widelands.online_help',
+    'widelands.wlhelp',
     'widelands.wlimages',
     'widelands.wlwebchat',
     'widelands.wlrecaptcha',

=== modified file 'templates/404.html'
--- templates/404.html	2009-02-25 18:41:03 +0000
+++ templates/404.html	2012-07-04 18:20:26 +0000
@@ -1,11 +1,15 @@
 {% extends "base.html" %}
 
+{% block title %}
+Not found - {{ block.super}}
+{% endblock %}
+
 {% block content %} 
 <h1>Not found...</h1>
-
-<p>
-The document you requested was not found....<br/>
-You went astray somewhere....
-</p>
+<div class="blogEntry">
+	<p>
+		The document you requested was not found....<br />
+		You went astray somewhere....
+	</p>
+</div>
 {% endblock %}
-

=== modified file 'templates/500.html'
--- templates/500.html	2010-03-14 13:11:30 +0000
+++ templates/500.html	2012-07-04 18:20:26 +0000
@@ -1,11 +1,16 @@
 {% extends "base.html" %}
 
+{% block title %}
+Internal server error - {{ block.super}}
+{% endblock %}
+
 {% block content %} 
 <h1>Internal server error</h1>
-
-<p> If you think you didn't make any mistake, please inform
-<a href="mailto:sirver@xxxxxx?subject=[Widelands Homepage] bug in {{ request.path }}">SirVer</a> about 
-the error you've received.
-</p>
+<div class="blogEntry">
+	<p> 
+		If you think you didn't make any mistake, please inform
+		<a href="mailto:sirver@xxxxxx?subject=[Widelands Homepage] bug in {{ request.path }}">SirVer</a> 
+		about the error you've received.
+	</p>
+</div>
 {% endblock %}
-

=== modified file 'templates/base.html'
--- templates/base.html	2011-08-25 13:17:20 +0000
+++ templates/base.html	2012-07-04 18:20:26 +0000
@@ -1,126 +1,63 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
+<!DOCTYPE html>
 {% comment %}
  vim:ft=htmldjango:
  
  This file is extended by all other files which are not
  included here
 {% endcomment %}
-<html xmlns="http://www.w3.org/1999/xhtml";>
-
-  <head>
-    <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
-
-    <title>{% block title %}Widelands.org{% endblock %}</title> 
-    <link href="/wlmedia/favicon.ico" rel="SHORTCUT ICON" />
-
-    <!--  CSS --> 
-    <link rel="stylesheet" type="text/css" media="all" href="/wlmedia/css/base.css" />
-    <link rel="stylesheet" type="text/css" media="all" href="/wlmedia/css/navigation.css" />
-
-    <!-- Javascript Bread & Butter Scripts -->
-    <script type="text/javascript" src="/wlmedia/js/jquery.js"></script>
-    <script type="text/javascript" src="/wlmedia/js/jquery_csrf_ajax.js"></script>
-    {% block extra_head %}{% endblock %}
-  </head>
-
-  <body>
-
-    <table border="0" cellpadding="0" cellspacing="0" style="width: 100%;">
-
-      <tr>   
-        <td>
-
-          <!-- Header Bar -->
-          <div id="headerbanner">
-            <a href="{% url mainpage %}"><img src="/wlmedia/img/Logo.png" alt="Logo" align="middle" /></a>
-          </div>
-          <!-- Navigation -->
-            {% include "navigation.html" %}
-        </td>
-      </tr>
-
-      {% comment %}
-      <!-- Main Page starts here -->
-      <!-- 
-         The decision here was between this table madness or a CSS + JS hack (resize
-         divisions after page load). Both solutions are ugly, but I prefer tables to JS hacks.
-         Can't wait for CSS3.
-      -->
-      {% endcomment %}
-
-      <tr>
-        <td>
-
-          {% comment %}
-          <!-- 
-             Top Tables are not used by current theme, they
-             might be in a future one though 
-          -->
-
-          <table border="0" cellpadding="0" cellspacing="0">
-             <tr>
-                <td id="table_topleft"></td>
-                <td id="table_topright"></td>
-             </tr>
-          </table>
-          {% endcomment %}
-
-          <!-- Table with Menus and Content -->
-          <table border="0" cellpadding="0" cellspacing="0" >
-            <tr>
-               {% comment %}
-               <!-- Left Column -->
-               <td id="leftcolumn">
-                  <div id="leftcontent">
-                  {% include "left_boxes.html" %}
-                  </div>
-
-               </td>
-               {% endcomment %}
-
-               <!-- Center Column/Content -->
-               <td id="content" style="overflow: hidden;">
-                 <!-- ################### CONTENT STARTS HERE ################### -->       
-                 {% block content %}
-                  No Content here!
-                 {% endblock %}
-                 <!-- ###################  CONTENT ENDS HERE  ################### -->       
-               </td>
-             
-               <!-- Right Column -->
-               <td id="rightcolumn">
-                  <div id="rightcontent">
-                    {% include "right_boxes.html" %}
-                  </div>
-               </td>
-            </tr>
-          </table>
-
-        </td>
-      </tr>
-
-
-      {% comment %}
-      <tr>
-        <td>
-          <!-- Footer -->
-          {% include "footer.html" %}
-
-          <!-- Bottom Table -->
-          <table border="0" cellpadding="0" cellspacing="0" id="table_bottom">
-             <tr>
-                <td id="table_bottomleft">
-                </td>
-                <td id="table_bottomright">
-                </td>
-             </tr>
-          </table>
-        </td>
-      </tr>
-      {% endcomment %}
-
-    </table>
-
-  </body>
+<html>
+
+	<head>
+		<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+
+		<title>{% block title %}Widelands.org{% endblock %}</title> 
+		<link href="{{MEDIA_URL}}/favicon.ico" rel="SHORTCUT ICON" />
+
+		<!--  CSS --> 
+		<link rel="stylesheet" type="text/css" media="all" href="{{MEDIA_URL}}/css/base.css" />
+		<link rel="stylesheet" type="text/css" media="all" href="{{MEDIA_URL}}/css/navigation.css" />
+		<!--[if lt IE 9]>
+		<link rel="stylesheet" type="text/css" href="{{MEDIA_URL}}/css/base_ielt9.css" />
+		<![endif]-->
+		<!--[if lt IE 8]>
+		<link rel="stylesheet" type="text/css" href="{{MEDIA_URL}}/css/base_ielt8.css" />
+		<![endif]-->
+
+		<!-- Javascript Bread & Butter Scripts -->
+		<script type="text/javascript" src="{{MEDIA_URL}}/js/jquery.js"></script>
+		<script type="text/javascript" src="{{MEDIA_URL}}/js/jquery_csrf_ajax.js"></script>
+		<script type="text/javascript" src="{{MEDIA_URL}}/js/scripts.js"></script>
+		{% block extra_head %}{% endblock %}
+	</head>
+
+	<body>
+		<a id="top"></a>
+		<div id="wrapper">
+			<div id="header">
+				<div class="loginBox posRight">
+					{% include "login_box.html" %}
+				</div>
+				<a href="{% url mainpage %}"><img src="{{MEDIA_URL}}/img/Logo.png" class="posLeft" alt="Widelands Logo" /></a>
+			</div>
+			<div id="topmenu">
+				<!-- Navigation -->
+				{% include "navigation.html" %}
+			</div>
+			<div id="main" class="clear">
+				<div id="rightColumn" class="posRight">
+					{% include "right_boxes.html" %}
+				</div>
+				<div id="content">
+					{% block content %}
+						No Content here!
+					{% endblock %}
+				</div>
+			</div>
+			<div class="clear"></div>
+
+		<!-- Footer -->
+		{% include "footer.html" %}
+
+		</div>
+	</body>
 </html>
-

=== modified file 'templates/django_messages/base.html'
--- templates/django_messages/base.html	2009-03-17 15:02:13 +0000
+++ templates/django_messages/base.html	2012-07-04 18:20:26 +0000
@@ -5,9 +5,27 @@
 {% block extra_head %}<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/messages.css" />{{ block.super}}{% endblock %}
 
 {% block title %}
-Account - {{block.super}}
+Messages - {{block.super}}
 {% endblock %}
 
-{% block content %}  
+{% block content %}
+<h1>Messages: {% block msg_title %}{% endblock %}</h1>
+<div class="blogEntry">
+	<table class="messages messages_border">
+	<tr>
+	<th class="msg_menu">
+		<ul>
+			<li><a href="{% url messages_compose %}">{% trans "New Message" %}</a>
+			<li><a href="{% url messages_inbox %}">{% trans "Inbox" %}</a>
+			<li><a href="{% url messages_outbox %}">{% trans "Outbox" %}</a>
+			<li><a href="{% url messages_trash %}">{% trans "Trash" %}</a>
+		</ul>
+	</th>
+	<td class="msg_box">
+	{% block msg_content %}{% endblock %}
+	</td>
+	</tr>
+	</table>
+</div>
 {% endblock %}
 

=== modified file 'templates/django_messages/compose.html'
--- templates/django_messages/compose.html	2011-07-04 01:14:23 +0000
+++ templates/django_messages/compose.html	2012-07-04 18:20:26 +0000
@@ -5,29 +5,20 @@
 Compose - {{ block.super }}
 {% endblock %}
 
-
-{% block content %} 
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-	<h3 class="title">{% trans "Compose Message"%}</h3>
-    <form action="" method="post">
-        <div class="content">
-            <table class="text full_site" cellspacing="1">
-                {% for field in form %}
-                <tr>
-                    <td width="80" class="{% cycle "odd" "even" %}{% ifequal field.name "body" %} show_left{% endifequal %}">{{ field.label_tag }}:</td>
-                    <td class="{% cycle "odd" "even" %}">{{ field }}</td>
-                </tr>
-                {% endfor %}
-            </table>
-        </div>
-        <div class="info_line show_center">
-            <input type="submit" value="{% trans "Send" %} &raquo;"/>
-        </div>
-        {% csrf_token %}
-    </form>
-</div>
-
+{% block msg_title %}Compose{% endblock %}
+
+{% block msg_content %}
+<form action="." method="post">
+	<table class="messages">
+		{% for field in form %}
+		<tr>
+			<td class="grey">{{ field.label_tag }}:</td>
+			<td>{{ field }}</td>
+			<td class="errormessage">{{ field.errors }}</td>
+		</tr>
+		{% endfor %}
+	</table>
+	<input type="submit" value="{% trans "Send" %}"/>
+	{% csrf_token %}
+</form>
 {% endblock %}

=== modified file 'templates/django_messages/inbox.html'
--- templates/django_messages/inbox.html	2010-10-30 12:17:49 +0000
+++ templates/django_messages/inbox.html	2012-07-04 18:20:26 +0000
@@ -1,30 +1,42 @@
 {% extends "django_messages/base.html" %} 
 {% load i18n %} 
+{% load custom_date %}
+{% load wlprofile %}
 
 {% block title %}
 Inbox - {{ block.super }}
 {% endblock %}
 
-{% block content %}
-   {% include "django_messages/inlines/navigation.html" %}
-    <br />
-    <br />
-    <div class="box_item_model border">
-    <h3 class="title">{% trans "Inbox" %}</h3>
-    <table class="messages" cellspacing="1">
-        <thead>
-            <tr>
-                <td>{% trans "Sender" %}</td>
-                <td>{% trans "Subject" %}</td>
-                <td>{% trans "Received" %}</td>
-                <td>{% trans "Action" %}</td>
-            </tr>
-        </thead>
-        <tbody>
-    {% for message in message_list %} 
-      {% include "django_messages/inlines/message_row.html" %}
-    {% endfor %}
-        </tbody>
-    </table>
-    </div>
+
+{% block msg_title %}Inbox{% endblock %}
+{% block msg_content %}
+	<table class="messages">
+		<thead>
+			<tr>
+				<th>{% trans "Sender" %}</th>
+				<th>{% trans "Subject" %}</th>
+				<th>{% trans "Received" %}</th>
+				<th>{% trans "Action" %}</th>
+			</tr>
+		</thead>
+		<tbody>
+		{% for message in message_list %} 
+			<tr class="{% if message.new %}italic{% endif %}">
+				<td>{{ message.sender|user_link }}</td>
+				<td>
+					{% if message.replied %}
+						<img src="{{ MEDIA_URL }}/img/replied.png" alt="replied" title="replied" />
+					{% endif %}
+					<a href="{{message.get_absolute_url }}">{{ message.subject }}</a>
+				</td>
+				<td>{{ message.sent_at|custom_date:user }}</td>
+				<td>
+					<a href="{% url django_messages.views.delete message.id %}">
+						<img src="{{ MEDIA_URL }}/img/delete.png" alt="delete" title="delete" />
+					</a>
+				</td>
+			</tr>
+		{% endfor %}
+		</tbody>
+	</table>
 {% endblock %}

=== modified file 'templates/django_messages/outbox.html'
--- templates/django_messages/outbox.html	2010-10-30 12:17:49 +0000
+++ templates/django_messages/outbox.html	2012-07-04 18:20:26 +0000
@@ -1,30 +1,38 @@
 {% extends "django_messages/base.html" %} 
 {% load i18n %} 
+{% load custom_date %}
+{% load wlprofile %}
 
 {% block title %}
 Outbox - {{ block.super }}
 {% endblock %}
 
-{% block content %} 
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model border">
-<h3 class="title">{% trans "Sent Messages" %}</h3>
-<table class="messages" cellspacing="1"> 
-    <thead>
-        <tr>
-            <td>{% trans "Recipient" %}</td>
-            <td>{% trans "Subject" %}</td>
-            <td>{% trans "Sent" %}</td>
-            <td>{% trans "Action" %}</td>
-        </tr>
-    </thead>
-    <tbody>
-   {% for message in message_list %} 
-   {% include "django_messages/inlines/message_row.html" %}
-   {% endfor %}
-    </tbody>
-</table>
-</div>
+{% block msg_title %}Outbox{% endblock %}
+{% block msg_content %} 
+	<table class="messages">
+		<thead>
+			<tr>
+				<th>{% trans "Recipient" %}</th>
+				<th>{% trans "Subject" %}</th>
+				<th>{% trans "Received" %}</th>
+				<th>{% trans "Action" %}</th>
+			</tr>
+		</thead>
+		<tbody>
+		{% for message in message_list %} 
+			<tr>
+				<td>{{ message.recipient|user_link }}</td>
+				<td>
+					<a href="{{message.get_absolute_url }}">{{ message.subject }}</a>
+				</td>
+				<td>{{ message.sent_at|custom_date:user }}</td>
+				<td>
+					<a href="{% url django_messages.views.delete message.id %}">
+						<img src="{{ MEDIA_URL }}/img/delete.png" alt="delete" title="delete" />
+					</a>
+				</td>
+			</tr>
+		{% endfor %}
+		</tbody>
+	</table>
 {% endblock %}

=== modified file 'templates/django_messages/trash.html'
--- templates/django_messages/trash.html	2010-10-30 12:17:49 +0000
+++ templates/django_messages/trash.html	2012-07-04 18:20:26 +0000
@@ -1,39 +1,47 @@
 {% extends "django_messages/base.html" %} 
 {% load i18n %} 
+{% load custom_date %}
+{% load wlprofile %}
 
 {% block title %}
 Trash - {{ block.super }}
 {% endblock %}
 
-{% block content %} 
-{% include "django_messages/inlines/navigation.html" %} 
-<br />
-<br />
-<div class="box_item_model border">
-    <h3 class="title">{% trans "Deleted Messages" %}</h3>
-    <table class="messages" cellspacing="1">
-        <thead>
-            <tr>
-                <td>{% trans "Sender" %}</td>
-                <td>{% trans "Subject" %}</td>
-                <td>{% trans "Date" %}</td>
-                <td>{% trans "Action" %}</td>
-            </tr>
-        </thead>
-        <tbody>
-{% for message in message_list %} 
-   {% include "django_messages/inlines/message_row.html" %}
-{% endfor %}
-        </tbody>
-    </table>
-</div>
-<br />
-<div class="box_item_model border">
-    <div class="info_line show_center errormessage">
-        <br />
-        {% trans "Deleted Messages are removed from the trash at unregular intervals, don't rely on this feature for long-time storage." %}
-        <br />
-        <br />
-    </div>
-</div>
+{% block msg_title %}Trash{% endblock %}
+
+{% block msg_content %} 
+	<table class="messages">
+		<thead>
+			<tr>
+				<th>{% trans "Sender" %}</th>
+				<th>{% trans "Recipient" %}</th>
+				<th>{% trans "Subject" %}</th>
+				<th>{% trans "Received" %}</th>
+				<th>{% trans "Action" %}</th>
+			</tr>
+		</thead>
+		<tbody>
+		{% for message in message_list %} 
+			<tr class="{% if message.new %}italic{% endif %}">
+				<td>{{ message.sender|user_link }}</td>
+				<td>{{ message.recipient|user_link }}</td>
+				<td>
+					{% if message.replied %}
+						<img src="{{ MEDIA_URL }}/img/replied.png" alt="replied" title="replied" />
+					{% endif %}
+					<a href="{{message.get_absolute_url }}">{{ message.subject }}</a>
+				</td>
+				<td>{{ message.sent_at|custom_date:user }}</td>
+				<td>
+					<a href="{% url django_messages.views.undelete message.id %}">
+						<img src="{{ MEDIA_URL }}/img/undelete.png" alt="undelete" title="undelete" />
+					</a>
+				</td>
+			</tr>
+		{% endfor %}
+		</tbody>
+	</table>
+	<p class="errormessage">
+		{% trans "Deleted messages are removed from the trash at unregular intervals. Don't rely on this feature for long-time storage." %}
+	</p>
 {% endblock %}

=== modified file 'templates/django_messages/view.html'
--- templates/django_messages/view.html	2010-03-14 14:13:24 +0000
+++ templates/django_messages/view.html	2012-07-04 18:20:26 +0000
@@ -1,57 +1,37 @@
 {% extends "django_messages/base.html" %} 
 {% load i18n %} 
 {% load custom_date %}
+{% load wlprofile %}
 
 {% block title %}
-Message - {{ block.super }}
+View - {{ block.super }}
 {% endblock %}
 
-{% block content %}
-{% include "django_messages/inlines/navigation.html" %} 
-<br />
-<br />
-<div class="message_item">
-	<h3 class="title">{% trans "View Message" %}</h3>
-	<div class="content">
-		<table class="text" width="100%" cellspacing="1">
-			<tr>
-				<td width="80" class="odd">{% trans "Subject" %}:</td>
-				<td width="120" class="odd">{{ message.subject }}</td>
-				<td></td>
-			</tr>
-			<tr>
-				<td class="even">{% trans "Sender" %}:</td>
-				<td class="even">{{ message.sender }}</td>
-				<td></td>
-			</tr>
-			<tr>
-				<td class="odd">{% trans "Date" %}:</td>
-				<td class="odd">{{ message.sent_at|custom_date:user }}</td>
-				<td></td>
-			</tr>
-			<tr>
-				<td class="even">{% trans "Recipient" %}:</td>
-				<td class="even">{{ message.recipient }}</td>
-				<td></td>
-			</tr>
-			<tr> 
-				<td colspan="3" class="odd">
-					<div class="message_display content message">
-						{{ message.body|urlize|linebreaksbr }}
-					</div>
-				</td>
-			</tr>
-		</table>
-	</div>
-	<table class="bottom_line" width="100%">
-		<tr>
-			<td class="admin">
-				{% ifequal message.recipient user %}
-					<a href="{% url messages_reply message.id %}">{% trans "Reply" %}</a>&nbsp;|
-				{% endifequal %}
-				<a href="{% url messages_delete message.id %}">{% trans "Delete" %}</a>
+{% block msg_title %}{{ message.subject }}{% endblock %}
+
+{% block msg_content %}
+	<table class="messages">
+		<tr>
+			<td class="grey">{% trans "Subject" %}:</td>
+			<td>{{ message.subject }}</td>
+			<td class="grey">{% trans "Date" %}:</td>
+			<td>{{ message.sent_at|custom_date:user }}</td>
+		</tr>
+		<tr>
+			<td class="grey">{% trans "Sender" %}:</td>
+			<td>{{ message.sender|user_link }}</td>
+			<td class="grey">{% trans "Recipient" %}:</td>
+			<td>{{ message.recipient|user_link }}</td>
+		<tr> 
+			<td colspan="4">
+				<hr />
+				{{ message.body|urlize|linebreaksbr }}
+				<hr />
 			</td>
 		</tr>
 	</table>
-</div>
+	{% ifequal message.recipient user %}
+		<button type="button" onclick="location.href='{% url messages_reply message.id %}';">{% trans "Reply" %}</button>
+	{% endifequal %}
+	<button type="button" onclick="location.href='{% url messages_delete message.id %}';">{% trans "Delete" %}</button>
 {% endblock %}

=== modified file 'templates/footer.html'
--- templates/footer.html	2009-02-26 12:45:58 +0000
+++ templates/footer.html	2012-07-04 18:20:26 +0000
@@ -4,8 +4,8 @@
  This file is included by mainpage and contains the footer 
 
  (which contains nothing at the moment)
- 
- 
- <div id="footer">
- </div>
-{% endcomment %}
+{% endcomment %} 
+
+<div id="footer">
+	Copyright &copy; 2012 Widelands.org
+</div>

=== added file 'templates/login_box.html'
--- templates/login_box.html	1970-01-01 00:00:00 +0000
+++ templates/login_box.html	2012-07-04 18:20:26 +0000
@@ -0,0 +1,68 @@
+{% load inbox wlprofile %}
+
+<!-- Login form / User information -->
+{% if user.is_authenticated %}
+<div class="small posLeft">
+	Welcome {{ user|user_link }},<br/>
+	you have <a href="{% url messages_inbox %}">0 new messages</a>.
+</div>
+<div class="right small posRight">
+	<ul>
+		<li><a href="{% url messages_inbox %}">Messages</a></li>
+		<li><a href="{% url notification_notices %}">Notifications</a></li>
+		<li><a href="{% url profile_edit %}">Edit Profile</a></li>
+		<li><a href="{% url auth_logout %}?next={{ request.path|iriencode }}">Logout</a></li>
+	</ul>
+</div>
+{% else %}
+<h4>Login</h4>
+{% comment %}
+<form method="post" action="https://{{ request.META.HTTP_HOST }}/accounts/login/" id="login_box">
+	<input id="id_login_username" type="text" name="username" maxlength="30" placeholder="Username" />
+	<input id="id_login_password" type="password" name="password" />
+	<input type="hidden" id="submitted" value="false" />
+	<button type="submit">login</button>
+	<input type="hidden" name="next" value="{{ request.path|iriencode }}" />
+	{% csrf_token %}
+</form>
+{% endcomment %}
+<div class="small center">
+	<a href="{% url auth_login %}?next={{ request.path|iriencode }}">Click here to login</a><br />
+	<a href="{% url auth_password_reset %}">Lost password?</a> | <a href="{% url registration_register %}">Register now!</a>
+</div>
+{% endif %}
+{% comment %}
+{# Login via iframe does not work between http and https #}
+<script type="text/javascript">
+$("#login_box").submit( function(data) {
+	var frameName = "login_frame" + (new Date()).getTime();
+	var frameSrc = "http://{{ request.META.HTTP_HOST }}/accounts/login/?next="
+					+ window.location.pathname + window.location.search + window.location.hash;
+	var loginFrame = $("<iframe name=\"" + frameName + "\" src=\"" + frameSrc + "\" />");
+
+	$("#login_box input[type='submit']").attr("disabled", "disabled")
+	loginFrame.css("display", "none");
+	loginFrame.load(function(data){
+		// get required fields
+		my_user_field = $(window.frames[ frameName ].document.getElementById("id_username"));
+		my_pass_field = $(window.frames[ frameName ].document.getElementById("id_password"));
+		parent_user_field = $("#id_login_username");
+		parent_pass_field = $("#id_login_password");
+		submitted_field = $("#submitted");
+
+		if (submitted_field.val() != "true") {
+			// copy login information and submit
+			my_user_field.val(parent_user_field.val() == "Username" ? "" : parent_user_field.val());
+			my_pass_field.val(parent_pass_field.val());
+			// submit form to parent
+			submitted_field.val("true");
+			login_form = $(window.frames[ frameName ].document.getElementById("login_form"));
+			login_form.attr('target', "_parent");
+			login_form.submit();
+		}
+	});
+	jQuery('body:first').append(loginFrame);
+	return false;
+});
+</script>
+{% endcomment %}

=== modified file 'templates/mainpage.html'
--- templates/mainpage.html	2011-08-20 17:03:21 +0000
+++ templates/mainpage.html	2012-07-04 18:20:26 +0000
@@ -16,55 +16,29 @@
 
 {{ block.super}}{% endblock %}
 {% block content %}
-
-<div class="block_center">
-    <h1>Welcome to Widelands.org</h1>
-    <h3>Home of the free realtime strategy game and its community</h3>
-    <br/>
-    <img src='{{ MEDIA_URL }}/img/HomepageSplash.jpg' title='Widelands' alt='Widelands-Screenshot' />
-    <br/>
-    <br/>
-</div>
-
-<!-- Begin of text -->
-<div class="itemText">
-    <p>
-        Widelands is an open source (GPLed) real-time strategy game.
-        It is built upon the <a href='http://www.libsdl.org'>SDL</a> and other
-        open source libraries and is (and will always be) under heavy 
-        development. If you knew Settlers I &amp; II&#8482; (© Bluebyte), then
-        you already have a rough idea what Widelands is all about because 
-        widelands is heavily inspired by those two games.
-    </p>
-    <p>
-        You can find detailed information on the game in our 
-        <a href="/wiki">Wiki</a>. I you want to get a quick Overview, go to the
-        <a title="General Info" href="{% url wiki_article "GeneralInfo" %}">General Info</a> 
-        page.
-    </p>
-    <p>
-        You can download the game on the 
-        <a href="{% url wiki_article "DownloadPage" %}">DownloadPage</a>. You 
-        can also find installation instructions and various troubleshooting 
-        hints there.
-    </p>
-    <p>
-        You are also invited to visit the <a href="{% url pybb_index %}">Forums</a>:
-        chat with the community about the game, find playing mates for
-        multiplayer, help translating, discuss graphics, music and much more.
-    </p>
-</div>
+<h1>Welcome to Widelands.org</h1>
+<div class="blogEntry" style="min-height: 380px;">
+	<img class="landing posRight" src="{{MEDIA_URL}}/img/welcome.png" alt="Welcome!" />
+	<p>
+	<a href="{% url wiki_article "Description" %}">Widelands</a> is an <a href="{% url wiki_article "TheWidelandsProject" %}">open source</a> real-time strategy game with a singleplayer campaign as well as a multiplayer mode. If you knew Settlers&nbsp;I&nbsp;&amp;&nbsp;II&#8482; (&copy;&nbsp;Bluebyte), then you already have a rough idea what Widelands is all about because it is heavily inspired by those two games. For more information read the full <a href="{% url wiki_article "Description" %}">description</a> and look at some <a href="{% url wlscreens_index %}">screenshots</a>.
+	</p>
+	<p>
+	Widelands is currently (and will always be) under development, but you can play the newest beta build17. <a href="{% url wiki_article "Download" %}">Download</a> the game for different platforms or read the <a href="/changelog">changelog</a>.
+	</p>
+	<p>
+	You are also invited to visit the <a href="{% url pybb_index %}">forums</a>: chat with the community about the game, find playing mates for multiplayer, help translating, discuss graphics, music and much more.
+	</p>
+	<div style="clear: left"></div>
+</div>
+
 
 {% get_latest_posts 3 as latest_posts_list %}
 {% if latest_posts_list %}
-<h2>
-    <a href="{% url news_index %}">Latest news:</a>
-</h2>
-    {% for object in latest_posts_list %}
-        {% include "news/inlines/post_detail.html" %} 
-    <br />
-    {% endfor %}
-    <a href="{% url news_index %}">News archive</a>
+	<h1>News</h1>
+	{% for object in latest_posts_list %}
+		{% include "news/inlines/post_detail.html" %} 
+	{% endfor %}
+	<div class="center"><p><a class="invertedColor" href="{% url news_index %}">News archive</a></p></div>
 {% endif %}
 
 {% endblock %}

=== modified file 'templates/mainpage/changelog.html'
--- templates/mainpage/changelog.html	2009-04-01 14:19:17 +0000
+++ templates/mainpage/changelog.html	2012-07-04 18:20:26 +0000
@@ -1,16 +1,16 @@
 {% extends "base.html" %}
 {% load wl_markdown %}
 
-{% block title %}Change Log - {{ block.super }}{% endblock %}
+{% block title %}Changelog - {{ block.super }}{% endblock %}
 
 {% block extra_head %}
-<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/wiki.css" />{{ block.super}}
+{{ block.super}}
 {% endblock %}
 
 {% block content %}
-<div class="wiki_article">
-   <h1>Changelog</h1>
-    {{ changelog|wl_markdown }}
+<h1>Changelog</h1>
+<div class="blogEntry">
+	{{ changelog|wl_markdown }}
 </div>
 {% endblock %}
 

=== modified file 'templates/mainpage/developers.html'
--- templates/mainpage/developers.html	2010-01-20 11:19:07 +0000
+++ templates/mainpage/developers.html	2012-07-04 18:20:26 +0000
@@ -1,16 +1,16 @@
 {% extends "base.html" %}
 {% load wl_markdown %}
 
-{% block title %}Developers - {{ block.super }}{% endblock %}
+{% block title %}Widelands Development Team - {{ block.super }}{% endblock %}
 
 {% block extra_head %}
-<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/wiki.css" />{{ block.super}}
+{{ block.super}}
 {% endblock %}
 
 {% block content %}
-<div class="wiki_article">
-   <h1>Widelands Development Team</h1>
-    {{ developers|safe }}
+<h1>Widelands Development Team</h1>
+<div class="blogEntry">
+	{{ developers|safe }}
 </div>
 {% endblock %}
 

=== modified file 'templates/mainpage/online_users.html'
--- templates/mainpage/online_users.html	2010-10-30 02:57:08 +0000
+++ templates/mainpage/online_users.html	2012-07-04 18:20:26 +0000
@@ -1,12 +1,18 @@
 {% load wlprofile %}
 
 {% if users %}
-    <h3 class="box_title">Currently online</h3>
-    <div class="box_content"> 
-        <ul>
-            {% for user in users %}
-            <li><a href="{% url profile_view user %}">{{user.username}}</a></li>
-            {% endfor %}
-        </ul>
-    </div>
+<div class="columnModule">
+	<h3>Currently Online</h3>
+	<div class="columnModuleBox">
+		{% if users %}
+		<ul class="player">
+			{% for user in users %}
+			<li><a href="{% url profile_view user %}">{{user.username}}</a></li>
+			{% endfor %}
+		</ul>
+		{% else %}
+		<p>Currently nobody is online.</p>
+		{% endif %}
+	</div>
+</div>
 {% endif %}

=== modified file 'templates/navigation.html'
--- templates/navigation.html	2011-07-03 18:14:07 +0000
+++ templates/navigation.html	2012-07-04 18:20:26 +0000
@@ -1,75 +1,79 @@
 {% comment %}
    vim:ft=htmldjango
 {% endcomment %}
-<div class="dropdown"> 
-<ul>
-<li><a href="/">Home</a></li>
-<li>
-    <a href="{% url wiki_article "DownloadPage" %}">&emsp;&ensp;Downloads</a>
-    <div class="arrow-down"></div>
-    <ul>
-        <li><a href="{% url wiki_article "DownloadPage" %}">The Game</a></li>
-        <li><a href="{% url wiki_article "WidelandsArtwork" %}">Artworks</a></li>
-        <li><a href="{% url wlmaps_index %}">Maps</a></li>
-    </ul>
-</li>
-<li><a href="{% url wlscreens_index %}">Screenshots</a></li>
-<li>
-    <a href="{% url wiki_index %}">&emsp;&ensp;Wiki (Help &amp; Docu.)</a>
-    <div class="arrow-down"></div>
-    <ul>
-        <li><a href="/wiki/GameHelp">Game Help</a></li>
-        <li><a href="{% url wiki_index %}">Main Page</a></li>
-        <li><a href="{% url wiki_list %}">All articles</a></li>
-        <li><a href="{% url wiki_history %}">Recent changes</a></li>
-    </ul>
-</li>
-<li>
-    <a href="{% url pybb_index %}">&emsp;&ensp;Forum</a>
-    <div class="arrow-down"></div>
-    <ul>
-        <li><a href="{% url pybb_forum 1 %}">Technical Help</a></li>
-        <li><a href="{% url pybb_forum 2 %}">Game suggestions</a></li>
-        <li><a href="{% url pybb_forum 3 %}">Playing widelands</a></li>
-        <li><a href="{% url pybb_forum 4 %}">Editor Forum</a></li>
-        <li><a href="{% url pybb_forum 5 %}">[Deutsch] - Spielerforum</a></li>
-        <li><a href="{% url pybb_forum 6 %}">[Español] - Foro de jugadores</a></li>
-        <li><a href="{% url pybb_forum 7 %}">[Française] - Forum de joueurs</a></li>
-        <li><a href="{% url pybb_forum 13 %}">[English] - Player Forum</a></li>
-        <li><a href="{% url pybb_forum 9 %}">Graphic Development</a></li>
-        <li><a href="{% url pybb_forum 10 %}">Sound &amp; Music Development</a></li>
-        <li><a href="{% url pybb_forum 11 %}">Homepage</a></li>
-        <li><a href="{% url pybb_forum 12 %}">Translations &amp; Internationalization</a></li>
-    </ul>
-</li>
-<li>
-    <a href="{% url webchat_index %}">IRC Chat</a>
-</li>
-<li>
-    <a href="{% url wiki_article "DevelopmentPage" %}">&emsp;&ensp;Development</a>
-    <div class="arrow-down"></div>
-    <ul>
-        <li><a href="{% url wiki_article "DevelopmentPage" %}">Development</a></li>
-        <li><a href="{% url wiki_article "DevelopersPage" %}">Developers</a></li>
-        <li><a href="{% url wiki_article "MailLists" %}">Mailing Lists</a></li>
-        <li><a href="{% url wiki_article "WannaHelp" %}">Wanna help?</a></li>
-        <li><a href="https://bugs.launchpad.net/widelands";>Widelands Bugtracker</a></li>
-        <li><a href="https://bugs.launchpad.net/widelands-website";>Website Bugtracker</a></li>
-    </ul>
-</li>
- {% comment %}
-<li>
-    <a href="{% url wlggz_main %}">Online Gaming</a>
-    <ul>
-        <li><a href="{% url wlggz_ranking %}">GGZ Ranking</a></li>
-        <li><a href="{% url wlggz_matches %}">GGZ Matches</a></li>
-        {% if user.is_authenticated %}
-        <li><a href="{% url wlggz_userstats %}">GGZ Status</a></li>
-        {% endif %}
-        <li><a href="{% url wiki_article "InternetGaming" %}">HowTo</a></li>
-    </ul>
-</li>
-         {% endcomment %}
-        </ul>
-</div> 
-        
\ No newline at end of file
+
+<script type="text/javascript">
+	/* Enable dropdown menus on touch devices */
+	$(document).ready(function(){
+		$(".menu li").live("touchstart", function() {
+			$(this).next("ul").css("display", "block");
+		});
+	});
+</script>
+
+<ul class="menu posLeft">
+	<li><a href="/">Home</a>
+		<ul>
+			<li><a href="{% url news_index %}">News Archive</a></li>
+			<li><a href="{% url wlpoll_archive %}">Poll Archive</a></li>
+		</ul>
+	</li>
+	<li><a href="{% url wiki_article "Description" %}">The Game</a>
+		<ul>
+			<li><a href="{% url wiki_article "Description" %}">Description</a></li>
+			<li><a href="{% url wiki_article "Download" %}">Download</a></li>
+			<li><a href="{% url wlscreens_index %}">Screenshots</a></li>
+			<li><a href="{% url wiki_article "Artwork" %}">Artwork</a></li>
+			<li><a href="{% url wlmaps_index %}">Maps</a></li>
+			<li><a href="{% url wlhelp_index %}">Encyclopedia</a></li>
+			<li><a href="{% url changelog %}">Changelog</a></li>
+			<li><a href="{% url developers %}">Widelands Development Team</a></li>
+		</ul>
+	</li>
+	<li><a href="{% url wiki_index %}">Wiki</a>
+		<ul>
+			<li><a href="{% url wiki_article "Game Manual" %}">Game Manual</a></li>
+			<li><a href="{% url wiki_article "Creating Game Content" %}">Creating Game Content</a></li>
+			<li><a href="{% url wiki_article "The Widelands Project" %}">The Widelands Project</a></li>
+		</ul>
+	</li>
+	<li><a href="{% url pybb_index %}">Forums</a>
+		<ul>
+			<li><a href="{% url pybb_forum 1 %}">Technical Help</a></li>
+			<li><a href="{% url pybb_forum 2 %}">Game Suggestions</a></li>
+			<li><a href="{% url pybb_forum 3 %}">Playing Widelands</a></li>
+			<li><a href="{% url pybb_forum 4 %}">Editor Forum</a></li>
+			<li><a href="{% url pybb_forum 5 %}">[Deutsch] - Spielerforum</a></li>
+			<li><a href="{% url pybb_forum 6 %}">[Español] - Foro de jugadores</a></li>
+			<li><a href="{% url pybb_forum 7 %}">[Française] - Forum de joueurs</a></li>
+			<li><a href="{% url pybb_forum 13 %}">[English] - Player Forum</a></li>
+			<li><a href="{% url pybb_forum 9 %}">Graphic Development</a></li>
+			<li><a href="{% url pybb_forum 10 %}">Sound &amp; Music Development</a></li>
+			<li><a href="{% url pybb_forum 11 %}">Homepage</a></li>
+			<li><a href="{% url pybb_forum 12 %}">Translations &amp; Internationalization</a></li>
+		</ul>
+	</li>
+	<li><a href="{% url webchat_index %}">Chat</a></li>
+	<li><a href="{% url wiki_article "Development" %}">Development</a>
+		<ul>
+			<li><a href="{% url wiki_article "Contribute" %}">Contribute</a></li>
+			<li><a href="{% url developers %}">Widelands Development Team</a></li>
+			<li><a href="/docs/">Documentation</a></li>
+			<li><a href="https://bugs.launchpad.net/widelands";>Widelands Bugtracker</a></li>
+			<li><a href="https://bugs.launchpad.net/widelands-website";>Website Bugtracker</a></li>
+		</ul>
+	</li>
+</ul>
+<div class="searchBox posRight">
+	<form method="post" action="/search/">
+		<div class="searchBoxInner">
+			<input id="id_nav_search" type="text" name="search" class="searchField placeholder" placeholder="Search..." maxlength="200" />
+			<input id="id_nav_incl_wiki" type="hidden" name="incl_wiki" value="1" />
+			<input id="id_nav_incl_news" type="hidden" name="incl_news" value="1" />
+			<input id="id_nav_incl_maps" type="hidden" name="incl_maps" value="1" />
+			<input id="id_nav_incl_help" type="hidden" name="incl_help" value="1" />
+			<input id="id_nav_incl_forum" type="hidden" name="incl_forum" value="1" />
+			{% csrf_token %}
+		</div>
+	</form>
+</div>

=== modified file 'templates/news/base_news.html'
--- templates/news/base_news.html	2009-03-23 17:44:44 +0000
+++ templates/news/base_news.html	2012-07-04 18:20:26 +0000
@@ -1,11 +1,7 @@
 {% extends "base.html" %}
 
-{% block title %}News - {{block.super}}{% endblock %}
+{% block title %}News Archive - {{block.super}}{% endblock %}
 
 {% block extra_head %}
-<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/news.css" />
 <link rel="alternate" type="application/rss+xml" title="Widelands News" href="/feeds/news/" />
-
 {{ block.super}}{% endblock %}
-
-{% block body_class %}news{% endblock %}

=== modified file 'templates/news/inlines/post_detail.html'
--- templates/news/inlines/post_detail.html	2010-10-29 13:41:10 +0000
+++ templates/news/inlines/post_detail.html	2012-07-04 18:20:26 +0000
@@ -6,52 +6,22 @@
 {% endcomment %}
 {% load threadedcommentstags %}
 {% load news wl_markdown tagging_tags wlprofile custom_date %}
-    <div class="box_item_model border">
-        <h3 class="title">{# TODO: categories! #} {{ object.title }}</h3>
-            <div class="info_line"> 
-                <span class="news_poster">Posted by {{object.author|user_link}}</span>
-                <span class="news_post_date">on {{ object.publish|custom_date:user }}</span> 
-            </div>
-            <div class="content">
-{% if object.has_image %}
-                <span class="news_image"><img src='{{MEDIA_URL}}{{ object.image }}' alt='{{ object.image_alt }}' /></span>
-                <div class="text" style='min-height: {{ object.image.height }}px;'>
-{% else %}
-                <div class="text">
-{% endif %}
-{{ object.body|wl_markdown:"safe" }}
-                </div>
-            </div>
-         
-            <table class="info_line full_site">
-                <tr>
-{% get_comment_count for object as ccount %}
-                    <td class="comments show_left">
-                        <a href="{{ object.get_absolute_url }}">{{ ccount }} comments</a>
-                    </td>
-                    <td class="show_center">
-{% if perms.news %}
-    {% if perms.news.post_can_add %}
-                        <a href="/admin/news/post/add/">Add New Post</a>
-    {% endif %}
-    {% if perms.news.post_can_edit %}
-                        | <a href="/admin/news/post/{{object.id}}/">Edit</a>
-    {% endif %}
-    {% if perms.news.post_can_delete %}
-                        | <a href="/admin/news/post/{{object.id}}/delete/">Delete</a>
-    {% endif %}
-{% endif %}
-                    </td>
-{% tags_for_object object as tag_list %}
-                    <td class="show_right">
-{% if tag_list %}
-                        <strong>Tags:</strong>
-    {% for tag in tag_list %}
-        {{ tag }}
-        {% if not forloop.last %}, {% endif %}
-    {% endfor %}
-{% endif %}
-                    </td>
-                </tr>
-            </table>
-        </div>
+
+<div class="blogEntry">
+	{% if object.has_image %}
+	<a href="{{ object.get_absolute_url }}"><img class="title posLeft" src='{{MEDIA_URL}}{{ object.image|urlencode }}' alt='{{ object.image_alt }}' /></a>
+	{% endif %}
+	{% if perms.news %}
+	<div class="small posRight">
+		{% if perms.news.post_can_add %}<a href="/admin/news/post/add/">Add New Post</a>{% endif %}
+		{% if perms.news.post_can_edit %}| <a href="/admin/news/post/{{object.id}}/">Edit</a>{% endif %}
+		{% if perms.news.post_can_delete %}| <a href="/admin/news/post/{{object.id}}/delete/">Delete</a>{% endif %}
+	</div>
+	{% endif %}
+	<h2><a href="{{ object.get_absolute_url }}" class="invertedColor">{{ object.title }}</a></h2>
+	{{ object.body|wl_markdown:"safe" }}
+	<hr />
+	{% get_comment_count for object as ccount %}
+	<span class="small posLeft"><a href="{{ object.get_absolute_url }}">{{ ccount }} comments</a></span>
+	<span class="small posRight">Posted by {{object.author|user_link}} on {{ object.publish|custom_date:user }}</span>
+</div>

=== modified file 'templates/news/post_archive_month.html'
--- templates/news/post_archive_month.html	2010-06-14 18:13:06 +0000
+++ templates/news/post_archive_month.html	2012-07-04 18:20:26 +0000
@@ -2,32 +2,34 @@
 {% load custom_date %}
 {% load news %}
 {% load pagination_tags %}
+{% load markup %}
 
-{% block title %}Post archive for {{ month|date:"F Y" }}{% endblock %}
-{% block body_class %}{{ block.super }} post_archive_month{% endblock %}
+{% block title %}{{ month|date:"F - Y" }} - {{block.super}}}{% endblock %}
 
 {% block content %}
-{% load markup %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="muttis_liebling">
-    <div class="box_item_model even show_center">
-        <a href="{% url news_index %}{{ month|date:"Y" }}">Archiv {{ month|date:"Y" }}</a>
-    {% for day in object_list %}
-    {% endfor %}
-    {% autopaginate object_list 10 %}
-    {% paginate %}
-    </div>
-    <br />
-    {% for object in object_list %}
-        {% include "news/inlines/post_detail.html" %}
-    <br />
-    {% endfor %}
-    {% if page_obj.has_other_pages %}
-    <div class="box_item_model even show_center">
-    {% paginate %}
-    </div>
-    {% endif %}
-</div>
+
+<h1>News Archive</h1>
+<a href="{% url news_index %}" class="invertedColor">News Archiv</a> &#187; 
+<a href="{% url news_index %}{{ month|date:"Y" }}/" class="invertedColor">{{ month|date:"Y" }}</a> &#187; 
+<a href="{% url news_index %}{{ month|date:"Y" }}/{{ month|date:"m" }}/" class="invertedColor">{{ month|date:"F" }}</a>
+{% for day in object_list %}
+{% endfor %}
+<br />
+
+<div class="center">
+{% autopaginate object_list 10 %}
+{% paginate %}
+</div>
+<br />
+
+{% for object in object_list %}
+	{% include "news/inlines/post_detail.html" %}
+{% endfor %}
+{% if page_obj.has_other_pages %}
+
+<div class="box_item_model even show_center">
+{% paginate %}
+</div>
+{% endif %}
+
 {% endblock %}

=== modified file 'templates/news/post_archive_year.html'
--- templates/news/post_archive_year.html	2010-06-14 18:13:06 +0000
+++ templates/news/post_archive_year.html	2012-07-04 18:20:26 +0000
@@ -2,36 +2,35 @@
 {% load custom_date %}
 {% load news %}
 {% load pagination_tags %}
-
-
-{% block title %}Post archive for {{ year }}{% endblock %}
-{% block body_class %}{{ block.super }} post_archive_year{% endblock %}
+{% load markup %}
+
+{% block title %}{{ year }} - {{ block.super }}{% endblock %}
 
 {% block content %}
-  {% load markup %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="muttis_liebling">
-    <div class="box_item_model even show_center">
-        <a href="/news/">News Archiv</a>
-    {% for month in date_list %}
-        | <a href="{% url news_index %}{{ year }}/{{ month|date:"m" }}/">{{ month|date:"F" }}</a>
-    {% endfor %}
-    <br />
-    {% autopaginate object_list 10 %}
-    {% paginate %}
-    </div>
-    <br />
-    {% for object in object_list %}
-        {% include "news/inlines/post_detail.html" %}
-        <br />
-    {% endfor %}
-    {% if page_obj.has_other_pages %}
-    <div class="box_item_model even show_center">
-    {% paginate %}
-    </div>
-    {% endif %}
-
-</div>
+
+<h1>News Archive</h1>
+<a href="{% url news_index %}" class="invertedColor">News Archiv</a> &#187; 
+<a href="{% url news_index %}{{ year }}" class="invertedColor">{{ year }}</a>: 
+{% for month in date_list %}
+	<a href="{% url news_index %}{{ year }}/{{ month|date:"m" }}/" class="invertedColor">{{ month|date:"F" }}</a>
+	{% if not forloop.last %} | {% endif %}
+{% endfor %}
+<br />
+
+<div class="center">
+{% autopaginate object_list 10 %}
+{% paginate %}
+</div>
+<br />
+
+{% for object in object_list %}
+	{% include "news/inlines/post_detail.html" %}
+{% endfor %}
+{% if page_obj.has_other_pages %}
+
+<div class="center">
+{% paginate %}
+</div>
+{% endif %}
+
 {% endblock %}

=== modified file 'templates/news/post_detail.html'
--- templates/news/post_detail.html	2010-01-02 15:32:46 +0000
+++ templates/news/post_detail.html	2012-07-04 18:20:26 +0000
@@ -4,29 +4,29 @@
 {% load threadedcommentstags %}
 {% load news %}
 
-{% block title %}{{ object.title }} - {{ block.super }} {% endblock %}
-{% block body_class %}{{ block.super }} post_detail{% endblock %}
-{% block body_id %}post_{{ object.id }}{% endblock %}
+{% block title %}{{ object.title }} - {{ block.super }}{% endblock %}
 
 {% block extra_head %}
-<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/news.css" />{{ block.super }}
-<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/comments.css" />{{ block.super }}
+{{ block.super }}
+<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/news.css" />
+<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/comments.css" />
 {% endblock %}
 
 {% block content %}
-    <h2>{{ object.title }}</h2>
-    <p class="other_posts">
-    {% if object.get_previous_by_publish %}
-    <a class="previous" href="{{ object.get_previous_post.get_absolute_url }}">&laquo; {{ object.get_previous_post }}</a>
-    {% endif %}
-    {% if object.get_next_by_publish %}
-    | <a class="next" href="{{ object.get_next_post.get_absolute_url }}">{{ object.get_next_post }} &raquo;</a> 
-    {% endif %}
-    </p>
-
-    {% include "news/inlines/post_detail.html" %}
-    
-    <!-- Comments below -->
-    <h3>Comments on this Post:</h3>
-    {% include "threadedcomments/inlines/comments.html" %}
+<h1>{{ object.title }}</h1>
+{% if object.get_previous_by_publish %}
+<a class="invertedColor" href="{{ object.get_previous_post.get_absolute_url }}">&laquo; {{ object.get_previous_post }}</a>
+{% endif %}
+|
+{% if object.get_next_by_publish %}
+<a class="invertedColor" href="{{ object.get_next_post.get_absolute_url }}">{{ object.get_next_post }} &raquo;</a> 
+{% endif %}
+<br /><br />
+
+{% include "news/inlines/post_detail.html" %}
+
+<div class="blogEntry">
+	<h3>Comments on this Post:</h3>
+	{% include "threadedcomments/inlines/comments.html" %}
+</div>
 {% endblock %}

=== modified file 'templates/news/post_list.html'
--- templates/news/post_list.html	2010-06-14 18:17:35 +0000
+++ templates/news/post_list.html	2012-07-04 18:20:26 +0000
@@ -3,32 +3,32 @@
 {% load news %}
 {% load custom_date %}
 {% load pagination_tags %}
-{% block title %}Post archive - {{ block.super }}{% endblock %}
-{% block body_class %}{{ block.super }} post_list{% endblock %}
 
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="">
-    {% get_news_years as news_years %}
-    <div class="box_item_model even show_center">
-    {% for muh in news_years %}
-        <a href="{% url news_index %}{{ muh.year }}" >{{ muh.year }}</a>
-    {% endfor %}
-    {% autopaginate object_list 10 %}
-    {% paginate %}
-    </div>
-    <br />
-    {% for object in object_list %}
-        {% include "news/inlines/post_detail.html" %}
-        <br />
-    {% endfor %}
-    <br />
-    {% if page_obj.has_other_pages %}
-    <div class="box_item_model even show_center">
-    {% paginate %}
-    </div>
-    {% endif %}
-</div>
+
+<h1>News Archive</h1>
+{% get_news_years as news_years %}
+<a href="{% url news_index %}" class="invertedColor">News Archiv</a>:
+{% for muh in news_years %}
+	<a href="{% url news_index %}{{ muh.year }}" class="invertedColor">{{ muh.year }}</a>
+	{% if not forloop.last %} | {% endif %}
+{% endfor %}
+<br />
+
+<div class="center">
+{% autopaginate object_list 10 %}
+{% paginate %}
+</div>
+<br />
+
+{% for object in object_list %}
+	{% include "news/inlines/post_detail.html" %}
+{% endfor %}
+{% if page_obj.has_other_pages %}
+
+<div class="center">
+{% paginate %}
+</div>
+{% endif %}
+
 {% endblock %}

=== modified file 'templates/notification/base.html'
--- templates/notification/base.html	2009-02-20 16:46:21 +0000
+++ templates/notification/base.html	2012-07-04 18:20:26 +0000
@@ -1,1 +1,6 @@
 {% extends "base.html" %}
+
+{% block extra_head %}
+    <link rel="alternate" type="application/atom+xml" title="Notices Feed" href="{% url notification_feed_for_user %}" />
+    <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/notice.css" />{{ block.super}}
+{% endblock %}
\ No newline at end of file

=== modified file 'templates/notification/messages_received/notice.html'
--- templates/notification/messages_received/notice.html	2009-02-26 11:32:18 +0000
+++ templates/notification/messages_received/notice.html	2012-07-04 18:20:26 +0000
@@ -1,2 +1,3 @@
 {% load i18n %}
-{% blocktrans with message.get_absolute_url as message_url and message.sender as message_sender %}You have received the message <a href="{{ message_url }}">{{ message }}</a> from {{ message_sender }}.{% endblocktrans %}
+{% load wlprofile %}
+{% blocktrans with message.get_absolute_url as message_url and message.sender|user_link as message_sender %}You have received the message <a href="{{ message_url }}">{{ message }}</a> from {{ message_sender }}.{% endblocktrans %}

=== modified file 'templates/notification/messages_replied/notice.html'
--- templates/notification/messages_replied/notice.html	2009-02-26 11:32:18 +0000
+++ templates/notification/messages_replied/notice.html	2012-07-04 18:20:26 +0000
@@ -1,2 +1,3 @@
 {% load i18n %}
-{% blocktrans with message.parent_msg.get_absolute_url as message_url and message.parent_msg as message_parent_msg and message.recipient as message_recipient %}You have replied to <a href="{{ message_url }}">{{ message_parent_msg }}</a> from {{ message_recipient }}.{% endblocktrans %}
+{% load wlprofile %}
+{% blocktrans with message.parent_msg.get_absolute_url as message_url and message.parent_msg as message_parent_msg and message.recipient|user_link as message_recipient %}You have replied to <a href="{{ message_url }}">{{ message_parent_msg }}</a> from {{ message_recipient }}.{% endblocktrans %}

=== modified file 'templates/notification/messages_reply_received/notice.html'
--- templates/notification/messages_reply_received/notice.html	2009-02-26 11:32:18 +0000
+++ templates/notification/messages_reply_received/notice.html	2012-07-04 18:20:26 +0000
@@ -1,2 +1,3 @@
 {% load i18n %}
-{% blocktrans with message.get_absolute_url as message_url and message.sender as message_sender and message.parent_msg as message_parent_msg %}{{ message_sender }} has sent you a reply to {{ message_parent_msg }}.{% endblocktrans %}
+{% load wlprofile %}
+{% blocktrans with message.get_absolute_url as message_url and message.sender|user_link as message_sender and message.parent_msg as message_parent_msg %}{{ message_sender }} has sent you a reply to {{ message_parent_msg }}.{% endblocktrans %}

=== modified file 'templates/notification/messages_sent/notice.html'
--- templates/notification/messages_sent/notice.html	2009-02-26 11:32:18 +0000
+++ templates/notification/messages_sent/notice.html	2012-07-04 18:20:26 +0000
@@ -1,2 +1,3 @@
-{% load i18n %} 
-{% blocktrans with message.get_absolute_url as message_url and message.recipient as message_recipient %}You have sent the message <a href="{{ message_url }}">{{ message }}</a> to {{ message_recipient }}.{% endblocktrans %}
+{% load i18n %}
+{% load wlprofile %}
+{% blocktrans with message.get_absolute_url as message_url and message.recipient|user_link as message_recipient %}You have sent the message <a href="{{ message_url }}">{{ message }}</a> to {{ message_recipient }}.{% endblocktrans %}

=== modified file 'templates/notification/notices.html'
--- templates/notification/notices.html	2011-07-04 01:14:23 +0000
+++ templates/notification/notices.html	2012-07-04 18:20:26 +0000
@@ -5,110 +5,81 @@
 {% load custom_date %}
 
 {% block title %}
-{% trans "Notices "%} - Account - {{ block.super }}
-{% endblock %}
-
-{% block extra_head %}
-    <link rel="alternate" type="application/atom+xml" title="Notices Feed" href="{% url notification_feed_for_user %}" />
-    <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/notice.css" />{{ block.super}}
+{% trans "Notifications "%} - {{ block.super }}
 {% endblock %}
 
 {% block content %}
-    {% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model full_site border" width="100%">
-    <h3 class="title">{% trans "Notices" %}</h3>
-    
-    {% autopaginate notices %}
-   
-    {% if notices %}
-        <div class="info_line show_center">
-            <br />
-            <a href="{% url notification_mark_all_seen %}">{% trans "Mark all unseen notices seen" %}</a>
-            <br />
-            <br />
-        </div>
-        {# TODO: get timezone support working with regroup #}
-        {% regroup notices by added.date as notices_by_date %}
-        
-        {% for date in notices_by_date %}
-            <h3 class="title notice_date">{{ date.grouper|naturalday:_("MONTH_DAY_FORMAT")|capfirst }}</h3>
-            {% for notice in date.list %}
-                {% if notice.is_unseen %}
-                <div class="{% cycle "odd" "even" %} notice_unseen_notice border_top">
-                {% else %}
-                <div class="{% cycle "odd" "even" %} border_top">
-                {% endif %}
-                    <span class="notice_type"><a href="{% url notification_notice notice.pk %} ">[{% trans notice.notice_type.display %}]</a></span>
-                    <span class="notice_message">{{ notice.message|safe }}</span>
-                    <span class="notice_time">{{ notice.added }}</span>
-                </div>
-            {% endfor %}
-        {% endfor %}
-        <div class="info_line show_center">
-            {% paginate %}
-        </div>
-    {% else %}
-        <div class="info_line show_center">
-            <br />
-            {% trans "No notices." %}
-            <br />
-            <br />
-        </div>
-    {% endif %}
-    </div>
-    <br />
-    <br />
-    <div class="box_item_model full_site border">
-        <h3 class="title">{% trans "Settings" %}</h2>
-        
-        {% url acct_email as email_url %}
-        {% if user.email %}
-            <div class="info_line show_center">
-                <br />
-                {% trans "Primary email" %}:<br />
-                <b>{{ user.email }}</b><br />
-                (change under <a href="{% url profile_view user %}">Account</a>)
-                <br />
-                <br />
-            </div>
-        {% else %}
-            <div class="info_line show_center">
-                <br />
-                <span class="warning">{% trans "Note" %}</span>:
-                You do not have a verified email address to which notices can be sent. You can add one by going to <a href="{% url profile_edit %}">Account</a>.
-                <br />
-                <br />
-            </div>
-        {% endif %}
-        
-        <form method="POST" action=""> {# doubt this easy to do in uni-form #}
-            <table width="100%" class="notice_settings" cellspacing="1">
-              <tr>
-                    <th>{% trans "Notification Type" %}</th>
-                    {% for header in notice_settings.column_headers %}
-                        <th>{{ header }}</th>
-                    {% endfor %}
-                </tr>
-                {% for row in notice_settings.rows %}
-                    <tr>
-                        <td class="{% cycle "odd" "even" %}">{% trans row.notice_type.display %}<br/>
-                            <span class="notice_type_description">{% trans row.notice_type.description %}</span>
-                        </td>
-                        {% for cell in row.cells %}
-                            <td class="{% cycle "odd" "even" %}">
-                                <input type="checkbox" name="{{ cell.0 }}" {% if cell.1 %}checked="yes"{% endif %}/>
-                            </td>
-                        {% endfor %}
-                    </tr>
-                {% endfor %}
-                <tr>
-                    <td class="info_line show_center" colspan="2"><input type="submit" value="{% trans "Change" %}" /></td>
-                </tr>
-            </table>
-            {% csrf_token %}
+<h1>{% trans "Notifications" %}</h1>
+<div class="blogEntry">
+{% autopaginate notices %}
+
+{% if notices %}
+	<a href="{% url notification_mark_all_seen %}" class="posRight small">{% trans "Mark all as seen" %}</a>
+	{% paginate %}
+
+	{# TODO: get timezone support working with regroup #}
+	{% regroup notices by added.date as notices_by_date %}
+	{% for date in notices_by_date %}
+		<br />
+		<h3>{{ date.grouper|naturalday:_("MONTH_DAY_FORMAT")|capfirst }}</h3>
+		<table class="notifications">
+		{% for notice in date.list %}
+			<tr class="{% cycle "odd" "even" %} {% if notice.is_unseen %}italic{% endif %}">
+				<td class="type"><a href="{% url notification_notice notice.pk %} ">{% trans notice.notice_type.display %}</a></td>
+				<td class="text">{{ notice.message|safe }}</td>
+				<td class="date">{{ notice.added }}</td>
+			</tr>
+		{% endfor %}
+		</table>
+	{% endfor %}
+	<br />
+	{% paginate %}
+{% else %}
+	<p>
+		{% trans "No notifications." %}
+	</p>
+{% endif %}
+</div>
+<div class="blogEntry">
+	<h2>{% trans "Settings" %}</h2>
+
+	{% url acct_email as email_url %}
+	{% if user.email %}
+	<p>
+		{% trans "Primary email" %}: {{ user.email }}<br />
+		(You can change this in your <a href="{% url profile_edit %}">profile settings</a>.)
+	</p>
+	{% else %}
+	<p class="errormessage">
+		You do not have a verified email address to which notifications can be sent. You can add one by <a href="{% url profile_edit %}">editing your profile</a>.
+	</p>
+	{% endif %}
+
+	<form method="POST" action="."> {# doubt this easy to do in uni-form #}
+		<table class="notifications">
+			<tr>
+				<th class="small">{% trans "Notification Type" %}</th>
+			{% for header in notice_settings.column_headers %}
+				<th class="small">{{ header }}</th>
+			{% endfor %}
+			</tr>
+		{% for row in notice_settings.rows %}
+			<tr class="{% cycle "odd" "even" %}">
+				<td>
+					{% trans row.notice_type.display %}<br />
+					{% trans row.notice_type.description %}
+				</td>
+			{% for cell in row.cells %}
+				<td>
+					<input type="checkbox" name="{{ cell.0 }}" {% if cell.1 %}checked="checked" {% endif %}/>
+				</td>
+			{% endfor %}
+			</tr>
+		{% endfor %}
+		</table>
+		<br />
+		{% csrf_token %}
+		<input type="submit" value="{% trans "Change" %}" />
 	</form>
-    </div>
-
+</div>
 {% endblock %}

=== modified file 'templates/notification/single.html'
--- templates/notification/single.html	2010-06-12 15:25:46 +0000
+++ templates/notification/single.html	2012-07-04 18:20:26 +0000
@@ -1,50 +1,40 @@
 {% extends "notification/base.html" %}
 
 {% load humanize i18n %}
-{% load pagination_tags %}
 {% load custom_date %}
 
 {% block title %}
-{% trans "Notices "%} - Account - {{ block.super }}
-{% endblock %}
-
-{% block extra_head %}
-    <link rel="alternate" type="application/atom+xml" title="Notices Feed" href="{% url notification_feed_for_user %}" />
-    <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/notice.css" />{{ block.super}}
+{% trans "Notification "%} - {{ block.super }}
 {% endblock %}
 
 {% block content %}
-    {% include "django_messages/inlines/navigation.html" %}
-    <br />
-    <br />
-    <div class="box_item_model fixed_site">
-        <h3 class="title">{% trans "Notice" %}</h3>
-        <table width="100%">
-            <tr>
-                <td class="odd">Notice:</td>
-                <td class="odd">{{ notice.message|safe }}</td>
-            </tr>
-            <tr>
-                <td class="even">Notice Type:</td>
-                <td class="even">{{ notice.notice_type }}</td>
-            </tr>
-            <tr>
-                <td class="odd">Date of Notice:</td>
-                <td class="odd">{{ notice.added }}</td>
-            </tr>
-            <tr>
-                <td class="even">Notice Unseen:</td>
-                <td class="even">{{ notice.unseen }}</td>
-            </tr>
-            <tr>
-                <td class="odd">Notice Archiv:</td>
-                <td class="odd">{{ notice.archived }}</td>
-            </tr>
-            <tr>
-                <td class="even">Notice Site:</td>
-                <td class="even">{{ notice.on_site }}</td>
-            </tr>
-        </table>
-    </div>
+<h1>{% trans "Notification" %}: {{ notice.notice_type.display }}</h1>
+<div class="blogEntry">
+	<table>
+		<tr>
+			<td class="grey">Notice:</td>
+			<td>{{ notice.message|safe }}</td>
+		</tr>
+		<tr>
+			<td class="grey">Notice Type:</td>
+			<td>{{ notice.notice_type.display }}</td>
+		</tr>
+		<tr>
+			<td class="grey">Date of Notice:</td>
+			<td>{{ notice.added }}</td>
+		</tr>
+		<tr>
+			<td class="grey">Notice Unseen:</td>
+			<td>{{ notice.unseen }}</td>
+		</tr>
+		<tr>
+			<td class="grey">Notice Archiv:</td>
+			<td>{{ notice.archived }}</td>
+		</tr>
+		<tr>
+			<td class="grey">Notice Site:</td>
+			<td>{{ notice.on_site }}</td>
+		</tr>
+	</table>
+</div>
 {% endblock %}
-

=== modified file 'templates/pybb/add_post.html'
--- templates/pybb/add_post.html	2010-10-30 12:17:49 +0000
+++ templates/pybb/add_post.html	2012-07-04 18:20:26 +0000
@@ -2,11 +2,84 @@
 {% load pybb_extras %}
 {% load i18n %}
 
+{% block title %}
+{% if forum %}
+	{% trans "New Topic" %}
+{% else %}
+		{%if post %}
+			{% trans "Edit Reply" %}
+		{% else %}
+			{% trans "New Reply" %}
+		{% endif %}
+{% endif %}
+ - {{ block.super }}
+{% endblock %}
+
+{% block extra_head %}
+{{ block.super }}
+<script type="text/javascript" src="{{MEDIA_URL}}/js/disableOnSubmit.js"></script>
+<script type="text/javascript">
+	$(function() {
+		$('form').disableOnSubmit();
+		$('.post-form .preview-button').click(function() {
+			var raw_content = $.trim($('.post-form #id_body').val());
+			var markup = $('.post-form #id_markup').val();
+
+			args = {'content': raw_content, 'markup': markup}
+			$.post('{% url pybb_post_ajax_preview %}', args, function(data) {
+				if (data.error) {
+					alert(data.error);
+				} else {
+					$('.preview-box .content').html(data.content);
+					$('.preview-box').show();
+				}
+			}, 'json');
+		});
+	});
+</script>
+{% endblock %}
+
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model border">
-    {% include "pybb/inlines/add_post_form.html" %}
-</div>
+<form class="post-form" action="{{ form_url }}" method="post" enctype="multipart/form-data">
+	<h1>
+	{% if forum %}
+		{% trans "New Topic" %}
+	{% else %}
+		{%if post %}
+			{% trans "Edit Reply" %}
+		{% else %}
+			{% trans "New Reply" %}
+		{% endif %}
+	{% endif %}
+	</h1>
+	<div class="blogEntry">
+		<a href="{% url pybb_index %}">Forums</a> &#187;
+	{% if forum %}
+		<a href="{{ forum.category.get_absolute_url }}">{{ forum.category.name }}</a> &#187;
+		{{ forum }}
+	{% else %}
+		{% pybb_link topic.forum.category %} &#187; 
+		<a href="{{ topic.forum.get_absolute_url }}">{{ topic.forum.name }}</a> &#187;
+		{{ topic }} 
+	{% endif %}
+
+		<div class="preview-box" style="display: none">
+			<br />
+			{% trans "Preview" %}:<br />
+			<div class="content post">
+			</div>
+		</div>
+
+		{{ form.as_p }}
+		{% csrf_token %}
+		<button type="submit">
+			<img src="{{MEDIA_URL}}/forum/img/send.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Send" %}</span>
+		</button>
+		<button type="button" class="preview-button">
+			<img src="{{MEDIA_URL}}/forum/img/preview.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Preview" %}</span>
+		</button>
+	</div>
+</form>
 {% endblock %}

=== added file 'templates/pybb/category.html'
--- templates/pybb/category.html	1970-01-01 00:00:00 +0000
+++ templates/pybb/category.html	2012-07-04 18:20:26 +0000
@@ -0,0 +1,19 @@
+{% extends 'pybb/base.html' %}
+{% load pybb_extras %}
+
+{% block content %}
+<h1>Category: {{category.name}}</h1>
+
+<div class="blogEntry">
+	<a href="{% url pybb_index %}">Forums</a> &#187; {{category.name}}
+	<br /><br />
+	{% include 'pybb/inlines/display_category.html' %}
+</div>
+
+<div class="center green">
+	<img src="{{MEDIA_URL}}/forum/img/folder_big_work_star.png" style="width: 48px; height:48px; margin: 0px;" alt="" class="middle" />
+	= Unread posts
+	<img src="{{MEDIA_URL}}/forum/img/folder_big_work.png" style="width: 48px; height:48px; margin: 0px;" alt="" class="middle" /> 
+	= No unread posts
+</div>
+{% endblock %}

=== modified file 'templates/pybb/delete_post.html'
--- templates/pybb/delete_post.html	2011-07-04 17:15:04 +0000
+++ templates/pybb/delete_post.html	2012-07-04 18:20:26 +0000
@@ -2,25 +2,24 @@
 {% load i18n %}
 
 {% block title %}
-Delete post - {{ block.super }}
+{% trans "Delete Post" %} - {{ block.super }}
 {% endblock %}
 
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">{% trans "Are you sure you want to delete this message?" %}</h3>
-    <div class="even">
-        <p class="post-preview">
-    {{ post.body_html|safe }}
-        </p>
-    </div>
-    <form method="post">
-        <div class="info_line">
-            <input type="submit" value="{% trans "Yes, I am sure." %}" />
-        </div>
-        {% csrf_token %}
-    </form>
+<h1>{% trans "Delete Post" %}</h1>
+<div class="blogEntry">
+	<h3>{% trans "Are you sure you want to delete this message?" %}</h3>
+	<div class="preview-box">
+		<div class="content post">
+		{{ post.body_html|safe }}
+		</div>
+	</div>
+	<form method="post">
+		<div class="info_line">
+			<input type="submit" value="{% trans "Yes, I am sure." %}" />
+			<input type="button" value="{% trans "Cancel" %}" onclick="history.back();" />
+		</div>
+		{% csrf_token %}
+	</form>
 </div>
 {% endblock %}

=== modified file 'templates/pybb/edit_post.html'
--- templates/pybb/edit_post.html	2010-10-30 12:17:49 +0000
+++ templates/pybb/edit_post.html	2012-07-04 18:20:26 +0000
@@ -3,14 +3,60 @@
 {% load i18n %}
 
 {% block title %}
-Edit post - {{ block.super }}
+{% trans "Edit Reply" %} - {{ block.super }}
+{% endblock %}
+
+{% block extra_head %}
+{{ block.super }}
+<script type="text/javascript" src="{{MEDIA_URL}}/js/disableOnSubmit.js"></script>
+<script type="text/javascript">
+	$(function() {
+		$('form').disableOnSubmit();
+		$('.post-form .preview-button').click(function() {
+			var raw_content = $.trim($('.post-form #id_body').val());
+			var markup = $('.post-form #id_markup').val();
+
+			args = {'content': raw_content, 'markup': markup}
+			$.post('{% url pybb_post_ajax_preview %}', args, function(data) {
+				if (data.error) {
+					alert(data.error);
+				} else {
+					$('.preview-box .content').html(data.content);
+					$('.preview-box').show();
+				}
+			}, 'json');
+		});
+	});
+</script>
 {% endblock %}
 
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model border">
-    {% include "pybb/inlines/add_post_form.html" %}
-</div>
+<form class="post-form" action="{{ form_url }}" method="post" enctype="multipart/form-data">
+	<h1>{% trans "Edit Reply" %}</h1>
+
+	<div class="blogEntry">
+		<a href="{% url pybb_index %}">Forums</a> &#187;
+		{% pybb_link post.topic.forum.category %} &#187; 
+		<a href="{{ post.topic.forum.get_absolute_url }}">{{ post.topic.forum.name }}</a> &#187;
+		{{ post.topic }}
+
+		<div class="preview-box" style="display: none">
+			<br />
+			{% trans "Preview" %}:<br />
+			<div class="content post">
+			</div>
+		</div>
+
+		{{ form.as_p }}
+		{% csrf_token %}
+		<button type="submit">
+			<img src="{{MEDIA_URL}}/forum/img/send.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Send" %}</span>
+		</button>
+		<button type="button" class="preview-button">
+			<img src="{{MEDIA_URL}}/forum/img/preview.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Preview" %}</span>
+		</button>
+	</div>
+</form>
 {% endblock %}

=== modified file 'templates/pybb/forum.html'
--- templates/pybb/forum.html	2010-10-29 13:41:10 +0000
+++ templates/pybb/forum.html	2012-07-04 18:20:26 +0000
@@ -1,6 +1,9 @@
 {% extends 'pybb/base.html' %}
 {% load pybb_extras %}
 {% load i18n %}
+{% load humanize %}
+{% load wlprofile %}
+{% load custom_date %}
 
 {% block title %}
 {{ forum.name }} - {{ block.super }}
@@ -8,84 +11,78 @@
 
 {% block extra_head %}
 <link rel="alternate" type="application/atom+xml" title="Latest Posts on forum '{{ forum.name }}'" href="{% url pybb_feed "posts" %}{{forum.id}}/"  />
-<link rel="alternate" type="application/atom+xml" title="Latest Topics on forum '{{ forum.name }}'" href="{% url pybb_feed "topics"%}{{forum.id}}/" />
+<link rel="alternate" type="application/atom+xml" title="Latest Topics on forum '{{ forum.name }}'" href="{% url pybb_feed "topics" %}{{forum.id}}/" />
 {{ block.super }}
 {% endblock %}
 
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model">
-    <div class="forum-list">
-        <span class="title"><a href="/forum/">Forum</a> &rArr; {{ forum }}</span>
-        <br /> 
-        <div class="index_forum">
-            <table width="100%">
-                <tr>
-                    <td>
-                        {% pybb_pagination _('Topics') %}
-                    </td>
-                    <td>
-                        <div class="controls">
-                            <a href="{% url pybb_add_topic forum.id %}">
-                                <img src="{{MEDIA_URL}}/forum/img/en/new_topic.png" height="25" alt ="{% trans "New Topic" %}" style="float:right" />
-                            </a>
-                        </div>
-                    </td>
-                </tr>
-            </table>
-            <table cellspacing="1" width="100%">
-                <tr align="center">
-                    <th width="5%">&nbsp;</th>
-                    <th width="40%" nowrap="nowrap" align="left">Topic</th>
-                    <th             nowrap="nowrap">Creator</th>
-                    <th             nowrap="nowrap">At</th>
-                    <th             nowrap="nowrap">Posts</th>
-                    <th             nowrap="nowrap">Views</th>
-                    <th width="20%" nowrap="nowrap">Last Post</th>
-                </tr>
-
-                {# List all forums #}
-                {% for topic in topics %}
-                {% include "pybb/inlines/topic_row.html" %}
-                {% endfor %}
-            </table>
-            <table width="100%">
-                <tr>
-                    <td>
-                        {% pybb_pagination _('Topics') %}
-                    </td>
-                    <td>
-                        <div class="controls">
-                            <a href="{% url pybb_add_topic forum.id %}">
-                                <img src="{{MEDIA_URL}}/forum/img/en/new_topic.png" height="25" alt ="{% trans "New Topic" %}" style="float:right"/>
-                            </a>
-                        </div>
-                    </td>
-                </tr>
-            </table>     
-        </div>        
-        
-        <table class="legend">
-            <tr>
-                <td>
-                    <img src="{{MEDIA_URL}}/forum/img/folder_new.png" style=":" alt="" align="middle" />
-                </td>
-                <td>= Unread posts</td>
-                <td>
-                    <img src="{{MEDIA_URL}}/forum/img/folder.png" style="" alt="" align="middle" /> 
-                </td>
-                <td>= No unread posts</td>
-                <td>
-            </tr>
-        </table>
-    </div>
+<h1>Forum: {{ forum }}</h1>
+
+<div class="blogEntry">
+	<a href="{% url pybb_index %}">Forums</a> &#187; 
+	{% pybb_link forum.category %} &#187; 
+	{{ forum }}
+	<br /><br />
+	<button class="posRight" onclick="window.location.href='{% url pybb_add_topic forum.id %}';">
+		<img src="{{MEDIA_URL}}/forum/img/new_topic.png" alt ="{% trans "New Topic" %}" class="middle" />
+		<span class="middle">{% trans "New Topic" %}</span>
+	</button>
+	{% pybb_pagination _('Topics') %}
+	<br /><br />
+
+	<table class="forum">
+		<thead>
+			<tr>
+				<td class="forumIcon"></td>
+				<td class="forumTitle small">Title</td>
+				<td class="forumCount"></td>
+				<td class="lastPost small">Last Post by</td>
+			</tr>
+		</thead>
+		<tbody>
+	{% for topic in topics %}
+		<tr class="{% cycle 'odd' 'even' %}">
+			<td class="forumIcon center">
+				{% if topic|pybb_has_unreads:user %}
+				<img src="{{ MEDIA_URL }}/forum/img/doc_big_work_star.png" style="margin: 0px;" alt="" class="middle" />
+				{% else %}
+				<img src="{{ MEDIA_URL }}/forum/img/doc_big_work.png" style="margin: 0px;" alt="" class="middle" />
+				{% endif %}
+			</td>
+			<td class="forumTitle">
+				{% if topic.sticky %}<img src="{{MEDIA_URL}}/forum/img/sticky.png" alt="Sticky" title="Sticky" />{% endif %}
+				{% if topic.closed %}<img src="{{MEDIA_URL}}/forum/img/closed.png" alt="Closed" title="Closed" />{% endif %}
+				<a href="{{ topic.get_absolute_url }}">{{ topic.name }}</a><br />
+				<span class="small">Created by {{ topic.user|user_link }} on {{ topic.created|custom_date:user }}</span>
+			</td>
+			<td class="forumCount center small" style="width: 120px;">
+				Posts: {{ topic.post_count }}<br/>
+				Views: {{ topic.views }}
+			</td>
+			<td class="lastPost">
+				{%if topic.last_post %}
+				{{ topic.last_post.user|user_link }} <a href="{{ topic.last_post.get_absolute_url }}">&#187;</a><br />
+				<span class="small">on {{ topic.last_post.created|custom_date:user }}</span>
+				{% endif %}
+			</td>
+		</tr>
+	{% endfor %}
+		</tbody>
+	</table>
+
+	<br />
+	<button class="posRight" onclick="window.location.href='{% url pybb_add_topic forum.id %}';">
+		<img src="{{MEDIA_URL}}/forum/img/new_topic.png" alt ="{% trans "New Topic" %}" class="middle" />
+		<span class="middle">{% trans "New Topic" %}</span>
+	</button>
+	{% pybb_pagination _('Topics') %}
+	<br />
+</div>
+
+<div class="center green">
+	<img src="{{MEDIA_URL}}/forum/img/doc_big_work_star.png" alt="" class="middle" />
+	= Unread posts
+	<img src="{{MEDIA_URL}}/forum/img/doc_big_work.png" alt="" class="middle" /> 
+	= No unread posts
 </div>
 {% endblock %}
-
-{% comment %}
-<div class="crumbs">
-    <a href="{% url pybb_index %}">{% trans "Root" %}</a> / {% pybb_link forum.category %} / {% pybb_link forum %}
-</div>
-{% endcomment %}

=== modified file 'templates/pybb/index.html'
--- templates/pybb/index.html	2010-10-29 13:41:10 +0000
+++ templates/pybb/index.html	2012-07-04 18:20:26 +0000
@@ -2,14 +2,23 @@
 {% load pybb_extras %}
 
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model">
+<h1>Forums</h1>
+
 {% for category in cats %}
-    {% include 'pybb/inlines/display_category.html' %}
+<div class="blogEntry">
+	<h3><a href="{{category.get_absolute_url}}" class="invertedColor">{{category.name}}</a></h3>
+	{% include 'pybb/inlines/display_category.html' %}
+</div>
 {% endfor %}
 
+<div class="center green">
+	<img src="{{MEDIA_URL}}/forum/img/folder_big_work_star.png" style="width: 48px; height:48px; margin: 0px;" alt="" class="middle" />
+	= Unread posts
+	<img src="{{MEDIA_URL}}/forum/img/folder_big_work.png" style="width: 48px; height:48px; margin: 0px;" alt="" class="middle" /> 
+	= No unread posts
+</div>
+
+  {% comment %}
 <table class="legend">
   <tr>
      <td>
@@ -20,7 +29,7 @@
          <img src="{{MEDIA_URL}}/forum/img/folder_big.png" style="width: 48px; height:48px; margin: 0px;" alt="" align="middle" /> 
      </td><td>= No unread posts</td>
   </tr>
-  {% comment %}
+
   <tr>
       <td>
           <img src="{{MEDIA_URL}}/forum/img/folder_locked_big.png" style="width: 48px; height:48px; margin: 0px;" alt="" align="middle" />
@@ -29,8 +38,7 @@
           <img src="{{MEDIA_URL}}/forum/img/folder_new_locked_big.png" style="width: 48px; height:48px; margin: 0px;" alt="" align="middle" />
       </td><td>= Unread posts in locked topic</td>
   </tr>
+</table>
   {% endcomment %}
-</table>
-<div>
+
 {% endblock %}
-

=== modified file 'templates/pybb/inlines/add_post_form.html'
--- templates/pybb/inlines/add_post_form.html	2011-11-13 15:47:39 +0000
+++ templates/pybb/inlines/add_post_form.html	2012-07-04 18:20:26 +0000
@@ -1,56 +1,61 @@
 {% load i18n %}
+
 {% block extra_head %}
-<script type="text/javascript" src="/wlmedia/js/disableOnSubmit.js"></script>
+{# block.super #}
+<script type="text/javascript" src="{{MEDIA_URL}}/js/disableOnSubmit.js"></script>
 <script type="text/javascript">
-   $(function() {
-         $('form').disableOnSubmit();
-   });
+	$(function() {
+		 $('form').disableOnSubmit();
+	});
+
+	$(function() {
+		$('.post-form .preview-button').click(function() {
+			var raw_content = $.trim($('.post-form #id_body').val());
+			var markup = $('.post-form #id_markup').val();
+
+			args = {'content': raw_content, 'markup': markup}
+			$.post('{% url pybb_post_ajax_preview %}', args, function(data) {
+				if (data.error) {
+					alert(data.error);
+				} else {
+					$('.preview-box .content').html(data.content);
+					$('.preview-box').show();
+				}
+			}, 'json');
+		});
+	});
 </script>
 {% endblock %}
-    <form class="post-form" action="{{ form_url }}" method="post" enctype="multipart/form-data">
-        <div class="preview-box" style="display: none">
-            <div class="header">
-                <h3 class="title">{% trans "Preview" %}</h3>
-            </div>
-            <div class="content post top">
-            </div>
-        </div>
-        <h3 class="title">
-    {% if forum %}
-        {% trans "New topic" %}
-    {% else %}
-        {%if post %}
-            {% trans "Edit reply" %}
-        {% else %}
-            {% trans "New reply" %}
-        {% endif %}
-    {% endif %}
-        </h3>
-        <div class="content">
-            {{ form.as_p }}
-	    </div>
-        <div class="info_line show_left">
-            <input type="submit" class="button_send" value="" />
-            <input class="preview-button button_preview" type="button" value="" />
-        </div>
-        {% csrf_token %}
-        </form>
-<script type="text/javascript">
-$(function() {
-    $('.post-form .preview-button').click(function() {
-        var raw_content = $.trim($('.post-form #id_body').val());
-        var markup = $('.post-form #id_markup').val();
-
-        args = {'content': raw_content, 'markup': markup}
-        $.post('{% url pybb_post_ajax_preview %}', args, function(data) {
-            if (data.error) {
-                alert(data.error);
-            } else {
-                $('.preview-box .content').html(data.content);
-                $('.preview-box').show();
-            }
-        }, 'json');
-    });
-});
-
-</script>
+
+<form class="post-form" action="{{ form_url }}" method="post" enctype="multipart/form-data">
+	<div class="blogEntry">
+		<h3>
+	{% if forum %}
+		{% trans "New Topic" %}
+	{% else %}
+		{%if post %}
+			{% trans "Edit Reply" %}
+		{% else %}
+			{% trans "New Reply" %}
+		{% endif %}
+	{% endif %}
+		</h3>
+
+		<div class="preview-box" style="display: none">
+			{% trans "Preview" %}:<br />
+			<div class="content post">
+			</div>
+		</div>
+
+		{{ form.as_p }}
+		{% csrf_token %}
+		<button type="submit">
+			<img src="{{MEDIA_URL}}/forum/img/send.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Send" %}</span>
+		</button>
+		<button type="button" class="preview-button">
+			<img src="{{MEDIA_URL}}/forum/img/preview.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Preview" %}</span>
+		</button>
+	</div>
+</form>

=== modified file 'templates/pybb/inlines/display_category.html'
--- templates/pybb/inlines/display_category.html	2010-06-12 18:47:34 +0000
+++ templates/pybb/inlines/display_category.html	2012-07-04 18:20:26 +0000
@@ -1,22 +1,43 @@
 {% comment %}
    vim:ft=htmldjango:
 
-   How to display a Forum list in the index page
+   How to display a Forum list
 {% endcomment %}
-<div class="box_item_model index_category">
-    <h3 class="title">{{category.cat}} </h3>
-    <table class="full_site" cellspacing="1">
-        <tr class="show_center" cellspacing="0">
-            <td width="5%" class="info_line show_left">&nbsp;</td>
-            <td width="57%" nowrap="nowrap" class="info_line show_left">Forum</td>
-            <td width="9%" nowrap="nowrap" class="info_line show_left">Topics</td>
-            <td width="9%" nowrap="nowrap" class="info_line show_left">Posts</td>
-            <td width="20%" nowrap="nowrap" class="info_line show_left">Last Post</td>
-        </tr>
-        {# List all forums #}
-        {% for forum in category.forums %}
-        {% include 'pybb/inlines/forum_row.html' %}
-        {% endfor %}
-    </table>
-</div>
-
+
+{% load humanize %}
+{% load pybb_extras %}
+{% load wlprofile %}
+{% load custom_date %}
+
+<table class="forum">
+	{# List all forums #}
+	{% for forum in category.forums.all %}
+	<tr class="{% cycle 'odd' 'even' %}">
+		<td class="forumIcon center">
+		{% if forum|pybb_has_unreads:user %}
+			<img src="{{ MEDIA_URL }}/forum/img/folder_big_work_star.png" style="width: 48px; height:48px; margin: 0px;" alt="" />
+		{% else %}
+			<img src="{{ MEDIA_URL }}/forum/img/folder_big_work.png" style="width: 48px; height:48px; margin: 0px;" alt="" />
+		{% endif %}
+		</td>
+		<td class="forumTitle">
+			<a href="{{ forum.get_absolute_url }}">{{ forum.name }}</a>
+			<br />
+			<span class="small">{{ forum.description }}</span>
+		</td>
+		<td class="forumCount center small" style="width: 120px;">
+			Topics: {{ forum.topics.count }}<br/>
+			Posts: {{ forum.posts.count }}
+		</td>
+		<td class="lastPost">
+		{%if forum.last_post %}
+			<a href="{{forum.last_post.get_absolute_url}}">{{ forum.last_post.topic.name }}</a><br />
+			<span class="small">by {{ forum.last_post.user|user_link }}<br />
+			on {{ forum.last_post.created|custom_date:user}}</span>
+		{% else %}
+			&nbsp;
+		{% endif %}
+		</td>
+	</tr>
+	{% endfor %}
+</table>

=== modified file 'templates/pybb/last_posts.html'
--- templates/pybb/last_posts.html	2011-07-04 11:08:20 +0000
+++ templates/pybb/last_posts.html	2012-07-04 18:20:26 +0000
@@ -3,12 +3,19 @@
 {% load custom_date %} 
 {% load pybb_extras %}
 
-<div>
-<br />
-{% for post in posts %} 
-                {{ post.topic.forum.name }}<br />
-                <a href="{{ post.get_absolute_url }}" title="{{ post.topic.name }}">{{ post.topic.name|pybb_cut_string:25 }}</a><br />
-                by {{ post.user.username }} {{ post.created|minutes }} ago <br />
-                <br />
-{% endfor %} 
+{% if posts %}
+<div class="columnModule">
+	<h3>Latest Posts</h3>
+	<div class="columnModuleBox">
+		<ul>
+			{% for post in posts %}
+			<li>
+				{{ post.topic.forum.name }}<br />
+				<a href="{{ post.get_absolute_url }}" title="{{ post.topic.name }}">{{ post.topic.name|pybb_cut_string:30 }}</a><br />
+				by <a href="{% url profile_view post.user %}">{{post.user.username}}</a> {{ post.created|minutes }} ago
+			</li>
+			{% endfor %}
+		</ul>
+	</div>
 </div>
+{% endif %}

=== modified file 'templates/pybb/topic.html'
--- templates/pybb/topic.html	2010-10-30 12:17:49 +0000
+++ templates/pybb/topic.html	2012-07-04 18:20:26 +0000
@@ -1,6 +1,10 @@
 {% extends 'pybb/base.html' %}
 {% load pybb_extras %}
 {% load i18n %}
+{% load humanize %}
+{% load wiki %}
+{% load wlprofile %}
+{% load custom_date %}
 
 {% block title %}
 {{ topic.name }} - {{ topic.forum.name }} - {{ block.super }}
@@ -13,84 +17,288 @@
 {% endblock %}
 
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model">
-    <span class="title"><a href="/forum/">Forum</a> &rArr; <a href="{{ topic.forum.get_absolute_url }}">{{ topic.forum.name }}</a> &rArr; {{ topic }}</span>
-    <br />
-    {% pybb_pagination _('Posts') %}
-    <div class="posts" style="clear:left">
-        <a name="top" id="top"></a>
-        <table cellspacing="1" width="100%">
-            <tr align="center">
-                <th>Author</th>
-                <th width="85%" nowrap="nowrap">Message</th>
-            </tr>
-        </table>
-
-    {% if first_post %}
-        {% ifnotequal first_post posts.0 %}
-            {% with first_post as post %}
-        <div class="post first_post">
-                {% include "pybb/inlines/post.html" %}
-        </div>
-            {% endwith %}
-        {% endifnotequal %}
-    {% endif %}
-    {% for post in posts %}
-        <div class="post">
-        {% include "pybb/inlines/post.html" %}
-        </div>
-    {% endfor %}
-    </div>
-    {% pybb_pagination _('Posts') %}
-    <br />
-    <div class="controls">
-        <br />
-    {% if moderator %}
-        {% if topic.sticky %}
-    <a href="{% url pybb_unstick_topic topic.id %}">
-        <img src="{{MEDIA_URL}}/forum/img/en/unstick_topic.png" height="25" alr="{% trans "Unstick topic" %}" />
-    </a>
-        {% else %}
-    <a href="{% url pybb_stick_topic topic.id %}">
-        <img src="{{MEDIA_URL}}/forum/img/en/stick_topic.png" height="25" alt ="{% trans "Stick Topic" %}" />
-    </a>
-        {% endif %}
-        {% if topic.closed %}
-    <a href="{% url pybb_open_topic topic.id %}">
-        <img src="{{MEDIA_URL}}/forum/img/en/open_topic.png" height="25" alt="{% trans "Open topic" %}" />
-    </a>
-        {% else %}
-    <a href="{% url pybb_close_topic topic.id %}">
-        <img src="{{MEDIA_URL}}/forum/img/en/close_topic.png" height="25" alt ="{% trans "Close Topic" %}" />
-    </a>
-        {% endif %}
-    {% endif %}
-
-
-    {% if user.is_authenticated %}
-        {% if subscribed %}
-    <a href="{% url pybb_delete_subscription topic.id %}?from_topic">
-        <img src="{{MEDIA_URL}}/forum/img/en/unsubscribe.png" height="25" alt ="{% trans "Unsubscribe" %}" />
-    </a>
-        {% else %}
-    <a href="{% url pybb_add_subscription topic.id %}">
-        <img src="{{MEDIA_URL}}/forum/img/en/subscribe.png" height="25" alt="{% trans "Subscribe" %}" /></a>
-        {% endif %}
-    {% endif %}
-
-    </div>
+<h1>Topic: {{ topic }}</h1>
+<div class="blogEntry">
+	<a href="{% url pybb_index %}">Forums</a> &#187; 
+	{% pybb_link topic.forum.category %} &#187; 
+	<a href="{{ topic.forum.get_absolute_url }}">{{ topic.forum.name }}</a> &#187;
+	{{ topic }}
+	<br /><br />
+	<div class="posRight">
+	{% if moderator %}
+		{% if topic.sticky %}
+		<button onclick="window.location.href='{% url pybb_unstick_topic topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/unstick.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Unstick Topic" %}</span>
+		</button>
+		{% else %}
+		<button onclick="window.location.href='{% url pybb_stick_topic topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/sticky.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Stick Topic" %}</span>
+		</button>
+		{% endif %}
+		{% if topic.closed %}
+		<button onclick="window.location.href='{% url pybb_open_topic topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/open.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Open Topic" %}</span>
+		</button>
+		{% else %}
+		<button onclick="window.location.href='{% url pybb_close_topic topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/closed.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Close Topic" %}</span>
+		</button>
+		{% endif %}
+	{% endif %}
+	{% if user.is_authenticated %}
+		{% if subscribed %}
+		<button onclick="window.location.href='{% url pybb_delete_subscription topic.id %}?from_topic';">
+			<img src="{{MEDIA_URL}}/forum/img/unsubscribe.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Unsubscribe" %}</span>
+		</button>
+		{% else %}
+		<button onclick="window.location.href='{% url pybb_add_subscription topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/subscribe.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Subscribe" %}</span>
+		</button>
+		{% endif %}
+		<button onclick="window.location.href='{% url pybb_add_post topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/send.png" alt ="" class="middle" />
+			<span class="middle">{% trans "New Reply" %}</span>
+		</button>
+	{% endif %}
+	</div>
+	{% pybb_pagination _('Posts') %}
+	<br /><br />
+
+{% if first_post %}
+	{% ifnotequal first_post posts.0 %}
+		{% with first_post as post %}
+	{% trans "First Post" %}:
+	<table class="forum">
+		<tbody>
+		<tr class="odd">
+			<td class="author">
+				{{ post.user|user_link }}<br />
+				{% if post.user.wlprofile.avatar %}
+				<a href="{% url profile_view post.user %}">
+					<img src="{{ post.user.wlprofile.avatar.url }}" alt="Avatar" />
+				</a>
+				{% endif %}
+				<div class="authorStats">
+				<strong>Joined:</strong> {{ post.user.date_joined|custom_date:user|title }}<br />
+				<strong>Posts:</strong> {{ post.user.wlprofile.post_count }}<br />
+				<img src="{{ MEDIA_URL }}img/{{ post.user.wlprofile.user_status.image }}" alt="Ranking" /><br />
+				<strong>{{ post.user.wlprofile.user_status.text }}</strong><br />
+				{% if post.user.wlprofile.location %}
+				<strong>Location:</strong> {{ post.user.wlprofile.location }}<br />
+				{% endif %}
+				{% if post.user.wlprofile.get_ggzstats and post.user.wlprofile.get_ggzstats.ranking %} 
+				<strong>GGZ ranking:</strong> {{ post.user.wlprofile.get_ggzstats.ranking|floatformat }}<br />
+				<strong>GGZ rating:</strong> {{ post.user.wlprofile.get_ggzstats.rating|floatformat }}<br />
+				<strong>GGZ win:</strong> {{ post.user.wlprofile.get_ggzstats.wins|floatformat }}<br />
+				<strong>GGZ loses:</strong> {{ post.user.wlprofile.get_ggzstats.losses|floatformat }}<br />
+				{% endif %}
+				</div>
+			</td>
+			<td class="post">
+				<a id="post-{{ post.id }}" href="{{post.get_absolute_url}}" title="{% trans "Permalink" %}" class="posRight small permalink">&nbsp;</a>
+				<span class="small">Posted at: {{ post.created|custom_date:user}}</span>
+				<hr />
+				<div class="post">
+					{{ post.body_html|safe }}
+				</div>
+
+				{% if post.attachment_cache %}
+					{% for attach in post.attachment_cache %}
+						{% trans "Attachment" %}: <a href="{{ attach.get_absolute_url }}">{{ attach.name }}</a> ({{ attach.size_display }})
+					{% endfor %}
+				{% endif %}
+
+				{% if post.updated %}
+					<span class="small">{% trans "Edited" %}: {{ post.updated|custom_date:user|title}}</span>
+				{% endif %}
+				<hr />
+				{% if user.is_authenticated %}
+					{% ifequal user.wlprofile.show_signatures 1 %}
+						{% if post.user.wlprofile.signature %}
+							{{ post.user.wlprofile.signature|urlize|linebreaks }}
+						{% endif %}
+					{% endifequal %}
+				{% else %}
+					{% if post.user.wlprofile.signature %}
+						{{ post.user.wlprofile.signature|urlize|linebreaks }}
+					{% endif %}
+				{% endif %}
+
+				<button onclick="window.location.href='#top';" class="posRight">
+					<img src="{{MEDIA_URL}}/forum/img/top.png" alt ="" class="middle" />
+					<span class="middle">{% trans "Top" %}</span>
+				</button>
+
+				<button onclick="window.location.href='{% url pybb_add_post topic.id %}?quote_id={{ post.id }}';">
+					<img src="{{MEDIA_URL}}/forum/img/quote.png" alt ="" class="middle" />
+					<span class="middle">{% trans "Quote" %}</span>
+				</button>
+				{% if moderator or post|pybb_posted_by:user %}
+					<button onclick="window.location.href='{% url pybb_edit_post post.id %}';">
+						<img src="{{MEDIA_URL}}/forum/img/edit.png" alt ="" class="middle" />
+						<span class="middle">{% trans "Edit" %}</span>
+					</button>
+					{% if moderator or post|pybb_equal_to:last_post %}
+					<button onclick="window.location.href='{% url pybb_delete_post post.id %}';">
+						<img src="{{MEDIA_URL}}/forum/img/delete.png" alt ="" class="middle" />
+						<span class="middle">{% trans "Delete" %}</span>
+					</button>
+					{% endif %}
+				{% endif %}
+			</td>
+		</tr>
+		</tbody>
+	</table>
+	<br /><hr /><br />
+		{% endwith %}
+	{% endifnotequal %}
+{% endif %}
+
+	<table class="forum">
+		<tbody>
+	{% for post in posts %}
+		<tr class="{% cycle 'odd' 'even' %}">
+			<td class="author">
+				{{ post.user|user_link }}<br />
+				{% if post.user.wlprofile.avatar %}
+				<a href="{% url profile_view post.user %}">
+					<img src="{{ post.user.wlprofile.avatar.url }}" alt="Avatar" />
+				</a>
+				{% endif %}
+				<div class="authorStats">
+				<strong>Joined:</strong> {{ post.user.date_joined|custom_date:user|title }}<br />
+				<strong>Posts:</strong> {{ post.user.wlprofile.post_count }}<br />
+				<img src="{{ MEDIA_URL }}img/{{ post.user.wlprofile.user_status.image }}" alt="Ranking" /><br />
+				<strong>{{ post.user.wlprofile.user_status.text }}</strong><br />
+				{% if post.user.wlprofile.location %}
+				<strong>Location:</strong> {{ post.user.wlprofile.location }}<br />
+				{% endif %}
+				{% if post.user.wlprofile.get_ggzstats and post.user.wlprofile.get_ggzstats.ranking %} 
+				<strong>GGZ ranking:</strong> {{ post.user.wlprofile.get_ggzstats.ranking|floatformat }}<br />
+				<strong>GGZ rating:</strong> {{ post.user.wlprofile.get_ggzstats.rating|floatformat }}<br />
+				<strong>GGZ win:</strong> {{ post.user.wlprofile.get_ggzstats.wins|floatformat }}<br />
+				<strong>GGZ loses:</strong> {{ post.user.wlprofile.get_ggzstats.losses|floatformat }}<br />
+				{% endif %}
+				</div>
+			</td>
+			<td class="post">
+				<a id="post-{{ post.id }}" href="{{post.get_absolute_url}}" title="{% trans "Permalink" %}" class="posRight small permalink">&nbsp;</a>
+				<span class="small">Posted at: {{ post.created|custom_date:user}}</span>
+				<hr />
+				<div class="post">
+					{{ post.body_html|safe }}
+				</div>
+
+				{% if post.attachment_cache %}
+					{% for attach in post.attachment_cache %}
+						{% trans "Attachment" %}: <a href="{{ attach.get_absolute_url }}">{{ attach.name }}</a> ({{ attach.size_display }})
+					{% endfor %}
+				{% endif %}
+
+				{% if post.updated %}
+					<span class="small">{% trans "Edited" %}: {{ post.updated|custom_date:user|title}}</span>
+				{% endif %}
+				<hr />
+				{% if user.is_authenticated %}
+					{% ifequal user.wlprofile.show_signatures 1 %}
+						{% if post.user.wlprofile.signature %}
+							{{ post.user.wlprofile.signature|urlize|linebreaks }}
+						{% endif %}
+					{% endifequal %}
+				{% else %}
+					{% if post.user.wlprofile.signature %}
+						{{ post.user.wlprofile.signature|urlize|linebreaks }}
+					{% endif %}
+				{% endif %}
+
+				<button onclick="window.location.href='#top';" class="posRight">
+					<img src="{{MEDIA_URL}}/forum/img/top.png" alt ="" class="middle" />
+					<span class="middle">{% trans "Top" %}</span>
+				</button>
+
+				<button onclick="window.location.href='{% url pybb_add_post topic.id %}?quote_id={{ post.id }}';">
+					<img src="{{MEDIA_URL}}/forum/img/quote.png" alt ="" class="middle" />
+					<span class="middle">{% trans "Quote" %}</span>
+				</button>
+				{% if moderator or post|pybb_posted_by:user %}
+					<button onclick="window.location.href='{% url pybb_edit_post post.id %}';">
+						<img src="{{MEDIA_URL}}/forum/img/edit.png" alt ="" class="middle" />
+						<span class="middle">{% trans "Edit" %}</span>
+					</button>
+					{% if moderator or post|pybb_equal_to:last_post %}
+					<button onclick="window.location.href='{% url pybb_delete_post post.id %}';">
+						<img src="{{MEDIA_URL}}/forum/img/delete.png" alt ="" class="middle" />
+						<span class="middle">{% trans "Delete" %}</span>
+					</button>
+					{% endif %}
+				{% endif %}
+			</td>
+		</tr>
+		<tr class="spacer">
+			<td></td>
+			<td></td>
+		</tr>
+	{% endfor %}
+		</tbody>
+	</table>
+
+	<div class="posRight">
+	{% if moderator %}
+		{% if topic.sticky %}
+		<button onclick="window.location.href='{% url pybb_unstick_topic topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/unstick.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Unstick Topic" %}</span>
+		</button>
+		{% else %}
+		<button onclick="window.location.href='{% url pybb_stick_topic topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/sticky.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Stick Topic" %}</span>
+		</button>
+		{% endif %}
+		{% if topic.closed %}
+		<button onclick="window.location.href='{% url pybb_open_topic topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/open.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Open Topic" %}</span>
+		</button>
+		{% else %}
+		<button onclick="window.location.href='{% url pybb_close_topic topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/closed.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Close Topic" %}</span>
+		</button>
+		{% endif %}
+	{% endif %}
+	{% if user.is_authenticated %}
+		{% if subscribed %}
+		<button onclick="window.location.href='{% url pybb_delete_subscription topic.id %}?from_topic';">
+			<img src="{{MEDIA_URL}}/forum/img/unsubscribe.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Unsubscribe" %}</span>
+		</button>
+		{% else %}
+		<button onclick="window.location.href='{% url pybb_add_subscription topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/subscribe.png" alt ="" class="middle" />
+			<span class="middle">{% trans "Subscribe" %}</span>
+		</button>
+		{% endif %}
+		<button onclick="window.location.href='{% url pybb_add_post topic.id %}';">
+			<img src="{{MEDIA_URL}}/forum/img/send.png" alt ="" class="middle" />
+			<span class="middle">{% trans "New Reply" %}</span>
+		</button>
+	{% endif %}
+	</div>
+	{% pybb_pagination _('Posts') %}
+	<br />
 </div>
+
 {% if user.is_authenticated %}
-    {% if not topic.closed %}
-<br />
-<br />
-<div class="box_item_model border">
-    {% include "pybb/inlines/add_post_form.html" %}
-</div>
-    {% endif %}
+	{% if not topic.closed %}
+		{% include "pybb/inlines/add_post_form.html" %}
+	{% endif %}
 {% endif %}
 
 {% endblock %}

=== modified file 'templates/registration/activate.html'
--- templates/registration/activate.html	2012-03-17 16:00:49 +0000
+++ templates/registration/activate.html	2012-07-04 18:20:26 +0000
@@ -1,6 +1,18 @@
-{% extends "base.html" %}
+{% extends "registration/base.html" %}
+{% comment %}
+vim:ft=htmldjango: 
+{% endcomment %}
+
+{% block title %}
+Activation - {{ block.super }}
+{% endblock %}
 
 {% block content %}
-An error occured: Either this account has already been activated or activation key is invalid.<br>
-Try <a href="/accounts/login">logging in</a>.
+<h1>Activation</h1>
+<div class="blogEntry">
+	<p class="errormessage">
+		An error occured: Either this account has already been activated or activation key is invalid.<br />
+		Try <a href="{% url auth_login %}">logging in</a>.
+	</p>
+</div>
 {% endblock %}

=== modified file 'templates/registration/activation_complete.html'
--- templates/registration/activation_complete.html	2010-01-02 22:47:18 +0000
+++ templates/registration/activation_complete.html	2012-07-04 18:20:26 +0000
@@ -1,13 +1,17 @@
-{% extends "base.html" %}
+{% extends "registration/base.html" %}
+{% comment %}
+vim:ft=htmldjango: 
+{% endcomment %}
 
 {% block title %}
-registration_form.html | {{ block.super }}
-{% endblock %}
-
-{% block header %}
-<h1>activate.html</h1>
+Activation - {{ block.super }}
 {% endblock %}
 
 {% block content %}
-You are now activated. 
-{% endblock %}
\ No newline at end of file
+<h1>Activation</h1>
+<div class="blogEntry">
+	<p>
+		You are now activated and can <a href="{% url auth_login %}">log in</a>.
+	</p>
+</div>
+{% endblock %}

=== modified file 'templates/registration/login.html'
--- templates/registration/login.html	2011-07-04 01:14:23 +0000
+++ templates/registration/login.html	2012-07-04 18:20:26 +0000
@@ -1,56 +1,43 @@
 {% extends "registration/base.html" %}
 
 {% block title %}
-{{ block.super }} - Login
+Login - {{ block.super }}
 {% endblock %}
 
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">Login</h3>
+
+<h1>Login</h1>
+<div class="blogEntry">
 {% if form.errors %}
-    <div class="info_line show_center errormessage">
-        <br />
-        Your username and password didn't match.
-        <br />
-        Please try again.
-        <br />
-        <br />
-    </div>
+	<p class="errormessage">
+		Your username and password didn't match.
+		<br />
+		Please try again.
+	</p>
 {% endif %}
-    <div class="info_line show_center">
-        <br />
-        <form method="post" action=".">
-            <table>
-                <tr>
-                    <td>
-                        {{ form.username.label_tag }}: 
-                    </td>
-                    <td>
-                        {{ form.username }}
-                    </td>
-                </tr>
-                <tr>
-                    <td>
-                        {{ form.password.label_tag }}: 
-                    </td>
-                    <td>
-                        {{ form.password }}
-                    </td>
-                </tr>
-                <tr>
-                    <td></td>
-                    <td class="show_right">
-                        <input type="submit" value="login" />
-                        <input type="hidden" name="next" value="{{ next }}" />
-                    </td>
-                </tr>
-            </table>
-           {% csrf_token %}
-        </form>
-        <br />
-    </div>
+	<form method="post" action="." id="login_form">
+		<table>
+			<tr>
+				<td class="grey">
+					{{ form.username.label_tag }}: 
+				</td>
+				<td>
+					{{ form.username }}
+				</td>
+			</tr>
+			<tr>
+				<td class="grey">
+					{{ form.password.label_tag }}: 
+				</td>
+				<td>
+					{{ form.password }}
+				</td>
+			</tr>
+		</table>
+		{% csrf_token %}
+		<input type="submit" value="login" />
+		<input type="hidden" name="next" value="{{ next }}" />
+	</form>
+	<p><a href="{% url auth_password_reset %}">Lost password?</a> | <a href="{% url registration_register %}">Register now!</a></p>
 </div>
 {% endblock %}

=== modified file 'templates/registration/password_change_done.html'
--- templates/registration/password_change_done.html	2010-10-30 12:17:49 +0000
+++ templates/registration/password_change_done.html	2012-07-04 18:20:26 +0000
@@ -3,25 +3,17 @@
 vim:ft=htmldjango: 
 {% endcomment %}
 
+{% load i18n %}
+
 {% block title %}
-{{ block.super }} - Change Password
+Password Change - {{ block.super }}
 {% endblock %}
 
-{% load i18n %}
-
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">Password change successful </h3>
-    <div class="info_line">
-        <br />
-        <div class="show_center errormessage">
-            Your password was changed.
-        </div>
-        <br />
-    </div>
+<h1>Password Change</h1>
+<div class="blogEntry">
+	<p>
+		Your password was changed successfully.
+	</p>
 </div>
 {% endblock %}

=== modified file 'templates/registration/password_change_form.html'
--- templates/registration/password_change_form.html	2011-07-04 01:14:23 +0000
+++ templates/registration/password_change_form.html	2012-07-04 18:20:26 +0000
@@ -3,68 +3,56 @@
 vim:ft=htmldjango: 
 {% endcomment %}
 
+{% load i18n %}
+
 {% block title %}
-{{ block.super }} - Change Password
+Password Change - {{ block.super }}
 {% endblock %}
 
-{% load i18n %}
-
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">Password change</h3>
-    <div class="info_line">
-        <br />
-        <div class="show_center errormessage">
-            Please enter your old password,
-            <br />
-            for security's sake, and then enter your new password twice so we can verify you typed it in correctly.
-        </div>
-        <div >
-            <br />
-            <form action="" method="post">
-                <table>
-                    <tr>
-                        <td class="show_right" width="120">
-                            <label for="id_old_password">{% trans 'Old password:' %}</label>
-                        </td>
-                        <td>
-                            {{ form.old_password }}
-                            <span class="errormessage">{{ form.old_password.errors }}</span>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td class="show_right">
-                            <label for="id_new_password1">{% trans 'New password:' %}</label>
-                        </td>
-                        <td>
-                            {{ form.new_password1 }}
-                            <span class="errormessage">{{ form.new_password1.errors }}</span>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td class="show_right">
-                            <label for="id_new_password2">{% trans 'Confirm password:' %}</label>
-                        </td>
-                        <td>
-                            {{ form.new_password2 }}
-                            <span class="errormessage">{{ form.new_password2.errors }}</span>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>&nbsp;</td>
-                        <td>
-                            <input type="submit" value="{% trans 'Change my password' %}" />
-                        </td>
-                    </tr>
-                </table>
-                {% csrf_token %}
-	    </form>
-            <br />
-        </div>
-    </div>
+<h1>Password Change</h1>
+<div class="blogEntry">
+	<p>
+		Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly.
+	</p>
+	<form action="." method="post">
+		<table>
+			<tr>
+				<td class="grey" width="120">
+					<label for="id_old_password">{% trans 'Old password:' %}</label>
+				</td>
+				<td>
+					{{ form.old_password }}
+				</td>
+				<td class="errormessage">
+					{{ form.old_password.errors }}
+				</td>
+			</tr>
+			<tr>
+				<td class="grey">
+					<label for="id_new_password1">{% trans 'New password:' %}</label>
+				</td>
+				<td>
+					{{ form.new_password1 }}
+				</td>
+				<td class="errormessage">
+					{{ form.new_password1.errors }}
+				</td>
+			</tr>
+			<tr>
+				<td class="grey">
+					<label for="id_new_password2">{% trans 'Confirm password:' %}</label>
+				</td>
+				<td>
+					{{ form.new_password2 }}
+				</td>
+				<td class="errormessage">
+					{{ form.new_password2.errors }}
+				</td>
+			</tr>
+		</table>
+		{% csrf_token %}
+		<input type="submit" value="{% trans 'Change my password' %}" />
+	</form>
 </div>
 {% endblock %}

=== modified file 'templates/registration/password_reset_complete.html'
--- templates/registration/password_reset_complete.html	2010-10-30 12:17:49 +0000
+++ templates/registration/password_reset_complete.html	2012-07-04 18:20:26 +0000
@@ -3,25 +3,17 @@
 vim:ft=htmldjango: 
 {% endcomment %}
 
+{% load i18n %}
+
 {% block title %}
-{{ block.super }} - Change Password
+Password Reset - {{ block.super }}
 {% endblock %}
 
-{% load i18n %}
-
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">Password reset complete</h3>
-    <div class="info_line">
-        <br />
-        <div>
-            Your password has been set.  You may go ahead and log in now.
-        </div>
-        <br />
-    </div>
+<h1>Password Reset</h1>
+<div class="blogEntry">
+	<p>
+		Your new password has been set. You may go ahead and <a href="{% url auth_login %}">log in</a> now.
+	</p>
 </div>
 {% endblock %}

=== modified file 'templates/registration/password_reset_confirm.html'
--- templates/registration/password_reset_confirm.html	2011-07-04 01:14:23 +0000
+++ templates/registration/password_reset_confirm.html	2012-07-04 18:20:26 +0000
@@ -3,42 +3,51 @@
 vim:ft=htmldjango: 
 {% endcomment %}
 
+{% load i18n %}
+
 {% block title %}
-{{ block.super }} - Reset Password
+Password Reset - {{ block.super }}
 {% endblock %}
 
-{% load i18n %}
-
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">Password reset</h3>
-    <div class="info_line">
-        <br />
+<h1>Password Reset</h1>
+<div class="blogEntry">
 {% if validlink %}
-        <div class="show_center errormessage">
-            Please enter your new password twice so we can verify you typed it in correctly.
-        </div>
-        <div>
-            <br />
-            <form action="" method="post">
-                {{ form.new_password1.errors }}
-                <p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p>
-                {{ form.new_password2.errors }}
-                <p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p>
-                <p><input type="submit" value="{% trans 'Change my password' %}" /></p>
-            {% csrf_token %}
-	    </form>
-            <br />
-        </div>
+	<p>
+		Please enter your new password twice so we can verify you typed it in correctly.
+	</p>
+	<form action="." method="post">
+		<table>
+			<tr>
+				<td class="grey">
+					<label for="id_new_password1">{% trans 'New password:' %}</label>
+				</td>
+				<td>
+					{{ form.new_password1 }}
+				</td>
+				<td class="errormessage">
+					{{ form.new_password1.errors }}
+				</td>
+			</tr>
+			<tr>
+				<td class="grey">
+					<label for="id_new_password2">{% trans 'Confirm password:' %}</label>
+				</td>
+				<td>
+					{{ form.new_password2 }}
+				</td>
+				<td class="errormessage">
+					{{ form.new_password2.errors }}
+				</td>
+			</tr>
+		</table>
+		<input type="submit" value="{% trans 'Set new password' %}" />
+		{% csrf_token %}
+	</form>
 {% else %}
-        <div class="show_center errormessage">
-            The password reset link was invalid, possibly because it has already been used.  Please request a new password reset.
-        </div>
+	<p class="errormessage">
+		The password reset link was invalid, possibly because it has already been used. Please request a new password reset.
+	</p>
 {% endif %}
-    </div>
 </div>
 {% endblock %}

=== modified file 'templates/registration/password_reset_done.html'
--- templates/registration/password_reset_done.html	2010-10-30 12:17:49 +0000
+++ templates/registration/password_reset_done.html	2012-07-04 18:20:26 +0000
@@ -3,25 +3,17 @@
 vim:ft=htmldjango: 
 {% endcomment %}
 
+{% load i18n %}
+
 {% block title %}
-{{ block.super }} - Reset Password
+Password Reset - {{ block.super }}
 {% endblock %}
 
-{% load i18n %}
-
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">Password reset successful</h3>
-    <div class="info_line">
-        <br />
-        <div class="show_center errormessage">
-            We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly.
-        </div>
-        <br />
-    </div>
+<h1>Password Reset</h1>
+<div class="blogEntry">
+	<p>
+		We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly.
+	</p>
 </div>
 {% endblock %}

=== modified file 'templates/registration/password_reset_form.html'
--- templates/registration/password_reset_form.html	2011-07-04 01:14:23 +0000
+++ templates/registration/password_reset_form.html	2012-07-04 18:20:26 +0000
@@ -3,39 +3,29 @@
 vim:ft=htmldjango: 
 {% endcomment %}
 
+{% load i18n %}
+
 {% block title %}
-{{ block.super }} - Register
+Password Reset - {{ block.super }}
 {% endblock %}
 
-{% load i18n %}
-
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">Password reset</h3>
-    <div class="info_line">
-        <br />
-        <div class="show_center errormessage">
-            Forgotten your password?
-            <br />
-            Enter your e-mail address below,
-            <br />
-            and we'll e-mail instructions for setting a new one.
-        </div>
-        <div class="show_right">
-            <br />
-            <form action="" method="post">
-                {{ form.email.errors }}
-                <label for="id_email">{% trans 'E-mail address:' %}</label> {{ form.email }} 
-                <input type="submit" value="{% trans 'Reset my password' %}" />
-            {% csrf_token %}
-	    </form>
-            <br />
-        </div>
-    </div>
+<h1>Password Reset</h1>
+<div class="blogEntry">
+	<p>
+		Forgotten your password?
+	</p>
+	<p>
+		Enter your e-mail address below, and we'll e-mail instructions for setting a new one.
+	</p>
+	<form action="." method="post">
+		{% for error in form.email.errors %}
+		<p class="errormessage">{{ error }}</p>
+		{% endfor %}
+		<label for="id_email" class="grey">{% trans 'E-mail address:' %}</label> {{ form.email }}
+		<br />
+		<input type="submit" value="{% trans 'Reset my password' %}" />
+		{% csrf_token %}
+	</form>
 </div>
-
 {% endblock %}

=== modified file 'templates/registration/registration_complete.html'
--- templates/registration/registration_complete.html	2010-10-30 12:17:49 +0000
+++ templates/registration/registration_complete.html	2012-07-04 18:20:26 +0000
@@ -4,21 +4,13 @@
 {% endcomment %}
 
 {% block title %}
-{{ block.super }} - Registration complete
+Registration - {{ block.super }}
 {% endblock %}
 
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">Registration</h3>
-    <div class="info_line">
-        <br />
-        <div class="show_center errormessage">
-            Thank you for signing up. An email with the activation code has been send to your inbox. 
-        </div>
-    </div>
-</div>
+<h1>Registration</h1>
+<div class="blogEntry">
+	<p>
+		Thank you for signing up. An email with the activation code has been send to your inbox. 
+	</p>
 {% endblock %}

=== modified file 'templates/registration/registration_form.html'
--- templates/registration/registration_form.html	2011-07-04 01:14:23 +0000
+++ templates/registration/registration_form.html	2012-07-04 18:20:26 +0000
@@ -4,90 +4,62 @@
 {% endcomment %}
 
 {% block title %}
-{{ block.super }} - Register
+Registration - {{ block.super }}
 {% endblock %}
 
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">Registration</h3>
-    <div class="info_line">
-        <br />
-        <form action="{% url registration_register %}" method="POST">
-            <table>
-                <tr>
-                    <td class="show_right">Username:</td>
-                    <td class="show_left">
-                        {{ registration_form.username }}
-                        <br/>
-    {% for error in registration_form.username.errors %}
-                        <span class="errormessage">
-                            {{ error }}
-                        </span>
-    {% endfor %}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="show_right">Email:</td>
-                    <td class="show_left">
-                        {{ registration_form.email }}
-                        <br/>
-    {% for error in registration_form.email.errors %}
-                        <span class="errormessage">
-                            {{ error }}
-                        </span>
-    {% endfor %}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="show_right">Password:</td>
-                    <td class="show_left">
-                        {{ registration_form.password1 }}
-                        <br/>
-    {% for error in registration_form.password1.errors %}
-                        <span class="errormessage">
-                            {{ error }}
-                        </span>
-    {% endfor %}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="show_right">Password (again):</td>
-                    <td class="show_left">
-                        {{ registration_form.password2 }}
-                        <br/>
-     {% for error in registration_form.password2.errors %}
-                        <span class="errormessage">
-                            {{ error }}
-                        </span>
-     {% endfor %}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="show_right">Prove that you're no spambot:</td>
-                    <td class="show_left">
-                        {{ registration_form.captcha|safe }}
-                        <br/>
-     {% for error in registration_form.captcha.errors %}
-                        <span class="errormessage">
-                            {{ error }}
-                        </span>
-     {% endfor %}
-                    </td>
-                </tr>
-                <tr>
-                    <td class="show_right">&nbsp;</td>
-                    <td class="show_left">
-                        <input type="submit" value="Register" />
-                    </td>
-                </tr>
-            </table>
+<h1>Registration</h1>
+<div class="blogEntry">
+	<form action="." method="POST">
+		<table>
+			<tr>
+				<td class="grey">Username:</td>
+				<td>
+					{{ registration_form.username }}
+{% for error in registration_form.username.errors %}
+					<span class="errormessage">{{ error }}</span>
+{% endfor %}
+				</td>
+			</tr>
+			<tr>
+				<td class="grey">Email:</td>
+				<td>
+					{{ registration_form.email }}
+{% for error in registration_form.email.errors %}
+					<span class="errormessage">{{ error }}</span>
+{% endfor %}
+				</td>
+			</tr>
+			<tr>
+				<td class="grey">Password:</td>
+				<td>
+					{{ registration_form.password1 }}
+{% for error in registration_form.password1.errors %}
+					<span class="errormessage">{{ error }}</span>
+{% endfor %}
+				</td>
+			</tr>
+			<tr>
+				<td class="grey">Password (again):</td>
+				<td>
+					{{ registration_form.password2 }}
+ {% for error in registration_form.password2.errors %}
+					<span class="errormessage">{{ error }}</span>
+ {% endfor %}
+				</td>
+			</tr>
+			<tr>
+				<td class="grey">Prove that <br />you're no spambot:</td>
+				<td>
+					<div class="noshadow">{{ registration_form.captcha|safe }}</div>
+ {% for error in registration_form.captcha.errors %}
+					<span class="errormessage">{{error }}</span>
+ {% endfor %}
+				</td>
+			</tr>
+		</table>
+		<input type="submit" value="Register" />
         {% csrf_token %}
 	</form>
-        <br />
-    </div>
 </div>
 {% endblock %}

=== modified file 'templates/right_boxes.html'
--- templates/right_boxes.html	2012-02-15 06:38:44 +0000
+++ templates/right_boxes.html	2012-07-04 18:20:26 +0000
@@ -6,130 +6,100 @@
 {% endcomment %}
 {% load inbox %}
 {% load i18n %}
-{% load wlprofile wlpoll wlevents%}
+{% load wlprofile wlpoll wlevents %}
 {% load pybb_extras secure_login %}
-
-      <!-- Search Box -->
-      <h3 class="box_title">Search</h3>
-      <div class="box_content" align="center">
-         <form method="post" action="/search/">
-            <input id="id_search" type="text" name="search" maxlength="200" />
-            <input id="id_incl_wiki" type="hidden" name="incl_wiki" value="1" />
-            <input id="id_incl_news" type="hidden" name="incl_news" value="1" />
-            <input id="id_incl_maps" type="hidden" name="incl_maps" value="1" />
-            <input id="id_incl_help" type="hidden" name="incl_help" value="1" />
-            <input id="id_incl_forum" type="hidden" name="incl_forum" value="1" />
-         {% csrf_token %}
-	 </form>
-      </div>
-
-        <!-- Donation Box -->
-
-         <h3 class="box_title">Donation</h3>
-         <div class="box_content" align="center">
-            Help us to pay our Server!<br/>(: Consider a donation :) <br/><br/>
-         <div>
-            <form action="https://www.paypal.com/cgi-bin/webscr"; method="post">
-            <input type="hidden" name="cmd" value="_s-xclick" />
-            <input type="hidden" name="lc" value="GB">
-            <input type="hidden" name="hosted_button_id" value="JH5R7YHSVRMRG" />
-            <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif"; name="submit" alt="PayPal - The safer, easier way to pay online!" />
-            <img alt="" src="https://www.paypal.com/de_DE/i/scr/pixel.gif"; width="1" height="1" />
-            </form>
-         </div>
-         </div>
-
-         <!-- Login Block / User informations -->
-         {% if user.is_authenticated %}
-         <h3 class="box_title">Account</h3>
-         <div class="box_content"> 
-            <p align="center">
-            Welcome <b>{{ user|user_link }}</b>,<br />
-            you've <a href="{% url messages_inbox %}">{% inbox_count %}</a> new messages
-            </p>
-            <ul>
-                <li>
-                    <a href="{% url profile_edit %}">Edit Profile</a>
-                </li>
-                <li>
-                    <a href="{% url notification_notices %} ">Notifications</a>
-                </li>
-                <li>
-                    <a href="/accounts/logout/next={{ request.path }}">Logout</a>
-                </li>
-            </ul>
-         </div>
-         {% else %}
-         <h3 class="box_title">Login</h3>
-         <div class="box_content"> 
-         <center>
-            <a href="/accounts/login/?next={{ request.path }}">Click here to login</a><br/><br/>
-            <a href="/accounts/password/reset/">Lost password?</a><br/>
-            <a href="/accounts/register">Register now!</a><br/>
-         </center>
-         </div>
-         {% endif %}
-         <!-- Current polls if any -->
-         {% get_open_polls as polls %}
-         {% if polls %}
-         <center>
-            <h3 class="box_title">Polls</h3>
-            <div class="box_content" align="center">
-            {% for p in polls %}
-            <div class="sub_content">
-               <h4>{{p.name}}</h4>
-            {% if not user.is_anonymous %}
-               {% if p.user_has_voted %}
-                  <p>You already voted on this!</p>
-               {% else %}
-               <form method="post" action="{% url wlpoll_vote p.id %}">
-                  <table class="poll_vote">
-                     {% for c in p.choices.all %}
-                     <tr>
-                        <td><input type="radio" name="choice_id" value="{{ c.id }}" /></td>
-                        <td>{{ c.choice }}</td>
-                     </tr>
-                     {% endfor %}
-                  </table>
-                     <input type="submit" value="Vote" />
-                     {% csrf_token %}
-               </form>
-               {% endif %}
-            {% else %}
-               <p>Log in to vote!</p>
-            {% endif %}
-               <input type="button" value="Results" onclick="location='{% url wlpoll_detail p.id %}'" />
-            </div>
-            {% endfor %}
-            <a href="{% url wlpoll_archive %}">Archive</a>
-            </div>
-         </center>
-         {% endif %}
-
-         <!-- Future Events if any -->
-         {% get_future_events as events %}
-         {% if events.count %}
-         <h3 class="box_title">Important Dates</h3>
-         <div class="box_content" align="center">
-         {% for e in events %}
-            <div class="event">
-               <a href="{{e.link}}" class="link">{{e.name}}</a><br />
-               <div class="date">
-               {{e.start_date|date:"d M"}}
-               {% ifnotequal e.start_date e.end_date %}
-                  - {{e.end_date|date:"d M"}}
-               {% endifnotequal %}
-               </div>
-            </div>
-         {% endfor %}
-         </div>
-         {% endif %}
-
-         <!-- Logged in users -->
-         {%load online_users %}
-         {% online_users 10 %}
-         <h3 class="box_title">Most recently posted</h3>
-         <div class="box_content">
-	 {% pybb_last_posts %}
-         </div>
-
+{% load online_users %}
+
+
+<!-- Donation Box -->
+<div class="columnModule">
+	<h3>Donation</h3>
+	<div class="columnModuleBox center">
+		<p>
+		Help us to pay our server!
+		<br />
+		(: Consider a donation :)
+		</p>
+		<form action="https://www.paypal.com/cgi-bin/webscr"; method="post">
+			<input type="hidden" name="cmd" value="_s-xclick" />
+			<input type="hidden" name="lc" value="GB" />
+			<input type="hidden" name="hosted_button_id" value="JH5R7YHSVRMRG" />
+			<input type="image" class="donate" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif"; name="submit" alt="PayPal - The safer, easier way to pay online!" />
+			<img alt="" src="https://www.paypal.com/de_DE/i/scr/pixel.gif"; width="1" height="1" />
+		</form>
+		<br /><br />
+	</div>
+</div>
+
+
+<!-- TODO: design that -->
+<!-- Current polls if any -->
+{% get_open_polls as polls %}
+{% if polls %}
+<div class="columnModule">
+	<h3>Polls</h3>
+	<div class="columnModuleBox">
+	{% for p in polls %}
+		<h4>{{p.name}}</h4>
+		{% if not user.is_anonymous %}
+			{% if p.user_has_voted %}
+				<p class="small">You already voted on this!</p>
+				<div class="center">
+					<input type="button" value="Results" onclick="location='{% url wlpoll_detail p.id %}'" />
+				</div>
+			{% else %}
+				<form method="post" action="{% url wlpoll_vote p.id %}">
+					<ul class="poll">
+					{% for c in p.choices.all %}
+						<li><input id="{{ c.id }}" class="radio" type="radio" name="choice_id" value="{{ c.id }}" /><label for="{{ c.id }}">{{ c.choice }}</label></li>
+					{% endfor %}
+					</ul>
+					<div class="center">
+						<input type="submit" value="Vote" />
+						<input type="button" value="Results" onclick="location='{% url wlpoll_detail p.id %}'" />
+					</div>
+					{% csrf_token %}
+				</form>
+			{% endif %}
+		{% else %}
+			<p class="small"><a href="{% url auth_login %}?next={{ request.path|iriencode }}">Log in</a> to vote!</p>
+			<div class="center">
+				<input type="button" value="Results" onclick="location='{% url wlpoll_detail p.id %}'" />
+			</div>
+		{% endif %}
+	{% endfor %}
+		<div class="center">
+			<p><a href="{% url wlpoll_archive %}">Archive</a></p>
+		</div>
+	</div>
+</div>
+{% endif %}
+
+
+<!-- Future Events if any -->
+{% get_future_events as events %}
+{% if events.count %}         
+<div class="columnModule">
+	<h3>Important Dates</h3>
+	<div class="columnModuleBox">
+		<ul>
+			{% for e in events %}
+				<li>
+				{{e.start_date|date:"d M"}}
+				{% ifnotequal e.start_date e.end_date %}
+					 - {{e.end_date|date:"d M"}}
+				{% endifnotequal %}
+				- <a href="{{e.link}}">{{e.name}}</a></li>
+			{% endfor %}
+		</ul>
+	</div>
+</div>
+{% endif %}
+
+
+<!-- Logged in users -->
+{% online_users 10 %}
+
+
+<!-- Latest Post -->
+{% pybb_last_posts %}

=== modified file 'templates/sphinxdoc/app_list.html'
--- templates/sphinxdoc/app_list.html	2010-01-22 15:21:32 +0000
+++ templates/sphinxdoc/app_list.html	2012-07-04 18:20:26 +0000
@@ -1,14 +1,18 @@
-{% extends 'base.html' %}
+{% extends 'sphinxdoc/base.html' %}
 
-{% block title %}{{ block.super }} » Documentation Overview{% endblock %}
+{% block title %}Overview - {{ block.super }}{% endblock %}
 
 {% block content %}
-<div>
-    <h2 class="pagetitle">Documentation Overview</h2>
-    <ul>
-    {% for app in app_list %}
-        <li><a href="{{ app.get_absolute_url }}">{{ app.name }}</a></li>
-    {% endfor %}
-    </ul>
+<h1>Documentation Overview</h1>
+<div class="blogEntry">
+	<a href="/docs/">Documentation</a> 
+
+	<br />
+
+	<ul>
+	{% for app in app_list %}
+		<li><a href="{{ app.get_absolute_url }}">{{ app.name }}</a></li>
+	{% endfor %}
+	</ul>
 </div>
 {% endblock content %}

=== modified file 'templates/sphinxdoc/base.html'
--- templates/sphinxdoc/base.html	2010-01-22 15:21:32 +0000
+++ templates/sphinxdoc/base.html	2012-07-04 18:20:26 +0000
@@ -5,6 +5,7 @@
 {% endblock %}
 
 {% block extra_head %}
-<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/wiki.css" />{{ block.super}}
+<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/documentation.css" />
+{{ block.super}}
 {% endblock %}
 

=== modified file 'templates/sphinxdoc/documentation.html'
--- templates/sphinxdoc/documentation.html	2010-01-22 15:21:32 +0000
+++ templates/sphinxdoc/documentation.html	2012-07-04 18:20:26 +0000
@@ -1,63 +1,58 @@
 {% extends 'sphinxdoc/base.html' %}
 
+{% block title %}
+{{ app.name }} - {{ block.super }}
+{% endblock %}
+
 {% block content %}
-<div class="pagination-top">
-    » <a href="{{ app.get_absolute_url }}">{{ app.name }}</a>
-    {% for p in doc.parents %}
-    » <a href="{{ p.link }}">{{ p.title|safe }}</a>
-    {% endfor %}
-    » {{ doc.title|safe }}
-    {% if doc.prev or doc.next %}
-    <br /><br />
-    <span class="left">
-        {% if doc.prev %}
-          Prev: <a href="{{ doc.prev.link }}">{{ doc.prev.title|safe }}</a>
-        {% endif %}</span><span class="right">
-        {% if doc.next %}
-          Next: <a href="{{ doc.next.link }}">{{ doc.next.title|safe }}</a>
-        {% endif %}</span>
-    {% endif %}
-</div>
-
-<div class="sphinx">
-    {% block doc_body %}
-    {{ doc.body|safe }}    
-    {% endblock %}
-</div>
-
-<div class="pagination-bottom">
-    {% if doc.prev or doc.next %}
-    <span class="left">
-        {% if doc.prev %}
-          Prev: <a href="{{ doc.prev.link }}">{{ doc.prev.title|safe }}</a>
-        {% endif %}</span><span class="right">
-        {% if doc.next %}
-          Next: <a href="{{ doc.next.link }}">{{ doc.next.title|safe }}</a>
-        {% endif %}</span>
-    <br /><br />
-    {% endif %}
-    » <a href="{{ app.get_absolute_url }}">{{ app.name }} documentation</a>
-    {% for p in doc.parents %}
-    » <a href="{{ p.link }}">{{ p.title|safe }}</a>
-    {% endfor %}
-    » {{ doc.title|safe }}
-    <br /><br />
-    Last update: {{ update_date|date:"Y-m-d H:i" }} (<a href="http://www.timeanddate.com/worldclock/city.html?n=37";>CET</a>)
+<h1>Documentation: {{ app.name }}</h1>
+<div class="blogEntry">
+	<a href="/docs/">Documentation</a> 
+	» <a href="{{ app.get_absolute_url }}">{{ app.name }}</a>
+	{% for p in doc.parents %}
+	» <a href="{{ p.link }}">{{ p.title|safe }}</a>
+	{% endfor %}
+	» {{ doc.title|safe }}
+	{% if doc.prev or doc.next %}
+	<br /><br />
+	<div class="posLeft">
+		{% if doc.prev %}
+		Prev: <a href="{{ doc.prev.link }}">{{ doc.prev.title|safe }}</a>
+		{% endif %}
+	</div>
+	<div class="posRight">
+		{% if doc.next %}
+		Next: <a href="{{ doc.next.link }}">{{ doc.next.title|safe }}</a>
+		{% endif %}
+	</div>
+	{% endif %}
+
+	<br /><br />
+
+	<div class="sphinx">
+		{% block doc_body %}
+		{{ doc.body|safe }}    
+		{% endblock %}
+	</div>
+
+	<br />
+
+	<div class="pagination-bottom">
+		{% if doc.prev or doc.next %}
+		<div class="posLeft">
+			{% if doc.prev %}
+			Prev: <a href="{{ doc.prev.link }}">{{ doc.prev.title|safe }}</a>
+			{% endif %}
+		</div>
+		<div class="posRight">
+			{% if doc.next %}
+			Next: <a href="{{ doc.next.link }}">{{ doc.next.title|safe }}</a>
+			{% endif %}
+		</div>
+		<br />
+		{% endif %}
+		<hr />
+		<span class="small">Last update: {{ update_date|date:"Y-m-d H:i" }} (<a href="http://www.timeanddate.com/worldclock/city.html?n=37";>CET</a>)</span>
+	</div>
 </div>
 {% endblock content %}
-
-{% block sidebar %}
-    {% block doc_toc %}
-<div class="box">
-    <h2>Contents</h2>
-    {{ doc.toc|safe }}
-</div>
-    {% endblock %}
-<div class="box">
-    <h2>Search</h2>
-    <em>Not yet implemented</em>
-    {# {% load docs %} #}
-    {# {% search_form %} #}
-</div>
-    {{ block.super }}
-{% endblock sidebar %}

=== modified file 'templates/threadedcomments/inlines/comments.html'
--- templates/threadedcomments/inlines/comments.html	2011-07-04 01:14:23 +0000
+++ templates/threadedcomments/inlines/comments.html	2012-07-04 18:20:26 +0000
@@ -5,65 +5,53 @@
 {% load wlprofile %}
 {% load threadedcommentstags %}
 
-    {% get_threaded_comment_form as form %}
-    {% include "threadedcomments/inlines/reply_to.js" %}
-  
-    {% get_threaded_comment_tree for object as tree %}
-    {% for comment in tree %}
-        {% if comment.user.wlprofile.avatar %}
-        <div style="margin-left: {{ comment.depth }}em; min-height: 80px;" class="comment {% cycle "odd" "even" %}"> 
-            <span class="avatar" style="margin: 2px; margin-right: 10px; float: left;">
-                <a href="{% url profile_view comment.user %}">
-                <img src="{{ comment.user.wlprofile.avatar.url }}" />
-                </a>
-            </span>
-        {% else %}
-        <div style="margin-left: {{ comment.depth }}em;" class="comment {% cycle "odd" "even" %}">
-        {% endif %}
-            <p class="author">{{ comment.user|user_link }} said:</p>
-            {% auto_transform_markup comment %}
-            {% if user.is_authenticated %}
-            <p><a id="c{{ comment.id }}" href="javascript:show_reply_form('c{{ comment.id }}','{% get_comment_url object comment %}','{{ comment.user.username }}')">Reply</a></p>
-            {% endif %}
-        </div>
-    {% endfor %}
-    <br />
+	{% get_threaded_comment_form as form %}
+	{% include "threadedcomments/inlines/reply_to.js" %}
+
+	{% get_threaded_comment_tree for object as tree %}
+	{% for comment in tree %}
+		<div id="c{{ comment.id }}" class="comment {% cycle "odd" "even" %}" style="margin-left: {{ comment.depth }}cm;">
+			<table>
+				<tr>
+					<td class="author" rowspan="2">
+						<a href="{% url profile_view comment.user %}">
+							<img style="width: 50px; height: 50px;" src="{{ comment.user.wlprofile.avatar.url }}" />
+						</a>
+						<br />
+						<span class="small">{{ comment.user|user_link }}</span>
+					</td>
+					<td class="text">
+						{% auto_transform_markup comment %}
+					</td>
+				</tr>
+				<tr>
+					<td class="reply_link small">
+						{% if user.is_authenticated %}
+						<a href="javascript:show_reply_form('c{{ comment.id }}','{% get_comment_url object comment %}', {{ comment.depth }})">Reply</a>
+						{% endif %}
+					</td>
+				</tr>
+			</table>
+		</div>
+	{% endfor %}
+
 	<br />
-	<div class="box_item_model fixed_site border">
-    {% if user.is_authenticated %}
-        <h3 class="title">Reply to Original:</h3>
-        <form method="POST" action="{% get_comment_url object %}?next={{object.get_absolute_url}}">
-            <div class="content">
-                <table class="text full_site">
-                    <tr>
-                        <td width="99%">
-                            <span class="errormessage">{{ form.comment.errors }}</span>
-                            {{ form.comment }}
-                        </td>
-                        <td width="1%"></td>
-                    </tr>
-                </table>
-            </div>
-            <table class="info_line full_site">
-                <tr>
-                    <td class="show_center">
-                        <input type="hidden" name="markup" value="1" />
-                        <input type="hidden" value="next" value="{{ object.get_absolute_url }}" />
-                        <input type="submit" value="Submit Comment" />
-                    </td>
-                </tr>
-            </table>
-            {% csrf_token %}
+
+	<h3 class="title">Reply to Original:</h3>
+	{% if user.is_authenticated %}        
+	<form method="POST" action="{% get_comment_url object %}?next={{object.get_absolute_url}}">
+		<span class="errormessage">{{ form.comment.errors }}</span>
+		{{ form.comment }}
+		<br />
+		<input type="hidden" name="markup" value="1" />
+		<input type="hidden" value="next" value="{{ object.get_absolute_url }}" />
+		<input type="submit" value="Submit Comment" />
+		{% csrf_token %}
 	</form>
-    {% else %}
-        <h3 class="title">Comments</h3>
-        <div class="info_line errormessage show_center">
-            <br /> 
-            !!! Log in to post comments !!!
-            <br /> 
-            <br /> 
-        </div>
-    {% endif %}
-    </div>
+	{% else %}
+	<p>
+		<a href="{% url auth_login %}?next={{ request.path }}">Log in</a> to post comments!
+	</p>
+	{% endif %}
 
 

=== modified file 'templates/threadedcomments/inlines/reply_to.js'
--- templates/threadedcomments/inlines/reply_to.js	2011-09-11 18:09:48 +0000
+++ templates/threadedcomments/inlines/reply_to.js	2012-07-04 18:20:26 +0000
@@ -2,42 +2,50 @@
     vim:ft=htmldjango:
 {% endcomment %}
 {% load threadedcommentstags %}
+{% load wlprofile %}
 
 <script type="text/javascript">
-<!--
-function show_reply_form(comment_id, url, person_name) {
-    var comment_reply = $('#' + comment_id);
-    var to_add = $( new Array(
-    '<div class="response"><p>Reply to ' + person_name + ':</p>',
-    '<form method="POST" action="' + url + '?next={{object.get_absolute_url}}">',
-    '<div class="comment_post">',  '<div class="comment text"> <span class=errorclass">{{ form.comment.errors }}</span>{{ form.comment }}',  
-    '</div> <input type="hidden" name="markup" value="1" />',
-        '<input type="submit" value="Submit Comment" />',
-        '</div>', "{% csrf_token %}", '</form>', '</div>').join(''));
-    to_add.css("display", "none");
-    comment_reply.after(to_add);
-    to_add.slideDown(function() {
-        comment_reply.replaceWith(new Array('<a id="',
-        comment_id,'" href="javascript:hide_reply_form(\'',
-        comment_id, '\',\'', url, '\',\'', person_name,
-        '\')">Stop Replying</a>').join(''));
-    });
+function show_reply_form(comment_id, url, depth) {
+	var comment = $('#' + comment_id);
+	var reply_link = $('#' + comment_id + " .reply_link");
+	var reply_form = $('<div class="comment odd response" style="margin-left: ' + (depth+1) +'cm;">'
+			+ '<table>'
+				+ '<tr>'
+					+ '<td class="author">'
+						+ '<a href="{% url profile_view user %}">'
+							+ '<img style="width: 50px; height: 50px;" src="{{ user.wlprofile.avatar.url }}" />'
+						+ '</a>'
+						+ '<br />'
+						+ '<span class="small">{{ user|user_link }}</span>'
+					+ '</td>'
+					+ '<td class="text">'
+						+ '<form method="POST" action="' + url + '?next={{object.get_absolute_url}}">'
+							+ '<span class="errormessage">{{ form.comment.errors }}</span>'
+							+ '{{ form.comment }}'
+							+ '<br />'
+							+ '<input type="hidden" name="markup" value="1" />'
+							+ '<input type="submit" value="Submit Comment" />'
+							+ '<button type="button" onclick="javascript:hide_reply_form(\''+comment_id+'\', \''+url+'\', '+depth+')">Cancel</button>'
+							+ "{% csrf_token %}"
+							+ '</form>'
+					+ '</td>'
+				+ '</tr>'
+			+ '</table>'
+		+ '</div>');
+	reply_form.css("display", "none");
+	comment.after(reply_form);
+	reply_link.html('<a href="javascript:hide_reply_form(\''+comment_id+'\', \''+url+'\', '+depth+')">Stop Replying</a>');
+	reply_form.slideDown(function() {});
+}
 
-    check_posting();
-}
-function hide_reply_form(comment_id, url, person_name) {
-    var comment_reply = $('#' + comment_id);
-    comment_reply.next().slideUp(function (){
-        comment_reply.next('.response').remove();
-        comment_reply.replaceWith(new Array('<a id="',
-        comment_id,'" href="javascript:show_reply_form(\'',
-        comment_id, '\',\'', url, '\',\'', person_name,
-        '\')">Reply</a>').join(''));
-    });
-    
-   check_posting();
-}
--->
+function hide_reply_form(comment_id, url, depth) {
+	var comment = $('#' + comment_id);
+	var reply_link = $('#' + comment_id + " .reply_link");
+	reply_link.html('<a href="javascript:show_reply_form(\''+comment_id+'\', \''+url+'\', '+depth+')">Reply</a>');
+	comment.next('.response').slideUp(function() {
+		comment.next('.response').remove();
+	});
+}
 </script>
 
 

=== modified file 'templates/threadedcomments/preview_comment.html'
--- templates/threadedcomments/preview_comment.html	2011-07-04 01:14:23 +0000
+++ templates/threadedcomments/preview_comment.html	2012-07-04 18:20:26 +0000
@@ -2,28 +2,25 @@
 
 {% load threadedcommentstags %}
 
+{% block extra_head %}
+{{ block.super }}
+<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/comments.css" />
+{% endblock %}
+
 {% block content %}
-    {% if comment %}
-        <div id="comment_preview">{% auto_transform_markup comment %}</div>
-    {% endif %}
-   <form method="POST" action="">
-        <div class="content">
-            <table class="text" width="100%">
-                <tr>
-                    <td width="99%">
-                        <span class="errormessage">{{ form.comment.errors }}</span>
-                        {{ form.comment }}
-                    </td>
-                    <td width="1%"></td>
-                </tr>
-                <tr>
-                    <td class="bottom_line show_center">
-                        <input type="hidden" name="markup" value="1" />
-                        <input type="submit" value="Submit Comment" />
-                    </td>
-                </tr>
-            </table>
-        </div>
-        {% csrf_token %}
-    </form>
+<h1>Comment</h1>
+<div class="blogEntry">
+	{% if comment %}
+		<h3>Preview:</h3>
+		<div id="comment_preview">{% auto_transform_markup comment %}</div>
+	{% endif %}
+	<form method="POST" action=".">
+		<span class="errormessage">{{ form.comment.errors }}</span>
+		{{ form.comment }}
+		<br />
+		<input type="hidden" name="markup" value="1" />
+		<input type="submit" value="Submit Comment" />
+		{% csrf_token %}
+	</form>
+</div>
 {% endblock %}

=== modified file 'templates/wiki/base.html'
--- templates/wiki/base.html	2009-03-29 09:34:30 +0000
+++ templates/wiki/base.html	2012-07-04 18:20:26 +0000
@@ -5,7 +5,8 @@
 {% endblock %}
 
 {% block extra_head %}
+{{ block.super}}
 <link rel="alternate" type="application/rss+xml" title="Wiki History (RSS)" href="{% url wiki_history_feed "rss" %}" />
 <link rel="alternate" type="application/atom+xml" title="Wiki History (Atom)" href="{% url wiki_history_feed "atom" %}" />
-<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/wiki.css" />{{ block.super}}
+<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/wiki.css" />
 {% endblock %}

=== modified file 'templates/wiki/changeset.html'
--- templates/wiki/changeset.html	2010-01-03 21:51:19 +0000
+++ templates/wiki/changeset.html	2012-07-04 18:20:26 +0000
@@ -2,27 +2,28 @@
 {% load i18n %}
 
 {% block title %}
-Changes in {{ article_title }} - {{ block.super }}
+{% trans "Changes in" %} {{ article.title }} - {{ block.super }}
 {% endblock %}
 
 {% block content %}
-   <div align="right">
-         <a href="{% url wiki_article article.title %}">{% trans "Back to article" %}</a>
-         |
-         <a href="{% url wiki_article_history article.title %}">{% trans "Editing history" %}</a>
-   </div>
-	<h1> <a href="{% url wiki_article article_title %}"> {{ article_title }} </a> </h1>
-    {% if changeset.old_title %}
-        <h2> {{ changeset.old_title }} </h2>
-    {% endif %}
-    {% if changeset.comment %}
-    <div class="comment">
-    <p>Editor comment:<br />
-    {{changeset.comment}}</p>
-    </div>
-    {%endif %}
-    <h3>Revision differences</h3>
-    <div class="changeset_content">
-    {{ changeset.display_diff|safe }}
-    </div>
+<div class="posRight small">
+	<a href="{% url wiki_article article.title %}" class="invertedColor">{% trans "Back to article" %}</a>
+	| <a href="{% url wiki_article_history article.title %}" class="invertedColor">{% trans "Editing history" %}</a>
+</div>
+<h1>{% trans "Changes in" %} {{ article.title }}</h1>
+
+<div class="blogEntry">
+	{% if changeset.old_title %}
+		<h3>{% trans "Old title" %}</h3>
+		<p>{{ changeset.old_title }}</p>
+		<br />
+	{% endif %}
+	{% if changeset.comment %}
+		<h3>Editor comment</h3>
+		<p>{{changeset.comment}}</p>
+		<br />
+	{%endif %}
+	<h3>Revision differences</h3>
+	{{ changeset.display_diff|safe }}
+</div>
 {% endblock %}

=== modified file 'templates/wiki/edit.html'
--- templates/wiki/edit.html	2011-07-04 01:14:23 +0000
+++ templates/wiki/edit.html	2012-07-04 18:20:26 +0000
@@ -3,141 +3,126 @@
 {% load wlimages %}
 
 {% block title %}
-{% trans "Editing article" %} - {{ block.super }}
+{% trans "Editing" %} {{ article.title }} - {{ block.super }}
 {% endblock %}
 
 {% block extra_head %}
-<script type="text/javascript" src="/wlmedia/js/disableOnSubmit.js"></script>
+<script type="text/javascript" src="{{ MEDIA_URL }}/js/disableOnSubmit.js"></script>
 <script type="text/javascript">
-   $(function() {
-         $('form').disableOnSubmit();
-   });
+	$(function() {
+		$('form').disableOnSubmit();
+	});
+
+	$(document).ready(function() {
+		// Insert rendered markup for preview
+		$("#id_preview").click(function(){ 
+			// Activate preview
+			$("#preview").html("<h3>Preview</h3>\n<hr>\n<div class=\"wiki_article\" id=\"content_preview\">Loading...</div>\n<hr>");
+			$("#content_preview").load( "{% url wiki_preview %}", 
+				{"body": $("#id_content").val()});
+		})
+
+	{% ifequal new_article 0 %} 
+		// Insert diff  
+		$("#id_diff").click(function(){ 
+			// Activate preview
+			$("#diff").html("<h3>Diff</h3>\n<hr>\n<div id=\"content_diff\">Loading...</div>\n<hr>");
+			$("#content_diff").load( "{% url wiki_preview_diff %}", 
+				{"body": $("#id_content").val(), "article": {{ object_id }} });
+		})
+	{%endifequal%}
+	});
 </script>
-
 {{ block.super }}
 {% endblock %}
 
 {% block content %}
-   <script type="text/javascript">
-      $(document).ready(
-            function() {
-               // Insert rendered markup for preview
-               $("#id_preview").click(function(){ 
-                  // Activate preview
-                  $("#preview").html("<h1>Preview</h1>\n<hr>\n<div class=\"wiki_article\" id=\"content_preview\">Loading...</div>\n<hr>");
-                  
-                  $("#content_preview").load( "{% url wiki_preview %}", 
-                     {"body": $("#id_content").val(),
-                     });
-               })
-               
-               {% ifequal new_article 0 %} 
-               // Insert diff  
-               $("#id_diff").click(function(){ 
-                  // Activate preview
-                  $("#diff").html("<h1>Diff</h1>\n<hr>\n<div id=\"content_diff\">Loading...</div>\n<hr>");
-                  
-                  $("#content_diff").load( "{% url wiki_preview_diff %}", 
-                     {"body": $("#id_content").val(),
-                     "article": {{ object_id }}, 
-                     });
-               })
-               {%endifequal%}
-            }
-            );
-   </script>
-    {% if not new_article %} 
-    <div align="right">
-         <a href="{% url wiki_article article.title %}">{% trans "Back to article" %}</a>
-         |
-         <a href="{% url wiki_article_history article.title %}">{% trans "Editing history" %}</a>
-   </div>
-    {% endif %}
-
-	<h1>{% trans "Edit" %}</h1>
-   
-   <p>
-   You can edit the wiki pages contents using the Syntax described on the 
-   <a href="/wiki/WikiSyntax">WikiSyntax</a>.
-   </p>
-
-   <div id="preview"></div>
-
-   <div id="diff"></div>
-
-   <form action="" method="post">
-      <table id="edit_wiki_page_form">
-         <!-- Title -->
-         <tr>
-            <th><label for="id_title">{% trans "Title" %}:</label></th>
-            <td>{{ form.title.errors }}{{ form.title }}</td>
-         </tr>
-         
-         <!-- Content -->
-         <tr><th colspan="2"><label for="id_content">{% trans "Content" %}:</label></th></tr>
-         <tr><td colspan="2" >{{ form.content.errors }}{{ form.content }}</td></tr>
-         
-         <!-- Summary -->
-         <tr><th colspan="2"><label for="id_summary">{% trans "Page Summary" %}:</label></th></tr>
-         <tr><td colspan="2" >{{ form.summary.errors }}{{ form.summary }}</td></tr>
-         
-         <!-- Comment -->
-         <tr><th colspan=2><label for="id_comment">{% trans "Comment for this revision" %}:</label></th></tr>
-         <tr><td colspan=2 >{{ form.comment.errors }}{{ form.comment }}</td></tr>
-         
-      </table>
-         <!-- Markup as hidden element -->
-         <input type="hidden" name="markup" value="mrk" />
-         {{ form.content_type }}
-         {{ form.object_id }}
-         {{ form.action }}
-         {{ form.user_ip }}
-      
-		<div class="submit">
+{% if not new_article %} 
+<div class="posRight small">
+	<a href="{% url wiki_article article.title %}" class="invertedColor">{% trans "Back to article" %}</a>
+	|
+	<a href="{% url wiki_article_history article.title %}" class="invertedColor">{% trans "Editing history" %}</a>
+</div>
+{% endif %}
+<h1>{% trans "Editing" %} {{ article.title }}</h1>
+
+<div class="blogEntry">
+	<p>
+	You can edit the wiki pages contents using the syntax described on the <a href="/wiki/WikiSyntax">WikiSyntax</a>.
+	</p>
+
+	<div id="preview"></div>
+
+	<div id="diff"></div>
+
+	<form action="." method="post">
+		<table id="edit_wiki_page_form">
+			<!-- Title -->
+			<tr>
+				<th><label for="id_title">{% trans "Title" %}:</label></th>
+				<td>{{ form.title.errors }}{{ form.title }}</td>
+			</tr>
+			<!-- Content -->
+			<tr><th colspan="2"><label for="id_content">{% trans "Content" %}:</label></th></tr>
+			<tr><td colspan="2" >{{ form.content.errors }}{{ form.content }}</td></tr>
+			<!-- Summary -->
+			<tr><th colspan="2"><label for="id_summary">{% trans "Page Summary" %}:</label></th></tr>
+			<tr><td colspan="2" >{{ form.summary.errors }}{{ form.summary }}</td></tr>
+			<!-- Comment -->
+			<tr><th colspan=2><label for="id_comment">{% trans "Comment for this revision" %}:</label></th></tr>
+			<tr><td colspan=2 >{{ form.comment.errors }}{{ form.comment }}</td></tr>
+		</table>
+		<!-- Markup as hidden element -->
+		<input type="hidden" name="markup" value="mrk" />
+		{{ form.content_type }}
+		{{ form.object_id }}
+		{{ form.action }}
+		{{ form.user_ip }}
+
+		<div>
 			<input id="id_preview" type="button" value="{% trans "Preview" %}" />
-         {% ifequal new_article 0 %}
+		{% ifequal new_article 0 %}
 			<input id="id_diff" type="button" value="{% trans "Diff" %}" />
-         {% endifequal %}
-         <br/>
+		{% endifequal %}
 			<input type="submit" value="{% trans "Save" %}" />
 		</div>
-   {% csrf_token %}
-   </form> 
-   
-   
-   {% if new_article %}
-      <h2>Images</h2>
-      You must save the article once before you can attach images to it
-   {% else %}
-      {% if images.count %}
-         <h2>Images</h2>
-         Images attached to this article:
-         <table width="100%">
-         <tr>
-            <th>Image Title</th>
-            <th>Image</th>
-            <th>Code to include</th>
-         </tr>
-         {% for img in images %}
-         <tr>
-            <td>{{ img.name }}</td>
-            <td><img src="{{ img.url }}"></td>
-            <td>![{{img.name}}]({{ img.url }})</td>
-         </tr>
-         {% endfor %}
-         </table>
-      {%endif%}
-
-      {% get_upload_form as iform %}
-      <form  enctype="multipart/form-data" action="/images/upload/{{content_type}}/{{object_id}}/{{request.path}}" method="POST">
-           {{ iform.as_p }}
-         <div class="submit">
-            <input type="submit" value="{% trans "Upload Image" %}" />
-         </div>
-         {% csrf_token %}
-      </form>
-   
-   {% endif%}
-
+		{% csrf_token %}
+	</form> 
+	<br />
+	<h3>Images</h3>
+	{% if new_article %}
+		You must save the article once before you can attach images to it.
+	{% else %}
+		{% if images.count %}
+		Images attached to this article:
+		<table width="100%">
+		<thead>
+			<tr>
+				<th>Image Title</th>
+				<th>Image</th>
+				<th>Code to include</th>
+			</tr>
+		</thead>
+		<tbody>
+			{% for img in images %}
+			<tr>
+				<td>{{ img.name }}</td>
+				<td><img src="{{ img.url }}"></td>
+				<td>![{{img.name}}]({{ img.url }})</td>
+			</tr>
+			{% endfor %}
+		</tbody>
+		</table>
+		{%endif%}
+
+		{% get_upload_form as iform %}
+		<form enctype="multipart/form-data" action="/images/upload/{{content_type}}/{{object_id}}/{{request.path|iriencode}}" method="POST">
+			{{ iform.as_p }}
+			<div>
+				<input type="submit" value="{% trans "Upload Image" %}" />
+			</div>
+			{% csrf_token %}
+		</form>
+	{% endif%}
+</div>
 {% endblock %}
-

=== modified file 'templates/wiki/history.html'
--- templates/wiki/history.html	2009-03-28 19:37:44 +0000
+++ templates/wiki/history.html	2012-07-04 18:20:26 +0000
@@ -4,59 +4,55 @@
 
 
 {% block title %}
-{% trans "History for" %} {{ article.title }} - {{ block.super }}
+{% trans "Article History of" %} {{ article.title }} - {{ block.super }}
 {% endblock %}
 
 {% block content %}
-<div align="right">
-   <a href="{% url wiki_article article.title %}">{% trans "Back to article" %}</a>
-</div>
-
-<h1>
-  <a href="{{ article.get_absolute_url }}"> {{ article.title }} </a>
-</h1>
-
-<h2> {% trans "Article History" %} </h2>
-
-<form action="{% url wiki_revert_to_revision article.title %}" method="post">
-  <table class="history_list">
-    <tr>
-	  <th>{% trans "At" %}</th>
-	  <th>{% trans "User" %}</th>
-	  <th>{% trans "Comment" %}</th>
-	  <th>{% trans "Revert" %}</th>
-    </tr>
-    {% for change in changes %}
-    <tr class="{% cycle 'odd' 'even' %}">
-    	<td><a href="{{ change.get_absolute_url }}">
-    		{{ change.modified|custom_date:user }}</a>
-        </td>
-    	<td>
-        {% if change.is_anonymous_change %}
-            {{ change.editor_ip }}
-        {% else %}
-            <a href="{% url wiki_article change.editor %}">{{ change.editor }}</a>
-        {% endif %}
-        </td>
-        <td>
-          {% if change.comment %}<i>'{{ change.comment}}'</i> {% endif %}
-        </td>
-        <td>
-            {% if forloop.first %}
-                {% trans "Current revision" %}
-            {% else %}
-                 <input id="id_revision" name="revision"
-                        type="radio" value="{{ change.revision }}" />
-            {% endif %}
-        </td>
-    </tr>
-    {% endfor %}
-  </table>
-
-  <input type="submit" value="{% trans "Revert" %}" />
-
-</form>
-
-<a href="{% url wiki_article_history_feed title=article.title,feedtype="atom" %}">Atom Feed</a>
-  
+<div class="posRight small">
+	<a href="{% url wiki_article article.title %}" class="invertedColor">{% trans "Back to article" %}</a>
+	| <a href="{% url wiki_article_history_feed title=article.title,feedtype="atom" %}"  class="invertedColor">Atom Feed</a>
+</div>
+<h1>{% trans "Article History of" %} {{ article.title }}</h1>
+
+<div class="blogEntry">
+	<form action="{% url wiki_revert_to_revision article.title %}" method="post">
+		<table class="history_list">
+		<thead>
+			<tr>
+				<th>{% trans "At" %}</th>
+				<th>{% trans "User" %}</th>
+				<th>{% trans "Comment" %}</th>
+				<th>{% trans "Revert" %}</th>
+			</tr>
+		</thead>
+		<tbody>
+			{% for change in changes %}
+			<tr class="{% cycle 'odd' 'even' %}">
+				<td><a href="{{ change.get_absolute_url }}">
+					{{ change.modified|custom_date:user }}</a>
+				</td>
+				<td>
+				{% if change.is_anonymous_change %}
+					{{ change.editor_ip }}
+				{% else %}
+					<a href="{% url wiki_article change.editor %}">{{ change.editor }}</a>
+				{% endif %}
+				</td>
+				<td>
+					{% if change.comment %}<i>'{{ change.comment}}'</i> {% endif %}
+				</td>
+				<td>
+					{% if forloop.first %}
+						{% trans "Current revision" %}
+					{% else %}
+						 <input id="id_revision" name="revision" type="radio" value="{{ change.revision }}" />
+					{% endif %}
+				</td>
+			</tr>
+			{% endfor %}
+		</tbody>
+		</table>
+		<input type="submit" value="{% trans "Revert" %}" />
+	</form>
+</div>
 {% endblock %}

=== modified file 'templates/wiki/index.html'
--- templates/wiki/index.html	2009-02-25 16:39:09 +0000
+++ templates/wiki/index.html	2012-07-04 18:20:26 +0000
@@ -1,13 +1,11 @@
 {% extends "wiki/base.html" %}
 {% load i18n %}
 
- 
-
 {% block title %}Wiki Index - {{ block.super }}{% endblock %}
 
 {% block content %}
-	<h1>Wiki Index</h1>
-
+<h1>Wiki Index</h1>
+<div class="blogEntry">
 	{% if articles %}
 		<ul>
 			{% for article in articles %}
@@ -17,4 +15,5 @@
 	{% else %}
         <p><a href="{% url wiki_edit "NewArticle" %}">{% trans "Create a new article" %}</a>.</p>
 	{% endif %}
+</div>
 {% endblock %}

=== modified file 'templates/wiki/view.html'
--- templates/wiki/view.html	2009-03-29 09:34:30 +0000
+++ templates/wiki/view.html	2012-07-04 18:20:26 +0000
@@ -6,7 +6,6 @@
 {{ article.title }} - {{block.super}}
 {% endblock %}
 
-
 {% block extra_head %}
 <link rel="alternate" type="application/rss+xml" title="Wiki History for article {{ article.title }} (RSS)" href="{% url wiki_article_history_feed article.title "rss" %}" />
 <link rel="alternate" type="application/atom+xml" title="Wiki History for article {{ article.title }} (Atom)" href="{% url wiki_article_history_feed article.title "atom" %}" />
@@ -14,30 +13,32 @@
 {% endblock %}
 
 {% block content %}
-   <div class="wiki_article">
-       <div align="right">
-        {% if article.id %}
-            <a href="{% url wiki_edit article.title %}">{% trans "Edit this article" %}</a>
-            |
-            <a href="{% url wiki_article_history article.title %}">{% trans "Editing history" %}</a>
-            {% if can_observe %}
-               | 
-               {% if is_observing %} 
-                  <a href="{% url wiki_stop_observing article.title %}">{% trans "Stop observing" %}</a>
-               {% else %}
-                  <a href="{% url wiki_observe article.title %}">{% trans "Observe" %}</a>
-               {% endif %}
-            {% endif %}
-        {% else %}
-            <a href="{% url wiki_edit article.title %}">{% trans "Create this article" %}</a>
-        {% endif %}
-       </div>
-        {% if not article.id %}
-            <p>{% trans "This article does not exist." %}
-            <a href="{% url wiki_edit article.title %}">{% trans "Create it now?" %}</a></p>
-        {% endif %}
-        
-        {% render_content article %}
-    </div>
+<div class="posRight small">
+	{% if article.id %}
+		<a class="invertedColor" href="{% url wiki_edit article.title %}">{% trans "Edit this article" %}</a>
+		|
+		<a class="invertedColor" href="{% url wiki_article_history article.title %}">{% trans "Editing history" %}</a>
+		{% if can_observe %}
+			| 
+			{% if is_observing %} 
+			<a class="invertedColor" href="{% url wiki_stop_observing article.title %}">{% trans "Stop observing" %}</a>
+			{% else %}
+			<a class="invertedColor" href="{% url wiki_observe article.title %}">{% trans "Observe" %}</a>
+			{% endif %}
+		{% endif %}
+	{% else %}
+		<a href="{% url wiki_edit article.title %}">{% trans "Create this article" %}</a>
+	{% endif %}
+</div>
+<h1>{{ article.title }}</h1>
+<div class="blogEntry">
+	{% if not article.id %}
+		<p>
+			{% trans "This article does not exist." %}
+			<a href="{% url wiki_edit article.title %}">{% trans "Create it now?" %}</a>
+		</p>
+	{% endif %}
+	{% render_content article %}
+</div>
 {% endblock %}
 

=== modified file 'templates/wlggz/edit_ggz.html'
--- templates/wlggz/edit_ggz.html	2011-07-04 01:14:23 +0000
+++ templates/wlggz/edit_ggz.html	2012-07-04 18:20:26 +0000
@@ -1,44 +1,26 @@
-{% extends "wlggz/base.html" %}
+{% extends "base.html" %}
 
 {% load i18n %}
 
+{% block title %}
+{% trans "Set Online Gaming Password" %} - {{ block.super }}
+{% endblock %}
+
 {% block content %}
-{% include "django_messages/inlines/navigation.html" %}
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">{% trans "Set GGZ password" %}</h3>
-    <form method="post" enctype="multipart/form-data">
-        <div class="content">
-            <table cellspacing="1" class="text full_site">
-            {% if profile_form.errors %}
-                <tr>
-                    <td class="even" colspan="2">{{ profile_form.errors }}</td>
-                </tr>
-            {% endif %}
-            {% for field in ggz_form %}
-                <tr>
-                {% if field.errors %}
-                    <td colspan="2" class="{% cycle "odd" "even" %}">
-                        <div class="errormessage">{{ field.errors }}</div>
-                    </td>
-                </tr>
-                <tr>
-                {% endif %}
-                    <td class="{% cycle "odd" "even" %}">{{ field.label_tag }}:</td>
-                    <td class="{% cycle "odd" "even" %}">{{ field }}                 
-                    {% ifequal field.name "time_display" %}
-                        <a href="/wiki/HomepageDocuTimeDisplay">Documented here</a>
-                    {% endifequal %}
-                    </td>
-                </tr>
-            {% endfor %}
-            </table>
-        </div>
-        <div class="info_line">
-            <input type="submit" value="{% trans "Save" %}" />
-        </div>
-        {% csrf_token %}
-    </form>
+<h1>{% trans "Set Online Gaming Password" %}</h1>
+<div class="blogEntry">    
+	<form method="post" enctype="multipart/form-data" action=".">
+		<table>
+		{% for field in ggz_form %}
+			<tr>
+				<td class="grey">{{ field.label_tag }}:</td>
+				<td>{{ field }}</td>
+				<td class="errormessage">{{ field.errors }}</td>
+			</tr>
+		{% endfor %}
+		</table>
+		<input type="submit" value="{% trans "Save" %}" />
+		{% csrf_token %}
+	</form>
 </div>
 {% endblock %}

=== added directory 'templates/wlhelp'
=== added file 'templates/wlhelp/base.html'
--- templates/wlhelp/base.html	1970-01-01 00:00:00 +0000
+++ templates/wlhelp/base.html	2012-07-04 18:20:26 +0000
@@ -0,0 +1,10 @@
+{% extends "base.html" %}
+
+{% block title %}
+Encyclopedia - {{ block.super }}
+{% endblock %}
+
+{% block extra_head %}
+<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/help.css" />
+{{ block.super}}
+{% endblock %}
\ No newline at end of file

=== renamed file 'online_help/templates/building_details.html' => 'templates/wlhelp/building_details.html'
--- online_help/templates/building_details.html	2010-11-02 14:02:06 +0000
+++ templates/wlhelp/building_details.html	2012-07-04 18:20:26 +0000
@@ -1,18 +1,64 @@
-{% extends "base.html" %}
+{% extends "wlhelp/base.html" %}
 {% comment %}
    vim:ft=htmldjango
 {% endcomment %}
 
+{% block title %}
+{{ building.displayname }} - {{ tribe.displayname }} - {{ block.super }}
+{% endblock %}
 
 {% block content %}
-
-
-<center>
-<img src="{{ building.graph_url }}" usemap="#G" alt="Graph for {{ building.name }}" />
-
-{{ building.imagemap|safe }}
-</center>
-
-Return to the <a href="../">Building overview/<a>.
-
+<h1>{{ tribe.displayname }}: {{ building.displayname }}</h1>
+<div class="blogEntry">
+	<a href="{% url wlhelp_index %}">Encyclopedia</a> &#187;
+	<a href="{% url wlhelp_tribe_details tribe.name %}">{{ tribe.displayname }}</a> &#187;
+	<a href="{% url wlhelp_buildings tribe.name %}">Buildings</a> &#187;
+	{{ building.displayname }}
+	<br /><br />
+
+	<h2>Description</h2>
+	<p>{{ building.help }}</p>
+
+	<h2>Economy Graph</h2>
+	{{ building.imagemap|safe }}
+	<img src="{{ building.graph_url }}" usemap="#G" alt="Graph for {{ building.displayname }}" />
+
+{% comment %}
+
+{% if building.get_build_cost %}
+	<h2>Build Cost<h2>
+	{% for costs in building.get_build_cost %}
+		{% for w in costs %}
+		<a href="{% url wlhelp_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
+		{% endfor %}
+	<br />
+	{% endfor %}
+{% endif %}
+
+{% if building.produces or building.trains %}
+	<h2>Produces</h2>
+	{% if building.produces and not building.trains %}
+		{% for w in building.get_ware_outputs %}
+		<a href="{% url wlhelp_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
+		{% endfor %}
+	{% else %}
+		{% for wor in building.get_worker_outputs %}
+		<img src="{{ wor.image_url }}" alt="{{ wor.name }}" />
+		{% endfor %}
+	{% endif %}
+{% endif %}
+
+{% if building.get_stored_wares %}
+	<h2>Stores</h2>
+	{% for costs in building.get_stored_wares %}
+		{% for w in costs %}
+		<a href="{% url wlhelp_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
+		{% endfor %}
+	<br />
+	{% endfor %}
+{% endif %}
+
+{% endcomment %}
+
+</div>
 {% endblock %}

=== renamed file 'online_help/templates/buildings.html' => 'templates/wlhelp/buildings.html'
--- online_help/templates/buildings.html	2009-04-01 14:33:45 +0000
+++ templates/wlhelp/buildings.html	2012-07-04 18:20:26 +0000
@@ -1,92 +1,95 @@
-{% extends "base.html" %}
+{% extends "wlhelp/base.html" %}
 {% comment %}
    vim:ft=htmldjango
 {% endcomment %}
 
+{% block title %}
+Buildings - {{ tribe.displayname }} - {{ block.super }}
+{% endblock %}
+
 {% block content %}
-
-<h1>Buildings</h1>
-
-<!-- HQ -->
-<h1>Headquarters</h1>
-{% with buildings.headquarters as b %}
-  <table class="building" width="100%" cellspacing="1">
-    {% include "inlines/display_building.html" %}
-{% endwith %}
-  </table>
-
-<!-- Small buildings -->
+<h1>{{ tribe.displayname }}: Buildings</h1>
+<div class="blogEntry">
+	<a href="{% url wlhelp_index %}">Encyclopedia</a> &#187;
+	<a href="{% url wlhelp_tribe_details tribe.name %}">{{ tribe.displayname }}</a> &#187;
+	Buildings
+	<br /><br />
+
+{# Headquarters #}
+	<h2>Headquarters</h2>
+	{% with buildings.headquarters as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
+
+{# Small buildings #}
 {% if buildings.small.count %}
-<h1>Small buildings</h1>
-  <table class="building" width="100%" cellspacing="1">
-    {% for b in buildings.small %}
-    {% include "inlines/display_building.html" %}
-    {% endfor %}
-  </table>
+	<h2>Small Buildings</h2>
+	{% with buildings.small as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
 {% endif %}
 {% if buildings.small_enhanced.count %}
-<h1>Small enhanced buildings</h1>
-  <table class="building" width="100%" cellspacing="1">
-    {% for b in buildings.small_enhanced %}
-    {% include "inlines/display_building.html" %}
-    {% endfor %}
-  </table>
+	<h2>Small Enhanced Buildings</h2>
+	{% with buildings.small_enhanced as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
 {% endif %}
 
-<!-- Medium buildings -->
+{# Medium buildings #}
 {% if buildings.medium.count %}
-<h1>Medium buildings</h1>
-  <table class="building" width="100%" cellspacing="1">
-    {% for b in buildings.medium %}
-    {% include "inlines/display_building.html" %}
-    {% endfor %}
-  </table>
+	<h2>Medium Buildings</h2>
+	{% with buildings.medium as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
 {% endif %}
 {% if buildings.medium_enhanced.count %}
-<h1>Medium enhanced buildings</h1>
-  <table class="building" width="100%" cellspacing="1">
-    {% for b in buildings.medium_enhanced %}
-    {% include "inlines/display_building.html" %}
-    {% endfor %}
-  </table>
+	<h2>Medium Enhanced Buildings</h2>
+	{% with buildings.medium_enhanced as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
 {% endif %}
 
-<!-- Big buildings -->
+{# Big buildings #}
 {% if buildings.big.count %}
-<h1>Big buildings</h1>
-  <table class="building" width="100%" cellspacing="1">
-    {% for b in buildings.big %}
-    {% include "inlines/display_building.html" %}
-    {% endfor %}
-  </table>
+	<h2>Big Buildings</h2>
+	{% with buildings.big as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
 {% endif %}
 {% if buildings.big_enhanced.count %}
-<h1>Big enhanced buildings</h1>
-  <table class="building" width="100%" cellspacing="1">
-    {% for b in buildings.big_enhanced %}
-    {% include "inlines/display_building.html" %}
-    {% endfor %}
-  </table>
+	<h2>Big Enhanced Buildings</h2>
+	{% with buildings.big_enhanced as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
 {% endif %}
 
-<!-- Mines -->
+{# Mines #}
 {% if buildings.mine.count %}
-<h1>Mines</h1>
-  <table class="building" width="100%" cellspacing="1">
-    {% for b in buildings.mine %}
-    {% include "inlines/display_building.html" %}
-    {% endfor %}
-  </table>
+	<h2>Mines</h2>
+	{% with buildings.mine as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
 {% endif %}
 {% if buildings.mine_enhanced.count %}
-<h1>Enhanced Mines</h1>
-  <table class="building" width="100%" cellspacing="1">
-    {% for b in buildings.mine_enhanced %}
-    {% include "inlines/display_building.html" %}
-    {% endfor %}
-  </table>
-{% endif %}
-
-
+	<h2>Enhanced Mines</h2>
+	{% with buildings.mine_enhanced as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
+{% endif %}
+
+{# Ports #}
+{% if buildings.port.count %}
+	<h2>Ports</h2>
+	{% with buildings.port as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
+{% endif %}
+{% if buildings.port_enhanced.count %}
+	<h2>Enhanced Ports</h2>
+	{% with buildings.port_enhanced as buildings %}
+		{% include "wlhelp/inlines/display_buildings.html" %}
+	{% endwith %}
+{% endif %}
+
+</div>
 {% endblock %}
-

=== added file 'templates/wlhelp/index.html'
--- templates/wlhelp/index.html	1970-01-01 00:00:00 +0000
+++ templates/wlhelp/index.html	2012-07-04 18:20:26 +0000
@@ -0,0 +1,22 @@
+{% extends "wlhelp/base.html" %}
+{% comment %}
+   vim:ft=htmldjango
+{% endcomment %}
+
+{% block title %}
+{{ block.super }}
+{% endblock %}
+
+{% block content %}
+<h1>Encyclopedia</h1>
+<div class="blogEntry">
+Encyclopedia &#187; Index
+<br /><br />
+<p>This is a list of all tribes in Widelands:</p>
+<ul>
+{% for tribe in tribes %}
+	<li><a href="{% url wlhelp_tribe_details tribe.name %}">{{ tribe.displayname }}</a></li>
+{% endfor %}
+</ul>
+</div>
+{% endblock %}

=== renamed directory 'online_help/templates/inlines' => 'templates/wlhelp/inlines'
=== added file 'templates/wlhelp/inlines/display_buildings.html'
--- templates/wlhelp/inlines/display_buildings.html	1970-01-01 00:00:00 +0000
+++ templates/wlhelp/inlines/display_buildings.html	2012-07-04 18:20:26 +0000
@@ -0,0 +1,49 @@
+<table class="help">
+	<tr>
+		<th>Image</th>
+		<th>Description</th>
+		<th>Build cost</th>
+		<th>Produces</th>
+		<th>Stores</th>
+	</tr>
+{% for b in buildings %}
+	<tr class="{% cycle "odd" "even" %}">
+		<td>
+			<a href="{% url wlhelp_building_details b.tribe.name b.name %}" title="{{ b.displayname }}" id="{{ b.name }}">
+				{{ b.displayname|title }}
+				<br />
+				<img alt="{{b.displayname}}" src="{{ b.image_url }}" />
+			</a>
+		</td>
+		<td>{{ b.help }}</td>
+		<td>
+			{% for costs in b.get_build_cost %}
+				{% for w in costs %}
+				<a href="{% url wlhelp_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
+				{% endfor %}
+			<br />
+			{% endfor %}
+		</td>
+		<td>
+			{% if b.produces and not b.trains %}
+				{% for w in b.get_ware_outputs %}
+				<a href="{% url wlhelp_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
+				{% endfor %}
+			{% endif %}
+			{% if b.trains and not b.produces %}
+				{% for wor in b.get_worker_outputs %}
+				<img src="{{ wor.image_url }}" alt="{{ wor.name }}" />
+				{% endfor %}
+			{% endif %}
+		</td>
+		<td>
+			{% for costs in b.get_stored_wares %}
+				{% for w in costs %}
+				<a href="{% url wlhelp_ware_details w.tribe.name w.name %}" title="{{w.displayname}}"><img src="{{ w.image_url }}" alt="{{ w.name }}" /></a>
+				{% endfor %}
+			<br />
+			{% endfor %}
+		</td>
+	</tr>
+{% endfor %}
+</table>

=== added file 'templates/wlhelp/tribe_details.html'
--- templates/wlhelp/tribe_details.html	1970-01-01 00:00:00 +0000
+++ templates/wlhelp/tribe_details.html	2012-07-04 18:20:26 +0000
@@ -0,0 +1,26 @@
+{% extends "wlhelp/base.html" %}
+{% comment %}
+   vim:ft=htmldjango
+{% endcomment %}
+
+{% block title %}
+{{ tribe.displayname }} - {{ block.super }}
+{% endblock %}
+
+{% block content %}
+<h1>{{ tribe.displayname }}</h1>
+<div class="blogEntry">
+<a href="{% url wlhelp_index %}">Encyclopedia</a> &#187;
+{{ tribe.displayname }}
+<br /><br />
+<img class="posLeft icon" src="{{ tribe.icon_url }}" alt="" />
+<p>{{ tribe.descr }}</p>
+<ul>
+	<li><a href="{% url wlhelp_buildings tribe.name %}">Buildings</a></li>
+	<li><a href="{% url wlhelp_wares tribe.name %}">Wares</a></li>
+	<li><a href="{% url wlhelp_workers tribe.name %}">Workers</a></li>
+	<li><a href="{{ tribe.network_pdf_url }}" target="_blank">Economy Network as PDF</a></li>
+	<li><a href="{{ tribe.network_gif_url }}" target="_blank">Economy Network as GIF</a></li>
+</ul>
+</div>
+{% endblock %}

=== renamed file 'online_help/templates/ware_details.html' => 'templates/wlhelp/ware_details.html'
--- online_help/templates/ware_details.html	2010-11-07 17:38:00 +0000
+++ templates/wlhelp/ware_details.html	2012-07-04 18:20:26 +0000
@@ -1,18 +1,28 @@
-{% extends "base.html" %}
+{% extends "wlhelp/base.html" %}
 {% comment %}
    vim:ft=htmldjango
 {% endcomment %}
 
+{% block title %}
+{{ ware.displayname }} - {{ tribe.displayname }} - {{ block.super }}
+{% endblock %}
 
 {% block content %}
-
-
-<center>
-<img src="{{ ware.graph_url }}" usemap="#G" alt="Graph for {{ ware.displayname }}" />
-
-{{ ware.imagemap|safe }}
-</center>
-
+<h1>{{ tribe.displayname }}: {{ ware.displayname }}</h1>
+<div class="blogEntry">
+	<a href="{% url wlhelp_index %}">Encyclopedia</a> &#187;
+	<a href="{% url wlhelp_tribe_details tribe.name %}">{{ tribe.displayname }}</a> &#187;
+	<a href="{% url wlhelp_wares tribe.name %}">Wares</a> &#187;
+	{{ ware.displayname }}
+	<br /><br />
+
+	<h2>Description</h2>
+	<p>{{ ware.help }}</p>
+
+	<h2>Economy Graph</h2>
+	{{ ware.imagemap|safe }}
+	<img src="{{ ware.graph_url }}" usemap="#G" alt="Graph for {{ ware.displayname }}" />
+{% comment %}
 {% if ware.build_ware_for_buildings.all %}
 <h2>Used in the construction of</h2>
 <table style="width:100%" class="building">
@@ -32,7 +42,6 @@
 {% else %}
 Not used for building.<br />
 {% endif %}
-
-Return to the <a href="../">Ware overview</a>.
-
+{% endcomment %}
+</div>
 {% endblock %}

=== renamed file 'online_help/templates/wares.html' => 'templates/wlhelp/wares.html'
--- online_help/templates/wares.html	2010-01-03 09:35:19 +0000
+++ templates/wlhelp/wares.html	2012-07-04 18:20:26 +0000
@@ -1,21 +1,37 @@
-{% extends "base.html" %}
+{% extends "wlhelp/base.html" %}
 {% comment %}
    vim:ft=htmldjango
 {% endcomment %}
 
+{% block title %}
+Wares - {{ tribe.displayname }} - {{ block.super }}
+{% endblock %}
+
 {% block content %}
+<h1>{{ tribe.displayname }}: Wares</h1>
+<div class="blogEntry">
+	<a href="{% url wlhelp_index %}">Encyclopedia</a> &#187;
+	<a href="{% url wlhelp_tribe_details tribe.name %}">{{ tribe.displayname }}</a> &#187;
+	Wares
+	<br /><br />
 
-<!-- Wares -->
-<h1>Wares</h1>
-<table class="ware" width="100%" cellspacing="1">
-   <tr>
-      <th width="48px">Image</th>
-      <th width="96px">Name</th>
-      <th             >Description</th>
-   </tr>
-{% for ware in wares %}
-{% include "inlines/display_ware.html" %}
-{% endfor %}
-</table>
+	<table class="help">
+		<tr>
+			<th>Image</th>
+			<th>Name</th>
+			<th>Description</th>
+		</tr>
+	{% for ware in wares %}
+		<tr class="{% cycle "odd" "even" %}">
+			<td>
+				<a href="{% url wlhelp_ware_details tribe.name ware.name %}">
+					<img src="{{ ware.image_url }}"  alt="{{ ware.name }}" />
+				</a>
+			</td>
+			<td><a id="{{ ware.name }}" href="{% url wlhelp_ware_details tribe.name ware.name %}">{{ ware.displayname }}</a></td>
+			<td>{{ ware.help }}</td> 
+		</tr>
+	{% endfor %}
+	</table>
+</div>
 {% endblock %}
-

=== renamed file 'online_help/templates/worker_details.html' => 'templates/wlhelp/worker_details.html'
--- online_help/templates/worker_details.html	2010-11-02 14:02:06 +0000
+++ templates/wlhelp/worker_details.html	2012-07-04 18:20:26 +0000
@@ -1,18 +1,25 @@
-{% extends "base.html" %}
+{% extends "wlhelp/base.html" %}
 {% comment %}
    vim:ft=htmldjango
 {% endcomment %}
 
+{% block title %}
+{{ worker.displayname }} - {{ tribe.displayname }} - {{ block.super }}
+{% endblock %}
 
 {% block content %}
-
-
-<center>
-<img src="{{ worker.graph_url }}" usemap="#G" alt="Graph for {{ worker.name }}" />
-
-{{ worker.imagemap|safe }}
-</center>
-
-Return to the <a href="../">Worker overview</a>.
-
+<h1>{{ tribe.displayname }}: {{ worker.displayname }}</h1>
+<div class="blogEntry">
+	<a href="{% url wlhelp_index %}">Encyclopedia</a> &#187;
+	<a href="{% url wlhelp_tribe_details tribe.name %}">{{ tribe.displayname }}</a> &#187;
+	<a href="{% url wlhelp_workers tribe.name %}">Workers</a> &#187;
+	{{ worker.displayname }}
+	<br /><br />
+
+	<h2>Description</h2>
+	<p>{{ worker.help }}</p>
+
+	<h2>Economy Graph</h2>
+	{{ worker.imagemap|safe }}
+	<img src="{{ worker.graph_url }}" usemap="#G" alt="Graph for {{ worker.displayname }}" />
 {% endblock %}

=== renamed file 'online_help/templates/workers.html' => 'templates/wlhelp/workers.html'
--- online_help/templates/workers.html	2010-01-03 09:35:19 +0000
+++ templates/wlhelp/workers.html	2012-07-04 18:20:26 +0000
@@ -1,21 +1,37 @@
-{% extends "base.html" %}
+{% extends "wlhelp/base.html" %}
 {% comment %}
    vim:ft=htmldjango
 {% endcomment %}
 
+{% block title %}
+Workers - {{ tribe.displayname }} - {{ block.super }}
+{% endblock %}
+
 {% block content %}
+<h1>{{ tribe.displayname }}: Workers</h1>
+<div class="blogEntry">
+	<a href="{% url wlhelp_index %}">Encyclopedia</a> &#187;
+	<a href="{% url wlhelp_tribe_details tribe.name %}">{{ tribe.displayname }}</a> &#187;
+	Workers
+	<br /><br />
 
-<!-- Workers -->
-<h1>Workers</h1>
-<table class="ware" width="100%" cellspacing="1">
-   <tr>
-      <th width="48px">Image</th>
-      <th width="96px">Name</th>
-      <th             >Description</th>
-   </tr>
-{% for worker in workers %}
-{% include "inlines/display_worker.html" %}
-{% endfor %}
-</table>
+	<table class="help">
+		<tr>
+			<th>Image</th>
+			<th>Name</th>
+			<th>Description</th>
+		</tr>
+	{% for worker in workers %}
+		<tr class="{% cycle "odd" "even" %}">
+			<td>
+				<a href="{% url wlhelp_worker_details tribe.name worker.name %}">
+					<img src="{{ worker.image_url }}"  alt="{{ worker.name }}" />
+				</a>
+			</td>
+			<td><a id="{{ worker.name }}" href="{% url wlhelp_worker_details tribe.name worker.name %}">{{ worker.displayname }}</a></td>
+			<td>{{ worker.help }}</td> 
+		</tr>
+	{% endfor %}
+	</table>
+</div>
 {% endblock %}
-

=== modified file 'templates/wlmaps/base.html'
--- templates/wlmaps/base.html	2009-04-05 16:28:57 +0000
+++ templates/wlmaps/base.html	2012-07-04 18:20:26 +0000
@@ -5,8 +5,8 @@
 {% endcomment %}
 
 {% block extra_head %}
+<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/forum.css" />
 <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/maps.css" />
-
 {{block.super}}
 {% endblock %}
 

=== modified file 'templates/wlmaps/index.html'
--- templates/wlmaps/index.html	2011-11-13 15:50:58 +0000
+++ templates/wlmaps/index.html	2012-07-04 18:20:26 +0000
@@ -4,170 +4,62 @@
 {% endcomment %}
 
 {% load custom_date %}
-
-{% block extra_head %}
-<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}css/modal_windows.css" />
-{{ block.super }}
-
-{% endblock %}
-
-{% block title %}{{ block.super }}{% endblock %}
+{% load wlprofile %}
+{% load wlmaps_extra %}
+{% load threadedcommentstags %}
+{% load pagination_tags %}
 
 {% block content %}
-<script src="{{ MEDIA_URL}}/js/jqModal.js" type="text/javascript"></script>
-<script type="text/javascript">
-$().ready(function() {
-  $('#upload_map_dialog')
-    .jqDrag('.jqDrag')
-    .jqm({
-      trigger:'#umdTrigger',
-      overlay: 50,
-      overlayClass: 'modalOverlay',
-      onShow: function(h) {
-          /* calculate correct position on screen */
-          o = h.w 
-          if(o.css("top") == "0px") {
-              cw = document.body.clientWidth;
-              ch = document.body.clientHeight;
-
-              top = document.body.scrollTop + (ch-o.height())/2;
-              left = (cw-o.width())/2;
-
-              o.css("top",top+"px").css("left",left+"px");
-          }
-          /* callback executed when a trigger click. Show notice */
-          o.css('opacity',1).slideDown(); 
-      },
-      });
-});
-</script>    
-
-<div id="map_list">
-    <div align="right">
-        <a href="#" id="umdTrigger">Upload a new map</a>
-    </div>
-
-    <h1>Widelands maps</h1>
-    
-    <table cellspacing="1" width="100%">
-        <tr align="center">
-            <th width="">&nbsp;</th>
-            <th width="" nowrap="nowrap" align="left">Name</th>
-            <th width="" nowrap="nowrap">Author</th>
-            <th width="" nowrap="nowrap">Max Players</th>
-            <th width="" nowrap="nowrap">Size</th>
-            <th width="" nowrap="nowrap">World</th>
-            <th width="" nowrap="nowrap">Uploaded</th>
-            <th width="" nowrap="nowrap">Downloaded</th>
-            <th width="" nowrap="nowrap">Details</th>
-        </tr>
-
-        {% for o in object_list %}
-        <tr class="{% cycle "odd" "even" %}">
-            <td><a href="{{ o.get_absolute_url }}"><img src="{{ MEDIA_URL }}{{ o.minimap.url }}" alt="{{ o.name }}"/></a></td>
-            <td><a href="{{ o.get_absolute_url }}">{{ o.name }}</a></td>
-            <td>{{ o.author }}</td>
-            <td>{{ o.nr_players }}</td>
-            <td>{{ o.w }} x {{ o.h }}</td>
-            <td>{{ o.world_name|title }}</td>
-            <td>At {{ o.pub_date|custom_date:user }} by {{ o.uploader.username }}</td>
-            <td>{{ o.nr_downloads }} times</td>
-            <td>
-               <p><a href="{{ o.get_absolute_url }}">Details</a></p>
-               <p><a href="{% url wlmaps_download o.slug %}">Direct Download</a></p>
-            </td>
-        </tr>
-        {% endfor %}
-    </table>
-
-</div>
-
-<!-- Modal upload box -->
-<div id="upload_map_dialog" class="jqmDialog">
-    <img src="{{ MEDIA_URL }}/img/close_icon.png" alt="close" class="jqmClose" />
-
-    <div class="box_title jqDrag">
-        <h3 class="box_title">Upload a new map</h3>
-    </div>
-
-    <div class="box_content">
-        <form class="upload_form" enctype="multipart/form-data" action="{% url wlmaps_upload %}" method="post">{% csrf_token %}
-            <label for="id_mapfile">Select map:</label>
-            <input type="file" id="id_mapfile" name="mapfile"/><br />
-            <label for="id_comment">Upload comment:</label><br />
-            <textarea id="id_comment" rows="10" name="comment" style="width: 100%"></textarea>
-            <br/>
-
-            <!--<input class="upload_button" type="button" value="Upload" />-->
-            <input type="submit" value="Upload" />
-            <input class="cancel_button" type="button" value="Cancel" />
-        </form>
-
-        <div class="progress_indicator"></div>
-    </div>
-
-</div>
-
-<script type="text/javascript">
-$(function() {
-    /* Bind cancel button */
-    $('.upload_form .cancel_button').click( function() {
-        $('#upload_map_dialog').jqmHide();
-    });
-
-    /* On submit, create a hidden iframe, use this as target for
-       our submit, extract the result and then delete it */
-    jQuery(".upload_form").submit( function(data) {
-            var submittingForm = jQuery( this );
-            var frameName = ("upload"+(new Date()).getTime());
-            var uploadFrame = jQuery("<iframe name=\""+frameName+"\" />");
-
-            // Disable the submit and cancel until a unsuccesfull reply 
-            // was returned
-            $(".upload_form input[type='submit']").attr("disabled","disabled")
-            $(".upload_form input[type='button']").attr("disabled","disabled")
-            
-            o = $('#upload_map_dialog .progress_indicator')
-            o.html("<h3>Uploading...</h3> <div>Uploading your map. Please wait...</div>");
-            uploadFrame.css("display", "none");
-            uploadFrame.load(function(data){
-                // get the result
-                fbody = jQuery(window.frames[ frameName ].document.getElementsByTagName( "body" )[ 0 ]);
-                
-                // Safari does beautification of the returned text (with pre tags)
-                // so we extract the data using a regular expression
-                json_data = eval('(' +  /\{.*\}/.exec(fbody.html())[0] + ')') ;
-                
-                //submit is complete here, check the result
-                o = $('#upload_map_dialog .progress_indicator')
-                if(json_data["success_code"] == 0) {
-                o.html('<h3>Success!</h3><br /> Your map has been added! Will reload page in 5s');
-                setTimeout(function(){
-                    $('#upload_map_dialog').jqmHide();
-                    window.location.reload(); 
-                },500);
-                
-                } else {
-                o.html('<h3>An error occured:</h3><br /> <div class="errormessage">' + json_data["success_code"] + ': ' + json_data["error_msg"] + '</div>');
-                
-                // Enable the submit and cancel because the user might want to 
-                // try it again
-                $(".upload_form input[type='submit']").removeAttr("disabled")
-                $(".upload_form input[type='button']").removeAttr("disabled")
-                }
-                
-                // make sure the iframe is removed again
-                setTimeout(function(){
-                    uploadFrame.remove();},100);
-
-                return false;
-                });
-            jQuery('body:first').append(uploadFrame);
-            
-            submittingForm.attr('target', frameName);
-        });
-});
-</script>
-
-
+<a href="{% url wlmaps_upload %}" class="posRight invertedColor small">Upload a new map</a>
+<h1>Maps</h1>
+<div class="blogEntry">
+	{% autopaginate maps maps_per_page %}
+	{% paginate %}
+	<br />
+	<table class="forum">
+		{% for map in maps %}
+		<tr class="{% cycle "odd" "even" %}">
+			<td><a href="{{ map.get_absolute_url }}"><img class="minimap" src="{{ MEDIA_URL }}{{ map.minimap.url }}" alt="{{ map.name }}" /></a></td>
+			<td>
+				<h3><a class="invertedColor" href="{{ map.get_absolute_url }}">{{ map.name }}</a></h3>
+				<table>
+					<tr>
+						<td class="grey">Author:</td><td>{{ map.author }}</td>
+						<td class="spacer"></td>
+						<td class="grey">Dimensions:</td><td>{{ map.w }} x {{ map.h }}</td>
+					</tr>
+					<tr>
+						<td class="grey">World:</td><td>{{ map.world_name|title }}</td>
+						<td class="spacer"></td>
+						<td class="grey">Max. Players:</td><td>{{ map.nr_players }}</td>
+					</tr>
+					<tr>
+						<td class="grey">Rating:</td>
+						<td colspan="">{{ map.rating|average_rating }} ({{ map.rating.votes }} Votes)</td>
+						<td class="spacer"></td>
+						{% get_comment_count for map as ccount %}
+						<td class="grey">Comments:</td><td>{{ ccount }}</td>
+					</tr>
+					<tr>
+						<td class="grey">Upload:</td>
+						<td colspan="4">by {{ map.uploader|user_link }} at {{ map.pub_date|custom_date:user }}</td>
+					</tr>
+					<tr>
+						<td class="grey">Downloads:</td><td>{{ map.nr_downloads }}</td>
+						<td class="spacer"></td>
+						<td colspan="2">
+							<button onclick="window.location.href='{% url wlmaps_download map.slug %}';">
+								<img src="{{MEDIA_URL}}/img/download.png" alt ="" class="middle" />
+								<span class="middle">Direct Download</span>
+							</button>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		{% endfor %}
+	</table>
+	<br />
+	{% paginate %}
+</div>
 {% endblock %}

=== modified file 'templates/wlmaps/map_detail.html'
--- templates/wlmaps/map_detail.html	2009-04-12 11:34:59 +0000
+++ templates/wlmaps/map_detail.html	2012-07-04 18:20:26 +0000
@@ -3,9 +3,16 @@
    vim:ft=htmldjango
 {% endcomment %}
 
+{% load custom_date %}
+{% load wlmaps_extra %}
+{% load wlprofile %}
+{% load threadedcommentstags %}
+
+{% block title %}{{ map.name }} - {{ block.super }}{% endblock %}
+
 {% block extra_head %}
 {{ block.super }}
-
+<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/comments.css" />
 {% if not user.is_anonymous %}
 <script src="{{ MEDIA_URL}}/js/jquery.sexy-vote.js" type="text/javascript"></script>
 <script type="text/javascript">
@@ -16,52 +23,82 @@
         maxScore: 10,
         messages: ["","","","","","","","","",""],
         fn: function(e, score) {
-            $.post("{% url wlmaps_rate object.slug %}",{ vote: score });
+            $.post("{% url wlmaps_rate map.slug %}",{ vote: score });
             }
         });
 });
 </script>
 {% endif %}
-
 {% endblock %}
 
-{% load custom_date %}
-{% block title %}{{ object.name }} - {{ block.super }}{% endblock %}
-
 {% block content %}
-<div class="map_details">
-   
-   <h1>{{ object.name }}</h1>
-   Votes: {{ object.rating.votes }}, Average: {{ average_rating }}
-   {% if not user.is_anonymous %}
-   <span id="vote"></span>
-   {% else %}
-   (Login to vote)
-   {% endif %}
-   <span class="author">by {{ object.author }}</span>
-   <span class="uploader">uploaded by {{ object.uploader.username }} at {{ object.pub_date|custom_date:user }}</span>
-
-   <span class="dimensions">{{ object.w }}x{{ object.h }}</span>, <span class="world">{{ object.world_name|title }}</span>, <span class="nr_players"> maximum of {{ object.nr_players }} players.</span>
-   <br/>
-   <img src="{{ MEDIA_URL }}{{ object.minimap.url }}" alt="{{ object.name }}" />
-
-   <div class="map_description">
-      {{ object.descr }}
-   </div>
-
-   <h3>Comment by uploader:</h3>
-   <div class="uploader_comment">
-      {{ object.uploader_comment }}
-   </div>
-   
-   <span class="nr_downloads">{{ object.nr_downloads }} times</span><br />
-
-   <a href="{% url wlmaps_download object.slug %}">Download</a>
-
-   <!-- Comments below -->
-   <h3>Comments on this Map:</h3>
-   {% include "threadedcomments/inlines/comments.html" %}
-
-</div>
-
+<h1>Map: {{ map.name }}</h1>
+<div class="blogEntry">
+	<a href="{% url wlmaps_index %}">Maps</a> &#187; 
+	{{ map.name }}
+	<br /><br />
+	<img class="posLeft map" src="{{ MEDIA_URL }}{{ map.minimap.url }}" alt="{{ map.name }}" />
+
+	<div style="display: inline-block;">
+		<h3>Description:</h3>
+		<p>{{ map.descr }}</p>
+	</div>
+	<br />
+	<div style="display: inline-block;">
+		<h3>Comment by uploader:</h3>
+		<p>{{ map.uploader_comment }}</p>
+	</div>
+	<br />
+	<div style="display: inline-block;">
+		<h3>Basic Information:</h3>
+		<table>
+			<tr>
+				<td class="grey">Author:</td><td>{{ map.author }}</td>
+			</tr>
+			<tr>
+				<td class="grey">World:</td><td>{{ map.world_name|title }}</td>
+			</tr>
+			<tr>
+				<td class="grey">Dimensions:</td><td>{{ map.w }} x {{ map.h }}</td>
+			</tr>
+			<tr>
+				<td class="grey">Max. Players:</td><td>{{ map.nr_players }}</td>
+			</tr>
+			<tr>
+				<td class="grey">Downloads:</td><td>{{ map.nr_downloads }}</td>
+			</tr>
+			<tr>
+				{% get_comment_count for map as ccount %}
+				<td class="grey">Comments:</td><td>{{ ccount }}</td>
+			</tr>
+			<tr>
+				<td class="grey">Rating:</td>
+				<td>
+					{{ map.rating|average_rating }} ({{ map.rating.votes }} Votes)
+					{% if not user.is_anonymous %}
+					<span id="vote"></span>
+					{% else %}
+					- Login to vote
+					{% endif %}
+				</td>
+			</tr>
+			<tr>
+				<td class="grey">Upload:</td><td>by {{ map.uploader|user_link }} at {{ map.pub_date|custom_date:user }}</td>
+			</tr>
+		</table>
+	</div>
+	<br /><br />
+	<button onclick="window.location.href='{% url wlmaps_download map.slug %}';">
+		<img src="{{MEDIA_URL}}/img/download.png" alt ="" class="middle" />
+		<span class="middle">Download this map</span>
+	</button>
+	<div style="clear: left;"></div>
+</div>
+
+<div class="blogEntry">
+	<h3>Comments on this Map:</h3>
+	{% with map as object %}
+		{% include "threadedcomments/inlines/comments.html" %}
+	{% endwith %}
+</div>
 {% endblock %}

=== added file 'templates/wlmaps/upload.html'
--- templates/wlmaps/upload.html	1970-01-01 00:00:00 +0000
+++ templates/wlmaps/upload.html	2012-07-04 18:20:26 +0000
@@ -0,0 +1,21 @@
+{% extends "wlmaps/base.html" %}
+{% comment %}
+   vim:ft=htmldjango
+{% endcomment %}
+
+{% block title %}Upload - {{ block.super }}{% endblock %}
+
+{% block content %}
+<h1>Map Upload</h1>
+<div class="blogEntry">
+	<a href="{% url wlmaps_index %}">Maps</a> &#187; Upload
+	<br /><br />
+	<form enctype="multipart/form-data" action="{% url wlmaps_upload %}" method="post">
+		{{ form.file.label_tag }}: {{ form.file }}<br />
+		{{ form.uploader_comment.label_tag }}:<br />
+		{{ form.uploader_comment }}
+		{% csrf_token %}<br />
+		<input type="submit" value="Upload" />
+	</form>
+</div>
+{% endblock %}

=== modified file 'templates/wlpoll/base.html'
--- templates/wlpoll/base.html	2011-11-18 22:51:37 +0000
+++ templates/wlpoll/base.html	2012-07-04 18:20:26 +0000
@@ -4,6 +4,8 @@
 {% endcomment %}
 
 {% block extra_head %}
+{{block.super}}
+<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/comments.css" />
 <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/poll.css" />
 <script src="{{ MEDIA_URL }}/js/highcharts_219/highcharts.js" type="text/javascript"></script>
 {% endblock %}

=== modified file 'templates/wlpoll/poll_detail.html'
--- templates/wlpoll/poll_detail.html	2010-01-02 15:32:46 +0000
+++ templates/wlpoll/poll_detail.html	2012-07-04 18:20:26 +0000
@@ -9,42 +9,24 @@
 {% block title %}{{ object.name }} - {{ block.super }}{% endblock %}
 
 {% block content %}
-<br />
-<div class="poll">
-   <h3 class="title">{{ object.name }}</h3>
-   <div class="info_line"> 
-      <span class="post_date">Posted on {{ object.pub_date|custom_date:user }}</span> 
-   </div>
-   <div class="content">
-      <div class="poll_plot">
-      {% display_poll object %}
-      </div>
-   </div>
-
-   <table class="bottom_line" width="100%">
-      <tr>
-      {% get_comment_count for object as ccount %}
-      <td class="comments">
-         <a href="{{ object.get_absolute_url }}">{{ ccount }} comments, {{object.total_votes}} votes</a>
-      </td>
-      
-      <td class="admin">
-      {% if perms.news %}
-      {% if perms.news.poll_can_add %}<a href="/admin/wlpoll/poll/add/">Add New Poll</a>{% endif %}
-      {% if perms.news.poll_can_edit %}| <a href="/admin/wlpoll/poll/{{object.id}}/">Edit</a>{% endif %}
-      {% if perms.news.poll_can_delete %}| <a href="/admin/wlpoll/poll/{{object.id}}/delete/">Delete</a>{% endif %}
-      {% endif %}
-      </td>
-
-      <!-- Third column for the style -->
-      <td>
-      </td>
-  </tr>
-  </table>
-</div>
-      
-
-    <!-- Comments below -->
-    <h3>Comments on this Poll:</h3>
-    {% include "threadedcomments/inlines/comments.html" %}
+	{% if perms.wlpoll %}
+	<div class="small posRight">
+		{% if perms.wlpoll.poll_can_add %}<a href="/admin/wlpoll/poll/add/" class="invertedColor">Add New Poll</a>{% endif %}
+		{% if perms.wlpoll.poll_can_edit %}| <a href="/admin/wlpoll/poll/{{object.id}}/" class="invertedColor">Edit</a>{% endif %}
+		{% if perms.wlpoll.poll_can_delete %}| <a href="/admin/wlpoll/poll/{{object.id}}/delete/" class="invertedColor">Delete</a>{% endif %}
+	</div>
+	{% endif %}
+	<h1>Poll: {{ object.name }}</h1>
+	<div class="blogEntry">
+		{% display_poll object %}
+		<hr />
+		{% get_comment_count for object as ccount %}
+		<span class="small posLeft"><a href="{{ object.get_absolute_url }}">{{ ccount }} comments, {{object.total_votes}} votes</a></span>
+		<span class="small posRight">Posted on {{ object.pub_date|custom_date:user }}</span>
+	</div>
+
+	<div class="blogEntry">
+		<h3>Comments on this Poll:</h3>
+		{% include "threadedcomments/inlines/comments.html" %}
+	</div>
 {% endblock %}

=== modified file 'templates/wlpoll/poll_list.html'
--- templates/wlpoll/poll_list.html	2010-01-02 15:32:46 +0000
+++ templates/wlpoll/poll_list.html	2012-07-04 18:20:26 +0000
@@ -1,4 +1,4 @@
-{% extends "wlpoll/base.html" %}
+{% extends "base.html" %}
 {% comment %}
    vim:ft=htmldjango
 {% endcomment %}
@@ -6,18 +6,23 @@
 {% load wlpoll wlprofile %}
 {% load threadedcommentstags custom_date %}
 
-{% block title %}{{ object.name }} - {{ block.super }}{% endblock %}
+{% block title %}Poll Archive - {{ block.super }}{% endblock %}
 
 {% block content %}
-
-<h1>Poll archive</h1>
-<ul>
-{% for o in object_list %}
-{% get_comment_count for o as ccount %}
-<li>
-<a href="{{o.get_absolute_url}}">{{ o.name }}</a> - <span class="post_date">posted at {{ o.pub_date|custom_date:user }}, {{ ccount }} comments, {{o.total_votes}} votes</span></li>
-{% endfor %}
-</ul>
-      
-      
+{% if perms.wlpoll %}
+	<div class="small posRight">
+		{% if perms.wlpoll.poll_can_add %}<a href="/admin/wlpoll/poll/add/" class="invertedColor">Add New Poll</a>{% endif %}
+	</div>
+	{% endif %}
+<h1>Poll Archive</h1>
+<div class="blogEntry">
+	<ul>
+	{% for o in object_list %}
+	{% get_comment_count for o as ccount %}
+		<li>
+			<a href="{{o.get_absolute_url}}">{{ o.name }}</a> - <span class="small">posted at {{ o.pub_date|custom_date:user }}, {{ ccount }} comments, {{o.total_votes}} votes</span>
+		</li>
+	{% endfor %}
+	</ul>
+</div>
 {% endblock %}

=== modified file 'templates/wlprofile/base.html'
--- templates/wlprofile/base.html	2009-03-17 15:02:13 +0000
+++ templates/wlprofile/base.html	2012-07-04 18:20:26 +0000
@@ -4,7 +4,7 @@
 {% endcomment %}
 
 {% block title %}
-Profile - Account - {{ block.super }}
+{{ block.super }}
 {% endblock %}
 
 {% block extra_head %}

=== modified file 'templates/wlprofile/edit_profile.html'
--- templates/wlprofile/edit_profile.html	2011-09-02 11:15:39 +0000
+++ templates/wlprofile/edit_profile.html	2012-07-04 18:20:26 +0000
@@ -2,78 +2,56 @@
 
 {% load i18n %}
 
+{% block title %}
+{% trans "Profile Editing" %} - {{ block.super }}
+{% endblock %}
+
 {% block content %}
-{% ifequal user profile.user %}
-	{% include "django_messages/inlines/navigation.html" %}
-{% endifequal %}
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">{% trans "Profile editing" %}</h3>
-    <div class="content">
-    {% if profile.avatar %}
-        <img src="{{ profile.avatar.url }}" />
-    {% endif %}
-
-        <form method="post" enctype="multipart/form-data">
-            <table width="100%" cellspacing="1" class="text">
-            {# FIXME: change the right color #}
-    {% if profile_form.errors %}
-                <tr>
-                    <td class="even" colspan="2">{{ profile_form.errors }}</td>
-                </tr>
-    {% endif %}
-
-    {% for field in profile_form %}
-        {% if field.errors %}
-                <tr>
-                    <td colspan="2" class="{% cycle "odd" "even" %}">
-                        <div class="errormessage">{{ field.errors }}</div>
-                    </td>
-                </tr>
-        {% endif %}
-        {% ifequal field.name "delete_avatar" %}
-            {% if profile.avatar %}
-                <tr>
-                    <td class="{% cycle "odd" "even" %}">{{ field.label_tag }}:</td>
-                    <td class="{% cycle "odd" "even" %}">{{ field }}
-                </tr>
-            {% endif %}
-        {% else %}
-                <tr>
-                    <td class="{% cycle "odd" "even" %} {%ifequal field.name "signature" %}show_left{% endifequal %}">{{ field.label_tag }}:</td>
-                    <td class="{% cycle "odd" "even" %}">{{ field }}
-                {% ifequal field.name "time_display" %}
-                        <a href="/wiki/HomepageDocuTimeDisplay">Documented here</a>
-                {% endifequal %}
-                    </td>
-                </tr>
-        {% endifequal %}
-    {% endfor %}
-            </table>
-        </div>
-        <div class="info_line">
-            <input type="submit" value="{% trans "Save" %}" />
-        </div>
-        {% csrf_token %}
-    </form>
-</div>
-<br />
-<div class="box_item_model fixed_site border">
-    <div class="info_line show_left">
-        <a href="{% url auth_change_password %}">Change website password</a>
-        <br />
-        <br />
-        You will be redirected to an encrypted connections. Passwords are <b>not</b> transmitted in cleartext.
-    </div>
-</div>
-<br />
-<div class="box_item_model fixed_site border">
-    <div class="info_line show_left">
-        <a href="{% url wlggz_changepw %}">Change online lobby password</a>
-        <br />
-        <br />
-        <b class="errormessage">WARNING: GGZ transmitts the password in cleartext. Choose a different password for online gaming.</b>
-    </div>
+<h1>{% trans "Profile Editing" %}</h1>
+
+<div class="blogEntry">
+	<form method="post" enctype="multipart/form-data" action=".">
+		<table>
+		{% for field in profile_form %}
+			<tr>
+				<td class="grey">
+					{{ field.label_tag }}:
+				</td>
+				<td>
+					{% ifequal field.name "avatar"%}
+					{% if profile.avatar %}
+						<img class="posLeft" src="{{ profile.avatar.url }}" alt="Avatar" />
+					{% endif %}
+					{% endifequal %}
+
+					{{ field }}
+
+					{% ifequal field.name "time_display" %}
+						<a href="/wiki/HomepageDocuTimeDisplay">Documented here</a>
+					{% endifequal %}
+				</td>
+				<td class="errormessage">
+				{% if field.errors %}
+					{{ field.errors }}
+				{% endif %}
+				</td>
+			</tr>
+		{% endfor %}
+		</table>
+		<input type="submit" value="{% trans "Save" %}" />
+		{% csrf_token %}
+	</form>
+	<br />
+	<br />
+	<p>
+		<a href="{% url auth_password_change %}">Change website password</a>
+		<br />
+		You will be redirected to an encrypted connection. The website password is <strong>not</strong> transmitted in cleartext.
+	</p>
+	<p>
+		<a href="{% url wlggz_changepw %}">Change online gaming password</a>
+		<br />
+		<strong class="errormessage">WARNING: The online gaming password is transmitted in cleartext. Do not use your website password!</strong>
+	</p>
 </div>
 {% endblock %}

=== modified file 'templates/wlprofile/view_profile.html'
--- templates/wlprofile/view_profile.html	2010-10-29 13:41:10 +0000
+++ templates/wlprofile/view_profile.html	2012-07-04 18:20:26 +0000
@@ -1,69 +1,81 @@
 {% extends "wlprofile/base.html" %}
 
 {% load i18n %}
+{% load custom_date %}
+
+{% block title %}
+{{ profile.user.username }}'s Profile - {{ block.super }}
+{% endblock %}
 
 {% block content %}
-{% load custom_date %}
-
-{% include "django_messages/inlines/navigation.html" %}
-
-<br />
-<br />
-<div class="box_item_model fixed_site border">
-    <h3 class="title">{% trans "View Profile" %}</h3>
-    <div class="content">
-	{% if profile.avatar %}
-	    <img src="{{ profile.avatar.url }}" />
-	{% endif %}
-	<table cellspacing="1" class="text full_site">
-		<tr>
-			<td class="odd">User:</td>
-			<td class="odd">{{ profile.user.username }}</td>
-		</tr>
-   		<tr>
-			<td class="even">Joined:</td>
-			<td class="even">{{ profile.user.date_joined|custom_date:user|title }}</td>
-		</tr>
-  		<tr>
-			<td class="odd">Nr posts:</td>
-			<td class="odd">{{ profile.post_count }}</td>
-		</tr>
-   		<tr>
-			<td class="even">Website:</td>
-			<td class="even"><a href="{{profile.site}}">{{ profile.site }}</a></td>
-		</tr>
-   		<tr>
-			<td class="odd">Location:</td>
-			<td class="odd">{{ profile.location }}</td>
-		</tr>
-   		<tr>
-			<td class="even">Jabber:</td>
-			<td class="even">{{ profile.jabber }}</td>
-		</tr>
-   		<tr>
-			<td class="odd">ICQ:</td>
-			<td class="odd">{{ profile.icq }}</td>
-		</tr>
-   		<tr>
-			<td class="even">MSN:</td>
-			<td class="even">{{ profile.msn }}</td>
-		</tr>
-   		<tr>
-			<td class="odd">AIM:</td>
-			<td class="odd">{{ profile.aim }}</td>
-		</tr>
-   		<tr>
-			<td class="even">Yahoo:</td>
-			<td class="even">{{ profile.yahoo }}</td>
-		</tr>
-   		<tr>
-			<td class="odd show_left">Signature:</td>
-			<td class="odd show_left">{{ profile.signature|urlize|linebreaks }}</td>
+<div class="posRight small">
+	{% ifequal user profile.user %}
+		<a class="invertedColor" href="{% url profile_edit %}">Edit Profile</a>
+	{% endifequal %}
+</div>
+<h1>{{ profile.user.username }}'s Profile</h1>
+
+<div class="blogEntry">
+	<table>
+		<tr>
+			<td>
+			{% if profile.avatar %}
+				<img src="{{ profile.avatar.url }}" alt="Avatar" />
+			{% endif %}
+			</td>
+			<td>
+			{% ifnotequal user profile.user %}
+				<button onclick="window.location.href='{% url messages_compose_to profile.user %}';">
+					<img src="{{MEDIA_URL}}/forum/img/send_pm.png" alt ="" class="middle" />
+					<span class="middle">{% trans "Send PM" %}</span>
+				</button>
+			{% endifnotequal %}
+			</td>
+		</tr>
+		<tr>
+			<td class="grey">Joined:</td>
+			<td>{{ profile.user.date_joined|custom_date:user|title }}</td>
+		</tr>
+		<tr>
+			<td class="grey">Forum Posts:</td>
+			<td>{{ profile.post_count }}</td>
+		</tr>
+		<tr>
+			<td class="grey">Website:</td>
+			<td><a href="{{profile.site}}">{{ profile.site }}</a></td>
+		</tr>
+		<tr>
+			<td class="grey">Location:</td>
+			<td>{{ profile.location }}</td>
+		</tr>
+		<tr>
+			<td class="grey">Jabber:</td>
+			<td>{{ profile.jabber }}</td>
+		</tr>
+		<tr>
+			<td class="grey">ICQ:</td>
+			<td>{{ profile.icq }}</td>
+		</tr>
+		<tr>
+			<td class="grey">MSN:</td>
+			<td>{{ profile.msn }}</td>
+		</tr>
+		<tr>
+			<td class="grey">AIM:</td>
+			<td>{{ profile.aim }}</td>
+		</tr>
+		<tr>
+			<td class="grey">Yahoo:</td>
+			<td>{{ profile.yahoo }}</td>
+		</tr>
+		<tr>
+			<td class="grey">Signature:</td>
+			<td>{{ profile.signature|urlize|linebreaks }}</td>
 		</tr>
 		{% ifequal user profile.user %}
-   		<tr>
-			<td class="even">Email:</td>
-			<td class="even">{{ profile.user.email }}</td>
+		<tr>
+			<td class="grey">Email:</td>
+			<td>{{ profile.user.email }}</td>
 		</tr>
 		{% endifequal %}
 	</table>
@@ -72,21 +84,9 @@
 <table class="bottom_line" width="100%">
 	<tr>
 		<td>
-			{% ifequal user profile.user %}
-			<a href="{% url profile_edit %}">Edit Profile</a>
-			{% else %}
-			<a href="{% url messages_compose_to profile.user %}">Send User a PM</a>
-			{%endifequal%}
-		</td>
-	</tr>
-</table>
-<table class="bottom_line" width="100%">
-	<tr>
-		<td>
     			<a href="{% url wlggz_userstats profile.user %}">View GGZ Statistics of this user</a>
 		</td>
 	</tr>
 </table>
 {% endcomment %}
-</div>
 {% endblock %}

=== modified file 'templates/wlscreens/base.html'
--- templates/wlscreens/base.html	2009-04-11 15:21:15 +0000
+++ templates/wlscreens/base.html	2012-07-04 18:20:26 +0000
@@ -5,7 +5,6 @@
 
 {% block extra_head %}
 {{ block.super }}
-
 <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}css/screens.css" />
 {% endblock %}
 

=== modified file 'templates/wlscreens/index.html'
--- templates/wlscreens/index.html	2009-04-11 19:14:49 +0000
+++ templates/wlscreens/index.html	2012-07-04 18:20:26 +0000
@@ -7,169 +7,51 @@
 
 {% block extra_head %}
 {{ block.super }}
-
-<script type="text/javascript" src="{{ MEDIA_URL }}js/jqModal.js"></script>
-<link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}css/modal_windows.css" />
-
+<!-- Add fancyBox with button helper -->
+<link rel="stylesheet" href="{{ MEDIA_URL }}/fancybox/jquery.fancybox.css?v=2.0.6" type="text/css" media="screen" />
+<script type="text/javascript" src="{{ MEDIA_URL }}/fancybox/jquery.fancybox.pack.js?v=2.0.6"></script>
+<link rel="stylesheet" href="{{ MEDIA_URL }}/fancybox/helpers/jquery.fancybox-buttons.css?v=1.0.2" type="text/css" media="screen" />
+<script type="text/javascript" src="{{ MEDIA_URL }}/fancybox/helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
+<link rel="stylesheet" href="{{ MEDIA_URL }}/fancybox/helpers/jquery.fancybox-thumbs.css?v=2.0.6" type="text/css" media="screen" />
+<script type="text/javascript" src="{{ MEDIA_URL }}/fancybox/helpers/jquery.fancybox-thumbs.js?v=2.0.6"></script>
 <script type="text/javascript">
-// {{{ Javascript Stuff 
-var image_w = 0;
-// if initial_show is true, the resize_dialog function
-// will not animate the resize. This is set by the hide and show
-// function of our dialog
-var initial_show = true;
-var current_size = "";
-
-function determine_image_size() {
-   // We decide by the client width which size we are going // to show
-   cw = document.body.clientWidth;
-   ch = document.body.clientHeight;
-   
-   margin = 12;
-   if( (cw-80) > 1024) {
-      w = 1024;
-   } else if( (cw-80) > (800) ) {
-      w = 800;
-   } else {
-      w = 640;
-   }
-   
-   return w;
-}
-
-function resize_dialog() {
-   if(image_w == 0) {
-      image_w = determine_image_size();
-   }
-   cw = document.body.clientWidth;
-   
-   img = $(".image_display");
-
-   if( current_size == image_w ) {
-      return;
-   }
-
-   // reposition and resize the dialog
-   dw = image_w+margin;
-   x = (cw/2)-(dw/2);
-
-   dialog = $("#dialog");
-   if(initial_show) {
-      dialog.css("width",dw + "px");
-      dialog.css("left",x + "px");
-      dialog.css("top",(document.body.scrollTop + 5) + "px");
-      
-      img.attr("width",w);
-   } else {
-      img.fadeOut( 250, 
-         function() {
-            dialog.animate( {
-               left: x+"px",
-               top: (document.body.scrollTop+5)+"px",
-               width: dw +"px",
-               }, 500, function() {
-                  img.attr("width",w);
-
-                  img.fadeIn(250);
-               });
-      });
-   }
-   
-   current_size = w;
-}
-
-$().ready(function() {
-
-      // dialog
-      $('#dialog').jqm( {
-          onShow: function(h) {
-          /* Enter image address */
-          h.w.css('opacity',1.00).fadeIn(); 
-          initial_show = false;
-        },
-          onHide: function(h) {
-          h.w.fadeOut('slow');
-          h.o.fadeOut('slow',
-             function() { if(h.o) h.o.remove(); })
-          initial_show = true;
-         }
-      });
-      $('.image_display').click( function() {
-         $('#dialog').jqmHide();
-      });
-
-      // Links
-      $(".displayimage a.imagelink").click( function() {
-         // Set the image
-         src = $(this).attr("href");
-         img = $(".image_display");
-         img.attr("src",src);
-         
-         // Set the image comment
-         comment = $($(this).parent().find(".comment")).html();
-         $(".image_comment").html(comment);
-
-         // Set the image title
-         title = $(this).attr("name");
-         $("h3.screenshot_title").html(title);
-         
-         resize_dialog();
-
-         $('#dialog').jqmShow();
-
-         return false;
-      });
-
-      // Resize links
-      $('a.sizelink').click( function() {
-            size = $(this).html().split("x");
-            w = parseInt(size[0]);
-            
-            image_w = w;
-            resize_dialog();
-      });
-
-});
-// }}}
+	$(document).ready(function() {
+		$(".fancybox").fancybox({
+			openEffect : 'elastic',
+			closeEffect : 'elastic',
+			closeBtn : false,
+			helpers : {
+				title : {
+					type : 'outside'
+				},
+				buttons : {},
+				thumbs	: {
+					width	: 50,
+					height	: 50
+				}
+			}
+		});
+	});
 </script>
 {% endblock %}
 
 {% block content %}
-<!-- Image Dialog --> 
-<div class="jqmDialog" id="dialog">
-   <img src="{{ MEDIA_URL }}/img/close_icon.png" alt="close" class="jqmClose" />
-
-    <div class="box_title">
-        <h3 class="box_title screenshot_title"></h3>
-    </div>
-
-    <div class="box_content">
-      <div class="sizes">
-         <a class="sizelink" href="#">1024 x 768</a>
-         | <a class="sizelink" href="#">800 x 600</a>
-         | <a class="sizelink" href="#">640 x 480</a>
-      </div>
-
-      <img class="image_display" src="#" />
-
-      <div class="image_comment"></div>
-    </div>
+<h1>Screenshots</h1>
+
+{% for c in categories %}
+<div class="blogEntry">
+	<h2>{{ c.name }}</h2>
+	<ul class="screenshot_list">
+	{% for s in c.screenshots.all %}
+		<li>
+			<a class="fancybox" rel="{{ c.slug }}" href="{{ s.screenshot.url }}" title="{{ s.name }}: {{ s.comment }}">
+				<img src="{{ s.thumbnail.url }}" alt="" />
+			</a>
+			<br />
+			<span>{{ s.name }}</span>
+		</li>
+	{% endfor %}
+	</ul>
 </div>
-
-<!-- True content -->
-{% for c in categories %}
-
-<h1 class="category">{{ c.name }}</h1>
-
-<ul class="screenshot_list">
-{% for s in c.screenshots.all %}
-<li class="displayimage">
-<div><a class="imagelink" name="{{s.name}}" href="{{ s.screenshot.url }}"><img src="{{ s.thumbnail.url }}" /></a><br/>
-<span class="name">{{ s.name }}</span>
-<div class="comment" style="display: none;">{{ s.comment|wl_markdown }}</div></div>
-</li>
-{% endfor %}
-</ul>
-
 {% endfor %}
 {% endblock %}

=== modified file 'templates/wlsearch/search.html'
--- templates/wlsearch/search.html	2011-07-04 01:14:23 +0000
+++ templates/wlsearch/search.html	2012-07-04 18:20:26 +0000
@@ -5,118 +5,124 @@
 
 {% block extra_head %}
 <link rel="stylesheet" type="text/css" media="all" href="{{ MEDIA_URL }}/css/search.css" />
-{{ block.super}}{% endblock %}
+{{ block.super}}
+{% endblock %}
 
 {% block content %}
-<div class="search">
-   <h1>Search</h1>
-
-   <p>
-   The search only matches complete words. Case is ignored. 
-   </p>
-
-   <div class="form">
-   <form method="post" action="">
-      <p>{{ search_form.search.errors }}<label for="id_search">Search:</label>
-      {{ search_form.search }}</p>
-      <label for="id_incl_wiki">Online Help</label> {{ search_form.incl_help }} 
-      <label for="id_incl_wiki">Wiki</label> {{ search_form.incl_wiki }} 
-      <label for="id_incl_forum">Forum</label> {{ search_form.incl_forum }} 
-      <label for="id_incl_wiki">Maps</label> {{ search_form.incl_maps }} 
-      <label for="id_incl_news">News</label> {{ search_form.incl_news }} 
-
-      <input type="submit" value="Search" />
-   {% csrf_token %}
-   </form>
-   </div>
-</div>
-
-   <div class="results">
+<h1>Search</h1>
+<div class="blogEntry">
+	<p>
+		The search only matches complete words. Case is ignored. 
+	</p>
+
+	<form method="post" action=".">
+		{% for error in search_form.search.errors %}
+		<p class="errormessage">{{ error }}</p>
+		{% endfor %}
+		<label for="id_search" class="grey">Search:</label> {{ search_form.search }}
+		<input type="submit" value="Search" />
+		<br />
+		<label for="id_incl_wiki">Wiki</label> {{ search_form.incl_wiki }} 
+		<label for="id_incl_wiki">Encyclopedia</label> {{ search_form.incl_help }} 
+		<label for="id_incl_forum">Forum</label> {{ search_form.incl_forum }} 
+		<label for="id_incl_wiki">Maps</label> {{ search_form.incl_maps }} 
+		<label for="id_incl_news">News</label> {{ search_form.incl_news }} 
+		{% csrf_token %}
+	</form>
+
 {% if post %}
-
-<h1>Your results</h1>
-
+<h2>Results</h2>
+
+{# Wiki #}
 {% if wiki_results.count %}
-   <h2>Wiki results</h2>
-   <ul>
-   {% for r in wiki_results %}
-   <li class="wiki"><a href="{{r.get_absolute_url}}">{{r.title}}</a>
-   </li>
-   {% endfor %}
-   </ul>
+	<h3>Wiki</h3>
+	<ul>
+	{% for r in wiki_results %}
+		<li><a href="{{r.get_absolute_url}}">{{r.title}}</a></li>
+	{% endfor %}
+	</ul>
 {% endif %}
 
-{# Online help #}
+{# Encylcopedia #}
 {% if help_hits %}
-    <h2>Help results</h2>
-     
-    {% if help_results_buildings.count %}
-    <ul>
-    {% for b in help_results_buildings %}
-    <li class="building"><a href="{% url help_building_details b.tribe.name b.name %}">{{ b.tribe.displayname }}: {{b.displayname}}</a></li>
-    {% endfor %}
-    </ul>
-    {% endif %}
-    
-    {% if help_results_wares.count %}
-    <ul>
-    {% for w in help_results_wares %}
-    <li class="ware"><a href="{% url help_ware_details w.tribe.name w.name %}">{{ w.tribe.displayname }}: {{w.displayname}}</a></li>
-    {% endfor %}
-    </ul>
-    {% endif %}
+	<h3>Encyclopedia</h3>
+	{% if help_results_buildings.count %}
+	<h4>Buildings</h4>
+	<ul>
+	{% for b in help_results_buildings %}
+		<li><a href="{% url help_building_details b.tribe.name b.name %}">{{ b.tribe.displayname }} &raquo; {{b.displayname}}</a></li>
+	{% endfor %}
+	</ul>
+	{% endif %}
+
+	{% if help_results_wares.count %}
+	<h4>Wares</h4>
+	<ul>
+	{% for w in help_results_wares %}
+		<li><a href="{% url help_ware_details w.tribe.name w.name %}">{{ w.tribe.displayname }} &raquo; {{w.displayname}}</a></li>
+	{% endfor %}
+	</ul>
+	{% endif %}
 {%endif %}
 
 {# Forum #}
 {% if forum_hits %}
-   <h2>Forum results</h2>
-   {% if forum_results_topic.count %}
-   <h3>Topics</h3>
-   <ul>
-   {% for r in forum_results_topic %}
-   <li class="topic"><a href="{{r.forum.get_absolute_url}}">{{r.forum.name}}</a>
-   &raquo; <a href="{{r.get_absolute_url}}">{{r.name}}</a></li>
-   {% endfor %}
-   </ul>
-   {%endif %}
+	<h3>Forum</h3>
+	{% if forum_results_topic.count %}
+	<h4>Topics</h4>
+	<ul>
+	{% for r in forum_results_topic %}
+		<li>
+			<a href="{{r.forum.get_absolute_url}}">{{r.forum.name}}</a>
+			&raquo; <a href="{{r.get_absolute_url}}">{{r.name}}</a>
+			, <span class="small">{{ r.created|custom_date:user }}</span>
+		</li>
+	{% endfor %}
+	</ul>
+	{%endif %}
 
-   {% if forum_results_post.count %}
-   <h3>Posts</h3>
-   <ul>
-   {% for r in forum_results_post %}
-   <li class="post"><a href="{{r.topic.forum.get_absolute_url}}">{{r.topic.forum.name}}</a>
-   &raquo; <a href="{{r.topic.get_absolute_url}}">{{r.topic.name}}</a> &raquo; <a href="{{r.get_absolute_url}}">Post by {{r.user.username}}</a>, <span class="posted">{{ r.created|custom_date:user }}</span></li>
-   {% endfor %}
-   </ul>
-   {% endif %}
+	{% if forum_results_post.count %}
+	<h4>Posts</h4>
+	<ul>
+	{% for r in forum_results_post %}
+		<li>
+			<a href="{{r.topic.forum.get_absolute_url}}">{{r.topic.forum.name}}</a>
+			&raquo; <a href="{{r.topic.get_absolute_url}}">{{r.topic.name}}</a> 
+			&raquo; <a href="{{r.get_absolute_url}}">Post by {{r.user.username}}</a>
+			, <span class="small">{{ r.created|custom_date:user }}</span>
+		</li>
+	{% endfor %}
+	</ul>
+	{% endif %}
 {% endif %}
 
 {# Maps #}
 {% if map_results.count %}
-   <h2>Map results</h2>
-   <ul>
-   {% for m in map_results %}
-   <li class="map"><a href="{{m.get_absolute_url}}">{{ m.name }}</a> by
-   <span class="author">{{ m.author }}</span>, 
-   <span class="posted">{{ m.pub_date|custom_date:user }}</span></li>
-   {% endfor %}
-   </ul>
+	<h3>Maps</h3>
+	<ul>
+	{% for m in map_results %}
+		<li>
+			<a href="{{m.get_absolute_url}}">{{ m.name }}</a> by {{ m.author }}
+			, <span class="small">{{ m.pub_date|custom_date:user }}</span>
+		</li>
+	{% endfor %}
+	</ul>
 {% endif %}
 
-
 {# News #}
 {% if news_results.count %}
-   <h2>News results</h2>
-   <ul>
-   {% for r in news_results %}
-   <li class="news"><a href="{{r.get_absolute_url}}">{{ r.title }}</a>, 
-   <span class="posted">{{ r.publish|custom_date:user }}</span></li>
-   {% endfor %}
-   </ul>
-{% endif %}
-
-{% endif %}
-   </div>
-
+	<h3>News results</h3>
+	<ul>
+	{% for r in news_results %}
+		<li>
+			<a href="{{r.get_absolute_url}}">{{ r.title }}</a>
+			, <span class="small">{{ r.publish|custom_date:user }}</span>
+		</li>
+	{% endfor %}
+	</ul>
+{% endif %}
+
+{% endif %}
+
+</div>
 {% endblock %}
-

=== modified file 'templates/wlwebchat/index.html'
--- templates/wlwebchat/index.html	2011-12-10 16:30:00 +0000
+++ templates/wlwebchat/index.html	2012-07-04 18:20:26 +0000
@@ -6,29 +6,24 @@
 {% block title %}Webchat - {{ block.super }}{% endblock %}
 
 {% block content %}
-
 <h1>Webchat</h1>
-
-<p>
-This is a webchat applet provided by the <a
-    href="http://www.freenode.net";>freenode network</a>. This is a convenient
-solution if you just want to chat in the #widelands channel on freenode. 
-</p>
-
-
-<!-- Start of Webchat -->
-{% if user.is_anonymous %}
-<iframe src="http://webchat.freenode.net?nick=widelands_.&channels=widelands&uio=d4"; width="647" height="400"></iframe>
-{% else %}
-<iframe src="http://webchat.freenode.net?nick={{ user.username }}&channels=widelands&uio=d4" width="100%" height="400"></iframe>
-{% endif %}
-<!-- End of Webchat -->
-
-<p>If you are not familiar with IRC (Internet Relay Chat), here's a few tips:</p>
-<ul>
-	<li>Please be patient. #widelands is fairly low traffic so it might take a while before someone sees your question and replies.</li>
-	<li>If you wish to change your nickname, do this with the command /nick. For instance type <kbd>/nick wl</kbd> in order to change it to wl.</li>
-	<li>We also have a german speaking IRC channel, for those who prefer german. To join it, simply type <kbd>/join #widelands.de</kbd></li>
-</ul>
-
+<div class="blogEntry">
+	<p>
+	This is a webchat applet provided by the <a href="http://www.freenode.net";>freenode network</a>. This is a convenient
+	solution if you just want to chat in the #widelands channel on freenode. 
+	</p>
+
+	<!-- Start of Webchat -->
+	<iframe src="http://webchat.freenode.net?nick={% if user.is_authenticated %}{{ user.username }}{% else %}widelands_.{% endif %}&amp;channels=widelands&amp;uio=d4" style="width: 100%; height: 400px;"></iframe>
+	<!-- End of Webchat -->
+
+	<p>
+	If you are not familiar with IRC (Internet Relay Chat), here's a few tips:
+	</p>
+	<ul>
+		<li>Please be patient. #widelands is fairly low traffic so it might take a while before someone sees your question and replies.</li>
+		<li>If you wish to change your nickname, do this with the command <kbd>/nick</kbd>. For instance type <kbd>/nick wl</kbd> in order to change it to wl.</li>
+		<li>We also have a german speaking IRC channel, for those who prefer german. To join it, simply type <kbd>/join #widelands.de</kbd></li>
+	</ul>
+</div>
 {% endblock %}

=== modified file 'urls.py'
--- urls.py	2010-06-10 12:42:55 +0000
+++ urls.py	2012-07-04 18:20:26 +0000
@@ -8,6 +8,7 @@
 
 from widelands.news.feeds import NewsPostsFeed
 from widelands.wiki.feeds import RssHistoryFeed
+from django.views.generic.simple import redirect_to
 
 feeds = {
     'news': NewsPostsFeed,
@@ -20,9 +21,8 @@
     (r'^admin/', include(admin.site.urls)),
 
     # Django builtin / Registration
-    (r'^accounts/logout/(next=(?P<next_page>.*))?$', 'django.contrib.auth.views.logout'),
-url (r'^accounts/register/$', 'mainpage.views.register', name='registration_register'),
-    url(r'^accounts/changepw/$', 'django.contrib.auth.views.password_change', name="auth_change_password"),
+    # overwrite registration with own implementation
+    url (r'^accounts/register/$', 'mainpage.views.register', name='registration_register'),
     (r'^accounts/', include('registration.backends.default.urls')),
     (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}),
 
@@ -42,7 +42,8 @@
     url(r'^$', mainpage, name="mainpage"),
     url(r'^changelog/$', "mainpage.views.changelog", name="changelog"),
     url(r'^developers/$', "mainpage.views.developers", name="developers"),
-    url(r'^help/', include("online_help.urls")),
+    url(r'^help/(?P<path>.*)', redirect_to, { "url": "/encyclopedia/%(path)s", "permanent": True }), # to not break old links
+    url(r'^encyclopedia/', include("wlhelp.urls")),
     url(r'^webchat/', include("wlwebchat.urls")),
     url(r'^images/', include("wlimages.urls")),
     url(r'^profile/', include("wlprofile.urls")),

=== modified file 'widelandslib/tribe.py'
--- widelandslib/tribe.py	2010-11-01 21:02:39 +0000
+++ widelandslib/tribe.py	2012-07-04 18:20:26 +0000
@@ -6,8 +6,8 @@
 import conf
 from itertools import chain
 import os.path as p
-from glob import glob
 import re
+from string import replace
 try:
     from settings import WIDELANDS_SVN_DIR
     basedir = WIDELANDS_SVN_DIR
@@ -75,7 +75,7 @@
     @property
     def image(self):
         glob_pat = self._conf.getstring("idle", "pics")
-        return p.abspath(glob(p.join(self._tdir,self.name,glob_pat))[0])
+        return p.abspath(p.join(self._tdir,self.name,replace(glob_pat,'?','0')))
 
     @property
     def buildcost(self):
@@ -93,7 +93,7 @@
     @property
     def outputs(self):
         self_produced = set(sorted(
-            i.strip() for i in re.findall(r'produce\s*=(\w+)',
+            i.strip() for i in re.findall(r'produce\s*=\s*(\w+)',
                 open(self._conf_file).read())
         ))
         if not len(self_produced):
@@ -147,28 +147,28 @@
     def __init__(self, name, bdir = basedir):
         self.name = name
 
-        tdir = p.join(bdir, "tribes", name)
-
-        self._conf = WidelandsConfigParser(p.join(tdir, "conf"))
-
-        self.wares = dict( (k,Ware(self, k, v, tdir)) for k,v in
+        self._tdir = p.join(bdir, "tribes", name)
+
+        self._conf = WidelandsConfigParser(p.join(self._tdir, "conf"))
+
+        self.wares = dict( (k,Ware(self, k, v, self._tdir)) for k,v in
             self._conf.items("ware types"))
         self.workers = dict(chain(
-            ((k,Worker(self, k, v, tdir)) for k,v in
+            ((k,Worker(self, k, v, self._tdir)) for k,v in
                 self._conf.items("worker types")),
-            ((k,Worker(self, k, v, tdir)) for k,v in
+            ((k,Worker(self, k, v, self._tdir)) for k,v in
                 self._conf.items("carrier types")),
         ))
 
 
         self.buildings = dict(chain(
-            ((k,ProductionSite(self, k, v, tdir)) for k,v in \
+            ((k,ProductionSite(self, k, v, self._tdir)) for k,v in \
                 self._conf.items("productionsite types")),
-            ((k,MilitarySite(self, k, v, tdir)) for k,v in \
+            ((k,MilitarySite(self, k, v, self._tdir)) for k,v in \
                 self._conf.items("militarysite types")),
-            ((k,Warehouse(self, k, v, tdir)) for k,v in \
+            ((k,Warehouse(self, k, v, self._tdir)) for k,v in \
                 self._conf.items("warehouse types")),
-            ((k,TrainingSite(self, k, v, tdir)) for k,v in \
+            ((k,TrainingSite(self, k, v, self._tdir)) for k,v in \
                 self._conf.items("trainingsite types")),
         ))
 

=== modified file 'wiki/views.py'
--- wiki/views.py	2011-08-25 15:41:04 +0000
+++ wiki/views.py	2012-07-04 18:20:26 +0000
@@ -8,7 +8,7 @@
 from django.core.urlresolvers import reverse
 from django.http import (Http404, HttpResponseRedirect,
                          HttpResponseNotAllowed, HttpResponse, HttpResponseForbidden)
-from django.shortcuts import get_object_or_404, render_to_response
+from django.shortcuts import get_object_or_404, render_to_response, redirect
 from django.views.generic.simple import redirect_to
 from django.utils.translation import ugettext_lazy as _
 from django.contrib.contenttypes.models import ContentType
@@ -280,7 +280,8 @@
                           {'title': new_article.title,
                            'group_slug': group_slug})
 
-            return redirect_to(request, url)
+            #return redirect_to(request, url)
+            return redirect("wiki_article", title=new_article.title)
 
     elif request.method == 'GET':
         user_ip = get_real_ip(request)

=== modified file 'wlggz/forms.py'
--- wlggz/forms.py	2011-08-24 13:09:49 +0000
+++ wlggz/forms.py	2012-07-04 18:20:26 +0000
@@ -16,7 +16,7 @@
 import re
 
 class EditGGZForm(forms.ModelForm):
-    password = forms.CharField(label=_(u'GGZ password'), widget = forms.PasswordInput(render_value = False), required=True)
+    password = forms.CharField(label=_(u'Online Gaming Password'), widget = forms.PasswordInput(render_value = False), required=True)
 
     class Meta:
         model = GGZAuth

=== renamed directory 'online_help' => 'wlhelp'
=== modified file 'wlhelp/management/commands/update_help.py'
--- online_help/management/commands/update_help.py	2010-11-06 19:35:10 +0000
+++ wlhelp/management/commands/update_help.py	2012-07-04 18:20:26 +0000
@@ -50,12 +50,24 @@
         self._tribe = Tribe(name)
         # Generate the Tribe
         self._to = TribeModel.objects.get_or_create(name=name.lower())[0]
-        self._to.displayname = normalize_name(self._tribe.name)
+        self._to.displayname = normalize_name(self._tribe._conf.getstring("tribe", "name"))
+        self._to.descr = normalize_name(self._tribe._conf.getstring("tribe", "descr"))
+        # copy icon
+        dn = "%s/wlhelp/img/%s/" % (MEDIA_ROOT,self._to.name)
+        try:
+            os.makedirs(dn)
+        except OSError, o:
+            if o.errno != 17:
+                raise
+        new_name = path.join(dn, "icon.png")
+        file = path.join(self._tribe._tdir,self._tribe._conf.getstring("tribe", "icon"))
+        shutil.copy(file, new_name )
+        self._to.icon_url = path.normpath("%s/%s" % (MEDIA_URL, new_name[len(MEDIA_ROOT):]))
         self._to.save()
 
     def parse( self ):
         """Put all data into the database"""
-        self._delete_old_media_dir()
+        #self._delete_old_media_dir() why delete it? We can simply overwrite data
         self._parse_workers()
         self._parse_wares()
         self._parse_buildings()
@@ -81,7 +93,7 @@
         shutil.rmtree(tdir)
 
     def _delete_old_media_dir(self):
-        sdir = os.path.join(MEDIA_ROOT, "online_help", self._tribe.name)
+        sdir = os.path.join(MEDIA_ROOT, "wlhelp/img", self._to.name)
         if os.path.exists(sdir):
             shutil.rmtree(sdir)
 
@@ -93,7 +105,7 @@
         name            - name of the item (coal, iron...)
         fname           - file name of the picture
         """
-        dn = "%s/online_help/img/%s/%s/" % (MEDIA_ROOT,self._to.name,name)
+        dn = "%s/wlhelp/img/%s/%s/" % (MEDIA_ROOT,self._to.name,name)
         try:
             os.makedirs(dn)
         except OSError, o:

=== modified file 'wlhelp/management/commands/update_help_pdf.py'
--- online_help/management/commands/update_help_pdf.py	2010-11-01 18:54:41 +0000
+++ wlhelp/management/commands/update_help_pdf.py	2012-07-04 18:20:26 +0000
@@ -8,6 +8,8 @@
 from os import path
 from widelandslib.tribe import *
 from widelandslib.make_flow_diagram import make_graph
+from wlhelp.models import Tribe
+from glob import glob
 
 class Command(BaseCommand):
     help =\
@@ -26,7 +28,7 @@
             pdffile = path.join(gdir, tribename + ".pdf")
             giffile = path.join(gdir, tribename + ".gif")
 
-            targetdir = path.join(MEDIA_ROOT, "online_help", "network_graphs", tribename)
+            targetdir = path.join(MEDIA_ROOT, "wlhelp", "network_graphs", tribename)
 
             try:
                 os.makedirs(targetdir)
@@ -36,4 +38,12 @@
             shutil.copy(pdffile, targetdir)
             shutil.copy(giffile, targetdir)
 
+            tribe = Tribe.objects.get(name=tribename)
+            if tribe:
+                tribe.network_pdf_url = path.normpath("%s/%s/%s" % (MEDIA_URL, targetdir[len(MEDIA_ROOT):], tribename + ".pdf"))
+                tribe.network_gif_url = path.normpath("%s/%s/%s" % (MEDIA_URL, targetdir[len(MEDIA_ROOT):], tribename + ".gif"))
+                tribe.save()
+            else:
+                print "Could not set tribe urls"
+
             shutil.rmtree(gdir)

=== modified file 'wlhelp/models.py'
--- online_help/models.py	2011-08-25 13:42:22 +0000
+++ wlhelp/models.py	2012-07-04 18:20:26 +0000
@@ -7,6 +7,10 @@
 class Tribe(models.Model):
     name = models.CharField(max_length=100)
     displayname = models.CharField(max_length=100)
+    descr = models.TextField()
+    icon_url = models.CharField( max_length=256 )
+    network_pdf_url = models.CharField( max_length=256 )
+    network_gif_url = models.CharField( max_length=256 )
 
 
 class Worker(models.Model):
@@ -67,6 +71,8 @@
         return self.all().filter(size="B")
     def mine(self):
         return self.all().filter(size="I")
+    def port(self):
+        return self.all().filter(size="P")
 
 
         # return self.build_wares.count()
@@ -79,6 +85,7 @@
             ('M', 'medium'),
             ('B', 'big'),
             ('I', 'mine'),
+            ('P', 'port'),
     )
     TYPES = (
             ('P', 'productionsite'),
@@ -156,7 +163,7 @@
 
     def produces(self):
         return (self.output_wares.all().count() != 0)
-    def get_outputs(self):
+    def get_ware_outputs(self):
         return self.output_wares.all()
     def trains(self):
         return (self.output_workers.all().count() != 0)

=== modified file 'wlhelp/urls.py'
--- online_help/urls.py	2010-11-01 19:02:28 +0000
+++ wlhelp/urls.py	2012-07-04 18:20:26 +0000
@@ -13,12 +13,15 @@
 from views import * 
 
 urlpatterns= patterns('',
-    # Detail pages                
-    url(r'^(?P<tribe>\w+)/wares/(?P<ware>[^/]+)/$', ware_details, name="help_ware_details"),
-    url(r'^(?P<tribe>\w+)/buildings/(?P<building>[^/]+)/$', building_details, name="help_building_details"),
-    url(r'^(?P<tribe>\w+)/workers/(?P<worker>[^/]+)/$', worker_details, name="help_worker_details"),
-
-    url(r'^(?P<tribe>\w+)/workers/$', workers, name="help_workers"),
-    url(r'^(?P<tribe>\w+)/wares/$', wares, name="help_wares"),
-    url(r'^(?P<tribe>\w+)/buildings/$', buildings, name="help_buildings"),
+    url(r'^$', index, name="wlhelp_index"),
+
+    # Detail pages
+    url(r'^(?P<tribe>\w+)/$', tribe_details, name="wlhelp_tribe_details"),
+    url(r'^(?P<tribe>\w+)/wares/(?P<ware>[^/]+)/$', ware_details, name="wlhelp_ware_details"),
+    url(r'^(?P<tribe>\w+)/buildings/(?P<building>[^/]+)/$', building_details, name="wlhelp_building_details"),
+    url(r'^(?P<tribe>\w+)/workers/(?P<worker>[^/]+)/$', worker_details, name="wlhelp_worker_details"),
+
+    url(r'^(?P<tribe>\w+)/workers/$', workers, name="wlhelp_workers"),
+    url(r'^(?P<tribe>\w+)/wares/$', wares, name="wlhelp_wares"),
+    url(r'^(?P<tribe>\w+)/buildings/$', buildings, name="wlhelp_buildings"),
 )

=== modified file 'wlhelp/views.py'
--- online_help/views.py	2010-11-06 18:38:45 +0000
+++ wlhelp/views.py	2012-07-04 18:20:26 +0000
@@ -6,36 +6,55 @@
 from settings import WIDELANDS_SVN_DIR, MEDIA_ROOT
 import os
 
+def index( request ):
+    tribes = Tribe.objects.all().order_by("displayname")
+
+    return render_to_response('wlhelp/index.html',
+        context_instance=RequestContext(request,
+        { "tribes": tribes }))
+
+def tribe_details( request, tribe ):
+    t = get_object_or_404(Tribe, name=tribe)
+
+    return render_to_response('wlhelp/tribe_details.html',
+        context_instance=RequestContext(request,
+        { "tribe": t }))
+
 def ware_details( request, tribe, ware ):
     w = get_object_or_404(Ware,tribe__name=tribe,name=ware)
+    t = Tribe.objects.get(name=tribe)
 
-    return render_to_response('ware_details.html', 
+    return render_to_response('wlhelp/ware_details.html', 
         context_instance=RequestContext(request, 
-        { "ware": w}))
+        { "ware": w, "tribe": t }))
 
 def building_details( request, tribe, building ):
     b = get_object_or_404(Building,tribe__name=tribe,name=building)
+    t = Tribe.objects.get(name=tribe)
 
-    return render_to_response('building_details.html', 
+    return render_to_response('wlhelp/building_details.html', 
         context_instance=RequestContext(request, 
-        { "building": b }))
+        { "building": b, "tribe": t }))
 
 def worker_details( request, tribe, worker ):
     w = get_object_or_404(Worker,tribe__name=tribe,name=worker)
+    t = Tribe.objects.get(name=tribe)
 
-    return render_to_response('worker_details.html', 
+    return render_to_response('wlhelp/worker_details.html', 
         context_instance=RequestContext(request, 
-        { "worker": w }))
+        { "worker": w, "tribe": t }))
 
 def workers(request, tribe="barbarians"):
     t = get_object_or_404(Tribe,name=tribe)
-    return render_to_response('workers.html', context_instance=RequestContext(request, 
-        { "workers": Worker.objects.filter(tribe=t) }))
+    return render_to_response('wlhelp/workers.html', context_instance=RequestContext(request, 
+        { "workers": Worker.objects.filter(tribe=t).order_by("displayname"),
+          "tribe": t }))
 
 def wares(request, tribe="barbarians"):
     t = get_object_or_404(Tribe,name=tribe)
-    return render_to_response('wares.html', context_instance=RequestContext(request, 
-        { "wares": Ware.objects.filter(tribe=t) }))
+    return render_to_response('wlhelp/wares.html', context_instance=RequestContext(request, 
+        { "wares": Ware.objects.filter(tribe=t).order_by("displayname"),
+          "tribe": t }))
 
 def buildings(request, tribe="barbarians"):
     t = get_object_or_404(Tribe,name=tribe)
@@ -43,7 +62,7 @@
     # Request all the objects
     buildings = {}
 
-    buildings["headquarters"] = Building.objects.get(tribe=t,name="headquarters") 
+    buildings["headquarters"] = Building.objects.filter(tribe=t,name="headquarters").order_by("displayname")
     
     all = Building.objects.filter(tribe=t).exclude(name="headquarters")
     
@@ -62,12 +81,17 @@
     buildings["big"] = big.filter(enhanced_from=None)
     buildings["big_enhanced"] = big.exclude(enhanced_from=None)
     
-    # Now, all mines buildings
+    # Now, all mines
     mine = all.filter(size="I",tribe=t).order_by("displayname")
     buildings["mine"] = mine.filter(enhanced_from=None)
     buildings["mine_enhanced"] = mine.exclude(enhanced_from=None)
 
-    return render_to_response('buildings.html', context_instance=RequestContext(request, 
-        { "buildings": buildings }))
+    # Now, all ports
+    port = all.filter(size="P",tribe=t).order_by("displayname")
+    buildings["port"] = port.filter(enhanced_from=None)
+    buildings["port_enhanced"] = port.exclude(enhanced_from=None)
+
+    return render_to_response('wlhelp/buildings.html', context_instance=RequestContext(request, 
+        { "buildings": buildings, "tribe": t }))
 
 

=== modified file 'wlmaps/forms.py'
--- wlmaps/forms.py	2009-04-05 16:28:57 +0000
+++ wlmaps/forms.py	2012-07-04 18:20:26 +0000
@@ -1,9 +1,67 @@
 #!/usr/bin/env python -tt
 # encoding: utf-8
 
+import Image
+from cStringIO import StringIO
+
 from django import forms
-
-class UploadMapForm(forms.Form):
-    mapfile = forms.FileField()
-    comment = forms.CharField(required=False)
-
+from django.forms import ModelForm, ValidationError
+
+from settings import WIDELANDS_SVN_DIR, MEDIA_ROOT
+
+from wlmaps.models import Map
+from widelandslib.map import WidelandsMap, WlMapLibraryException
+
+
+class UploadMapForm(ModelForm):
+    class Meta:
+        model = Map
+        fields = ['file', 'uploader_comment']
+
+
+    def clean(self):
+        cleaned_data = super(UploadMapForm, self).clean()
+
+        file = cleaned_data.get('file')
+        if not file:
+            # no clean file => abort
+            return cleaned_data
+
+        mapdata = file.read()
+        wlmap = WidelandsMap()
+        try:
+            wlmap.load(StringIO(mapdata))
+        except WlMapLibraryException:
+            raise forms.ValidationError("The map file is invalid.")
+
+        if Map.objects.filter(name = wlmap.name):
+            raise forms.ValidationError("Map with the same name already exists.")
+
+        cleaned_data['file'].name = "%s/wlmaps/maps/%s.wmf" % (MEDIA_ROOT, wlmap.name)
+
+        # Create the minimap
+        minimap = wlmap.make_minimap(WIDELANDS_SVN_DIR)
+        minimap_path = "%s/wlmaps/minimaps/%s.png" % (MEDIA_ROOT, wlmap.name)
+        minimap_url = "/wlmaps/minimaps/%s.png" % wlmap.name
+        minimap_image = Image.fromarray(minimap)
+        minimap_image.save(minimap_path)
+        # TODO: handle filesystem errors
+
+        # Add information to the map
+        self.instance.name = wlmap.name
+        self.instance.author = wlmap.author
+        self.instance.w = wlmap.w
+        self.instance.h = wlmap.h
+        self.instance.nr_players = wlmap.nr_players
+        self.instance.descr = wlmap.descr
+        self.instance.minimap = minimap_url
+        self.instance.world_name = wlmap.world_name
+
+        return cleaned_data
+
+
+    def save(self, *args, **kwargs):
+        map = super(UploadMapForm, self).save(*args, **kwargs)
+        if not kwargs['commit'] == False:
+            map.save()
+        return map

=== modified file 'wlmaps/models.py'
--- wlmaps/models.py	2011-08-28 09:26:21 +0000
+++ wlmaps/models.py	2012-07-04 18:20:26 +0000
@@ -12,17 +12,6 @@
 
 from djangoratings.fields import AnonymousRatingField
 
-class MapManager(models.Manager):
-    def create(self,**kwargs):
-        if 'slug' not in kwargs:
-            name = kwargs['name']
-            slug = slugify(name)
-            m = super(MapManager,self).create(slug=slug, **kwargs)
-        else:
-            m = super(MapManager,self).create(**kwargs)
-
-        return m
-
 
 class Map(models.Model):
     name = models.CharField( max_length = 255, unique = True )
@@ -33,15 +22,15 @@
     nr_players = models.PositiveIntegerField( verbose_name = 'Max Players')
 
     descr = models.TextField( verbose_name = "Description" )
-    minimap = models.ImageField( upload_to ="/wlmaps/minimaps/" )
-    file = models.FileField( upload_to ="/wlmaps/maps/" )
+    minimap = models.ImageField( verbose_name = "Minimap", upload_to = settings.MEDIA_ROOT + "/wlmaps/minimaps/" )
+    file = models.FileField( verbose_name = "Mapfile", upload_to = settings.MEDIA_ROOT + "/wlmaps/maps/" )
 
     world_name = models.CharField( max_length = 50  )
 
     pub_date = models.DateTimeField( default = datetime.datetime.now )
-    uploader_comment = models.TextField( )
+    uploader_comment = models.TextField( verbose_name = "Uploader comment", blank = True )
     uploader = models.ForeignKey(User)
-    nr_downloads = models.PositiveIntegerField( verbose_name ="Download count", default = 0)
+    nr_downloads = models.PositiveIntegerField( verbose_name = "Download count", default = 0)
 
     rating = AnonymousRatingField(range=10, can_change_vote = True)
 
@@ -50,6 +39,7 @@
             weights = {
                 'name': 100,
                 'author': 60,
+                'uploader_comment': 40,
                 }
         )
 
@@ -57,11 +47,16 @@
         ordering  = ('-pub_date',)
         get_latest_by = 'pub_date'
 
-    objects = MapManager()
-
     @models.permalink
     def get_absolute_url( self ):
         return ("wlmaps_view", None, {"map_slug": self.slug } )
 
     def __unicode__(self):
         return u'%s by %s' % (self.name, self.author)
+
+    def save(self, *args, **kwargs):
+        if not self.slug:
+            self.slug = slugify(self.name)
+
+        map = super(Map, self).save(*args, **kwargs)
+        return map

=== added directory 'wlmaps/templatetags'
=== added file 'wlmaps/templatetags/__init__.py'
=== added file 'wlmaps/templatetags/wlmaps_extra.py'
--- wlmaps/templatetags/wlmaps_extra.py	1970-01-01 00:00:00 +0000
+++ wlmaps/templatetags/wlmaps_extra.py	2012-07-04 18:20:26 +0000
@@ -0,0 +1,14 @@
+#!/usr/bin/env python -tt
+# encoding: utf-8
+
+from django import template
+
+register = template.Library()
+
+@register.filter
+def average_rating(rating):
+    if rating.votes > 0:
+        avg = "%.1f" %( float(rating.score) / rating.votes )
+    else:
+        avg = "0.0"
+    return avg

=== modified file 'wlmaps/views.py'
--- wlmaps/views.py	2010-11-01 17:52:47 +0000
+++ wlmaps/views.py	2012-07-04 18:20:26 +0000
@@ -8,27 +8,23 @@
 from django.contrib.auth.decorators import login_required
 from django.http import HttpResponseRedirect, HttpResponseNotAllowed, HttpResponse, HttpResponseBadRequest
 from django.core.urlresolvers import reverse
-from django.utils import simplejson as json
 from django.db import IntegrityError
-import Image
 import models
-
-from widelandslib.map import WidelandsMap, WlMapLibraryException
+from settings import MAPS_PER_PAGE
 
 import os
-from cStringIO import StringIO
 import zipfile
 
-from settings import WIDELANDS_SVN_DIR, MEDIA_ROOT, MEDIA_URL
-
 
 #########
 # Views #
 #########
 def index( request ):
-    objects = models.Map.objects.all()
+    maps = models.Map.objects.all()
     return render_to_response("wlmaps/index.html",
-                { "object_list": objects, },
+                { "maps": maps, 
+                  "maps_per_page": MAPS_PER_PAGE,
+                },
                 context_instance = RequestContext(request))
 
 def rate( request, map_slug ):
@@ -88,92 +84,32 @@
     return response
 
 
-
 def view(request, map_slug):
-    m = get_object_or_404( models.Map, slug = map_slug )
-
-    if m.rating.votes > 0:
-        avg = "%.1f" %( float(m.rating.score) /m.rating.votes )
-    else:
-        avg = "0"
+    map = get_object_or_404( models.Map, slug = map_slug )
 
     context = {
-        "average_rating": avg,
-        "object": m,
+        #"average_rating": _average_rating( map.rating ),
+        "map": map,
     }
     return render_to_response( "wlmaps/map_detail.html",
                               context,
                               context_instance=RequestContext(request))
 
+
 @login_required
 def upload( request ):
-    """
-    Uploads a map. This is an ajax post and returns an JSON object
-    with the following values.
-
-    success_code - integer (0 means success else error)
-    error_msg - if success_code = 1 this contains an descriptive error
-    map_id - id of newly uploaded map
-    """
-    def JsonReply( success_code, error_msg = None, **kwargs):
-        d = kwargs
-        d['success_code'] = success_code
-        if error_msg != None:
-            d['error_msg'] = error_msg
-        return HttpResponse( json.dumps(d), mimetype="application/javascript" )
-
-    if request.method != "POST":
-        return HttpResponseNotAllowed(["post"])
-
-    form = UploadMapForm( request.POST )
-    test = request.POST.get("test", False)
-    comment = request.POST.get("comment",u"")
-
-    if "mapfile" in request.FILES:
-        mf = request.FILES["mapfile"]
-
-        mfdata = mf.read()
-
-        m = WidelandsMap()
-        try:
-            m.load(StringIO(mfdata))
-        except WlMapLibraryException:
-            return JsonReply( 3, "Invalid Map File" )
-
-        # Draw the minimaps
-        mm = m.make_minimap(WIDELANDS_SVN_DIR)
-        mm_path = "%s/wlmaps/minimaps/%s.png" % (MEDIA_ROOT,m.name)
-        mm_url = "/wlmaps/minimaps/%s.png" % m.name
-        file_path = "%s/wlmaps/maps/%s.wmf" % (MEDIA_ROOT,m.name)
-
-        if not test:
-            f = open(file_path,"wb")
-            f.write(mfdata)
-            f.close()
-            i = Image.fromarray(mm)
-            i.save(mm_path)
-
-        # Create the map
-        try:
-            nm = models.Map.objects.create(
-                name = m.name,
-                author = m.author,
-                w = m.w,
-                h = m.h,
-                nr_players = m.nr_players,
-                descr = m.descr,
-                minimap = mm_url,
-                file = file_path,
-                world_name = m.world_name,
-
-                uploader = request.user,
-                uploader_comment = comment,
-            )
-        except IntegrityError:
-            return JsonReply(2, "Map with the same name already exists in database!")
-
-        nm.save()
-
-        return JsonReply(0, map_id = nm.pk )
-
-    return JsonReply(1, "No mapfile in request!")
+    if request.method == 'POST':
+        form = UploadMapForm(request.POST, request.FILES)
+        if form.is_valid():
+            map = form.save(commit = False)
+            map.uploader = request.user
+            map.save()
+            return HttpResponseRedirect(map.get_absolute_url())
+
+    else:
+        form = UploadMapForm()
+    
+    context = { 'form': form, }
+    return render_to_response( "wlmaps/upload.html",
+                              context,
+                              context_instance=RequestContext(request))

=== modified file 'wlprofile/fields.py'
--- wlprofile/fields.py	2009-12-06 09:53:08 +0000
+++ wlprofile/fields.py	2012-07-04 18:20:26 +0000
@@ -45,12 +45,17 @@
 
     
     def save_form_data(self, instance, data):
-        if data and self.width and self.height:
-            if instance.avatar:
-                instance.avatar.delete()
-
-            content = self.resize_image(data.read(), width=self.width, height=self.height)
-            data = SimpleUploadedFile(instance.user.username + ".png", content, data.content_type)
+        if data is not None and data != self.default:
+            if not data:
+                data = self.default
+                if instance.avatar != self.default:
+                        instance.avatar.delete()
+            else:
+                if hasattr(data, 'read') and self.width and self.height:
+                    content = self.resize_image(data.read(), width=self.width, height=self.height)
+                    data = SimpleUploadedFile(instance.user.username + ".png", content, "image/png")
+                    if instance.avatar != self.default:
+                        instance.avatar.delete()
             super(ExtendedImageField, self).save_form_data(instance, data)
 
 

=== modified file 'wlprofile/forms.py'
--- wlprofile/forms.py	2011-08-24 13:09:49 +0000
+++ wlprofile/forms.py	2012-07-04 18:20:26 +0000
@@ -13,15 +13,13 @@
 import re
 
 class EditProfileForm(forms.ModelForm):
-    delete_avatar = forms.BooleanField(initial=False,required=False)
     email = forms.EmailField(required=True)
 
     class Meta:
         model = Profile
-        fields = ['site', 'jabber', 'icq', 'msn', 'aim', 'yahoo',
-                  'location', 'signature', 'time_zone', "time_display",
-                  'avatar', 'delete_avatar', 'show_signatures', "email",
-                  ]
+        fields = ['avatar', 'site', 'location', 'jabber', 'icq', 'msn',
+                  'aim', 'yahoo', 'signature', 'email', 'show_signatures',
+                  'time_zone', 'time_display', ]
 
 
     def __init__(self, *args, **kwargs):

=== modified file 'wlprofile/models.py'
--- wlprofile/models.py	2012-03-17 16:22:06 +0000
+++ wlprofile/models.py	2012-07-04 18:20:26 +0000
@@ -21,7 +21,7 @@
     user = AutoOneToOneField(User, related_name='wlprofile', verbose_name=_('User'))
 
     # Web related fields.
-    site = models.URLField(_('Site'), verify_exists=False, blank=True, default='')
+    site = models.URLField(_('Website'), verify_exists=False, blank=True, default='')
     jabber = models.CharField(_('Jabber'), max_length=80, blank=True, default='')
     icq = models.CharField(_('ICQ'), max_length=12, blank=True, default='')
     msn = models.CharField(_('MSN'), max_length=80, blank=True, default='')
@@ -33,12 +33,12 @@
 
     # Configuration for Forum/Site
     time_zone = models.FloatField(_('Time zone'), choices=TZ_CHOICES, default=float(settings.DEFAULT_TIME_ZONE))
-    time_display = models.CharField(_('Time display'), max_length=80, default=r"%ND(m-d-y), H:i")
+    time_display = models.CharField(_('Time display'), max_length=80, default=settings.DEFAULT_TIME_DISPLAY)
     signature = models.TextField(_('Signature'), blank=True, default='', max_length=settings.SIGNATURE_MAX_LENGTH)
     # language = models.CharField(_('Language'), max_length=10, blank=True, default='',
     #                             choices=settings.LANGUAGES)
 
-    avatar = ExtendedImageField(_('Avatar'), blank=True, default='', upload_to="wlprofile/avatars/", width=settings.AVATAR_WIDTH, height=settings.AVATAR_HEIGHT)
+    avatar = ExtendedImageField(_('Avatar'), blank=True, default="wlprofile/anonymous.png", upload_to="wlprofile/avatars/", width=settings.AVATAR_WIDTH, height=settings.AVATAR_HEIGHT)
     show_signatures = models.BooleanField(_('Show signatures'), blank=True, default=True)
     # markup = models.CharField(_('Default markup'), max_length=15, default=settings.DEFAULT_MARKUP, choices=MARKUP_CHOICES)
 

=== modified file 'wlprofile/templatetags/custom_date.py'
--- wlprofile/templatetags/custom_date.py	2011-08-25 12:32:21 +0000
+++ wlprofile/templatetags/custom_date.py	2012-07-04 18:20:26 +0000
@@ -18,6 +18,7 @@
 
 import re
 from datetime import date as ddate, tzinfo, timedelta, datetime
+from settings import DEFAULT_TIME_ZONE, DEFAULT_TIME_DISPLAY
 
 register = template.Library()
 
@@ -128,12 +129,12 @@
     If this user is logged in, return his representation,
     otherwise, return a sane default
     """
-    if user.is_anonymous():
-        return django_date("j F Y", date)
+    if not user.is_authenticated():
+        return do_custom_date( DEFAULT_TIME_DISPLAY, date, float(DEFAULT_TIME_ZONE) )
     try:
         return do_custom_date( user.get_profile().time_display, date, user.get_profile().time_zone )
     except ObjectDoesNotExist:
-        return django_date("j F Y", date)
+        return do_custom_date( DEFAULT_TIME_DISPLAY, date, float(DEFAULT_TIME_ZONE) )
 
 custom_date.is_safe = False
 

=== modified file 'wlprofile/views.py'
--- wlprofile/views.py	2010-01-02 22:28:51 +0000
+++ wlprofile/views.py	2012-07-04 18:20:26 +0000
@@ -39,9 +39,6 @@
         form = EditProfileForm(request.POST,
                     instance=instance, files = request.FILES)
         if form.is_valid():
-            if form.cleaned_data["delete_avatar"]:
-                instance.avatar.delete()
-
             form.save()
 
             return HttpResponseRedirect(reverse(view))

=== modified file 'wlrecaptcha/forms.py'
--- wlrecaptcha/forms.py	2011-07-30 09:02:06 +0000
+++ wlrecaptcha/forms.py	2012-07-04 18:20:26 +0000
@@ -38,12 +38,12 @@
 </script>
 ''' % self.options
         return '''%(options)s<script type="text/javascript"
-   src="http://api.recaptcha.net/challenge?k=%(public_key)s">
+   src="https://www.google.com/recaptcha/api/challenge?k=%(public_key)s">
 </script>
 
 <noscript>
-   <iframe src="http://api.recaptcha.net/noscript?k=%(public_key)s"
-       height="300" width="500" frameborder="0"></iframe><br />
+   <iframe src="https://www.google.com/recaptcha/api/noscript?k=%(public_key)s"
+       style="height: 300px; width: 500px; border: none;"></iframe><br />
    <textarea name="recaptcha_challenge_field" rows="3" cols="40">
    </textarea>
    <input type="hidden" name="recaptcha_response_field" 

=== modified file 'wlsearch/views.py'
--- wlsearch/views.py	2009-04-08 19:31:18 +0000
+++ wlsearch/views.py	2012-07-04 18:20:26 +0000
@@ -10,7 +10,7 @@
 from wiki.models import Article
 from pybb.models import Post, Topic
 from news.models import Post as NewsPost
-from online_help.models import Building, Ware
+from wlhelp.models import Building, Ware
 from wlmaps.models import Map 
 
 class DummyEmptyQueryset(object):


Follow ups