Index: zpt/head_main.zpt
===================================================================
--- zpt/head_main.zpt	(revision 92)
+++ zpt/head_main.zpt	(revision 122)
@@ -1,18 +1,6 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-  <!-- block used for main content area -->
-  <metal:block metal:define-macro="main">
-    <div class="page_head">
-      <span tal:condition="not:exists:docinfo/author">(no bibliographical information)</span>
-      <tal:block tal:condition="exists:docinfo/author">
-        <b tal:content="docinfo/author"/>,<i tal:content="docinfo/title"/><i tal:condition="exists:docinfo/year" tal:content="string:,${docinfo/year}"/>
-      </tal:block>
-    </div>
-  </metal:block>
-</body>
-</html>
+<tal:block tal:define="docinfo options/docinfo; pageinfo options/pageinfo; viewMode python:options.get('viewMode','images')">
+  <span tal:condition="not:exists:docinfo/author">(no bibliographical information)</span>
+  <tal:y tal:condition="exists:docinfo/author">
+    <b tal:content="docinfo/author"/>,<i tal:content="docinfo/title"/><i tal:condition="exists:docinfo/year" tal:content="string:,${docinfo/year}"/>
+  </tal:y>
+</tal:block>
Index: zpt/page_main_images.zpt
===================================================================
--- zpt/page_main_images.zpt	(revision 92)
+++ zpt/page_main_images.zpt	(revision 122)
@@ -1,18 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-  <!--  block used for definitions and scripts in head -->
-  <metal:block metal:define-macro="head" tal:define="zogilib nocall:here/zogilib; fn docinfo/imagePath; pn pageinfo/current">
-	<metal:block metal:use-macro="here/zogilib/template/main_embed/macros/head"/>
-  </metal:block>
-</head>
-<body onload="dl_init()">
-  <!-- block used for main content area -->
-  <metal:block metal:define-macro="main" tal:define="zogilib nocall:here/zogilib">
-	<tal:block tal:define="global zogilib_hasNavRef nothing"/>
-	<metal:block metal:use-macro="here/zogilib/template/main_embed/macros/main"/>
-  </metal:block>
-</body>
-</html>
+<tal:block tal:define="docinfo options/docinfo; pageinfo options/pageinfo; mk python:options.get('mk','')">
+ <iframe height="100%" width="100%" tal:attributes="src string:${here/template/zogilib/absolute_url}?fn=${docinfo/imagePath}&pn=${pageinfo/current}&$mk"/>
+</tal:block>
Index: zpt/toc_figures.zpt
===================================================================
--- zpt/toc_figures.zpt	(revision 94)
+++ zpt/toc_figures.zpt	(revision 122)
@@ -1,25 +1,14 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-  <!-- block used for main content area -->
-  <metal:block metal:define-macro="main">
-    <tal:block tal:define="pn python:int(pageinfo['tocPN']); tocsize python:int(docinfo['tocSize_figures']); grpsize python:int(pageinfo['tocPageSize']);
-      maxpn python:int(tocsize/grpsize);">
-      <div class="thumbruler">
-        <span tal:condition="python:(pn>1)">
-          <a tal:attributes="href python:here.getLink(param='tocPN',val=pn-1)">&lt;</a>
-        </span>
-        <span tal:content="string:$pn of $maxpn"/>
-        <span>
-          <a tal:attributes="href python:here.getLink(param='tocPN',val=pn+1)">&gt;</a>
-        </span>
-      </div>
-      <div tal:content="structure python:here.getTocPage(mode='figures',pageinfo=pageinfo,docinfo=docinfo)"/>
-    </tal:block>
-  </metal:block>
-</body>
-</html>
+<tal:block tal:define="docinfo options/docinfo; pageinfo options/pageinfo;  
+  pn python:int(pageinfo['tocPN']); tocsize python:int(docinfo['tocSize_figures']); grpsize python:int(pageinfo['tocPageSize']);
+  maxpn python:int(tocsize/grpsize);">
+  <div class="thumbruler">
+    <span tal:condition="python:(pn>1)">
+      <a tal:attributes="href python:here.getLink(param='tocPN',val=pn-1)">&lt;</a>
+    </span>
+    <span tal:content="string:$pn of $maxpn"/>
+    <span>
+    <a tal:attributes="href python:here.getLink(param='tocPN',val=pn+1)">&gt;</a>
+  </span>
+</div>
+  <div tal:content="structure python:here.getTocPage(mode='figures',pageinfo=pageinfo,docinfo=docinfo)"/>
+</tal:block>
Index: zpt/toc_text.zpt
===================================================================
--- zpt/toc_text.zpt	(revision 94)
+++ zpt/toc_text.zpt	(revision 122)
@@ -1,25 +1,14 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-  <!-- block used for main content area -->
-  <metal:block metal:define-macro="main">
-    <tal:block tal:define="pn python:int(pageinfo['tocPN']); tocsize python:int(docinfo['tocSize_text']); grpsize python:int(pageinfo['tocPageSize']);
-      maxpn python:int(tocsize/grpsize);">
-      <div class="thumbruler">
-        <span tal:condition="python:(pn>1)">
-          <a tal:attributes="href python:here.getLink(param='tocPN',val=pn-1)">&lt;</a>
-        </span>
-        <span tal:content="string:$pn of $maxpn"/>
-        <span>
-          <a tal:attributes="href python:here.getLink(param='tocPN',val=pn+1)">&gt;</a>
-        </span>
-      </div>
-      <div tal:content="structure python:here.getTocPage(mode='text',pageinfo=pageinfo,docinfo=docinfo)"/>
-    </tal:block>
-  </metal:block>
-</body>
-</html>
+<tal:block tal:define="docinfo options/docinfo; pageinfo options/pageinfo;  
+  pn python:int(pageinfo['tocPN']); tocsize python:int(docinfo['tocSize_text']); grpsize python:int(pageinfo['tocPageSize']);
+  maxpn python:int(tocsize/grpsize);">
+  <div class="thumbruler">
+    <span tal:condition="python:(pn>1)">
+      <a tal:attributes="href python:here.getLink(param='tocPN',val=pn-1)">&lt;</a>
+    </span>
+    <span tal:content="string:$pn of $tocsize"/>
+    <span>
+    <a tal:attributes="href python:here.getLink(param='tocPN',val=pn+1)">&gt;</a>
+  </span>
+</div>
+  <div tal:content="structure python:here.getTocPage(mode='text',pageinfo=pageinfo,docinfo=docinfo)"/>
+</tal:block>
Index: zpt/toc_thumbs.zpt
===================================================================
--- zpt/toc_thumbs.zpt	(revision 94)
+++ zpt/toc_thumbs.zpt	(revision 122)
@@ -1,12 +1,4 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-</head>
-<body>
-  <!-- block used for main content area -->
-  <metal:block metal:define-macro="main">
-    <div tal:define="start pageinfo/start; end pageinfo/end; rows pageinfo/rows; cols pageinfo/cols;
+<div tal:define="docinfo options/docinfo; pageinfo options/pageinfo;  
+  start pageinfo/start; end pageinfo/end; rows pageinfo/rows; cols pageinfo/cols;
   current pageinfo/current; grpsize pageinfo/groupsize">
 
