(function($){var colorbox='colorbox',hover='hover',TRUE=true,FALSE=false,cboxPublic,isIE=!$.support.opacity,isIE6=isIE && !window.XMLHttpRequest,cbox_click='click.colorbox',cbox_open='cbox_open',cbox_load='cbox_load',cbox_complete='cbox_complete',cbox_cleanup='cbox_cleanup',cbox_closed='cbox_closed',cbox_resize='resize.cbox_resize',cbox_ie6='resize.cboxie6 scroll.cboxie6',$overlay,$cbox,$wrap,$content,$topBorder,$leftBorder,$rightBorder,$bottomBorder,$related,$window,$loaded,$loadingOverlay,$loadingGraphic,$title,$current,$slideshow,$next,$prev,$close,interfaceHeight,interfaceWidth,loadedHeight,loadedWidth,maxWidth,maxHeight,element,index,settings,open,callback,defaults={transition:"elastic",speed:500,width:FALSE,height:FALSE,initialWidth:"50",initialHeight:"50",maxWidth:FALSE,maxHeight:FALSE,scalePhotos:TRUE,scrollbars:FALSE,inline:FALSE,html:FALSE,iframe:FALSE,photo:FALSE,href:FALSE,title:FALSE,rel:FALSE,opacity:0.75,preloading:TRUE,current:"image{current}of{total}",previous:"previous",next:"next",close:"close",open:FALSE,overlayClose:TRUE,slideshow:FALSE,slideshowAuto:TRUE,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow"};function cbox_key(e){if(e.keyCode===37){e.preventDefault();$prev.click();}else if(e.keyCode===39){e.preventDefault();$next.click();}}function setSize(size,dimension){dimension=dimension==='x'?document.documentElement.clientWidth:document.documentElement.clientHeight;return(typeof size==='string')?(size.match(/%/)?(dimension/100) * parseInt(size,10):parseInt(size,10)):size;}function isImage(url){return settings.photo||url.match(/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i);}function process(){for(var i in settings){if(typeof(settings[i])==='function'){settings[i]=settings[i].call(element);}}}cboxPublic=$.fn.colorbox=function(options,custom_callback){if(this.length){this.each(function(){var data=$(this).data(colorbox)?$.extend({},$(this).data(colorbox),options):$.extend({},defaults,options);$(this).data(colorbox,data).addClass("cboxelement");});}else{$(this).data(colorbox,$.extend({},defaults,options));}$(this).unbind(cbox_click).bind(cbox_click,function(event){element=this;settings=$(element).data(colorbox);process();//process settings functions
$().bind("keydown.cbox_close",function(e){if(e.keyCode===27){e.preventDefault();cboxPublic.close();}});if(settings.overlayClose){$overlay.css({"cursor":"pointer"}).one('click',cboxPublic.close);}element.blur();callback=custom_callback||FALSE;var rel=settings.rel||element.rel;if(rel && rel !=='nofollow'){$related=$('.cboxelement').filter(function(){var relRelated=$(this).data(colorbox).rel||this.rel;return(relRelated===rel);});index=$related.index(element);if(index<0){$related=$related.add(element);index=$related.length - 1;}}else{$related=$(element);index=0;}if(!open){open=TRUE;$.event.trigger(cbox_open);$close.html(settings.close);$overlay.css({"opacity":settings.opacity}).show();cboxPublic.position(setSize(settings.initialWidth,'x'),setSize(settings.initialHeight,'y'),0);if(isIE6){$window.bind(cbox_ie6,function(){$overlay.css({width:$window.width(),height:$window.height(),top:$window.scrollTop(),left:$window.scrollLeft()});}).trigger(cbox_ie6);}}cboxPublic.slideshow();cboxPublic.load();event.preventDefault();});if(options && options.open){$(this).triggerHandler(cbox_click);}return this;};cboxPublic.init=function(){function $div(id){return $('<div id="cbox'+id+'"/>');}$window=$(window);$cbox=$('<div id="colorbox"/>');$overlay=$div("Overlay").hide();$wrap=$div("Wrapper");$content=$div("Content").append($loaded=$div("LoadedContent").css({width:0,height:0}),$loadingOverlay=$div("LoadingOverlay"),$loadingGraphic=$div("LoadingGraphic"),$title=$div("Title"),$current=$div("Current"),$slideshow=$div("Slideshow"),$next=$div("Next"),$prev=$div("Previous"),$close=$div("Close")
);$wrap.append($('<div/>').append($div("TopLeft"),$topBorder=$div("TopCenter"),$div("TopRight")
),$('<div/>').append($leftBorder=$div("MiddleLeft"),$content,$rightBorder=$div("MiddleRight")
),$('<div/>').append($div("BottomLeft"),$bottomBorder=$div("BottomCenter"),$div("BottomRight")
)
).children().children().css({'float':'left'});$('body').prepend($overlay,$cbox.append($wrap));if(isIE){$cbox.addClass('cboxIE');if(isIE6){$overlay.css('position','absolute');}}$content.children()
.addClass(hover)
.mouseover(function(){$(this).addClass(hover);})
.mouseout(function(){$(this).removeClass(hover);})
.hide();interfaceHeight=$topBorder.height()+$bottomBorder.height()+$content.outerHeight(TRUE) - $content.height();//Subtraction needed for IE6
interfaceWidth=$leftBorder.width()+$rightBorder.width()+$content.outerWidth(TRUE) - $content.width();loadedHeight=$loaded.outerHeight(TRUE);loadedWidth=$loaded.outerWidth(TRUE);$cbox.css({"padding-bottom":interfaceHeight,"padding-right":interfaceWidth}).hide();$next.click(cboxPublic.next);$prev.click(cboxPublic.prev);$close.click(cboxPublic.close);$content.children().removeClass(hover);};cboxPublic.position=function(mWidth,mHeight,speed,loadedCallback){var winHeight=document.documentElement.clientHeight,posTop=winHeight/2 - mHeight/2,posLeft=document.documentElement.clientWidth/2 - mWidth/2,animate_speed;if(mHeight>winHeight){posTop -=(mHeight - winHeight);}if(posTop<0){posTop=0;}if(posLeft<0){posLeft=0;}posTop+=$window.scrollTop();posLeft+=$window.scrollLeft();mWidth=mWidth - interfaceWidth;mHeight=mHeight - interfaceHeight;animate_speed=($cbox.width()===mWidth && $cbox.height()===mHeight)?0:speed;$wrap[0].style.width=$wrap[0].style.height="9999px";function modalDimensions(that){$topBorder[0].style.width=$bottomBorder[0].style.width=$content[0].style.width=that.style.width;$loadingGraphic[0].style.height=$loadingOverlay[0].style.height=$content[0].style.height=$leftBorder[0].style.height=$rightBorder[0].style.height=that.style.height;}$cbox.dequeue().animate({height:mHeight,width:mWidth,top:posTop,left:posLeft},{duration:animate_speed,complete:function(){modalDimensions(this);$wrap[0].style.width=(mWidth+interfaceWidth)+"px";$wrap[0].style.height=(mHeight+interfaceHeight)+"px";if(loadedCallback){loadedCallback();}},step:function(){modalDimensions(this);}});};cboxPublic.resize=function(object){if(!open){return;}var width,height,topMargin,prev,prevSrc,next,nextSrc,photo,timeout,speed=settings.transition==="none"?0:settings.speed;$window.unbind(cbox_resize);if(!object){timeout=setTimeout(function(){height=$loaded.children().outerHeight(TRUE);$loaded[0].style.height=height+'px';cboxPublic.position($loaded.width()+loadedWidth+interfaceWidth,height+loadedHeight+interfaceHeight,speed);},1);return;}$loaded.remove();$loaded=$(object);function getWidth(){width=settings.width?maxWidth:maxWidth && maxWidth<$loaded.width()?maxWidth:$loaded.width();return width;}function getHeight(){height=settings.height?maxHeight:maxHeight && maxHeight<$loaded.height()?maxHeight:$loaded.height();return height;}if(!settings.scrollbars){$loaded.css({overflow:'hidden'});}$loaded.hide().appendTo('body')
.attr({id:'cboxLoadedContent'})
.css({width:getWidth()})
.css({height:getHeight()})//sets the height independently from the width in case the new width influences the value of height.
.prependTo($content);if(isIE6){$('select:not(#colorbox select)').filter(function(){return $(this).css('visibility') !=='hidden';}).css({'visibility':'hidden'}).one(cbox_cleanup,function(){$(this).css({'visibility':'inherit'});});}photo=$('#cboxphoto')[0];if(photo && settings.height){topMargin=(height - parseInt(photo.style.height,10))/2;photo.style.marginTop=(topMargin>0?topMargin:0)+'px';}function setPosition(s){var mWidth=width+loadedWidth+interfaceWidth,mHeight=height+loadedHeight+interfaceHeight;$().unbind('keydown',cbox_key);cboxPublic.position(mWidth,mHeight,s,function(){if(!open){return;}if(isIE){if(photo ){$loaded.fadeIn(100);}$cbox[0].style.removeAttribute("filter");}$content.children().show();$('#cboxiframeTemp').after("<iframe id='cboxIframe' name='iframe_"+new Date().getTime()+"' frameborder=0 src='"+(settings.href||element.href)+"'/>").remove();$loadingOverlay.hide();$loadingGraphic.hide();$slideshow.hide();if($related.length>1){$current.html(settings.current.replace(/\{current\}/,index+1).replace(/\{total\}/,$related.length));$next.html(settings.next);$prev.html(settings.previous);$().bind('keydown',cbox_key);if(settings.slideshow){$slideshow.show();}}else{$current.hide();$next.hide();$prev.hide();}$title.html(settings.title||element.title);$.event.trigger(cbox_complete);if(callback){callback.call(element);}if(settings.transition==='fade'){$cbox.fadeTo(speed,1,function(){if(isIE){$cbox[0].style.removeAttribute("filter");}});}$window.bind(cbox_resize,function(){cboxPublic.position(mWidth,mHeight,0);});});}if((settings.transition==='fade' && $cbox.fadeTo(speed,0,function(){setPosition(0);}))||setPosition(speed)){}if(settings.preloading && $related.length>1){prev=index>0?$related[index-1]:$related[$related.length-1];next=index<$related.length-1?$related[index+1]:$related[0];nextSrc=$(next).data(colorbox).href||next.href;prevSrc=$(prev).data(colorbox).href||prev.href;if(isImage(nextSrc)){$('<img/>').attr('src',nextSrc);}if(isImage(prevSrc)){$('<img/>').attr('src',prevSrc);}}};cboxPublic.load=function(){var height,width,href,loadingElement,resize=cboxPublic.resize;element=$related[index];settings=$(element).data(colorbox);process();$.event.trigger(cbox_load);height=settings.height?setSize(settings.height,'y') - loadedHeight - interfaceHeight:FALSE;width=settings.width?setSize(settings.width,'x') - loadedWidth - interfaceWidth:FALSE;href=settings.href||element.href;$loadingOverlay.show();$loadingGraphic.show();$close.show();if(settings.maxHeight){maxHeight=settings.maxHeight?setSize(settings.maxHeight,'y') - loadedHeight - interfaceHeight:FALSE;height=height && height<maxHeight?height:maxHeight;}if(settings.maxWidth){maxWidth=settings.maxWidth?setSize(settings.maxWidth,'x') - loadedWidth - interfaceWidth:FALSE;width=width && width<maxWidth?width:maxWidth;}maxHeight=height;maxWidth=width;if(settings.inline){$('<div id="cboxInlineTemp"/>').hide().insertBefore($(href)[0]).bind(cbox_load+' '+cbox_cleanup,function(){$loaded.children().insertBefore(this);$(this).remove();});resize($(href).wrapAll('<div/>').parent());}else if(settings.iframe){resize($("<div><div id='cboxIframeTemp'/></div>"));}else if(settings.html){resize($('<div/>').html(settings.html));}else if(isImage(href)){loadingElement=new Image();loadingElement.onload=function(){loadingElement.onload=null;if((maxHeight||maxWidth) && settings.scalePhotos){var width=this.width,height=this.height,percent=0,that=this,setResize=function(){height+=height * percent;width+=width * percent;that.height=height;that.width=width;};if(maxWidth && width>maxWidth ){percent=(maxWidth - width)/width;setResize();}if(maxHeight && height>maxHeight ){percent=(maxHeight - height)/height;setResize();}}resize($("<div/>").css({width:this.width,height:this.height}).append($(this).css({width:this.width,height:this.height,display:"block",margin:"auto",border:0}).attr('id','cboxPhoto')));if($related.length>1){$(this).css({cursor:'pointer'}).click(cboxPublic.next);}if(isIE){this.style.msInterpolationMode='bicubic';}};loadingElement.src=href;}else{$('<div/>').load(href,function(data,textStatus){if(textStatus==="success"){resize($(this));}else{resize($("<p>Request unsuccessful.</p>"));}});}};cboxPublic.next=function(){index=index<$related.length-1?index+1:0;cboxPublic.load();};cboxPublic.prev=function(){index=index>0?index-1:$related.length-1;cboxPublic.load();};cboxPublic.slideshow=function(){var stop,timeOut,className='cboxSlideshow_';$slideshow.bind(cbox_cleanup,function(){clearTimeout(timeOut);$slideshow.unbind(cbox_complete+' '+cbox_load+" click");});function start(){$slideshow
.text(settings.slideshowStop)
.bind(cbox_complete,function(){timeOut=setTimeout(cboxPublic.next,settings.slideshowSpeed);})
.bind(cbox_load,function(){clearTimeout(timeOut);}).one("click",function(){stop();$(this).removeClass(hover);});$cbox.removeClass(className+"off").addClass(className+"on");}stop=function(){clearTimeout(timeOut);$slideshow
.text(settings.slideshowStart)
.unbind(cbox_complete+' '+cbox_load)
.one("click",function(){start();timeOut=setTimeout(cboxPublic.next,settings.slideshowSpeed);$(this).removeClass(hover);});$cbox.removeClass(className+"on").addClass(className+"off");};if(settings.slideshow && $related.length>1){if(settings.slideshowAuto){start();}else{stop();}}};cboxPublic.close=function(){$.event.trigger(cbox_cleanup);open=FALSE;$().unbind('keydown',cbox_key).unbind("keydown.cbox_close");$window.unbind(cbox_resize+" "+cbox_ie6);$overlay.css({cursor:'auto'}).fadeOut('fast');$cbox
.stop(TRUE,FALSE)
.fadeOut('fast',function(){$loaded.remove();$cbox.css({'opacity':1});$content.children().hide();$.event.trigger(cbox_closed);});};cboxPublic.element=function(){return element;};cboxPublic.settings=defaults;$(cboxPublic.init);}(jQuery));