$(document).ready(function() {
	var $zoom = $("#zoom");
	$("body").prepend("<img id='zoom' alt='' />");
	$("#zoom").hide().css({position: 'absolute', border: '1px solid #000'});
	$(".thumb")
		.mouseover(function(event) {
			var $zoom = $("#zoom");
			var imgsrc = $(this).attr("longdesc");
			$zoom.attr("src", imgsrc).load(function() {
				var posLeft = $zoom.data("posLeft");
				var posTop = $zoom.data("posTop");
				if (posTop + $zoom.height() > $(window).height() - 12) {
					$zoom.css({left: posLeft + 10, top: $(window).scrollTop() - 2 + ($(window).height() - $zoom.height())});
				} else {
					$zoom.css({left: posLeft + 10, top: $(window).scrollTop() + posTop + 10});
				}
				$zoom.show();
			});
		})
		.mouseout(function() {
			var $zoom = $("#zoom");
			$zoom.hide().removeAttr("src");
		})
		.mousemove(function(event) {
			var $zoom = $("#zoom");
			$zoom.data("posLeft", event.clientX);
			$zoom.data("posTop", event.clientY);
			if (event.clientY + $zoom.height() > $(window).height() - 12) {
				$zoom.css({left: event.clientX + 10, top: $(window).scrollTop() - 2 + ($(window).height() - $zoom.height())});
			} else {
				$zoom.css({left: event.clientX + 10, top: $(window).scrollTop() + event.clientY + 10});
			}
		})
		.click(function() {
			var $zoom = $("#zoom");
			$zoom.hide();
		});
});