r96356 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r96355‎ | r96356 | r96357 >
Date:18:09, 6 September 2011
Author:ashley
Status:deferred (Comments)
Tags:
Comment:
Nimbus -- the skin used on Halopedia (http://www.halopedian.com/). Tested against MediaWiki 1.18, requires ResourceLoader. TODO: Nimbus_IE.css should be loaded for Internet Explorers, but currently it isn't.
Modified paths:
  • /trunk/extensions/skins/Nimbus (added) (history)
  • /trunk/extensions/skins/Nimbus/Nimbus.i18n.php (added) (history)
  • /trunk/extensions/skins/Nimbus/Nimbus.php (added) (history)
  • /trunk/extensions/skins/Nimbus/Nimbus.skin.php (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/Menu.js (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/Nimbus.css (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/Nimbus_IE.css (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/article_tab_off_left_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/article_tab_off_left_rtl.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/article_tab_off_right_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/article_tab_off_right_rtl.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/article_tab_on_left_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/article_tab_on_left_rtl.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/article_tab_on_right_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/article_tab_on_right_rtl.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/category_button_left_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/category_button_left_rtl.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/category_button_right_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/category_button_right_rtl.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/navigation_bottom.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/navigation_top.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/negative_button_left_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/negative_button_left_rtl.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/negative_button_right_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/negative_button_right_rtl.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/plus.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/positive_button_left_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/positive_button_left_rtl.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/positive_button_right_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/positive_button_right_rtl.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/right_arrow.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/right_arrow_ltr.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/search_button.gif (added) (history)
  • /trunk/extensions/skins/Nimbus/nimbus/sw_logo.png (added) (history)

Diff [purge]

Index: trunk/extensions/skins/Nimbus/Nimbus.i18n.php
@@ -0,0 +1,95 @@
 2+<?php
 3+/**
 4+ * Internationalization file for the Nimbus skin.
 5+ *
 6+ * @file
 7+ */
 8+$messages = array();
 9+
 10+/** English */
 11+$messages['en'] = array(
 12+ 'morewikis' => '', // format for this message is *Page name/Interwiki link/URL|Text to show
 13+ 'nimbus-advertise' => 'Advertise',
 14+ 'nimbus-advertise-url' => '', // set this to an URL if you want an "Advertise" link to show up in the footer
 15+ 'nimbus-contribute' => 'Contribute',
 16+ 'nimbus-didyouknow' => 'Did You Know',
 17+ 'nimbus-featuredimage' => 'Featured Image',
 18+ 'nimbus-featureduser' => 'Featured User',
 19+ 'nimbus-login' => 'Login',
 20+ 'nimbus-logout' => 'Log Out?',
 21+ 'nimbus-more-actions' => 'More Actions',
 22+ 'nimbus-more-wikis' => 'More Wikis',
 23+ 'nimbus-pages-can-be-edited' => "{{SITENAME}}'s pages can be edited. <br />
 24+Is this page incomplete? Is there anything wrong?<br />
 25+<b>Change it!</b>",
 26+ 'nimbus-profile' => 'Profile',
 27+ 'nimbus-recent-contributors' => 'Recent contributors to this page',
 28+ 'nimbus-recent-contributors-info' => 'The following people recently contributed to this article.',
 29+ 'nimbus-search' => 'enter search',
 30+ 'nimbus-signup' => 'Sign Up',
 31+ 'nimbus-welcome' => 'Welcome $1', // <b></b> tags are passed as $1 along with the actual username
 32+);
 33+
 34+/** Finnish (Suomi)
 35+ * @author Jack Phoenix <jack@countervandalism.net>
 36+ */
 37+$messages['fi'] = array(
 38+ 'nimbus-advertise' => 'Mainosta',
 39+ 'nimbus-contribute' => 'Muokkaa',
 40+ 'nimbus-didyouknow' => 'Tiesitkö, että...',
 41+ 'nimbus-featuredimage' => 'Suositeltu kuva',
 42+ 'nimbus-featureduser' => 'Suositeltu käyttäjä',
 43+ 'nimbus-login' => 'Kirjaudu sisään',
 44+ 'nimbus-logout' => 'Kirjaudu ulos?',
 45+ 'nimbus-more-actions' => 'Lisää toimintoja',
 46+ 'nimbus-more-wikis' => 'Lisää wikejä',
 47+ 'nimbus-pages-can-be-edited' => '{{GRAMMAR:genitive|{{SITENAME}}}} sivuja voi muokata.<br />
 48+Onko tämä sivu puutteellinen? Onko siinä jotakin vikaa?<br />
 49+<b>Muuta sitä!</b>',
 50+ 'nimbus-profile' => 'Profiili',
 51+ 'nimbus-recent-contributors' => 'Tämän sivun tuoreimmat muokkaajat',
 52+ 'nimbus-recent-contributors-info' => 'Seuraavat henkilöt ovat muokanneet tätä artikkelia äskettäin.',
 53+ 'nimbus-search' => 'anna hakusana',
 54+ 'nimbus-signup' => 'Rekisteröidy',
 55+ 'nimbus-welcome' => 'Tervetuloa $1',
 56+);
 57+
 58+/** French (Français)
 59+ * @author Jack Phoenix <jack@countervandalism.net>
 60+ */
 61+$messages['fr'] = array(
 62+ 'nimbus-welcome' => 'Bienvenue $1',
 63+);
 64+
 65+/** Dutch (Nederlands)
 66+ * @author Mitchel Corstjens
 67+ */
 68+$messages['nl'] = array(
 69+ 'nimbus-login' => 'Inloggen',
 70+ 'nimbus-logout' => 'Uitloggen?',
 71+ 'nimbus-welcome' => 'Welkom $1',
 72+);
 73+
 74+/** Polish (Polski)
 75+ * @author Misiek95
 76+ */
 77+$messages['pl'] = array(
 78+ 'nimbus-advertise' => 'Reklamy',
 79+ 'nimbus-contribute' => 'Wnieś swój wkład',
 80+ 'nimbus-didyouknow' => 'Czy wiedziałeś?',
 81+ 'nimbus-featuredimage' => 'Promowany obrazek',
 82+ 'nimbus-featureduser' => 'Promowany użytkownik',
 83+ 'nimbus-login' => 'Zaloguj się',
 84+ 'nimbus-logout' => 'Wylogować?',
 85+ 'nimbus-more-actions' => 'Inne akcje...',
 86+ 'nimbus-more-wikis' => 'Więcej wiki...',
 87+ 'nimbus-pages-can-be-edited' => '{{SITENAME}} jest wiki, więc strony mogą być edytowane przez każdego.<br />
 88+Strona jest niekompletna? Znalazłeś błąd?<br />
 89+<b>Zmień to!</b>',
 90+ 'nimbus-profile' => 'Profil',
 91+ 'nimbus-recent-contributors' => 'Ostatni edytorzy tej strony',
 92+ 'nimbus-recent-contributors-info' => 'Te osoby ostatnio edytowały ten artykuł.',
 93+ 'nimbus-search' => 'Wpisz szukane wyrażenie',
 94+ 'nimbus-signup' => 'Zarejestruj się',
 95+ 'nimbus-welcome' => 'Witaj, $1',
 96+);
\ No newline at end of file
Property changes on: trunk/extensions/skins/Nimbus/Nimbus.i18n.php
___________________________________________________________________
Added: svn:eol-style
197 + native
Index: trunk/extensions/skins/Nimbus/Nimbus.php
@@ -0,0 +1,51 @@
 2+<?php
 3+/**
 4+ * Nimbus skin
 5+ *
 6+ * @file
 7+ * @ingroup Skins
 8+ * @author Aaron Wright <aaron.wright@gmail.com>
 9+ * @author David Pean <david.pean@gmail.com>
 10+ * @author Inez Korczyński <korczynski@gmail.com>
 11+ * @author Jack Phoenix <jack@countervandalism.net>
 12+ * @copyright Copyright © 2008-2011 Aaron Wright, David Pean, Inez Korczyński, Jack Phoenix
 13+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
 14+ * @date September 4, 2011
 15+ *
 16+ * To install place the Nimbus folder (the folder containing this file!) into
 17+ * skins/ and add this line to your wiki's LocalSettings.php:
 18+ * require_once("$IP/skins/Nimbus/Nimbus.php");
 19+ */
 20+
 21+if( !defined( 'MEDIAWIKI' ) ) {
 22+ die( 'Not a valid entry point.' );
 23+}
 24+
 25+// Skin credits that will show up on Special:Version
 26+$wgExtensionCredits['skin'][] = array(
 27+ 'path' => __FILE__,
 28+ 'name' => 'Nimbus',
 29+ 'version' => '2.0',
 30+ 'author' => array( 'Aaron Wright', 'David Pean', 'Inez Korczyński', 'Jack Phoenix' ),
 31+ 'description' => 'Nimbus skin for MediaWiki',
 32+ 'url' => 'http://www.mediawiki.org/wiki/Nimbus_skin',
 33+);
 34+
 35+// Autoload the skin class, make it a valid skin, set up i18n, set up CSS & JS
 36+// (via ResourceLoader)
 37+$skinID = basename( dirname( __FILE__ ) );
 38+$dir = dirname( __FILE__ ) . '/';
 39+
 40+// The first instance must be strtolower()ed so that useskin=nimbus works and
 41+// so that it does *not* force an initial capital (i.e. we do NOT want
 42+// useskin=Nimbus) and the second instance is used to determine the name of
 43+// *this* file.
 44+$wgValidSkinNames[strtolower( $skinID )] = 'Nimbus';
 45+
 46+$wgAutoloadClasses['SkinNimbus'] = $dir . 'Nimbus.skin.php';
 47+$wgExtensionMessagesFiles['SkinNimbus'] = $dir . 'Nimbus.i18n.php';
 48+$wgResourceModules['skins.nimbus'] = array(
 49+ 'styles' => array( 'skins/Nimbus/nimbus/Nimbus.css' => array( 'media' => 'screen' ) ),
 50+ 'scripts' => 'skins/Nimbus/nimbus/Menu.js',
 51+ 'position' => 'top'
 52+);
\ No newline at end of file
Property changes on: trunk/extensions/skins/Nimbus/Nimbus.php
___________________________________________________________________
Added: svn:eol-style
153 + native
Index: trunk/extensions/skins/Nimbus/Nimbus.skin.php
@@ -0,0 +1,871 @@
 2+<?php
 3+/**
 4+ * Notes:
 5+ * Template:Didyouknow is a part of the interface (=should be fully protected on the wiki)
 6+ * If SocialProfile extension (+some other social extensions) is available,
 7+ * then more stuff will appear in the skin interface
 8+ *
 9+ * Feel free to improve source code documentation as you like,
 10+ * it's in a really crappy state currently, but better than nothing.
 11+ *
 12+ * @file
 13+ */
 14+if( !defined( 'MEDIAWIKI' ) ) {
 15+ die( -1 );
 16+}
 17+
 18+/**
 19+ * Inherit main code from SkinTemplate, set the CSS and template filter.
 20+ * @ingroup Skins
 21+ */
 22+class SkinNimbus extends SkinTemplate {
 23+ var $skinname = 'nimbus', $stylename = 'nimbus',
 24+ $template = 'NimbusTemplate', $useHeadElement = true;
 25+
 26+ function setupSkinUserCss( OutputPage $out ) {
 27+ parent::setupSkinUserCss( $out );
 28+
 29+ // Add CSS & JS
 30+ $out->addModuleStyles( array( 'skins.nimbus', 'skins.monobook' ) );
 31+ $out->addModuleScripts( 'skins.nimbus' );
 32+ }
 33+}
 34+
 35+/**
 36+ * Main skin class.
 37+ * @ingroup Skins
 38+ */
 39+class NimbusTemplate extends BaseTemplate {
 40+ /**
 41+ * @var Skin
 42+ */
 43+ var $skin;
 44+
 45+ /**
 46+ * Template filter callback for Nimbus skin.
 47+ * Takes an associative array of data set from a SkinTemplate-based
 48+ * class, and a wrapper for MediaWiki's localization database, and
 49+ * outputs a formatted page.
 50+ */
 51+ public function execute() {
 52+ global $wgContLang, $wgLogo, $wgOut, $wgStylePath, $wgTitle, $wgUser;
 53+ global $wgLangToCentralMap, $wgSupressPageTitle, $wgSupressSubTitle, $wgSupressPageCategories;
 54+ global $wgUserLevels;
 55+
 56+ $this->skin = $this->data['skin'];
 57+
 58+ // This trick copied over from Monaco.php to allow localized central wiki URLs
 59+ $central_url = !empty( $wgLangToCentralMap[$wgContLang->getCode()] ) ?
 60+ $wgLangToCentralMap[$wgContLang->getCode()] :
 61+ 'http://www.shoutwiki.com/';
 62+
 63+ $register_link = SpecialPage::getTitleFor( 'Userlogin', 'signup' );
 64+ $login_link = SpecialPage::getTitleFor( 'Userlogin' );
 65+ $logout_link = SpecialPage::getTitleFor( 'Userlogout' );
 66+ $profile_link = Title::makeTitle( NS_USER, $wgUser->getName() );
 67+ $main_page_link = Title::newMainPage();
 68+ $recent_changes_link = SpecialPage::getTitleFor( 'Recentchanges' );
 69+ $top_fans_link = SpecialPage::getTitleFor( 'TopUsers' );
 70+ $special_pages_link = SpecialPage::getTitleFor( 'Specialpages' );
 71+ $help_link = Title::newFromText( wfMsgForContent( 'helppage' ) );
 72+ $upload_file = SpecialPage::getTitleFor( 'Upload' );
 73+ $what_links_here = SpecialPage::getTitleFor( 'Whatlinkshere' );
 74+ $preferences_link = SpecialPage::getTitleFor( 'Preferences' );
 75+ $watchlist_link = SpecialPage::getTitleFor( 'Watchlist' );
 76+
 77+ // Suppress warnings to prevent notices about missing indexes in $this->data
 78+ wfSuppressWarnings();
 79+
 80+ $this->html( 'headelement' );
 81+?><div id="container">
 82+ <div id="header">
 83+ <div id="sw-logo">
 84+ <a href="<?php echo $central_url ?>">
 85+ <img src="<?php echo $wgStylePath ?>/Nimbus/nimbus/sw_logo.png" alt="" />
 86+ </a>
 87+ <span id="sw-category">ShoutWiki</span>
 88+ </div>
 89+ <div id="sw-more-category">
 90+ <div class="positive-button"><span><?php echo wfMsg( 'nimbus-more-wikis' ) ?></span></div>
 91+ </div>
 92+ <div id="more-wikis-menu" style="display:none;">
 93+ <?php
 94+ $more_wikis = $this->buildMoreWikis();
 95+
 96+ $x = 1;
 97+ foreach( $more_wikis as $link ) {
 98+ $ourClass = '';
 99+ if ( $x == count( $more_wikis ) ) {
 100+ $ourClass = ' class="border-fix"';
 101+ }
 102+ echo "<a href=\"{$link['href']}\"" . $ourClass .
 103+ ">{$link['text']}</a>\n";
 104+ if ( $x > 1 && $x % 2 == 0 ) {
 105+ echo '<div class="cleared"></div>' . "\n";
 106+ }
 107+ $x++;
 108+ }
 109+ ?>
 110+ </div><!-- #more-wikis-menu -->
 111+ <div id="wiki-login">
 112+<?php
 113+ if ( $wgUser->isLoggedIn() ) {
 114+ echo '<div id="login-message">' .
 115+ wfMsg( 'nimbus-welcome', '<b>' . $wgUser->getName() . '</b>' ) .
 116+ '</div>
 117+ <a class="positive-button" href="' . $profile_link->escapeFullURL() . '" rel="nofollow"><span>' . wfMsg( 'nimbus-profile' ) . '</span></a>
 118+ <a class="negative-button" href="' . $logout_link->escapeFullURL() . '"><span>' . wfMsg( 'nimbus-logout' ) . '</span></a>';
 119+ } else {
 120+ echo '<a class="positive-button" href="' . $register_link->escapeFullURL() . '" rel="nofollow"><span>' . wfMsg( 'nimbus-signup' ) . '</span></a>
 121+ <a class="positive-button" href="' . $login_link->escapeFullURL() . '" id="nimbusLoginButton"><span>' . wfMsg( 'nimbus-login' ) . '</span></a>';
 122+ }
 123+?>
 124+ </div><!-- #wiki-login -->
 125+ </div><!-- #header -->
 126+ <div id="site-header">
 127+ <div id="site-logo">
 128+ <a href="<?php echo $main_page_link->escapeFullURL() ?>" rel="nofollow">
 129+ <img src="<?php echo $wgLogo ?>" alt="" />
 130+ </a>
 131+ </div>
 132+ </div>
 133+ <div id="side-bar">
 134+ <div id="navigation">
 135+ <div id="navigation-title"><?php echo wfMsg( 'navigation' ) ?></div>
 136+ <script type="text/javascript">
 137+ var submenu_array = new Array();
 138+ var menuitem_array = new Array();
 139+ var submenuitem_array = new Array();
 140+ </script>
 141+ <?php
 142+ $this->navmenu_array = array();
 143+ $this->navmenu = $this->getNavigationMenu();
 144+ echo $this->printMenu( 0 );
 145+ ?>
 146+ <div id="other-links-container">
 147+ <div id="other-links">
 148+ <?php
 149+ // Only show the link to Special:TopUsers if wAvatar class exists and $wgUserLevels is an array
 150+ if ( class_exists( 'wAvatar' ) && is_array( $wgUserLevels ) ) {
 151+ echo '<a href="' . $top_fans_link->escapeFullURL() . '">' . wfMsg( 'topusers' ) . '</a>';
 152+ }
 153+ ?>
 154+ <a href="<?php echo $recent_changes_link->escapeFullURL() ?>"><?php echo wfMsg( 'recentchanges' ) ?></a>
 155+ <div class="cleared"></div>
 156+ <?php if ( $wgUser->isLoggedIn() ) { ?>
 157+ <a href="<?php echo $watchlist_link->escapeFullURL() ?>"><?php echo wfMsg( 'watchlist' ) ?></a>
 158+ <a href="<?php echo $preferences_link->escapeFullURL() ?>"><?php echo wfMsg( 'preferences' ) ?></a>
 159+ <div class="cleared"></div>
 160+ <?php } ?>
 161+ <a href="<?php echo $help_link->escapeFullURL() ?>"><?php echo wfMsg( 'help' ) ?></a>
 162+ <a href="<?php echo $special_pages_link->escapeFullURL() ?>"><?php echo wfMsg( 'specialpages' ) ?></a>
 163+ <div class="cleared"></div>
 164+ </div>
 165+ </div>
 166+ </div>
 167+ <div id="search-box">
 168+ <div id="search-title"><?php echo wfMsg( 'search' ) ?></div>
 169+ <form method="get" action="<?php echo $this->text( 'wgScript' ) ?>" name="search_form" id="searchform">
 170+ <input id="searchInput" type="text" class="search-field" name="search" value="<?php echo wfMsg( 'nimbus-search' ) ?>" onclick="this.value=''" />
 171+ <input type="image" src="<?php echo $wgStylePath ?>/Nimbus/nimbus/search_button.gif" class="search-button" alt="search" />
 172+ </form>
 173+ <div class="cleared"></div>
 174+ <div class="bottom-left-nav">
 175+ <?php
 176+ if( function_exists( 'wfRandomCasualGame' ) ) {
 177+ echo wfGetRandomGameUnit();
 178+ }
 179+ ?>
 180+ <div class="bottom-left-nav-container">
 181+ <h2><?php echo wfMsg( 'nimbus-didyouknow' ) ?></h2>
 182+ <?php echo $wgOut->parse( '{{Didyouknow}}' ) ?>
 183+ </div>
 184+ <?php
 185+ if( function_exists( 'wfRandomImageByCategory' ) ) {
 186+ $randomImage = $wgOut->parse(
 187+ '<randomimagebycategory width="200" categories="Featured Image" />',
 188+ false
 189+ );
 190+ echo '<div class="bottom-left-nav-container">
 191+ <h2>' . wfMsg( 'nimbus-featuredimage' ) . '</h2>' .
 192+ $randomImage . '</div>';
 193+ }
 194+
 195+ if( function_exists( 'wfRandomFeaturedUser' ) ) {
 196+ $randomUser = $wgOut->parse(
 197+ '<randomfeatureduser period="weekly" />',
 198+ false
 199+ );
 200+ echo '<div class="bottom-left-nav-container">
 201+ <h2>' . wfMsg( 'nimbus-featureduser' ) . '</h2>' .
 202+ $randomUser . '</div>';
 203+ }
 204+ ?>
 205+ </div>
 206+ </div>
 207+ </div>
 208+ <div id="body-container">
 209+ <?php echo $this->actionBar(); ?>
 210+ <div id="article">
 211+ <div id="mw-js-message" style="display:none;"></div>
 212+
 213+ <div id="article-body">
 214+ <?php if( $this->data['sitenotice'] ) { ?><div id="siteNotice"><?php $this->html( 'sitenotice' ) ?></div><?php } ?>
 215+ <div id="article-text" class="clearfix">
 216+ <?php if( !$wgSupressPageTitle ) { ?><h1 class="pagetitle"><?php $this->html( 'title' ) ?></h1><?php } ?>
 217+ <?php if( !$wgSupressSubTitle ) { ?><p class='subtitle'><?php $this->msg( 'tagline' ) ?></p><?php } ?>
 218+ <?php if( $this->data['undelete'] ) { ?><div id="contentSub2"><?php $this->html( 'undelete' ) ?></div><?php } ?>
 219+ <?php if( $this->data['newtalk'] ) { ?><div class="usermessage"><?php $this->html( 'newtalk' ) ?></div><?php } ?>
 220+ <!-- start content -->
 221+ <?php $this->html( 'bodytext' ) ?>
 222+ <?php if( $this->data['printfooter'] ) { ?><div class="printfooter"><?php $this->html( 'printfooter' ); ?></div><?php } ?>
 223+ <?php $this->html( 'debughtml' ); ?>
 224+ <?php if( $this->data['catlinks'] && !$wgSupressPageCategories ) { $this->html( 'catlinks' ); } ?>
 225+ <!-- end content -->
 226+ <?php if( $this->data['dataAfterContent'] ) { $this->html( 'dataAfterContent' ); } ?>
 227+ </div>
 228+ </div>
 229+ </div>
 230+ </div>
 231+ <?php echo $this->footer(); ?>
 232+</div><!-- #container -->
 233+<?php
 234+ $this->printTrail();
 235+ echo Html::closeElement( 'body' );
 236+ echo Html::closeElement( 'html' );
 237+ wfRestoreWarnings();
 238+ } // end of execute() method
 239+
 240+ /**
 241+ * Parse MediaWiki-style messages called 'v3sidebar' to array of links,
 242+ * saving hierarchy structure.
 243+ * Message parsing is limited to first 150 lines only.
 244+ */
 245+ private function getNavigationMenu() {
 246+ $message_key = 'sidebar';
 247+ $message = trim( wfMsg( $message_key ) );
 248+
 249+ if( wfEmptyMsg( $message_key, $message ) ) {
 250+ return array();
 251+ }
 252+
 253+ $lines = array_slice( explode( "\n", $message ), 0, 150 );
 254+
 255+ if( count( $lines ) == 0 ) {
 256+ return array();
 257+ }
 258+
 259+ $nodes = array();
 260+ $nodes[] = array();
 261+ $lastDepth = 0;
 262+ $i = 0;
 263+ foreach( $lines as $line ) {
 264+ # ignore empty lines
 265+ if( strlen( $line ) == 0 ) {
 266+ continue;
 267+ }
 268+
 269+ $node = $this->parseItem( $line );
 270+ $node['depth'] = strrpos( $line, '*' ) + 1;
 271+
 272+ if( $node['depth'] == $lastDepth ) {
 273+ $node['parentIndex'] = $nodes[$i]['parentIndex'];
 274+ } elseif( $node['depth'] == $lastDepth + 1 ) {
 275+ $node['parentIndex'] = $i;
 276+ } elseif(
 277+ // ignore crap that works on Monobook, but not on other skins
 278+ $node['text'] == 'SEARCH' ||
 279+ $node['text'] == 'TOOLBOX' ||
 280+ $node['text'] == 'LANGUAGES'
 281+ )
 282+ {
 283+ continue;
 284+ } else {
 285+ for( $x = $i; $x >= 0; $x-- ) {
 286+ if( $x == 0 ) {
 287+ $node['parentIndex'] = 0;
 288+ break;
 289+ }
 290+ if( $nodes[$x]['depth'] == $node['depth'] - 1 ) {
 291+ $node['parentIndex'] = $x;
 292+ break;
 293+ }
 294+ }
 295+ }
 296+
 297+ $nodes[$i + 1] = $node;
 298+ $nodes[$node['parentIndex']]['children'][] = $i+1;
 299+ $lastDepth = $node['depth'];
 300+ $i++;
 301+ }
 302+ return $nodes;
 303+ }
 304+
 305+ /**
 306+ * Parse one line form MediaWiki-style message as array of 'text' and 'href'
 307+ */
 308+ private function parseItem( $line ) {
 309+ $line_temp = explode( '|', trim( $line, '* ' ), 2 );
 310+ if( count( $line_temp ) > 1 ) {
 311+ $line = $line_temp[1];
 312+ $link = wfMsgForContent( $line_temp[0] );
 313+ } else {
 314+ $line = $line_temp[0];
 315+ $link = $line_temp[0];
 316+ }
 317+
 318+ if( wfEmptyMsg( $line, $text = wfMsg( $line ) ) ) {
 319+ $text = $line;
 320+ }
 321+
 322+ if( $link != null ) {
 323+ if( wfEmptyMsg( $line_temp[0], $link ) ) {
 324+ $link = $line_temp[0];
 325+ }
 326+ if ( preg_match( '/^(?:' . wfUrlProtocols() . ')/', $link ) ) {
 327+ $href = $link;
 328+ } else {
 329+ $title = Title::newFromText( $link );
 330+ if( $title ) {
 331+ $title = $title->fixSpecialName();
 332+ $href = $title->getLocalURL();
 333+ } else {
 334+ $href = '#';
 335+ }
 336+ }
 337+ }
 338+ return array( 'text' => $text, 'href' => $href );
 339+ }
 340+
 341+ /**
 342+ * Generate and return "More Wikis" menu, showing links to related wikis.
 343+ *
 344+ * @return Array: "More Wikis" menu
 345+ */
 346+ private function buildMoreWikis() {
 347+ $messageKey = 'morewikis';
 348+ $message = trim( wfMsg( $messageKey ) );
 349+
 350+ if( wfEmptyMsg( $messageKey, $message ) ) {
 351+ return array();
 352+ }
 353+
 354+ $lines = array_slice( explode( "\n", $message ), 0, 150 );
 355+
 356+ if( count( $lines ) == 0 ) {
 357+ return array();
 358+ }
 359+
 360+ foreach( $lines as $line ) {
 361+ $moreWikis[] = $this->parseItem( $line );
 362+ }
 363+
 364+ return $moreWikis;
 365+ }
 366+
 367+ /**
 368+ * Prints the sidebar menu & all necessary JS
 369+ */
 370+ private function printMenu( $id, $last_count = '', $level = 0 ) {
 371+ global $wgContLang, $wgStylePath;
 372+
 373+ $menu_output = '';
 374+ $script_output = '';
 375+ $output = '';
 376+ $count = 1;
 377+
 378+ if( isset( $this->navmenu[$id]['children'] ) ) {
 379+ $script_output .= '<script type="text/javascript">/*<![CDATA[*/';
 380+ if ( $level ) {
 381+ $menu_output .= '<div class="sub-menu" id="sub-menu' . $last_count . '" style="display:none;">';
 382+ $script_output .= 'submenu_array["sub-menu' . $last_count . '"] = "' . $last_count . '";' . "\n";
 383+ $script_output .= 'document.getElementById("sub-menu' . $last_count . '").onmouseout = NimbusSkin.clearMenu;' . "\n";
 384+ $script_output .= 'if( document.getElementById("sub-menu' . $last_count . '").captureEvents ) document.getElementById("sub-menu' . $last_count . '").captureEvents(Event.MOUSEOUT);' . "\n";
 385+ }
 386+ foreach( $this->navmenu[$id]['children'] as $child ) {
 387+ $mouseover = ' onmouseover="NimbusSkin.' . ( $level ? 'sub_' : '' ) . 'menuItemAction(\'' .
 388+ ( $level ? $last_count . '_' : '_' ) . $count . '\');"';
 389+ $mouseout = ' onmouseout="NimbusSkin.clearBackground(\'_' . $count . '\')"' . "\n";
 390+ $menu_output .= '<div class="' . ( $level ? 'sub-' : '' ) . 'menu-item' .
 391+ ( ( $count == sizeof( $this->navmenu[$id]['children'] ) ) ? ' border-fix' : '' ) .
 392+ '" id="' . ( $level ? 'sub-' : '' ) . 'menu-item' .
 393+ ( $level ? $last_count . '_' : '_' ) . $count . '">';
 394+ $menu_output .= '<a id="' . ( $level ? 'a-sub-' : 'a-' ) . 'menu-item' .
 395+ ( $level ? $last_count . '_' : '_' ) . $count . '" href="' .
 396+ ( !empty( $this->navmenu[$child]['href'] ) ? htmlspecialchars( $this->navmenu[$child]['href'] ) : '#' ) . '">';
 397+
 398+ if( !$level ) {
 399+ $script_output .= 'menuitem_array["menu-item' . $last_count . '_' . $count . '"] = "' . $last_count . '_' . $count . '";';
 400+ $script_output .= 'document.getElementById("menu-item' . $last_count . '_' . $count . '").onmouseover = NimbusSkin.menuItemAction;' . "\n";
 401+ $script_output .= 'if( document.getElementById("menu-item' . $last_count . '_' .$count . '").captureEvents) document.getElementById("menu-item' . $last_count . '_' . $count . '").captureEvents(Event.MOUSEOVER);' . "\n";
 402+ $script_output .= 'document.getElementById("menu-item' . $last_count . '_' . $count . '").onmouseout = NimbusSkin.clearBackground;' . "\n";
 403+ $script_output .= 'if( document.getElementById("menu-item' . $last_count . '_' . $count . '").captureEvents) document.getElementById("menu-item' . $last_count . '_' . $count . '").captureEvents(Event.MOUSEOUT);' . "\n";
 404+
 405+ $script_output .= 'document.getElementById("a-menu-item' . $last_count . '_' . $count . '").onmouseover = NimbusSkin.menuItemAction;if( document.getElementById("a-menu-item' . $last_count . '_' . $count . '").captureEvents) document.getElementById("a-menu-item' . $last_count . '_' . $count . '").captureEvents(Event.MOUSEOVER);' . "\n";
 406+ } else {
 407+ $script_output .= 'submenuitem_array["sub-menu-item' . $last_count . '_' . $count . '"] = "' . $last_count . '_' . $count . '";';
 408+ $script_output .= 'document.getElementById("sub-menu-item' . $last_count . '_' . $count . '").onmouseover = NimbusSkin.sub_menuItemAction;' . "\n";
 409+ $script_output .= 'if( document.getElementById("sub-menu-item' . $last_count . '_' . $count . '").captureEvents) document.getElementById("sub-menu-item' . $last_count . '_' . $count . '").captureEvents(Event.MOUSEOVER);' . "\n";
 410+ }
 411+ $menu_output .= $this->navmenu[$child]['text'];
 412+ // If a menu item has submenus, show an arrow so that the user
 413+ // knows that there are submenus available
 414+ if( sizeof( $this->navmenu[$child]['children'] ) ) {
 415+ $menu_output .= '<img src="' . $wgStylePath . '/Nimbus/nimbus/right_arrow' .
 416+ ( $wgContLang->isRTL() ? '_rtl' : '' ) .
 417+ '.gif" alt="" class="sub-menu-button" />';
 418+ }
 419+ $menu_output .= '</a>';
 420+ //$menu_output .= $id . ' ' . sizeof( $this->navmenu[$child]['children'] ) . ' ' . $child . ' ';
 421+ $menu_output .= $this->printMenu( $child, $last_count . '_' . $count, $level + 1 );
 422+ //$menu_output .= 'last';
 423+ $menu_output .= '</div>';
 424+ $count++;
 425+ }
 426+ if ( $level ) {
 427+ $menu_output .= '</div>';
 428+ }
 429+ $script_output .= '/*]]>*/</script>';
 430+ }
 431+
 432+ if ( $menu_output . $script_output != '' ) {
 433+ $output .= "<div id=\"menu{$last_count}\">";
 434+ $output .= $menu_output . $script_output;
 435+ $output .= '</div>';
 436+ }
 437+
 438+ return $output;
 439+ }
 440+
 441+ /**
 442+ * Do some tab-related magic
 443+ *
 444+ * @param $title Object: instance of Title class
 445+ * @param $message String: name of a MediaWiki: message
 446+ * @param $selected Boolean?
 447+ * @param $query String: empty by default, but if not empty, query to append (such as action=edit)
 448+ * @param $checkEdit Boolean: false by default
 449+ *
 450+ * @return array
 451+ */
 452+ function tabAction( $title, $message, $selected, $query = '', $checkEdit = false ) {
 453+ $classes = array();
 454+ if( $selected ) {
 455+ $classes[] = 'selected';
 456+ }
 457+ if( $checkEdit && $title->getArticleId() == 0 ) {
 458+ $query = 'action=edit';
 459+ $classes[] = ' new';
 460+ }
 461+
 462+ $text = wfMsg( $message );
 463+ if ( wfEmptyMsg( $message, $text ) ) {
 464+ global $wgContLang;
 465+ $text = $wgContLang->getFormattedNsText(
 466+ MWNamespace::getSubject( $title->getNamespace() )
 467+ );
 468+ }
 469+
 470+ return array(
 471+ 'class' => implode( ' ', $classes ),
 472+ 'text' => $text,
 473+ 'href' => $title->getLocalURL( $query )
 474+ );
 475+ }
 476+
 477+ function buildActionBar() {
 478+ global $wgRequest, $wgTitle, $wgOut, $wgUser;
 479+
 480+ $action = $wgRequest->getText( 'action' );
 481+ $section = $wgRequest->getText( 'section' );
 482+ $content_actions = array();
 483+
 484+ if( $wgTitle->getNamespace() != NS_SPECIAL ) {
 485+ $subjpage = $wgTitle->getSubjectPage();
 486+ $talkpage = $wgTitle->getTalkPage();
 487+ $nskey = $wgTitle->getNamespaceKey();
 488+ $prevent_active_tabs = ''; // Prevent E_NOTICE ;-)
 489+
 490+ $content_actions[$nskey] = $this->tabAction(
 491+ $subjpage,
 492+ $nskey,
 493+ !$wgTitle->isTalkPage() && !$prevent_active_tabs,
 494+ '',
 495+ true
 496+ );
 497+
 498+ $content_actions['talk'] = $this->tabAction(
 499+ $talkpage,
 500+ 'talk',
 501+ $wgTitle->isTalkPage() && !$prevent_active_tabs,
 502+ '',
 503+ true
 504+ );
 505+
 506+ if ( $wgTitle->quickUserCan( 'edit' ) && ( $wgTitle->exists() || $wgTitle->quickUserCan( 'create' ) ) ) {
 507+ $isTalk = $wgTitle->isTalkPage();
 508+ $isTalkClass = $isTalk ? ' istalk' : '';
 509+
 510+ $content_actions['edit'] = array(
 511+ 'class' => ( ( ( $action == 'edit' || $action == 'submit' ) && $section != 'new' ) ? 'selected' : '' ) . $isTalkClass,
 512+ 'text' => wfMsg( 'edit' ),
 513+ 'href' => $wgTitle->getLocalURL( $this->skin->editUrlOptions() )
 514+ );
 515+
 516+ if ( $isTalk || $wgOut->showNewSectionLink() ) {
 517+ $content_actions['addsection'] = array(
 518+ 'class' => $section == 'new' ? 'selected' : false,
 519+ 'text' => wfMsg( 'addsection' ),
 520+ 'href' => $wgTitle->getLocalURL( 'action=edit&section=new' )
 521+ );
 522+ }
 523+ } else {
 524+ $content_actions['viewsource'] = array(
 525+ 'class' => ( $action == 'edit' ) ? 'selected' : false,
 526+ 'text' => wfMsg( 'viewsource' ),
 527+ 'href' => $wgTitle->getLocalURL( $this->skin->editUrlOptions() )
 528+ );
 529+ }
 530+
 531+ if ( $wgTitle->getArticleId() ) {
 532+ $content_actions['history'] = array(
 533+ 'class' => ( $action == 'history' ) ? 'selected' : false,
 534+ 'text' => wfMsg( 'history_short' ),
 535+ 'href' => $wgTitle->getLocalURL( 'action=history' )
 536+ );
 537+
 538+ if ( $wgTitle->getNamespace() !== NS_MEDIAWIKI && $wgUser->isAllowed( 'protect' ) ) {
 539+ if( !$wgTitle->isProtected() ) {
 540+ $content_actions['protect'] = array(
 541+ 'class' => ( $action == 'protect' ) ? 'selected' : false,
 542+ 'text' => wfMsg( 'protect' ),
 543+ 'href' => $wgTitle->getLocalURL( 'action=protect' )
 544+ );
 545+
 546+ } else {
 547+ $content_actions['unprotect'] = array(
 548+ 'class' => ( $action == 'unprotect' ) ? 'selected' : false,
 549+ 'text' => wfMsg( 'unprotect' ),
 550+ 'href' => $wgTitle->getLocalURL( 'action=unprotect' )
 551+ );
 552+ }
 553+ }
 554+ if( $wgUser->isAllowed( 'delete' ) ) {
 555+ $content_actions['delete'] = array(
 556+ 'class' => ( $action == 'delete' ) ? 'selected' : false,
 557+ 'text' => wfMsg( 'delete' ),
 558+ 'href' => $wgTitle->getLocalURL( 'action=delete' )
 559+ );
 560+ }
 561+ if ( $wgTitle->quickUserCan( 'move' ) ) {
 562+ $moveTitle = SpecialPage::getTitleFor( 'Movepage', $wgTitle->getPrefixedDBkey() );
 563+ $content_actions['move'] = array(
 564+ 'class' => $wgTitle->isSpecial( 'Movepage' ) ? 'selected' : false,
 565+ 'text' => wfMsg( 'move' ),
 566+ 'href' => $moveTitle->getLocalURL()
 567+ );
 568+ }
 569+
 570+ $whatlinkshereTitle = SpecialPage::getTitleFor( 'Whatlinkshere', $wgTitle->getPrefixedDBkey() );
 571+ $content_actions['whatlinkshere'] = array(
 572+ 'class' => $wgTitle->isSpecial( 'Whatlinkshere' ) ? 'selected' : false,
 573+ 'text' => wfMsg( 'whatlinkshere' ),
 574+ 'href' => $whatlinkshereTitle->getLocalURL()
 575+ );
 576+
 577+ } else {
 578+ // Article doesn't exist or is deleted
 579+ if( $wgUser->isAllowed( 'delete' ) ) {
 580+ if( $n = $wgTitle->isDeleted() ) {
 581+ $undelTitle = SpecialPage::getTitleFor( 'Undelete' );
 582+ $content_actions['undelete'] = array(
 583+ 'class' => false,
 584+ 'text' => wfMsgExt( 'undelete_short', array( 'parsemag' ), $n ),
 585+ 'href' => $undelTitle->getLocalURL( 'target=' . urlencode( $wgTitle->getPrefixedDBkey() ) )
 586+ #'href' => self::makeSpecialUrl( "Undelete/$this->thispage" )
 587+ );
 588+ }
 589+ }
 590+ }
 591+ } else {
 592+ /* show special page tab */
 593+ if( $wgTitle->isSpecial( 'QuizGameHome' ) && $wgRequest->getVal( 'questionGameAction' ) == 'editItem' ) {
 594+ global $wgQuizID;
 595+ $quiz = SpecialPage::getTitleFor( 'QuizGameHome' );
 596+ $content_actions[$wgTitle->getNamespaceKey()] = array(
 597+ 'class' => 'selected',
 598+ 'text' => wfMsg( 'nstab-special' ),
 599+ 'href' => $quiz->getFullURL( 'questionGameAction=renderPermalink&permalinkID=' . $wgQuizID ),
 600+ );
 601+ } else {
 602+ $content_actions[$wgTitle->getNamespaceKey()] = array(
 603+ 'class' => 'selected',
 604+ 'text' => wfMsg( 'nstab-special' ),
 605+ 'href' => $wgRequest->getRequestURL(), // @bug 2457, 2510
 606+ );
 607+ }
 608+
 609+ if( $wgTitle->isSpecial( 'QuizGameHome' ) && $wgUser->isAllowed( 'quizgameadmin' ) ) {
 610+ global $wgQuizID;
 611+ $quiz = SpecialPage::getTitleFor( 'QuizGameHome' );
 612+ $content_actions['edit'] = array(
 613+ 'class' => ( $wgRequest->getVal( 'questionGameAction' ) == 'editItem' ) ? 'selected' : false,
 614+ 'text' => wfMsg( 'edit' ),
 615+ 'href' => $quiz->getFullURL( 'questionGameAction=editItem&quizGameId=' . $wgQuizID ), // @bug 2457, 2510
 616+ );
 617+ }
 618+ if( $wgTitle->isSpecial( 'PictureGameHome' ) && $wgUser->isAllowed( 'picturegameadmin' ) ) {
 619+ global $wgPictureGameID;
 620+ $quiz = SpecialPage::getTitleFor( 'PictureGameHome' );
 621+ $content_actions['edit'] = array(
 622+ 'class' => ( $wgRequest->getVal( 'picGameAction' ) == 'editPanel' ) ? 'selected' : false,
 623+ 'text' => wfMsg( 'edit' ),
 624+ 'href' => $quiz->getFullURL( 'picGameAction=editPanel&id=' . $wgPictureGameID ), // @bug 2457, 2510
 625+ );
 626+ }
 627+ }
 628+
 629+ return $content_actions;
 630+ }
 631+
 632+ /**
 633+ * Gets the links for the action bar (edit, talk etc.)
 634+ *
 635+ * @return array
 636+ */
 637+ function getActionBarLinks() {
 638+ global $wgTitle;
 639+
 640+ $left = array(
 641+ $wgTitle->getNamespaceKey(), 'edit', 'talk', 'viewsource',
 642+ 'addsection', 'history'
 643+ );
 644+ $actions = $this->buildActionBar();
 645+ $moreLinks = null;
 646+
 647+ foreach( $actions as $action => $value ) {
 648+ if ( in_array( $action, $left ) ) {
 649+ $leftLinks[$action] = $value;
 650+ } else {
 651+ $moreLinks[$action] = $value;
 652+ }
 653+ }
 654+
 655+ return array( $leftLinks, $moreLinks );
 656+ }
 657+
 658+ /**
 659+ * Generates the actual action bar - watch/unwatch links for logged-in users,
 660+ * "More actions" menu that has some other tools (WhatLinksHere special page etc.)
 661+ *
 662+ * @return $output HTML for action bar
 663+ */
 664+ function actionBar() {
 665+ global $wgUser, $wgTitle, $wgStylePath;
 666+
 667+ $full_title = Title::makeTitle( $wgTitle->getNamespace(), $wgTitle->getText() );
 668+
 669+ $output = '<div id="action-bar">';
 670+ // Watch/unwatch link for registered users on namespaces that can be
 671+ // watched (i.e. everything but the Special: namespace)
 672+ if ( $wgUser->isLoggedIn() && $wgTitle->getNamespace() != NS_SPECIAL ) {
 673+ $output .= '<div id="article-controls">
 674+ <img src="' . $wgStylePath . '/Nimbus/nimbus/plus.gif" alt="" />';
 675+
 676+ // In 1.16, all we needed was the ID for AJAX page watching to work
 677+ // In 1.18, we need the class *and* the title...w/o the title, the
 678+ // new, jQuery-ified version of the AJAX page watching code dies
 679+ // if the title attribute is not present
 680+ if ( !$wgTitle->userIsWatching() ) {
 681+ $output .= '<a id="ca-watch" class="mw-watchlink" href="' .
 682+ $full_title->escapeFullURL( 'action=watch' ) . '" title="' .
 683+ wfMsg( 'tooltip-ca-watch' ) . '">' .
 684+ wfMsg( 'watch' ) .
 685+ '</a>';
 686+ } else {
 687+ $output .= '<a id="ca-unwatch" class="mw-watchlink" href="' .
 688+ $full_title->escapeFullURL( 'action=unwatch' ) . '" title="' .
 689+ wfMsg( 'tooltip-ca-unwatch' ) . '">' .
 690+ wfMsg( 'unwatch' ) .
 691+ '</a>';
 692+ }
 693+
 694+ $output .= '</div>';
 695+ }
 696+
 697+ $output .= '<div id="article-tabs">';
 698+
 699+ list( $leftLinks, $moreLinks ) = $this->getActionBarLinks();
 700+
 701+ foreach( $leftLinks as $key => $val ) {
 702+ $output .= '<a href="' . htmlspecialchars( $val['href'] ) . '" class="' .
 703+ ( ( strpos( $val['class'], 'selected' ) === 0 ) ? 'tab-on' : 'tab-off' ) .
 704+ ( strpos( $val['class'], 'new' ) && ( strpos( $val['class'], 'new' ) > 0 ) ? ' tab-new' : '' ) . '" rel="nofollow">
 705+ <span>' . ucfirst( $val['text'] ) . '</span>
 706+ </a>';
 707+ }
 708+
 709+ if ( count( $moreLinks ) > 0 ) {
 710+ $output .= '<div class="more-tab-off" id="more-tab">
 711+ <span>' . wfMsg( 'nimbus-more-actions' ) . '</span>';
 712+
 713+ $output .= '<div class="article-more-actions" id="article-more-container" style="display:none">';
 714+
 715+ $more_links_count = 1;
 716+
 717+ foreach( $moreLinks as $key => $val ) {
 718+ if ( count( $moreLinks ) == $more_links_count ) {
 719+ $border_fix = ' class="border-fix"';
 720+ } else {
 721+ $border_fix = '';
 722+ }
 723+
 724+ $output .= '<a href="' . htmlspecialchars( $val['href'] ) .
 725+ "\"{$border_fix} rel=\"nofollow\">" .
 726+ ucfirst( $val['text'] ) .
 727+ '</a>';
 728+
 729+ $more_links_count++;
 730+ }
 731+
 732+ $output .= '</div>
 733+ </div>';
 734+ }
 735+
 736+ $output .= '<div class="cleared"></div>
 737+ </div>
 738+ </div>';
 739+
 740+ return $output;
 741+ }
 742+
 743+ /**
 744+ * Returns the footer for a page
 745+ *
 746+ * @return $footer The generated footer, including recent editors
 747+ */
 748+ function footer() {
 749+ global $wgMemc, $wgTitle, $wgUploadPath;
 750+
 751+ $title = Title::makeTitle( $wgTitle->getNamespace(), $wgTitle->getText() );
 752+ $pageTitleId = $wgTitle->getArticleID();
 753+ $main_page = Title::newMainPage();
 754+ $about = Title::makeTitle( wfMsgForContent( 'aboutpage' ) );
 755+ $special = SpecialPage::getTitleFor( 'Specialpages' );
 756+ $help = SpecialPage::getTitleFor( 'Userlogin', 'signup' );
 757+ $disclaimerPage = Title::newFromText( wfMsgForContent( 'disclaimerpage' ) );
 758+
 759+ $footerShow = array( NS_MAIN, NS_FILE );
 760+ if ( defined( 'NS_VIDEO' ) ) {
 761+ $footerShow[] = NS_VIDEO;
 762+ }
 763+ $footer = '';
 764+
 765+ // Show the list of recent editors and their avatars if the page is in
 766+ // one of the allowed namespaces and it is not the main page
 767+ if(
 768+ in_array( $wgTitle->getNamespace(), $footerShow ) &&
 769+ ( $pageTitleId != $main_page->getArticleID() )
 770+ )
 771+ {
 772+ $key = wfMemcKey( 'recenteditors', 'list', $pageTitleId );
 773+ $data = $wgMemc->get( $key );
 774+ $editors = array();
 775+ if( !$data ) {
 776+ wfDebug( __METHOD__ . ": Loading recent editors for page {$pageTitleId} from DB\n" );
 777+ $dbw = wfGetDB( DB_MASTER );
 778+ $res = $dbw->select(
 779+ 'revision',
 780+ array( 'DISTINCT rev_user', 'rev_user_text' ),
 781+ array(
 782+ 'rev_page' => $pageTitleId,
 783+ 'rev_user <> 0',
 784+ "rev_user_text <> 'MediaWiki default'"
 785+ ),
 786+ __METHOD__,
 787+ array( 'ORDER BY' => 'rev_user_text ASC', 'LIMIT' => 8 )
 788+ );
 789+
 790+ foreach ( $res as $row ) {
 791+ // Prevent blocked users from appearing
 792+ $user = User::newFromId( $row->rev_user );
 793+ if( !$user->isBlocked() ) {
 794+ $editors[] = array(
 795+ 'user_id' => $row->rev_user,
 796+ 'user_name' => $row->rev_user_text
 797+ );
 798+ }
 799+ }
 800+
 801+ $wgMemc->set( $key, $editors, 60 * 5 );
 802+ } else {
 803+ wfDebug( __METHOD__ . ": Loading recent editors for page {$pageTitleId} from cache\n" );
 804+ $editors = $data;
 805+ }
 806+
 807+ $x = 1;
 808+ $per_row = 4;
 809+
 810+ if( count( $editors ) > 0 ) {
 811+ $footer .= '<div id="footer-container">
 812+ <div id="footer-actions">
 813+ <h2>' . wfMsg( 'nimbus-contribute' ) . '</h2>'
 814+ . wfMsgExt( 'nimbus-pages-can-be-edited', 'parsemag' ) .
 815+ '<a href="' . $title->escapeFullURL( $this->skin->editUrlOptions() ) . '" rel="nofollow" class="edit-action">' . wfMsg( 'editthispage' ) . '</a>
 816+ <a href="' . $title->getTalkPage()->escapeFullURL() . '" rel="nofollow" class="discuss-action">' . wfMsg( 'talkpage' ) . '</a>
 817+ <a href="' . $title->escapeFullURL( 'action=history' ) . '" rel="nofollow" class="page-history-action">' . wfMsg( 'pagehist' ) . '</a>';
 818+ $footer .= '</div>';
 819+ // Only load the page editors' avatars if wAvatar class exists and $wgUserLevels is an array
 820+ global $wgUserLevels;
 821+ if ( class_exists( 'wAvatar' ) && is_array( $wgUserLevels ) ) {
 822+ $footer .= '<div id="footer-contributors">
 823+ <h2>' . wfMsg( 'nimbus-recent-contributors' ) . '</h2>'
 824+ . wfMsg( 'nimbus-recent-contributors-info' );
 825+
 826+ foreach( $editors as $editor ) {
 827+ $avatar = new wAvatar( $editor['user_id'], 'm' );
 828+ $user_title = Title::makeTitle( NS_USER, $editor['user_name'] );
 829+
 830+ $footer .= '<a href="' . $user_title->escapeFullURL() . '" rel="nofollow">
 831+ <img src="' . $wgUploadPath . '/avatars/' .
 832+ $avatar->getAvatarImage() . '" alt="' .
 833+ htmlspecialchars( $editor['user_name'] ) .
 834+ '" title="' .
 835+ htmlspecialchars( $editor['user_name'] ) . '" />
 836+ </a>';
 837+
 838+ if( $x == count( $editors ) || $x != 1 && $x % $per_row == 0 ) {
 839+ $footer .= '<br />';
 840+ }
 841+
 842+ $x++;
 843+ }
 844+
 845+ $footer .= '</div>';
 846+ }
 847+
 848+ $footer .= '</div>';
 849+ }
 850+ }
 851+
 852+ $footer .= '<div id="footer-bottom">
 853+ <a href="' . $main_page->escapeLocalURL() . '" rel="nofollow">' . wfMsg( 'mainpage' ) . '</a>
 854+ <a href="' . $about->escapeLocalURL() . '" rel="nofollow">' . wfMsg( 'about' ) . '</a>
 855+ <a href="' . $special->escapeLocalURL() . '" rel="nofollow">' . wfMsg( 'specialpages' ) . '</a>
 856+ <a href="' . $help->escapeLocalURL() . '" rel="nofollow">' . wfMsg( 'help' ) . '</a>
 857+ <a href="' . $disclaimerPage->escapeLocalURL() . '" rel="nofollow">' . wfMsg( 'disclaimers' ) . '</a>';
 858+
 859+ // "Advertise" link on the footer, but only if a URL has been specified
 860+ // in the MediaWiki:Nimbus-advertise-url system message
 861+ $adURL = trim( wfMsgForContent( 'nimbus-advertise-url' ) );
 862+ if( !wfEmptyMsg( 'nimbus-advertise-url', $adURL ) ) {
 863+ $footer .= '<a href="' . $adURL . '" rel="nofollow">' .
 864+ wfMsg( 'nimbus-advertise' ) . '</a>';
 865+ }
 866+
 867+ $footer .= '</div>' . "\n";
 868+
 869+ return $footer;
 870+ }
 871+
 872+} // end of class
\ No newline at end of file
Property changes on: trunk/extensions/skins/Nimbus/Nimbus.skin.php
___________________________________________________________________
Added: svn:eol-style
1873 + native
Index: trunk/extensions/skins/Nimbus/nimbus/positive_button_right_rtl.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/positive_button_right_rtl.gif
___________________________________________________________________
Added: svn:mime-type
2874 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/positive_button_right_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/positive_button_right_ltr.gif
___________________________________________________________________
Added: svn:mime-type
3875 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/negative_button_right_rtl.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/negative_button_right_rtl.gif
___________________________________________________________________
Added: svn:mime-type
4876 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/negative_button_right_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/negative_button_right_ltr.gif
___________________________________________________________________
Added: svn:mime-type
5877 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/Menu.js
@@ -0,0 +1,301 @@
 2+/**
 3+ * Menu navigation and other JavaScript functions used by the Nimbus skin.
 4+ *
 5+ * @file
 6+ * @author Jack Phoenix <jack@countervandalism.net> - cleanup & removal of YUI dependency, etc.
 7+ */
 8+var NimbusSkin = {
 9+ last_clicked: '',
 10+ m_timer: '',
 11+ displayed_menus: [],
 12+ last_displayed: '',
 13+ last_over: '',
 14+ show: 'false',
 15+ _shown: false,
 16+ _hide_timer: '',
 17+
 18+ submenu: function( id ) {
 19+ var on_tabs, x;
 20+
 21+ // Clear all tab classes
 22+ on_tabs = getElementsByClassName( document, 'a', 'tab-on' );
 23+ for( x = 0; x <= on_tabs.length - 1; x++ ) {
 24+ jQuery( '#' + on_tabs[x] ).addClass( 'tab-off' );
 25+ }
 26+
 27+ on_tabs = getElementsByClassName( document, 'div', 'sub-menu' );
 28+ for( x = 0; x <= on_tabs.length - 1; x++ ) {
 29+ jQuery( '#' + on_tabs[x] ).hide();
 30+ }
 31+
 32+ // Hide submenu that might have been previously clicked
 33+ if( NimbusSkin.last_clicked ) {
 34+ jQuery( '#submenu-' + NimbusSkin.last_clicked ).hide();
 35+ }
 36+
 37+ // Update tab class you clicked on/show its submenu
 38+ if( jQuery( '#menu-' + id ).hasClass( 'tab-off' ) ) {
 39+ jQuery( '#menu-' + id ).addClass( 'tab-on' );
 40+ }
 41+
 42+ jQuery( '#submenu-' + id ).show();
 43+
 44+ NimbusSkin.last_clicked = id;
 45+ },
 46+
 47+ editMenuToggle: function() {
 48+ var submenu = document.getElementById( 'edit-sub-menu-id' );
 49+
 50+ if( submenu.style.display == 'block' ) {
 51+ submenu.style.display = 'none';
 52+ } else {
 53+ submenu.style.display = 'block';
 54+ }
 55+ },
 56+ // End menu nav
 57+
 58+ // Skin Navigation
 59+ menuItemAction: function( e ) {
 60+ clearTimeout( NimbusSkin.m_timer );
 61+
 62+ if( !e ) {
 63+ var e = window.event;
 64+ }
 65+ e.cancelBubble = true;
 66+ if( e.stopPropagation ) {
 67+ e.stopPropagation();
 68+ }
 69+
 70+ var source_id = '*';
 71+ try {
 72+ source_id = e.target.id;
 73+ } catch( ex ) {
 74+ source_id = e.srcElement.id;
 75+ }
 76+
 77+ if( source_id.indexOf( 'a-' ) === 0 ) {
 78+ source_id = source_id.substr( 2 );
 79+ }
 80+
 81+ if( source_id && menuitem_array[source_id] ) {
 82+ if( document.getElementById( NimbusSkin.last_over ) ) {
 83+ document.getElementById( NimbusSkin.last_over ).style.backgroundColor = '#FFF';
 84+ }
 85+ NimbusSkin.last_over = source_id;
 86+ document.getElementById( source_id ).style.backgroundColor = '#FFFCA9';
 87+ NimbusSkin.check_item_in_array( menuitem_array[source_id] );
 88+ }
 89+ },
 90+
 91+ check_item_in_array: function( item ) {
 92+ clearTimeout( NimbusSkin.m_timer );
 93+ var sub_menu_item = 'sub-menu' + item;
 94+
 95+ if(
 96+ NimbusSkin.last_displayed === '' ||
 97+ ( ( sub_menu_item.indexOf( NimbusSkin.last_displayed ) != -1 ) &&
 98+ ( sub_menu_item != NimbusSkin.last_displayed ) )
 99+ )
 100+ {
 101+ NimbusSkin.do_menuItemAction( item );
 102+ } else {
 103+ var exit = false;
 104+ var count = 0;
 105+ var the_last_displayed;
 106+ while( !exit && NimbusSkin.displayed_menus.length > 0 ) {
 107+ the_last_displayed = NimbusSkin.displayed_menus.pop();
 108+ if( ( sub_menu_item.indexOf( the_last_displayed ) == -1 ) ) {
 109+ NimbusSkin.doClear( the_last_displayed, '' );
 110+ } else {
 111+ NimbusSkin.displayed_menus.push( the_last_displayed );
 112+ exit = true;
 113+ NimbusSkin.do_menuItemAction( item );
 114+ }
 115+ count++;
 116+ }
 117+
 118+ NimbusSkin.do_menuItemAction( item );
 119+ }
 120+ },
 121+
 122+ do_menuItemAction: function( item ) {
 123+ if( document.getElementById( 'sub-menu' + item ) ) {
 124+ document.getElementById( 'sub-menu' + item ).style.display = 'block';
 125+ NimbusSkin.displayed_menus.push( 'sub-menu' + item );
 126+ NimbusSkin.last_displayed = 'sub-menu' + item;
 127+ }
 128+ },
 129+
 130+ sub_menuItemAction: function( e ) {
 131+ clearTimeout( NimbusSkin.m_timer );
 132+
 133+ if( !e ) {
 134+ var e = window.event;
 135+ }
 136+ e.cancelBubble = true;
 137+ if( e.stopPropagation ) {
 138+ e.stopPropagation();
 139+ }
 140+
 141+ var source_id = '*';
 142+ try {
 143+ source_id = e.target.id;
 144+ } catch( ex ) {
 145+ source_id = e.srcElement.id;
 146+ }
 147+
 148+ if( source_id && submenuitem_array[source_id] ) {
 149+ NimbusSkin.check_item_in_array( submenuitem_array[source_id] );
 150+
 151+ if( source_id.indexOf( '_' ) ) {
 152+ if ( source_id.indexOf( '_', source_id.indexOf( '_' ) ) ) {
 153+ var second_start = source_id.substr( 4 + source_id.indexOf( '_' ) - 1 );
 154+ var second_uscore = second_start.indexOf( '_' );
 155+ try {
 156+ var source_id = source_id.substr( 4, source_id.indexOf( '_' ) + second_uscore-1 );
 157+ if( menuitem_array[source_id] ) {
 158+ document.getElementById( source_id ).style.backgroundColor = '#FFFCA9';
 159+ }
 160+ } catch( ex ) {}
 161+ } else {
 162+ var source_id = source_id.substr( 4 );
 163+ if( menuitem_array[source_id] ) {
 164+ document.getElementById( source_id ).style.backgroundColor = '#FFFCA9';
 165+ }
 166+ }
 167+ }
 168+ }
 169+ },
 170+
 171+ clearBackground: function( e ) {
 172+ if( !e ) {
 173+ var e = window.event;
 174+ }
 175+ e.cancelBubble = true;
 176+ if( e.stopPropagation ) {
 177+ e.stopPropagation();
 178+ }
 179+
 180+ var source_id = '*';
 181+ try {
 182+ source_id = e.target.id;
 183+ } catch( ex ) {
 184+ source_id = e.srcElement.id;
 185+ }
 186+
 187+ if( source_id && document.getElementById( source_id ) && menuitem_array[source_id] ) {
 188+ document.getElementById( source_id ).style.backgroundColor = '#FFF';
 189+ NimbusSkin.clearMenu( e );
 190+ }
 191+ },
 192+
 193+ resetMenuBackground: function( e ) {
 194+ if( !e ) {
 195+ var e = window.event;
 196+ }
 197+ e.cancelBubble = true;
 198+ if( e.stopPropagation ) {
 199+ e.stopPropagation();
 200+ }
 201+
 202+ var source_id = '*';
 203+ try {
 204+ source_id = e.target.id;
 205+ } catch( ex ) {
 206+ source_id = e.srcElement.id;
 207+ }
 208+
 209+ source_id = source_id.substr( 2 );
 210+
 211+ document.getElementById( source_id ).style.backgroundColor = '#FFFCA9';
 212+ },
 213+
 214+ clearMenu: function( e ) {
 215+ if( !e ) {
 216+ var e = window.event;
 217+ }
 218+ e.cancelBubble = true;
 219+ if( e.stopPropagation ) {
 220+ e.stopPropagation();
 221+ }
 222+
 223+ var source_id = '*';
 224+ try {
 225+ source_id = e.target.id;
 226+ } catch( ex ) {
 227+ source_id = e.srcElement.id;
 228+ }
 229+
 230+ clearTimeout( NimbusSkin.m_timer );
 231+ NimbusSkin.m_timer = setTimeout( function() { NimbusSkin.doClearAll(); }, 200 );
 232+ },
 233+
 234+ doClear: function( item, type ) {
 235+ if( document.getElementById( type + item ) ) {
 236+ document.getElementById( type + item ).style.display = 'none';
 237+ }
 238+ },
 239+
 240+ doClearAll: function() {
 241+ var epicElement = document.getElementById( 'menu-item' + NimbusSkin.displayed_menus[0].substr( NimbusSkin.displayed_menus[0].indexOf( '_' ) ) );
 242+ if(
 243+ NimbusSkin.displayed_menus.length && epicElement ) {
 244+ epicElement.style.backgroundColor = '#FFF';
 245+ }
 246+ var the_last_displayed;
 247+ var exit = false;
 248+ while( !exit && NimbusSkin.displayed_menus.length > 0 ) {
 249+ the_last_displayed = NimbusSkin.displayed_menus.pop();
 250+ NimbusSkin.doClear( the_last_displayed, '' );
 251+ }
 252+
 253+ NimbusSkin.last_displayed = '';
 254+ },
 255+
 256+ show_more_category: function( el ) {
 257+ if( NimbusSkin.show == 'false' ) {
 258+ document.getElementById( el ).style.display = 'block';
 259+ NimbusSkin.show = 'true';
 260+ } else {
 261+ document.getElementById( el ).style.display = 'none';
 262+ NimbusSkin.show = 'false';
 263+ }
 264+ },
 265+
 266+ show_actions: function( el, type ) {
 267+ if( type == 'show' ) {
 268+ clearTimeout( NimbusSkin._hide_timer );
 269+ if( !NimbusSkin._shown ) {
 270+ jQuery( '#more-tab' ).removeClass( 'more-tab-off' ).addClass( 'more-tab-on' );
 271+ jQuery( '#' + el ).show();
 272+ NimbusSkin._shown = true;
 273+ }
 274+ } else {
 275+ jQuery( '#more-tab' ).removeClass( 'more-tab-on' ).addClass( 'more-tab-off' );
 276+ jQuery( '#' + el ).hide();
 277+ NimbusSkin._shown = false;
 278+ }
 279+ },
 280+
 281+ delay_hide: function( el ) {
 282+ NimbusSkin._hide_timer = setTimeout( function() { NimbusSkin.show_actions( el, 'hide' ); }, 500 );
 283+ }
 284+};
 285+
 286+jQuery( document ).ready( function() {
 287+ jQuery( '#more-tab' ).bind( 'mouseover', function() {
 288+ NimbusSkin.show_actions( 'article-more-container', 'show' );
 289+ }).bind( 'mouseout', function() {
 290+ NimbusSkin.delay_hide( 'article-more-container' );
 291+ });
 292+
 293+ jQuery( '#article-more-container' ).bind( 'mouseover', function() {
 294+ clearTimeout( NimbusSkin._hide_timer );
 295+ }).bind( 'mouseout', function() {
 296+ NimbusSkin.show_actions( 'article-more-container', 'hide' );
 297+ });
 298+
 299+ jQuery( '#sw-more-category' ).bind( 'click', function() {
 300+ NimbusSkin.show_more_category( 'more-wikis-menu' );
 301+ });
 302+});
\ No newline at end of file
Property changes on: trunk/extensions/skins/Nimbus/nimbus/Menu.js
___________________________________________________________________
Added: svn:eol-style
1303 + native
Index: trunk/extensions/skins/Nimbus/nimbus/Nimbus.css
@@ -0,0 +1,1816 @@
 2+/*
 3+** MediaWiki 'Nimbus' style sheet for CSS2-capable browsers.
 4+** License: GPL (http://www.gnu.org/copyleft/gpl.html)
 5+*/
 6+
 7+body {
 8+ background: #FFFFFF;
 9+ text-align: center;
 10+ margin: 0px;
 11+ font-family: Arial;
 12+}
 13+
 14+#container {
 15+ margin-left: auto;
 16+ margin-right: auto;
 17+ margin-top: 0pt;
 18+ text-align: left;
 19+}
 20+
 21+.cleared {
 22+ clear: both;
 23+}
 24+
 25+#siteNotice {
 26+ padding: 0px;
 27+}
 28+
 29+.clearfix:after {
 30+ content: ".";
 31+ display: block;
 32+ height: 0;
 33+ clear: both;
 34+ visibility: hidden;
 35+}
 36+
 37+.clearfix { display: inline-block; }
 38+
 39+/* Hides from IE-mac \*/
 40+* html .clearfix { height: 1%; }
 41+/* End hide from IE-mac */
 42+
 43+/** Buttons **/
 44+.positive-button {
 45+ /* @embed */
 46+ background: url('positive_button_right_ltr.gif') no-repeat right top;
 47+ float: left;
 48+ line-height: 17px;
 49+ font-size: 10px;
 50+ color: #FFF;
 51+}
 52+
 53+.positive-button span {
 54+ /* @embed */
 55+ background: url('positive_button_left_ltr.gif') no-repeat left top;
 56+ cursor: pointer;
 57+ display: block;
 58+ float: left;
 59+ line-height: 17px;
 60+ padding: 0px 22px;
 61+}
 62+
 63+.negative-button {
 64+ /* @embed */
 65+ background: url('negative_button_right_ltr.gif') no-repeat right top;
 66+ float: left;
 67+ line-height: 17px;
 68+ font-size: 10px;
 69+ color: #FFF;
 70+}
 71+
 72+.negative-button span {
 73+ /* @embed */
 74+ background: url('negative_button_left_ltr.gif') no-repeat left top;
 75+ cursor: pointer;
 76+ display: block;
 77+ float: left;
 78+ line-height: 17px;
 79+ padding: 0px 22px;
 80+}
 81+
 82+#sw-more-category .positive-button {
 83+ /* @embed */
 84+ background: url('category_button_right_ltr.gif') no-repeat right top;
 85+}
 86+
 87+#sw-more-category .positive-button span {
 88+ /* @embed */
 89+ background: url('category_button_left_ltr.gif') no-repeat left top;
 90+}
 91+
 92+a.positive-button:hover {
 93+ color: #466C2C !important;
 94+ text-decoration: none;
 95+}
 96+
 97+a.negative-button:hover {
 98+ text-decoration: none;
 99+}
 100+
 101+#sw-more-category a:hover {
 102+ color: #01405B;
 103+ text-decoration: none;
 104+}
 105+
 106+a.positive-button:visited, a.negative-button:visited {
 107+ color: #FFF;
 108+}
 109+
 110+#more-wikis-menu {
 111+ background-color: #FFF;
 112+ border-bottom: 1px solid #D4DFD7;
 113+ border-left: 1px solid #D4DFD7;
 114+ border-right: 1px solid #D4DFD7;
 115+ left: 8px;
 116+ position: absolute;
 117+ top: 35px;
 118+ width: 292px;
 119+ z-index: 6;
 120+ padding: 5px 10px;
 121+ font-size: 13px;
 122+}
 123+
 124+#more-wikis-menu a {
 125+ display: block;
 126+ border-bottom: 1px dashed #EAF0F1;
 127+ float: left;
 128+ width: 144px;
 129+ color: #0099D9;
 130+ line-height: 20px;
 131+}
 132+
 133+/** Header **/
 134+#header {
 135+ position: relative;
 136+ background-color: #687F79;
 137+ height: 35px;
 138+ width: 100%;
 139+ z-index: 10;
 140+}
 141+
 142+#sw-logo {
 143+ position: absolute;
 144+ top: 2px;
 145+ left: 9px;
 146+}
 147+
 148+#sw-logo img {
 149+ vertical-align: text-bottom !important;
 150+}
 151+
 152+#sw-category {
 153+ color: #FFF;
 154+ line-height: 25px;
 155+ font-size: 20px;
 156+ margin: 0px 0px 0px 5px;
 157+}
 158+
 159+#sw-more-category {
 160+ position: absolute;
 161+ top: 12px;
 162+ left: 205px;
 163+ text-transform: uppercase;
 164+}
 165+
 166+#wiki-login {
 167+ margin: 12px 0px 0px 0px;
 168+ float: right;
 169+ padding: 0px 5px 0px 10px;
 170+ line-height: 17px;
 171+ color: #FFF;
 172+ font-size: 11px;
 173+}
 174+
 175+#wiki-login a {
 176+ margin: 0px 10px 0px 0px;
 177+}
 178+
 179+#login-message {
 180+ float: left;
 181+ margin: 1px 10px 0px;
 182+}
 183+
 184+#login-message a {
 185+ margin: 0px 2px;
 186+ font-size: 11px;
 187+ text-decoration: underline;
 188+}
 189+
 190+#login-message a:hover {
 191+ color: #333;
 192+}
 193+
 194+/** Site Header **/
 195+#site-header {
 196+ z-index: 5;
 197+ position: relative;
 198+ width: 100%;
 199+}
 200+
 201+#site-logo {
 202+ margin-left: 2%; /* center the logo image */
 203+}
 204+
 205+#top-ad {
 206+ position: absolute;
 207+ top: 53px;
 208+ left: 278px;
 209+ z-index: 6;
 210+}
 211+
 212+/** Body **/
 213+#body-container {
 214+ margin: -120px 10px 0px 220px;
 215+ position: relative;
 216+ z-index: 7;
 217+}
 218+
 219+#body {
 220+ top: 0px;
 221+}
 222+
 223+#article {
 224+ font-family: sans-serif;
 225+ background-color :#FFF;
 226+ font-size: 127%;
 227+ line-height: 1.5em;
 228+ width: 100%;
 229+}
 230+
 231+#article-body {
 232+ padding: 10px;
 233+ border-left: 1px solid #D4DFD7;
 234+ border-right: 1px solid #D4DFD7;
 235+ border-bottom: 1px solid #D4DFD7;
 236+}
 237+
 238+#article-text {
 239+ position: relative;
 240+ width: 100%;
 241+}
 242+
 243+#action-bar {
 244+ position: relative;
 245+ background-color: #D4DFD7;
 246+ font-size: 13px;
 247+ height: 30px;
 248+ z-index: 10;
 249+}
 250+
 251+#article-tabs a {
 252+ color: #687F79;
 253+ margin: 0px 3px 0px;
 254+ font-size: 13px;
 255+ text-decoration: none;
 256+}
 257+
 258+
 259+#article-tabs a:hover {
 260+ color: #3B4744;
 261+}
 262+
 263+#article-tabs {
 264+ position: relative;
 265+ top: 5px;
 266+ left: 5px;
 267+}
 268+
 269+.tab-on, .more-tab-on {
 270+ position: relative;
 271+ /* @embed */
 272+ background: url('article_tab_on_left_ltr.gif') no-repeat right top;
 273+ float: left;
 274+ line-height: 25px;
 275+ font-size: 10px;
 276+}
 277+
 278+.tab-on span, .more-tab-on span {
 279+ /* @embed */
 280+ background: url('article_tab_on_right_ltr.gif') no-repeat left top;
 281+ cursor: pointer;
 282+ display: block;
 283+ float: left;
 284+ line-height: 25px;
 285+ padding: 0px 10px;
 286+}
 287+
 288+.tab-off, .more-tab-off {
 289+ position: relative;
 290+ /* @embed */
 291+ background: url('article_tab_off_left_ltr.gif') no-repeat right top;
 292+ float: left;
 293+ line-height: 25px;
 294+ font-size: 10px;
 295+}
 296+
 297+.tab-off span, .more-tab-off span {
 298+ /* @embed */
 299+ background: url('article_tab_off_right_ltr.gif') no-repeat left top;
 300+ cursor: pointer;
 301+ display: block;
 302+ float: left;
 303+ line-height: 25px;
 304+ padding: 0px 10px;
 305+}
 306+
 307+
 308+.tab-off img, .tab-on img, .more-tab-on img, .more-tab-off img {
 309+ vertical-align: baseline;
 310+}
 311+
 312+.tab-new {
 313+ color: #F15A3A !important;
 314+}
 315+
 316+#article-controls {
 317+ float: right;
 318+ position: relative;
 319+ padding: 10px 10px 0px 0px;
 320+ z-index: 15;
 321+}
 322+
 323+#article-controls a {
 324+ text-decoration: none;
 325+ font-size: 11px;
 326+ color: #68BD46;
 327+}
 328+
 329+#article-controls a:hover {
 330+ color: #466C2C;
 331+}
 332+
 333+#article-controls img {
 334+ padding: 0px 1px 0px 0px;
 335+ margin: -2px 0px 0px 0px;
 336+ vertical-align: middle;
 337+}
 338+
 339+.more-tab-off, .more-tab-on {
 340+ margin: 0px 3px;
 341+ height: 25px;
 342+ font-size: 13px;
 343+}
 344+
 345+.more-tab-off {
 346+ color: #687F79;
 347+}
 348+
 349+.more-tab-on {
 350+ color: #3B4744;
 351+}
 352+
 353+.more-tab-off span, .more-tab-on span {
 354+ padding: 5px 10px 0px 10px;
 355+ line-height: 14px;
 356+}
 357+
 358+.article-more-actions {
 359+ background-color: #FFFFFF;
 360+ border-bottom: 2px solid #EFF3F0;
 361+ border-left: 1px solid #EFF3F0;
 362+ border-right: 2px solid #EFF3F0;
 363+ padding: 0px;
 364+ position: absolute;
 365+ right: -2px;
 366+ top: 25px;
 367+ width: 100%;
 368+ z-index: 1000;
 369+}
 370+
 371+.article-more-actions a {
 372+ display: block;
 373+ border-bottom: 1px dashed #EAF0F1;
 374+ padding: 0px 0px 0px 10px;
 375+ line-height: 14px;
 376+ padding: 6px 0px 6px 8px;
 377+}
 378+
 379+/** Side Bar **/
 380+#side-bar {
 381+ position: absolute;
 382+ /*top: 163px;*/
 383+ left: 10px;
 384+ width: 200px;
 385+ z-index: 10;
 386+}
 387+
 388+#navigation {
 389+ margin: 0px 0px 10px 0px;
 390+}
 391+
 392+#navigation-title {
 393+ font-size: 17px;
 394+ color: #687F79;
 395+ line-height: 30px;
 396+ font-weight: bold;
 397+ padding: 0px 5px;
 398+ /* @embed */
 399+ background: url('navigation_top.gif') no-repeat scroll top left;
 400+}
 401+
 402+#search-box {
 403+ margin: 0px 0px 5px 0px;
 404+ padding: 0px 0px 0px 5px;
 405+}
 406+
 407+#search-title {
 408+ color: #333;
 409+ font-size: 14px;
 410+ margin: 0px 0px 5px 0px;
 411+}
 412+
 413+input.search-field {
 414+ float: left;
 415+ width: 145px;
 416+ height: 22px;
 417+ border: 1px solid #D4DFD7;
 418+ color: #687F79;
 419+ padding: 2px 0px 0px 3px;
 420+ margin: 0px 0px 0px 0px;
 421+}
 422+
 423+input.search-button {
 424+ float: left;
 425+ margin: 0px 0px 0px -5px;
 426+}
 427+
 428+/** MENU **/
 429+#menu {
 430+ border-left: 1px solid #d4dfd7;
 431+ border-right: 1px solid #d4dfd7;
 432+}
 433+
 434+.menu-item {
 435+ position: relative;
 436+ border-bottom: 1px dashed #EAF0F1;
 437+ padding: 4px 0px 4px 5px;
 438+ color: #333;
 439+ font-size: 12px;
 440+ font-weight: bold;
 441+}
 442+
 443+.menu-item a {
 444+ color: #0099D9;
 445+ text-decoration: none;
 446+}
 447+
 448+.menu-item a:visited {
 449+ color: #0099D9;
 450+ text-decoration: none;
 451+}
 452+
 453+.menu-item a:hover {
 454+ color: #01405B;
 455+ text-decoration: none;
 456+}
 457+
 458+.menu-item .sub-menu-button {
 459+ position: absolute;
 460+ top: 8px;
 461+ right: 5px;
 462+}
 463+
 464+.sub-menu-item .sub-menu-button {
 465+ position: absolute;
 466+ right: 5px;
 467+ top: 7px;
 468+}
 469+
 470+.border-fix {
 471+ border-bottom: none !important;
 472+}
 473+
 474+#other-links {
 475+ font-size: 11px;
 476+ padding: 5px 7px;
 477+ /* @embed */
 478+ background: url('navigation_bottom.gif') no-repeat scroll bottom left;
 479+}
 480+
 481+#other-links-container {
 482+ background-color: #D4DFD7;
 483+}
 484+
 485+#other-links a {
 486+ float: left;
 487+ display: block;
 488+ color: #687F79;
 489+ text-decoration: none;
 490+ line-height: 14px;
 491+ width: 90px;
 492+}
 493+
 494+#other-links a:hover {
 495+ color: #3B4744;
 496+ text-decoration: underline;
 497+}
 498+
 499+.sub-menu {
 500+ position: absolute;
 501+ top: -2px;
 502+ right: -135px;
 503+ background-color: #FFF;
 504+ border: 1px solid #D4DFD7;
 505+ padding: 5px 0px;
 506+ width: 130px;
 507+ z-index: 1000;
 508+}
 509+
 510+.sub-menu-item {
 511+ border-bottom: 1px dashed #EAF0F1;
 512+ color: #333333;
 513+ font-size: 12px;
 514+ padding: 4px 10px;
 515+ position: relative;
 516+}
 517+
 518+.sub-sub-menu {
 519+ position: absolute;
 520+ top: -27px;
 521+ right: -300px;
 522+ background-color: #FFF;
 523+ padding: 5px 10px;
 524+ border: 1px solid #D4DFD7;
 525+ width: 130px;
 526+ z-index: 1000;
 527+}
 528+
 529+.sub-sub-menu-item {
 530+ border-bottom: 1px dashed #EAF0F1;
 531+ color: #333333;
 532+ font-size: 12px;
 533+}
 534+
 535+/** Footer **/
 536+#footer-container {
 537+ position: relative;
 538+ background-color: #F7F9F8;
 539+ border-bottom: 1px solid #D4DFD7;
 540+ border-left: 1px solid #D4DFD7;
 541+ border-right: 1px solid #D4DFD7;
 542+ height: 140px;
 543+}
 544+
 545+#footer-container a, #footer-bottom a {
 546+ color: #0099D9;
 547+}
 548+
 549+#footer-container a:hover, #footer-bottom a:hover {
 550+ text-decoration: underline;
 551+}
 552+
 553+#footer-container h2 {
 554+ font-size: 16px;
 555+ color: #687F79;
 556+ margin: 0;
 557+ padding: 0px 0px 5px 0px !important;
 558+ border-bottom: none;
 559+}
 560+
 561+#footer-container p {
 562+ margin: 0px 0px 12px 0px;
 563+ font-size: 11px;
 564+ line-height: 12px;
 565+}
 566+
 567+#footer-actions {
 568+ float: left;
 569+ padding: 0px 20px 0px 0px;
 570+ margin: 10px 20px 10px 10px;
 571+ width: 40%;
 572+ border-right: 1px #DCDCDC solid;
 573+}
 574+
 575+#footer-actions a {
 576+ text-decoration: none;
 577+ font-size: 13px;
 578+ display: block;
 579+}
 580+
 581+#footer-contributors {
 582+ float: left;
 583+ width: 40%;
 584+ padding: 10px 10px 10px 0px;
 585+}
 586+
 587+#footer-contributors br {
 588+ height: 10px;
 589+}
 590+
 591+#footer-contributors a, #footer-contributors a:hover {
 592+ text-decoration: none;
 593+}
 594+
 595+#footer-contributors img {
 596+ border: 1px solid #DCDCDC;
 597+ padding: 1px;
 598+ background: #FFF;
 599+ height: 30px;
 600+ width: 30px;
 601+}
 602+
 603+.editor-spacer {
 604+ height: 3px;
 605+}
 606+
 607+#footer-bottom {
 608+ padding: 5px;
 609+ text-align: center;
 610+}
 611+
 612+img.gnu-image {
 613+ display: block;
 614+ float: left;
 615+}
 616+
 617+img.right-image {
 618+ display: block;
 619+ float: right;
 620+}
 621+
 622+#footer-bottom a {
 623+ text-decoration: none;
 624+ margin: 0px 5px 0px 0px;
 625+ font-size: 12px;
 626+}
 627+
 628+/** Vote Box **/
 629+.vote-box {
 630+ background-color: #68BD46;
 631+ height: 30px;
 632+ padding: 13px 0px 0px;
 633+ text-align: center;
 634+ width: 43px;
 635+}
 636+
 637+.vote-number {
 638+ color: #FFF;
 639+ font-size: 16px;
 640+ font-weight: bold;
 641+}
 642+
 643+.vote-action {
 644+ text-align: center;
 645+ width: 43px;
 646+}
 647+
 648+.vote-action a {
 649+ font-weight: bold;
 650+ font-size: 11px;
 651+ text-decoration: none;
 652+}
 653+
 654+.rating-score {
 655+ background-color: #68BD46;
 656+ color: #FFF;
 657+ float: left;
 658+ font-size: 14px;
 659+ font-weight: bold;
 660+ padding: 1px 8px 0px;
 661+ margin: 1px 7px 0px 0px;
 662+ text-align: center;
 663+}
 664+
 665+.ratings-top {
 666+ position: absolute;
 667+ top: 37px !important;
 668+ right: 0px !important;
 669+ width: 100%;
 670+}
 671+
 672+.rating-section img {
 673+ vertical-align: text-bottom;
 674+}
 675+
 676+.rating-voted {
 677+ color: #666666;
 678+ line-height: 10px;
 679+ font-size: 9px;
 680+ position: absolute;
 681+ right: 0px;
 682+}
 683+
 684+/** Legacy **/
 685+#title-linktabs {
 686+ position: absolute;
 687+ top: 5px;
 688+ right: 0px;
 689+}
 690+
 691+#title-linktabs img {
 692+ margin: 0px 0px 0px 3px;
 693+}
 694+
 695+/** COMMENTS **/
 696+.full {
 697+ width: 530px;
 698+}
 699+
 700+.reply {
 701+ margin-left: 70px !important;
 702+ width: 460px;
 703+}
 704+
 705+.c-item {
 706+ position: relative;
 707+ border-bottom: 1px solid #DCDCDC;
 708+ padding: 0px 0px 10px 0px;
 709+ margin: 0px 0px 15px 0px;
 710+}
 711+
 712+.c-avatar {
 713+ position: absolute;
 714+ top: 0px;
 715+ left: 0px;
 716+}
 717+
 718+.c-avatar img {
 719+ padding: 3px;
 720+ border: 1px solid #DCDCDC;
 721+ background-color: #FFF;
 722+}
 723+
 724+.c-container {
 725+ position: relative;
 726+ top: 0px;
 727+ top: 0px;
 728+ margin: 0px 0px 0px 70px;
 729+}
 730+
 731+.c-user {
 732+ font-weight: bold;
 733+ position: relative;
 734+ margin: 0px 0px 6px 0px;
 735+}
 736+
 737+.c-user a {
 738+ font-size: 14px;
 739+ text-decoration: none;
 740+}
 741+
 742+.c-time {
 743+ font-size: 10px;
 744+ color: #888;
 745+ line-height: 11px !important;
 746+ font-weight: normal !important;
 747+}
 748+
 749+.c-user-level {
 750+ color: #666;
 751+ font-size: 11px;
 752+ margin: 0px 5px 0px 5px;
 753+}
 754+
 755+.c-comment {
 756+ overflow: auto;
 757+}
 758+
 759+.c-ignored {
 760+ color: #666;
 761+ font-size: 11px;
 762+ padding: 5px 0px 10px 0px;
 763+ margin: 0px 0px 15px 0px;
 764+ border-bottom: 1px solid #DCDCDC;
 765+}
 766+
 767+/*.c-ignored-links a {
 768+}*/
 769+
 770+.f-message {
 771+ width: 460px;
 772+}
 773+
 774+.r-message {
 775+ width: 360px;
 776+}
 777+
 778+.c-score {
 779+ position: absolute;
 780+ top: -2px;
 781+ right: 0px;
 782+ font-size: 11px;
 783+ padding-top: 6px;
 784+ font-weight: bold;
 785+ z-index: 4;
 786+}
 787+
 788+.c-score-title {
 789+ margin: 0px 10px 0px 0px;
 790+}
 791+
 792+.c-actions {
 793+ float: right;
 794+ font-size: 10px;
 795+ margin: 10px 0px 0px 0px;
 796+}
 797+
 798+.c-delete a {
 799+ color: red !important;
 800+}
 801+
 802+.c-score img {
 803+ vertical-align: middle;
 804+ margin: -5px 0px 0px 2px
 805+}
 806+
 807+.c-form-title {
 808+ color: #333;
 809+ font-weight: bold;
 810+ font-size: 17px;
 811+ margin: 0px 0px 5px 0px;
 812+}
 813+
 814+.c-form-message {
 815+ font-size: 11px;
 816+ width: 400px;
 817+ line-height: 13px;
 818+ color: #666;
 819+ padding: 5px 0px 10px 0px;
 820+}
 821+
 822+textarea#comment {
 823+ width: 530px;
 824+}
 825+
 826+.c-form-button {
 827+ padding: 10px 0px 0px;
 828+}
 829+
 830+.c-order {
 831+ padding: 20px 0px;
 832+}
 833+
 834+.c-spy {
 835+ float: left;
 836+ font-size: 10px;
 837+ margin: 0px 0px 0px 10px;
 838+}
 839+
 840+.c-order-select {
 841+ float: left;
 842+}
 843+
 844+/* LISTPAGES */
 845+.listpages-left {
 846+ float: left;
 847+ border: 1px solid #DCDCDC;
 848+ width: 500px;
 849+}
 850+
 851+.listpages-link {
 852+ margin: 0px;
 853+ padding: 0px;
 854+}
 855+
 856+.listpages-item {
 857+ margin-top: 10px;
 858+}
 859+
 860+.listpages-item a {
 861+ text-decoration: underline;
 862+ font-weight: bold;
 863+}
 864+
 865+.listpages-image {
 866+ float: left;
 867+ margin-right: 10px;
 868+}
 869+
 870+.listpages-categories {
 871+ color: #78BA5D;
 872+ font-size: 10px;
 873+ font-weight: bold;
 874+}
 875+
 876+.listpages-categories a {
 877+ color: #78BA5D;
 878+ font-size: 10px;
 879+ text-decoration: none;
 880+ border-bottom: 1px dotted #78BA5D;
 881+}
 882+
 883+.listpages-date {
 884+ color: #888;
 885+ font-size: 10px;
 886+}
 887+
 888+.listpages-stats {
 889+ color: #666;
 890+ font-weight: bold;
 891+ font-size: 11px;
 892+}
 893+
 894+.listpages-stats img {
 895+ vertical-align: middle;
 896+ margin: -2px 1px 0px 2px;
 897+}
 898+
 899+.listpages-votebox {
 900+ margin: 0px 10px 3px 0px;
 901+ float: left;
 902+ text-align: center;
 903+ width: 25px;
 904+}
 905+
 906+.rating-total {
 907+ color: #666;
 908+ font-weight: bold;
 909+ font-size: 11px;
 910+ margin: 3px 0px 0px 0px;
 911+}
 912+
 913+.listpages-votebox-number {
 914+ background-color: #89C46F;
 915+ color: #FFFFFF;
 916+ margin: 0px 0px 2px 0px;
 917+ font-weight: bold;
 918+ padding: 3px 0px;
 919+}
 920+
 921+.listpages-votebox-text {
 922+ margin: -1px 0px 0px 0px;
 923+ font-size: 9px;
 924+ color: #777;
 925+ line-height: 9px;
 926+}
 927+
 928+.listpages-commentbox-number {
 929+ background-color: orange;
 930+ color: #FFFFFF;
 931+ font-weight: bold;
 932+ padding: 3px 0px;
 933+ margin: 0px 0px 2px;
 934+}
 935+
 936+.listpages-blurb {
 937+ margin: 0px 0px 2px 0px;
 938+}
 939+
 940+.listpages-blurb a {
 941+ font-size: 11px;
 942+ text-decoration: underline;
 943+}
 944+
 945+.listpages-nav-buttons {
 946+ margin: 10px 0px 0px 0px;
 947+}
 948+
 949+.listpages-blurb-size-small {
 950+ font-size: 11px;
 951+ line-height: 15px;
 952+}
 953+
 954+.listpages-blurb-size-medium {
 955+ font-size: 12px;
 956+ line-height: 16px;
 957+}
 958+
 959+.listpages-blurb-size-large {
 960+ font-size: 13px;
 961+ line-height: 17px;
 962+}
 963+
 964+.listpage-button {
 965+ background-color: #FAFAFA;
 966+ border: 1px solid #DCDCDC;
 967+ color: #376EA6;
 968+ font-size: 12px;
 969+ padding: 3px;
 970+ margin: 0px 3px 0px 0px;
 971+}
 972+
 973+.listpage-button-off {
 974+ background-color: #FAFAFA;
 975+ border: 1px solid #DCDCDC;
 976+ color: #797979;
 977+ font-size: 12px;
 978+ padding: 3px;
 979+ margin: 0px 3px 0px 0px;
 980+}
 981+
 982+.listpages-nav-buttons a {
 983+ margin: 0px 5px 0px 0px;
 984+}
 985+
 986+/** EXTENSIONS CSS FIXES **/
 987+
 988+/** RATE IMAGE **/
 989+.image-categories-container h2 {
 990+ border-bottom: none;
 991+}
 992+
 993+.image-ratings {
 994+ padding: 15px 0px 0px 0px;
 995+}
 996+
 997+.image-ratings h2 {
 998+ border-bottom: none;
 999+ margin: 0px 0px 10px 0px !important;
 1000+ padding: 0px;
 1001+}
 1002+
 1003+/** Polls **/
 1004+.poll {
 1005+ width: 60%;
 1006+ position: relative;
 1007+}
 1008+
 1009+.poll-right {
 1010+ padding: 8px 0px 0px 0px;
 1011+ width: 30%;
 1012+ position: relative;
 1013+}
 1014+
 1015+.poll h1.pagetitle {
 1016+ margin-bottom: 15px;
 1017+}
 1018+
 1019+.create-poll-top h1 {
 1020+ padding: 0px;
 1021+ font-weight: bold;
 1022+}
 1023+
 1024+.credit-box h1 {
 1025+ border-bottom: none;
 1026+ margin: 0px !important;
 1027+ padding: 0px 0px 5px 0px;
 1028+}
 1029+
 1030+#edit-image-frame {
 1031+ margin: -10px 0px 0px 0px;
 1032+}
 1033+
 1034+.credit-box-edit {
 1035+ margin: 0px 0px 15px 0px !important;
 1036+}
 1037+
 1038+.credit-box-edit h1 {
 1039+ margin: 0px 0px 5px 0px !important;
 1040+ padding: 0px !important;
 1041+ font-weight: bold;
 1042+}
 1043+
 1044+/** Picture Game **/
 1045+.pick-game-welcome-message h1,
 1046+.uploadLeft h1,
 1047+#vote-stats-text h1,
 1048+#picGameVote h1,
 1049+.edit-image-one h1,
 1050+.credit-box-edit h1,
 1051+.edit-image-text h2,
 1052+.update-poll-left h1,
 1053+.update-poll-right h1,
 1054+.credit-box h1 {
 1055+ border-bottom: none;
 1056+ font-weight: bold;
 1057+}
 1058+
 1059+.pick-game-welcome-message h1 {
 1060+ padding: 0px;
 1061+}
 1062+
 1063+.imgContent {
 1064+ width: 55% !important;
 1065+ min-width: 55% !important;
 1066+}
 1067+
 1068+.other-info {
 1069+ width: 30%;
 1070+ margin: 0px;
 1071+}
 1072+
 1073+.imgTitle, .quizgame-title {
 1074+ background :transparent none repeat scroll 0%;
 1075+ border-bottom: 1px solid #AAAAAA;
 1076+ color: black;
 1077+ font-weight: normal !important;
 1078+ margin: 0px 0px 15px 0px !important;
 1079+ padding-bottom: 0.17em;
 1080+ padding-top: 0.5em;
 1081+ font-size: 188% !important;
 1082+}
 1083+
 1084+/** Quiz **/
 1085+.quizgame-right {
 1086+ width: 40%;
 1087+ position: relative;
 1088+ padding-top: 8px;
 1089+}
 1090+
 1091+.quizgame-left {
 1092+ width: 50%;
 1093+ position: relative;
 1094+}
 1095+
 1096+.quiz-leaderboard-top-links {
 1097+ margin: 10px 0px !important;
 1098+}
 1099+
 1100+.user-rank p {
 1101+ position: relative;
 1102+}
 1103+
 1104+.user-rank h2 {
 1105+ border-bottom: none;
 1106+}
 1107+
 1108+.quiz-leaderboard-nav {
 1109+ margin: 15px 0px 0px !important;
 1110+}
 1111+
 1112+.view-quizzes-top-links, .view-poll-top-links {
 1113+ margin: 10px 0px 10px !important;
 1114+}
 1115+
 1116+.view-quizzes-top-links a, .view-poll-top-links a {
 1117+ color: #002BB8;
 1118+ font-weight: bold;
 1119+ text-decoration: none;
 1120+}
 1121+
 1122+.view-quizzes-text,
 1123+.view-quizzes-user-name,
 1124+.view-poll-text,
 1125+.view-poll-user-name {
 1126+ color: #002BB8;
 1127+}
 1128+
 1129+.quizgame-create-form h1,
 1130+.create-message h1,
 1131+.create-poll-top h1,
 1132+.create-poll-question-and-answer h1,
 1133+.create-poll-image h1 {
 1134+ border-bottom: none;
 1135+ font-weight: bold;
 1136+}
 1137+
 1138+.create-message, .create-poll-top {
 1139+ margin-top: 0px;
 1140+}
 1141+
 1142+/** User Page **/
 1143+#profile-top {
 1144+ background-color: #FFF;
 1145+ border-bottom: 1px solid #D4DFD7;
 1146+ padding: 10px 0px;
 1147+ position: relative;
 1148+}
 1149+
 1150+#points-level {
 1151+ margin: 0px;
 1152+}
 1153+
 1154+.no-info-container {
 1155+ background-color: #EFF3F0;
 1156+}
 1157+
 1158+#user-page-left {
 1159+ width: 35%;
 1160+}
 1161+
 1162+#user-page-right {
 1163+ width: 60%;
 1164+}
 1165+
 1166+.relationship-action {
 1167+ margin: 15px 0px;
 1168+}
 1169+
 1170+.back-links {
 1171+ padding: 15px 0px 0px 0px;
 1172+}
 1173+
 1174+#honorific-level {
 1175+ margin: 0px 0px 0px 10px;
 1176+}
 1177+
 1178+#profile-toggle-button {
 1179+ position: absolute;
 1180+ top: -29px;
 1181+ right: 0px;
 1182+ background-color: orange;
 1183+ padding: 2px 10px;
 1184+}
 1185+
 1186+#profile-toggle-button a {
 1187+ font-weight: bold;
 1188+ color: #FFF;
 1189+ text-decoration: none;
 1190+}
 1191+
 1192+#profile-toggle-button a:hover {
 1193+ color: #C07C00;
 1194+}
 1195+
 1196+/** Gifts **/
 1197+.g-give-all {
 1198+ width: 27%;
 1199+}
 1200+
 1201+.g-blue {
 1202+ color: #002BB8 !important;
 1203+}
 1204+
 1205+.g-describe {
 1206+ padding-top: 15px;
 1207+}
 1208+
 1209+/** Blog Page **/
 1210+#blog-page-container h2 {
 1211+ border-bottom: none;
 1212+}
 1213+
 1214+#blog-page-left {
 1215+ position: absolute;
 1216+ right: 0px;
 1217+ top: 0px;
 1218+ width: 20%;
 1219+}
 1220+
 1221+#blog-page-middle {
 1222+ margin: 0px;
 1223+ width: 75%;
 1224+ float: none;
 1225+ overflow: visible;
 1226+ padding: 0px;
 1227+}
 1228+
 1229+#blog-page-middle h1.page-title {
 1230+ margin: 0px !important;
 1231+}
 1232+
 1233+#blog-page-middle #categories {
 1234+ background-color: #F9F9F9;
 1235+ border: 1px solid #AAAAAA;
 1236+ clear: both;
 1237+ margin-top: 1em;
 1238+ padding: 5px;
 1239+}
 1240+
 1241+/** Board **/
 1242+.user-board-top-links {
 1243+ padding: 15px 0px 0px 0px;
 1244+}
 1245+
 1246+select#message_type {
 1247+ vertical-align: middle;
 1248+ margin: -1px 0px 0px 5px;
 1249+}
 1250+
 1251+.user-board-message {
 1252+ border: 1px solid #D4DFD7;
 1253+}
 1254+
 1255+.user-board-message-from {
 1256+ background-color: #EFF3F0;
 1257+}
 1258+
 1259+.user-page-message-form textarea {
 1260+ width: 80%;
 1261+}
 1262+
 1263+#blast-friends-list div.blast-friend-unselected,
 1264+#blast-friends-list div.blast-foe-unselected {
 1265+ color: #002BB8;
 1266+}
 1267+
 1268+/** Import Video/Image **/
 1269+.loading-message {
 1270+ background-color: #F15A3A;
 1271+ position: absolute;
 1272+ z-index: 1000;
 1273+ padding: 1px 3px;
 1274+}
 1275+
 1276+.import-subtitle {
 1277+ margin: 10px 0px 0px 0px;
 1278+ font-size: 12px;
 1279+ font-weight: normal;
 1280+}
 1281+
 1282+.image-options, .video-options {
 1283+ padding: 15px 0px;
 1284+}
 1285+
 1286+.selected-photos, .selected-videos {
 1287+ margin: 20px 0px;
 1288+}
 1289+
 1290+.video-options-button, .image-options-button {
 1291+ background-color: orange;
 1292+ border: 1px solid orange;
 1293+}
 1294+
 1295+.video-options-button a, .image-options-button a {
 1296+ color: #FFF;
 1297+ font-weight: normal;
 1298+}
 1299+
 1300+.video-options-button a:hover, .image-options-button a:hover {
 1301+ text-decoration: none;
 1302+}
 1303+
 1304+.import-left-content {
 1305+ width: 60%;
 1306+}
 1307+
 1308+.import-search, .flickr-image-container, .youtube-video-container, .youtube-results {
 1309+ width: 100%;
 1310+}
 1311+
 1312+/* Article Home */
 1313+.main-page-left {
 1314+ width: 60%;
 1315+}
 1316+
 1317+.main-page-right {
 1318+ width: 35%;
 1319+}
 1320+
 1321+/** Image Rating **/
 1322+.image-rating-menu {
 1323+ margin: 15px 0px 0px 0px;
 1324+}
 1325+
 1326+.category-button {
 1327+ color: #002BB8;
 1328+}
 1329+
 1330+.image-categories-add {
 1331+ font-size: 11px;
 1332+}
 1333+
 1334+.featured-image {
 1335+ margin-top: 15px;
 1336+ padding: 5px;
 1337+ width: 65%;
 1338+}
 1339+
 1340+.image-rating-row, .image-rating-row-bottom {
 1341+ width: 65%;
 1342+}
 1343+
 1344+.image-rating-container {
 1345+ width: 40%;
 1346+}
 1347+
 1348+.image-categories-container {
 1349+ width: 60%;
 1350+}
 1351+
 1352+/** Top Lists **/
 1353+.top-users {
 1354+ margin: 15px 0px 0px !important;
 1355+}
 1356+
 1357+/** User Images **/
 1358+.slide-show-top {
 1359+ margin: 10px 0px !important;
 1360+}
 1361+
 1362+/** Top Awards **/
 1363+.top-awards-navigation {
 1364+ margin: 15px 0px 0px !important;
 1365+}
 1366+
 1367+/** Login **/
 1368+.lr-top-link {
 1369+ margin: 15px 0px 5px !important;
 1370+}
 1371+
 1372+.lr-right {
 1373+ margin: 15px 0px 0px !important;
 1374+}
 1375+
 1376+/** Tweak for Special:UserLogin **/
 1377+#userloginForm {
 1378+ margin: 15px 0px 0px 0px;
 1379+}
 1380+
 1381+/** Random Featured user **/
 1382+.random-featured-user {
 1383+ font-size: 11px;
 1384+ color: #333;
 1385+ line-height: 14px;
 1386+ margin: 10px 0px 0px 0px;
 1387+}
 1388+
 1389+.random-featured-user img {
 1390+ float: left;
 1391+ border: 1px solid #DCDCDC;
 1392+ padding: 3px;
 1393+ background-color: #FFF;
 1394+ display: block;
 1395+ text-align: justify;
 1396+ margin: 0px 10px 0px 0px;
 1397+}
 1398+
 1399+.random-featured-user-title {
 1400+ margin: 0px 0px 6px 0px;
 1401+}
 1402+
 1403+.random-featured-user-title a {
 1404+ text-decoration: none;
 1405+ font-size: 14px;
 1406+ font-weight: bold;
 1407+}
 1408+
 1409+.random-featured-user-about-title {
 1410+ font-weight: bold;
 1411+}
 1412+
 1413+/* Site Activity */
 1414+.mp-friends-activity {
 1415+ padding: 0px 0px 15px 0px;
 1416+}
 1417+
 1418+.mp-friends-activity h2 {
 1419+ letter-spacing: -1px;
 1420+ color: #333;
 1421+ font-size: 18px;
 1422+ margin: 0px 0px 8px 0px !important;
 1423+}
 1424+
 1425+.mp-activity-timestamp {
 1426+ color: #999999;
 1427+ font-size: 9px;
 1428+ overflow: hidden;
 1429+ margin: 0px 0px 0px 6px;
 1430+}
 1431+
 1432+.mp-activity {
 1433+ border-bottom: 1px solid #DCDCDC;
 1434+ padding: 7px 0px;
 1435+}
 1436+
 1437+.mp-activity-last {
 1438+ padding: 7px 0px 0px 0px;
 1439+}
 1440+
 1441+.mp-activity img, .mp-activity-bottom img {
 1442+ vertical-align: middle;
 1443+ margin: 0px 5px 0px 0px;
 1444+}
 1445+
 1446+.mp-activity a, .mp-activity-bottom a {
 1447+ text-decoration: none;
 1448+}
 1449+
 1450+.item {
 1451+ color: #666;
 1452+ margin: 2px 25px;
 1453+}
 1454+
 1455+.item a {
 1456+ color: #666;
 1457+}
 1458+
 1459+.item img {
 1460+ border: 1px solid #DCDCDC;
 1461+ padding: 1px;
 1462+ background-color: #FFF;
 1463+}
 1464+
 1465+#recent-all {
 1466+ padding: 0px 0px 25px 0px;
 1467+}
 1468+
 1469+/** Casual Game **/
 1470+.poll-unit-title {
 1471+ font-size: 12px;
 1472+ line-height: 13px;
 1473+ font-weight: bold;
 1474+ color: #777;
 1475+ margin: 0px 0px 8px 0px;
 1476+}
 1477+
 1478+.poll-unit-choices a {
 1479+ text-decoration: none;
 1480+ font-weight: bold;
 1481+ font-size: 12px;
 1482+ display: block;
 1483+}
 1484+
 1485+.poll-unit-image {
 1486+ margin: 0px 0px 8px 0px;
 1487+}
 1488+
 1489+.poll-unit-image img {
 1490+ padding: 3px;
 1491+ background-color: #FFF;
 1492+ border: 1px solid #dcdcdc;
 1493+}
 1494+
 1495+.poll-unit-choices input {
 1496+ margin: 0px 5px 0px 0px;
 1497+}
 1498+
 1499+.quiz-unit-image {
 1500+ margin: 8px 0px 0px 0px;
 1501+}
 1502+
 1503+.quiz-unit-image img {
 1504+ padding: 3px;
 1505+ background-color: #FFF;
 1506+ border: 1px solid #DCDCDC;
 1507+}
 1508+
 1509+.quiz-unit-title a {
 1510+ font-size: 13px;
 1511+ text-decoration: none;
 1512+ font-weight: bold;
 1513+}
 1514+
 1515+.pg-unit-title {
 1516+ font-size: 12px;
 1517+ line-height: 13px;
 1518+ font-weight: bold;
 1519+ color: #777;
 1520+ margin: 0px 0px 8px 0px;
 1521+}
 1522+
 1523+.pg-unit-pictures img {
 1524+ float: left;
 1525+ background-color: #FFF;
 1526+ border: 1px solid #dcdcdc;
 1527+ padding: 3px;
 1528+ margin: 0px 3px 0px 0px;
 1529+}
 1530+
 1531+/** Timeline **/
 1532+.timeline-year-container {
 1533+ padding: 5px;
 1534+ background-color: #EFF3F0;
 1535+ margin-bottom: 5px;
 1536+ border: 1px solid #D4DFD7;
 1537+}
 1538+
 1539+.timeline-year {
 1540+ float: left;
 1541+ width: 100px;
 1542+ font-size: 20px;
 1543+ font-weight: 800;
 1544+ color: #D4DFD7;
 1545+}
 1546+
 1547+.timeline-month-container {
 1548+ float: left;
 1549+}
 1550+
 1551+.timeline-month {
 1552+ font-weight: 800;
 1553+ float: left;
 1554+ width: 100px;
 1555+}
 1556+
 1557+.timeline-data-container {
 1558+ float: left;
 1559+}
 1560+
 1561+/** Edit Profile **/
 1562+.profile-info {
 1563+ background-color: #FFF;
 1564+ padding: 25px 0px;
 1565+}
 1566+
 1567+.profile-tab-bar {
 1568+ padding: 0px;
 1569+}
 1570+
 1571+.profile-update-title {
 1572+ color: #333;
 1573+ padding: 0px;
 1574+}
 1575+
 1576+.profile-tab-bar {
 1577+ margin-top: 20px;
 1578+ border-bottom: none;
 1579+}
 1580+
 1581+.profile-tab {
 1582+ background-color: #68BD46;
 1583+ border: none;
 1584+ margin: 0px 5px 0px 0px;
 1585+}
 1586+
 1587+.profile-tab-on {
 1588+ background-color: #466C2C;
 1589+ border: none;
 1590+ margin: 0px 5px 0px 0px;
 1591+}
 1592+
 1593+.profile-tab-on a, .profile-tab a {
 1594+ color: #FFF;
 1595+ font-weight: normal;
 1596+ text-decoration: none;
 1597+}
 1598+
 1599+.profile-tab a:hover {
 1600+ color: #466C2C;
 1601+}
 1602+
 1603+/** BOTTOM NAV **/
 1604+.bottom-left-nav {
 1605+ margin: 15px 0px 0px 0px;
 1606+}
 1607+
 1608+.game-unit-container, .bottom-left-nav-container {
 1609+ padding: 0px 0px 15px 0px;
 1610+ margin: 0px;
 1611+ border-bottom: none;
 1612+ overflow: hidden;
 1613+}
 1614+
 1615+.game-unit-container h2, .bottom-left-nav-container h2 {
 1616+ margin: 0px 0px 5px 0px !important;
 1617+ font-size: 16px;
 1618+ letter-spacing: -1px;
 1619+ color: #333;
 1620+ border-bottom: none;
 1621+ font-weight: bold;
 1622+}
 1623+
 1624+.game-unit-container a, .bottom-left-nav-container a {
 1625+ color:#0099D9;
 1626+ text-decoration:none;
 1627+}
 1628+
 1629+.game-unit-container a:visited, .bottom-left-nav-container a:visited {
 1630+ color: #0099D9;
 1631+ text-decoration: none;
 1632+}
 1633+
 1634+.game-unit-container a:hover, .bottom-left-nav-container a:hover {
 1635+ color: #01405B;
 1636+ text-decoration: none;
 1637+}
 1638+
 1639+.bottom-left-nav-container .listpages-container a {
 1640+ font-size: 12px;
 1641+ line-height: 14px;
 1642+ text-decoration: none;
 1643+}
 1644+
 1645+.bottom-left-listpage-fix h2 {
 1646+ margin-bottom: -5px !important;
 1647+}
 1648+
 1649+/** Meet the Community **/
 1650+.random-users-avatars {
 1651+ padding: 0px 0px 0px 10px;
 1652+}
 1653+
 1654+.random-users-avatars h2 {
 1655+ border-bottom: none;
 1656+ margin: 0px 0px 0px 0px;
 1657+ padding: 7px 0px 8px 0px;
 1658+}
 1659+
 1660+.random-users-avatars img {
 1661+ border: 1px solid #DCDCDC;
 1662+ display: block;
 1663+ float: left;
 1664+ height: 50px;
 1665+ margin: 0px 8px 8px 0px;
 1666+ width: 50px;
 1667+
 1668+}
 1669+
 1670+/** MP SITE ACTIVITY **/
 1671+.mp-site-activity h2 {
 1672+ border-bottom: none;
 1673+ padding: 15px 0px 8px 0px;
 1674+ margin: 0px;
 1675+}
 1676+
 1677+/** MP WELCOME USER **/
 1678+.mp-welcome-logged-in {
 1679+ margin: 0px 0px 0px 15px;
 1680+}
 1681+
 1682+.mp-welcome-logged-in h2 {
 1683+ font-size: 20px;
 1684+ line-height: 24px;
 1685+ border-bottom: none;
 1686+ padding: 8px 0px 10px 0px !important;
 1687+ margin: 0px 0px 0px 0px !important;
 1688+}
 1689+
 1690+.mp-welcome-info {
 1691+ float: left;
 1692+ width: 240px;
 1693+}
 1694+
 1695+.mp-welcome-image {
 1696+ float: left;
 1697+ margin: 0px 10px 0px 0px;
 1698+ text-align: center;
 1699+}
 1700+
 1701+.mp-welcome-image a {
 1702+ font-size: 10px;
 1703+ text-decoration: none;
 1704+}
 1705+
 1706+.mp-welcome-image img {
 1707+ background-color: #FFFFFF;
 1708+ border: 1px solid #DCDCDC;
 1709+ padding: 3px;
 1710+}
 1711+
 1712+.mp-welcome-points {
 1713+ float: left;
 1714+ width: 200px;
 1715+}
 1716+
 1717+.points-and-level {
 1718+ margin: 0px 0px 3px;
 1719+}
 1720+
 1721+.needed-points {
 1722+ color: #666666;
 1723+ font-size: 10px;
 1724+ line-height: 12px;
 1725+ padding: 5px 0px 0px;
 1726+}
 1727+
 1728+.total-points {
 1729+ background-color: #CC0000;
 1730+ color: #FFFFFF;
 1731+ float: left;
 1732+ font-size: 12px;
 1733+ font-weight: bold;
 1734+ margin: 0px 5px 0px 0px;
 1735+ padding: 1px 5px;
 1736+ text-align: center;
 1737+}
 1738+
 1739+.honorific-level {
 1740+ float: left;
 1741+}
 1742+
 1743+/** Invite Your Friends **/
 1744+.invite-email-title {
 1745+ color: #333333;
 1746+ font-size: 14px;
 1747+ font-weight: bold;
 1748+ margin: 0px 0px 5px;
 1749+}
 1750+
 1751+.invite-email-submessage {
 1752+ color: #666;
 1753+ font-size: 12px;
 1754+}
 1755+
 1756+.email-field {
 1757+ color: #666;
 1758+ font-size: 12px;
 1759+ font-weight: bold;
 1760+}
 1761+
 1762+.email-field input {
 1763+ width: 300px;
 1764+}
 1765+
 1766+/** Comment Ignore List **/
 1767+.comment_blocked_user {
 1768+ margin: 10px 0px 0px 0px;
 1769+}
 1770+
 1771+/** Articles Home **/
 1772+.main-page-left, .main-page-right {
 1773+ padding: 10px 0px 0px 0px;
 1774+}
 1775+
 1776+.logged-in-articles h2, .side-articles h2 {
 1777+ font-size: 1.5em;
 1778+ letter-spacing: 0px;
 1779+ color: #000;
 1780+ font-weight: normal;
 1781+}
 1782+
 1783+.rss-feed img {
 1784+ margin: 0px 3px 0px 0px;
 1785+}
 1786+
 1787+/** User Activity */
 1788+.user-home-feed {
 1789+ padding-top: 15px;
 1790+ width: 60%;
 1791+}
 1792+
 1793+.user-home-links-container {
 1794+ padding-top: 15px;
 1795+}
 1796+
 1797+/** Video **/
 1798+#wpVideo {
 1799+ width: 500px;
 1800+}
 1801+
 1802+/** Awards **/
 1803+.top-awards {
 1804+ padding-top: 15px;
 1805+}
 1806+
 1807+.email-new-article-message {
 1808+ padding: 15px 0px 0px 0px;
 1809+}
 1810+
 1811+#siteNotice {
 1812+ border: none;
 1813+}
 1814+
 1815+textarea#pageBody {
 1816+ width: 80%;
 1817+}
