/*
 *
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 *  (the "License"); you may not use this file except in compliance with
 *  the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */

.titleTable {
	width: 100%;
}
.titleTableTitle {
	white-space: nowrap;
	padding-left: 15px;
	padding-right: 5px;
	font-size: 13px;
	height: 44px;
	background-image: url(images/titleTableTop.jpg);
	background-repeat: repeat-x;
}
.titleTableSearch {
	white-space: nowrap;
	background-image: url(images/titleTableTop.jpg);
	background-repeat: repeat-x;
	padding-right: 10px;
	width: 220;
}
.searchForm {
	margin-top: 0px;
	margin-bottom: 0px;
}
.titleTableTopNav {
	font-size: 12px;
	background-image: url(images/titleTableTop.jpg);
	background-repeat: repeat-x;
}
.titleTableLogo {
	width: 76px;
	height: 80px;
	vertical-align: top;
}
.titleTableRow2 {
	color: #000000;
	height: 31px;
	background-image: url(images/titleTableMiddle.jpg);
	background-repeat: repeat-x;
}
.titleTableSubTitle {
	font-size: 20px;
	padding-left: 15px;
	padding-right: 5px;
}
.titleTableSubNav {
	//white-space: nowrap;
	font-size: 12px;
}
.titleTableRow3 {
	height: 5px;
	background-image: url(images/titleTableBottom.jpg);
	background-repeat: repeat-x;
}
.logoImage {
	width: 76px;
	height: 80px;
}

.classHeaderTable {
	margin-top: 20px;
}
.classHeaderTable td {
	vertical-align: top;
	padding-bottom: 4px;
}
.classHeaderTableLabel {
	font-weight: bold;
	padding-right: 15px;
}
.classSignature {
	text-indent: -20px;
	padding-left: 20px;
}
.inheritanceList {
	text-indent: -20px;
	padding-left: 20px;
}
.inheritArrow {
	width: 15px;
	height: 9px;
}
.mxmlSyntax {
	margin-bottom: -13px;
}
.collapsedImage {
	width: 9px;
	height: 9px;
	border: 0;
}
.expandedImage {
	width: 9px;
	height: 9px;
	border: 0;
}
.classFrameContent {
	margin-right: 5px;
	margin-left: 10px;
	margin-top: 10px;
	margin-bottom: 10px;
}
.classFrameContent td {
	white-space: nowrap;
	padding-right: 5px;
}

.eclipseBody {
	display: none;
}
	
/** html {
	overflow-y:scroll;
}*/

img {
	border:0;
}

.annotation {
	font-size: 20px;
	margin-top: 20px;
}

.label {
	color: #444444;
	font-weight: bold;
}

strong {
	color: #444444;
}

.summarySection {
	margin-left: 20px;
	margin-right: 10px;
}
.summaryTableTitle {
	font-weight: bold;
	font-size: 18px;
	padding-top: 20px;
	padding-bottom: 5px;
}
* .summaryTable {
	margin-top: 10px;
	border: #999999 1px solid;
	width: 100%;
	margin-bottom: 20px;
}
html>body .summaryTable {
	margin-top: 10px;
	border: #999999 1px solid;
	width: 100%;
	margin-bottom: 20px;
	margin-right: 10px;
}
.summaryTable th {
	color: #FFFFFF;
	background-color: #627C9D;
	white-space: nowrap;
}
.summaryTable td {
	border-top: #999999 1px solid;
	vertical-align: top;
}
.summaryTablePaddingCol {
	width: 5px;
}
.summaryTableInheritanceCol {
	width: 14px;
}
.summaryTableSignatureCol {
	padding-right: 10px;
}
.summaryTableOperatorCol {
	padding-left: 10px;
	padding-right: 10px;
	font-weight: bold;
}
.summaryTableStatementCol {
	padding-left: 10px;
	padding-right: 10px;
	font-weight: bold;
	white-space: nowrap;
}
.summarySignature {
	text-indent: -20px;
	padding-left: 20px;
}
.summaryTableOwnerCol {
	padding-right: 10px;
	width: 10px;
}
.summaryTableCol, .summaryTableSecondCol {
}
.signatureLink {
	font-weight: bold;
}
.summaryTableDescription {
	color: #333333;
}
.summaryTableLastCol {
	padding-right: 10px;
}
.inheritedSummaryImage {
	width: 14px;
	height: 14px;
}

.showHideLink {
}
.showHideLinkImage {
	width: 9px;
	height: 9px;
}
.hideInheritedConstant {
	display: none;
}
.showInheritedConstant {
	display: inline;
}
.hideInheritedProtectedConstant {
	display: none;
}
.showInheritedProtectedConstant {
	display: inline;
}
.hideInheritedProperty {
	display: none;
}
.showInheritedProperty {
	display: inline;
}
.hideInheritedProtectedProperty {
	display: none;
}
.showInheritedProtectedProperty {
	display: inline;
}
.hideInheritedMethod {
	display: none;
}
.showInheritedMethod {
	display: inline;
}
.hideInheritedProtectedMethod {
	display: none;
}
.showInheritedProtectedMethod {
	display: inline;
}
.hideInheritedEvent {
	display: none;
}
.showInheritedEvent {
	display: inline;
}
.hideInheritedStyle {
	display: none;
}
.showInheritedStyle {
	display: inline;
}
.hideInheritedEffect {
	display: none;
}
.showInheritedEffect {
	display: inline;
}


