/*

 * 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

 *

 */

 

this.imagePreview = function(){	

	/* CONFIG */

		

		xOffset = 30;

		yOffset = 30;

		

		// these 2 variable determine popup's distance from the cursor

		// you might want to adjust to get the right result

		

	/* END CONFIG */

	$("a.preview").hover(function(e){

		this.t = this.title;

		this.title = "";	

		var c = (this.t != "") ? "<br/>" + this.t : "";

/*		$("body").append("<p id='preview'><img src='"+ this.t +"' alt='Image preview' />"+ c +"</p>");*/

		$("body").append("<p id='preview'><img src='"+ this.t +"' alt='Image preview' id='hove_img'  /></p>");

		/*$("#preview")

			.css("top",(e.pageY - xOffset) + "px")

			.css("left",(e.pageX + yOffset) + "px")

			*/

			var windowSize = getWindowSize();

			var popupSize = getPopupSize();

			if (windowSize.width + windowSize.scrollLeft < e.pageX + popupSize.width + xOffset){

				$("#preview")

				.css("left", e.pageX - popupSize.width - xOffset)

				.fadeIn("fast");

				

			} else {

				$("#preview")

				.css("left", e.pageX + xOffset)

				.fadeIn("fast");

			}

			if (windowSize.height + windowSize.scrollTop < e.pageY + popupSize.height + yOffset){

				$("#preview").css("top", e.pageY - popupSize.height - yOffset)

				.fadeIn("fast");

			} else {

				$("#preview").css("top", e.pageY + yOffset)

				.fadeIn("slow");

			}

					

    },

	function(){

		this.title = this.t;	

		$("#preview").remove();

    });	

	$("a.preview").mousemove(function(e){

		/*$("#preview")

			.css("top",(e.pageY - xOffset) + "px")

			.css("left",(e.pageX + yOffset) + "px");*/

			

			var windowSize = getWindowSize();

			var popupSize = getPopupSize();

			if (windowSize.width + windowSize.scrollLeft < e.pageX + popupSize.width + xOffset){

				$("#preview").css("left", e.pageX - popupSize.width - xOffset);

			} else {

				$("#preview").css("left", e.pageX + xOffset);

			}

			if (windowSize.height + windowSize.scrollTop < e.pageY + popupSize.height + yOffset){

				$("#preview").css("top", e.pageY - popupSize.height - yOffset);

			} else {

				$("#preview").css("top", e.pageY + yOffset);

			}

	});			

};

//calculate frame size and stuf

function getWindowSize() {

			return {

				scrollLeft: $(window).scrollLeft(),

				scrollTop: $(window).scrollTop(),

				width: $(window).width(),

				height: $(window).height()

			};

		}

		

		function getPopupSize() {

			return {

				width: $("#preview").width(),

				height: $("#preview").height()

			};

		};



// starting the script on page load

$(document).ready(function(){

	imagePreview();

});
