/*
 * 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/samples_wtr.jpg);
}

.page { min-height : 700px; }

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

/* Lay out the real content of the samples page: */

.samples-group {
	width : 750px;
	/* To center in Moz (have to use text-align for IE) */	
	margin : 0px auto;
	margin-bottom : 10px;
	text-align : left;
	float : none;
	clear : both;
}

.samples-group H4 { margin-top : 10px; }

.sample-link { 
	width : 360px;
	text-align : left; 
	margin-left : 5px;
	margin-right : 5px;
	margin-top : 10px;
	margin-bottom : -30px;
	vertical-align : top;
}

/* specialize the swt samples group to be spread over only 1 column */
#swt .sample-link { 
	width : 720px;
}

.samples-group > .sample-link {
	float : left;
	height : 150px;
	vertical-align : middle;
}


.sample-link .link-label {
	display : block;
	width : 300px;
	position : relative;
	top : -50px;
	left : 60px;
}

#swt .sample-link .link-label {
	width : 600px;	
} 

.sample-link p .text {
	display : block;
	width : 300px;
	position : relative;
	top : -45px;
	left : 53px;
}

#swt .sample-link .text {
	width : 620px;	
} 

.sample-link img {
	height : 56px;
	width : 56px;
	vertical-align : middle;
}

.sample-link:hover { border-right : 0px; }


#swt .sample-link img {
	background-image : url(../graphics/icons/obj48/samplered_obj.gif);
}

#swt .sample-link:hover img {
	background-image : url(../graphics/icons/obj48/sampleredhov_obj.gif);
}

#workbench .sample-link img {
	background-image : url(../graphics/icons/obj48/samplepurp_obj.gif);
}

#workbench .sample-link:hover img {
	background-image : url(../graphics/icons/obj48/samplepurphov_obj.gif);
}

