/* JQuery FlyOut: version 1.2 February 13, 2011
	author: Jolyon Terwilliger - Nixbox Web Consulting
	website: http://nixbox.com/projects/jquery-image-flyout/
	MIT and GPL licensed: http://www.opensource.org/licenses/mit-license.php
	http://www.gnu.org/licenses/gpl.html */
(function(b){jQuery.fn.extend({flyout:function(y){function l(d){d=parseInt(d,10);return isNaN(d)?0:d}function w(d){m=true;o=b(d);f=b("img",d);n=new Image;var z=b(window).scrollLeft(),A=b(window).scrollTop();e=f.offset();e.left+=a.startOffsetX;e.top+=a.startOffsetY;p=a.startHeight>0?a.startHeight:f.height();q=a.startWidth>0?a.startWidth:f.width();r=b("<div></div>").attr("id",a.loader).appendTo("body").css({position:"absolute",top:-9999,left:-9999,height:p,width:q,opacity:a.loaderOpacity,display:"block",
"z-index":a.loaderZIndex,"line-height":"0px"});s=l(r.css("borderTopWidth"))-l(f.css("borderTopWidth"))-l(f.css("paddingTop"));t=l(r.css("borderLeftWidth"))-l(f.css("borderLeftWidth"))-l(f.css("paddingLeft"));r.css({top:e.top-s,left:e.left-t});a.loadingSrc?b("#"+a.loader).append(b("<img/>").load(function(){b(this).css({position:"relative",top:p/2-this.height/2,left:q/2-this.width/2}).attr("alt",a.loadingText)}).attr("src",a.loadingSrc)):b("#"+a.loader).css("background-color","#000").append(b("<span></span>").text(a.loadingText).css({position:"relative",
top:"2px",left:"2px",color:"#FFF","font-size":"9px"}));b(n).load(function(){var B=b("<img/>").attr("src",o.attr("href")).attr("title",f.attr("title")+a.closeTip).attr("alt",f.attr("alt")+a.closeTip).height(p).width(q);a.flyOutStart.call(d);var c,g,h;if(a.destElement){h=b(a.destElement);c=h.innerWidth()-a.destPadding*2;g=h.innerHeight()-a.destPadding*2}else{c=b(window).width()-a.widthMargin;g=b(window).height()-a.heightMargin}var i=n.width,j=n.height;c=c/i;var u=g/j;if(c<=u)u=c;else c=u;if(a.fullSizeImage){g=
i;c=j}else{g=Math.round(i*c);c=Math.round(j*u);if(g>i)g=i;if(c>j)c=j}if(a.destElement){j=h.offset();i=Math.round(h.outerWidth()/2-g/2+j.left);h=Math.round(h.outerHeight()/2-c/2+j.top)}else{i=Math.round(b(window).width()/2-g/2+z);h=Math.round(b(window).height()/2-c/2+A)}b("#"+a.loader).empty().css({opacity:a.inOpacity,top:e.top-s,left:e.left-t}).append(B).width("auto").height("auto").animate({top:h,left:i,opacity:a.outOpacity},{duration:a.outSpeed,queue:false,easing:a.outEase});b("#"+a.loader+" "+
v).animate({height:c,width:g,opacity:a.outOpacity},a.outSpeed,a.outEase,function(){a.flyOutFinish.call(d);k=d;o.addClass(a.shownClass);m=false;b("#"+a.loader+" "+v).click(function(){x(null)})})});n.src=o.attr("href")}function x(d){if(m===true||k===false)return false;a.putAwayStart.call(k);m=true;e=f.offset();e.left+=a.startOffsetX-t;e.top+=a.startOffsetY-s;b("#"+a.loader).animate({top:e.top,left:e.left,opacity:a.inOpacity},{duration:a.inSpeed,queue:false,easing:a.inEase});b("#"+a.loader+" "+v).animate({height:p,
width:q,opacity:a.inOpacity},a.inSpeed,a.inEase,function(){b("#"+a.loader).css("display","none").remove();a.putAwayFinish.call(k);m=false;n=null;if(d&&d!==k){k=false;w(d)}k=false;o.removeClass(a.shownClass)})}var k=false,m=false,n=new Image,v="img",o,f,r,e,p,q,s,t;this.click(function(){if(m===true)return false;k?x(this):w(this);return false});var a=jQuery.extend({outSpeed:1E3,inSpeed:500,outEase:"swing",inEase:"swing",loadingSrc:null,loader:"loader",loaderZIndex:500,loaderOpacity:0.5,widthMargin:40,
heightMargin:40,loadingText:"Loading...",closeTip:" - Click here to close",destPadding:20,startOffsetX:0,startOffsetY:0,startHeight:0,startWidth:0,flyOutStart:function(){},flyOutFinish:function(){},putAwayStart:function(){},putAwayFinish:function(){},shownClass:"shown",inOpacity:1,outOpacity:1,fullSizeImage:false},y);return this}})})(jQuery);

