//------------------------------------------------------------------------------
// Copyright (c) 2000, 2007 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
//------------------------------------------------------------------------------

/* resource files for content page javascript 
 * this file should be localized
*/
ContentPageResource = function() {


this.expandAllText = "Expand All Sections";
this.collapseAllText = "Collapse All Sections";
this.backToTopText = "Back to top";

this.expandAllSubSectionsText = "Expand All Steps";
this.collapseAllSubSectionsText = "Collapse All Steps";

this.toolbar_bookmark = "Bookmark this page";
this.toolbar_back = "Back";
this.toolbar_forward = "Forward";
this.toolbar_expand_all = "Expand all";
this.toolbar_collapse_all = "Collapse all";
this.toolbar_print = "Print";

this.expandText = "Expand"
this.collapseText = "Collapse"
this.checkedAltText = "Yes"	

};