Property changes on: trunk/extensions/skins/Nimbus/nimbus/Nimbus.css
___________________________________________________________________
Added: svn:eol-style
11818 + native
Index: trunk/extensions/skins/Nimbus/nimbus/navigation_top.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/navigation_top.gif
___________________________________________________________________
Added: svn:mime-type
21819 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/article_tab_off_right_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/article_tab_off_right_ltr.gif
___________________________________________________________________
Added: svn:mime-type
31820 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/article_tab_off_right_rtl.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/article_tab_off_right_rtl.gif
___________________________________________________________________
Added: svn:mime-type
41821 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/plus.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/plus.gif
___________________________________________________________________
Added: svn:mime-type
51822 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/article_tab_on_right_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/article_tab_on_right_ltr.gif
___________________________________________________________________
Added: svn:mime-type
61823 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/article_tab_on_right_rtl.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/article_tab_on_right_rtl.gif
___________________________________________________________________
Added: svn:mime-type
71824 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/navigation_bottom.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/navigation_bottom.gif
___________________________________________________________________
Added: svn:mime-type
81825 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/category_button_right_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/category_button_right_ltr.gif
___________________________________________________________________
Added: svn:mime-type
91826 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/category_button_right_rtl.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/category_button_right_rtl.gif
___________________________________________________________________
Added: svn:mime-type
101827 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/right_arrow.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/right_arrow.gif
___________________________________________________________________
Added: svn:mime-type
111828 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/negative_button_left_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/negative_button_left_ltr.gif
___________________________________________________________________
Added: svn:mime-type
121829 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/negative_button_left_rtl.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/negative_button_left_rtl.gif
___________________________________________________________________
Added: svn:mime-type
131830 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/positive_button_left_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/positive_button_left_ltr.gif
___________________________________________________________________
Added: svn:mime-type
141831 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/positive_button_left_rtl.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/positive_button_left_rtl.gif
___________________________________________________________________
Added: svn:mime-type
151832 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/sw_logo.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
Property changes on: trunk/extensions/skins/Nimbus/nimbus/sw_logo.png
___________________________________________________________________
Added: svn:mime-type
161833 + image/png
Index: trunk/extensions/skins/Nimbus/nimbus/Nimbus_IE.css
@@ -0,0 +1,34 @@
 2+.user-board-message-links {
 3+ padding-top: 5px;
 4+}
 5+
 6+.profile-toggle-button {
 7+ left: 50px;
 8+}
 9+
 10+#title-linktabs, #profile-toggle-button {
 11+ right: 20px !important;
 12+}
 13+
 14+.ratings-top {
 15+ right: 20px !important;
 16+ top: 45px;
 17+}
 18+
 19+.bottom-left-nav {
 20+ margin-top: 0px;
 21+}
 22+
 23+.menu-item .sub-menu-button {
 24+ right: 10px;
 25+}
 26+
 27+#title-linktabs {
 28+ right: 0px !important;
 29+ top: 5px !important;
 30+}
 31+
 32+.ratings-top {
 33+ right: 0px !important;
 34+ top: 37px !important;
 35+}
