// FancyZoomHTML.js - v1.0
// Used to draw necessary HTML elements for FancyZoom
//
// Copyright (c) 2008 Cabel Sasser / Panic Inc
// All rights reserved.
function insertZoomHTML() {
// All of this junk creates the three
's used to hold the closebox, image, and zoom shadow.
var inBody = document.getElementsByTagName("body").item(0);
// WAIT SPINNER
var inSpinbox = document.createElement("div");
inSpinbox.setAttribute("id", "ZoomSpin");
inSpinbox.style.position = "absolute";
inSpinbox.style.left = "10px";
inSpinbox.style.top = "10px";
inSpinbox.style.visibility = "hidden";
inSpinbox.style.zIndex = "525";
inBody.insertBefore(inSpinbox, inBody.firstChild);
var inSpinImage = document.createElement("img");
inSpinImage.setAttribute("id", "SpinImage");
inSpinImage.setAttribute("src", zoomImagesURI + "zoom-spin-1.png");
inSpinbox.appendChild(inSpinImage);
// ZOOM IMAGE
//
//
//

//
//

//
//
var inZoombox = document.createElement("div");
inZoombox.setAttribute("id", "ZoomBox");
inZoombox.style.position = "absolute";
inZoombox.style.left = "10px";
inZoombox.style.top = "10px";
inZoombox.style.visibility = "hidden";
inZoombox.style.zIndex = "499";
inBody.insertBefore(inZoombox, inSpinbox.nextSibling);
var inImage1 = document.createElement("img");
inImage1.onclick = function (event) {
zoomOut(this, event);
return false;
};
inImage1.setAttribute("src", zoomImagesURI + "spacer.gif");
inImage1.setAttribute("id", "ZoomImage");
inImage1.setAttribute("border", "0");
// inImage1.setAttribute('onMouseOver', 'zoomMouseOver();')
// inImage1.setAttribute('onMouseOut', 'zoomMouseOut();')
// This must be set first, so we can later test it using webkitBoxShadow.
inImage1.setAttribute(
"style",
"-webkit-box-shadow: " + shadowSettings + "0.0)",
);
inImage1.style.display = "block";
inImage1.style.width = "10px";
inImage1.style.height = "10px";
inImage1.style.cursor = "pointer"; // -webkit-zoom-out?
inZoombox.appendChild(inImage1);
var inClosebox = document.createElement("div");
inClosebox.setAttribute("id", "ZoomClose");
inClosebox.style.position = "absolute";
// In MSIE, we need to put the close box inside the image.
// It's 2008 and I'm having to do a browser detect? Sigh.
if (browserIsIE) {
inClosebox.style.left = "-1px";
inClosebox.style.top = "0px";
} else {
inClosebox.style.left = "-15px";
inClosebox.style.top = "-15px";
}
inClosebox.style.visibility = "hidden";
inZoombox.appendChild(inClosebox);
var inCloseBtn = document.createElement("span");
inCloseBtn.onclick = function (event) {
zoomOut(this, event);
return false;
};
inCloseBtn.innerHTML = "×";
inCloseBtn.style.display = "block";
inCloseBtn.style.width = "30px";
inCloseBtn.style.height = "30px";
inCloseBtn.style.lineHeight = "30px";
inCloseBtn.style.textAlign = "center";
inCloseBtn.style.fontSize = "20px";
inCloseBtn.style.fontWeight = "bold";
inCloseBtn.style.color = "#ffffff";
inCloseBtn.style.backgroundColor = "#000000";
inCloseBtn.style.borderRadius = "50%";
inCloseBtn.style.cursor = "pointer";
inCloseBtn.style.userSelect = "none";
inClosebox.appendChild(inCloseBtn);
// SHADOW
// Only draw the table-based shadow if the programatic webkitBoxShadow fails!
// Also, don't draw it if we're IE -- it wouldn't look quite right anyway.
if (
!document.getElementById("ZoomImage").style.webkitBoxShadow &&
!browserIsIE
) {
// SHADOW BASE
var inFixedBox = document.createElement("div");
inFixedBox.setAttribute("id", "ShadowBox");
inFixedBox.style.position = "absolute";
inFixedBox.style.left = "50px";
inFixedBox.style.top = "50px";
inFixedBox.style.width = "100px";
inFixedBox.style.height = "100px";
inFixedBox.style.visibility = "hidden";
inFixedBox.style.zIndex = "498";
inBody.insertBefore(inFixedBox, inZoombox.nextSibling);
// SHADOW
// Now, the shadow table. Skip if not compatible, or irrevelant with -box-shadow.
//
X
//
//  |
// |
//  |
//
var inShadowTable = document.createElement("table");
inShadowTable.setAttribute("border", "0");
inShadowTable.setAttribute("width", "100%");
inShadowTable.setAttribute("height", "100%");
inShadowTable.setAttribute("cellpadding", "0");
inShadowTable.setAttribute("cellspacing", "0");
inFixedBox.appendChild(inShadowTable);
var inShadowTbody = document.createElement("tbody"); // Needed for IE (for HTML4).
inShadowTable.appendChild(inShadowTbody);
var inRow1 = document.createElement("tr");
inRow1.style.height = "25px";
inShadowTbody.appendChild(inRow1);
var inCol1 = document.createElement("td");
inCol1.style.width = "27px";
inRow1.appendChild(inCol1);
var inShadowImg1 = document.createElement("img");
inShadowImg1.setAttribute("src", zoomImagesURI + "zoom-shadow1.png");
inShadowImg1.setAttribute("width", "27");
inShadowImg1.setAttribute("height", "25");
inShadowImg1.style.display = "block";
inCol1.appendChild(inShadowImg1);
var inCol2 = document.createElement("td");
inCol2.setAttribute("background", zoomImagesURI + "zoom-shadow2.png");
inRow1.appendChild(inCol2);
// inCol2.innerHTML = '
//
// | |
//  |
//
//
var inRow3 = document.createElement("tr");
inRow3.style.height = "26px";
inShadowTbody.appendChild(inRow3);
var inCol7 = document.createElement("td");
inCol7.style.width = "27px";
inRow3.appendChild(inCol7);
var inShadowImg7 = document.createElement("img");
inShadowImg7.setAttribute("src", zoomImagesURI + "zoom-shadow6.png");
inShadowImg7.setAttribute("width", "27");
inShadowImg7.setAttribute("height", "26");
inShadowImg7.style.display = "block";
inCol7.appendChild(inShadowImg7);
var inCol8 = document.createElement("td");
inCol8.setAttribute("background", zoomImagesURI + "zoom-shadow7.png");
inRow3.appendChild(inCol8);
// inCol8.innerHTML = ' ';
var inSpacer5 = document.createElement("img");
inSpacer5.setAttribute("src", zoomImagesURI + "spacer.gif");
inSpacer5.setAttribute("height", "1");
inSpacer5.setAttribute("width", "1");
inSpacer5.style.display = "block";
inCol8.appendChild(inSpacer5);
var inCol9 = document.createElement("td");
inCol9.style.width = "27px";
inRow3.appendChild(inCol9);
var inShadowImg9 = document.createElement("img");
inShadowImg9.setAttribute("src", zoomImagesURI + "zoom-shadow8.png");
inShadowImg9.setAttribute("width", "27");
inShadowImg9.setAttribute("height", "26");
inShadowImg9.style.display = "block";
inCol9.appendChild(inShadowImg9);
}
if (includeCaption) {
// CAPTION
//
//
//
//
//  |
// |
//  |
//
//
//
var inCapDiv = document.createElement("div");
inCapDiv.setAttribute("id", "ZoomCapDiv");
inCapDiv.style.position = "absolute";
inCapDiv.style.visibility = "hidden";
inCapDiv.style.marginLeft = "auto";
inCapDiv.style.marginRight = "auto";
inCapDiv.style.zIndex = "501";
inBody.insertBefore(inCapDiv, inZoombox.nextSibling);
var inCapTable = document.createElement("table");
inCapTable.setAttribute("border", "0");
inCapTable.setAttribute("cellPadding", "0"); // Wow. These honestly need to
inCapTable.setAttribute("cellSpacing", "0"); // be intercapped to work in IE. WTF?
inCapDiv.appendChild(inCapTable);
var inTbody = document.createElement("tbody"); // Needed for IE (for HTML4).
inCapTable.appendChild(inTbody);
var inCapRow1 = document.createElement("tr");
inTbody.appendChild(inCapRow1);
var inCapCol1 = document.createElement("td");
inCapCol1.setAttribute("align", "right");
inCapRow1.appendChild(inCapCol1);
var inCapImg1 = document.createElement("img");
inCapImg1.setAttribute("src", zoomImagesURI + "zoom-caption-l.png");
inCapImg1.setAttribute("width", "13");
inCapImg1.setAttribute("height", "26");
inCapImg1.style.display = "block";
inCapCol1.appendChild(inCapImg1);
var inCapCol2 = document.createElement("td");
inCapCol2.setAttribute(
"background",
zoomImagesURI + "zoom-caption-fill.png",
);
inCapCol2.setAttribute("id", "ZoomCaption");
inCapCol2.setAttribute("valign", "middle");
inCapCol2.style.fontSize = "14px";
inCapCol2.style.fontFamily = "Helvetica";
inCapCol2.style.fontWeight = "bold";
inCapCol2.style.color = "#ffffff";
inCapCol2.style.textShadow = "0px 2px 4px #000000";
inCapCol2.style.whiteSpace = "nowrap";
inCapRow1.appendChild(inCapCol2);
var inCapCol3 = document.createElement("td");
inCapRow1.appendChild(inCapCol3);
var inCapImg2 = document.createElement("img");
inCapImg2.setAttribute("src", zoomImagesURI + "zoom-caption-r.png");
inCapImg2.setAttribute("width", "13");
inCapImg2.setAttribute("height", "26");
inCapImg2.style.display = "block";
inCapCol3.appendChild(inCapImg2);
}
}