#-------------------------------------------------------------------------------
# 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.
#-------------------------------------------------------------------------------

CONTENT_WRAPPER_START=\
  <html>\
  <head>\
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\
  </head>\
  <script language="javascript">\
  function init() { parent.ory_toc="disable"; parent.contentframe.location="
  
CONTENT_WRAPPER_END=\
  "; }\
  </script>\
  </head>\
  <frameset rows="100%,*" frameborder="no" border="0" framespacing="0" id="contentframeset" name="contentframeset">\
  <frame src="about:blank" id="contentframe" name="contentframe" scrolling="auto"/>\
  <frame src="about:blank" id="blankframe" name="blankframe" onload="init()"/>\
  </frameset>\
  </html>

PRINT_WRAPPER_START=\
  <html>\
  <head>\
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\
  </head>\
  <script language="javascript">\
  function init() { parent.ory_toc="disable"; }\
  </script>\
  </head>\
  <frameset rows="100%,*" frameborder="no" border="0" framespacing="0" id="printframeset" name="printframeset" onload="javascript:print()">\
  <frame src="about:blank" id="blankframe" name="blankframe" onload="init()"/>\
  <frame src="

PRINT_WRAPPER_END=\
  " id="printframe" name="printframe" scrolling="auto" onload="javascript:parent.printframe.focus()"/>\
  </frameset>\
  <html>