$(document).ready(function() {
$("#gFullsizeLink").click(function() {
var width = $(document).width();
var height = $(document).height();
$("body").append('
');
var image_size = _auto_fit(fullsize_detail.width, fullsize_detail.height);
$("body").append("
");
$("#gFullsizeClose").click(function() {
$("#gFullsizeOverlay*").remove();
$("#gFullsize").remove();
});
$(window).resize(function() {
$("#gFullsizeOverlay").width($(document).width());
$("#gFullsizeOverlay").height($(document).height());
image_size = _auto_fit(fullsize_detail.width, fullsize_detail.height);
$("#gFullsize").height(image_size.height);
$("#gFullsize").width(image_size.width);
$("#gFullsize").css("top", image_size.top);
$("#gFullsize").css("left", image_size.left);
$("#gFullSizeImage").height(image_size.height);
$("#gFullSizeImage").width(image_size.width);
});
});
});
/*
* Calculate the size of the image panel based on the size of the image and the size of the
* window. Scale the image so the entire panel fits in the view port.
*/
function _auto_fit(imageWidth, imageHeight) {
// ui-dialog gives a padding of 2 pixels
var windowWidth = $(window).width() - 10;
var windowHeight = $(window).height() - 10;
/* If the width is greater then scale the image width first */
if (imageWidth > windowWidth) {
var ratio = windowWidth / imageWidth;
imageWidth *= ratio;
imageHeight *= ratio;
}
/* after scaling the width, check that the height fits */
if (imageHeight > windowHeight) {
var ratio = windowHeight / imageHeight;
imageWidth *= ratio;
imageHeight *= ratio;
}
// handle the case where the calculation is almost zero (2.14e-14)
return {top: ((windowHeight - imageHeight) / 2).toFixed(2),
left: ((windowWidth - imageWidth) / 2).toFixed(2),
width: imageWidth.toFixed(2), height: imageHeight.toFixed(2)};
}