@@ -38,5 +30,2 @@
 </table>
 </div>
-  </metal:block>
-</body>
-</html>
Index: zpt/viewer_main.zpt
===================================================================
--- zpt/viewer_main.zpt	(revision 94)
+++ zpt/viewer_main.zpt	(revision 122)
@@ -2,28 +2,26 @@
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml"
- tal:define="docinfo options/docinfo; pageinfo options/pageinfo; viewMode pageinfo/viewMode; tocMode pageinfo/tocMode;
- body_onload nothing">
+ tal:define="docinfo options/docinfo; pageinfo options/pageinfo; viewMode pageinfo/viewMode; tocMode pageinfo/tocMode">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <link rel="stylesheet" href="template/docuviewer_css" type="text/css">
-  <metal:block metal:use-macro="python:path('here/template/page_main_%s/macros/head'%viewMode)"/>
 </head>
-<body tal:condition="docinfo/numPages" tal:attributes="onload body_onload">
-  <metal:block metal:use-macro="here/template/head_main/macros/main"/>
-  <tal:block tal:condition="python:here.isAccessible(docinfo)">
-  <table border="0" width="100%" height="100%">
-    <tr>
-      <td width="300px" valign="top">
-        <metal:block metal:use-macro="python:path('here/template/toc_%s/macros/main'%tocMode)"/> 
-      </td>
-      <td width="100%" valign="top">
-        <metal:block metal:use-macro="python:path('here/template/page_main_%s/macros/main'%viewMode)"/>
-      </td>
-    </tr>
-  </table>
-  </tal:block>
-  <tal:block tal:condition="not:python:here.isAccessible(docinfo)">
-    <div class="errortext">Sorry, access to this document is restricted.</div>
-  </tal:block>
+<body tal:condition="docinfo/numPages">
+<div tal:replace="structure python:here.template.head_main(docinfo=docinfo,viewMode=viewMode,pageinfo=pageinfo)"/>
+<tal:block tal:condition="python:here.isAccessible(docinfo)">
+<table border="0" width="100%" height="100%">
+  <tr>
+    <td width="300px" valign="top">
+      <tal:block tal:replace="structure python:getattr(here.template, 'toc_%s'%tocMode)(docinfo=docinfo,pageinfo=pageinfo)"/> 
+    </td>
+    <td width="100%" valign="top">
+      <tal:block tal:content="structure python:getattr(here.template, 'page_main_%s'%viewMode)(docinfo=docinfo,pageinfo=pageinfo,mk=options['mk'])"/>
+    </td>
+  </tr>
+</table>
+</tal:block>
+<tal:block tal:condition="not:python:here.isAccessible(docinfo)">
+<div class="errortext">Sorry, access to this document is restricted.</div>
+</tal:block>
 </body>
 <body tal:condition="not:docinfo/numPages">
