!function(a,b){"object"==typeof module&&module.exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return m[e]||(k.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",k.cssRules.length),m[e]=1),e}function d(a,b){var c,d,e=a.style;if(b=b.charAt(0).toUpperCase()+b.slice(1),void 0!==e[b])return b;for(d=0;d',c)}k.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.scale*d.width,left:d.scale*d.radius,top:-d.scale*d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.scale*(d.length+d.width),k=2*d.scale*j,l=-(d.width+d.length)*d.scale*2+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k');t.$elProxy.text(t.options.icon)}else{if(t.options.iconCloning)t.$elProxy=t.options.icon.clone(true);else t.$elProxy=t.options.icon}t.$elProxy.insertAfter(t.$el)}else{t.$elProxy=t.$el}if(t.options.trigger=="hover"){t.$elProxy.on("mouseenter."+t.namespace,function(){if(!f()||t.options.touchDevices){t.mouseIsOverProxy=true;t._show()}}).on("mouseleave."+t.namespace,function(){if(!f()||t.options.touchDevices){t.mouseIsOverProxy=false}});if(u&&t.options.touchDevices){t.$elProxy.on("touchstart."+t.namespace,function(){t._showNow()})}}else if(t.options.trigger=="click"){t.$elProxy.on("click."+t.namespace,function(){if(!f()||t.options.touchDevices){t._show()}})}}},_show:function(){var e=this;if(e.Status!="shown"&&e.Status!="appearing"){if(e.options.delay){e.timerShow=setTimeout(function(){if(e.options.trigger=="click"||e.options.trigger=="hover"&&e.mouseIsOverProxy){e._showNow()}},e.options.delay)}else e._showNow()}},_showNow:function(n){var r=this;r.options.functionBefore.call(r.$el,r.$el,function(){if(r.enabled&&r.Content!==null){if(n)r.callbacks.show.push(n);r.callbacks.hide=[];clearTimeout(r.timerShow);r.timerShow=null;clearTimeout(r.timerHide);r.timerHide=null;if(r.options.onlyOne){e(".tooltipstered").not(r.$el).each(function(t,n){var r=e(n),i=r.data("tooltipster-ns");e.each(i,function(e,t){var n=r.data(t),i=n.status(),s=n.option("autoClose");if(i!=="hidden"&&i!=="disappearing"&&s){n.hide()}})})}var i=function(){r.Status="shown";e.each(r.callbacks.show,function(e,t){t.call(r.$el)});r.callbacks.show=[]};if(r.Status!=="hidden"){var s=0;if(r.Status==="disappearing"){r.Status="appearing";if(l()){r.$tooltip.clearQueue().removeClass("tooltipster-dying").addClass("tooltipster-"+r.options.animation+"-show");if(r.options.speed>0)r.$tooltip.delay(r.options.speed);r.$tooltip.queue(i)}else{r.$tooltip.stop().fadeIn(i)}}else if(r.Status==="shown"){i()}}else{r.Status="appearing";var s=r.options.speed;r.bodyOverflowX=e("body").css("overflow-x");e("body").css("overflow-x","hidden");var o="tooltipster-"+r.options.animation,a="-webkit-transition-duration: "+r.options.speed+"ms; -webkit-animation-duration: "+r.options.speed+"ms; -moz-transition-duration: "+r.options.speed+"ms; -moz-animation-duration: "+r.options.speed+"ms; -o-transition-duration: "+r.options.speed+"ms; -o-animation-duration: "+r.options.speed+"ms; -ms-transition-duration: "+r.options.speed+"ms; -ms-animation-duration: "+r.options.speed+"ms; transition-duration: "+r.options.speed+"ms; animation-duration: "+r.options.speed+"ms;",f=r.options.minWidth?"min-width:"+Math.round(r.options.minWidth)+"px;":"",c=r.options.maxWidth?"max-width:"+Math.round(r.options.maxWidth)+"px;":"",h=r.options.interactive?"pointer-events: auto;":"";r.$tooltip=e('
');if(l())r.$tooltip.addClass(o);r._content_insert();r.$tooltip.appendTo("body");r.reposition();r.options.functionReady.call(r.$el,r.$el,r.$tooltip);if(l()){r.$tooltip.addClass(o+"-show");if(r.options.speed>0)r.$tooltip.delay(r.options.speed);r.$tooltip.queue(i)}else{r.$tooltip.css("display","none").fadeIn(r.options.speed,i)}r._interval_set();e(t).on("scroll."+r.namespace+" resize."+r.namespace,function(){r.reposition()});if(r.options.autoClose){e("body").off("."+r.namespace);if(r.options.trigger=="hover"){if(u){setTimeout(function(){e("body").on("touchstart."+r.namespace,function(){r.hide()})},0)}if(r.options.interactive){if(u){r.$tooltip.on("touchstart."+r.namespace,function(e){e.stopPropagation()})}var p=null;r.$elProxy.add(r.$tooltip).on("mouseleave."+r.namespace+"-autoClose",function(){clearTimeout(p);p=setTimeout(function(){r.hide()},r.options.interactiveTolerance)}).on("mouseenter."+r.namespace+"-autoClose",function(){clearTimeout(p)})}else{r.$elProxy.on("mouseleave."+r.namespace+"-autoClose",function(){r.hide()})}if(r.options.hideOnClick){r.$elProxy.on("click."+r.namespace+"-autoClose",function(){r.hide()})}}else if(r.options.trigger=="click"){setTimeout(function(){e("body").on("click."+r.namespace+" touchstart."+r.namespace,function(){r.hide()})},0);if(r.options.interactive){r.$tooltip.on("click."+r.namespace+" touchstart."+r.namespace,function(e){e.stopPropagation()})}}}}if(r.options.timer>0){r.timerHide=setTimeout(function(){r.timerHide=null;r.hide()},r.options.timer+s)}}})},_interval_set:function(){var t=this;t.checkInterval=setInterval(function(){if(e("body").find(t.$el).length===0||e("body").find(t.$elProxy).length===0||t.Status=="hidden"||e("body").find(t.$tooltip).length===0){if(t.Status=="shown"||t.Status=="appearing")t.hide();t._interval_cancel()}else{if(t.options.positionTracker){var n=t._repositionInfo(t.$elProxy),r=false;if(o(n.dimension,t.elProxyPosition.dimension)){if(t.$elProxy.css("position")==="fixed"){if(o(n.position,t.elProxyPosition.position))r=true}else{if(o(n.offset,t.elProxyPosition.offset))r=true}}if(!r){t.reposition();t.options.positionTrackerCallback.call(t,t.$el)}}}},200)},_interval_cancel:function(){clearInterval(this.checkInterval);this.checkInterval=null},_content_set:function(e){if(typeof e==="object"&&e!==null&&this.options.contentCloning){e=e.clone(true)}this.Content=e},_content_insert:function(){var e=this,t=this.$tooltip.find(".tooltipster-content");if(typeof e.Content==="string"&&!e.options.contentAsHTML){t.text(e.Content)}else{t.empty().append(e.Content)}},_update:function(e){var t=this;t._content_set(e);if(t.Content!==null){if(t.Status!=="hidden"){t._content_insert();t.reposition();if(t.options.updateAnimation){if(l()){t.$tooltip.css({width:"","-webkit-transition":"all "+t.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms","-moz-transition":"all "+t.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms","-o-transition":"all "+t.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms","-ms-transition":"all "+t.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms",transition:"all "+t.options.speed+"ms, width 0ms, height 0ms, left 0ms, top 0ms"}).addClass("tooltipster-content-changing");setTimeout(function(){if(t.Status!="hidden"){t.$tooltip.removeClass("tooltipster-content-changing");setTimeout(function(){if(t.Status!=="hidden"){t.$tooltip.css({"-webkit-transition":t.options.speed+"ms","-moz-transition":t.options.speed+"ms","-o-transition":t.options.speed+"ms","-ms-transition":t.options.speed+"ms",transition:t.options.speed+"ms"})}},t.options.speed)}},t.options.speed)}else{t.$tooltip.fadeTo(t.options.speed,.5,function(){if(t.Status!="hidden"){t.$tooltip.fadeTo(t.options.speed,1)}})}}}}else{t.hide()}},_repositionInfo:function(e){return{dimension:{height:e.outerHeight(false),width:e.outerWidth(false)},offset:e.offset(),position:{left:parseInt(e.css("left")),top:parseInt(e.css("top"))}}},hide:function(n){var r=this;if(n)r.callbacks.hide.push(n);r.callbacks.show=[];clearTimeout(r.timerShow);r.timerShow=null;clearTimeout(r.timerHide);r.timerHide=null;var i=function(){e.each(r.callbacks.hide,function(e,t){t.call(r.$el)});r.callbacks.hide=[]};if(r.Status=="shown"||r.Status=="appearing"){r.Status="disappearing";var s=function(){r.Status="hidden";if(typeof r.Content=="object"&&r.Content!==null){r.Content.detach()}r.$tooltip.remove();r.$tooltip=null;e(t).off("."+r.namespace);e("body").off("."+r.namespace).css("overflow-x",r.bodyOverflowX);e("body").off("."+r.namespace);r.$elProxy.off("."+r.namespace+"-autoClose");r.options.functionAfter.call(r.$el,r.$el);i()};if(l()){r.$tooltip.clearQueue().removeClass("tooltipster-"+r.options.animation+"-show").addClass("tooltipster-dying");if(r.options.speed>0)r.$tooltip.delay(r.options.speed);r.$tooltip.queue(s)}else{r.$tooltip.stop().fadeOut(r.options.speed,s)}}else if(r.Status=="hidden"){i()}return r},show:function(e){this._showNow(e);return this},update:function(e){return this.content(e)},content:function(e){if(typeof e==="undefined"){return this.Content}else{this._update(e);return this}},reposition:function(){var n=this;if(e("body").find(n.$tooltip).length!==0){n.$tooltip.css("width","");n.elProxyPosition=n._repositionInfo(n.$elProxy);var r=null,i=e(t).width(),s=n.elProxyPosition,o=n.$tooltip.outerWidth(false),u=n.$tooltip.innerWidth()+1,a=n.$tooltip.outerHeight(false);if(n.$elProxy.is("area")){var f=n.$elProxy.attr("shape"),l=n.$elProxy.parent().attr("name"),c=e('img[usemap="#'+l+'"]'),h=c.offset().left,p=c.offset().top,d=n.$elProxy.attr("coords")!==undefined?n.$elProxy.attr("coords").split(","):undefined;if(f=="circle"){var v=parseInt(d[0]),m=parseInt(d[1]),g=parseInt(d[2]);s.dimension.height=g*2;s.dimension.width=g*2;s.offset.top=p+m-g;s.offset.left=h+v-g}else if(f=="rect"){var v=parseInt(d[0]),m=parseInt(d[1]),y=parseInt(d[2]),b=parseInt(d[3]);s.dimension.height=b-m;s.dimension.width=y-v;s.offset.top=p+m;s.offset.left=h+v}else if(f=="poly"){var w=[],E=[],S=0,x=0,T=0,N=0,C="even";for(var k=0;kT){T=L;if(k===0){S=T}}if(LN){N=L;if(k==1){x=N}}if(Li){r=A-(i+n-o);A=i+n-o}}function B(n,r){if(s.offset.top-e(t).scrollTop()-a-_-12<0&&r.indexOf("top")>-1){P=n}if(s.offset.top+s.dimension.height+a+12+_>e(t).scrollTop()+e(t).height()&&r.indexOf("bottom")>-1){P=n;M=s.offset.top-a-_-12}}if(P=="top"){var j=s.offset.left+o-(s.offset.left+s.dimension.width);A=s.offset.left+D-j/2;M=s.offset.top-a-_-12;H();B("bottom","top")}if(P=="top-left"){A=s.offset.left+D;M=s.offset.top-a-_-12;H();B("bottom-left","top-left")}if(P=="top-right"){A=s.offset.left+s.dimension.width+D-o;M=s.offset.top-a-_-12;H();B("bottom-right","top-right")}if(P=="bottom"){var j=s.offset.left+o-(s.offset.left+s.dimension.width);A=s.offset.left-j/2+D;M=s.offset.top+s.dimension.height+_+12;H();B("top","bottom")}if(P=="bottom-left"){A=s.offset.left+D;M=s.offset.top+s.dimension.height+_+12;H();B("top-left","bottom-left")}if(P=="bottom-right"){A=s.offset.left+s.dimension.width+D-o;M=s.offset.top+s.dimension.height+_+12;H();B("top-right","bottom-right")}if(P=="left"){A=s.offset.left-D-o-12;O=s.offset.left+D+s.dimension.width+12;var F=s.offset.top+a-(s.offset.top+s.dimension.height);M=s.offset.top-F/2-_;if(A<0&&O+o>i){var I=parseFloat(n.$tooltip.css("border-width"))*2,q=o+A-I;n.$tooltip.css("width",q+"px");a=n.$tooltip.outerHeight(false);A=s.offset.left-D-q-12-I;F=s.offset.top+a-(s.offset.top+s.dimension.height);M=s.offset.top-F/2-_}else if(A<0){A=s.offset.left+D+s.dimension.width+12;r="left"}}if(P=="right"){A=s.offset.left+D+s.dimension.width+12;O=s.offset.left-D-o-12;var F=s.offset.top+a-(s.offset.top+s.dimension.height);M=s.offset.top-F/2-_;if(A+o>i&&O<0){var I=parseFloat(n.$tooltip.css("border-width"))*2,q=i-A-I;n.$tooltip.css("width",q+"px");a=n.$tooltip.outerHeight(false);F=s.offset.top+a-(s.offset.top+s.dimension.height);M=s.offset.top-F/2-_}else if(A+o>i){A=s.offset.left-D-o-12;r="right"}}if(n.options.arrow){var R="tooltipster-arrow-"+P;if(n.options.arrowColor.length<1){var U=n.$tooltip.css("background-color")}else{var U=n.options.arrowColor}if(!r){r=""}else if(r=="left"){R="tooltipster-arrow-right";r=""}else if(r=="right"){R="tooltipster-arrow-left";r=""}else{r="left:"+Math.round(r)+"px;"}if(P=="top"||P=="top-left"||P=="top-right"){var z=parseFloat(n.$tooltip.css("border-bottom-width")),W=n.$tooltip.css("border-bottom-color")}else if(P=="bottom"||P=="bottom-left"||P=="bottom-right"){var z=parseFloat(n.$tooltip.css("border-top-width")),W=n.$tooltip.css("border-top-color")}else if(P=="left"){var z=parseFloat(n.$tooltip.css("border-right-width")),W=n.$tooltip.css("border-right-color")}else if(P=="right"){var z=parseFloat(n.$tooltip.css("border-left-width")),W=n.$tooltip.css("border-left-color")}else{var z=parseFloat(n.$tooltip.css("border-bottom-width")),W=n.$tooltip.css("border-bottom-color")}if(z>1){z++}var X="";if(z!==0){var V="",J="border-color: "+W+";";if(R.indexOf("bottom")!==-1){V="margin-top: -"+Math.round(z)+"px;"}else if(R.indexOf("top")!==-1){V="margin-bottom: -"+Math.round(z)+"px;"}else if(R.indexOf("left")!==-1){V="margin-right: -"+Math.round(z)+"px;"}else if(R.indexOf("right")!==-1){V="margin-left: -"+Math.round(z)+"px;"}X=''}n.$tooltip.find(".tooltipster-arrow").remove();var K='
'+X+'
';n.$tooltip.append(K)}n.$tooltip.css({top:Math.round(M)+"px",left:Math.round(A)+"px"})}return n},enable:function(){this.enabled=true;return this},disable:function(){this.hide();this.enabled=false;return this},destroy:function(){var t=this;t.hide();if(t.$el[0]!==t.$elProxy[0]){t.$elProxy.remove()}t.$el.removeData(t.namespace).off("."+t.namespace);var n=t.$el.data("tooltipster-ns");if(n.length===1){var r=null;if(t.options.restoration==="previous"){r=t.$el.data("tooltipster-initialTitle")}else if(t.options.restoration==="current"){r=typeof t.Content==="string"?t.Content:e("
").append(t.Content).html()}if(r){t.$el.attr("title",r)}t.$el.removeClass("tooltipstered").removeData("tooltipster-ns").removeData("tooltipster-initialTitle")}else{n=e.grep(n,function(e,n){return e!==t.namespace});t.$el.data("tooltipster-ns",n)}return t},elementIcon:function(){return this.$el[0]!==this.$elProxy[0]?this.$elProxy[0]:undefined},elementTooltip:function(){return this.$tooltip?this.$tooltip[0]:undefined},option:function(e,t){if(typeof t=="undefined")return this.options[e];else{this.options[e]=t;return this}},status:function(){return this.Status}};e.fn[r]=function(){var t=arguments;if(this.length===0){if(typeof t[0]==="string"){var n=true;switch(t[0]){case"setDefaults":e.extend(i,t[1]);break;default:n=false;break}if(n)return true;else return this}else{return this}}else{if(typeof t[0]==="string"){var r="#*$~&";this.each(function(){var n=e(this).data("tooltipster-ns"),i=n?e(this).data(n[0]):null;if(i){if(typeof i[t[0]]==="function"){var s=i[t[0]](t[1],t[2])}else{throw new Error('Unknown method .tooltipster("'+t[0]+'")')}if(s!==i){r=s;return false}}else{throw new Error("You called Tooltipster's \""+t[0]+'" method on an uninitialized element')}});return r!=="#*$~&"?r:this}else{var o=[],u=t[0]&&typeof t[0].multiple!=="undefined",a=u&&t[0].multiple||!u&&i.multiple,f=t[0]&&typeof t[0].debug!=="undefined",l=f&&t[0].debug||!f&&i.debug;this.each(function(){var n=false,r=e(this).data("tooltipster-ns"),i=null;if(!r){n=true}else if(a){n=true}else if(l){console.log('Tooltipster: one or more tooltips are already attached to this element: ignoring. Use the "multiple" option to attach more tooltips.')}if(n){i=new s(this,t[0]);if(!r)r=[];r.push(i.namespace);e(this).data("tooltipster-ns",r);e(this).data(i.namespace,i)}o.push(i)});if(a)return o;else return this}}};var u=!!("ontouchstart"in t);var a=false;e("body").one("mousemove",function(){a=true})})(jQuery,window,document); var booked_load_calendar_date_booking_options, booked_appt_form_options, bookedNewAppointment; ;(function($, window, document, undefined){ var $win=$(window); $.fn.spin.presets.booked={ lines: 10, length: 7, width: 5, radius: 11, corners: 1, rotate: 0, direction: 1, color: '#555', speed: 1, trail: 60, shadow: false, hwaccel: false, className: 'booked-spinner', zIndex: 2e9, top: '50%', left: '50%' } $.fn.spin.presets.booked_top={ lines: 11, length: 10, width: 6, radius: 15, corners: 1, rotate: 0, scale: 0.5, direction: 1, color: '#aaaaaa', speed: 1, trail: 60, shadow: false, hwaccel: false, className: 'booked-spinner booked-spinner-top', zIndex: 2e9, top: '15px', left: '50%' } $.fn.spin.presets.booked_white={ lines: 13, length: 11, width: 5, radius: 18, scale: 1, corners: 1, rotate: 0, direction: 1, color: '#fff', speed: 1, trail: 60, shadow: false, hwaccel: false, className: 'booked-spinner booked-white', zIndex: 2e9, top: '50%', left: '50%' } $win.on('resize', function(){ adjust_calendar_boxes(); resize_booked_modal(); }); $win.on('load', function(){ BookedTabs.Init(); var ajaxRequests=[]; adjust_calendar_boxes(); $('.booked-calendar-wrap').each(function(){ var thisCalendar=$(this); var calendar_month=thisCalendar.find('table.booked-calendar').attr('data-calendar-date'); thisCalendar.attr('data-default',calendar_month); init_tooltips(thisCalendar); }); $('.booked-list-view').each(function(){ var thisList=$(this); var list_date=thisList.find('.booked-appt-list').attr('data-list-date'); thisList.attr('data-default',list_date); }); bookedRemoveEmptyTRs(); init_appt_list_date_picker(); $('.booked_calendar_chooser').change(function(e){ e.preventDefault(); var $selector=$(this), thisIsCalendar=$selector.parents('.booked-calendarSwitcher').hasClass('calendar'); if(!thisIsCalendar){ var thisCalendarWrap=$selector.parents('.booked-calendar-shortcode-wrap').find('.booked-list-view'), thisDefaultDate=thisCalendarWrap.attr('data-default'), thisIsCalendar=$selector.parents('.booked-calendarSwitcher').hasClass('calendar'); if(typeof thisDefaultDate=='undefined'){ thisDefaultDate=false; } thisCalendarWrap.addClass('booked-loading'); var args={ 'action':'booked_appointment_list_date', 'date':thisDefaultDate, 'calendar_id':$selector.val() }; $(document).trigger("booked-before-loading-appointment-list-booking-options"); thisCalendarWrap.spin('booked_top'); $.ajax({ url: booked_js_vars.ajax_url, type: 'post', data: args, success: function(html){ thisCalendarWrap.html(html); init_appt_list_date_picker(); setTimeout(function(){ thisCalendarWrap.removeClass('booked-loading'); },1); }}); }else{ var thisCalendarWrap=$selector.parents('.booked-calendar-shortcode-wrap').find('.booked-calendar-wrap'), thisDefaultDate=thisCalendarWrap.attr('data-default'); if(typeof thisDefaultDate=='undefined'){ thisDefaultDate=false; } var args={ 'action':'booked_calendar_month', 'gotoMonth':thisDefaultDate, 'calendar_id':$selector.val() }; savingState(true,thisCalendarWrap); $.ajax({ url: booked_js_vars.ajax_url, type: 'post', data: args, success: function(html){ thisCalendarWrap.html(html); adjust_calendar_boxes(); bookedRemoveEmptyTRs(); init_tooltips(thisCalendarWrap); $(window).trigger('booked-load-calendar', args, $selector); }}); } return false; }); $('body').on('click', '.booked-calendar-wrap .page-right, .booked-calendar-wrap .page-left, .booked-calendar-wrap .monthName a', function(e){ e.preventDefault(); var $button=$(this), gotoMonth=$button.attr('data-goto'), thisCalendarWrap=$button.parents('.booked-calendar-wrap'), thisCalendarDefault=thisCalendarWrap.attr('data-default'), calendar_id=$button.parents('table.booked-calendar').attr('data-calendar-id'); if(typeof thisCalendarDefault=='undefined'){ thisCalendarDefault=false; } var args={ 'action':'booked_calendar_month', 'gotoMonth':gotoMonth, 'calendar_id':calendar_id, 'force_default':thisCalendarDefault }; savingState(true,thisCalendarWrap); $.ajax({ url: booked_js_vars.ajax_url, type: 'post', data: args, success: function(html){ thisCalendarWrap.html(html); adjust_calendar_boxes(); bookedRemoveEmptyTRs(); init_tooltips(thisCalendarWrap); $(window).trigger('booked-load-calendar', args, $button); }}); return false; }); $('body').on('click', '.booked-calendar-wrap tr.week td', function(e){ e.preventDefault(); var $thisDate=$(this), booked_calendar_table=$thisDate.parents('table.booked-calendar'), $thisRow=$thisDate.parent(), date=$thisDate.attr('data-date'), calendar_id=booked_calendar_table.attr('data-calendar-id'), colspanSetting=$thisRow.find('td').length; if(!calendar_id){ calendar_id=0; } if($thisDate.hasClass('blur')||$thisDate.hasClass('booked')&&!booked_js_vars.publicAppointments||$thisDate.hasClass('prev-date')){ }else if($thisDate.hasClass('active')){ $thisDate.removeClass('active'); $('tr.entryBlock').remove(); var calendarHeight=booked_calendar_table.height(); booked_calendar_table.parent().height(calendarHeight); }else{ $('tr.week td').removeClass('active'); $thisDate.addClass('active'); $('tr.entryBlock').remove(); $thisRow.after(''); $('tr.entryBlock').find('td').spin('booked'); booked_load_calendar_date_booking_options={'action':'booked_calendar_date','date':date,'calendar_id':calendar_id}; $(document).trigger("booked-before-loading-calendar-booking-options"); var calendarHeight=booked_calendar_table.height(); booked_calendar_table.parent().height(calendarHeight); $.ajax({ url: booked_js_vars.ajax_url, type: 'post', data: booked_load_calendar_date_booking_options, success: function(html){ $('tr.entryBlock').find('td').html(html); $('tr.entryBlock').removeClass('booked-loading'); $('tr.entryBlock').find('.booked-appt-list').fadeIn(300); $('tr.entryBlock').find('.booked-appt-list').addClass('shown'); adjust_calendar_boxes(); }}); } return; }); $('body').on('click', '.booked-list-view .booked-list-view-date-prev, .booked-list-view .booked-list-view-date-next', function(e){ e.preventDefault(); var $thisLink=$(this), date=$thisLink.attr('data-date'), thisList=$thisLink.parents('.booked-list-view'), defaultDate=thisList.attr('data-default'), calendar_id=$thisLink.parents('.booked-list-view-nav').attr('data-calendar-id'); if(typeof defaultDate=='undefined'){ defaultDate=false; } if(!calendar_id){ calendar_id=0; } thisList.addClass('booked-loading'); var booked_load_list_view_date_booking_options={ 'action':'booked_appointment_list_date', 'date':date, 'calendar_id':calendar_id, 'force_default':defaultDate }; $(document).trigger("booked-before-loading-appointment-list-booking-options"); thisList.spin('booked_top'); $.ajax({ url: booked_js_vars.ajax_url, type: 'post', data: booked_load_list_view_date_booking_options, success: function(html){ thisList.html(html); init_appt_list_date_picker(); setTimeout(function(){ thisList.removeClass('booked-loading'); },1); }}); return false; }); bookedNewAppointment=function(e){ e.preventDefault(); var $button=$(this), title=$button.attr('data-title'), timeslot=$button.attr('data-timeslot'), date=$button.attr('data-date'), calendar_id=$button.attr('data-calendar-id'), $thisTimeslot=$button.parents('.timeslot'), is_list_view=$button.parents('.booked-calendar-wrap').hasClass('booked-list-view'); if(typeof is_list_view!='undefined'&&is_list_view){ var new_calendar_id=$button.parents('.booked-list-view').find('.booked-list-view-nav').attr('data-calendar-id'); }else{ var new_calendar_id=$button.parents('table.booked-calendar').attr('data-calendar-id'); } calendar_id=new_calendar_id ? new_calendar_id:calendar_id; booked_appt_form_options={'action':'booked_new_appointment_form','date':date,'timeslot':timeslot,'calendar_id':calendar_id,'title':title}; $(document).trigger("booked-before-loading-booking-form"); create_booked_modal(); setTimeout(function(){ $.ajax({ url: booked_js_vars.ajax_url, type: 'post', data: booked_appt_form_options, success: function(html){ $('.bm-window').html(html); var bookedModal=$('.booked-modal'); var bmWindow=bookedModal.find('.bm-window'); bmWindow.css({'visibility':'hidden'}); bookedModal.removeClass('bm-loading'); $(document).trigger("booked-on-new-app"); resize_booked_modal(); bmWindow.hide(); $('.booked-modal .bm-overlay').find('.booked-spinner').remove(); setTimeout(function(){ bmWindow.css({'visibility':'visible'}); bmWindow.show(); },50); }}); },100); return false; } $('body').on('click', '.booked-calendar-wrap button.new-appt', bookedNewAppointment); var profileTabs=$('.booked-tabs'); if(!profileTabs.find('li.active').length){ profileTabs.find('li:first-child').addClass("active"); } if(profileTabs.length){ $('.booked-tab-content').hide(); var activeTab=profileTabs.find('.active > a').attr('href'); activeTab=activeTab.split('#'); activeTab=activeTab[1]; $('#profile-'+activeTab).show(); profileTabs.find('li > a').on('click', function(e){ e.preventDefault(); $('.booked-tab-content').hide(); profileTabs.find('li').removeClass('active'); $(this).parent().addClass('active'); var activeTab=$(this).attr('href'); activeTab=activeTab.split('#'); activeTab=activeTab[1]; $('#profile-'+activeTab).show(); return false; }); } $('body').on('click', '.booked-profile-appt-list .booked-show-cf', function(e){ e.preventDefault(); var hiddenBlock=$(this).parent().find('.cf-meta-values-hidden'); if(hiddenBlock.is(':visible')){ hiddenBlock.hide(); $(this).removeClass('booked-cf-active'); }else{ hiddenBlock.show(); $(this).addClass('booked-cf-active'); } return false; }); if($('#loginform').length){ $('#loginform input[type="submit"]').on('click',function(e){ if($('#loginform input[name="log"]').val()&&$('#loginform input[name="pwd"]').val()){ $('#loginform .booked-custom-error').hide(); }else{ if($('#loginform').parents('.booked-form-wrap').length){ e.preventDefault(); $('#loginform').parents('.booked-form-wrap').find('.booked-custom-error').fadeOut(200).fadeIn(200); }} }); } if($('#profile-forgot').length){ $('#profile-forgot input[type="submit"]').on('click',function(e){ if($('#profile-forgot input[name="user_login"]').val()){ $('#profile-forgot .booked-custom-error').hide(); }else{ e.preventDefault(); $('#profile-forgot').find('.booked-custom-error').fadeOut(200).fadeIn(200); }}); } if($('.booked-upload-wrap').length){ $('.booked-upload-wrap input[type=file]').on('change',function(){ var fileName=$(this).val(); $(this).parent().find('span').html(fileName); $(this).parent().addClass('hasFile'); }); } $('body').on('click', '.booked-profile-appt-list .appt-block .cancel', function(e){ e.preventDefault(); var $button=$(this), $thisParent=$button.parents('.appt-block'), appt_id=$thisParent.attr('data-appt-id'); confirm_delete=confirm(booked_js_vars.i18n_confirm_appt_delete); if(confirm_delete==true){ var currentApptCount=parseInt($('.booked-profile-appt-list').find('h4').find('span.count').html()); currentApptCount=parseInt(currentApptCount - 1); if(currentApptCount < 1){ $('.booked-profile-appt-list').find('h4').find('span.count').html('0'); $('.no-appts-message').slideDown('fast'); }else{ $('.booked-profile-appt-list').find('h4').find('span.count').html(currentApptCount); } $('.appt-block').animate({'opacity':0.4},0); $thisParent.slideUp('fast',function(){ $(this).remove(); }); $.ajax({ 'url':booked_js_vars.ajax_url, 'method':'post', 'data':{ 'action':'booked_cancel_appt', 'appt_id':appt_id }, success: function(data){ $('.appt-block').animate({'opacity':1},150); }}); } return false; }); $('body').on('touchstart click','.bm-overlay, .bm-window .close, .booked-form .cancel',function(e){ e.preventDefault(); close_booked_modal(); return false; }); $('body') .on('focusin', '.booked-form input', function(){ if(this.title==this.value){ $(this).addClass('hasContent'); this.value=''; }}).on('focusout', '.booked-form input', function(){ if(this.value===''){ $(this).removeClass('hasContent'); this.value=this.title; }}); $('body').on('change','.booked-form input',function(){ var condition=$(this).attr('data-condition'), thisVal=$(this).val(); if(condition&&$('.condition-block').length){ $('.condition-block.'+condition).hide(); $('#condition-'+thisVal).fadeIn(200); resize_booked_modal(); }}); $('body').on('submit','form#ajaxlogin', function(e){ e.preventDefault(); $('form#ajaxlogin p.status').show().html('   ' + booked_js_vars.i18n_please_wait); resize_booked_modal(); var $this=$(this), date=$this.data('date'), title=$this.data('title'), timeslot=$this.data('timeslot'), calendar_id=$this.data('calendar-id'); $.ajax({ type:'post', url:booked_js_vars.ajax_url, data:$('form#ajaxlogin').serialize(), success:function(data){ if(data=='success'){ close_booked_modal(); var $button=$(''); $button.on('click', window.bookedNewAppointment); $button.triggerHandler('click'); $button.unbind('click', window.bookedNewAppointment); $button.detach(); }else{ $('form#ajaxlogin p.status').show().html('   ' + booked_js_vars.i18n_wrong_username_pass); resize_booked_modal(); }} }); e.preventDefault(); }); $('body').on('click','.booked-forgot-password',function(e){ e.preventDefault(); $('#ajaxlogin').hide(); $('#ajaxforgot').show(); resize_booked_modal(); }); $('body').on('click','.booked-forgot-goback',function(e){ e.preventDefault(); $('#ajaxlogin').show(); $('#ajaxforgot').hide(); resize_booked_modal(); }); $('body').on('submit','form#ajaxforgot', function(e){ e.preventDefault(); $('form#ajaxforgot p.status').show().html('   ' + booked_js_vars.i18n_please_wait); resize_booked_modal(); var $this=$(this); $.ajax({ type:'post', url:booked_js_vars.ajax_url, data:$('form#ajaxforgot').serialize(), success:function(data){ if(data=='success'){ e.preventDefault(); $('#ajaxlogin').show(); $('#ajaxforgot').hide(); $('form#ajaxlogin p.status').show().html('   ' + booked_js_vars.i18n_password_reset); resize_booked_modal(); }else{ $('form#ajaxforgot p.status').show().html('   ' + booked_js_vars.i18n_password_reset_error); resize_booked_modal(); }} }); e.preventDefault(); }); $('body').on('click','.booked-form input#submit-request-appointment',function(e){ $('form#newAppointmentForm p.status').show().html('   ' + booked_js_vars.i18n_please_wait); resize_booked_modal(); e.preventDefault(); var customerType=$('#newAppointmentForm input[name=customer_type]').val(), customerID=$('#newAppointmentForm input[name=user_id]').val(), name=$('#newAppointmentForm input[name=booked_appt_name]').val(), surname=$('#newAppointmentForm input[name=booked_appt_surname]').val(), surnameActive=$('#newAppointmentForm input[name=booked_appt_surname]').length, guest_name=$('#newAppointmentForm input[name=guest_name]').val(), guest_surname=$('#newAppointmentForm input[name=guest_surname]').val(), guest_surnameActive=$('#newAppointmentForm input[name=guest_surname]').length, guest_email=$('#newAppointmentForm input[name=guest_email]').val(), guest_emailActive=$('#newAppointmentForm input[name=guest_email]').length, email=$('#newAppointmentForm input[name=booked_appt_email]').val(), password=$('#newAppointmentForm input[name=booked_appt_password]').val(), showRequiredError=false, ajaxRequests=[]; $(this).parents('.booked-form').find('input,textarea,select').each(function(i,field){ var required=$(this).attr('required'); if(required&&$(field).attr('type')=='hidden'){ var fieldParts=$(field).attr('name'); fieldParts=fieldParts.split('---'); fieldName=fieldParts[0]; fieldNumber=fieldParts[1].split('___'); fieldNumber=fieldNumber[0]; if(fieldName=='radio-buttons-label'){ var radioValue=false; $('input:radio[name="single-radio-button---'+fieldNumber+'[]"]:checked').each(function(){ if($(this).val()){ radioValue=$(this).val(); }}); if(!radioValue){ showRequiredError=true; }}else if(fieldName=='checkboxes-label'){ var checkboxValue=false; $('input:checkbox[name="single-checkbox---'+fieldNumber+'[]"]:checked').each(function(){ if($(this).val()){ checkboxValue=$(this).val(); }}); if(!checkboxValue){ showRequiredError=true; }} }else if(required&&$(field).attr('type')!='hidden'&&$(field).val()==''){ showRequiredError=true; }}); if(showRequiredError){ $('form#newAppointmentForm p.status').show().html('   ' + booked_js_vars.i18n_fill_out_required_fields); resize_booked_modal(); return false; } if(customerType=='new'&&!name||customerType=='new'&&surnameActive&&!surname||customerType=='new'&&!email||customerType=='new'&&!password){ $('form#newAppointmentForm p.status').show().html('   ' + booked_js_vars.i18n_appt_required_fields); resize_booked_modal(); return false; } if(customerType=='guest'&&!guest_name||customerType=='guest'&&guest_emailActive&&!guest_email||customerType=='guest'&&guest_surnameActive&&!guest_surname){ $('form#newAppointmentForm p.status').show().html('   ' + booked_js_vars.i18n_appt_required_fields_guest); resize_booked_modal(); return false; } if(customerType=='current'&&customerID || customerType=='guest'&&guest_name&&!guest_surnameActive&&!guest_emailActive || customerType=='guest'&&guest_name&&guest_surnameActive&&guest_surname&&!guest_emailActive || customerType=='guest'&&guest_name&&guest_emailActive&&guest_email&&!guest_surnameActive || customerType=='guest'&&guest_name&&guest_emailActive&&guest_email&&guest_surnameActive&&guest_surname){ SubmitRequestAppointment.currentUserOrGuest(); } if(customerType=='new'&&name&&email&&password){ if(!surnameActive||surnameActive&&surname){ SubmitRequestAppointment.newUser(); }} }); var SubmitRequestAppointment={ formSelector: '#newAppointmentForm', formBtnRequestSelector: '.booked-form input#submit-request-appointment', formStatusSelector: 'p.status', formSubmitBtnSelector: '#submit-request-appointment', apptContainerSelector: '.booked-appointment-details', baseFields: [ 'guest_name','guest_surname','guest_email','action', 'customer_type', 'user_id' ], apptFields: [ 'appoinment', 'calendar_id', 'title', 'date', 'timestamp', 'timeslot' ], userFields: [ 'booked_appt_name','booked_appt_surname','booked_appt_email', 'booked_appt_password' ], captchaFields: [ 'captcha_word', 'captcha_code' ], currentApptIndex: false, currentApptCounter: false, hasAnyErrors: false, currentUserOrGuest: function(){ var total_appts=SubmitRequestAppointment._totalAppts(); if(! total_appts){ return; } SubmitRequestAppointment._showLoadingMessage(); SubmitRequestAppointment._resetDefaultValues(); var data=SubmitRequestAppointment._getBaseData(); SubmitRequestAppointment.currentApptIndex=0; SubmitRequestAppointment.currentApptCounter=1; SubmitRequestAppointment._doRequestAppointment(data, total_appts); }, newUser: function(){ var total_appts=SubmitRequestAppointment._totalAppts(); if(! total_appts){ return; } SubmitRequestAppointment._showLoadingMessage(); SubmitRequestAppointment._resetDefaultValues(); var data=SubmitRequestAppointment._getBaseData(); if(total_appts > 1){ var data_obj_with_no_reference=null; data_obj_with_no_reference=$.extend(true, {}, data); data_obj_with_no_reference=SubmitRequestAppointment._addUserRegistrationData(data_obj_with_no_reference); SubmitRequestAppointment._requestUserRegistration(data_obj_with_no_reference); data.customer_type='current'; }else{ data=SubmitRequestAppointment._addUserRegistrationData(data); } SubmitRequestAppointment.currentApptIndex=0; SubmitRequestAppointment._doRequestAppointment(data, total_appts); }, _doRequestAppointment: function(data, total_appts){ var appt_fields=SubmitRequestAppointment.apptFields; if(SubmitRequestAppointment.currentApptIndex===0){ SubmitRequestAppointment._hideCancelBtn(); SubmitRequestAppointment._disableSubmitBtn(); SubmitRequestAppointment.hasAnyErrors=false; } var data_obj_with_no_reference=$.extend(true, {}, data); for (var i=0; i < appt_fields.length; i++){ data_obj_with_no_reference[ appt_fields[i] ]=SubmitRequestAppointment._getFieldVal(appt_fields[i], SubmitRequestAppointment.currentApptIndex); } var calendar_id=SubmitRequestAppointment._getFieldVal('calendar_id', SubmitRequestAppointment.currentApptIndex); data_obj_with_no_reference=SubmitRequestAppointment._addCustomFieldsData(data_obj_with_no_reference, calendar_id); var $appt=SubmitRequestAppointment._getApptElement(SubmitRequestAppointment.currentApptIndex); if(! $appt.hasClass('skip')){ $.ajax({ type:'post', url:booked_js_vars.ajax_url, data:data_obj_with_no_reference, success:function(response){ SubmitRequestAppointment._requestAppointmentResponseHandler(response); SubmitRequestAppointment.currentApptIndex++; setTimeout(function(){ if(SubmitRequestAppointment.currentApptCounter===total_appts){ if(! SubmitRequestAppointment.hasAnyErrors){ SubmitRequestAppointment._onAfterRequestAppointment(); }else{ SubmitRequestAppointment._enableSubmitBtn(); SubmitRequestAppointment._showCancelBtn(); }}else{ SubmitRequestAppointment.currentApptCounter++; SubmitRequestAppointment._doRequestAppointment(data, total_appts); }}, 100); }}); }else{ SubmitRequestAppointment.currentApptIndex++; SubmitRequestAppointment.currentApptCounter++; SubmitRequestAppointment._doRequestAppointment(data, total_appts, SubmitRequestAppointment.currentApptIndex); }}, _totalAppts: function(){ return $(SubmitRequestAppointment.formSelector + ' input[name="appoinment[]"]').length; }, _getBaseData: function(){ var data={}, fields=SubmitRequestAppointment.baseFields; for(var i=0; i < fields.length; i++){ data[ fields[i] ]=SubmitRequestAppointment._getFieldVal(fields[i]); } data['is_fe_form']=true; data['total_appts']=SubmitRequestAppointment._totalAppts(); return data; }, _getFieldVal: function(field_name, field_index){ var field_name=typeof field_name==='undefined' ? '':field_name, field_index=typeof field_index==='undefined' ? false:field_index, selector=SubmitRequestAppointment.formSelector + ' '; if(field_index===false){ selector +=' [name=' + field_name + ']'; return $(selector).val(); } selector +=' [name="' + field_name + '[]"]'; return $(selector).eq(field_index).val(); }, _resetDefaultValues: function(){ $('.booked-form input').each(function(){ var thisVal=$(this).val(), thisDefault=$(this).attr('title'); if(thisDefault==thisVal){ $(this).val(''); }}); }, _resetToDefaultValues: function(){ $('.booked-form input').each(function(){ var thisVal=$(this).val(), thisDefault=$(this).attr('title'); if(! thisVal){ $(this).val(thisDefault); }}); }, _addUserRegistrationData: function(data){ $.each(SubmitRequestAppointment.userFields, function(index, field_name){ data[ field_name ]=SubmitRequestAppointment._getFieldVal(field_name); }); $.each(SubmitRequestAppointment.captchaFields, function(index, field_name){ var field_value=SubmitRequestAppointment._getFieldVal(field_name); if(! field_value){ return; } data[ field_name ]=field_value; }); return data; }, _addCustomFieldsData: function(data, calendar_id){ var custom_fields_data=$('.cf-block [name]') .filter(function(index){ var $this=$(this); return parseInt($this.data('calendar-id'))===parseInt(calendar_id)&&$this.attr('name').match(/---\d+/g); }) .each(function(index){ var $this=$(this), name=$this.attr('name'), value=$this.val(), type=$this.attr('type'); if(! value){ return; } if(! name.match(/checkbox|radio+/g)){ data[ name ]=value; return; } if(name.match(/radio+/g)&&$this.is(':checked')){ data[ name ]=value; return; } if(! name.match(/radio+/g)&&typeof data[ name ]==='undefined'||! name.match(/radio+/g)&&data[ name ].constructor!==Array){ data[ name ]=[]; } if(! $this.is(':checked')){ return; } data[ name ].push(value); }); return data; }, _requestUserRegistration: function(base_data, appt_index){ $.ajax({ type:'post', url:booked_js_vars.ajax_url, data:base_data, async:false, success:function(response){ SubmitRequestAppointment._requestUserRegistrationResponseHandler(response); }}); }, _requestUserRegistrationResponseHandler: function(response){ var response_parts=response.split('###'), data_result=response_parts[0].substr(response_parts[0].length - 5); if(data_result==='error'){ return; }}, _requestAppointment: function(response){ SubmitRequestAppointment._requestAppointmentResponseHandler(response); }, _requestAppointmentResponseHandler: function(response){ var response_parts=response.split('###'), data_result=response_parts[0].substr(response_parts[0].length - 5); if(data_result==='error'){ SubmitRequestAppointment._requestAppointmentOnError(response_parts); return; } SubmitRequestAppointment._requestAppointmentOnSuccess(response_parts); }, _requestAppointmentOnError: function(response_parts){ var $apptEl=SubmitRequestAppointment._getApptElement(); $(document).trigger("booked-on-requested-appt-error",[$apptEl]); SubmitRequestAppointment._highlightAppt(); SubmitRequestAppointment._setStatusMsg(response_parts[1]); SubmitRequestAppointment.hasAnyErrors=true; resize_booked_modal(); }, _requestAppointmentOnSuccess: function(response_parts){ var $apptEl=SubmitRequestAppointment._getApptElement(); $(document).trigger("booked-on-requested-appt-success",[$apptEl]); SubmitRequestAppointment._unhighlightAppt(); }, _onAfterRequestAppointment: function(){ var redirectObj={ redirect:false }; var redirect=$(document).trigger("booked-on-requested-appointment",[redirectObj]); if(redirectObj.redirect){ return; } if(booked_js_vars.profilePage){ window.location=booked_js_vars.profilePage; return; } SubmitRequestAppointment._reloadApptsList(); SubmitRequestAppointment._reloadCalendarTable(); }, _setStatusMsg: function(msg){ var form_status_selector=SubmitRequestAppointment.formSelector + ' ' + SubmitRequestAppointment.formStatusSelector; $(form_status_selector).show().html('   ' + msg); }, _getApptElement: function(appt_index){ var appt_index=typeof appt_index==='undefined' ? SubmitRequestAppointment.currentApptIndex:appt_index, appt_cnt_selector=SubmitRequestAppointment.formSelector + ' ' + SubmitRequestAppointment.apptContainerSelector; return $(appt_cnt_selector).eq(appt_index); }, _highlightAppt: function(msg){ var $apptEl=SubmitRequestAppointment._getApptElement(); if(! $apptEl.length){ return; } $apptEl.addClass('has-error'); }, _unhighlightAppt: function(msg){ var $apptEl=SubmitRequestAppointment._getApptElement(); if(! $apptEl.length){ return; } $apptEl.removeClass('has-error').addClass('skip'); }, _enableSubmitBtn: function(){ var btn_selector=SubmitRequestAppointment.formSelector + ' ' + SubmitRequestAppointment.formSubmitBtnSelector; $(btn_selector).attr('disabled', false); }, _disableSubmitBtn: function(){ var btn_selector=SubmitRequestAppointment.formSelector + ' ' + SubmitRequestAppointment.formSubmitBtnSelector; $(btn_selector).attr('disabled', true); }, _showCancelBtn: function(){ $(SubmitRequestAppointment.formSelector).find('button.cancel').show(); }, _hideCancelBtn: function(){ $(SubmitRequestAppointment.formSelector).find('button.cancel').hide(); }, _showLoadingMessage: function(){ $('form#newAppointmentForm p.status').show().html('   ' + booked_js_vars.i18n_please_wait); }, _reloadApptsList: function(){ if(! $('.booked-appt-list').length){ return; } $('.booked-appt-list').each(function(){ var $thisApptList=$(this), date=$thisApptList.attr('data-list-date'), thisList=$thisApptList.parents('.booked-list-view'), defaultDate=thisList.attr('data-default'), calendar_id=parseInt($thisApptList.find('.booked-list-view-nav').attr('data-calendar-id'))||0; defaultDate=typeof defaultDate==='undefined' ? false:defaultDate; calendar_id=calendar_id ? calendar_id:0; thisList.addClass('booked-loading'); var booked_load_list_view_date_booking_options={ 'action':'booked_appointment_list_date', 'date':date, 'calendar_id':calendar_id, 'force_default':defaultDate }; $(document).trigger("booked-before-loading-appointment-list-booking-options"); thisList.spin('booked_top'); $.ajax({ url: booked_js_vars.ajax_url, type: 'post', data: booked_load_list_view_date_booking_options, success: function(html){ thisList.html(html); close_booked_modal(); init_appt_list_date_picker(); setTimeout(function(){ thisList.removeClass('booked-loading'); },1); }}); }); }, _reloadCalendarTable: function(){ if(! $('td.active').length){ return; } var $activeTD=$('td.active'), activeDate=$activeTD.attr('data-date'), calendar_id=parseInt($activeTD.parents('table').data('calendar-id'))||0; booked_load_calendar_date_booking_options={ 'action':'booked_calendar_date', 'date':activeDate, 'calendar_id':calendar_id }; $(document).trigger("booked-before-loading-calendar-booking-options"); $.ajax({ url: booked_js_vars.ajax_url, type: 'post', data: booked_load_calendar_date_booking_options, success: function(html){ $('tr.entryBlock').find('td').html(html); close_booked_modal(); $('tr.entryBlock').removeClass('booked-loading'); $('tr.entryBlock').find('.booked-appt-list').hide().fadeIn(300); $('tr.entryBlock').find('.booked-appt-list').addClass('shown'); adjust_calendar_boxes(); }}); }} }); function bookedRemoveEmptyTRs(){ $('table.booked-calendar').find('tr.week').each(function(){ if($(this).children().length==0){ $(this).remove(); }}); } function savingState(show,limit_to){ show=typeof show!=='undefined' ? show:true; limit_to=typeof limit_to!=='undefined' ? limit_to:false; if(limit_to){ var $savingStateDIV=limit_to.find('li.active .savingState, .topSavingState.savingState, .calendarSavingState'); var $stuffToHide=limit_to.find('.monthName'); var $stuffToTransparent=limit_to.find('table.booked-calendar tbody'); }else{ var $savingStateDIV=$('li.active .savingState, .topSavingState.savingState, .calendarSavingState'); var $stuffToHide=$('.monthName'); var $stuffToTransparent=$('table.booked-calendar tbody'); } if(show){ $savingStateDIV.fadeIn(200); $stuffToHide.hide(); $stuffToTransparent.animate({'opacity':0.2},100); }else{ $savingStateDIV.hide(); $stuffToHide.show(); $stuffToTransparent.animate({'opacity':1},0); }} $(document).ajaxStop(function(){ savingState(false); }); function init_appt_list_date_picker(){ $('.booked_list_date_picker').each(function(){ var thisDatePicker=$(this); var minDateVal=thisDatePicker.parents('.booked-appt-list').attr('data-min-date'); var maxDateVal=thisDatePicker.parents('.booked-appt-list').attr('data-max-date'); if(typeof minDateVal=='undefined'){ var minDateVal=thisDatePicker.attr('data-min-date'); } thisDatePicker.datepicker({ dateFormat: 'yy-mm-dd', minDate: minDateVal, maxDate: maxDateVal, showAnim: false, beforeShow: function(input, inst){ $('#ui-datepicker-div').removeClass(); $('#ui-datepicker-div').addClass('booked_custom_date_picker'); }, onClose: function(dateText){ $('.booked_list_date_picker_trigger').removeClass('booked-dp-active'); }, onSelect: function(dateText){ var thisInput=$(this), date=dateText, thisList=thisInput.parents('.booked-list-view'), defaultDate=thisList.attr('data-default'), calendar_id=thisInput.parents('.booked-list-view-nav').attr('data-calendar-id'); if(typeof defaultDate=='undefined'){ defaultDate=false; } if(!calendar_id){ calendar_id=0; } thisList.addClass('booked-loading'); var booked_load_list_view_date_booking_options={ 'action':'booked_appointment_list_date', 'date':date, 'calendar_id':calendar_id, 'force_default':defaultDate }; $(document).trigger("booked-before-loading-appointment-list-booking-options"); thisList.spin('booked_top'); $.ajax({ url: booked_js_vars.ajax_url, type: 'post', data: booked_load_list_view_date_booking_options, success: function(html){ thisList.html(html); init_appt_list_date_picker(); setTimeout(function(){ thisList.removeClass('booked-loading'); },1); }}); return false; }}); }); $('body').on('click','.booked_list_date_picker_trigger',function(e){ e.preventDefault(); if(!$(this).hasClass('booked-dp-active')){ $(this).addClass('booked-dp-active'); $(this).parents('.booked-appt-list').find('.booked_list_date_picker').datepicker('show'); }}); } var BookedTabs={ bookingModalSelector: '.booked-modal', tabSelector: '.booked-tabs', tabNavSelector: '.booked-tabs-nav span', tabCntSelector: '.booked-tabs-cnt', Init: function(){ $(document).on('click', this.tabNavSelector, this.tabsNav); }, tabsNav: function(event){ event.preventDefault(); BookedTabs.switchToTab($(this)); BookedTabs.maybeResizeBookingModal(); }, switchToTab: function(tab_nav_item){ var $nav_item=tab_nav_item, tab_cnt_class='.' + $nav_item.data('tab-cnt'), $tabs_container=$nav_item.parents(BookedTabs.tabSelector); $nav_item .addClass('active') .siblings() .removeClass('active') $tabs_container .find(BookedTabs.tabCntSelector + ' ' + tab_cnt_class) .addClass('active') .siblings() .removeClass('active'); }, maybeResizeBookingModal: function(){ if(! $(BookedTabs.bookingModalSelector).length){ return; } resize_booked_modal(); }} })(jQuery, window, document); function create_booked_modal(){ var windowHeight=jQuery(window).height(); var windowWidth=jQuery(window).width(); if(windowWidth > 720){ var maxModalHeight=windowHeight - 295; }else{ var maxModalHeight=windowHeight; } jQuery('body input, body textarea, body select').blur(); jQuery('body').addClass('booked-noScroll'); jQuery('
').appendTo('body'); jQuery('.booked-modal .bm-overlay').spin('booked_white'); jQuery('.booked-modal .bm-window').css({'max-height':maxModalHeight+'px'}); } var previousRealModalHeight=100; function resize_booked_modal(){ var windowHeight=jQuery(window).height(); var windowWidth=jQuery(window).width(); var common43=43; if(jQuery('.booked-modal .bm-window .booked-scrollable').length){ var realModalHeight=jQuery('.booked-modal .bm-window .booked-scrollable')[0].scrollHeight; if(realModalHeight < 100){ realModalHeight=previousRealModalHeight; }else{ previousRealModalHeight=realModalHeight; }}else{ var realModalHeight=0; } var minimumWindowHeight=realModalHeight + common43 + common43; var modalScrollableHeight=realModalHeight - common43; var maxModalHeight; var maxFormHeight; if(windowHeight < minimumWindowHeight){ modalScrollableHeight=windowHeight - common43 - common43; }else{ modalScrollableHeight=realModalHeight; } if(windowWidth > 720){ maxModalHeight=modalScrollableHeight - 25; maxFormHeight=maxModalHeight - 15; var modalNegMargin=(maxModalHeight + 78) / 2; }else{ maxModalHeight=windowHeight - common43; maxFormHeight=maxModalHeight - 60; var modalNegMargin=(maxModalHeight) / 2; } jQuery('.booked-modal').css({'margin-top':'-'+modalNegMargin+'px'}); jQuery('.booked-modal .bm-window').css({'max-height':maxModalHeight+'px'}); jQuery('.booked-modal .bm-window .booked-scrollable').css({'max-height':maxFormHeight+'px'}); } function close_booked_modal(){ var modal=jQuery('.booked-modal'); modal.fadeOut(200); modal.addClass('bm-closing'); jQuery('body').removeClass('booked-noScroll'); setTimeout(function(){ modal.remove(); },300); } function init_tooltips(container){ jQuery('.tooltipster').tooltipster({ theme: 'tooltipster-light', animation: 'grow', speed: 200, delay: 50, offsetY: -15 }); } function adjust_calendar_boxes(){ jQuery('.booked-calendar').each(function(){ var windowWidth=jQuery(window).width(); var smallCalendar=jQuery(this).parents('.booked-calendar-wrap').hasClass('small'); var boxesWidth=jQuery(this).find('tbody tr.week td').width(); var calendarHeight=jQuery(this).height(); boxesHeight=boxesWidth * 1; jQuery(this).find('tbody tr.week td').height(boxesHeight); jQuery(this).find('tbody tr.week td .date').css('line-height',boxesHeight+'px'); jQuery(this).find('tbody tr.week td .date .number').css('line-height',boxesHeight+'px'); if(smallCalendar||windowWidth < 720){ jQuery(this).find('tbody tr.week td .date .number').css('line-height',boxesHeight+'px'); }else{ jQuery(this).find('tbody tr.week td .date .number').css('line-height',''); } var calendarHeight=jQuery(this).height(); jQuery(this).parent().height(calendarHeight); }); }; (function($){ 'use strict'; if(typeof wpcf7==='undefined'||wpcf7===null){ return; } wpcf7=$.extend({ cached: 0, inputs: [] }, wpcf7); $(function(){ wpcf7.supportHtml5=(function(){ var features={}; var input=document.createElement('input'); features.placeholder='placeholder' in input; var inputTypes=[ 'email', 'url', 'tel', 'number', 'range', 'date' ]; $.each(inputTypes, function(index, value){ input.setAttribute('type', value); features[ value ]=input.type!=='text'; }); return features; })(); $('div.wpcf7 > form').each(function(){ var $form=$(this); wpcf7.initForm($form); if(wpcf7.cached){ wpcf7.refill($form); }}); }); wpcf7.getId=function(form){ return parseInt($('input[name="_wpcf7"]', form).val(), 10); }; wpcf7.initForm=function(form){ var $form=$(form); wpcf7.setStatus($form, 'init'); $form.submit(function(event){ if(! wpcf7.supportHtml5.placeholder){ $('[placeholder].placeheld', $form).each(function(i, n){ $(n).val('').removeClass('placeheld'); }); } if(typeof window.FormData==='function'){ wpcf7.submit($form); event.preventDefault(); }}); $('.wpcf7-submit', $form).after(''); wpcf7.toggleSubmit($form); $form.on('click', '.wpcf7-acceptance', function(){ wpcf7.toggleSubmit($form); }); $('.wpcf7-exclusive-checkbox', $form).on('click', 'input:checkbox', function(){ var name=$(this).attr('name'); $form.find('input:checkbox[name="' + name + '"]').not(this).prop('checked', false); }); $('.wpcf7-list-item.has-free-text', $form).each(function(){ var $freetext=$(':input.wpcf7-free-text', this); var $wrap=$(this).closest('.wpcf7-form-control'); if($(':checkbox, :radio', this).is(':checked')){ $freetext.prop('disabled', false); }else{ $freetext.prop('disabled', true); } $wrap.on('change', ':checkbox, :radio', function(){ var $cb=$('.has-free-text', $wrap).find(':checkbox, :radio'); if($cb.is(':checked')){ $freetext.prop('disabled', false).focus(); }else{ $freetext.prop('disabled', true); }}); }); if(! wpcf7.supportHtml5.placeholder){ $('[placeholder]', $form).each(function(){ $(this).val($(this).attr('placeholder')); $(this).addClass('placeheld'); $(this).focus(function(){ if($(this).hasClass('placeheld')){ $(this).val('').removeClass('placeheld'); }}); $(this).blur(function(){ if(''===$(this).val()){ $(this).val($(this).attr('placeholder')); $(this).addClass('placeheld'); }}); }); } if(wpcf7.jqueryUi&&! wpcf7.supportHtml5.date){ $form.find('input.wpcf7-date[type="date"]').each(function(){ $(this).datepicker({ dateFormat: 'yy-mm-dd', minDate: new Date($(this).attr('min')), maxDate: new Date($(this).attr('max')) }); }); } if(wpcf7.jqueryUi&&! wpcf7.supportHtml5.number){ $form.find('input.wpcf7-number[type="number"]').each(function(){ $(this).spinner({ min: $(this).attr('min'), max: $(this).attr('max'), step: $(this).attr('step') }); }); } wpcf7.resetCounter($form); $form.on('change', '.wpcf7-validates-as-url', function(){ var val=$.trim($(this).val()); if(val && ! val.match(/^[a-z][a-z0-9.+-]*:/i) && -1!==val.indexOf('.')){ val=val.replace(/^\/+/, ''); val='http://' + val; } $(this).val(val); }); }; wpcf7.submit=function(form){ if(typeof window.FormData!=='function'){ return; } var $form=$(form); $('.ajax-loader', $form).addClass('is-active'); wpcf7.clearResponse($form); var formData=new FormData($form.get(0)); var detail={ id: $form.closest('div.wpcf7').attr('id'), status: 'init', inputs: [], formData: formData }; $.each($form.serializeArray(), function(i, field){ if('_wpcf7'==field.name){ detail.contactFormId=field.value; }else if('_wpcf7_version'==field.name){ detail.pluginVersion=field.value; }else if('_wpcf7_locale'==field.name){ detail.contactFormLocale=field.value; }else if('_wpcf7_unit_tag'==field.name){ detail.unitTag=field.value; }else if('_wpcf7_container_post'==field.name){ detail.containerPostId=field.value; }else if(field.name.match(/^_/)){ }else{ detail.inputs.push(field); }}); wpcf7.triggerEvent($form.closest('div.wpcf7'), 'beforesubmit', detail); var ajaxSuccess=function(data, status, xhr, $form){ detail.id=$(data.into).attr('id'); detail.status=data.status; detail.apiResponse=data; switch(data.status){ case 'init': wpcf7.setStatus($form, 'init'); break; case 'validation_failed': $.each(data.invalid_fields, function(i, n){ $(n.into, $form).each(function(){ wpcf7.notValidTip(this, n.message); $('.wpcf7-form-control', this).addClass('wpcf7-not-valid'); $('.wpcf7-form-control', this).attr('aria-describedby', n.error_id ); $('[aria-invalid]', this).attr('aria-invalid', 'true'); }); }); wpcf7.setStatus($form, 'invalid'); wpcf7.triggerEvent(data.into, 'invalid', detail); break; case 'acceptance_missing': wpcf7.setStatus($form, 'unaccepted'); wpcf7.triggerEvent(data.into, 'unaccepted', detail); break; case 'spam': wpcf7.setStatus($form, 'spam'); wpcf7.triggerEvent(data.into, 'spam', detail); break; case 'aborted': wpcf7.setStatus($form, 'aborted'); wpcf7.triggerEvent(data.into, 'aborted', detail); break; case 'mail_sent': wpcf7.setStatus($form, 'sent'); wpcf7.triggerEvent(data.into, 'mailsent', detail); break; case 'mail_failed': wpcf7.setStatus($form, 'failed'); wpcf7.triggerEvent(data.into, 'mailfailed', detail); break; default: wpcf7.setStatus($form, 'custom-' + data.status.replace(/[^0-9a-z]+/i, '-') ); } wpcf7.refill($form, data); wpcf7.triggerEvent(data.into, 'submit', detail); if('mail_sent'==data.status){ $form.each(function(){ this.reset(); }); wpcf7.toggleSubmit($form); wpcf7.resetCounter($form); } if(! wpcf7.supportHtml5.placeholder){ $form.find('[placeholder].placeheld').each(function(i, n){ $(n).val($(n).attr('placeholder')); }); } $('.wpcf7-response-output', $form) .html('').append(data.message).slideDown('fast'); $('.screen-reader-response', $form.closest('.wpcf7')).each(function(){ var $response=$(this); $('[role="status"]', $response).html(data.message); if(data.invalid_fields){ $.each(data.invalid_fields, function(i, n){ if(n.idref){ var $li=$('
  • ').append($('').attr('href', '#' + n.idref).append(n.message)); }else{ var $li=$('
  • ').append(n.message); } $li.attr('id', n.error_id); $('ul', $response).append($li); }); }}); if(data.posted_data_hash){ $form.find('input[name="_wpcf7_posted_data_hash"]').first() .val(data.posted_data_hash); }}; $.ajax({ type: 'POST', url: wpcf7.apiSettings.getRoute('/contact-forms/' + wpcf7.getId($form) + '/feedback'), data: formData, dataType: 'json', processData: false, contentType: false }).done(function(data, status, xhr){ ajaxSuccess(data, status, xhr, $form); $('.ajax-loader', $form).removeClass('is-active'); }).fail(function(xhr, status, error){ var $e=$('
    ').text(error.message); $form.after($e); }); }; wpcf7.triggerEvent=function(target, name, detail){ var event=new CustomEvent('wpcf7' + name, { bubbles: true, detail: detail }); $(target).get(0).dispatchEvent(event); }; wpcf7.setStatus=function(form, status){ var $form=$(form); var prevStatus=$form.attr('data-status'); $form.data('status', status); $form.addClass(status); $form.attr('data-status', status); if(prevStatus&&prevStatus!==status){ $form.removeClass(prevStatus); }} wpcf7.toggleSubmit=function(form, state){ var $form=$(form); var $submit=$('input:submit', $form); if(typeof state!=='undefined'){ $submit.prop('disabled', ! state); return; } if($form.hasClass('wpcf7-acceptance-as-validation')){ return; } $submit.prop('disabled', false); $('.wpcf7-acceptance', $form).each(function(){ var $span=$(this); var $input=$('input:checkbox', $span); if(! $span.hasClass('optional')){ if($span.hasClass('invert')&&$input.is(':checked') || ! $span.hasClass('invert')&&! $input.is(':checked')){ $submit.prop('disabled', true); return false; }} }); }; wpcf7.resetCounter=function(form){ var $form=$(form); $('.wpcf7-character-count', $form).each(function(){ var $count=$(this); var name=$count.attr('data-target-name'); var down=$count.hasClass('down'); var starting=parseInt($count.attr('data-starting-value'), 10); var maximum=parseInt($count.attr('data-maximum-value'), 10); var minimum=parseInt($count.attr('data-minimum-value'), 10); var updateCount=function(target){ var $target=$(target); var length=$target.val().length; var count=down ? starting - length:length; $count.attr('data-current-value', count); $count.text(count); if(maximum&&maximum < length){ $count.addClass('too-long'); }else{ $count.removeClass('too-long'); } if(minimum&&length < minimum){ $count.addClass('too-short'); }else{ $count.removeClass('too-short'); }}; $(':input[name="' + name + '"]', $form).each(function(){ updateCount(this); $(this).keyup(function(){ updateCount(this); }); }); }); }; wpcf7.notValidTip=function(target, message){ var $target=$(target); $('.wpcf7-not-valid-tip', $target).remove(); $('').attr({ 'class': 'wpcf7-not-valid-tip', 'aria-hidden': 'true', }).text(message).appendTo($target); if($target.is('.use-floating-validation-tip *')){ var fadeOut=function(target){ $(target).not(':hidden').animate({ opacity: 0 }, 'fast', function(){ $(this).css({ 'z-index': -100 }); }); }; $target.on('mouseover', '.wpcf7-not-valid-tip', function(){ fadeOut(this); }); $target.on('focus', ':input', function(){ fadeOut($('.wpcf7-not-valid-tip', $target)); }); }}; wpcf7.refill=function(form, data){ var $form=$(form); var refillCaptcha=function($form, items){ $.each(items, function(i, n){ $form.find(':input[name="' + i + '"]').val(''); $form.find('img.wpcf7-captcha-' + i).attr('src', n); var match=/([0-9]+)\.(png|gif|jpeg)$/.exec(n); $form.find('input:hidden[name="_wpcf7_captcha_challenge_' + i + '"]').attr('value', match[ 1 ]); }); }; var refillQuiz=function($form, items){ $.each(items, function(i, n){ $form.find(':input[name="' + i + '"]').val(''); $form.find(':input[name="' + i + '"]').siblings('span.wpcf7-quiz-label').text(n[ 0 ]); $form.find('input:hidden[name="_wpcf7_quiz_answer_' + i + '"]').attr('value', n[ 1 ]); }); }; if(typeof data==='undefined'){ $.ajax({ type: 'GET', url: wpcf7.apiSettings.getRoute('/contact-forms/' + wpcf7.getId($form) + '/refill'), beforeSend: function(xhr){ var nonce=$form.find(':input[name="_wpnonce"]').val(); if(nonce){ xhr.setRequestHeader('X-WP-Nonce', nonce); }}, dataType: 'json' }).done(function(data, status, xhr){ if(data.captcha){ refillCaptcha($form, data.captcha); } if(data.quiz){ refillQuiz($form, data.quiz); }}); }else{ if(data.captcha){ refillCaptcha($form, data.captcha); } if(data.quiz){ refillQuiz($form, data.quiz); }} }; wpcf7.clearResponse=function(form){ var $form=$(form); $form.siblings('.screen-reader-response').each(function(){ $('[role="status"]', this).html(''); $('ul', this).html(''); }); $('.wpcf7-not-valid-tip', $form).remove(); $('[aria-invalid]', $form).attr('aria-invalid', 'false'); $('.wpcf7-form-control', $form).removeClass('wpcf7-not-valid'); $('.wpcf7-response-output', $form).hide().empty(); }; wpcf7.apiSettings.getRoute=function(path){ var url=wpcf7.apiSettings.root; url=url.replace(wpcf7.apiSettings.namespace, wpcf7.apiSettings.namespace + path); return url; };})(jQuery); (function (){ if(typeof window.CustomEvent==="function") return false; function CustomEvent(event, params){ params=params||{ bubbles: false, cancelable: false, detail: undefined }; var evt=document.createEvent('CustomEvent'); evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); return evt; } CustomEvent.prototype=window.Event.prototype; window.CustomEvent=CustomEvent; })(); !function(d){var n={url:!1,callback:!1,target:!1,duration:120,on:"mouseover",touch:!0,onZoomIn:!1,onZoomOut:!1,magnify:1};d.zoom=function(o,t,n,e){var i,u,a,c,r,l,m,s=d(o),f=s.css("position"),h=d(t);return o.style.position=/(absolute|fixed)/.test(f)?f:"relative",o.style.overflow="hidden",n.style.width=n.style.height="",d(n).addClass("zoomImg").css({position:"absolute",top:0,left:0,opacity:0,width:n.width*e,height:n.height*e,border:"none",maxWidth:"none",maxHeight:"none"}).appendTo(o),{init:function(){u=s.outerWidth(),i=s.outerHeight(),a=t===o?(c=u,i):(c=h.outerWidth(),h.outerHeight()),r=(n.width-u)/c,l=(n.height-i)/a,m=h.offset()},move:function(o){var t=o.pageX-m.left,e=o.pageY-m.top;e=Math.max(Math.min(e,a),0),t=Math.max(Math.min(t,c),0),n.style.left=t*-r+"px",n.style.top=e*-l+"px"}}},d.fn.zoom=function(e){return this.each(function(){var i=d.extend({},n,e||{}),u=i.target&&d(i.target)[0]||this,o=this,a=d(o),c=document.createElement("img"),r=d(c),l="mousemove.zoom",m=!1,s=!1;if(!i.url){var t=o.querySelector("img");if(t&&(i.url=t.getAttribute("data-src")||t.currentSrc||t.src,i.alt=t.getAttribute("data-alt")||t.alt),!i.url)return}a.one("zoom.destroy",function(o,t){a.off(".zoom"),u.style.position=o,u.style.overflow=t,c.onload=null,r.remove()}.bind(this,u.style.position,u.style.overflow)),c.onload=function(){var t=d.zoom(u,o,c,i.magnify);function e(o){t.init(),t.move(o),r.stop().fadeTo(d.support.opacity?i.duration:0,1,!!d.isFunction(i.onZoomIn)&&i.onZoomIn.call(c))}function n(){r.stop().fadeTo(i.duration,0,!!d.isFunction(i.onZoomOut)&&i.onZoomOut.call(c))}"grab"===i.on?a.on("mousedown.zoom",function(o){1===o.which&&(d(document).one("mouseup.zoom",function(){n(),d(document).off(l,t.move)}),e(o),d(document).on(l,t.move),o.preventDefault())}):"click"===i.on?a.on("click.zoom",function(o){return m?void 0:(m=!0,e(o),d(document).on(l,t.move),d(document).one("click.zoom",function(){n(),m=!1,d(document).off(l,t.move)}),!1)}):"toggle"===i.on?a.on("click.zoom",function(o){m?n():e(o),m=!m}):"mouseover"===i.on&&(t.init(),a.on("mouseenter.zoom",e).on("mouseleave.zoom",n).on(l,t.move)),i.touch&&a.on("touchstart.zoom",function(o){o.preventDefault(),s?(s=!1,n()):(s=!0,e(o.originalEvent.touches[0]||o.originalEvent.changedTouches[0]))}).on("touchmove.zoom",function(o){o.preventDefault(),t.move(o.originalEvent.touches[0]||o.originalEvent.changedTouches[0])}).on("touchend.zoom",function(o){o.preventDefault(),s&&(s=!1,n())}),d.isFunction(i.callback)&&i.callback.call(c)},c.setAttribute("role","presentation"),c.alt=i.alt||"",c.src=i.url})},d.fn.zoom.defaults=n}(window.jQuery); !function(m){var a=!0;m.flexslider=function(g,e){var h=m(g);"undefined"==typeof e.rtl&&"rtl"==m("html").attr("dir")&&(e.rtl=!0),h.vars=m.extend({},m.flexslider.defaults,e);var t,c=h.vars.namespace,S=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,u=("ontouchstart"in window||S||window.DocumentTouch&&document instanceof DocumentTouch)&&h.vars.touch,l="click touchend MSPointerUp keyup",d="",x="vertical"===h.vars.direction,y=h.vars.reverse,b=0'),1").attr("href","#").text(n),"thumbnails"===h.vars.controlNav&&(e=m("").attr("src",t.attr("data-thumb"))),""!==t.attr("data-thumb-alt")&&e.attr("alt",t.attr("data-thumb-alt")),"thumbnails"===h.vars.controlNav&&!0===h.vars.thumbCaptions){var r=t.attr("data-thumbcaption");if(""!==r&&undefined!==r){var s=m("").addClass(c+"caption").text(r);e.append(s)}}var o=m("
  • ");e.appendTo(o),o.append("
  • "),h.controlNavScaffold.append(o),n++}h.controlsContainer?m(h.controlsContainer).append(h.controlNavScaffold):h.append(h.controlNavScaffold),p.controlNav.set(),p.controlNav.active(),h.controlNavScaffold.delegate("a, img",l,function(e){if(e.preventDefault(),""===d||d===e.type){var t=m(this),a=h.controlNav.index(t);t.hasClass(c+"active")||(h.direction=a>h.currentSlide?"next":"prev",h.flexAnimate(a,h.vars.pauseOnAction))}""===d&&(d=e.type),p.setToClearWatchedEvent()})},setupManual:function(){h.controlNav=h.manualControls,p.controlNav.active(),h.controlNav.bind(l,function(e){if(e.preventDefault(),""===d||d===e.type){var t=m(this),a=h.controlNav.index(t);t.hasClass(c+"active")||(a>h.currentSlide?h.direction="next":h.direction="prev",h.flexAnimate(a,h.vars.pauseOnAction))}""===d&&(d=e.type),p.setToClearWatchedEvent()})},set:function(){var e="thumbnails"===h.vars.controlNav?"img":"a";h.controlNav=m("."+c+"control-nav li "+e,h.controlsContainer?h.controlsContainer:h)},active:function(){h.controlNav.removeClass(c+"active").eq(h.animatingTo).addClass(c+"active")},update:function(e,t){1'+h.count+"")):1===h.pagingCount?h.controlNavScaffold.find("li").remove():h.controlNav.eq(t).closest("li").remove(),p.controlNav.set(),1
  • '+h.vars.prevText+'
  • '+h.vars.nextText+"
  • ");h.customDirectionNav?h.directionNav=h.customDirectionNav:h.controlsContainer?(m(h.controlsContainer).append(e),h.directionNav=m("."+c+"direction-nav li a",h.controlsContainer)):(h.append(e),h.directionNav=m("."+c+"direction-nav li a",h)),p.directionNav.update(),h.directionNav.bind(l,function(e){var t;e.preventDefault(),""!==d&&d!==e.type||(t=m(this).hasClass(c+"next")?h.getTarget("next"):h.getTarget("prev"),h.flexAnimate(t,h.vars.pauseOnAction)),""===d&&(d=e.type),p.setToClearWatchedEvent()})},update:function(){var e=c+"disabled";1===h.pagingCount?h.directionNav.addClass(e).attr("tabindex","-1"):h.vars.animationLoop?h.directionNav.removeClass(e).removeAttr("tabindex"):0===h.animatingTo?h.directionNav.removeClass(e).filter("."+c+"prev").addClass(e).attr("tabindex","-1"):h.animatingTo===h.last?h.directionNav.removeClass(e).filter("."+c+"next").addClass(e).attr("tabindex","-1"):h.directionNav.removeClass(e).removeAttr("tabindex")}},pausePlay:{setup:function(){var e=m('
    ');h.controlsContainer?(h.controlsContainer.append(e),h.pausePlay=m("."+c+"pauseplay a",h.controlsContainer)):(h.append(e),h.pausePlay=m("."+c+"pauseplay a",h)),p.pausePlay.update(h.vars.slideshow?c+"pause":c+"play"),h.pausePlay.bind(l,function(e){e.preventDefault(),""!==d&&d!==e.type||(m(this).hasClass(c+"pause")?(h.manualPause=!0,h.manualPlay=!1,h.pause()):(h.manualPause=!1,h.manualPlay=!0,h.play())),""===d&&(d=e.type),p.setToClearWatchedEvent()})},update:function(e){"play"===e?h.pausePlay.removeClass(c+"pause").addClass(c+"play").html(h.vars.playText):h.pausePlay.removeClass(c+"play").addClass(c+"pause").html(h.vars.pauseText)}},touch:function(){var i,r,s,o,l,d,e,n,c,u=!1,t=0,a=0,v=0;if(S){g.style.msTouchAction="none",g._gesture=new MSGesture,(g._gesture.target=g).addEventListener("MSPointerDown",function p(e){e.stopPropagation(),h.animating?e.preventDefault():(h.pause(),g._gesture.addPointer(e.pointerId),v=0,o=x?h.h:h.w,d=Number(new Date),s=b&&y&&h.animatingTo===h.last?0:b&&y?h.limit-(h.itemW+h.vars.itemMargin)*h.move*h.animatingTo:b&&h.currentSlide===h.last?h.limit:b?(h.itemW+h.vars.itemMargin)*h.move*h.currentSlide:y?(h.last-h.currentSlide+h.cloneOffset)*o:(h.currentSlide+h.cloneOffset)*o)},!1),g._slider=h,g.addEventListener("MSGestureChange",function m(e){e.stopPropagation();var t=e.target._slider;if(!t)return;var a=-e.translationX,n=-e.translationY;if(v+=x?n:a,l=(t.vars.rtl?-1:1)*v,u=x?Math.abs(v)o/2)?t.flexAnimate(n,t.vars.pauseOnAction):w||t.flexAnimate(t.currentSlide,t.vars.pauseOnAction,!0)}s=l=r=i=null,v=0},!1)}else e=function(e){h.animating?e.preventDefault():(window.navigator.msPointerEnabled||1===e.touches.length)&&(h.pause(),o=x?h.h:h.w,d=Number(new Date),t=e.touches[0].pageX,a=e.touches[0].pageY,s=b&&y&&h.animatingTo===h.last?0:b&&y?h.limit-(h.itemW+h.vars.itemMargin)*h.move*h.animatingTo:b&&h.currentSlide===h.last?h.limit:b?(h.itemW+h.vars.itemMargin)*h.move*h.currentSlide:y?(h.last-h.currentSlide+h.cloneOffset)*o:(h.currentSlide+h.cloneOffset)*o,i=x?a:t,r=x?t:a,g.addEventListener("touchmove",n,!1),g.addEventListener("touchend",c,!1))},n=function(e){t=e.touches[0].pageX,a=e.touches[0].pageY,l=x?i-a:(h.vars.rtl?-1:1)*(i-t);(!(u=x?Math.abs(l)o/2)?h.flexAnimate(a,h.vars.pauseOnAction):w||h.flexAnimate(h.currentSlide,h.vars.pauseOnAction,!0)}g.removeEventListener("touchend",c,!1),s=l=r=i=null},g.addEventListener("touchstart",e,!1)},resize:function(){!h.animating&&h.is(":visible")&&(b||h.doMath(),w?p.smoothHeight():b?(h.slides.width(h.computedW),h.update(h.pagingCount),h.setProps()):x?(h.viewport.height(h.h),h.setProps(h.h,"setTotal")):(h.vars.smoothHeight&&p.smoothHeight(),h.newSlides.width(h.computedW),h.setProps(h.computedW,"setTotal")))},smoothHeight:function(e){if(!x||w){var t=w?h:h.viewport;e?t.animate({height:h.slides.eq(h.animatingTo).innerHeight()},e):t.innerHeight(h.slides.eq(h.animatingTo).innerHeight())}},sync:function(e){var t=m(h.vars.sync).data("flexslider"),a=h.animatingTo;switch(e){case"animate":t.flexAnimate(a,h.vars.pauseOnAction,!1,!0);break;case"play":t.playing||t.asNav||t.play();break;case"pause":t.pause()}},uniqueID:function(e){return e.filter("[id]").add(e.find("[id]")).each(function(){var e=m(this);e.attr("id",e.attr("id")+"_clone")}),e},pauseInvisible:{visProp:null,init:function(){var e=p.pauseInvisible.getHiddenProp();if(e){var t=e.replace(/[H|h]idden/,"")+"visibilitychange";document.addEventListener(t,function(){p.pauseInvisible.isHidden()?h.startTimeout?clearTimeout(h.startTimeout):h.pause():h.started?h.play():0h.currentSlide?"next":"prev"),v&&1===h.pagingCount&&(h.direction=h.currentItemh.limit&&1!==h.visible?h.limit:l):0===h.currentSlide&&e===h.count-1&&h.vars.animationLoop&&"next"!==h.direction?y?(h.count+h.cloneOffset)*d:0:h.currentSlide===h.last&&0===e&&h.vars.animationLoop&&"prev"!==h.direction?y?0:(h.count+1)*d:y?(h.count-1-e+h.cloneOffset)*d:(e+h.cloneOffset)*d,h.setProps(o,"",h.vars.animationSpeed),h.transitions?(h.vars.animationLoop&&h.atEnd||(h.animating=!1,h.currentSlide=h.animatingTo),h.container.unbind("webkitTransitionEnd transitionend"),h.container.bind("webkitTransitionEnd transitionend",function(){clearTimeout(h.ensureAnimationEnd),h.wrapup(d)}),clearTimeout(h.ensureAnimationEnd),h.ensureAnimationEnd=setTimeout(function(){h.wrapup(d)},h.vars.animationSpeed+100)):h.container.animate(h.args,h.vars.animationSpeed,h.vars.easing,function(){h.wrapup(d)})}h.vars.smoothHeight&&p.smoothHeight(h.vars.animationSpeed)}},h.wrapup=function(e){w||b||(0===h.currentSlide&&h.animatingTo===h.last&&h.vars.animationLoop?h.setProps(e,"jumpEnd"):h.currentSlide===h.last&&0===h.animatingTo&&h.vars.animationLoop&&h.setProps(e,"jumpStart")),h.animating=!1,h.currentSlide=h.animatingTo,h.vars.after(h)},h.animateSlides=function(){!h.animating&&a&&h.flexAnimate(h.getTarget("next"))},h.pause=function(){clearInterval(h.animatedSlides),h.animatedSlides=null,h.playing=!1,h.vars.pausePlay&&p.pausePlay.update("play"),h.syncExists&&p.sync("pause")},h.play=function(){h.playing&&clearInterval(h.animatedSlides),h.animatedSlides=h.animatedSlides||setInterval(h.animateSlides,h.vars.slideshowSpeed),h.started=h.playing=!0,h.vars.pausePlay&&p.pausePlay.update("pause"),h.syncExists&&p.sync("play")},h.stop=function(){h.pause(),h.stopped=!0},h.canAdvance=function(e,t){var a=v?h.pagingCount-1:h.last;return!!t||(v&&h.currentItem===h.count-1&&0===e&&"prev"===h.direction||(!v||0!==h.currentItem||e!==h.pagingCount-1||"next"===h.direction)&&((e!==h.currentSlide||v)&&(!!h.vars.animationLoop||(!h.atEnd||0!==h.currentSlide||e!==a||"next"===h.direction)&&(!h.atEnd||h.currentSlide!==a||0!==e||"next"!==h.direction))))},h.getTarget=function(e){return"next"===(h.direction=e)?h.currentSlide===h.last?0:h.currentSlide+1:0===h.currentSlide?h.last:h.currentSlide-1},h.setProps=function(e,t,a){var n,i=(n=e||(h.itemW+h.vars.itemMargin)*h.move*h.animatingTo,function(){if(b)return"setTouch"===t?e:y&&h.animatingTo===h.last?0:y?h.limit-(h.itemW+h.vars.itemMargin)*h.move*h.animatingTo:h.animatingTo===h.last?h.limit:n;switch(t){case"setTotal":return y?(h.count-1-h.currentSlide+h.cloneOffset)*e:(h.currentSlide+h.cloneOffset)*e;case"setTouch":return e;case"jumpEnd":return y?e:h.count*e;case"jumpStart":return y?h.count*e:e;default:return e}}()*(h.vars.rtl?1:-1)+"px");h.transitions&&(i=x?"translate3d(0,"+i+",0)":"translate3d("+parseInt(i)+"px,0,0)",a=a!==undefined?a/1e3+"s":"0s",h.container.css("-"+h.pfx+"-transition-duration",a),h.container.css("transition-duration",a)),h.args[h.prop]=i,(h.transitions||a===undefined)&&h.container.css(h.args),h.container.css("transform",i)},h.setup=function(e){var t,a;w?(h.vars.rtl?h.slides.css({width:"100%","float":"right",marginLeft:"-100%",position:"relative"}):h.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"}),"init"===e&&(u?h.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+h.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(h.currentSlide).css({opacity:1,zIndex:2}):0==h.vars.fadeFirstSlide?h.slides.css({opacity:0,display:"block",zIndex:1}).eq(h.currentSlide).css({zIndex:2}).css({opacity:1}):h.slides.css({opacity:0,display:"block",zIndex:1}).eq(h.currentSlide).css({zIndex:2}).animate({opacity:1},h.vars.animationSpeed,h.vars.easing)),h.vars.smoothHeight&&p.smoothHeight()):("init"===e&&(h.viewport=m('
    ').css({overflow:"hidden",position:"relative"}).appendTo(h).append(h.container),h.cloneCount=0,h.cloneOffset=0,y&&(a=m.makeArray(h.slides).reverse(),h.slides=m(a),h.container.empty().append(h.slides))),h.vars.animationLoop&&!b&&(h.cloneCount=2,h.cloneOffset=1,"init"!==e&&h.container.find(".clone").remove(),h.container.append(p.uniqueID(h.slides.first().clone().addClass("clone")).attr("aria-hidden","true")).prepend(p.uniqueID(h.slides.last().clone().addClass("clone")).attr("aria-hidden","true"))),h.newSlides=m(h.vars.selector,h),t=y?h.count-1-h.currentSlide+h.cloneOffset:h.currentSlide+h.cloneOffset,x&&!b?(h.container.height(200*(h.count+h.cloneCount)+"%").css("position","absolute").width("100%"),setTimeout(function(){h.newSlides.css({display:"block"}),h.doMath(),h.viewport.height(h.h),h.setProps(t*h.h,"init")},"init"===e?100:0)):(h.container.width(200*(h.count+h.cloneCount)+"%"),h.setProps(t*h.computedW,"init"),setTimeout(function(){h.doMath(),h.vars.rtl?h.newSlides.css({width:h.computedW,marginRight:h.computedM,"float":"right",display:"block"}):h.newSlides.css({width:h.computedW,marginRight:h.computedM,"float":"left",display:"block"}),h.vars.smoothHeight&&p.smoothHeight()},"init"===e?100:0)));b||h.slides.removeClass(c+"active-slide").eq(h.currentSlide).addClass(c+"active-slide"),h.vars.init(h)},h.doMath=function(){var e=h.slides.first(),t=h.vars.itemMargin,a=h.vars.minItems,n=h.vars.maxItems;h.w=h.viewport===undefined?h.width():h.viewport.width(),h.isFirefox&&(h.w=h.width()),h.h=e.height(),h.boxPadding=e.outerWidth()-e.width(),b?(h.itemT=h.vars.itemWidth+t,h.itemM=t,h.minW=a?a*h.itemT:h.w,h.maxW=n?n*h.itemT-t:h.w,h.itemW=h.minW>h.w?(h.w-t*(a-1))/a:h.maxWh.w?h.w:h.vars.itemWidth,h.visible=Math.floor(h.w/h.itemW),h.move=0h.w?h.itemW*(h.count-1)+t*(h.count-1):(h.itemW+t)*h.count-h.w-t):(h.itemW=h.w,h.itemM=t,h.pagingCount=h.count,h.last=h.count-1),h.computedW=h.itemW-h.boxPadding,h.computedM=h.itemM},h.update=function(e,t){h.doMath(),b||(eh.controlNav.length?p.controlNav.update("add"):("remove"===t&&!b||h.pagingCounth.last&&(h.currentSlide-=1,h.animatingTo-=1),p.controlNav.update("remove",h.last))),h.vars.directionNav&&p.directionNav.update()},h.addSlide=function(e,t){var a=m(e);h.count+=1,h.last=h.count-1,x&&y?t!==undefined?h.slides.eq(h.count-t).after(a):h.container.prepend(a):t!==undefined?h.slides.eq(t).before(a):h.container.append(a),h.update(t,"add"),h.slides=m(h.vars.selector+":not(.clone)",h),h.setup(),h.vars.added(h)},h.removeSlide=function(e){var t=isNaN(e)?h.slides.index(m(e)):e;h.count-=1,h.last=h.count-1,isNaN(e)?m(e,h.slides).remove():x&&y?h.slides.eq(h.last).remove():h.slides.eq(e).remove(),h.doMath(),h.update(t,"remove"),h.slides=m(h.vars.selector+":not(.clone)",h),h.setup(),h.vars.removed(h)},p.init()},m(window).blur(function(e){a=!1}).focus(function(e){a=!0}),m.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:!1,fadeFirstSlide:!0,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",customDirectionNav:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,isFirefox:!1,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){},init:function(){},rtl:!1},m.fn.flexslider=function(n){if(n===undefined&&(n={}),"object"==typeof n)return this.each(function(){var e=m(this),t=n.selector?n.selector:".slides > li",a=e.find(t);1===a.length&&!1===n.allowOneSlide||0===a.length?(a.fadeIn(400),n.start&&n.start(e)):e.data("flexslider")===undefined&&new m.flexslider(this,n)});var e=m(this).data("flexslider");switch(n){case"play":e.play();break;case"pause":e.pause();break;case"stop":e.stop();break;case"next":e.flexAnimate(e.getTarget("next"),!0);break;case"prev":case"previous":e.flexAnimate(e.getTarget("prev"),!0);break;default:"number"==typeof n&&e.flexAnimate(n,!0)}}}(jQuery); !function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.PhotoSwipe=t()}(this,function(){"use strict";return function(p,i,e,t){var f={features:null,bind:function(e,t,n,i){var o=(i?"remove":"add")+"EventListener";t=t.split(" ");for(var a=0;a=Gt()-1&&i<0)&&(e=wt.x+i*y.mainScrollEndFriction)}wt.x=e,nt(e,W)}function u(e,t){var n=bt[e]-Xe[e];return Ye[e]+He[e]+n-t/q*n}function g(e,t){e.x=t.x,e.y=t.y,t.id&&(e.id=t.id)}function m(e){e.x=Math.round(e.x),e.y=Math.round(e.y)}function w(e,t){var n=$t(h.currItem,Be,e);return t&&(Re=n),n}function b(e){return e||(e=h.currItem),e.initialZoomLevel}function I(e){return e||(e=h.currItem),0t.min[e]?(n[e]=t.min[e],!0):n[e]Re.min[e]||rRe.min[e]&&(n=y.panEndFriction,Re.min[e],i=Re.min[e]-Ye[e]),(i<=0||u<0)&&1ft.x&&(a=ft.x)):Re.min.x!==Re.max.x&&(o=r)):(rh.currItem.fitRatio&&(We[e]+=t[e]*n)}function L(e){if(!("mousedown"===e.type&&0h.currItem.fitRatio&&Rt(ge):Ft())}}var N,U,H,Y,W,B,G,X,V,K,q,$,j,J,Q,ee,te,ne,ie,oe,ae,re,le,se,ue,ce,de,me,pe,fe,he,ye,xe,ve,ge,we,be,Ie,Ce,De,Te,Me,Se,Ae,Ee,Oe,ke,Re,Pe,Ze,Fe,Le,ze,_e,Ne,Ue,He={x:0,y:0},Ye={x:0,y:0},We={x:0,y:0},Be={},Ge=0,Xe={},Ve={x:0,y:0},Ke=0,qe=!0,$e=[],je={},Je=!1,Qe={},et=function(e){Pe&&(e&&(K>h.currItem.fitRatio?Je||(jt(h.currItem,!1,!0),Je=!0):Je&&(jt(h.currItem),Je=!1)),o(Pe,We.x,We.y,K))},tt=function(e){e.container&&o(e.container.style,e.initialPosition.x,e.initialPosition.y,e.initialZoomLevel,e)},nt=function(e,t){t[re]=$+e+"px, 0px"+j},it=null,ot=function(){it&&(f.unbind(document,"mousemove",ot),f.addClass(p,"pswp--has_mouse"),y.mouseUsed=!0,x("mouseUsed")),it=setTimeout(function(){it=null},100)},at={},rt=0,lt={shout:x,listen:a,viewportSize:Be,options:y,isMainScrollAnimating:function(){return Ze},getZoomLevel:function(){return K},getCurrentIndex:function(){return Y},isDragging:function(){return Ce},isZooming:function(){return Oe},setScrollOffset:function(e,t){Xe.x=e,fe=Xe.y=t,x("updateScrollOffset",Xe)},applyZoomPan:function(e,t,n,i){We.x=t,We.y=n,K=e,et(i)},init:function(){if(!N&&!U){var e;h.framework=f,h.template=p,h.bg=f.getChildByClass(p,"pswp__bg"),de=p.className,N=!0,he=f.detectFeatures(),ue=he.raf,ce=he.caf,re=he.transform,pe=he.oldIE,h.scrollWrap=f.getChildByClass(p,"pswp__scroll-wrap"),h.container=f.getChildByClass(h.scrollWrap,"pswp__container"),W=h.container.style,h.itemHolders=ee=[{el:h.container.children[0],wrap:0,index:-1},{el:h.container.children[1],wrap:0,index:-1},{el:h.container.children[2],wrap:0,index:-1}],ee[0].el.style.display=ee[2].el.style.display="none",function(){if(re){var e=he.perspective&&!se;return $="translate"+(e?"3d(":"("),j=he.perspective?", 0px)":")"}re="left",f.addClass(p,"pswp--ie"),nt=function(e,t){t.left=e+"px"},tt=function(e){var t=1=Gt())&&(Y=0),h.currItem=Bt(Y),(he.isOldIOSPhone||he.isOldAndroid)&&(qe=!1),p.setAttribute("aria-hidden","false"),y.modal&&(qe?p.style.position="fixed":(p.style.position="absolute",p.style.top=f.getScrollY()+"px")),fe===undefined&&(x("initialLayout"),fe=me=f.getScrollY());var n="pswp--open ";for(y.mainClass&&(n+=y.mainClass+" "),y.showHideOpacity&&(n+="pswp--animate_opacity "),n+=se?"pswp--touch":"pswp--notouch",n+=he.animationName?" pswp--css_animation":"",n+=he.svg?" pswp--svg":"",f.addClass(p,n),h.updateSize(),B=-1,Ke=null,e=0;e<3;e++)nt((e+B)*Ve.x,ee[e].el.style);pe||f.bind(h.scrollWrap,X,h),a("initialZoomInEnd",function(){h.setContent(ee[0],Y-1),h.setContent(ee[2],Y+1),ee[0].el.style.display=ee[2].el.style.display="block",y.focus&&p.focus(),f.bind(document,"keydown",h),he.transform&&f.bind(h.scrollWrap,"click",h),y.mouseUsed||f.bind(document,"mousemove",ot),f.bind(window,"resize scroll orientationchange",h),x("bindEvents")}),h.setContent(ee[1],Y),h.updateCurrItem(),x("afterInit"),qe||(J=setInterval(function(){rt||Ce||Oe||K!==h.currItem.initialZoomLevel||h.updateSize()},1e3)),f.addClass(p,"pswp--visible")}},close:function(){N&&(U=!(N=!1),x("close"),f.unbind(window,"resize scroll orientationchange",h),f.unbind(window,"scroll",V.scroll),f.unbind(document,"keydown",h),f.unbind(document,"mousemove",ot),he.transform&&f.unbind(h.scrollWrap,"click",h),Ce&&f.unbind(window,G,h),clearTimeout(ye),x("unbindEvents"),Xt(h.currItem,null,!0,h.destroy))},destroy:function(){x("destroy"),Ut&&clearTimeout(Ut),p.setAttribute("aria-hidden","true"),p.className=de,J&&clearInterval(J),f.unbind(h.scrollWrap,X,h),f.unbind(window,"scroll",h),Ct(),S(),Qe=null},panTo:function(e,t,n){n||(e>Re.min.x?e=Re.min.x:eRe.min.y?t=Re.min.y:th.currItem.initialZoomLevel+h.currItem.initialZoomLevel/15&&(Ne=!0);var i=1,o=b(),a=I();if(nRe.min[t]?i.backAnimDestination[t]=Re.min[t]:We[t]=Gt()&&(Y=y.loop?0:Gt()-1,o=!0),o&&!y.loop||(Ke+=i,Ge-=i,n=!0));var l,s=Ve.x*Ge,u=Math.abs(s-wt.x);return l=n||s>wt.x==0The image could not be loaded.',forceProgressiveLoading:!1,preload:[1,1],getNumItemsFn:function(){return Ht.length}},$t=function(e,t,n){if(!e.src||e.loadError)return e.w=e.h=0,e.initialZoomLevel=e.fitRatio=1,e.bounds={center:{x:0,y:0},max:{x:0,y:0},min:{x:0,y:0}},e.initialPosition=e.bounds.center,e.bounds;var i=!n;if(i&&(e.vGap||(e.vGap={top:0,bottom:0}),x("parseVerticalMargin",e)),Vt.x=t.x,Vt.y=t.y-e.vGap.top-e.vGap.bottom,i){var o=Vt.x/e.w,a=Vt.y/e.h;e.fitRatio=oVt.x?Math.round(Vt.x-t):i.center.x,i.max.y=n>Vt.y?Math.round(Vt.y-n)+e.vGap.top:i.center.y,i.min.x=t>Vt.x?0:i.center.x,i.min.y=n>Vt.y?e.vGap.top:i.center.y}(e,e.w*n,e.h*n),i&&n===e.initialZoomLevel&&(e.initialPosition=e.bounds.center),e.bounds):void 0},jt=function(e,t,n){if(e.src){t||(t=e.container.lastChild);var i=n?e.w:Math.round(e.w*e.fitRatio),o=n?e.h:Math.round(e.h*e.fitRatio);e.placeholder&&!e.loaded&&(e.placeholder.style.width=i+"px",e.placeholder.style.height=o+"px"),t.style.width=i+"px",t.style.height=o+"px"}};n("Controller",{publicMethods:{lazyLoadItem:function(e){e=s(e);var t=Bt(e);t&&(!t.loaded&&!t.loading||Q)&&(x("gettingData",e,t),t.src&&zt(t))},initController:function(){f.extend(y,qt,!0),h.items=Ht=e,Bt=h.getItemAt,Gt=y.getNumItemsFn,y.loop,Gt()<3&&(y.loop=!1),a("beforeChange",function(e){var t,n=y.preload,i=null===e||0<=e,o=Math.min(n[0],Gt()),a=Math.min(n[1],Gt());for(t=1;t<=(i?a:o);t++)h.lazyLoadItem(Y+t);for(t=1;t<=(i?o:a);t++)h.lazyLoadItem(Y-t)}),a("initialLayout",function(){h.currItem.initialLayout=y.getThumbBoundsFn&&y.getThumbBoundsFn(Y)}),a("mainScrollAnimComplete",Nt),a("initialZoomInEnd",Nt),a("destroy",function(){for(var e,t=0;t=Re.max.x&&n<=Re.min.y&&n>=Re.max.y)&&e.preventDefault(),h.panTo(t,n)},toggleDesktopZoom:function(e){e=e||{x:Be.x/2+Xe.x,y:Be.y/2+Xe.y};var t=y.getDoubleTapZoom(!0,h.currItem),n=K===t;h.mouseZoomedIn=!n,h.zoomTo(n?h.currItem.initialZoomLevel:t,e,333),f[(n?"remove":"add")+"Class"](p,"pswp--zoomed-in")}}});function nn(){return yn.hash.substring(1)}function on(){rn&&clearTimeout(rn),sn&&clearTimeout(sn)}function an(){var e=nn(),t={};if(e.length<5)return t;var n,i=e.split("&");for(n=0;n-1&&(c.onTap(),d=!0);if(d){a.stopPropagation&&a.stopPropagation(),r=!0;var h=b.features.isOldAndroid?600:30;s=setTimeout(function(){r=!1},h)}},B=function(){return!a.likelyTouchDevice||q.mouseUsed||screen.width>q.fitControlsWidth},C=function(a,c,d){b[(d?"add":"remove")+"Class"](a,"pswp__"+c)},D=function(){var a=1===q.getNumItemsFn();a!==p&&(C(d,"ui--one-slide",a),p=a)},E=function(){C(i,"share-modal--hidden",y)},F=function(){return y=!y,y?(b.removeClass(i,"pswp__share-modal--fade-in"),setTimeout(function(){y&&E()},300)):(E(),setTimeout(function(){y||b.addClass(i,"pswp__share-modal--fade-in")},30)),y||H(),!1},G=function(b){b=b||window.event;var c=b.target||b.srcElement;return a.shout("shareLinkClick",b,c),!!c.href&&(!!c.hasAttribute("download")||(window.open(c.href,"pswp_share","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,top=100,left="+(window.screen?Math.round(screen.width/2-275):100)),y||F(),!1))},H=function(){for(var a,b,c,d,e,f="",g=0;g