.detailSectionHeader {
	color: #434343;
	font-size: 18px;
	padding-left: 10px;
	padding-top: 4px;
	padding-bottom: 4px;
	margin-top: 40px;
	margin-bottom: 3px;
	background-image: url(images/detailSectionHeader.jpg);
	background-repeat: repeat-x;
}
.detailHeader {
	margin-left: 20px;
	margin-top: 10px;
	margin-bottom: 3px;
}
.detailHeaderName {
	font-weight: bold;
	font-size: 16px;
	vertical-align: baseline;
	white-space: nowrap;
}
.detailHeaderType {
	font-size: 12px;
	vertical-align: baseline;
	padding-right: 10px;
	padding-left: 7px;
	white-space: nowrap;
}
.detailHeaderParens {
	font-size: 14px;
	font-weight: bold;
	padding-left: 1px;
	padding-bottom: 2px;
}
.detailHeaderRule {
	background-image: url(images/detailHeaderRule.jpg);
	background-repeat: repeat-x;
	width: 100%;
	background-position: 50%;
}
.detailBody {
	margin-left: 20px;
	margin-right: 15px;
	margin-bottom: 20px;
}
.exampleHeader {
	background-color: #C8D1DF;
	padding-left: 10px;
	padding-top: 3px;
	padding-bottom: 3px;
}

.seeAlso {
	margin-top: -13px;
	padding-left: 20px;
}

/*
#header {
	padding: 0;
	margin: 0;
	border: 2px solid
}
*/

body {
	font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
	color: #000000;
	background-color:#FFFFFF;
	margin: 0px;
	padding: 0px;
}

body, td, th {
	font-size: 13px;
}

.MainContent {
	margin-left: 20px;
	margin-right: 10px;
	margin-bottom: 10px;
}

code {
	font-family: "Lucida Console", "Courier New", Courier, monospace; 
	font-size: 12px;
}
pre {
	font-family: "Lucida Console", "Courier New", Courier, monospace; 
	font-size: 12px;
}

th	{
	text-align: left;
	font-weight: bold;
	vertical-align: bottom;
}

table {
	background-color: white;
}

table.withBorder {
	border-color: #BBBBBB;
	border-width: 1px;
	border-style: solid;
}

.innertable {
	border-collapse: collapse; /* to eliminate the default table cellspacing=2 */
}

.innertable th {
	border: 1px solid #000000;
	background:#DDDDDD;
	padding: 2px 3px 2px 3px;
}

.innertable td {
	border: 1px solid #000000;
	padding: 2px 3px 2px 3px;
}

.experimental {
    background-color: #e4ffe5;
}

.paramSpacer {
	font-size: 5px;
}

/* Custom Classes */
.row0 {
	background-color: #F2F2F2;
}

.row1 {
	background-color: #FFFFFF;
}

.prow0 {
	background-color: #F2F2F2;
}

.prow1 {
	background-color: #FFFFFF;
}

.idxrow {
	padding-top: 5px;
}

.SummaryTableHeader {
    background-color: #CCCCCC;
}

.InheritedTableHeader {
    background-color: #EEEEEE;
}

.PackageTableHeader {
    background-color: #EEEEEE;
}


/* Links */
a:link {
	color: #0000CC;
	text-decoration: none;
}

a:visited {
    color: #0000CC;
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
	color: #0000CC;
}

a:active {
	text-decoration: none;
	color: #CC0000;
}

/* Headings */
h1, h2, h3, h4, h5, h6	{
	font-family: "Trebuchet MS", "Bitstream Vera Sans", verdana, lucida, arial, helvetica, sans-serif;
	font-weight: bold;
	margin-top: 3px;
	margin-bottom: 3px;
	letter-spacing: 1px;
	width: 90%;
}

h1 {
	font-size: 18px;
}

h2 {
	font-size: 16px;
}

h3 {
	font-size: 14px;
}

h4 {
	font-size: 12px;
	color: #666666;
}

h5 {
	font-size: 11px;
}
.copyright {
   margin-top: 30px;
   color: #777777;
   font-size: 10px;
   padding-bottom: 5px;
}
.inheritanceList {
	line-height: 19px;
}
.private {
    color: #999999;
}
.flashonly {
    color: #000000;
}
.flexonly {
    display:none;
    color: #000000;
}
.hide {
	display:none;
}
.feedbackLink {
/*	display:none;  */
}

/* IE */
* html .listing {
   width: 93%;
   padding-left: 6%;
   padding-right: 5px;
   padding-top: 5px;
   padding-bottom: 5px;
   overflow-x: auto;	
   background-color: #F2F2F2;
   margin-bottom: 10px;
   margin-top: 10px;
   font-family: "Lucida Console", "Courier New", Courier, monospace;
   font-size: 12px;
}

/* Firefox, Netscape */
html>body .listing pre
{
   overflow: auto;
   padding-left: 40px;
   padding-right: 5px;
   padding-top: 5px;
   padding-bottom: 5px;
   background-color: #F2F2F2;
   margin-top: 10px;
   margin-bottom: 10px;
   font-family: "Lucida Console", "Courier New", Courier, monospace;
   font-size: 12px;
}   

.listingIcons
{
	padding: 0px;
	margin-top: 10px;
	height: 15px;
}  

.pageTop
{
	height:10px;
}

.hideInheritedSkinState {
	display: none;
}

.showInheritedSkinState {
	display: inline;
}

.hideInheritedSkinPart {
	display: none;
}

.showInheritedSkinPart {
	display: inline;
}
