Index: includes/theme.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/theme.inc,v
retrieving revision 1.388
diff -u -p -r1.388 theme.inc
--- includes/theme.inc	4 Oct 2007 19:24:50 -0000	1.388
+++ includes/theme.inc	7 Oct 2007 01:14:27 -0000
@@ -1748,6 +1748,7 @@ function template_preprocess_page(&$vari
   $variables['head']              = drupal_get_html_head();
   $variables['help']              = theme('help');
   $variables['language']          = $GLOBALS['language'];
+  $variables['direction']         = $GLOBALS['language']->direction;
   $variables['logo']              = theme_get_setting('logo');
   $variables['messages']          = $variables['show_messages'] ? theme('status_messages') : '';
   $variables['mission']           = isset($mission) ? $mission : '';
Index: themes/garland/fix-ie-rtl.css
===================================================================
RCS file: /cvs/drupal/drupal/themes/garland/fix-ie-rtl.css,v
retrieving revision 1.1
diff -u -p -r1.1 fix-ie-rtl.css
--- themes/garland/fix-ie-rtl.css	6 Sep 2007 21:17:07 -0000	1.1
+++ themes/garland/fix-ie-rtl.css	7 Oct 2007 01:13:31 -0000
@@ -1,63 +1,23 @@
 /* $Id: fix-ie-rtl.css,v 1.1 2007/09/06 21:17:07 goba Exp $ */
 
-body {
-  /* Center layout */
-  text-align: center;
-  /* Allow text resizing */
-  font-size: 80%;
-}
+/**
+ * Garland, for Drupal 5.0
+ * Stefan Nagtegaal, iStyledThis [dot] nl
+ * Steven Wittens, acko [dot] net
+ */
 
-#squeeze {
+.rtl #squeeze {
   zoom: 1;
   direction: ltr;
 }
 
-#squeeze .left-corner{
+.rtl #squeeze .left-corner{
   direction: rtl
 }
 
-#header-region, #wrapper #container {
+.rtl #header-region, .rtl #wrapper #container {
   /* Reset text alignment */
   text-align: right;
 }
 
-#wrapper #container #center {
-  /* Reduce amount of damage done by extremely wide content */
-  overflow: hidden;
-}
-
-#wrapper #container #center .right-corner .left-corner {
-  /* Because of the lack of min-height, we use height as an alternative */
-  height: 400px;
-}
-
-fieldset {
-  /* Don't draw backgrounds on fieldsets in IE, as they look really bad. */
-  background: none;
-}
-
-/* Prevent fieldsets from shifting when changing collapsed state. */
-html.js fieldset.collapsible {
-  position: relative;
-  top: -1em;
-}
 
-html.js fieldset.collapsed {
-  top: 0;
-  margin-bottom: 1em;
-}
-
-td.menu-disabled {
-  /* Use filter to emulate CSS3 opacity */
-  filter: alpha(opacity=50);
-}
-
-#header-region {
-  /* Because of the lack of min-height, we use height as an alternative */
-  height: 1em;
-}
-
-#attach-hide label, #uploadprogress div.message {
-  /* Fading elements in IE causes the text to bleed unless they have a background. */
-  background-color: #ffffff;
-}
Index: themes/garland/page.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/garland/page.tpl.php,v
retrieving revision 1.13
diff -u -p -r1.13 page.tpl.php
--- themes/garland/page.tpl.php	5 Oct 2007 13:09:17 -0000	1.13
+++ themes/garland/page.tpl.php	7 Oct 2007 01:06:12 -0000
@@ -12,7 +12,7 @@
       <?php print phptemplate_get_ie_styles(); ?>
     <![endif]-->
   </head>
-  <body<?php print phptemplate_body_class($left, $right); ?>>
+  <body class="<?php print phptemplate_body_class($left, $right); ?> <?php print $direction; ?>">
 
 <!-- Layout -->
   <div id="header-region" class="clear-block"><?php print $header; ?></div>
