<html>

<head>
<title>PrinterBvr Behavior: sample #1 - Brochure Machine</title>
<link rel="stylesheet" type="text/css"  href="css/printtemplate.css"/>


<?import declarenamespace namespace="tp" implementation="../common/printer.htc"/>

<?import declarenamespace namespace="ie" implementation="#default">
<?import declarenamespace namespace="tp" implementation="htc/ruler.htc">
<?import declarenamespace namespace="tp" implementation="htc/printPreviewToolbar.htc">
</head>

<body scroll="no">

<tp:templateprinter id=printer style="display:none"/>

<tp:ppvtoolbar id="tb" />
<div id="pagecontainer">
  <tp:ruler ID="oRulerH" orientation="horizontal" attach="document.all.zoomcontainer" ID="oRulerH" max="11" units="in" 
    style="position:absolute;top:0px;left:26px;"/>
  <tp:ruler ID="oRulerV" orientation="vertical" attach="document.all.zoomcontainer" ID="oRulerV" max="8.5" units="in" 
    style="position:absolute;top:27px;left:0px;"/>
  <div id="zoomcontainer" style="scroll:no">
    <div class="borderstyle">
      <ie:devicerect id="page1" class="pagestyle" media="print" style="top:0;padding:0;margin:0;border:0">
        <blockquote><br>page 1 !!!</blockquote>
      </ie:devicerect>
    </div>
    <div class="borderstyle">
      <ie:devicerect id="page2" class="pagestyle" media="print" style="top:0;padding:0;margin:0;border:0">
        <blockquote><br>page 2 !!!</blockquote>
      </ie:devicerect>
    </div>
  </div>
</div>

<script language="JavaScript">
var oCurrentPage = document.all.page1;

function window::onload() 
{
  setTimeout(Init, 100);
}

function Init() {
  pagecontainer.style.top = tb.offsetHeight;
  pagecontainer.style.height = document.body.clientHeight - tb.offsetHeight;
  zoomcontainer.style.zoom = "100%";
  InitClasses();
  AttachDialogEvents();
  showPage(1);
  listener = new Listener();
  tb.listener = listener;
  tb.pageCount = 2;
  tb.zoomcontainer = document.all("zoomcontainer");
  tb.currentZoom = 100;
}
function Listener(){
  this.print = function () { DoPrint(); }
  this.doScroll = function (pageNumber) { showPage( pageNumber ); }
}
      
function showPage(iCurrentPage) {
  oCurrentPage.parentElement.style.top = -20000;
  oCurrentPage = eval("document.all.page"+iCurrentPage);
  oCurrentPage.parentElement.style.top = 0;
  tb.currentPage = iCurrentPage;
}
function InitClasses() {
  oRulerV.max = printer.pageHeight / 100;
  oRulerH.max = printer.pageWidth / 100;
}
function AttachDialogEvents() {
  tb.attachEvent('onZoomChanged', ZoomChanged);
  tb.attachEvent('onPageSetupShowed', DoPageSetup);
  window.attachEvent('onerror', HandleError);
  document.body.attachEvent('onkeypress', OnKeyPress);
}
function ZoomChanged() {
  var nNewVal = event.zoom;
  oRulerH.style.zoom = nNewVal + "%";
  oRulerV.style.zoom = nNewVal + "%";

  var leftPos = oRulerV.offsetLeft + oRulerV.offsetWidth+10;
  var topPos  = oRulerH.offsetTop + oRulerH.offsetHeight+10;
  oRulerH.style.left = leftPos*(nNewVal/100);
  oRulerV.style.top  = topPos*(nNewVal/100);
  zoomcontainer.style.left = parseInt(oRulerH.style.left);
  zoomcontainer.style.top  = parseInt(oRulerV.style.top);
}
function DoPageSetup(){
  event.returnValue = false;
  event.cancelBubble = true;
}
function DoPrint() {  // Print
  var oDeviceRectCollection = document.all.tags("DEVICERECT");
  printer.updatePageStatus(1);    
  printer.startDoc("PrinterBvr Behavior: sample #1 - Brochure Machine");

    for (i = 0; i < oDeviceRectCollection.length; i++)
      printer.printPage(oDeviceRectCollection[i]);
        
  printer.stopDoc();
  printer.updatePageStatus(0);    
  showPage(1);
}
function OnKeyPress() { if (event.keyCode == 27) Close(); }
function HandleError(message, url, line){
  alert("There was an internal error, and Internet Explorer is unable to print this document.");
  window.close();  return true;
}
function Close() {
  printer.updatePageStatus(-1);
  window.close();
}
</script>

</body>

</html>