/*
 * Copyright (c) 2005, 2006 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 *
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * IBM Corporation - initial implementation
 */

body {
	background-image : url(../graphics/contentpage/overview_wtr.jpg);
}

/* show the "selected" image for this page */
#navigation-links a#overview img, #navigation-links a#overview:hover img { 
	background-image : url(../graphics/icons/ctool/overview48sel.gif); 
	}


iframe {
	position:relative;
	top:16px;
	width:100%;
	height:100%;
	padding-left:10px;
	}
	
/* mozilla scrollbar appearing off page fix */
#page-content > iframe {
	width: 98%;
	padding-left: 2%;
}	


/* 
 * Set up the Overview links to be displayed in two columns
 * that are centered in the middle of the page.
 */

#overview-links {
	text-align : left;
	width : 760px;
	/* To center in Moz (have to use text-align for IE) */
	margin : 0px auto;

}

#overview-links a { 
	width : 370px;
	text-align : left; 
	margin-left : 5px;
	margin-right : 5px;
	margin-top : 5px;
	margin-bottom : -20px;
	vertical-align : top;
}

#overview-links > a { vertical-align : middle; }

#overview-links a img {
	height : 57px;
	width : 57px;
	vertical-align : middle;
		
}	

#overview-links a .link-label {
	display : block;
	width : 300px;
	position : relative;
	top : -50px;
	left : 60px;
}

#overview-links a > .link-label { left: 65px; }

#overview-links a p .text {
	display : block;
	width : 300px;
	position : relative;
	top : -45px;
	left : 53px;
}

#overview-links a p > .text { left: 58px; }

/* Special case for Mozilla, because the links are displayed
   in 1 vertical column instead of 2 centered columns */
#overview-links > a { 	width : 700px; }
#overview-links a > .link-label { width : 700px; }
#overview-links a p > .text { width : 700px; }

#overview-links a:hover { border-right : 5px; }

a#basics img { background-image : url(../graphics/icons/obj48/wbbasics_obj.gif); }
a#basics:hover img { background-image : url(../graphics/icons/obj48/wbbasicshov_obj.gif); }

a#team img { background-image : url(../graphics/icons/obj48/teamsup_obj.gif); }
a#team:hover img { background-image : url(../graphics/icons/obj48/teamsuphov_obj.gif); }

