if (navigator.userAgent.indexOf("MSIE") != -1) {
	var browserIsIE = true;
}

var includeCaption = false;
var zoomTime       = (browserIsIE) ? 5 : 15;
var zoomSteps      = (browserIsIE) ? 15 : 25;
var includeFade    = 1;
var minBorder      = 90;
var shadowSettings = '0px 5px 25px rgba(0, 0, 0, ';

var zoomImagesURI   = '/images/zoom/';

var myWidth = 0, myHeight = 0, myScroll = 0; myScrollWidth = 0; myScrollHeight = 0;
var zoomOpen = false, preloadFrame = 1, preloadActive = false, preloadTime = 0, imgPreload = new Image();
var preloadAnimTimer = 0;

var zoomActive = new Array(); var zoomTimer  = new Array(); 
var zoomOrigW  = new Array(); var zoomOrigH  = new Array();
var zoomOrigX  = new Array(); var zoomOrigY  = new Array();

var zoomID         = "ZoomBox";
var theID          = "ZoomImage";
var zoomCaption    = "ZoomCaption";
var zoomCaptionDiv = "ZoomCapDiv";



function setupZoom() {
	prepZooms();
	insertZoomHTML();
	zoomdiv = gEl(zoomID);  
	zoomimg = gEl(theID);
}
function prepZooms() {
	if (! document.getElementsByTagName) {
		return;
	}
	var imgs = document.getElementsByTagName("img");
	for (i = 0; i < imgs.length; i++) 
	{
		// w3c
		var _id = imgs[i].getAttribute("longdesc");
		if (typeof _id == 'string' && _id.indexOf('dozoom') != -1)
		{
			var akp = _id.split('-');
			imgs[i].setAttribute("dozoom", akp[1])
		}
		if (imgs[i].getAttribute("dozoom")) 
		{
			imgs[i].style.cursor = (browserIsIE) ? 'hand' : 'pointer';
			imgs[i].onclick = function (event) { return zoomClick(this, event); };
			imgs[i].onmouseover = function () { zoomPreload(this); };
		}
	}
	
	var imgs = document.getElementsByTagName("a");
	for (i = 0; i < imgs.length; i++) 
	{
		// w3c
		var _id = imgs[i].getAttribute("title");
		if (typeof _id == 'string' && _id.indexOf('dozoom-') != -1)
		{
			var akp = _id.split('-');
			imgs[i].setAttribute("dozoom", akp[1]);
			imgs[i].removeAttribute("title")
		}
		if (imgs[i].getAttribute("dozoom")) 
		{
			imgs[i].style.cursor = (browserIsIE) ? 'hand' : 'pointer';
			imgs[i].onclick = function (event) { return zoomClick(this, event); };
			imgs[i].onmouseover = function () { zoomPreload(this); };
		}
	}
}

function zoomPreload(from) {

	var theimage = from.getAttribute("dozoom");

	if (imgPreload.src.indexOf(from.getAttribute("dozoom").substr(from.getAttribute("dozoom").lastIndexOf("/"))) == -1) {
		preloadActive = true;
		imgPreload = new Image();

		imgPreload.onload = function() {
			preloadActive = false;
		}

		imgPreload.src = theimage;
	}
}

function fzdoAni() {
	preloadTime = new Date();
	gEl("ZoomSpin").style.left = (myWidth / 2) + 'px';
	gEl("ZoomSpin").style.top = ((myHeight / 2) + myScroll) + 'px';
	gEl("ZoomSpin").style.visibility = "visible";	
	preloadFrame = 1;
	preloadAnimTimer = setInterval("fzAni()", 100);
}

function fzAni(from) 
{
	if (!gEl('inZoomSpin')) return;
	if (preloadActive != false && preloadFrame == 1) 
	{
		bgPos = gtFr * 50 - 50;
		bgPos = bgPos * -1;
		gEl("inZoomSpin").style.backgroundPosition = '0px '+bgPos+'px'
		preloadFrame++;
		if (preloadFrame > 12) preloadFrame = 1;
	} else {
		gEl("ZoomSpin").style.visibility = "hidden";    
		clearInterval(preloadAnimTimer);
		preloadAnimTimer = 0;
		zoomIn(preloadFrom);		
	}
}

