var VM=VM||{};VM.PhotoViewer={photos:[],count:0,baseUrl:"",siteId:null,notrack:!1,slider:null,$galleryContainer:null,$galleryContents:null,$galleryClose:null,$galleryCloseBg:null,$galleryExpand:null,$container:null,$imgContainer:null,$sliderCurrent:null,$thumbsContainer:null,$galleryStrip:null,$thumbs:null,$caption:null,$byline:null,thumbWidth:0,thumbGutter:0,thumbsWidth:0,$thumbsPrev:null,$mask:null,$modal:null,thumbsPopulated:!1,thumbTimer:0,onPopupGalleryClosed:null,init:function(){this.$container=$("#slider");this.$container.length&&(this.notrack=this.$container.data("notrack")||!1,this.$galleryContainer=$("#gallery-c"),this.$galleryContents=this.$galleryContainer.children(),this.siteId=this.$container.data("site").toString(),this.baseUrl=window.location.pathname+(window.location.search?"&":"?"),this.reset(),this.$container.removeClass("nojs"),this.$imgContainer=$("#sliderImgs"),this.$sliderCurrent=$("#galleryStatsCurrent"),this.populatePhotos(),this.sliderInit(),this.photos.length>1&&(this.$caption=$("#galleryCaption"),this.$byline=$("#galleryByline"),$("#sliderPrev").removeClass("hidden").click(this.onPrevClick),$("#sliderNext").removeClass("hidden").click(this.onNextClick),this.$galleryExpand=$("#galleryExpand").removeClass("hidden").click(this.onExpandClick),this.thumbsInit()),$(document).keyup(function(n){switch(n.keyCode){case 27:VM.PhotoViewer.onClose();break;case 37:VM.PhotoViewer.swipe.prev();break;case 39:VM.PhotoViewer.swipe.next()}}))},reset:function(){this.photos=[];this.count=0;this.thumbsWidth=0},populatePhotos:function(){var n=this,t=n.$container.data("width"),i=n.$container.data("height"),r=t+"/"+i;this.$imgContainer.find(".galleryWrap").each(function(u){var f=$(this),e={src:f.data("src"),thumb:f.data("thumb"),isvideo:f.hasClass("video"),title:this.title,byline:f.data("byline")},o=f.data("width"),s=f.data("height");n.photos.push(e);u>0&&f.append('<img class="blank'+(o<t||s<i?" oob":"")+'" src="/images/blank.gif" style="aspect-ratio: '+r+';">')});this.count=this.photos.length;$("#galleryStatsOf").text(this.count);this.preload(1);this.preload(this.count-1)},populateThumbs:function(){var t,n,r,i;if(!this.thumbsPopulated&&this.$galleryStrip&&this.$galleryStrip.is(":visible")){for(t=this.$thumbs.children().first(),this.thumbGutter=parseInt(t.css("marginLeft").replace("auto","0"),10)+parseInt(t.css("marginRight"),10),this.thumbWidth=t.width()+this.thumbGutter,this.thumbsWidth=this.photos.length*this.thumbWidth,this.$thumbs.css({width:this.thumbsWidth}),n=0;n<this.photos.length;n++)r=this.$thumbs.find("li").eq(n),i=this.photos[n],r.append($("<img />").attr("src",i.thumb).attr("alt",i.title));this.thumbsPopulated=!0}},thumbsInit:function(){this.$thumbs=$("#galleryThumbs");this.$thumbs.length&&(this.$thumbsContainer=$("#galleryThumbsArea").on("click",".galleryThumb",this.onThumbClick),this.$galleryStrip=$("#galleryStrip").on("click",".galleryThumbBt",this.onChangeThumbsClick).removeClass("nojs"),this.populateThumbs(),this.$thumbsPrev=$("#galleryThumbsPrev"),this.$thumbsNext=$("#galleryThumbsNext"),this.thumbsControls())},thumbsControls:function(){this.$container.length&&this.$thumbsContainer&&(this.thumbsWidth-this.thumbGutter<=this.$thumbsContainer.width()?(this.$thumbsPrev.hide(),this.$thumbsNext.hide()):(this.$thumbsPrev.show().toggleClass("hidden"),this.$thumbsNext.show().toggleClass("hidden")))},sliderInit:function(){var n=this;this.swipe=new Carousel(this.$container.get(0),{callback:function(t){n.onSwipe.call(n,t.index,t.seats[t.index])}})},onPrevClick:function(n){n.preventDefault();VM.PhotoViewer.swipe.prev()},onNextClick:function(n){n.preventDefault();VM.PhotoViewer.swipe.next()},onSwipe:function(n,t){if(!VM.PhotoViewer.notrack&&VM.Track.isTracking()){var i=$(t).children("div");i.hasClass("viewed")||(i.addClass("viewed"),VM.Track.trackPageview({page_path:VM.PhotoViewer.baseUrl+"pic="+(n+1),page_title:i.attr("title")||i.data("src").split(";")[0]}))}this.setCurrentIndex(n);this.preload(n-1);this.preload(n);this.preload(n+1)},setCurrentIndex:function(n){var t=n+1,i;this.count===2&&(t===3&&(t=1),t===4&&(t=2));i=this.photos[t-1];this.$caption.text(i.title);this.$byline.length&&this.$byline.text(i.byline).toggleClass("caption-byline",i.byline.length>0);this.$sliderCurrent.text(t)},preload:function(n){var t,i;n>=this.count&&(n=0);n===-1&&(n=this.count-1);t=this.$imgContainer.find("li").eq(n).children(".galleryWrap");t.hasClass("preloaded")||(i=this.photos[n],t.children("img").attr("src",i.src).attr("alt",i.title),t.addClass("preloaded"))},onChangeThumbsClick:function(n){n.preventDefault();var t=VM.PhotoViewer,e=$(this),o=t.$thumbsContainer.width(),s=t.$thumbs.position(),h=e.hasClass("next"),r=Math.floor(o/t.thumbWidth),u=Math.ceil(t.count/r),i=Math.ceil(Math.abs(s.left)/(r*t.thumbWidth)),f;h?i+1>=u?i=0:i++:i-1<0?i=u-1:i--;f=-(i*r*t.thumbWidth);t.$thumbs.animate({left:f},500)},onThumbClick:function(){var n=$(this).index();VM.PhotoViewer.preload(n);VM.PhotoViewer.swipe.slide(n)},onExpandClick:function(n){n&&n.preventDefault();VM.PhotoViewer.$galleryContainer.css("height",VM.PhotoViewer.$galleryContainer.height());VM.PhotoViewer.$mask?(VM.PhotoViewer.$galleryClose.removeClass("hidden"),VM.PhotoViewer.$galleryCloseBg.removeClass("hidden")):(VM.PhotoViewer.$mask=$('<div class="vm-modal-mask"><\/div>').appendTo("body"),VM.PhotoViewer.$modal=$('<div id="galleryContainer" class="vm-modal"><div class="vm-modal-content"><\/div><\/div>').appendTo("body"),VM.PhotoViewer.$galleryClose=$('<button id="galleryClose" class="ib" title="Close">&times;<\/button>').click(VM.PhotoViewer.onClose),VM.PhotoViewer.$container.append(VM.PhotoViewer.$galleryClose),VM.PhotoViewer.$galleryCloseBg=$('<div id="galleryCloseBg"><\/div>').appendTo(VM.PhotoViewer.$container));$("html").addClass("vm-modal-open");VM.PhotoViewer.$galleryExpand&&VM.PhotoViewer.$galleryExpand.addClass("hidden");VM.PhotoViewer.$mask.show();VM.PhotoViewer.$modal.show().find(".vm-modal-content").addClass("in").append(VM.PhotoViewer.$galleryContents);VM.PhotoViewer.swipe.setup();VM.PhotoViewer.setCurrentIndex(0)},onClose:function(){if(VM.PhotoViewer.$modal){if(!$("html").addClass("vm-modal-open"))return;VM.PhotoViewer.$galleryContainer.css("height","");$("html").removeClass("vm-modal-open");VM.PhotoViewer.$modal.hide().find(".vm-modal-content").removeClass("in");VM.PhotoViewer.$galleryContainer.append(VM.PhotoViewer.$galleryContents);VM.PhotoViewer.$galleryClose.addClass("hidden");VM.PhotoViewer.$galleryCloseBg.addClass("hidden");VM.PhotoViewer.$galleryExpand&&VM.PhotoViewer.$galleryExpand.removeClass("hidden");VM.PhotoViewer.$mask.hide();VM.PhotoViewer.swipe.setup();VM.PhotoViewer.setCurrentIndex(0);typeof VM.PhotoViewer.onPopupGalleryClosed=="function"&&VM.PhotoViewer.onPopupGalleryClosed()}}};$(function(){VM.PhotoViewer.init()});window.onresize=function(){VM.PhotoViewer.thumbsControls();VM.PhotoViewer.populateThumbs()}