/*
 * Image preview script 
 * powered by jQuery (http://www.jquery.com)
 * 
 * written by Alen Grakalic (http://cssglobe.com)
 * 
 * for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
 *
 Modified by Dan 2009 to load image before displaying, and adjust positioning.
 */ 
 
function positionLinkPreview(pageX, pageY, stage/*1,2,3*/)
{
		var box = $("#linkPreviewBox");
		
		xOffset = 24; yOffset = 10;
		
		if(stage==1){
			window.xDir = (((pageX-(document.documentElement.scrollLeft || document.body.scrollLeft))>$(window).width()/2)?-1:1);
			window.yDir = (((pageY-(document.documentElement.scrollTop || document.body.scrollTop))>$(window).height()/2)?-1:1);
		} 
		
		var xa = pageX + ((window.xDir>0)?xOffset:0-(xOffset + box.width()));
		var ya = pageY + ((window.yDir>0)?yOffset:0-(yOffset + box.height()));			
		
		box.css("top",(ya) + "px").css("left",(xa) + "px");
} 
 
this.imagePreview = function(){	
	$("a.preview").hover(function(e){
		this.t = this.title;
		this.title = "";	
		var c = (this.t != "") ? "<div class=\"linkPreviewCaption\">"+this.t+"</div>" : "";
		$("body").append("<div id='linkPreviewBox'><div id='linkPreviewImg'></div>"+c+"</div>");								 
		$('#linkPreviewImg').html('<img src="/progress.gif" width="24" height="24" border="0">');
			 
		positionLinkPreview(e.pageX, e.pageY, 1);
		$("#linkPreviewBox").fadeIn("fast");
			
		 var img = new Image();
		 
		 $(img).load(function(){
			$("#linkPreviewBox").hide();
			$('#linkPreviewImg').empty();
			$('#linkPreviewImg').append(this);
			
			positionLinkPreview(e.pageX, e.pageY, 2);
			
			$("#linkPreviewBox").fadeIn('fast'); 
			
		 });
		 //initiate the image loading...
		 $(img).attr('src', this.href);			
		
    },
	function(){
		this.title = this.t;	
		$("#linkPreviewBox").remove();
    });	
	$("a.preview").mousemove(function(e){
		 positionLinkPreview(e.pageX, e.pageY, 3);
	});			
};


// starting the script on page load
$(document).ready(function(){
	imagePreview();
});