function zoomClick(from, evt) {

	var shift = getShift(evt);

	if (! evt && window.event && (window.event.metaKey || window.event.altKey)) 
		return true;
	else if (evt && (evt.metaKey|| evt.altKey))
		return true;
	

	getSize();

	if (preloadActive == true) {
		if (preloadAnimTimer == 0) {
			preloadFrom = from;
			fzdoAni();	
		}
	}
	else 
		zoomIn(from, shift);

	return false;
	
}

function zoomIn(from, shift) {

	zoomimg.src = from.getAttribute("dozoom");
	var scipWinSize = (from.getAttribute("scipwin") && from.getAttribute("scipwin") == 'true');

	if (from.width) {
		startW = from.width;
		startH = from.height;
		startPos = findElementPos(from);
	} else {
		startW = 50;
		startH = 12;
		startPos = findElementPos(from);
	}

	hostX = startPos[0];
	hostY = startPos[1];

	if (gEl('scroller')) {
		hostX = hostX - gEl('scroller').scrollLeft;
	}
	endW = imgPreload.width;
	endH = imgPreload.height;

	if (zoomActive[theID] != true && endW > 0 && endH > 0) {

		if (gEl("ShadowBox")) {
			gEl("ShadowBox").style.visibility = "hidden";
		} else if (! browserIsIE) {
			if (fadeActive["ZoomImage"]) {
				clearInterval(fadeTimer["ZoomImage"]);
				fadeActive["ZoomImage"] = false;
				fadeTimer["ZoomImage"] = false;			
			}
		}
		
		gEl("ZoomClose").style.visibility = "hidden";     

		if (includeCaption) {
			gEl(zoomCaptionDiv).style.visibility = "hidden";
			if (from.getAttribute('title') && includeCaption) {
				gEl(zoomCaption).innerHTML = from.getAttribute('title');
			} else {
				gEl(zoomCaption).innerHTML = "";
			}
		}

		zoomOrigW[theID] = startW;
		zoomOrigH[theID] = startH;
		zoomOrigX[theID] = hostX;
		zoomOrigY[theID] = hostY;

		zoomimg.style.width = startW + 'px';
		zoomimg.style.height = startH + 'px';
		zoomdiv.style.left = hostX + 'px';
		zoomdiv.style.top = hostY + 'px';

		if (includeFade == 1) {
			setOpacity(0, zoomID);
		}
		zoomdiv.style.visibility = "visible";

		sizeRatio = endW / endH;

		if ( !scipWinSize )
		{
			if (endW > myWidth - minBorder) { endW = myWidth - minBorder; endH = endW / sizeRatio; }
			if (endH > myHeight - minBorder) { endH = myHeight - minBorder; endW = endH * sizeRatio; }
		}
		
		zoomChangeX = ((myWidth / 2) - (endW / 2) - hostX);
		zoomChangeY = (((myHeight / 2) - (endH / 2) - hostY) + myScroll);
		zoomChangeW = (endW - startW);
		zoomChangeH = (endH - startH);
	
		if (shift) {
			tempSteps = zoomSteps * 7;
		} else {
			tempSteps = zoomSteps;
		}

		zoomCurrent = 0;
		if (includeFade == 1) {
			fadeCurrent = 0;
			fadeAmount = (0 - 100) / tempSteps;
		} else {
			fadeAmount = 0;
		}
		
		zoomTimer[theID] = setInterval("zoomElement('"+zoomID+"', '"+theID+"', "+zoomCurrent+", "+startW+", "+zoomChangeW+", "+startH+", "+zoomChangeH+", "+hostX+", "+zoomChangeX+", "+hostY+", "+zoomChangeY+", "+tempSteps+", "+includeFade+", "+fadeAmount+", 'zoomDoneIn(zoomID)')", zoomTime);		
		zoomActive[theID] = true; 
	}
}

