/*
 * 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 to use rel attribute for preview image
 * - added viewport placement check for y axis
 */
  
this.imagePreview = function(){	
	/* CONFIG */
		
		xOffset = 10;
		yOffset = 30;
		
		// these 2 variable determine popup's distance from the cursor
		// you might want to adjust to get the right result
		
	/* END CONFIG */
	jQuery("a.preview").hover(function(e){
		this.t = this.title;
		this.title = "";
		var imgURL = jQuery(this).attr('rel') || this.href;
		var c = (this.t != "") ? "<br/>" + this.t : "";
		jQuery("body").append("<p id='preview'><img src='" + imgURL + "' alt='Image preview' />"+ c +"</p>");
		//added to check position within viewport and adjust
		var imgHeight = jQuery("#preview img").height();
		var imgWidth = jQuery("#preview img").width();
		if ((e.clientY - imgHeight) < 0 ) {
			var yPos = (e.pageY - xOffset);
		} else {
			var yPos = (e.pageY - xOffset - imgHeight);
		}
		if ((e.pageX + imgWidth + yOffset) >  $(window).width()) {		
			var xPos = (e.pageX - yOffset - yOffset - imgWidth);			
		} else {
			var xPos = (e.pageX + yOffset);
		}
		// end addon
 		jQuery("#preview")
			.css("top",(yPos) + "px")
			.css("left",(xPos) + "px")
			.fadeIn("fast");
		//jQuery("#preview").append('<div id="asdfasdf">' + e.pageX + ' ' + (e.pageX + imgWidth) + ' ' + $(window).width() + '</div>');
    },
	function(){
		this.title = this.t;			
		jQuery("#preview").remove();
		jQuery("#preview").remove(); //just in case :)
    });	
	jQuery("a.preview").mousemove(function(e){
		//added to check position within viewport and adjust
		var imgHeight = jQuery("#preview img").height();
		var imgWidth = jQuery("#preview img").width();
		if ((e.clientY - imgHeight) < 0 ) {
			var yPos = (e.pageY - xOffset);
		} else {
			var yPos = (e.pageY - xOffset - imgHeight);
		}
		if ((e.pageX + imgWidth + yOffset) >  $(window).width()) {		
			var xPos = (e.pageX - yOffset - yOffset - imgWidth);			
		} else {
			var xPos = (e.pageX + yOffset);
		}
		// end addon
		jQuery("#preview")
			.css("top",(yPos) + "px")
			.css("left",(xPos) + "px");
		//jQuery("#preview #asdfasdf").html(e.pageX + ' ' + (e.pageX + imgWidth) + ' ' + $(window).width());
	});			
};


// starting the script on page load
jQuery(document).ready(function(){
	imagePreview();
});
