
.dj_gecko-rtl .dijitInputField {
	direction: ltr; 
}
.dj_gecko-rtl .dijitInputField * {
	direction: rtl; 
}
.dijitRtl .dijitMenuItem {
	text-align: right;
}
.dijitRtl .dijitComboBox .dijitInputField {
	border-right-width:1px !important;
	border-left-width:0 !important;
}
.dijitRtl .dijitCalendarNextYear {
	margin:0 0.55em 0 0;
}
.dijitRtl .dijitCalendarPreviousYear {
	margin:0 0 0 0.55em;
}
.dijitRtl .dijitProgressBarFull .dijitProgressBarLabel {
	right:0; 
}
.dijitRtl .dijitSliderImageHandleV {
	left:auto;
	right:-6px;
}
.dj_ie-rtl .dijitSliderImageHandleV {
	right:-10px;
}
.dijitRtl .dijitSliderMoveableH {
	right:auto;
	left:0;
}
.dijitRtl .dijitRuleContainerV {
	float:right;
}
.dj_gecko-rtl .dijitRuleContainerV {
	float:left;
}
.dj_ie-rtl .dijitRuleContainerV {
	text-align:right;
}
.dj_ie-rtl .dijitRuleLabelV {
	text-align:left;
}
.dj_ie-rtl .dijitRuleLabelH {
	zoom:1;
}
.dj_ie-rtl .dijitSliderProgressBarH {
	right:0;
	left:auto;
}
.dj_gecko-rtl .dijitSliderProgressBarH {
	float:right;
	right:0;
	left:auto;
}
.dijitRtl .dijitSpinner .dijitInputLayoutContainer .dijitArrowButton {
	right: auto;
	left: 0;
	border-width: 0 1px 0 0 !important;
}
.dijitRtl .dijitSpinnerButtonContainer {
	float: left;
}
.dijitRtl .dijit_a11y .dijitSpinnerButtonContainer {
	margin-left: none;
	margin-right: 2px;
}
.dijitRtl DIV.dijitArrowButton, .dijitRtl .dijitValidationIcon, .dijitRtl .dijitValidationIconText {
	float: left;
}
.dijitRtl .dijitContentPaneLoading, .dijitRtl .dijitContentPaneError {
	background-position:right;
	padding-right:25px;
}
.dijitRtl .dijitTabContainer .tabStripMenuButton {
	float: left;
}
.dj_iequirks-rtl .dijitComboButton BUTTON {
        float:left;
}
.dijitRtl .tundra .dijitCalendarDecrease {
	background-position: -30px top;
}
.dijitRtl .tundra .dijitCalendarIncrease {
	background-position: 0px top;
}
.dijitRtl .tundra .dijitDialogTitleBar .dijitDialogCloseIcon {
	right: auto;
	left: 5px;
}
.dijitRtl .tundra .dijitEditorIcon {
	background-image: url(images/editor_rtl.gif); 
}
.dijitRtl .tundra .dijitDisabled .dijitEditorIcon {
	background-image: url(images/editorDisabled_rtl.gif); 
}
.dijitRtl .tundra .dijitToolbar .dijitToolbarSeparator {
	background-image: url(images/editor_rtl.gif);
}
.dijitRtl .tundra .dijitMenuItem .dijitMenuItemIcon {
	padding-left: 3px;
	padding-right: 0px;
}
.dijitRtl .tundra .dijitMenuItem .dijitMenuExpand {
	background-position: -7px 0px;
}
.dijitRtl .tundra .dijitTreeContainer .dijitTreeNode {
    background-image : none;
}
.dijitRtl .tundra .dijitTreeContainer .dijitTreeExpandoOpened {
	background-image: url(images/treeExpand_minus_rtl.gif);
}
.dijitRtl .tundra .dijitTreeContainer .dijitTreeExpandoClosed {
	background-image: url(images/treeExpand_plus_rtl.gif);
}
.dijitRtl .tundra .dijitTreeContainer .dijitTreeExpandoLeaf {
	background-image: none;
}
.dijitRtl .tundra .dijitTitlePane .dijitClosed .dijitArrowNode {
	background-position: -7px 0px;
}
.dijitRtl .tundra .dijitTab {
	-moz-box-orient:horizontal;
	text-align: right;
}
.dijitRtl .tundra .dijitTabInnerDiv {
	padding:2px 9px 2px 8px;
}
.dijitRtl .tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv {
	padding-bottom: 3px;
	padding-top: 1px;
}
.dijitRtl .tundra .tabStripButton .dijitTabInnerDiv {
	padding: 3px 2px 4px 2px;
}
.dijitRtl .tundra .dijitTabPaneWrapper {
	#zoom: 1;
}
.dj_ie-rtl .tundra .dijitTabContainerLeft-tabs {
	margin-left: 1px !important;
}
.dj_ie-rtl .tundra .dijitTabContainerRight-tabs {
	margin-right: 1px !important;
}
.dijitRtl .tundra .dijitTabContainerLeft-tabs .dijitTab,
.dijitRtl .tundra .dijitTabContainerRight-tabs .dijitTab {
	margin-left:0px;
}
.dj_ie-rtl .tundra .dijitTab .dijitTabInnerDiv {
	
	width : 0.1% !important;
}
.dijitRtl .tundra .dijitSliderProgressBarH,
.dijitRtl .tundra .dijitSliderRemainingBarH,
.dijitRtl .tundra .dijitSliderLeftBumper,
.dijitRtl .tundra .dijitSliderRightBumper,
.dijitRtl .tundra .dijitSliderTopBumper {
	background-position: top right;
}
.dijitRtl .tundra .dijitSliderProgressBarV,
.dijitRtl .tundra .dijitSliderRemainingBarV,
.dijitRtl .tundra .dijitSliderBottomBumper {
	background-position: bottom right;
}
.dijitRtl .tundra .dijitSliderLeftBumper {
	border-left-width: 0px;
	border-right-width: 1px;
}
.dijitRtl .tundra .dijitSliderRightBumper {
	border-left-width: 1px;
	border-right-width: 0px;
}
.dijitRtl .tundra .dijitSliderIncrementIconH {
	background-position: -7px 0px;
}
.dijitRtl .tundra .dijitSliderDecrementIconH {
	background-position: -14px 0px;
}
.dijitRtl .tundra .dijitComboBox .dijitButtonNode,
.dijitRtl .tundra .dijitSpinner .dijitButtonNode {
	
	border-left-width: 0px;
	border-right-width: 1px;
}