function zoomOut(from, evt) {

	if (getShift(evt)) {
		tempSteps = zoomSteps * 7;
	} else {
		tempSteps = zoomSteps;
	}	

	if (zoomActive[theID] != true) {

		if (gEl("ShadowBox")) {
			gEl("ShadowBox").style.visibility = "hidden";
		} else if (! browserIsIE) {
		
			if (fadeActive["ZoomImage"]) {
				clearInterval(fadeTimer["ZoomImage"]);
				fadeActive["ZoomImage"] = false;
				fadeTimer["ZoomImage"] = false;			
			}
		}

		gEl("ZoomClose").style.visibility = "hidden";

		if (includeCaption && gEl(zoomCaption).innerHTML != "") {
			gEl(zoomCaptionDiv).style.visibility = "hidden";
		}

		startX = parseInt(zoomdiv.style.left);
		startY = parseInt(zoomdiv.style.top);
		startW = zoomimg.width;
		startH = zoomimg.height;
		zoomChangeX = zoomOrigX[theID] - startX;
		zoomChangeY = zoomOrigY[theID] - startY;
		zoomChangeW = zoomOrigW[theID] - startW;
		zoomChangeH = zoomOrigH[theID] - startH;

		zoomCurrent = 0;

		if (includeFade == 1) {
			fadeCurrent = 0;
			fadeAmount = (100 - 0) / tempSteps;
		} else {
			fadeAmount = 0;
		}

		zoomTimer[theID] = setInterval("zoomElement('"+zoomID+"', '"+theID+"', "+zoomCurrent+", "+startW+", "+zoomChangeW+", "+startH+", "+zoomChangeH+", "+startX+", "+zoomChangeX+", "+startY+", "+zoomChangeY+", "+tempSteps+", "+includeFade+", "+fadeAmount+", 'zoomDone(zoomID, theID)')", zoomTime);	
		zoomActive[theID] = true;
	}
}


function zoomDoneIn(zoomdiv, theID) {

	zoomOpen = true;
	zoomdiv = gEl(zoomdiv);

	if (gEl("ShadowBox")) {

		setOpacity(0, "ShadowBox");
		shadowdiv = gEl("ShadowBox");

		shadowLeft = parseInt(zoomdiv.style.left) - 13;
		shadowTop = parseInt(zoomdiv.style.top) - 8;
		shadowWidth = zoomdiv.offsetWidth + 26;
		shadowHeight = zoomdiv.offsetHeight + 26; 
	
		shadowdiv.style.width = shadowWidth + 'px';
		shadowdiv.style.height = shadowHeight + 'px';
		shadowdiv.style.left = shadowLeft + 'px';
		shadowdiv.style.top = shadowTop + 'px';

		gEl("ShadowBox").style.visibility = "visible";
		fadeElementSetup("ShadowBox", 0, 100, 5);
		
	} else if (! browserIsIE) {
		fadeElementSetup("ZoomImage", 0, .8, 5, 0, "shadow");
	}
	  
	if (includeCaption && gEl(zoomCaption).innerHTML != "") {
		// setOpacity(0, zoomCaptionDiv);
		zoomcapd = gEl(zoomCaptionDiv);
		zoomcapd.style.top = parseInt(zoomdiv.style.top) + (zoomdiv.offsetHeight + 15) + 'px';
		zoomcapd.style.left = (myWidth / 2) - (zoomcapd.offsetWidth / 2) + 'px';
		zoomcapd.style.visibility = "visible";
		// fadeElementSetup(zoomCaptionDiv, 0, 100, 5);
	}   
	
	if (!browserIsIE) setOpacity(0, "ZoomClose");
	gEl("ZoomClose").style.visibility = "visible";
	if (!browserIsIE) fadeElementSetup("ZoomClose", 0, 100, 5);

	document.onkeypress = getKey;
	
}

function zoomDone(zoomdiv, theID) {

	zoomOpen = false;


	zoomOrigH[theID] = "";
	zoomOrigW[theID] = "";
	gEl(zoomdiv).style.visibility = "hidden";
	zoomActive[theID] == false;

	document.onkeypress = null;

}

