home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
WindowsServerTrial
/
server.iso
/
sources
/
install.wim
/
2
/
Windows
/
System32
/
ieframe.dll
/
HTML
/
PREVIEW.JS
< prev
next >
Wrap
Text File
|
2008-01-19
|
55KB
|
2,339 lines
var g_aDocTree = new Object();
var g_nDispPage = -1;
var g_cLeftToPrint = 0;
var g_fRTL = false;
var g_fPreview;
var g_nScreenDPI = 96
var g_nMarginTop = 0;
var g_nMarginBottom = 0;
var g_nMarginLeft = 0;
var g_nMarginRight = 0;
var g_nPageWidth = 0;
var g_nPageHeight = 0;
var g_strOrientation = Printer.orientation;
var g_nScalePercent = 100;
var g_fCheckAutoFit = false;
var g_fCheckOrphan = false;
var g_nUnprintTop = 0;
var g_nUnprintBottom = 0;
var g_strHeader = "";
var g_strFooter = "";
var g_fTableOfLinks = false;
var g_fPrintHeaderFooter = true;
var g_cPagesDisplayed = 0;
var g_cxDisplaySlots = 1;
var g_cyDisplaySlots = 1;
var g_imgUnderMouse = null;
var g_imgDown = null;
var g_curMultiSelect = null;
var g_curMultiPages = 1;
var g_nFramesetLayout = 0;
var g_strActiveFrame = null;
var g_nTotalPages = 0;
var g_nDocsToCalc = 0;
var g_nFramesLeft = 0;
var g_nZoomLevel = 100;
var g_zoomLayout = -2;
var g_zoomLayoutX = 1;
var g_zoomLayoutY = 1;
var g_zoomPageCount = 1;
var g_fDelayClose = false;
var g_ObsoleteBar = 0;
function AttachDialogEvents()
{
printimg.onclick = HandlePrintClick;
printimg.onmouseover = buttonOver;
printimg.onmouseout = buttonOut;
portrait.onmouseover = buttonOver;
portrait.onmouseout = buttonOut;
landscape.onmouseover = buttonOver;
landscape.onmouseout = buttonOut;
settings.onmouseover = buttonOver;
settings.onmouseout = buttonOut;
headerimg.onmouseover = buttonOver;
headerimg.onmouseout = buttonOut;
zoomWidth.onmouseover = buttonOver;
zoomWidth.onmouseout = buttonOut;
zoomPage.onmouseover = buttonOver;
zoomPage.onmouseout = buttonOut;
helpimg.onmouseover = buttonOver;
helpimg.onmouseout = buttonOut;
begin.onmouseover = buttonOver;
begin.onmouseout = buttonOut;
prev.onmouseover = buttonOver;
prev.onmouseout = buttonOut;
next.onmouseover = buttonOver;
next.onmouseout = buttonOut;
end.onmouseover = buttonOver;
end.onmouseout = buttonOut;
printimg.onmousedown = buttonDown;
printimg.onmouseup = buttonUp;
portrait.onmousedown = buttonDown;
portrait.onmouseup = buttonUp;
landscape.onmousedown = buttonDown;
landscape.onmouseup = buttonUp;
settings.onmousedown = buttonDown;
settings.onmouseup = buttonUp;
headerimg.onmousedown = buttonDown;
headerimg.onmouseup = buttonUp;
zoomWidth.onmousedown = buttonDown;
zoomWidth.onmouseup = buttonUp;
zoomPage.onmousedown = buttonDown;
zoomPage.onmouseup = buttonUp;
helpimg.onmousedown = buttonDown;
helpimg.onmouseup = buttonUp;
portrait.onclick = HandlePortrait;
landscape.onclick = HandleLandscape;
settings.onclick = HandlePageSetup;
headerimg.onclick = HandleHeaders;
zoomWidth.onclick = HandleZoomWidthButton;
zoomPage.onclick = HandleZoomPageButton;
begin.onclick = HandleFirstPage;
prev.onclick = HandleBackPage;
next.onclick = HandleForwardPage;
end.onclick = HandleLastPage;
helpimg.onclick = HandleHelp;
document.onhelp = HandleHelp;
begin.onmousedown = buttonDown;
begin.onmouseup = buttonUp;
prev.onmousedown = buttonDown;
prev.onmouseup = buttonUp;
next.onmousedown = buttonDown;
next.onmouseup = buttonUp;
end.onmousedown = buttonDown;
end.onmouseup = buttonUp;
inputCustomScale.onkeypress = HandleInputKeyPress;
inputCustomScale.onchange = HandleCustomScaleSelect;
inputPageNum.onkeypress = HandleInputKeyPress;
inputPageNum.onchange = HandlePageSelect;
selectScale.onchange = HandleScaleSelect;
selectFrameset.onchange = HandleFramesetSelect;
selectPages.onchange = HandleZoomMultiPageSelect;
window.onresize = OnResizeBody;
window.onerror = HandleError;
document.body.onkeypress = OnKeyPress;
document.body.onkeydown = OnKeyDown;
OverflowContainer.onmousedown = HandleMarginMouseDown;
OverflowContainer.onmouseup = HandleMarginMouseUp;
OverflowContainer.onmousemove = HandleMarginMouseMove;
window.onfocus = new Function("MasterContainer.focus()");
}
function GetRuleFromSelector(strSelector)
{
var i;
var oRule;
var oSS = document.styleSheets[0];
for (i = 0; i < oSS.rules.length; i++)
{
oRule = oSS.rules[i];
if (oRule == null)
break;
if (oRule.selectorText == strSelector)
break;
}
return oRule;
}
function UnprintableURL(strLink)
{
var fUnprintable = false;
var cIndex;
cIndex = strLink.indexOf(":");
switch (cIndex)
{
case 4:
if (strLink.substr(0, cIndex) == "news")
{
fUnprintable = true;
}
break;
case 5:
if (strLink.substr(0, cIndex) == "snews")
{
fUnprintable = true;
}
break;
case 6:
if ( strLink.substr(0, cIndex) == "telnet"
|| strLink.substr(0, cIndex) == "mailto")
{
fUnprintable = true;
}
break;
case 8:
if (strLink.substr(0,cIndex) == "vbscript")
{
fUnprintable = true;
}
break;
case 10:
if (strLink.substr(0,cIndex) == "javascript")
{
fUnprintable = true;
}
break;
}
return fUnprintable;
}
function OnKeyPress()
{
if (event.keyCode == 27)
{
Close();
}
}
function OnKeyDown()
{
if(event.keyCode==13 && event.srcElement && (event.srcElement.id=="OverflowContainer" || event.srcElement.id=="MasterContainer")) {
event.cancelBubble = true;
return false;
}
if (event.altKey)
{
switch (event.keyCode)
{
case 37:
if (document.body.dir=="rtl")
{
ChangeDispPage(g_nDispPage+1);
}
else
{
ChangeDispPage(g_nDispPage-1);
}
break;
case 39:
if (document.body.dir=="rtl")
{
ChangeDispPage(g_nDispPage-1);
}
else
{
ChangeDispPage(g_nDispPage+1);
}
break;
case 35:
HandleLastPage();
break;
case 36:
HandleFirstPage();
break;
case 50: '2'
case 98: '2'
selectPages.selectedIndex = 1;
HandleZoomMultiPageClick(2);
break;
case 51: '3'
case 99: '3'
selectPages.selectedIndex = 2;
HandleZoomMultiPageClick(3);
break;
case 54: '6'
case 102: '6'
selectPages.selectedIndex = 3;
HandleZoomMultiPageClick(6);
break;
case 67: 'C'
Close();
break;
case 48: '0'
case 96: '0'
selectPages.selectedIndex = 4;
HandleZoomMultiPageClick(12);
break;
default:
return;
}
event.cancelBubble = true;
return false;
}
}
function OnLoadBody()
{
try{
if(dialogArguments.__IE_BrowseDocument && dialogArguments.__IE_BrowseDocument.body) {
g_fRTL = (dialogArguments.__IE_BrowseDocument.body.currentStyle.direction.toLowerCase() == "rtl");
}
}catch(e){}
g_fPreview = dialogArguments.__IE_PrintType == "Preview";
if (UnprintableURL(dialogArguments.__IE_ContentDocumentUrl))
{
var L_Invalid_Text = "Unable to print URL. Please navigate directly to this page and select Print.";
alert(L_Invalid_Text);
window.close();
}
UpdateOrientationButtons();
ChangeZoom();
if (dialogArguments.__IE_HeaderString)
{
Printer.header = dialogArguments.__IE_HeaderString
}
if (dialogArguments.__IE_FooterString)
{
Printer.footer = dialogArguments.__IE_FooterString
}
EnsureDocuments(false);
window.document.body.style.cursor="wait";
g_fCheckAutoFit = (dialogArguments.__IE_STFScaleMin != 100);
g_fCheckOrphan = true;
CreateDocument("document", "C", true);
ChangeDispPage(1);
g_nFramesLeft = 1;
OnBuildAllFrames("C");
if (g_fPreview)
{
if(dialogArguments.__IE_ContentSelectionUrl)
{
CreateDocument(dialogArguments.__IE_ContentSelectionUrl, "S", true);
}
AttachDialogEvents();
OverflowContainer.style.top = idDivToolbar.offsetHeight;
var h = document.body.clientHeight - idDivToolbar.offsetHeight - idDivToolbar2.offsetHeight;
if(h<0) h = 0;
OverflowContainer.style.height = h;
idDivToolbar2.style.visibility = "visible";
idDivToolbar2.style.pixelTop = idDivToolbar.offsetHeight + h;
ChangeZoomSpecial(g_zoomLayout);
}
else
{
PrintNow(dialogArguments.__IE_PrintType == "Prompt");
}
}
function BuildAllFramesComplete()
{
;
window.document.body.style.cursor="auto";
UpdateFramesetSelect();
}
function CalcDocsComplete()
{
;
if (g_nFramesetLayout == 2)
{
ChangeFramesetLayout(g_nFramesetLayout, true)
}
if(g_fCheckAutoFit)
{
g_fCheckAutoFit = false;
var fitScale = CalcAutoFit();
if (fitScale < dialogArguments.__IE_STFScaleMin) fitScale = dialogArguments.__IE_STFScaleMin;
if(fitScale < 30) fitScale = 30;
selectScale.selectedIndex = 0;
cellCustomScale.style.display = "none";
g_nScalePercent = fitScale;
if(fitScale!=100 )
{
EnsureDocuments(true);
return;
}
}
if (g_fCheckOrphan)
{
g_fCheckOrphan = false;
if(IsOrphaned())
{
var orphanScale = CalcOrphanRemovalScale();
g_nScalePercent = g_nScalePercent * orphanScale/100;
if(g_nScalePercent < 30) g_nScalePercent = 30;
EnsureDocuments(true);
return;
}
}
ChangeDispPage(g_nDispPage);
ChangeZoomSpecial(g_zoomLayout);
}
function OnResizeBody()
{
OverflowContainer.style.top = idDivToolbar.offsetHeight;
var h = document.body.clientHeight - idDivToolbar.offsetHeight - idDivToolbar2.offsetHeight;
if(h<0) h = 0;
OverflowContainer.style.height = h;
idDivToolbar2.style.visibility = "visible";
idDivToolbar2.style.pixelTop = idDivToolbar.offsetHeight + h;
ChangeZoomSpecial(g_zoomLayout);
PositionPages(g_nDispPage);
}
function HandleError(message, url, line)
{
var L_Internal_ErrorMessage = "There was an internal error, and Internet Explorer is unable to print this document.";
alert(L_Internal_ErrorMessage);
window.close();
return true;
}
function OnRectComplete(strDoc, ObsoleteCookie)
{
if (!g_aDocTree[strDoc])
{
HandleError("Document " + strDoc + " does not exist.", document.URL, "OnRectComplete");
return;
}
window.setTimeout("OnRectCompleteNext('" + strDoc + "', " + event.contentOverflow + ",'" + event.srcElement.id + "'," + ObsoleteCookie + ");", 25);
}
function OnRectCompleteNext( strDoc, fOverflow, strElement, ObsoleteCookie)
{
if (ObsoleteCookie == g_ObsoleteBar)
{
g_aDocTree[strDoc].RectComplete(fOverflow, strElement);
}
}
function enableButton(img)
{
var imgname = img.id;
if (img == begin || img == end || img == prev || img == next)
{
imgname = img.value;
}
img.disabled = false;
if (g_imgUnderMouse == img)
{
if(g_imgDown==img)
{
img.src = imgname + "_down.png";
}
else
{
img.src = imgname + "_hover.png";
}
}
else
{
img.src = imgname + ".png";
}
}
function disableButton(img)
{
var imgname = img.id;
if (img == begin || img == end || img == prev || img == next)
{
imgname = img.value;
}
img.disabled = true;
img.src = imgname + "_disabled.png";
}
function updateNavButtons()
{
if (g_nDispPage == 1)
{
disableButton(begin);
disableButton(prev);
}
else
{
enableButton(begin);
enableButton(prev);
}
if (TotalDisplayPages() - g_nDispPage < g_cxDisplaySlots * g_cyDisplaySlots)
{
disableButton(next);
disableButton(end);
}
else
{
enableButton(next);
enableButton(end);
}
}
function UpdateOrientationButtons()
{
if (g_strOrientation != Printer.orientation)
{
g_strOrientation = Printer.orientation;
}
if (g_strOrientation == "portrait")
{
disableButton(portrait);
enableButton(landscape);
}
else
{
disableButton(landscape);
enableButton(portrait);
}
}
function buttonOver()
{
var imgSrc = event.srcElement;
if(imgSrc.disabled) return;
g_imgUnderMouse = imgSrc;
if (imgSrc == begin ||
imgSrc == prev ||
imgSrc == next ||
imgSrc == end)
{
updateNavButtons();
}
else
{
if(g_imgDown==imgSrc)
{
imgSrc.src= "" + imgSrc.id + "_down.png";
}
else
{
imgSrc.src= "" + imgSrc.id + "_hover.png";
}
}
}
function buttonOut()
{
var imgSrc = event.srcElement;
if(imgSrc.disabled) return;
g_imgUnderMouse = null;
if (imgSrc == begin || imgSrc == prev ||
imgSrc == next || imgSrc == end)
{
updateNavButtons();
}
else
{
imgSrc.src= "" + imgSrc.id + ".png";
}
}
function buttonDown()
{
if(event.button!=1) return;
var imgSrc = event.srcElement;
if(imgSrc.disabled) return;
var imgname = imgSrc.id;
if (imgSrc == begin || imgSrc == end
|| imgSrc == next || imgSrc == prev)
{
imgname = imgSrc.value;
}
imgSrc.src= "" + imgname + "_down.png";
g_imgDown = imgSrc;
g_imgDown.setCapture();
}
function buttonUp()
{
if(event.button!=1) return;
var imgSrc = event.srcElement;
if(imgSrc.disabled) return;
if(g_imgDown!=null) {
var imgname = g_imgDown.id;
if (g_imgDown == begin || g_imgDown == end
|| g_imgDown == next || g_imgDown == prev)
{
imgname = g_imgDown.value;
}
if(g_imgUnderMouse==g_imgDown)
{
g_imgDown.src= "" + imgname + "_hover.png";
}
else
{
g_imgDown.src= "" + imgname + ".png";
}
g_imgDown.releaseCapture();
g_imgDown = null;
}
}
function HandlePageSelect()
{
event.srcElement.value = ChangeDispPage(parseInt(inputPageNum.value));
MasterContainer.focus();
}
function HandleCustomScaleSelect()
{
var scale = parseInt(inputCustomScale.value);
if(isNaN(scale)) scale = 100;
if (scale < 30)
{
scale = 30;
}
if (scale > 999)
{
scale = 999;
}
inputCustomScale.value = scale;
if(g_nScalePercent!=scale)
{
g_nScalePercent = scale;
EnsureDocuments(true);
}
MasterContainer.focus();
}
function HandleInputKeyPress()
{
var keyStroke = event.keyCode;
if (keyStroke == 13)
{
event.srcElement.onchange();
return false;
}
else if (keyStroke < 48 || keyStroke > 57)
{
event.returnValue = false;
}
}
function HandleScaleSelect()
{
var oldScale = g_nScalePercent;
g_nScalePercent = parseInt(selectScale.options[selectScale.selectedIndex].value);
g_fCheckAutoFit = false;
g_fCheckOrphan = false;
if (g_nScalePercent == (-1))
{
g_nScalePercent = 100;
g_fCheckAutoFit = true;
g_fCheckOrphan = true;
cellCustomScale.style.display = "none";
EnsureDocuments(true);
}
else if(g_nScalePercent == (0))
{
g_nScalePercent = oldScale;
cellCustomScale.style.display = "block";
inputCustomScale.value = oldScale;
}
else
{
cellCustomScale.style.display = "none";
EnsureDocuments(true);
}
printimg.scrollIntoView();
}
function HandlePageSetup()
{
if (Printer.showPageSetupDialog())
{
UpdateOrientationButtons();
if (IsShrinkToFit())
{
g_nScalePercent = 100;
g_fCheckAutoFit = true;
g_fCheckOrphan = true;
EnsureDocuments(true);
}
else
{
EnsureDocuments(false);
}
}
}
function HandleHelp()
{
var w = Math.floor(document.body.offsetWidth*0.75);
var h = Math.floor(document.body.offsetHeight*0.75);
window.open("http://go.microsoft.com/fwlink/?LinkId=56117","_blank","scrollbars=yes,width="+w+",height="+h);
event.cancelBubble = true;
return false;
}
function HandleForwardPage()
{
ChangeDispPage(g_nDispPage + 1);
}
function HandleBackPage()
{
ChangeDispPage(g_nDispPage - 1);
}
function HandleFirstPage()
{
ChangeDispPage(1);
}
function HandleLastPage()
{
ChangeDispPage(TotalDisplayPages());
}
function HandleHeaders()
{
g_fPrintHeaderFooter = !g_fPrintHeaderFooter;
var oRule = GetRuleFromSelector(".divHead");
if (oRule == null)
{
HandleError("'.divHead' rule does not exist!", document.URL, "HandleHeaders()");
}
oRule.style.display = g_fPrintHeaderFooter ? "inline" : "none";
oRule = GetRuleFromSelector(".divFoot");
if (oRule == null)
{
HandleError("'.divFoot' rule does not exist!", document.URL, "HandleHeaders()");
}
oRule.style.display = g_fPrintHeaderFooter ? "inline" : "none";
}
function HandleLandscape()
{
HandleOrient(false);
}
function HandlePortrait()
{
HandleOrient(true);
}
function HandleOrient(fPortrait)
{
var newOrient;
if (fPortrait)
{
newOrient = "portrait";
}
else
{
newOrient = "landscape";
}
if(newOrient==g_strOrientation) return;
g_strOrientation = newOrient;
var ml = Printer.marginLeft;
var mr = Printer.marginRight;
var mt = Printer.marginTop;
var mb = Printer.marginBottom;
Printer.orientation = g_strOrientation;
Printer.marginLeft = mt;
Printer.marginRight = mb;
Printer.marginTop = ml;
Printer.marginBottom = mr;
UpdateOrientationButtons();
ReflowDocument();
}
function HandleFramesetSelect()
{
UndisplayPages();
var newFramesetLayout = parseInt(selectFrameset.options[selectFrameset.selectedIndex].value);
var isShrinkToFit = IsShrinkToFit();
if (isShrinkToFit)
{
g_nScalePercent = 100;
g_fCheckAutoFit = true;
g_fCheckOrphan = true;
}
ChangeFramesetLayout(newFramesetLayout, false);
if (isShrinkToFit)
{
EnsureDocuments(true);
}
printimg.scrollIntoView();
}
function HandleZoomWidthButton()
{
ChangeZoomSpecial(-1);
g_zoomPageCount = 1;
selectPages.selectedIndex = 0;
}
function HandleZoomPageButton()
{
ChangeZoomSpecial(-2);
g_zoomPageCount = 1;
selectPages.selectedIndex = 0;
}
function getLeft(elm) {
if(elm==null) {
return 0;
} else {
var sz = getLeft(elm.offsetParent);
return sz + elm.offsetLeft;
}
}
function getTop(elm) {
if(elm==null) {
return 0;
} else {
var sz = getTop(elm.offsetParent);
return sz + elm.offsetTop;
}
}
function HandleZoomMultiPageSelect()
{
g_zoomPageCount = parseInt(selectPages.options[selectPages.selectedIndex].value);
UpdateZoomMultiPage();
}
function HandleZoomMultiPageClick(pageCount)
{
g_zoomPageCount = pageCount;
UpdateZoomMultiPage()
}
function UpdateZoomMultiPage()
{
switch(g_zoomPageCount) {
case 2:
HandleZoomMultiPage(2,1);
break;
case 3:
HandleZoomMultiPage(3,1);
break;
case 6:
HandleZoomMultiPage(3,2);
break;
case 12:
HandleZoomMultiPage(4,3);
break;
default:
ChangeZoomSpecial(-2);
break;
}
printimg.scrollIntoView();
}
function HandleZoomMultiPage(x,y)
{
g_zoomLayoutX = x;
g_zoomLayoutY = y;
ChangeZoomSpecial(0);
}
function HandlePrintClick()
{
PrintNow(true);
}
var g_sMarginItemID;
var g_nMarginStartingPos;
var g_nMarginImageOffset;
var g_nMarginLowerLimit;
var g_nMarginUpperLimit;
function HandleMarginMouseDown()
{
if(event.button!=1) return;
if(g_zoomLayout!=-2) return;
var posX = event.x;
var posY = event.y;
if(g_nDispPage <= 0) return;
var oPage = DisplayPage(g_nDispPage);
if(null == oPage) return;
var pageOffsetX;
var pageOffsetY = oPage.style.pixelTop;
if(g_fRTL)
{
pageOffsetX = oPage.style.pixelRight;
}
else
{
pageOffsetX = oPage.style.pixelLeft;
}
var xPageWidth = getPageWidth();
var yPageHeight = getPageHeight();
switch(event.srcElement.id)
{
case "maLeft":
g_nMarginStartingPos = posX;
g_nMarginImageOffset = maLeft.offsetLeft - posX;
g_nMarginLowerLimit = (pageOffsetX * g_nZoomLevel/100) - 10;
g_nMarginUpperLimit = g_nMarginLowerLimit + ((xPageWidth - ((g_nMarginRight+0.5)*g_nScreenDPI)) * g_nZoomLevel/100);
break;
case "maRight":
g_nMarginStartingPos = posX;
g_nMarginImageOffset = maRight.offsetLeft - posX;
g_nMarginLowerLimit = (pageOffsetX * g_nZoomLevel/100) - 10;
g_nMarginUpperLimit = g_nMarginLowerLimit + (xPageWidth * g_nZoomLevel/100);
g_nMarginLowerLimit += ((g_nMarginLeft+0.5)*g_nScreenDPI) * g_nZoomLevel/100;
break;
case "maTop":
g_nMarginStartingPos = posY;
g_nMarginImageOffset = maTop.offsetTop - posY;
g_nMarginLowerLimit = (pageOffsetY * g_nZoomLevel/100) - 10;
g_nMarginUpperLimit = g_nMarginLowerLimit + ((yPageHeight - ((g_nMarginBottom+0.5)*g_nScreenDPI)) * g_nZoomLevel/100);
break;
case "maBottom":
g_nMarginStartingPos = posY;
g_nMarginImageOffset = maBottom.offsetTop - posY;
g_nMarginLowerLimit = (pageOffsetY * g_nZoomLevel/100) - 10;
g_nMarginUpperLimit = g_nMarginLowerLimit + (yPageHeight * g_nZoomLevel/100);
g_nMarginLowerLimit += ((g_nMarginTop+0.5)*g_nScreenDPI) * g_nZoomLevel/100;
break;
default:
return;
}
g_sMarginItemID = event.srcElement.id;
UpdateMarginBox();
OverflowContainer.setCapture();
}
function ReflowDocument()
{
if(IsShrinkToFit())
{
g_nScalePercent = 100;
g_fCheckAutoFit = true;
g_fCheckOrphan = true;
}
EnsureDocuments(true);
}
function IsShrinkToFit()
{
return parseInt(selectScale.options[selectScale.selectedIndex].value) == (-1);
}
function UpdateMarginBox()
{
MarginBox.style.pixelLeft = maLeft.style.pixelLeft + 10;
MarginBox.style.pixelWidth = maRight.style.pixelLeft - maLeft.style.pixelLeft;
MarginBox.style.pixelTop = maTop.style.pixelTop + 10;
MarginBox.style.pixelHeight = maBottom.style.pixelTop - maTop.style.pixelTop;
MarginBox.style.display = "block";
}
function HandleMarginMouseUp()
{
if(g_sMarginItemID==null) return;
if(((g_sMarginItemID=="maLeft" || g_sMarginItemID=="maRight") && g_nMarginStartingPos==event.x)
|| ((g_sMarginItemID=="maTop" || g_sMarginItemID=="maBottom") && g_nMarginStartingPos==event.y))
{
g_sMarginItemID = null;
MarginBox.style.display = "none";
OverflowContainer.releaseCapture();
return;
}
var posX = event.x + g_nMarginImageOffset + 10;
var posY = event.y + g_nMarginImageOffset + 10;
posX *= 100/g_nZoomLevel;
posY *= 100/g_nZoomLevel;
var oPage = DisplayPage(g_nDispPage);
var pageOffsetX;
var pageOffsetY = oPage.style.pixelTop;
var xPageWidth = getPageWidth();
var yPageHeight = getPageHeight();
var fReflow = false;
var limit;
if(g_fRTL)
{
pageOffsetX = oPage.style.pixelRight;
}
else
{
pageOffsetX = oPage.style.pixelLeft;
}
switch(g_sMarginItemID)
{
case "maLeft":
var newLeft = Math.floor((posX - pageOffsetX) * 100 / g_nScreenDPI);
limit = Printer.pageWidth - Printer.marginRight - 50;
if(newLeft > limit) newLeft = limit;
if(newLeft<0) newLeft = 0;
if(Printer.marginLeft!=newLeft)
{
Printer.marginLeft = newLeft;
fReflow = true;
}
break;
case "maRight":
var newRight = Math.floor((pageOffsetX + xPageWidth - posX) * 100 / g_nScreenDPI);
limit = Math.floor((g_nPageWidth-g_nMarginLeft-0.5)*100);
if(newRight > limit) newRight = limit;
if(newRight<0) newRight = 0;
if(Printer.marginRight!=newRight)
{
Printer.marginRight = newRight;
fReflow = true;
}
break;
case "maTop":
var newTop = Math.floor((posY - pageOffsetY) * 100 / g_nScreenDPI);
limit = Math.floor((g_nPageHeight-g_nMarginBottom-0.5)*100);
if(newTop > limit) newTop = limit;
if(newTop<0) newTop = 0;
if(Printer.marginTop != newTop)
{
Printer.marginTop = newTop;
fReflow = true;
}
break;
case "maBottom":
var newBottom = Math.floor((pageOffsetY + yPageHeight - posY) * 100 / g_nScreenDPI);
if(newBottom<0) newBottom = 0;
limit = Math.floor((g_nPageHeight-g_nMarginTop-0.5)*100);
if(newBottom > limit) newBottom = limit;
if(Printer.marginBottom != newBottom)
{
Printer.marginBottom = newBottom;
fReflow = true;
}
break;
}
if(fReflow)
{
ReflowDocument();
}
else
{
PositionPages(g_nDispPage);
}
g_sMarginItemID = null;
MarginBox.style.display = "none";
OverflowContainer.releaseCapture();
}
function HandleMarginMouseMove()
{
if(g_sMarginItemID==null) return;
var posX = event.x + g_nMarginImageOffset;
var posY = event.y + g_nMarginImageOffset;
switch(g_sMarginItemID)
{
case "maLeft":
if(posX < g_nMarginLowerLimit) posX = g_nMarginLowerLimit;
if(posX > g_nMarginUpperLimit) posX = g_nMarginUpperLimit;
maLeft.style.left = posX;
break;
case "maRight":
if(posX < g_nMarginLowerLimit) posX = g_nMarginLowerLimit;
if(posX > g_nMarginUpperLimit) posX = g_nMarginUpperLimit;
maRight.style.left = posX;
break;
case "maTop":
if(posY < g_nMarginLowerLimit) posY = g_nMarginLowerLimit;
if(posY > g_nMarginUpperLimit) posY = g_nMarginUpperLimit;
maTop.style.top = posY;
break;
case "maBottom":
if(posY < g_nMarginLowerLimit) posY = g_nMarginLowerLimit;
if(posY > g_nMarginUpperLimit) posY = g_nMarginUpperLimit;
maBottom.style.top = posY;
break;
}
UpdateMarginBox();
}
function UpdateFramesetSelect()
{
if(g_aDocTree["S"]==null)
{
selectFrameset.options.remove(3);
}
if ( g_aDocTree["C"]._fFrameset )
{
if (!g_strActiveFrame)
{
selectFrameset.options.remove(1);
}
separatorFrameset.style.display = "inline";
cellFrameset.style.display = "inline";
}
if(g_aDocTree["S"]!=null)
{
if(!g_aDocTree["C"]._fFrameset)
{
selectFrameset.options.remove(2);
selectFrameset.options.remove(1);
}
if(g_nFramesetLayout == 3)
{
idSelection.selected = true;
}
separatorFrameset.style.display = "inline";
cellFrameset.style.display = "inline";
}
}
function getPageWidth()
{
return g_aDocTree["C"].Page(1).offsetWidth;
}
function getPageHeight()
{
return g_aDocTree["C"].Page(1).offsetHeight;
}
function UndisplayPages()
{
while (g_cPagesDisplayed > 0)
{
var oPage = DisplayPage(g_nDispPage + g_cPagesDisplayed - 1);
if (oPage != null)
{
oPage.style.top = "-20000px";
if (g_fRTL)
{
oPage.style.right = "10px";
}
else
{
oPage.style.left = "10px";
}
}
g_cPagesDisplayed--;
}
var oAnchorRule = GetRuleFromSelector(".MarginAnchor");
oAnchorRule.style.display = "none";
}
function PositionPages(nDispPage)
{
var fRendering = false;
if((g_fCheckAutoFit || g_fCheckOrphan) && g_nDocsToCalc>0) {
UndisplayPages();
fRendering = true;
}
var strDispDoc = DisplayDocument(nDispPage);
if (g_aDocTree != null &&
g_aDocTree[strDispDoc] != null &&
g_aDocTree[strDispDoc].Pages() > 0)
{
UndisplayPages();
RecalculateZoom();
MasterContainer.style.zoom = g_nZoomLevel + "%";
var xPageWidth = getPageWidth();
var yPageHeight = getPageHeight();
var nMaxPage = TotalDisplayPages();
var xContainerWidth = (OverflowContainer.offsetWidth)*100/g_nZoomLevel;
var yContainerHeight = OverflowContainer.offsetHeight*100/g_nZoomLevel;
if(g_zoomLayout==0) {
g_cxDisplaySlots = g_zoomLayoutX;
g_cyDisplaySlots = g_zoomLayoutY;
} else {
g_cxDisplaySlots = 1;
g_cyDisplaySlots = 1;
}
var yOff = (yContainerHeight - (g_cyDisplaySlots * yPageHeight) - ((g_cyDisplaySlots-1)*10)) / 2;
if(yOff<0)
{
xContainerWidth -= 20*100/g_nZoomLevel;
yOff = 10;
}
var xOff = (xContainerWidth - (g_cxDisplaySlots * xPageWidth) - ((g_cxDisplaySlots-1)*10)) / 2;
if(xOff<0) xOff = 0;
if(fRendering)
{
EmptyPage.style.left = xOff;
EmptyPage.style.top = yOff;
EmptyPage.style.display = "block";
return;
} else {
EmptyPage.style.display = "none";
}
var nMaxPageRequest = Math.max(nMaxPage - g_cxDisplaySlots * g_cyDisplaySlots + 1, 1);
if (nDispPage < 1)
{
nDispPage = 1;
}
else if (nDispPage > nMaxPageRequest)
{
nDispPage = nMaxPageRequest;
}
g_nDispPage = nDispPage;
document.all.spanPageTotal.innerText = nMaxPage;
document.all.inputPageNum.value = g_nDispPage;
updateNavButtons();
var xDisplaySlot = 1;
var yDisplaySlot = 1;
var iPage = g_nDispPage;
g_cPagesDisplayed = 0;
while (iPage <= nMaxPage && yDisplaySlot <= g_cyDisplaySlots)
{
var xPos = xOff + (xDisplaySlot-1)*(xPageWidth+10);
var yPos = yOff + (yDisplaySlot-1)*(yPageHeight+10);
var oPage = DisplayPage(iPage);
if (g_fRTL)
{
oPage.style.right = xPos;
}
else
{
oPage.style.left = xPos;
}
oPage.style.top = yPos;
iPage++;
if (++xDisplaySlot > g_cxDisplaySlots)
{
xDisplaySlot = 1;
yDisplaySlot++;
}
g_cPagesDisplayed++;
}
var oAnchorRule = GetRuleFromSelector(".MarginAnchor");
if(g_zoomLayout==-2)
{
var oPage = DisplayPage(g_nDispPage);
if(g_fRTL)
{
maLeft.style.pixelLeft = (oPage.style.pixelRight * g_nZoomLevel/100) - 10;
maTop.style.left = (oPage.style.pixelRight * g_nZoomLevel/100) - 24;
maRight.style.left = ((oPage.style.pixelRight + xPageWidth) * g_nZoomLevel/100) - 10;
}
else
{
maLeft.style.pixelLeft = (oPage.style.pixelLeft * g_nZoomLevel/100) - 10;
maTop.style.left = (oPage.style.pixelLeft * g_nZoomLevel/100) - 20;
maRight.style.left = ((oPage.style.pixelLeft + xPageWidth) * g_nZoomLevel/100) - 10;
}
maLeft.style.pixelTop = (oPage.style.pixelTop * g_nZoomLevel/100) - 20;
maTop.style.top = oPage.style.pixelTop * g_nZoomLevel/100 - 10;
maRight.style.top = maLeft.style.pixelTop;
maBottom.style.left = maTop.style.pixelLeft;
maBottom.style.top = ((oPage.style.pixelTop + yPageHeight) * g_nZoomLevel/100) - 10;
maLeft.style.pixelLeft += g_nMarginLeft * g_nScreenDPI * g_nZoomLevel/100;
maTop.style.pixelTop += g_nMarginTop * g_nScreenDPI * g_nZoomLevel/100;
maRight.style.pixelLeft -= g_nMarginRight * g_nScreenDPI * g_nZoomLevel/100;
maBottom.style.pixelTop -= g_nMarginBottom * g_nScreenDPI * g_nZoomLevel/100;
oAnchorRule.style.display = "block";
}
else
{
oAnchorRule.style.display = "none";
}
}
}
function ChangeDispPage(nDispPageNew)
{
if (isNaN(nDispPageNew))
{
inputPageNum.value = g_nDispPage;
}
else
{
var totalPages = TotalDisplayPages();
if (nDispPageNew < 1)
{
nDispPageNew = 1;
}
else if (nDispPageNew > totalPages)
{
nDispPageNew = totalPages;
}
if((!g_fCheckAutoFit && !g_fCheckOrphan) || g_nDocsToCalc>0)
{
PositionPages(nDispPageNew);
}
}
return g_nDispPage;
}
function DisplayDocument(nWhichPage)
{
switch (g_nFramesetLayout)
{
case 0:
return "C";
break;
case 1:
return g_strActiveFrame;
break;
case 3:
return "S";
break;
case 2:
var i;
if (!nWhichPage)
return null;
;
for (i in g_aDocTree)
{
if ( nWhichPage >= g_aDocTree[i]._nStartingPage
&& nWhichPage < (g_aDocTree[i]._nStartingPage + g_aDocTree[i].Pages()))
return i;
}
break;
default:
HandleError("Display document cannot be found!", document.URL, "DisplayDocument");
break;
}
}
function TotalDisplayPages()
{
if (g_nFramesetLayout == 2)
{
return g_nTotalPages;
}
return g_aDocTree[DisplayDocument()].Pages();
}
function DisplayPage(nWhichPage)
{
;
if (g_nFramesetLayout != 2)
{
return g_aDocTree[DisplayDocument(nWhichPage)].Page(nWhichPage);
}
return g_aDocTree[DisplayDocument(nWhichPage)].Page(nWhichPage - g_aDocTree[DisplayDocument(nWhichPage)]._nStartingPage + 1);
}
function DisplayPageLayoutRect(nWhichPage)
{
var oPage = DisplayPage(nWhichPage);
if(oPage==null) return null;
var oRectColl = oPage.getElementsByTagName("LAYOUTRECT");
if(oRectColl==null || oRectColl.length==0) return null;
;
return oRectColl[0];
}
function ChangeZoom()
{
MasterContainer.style.zoom = g_nZoomLevel + "%";
PositionPages(g_nDispPage);
return g_nZoomLevel;
}
function ChangeZoomSpecial(zoomtype)
{
CalculateZoomSpecial(zoomtype);
ChangeZoom();
}
function RecalculateZoom()
{
CalculateZoomSpecial(g_zoomLayout);
}
function CalculateZoomSpecial(zoomtype)
{
var xPage = getPageWidth();
var yPage = getPageHeight();
if(xPage==0 || yPage==0) return;
var xContainer = OverflowContainer.offsetWidth;
var yContainer = OverflowContainer.offsetHeight;
if(zoomtype==0 && g_zoomLayoutX==1 && g_zoomLayoutY==1) {
zoomtype = -2;
}
var x,y;
var factor = 100;
switch(zoomtype) {
case -1:
factor = Math.floor(((xContainer - 40)*100)/xPage);
break;
case -2:
x = Math.floor(((xContainer - 40)*100)/xPage);
y = Math.floor(((yContainer - 40)*100)/yPage);
factor = Math.min(x,y);
break;
case 0:
x = Math.floor(((xContainer - 20)*100)/((xPage+10)*g_zoomLayoutX));
y = Math.floor(((yContainer - 20)*100)/((yPage+10)*g_zoomLayoutY));
factor = Math.min(x,y);
break;
default:
return;
}
if(factor<10) factor = 10;
else if(factor>1000) factor = 1000;
g_zoomLayout = zoomtype;
g_nZoomLevel = factor;
}
function BuildTableOfLinks(docSource)
{
var aLinks = docSource.links;
var nLinks = aLinks.length;
if (nLinks > 0)
{
var fDuplicate;
var i;
var j;
var newHTM;
var docLinkTable = document.createElement("BODY");
var L_LINKSHEADER1_Text = "Shortcut Text";
var L_LINKSHEADER2_Text = "Internet Address";
newHTM = "<CENTER><TABLE BORDER=1>";
newHTM += "<THEAD style=\"display:table-header-group\"><TR><TH>"
+ L_LINKSHEADER1_Text
+ "</TH><TH>" + L_LINKSHEADER2_Text + "</TH></TR></THEAD><TBODY>";
for (i = 0; i < nLinks; i++)
{
fDuplicate = false;
for (j = 0; (!fDuplicate) && (j < i); j++)
{
if (aLinks[i].href == aLinks[j].href)
{
fDuplicate = true;
}
}
if (!fDuplicate)
{
newHTM += ("<TR><TD>" + aLinks[i].innerText + "</TD><TD>" + aLinks[i].href + "</TD></TR>");
}
}
newHTM += "</TBODY></TABLE></CENTER>";
docLinkTable.innerHTML = newHTM;
return docLinkTable.document;
}
return null;
}
function CreateDocument(docURL, strDocID, fUseStreamHeader)
{
if (g_aDocTree[strDocID])
{
return;
}
g_aDocTree[strDocID] = new CPrintDoc(strDocID, docURL);
g_aDocTree[strDocID].InitDocument(fUseStreamHeader);
g_nDocsToCalc++;
}
function ChangeFramesetLayout(nNewLayout, fForce)
{
if (g_nFramesetLayout == nNewLayout && !fForce)
{
return;
}
UndisplayPages();
g_nFramesetLayout = nNewLayout;
switch (nNewLayout)
{
case 0:
case 1:
case 3:
break;
case 2:
g_nTotalPages = 0;
var i;
for (i in g_aDocTree)
{
if (g_aDocTree[i]._fFrameset || i == "S")
{
g_aDocTree[i]._nStartingPage = 0;
}
else
{
g_aDocTree[i]._nStartingPage = g_nTotalPages + 1;
g_nTotalPages += g_aDocTree[i].Pages();
}
}
break;
default:
HandleError("Impossible frameset layout type: " + nNewLayout, document.URL, "ChangeFramesetLayout");
break;
}
ChangeDispPage(1);
}
function EnsureDocuments(fForceRepaginate)
{
var i;
var tmp;
var top = Printer.marginTop / 100;
var bottom = Printer.marginBottom / 100;
var left = Printer.marginLeft / 100;
var right = Printer.marginRight / 100;
var pageWidth = Printer.pageWidth / 100;
var pageHeight = Printer.pageHeight / 100;
var linktable = Printer.tableOfLinks;
var upTop = Printer.unprintableTop / 100;
var upBottom = Printer.unprintableBottom / 100;
var header = Printer.header;
var footer = Printer.footer;
if (header)
{
tmp = upTop + (27 / 100);
if (tmp > top)
{
top = tmp;
}
}
if (footer)
{
tmp = upBottom + (27 / 100);
if (tmp > bottom)
{
bottom = tmp;
}
}
if (upTop != g_nUnprintTop)
{
g_nUnprintTop = upTop;
var oRule = GetRuleFromSelector(".divHead");
if (oRule == null)
{
HandleError("'.divHead' rule does not exist!", document.URL, "CPrintDoc::EnsureDocuments");
}
oRule.style.top = upTop + "in";
if(g_fRTL)
{
oRule.style.direction = "rtl";
}
}
if (upBottom != g_nUnprintBottom)
{
g_nUnprintBottom= upBottom;
var oRule = GetRuleFromSelector(".divFoot");
if (oRule == null)
{
HandleError("'.divFoot' rule does not exist!", document.URL, "CPrintDoc::EnsureDocuments");
}
oRule.style.bottom = upBottom + "in";
if(g_fRTL)
{
oRule.style.direction = "rtl";
}
}
if (top != g_nMarginTop ||
bottom != g_nMarginBottom ||
left != g_nMarginLeft ||
right != g_nMarginRight ||
pageWidth != g_nPageWidth ||
pageHeight != g_nPageHeight ||
header != g_strHeader ||
footer != g_strFooter ||
fForceRepaginate == true)
{
var conWidth = pageWidth - left - right;
var conHeight = pageHeight - top - bottom;
var oStyleSheet = document.styleSheets[0];
var oRule;
if (conWidth < 0)
{
conWidth = 0;
}
if (conHeight < 0)
{
conHeight = 0;
}
UndisplayPages();
g_nTotalPages = 0;
g_nDocsToCalc = 0;
for (i in g_aDocTree)
{
g_nDocsToCalc++;
g_aDocTree[i].ResetDocument();
}
g_ObsoleteBar++;
g_nMarginTop = top;
g_nMarginBottom = bottom;
g_nMarginLeft = left;
g_nMarginRight = right;
g_nPageWidth = pageWidth;
g_nPageHeight = pageHeight;
g_fTableofLinks = linktable;
g_strHeader = header;
g_strFooter = footer;
HeadFoot.textHead = g_strHeader;
HeadFoot.textFoot = g_strFooter;
oRule = GetRuleFromSelector(".page");
if (oRule == null)
{
HandleError("'.page' rule does not exist!", document.URL, "CPrintDoc::EnsureDocuments");
}
oRule.style.width = pageWidth + "in";
oRule.style.height = pageHeight + "in";
oRule = GetRuleFromSelector(".mRect");
if (oRule == null)
{
HandleError("'.mRect' rule does not exist!", document.URL, "CPrintDoc::EnsureDocuments");
}
oRule.style.marginLeft = left + "in";
oRule.style.marginRight = right + "in";
oRule.style.marginTop = top + "in";
oRule.style.marginBottom = bottom + "in";
oRule.style.width = (conWidth*100/g_nScalePercent) + "in";
oRule.style.height = (conHeight*100/g_nScalePercent) + "in";
oRule.style.zoom = g_nScalePercent + "%";
oRule = GetRuleFromSelector(".divHead");
if (oRule == null)
{
HandleError("'.divHead' rule does not exist!", document.URL, "CPrintDoc::EnsureDocuments");
}
oRule.style.left = left + "in";
oRule.style.width = conWidth + "in";
oRule = GetRuleFromSelector(".divFoot");
if (oRule == null)
{
HandleError("'.divHead' rule does not exist!", document.URL, "CPrintDoc::EnsureDocuments");
}
oRule.style.left = left + "in";
oRule.style.width = conWidth + "in";
for (i in g_aDocTree)
{
g_aDocTree[i].InitDocument((g_aDocTree[i]._anMerge[1] == 1));
}
if (g_nFramesetLayout == 2)
{
ChangeFramesetLayout(g_nFramesetLayout, true);
}
PositionPages(g_nDispPage);
}
else if (linktable != g_fTableOfLinks)
{
g_fTableOfLinks = linktable;
for (i in g_aDocTree)
{
g_aDocTree[i].ResetTableOfLinks();
}
}
}
function CalcAutoFit()
{
var docWidthPx = 0;
var docWidthIn = 0;
var printerWidth = Printer.pageWidth / 100;
var scale = 100;
var docClientWidthPx = 0;
if (g_nScreenDPI == 0)
{
return scale;
}
printerWidth -= g_nMarginLeft;
printerWidth -= g_nMarginRight;
var nCount = TotalDisplayPages();
var i;
for(i = 1; i<=nCount; i++)
{
var oRect = DisplayPageLayoutRect(i);
if(oRect!=null)
{
if (oRect.scrollWidth > docWidthPx)
{
docWidthPx = oRect.scrollWidth;
}
if (oRect.clientWidth > docClientWidthPx)
{
docClientWidthPx = oRect.clientWidth;
}
}
}
docWidthIn = docWidthPx * (1/g_nScreenDPI);
if (docWidthPx == 0 || docClientWidthPx >= docWidthPx)
{
return scale;
}
scale = (printerWidth / docWidthIn) * 100;
scale = Math.floor(scale+0.05);
if (scale < 30)
{
scale = 30;
}
if (scale > 100)
{
scale = 100;
}
return scale;
}
function IsOrphaned()
{
if((g_nFramesetLayout!=0 && g_nFramesetLayout!=1) || TotalDisplayPages()!=2)
{
return false;
}
var printerHeight = Printer.pageHeight / 100;
printerHeight -= g_nMarginTop;
printerHeight -= g_nMarginBottom;
if(printerHeight <= 0) return false;
var oSecondRect = DisplayPageLayoutRect(2);
if(g_nScreenDPI==0) return false;
var layoutHeight = oSecondRect.scrollHeight/g_nScreenDPI;
var pageCoverage = layoutHeight * 100 / printerHeight;
return pageCoverage < 10;
}
function CalcOrphanRemovalScale()
{
var scale = 100;
var printerHeight = Printer.pageHeight / 100;
printerHeight -= g_nMarginTop;
printerHeight -= g_nMarginBottom;
if(printerHeight <= 0) return scale;
var oSecondRect = DisplayPageLayoutRect(2);
if(oSecondRect==null) return scale;
if(g_nScreenDPI==0) return false;
var totalHeight = oSecondRect.scrollHeight;
totalHeight = totalHeight / g_nScreenDPI;
totalHeight += printerHeight;
if(totalHeight <= 0) return scale;
scale = printerHeight*100/totalHeight;
scale = Math.floor(scale+0.05);
if(scale>100) scale = 100;
return scale;
}
function Close()
{
Printer.updatePageStatus(-1);
if (g_fDelayClose)
{
g_fDelayClose = false;
window.setTimeout("Close()", 120000);
return;
}
window.close();
}
function PrintAll()
{
var i;
var nFirstDoc;
if (g_nFramesLeft > 0 && Printer.framesetDocument && !Printer.frameAsShown)
{
window.setTimeout("PrintAll()", 100);
return;
}
EnsureDocuments(false);
if (Printer.copies <= 0)
{
Close();
}
else if (Printer.selectedPages && Printer.pageFrom > Printer.pageTo )
{
var L_PAGERANGE_ErrorMessage = "The 'From' value cannot be greater than the 'To' value.";
alert(L_PAGERANGE_ErrorMessage);
;
if (!g_fPreview)
PrintNow(true);
}
else
{
g_cLeftToPrint = 1;
Printer.updatePageStatus(1);
var strSel;
if (Printer.selection)
{
strSel = "S";
}
else if (Printer.frameActive && !!g_strActiveFrame)
{
strSel = g_strActiveFrame;
}
else
{
strSel = "C";
}
PrintSentinel(strSel, true);
}
}
function PrintSentinel(strDoc, fRecursionOK)
{
if (g_fCheckAutoFit || g_fCheckOrphan || !g_aDocTree[strDoc] || !g_aDocTree[strDoc].ReadyToPrint())
{
window.setTimeout("PrintSentinel('" + strDoc + "'," + fRecursionOK + ");", 500);
return;
}
g_aDocTree[strDoc].Print(fRecursionOK);
}
function PrintDocumentComplete()
{
g_cLeftToPrint--;
if (g_cLeftToPrint <= 0)
{
Close();
}
}
function PrintNow(fWithPrompt)
{
if (!g_aDocTree["C"] ||
!g_aDocTree["C"]._aaRect[1][0] ||
!g_aDocTree["C"]._aaRect[1][0].contentDocument.body)
{
window.setTimeout("PrintNow('" + fWithPrompt + "');", 100);
return;
}
var oDoc = g_aDocTree["C"]._aaRect[1][0].contentDocument;
var fConfirmed;
var fFramesetDocument = (oDoc.body.tagName.toUpperCase() == "FRAMESET");
var fActiveFrame = (oDoc.getElementsByTagName("HTML").item(0).__IE_ActiveFrame != null);
Printer.framesetDocument = fFramesetDocument;
Printer.frameActiveEnabled = fActiveFrame;
if (g_fPreview)
{
Printer.frameActive = (g_nFramesetLayout == 1 || g_nFramesetLayout == 3);
Printer.frameAsShown = (g_nFramesetLayout == 0);
Printer.currentPageAvail = true;
}
else
{
Printer.frameActive = fActiveFrame;
Printer.frameAsShown = false;
Printer.currentPageAvail = false;
}
Printer.selectionEnabled = !!(dialogArguments.__IE_ContentSelectionUrl);
Printer.selection = Printer.selectionEnabled && (g_nFramesetLayout == 3);
fConfirmed = (eval(fWithPrompt)) ? Printer.showPrintDialog() : Printer.ensurePrintDialogDefaults();
if (fConfirmed)
{
if (Printer.selection && dialogArguments.__IE_ContentSelectionUrl && g_aDocTree["S"]==null)
{
CreateDocument(dialogArguments.__IE_ContentSelectionUrl, "S", true);
}
Printer.usePrinterCopyCollate =(Printer.deviceSupports("copies") >= Printer.copies &&
(!Printer.collate || Printer.deviceSupports("collate")) );
PrintAll();
}
else
{
if (!g_fPreview)
{
Close();
}
else
{
Printer.tableoflinks = false;
}
}
}
function CPrintDoc_ReadyToPrint()
{
if(g_fCheckAutoFit || g_fCheckOrphan) return false;
return (this._nStatus == 4 && this._aaRect[1][0].contentDocument.readyState == "complete");
}
function CPrintDoc_Print(fRecursionOK)
{
if (!this.ReadyToPrint())
{
HandleError("Printing when not ready!", document.URL, "CPrintDoc::Print");
return;
}
var nCount = (Printer.usePrinterCopyCollate) ? 1 : Printer.copies;
var nFrom;
var nTo;
;
if (fRecursionOK)
{
var fFrameset = (this._aaRect[1][0].contentDocument.body.tagName.toUpperCase() == "FRAMESET");
if (Printer.frameActive)
{
var n = parseInt(this._aaRect[1][0].contentDocument.getElementsByTagName("HTML").item(0).__IE_ActiveFrame);
if (n >= 0)
{
var oTargetFrame = (fFrameset)
? this._aaRect[1][0].contentDocument.getElementsByTagName("FRAME").item(n)
: this._aaRect[1][0].contentDocument.getElementsByTagName("IFRAME").item(n);
if (IsPersistedDoc() &&
(oTargetFrame.src == "res://IEFRAME.DLL/printnof.htm" ||
oTargetFrame.src == "about:blank"))
{
Printer.printNonNativeFrames(this._aaRect[1][0].contentDocument, true);
}
else
{
this.CreateSubDocument(oTargetFrame.src, true);
this.PrintAllSubDocuments(true);
}
PrintDocumentComplete();
return;
}
}
if (fFrameset)
{
if (!Printer.frameAsShown)
{
this.PrintAllSubDocuments(true);
if (IsPersistedDoc())
{
Printer.printNonNativeFrames(this._aaRect[1][0].contentDocument, false);
}
PrintDocumentComplete();
return;
}
else
{
Printer.printNonNativeFrames(this._aaRect[1][0].contentDocument, false);
}
}
else
{
if (Printer.allLinkedDocuments)
{
this.BuildAllLinkedDocuments();
this.PrintAllSubDocuments(false);
}
}
}
if (Printer.printNonNative(this._aaRect[1][0].contentDocument) )
{
g_fDelayClose = !g_fPreview;
PrintDocumentComplete();
return;
}
if (Printer.selectedPages)
{
nFrom = Printer.pageFrom;
nTo = Printer.pageTo;
if (nFrom < 1)
{
nFrom = 1;
}
if (nTo > this.Pages())
{
nTo = this.Pages();
}
}
else if ( Printer.currentPage
&& this._strDoc == DisplayDocument())
{
nFrom = (this.Pages() >= g_nDispPage) ? g_nDispPage : this.Pages();
nTo = nFrom;
}
else
{
nFrom = 1;
nTo = this.Pages();
}
if (nTo < nFrom)
{
PrintDocumentComplete();
return;
}
;
;
;
if (Printer.startDoc(this._aaRect[1][0].contentDocument.URL))
{
if (Printer.collate)
{
var fExtraPage = (Printer.duplex && ((nFrom - nTo) % 2 == 0));
var j;
for (j = 0; j < nCount; j++)
{
for (i = nFrom; i <= nTo; i++)
{
Printer.printPage(this.Page(i).children[0]);
}
if (fExtraPage)
{
Printer.printBlankPage();
}
}
}
else
{
var fDuplex = Printer.duplex;
for (i = nFrom; i <= nTo; i++)
{
for (j = 0; j < nCount; j++)
{
Printer.printPage(this.Page(i).children[0]);
if (fDuplex)
{
if (i < nTo)
{
Printer.printPage(this.Page(i+1));
}
else
{
Printer.printBlankPage();
}
}
}
if (fDuplex)
{
i++;
}
}
}
Printer.stopDoc();
}
PrintDocumentComplete();
}
function CPrintDoc_RectComplete(fOverflow, strElement)
{
var nStatus = parseInt(strElement.substr(5,1));
var nPage = parseInt(strElement.substr(strElement.lastIndexOf("p") + 1));
;
;
if (nStatus > this._nStatus)
{
return false;
}
if (nPage != this._acPage[nStatus] - 1 + this._anMerge[nStatus])
{
return false;
}
if (nStatus != this._nStatus)
{
if (!fOverflow)
{
return false;
}
this.StopFixupHF();
if (this._nStatus == 4)
{
g_nDocsToCalc++;
}
this._nStatus = nStatus;
}
if (fOverflow)
{
this.AddPage();
}
else
{
switch (this._nStatus)
{
case 0:
this._nStatus = 1;
this.AddFirstPage();
this._aaRect[this._nStatus][0].contentSrc = this._strDocURL;
break;
case 1:
this._nStatus = 2;
this.AddTableOfLinks();
break;
case 2:
this._nStatus = 3;
if (this._strDoc == DisplayDocument()) {
ChangeDispPage(g_nDispPage);
}
this.FixupHF();
break;
}
}
if (this._strDoc == DisplayDocument())
{
spanPageTotal.innerText = this.Pages();
updateNavButtons();
}
}
function CPrintDoc_AddPage()
{
var newHTM = "";
var aPage = this._aaPage[this._nStatus];
var aRect = this._aaRect[this._nStatus];
;
(this._acPage[this._nStatus])++;
HeadFoot.URL = this.EnsureURL();
HeadFoot.title = this.EnsureTitle();
HeadFoot.pageTotal = this.Pages();
HeadFoot.page = HeadFoot.pageTotal;
if (this._acPage[this._nStatus] <= aPage.length)
{
var oPage = aPage[this._acPage[this._nStatus] - 1];
oPage.children("header").innerHTML = HeadFoot.HtmlHead;
oPage.children("footer").innerHTML = HeadFoot.HtmlFoot;
}
else
{
newHTM = "<DIV class=divPage><IE:DeviceRect media=\"print\" class=page id=mDiv" + this._nStatus + this._strDoc + "p" + aPage.length + ">";
newHTM += "<IE:LAYOUTRECT id=mRect" + this._nStatus + this._strDoc + "p" + aRect.length;
newHTM += " class=mRect nextRect=mRect" + this._nStatus + this._strDoc + "p" + (aRect.length + 1);
newHTM += " onlayoutcomplete=\"OnRectComplete('" + this._strDoc + "', " + g_ObsoleteBar + ")\"";
newHTM += " tabindex=-1 onbeforefocusenter='event.returnValue=false;' ";
newHTM += " />";
newHTM += "<DIV class=divHead id=header>";
newHTM += HeadFoot.HtmlHead;
newHTM += "</DIV><DIV class=divFoot id=footer>";
newHTM += HeadFoot.HtmlFoot;
newHTM += "</DIV>";
newHTM += "</IE:DeviceRect></DIV>";
MasterContainer.insertAdjacentHTML("beforeEnd", newHTM);
aPage[aPage.length] = eval("document.all.mDiv" + this._nStatus + this._strDoc + "p" + aPage.length);
aRect[aRect.length] = eval("document.all.mRect" + this._nStatus + this._strDoc + "p" + aRect.length);
}
}
function CPrintDoc_AddFirstPage()
{
this._acPage[this._nStatus] = 0;
if (this._anMerge[this._nStatus] == 0)
{
this.AddPage();
}
else
{
var aRect = this._aaRect[this._nStatus];
var oPage = this._aaPage[this._nStatus - 1][this._acPage[this._nStatus - 1] - 1];
var oTop = this._aaRect[this._nStatus - 1][this._acPage[this._nStatus - 1] + this._anMerge[this._nStatus - 1] - 1];
var nTop = oTop.offsetTop + oTop.scrollHeight*g_nScalePercent/100;
var nHeight = oTop.clientHeight - oTop.scrollHeight;
;
;
if (aRect.length > 0)
{
var oNode = aRect[0];
oNode.style.marginTop = nTop + "px";
oNode.style.pixelHeight = nHeight;
if (oNode.parentElement != oPage)
{
oPage.insertBefore(oNode);
}
}
else
{
var newHTM;
var oNode;
newHTM = "<IE:LAYOUTRECT id=mRect" + this._nStatus + this._strDoc + "p0";
newHTM += " class=mRect nextRect=mRect" + this._nStatus + this._strDoc + "p1";
newHTM += " onlayoutcomplete=\"OnRectComplete('" + this._strDoc + "', " + g_ObsoleteBar + ")\"";
newHTM += " tabindex=-1 onbeforefocus='event.returnValue=false;'";
newHTM += " />";
oPage.insertAdjacentHTML("beforeEnd", newHTM);
oNode = eval("document.all.mRect" + this._nStatus + this._strDoc + "p0");
aRect[0] = oNode;
oNode.style.marginTop = nTop + "px";
oNode.style.height = nHeight + "px";
}
}
}
function CPrintDoc_InitDocument(fUseStreamHeader)
{
var fReallyUseStreamHeader = (fUseStreamHeader && (dialogArguments.__IE_OutlookHeader != null));
this._anMerge[1] = (fReallyUseStreamHeader) ? 1 : 0;
this._nStatus = ((fReallyUseStreamHeader) ? 0 : 1);
this.AddFirstPage();
this._aaRect[this._nStatus][0].contentSrc = (fReallyUseStreamHeader)
? dialogArguments.__IE_OutlookHeader
: this._strDocURL;
}
function CPrintDoc_PrintAllSubDocuments(fRecursionOK)
{
if (this._aDoc)
{
var nDocs = this._aDoc.length;
var i;
g_cLeftToPrint += nDocs;
for (i = 0; i < nDocs; i++)
{
PrintSentinel(this._aDoc[i]._strDoc, fRecursionOK);
}
}
}
function CPrintDoc_BuildAllLinkedDocuments()
{
var strURL = this._aaRect[1][0].contentDocument.URL;
var aLinks = this._aaRect[1][0].contentDocument.links;
var nLinks = aLinks.length;
var i;
var j;
var strLink;
for (i = 0; i < nLinks; i++)
{
strLink = aLinks[i].href;
if (strURL == strLink || UnprintableURL(strLink))
{
continue;
}
for (j = 0; j < i; j++)
{
if (strLink == aLinks[j].href)
{
break;
}
}
if (j < i)
{
continue;
}
this.CreateSubDocument(strLink, false);
}
}
function OnBuildAllFrames(strDoc)
{
if (!g_aDocTree[strDoc] ||
!g_aDocTree[strDoc]._aaRect[1][0] ||
!g_aDocTree[strDoc]._aaRect[1][0].contentDocument.body)
{
window.setTimeout("OnBuildAllFrames('" + strDoc + "');", 100);
return;
}
g_aDocTree[strDoc].BuildAllFrames();
}
function IsPersistedDoc()
{
return (!!g_aDocTree["C"]._aaRect[1][0].contentDocument.getElementsByTagName("HTML")[0].__IE_DisplayURL);
}
function CPrintDoc_BuildAllFrames()
{
var aFrames = this._aaRect[1][0].contentDocument.getElementsByTagName("FRAME");
var nFrames = aFrames.length;
var nActive = parseInt(this._aaRect[1][0].contentDocument.getElementsByTagName("HTML").item(0).__IE_ActiveFrame);
var i;
var strSrc;
var strDoc;
if (nFrames > 0)
{
this._fFrameset = true;
}
for (i = 0; i < nFrames; i++)
{
strSrc = aFrames[i].src;
if (strSrc == "res://IEFRAME.DLL/printnof.htm")
{
continue;
}
strDoc = this.CreateSubDocument(strSrc, true);
if (i == nActive)
{
g_strActiveFrame = strDoc;
}
g_nFramesLeft++;
OnBuildAllFrames(strDoc);
}
g_nFramesLeft--;
if (g_nFramesLeft <= 0)
{
BuildAllFramesComplete();
}
}
function CPrintDoc_CreateSubDocument( docURL, fUseStreamHeader )
{
if (!this._aDoc)
this._aDoc = new Array();
var nDoc = this._aDoc.length;
var strDoc = this._strDoc + "_" + nDoc;
CreateDocument(docURL, strDoc, fUseStreamHeader);
this._aDoc[nDoc] = g_aDocTree[strDoc];
return (strDoc);
}
function CPrintDoc_AddTableOfLinks()
{
;
if (!g_fTableOfLinks)
{
this._nStatus = 3;
ChangeDispPage(g_nDispPage);
this.FixupHF();
}
else
{
var oTableOfLinks = BuildTableOfLinks(this._aaRect[1][0].contentDocument);
if (oTableOfLinks != null)
{
var oBody = oTableOfLinks.body;
this.AddFirstPage()
this._aaRect[this._nStatus][0].contentSrc = oBody.document;
}
else
{
this._nStatus = 3;
ChangeDispPage(g_nDispPage);
this.FixupHF();
}
}
}
function OnTickHF( strDoc )
{
if (!g_aDocTree[strDoc])
{
HandleError("Document " + strDoc + " does not exist.", document.URL, "OnRectComplete");
return;
}
g_aDocTree[strDoc].TickHF();
}
function CPrintDoc_TickHF()
{
var i, j;
var iTo, jTo;
var aTok;
var oTok;
var nStartPage = this._nNextHF;
var cPages = this.Pages();
iTo = nStartPage + 2;
if (iTo > cPages)
{
iTo = cPages;
}
for (i = nStartPage; i <= iTo; i++)
{
aTok = this.Page(i).children[0].getElementsByTagName("SPAN");
for (j=0, jTo = aTok.length; j < jTo; j++)
{
oTok = aTok[j];
if (oTok.className == "hfPageTotal")
{
oTok.innerText = cPages;
}
else if (oTok.className == "hfUrl" && oTok.innerText == "")
{
oTok.innerText = this.EnsureURL();
}
else if (oTok.className == "hfTitle" && oTok.innerText == "")
{
oTok.innerText = this.EnsureTitle();
}
}
}
this._nNextHF = i;
if (iTo == cPages)
{
this._nStatus = 4;
if (--g_nDocsToCalc == 0)
{
window.setTimeout("CalcDocsComplete()", 1);
}
}
else
{
this._nTimerHF = window.setTimeout("OnTickHF('" + this._strDoc + "');", 250);
}
}
function CPrintDoc_FixupHF()
{
;
this.TickHF();
}
function CPrintDoc_Pages()
{
var i;
var c;
for (i = 0, c = 0; i < 3; i++)
{
c += this._acPage[i];
}
return c;
}
function CPrintDoc_Page(nPage)
{
var i;
var n = nPage;
if (n <= 0)
return null;
for (i = 0; i < 3; i++)
{
if (n <= this._acPage[i])
{
return this._aaPage[i][n - 1].parentElement;
}
n -= this._acPage[i];
}
return null;
}
function CPrintDoc_EnsureURL()
{
if (this._strURL == null)
{
if (this._aaRect[1][0] && this._aaRect[1][0].contentDocument)
{
this._strURL = this._aaRect[1][0].contentDocument.URL;
}
if (this._strURL == null)
{
return "";
}
}
return this._strURL;
}
function CPrintDoc_EnsureTitle()
{
if (this._strTitle == null)
{
if (this._aaRect[1][0] && this._aaRect[1][0].contentDocument)
{
this._strTitle = this._aaRect[1][0].contentDocument.title;
}
if (this._strTitle == null)
{
return "";
}
}
return this._strTitle;
}
function CPrintDoc_ResetDocument()
{
var i;
for (i=0; i<3; i++)
{
this._aaRect[i] = new Array();
this._aaPage[i] = new Array();
this._acPage[i] = 0;
}
MasterContainer.innerHTML = "<div id=\"EmptyPage\" class=\"divPage\" style=\"position:absolute; left:0px; top:0px; display:none;\"><div class=\"page\"> </div></div>";
this.StopFixupHF();
}
function CPrintDoc_ResetTableOfLinks()
{
if (this._nStatus <= 2)
return;
this.StopFixupHF();
this._nStatus = 2;
this.AddTableOfLinks();
}
function CPrintDoc_StopFixupHF()
{
if (this._nTimerHF != -1)
window.clearTimeout(this._nTimerHF);
this._nTimerHF = -1;
this._nNextHF = 1;
}
function CPrintDoc(nDocNum, strDocURL)
{
var i;
this._aDoc = null;
this._strDoc = nDocNum;
this._strDocURL = strDocURL;
this._nStatus = 0;
this._aaPage = new Array(3);
this._aaRect = new Array(3);
this._acPage = new Array(3);
this._anMerge = new Array(3);
for (i=0; i<3; i++)
{
this._aaPage[i] = new Array();
this._aaRect[i] = new Array();
this._acPage[i] = 0;
this._anMerge[i]= 0;
}
this._nNextHF = 1;
this._nTimerHF = -1;
this._strURL = null;
this._strTitle = null;
this._fFrameset = false;
this._nStartingPage = 0;
}
CPrintDoc.prototype.RectComplete = CPrintDoc_RectComplete;
CPrintDoc.prototype.AddPage = CPrintDoc_AddPage;
CPrintDoc.prototype.AddFirstPage = CPrintDoc_AddFirstPage;
CPrintDoc.prototype.AddTableOfLinks = CPrintDoc_AddTableOfLinks;
CPrintDoc.prototype.FixupHF = CPrintDoc_FixupHF;
CPrintDoc.prototype.StopFixupHF = CPrintDoc_StopFixupHF;
CPrintDoc.prototype.TickHF = CPrintDoc_TickHF;
CPrintDoc.prototype.InitDocument = CPrintDoc_InitDocument;
CPrintDoc.prototype.ResetDocument = CPrintDoc_ResetDocument;
CPrintDoc.prototype.ResetTableOfLinks = CPrintDoc_ResetTableOfLinks;
CPrintDoc.prototype.BuildAllLinkedDocuments = CPrintDoc_BuildAllLinkedDocuments;
CPrintDoc.prototype.BuildAllFrames = CPrintDoc_BuildAllFrames;
CPrintDoc.prototype.CreateSubDocument = CPrintDoc_CreateSubDocument;
CPrintDoc.prototype.Print = CPrintDoc_Print;
CPrintDoc.prototype.PrintAllSubDocuments = CPrintDoc_PrintAllSubDocuments;
CPrintDoc.prototype.ReadyToPrint = CPrintDoc_ReadyToPrint;
CPrintDoc.prototype.Page = CPrintDoc_Page;
CPrintDoc.prototype.Pages = CPrintDoc_Pages;
CPrintDoc.prototype.EnsureURL = CPrintDoc_EnsureURL;
CPrintDoc.prototype.EnsureTitle = CPrintDoc_EnsureTitle;