/*
 * Copyright © 2023 Regular Labs - All Rights Reserved
 * GNU General Public License version 2 or later
 */
(function($,document,window){var
defaults={html:false,photo:false,iframe:false,inline:false,transition:'elastic',speed:300,fadeOut:300,width:false,initialWidth:'600',innerWidth:false,maxWidth:false,height:false,initialHeight:'450',innerHeight:false,maxHeight:false,scalePhotos:true,scrolling:true,opacity:0.9,preloading:true,className:false,overlay:true,overlayClose:true,escKey:true,arrowKey:true,top:false,bottom:false,left:false,right:false,fixed:false,data:undefined,closeButton:true,fastIframe:true,open:false,reposition:true,loop:true,slideshow:false,slideshowAuto:true,slideshowSpeed:2500,slideshowStart:'start slideshow',slideshowStop:'stop slideshow',photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:false,retinaUrl:false,retinaSuffix:'@2x.$1',current:'image {current} of {total}',previous:'previous',next:'next',close:'close',xhrError:'This content failed to load.',imgError:'This image failed to load.',returnFocus:true,trapFocus:true,onOpen:false,onLoad:false,onComplete:false,onCleanup:false,onClosed:false,rel:function(){return this.rel;},href:function(){return $(this).attr('href');},title:function(){return this.title;},createImg:function(){var img=new Image();var attrs=$(this).data(prefix+'-img-attrs');if(typeof attrs==='object'){$.each(attrs,function(key,val){img[key]=val;});}
return img;},createIframe:function(){var iframe=document.createElement('iframe');var attrs=$(this).data(prefix+'-iframe-attrs');if(typeof attrs==='object'){$.each(attrs,function(key,val){iframe[key]=val;});}
if('frameBorder'in iframe){iframe.frameBorder=0;}
if('allowTransparency'in iframe){iframe.allowTransparency='true';}
iframe.name=(new Date()).getTime();iframe.allowFullscreen=true;return iframe;}},colorbox='rl_modals',prefix='rl_modals',boxElement=$prefix('element'),event_open=$prefix('open'),event_load=$prefix('load'),event_complete=$prefix('complete'),event_cleanup=$prefix('cleanup'),event_closed=$prefix('closed'),event_purge=$prefix('purge'),$overlay,$box,$wrap,$content,$topBorder,$leftBorder,$rightBorder,$bottomBorder,$related,$window,$loaded,$loadingBay,$loadingOverlay,$title,$current,$slideshow,$next,$prev,$close,$groupControls,$events=$('<a/>'),settings,interfaceHeight,interfaceWidth,loadedHeight,loadedWidth,index,photo,open,active,closing,loadingTimer,publicMethod,div='div',requests=0,previousCSS={},init;function $prefix(string){return prefix+'_'+string;}
function $tag(tag,id,css){var element=document.createElement(tag);if(id){element.id=$prefix(id);}
if(css){element.style.cssText=css;}
return $(element);}
function winheight(){return window.innerHeight?window.innerHeight:$(window).height();}
function focusableEls($e){return $e.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]');}
function firstFocusableEl($e){return focusableEls($e).first();}
function lastFocusableEl($e){return focusableEls($e).last();}
function Settings(element,options){if(options!==Object(options)){options={};}
this.cache={};this.el=element;this.value=function(key){var dataAttr;if(this.cache[key]===undefined){dataAttr=$(this.el).attr('data-'+prefix+'-'+key);if(dataAttr!==undefined){this.cache[key]=dataAttr;}else if(options[key]!==undefined){this.cache[key]=options[key];}else if(defaults[key]!==undefined){this.cache[key]=defaults[key];}}
return this.cache[key];};this.get=function(key){var value=this.value(key);return $.isFunction(value)?value.call(this.el,this):value;};}
function getIndex(increment){var
max=$related.length,newIndex=(index+increment)%max;return(newIndex<0)?max+newIndex:newIndex;}
function setSize(size,dimension){var size_int=parseInt(size,10);if(/%/.test(size)){var window_size=dimension==='x'?$window.width():winheight();return Math.round((window_size/100)*size_int);}
if(/v[wh]$/.test(size)){var unit=size.match(/v[wh]$/)[0];var window_size=unit==='vw'?$window.width():winheight();return Math.round((window_size/100)*size_int);}
return Math.round(size_int);}
function isImage(settings,url){return settings.get('photo')||settings.get('photoRegex').test(url);}
function retinaUrl(settings,url){return settings.get('retinaUrl')&&window.devicePixelRatio>1?url.replace(settings.get('photoRegex'),settings.get('retinaSuffix')):url;}
function setClass(str){if(setClass.str!==str){$box.add($overlay).removeClass(setClass.str).addClass(str);setClass.str=str;}}
function getRelated(rel){index=0;if(rel&&rel!==false&&rel!=='nofollow'){$related=$('.'+boxElement).filter(function(){var options=$.data(this,colorbox);var settings=new Settings(this,options);return(settings.get('rel')===rel);});index=$related.index(settings.el);if(index===-1){$related=$related.add(settings.el);index=$related.length-1;}}else{$related=$(settings.el);}}
function trigger(event){$(document).trigger(event);$events.triggerHandler(event);}
var slideshow=(function(){var active,className=$prefix('slideshow'),click='click.'+prefix+' rl_modals_touchstart.'+prefix,timeOut;function clear(){clearTimeout(timeOut);}
function set(){if(settings.get('loop')||$related[index+1]){clear();timeOut=setTimeout(publicMethod.next,settings.get('slideshowSpeed'));}}
function start(){$slideshow.html(settings.get('slideshowStop')).attr('aria-label',settings.get('slideshowStop')).unbind(click).one(click,stop);$events.bind(event_complete,set).bind(event_load,clear);$box.removeClass(className+'_off').addClass(className+'_on');}
function stop(){clear();$events.unbind(event_complete,set).unbind(event_load,clear);$slideshow.html(settings.get('slideshowStart')).attr('aria-label',settings.get('slideshowStart')).unbind(click).one(click,function(){publicMethod.next();start();});$box.removeClass(className+'on').addClass(className+'off');}
function reset(){active=false;$slideshow.attr('aria-hidden','true').hide();clear();$events.unbind(event_complete,set).unbind(event_load,clear);$box.removeClass(className+'off '+className+'on');}
return function(){if(active){if(!settings.get('slideshow')){$events.unbind(event_cleanup,reset);reset();}}else{if(settings.get('slideshow')&&$related[1]){active=true;$events.one(event_cleanup,reset);if(settings.get('slideshowAuto')){start();}else{stop();}
$slideshow.attr('aria-hidden','false').show();}}};}());function launch(element){var options;if(!closing){options=$(element).data(colorbox);settings=new Settings(element,options);getRelated(settings.get('rel'));if(!open){open=active=true;setClass(settings.get('className'));$box.css({visibility:'hidden',display:'block',opacity:''}).attr('aria-hidden','true');$loaded=$tag(div,'loaded_content','width:0; height:0; overflow:hidden; visibility:hidden');$content.css({width:'',height:''}).append($loaded);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);var initialWidth=setSize(settings.get('initialWidth'),'x');var initialHeight=setSize(settings.get('initialHeight'),'y');var maxWidth=settings.get('maxWidth');var maxHeight=settings.get('maxHeight');settings.w=Math.max((maxWidth!==false?Math.min(initialWidth,setSize(maxWidth,'x')):initialWidth)-loadedWidth-interfaceWidth,0);settings.h=Math.max((maxHeight!==false?Math.min(initialHeight,setSize(maxHeight,'y')):initialHeight)-loadedHeight-interfaceHeight,0);$loaded.css({width:'',height:settings.h});publicMethod.position();trigger(event_open);settings.get('onOpen');$groupControls.add($title).hide();$box.attr('aria-hidden','false').attr('role','dialog').attr('aria-labelledby',$prefix('title')).attr('aria-describedby',$prefix('loaded_content'));if(settings.get('returnFocus')){$events.one(event_closed,function(){$(settings.el).focus();});}}
var opacity=parseFloat(settings.get('opacity'));$overlay.css({opacity:opacity===opacity?opacity:'',cursor:settings.get('overlayClose')?'pointer':'',visibility:'visible'});if(settings.get('overlay')){$overlay.show();}
if(settings.get('closeButton')){$close.html(settings.get('close')).attr('aria-hidden','false').appendTo($content);}else{$close.appendTo('<div/>');}
load();}}
function appendHTML(){if(!$box){init=false;$window=$(window);$box=$tag(div).attr({'id':colorbox,'role':'dialog','tabindex':-1,'aria-hidden':'true'}).hide();$overlay=$tag(div,'overlay').hide();$loadingOverlay=$([$tag(div,'loading_overlay')[0],$tag(div,'loading_graphic')[0]]);$wrap=$tag(div,'wrapper');$content=$tag(div,'content').append($title=$tag(div,'title').attr('aria-live','polite'),$current=$tag(div,'current'),$prev=$('<button type="button">previous</button>').attr({id:$prefix('previous'),'aria-hidden':'true'}),$next=$('<button type="button">next</button>').attr({id:$prefix('next'),'aria-hidden':'true'}),$slideshow=$('<button type="button">start slideshow</button>').attr({id:$prefix('slideshow'),'aria-hidden':'true'}),$loadingOverlay);$close=$('<button type="button">close</button>').attr({id:$prefix('close'),'aria-hidden':'true'});$wrap.append($tag(div).append($tag(div,'top_left'),$topBorder=$tag(div,'top_center'),$tag(div,'top_right')),$tag(div,false,'clear:left').append($leftBorder=$tag(div,'middle_left'),$content,$rightBorder=$tag(div,'middle_right')),$tag(div,false,'clear:left').append($tag(div,'bottom_left'),$bottomBorder=$tag(div,'bottom_center'),$tag(div,'bottom_right'))).find('div div').css({'float':'left'});$loadingBay=$tag(div,false,'position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;');$groupControls=$next.add($prev).add($current).add($slideshow);}
if(document.body&&!$box.parent().length){$(document.body).append($overlay,$box.append($wrap,$loadingBay));}}
function addBindings(){function clickHandler(e){if(!(e.which>1||e.shiftKey||e.altKey||e.metaKey||e.ctrlKey)){e.preventDefault();launch(this);}}
if($box){if(!init){init=true;$next.on('click rl_modals_touchstart',function(){publicMethod.next();});$prev.on('click rl_modals_touchstart',function(){publicMethod.prev();});$close.on('click rl_modals_touchstart',function(){publicMethod.close();});$overlay.on('click rl_modals_touchstart',function(){if(settings.get('overlayClose')){publicMethod.close();}});$(document).bind('keydown.'+prefix,function(e){var key=e.keyCode;if(open&&settings.get('escKey')&&key===27){e.preventDefault();publicMethod.close();}
if(open&&settings.get('arrowKey')&&$related[1]&&!e.altKey){if(key===37){e.preventDefault();$prev.click();}else if(key===39){e.preventDefault();$next.click();}}
if(open&&settings.get('trapFocus')&&key===9){if(focusableEls($box).length===1){e.preventDefault();}else{if(e.shiftKey){if(document.activeElement===firstFocusableEl($box)[0]){e.preventDefault();lastFocusableEl($box).focus();}}else{if(document.activeElement===lastFocusableEl($box)[0]){e.preventDefault();firstFocusableEl($box).focus();}}}}});if($.isFunction($.fn.on)){$(document).on('click.'+prefix+' rl_modals_touchstart.'+prefix,'.'+boxElement,clickHandler);}else{$('.'+boxElement).live('click.'+prefix+' rl_modals_touchstart.'+prefix,clickHandler);}}
return true;}
return false;}
if($[colorbox]){return;}
$(appendHTML);publicMethod=$.fn[colorbox]=$[colorbox]=function(options,callback){var settings;var $obj=this;options=options||{};if($.isFunction($obj)){$obj=$('<a/>');options.open=true;}
if(!$obj[0]){return $obj;}
appendHTML();if(addBindings()){if(callback){options.onComplete=callback;}
$obj.each(function(){var old=$.data(this,colorbox)||{};$.data(this,colorbox,$.extend(old,options));}).addClass(boxElement);settings=new Settings($obj[0],options);if(settings.get('open')){launch($obj[0]);}}
return $obj;};publicMethod.position=function(speed,loadedCallback){var
css,top=0,left=0,offset=$box.offset(),scrollTop,scrollLeft,paddingWidth,paddingHeight;$window.unbind('resize.'+prefix);$box.css({top:-9e4,left:-9e4});scrollTop=$window.scrollTop();scrollLeft=$window.scrollLeft();paddingWidth=parseInt($loaded.css('padding-left'))+parseInt($loaded.css('padding-right'));paddingHeight=parseInt($loaded.css('padding-top'))+parseInt($loaded.css('padding-bottom'));if(settings.get('fixed')){offset.top-=scrollTop;offset.left-=scrollLeft;$box.css({position:'fixed'});}else{top=scrollTop;left=scrollLeft;$box.css({position:'absolute'});}
if(settings.get('right')!==false){left+=Math.max($window.width()-settings.w-paddingWidth-interfaceWidth-setSize(settings.get('right'),'x'),0);}else if(settings.get('left')!==false){left+=setSize(settings.get('left'),'x');}else{left+=Math.round(Math.max($window.width()-settings.w-paddingWidth-interfaceWidth,0)/2);}
if(settings.get('bottom')!==false){top+=Math.max(winheight()-settings.h-loadedHeight-interfaceHeight-setSize(settings.get('bottom'),'y'),0);}else if(settings.get('top')!==false){top+=setSize(settings.get('top'),'y');}else{top+=Math.round(Math.max(winheight()-settings.h-loadedHeight-interfaceHeight,0)/2);}
$box.css({top:offset.top,left:offset.left,visibility:'visible'}).attr('aria-hidden','false');$wrap[0].style.width=$wrap[0].style.height='9999px';function modalDimensions(){$topBorder[0].style.width=$bottomBorder[0].style.width=$content[0].style.width=(parseInt($box[0].style.width,10)-interfaceWidth)+'px';$content[0].style.height=$leftBorder[0].style.height=$rightBorder[0].style.height=(parseInt($box[0].style.height,10)-interfaceHeight)+'px';}
css={width:settings.w+paddingWidth+interfaceWidth,height:settings.h+loadedHeight+interfaceHeight,top:top,left:left};if(speed){var tempSpeed=0;$.each(css,function(i){if(css[i]!==previousCSS[i]){tempSpeed=speed;}});speed=tempSpeed;}
previousCSS=css;if(!speed){$box.css(css);}
$box.dequeue().animate(css,{duration:speed||0,complete:function(){modalDimensions();active=false;$wrap[0].style.width=(settings.w+paddingWidth+interfaceWidth)+'px';$wrap[0].style.height=(settings.h+loadedHeight+interfaceHeight)+'px';if(settings.get('reposition')){$window.bind('resize.'+prefix,publicMethod.position);}
if($.isFunction(loadedCallback)){loadedCallback();}},step:modalDimensions});};publicMethod.resize=function(options){var scrolltop;if(!open){return;}
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){scrolltop=$loaded.scrollTop();$loaded.css({height:'auto'});settings.h=$loaded.height();}
$loaded.css({height:settings.h});if(scrolltop){$loaded.scrollTop(scrolltop);}
var transition=options.transition!==undefined?options.transition:settings.get('transition');var speed=options.speed!==undefined?options.speed:settings.get('speed');publicMethod.position(transition==='none'?0:speed);};publicMethod.prep=function(object){if(!open){return;}
var callback,speed=settings.get('transition')==='none'?0:settings.get('speed');$loaded.remove();$loaded=$tag(div,'loaded_content').append(object);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.get('scrolling')?'auto':'hidden'}).css({height:getHeight()}).prependTo($content);$loadingBay.hide();$(photo).css({'float':'none'});setClass(settings.get('className'));callback=function(){var total=$related.length,iframe,complete;if(!open){return;}
complete=function(){clearTimeout(loadingTimer);$loadingOverlay.hide();trigger(event_complete);settings.get('onComplete');};$title.html(settings.get('title')).show();$loaded.show();if(total>1){if(typeof settings.get('current')==='string'){$current.html(settings.get('current').replace('{current}',index+1).replace('{total}',total)).attr('aria-live','polite').show();}
$showNext=(settings.get('loop')||index<total-1);$next[$showNext?'show':'hide']().html(settings.get('next')).attr('aria-hidden',$showNext?'false':'true');$showPrev=(settings.get('loop')||index);$prev[$showPrev?'show':'hide']().html(settings.get('previous')).attr('aria-hidden',$showPrev?'false':'true');if(!($prev.is(':focus')||$next.is(':focus')||$close.is(':focus'))){if($showPrev){$prev.focus();}else if($showNext){$next.focus();}else{$close.focus();}}
slideshow();if(settings.get('preloading')){$.each([getIndex(-1),getIndex(1)],function(){var img,i=$related[this],settings=new Settings(i,$.data(i,colorbox)),src=settings.get('href');if(src&&isImage(settings,src)){src=retinaUrl(settings,src);img=document.createElement('img');img.src=src;}});}}else{$groupControls.hide();}
if(settings.get('iframe')){iframe=settings.get('createIframe');if(!settings.get('scrolling')){iframe.scrolling='no';}
$(iframe).attr({src:settings.get('href'),'class':$prefix('iframe')}).one('load',complete).appendTo($loaded);$events.one(event_purge,function(){iframe.src='//about:blank';});if(settings.get('fastIframe')){$(iframe).trigger('load');}}else{complete();}};if(settings.get('transition')==='fade'){$box.fadeTo(speed,0,function(){publicMethod.position(0,callback);});}else{publicMethod.position(speed,callback);}};function load(){var href,setResize,prep=publicMethod.prep,$inline,request=++requests;active=true;photo=false;trigger(event_purge);trigger(event_load);settings.get('onLoad');settings.h=settings.get('height')?setSize(settings.get('height'),'y')-loadedHeight-interfaceHeight:settings.get('innerHeight')&&setSize(settings.get('innerHeight'),'y');settings.w=settings.get('width')?setSize(settings.get('width'),'x')-loadedWidth-interfaceWidth:settings.get('innerWidth')&&setSize(settings.get('innerWidth'),'x');settings.mw=settings.w;settings.mh=settings.h;if(settings.get('maxWidth')){settings.mw=setSize(settings.get('maxWidth'),'x')-loadedWidth-interfaceWidth;settings.mw=settings.w&&settings.w<settings.mw?settings.w:settings.mw;}
if(settings.get('maxHeight')){settings.mh=setSize(settings.get('maxHeight'),'y')-loadedHeight-interfaceHeight;settings.mh=settings.h&&settings.h<settings.mh?settings.h:settings.mh;}
href=settings.get('href');loadingTimer=setTimeout(function(){$loadingOverlay.show();},100);if(settings.get('inline')){var $target=$(href).eq(0);$inline=$('<div>').hide().insertBefore($target);$events.one(event_purge,function(){$inline.replaceWith($target);});prep($target);}else if(settings.get('iframe')){prep(' ');}else if(settings.get('html')){prep(settings.get('html'));}else if(isImage(settings,href)){href=retinaUrl(settings,href);photo=settings.get('createImg');$(photo).addClass($prefix('photo')).bind('error.'+prefix,function(){prep($tag(div,'error').html(settings.get('imgError')));}).one('load',function(){if(request!==requests){return;}
setTimeout(function(){var percent;if(settings.get('retinaImage')&&window.devicePixelRatio>1){photo.height=photo.height/window.devicePixelRatio;photo.width=photo.width/window.devicePixelRatio;}
if(settings.get('scalePhotos')){setResize=function(){photo.height-=photo.height*percent;photo.width-=photo.width*percent;};if(settings.mw&&photo.width>settings.mw){percent=(photo.width-settings.mw)/photo.width;setResize();}
if(settings.mh&&photo.height>settings.mh){percent=(photo.height-settings.mh)/photo.height;setResize();}}
if(settings.h){photo.style.marginTop=Math.max(settings.mh-photo.height,0)/2+'px';}
if($related[1]&&(settings.get('loop')||$related[index+1])){photo.style.cursor='pointer';$(photo).bind('click.'+prefix+' rl_modals_touchstart.'+prefix,function(){publicMethod.next();});}
photo.style.width=photo.width+'px';photo.style.height=photo.height+'px';prep(photo);},1);});photo.src=href;}else if(href){$loadingBay.load(href,settings.get('data'),function(data,status){if(request===requests){prep(status==='error'?$tag(div,'error').html(settings.get('xhrError')):$(this).contents());}});}}
publicMethod.next=function(){if(!active&&$related[1]&&(settings.get('loop')||$related[index+1])){index=getIndex(1);launch($related[index]);}};publicMethod.prev=function(){if(!active&&$related[1]&&(settings.get('loop')||index)){index=getIndex(-1);launch($related[index]);}};publicMethod.close=function(){if(open&&!closing){closing=true;open=false;trigger(event_cleanup);settings.get('onCleanup');$window.unbind('.'+prefix);$overlay.fadeTo(settings.get('fadeOut')||0,0);$box.stop().fadeTo(settings.get('fadeOut')||0,0,function(){$box.hide().attr('aria-hidden','true').attr('role','').attr('aria-labelledby','').attr('aria-describedby','');$overlay.hide();trigger(event_purge);$loaded.remove();setTimeout(function(){closing=false;trigger(event_closed);settings.get('onClosed');},1);});}};publicMethod.remove=function(){if(!$box){return;}
$box.stop();$[colorbox].close();$box.stop(false,true).remove();$overlay.remove();closing=false;$box=null;$('.'+boxElement).removeData(colorbox).removeClass(boxElement);$(document).unbind('click.'+prefix+' rl_modals_touchstart.'+prefix).unbind('keydown.'+prefix);};publicMethod.element=function(){return $(settings.el);};publicMethod.settings=defaults;$.event.special.rl_modals_touchstart={setup:function(data,namespaces,eventHandle){this.addEventListener('touchstart',eventHandle,{passive:false});}};}(jQuery,document,window));