function zoomElement(zoomdiv, theID, zoomCurrent, zoomStartW, zoomChangeW, zoomStartH, zoomChangeH, zoomStartX, zoomChangeX, zoomStartY, zoomChangeY, zoomSteps, includeFade, fadeAmount, execWhenDone) {

	if (zoomCurrent == (zoomSteps + 1)) {
		zoomActive[theID] = false;
		clearInterval(zoomTimer[theID]);

		if (execWhenDone != "") {
			eval(execWhenDone);
		}
	} else {
	  
		if (includeFade == 1) {
			if (fadeAmount < 0) {
				setOpacity(Math.abs(zoomCurrent * fadeAmount), zoomdiv);
			} else {
				setOpacity(100 - (zoomCurrent * fadeAmount), zoomdiv);
			}
		}
	  		
		moveW = cubicInOut(zoomCurrent, zoomStartW, zoomChangeW, zoomSteps);
		moveH = cubicInOut(zoomCurrent, zoomStartH, zoomChangeH, zoomSteps);
		moveX = cubicInOut(zoomCurrent, zoomStartX, zoomChangeX, zoomSteps);
		moveY = cubicInOut(zoomCurrent, zoomStartY, zoomChangeY, zoomSteps);
	
		gEl(zoomdiv).style.left = moveX + 'px';
		gEl(zoomdiv).style.top = moveY + 'px';
		zoomimg.style.width = moveW + 'px';
		zoomimg.style.height = moveH + 'px';
	
		zoomCurrent++;
		
		clearInterval(zoomTimer[theID]);
		zoomTimer[theID] = setInterval("zoomElement('"+zoomdiv+"', '"+theID+"', "+zoomCurrent+", "+zoomStartW+", "+zoomChangeW+", "+zoomStartH+", "+zoomChangeH+", "+zoomStartX+", "+zoomChangeX+", "+zoomStartY+", "+zoomChangeY+", "+zoomSteps+", "+includeFade+", "+fadeAmount+", '"+execWhenDone+"')", zoomTime);
	}
}


function getKey(evt) {
	if (! evt) {
		theKey = event.keyCode;
	} else {
		theKey = evt.keyCode;
	}

	if (theKey == 27) { // ESC
		zoomOut(this, evt);
	}
}


function fadeOut(elem) {
	if (elem.id) {
		fadeElementSetup(elem.id, 100, 0, 10);
	}
}

function fadeIn(elem) {
	if (elem.id) {
		fadeElementSetup(elem.id, 0, 100, 10);	
	}
}

var fadeActive = new Array();
var fadeQueue  = new Array();
var fadeTimer  = new Array();
var fadeClose  = new Array();
var fadeMode   = new Array();

function fadeElementSetup(theID, fdStart, fdEnd, fdSteps, fdClose, fdMode) {

	if (fadeActive[theID] == true) {
		fadeQueue[theID] = new Array(theID, fdStart, fdEnd, fdSteps);
	} else {
		fadeSteps = fdSteps;
		fadeCurrent = 0;
		fadeAmount = (fdStart - fdEnd) / fadeSteps;
		fadeTimer[theID] = setInterval("fadeElement('"+theID+"', '"+fadeCurrent+"', '"+fadeAmount+"', '"+fadeSteps+"')", 15);
		fadeActive[theID] = true;
		fadeMode[theID] = fdMode;
		
		if (fdClose == 1) {
			fadeClose[theID] = true;
		} else {
			fadeClose[theID] = false;
		}
	}
}

function fadeElement(theID, fadeCurrent, fadeAmount, fadeSteps) {

	if (fadeCurrent == fadeSteps) {

		clearInterval(fadeTimer[theID]);
		fadeActive[theID] = false;
		fadeTimer[theID] = false;

		if (fadeClose[theID] == true) {
			gEl(theID).style.visibility = "hidden";
		}

		if (fadeQueue[theID] && fadeQueue[theID] != false) {
			fadeElementSetup(fadeQueue[theID][0], fadeQueue[theID][1], fadeQueue[theID][2], fadeQueue[theID][3]);
			fadeQueue[theID] = false;
		}
	} else {

		fadeCurrent++;
		
		if (fadeMode[theID] == "shadow") {
		} else {
					
			if (fadeAmount < 0) {
				setOpacity(Math.abs(fadeCurrent * fadeAmount), theID);
			} else {
				setOpacity(100 - (fadeCurrent * fadeAmount), theID);
			}
		}

		clearInterval(fadeTimer[theID]);
		fadeTimer[theID] = setInterval("fadeElement('"+theID+"', '"+fadeCurrent+"', '"+fadeAmount+"', '"+fadeSteps+"')", 15);
	}
}

