(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:350,width:FALSE,height:FALSE,initialWidth:"400",initialHeight:"400",maxWidth:FALSE,maxHeight:FALSE,scalePhotos:TRUE,scrollbars:TRUE,inline:FALSE,html:FALSE,iframe:FALSE,photo:FALSE,href:FALSE,title:FALSE,rel:FALSE,opacity:0.5,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();$().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();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()}).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));
