
function getScreenCenterOffsets(Xwidth,Yheight,divid) {
// First, determine how much the visitor has scrolled
	var scrolledX, scrolledY;
	if( self.pageYOffset ) {
		scrolledX = self.pageXOffset;
		scrolledY = self.pageYOffset;
	} else if( document.documentElement && document.documentElement.scrollTop ) {
		scrolledX = document.documentElement.scrollLeft;
		scrolledY = document.documentElement.scrollTop;
	} else if( document.body ) {
		scrolledX = document.body.scrollLeft;
		scrolledY = document.body.scrollTop;
	}

	// Next, determine the coordinates of the center of browser's window
	var centerX, centerY;
	if( self.innerHeight ) {
		centerX = self.innerWidth;
		centerY = self.innerHeight;
	} else if( document.documentElement && document.documentElement.clientHeight ) {
		centerX = document.documentElement.clientWidth;
		centerY = document.documentElement.clientHeight;
	} else if( document.body ) {
		centerX = document.body.clientWidth;
		centerY = document.body.clientHeight;
	}
	
	return [centerX,centerY,scrolledX,scrolledY];
} 

function showPhotoXoom(imgID) {
	
	var curWd = (currElement ? arrImgObj[currElement].img.width + 20 : 10);
	var curHt = (currElement ? arrImgObj[currElement].img.height + 20 : 10);
	currElement = imgID;
	
	var arrObj = arrImgObj[imgID];
	var newWd = arrObj.img.width + 20;
	var newHt = arrObj.img.height + 60;
	var screenCenter = getScreenCenterOffsets();
	var newTop = (screenCenter[1] > newHt ? (screenCenter[3]+(screenCenter[1]-newHt)/2) : 20);
	if (zoomboxIsVisible) {
		inImgContainer.style.display="none";
		var scaleX = (newWd / curWd) * 100;
		if (scaleX != 100) new Effect.Scale("outerImageContainer", scaleX, {scaleY: false});
		imgContainer.style.height = newHt+"px";
		zoomboxImg.src = arrObj.img.src;
		setTimeout("displayPhotoImage("+imgID+")", 250);
	}
	else {
		zoomboxImg.src = arrObj.img.src;		
		zoomboxCaption.innerHTML = arrObj.caption;
		tblImgContainer.style.marginTop = newTop+"px";
		imgContainer.style.width = newWd+"px";
		imgContainer.style.height = newHt+"px";
		if (!zoomboxOverlayIsVisible) {
			Effect.Appear("zoomboxOverlay",{ duration: 1.0, from: 0.0, to: 0.9 });
			zoomboxOverlayIsVisible = true;
		}
		Effect.Appear("zoombox");
		inImgContainer.style.display="block";
		//zoomboxImg.style.display="block";
		zoomboxIsVisible = true;
		zoomboxCaption.innerHTML = arrObj.caption;
		zoomboxPhotoCredit.innerHTML = arrObj.photocredit;
	}
	
}

function displayPhotoImage(imgElem) {
	Effect.Appear("imageContainer",{ duration: 2.0, from: 0.0, to: 0.9 });
	zoomboxCaption.innerHTML = arrImgObj[imgElem].caption;
	zoomboxPhotoCredit.innerHTML = arrImgObj[imgElem].photocredit;
	
}

function openPhotoXoom(imgID) {
	var arrObj = arrImgObj[imgID];
	var newWd = arrObj.img.width + 20;
	var newHt = arrObj.img.height + 20;
	var screenCenter = getScreenCenterOffsets();
	var newTop = (screenCenter[1] > newHt ? (screenCenter[3]+(screenCenter[1]-newHt)/2) : 20);
	
	zoomboxImg.src = arrObj.img.src;
	zoomboxCaption.innerHTML = arrObj.caption;
	
	imgContainer.style.top = newTop+"px";
	imgContainer.style.width = newWd+"px";
	imgContainer.style.height = newHt+"px";
	if (!zoomboxOverlayIsVisible) {
		Effect.Appear("zoomboxOverlay",{ duration: 1.0, from: 0.0, to: 0.9 });
		zoomboxOverlayIsVisible = true;
	}
	Effect.Appear("zoombox");
	zoomboxIsVisible = true;
}

function nextPhotoXoom() {
	var nxtElement;
	var found = false;
	for ( i=0; i < imgList.length; i++ ){
		if (imgList[i] == currElement) {
			found = true; break;
		}
	}
	if (found) {
		if (i == (imgList.length - 1)) {
			
			nxtElement = imgList[0];
		}
		else {
			nxtElement = imgList[i+1];
		}
		showPhotoXoom(nxtElement);
	}
}

function prevPhotoXoom() {
	var prevElement;
	var found = false;
	for ( i=0; i < imgList.length; i++ ){
		if (imgList[i] == currElement) {
			found = true; break;
		}
	}
	if (found) {
		if (i == 0) {
			prevElement = imgList[imgList.length - 1];
		}
		else {
			prevElement = imgList[i-1];
		}
		showPhotoXoom(prevElement);
	}
}

function closePhotoXoom() {
	Effect.Fade("zoomboxOverlay");
	Effect.Fade("zoombox");
	zoomboxIsVisible = false;
	zoomboxOverlayIsVisible = false;
}

function photoXoom(oid,src,caption,photocred) {
	this.id = oid;
	this.img = new Image();
	this.img.src = decodeURIComponent(src);
	this.caption = decodeURIComponent(caption);
	this.photocredit = decodeURIComponent(photocred);
}