function setOpacity(opacity, theID) {

	var object = gEl(theID).style;

	if (navigator.userAgent.indexOf("Firefox") != -1) {
		if (opacity == 100) { opacity = 99.9999; }
	}

	object.filter = "alpha(opacity=" + opacity + ")";
	object.opacity = (opacity / 100);

}

function linear(t, b, c, d)
{
	return c*t/d + b;
}

function sineInOut(t, b, c, d)
{
	return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
}

function cubicIn(t, b, c, d) {
	return c*(t/=d)*t*t + b;
}

function cubicOut(t, b, c, d) {
	return c*((t=t/d-1)*t*t + 1) + b;
}

function cubicInOut(t, b, c, d)
{
	if ((t/=d/2) < 1) return c/2*t*t*t + b;
	return c/2*((t-=2)*t*t + 2) + b;
}

function bounceOut(t, b, c, d)
{
	if ((t/=d) < (1/2.75)){
		return c*(7.5625*t*t) + b;
	} else if (t < (2/2.75)){
		return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
	} else if (t < (2.5/2.75)){
		return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
	} else {
		return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
	}
}

function getShift(evt) {
	var shift = false;
	if (! evt && window.event) {
		shift = window.event.shiftKey;
	} else if (evt) {
		shift = evt.shiftKey;
		if (shift) evt.stopPropagation(); 
	}
	return shift;
}

function findElementPos(elemFind)
{
	var elemX = 0;
	var elemY = 0;
	do {
		elemX += elemFind.offsetLeft;
		elemY += elemFind.offsetTop;
	} while ( elemFind = elemFind.offsetParent )

	return Array(elemX, elemY);
}

addEvent(window, 'load', setupZoom);


/* html */
function getOpacityProperty()
{
	var p;

	if (typeof (document.body.style.opacity) == 'string') p = 'opacity';
	else if (typeof (document.body.style.MozOpacity) == 'string') p =  'MozOpacity';
	else if (typeof (document.body.style.KhtmlOpacity) == 'string') p =  'KhtmlOpacity';
	else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) p =  'filter';

	return (getOpacityProperty = new Function("return '"+p+"';"))();
}


function setElementOpacity(oElem, nOpacity)
{
		var p = getOpacityProperty();

		(setElementOpacity = (p =="filter")
        ? new Function('oElem', 'nOpacity', 'nOpacity *= 100;	var oAlpha = oElem.filters["DXImageTransform.Microsoft.Alpha"] || oElem.filters.alpha;	if (oAlpha) oAlpha.opacity = nOpacity; else oElem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")";') : p ? new Function('oElem', 'nOpacity', 'oElem.style.'+p+' = nOpacity;')
        : new Function)(oElem, nOpacity);
}