\ No newline at end of file
Property changes on: trunk/extensions/skins/Nimbus/nimbus/Nimbus_IE.css
___________________________________________________________________
Added: svn:eol-style
136 + native
Index: trunk/extensions/skins/Nimbus/nimbus/article_tab_off_left_rtl.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/article_tab_off_left_rtl.gif
___________________________________________________________________
Added: svn:mime-type
237 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/article_tab_off_left_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/article_tab_off_left_ltr.gif
___________________________________________________________________
Added: svn:mime-type
338 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/article_tab_on_left_rtl.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/article_tab_on_left_rtl.gif
___________________________________________________________________
Added: svn:mime-type
439 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/article_tab_on_left_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/article_tab_on_left_ltr.gif
___________________________________________________________________
Added: svn:mime-type
540 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/search_button.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/search_button.gif
___________________________________________________________________
Added: svn:mime-type
641 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/category_button_left_rtl.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/category_button_left_rtl.gif
___________________________________________________________________
Added: svn:mime-type
742 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/category_button_left_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/category_button_left_ltr.gif
___________________________________________________________________
Added: svn:mime-type
843 + image/gif
Index: trunk/extensions/skins/Nimbus/nimbus/right_arrow_ltr.gif
Cannot display: file marked as a binary type.
svn:mime-type = image/gif
Property changes on: trunk/extensions/skins/Nimbus/nimbus/right_arrow_ltr.gif
___________________________________________________________________
Added: svn:mime-type
944 + image/gif

Follow-up revisions

RevisionCommit summaryAuthorDate
r96620Translate: allow SiteMetrics extension (r96469) and Nimbus skin (r96356) to b...ashley22:11, 8 September 2011
r97334Per initial commit r96356: Some tweaks to the i18n file: Uppercase -> lowerca...raymond21:03, 16 September 2011
r97335Forgot to press Ctrl-S: r97334 (was: Per initial commit r96356)raymond21:08, 16 September 2011

Comments

#Comment by Siebrand (talk | contribs)   21:29, 16 September 2011

Please document the messages that were added in the i18n file.

#Comment by Jack Phoenix (talk | contribs)   08:55, 17 September 2011

Done, complete with five screenshots illustrating what messages are used where.

Status & tagging log