Index: themes/garland/style-rtl.css
===================================================================
RCS file: /cvs/drupal/drupal/themes/garland/style-rtl.css,v
retrieving revision 1.2
diff -u -p -r1.2 style-rtl.css
--- themes/garland/style-rtl.css	2 Oct 2007 16:03:17 -0000	1.2
+++ themes/garland/style-rtl.css	7 Oct 2007 01:12:35 -0000
@@ -1,147 +1,124 @@
 /* $Id: style-rtl.css,v 1.2 2007/10/02 16:03:17 dries Exp $ */
 
-html {
-  direction: rtl;
-}
-
-/**
- * Markup free clearing
- * Details: http://www.positioniseverything.net/easyclearing.html
- */
-.clear-block:after {
-  content: ".";
-  display: block;
-  height: 0;
-  clear: both;
-  visibility: hidden;
-}
-
-.clear-block {
-  display: inline-block;
-}
-
-/* Hides from IE-mac \*/
-* html .clear-block {
-  height: 1%;
-}
-
-.clear-block {
-  display: block;
-}
-/* End hide from IE-mac */
-
 /**
  * Generic elements
  */
-body {
+body.rtl {
   direction: rtl;
 }
 
-ol li, ul li {
+.rtl ol li, .rtl ul li {
   margin: 0.4em .5em 0.4em 0;
 }
 
-ul.menu, .item-list ul {
+.rtl ul.menu, .rtl .item-list ul {
   margin: 0.35em -0.5em 0 0;
 }
 
-ul.menu ul, .item-list ul ul {
+.rtl ul.menu ul, .rtl .item-list ul ul {
   margin-left: inherit;
   margin-right: 0em;
 }
 
-ol li, ul li, ul.menu li, .item-list ul li, li.leaf {
+.rtl ol li,
+.rtl ul li,
+.rtl ul.menu li,
+.rtl .item-list ul li,
+.rtl li.leaf {
   margin: 0.15em .5em 0.15em 0;
 }
 
-ul li, ul.menu li, .item-list ul li, li.leaf {
+.rtl ul li,
+.rtl ul.menu li,
+.rtl .item-list ul li,
+.rtl li.leaf {
   padding: 0 1.5em .2em 0;
-  background: transparent url("images/menu-leaf.gif") no-repeat 100% .35em;
+  background: transparent url(images/menu-leaf.gif) no-repeat 100% .35em;
 }
 
-ol li {
+.rtl ol li {
   margin-left: inherit;
   margin-right: 2em;
 }
 
-ul li.expanded {
-  background: transparent url("images/menu-expanded.gif") no-repeat 100% .35em;
+.rtl ul li.expanded {
+  background: transparent url(images/menu-expanded.gif) no-repeat 100% .35em;
 }
 
-ul li.collapsed {
-  background: transparent url("images/menu-collapsed-rtl.gif") no-repeat 100% .35em;
+.rtl ul li.collapsed {
+  background: transparent url(images/menu-collapsed-rtl.gif) no-repeat 100% .35em;
 }
 
-ul.inline li {
+.rtl ul.inline li {
   padding: 0 0 0 1em;
 }
 
-ol.task-list {
+.rtl ol.task-list {
   margin-left: inherit;
   margin-right: 0;
 }
 
-ol.task-list li {
+.rtl ol.task-list li {
   padding: 0.5em 2em 0.5em 1em;
 }
 
-ol.task-list li.active {
+.rtl ol.task-list li.active {
   background: transparent url(images/task-list.png) no-repeat 97px 50%;
 }
 
-ol.task-list li.done {
+.rtl ol.task-list li.done {
   background: transparent url(../../misc/watchdog-ok.png) no-repeat 100% 50%;
 }
 
-ol.task-list li.active {
+.rtl ol.task-list li.active {
   margin-right: inherit;
   margin-left: 1em;
 }
 
-dl {
+.rtl dl {
   margin: 0.5em 1.5em 1em 0;
 }
 
-dl dt {
+.rtl dl dt {
 }
 
-dl dd {
+.rtl dl dd {
   margin: 0 1.5em .5em 0;
 }
 
-.form-button, .form-submit {
+.rtl .form-button, .form-submit {
   margin: 2em 0 1em 0.5em;
 }
 
-#header-region h2 {
+.rtl #header-region h2 {
   margin: 0 0 0 1em;
 }
 
-#wrapper {
-  background: #edf5fa url("images/body.png") repeat-x 50% 0;
+.rtl #wrapper {
+  background: #edf5fa url(images/body.png) repeat-x 50% 0;
 }
 
-#wrapper #container #header h1 img {
+.rtl #wrapper #container #header h1 img {
   padding-right: inherit;
   float: right;
   padding-right: inherit;
   padding-left : 20px;
 }
 
-#sidebar-left .block-region {
+.rtl #sidebar-left .block-region {
   margin: 0 0 0 15px;
 }
 
-#sidebar-right .block-region {
+.rtl #sidebar-right .block-region {
   margin: 0 15px 0px 0;
 }
 
 /* Now we add the backgrounds for the main content shading */
-#wrapper #container #center #squeeze {
-  background: #fff url("images/bg-content.png") repeat-x 50% 0;
+.rtl #wrapper #container #center #squeeze {
+  background: #fff url(images/bg-content.png) repeat-x 50% 0;
 }
 
-#wrapper #container .breadcrumb {
+.rtl #wrapper #container .breadcrumb {
   position: absolute;
   top: 15px;
   left: inherit;
@@ -152,134 +129,140 @@ dl dd {
 /**
  * Primary navigation
  */
-ul.primary-links {
+.rtl ul.primary-links {
   float: left;
-width:70%;
+  width:70%;
 }
 
-ul.primary-links li {
+.rtl ul.primary-links li {
   float: right;
 }
 
 /**
  * Secondary navigation
  */
-ul.secondary-links {
+.rtl ul.secondary-links {
   padding: 20px 0 0;
   float: left;
   clear: left;
 }
 
-ul.secondary-links li {
+.rtl ul.secondary-links li {
   float: right;
 }
 
-ul.primary {
+.rtl ul.primary {
   float: right;
 }
-ul.secondary {
+.rtl ul.secondary {
   clear: both;
   text-align: right;
 }
-h2.with-tabs {
+.rtl h2.with-tabs {
   float: right;
   margin: 0 0 0 2em;
 }
 
-ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a:visited,
-ul.secondary li a, ul.secondary li.active a, ul.secondary li a:hover, ul.secondary li a:visited {
+.rtl ul.primary li a,
+.rtl ul.primary li.active a,
+.rtl ul.primary li a:hover,
+.rtl ul.primary li a:visited,
+.rtl ul.secondary li a,
+.rtl ul.secondary li.active a,
+.rtl ul.secondary li a:hover,
+.rtl ul.secondary li a:visited {
   margin: 0 1px 0 0;
 
 }
-ul.primary li a:after {
+
+.rtl ul.primary li a:after {
   /* Fix Firefox 2 RTL bug. */
   content: " ";
 }
 
-ul.links li, ul.inline li {
+.rtl ul.links li, ul.inline li {
   padding-left: 1em;
   padding-right: 0;
 }
 
-.node .links, .comment .links {
+.rtl .node .links, .rtl .comment .links {
   text-align: right;
 }
 
-.node .links ul.links li, .comment .links ul.links li {}
-.terms ul.links li {
+.rtl .terms ul.links li {
   padding-right: 1em;
   padding-left: 0;
 }
 
-.picture, .comment .submitted {
+.rtl .picture, .rtl .comment .submitted {
   padding-left: inherit;
   float: left;
   clear: left;
   padding-right: 1em;
 }
 
-.new {
+.rtl .new {
   float: left;
 }
 
-.terms {
+.rtl .terms {
   float: left;
 }
 
-.indented {
+.rtl .indented {
   margin-left: 0; /* an should be inherit, but force left margin to be 0  */
   margin-right: 25px;
 }
 
-html.js fieldset.collapsible legend a {
+.rtl html.js fieldset.collapsible legend a {
   padding-left: inherit;
   padding-right: 2em;
-  background: url("images/menu-expanded.gif") no-repeat 100% 50%;
+  background: url(images/menu-expanded.gif) no-repeat 100% 50%;
 }
 
-html.js fieldset.collapsed legend a {
-  background: url("images/menu-collapsed-rtl.gif") no-repeat 100% 50%;
+.rtl html.js fieldset.collapsed legend a {
+  background: url(images/menu-collapsed-rtl.gif) no-repeat 100% 50%;
 }
 
 /**
  * Syndication Block
  */
-#block-node-0 h2 {
+.rtl #block-node-0 h2 {
   float: right;
   padding-right: inherit;
   padding-left: 20px;
 }
 
-#block-node-0 img {
+.rtl #block-node-0 img {
   float: left;
 }
 
-#block-node-0 .content {
+.rtl #block-node-0 .content {
   clear: left;
 }
 
 /**
  * Login Block
  */
-#user-login-form ul {
+.rtl #user-login-form ul {
   text-align: right;
 }
 
-div.admin .left {
+.rtl div.admin .left {
   float: right;
 }
 
-div.admin .right {
+.rtl div.admin .right {
   float: left;
 }
 
 /* Fix Opera, IE6 and IE7 header width */
-#wrapper #container #header {
+.rtl #wrapper #container #header {
   position: relative;
   width: 100%;
 }
 
-#wrapper #container #header #logo-floater {
+.rtl #wrapper #container #header #logo-floater {
   width: 100%;
   left: 0;
   top:0;
@@ -290,21 +273,27 @@ div.admin .right {
  */
 
 /* Position:relative on these breaks IE7. */
-ul.primary li a, ul.primary li.active a, ul.primary li a:hover, ul.primary li a:visited,
-ul.secondary li a, ul.secondary li.active a, ul.secondary li a:hover, ul.secondary li a:visited {
+.rtl ul.primary li a,
+.rtl ul.primary li.active a,
+.rtl ul.primary li a:hover,
+.rtl ul.primary li a:visited,
+.rtl ul.secondary li a,
+.rtl ul.secondary li.active a,
+.rtl ul.secondary li a:hover,
+.rtl ul.secondary li a:visited {
   position: static;
 }
 
 /* Fix right and left cloumns position breaking on window resize */
-#container {
+.rtl #container {
   position: relative;
 }
 
-#center {
+.rtl #center {
   position: relative;
 }
 
-#sidebar-right{
+.rtl #sidebar-right{
   position: absolute;
   right: 0;
 }
@@ -315,7 +304,7 @@ ul.secondary li a, ul.secondary li.activ
  */
 
 /* Fix background bleed in center column. */
-#squeeze,
-#squeeze .right-corner {
+.rtl #squeeze,
+.rtl #squeeze .right-corner {
   min-height: 1%;
 }
Index: themes/garland/template.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/garland/template.php,v
retrieving revision 1.15
diff -u -p -r1.15 template.php
--- themes/garland/template.php	2 Oct 2007 16:03:17 -0000	1.15
+++ themes/garland/template.php	7 Oct 2007 01:15:24 -0000
@@ -20,7 +20,7 @@ function phptemplate_body_class($left, $
   }
 
   if (isset($class)) {
-    print ' class="'. $class .'"';
+    return $class .' ';
   }
 }
 
@@ -105,7 +105,7 @@ function phptemplate_get_ie_styles() {
 
   $iecss = '<link type="text/css" rel="stylesheet" media="all" href="'. base_path() . path_to_theme() .'/fix-ie.css" />';
   if (defined('LANGUAGE_RTL') && $language->direction == LANGUAGE_RTL) {
-    $iecss .= '<style type="text/css" media="all">@import "'. base_path() . path_to_theme() .'/fix-ie-rtl.css";</style>';
+    $iecss .= '<link type="text/css" rel="stylesheet" media="all" href="'. base_path() . path_to_theme() .'/fix-ie-rtl.css" />>';
   }
 
   return $iecss;