function insertZoomHTML() {

    var borderOpacity = 0.6;
    var borderColor = "#5fb95f";

	var inBody = document.getElementsByTagName("body").item(0);
	if (gEl('ZoomSpin')) return;
	
	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 = '925';
	inBody.insertBefore(inSpinbox, inBody.firstChild);
	
	var inSpin = document.createElement("div");
	inSpin.setAttribute('id', 'inZoomSpin');
	inSpin.style.background = 'url(/images/zoom/zoom-spin.png) 0px 0px no-repeat';
	inSpin.style.width = '50px';
	inSpin.style.height = '50px';
	inSpinbox.appendChild(inSpin);
		
	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 = '999';

	inBody.insertBefore(inZoombox, inSpinbox.nextSibling);
	
	
	var inSp = '<img src="'+zoomImagesURI+'spacer.gif" width="1" height="1" border="0" />'
	var inShadowTable = document.createElement("table");
	
	inShadowTable.setAttribute('border', '0');
	inShadowTable.setAttribute('cellPadding', '0');
	inShadowTable.setAttribute('cellSpacing', '0');
	
	inZoombox.appendChild(inShadowTable);

	var inShadowTbody = document.createElement("tbody");	// Needed for IE (for HTML4).
	inShadowTable.appendChild(inShadowTbody);
	
	inShadowTable.setAttribute('cellpadding', '0');
	inShadowTable.setAttribute('cellspacing', '0');
	
	var inRow = document.createElement("tr");
	inShadowTbody.appendChild(inRow);
		
	var inCol = document.createElement("td");
	inCol.style.width = '14px';
	inCol.style.height = '9px';
	inCol.style.background = 'url('+zoomImagesURI+'azoom-shadow1.png) top left no-repeat';
	inCol.innerHTML = inSp;
	inRow.appendChild(inCol);

    setElementOpacity(inCol, borderOpacity);
	
	inCol = document.createElement("td");
	inCol.style.height = '9px';
	inCol.style.background = 'url('+zoomImagesURI+'azoom-shadow2.png) top left repeat-x';
    inCol.innerHTML = inSp;
	inRow.appendChild(inCol);

    setElementOpacity(inCol, borderOpacity);
	
	inCol = document.createElement("td");
	inCol.style.width = '14px';
	inCol.style.height = '9px';
	inCol.style.background = 'url('+zoomImagesURI+'azoom-shadow3.png) 0 0 no-repeat';
	inCol.innerHTML = inSp;
	inRow.appendChild(inCol);

    setElementOpacity(inCol, borderOpacity);

	
	inRow = document.createElement("tr");
	inShadowTbody.appendChild(inRow);
	
	inCol = document.createElement("td");
	inCol.style.background = 'url('+zoomImagesURI+'azoom-shadow4.png) 0 0 repeat-y';
	inCol.innerHTML = inSp;
	inRow.appendChild(inCol);

    setElementOpacity(inCol, borderOpacity);
	
	inCol = document.createElement("td");
	inRow.appendChild(inCol);
	
		
		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.style.display = 'block';
		inImage1.style.width = '10px';
		inImage1.style.height = '10px';
		inImage1.style.cursor = 'pointer'; // -webkit-zoom-out?
		
		inCol.appendChild(inImage1);	
	
		var inClosebox = document.createElement("div");
		inClosebox.setAttribute('id', 'ZoomClose');
		inClosebox.style.position = 'absolute';
		
		if (browserIsIE) {
			inClosebox.style.right = '0px';
			inClosebox.style.top = '-2px';
		} else {
			inClosebox.style.right = '0px';
			inClosebox.style.top = '-2px';
		}
	
		inClosebox.style.visibility = 'hidden';
		inZoombox.appendChild(inClosebox);
		
		var inImage2 = document.createElement("img");
		inImage2.onclick = function (event) { zoomOut(this, event); return false; };	
		inImage2.setAttribute('src',zoomImagesURI+'closebox.png');		
		inImage2.setAttribute('width','30');
		inImage2.setAttribute('height','30');
		inImage2.setAttribute('border','0');
		
		inImage2.style.cursor = 'pointer';		
		inClosebox.appendChild(inImage2);
	

	inCol = document.createElement("td");
	inCol.style.background = 'url('+zoomImagesURI+'azoom-shadow5.png) 0 0 repeat-y';
	inCol.innerHTML = inSp;
	inRow.appendChild(inCol);

    setElementOpacity(inCol, borderOpacity);
	
	
	inRow = document.createElement("tr");
	inShadowTbody.appendChild(inRow);
		
	inCol = document.createElement("td");
	inCol.style.width = '14px';
	inCol.style.height = '19px';
	inCol.style.background = 'url('+zoomImagesURI+'azoom-shadow6.png) 0 0 no-repeat';
	inCol.innerHTML = inSp;
	inRow.appendChild(inCol);

    setElementOpacity(inCol, borderOpacity);
	
	inCol = document.createElement("td");
	inCol.style.height = '19px';
	inCol.style.background = 'url('+zoomImagesURI+'azoom-shadow7.png) 0 0 repeat-x';
	inCol.innerHTML = inSp;
	inRow.appendChild(inCol);

    setElementOpacity(inCol, borderOpacity);
	
	inCol2 = document.createElement("td");
	inCol2.style.width = '14px';
	inCol2.style.height = '19px';
	inCol2.style.background = 'url('+zoomImagesURI+'azoom-shadow8.png) 0 0 no-repeat';
	inCol2.innerHTML = inSp;
	inRow.appendChild(inCol2);

    setElementOpacity(inCol2, borderOpacity);

	
	if (includeCaption) 
	{
		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);
	}
}
