var Cl=window.Cl||{};!function(a){"use strict";Cl.Lightbox=new Class({options:{prefix:"cl",group:!0,cycle:!0,modal:!0,modalClickable:!0,modalClosable:!0,forceLoad:!1,easing:"swing",duration:300,speed:300,fixed:!0,responsive:!0,ajax:!1,controls:!0,cls:"",opacity:.8,styles:{},dimensions:{initialWidth:50,initialHeight:50,offset:20,width:null,height:null},keys:!0,keyCodes:{close:[27,99],next:[39,110],previous:[37,112]},lang:{close:"Close lightbox",errorMessage:"
The requested element could not be loaded.
Please contact us if this error occurs again.
",next:"Next",previous:"Previous",status:"Slide {current} of {total}."}},initialize:function(b,c){var d=this;this.body=a(document.body),this.window=a(window),this.options=a.extend(!0,{},this.options,c||b),this.isLoaded=!1,this.isOpen=!1,this.callbacks={},this.triggers=a(b),this.triggers.on("click",function(a){a.preventDefault(),d.open.call(d,this)})},_setup:function(){var b=this._tpl(this.options.prefix);this.instance=a(b),this.instance.find("."+this.options.prefix+"-lightbox-controls").html(this._tplControls(this.options.prefix)),this.frame=this.instance.filter("."+this.options.prefix+"-lightbox"),this.dimmer=this.instance.filter("."+this.options.prefix+"-lightbox-dim"),this.content=this.instance.find("."+this.options.prefix+"-lightbox-content"),this.loader=this.instance.find("."+this.options.prefix+"-lightbox-loader"),this.loadingBay=this.instance.find("."+this.options.prefix+"-lightbox-bay"),this.description=this.instance.find("."+this.options.prefix+"-lightbox-description"),this.controls=this.instance.find("."+this.options.prefix+"-lightbox-controls"),this.nav=this.controls.find("."+this.options.prefix+"-lightbox-navigation"),this.closeBtn=this.controls.find("."+this.options.prefix+"-lightbox-close"),this.text=this.controls.find("."+this.options.prefix+"-lightbox-text"),this.status=this.controls.find("."+this.options.prefix+"-lightbox-status"),this.timer=function(){},this.content.css(this.options.styles),this.body.append(this.instance),this._fire("setup")},open:function(a){var b=this;this.isLoaded===!1&&this._setup(),setTimeout(function(){return b.isLoaded=!0,b._show(b.isOpen?!1:!0),"object"==typeof a&&b._preload(a),"string"==typeof a&&b._preload(''),void 0===a&&b.triggers.length&&b._preload(b.triggers.first()),b._attachEvents(),b.isOpen=!0,b._fire("open")},50)},close:function(){return this._hide(),this._unload(),this._detachEvents(),this.isOpen=!1,this._fire("close")},resize:function(a,b){return this._resize("animate",a,b),this._fire("resize")},destroy:function(){return this.triggers.off("click"),this.instance.remove(),this._fire("destroy")},next:function(){return this.collection?!this.options.cycle&&this.index>=this.bound-1?!1:(this.index=this.index+1,this.index>=this.bound&&(this.index=this.options.cycle?0:this.bound-1),this.open(this.collection[this.index]),this._fire("next")):!1},previous:function(){return this.collection?!this.options.cycle&&this.index<=0?!1:(this.index=this.index-1,this.index<0&&(this.index=this.options.cycle?this.bound-1:0),this.open(this.collection[this.index]),this._fire("previous")):!1},getElement:function(){return this.element||null},getCollection:function(){return this.collection||null},_preload:function(b){function c(){g.element.load(function(){var a=this;g.width=a.width,g.height=a.height,g._load(g.element)}).error(function(){e()})}function d(){a.ajax({url:g.url,method:"get",cache:!1,success:function(b){b=''+b,b+="
",g.element=a(b),g._load(g.element)},error:function(){e()}})}function e(){var a=g._setError(g.options.lang.errorMessage);g.loadingBay.append(a),g._load(a)}function f(b){return a("",{src:b,allowtransparency:!0,scrollbars:"no",frameborder:0})}this.element=this.getElement(),this.width=null,this.height=null,this.source=a(b),this.url=this.source.attr("href"),this.type=this._extract(this.url);var g=this,h={flash:'',quicktime:""},i=this.url.match(/(width=)([0-9]+)/i),j=this.url.match(/(height=)([0-9]+)/i);switch(this.width=i?i[2]:this.source.data("width")||this.options.dimensions.width,this.height=j?j[2]:this.source.data("height")||this.options.dimensions.height,this.options.group&&this.triggers.length>1&&(this.collection=this.triggers,this.index=this.collection.index(this.source),this.bound=this.collection.length),this.options.preload&&(this.type="preload"),this.options.ajax&&(this.type="ajax"),this.type){case"image":this.element=a(new Image).attr({src:this.url+"?"+(new Date).getTime(),alt:this.source.attr("title")}),c();break;case"flash":this.element=a(h.flash.replace("{url}",this.source.attr("href"))),this.loadingBay.append(this.element),this._load(g.element);break;case"ajax":d(this.url);break;case"inline":this.element=a(this.url).clone(!0,!0),this.loadingBay.append(this.element),this.element.length?this._load(this.element):e();break;default:this.element=f(this.url),this._load(g.element)}this._fire("load")},_load:function(a){var b=this;this.width=this.width||a.outerWidth(!0)||480,this.height=this.height||a.outerHeight(!0)||320,this.width>=9999&&(this.width=480),this.height>=9999&&(this.height=320),"IFRAME"===a.attr("tagName")&&this.options.forceLoad||this.resize(this.width,this.height),clearTimeout(this.timer),this.timer=setTimeout(function(){b._complete.call(b,a)},this.options.duration)},_complete:function(a){var b=this;this.content.html(a.css("visibility","visible").hide().fadeIn(this.options.speed)),this.source.attr("title")&&this.description.html(this.source.attr("title")).slideDown(this.options.speed,function(){b.resize()});var c=this.content.find("iframe");c.length&&this.options.forceLoad?(c.css("visibility","hidden"),c.load(function(){b.loader.hide(),c.css("visibility","visible")})):(b.loader.hide(),a.show()),this.options.controls&&this._showControls(),this.content.find("a").attr("tabindex",0),this._fire("complete")},_unload:function(){this.element.remove(),this._fire("unload")},_show:function(b){this.options.modal&&this._showDim(),this.content.html(""),this.loader.show(),this.description.hide(),this._accessibility(!0),this.frame.show(),b&&this._resize("css",this.options.dimensions.initialWidth,this.options.dimensions.initialHeight),this._hideControls(),a("body").addClass("cl-lightbox-noscroll")},_hide:function(){this.options.modal&&this._hideDim(),this._accessibility(!1),this.frame.hide(),a("body").removeClass("cl-lightbox-noscroll")},_extract:function(a){return this.extractors={images:/(\.(gif|png|jpe?g|bmp|ico)((#|\?|\&).*)?)$/i,flash:/(\.(swf)((#|\?|\&).*)?)$/i,ajax:/(\.(htm?l|txt)((#|\?|\&).*)?)$/i,inline:/(#[\w'-:\\]+?)$/i},this.extractors.images.test(a)?"image":this.extractors.flash.test(a)?"flash":this.extractors.ajax.test(a)?"ajax":this.extractors.inline.test(a)?"inline":"iframe"},_attachEvents:function(){var b=this;return this.isOpen?!1:(this.window.on("resize."+this.options.prefix+"-lightbox",function(){b._resize.call(b,"css")}),this.options.fixed&&this.window.on("scroll."+this.options.prefix+"-lightbox",function(){b._resize.call(b,"css")}),this.options.modalClickable?this.dimmer.on("click",function(a){return a.preventDefault(),b.options.modalClosable?void b.close.call(b):!1}):this.dimmer.css("cursor","default"),this.options.controls&&(this.controls.find("."+this.options.prefix+"-lightbox-close a").on("click",function(c){return c.preventDefault(),b.options.modalClosable?(a(this).show(),void b.close.call(b)):!1}),this.controls.find("."+this.options.prefix+"-lightbox-previous").on("click",function(a){a.preventDefault(),b.previous.call(b)}),this.controls.find("."+this.options.prefix+"-lightbox-next").on("click",function(a){a.preventDefault(),b.next.call(b)}),this.content.on("mouseenter",function(){return b.collection?void b.nav.find("a").stop().css("opacity",1).fadeIn(b.options.speed):!1}),this.frame.on("mouseleave",function(){return b.collection?void b.nav.find("a").stop().fadeOut(b.options.speed):!1})),void(this.options.keys?a(document).on("keydown."+this.options.prefix+"-lightbox",function(c){a.inArray(parseInt(c.charCode)||parseInt(c.keyCode),b.options.keyCodes.close)>=0&&b.options.modalClosable&&b.close(),a.inArray(parseInt(c.charCode)||parseInt(c.keyCode),b.options.keyCodes.next)>=0&&b.next(),a.inArray(parseInt(c.charCode)||parseInt(c.keyCode),b.options.keyCodes.previous)>=0&&b.previous()}):a("."+this.options.prefix+"-lightbox-navigation").hide()))},_detachEvents:function(){this.window.off("resize."+this.options.prefix+"-lightbox"),this.window.off("scroll."+this.options.prefix+"-lightbox"),this.dimmer.off("click"),this.controls.find("."+this.options.prefix+"-lightbox-close a").off("click"),this.controls.find("."+this.options.prefix+"-lightbox-previous").off("click"),this.controls.find("."+this.options.prefix+"-lightbox-next").off("click"),this.content.off("mouseenter"),this.frame.off("mouseleave"),a(document).off("keydown."+this.options.prefix+"-lightbox")},_resize:function(b,c,d){b=b||"css",c=parseInt(c)||parseInt(this.width),d=parseInt(d)||parseInt(this.height);var e=this.window.width(),f=this.window.height(),g=c,h=this.options.dimensions.offset,i=c+2*h>=e&&this.options.responsive,j=f<=this.instance.outerHeight(!0)+2*h;i&&(c=g-(c-e+2*h),"image"===this.type&&(d=Math.floor(d*c/g))),this.content.stop()[b]({width:c,height:d},this.options.duration,this.options.easing);var k=this.instance.find("."+this.options.prefix+"-lightbox-description"),l=this.instance.find("."+this.options.prefix+"-lightbox-controls"),m=k.is(":visible")?k.outerHeight(!0):0;m=m+l.is(":visible")?l.outerHeight(!0):0;var n=(f-d)/2+this.window.scrollTop();n-=(this.content.outerHeight(!0)-this.content.height())/2,j?(n=h+a(window).scrollTop(),this.isFixed=!0):this.isFixed=!1,h>=n&&(n=h);var o=(e-c)/2;o-=(this.content.outerWidth(!0)-this.content.width())/2,this.isFixed?this.frame.stop()[b]({left:o},this.options.duration,this.options.easing):this.frame.stop()[b]({left:o,right:o,top:n-m},this.options.duration,this.options.easing),this.options.modal&&this._resizeDim()},_setError:function(b){return b=b||""+this.options.lang.errorMessage+"
",a(this._tplError(this.options.prefix)).html(b)},_accessibility:function(b){b?(a("a, input, textarea, select").attr("tabindex",-1),this.instance.find("a").attr("tabindex",1)):a("a, input, textarea, select").removeAttr("tabindex")},_fire:function(a){return void 0===this.callbacks[a]?!1:void this.callbacks[a](this)},_showControls:function(){var a=this;if(this.options.modalClosable&&this.closeBtn.fadeIn(),!this.collection)return!1;var b=this.options.lang.status;b=b.replace("{current}",this.index+1),b=b.replace("{total}",this.bound),this.status.text(b),this.text.slideDown(this.options.speed,function(){a.resize()})},_hideControls:function(){this.closeBtn.hide(),this.text.data("height",this.text.outerHeight(!0)),this.text.hide()},_showDim:function(){return this.dimmer.is(":visible")?!1:(this.dimmer.css("opacity",0).show().animate({opacity:this.options.opacity}),void(this.options.modalClosable?this.dimmer.css("cursor","pointer"):this.dimmer.css("cursor","default")))},_hideDim:function(){this.dimmer.fadeOut()},_resizeDim:function(){this.dimmer.css({position:"fixed",width:"100%",height:"100%"})},_tpl:function(a){var b=this.options.cls?" "+this.options.cls:"";return''},_tplControls:function(a){return' '+this.options.lang.close+'
'+this.options.lang.previous+' '+this.options.lang.next+'
'+this.options.lang.status+' '+this.options.lang.previous+' '+this.options.lang.next+"
"},_tplError:function(a){return''}})}(jQuery);