
(function($,window)
{var
defaults={transition:"elastic",speed:300,width:false,initialWidth:"600",innerWidth:false,maxWidth:false,height:false,initialHeight:"450",innerHeight:false,maxHeight:false,scalePhotos:true,scrolling:true,inline:false,html:false,iframe:false,photo:false,href:false,title:false,rel:false,opacity:0.9,preloading:true,current:"image {current} of {total}",previous:"previous",next:"next",close:"close",open:false,loop:true,slideshow:false,slideshowAuto:true,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",onOpen:false,onLoad:false,onComplete:false,onCleanup:false,onClosed:false,overlayClose:true,escKey:true,arrowKey:true,explicitMode:false},colorbox='colorbox',prefix='cbox',event_open=prefix+'_open',event_load=prefix+'_load',event_complete=prefix+'_complete',event_cleanup=prefix+'_cleanup',event_closed=prefix+'_closed',isIE=$.browser.msie&&!$.support.opacity,isIE6=isIE&&$.browser.version<7,event_ie6=prefix+'_IE6',$overlay,$box,$wrap,$content,$topBorder,$leftBorder,$rightBorder,$bottomBorder,$related,$window,$loaded,$loadingBay,$loadingOverlay,$title,$current,$slideshow,$next,$prev,$close,interfaceHeight,interfaceWidth,loadedHeight,loadedWidth,element,bookmark,index,settings,open,active,publicMethod,boxElement=prefix+'Element';function $div(id,css)
{id=id?' id="'+prefix+id+'"':'';css=css?' style="'+css+'"':'';return $('<div'+id+css+'/>');}
function setSize(size,dimension)
{dimension=dimension==='x'?$window.width():$window.height();return(typeof size==='string')?Math.round((size.match(/%/)?(dimension/100)*parseInt(size,10):parseInt(size,10))):size;}
function isImage(url)
{url=$.isFunction(url)?url.call(element):url;return settings.photo||url.match(/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i);}
function process()
{for(var i in settings)
{if($.isFunction(settings[i])&&i.substring(0,2)!=='on')
{settings[i]=settings[i].call(element);}}
settings.rel=settings.rel||element.rel||'nofollow';settings.href=settings.href||$(element).attr('href');settings.title=settings.title||element.title;}
function launch(elem)
{element=elem;settings=$.extend({},$(element).data(colorbox));process();if(settings.rel!=='nofollow')
{$related=$('.'+boxElement).filter(function()
{var relRelated=$(this).data(colorbox).rel||this.rel;return(relRelated===settings.rel);});index=$related.index(element);if(index===-1)
{$related=$related.add(element);index=$related.length-1;}}else
{$related=$(element);index=0;}
if(!open)
{open=active=true;bookmark=element;try
{bookmark.blur();}catch(e){}
$.event.trigger(event_open);if(settings.onOpen)
{settings.onOpen.call(element);}
$overlay.css({"opacity":+settings.opacity,"cursor":settings.overlayClose?"pointer":"auto"}).show();settings.w=setSize(settings.initialWidth,'x');settings.h=setSize(settings.initialHeight,'y');publicMethod.position(0);if(isIE6)
{$window.bind('resize.'+event_ie6+' scroll.'+event_ie6,function()
{$overlay.css({width:$window.width(),height:$window.height(),top:$window.scrollTop(),left:$window.scrollLeft()});}).trigger('scroll.'+event_ie6);}}
$current.add($prev).add($next).add($slideshow).add($title).hide();$close.html(settings.close).show();publicMethod.slideshow();publicMethod.load();}
publicMethod=$.fn[colorbox]=$[colorbox]=function(options,callback)
{var $this=this;if(!$this[0]&&$this.selector)
{return $this;}
options=options||{};if(callback)
{options.onComplete=callback;}
if(!$this[0]||$this.selector===undefined)
{$this=$('<a/>');options.open=true;}
$this.each(function()
{$(this).data(colorbox,$.extend({},$(this).data(colorbox)||defaults,options)).addClass(boxElement);});if(options.open)
{launch($this[0]);}
return $this;};publicMethod.init=function()
{$window=$(window);$box=$div().attr({id:colorbox,'class':isIE?prefix+'IE':''});$overlay=$div("Overlay",isIE6?'position:absolute':'').hide();$wrap=$div("Wrapper");$content=$div("Content").append($loaded=$div("LoadedContent",'width:0; height:0'),$loadingOverlay=$div("LoadingOverlay").add($div("LoadingGraphic")),$title=$div("Title"),$current=$div("Current"),$next=$div("Next"),$prev=$div("Previous"),$slideshow=$div("Slideshow"),$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'});$loadingBay=$div(false,'position:absolute; width:9999px; visibility:hidden; display:none');$('body').prepend($overlay,$box.append($wrap,$loadingBay));$content.children().hover(function()
{$(this).addClass('hover');},function()
{$(this).removeClass('hover');}).addClass('hover');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);$box.css({"padding-bottom":interfaceHeight,"padding-right":interfaceWidth}).hide();$next.click(publicMethod.next);$prev.click(publicMethod.prev);$close.click(publicMethod.close);$content.children().removeClass('hover');$('.'+boxElement).live('click',function(e)
{if((e.button!==0&&typeof e.button!=='undefined')||e.ctrlKey||e.shiftKey||e.altKey)
{return true;}else
{launch(this);return false;}});$overlay.click(function()
{if(settings.overlayClose)
{publicMethod.close();}});$(document).bind("keydown",function(e)
{if(open&&settings.escKey&&e.keyCode===27)
{e.preventDefault();publicMethod.close();}
if(open&&settings.arrowKey&&!active&&$related[1])
{if(e.keyCode===37&&(index||settings.loop))
{e.preventDefault();$prev.click();}else if(e.keyCode===39&&(index<$related.length-1||settings.loop))
{e.preventDefault();$next.click();}}});};publicMethod.remove=function()
{$box.add($overlay).remove();$('.'+boxElement).die('click').removeData(colorbox).removeClass(boxElement);};publicMethod.position=function(speed,loadedCallback)
{var
animate_speed,posTop=Math.max($window.height()-settings.h-loadedHeight-interfaceHeight,0)/2+$window.scrollTop(),posLeft=Math.max($window.width()-settings.w-loadedWidth-interfaceWidth,0)/2+$window.scrollLeft();animate_speed=($box.width()===settings.w+loadedWidth&&$box.height()===settings.h+loadedHeight)?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;$loadingOverlay[0].style.height=$loadingOverlay[1].style.height=$content[0].style.height=$leftBorder[0].style.height=$rightBorder[0].style.height=that.style.height;}
var w=settings.w+loadedWidth,h=settings.h+loadedHeight;if(settings.explicitMode)
{w=loadedWidth+interfaceWidth;h=loadedHeight+interfaceHeight;posTop=Math.max($window.height()-h,0)/2+$window.scrollTop();posLeft=Math.max($window.width()-w,0)/2+$window.scrollLeft();}
$box.dequeue().animate({width:w,height:h,top:posTop,left:posLeft},{duration:animate_speed,complete:function()
{modalDimensions(this);active=false;$wrap[0].style.width=(settings.w+loadedWidth+interfaceWidth)+"px";$wrap[0].style.height=(settings.h+loadedHeight+interfaceHeight)+"px";if(loadedCallback)
{loadedCallback();}},step:function()
{modalDimensions(this);}});};publicMethod.resize=function(options)
{if(open)
{options=options||{};if(options.width)
{settings.w=setSize(options.width,'x')-loadedWidth-interfaceWidth;}
if(options.innerWidth)
{settings.w=setSize(options.innerWidth,'x');}
$loaded.css({width:settings.w});if(options.height)
{settings.h=setSize(options.height,'y')-loadedHeight-interfaceHeight;}
if(options.innerHeight)
{settings.h=setSize(options.innerHeight,'y');}
if(!options.innerHeight&&!options.height)
{var $child=$loaded.wrapInner("<div style='overflow:auto'></div>").children();settings.h=$child.height();$child.replaceWith($child.children());}
$loaded.css({height:settings.h});publicMethod.position(settings.transition==="none"?0:settings.speed);}};publicMethod.prep=function(object)
{if(!open)
{return;}
var photo,speed=settings.transition==="none"?0:settings.speed;$window.unbind('resize.'+prefix);$loaded.remove();$loaded=$div('LoadedContent').html(object);if(settings.explicitMode)
{var explicitWidth=$loaded.find('.ExplicitWidth');if(explicitWidth.length==1)loadedWidth=parseInt(''+explicitWidth.val());var explicitHeight=$loaded.find('.ExplicitHeight');if(explicitHeight.length==1)loadedHeight=parseInt(''+explicitHeight.val());}
function getWidth()
{settings.w=settings.w||$loaded.width();settings.w=settings.mw&&settings.mw<settings.w?settings.mw:settings.w;return settings.w;}
function getHeight()
{settings.h=settings.h||$loaded.height();settings.h=settings.mh&&settings.mh<settings.h?settings.mh:settings.h;return settings.h;}
$loaded.hide().appendTo($loadingBay.show()).css({width:getWidth(),overflow:settings.scrolling?'auto':'hidden'}).css({height:getHeight()}).prependTo($content);$loadingBay.hide();$('#'+prefix+'Photo').css({cssFloat:'none'});if(isIE6)
{$('select').not($box.find('select')).filter(function()
{return this.style.visibility!=='hidden';}).css({'visibility':'hidden'}).one(event_cleanup,function()
{this.style.visibility='inherit';});}
function setPosition(s)
{var prev,prevSrc,next,nextSrc,total=$related.length,loop=settings.loop;publicMethod.position(s,function()
{function defilter()
{if(isIE)
{$box[0].style.removeAttribute("filter");}}
if(!open)
{return;}
if(isIE)
{if(photo)
{$loaded.fadeIn(100);}}
if(settings.iframe)
{$("<iframe frameborder=0"+(settings.scrolling?"":" scrolling='no'")+(isIE?" allowtransparency='true'":'')+"/>").attr({src:settings.href,name:new Date().getTime()}).appendTo($loaded);}
$loaded.show();$title.show().html(settings.title);if(total>1)
{$current.html(settings.current.replace(/\{current\}/,index+1).replace(/\{total\}/,total)).show();$next[(loop||index<total-1)?"show":"hide"]().html(settings.next);$prev[(loop||index)?"show":"hide"]().html(settings.previous);prev=index?$related[index-1]:$related[total-1];next=index<total-1?$related[index+1]:$related[0];if(settings.slideshow)
{$slideshow.show();if(index===total-1&&!loop&&$box.is('.'+prefix+'Slideshow_on'))
{$slideshow.click();}}
if(settings.preloading)
{nextSrc=$(next).data(colorbox).href||next.href;prevSrc=$(prev).data(colorbox).href||prev.href;if(isImage(nextSrc))
{$('<img/>')[0].src=nextSrc;}
if(isImage(prevSrc))
{$('<img/>')[0].src=prevSrc;}}}
$loadingOverlay.hide();if(settings.transition==='fade')
{$box.fadeTo(speed,1,function()
{defilter();});}else
{defilter();}
$window.bind('resize.'+prefix,function()
{publicMethod.position(0);});$.event.trigger(event_complete);if(settings.onComplete)
{settings.onComplete.call(element);}});}
if(settings.transition==='fade')
{$box.fadeTo(speed,0,function()
{setPosition(0);});}else
{setPosition(speed);}};publicMethod.load=function()
{var href,img,setResize,prep=publicMethod.prep;active=true;element=$related[index];settings=$.extend({},$(element).data(colorbox));process();$.event.trigger(event_load);if(settings.onLoad)
{settings.onLoad.call(element);}
settings.h=settings.height?setSize(settings.height,'y')-loadedHeight-interfaceHeight:settings.innerHeight&&setSize(settings.innerHeight,'y');settings.w=settings.width?setSize(settings.width,'x')-loadedWidth-interfaceWidth:settings.innerWidth&&setSize(settings.innerWidth,'x');settings.mw=settings.w;settings.mh=settings.h;if(settings.maxWidth)
{settings.mw=setSize(settings.maxWidth,'x')-loadedWidth-interfaceWidth;settings.mw=settings.w&&settings.w<settings.mw?settings.w:settings.mw;}
if(settings.maxHeight)
{settings.mh=setSize(settings.maxHeight,'y')-loadedHeight-interfaceHeight;settings.mh=settings.h&&settings.h<settings.mh?settings.h:settings.mh;}
href=settings.href;$loadingOverlay.show();if(settings.inline)
{$div('InlineTemp').hide().insertBefore($(href)[0]).bind(event_load+' '+event_cleanup,function()
{$(this).replaceWith($loaded.children());});prep($(href));}else if(settings.iframe)
{prep(" ");}else if(settings.html)
{prep(settings.html);}else if(isImage(href))
{img=new Image();img.onload=function()
{var percent;img.onload=null;img.id=prefix+'Photo';$(img).css({margin:'auto',border:'none',display:'block',cssFloat:'left'});if(settings.scalePhotos)
{setResize=function()
{img.height-=img.height*percent;img.width-=img.width*percent;};if(settings.mw&&img.width>settings.mw)
{percent=(img.width-settings.mw)/img.width;setResize();}
if(settings.mh&&img.height>settings.mh)
{percent=(img.height-settings.mh)/img.height;setResize();}}
if(settings.h)
{img.style.marginTop=Math.max(settings.h-img.height,0)/2+'px';}
setTimeout(function()
{prep(img);},1);if($related[1]&&(index<$related.length-1||settings.loop))
{$(img).css({cursor:'pointer'}).click(publicMethod.next);}
if(isIE)
{img.style.msInterpolationMode='bicubic';}};img.src=href;}else
{$div().appendTo($loadingBay).load(href,function(data,status,xhr)
{prep(status==='error'?'Request unsuccessful: '+xhr.statusText:this);});}};publicMethod.next=function()
{if(!active)
{index=index<$related.length-1?index+1:0;publicMethod.load();}};publicMethod.prev=function()
{if(!active)
{index=index?index-1:$related.length-1;publicMethod.load();}};publicMethod.slideshow=function()
{var stop,timeOut,className=prefix+'Slideshow_';$slideshow.bind(event_closed,function()
{$slideshow.unbind();clearTimeout(timeOut);$box.removeClass(className+"off "+className+"on");});function start()
{$slideshow.text(settings.slideshowStop).bind(event_complete,function()
{timeOut=setTimeout(publicMethod.next,settings.slideshowSpeed);}).bind(event_load,function()
{clearTimeout(timeOut);}).one("click",function()
{stop();});$box.removeClass(className+"off").addClass(className+"on");}
stop=function()
{clearTimeout(timeOut);$slideshow.text(settings.slideshowStart).unbind(event_complete+' '+event_load).one("click",function()
{start();timeOut=setTimeout(publicMethod.next,settings.slideshowSpeed);});$box.removeClass(className+"on").addClass(className+"off");};if(settings.slideshow&&$related[1])
{if(settings.slideshowAuto)
{start();}else
{stop();}}};publicMethod.close=function()
{if(open)
{open=false;$.event.trigger(event_cleanup);if(settings.onCleanup)
{settings.onCleanup.call(element);}
$window.unbind('.'+prefix+' .'+event_ie6);$overlay.fadeTo('fast',0);$box.stop().fadeTo('fast',0,function()
{$box.find('iframe').attr('src','about:blank');$loaded.remove();$box.add($overlay).css({'opacity':1,cursor:'auto'}).hide();try
{bookmark.focus();}catch(e)
{}
setTimeout(function()
{$.event.trigger(event_closed);if(settings.onClosed)
{settings.onClosed.call(element);}},1);});}};publicMethod.element=function()
{return $(element);};publicMethod.settings=defaults;$(publicMethod.init);}(jQuery,this));
