jQuery.fn.ipreview=function(options)
{
	var offsetX=30;
	var offsetY=30;

	var mouseX=0;
	var mouseY=0;

	$(this).hover
	(
		function(e)
		{
			$("body").append('<div id="image-popup"><img id="preview-ajax-loader" src="/files/sitecard/regional/images/ajax-loader.gif" alt="" class="active" /></div>');
			
			$("#image-popup").css
			({
				position:	"absolute",
				top:		e.pageY+offsetY,
				left:		e.pageX+offsetX
			});
		},

		function()
		{
			$("#image-popup").remove();
		}
	);

	$(this).mousemove(function(e)
	{
		mouseX=e.pageX;
		mouseY=e.pageY;

		var popup=$("#image-popup");
		
		if (!popup.hasClass("active"))
		{
			popup.addClass("active");
			var img=new Image();
			img.src=$(this).next().text();

			img.onload=function()
			{
				var top=0;
				
				var win_height=$(window).height();
				var img_height=img.height;
				
				if (win_height>img_height)
				{
					top=(win_height-img_height-22)/2;
				}

				top+=$(document).scrollTop();

				var win_width=$(window).width();
				if (win_width/2 < mouseX)
				{
					left=mouseX-img.width-offsetX*2;
				}

				popup.css
				({
					left:	left,
					top:	top
				});

				$("#preview-ajax-loader").removeClass("active").hide();
				popup.append(img);
			}
		}
	
		if ($("#preview-ajax-loader").hasClass("active"))
		{
			popup.css
			({
				top:	e.pageY+offsetY,
				left:	e.pageX+offsetX
			});
		}
		else
		{
			var left=e.pageX+offsetX;
			
			var win_width=$(window).width();
			if (win_width/2 < e.pageX)
			{
				left=e.pageX-popup.width()-offsetX*2;
			}

			popup.css
			({
				left:	left
			});
		}
	});
}

