/** * @todo Move inline CSS out to external style sheet (theme style sheet) */ var show_full_size = function(image_url, image_width, image_height) { /* * 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) }; } var width = $(document).width(); var height = $(document).height(); $("body").append('
'); var image_size = _auto_fit(image_width, image_height); $("body").append('
' + '
'); $("#gFullsize").append(''); $("#gFullsizeClose").click(function() { $("#gFullsizeOverlay*").remove(); $("#gFullsize").remove(); }); $(window).resize(function() { $("#gFullsizeOverlay").width($(document).width()); $("#gFullsizeOverlay").height($(document).height()); image_size = _auto_fit(image_width, image_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); }); };