jQuery.fn.imgbox=function(g){var h=jQuery.extend({bg_color:'#000',bg_opacity:.8,fade_speed:400,replace_this:false,with_this:false,padding:20,caption_font:'normal normal 12px Calibri,Arial,Helvetica,sans-serif',control_font:'normal normal 12px Calibri,Arial,Helvetica,sans-serif'},g);var j={images:0,overlay:0,container:0,active:-1,control_box:0,control_height:63,control_default_opacity:.35,control_hover_opacity:.65,image:0};initialize(this);function imgbox_image(a){this.img=new Image();this.img.src=(h.replace_this?a.attr('src').replace(h.replace_this,h.with_this):a.parent().attr('href'));this.caption=a.attr('alt');this.jQ=a}function initialize(b){j.images=new Array();b.each(function(i){var a=$(this);if(a.get(0).tagName!='IMG'){a=$(this).find('img').eq(0)}j.images.push(new imgbox_image(a));$(this).click(function(e){e.preventDefault();openBox(getImageIndex($(this)))})});setUpBox();setUpControls()}function openBox(a){j.overlay.stop();j.control_box.stop();j.overlay.fadeTo(h.fade_speed,h.bg_opacity);$('body').append(j.control_box);j.control_box.fadeOut(0);j.control_box.fadeTo(h.fade_speed,j.control_default_opacity);loadImage(a)}function loadImage(b){j.active=b;if(j.active==0)j.control_box.children('div').eq(0).css('visibility','hidden');else j.control_box.children('div').eq(0).css('visibility','visible');if(j.active==j.images.length-1)j.control_box.children('div').eq(2).css('visibility','hidden');else j.control_box.children('div').eq(2).css('visibility','visible');var c=j.images[b];$(c.img).ready(function(){var a=calculateDimensions(c.img);j.container.fadeIn(h.fade_speed,function(){if(c.caption)j.container.children('span').fadeIn('fast').text(c.caption);else j.container.children('span').fadeOut('fast');$(this).animate({top:a.top,left:a.left},'fast');j.image.attr('src',c.img.src).animate({width:a.width,height:a.height},'fast')})})}function closeBox(){j.overlay.fadeOut(h.fade_speed);j.container.fadeOut(h.fade_speed);j.control_box.fadeOut(h.fade_speed,function(){$(this).detach()})}function calculateDimensions(a){var b=a.width;var c=a.height;var d=b/c;var e=$(window).width()-(2*h.padding);var f=$(window).height()-(2*h.padding)-j.control_height;if(b>e){b=e;c=b*(1/d)}if(c>f){c=Math.ceil(f);b=c*d}return{width:b,height:c,top:Math.floor(($(window).height()-c-j.control_height)/2)-1,left:Math.floor(($(window).width()-b)/2)-1+h.padding/2}}function getImageIndex(a){if(a.get(0).tagName!='IMG')a=a.find('img').eq(0);for(var i=0;i<j.images.length;i++)if(j.images[i].jQ.get(0)==a.get(0))return i;return-1}function setUpBox(){j.overlay=$('<div/>',{'id':'___imgbox-overlay','css':{position:'fixed',top:0,left:0,width:'100%',height:'100%',background:h.bg_color,opacity:h.bg_opacity,'z-index':990},'click':closeBox});j.container=$('<div/>',{'id':'___imgbox-container','css':{position:'fixed','text-align':'center',border:'2px solid #eee','border-radius':'2px','-moz-border-radius':'2px','-webkit-border-radius':'2px','-khtml-border-radius':'2px',background:'#eee','z-index':991,padding:0,margin:0},'html':$('<span/>',{css:{display:'inline',position:'absolute',bottom:'2px',right:'0',padding:'10px 15px',background:'#eee',color:'#000000','z-index':'999','border-left':'1px solid #555','border-top':'1px solid #555','border-top-left-radius':'5px','-webkit-border-top-left-radius':'5px','-moz-border-radius-topLeft':'5px','-webkit-border-top-left-radius':'5px',font:h.caption_font}})});j.image=$('<img/>',{css:{padding:0,margin:0}});j.container.append(j.image);$('body').append(j.overlay).append(j.container);j.overlay.fadeOut(0);j.container.fadeOut(0)}function setUpControls(){j.control_box=$('<div/>',{'id':'___imgbox-control_box','css':{position:'fixed',bottom:'20px',width:'400px',left:Math.floor(($(window).width()-400)/2)+'px','background-color':'#110F0E',padding:'10px','border-radius':'8px','-moz-border-radius':'8px','-webkit-border-radius':'8px','-khtml-border-radius':'8px','z-index':991,'opacity':j.control_default_opacity},mouseenter:function(){$(this).fadeTo('medium',j.control_hover_opacity)},mouseleave:function(){$(this).fadeTo('medium',j.control_default_opacity)}});j.control_box.append(createButton('&laquo; Previous',function(){loadImage(j.active-1)})).append(createButton('Close',closeBox)).append(createButton('Next &raquo;',function(){loadImage(j.active+1)}).css('margin-right',0))}function createButton(a,b){return $('<div/>',{'class':'___imgbox-button','css':{display:'block',float:'left',width:'90px',padding:'5px 15px',color:'#ccc','background-color':'#111','font':h.control_font,'text-align':'center',border:'1px solid #ccc','border-radius':'5px','-moz-border-radius':'5px','-webkit-border-radius':'5px','-khtml-border-radius':'5px','cursor':'pointer','margin-right':'15px'},mouseenter:function(){$(this).css({'border-color':'#548AFF','background-color':'#222','color':'#eee'})},mouseleave:function(){$(this).css({'border-color':'#ccc','background-color':'#111','color':'#ccc'})},html:a,'click':b})}}