/*
 * imgPreview jQuery plugin
 * Copyright (c) 2009 James Padolsey
 * j@qd9.co.uk | http://james.padolsey.com
 * Dual licensed under MIT and GPL.
 * Updated: 09/02/09
 * @author James Padolsey
 * @version 0.22
 * Updated for DesignContestScript.com
 */
(function($){$.expr[':'].linkingToImage=function(elem,index,match){return!!($(elem).attr(match[3])&&$(elem).attr(match[3]).match(/\.(gif|jpe?g|png|bmp)$/i));};$.fn.imgPreview=function(userDefinedSettings){var s=$.extend({imgCSS:{},distanceFromEdge:10,distanceFromCursor:{top:20,left:20},preloadImages:false,onShow:function(){},onHide:function(){},onLoad:function(){},containerID:'imgPreviewContainer',containerLoadingClass:'loading',srcAttr:'rel'},userDefinedSettings),$container=$('<div/>').attr('id',s.containerID).css('position','absolute').appendTo('body').hide(),$collection=this.filter(':linkingToImage('+s.srcAttr+')');$container.setPos=function(e){scrollL=$(window).scrollLeft();scrollT=$(window).scrollTop();maxX=scrollL+$(window).width();maxY=scrollT+$(window).height();containerW=$container.outerWidth();containerH=$container.outerHeight();posTop=e.pageY+s.distanceFromCursor.top;posLeft=e.pageX+s.distanceFromCursor.left;if(posTop+containerH+s.distanceFromEdge>maxY)
posTop=maxY-containerH-s.distanceFromEdge;if((posLeft+containerW>maxX)&&(e.pageX-scrollL>maxX-e.pageX))
posLeft=e.pageX-containerW-s.distanceFromCursor.left;this.css({top:posTop+'px',left:posLeft+'px'});}
if(s.preloadImages){(function(i){var tempIMG=new Image(),callee=arguments.callee;tempIMG.src=$($collection[i]).attr(s.srcAttr);tempIMG.onload=function(){$collection[i+1]&&callee(i+1);};})(0);}
$collection.hover(function(e){var link=this;$container.addClass(s.containerLoadingClass).append('<img/>');$('img',$container).css(s.imgCSS).attr('src',$(link).attr(s.srcAttr));$container.show();s.onShow.call($container[0],link);},function(){$container.empty().hide();s.onHide.call($container[0],this);}).mousemove(function(e){$container.setPos(e);});return this;};})(jQuery);
