Meetup.DomDeco.GalvPhotoViewer=function(){bindMethods(this)};(function(){var mdg=Meetup.DomDeco.GalvPhotoViewer;mdg.prototype.commentState=[];mdg.prototype.currentPhotoIndex=[0,null];mdg.prototype.elements={};mdg.prototype.imgFading=null;mdg.prototype.cachedImgs={};mdg.prototype.hashStack=null;mdg.prototype.forceReloader=null;mdg.prototype.isCaptionEditing=false;mdg.prototype.isFacetagging=false;mdg.prototype.isInFadeAnimation=false;mdg.prototype.isInNavAnimation=false;mdg.prototype.isLoadingImg=false;mdg.prototype.isMSIE=false;mdg.prototype.isPlayingSlide=false;mdg.prototype.isSafari=false;mdg.prototype.isShowingNav=false;mdg.prototype.isTaggable=false;mdg.prototype.isMemberSearchReady=false;mdg.prototype.pointerLoadingImg=null;mdg.prototype.pointerHitareaDelay=null;mdg.prototype.pointerSlideshow=null;mdg.prototype.pointerCommentLink=null;mdg.prototype.pointerTagLink=null;mdg.prototype.funcAddCommentCancel=null;mdg.prototype.funcEditCaptionCancel=null;mdg.prototype.funcEditComment={};mdg.prototype.funcDeleteComment={};var ids={boxOrigin:"D_photoBox",caption:"D_photoCaption",commentbox:"D_photoCommentBox",commentform:"T_commentForm",meta:"D_photoGallery_meta",oldnav:"D_albumNav",photo:"D_bigPhotoBody",photoviewer:"D_photoViewer",tags:"D_photoTags",tasks:"D_photoTasks",thumbs:"D_photoThumbs"};mdg.IS_INSTANCIATED=false;mdg.MAX_CHAR_CAPTION=250;mdg.MAX_CHAR_COMMENT=4900;mdg.HEX_ALERT_STARTCOLOR="#FF303C";mdg.HEX_HIGHLIGH_DEFAULT="#ffff00";mdg.PIX_CONTROLLER_OFFSET=16;mdg.OPAC_STRIP_BG=0.6;mdg.SEC_BOTTOMBAR_FLUCTUATE=0.15;mdg.SEC_COMMENTS_FADEIN=0.4;mdg.SEC_COMMENTS_FADEIN_DELAY=0.2;mdg.SEC_COMMENTS_FADEOUT=0.1;mdg.SEC_COMMENTS_FADEOUT_DELAY=0.1;mdg.SEC_FLASH_CANCEL=0.35;mdg.SEC_HIGHLIGHT_DEFAULT=0.6;mdg.SEC_META_FADEIN=0.5;mdg.SEC_META_FADEIN_DELAY=0.1;mdg.SEC_META_FADEOUT=0.1;mdg.SEC_META_FADEOUT_DELAY=0.2;mdg.SEC_NAV_HIDE=0.3;mdg.SEC_NAV_SHOW=0.45;mdg.SEC_PHOTO_FADEOUT=0.75;mdg.SEC_PHOTO_FADEIN=0.65;mdg.SEC_SCROLL_COMMENT=0.5;mdg.SEC_SCROLL_TOP=0.5;mdg.SEC_CACHED_FADEOUT=0.45;mdg.SEC_CACHED_FADEIN=0.4;mdg.MILSEC_PHOTO_BLUR_DELAY=500;mdg.MILSEC_NAVSCROLL_DELAY=350;mdg.MILSEC_IE_LOAD_CHECK_DELAY=500;mdg.MILSEC_SLIDESHOW_INTERVAL=3000;mdg.MILSEC_PHOTO_CHECK_LOADING=10;mdg.TRANS_BOTTOMBAR_FLUCTUATE="easeOutQuart";mdg.TRANS_CACHED_FADEIN="easeOutQuart";mdg.TRANS_HIGHLIGHT_DEFAULT="easeInOutQuad";mdg.TRANS_NAV_HIDE="easeInExpo";mdg.TRANS_SCROLL_COMMENT="easeOutExpo";mdg.TRANS_SCROLL_JOIN_LINK="easeOutExpo";mdg.TRANS_SHOW_NAV="easeOutQuint";mdg.TRANS_PHOTO_FADEIN="easeOutQuad";mdg.TRANS_PHOTO_FADEOUT="easeOutCubic";mdg.prototype.__repr__=function(){return"Meetup.DomDeco.GalvPhotoViewer"};mdg.prototype.decorate=function(el){if(Meetup.DomDeco.GalvPhotoViewer.IS_INSTANCIATED){LOG.error("Galvanized Photo Viewer is not designed to have multiple instances on one page.");return false}Meetup.DomDeco.GalvPhotoViewer.IS_INSTANCIATED=true;var elms=this.elements,MDG=Meetup.DomDeco.GalvPhotoViewer,MKD=MochiKit.DOM,MKS=MochiKit.Style,G1=MKD.getFirstElementByTagAndClassName;for(var i in ids){elms[i]=$(ids[i])}elms.thumbtable=G1("table",undefined,elms.thumbs);elms.captionDisplay=G1("p",null,elms.caption);elms.captionEdit=G1("div","J_PhotoCaptionEdit",elms.caption);elms.captionAdd=G1("input",null,elms.captionEdit);elms.photoWrap=G1("div","D_bigPhotoBodyWrap",elms.photoviewer);var forceReloader=document.getElementById("_PhotoViewerForceReload");if(forceReloader){this.forceReloader=new Meetup.ForceReload(forceReloader);if(this.forceReloader===false){return false}}this.window=window;this.currentPhotoIndex[0]=MDG.findPhotoPosition(Meetup.Data.photoAlbum.thumbnailPhotoId);if((Meetup.Data.photoAlbum.photos[0].id!=Meetup.Data.photoAlbum.thumbnailPhotoId)&&!window.location.hash){this.window.location.hash="#"+Meetup.Data.photoAlbum.thumbnailPhotoId}this.pushImgCache();this.isSafari=Meetup.UserAgent.isSafari();this.isMSIE=Meetup.UserAgent.isIE();elms.loading=MDG.buildLoading(document.body);elms.hitareaPhoto=MDG.buildHitareaPhoto(document.body);var img=this.getCurrentPhotoImg();this.imgDimension=MDG.smoothMochiKitObjectPoint(MKS.getElementDimensions(img));this.imgPosition=MDG.smoothMochiKitObjectPoint(MKS.getElementPosition(img));this.initColors();this.initController();this.initHiResolutionLink();this.initJoinLink();this.initPhotosGridViewLink();this.isTaggable=true;this.initFacetagLink();this.initTagLinks();this.initFixMsie();this.adjustPhotoViewerHeight();connect(window,"onresize",this.onWindowResize);this.animeIntro()};mdg.prototype.makeMembersearchReady=function(){this.isMemberSearchReady=true;this.membersearch.focus()};mdg.prototype.makeMembersearchClear=function(){this.isMemberSearchReady=false;this.resetMarquees()};mdg.prototype.initAddCommentLink=function(){var anchor=MochiKit.DOM.getFirstElementByTagAndClassName("a","J_LinkAddYourComment",this.elements.meta);if(anchor){anchor.href="#";this.pointerCommentLink=MochiKit.Signal.connect(anchor,"onclick",this.scrollToComment)}delete this.initAddCommentLink;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initAddCommentLink};mdg.prototype.initCharCounter=function(ev){Meetup.DomDeco.applyTo(MochiKit.DOM.getFirstElementByTagAndClassName("textarea",null,this.elements.captionEdit),Meetup.DomDeco.CharCounter);Meetup.DomDeco.applyTo(MochiKit.DOM.getFirstElementByTagAndClassName("textarea",null,this.elements.commentform),Meetup.DomDeco.CharCounter);delete this.initCharCounter;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initCharCounter};mdg.prototype.initColors=function(){this.colors={};var div=MochiKit.DOM.getFirstElementByTagAndClassName("div","D_boxbody",this.elements.boxOrigin);var color=Meetup.Tweener.parseColorValue(MochiKit.Style.getStyle(div,"background-color"));this.colors.ground=Meetup.Tweener.compileColor(color);this.colors.background=Meetup.Tweener.compileColor(Meetup.Tweener.parseColorValue(MochiKit.Style.getStyle($("C_page"),"background-color")));this.elements.meta.style.backgroundColor=this.colors.ground;delete this.initColors;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initColors};mdg.prototype.initCommentIds=function(){var lis=MochiKit.DOM.getElementsByTagAndClassName("li",null,this.elements.commentbox);var li,id;for(var i=0,len=lis.length;i<len;++i){li=lis[i];id=Meetup.DomDeco.GalvPhotoViewer.stringify(li.getAttribute("title"));li.removeAttribute("title");li.setAttribute("comment",id)}delete this.initCommentIds;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initCommentIds};mdg.prototype.initController=function(){this.controller={};var cont=this.controller;cont.wrap=DIV({"class":"J_controller"});cont.display=DIV({"class":"display"});cont.wrap.appendChild(cont.display);cont.interact=DIV({"class":"interact"});cont.wrap.appendChild(cont.interact);cont.interact.style.display="none";cont.pagerPrev=this.initControllerPager(cont);cont.pagerNext=this.initControllerPager(cont,true);delete this.initControllerPager;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initControllerPager;this.initControllerTracker(cont);this.controller.wrap.style.visibility="visible";delete this.initController;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initController};mdg.prototype.initControllerPager=function(parent,isNext){isNext=isNext||false;var result={};var name=isNext?"next":"prev";result.wrap=DIV({"class":"J_contPager "+name});var wrap=result.wrap;result.bg=DIV({"class":"bg"});var bg=result.bg;wrap.appendChild(bg);result.display=DIV({"class":"display"});wrap.appendChild(result.display);result.interact=DIV({"class":"interact"});var interact=result.interact;wrap.appendChild(interact);result.arrow=DIV({"class":"arrow"});var arrow=result.arrow;result.display.appendChild(arrow);parent.display.appendChild(wrap);if(isNext){interact.title=Meetup.Copy.next;connect(interact,"onclick",this.onControllerPagerNextClick);connect(interact,"onmouseover",this.onControllerPagerNextMouseIn);connect(interact,"onmouseout",this.onControllerPagerNextMouseOut)}else{interact.title=Meetup.Copy.previous;connect(interact,"onclick",this.onControllerPagerPrevClick);connect(interact,"onmouseover",this.onControllerPagerPrevMouseIn);connect(interact,"onmouseout",this.onControllerPagerPrevMouseOut)}interact.bg=bg;return result};mdg.prototype.initControllerTracker=function(cont){cont.tracker={};var o=cont.tracker;o.wrap=DIV({"class":"J_contTracker"});var wrap=o.wrap;o.bg=DIV({"class":"bg"});wrap.appendChild(o.bg);o.display=DIV({"class":"display"});wrap.appendChild(o.display);o.interact=DIV({"class":"interact"});wrap.appendChild(o.interact);o.current=SPAN({"class":"current"});o.display.appendChild(o.current);o.display.appendChild(document.createTextNode(" / "));o.outOf=SPAN({"class":"outof"});o.display.appendChild(o.outOf);cont.display.appendChild(o.wrap);delete this.initControllerTracker;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initControllerTracker};mdg.prototype.initEditCaptionLink=function(){var cancel=MochiKit.DOM.getFirstElementByTagAndClassName("a","J_LinkPhotoCaptionEditCancel",this.elements.captionEdit);cancel.onclick=this.closeCaptionEdit;this.elements.captionAdd.onclick=this.onClickCaptionEditAdd;var photo=Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]];if(photo.member.isCurrentUser||Meetup.Data.member.isCoord){this.makeEditCaptionLink(photo.caption.length>0)}delete this.initEditCaptionLink;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initEditCaptionLink};mdg.prototype.initFixMsie=function(){if(!this.isMSIE){delete this.initFixMsie;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initFixMsie;return}var ul=MochiKit.DOM.getFirstElementByTagAndClassName("ul",null,this.elements.tasks);var lis=MochiKit.DOM.getElementsByTagAndClassName("li",null,ul);for(var j=0,jlen=lis.length;j<jlen;++j){Meetup.DomDeco.GalvPhotoViewer.removeWhiteSpace(lis[j])}var chromes=[];chromes[chromes.length]=$("C_headerBody");chromes[chromes.length]=$("C_contextHeadBody");chromes[chromes.length]=$("C_pageBody");chromes[chromes.length]=$("C_footerBody");var len_chrome=chromes.length;var elm=chromes[0];var div=DIV({});MochiKit.Style.setStyle(div,{visibility:"hidden",width:"1em"});elm.parentNode.appendChild(div);var _1em=MochiKit.Style.getElementDimensions(div,"width");var _1emw=Number(_1em.w);var max_width=Math.round(80*_1em.w);var min_width=Math.round(62*_1em.w);elm.parentNode.removeChild(div);var func=function(){var i,chrome,size,width;for(i=0;i<len_chrome;++i){chrome=chromes[i];size=MochiKit.Style.getElementDimensions(chrome.parentNode);width=Number(size.w);if(width>max_width){chrome.style.width=max_width+"px"}else{if(width<min_width){chrome.style.width=min_width+"px"}}}};connect(window,"onresize",func);func();delete this.initFixMsie;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initFixMsie};mdg.findInputSubmit=function(parent){var result=[];var arr=MochiKit.DOM.getElementsByTagAndClassName("input",undefined,parent);var elm;for(var i=0,len=arr.length;i<len;++i){elm=arr[i];if((""+elm.getAttribute("type"))==="submit"){result[result.length]=elm}}return result};mdg.prototype.initJoinLink=function(){var MKDG=MochiKit.DOM.getFirstElementByTagAndClassName,foot=MKDG("div","D_boxfoot",this.elements.commentbox);if(!foot){return}var i,len,form,url,arr,submit,ancJoin=MKDG("a","joinGroup",foot),ancSign=MKDG("a","signUp",foot),button=MKDG("input","J_footJoinGroupButton",foot),win=this.window;if(ancJoin){ancJoin.parentNode.removeChild(ancJoin);url=Meetup.DomDeco.GalvPhotoViewer.stringify(ancJoin.getAttribute("href"));if(button){if(url){for(i=0,len=document.forms.length;i<len;++i){form=document.forms[i];if(url===Meetup.DomDeco.GalvPhotoViewer.stringify(form.getAttribute("action"))){break}}if(form){arr=Meetup.DomDeco.GalvPhotoViewer.findInputSubmit(form);if(arr.length>0){submit=arr[0];MochiKit.Signal.connect(button,"onclick",function(ev){submit.click(ev)})}}}}}else{if(ancSign){ancSign.parentNode.removeChild(ancSign);url=Meetup.DomDeco.GalvPhotoViewer.stringify(ancSign.getAttribute("href"));if(url){form=true;submit=true;if(button){button.onclick=function(ev){win.location.replace(url)}}}}}if(button&&(!url||!form||!submit)){button.onclick=function(ev){win.location.replace(Meetup.Data.chapter.url+"join/")}}delete this.initJoinLink;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initJoinLink};mdg.prototype.initPhotosGridViewLink=function(){var ancs=MochiKit.DOM.getElementsByTagAndClassName("a","T_allPhotosGridViewLink");for(var i=0,len=ancs.length;i<len;++i){connect(ancs[i],"onclick",this.onPhotosGridViewLinkClick)}delete this.initPhotosGridViewLink;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initPhotosGridViewLink};mdg.prototype.initRemoveLink=function(){var a=MochiKit.DOM.getFirstElementByTagAndClassName("a","J_LinkRemovePhoto",this.elements.meta);if(a){a.onclick=Meetup.DomDeco.GalvPhotoViewer.confirmOnDelete}delete this.initRemoveLink;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initRemoveLink};mdg.prototype.initStripPager=function(parent,isNext){return false;isNext=isNext||false;var result={};var name=isNext?"next":"prev";result.wrap=DIV({"class":"J_stripPager "+name});var wrap=result.wrap;result.bg=DIV({"class":"bg"});var bg=result.bg;wrap.appendChild(bg);result.display=DIV({"class":"display"});wrap.appendChild(result.display);result.interact=DIV({"class":"interact"});var interact=result.interact;wrap.appendChild(interact);result.arrow=DIV({"class":"arrow"});var arrow=result.arrow;result.display.appendChild(arrow);parent.panel.display.appendChild(wrap);if(isNext){interact.title=Meetup.Copy.next;connect(interact,"onclick",this.onStripPagerNextClick);connect(interact,"onmouseover",this.onStripPagerNextMouseIn);connect(interact,"onmouseout",this.onStripPagerNextMouseOut)}else{interact.title=Meetup.Copy.previous;connect(interact,"onclick",this.onStripPagerPrevClick);connect(interact,"onmouseover",this.onStripPagerPrevMouseIn);connect(interact,"onmouseout",this.onStripPagerPrevMouseOut)}interact.bg=bg;return result};mdg.prototype.initStripPanel=function(srp){return false;srp.panel={};srp.panel.wrap=DIV({"class":"J_thumbStripPanel"});srp.display.appendChild(srp.panel.wrap);srp.panel.bg=DIV({"class":"bg"});srp.panel.wrap.appendChild(srp.panel.bg);srp.panel.display=DIV({"class":"display"});srp.panel.wrap.appendChild(srp.panel.display);srp.panel.interact=DIV({"class":"interact"});srp.panel.wrap.appendChild(srp.panel.interact);if(!this.isMSIE){srp.panel.bg.style.backgroundImage="url("+Meetup.Data.path.whitebg+")"}else{var transbg=DIV({"class":"transbg"});srp.panel.bg.appendChild(transbg);transbg.style.background="transparent";transbg.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.whitebg+'")'}srp.panel.interact.style.display="none";srp.panel.list=UL({"class":"list"});srp.panel.display.appendChild(srp.panel.list);delete this.initStripPanel;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initStripPanel};mdg.prototype.initStripPanelSlideshow=function(srp,isLast){return false;var fruit=Meetup.DomDeco.GalvPhotoViewer.buildPanelletStruct("J_slideshow",srp.panel.list);isLast=isLast||false;if(isLast){MochiKit.DOM.addElementClass(fruit.wrap,"last")}fruit.display.style.borderRightColor=this.colors.ground;fruit.display.style.borderLeftColor=this.colors.ground;fruit.interact.title=Meetup.Copy.playSlideshow;var arrow=DIV({"class":"arrow"});if(!this.isMSIE){arrow.style.backgroundImage="url("+Meetup.Data.path.stripSlideshowPlay+")"}else{arrow.style.background="transparent";arrow.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.stripSlideshowPlay+'")'}fruit.display.appendChild(arrow);fruit.arrow=arrow;srp.panel.slide=fruit;connect(this.strip.panel.slide.interact,"onclick",this.onSlideshowPanelletClick);fruit.interact.bg=fruit.display;connect(this.strip.panel.slide.interact,"onmouseover",Meetup.DomDeco.GalvPhotoViewer.onPanelletMouseIn);connect(this.strip.panel.slide.interact,"onmouseout",Meetup.DomDeco.GalvPhotoViewer.onPanelletMouseOut);delete this.initStripPanelSlideshow;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initStripPanelSlideshow};mdg.prototype.initStripPanelStripToggle=function(srp,isLast){return false;var fruit=Meetup.DomDeco.GalvPhotoViewer.buildPanelletStruct("J_stripToggle",srp.panel.list);isLast=isLast||false;if(isLast){MochiKit.DOM.addElementClass(fruit.wrap,"last")}fruit.display.style.borderRightColor=this.colors.ground;fruit.display.style.borderLeftColor=this.colors.ground;srp.panel.toggle=fruit;fruit.interact.title=Meetup.Copy.hideThumbnailStrip;var arrow=DIV({"class":"arrow"});if(!this.isMSIE){arrow.style.backgroundImage="url("+Meetup.Data.path.stripToggleDown+")"}else{arrow.style.background="transparent";arrow.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.stripToggleDown+'")'}srp.panel.toggle.display.appendChild(arrow);srp.panel.toggle.arrow=arrow;connect(this.strip.panel.toggle.interact,"onclick",this.onStripTogglePanelletClick);fruit.interact.bg=fruit.display;connect(this.strip.panel.toggle.interact,"onmouseover",Meetup.DomDeco.GalvPhotoViewer.onPanelletMouseIn);connect(this.strip.panel.toggle.interact,"onmouseout",Meetup.DomDeco.GalvPhotoViewer.onPanelletMouseOut);delete this.initStripPanelStripToggle;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initStripPanelStripToggle};mdg.prototype.initThumbStrip=function(){this.strip={};var srp=this.strip;srp.display=DIV({"class":"J_thumbStripDisplay"});var displayWrap=DIV({"class":"displayWrap"});srp.displayWrap=displayWrap;srp.display.appendChild(displayWrap);srp.movable=DIV({"class":"movable"});displayWrap.appendChild(srp.movable);srp.bg=DIV({"class":"bg"});srp.fg=DIV({"class":"fg"});srp.movable.appendChild(srp.bg);srp.movable.appendChild(srp.fg);srp.tablewrap=DIV({"class":"tablewrap"});srp.fg.appendChild(srp.tablewrap);this.initStripPanel(srp);this.initStripPanelSlideshow(srp);this.initStripPanelStripToggle(srp,true);var lis=MochiKit.DOM.getElementsByTagAndClassName("li",undefined,srp.panel.list);var pix_width_li=25;var pix_pad_li=10;srp.panel.list.style.width=((pix_width_li+pix_pad_li)*(lis.length-1)+pix_width_li)+"px";srp.pagerPrev=this.initStripPager(srp);srp.pagerNext=this.initStripPager(srp,true);delete this.initStripPager;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initStripPager;var MKS=MochiKit.Style;var sz=MKS.getElementDimensions(srp.display);srp.width=Math.floor(sz.w);srp.height=Math.floor(sz.h);MKS.setStyle(srp.bg,{opacity:Meetup.DomDeco.GalvPhotoViewer.OPAC_STRIP_BG});var thumbtable=this.elements.thumbtable;srp.tablewrap.appendChild(thumbtable);thumbtable.style.top="0px";var anc,img;var anchors=findChildElements(thumbtable,["a"]);var MD1=MochiKit.DOM.getFirstElementByTagAndClassName;var MDG=Meetup.DomDeco.GalvPhotoViewer;var extractPhotoId=function(href){var arr=href.split("/");return arr[arr.length-2]};for(var i=0,len=anchors.length;i<len;++i){anc=anchors[i];img=MD1("img",undefined,anc);anc.onclick=MDG.buildOnClickThumbByPhotoId(this,extractPhotoId(anc.href))}delete this.initThumbStrip;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initThumbStrip};mdg.prototype.initHiResolutionLink=function(){var photo=this.elements.photo;var img=this.getCurrentPhotoImg();Meetup.DomDeco.GalvPhotoViewer.clearChildElements(photo);photo.appendChild(img);delete this.initHiResolutionLink;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initHiResolutionLink};mdg.prototype.onClickCaptionEditAdd=function(){this.clearPrompt();var textarea=MochiKit.DOM.getFirstElementByTagAndClassName("textarea",null,this.elements.captionEdit);if(textarea.value.length>Meetup.DomDeco.GalvPhotoViewer.MAX_CHAR_CAPTION){this.funcEditCaptionCancel=Meetup.DomDeco.GalvPhotoViewer.buildAlertTooLong(textarea,true);return}this.editCaption(textarea.value);this.closeCaptionEdit()};mdg.prototype.onClickEditCaption=function(){this.isCaptionEditing=true;this.clearPrompt();var struct;for(var i=0,len=this.commentState.length;i<len;++i){struct=this.commentState[i];if(struct===undefined){continue}if(struct.isEditing){struct.toggle(i)}}var a=MochiKit.DOM.getFirstElementByTagAndClassName("a","J_LinkEditCaption",this.elements.caption);a.parentNode.style.visibility="hidden";this.elements.captionEdit.style.display="block";this.elements.captionDisplay.style.display="none";return false};mdg.prototype.onCommentFormKeyDown=function(ev){if(this.isPlayingSlide){this.onSlideshowPanelletClick(ev)}};mdg.prototype.onControllerPagerNextClick=function(ev){this.gotoNextPhoto()};mdg.prototype.onControllerPagerNextMouseIn=function(ev){var target=ev.target();if(!this.isMSIE){target.bg.style.backgroundImage="url("+Meetup.Data.path.pagernextBgOn+")"}else{target.bg.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.pagernextBgOn+'")'}};mdg.prototype.onControllerPagerNextMouseOut=function(ev){var target=ev.target();if(!this.isMSIE){target.bg.style.backgroundImage="url("+Meetup.Data.path.pagernextBg+")"}else{target.bg.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.pagernextBg+'")'}};mdg.prototype.onControllerPagerPrevClick=function(ev){this.gotoPrevPhoto()};mdg.prototype.onControllerPagerPrevMouseIn=function(ev){var target=ev.target();if(!this.isMSIE){target.bg.style.backgroundImage="url("+Meetup.Data.path.pagerprevBgOn+")"}else{target.bg.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.pagerprevBgOn+'")'}};mdg.prototype.onControllerPagerPrevMouseOut=function(ev){var target=ev.target();if(!this.isMSIE){target.bg.style.backgroundImage="url("+Meetup.Data.path.pagerprevBg+")"}else{target.bg.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.pagerprevBg+'")'}};mdg.prototype.onHashChange=function(hash){return;var index=Meetup.DomDeco.GalvPhotoViewer.findPhotoPosition(hash);if(index===null){index=0}if(this.currentPhotoIndex[0]==index){return}if(this.isInFadeAnimation){this.hashStack=hash;return}this.kickOffPhotoChangeByIndex(index)};mdg.prototype.onPhotoClick=function(ev){ev.stop();this.gotoNextPhoto()};mdg.prototype.onPhotoPagerMouseIn=function(ev){var parent=ev.target().parent;parent.off.style.display="none";parent.on.style.display="block"};mdg.prototype.onPhotoPagerMouseOut=function(ev){var parent=ev.target().parent;parent.on.style.display="none";parent.off.style.display="block"};mdg.prototype.onPhotosGridViewLinkClick=function(ev){var target=ev.target();if(target.tagName.toLowerCase()!=="a"){target=target.parentNode}var href=target.href;var photoId=Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].id;href+="&currentPhotoId="+photoId;target.href=href};mdg.prototype.onSlideshowPanelletClick=function(ev){return false;var path;if(this.isPlayingSlide){this.pauseSlideshow();path=Meetup.Data.path.stripSlideshowPlay;this.strip.panel.slide.interact.title=Meetup.Copy.playSlideshow}else{this.playSlideshow();path=Meetup.Data.path.stripSlideshowPause;this.strip.panel.slide.interact.title=Meetup.Copy.pauseSlideshow}if(!this.isMSIE){this.strip.panel.slide.arrow.style.backgroundImage="url("+path+")"}else{this.strip.panel.slide.arrow.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+path+'")'}};mdg.prototype.onStripPagerNextClick=function(ev){this.gotoNextPhoto()};mdg.prototype.onStripPagerNextMouseIn=function(ev){var target=ev.target();if(!this.isMSIE){target.bg.style.backgroundImage="url("+Meetup.Data.path.stripPagernextBgOn+")"}else{target.bg.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.stripPagernextBgOn+'")'}};mdg.prototype.onStripPagerNextMouseOut=function(ev){var target=ev.target();if(!this.isMSIE){target.bg.style.backgroundImage="url("+Meetup.Data.path.stripPagernextBg+")"}else{target.bg.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.stripPagernextBg+'")'}};mdg.prototype.onStripPagerPrevClick=function(ev){this.gotoPrevPhoto()};mdg.prototype.onStripPagerPrevMouseIn=function(ev){var target=ev.target();if(!this.isMSIE){target.bg.style.backgroundImage="url("+Meetup.Data.path.stripPagerprevBgOn+")"}else{target.bg.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.stripPagerprevBgOn+'")'}};mdg.prototype.onStripPagerPrevMouseOut=function(ev){var target=ev.target();if(!this.isMSIE){target.bg.style.backgroundImage="url("+Meetup.Data.path.stripPagerprevBg+")"}else{target.bg.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+Meetup.Data.path.stripPagerprevBg+'")'}};mdg.prototype.onStripTogglePanelletClick=function(ev){return false;if(this.isInNavAnimation){return}var path;if(this.isShowingNav){this.hideNav();path=Meetup.Data.path.stripToggleUp;this.strip.panel.toggle.interact.title=Meetup.Copy.showThumbnailStrip}else{this.showNav();path=Meetup.Data.path.stripToggleDown;this.strip.panel.toggle.interact.title=Meetup.Copy.hideThumbnailStrip}if(!this.isMSIE){this.strip.panel.toggle.arrow.style.backgroundImage="url("+path+")"}else{this.strip.panel.toggle.arrow.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+path+'")'}};mdg.prototype.onSuccessEditComment=function(photoIndex,commentIndex,evaled){var comment=Meetup.Data.photoAlbum.photos[photoIndex].comments[commentIndex];comment.text=evaled.text;if(photoIndex!==this.currentPhotoIndex[0]){return}var commentId=evaled.photoCommentId;if(this.funcEditComment[commentId]){this.funcEditComment[commentId](comment.text)}};mdg.prototype.onSuccessDeleteComment=function(evaled){if(evaled.status&&Number(evaled.status)!==-1){return}if(this.funcDeleteComment[evaled.photoCommentId]){this.funcDeleteComment[evaled.photoCommentId]();delete this.funcDeleteComment[evaled.photoCommentId]}};mdg.prototype.onSuccessEditCaption=function(arr){var photoId=arr[0];var captionText=arr[1];var index;if(Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].id==photoId){var textarea=MochiKit.DOM.getFirstElementByTagAndClassName("textarea",null,this.elements.captionEdit);this.elements.captionDisplay.innerHTML=captionText;textarea.value=captionText;index=this.currentPhotoIndex[0];this.makeEditCaptionLink(captionText.length>0)}else{index=Meetup.DomDeco.GalvPhotoViewer.findPhotoPosition(photoId)}Meetup.Data.photoAlbum.photos[index].caption=captionText};mdg.prototype.onSuccessSubmitComment=function(index,evaled){var com=Meetup.DomDeco.GalvPhotoViewer.constructPhotoComment(evaled);var comments;if(Meetup.Data.photoAlbum.photos[index].comments===null){comments=Meetup.Data.photoAlbum.photos[index].comments=[]}else{comments=Meetup.Data.photoAlbum.photos[index].comments}var commentIndex=comments.length;comments[commentIndex]=com;var li=this.makeCommentLi(evaled.photoCommentId,commentIndex,true,Meetup.Data.member.url,Meetup.Data.member.thumb,Meetup.Data.member.name,com.ctime,com.text);this.enhanceCommentLi(li,commentIndex);var exist=MochiKit.DOM.getFirstElementByTagAndClassName("ul","commentList",this.elements.commentbox);exist.appendChild(li);Meetup.DomDeco.GalvPhotoViewer.highlight(li,{endColor:this.colors.ground});var textarea=MochiKit.DOM.getFirstElementByTagAndClassName("textarea",null,this.elements.commentform);textarea.value=""};mdg.prototype.onCommentFormSubmit=function(ev){ev.stop();if(this.isPlayingSlide){this.onSlideshowPanelletClick(ev)}this.clearPrompt();var textarea=MochiKit.DOM.getFirstElementByTagAndClassName("textarea",null,this.elements.commentform);if(textarea.value.length>Meetup.DomDeco.GalvPhotoViewer.MAX_CHAR_COMMENT){this.funcAddCommentCancel=Meetup.DomDeco.GalvPhotoViewer.buildAlertTooLong(textarea);return}if(textarea.value.length===0){this.funcAddCommentCancel=Meetup.DomDeco.GalvPhotoViewer.buildAlertTooShort(textarea);return}this.submitComment(textarea.value)};mdg.prototype.onWindowResize=function(ev){this.resetPosition()};mdg.prototype.afterCachedFadeOut=function(){if(this.currentPhotoIndex[1]===undefined){this.panic();return}this.currentPhotoIndex[0]=this.currentPhotoIndex[1];this.currentPhotoIndex[1]=null;var previousImg=this.getCurrentPhotoImg();var previousSize=(previousImg?MochiKit.Style.getElementDimensions(previousImg):{h:0});this.elements.photo.removeChild(previousImg);try{var src=Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].six}catch(er){this.panic(er);return}if(this.cachedImgs[src]===undefined){this.isLoadingImg=true;Meetup.DomDeco.GalvPhotoViewer.loadImgAsync(src,this.finishImgLoad);this.checkPhotoLoading();return}var h=this.cachedImgs[src].h;var img=IMG({src:src});MochiKit.Style.setStyle(img,{opacity:0});Meetup.DomDeco.GalvPhotoViewer.insertElementTopmost(this.elements.photo,img);this.imgFading=img;this.resetPosition(Math.floor(previousSize.h),Math.floor(h),true)};mdg.prototype.afterCommentsFadeOut=function(){var exist=MochiKit.DOM.getFirstElementByTagAndClassName("ul","commentList",this.elements.commentbox);var newul=UL({"class":"commentList"});if(Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].comments!==null){var photo=Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]];var len=photo.comments.length;var comment,li,isDeletable;for(var i=0;i<len;++i){if(!photo.comments[i]){continue}isDeletable=false;comment=photo.comments[i];if(comment.isCurrentUser||Meetup.Data.member.isCoord){isDeletable=true}li=this.makeCommentLi(comment.photoCommentId,i,isDeletable,Meetup.Data.chapter.url+"members/"+comment.memberId,comment.memberPhoto,comment.memberName,comment.ctime,comment.text);newul.appendChild(li)}}newul.style.visibility="hidden";exist.parentNode.replaceChild(newul,exist);MochiKit.Style.setStyle(newul,{opacity:0,visibility:"visible"});Meetup.Tweener.addTween(newul,{delay:Meetup.DomDeco.GalvPhotoViewer.SEC_COMMENTS_FADEIN_DELAY,opacity:1,time:Meetup.DomDeco.GalvPhotoViewer.SEC_COMMENTS_FADEIN,onComplete:this.enhanceCommentState})};mdg.prototype.afterFadeIn=function(){if(this.isTaggable){this.elements.facetagDisplay.style.display="block"}this.isInFadeAnimation=false;if(this.hashStack){var h=this.hashStack;this.hashStack=null;this.onHashChange(h)}};mdg.prototype.afterFadeOut=function(){this.isInFadeAnimation=false;this.imgDimension=null;this.imgPosition=null;this.checkPhotoLoading()};mdg.prototype.afterHideNav=function(){if(this.isTaggable){this.elements.facetagDisplay.style.zIndex="1600"}this.isInNavAnimation=false};mdg.prototype.afterIntro=function(){return false;this.resetPosition();this.strip.display.style.display="block";window.setTimeout(this.showNav,10);window.setTimeout(this.scrollNavToSelected,100)};mdg.prototype.adjustPhotoViewerHeight=function(){return false;var MGD=MochiKit.Style.getElementDimensions;var dimMeta=MGD(this.elements.meta);var dimWrap=MGD(this.elements.photoWrap);if(dimMeta.h>dimWrap.h){this.elements.photoviewer.style.height=Math.floor(dimMeta.h)+"px"}else{this.elements.photoviewer.style.height="auto"}};mdg.prototype.afterMetaFadeOut=function(){this.elements.photoviewer.style.height="auto";if(this.isTaggable){this.cleanUpFacetagState();Meetup.DomDeco.GalvPhotoViewer.shrinkTags(this.currentPhotoIndex[0]);var currentTags=Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].tags;if(currentTags){this.currentTagsLength=currentTags.length}var h4=MochiKit.DOM.getFirstElementByTagAndClassName("h4",undefined,this.elements.tags);if(currentTags!==null&&currentTags.length>0){this.facetagState=Meetup.DomDeco.GalvPhotoViewer.convertTagStruct(Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].tags);addElementClass(get1st("p","D_empty",this.elements.tags),"displaynone")}else{this.facetagState={};removeElementClass(get1st("p","D_empty",this.elements.tags),"displaynone")}this.makeTagsList()}};mdg.prototype.afterShowNav=function(){this.isInNavAnimation=false;this.showNavTween=null};mdg.prototype.animeIntro=function(){this.afterIntro()};mdg.prototype.cancelImgLoading=function(){this.elements.loading.innerHTML="";this.currentPhotoIndex[1]=null;this.isLoadingImg=false;if(this.pointerLoadingImg!==null){window.clearTimeout(this.pointerLoadingImg);this.pointerLoadingImg=null}};mdg.prototype.checkPhotoLoading=function(){if(!this.isLoadingImg){this.pointerLoadingImg=null;this.prepareFadeIn()}else{this.pointerLoadingImg=window.setTimeout(this.checkPhotoLoading,Meetup.DomDeco.GalvPhotoViewer.MILSEC_PHOTO_CHECK_LOADING)}};mdg.prototype.clearPrompt=function(){if(this.funcAddCommentCancel){this.funcAddCommentCancel();this.funcAddCommentCancel=null}if(this.funcEditCaptionCancel){this.funcEditCaptionCancel();this.funcEditCaptionCancel=null}var state;for(var i=0,len=this.commentState.length;i<len;++i){state=this.commentState[i];if(state===undefined){continue}if(state.isTainted){state.cleanup();state.cleanup=null;state.isTainted=false}}};mdg.prototype.closeCaptionEdit=function(){this.clearPrompt();this.isCaptionEditing=false;var a=MochiKit.DOM.getFirstElementByTagAndClassName("a","J_LinkEditCaption",this.elements.caption);if(a===null){return false}a.parentNode.style.visibility="visible";this.elements.captionEdit.style.display="none";this.elements.captionDisplay.style.display="block";return false};mdg.prototype.commentFunctionFacade=function(index,command){var struct=this.commentState[index];if(struct===undefined){return}switch(command){case"delete":case"submit":case"toggle":struct[command](index);break;default:LOG.error("This should not happen: "+command);break}};mdg.prototype.deleteComment=function(commentId){this.forceReloader.flagUp();var def=Meetup.Http.post(Meetup.Data.chapter.url+"api/",MochiKit.Base.queryString({method:"deletePhotoComment",arg_eventPhotoId:Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].id,arg_photoCommentId:commentId,arg_memberId:Meetup.Data.member.id}));def.addCallbacks(partial(this.onSuccessDeleteComment),function(){LOG.error("Error happens at deleteComment")})};mdg.prototype.editCaption=function(msg){this.forceReloader.flagUp();var def=Meetup.Http.post(Meetup.Data.chapter.url+"api/",MochiKit.Base.queryString({method:"updatePhotoComment",arg_eventPhotoId:Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].id,arg_member:Meetup.Data.member.id,arg_urlname:Meetup.Data.chapter.urlname,arg_comment:msg}));def.addCallbacks(partial(this.onSuccessEditCaption),function(){LOG.error("Error happens at editCaption")})};mdg.prototype.enhanceCommentLi=function(li,commentIndex){var commentId,anchor,edit_div,edit,parag,textarea,submit,cancel;commentId=Meetup.DomDeco.GalvPhotoViewer.stringify(li.getAttribute("comment"));anchor=MochiKit.DOM.getFirstElementByTagAndClassName("a","J_PhotoCommentDelete",li);if(anchor===null){return}anchor.href="#";anchor.onclick=Meetup.DomDeco.GalvPhotoViewer.buildCommentListFunction(this,commentIndex,"delete");edit_div=MochiKit.DOM.getFirstElementByTagAndClassName("div","J_photoCommentEditDiv",li);cancel=MochiKit.DOM.getFirstElementByTagAndClassName("a",undefined,edit_div);cancel.href="#";cancel.onclick=Meetup.DomDeco.GalvPhotoViewer.buildCommentListFunction(this,commentIndex,"toggle");submit=MochiKit.DOM.getFirstElementByTagAndClassName("input",undefined,edit_div);submit.onclick=Meetup.DomDeco.GalvPhotoViewer.buildCommentListFunction(this,commentIndex,"submit");edit=Meetup.DomDeco.GalvPhotoViewer.buildCommentEditLink(this,commentIndex);parag=MochiKit.DOM.getFirstElementByTagAndClassName("p","D_photoCommentDisplay",li);parag.appendChild(document.createTextNode(" "));parag.appendChild(edit);this.commentState[commentIndex]=Meetup.DomDeco.GalvPhotoViewer.buildCommentStruct(this,li,commentId);this.funcDeleteComment[commentId]=Meetup.DomDeco.GalvPhotoViewer.buildAfterCommentDelete(this,li,this.currentPhotoIndex[0],commentIndex);textarea=MochiKit.DOM.getFirstElementByTagAndClassName("textarea",null,li)};mdg.prototype.enhanceCommentState=function(){this.commentState=[];var lis=MochiKit.DOM.getElementsByTagAndClassName("li",null,this.elements.commentbox);for(var i=0,len=lis.length;i<len;++i){this.enhanceCommentLi(lis[i],i)}};mdg.prototype.enhanceSelected=function(){var td;var tds=MochiKit.DOM.getElementsByTagAndClassName("td",null,this.strip.tablewrap);var len=tds.length;var result=null;for(var i=0;i<len;++i){if(i==this.currentPhotoIndex[0]){td=tds[i];MochiKit.DOM.addElementClass(td,"selected");result=td}else{MochiKit.DOM.removeElementClass(tds[i],"selected")}}return result};mdg.prototype.editComment=function(comment,commentId,commentIndex){this.forceReloader.flagUp();var def=Meetup.Http.post(Meetup.Data.chapter.url+"api/",MochiKit.Base.queryString({method:"editPhotoComment",arg_eventPhotoId:Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].id,arg_memberId:Meetup.Data.member.id,arg_text:comment,arg_photoCommentId:commentId}));def.addCallbacks(partial(this.onSuccessEditComment,this.currentPhotoIndex[0],commentIndex),function(){LOG.error("Error at editComment")})};mdg.prototype.fadeIn=function(isCached){var img=this.imgFading;var time=(isCached)?Meetup.DomDeco.GalvPhotoViewer.SEC_CACHED_FADEIN:Meetup.DomDeco.GalvPhotoViewer.SEC_PHOTO_FADEIN;var transition=(isCached)?Meetup.DomDeco.GalvPhotoViewer.TRANS_CACHED_FADEIN:Meetup.DomDeco.GalvPhotoViewer.TRANS_PHOTO_FADEIN;this.imgFading=null;this.isInFadeAnimation=true;Meetup.Tweener.addTween(img,{opacity:1,time:time,transition:transition,onComplete:this.afterFadeIn});if(this.isPlayingSlide){this.iterateSlide()}this.refreshMeta();this.scrollNavToSelected();this.updateTracker()};mdg.prototype.fadeOut=function(isCached){var i,len,photoTagId,balloon,lis=MochiKit.DOM.getElementsByTagAndClassName("li",undefined,this.elements.tags),img=this.getCurrentPhotoImg(),transition=Meetup.DomDeco.GalvPhotoViewer.TRANS_PHOTO_FADEOUT,time=(isCached)?Meetup.DomDeco.GalvPhotoViewer.SEC_CACHED_FADEOUT:Meetup.DomDeco.GalvPhotoViewer.SEC_PHOTO_FADEOUT;this.isInFadeAnimation=true;if(this.isTaggable){this.elements.facetagDisplay.style.display="none";for(photoTagId in this.facetagState){balloon=this.facetagState[photoTagId].balloon;if(balloon.isShowing()){balloon.hide()}}if(lis){for(i=0,len=lis.length;i<len;++i){Meetup.DomDeco.GalvPhotoViewer.cleanUpTagLi(lis[i])}}}if(img===null){if(isCached){this.afterCachedFadeOut()}else{this.afterFadeOut()}return}Meetup.Tweener.addTween(img,{time:time,transition:transition,opacity:0,onComplete:(isCached?this.afterCachedFadeOut:this.afterFadeOut)})};mdg.prototype.finishImgLoad=function(img){this.elements.loading.appendChild(img);this.isLoadingImg=false};mdg.prototype.getPhotoPosition=function(ev){var pz_photo=MochiKit.Style.getElementPosition(this.elements.photo);var webkitmatch=window.navigator.userAgent.match(/WebKit\/([0-9]{3})/);if(this.isSafari&&webkitmatch&&parseInt(webkitmatch[1],10)<528){pz_photo.y=pz_photo.y-this.elements.photo.offsetTop}return{x:Math.floor(pz_photo.x),y:Math.floor(pz_photo.y)}};mdg.prototype.gotoNextPhoto=function(){var photo_id;if(this.currentPhotoIndex[0]>=(Meetup.Data.photoAlbum.photos.length-1)){photo_id=Meetup.Data.photoAlbum.photos[0].id}else{photo_id=Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]+1].id}this.window.location.hash="#"+photo_id};mdg.prototype.gotoPrevPhoto=function(){var photo_id;if(this.currentPhotoIndex[0]<1){photo_id=Meetup.Data.photoAlbum.photos[(Meetup.Data.photoAlbum.photos.length-1)].id}else{photo_id=Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]-1].id}this.window.location.hash="#"+photo_id};mdg.prototype.hideNav=function(){return false;this.isShowingNav=false;this.isInNavAnimation=true;var time=Meetup.DomDeco.GalvPhotoViewer.SEC_NAV_HIDE;Meetup.Tweener.addTween(this.strip.movable,{transition:Meetup.DomDeco.GalvPhotoViewer.TRANS_NAV_HIDE,time:time,top:this.strip.height+"px"});window.setTimeout(this.afterHideNav,(time*1200))};mdg.prototype.hideWaiting=function(){this.elements.waiting.style.display="none"};mdg.prototype.iterateSlide=function(){if(this.isPlayingSlide){this.pointerSlideshow=window.setTimeout(this.gotoNextPhoto,Meetup.DomDeco.GalvPhotoViewer.MILSEC_SLIDESHOW_INTERVAL)}};mdg.prototype.kickOffPhotoChangeByIndex=function(index){if(Meetup.Data.photoAlbum.photos[index]===undefined){return}if(this.isCaptionEditing){this.closeCaptionEdit()}this.cancelImgLoading();this.clearPrompt();this.shrinkCommentArray();this.currentPhotoIndex[1]=index;if(this.cachedImgs[Meetup.Data.photoAlbum.photos[index].six]){this.fadeOut(true)}else{this.isLoadingImg=true;Meetup.DomDeco.GalvPhotoViewer.loadImgAsync(Meetup.Data.photoAlbum.photos[index].six,this.finishImgLoad);this.fadeOut()}};mdg.prototype.makeCommentLi=function(commentId,commentIndex,isDeletable,urlMemberPage,urlMemberThumb,memberName,commentDateTime,commentBody){var li=LI({comment:commentId});if(isDeletable){var divUtil=DIV({"class":"photocommentUtil"});divUtil.appendChild(A({href:"#","class":"J_PhotoCommentDelete",title:Meetup.Copy["delete"]},"X"));li.appendChild(divUtil)}var divPic=DIV({"class":"photocommentPic"});if(urlMemberThumb!==null){var anchorMember=A({href:urlMemberPage},IMG({src:urlMemberThumb}));divPic.appendChild(anchorMember)}li.appendChild(divPic);var anchorName;if(urlMemberThumb!==null){anchorName=A({href:urlMemberPage});anchorName.innerHTML=memberName}else{anchorName=SPAN({});anchorName.innerHTML=memberName}li.appendChild(anchorName);li.appendChild(document.createTextNode(" "));var spanTime=SPAN({"class":"J_photoCommentMeta"},("at "+commentDateTime));li.appendChild(spanTime);var p=P({"class":"D_photoCommentDisplay"});p.innerHTML=commentBody;li.appendChild(p);if(isDeletable){var divEdit=DIV({"class":"J_photoCommentEditDiv"});divEdit.appendChild(TEXTAREA({"class":"J_photoCommentEditTextarea maxChars4900"},commentBody));divEdit.appendChild(A({href:"#"},Meetup.Copy.cancel));divEdit.appendChild(document.createTextNode(" "));divEdit.appendChild(INPUT({type:"button",value:Meetup.Copy.edit,"class":"D_submit"}));li.appendChild(divEdit)}li.appendChild(BR({"class":"clear"}));return li};mdg.prototype.makeEditCaptionLink=function(captionNotEmpty){captionNotEmpty=captionNotEmpty||false;var w=captionNotEmpty?Meetup.Copy.edit:Meetup.Copy.editCaption;var a=A({href:"#","class":"J_LinkEditCaption",onclick:this.onClickEditCaption},w);var span=SPAN({"class":"J_SpanEditCaption"},a);this.elements.captionDisplay.appendChild(document.createTextNode(" "));this.elements.captionDisplay.appendChild(span)};mdg.prototype.makeTasks=function(hasCaptionWord,isAuthor,photoId,hiresUrl){var div=this.elements.tasks;var isMember=Meetup.Data.member.isMember;var isAdmin=Meetup.Data.member.isOwner;var isAssist=Meetup.Data.member.isCoord;var isMupHQ=Meetup.Data.member.isMupHQ;var allSizesUrl=Meetup.Data.groupBaseUrl+"all_sizes/"+photoId;var photoJamUrl=Meetup.Data.photoJamBaseUrl+photoId;var opt={};if(isMupHQ){opt.photoJam=Meetup.Copy.photoJam}opt.allsizes=Meetup.Copy.allSizes;if(isMember){opt.addComment=Meetup.Copy.commentOnThisPhoto;if(isAuthor||isAdmin||isAssist){opt.remove=Meetup.Copy.deleteThisPhoto}if(isAssist){if(photoId!=Meetup.Data.photoAlbum.thumbnailPhotoId){opt.setFront=Meetup.Copy.useAsAlbumThumbnail}else{opt.alreadyFront=Meetup.Copy.thisIsTheAlbumThumbnail}}if(isAdmin){if(photoId!=Meetup.Data.chapter.photoId){opt.setGroup=Meetup.Copy.useAsGroupPhoto}else{opt.alreadyGroup=Meetup.Copy.thisIsTheGroupPhoto}}if(this.isTaggable){opt.facetag=Meetup.Copy.tagThisPhoto}}Meetup.DomDeco.GalvPhotoViewer.buildGeneralList(div,opt,photoId,hiresUrl,allSizesUrl,photoJamUrl,this);if(isAuthor||isAdmin||isAssist){this.makeEditCaptionLink(hasCaptionWord)}};mdg.prototype.navigateByClickPhoto=function(x,y){if(this.isInFadeAnimation){return}var sz_photo=MochiKit.Style.getElementDimensions(this.elements.photo);var center=Math.floor(sz_photo.w/2);if(x>center){this.gotoNextPhoto()}else{this.gotoPrevPhoto()}};mdg.prototype.panic=function(er){LOG.error("panic");if(er){LOG.error(serializeJSON(er))}this.isInFadeAnimation=false;this.window.location.hash="#"+Meetup.Data.photoAlbum.thumbnailPhotoId};mdg.prototype.pauseSlideshow=function(){if(!this.isPlayingSlide){return false}this.isPlayingSlide=false;if(this.pointerSlideshow){window.clearTimeout(this.pointerSlideshow)}this.pointerSlideshow=null};mdg.prototype.playSlideshow=function(){if(this.isPlayingSlide){return false}this.isPlayingSlide=true;this.gotoNextPhoto()};mdg.prototype.prepareFadeIn=function(){this.currentPhotoIndex[0]=this.currentPhotoIndex[1];this.currentPhotoIndex[1]=null;this.hideWaiting();var previousImg=this.getCurrentPhotoImg();if(previousImg===null){this.panic();return}var previousSize=MochiKit.Style.getElementDimensions(previousImg);this.elements.photo.removeChild(previousImg);var img=MochiKit.DOM.getFirstElementByTagAndClassName("img",undefined,this.elements.loading);var GSP=Meetup.DomDeco.GalvPhotoViewer.smoothMochiKitObjectPoint;var MS=MochiKit.Style;if(this.pushImgCache(img)){var h=img.height;MochiKit.Style.setStyle(img,{opacity:0});Meetup.DomDeco.GalvPhotoViewer.insertElementTopmost(this.elements.photo,img);this.imgDimension=GSP(MS.getElementDimensions(img));this.imgPosition=GSP(MS.getElementPosition(img));this.imgFading=img;this.resetPosition(Math.floor(previousSize.h),h)}else{this.currentPhotoIndex[0]=0}};mdg.prototype.pushImgCache=function(img){var result=false;if(img===undefined){img=this.getCurrentPhotoImg()}if(img){var dim=MochiKit.Style.getElementDimensions(img);this.cachedImgs[img.src]=dim;result=true}return result};mdg.prototype.refreshMeta=function(){var ul=MochiKit.DOM.getFirstElementByTagAndClassName("ul","commentList",this.elements.commentbox);Meetup.Tweener.addTween(ul,{delay:Meetup.DomDeco.GalvPhotoViewer.SEC_COMMENTS_FADEOUT_DELAY,opacity:0,time:Meetup.DomDeco.GalvPhotoViewer.SEC_COMMENTS_FADEOUT,onComplete:this.afterCommentsFadeOut});var meta=this.elements.meta;Meetup.Tweener.addTween(meta,{delay:Meetup.DomDeco.GalvPhotoViewer.SEC_META_FADEOUT_DELAY,opacity:0,time:Meetup.DomDeco.GalvPhotoViewer.SEC_META_FADEOUT,onComplete:this.afterMetaFadeOut})};mdg.prototype.resetPosition=function(h0,h1,isCached){if(this.isFacetagging){this.relocateFacetag();return}var isFading=false;var MSD=MochiKit.Style.getElementDimensions;var MSP=MochiKit.Style.getElementPosition;var SMP=Meetup.DomDeco.GalvPhotoViewer.smoothMochiKitObjectPoint;var pz_photo=this.getPhotoPosition();var sz_photo;if(h0&&h1){isFading=true;sz_photo={w:this.strip.width,h:h1}}else{sz_photo=SMP(MSD(this.elements.photo))}if(sz_photo.h<450){sz_photo.h=450}var pz_box=SMP(MSP(this.elements.boxOrigin));var cntstyle=this.controller.wrap.style;cntstyle.left=pz_photo.x+"px";cntstyle.top=(pz_photo.y-Meetup.DomDeco.GalvPhotoViewer.PIX_CONTROLLER_OFFSET)+"px";if(this.isTaggable){var img=this.getCurrentPhotoImg();this.imgPosition=SMP(MSP(img));this.imgDimension=SMP(MSD(img));var ftdstyle=this.elements.facetagDisplay.style;var sz_img=this.imgDimension;var pz_img=this.imgPosition;ftdstyle.width=sz_img.w+"px";ftdstyle.height=sz_img.h+"px";ftdstyle.left=(pz_img.x-pz_box.x)+"px";ftdstyle.top=(pz_img.y-pz_box.y)+"px"}};mdg.prototype.scrollToComment=function(ev){ev.stop();if(this.isPlayingSlide){this.onSlideshowPanelletClick(ev)}var comment=this.elements.commentform;var pz_form=MochiKit.Style.getElementPosition(comment);var sz_form=MochiKit.Style.getElementDimensions(comment);var h_win=window.innerHeight||document.documentElement.clientHeight;var ta=MochiKit.DOM.getFirstElementByTagAndClassName("textarea",null,comment);var obj={scrollY:window.scrollY||document.documentElement.scrollTop};Meetup.Tweener.addTween(obj,{transition:Meetup.DomDeco.GalvPhotoViewer.TRANS_SCROLL_COMMENT,time:Meetup.DomDeco.GalvPhotoViewer.SEC_SCROLL_COMMENT,scrollY:Math.floor(pz_form.y-((h_win-sz_form.h)/2)),onUpdate:function(){window.scroll(0,this.scrollY)},onComplete:function(){ta.focus()}});return false};mdg.prototype.scrollNavToSelected=function(){return false;var td=this.enhanceSelected();if(td===null){var self=this;window.setTimeout(function(){self.scrollNavToSelected()},Meetup.DomDeco.GalvPhotoViewer.MILSEC_NAVSCROLL_DELAY);return}var wrap=this.strip.tablewrap;var sz_nav=MochiKit.Style.getElementDimensions(wrap);var sz_each=MochiKit.Style.getElementDimensions(td);var sc_relative=Math.floor((sz_nav.w-sz_each.w)/2);var sc_left=td.offsetLeft-sc_relative;if(sc_left<sc_relative){sc_left=0}if(this.isShowingNav){Meetup.Tweener.addTween(wrap,{scrollLeft:sc_left})}else{wrap.scrollLeft=sc_left}};mdg.prototype.shrinkCommentArray=function(){var photoIndex,comments,com,arr=[];try{photoIndex=this.currentPhotoIndex[0];comments=Meetup.Data.photoAlbum.photos[photoIndex].comments}catch(er){this.panic();return}if(comments===null){return}for(var i=0,len=comments.length;i<len;++i){com=comments[i];if(com===undefined){continue}arr[arr.length]=com}comments=arr};mdg.prototype.submitComment=function(text){this.forceReloader.flagUp();var def=Meetup.Http.post(Meetup.Data.chapter.url+"api/",MochiKit.Base.queryString({method:"createPhotoComment",arg_eventPhotoId:Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].id,arg_memberId:Meetup.Data.member.id,arg_text:text,arg_language:Meetup.Language}));def.addCallbacks(partial(this.onSuccessSubmitComment,this.currentPhotoIndex[0]),function(){LOG.error("Error at submitComment")})};mdg.prototype.showNav=function(){this.isShowingNav=true;this.isInNavAnimation=true;if(this.isTaggable){this.elements.facetagDisplay.style.zIndex="1400"}var time=Meetup.DomDeco.GalvPhotoViewer.SEC_NAV_SHOW;Meetup.Tweener.addTween(this.strip.movable,{transition:Meetup.DomDeco.GalvPhotoViewer.TRANS_SHOW_NAV,time:time,top:"0px"});window.setTimeout(this.afterShowNav,(time*1200))};mdg.buildAfterCommentDelete=function(self,li,photoIndex,commentIndex){return function(commentId){if(self.currentPhotoIndex[0]===photoIndex){Meetup.Tweener.addTween(li,{opacity:0,onComplete:function(){this.parentNode.removeChild(this)}})}delete Meetup.Data.photoAlbum.photos[photoIndex].comments[commentIndex]}};mdg.buildAlertTooLong=function(textarea,isCaption){isCaption=isCaption||false;var copy;if(isCaption){copy=Meetup.Copy.alertCaptionTooLong}else{copy=Meetup.Copy.alertCommentTooLong}Meetup.DomDeco.GalvPhotoViewer.highlight(textarea,{startColor:Meetup.DomDeco.GalvPhotoViewer.HEX_ALERT_STARTCOLOR,time:Meetup.DomDeco.GalvPhotoViewer.SEC_FLASH_CANCEL});var pz=MochiKit.Style.getElementPosition(textarea);var sz=MochiKit.Style.getElementDimensions(textarea);var balloon=new Meetup.DiscreteBalloon(copy);balloon.position(pz.x+sz.w/2,pz.y);if(isCaption){balloon.zIndex(1500)}var pt;var func=function(){balloon.hide();disconnect(pt)};pt=connect(textarea,"onkeyup",func);balloon.show();return func};mdg.buildAlertTooShort=function(textarea){Meetup.DomDeco.GalvPhotoViewer.highlight(textarea,{startColor:Meetup.DomDeco.GalvPhotoViewer.HEX_ALERT_STARTCOLOR,time:Meetup.DomDeco.GalvPhotoViewer.SEC_FLASH_CANCEL});var pz=MochiKit.Style.getElementPosition(textarea);var sz=MochiKit.Style.getElementDimensions(textarea);var balloon=new Meetup.DiscreteBalloon(Meetup.Copy.alertCommentTooShort);balloon.position(pz.x+sz.w/2,pz.y);var pt;var func=function(){balloon.hide();disconnect(pt)};pt=connect(textarea,"onkeyup",func);balloon.show();return func};mdg.buildCommentEditLink=function(self,commentIndex){var edit=SPAN({});var editlink=A({href:"#"},Meetup.Copy.edit);editlink.onclick=Meetup.DomDeco.GalvPhotoViewer.buildCommentListFunction(self,commentIndex,"toggle");edit.appendChild(editlink);return edit};mdg.buildCommentDeleteFunction=function(self){return function(index){self.clearPrompt();var struct=self.commentState[index];var li=struct.element;var c=confirm(Meetup.Copy.confirmDeleteComment);if(c){self.deleteComment(struct.commentId)}return false}};mdg.buildCommentListFunction=function(self,i,name){return function(){self.commentFunctionFacade(i,name);return false}};mdg.buildCommentSubmitFunction=function(self){return function(index){var struct=self.commentState[index];self.clearPrompt();var textarea=MochiKit.DOM.getFirstElementByTagAndClassName("textarea",null,struct.element);if(textarea.value.length>Meetup.DomDeco.GalvPhotoViewer.MAX_CHAR_COMMENT){struct.isTainted=true;struct.cleanup=Meetup.DomDeco.GalvPhotoViewer.buildAlertTooLong(textarea);return false}self.funcEditComment[struct.commentId]=Meetup.DomDeco.GalvPhotoViewer.buildEditCommentFunction(struct,index);self.editComment(textarea.value,struct.commentId,index);return false}};mdg.buildCommentStruct=function(self,li,commentId){return{commentId:commentId,element:li,isEditing:false,isTainted:false,cleanup:null,toggle:Meetup.DomDeco.GalvPhotoViewer.buildCommentToggleFunction(self),"delete":Meetup.DomDeco.GalvPhotoViewer.buildCommentDeleteFunction(self),submit:Meetup.DomDeco.GalvPhotoViewer.buildCommentSubmitFunction(self)}};mdg.buildCommentToggleFunction=function(self){return function(index,isSub){self.closeCaptionEdit();isSub=isSub||false;if(!isSub){var cs;for(var i=0,len=self.commentState.length;i<len;++i){if(i==index){continue}cs=self.commentState[i];if(cs===undefined){continue}if(cs.isEditing){cs.toggle(i,true)}}}var struct=self.commentState[index];self.clearPrompt();var li=struct.element;var div=MochiKit.DOM.getFirstElementByTagAndClassName("div","J_photoCommentEditDiv",li);var p=MochiKit.DOM.getFirstElementByTagAndClassName("p","D_photoCommentDisplay",li);if(struct.isEditing){div.style.display="none";p.style.display="block"}else{div.style.display="block";p.style.display="none"}struct.isEditing=!struct.isEditing;return false}};mdg.buildCredit=function(div,status,urlMemberThumb,urlMemberPage,memberName,upDate){Meetup.DomDeco.GalvPhotoViewer.clearChildElements(div);var str,span=SPAN();if(status){div.appendChild(IMG({src:urlMemberThumb}));div.appendChild(BR());str=Meetup.Copy.addedByWithLinkRegex.replace(/__RF__/,urlMemberPage).replace(/__NM__/,memberName).replace(/__DT__/,upDate);span.innerHTML=str}else{str=Meetup.Copy.addedByWithoutLinkRegex.replace(/__NM__/,memberName).replace(/__DT__/,upDate);span.innerHTML=str}div.appendChild(span)};mdg.buildEditCommentFunction=function(struct,commentIndex){return function(text){var parag=MochiKit.DOM.getFirstElementByTagAndClassName("p","D_photoCommentDisplay",struct.element);parag.replaceChild(document.createTextNode(text),parag.firstChild);var textarea=MochiKit.DOM.getFirstElementByTagAndClassName("textarea","J_photoCommentEditTextarea",struct.element);textarea.value=text;struct.toggle(commentIndex);Meetup.DomDeco.GalvPhotoViewer.highlight(struct.element)}};mdg.buildGeneralList=function(div,obj,photoId,hiresUrl,allSizesUrl,photoJamUrl,self){if(self.pointerCommentLink){MochiKit.Signal.disconnect(self.pointerCommentLink);self.pointerCommentLink=null}if(self.pointerTagLink){MochiKit.Signal.disconnect(self.pointerTagLink);self.pointerTagLink=null}Meetup.DomDeco.GalvPhotoViewer.clearChildElements(div);var ul,li,a,i;ul=UL();div.appendChild(ul);for(i in obj){li=LI({});switch(i){case"photoJam":a=A({href:photoJamUrl,"class":"J_LinkHires"},obj[i]);li.appendChild(a);break;case"allsizes":a=A({href:allSizesUrl,"class":"J_LinkHires"},obj[i]);li.appendChild(a);break;case"addComment":a=A({href:"#","class":"J_LinkAddYourComment"},obj[i]);self.pointerCommentLink=MochiKit.Signal.connect(a,"onclick",self.scrollToComment);li.appendChild(a);break;case"setGroup":a=A({href:Meetup.DomDeco.GalvPhotoViewer.buildSetGroupLink(photoId,Meetup.Data.photoAlbum.id),"class":"J_LinkUseAsGroupPhoto"},obj[i]);li.appendChild(a);break;case"setFront":a=A({href:Meetup.DomDeco.GalvPhotoViewer.buildSetFrontLink(photoId,Meetup.Data.photoAlbum.id),"class":"J_LinkUseAsAlbumThumb"},obj[i]);li.appendChild(a);break;case"alreadyGroup":case"alreadyFront":a=null;li.className="disabled";li.appendChild(document.createTextNode(obj[i]));break;case"remove":a=A({href:Meetup.DomDeco.GalvPhotoViewer.buildRemoveLink(photoId,Meetup.Data.photoAlbum.id),"class":"J_LinkRemovePhoto",onclick:Meetup.DomDeco.GalvPhotoViewer.confirmOnDelete},obj[i]);li.appendChild(a);break;case"facetag":a=A({href:"#"},obj[i]);self.pointerTagLink=MochiKit.Signal.connect(a,"onclick",self.onTagLinkClick);li.appendChild(a);break;default:a=A({href:"#",title:i},obj[i]);li.appendChild(a);break}ul.appendChild(li)}};mdg.buildHitareaPhoto=function(parent){var result=DIV({"class":"T_photoHitarea"}," ");if(parent){parent.appendChild(result)}return result};mdg.buildHoverNav=function(parent){var display=DIV({"class":"T_photoNav"}," ");var dock=DIV({"class":"T_photoNavDock"}," ");var bg=DIV({"class":"T_photoNavBg"}," ");var fg=DIV({"class":"T_photoNavFg"}," ");var wrap=DIV({"class":"T_photoNavFgWrap"});fg.appendChild(wrap);dock.appendChild(bg);dock.appendChild(fg);display.appendChild(dock);if(parent){parent.appendChild(display)}var result={};result.display=display;result.dock=dock;result.fg=fg;result.fgwrap=wrap;return result};mdg.buildLoading=function(parent){var result=DIV({"class":"T_photoLoading"});if(parent){parent.appendChild(result)}return result};mdg.buildOnClickThumbByPhotoId=function(self,photo_id){return function(ev){self.window.location.hash="#"+photo_id;return false}};mdg.buildPanelletStruct=function(className,parent){var wrap=LI({"class":"J_tsPanellet "+className});var display=DIV({"class":"display"});wrap.appendChild(display);var interact=DIV({"class":"interact"});wrap.appendChild(interact);parent.appendChild(wrap);return{wrap:wrap,display:display,interact:interact}};mdg.buildRemoveLink=function(pid,paid){var base=Meetup.Data.chapter.url+"photos/?";var query=MochiKit.Base.queryString({op:"delete",photoId:pid,photoAlbumId:paid});return base+query};mdg.buildSetFrontLink=function(pid,paid){var base=Meetup.Data.chapter.url+"photos/?";var query=MochiKit.Base.queryString({op:"defaultAlbum",photoId:pid,photoAlbumId:paid});return base+query};mdg.buildSetGroupLink=function(pid,paid){var base=Meetup.Data.chapter.url+"photos/?";var query=MochiKit.Base.queryString({op:"default",photoId:pid,photoAlbumId:paid});return base+query};mdg.buildWaiting=function(path,parent){var img=IMG({src:path,alt:"wait",title:Meetup.Copy.pleaseWait});var display=DIV({"class":"T_waiting"},img);if(parent){parent.appendChild(display)}return display};mdg.clearChildElements=function(elm){if(elm===null){throw new Error("null is passed")}if(elm.childNodes===undefined){throw new Error("You need to pass DOM Element.  You have passed:"+elm)}var len=elm.childNodes.length;for(var i=0;i<len;++i){elm.removeChild(elm.childNodes[0])}};mdg.confirmOnDelete=function(ev){var c=confirm(Meetup.Copy.confirmDeletePhoto);return c};mdg.constructPhotoComment=function(data){if(data.memberId!=Meetup.Data.member.id){LOG.error("This should not happen: constructPhotoComment")}var obj={};obj.isCurrentUser=true;obj.memberId=data.memberId;obj.memberName=Meetup.Data.member.name;obj.memberPhoto=Meetup.Data.member.thumb;obj.photoCommentId=data.photoCommentId;obj.ctime=data.ctimeString;obj.text=data.text;return obj};mdg.findPhotoPosition=function(pid){var result=null;var photos=Meetup.Data.photoAlbum.photos;var len=photos.length;for(var i=0;i<len;++i){if(photos[i].id==pid){result=i;break}}return result};mdg.highlight=function(elm,obj){obj=obj||{};var opt,sc,ec,fc;sc=obj.startColor||Meetup.DomDeco.GalvPhotoViewer.HEX_HIGHLIGH_DEFAULT;ec=obj.endColor||MochiKit.Style.getStyle(elm,"background-color");fc=obj.finishColor||null;if(ec==="transparent"){ec="#FFFFFF";fc="transparent"}elm.style.backgroundColor=sc;opt={transition:Meetup.DomDeco.GalvPhotoViewer.TRANS_HIGHLIGHT_DEFAULT,time:Meetup.DomDeco.GalvPhotoViewer.SEC_HIGHLIGHT_DEFAULT,"background-color":ec};if(fc!==null){opt.onComplete=function(s){this.style.backgroundColor=s};opt.onCompleteParams=fc}delete obj.startColor;delete obj.endColor;delete obj.finishColor;for(var i in obj){opt[i]=obj[i]}Meetup.Tweener.addTween(elm,opt)};mdg.onPanelletMouseIn=function(ev){var target=ev.target();target.bg.style.backgroundColor="#FFF"};mdg.onPanelletMouseOut=function(ev){var target=ev.target();target.bg.style.backgroundColor="transparent"};mdg.removeWhiteSpace=function(elm){var className=Meetup.DomDeco.GalvPhotoViewer.stringify((elm.getAttribute("class")||elm.getAttribute("className")));if((className!==null)&&(className.indexOf("disabled")>-1)){return}var mark=[];for(var i=0,ilen=elm.childNodes.length;i<ilen;++i){if(elm.childNodes[i].nodeName=="#text"){mark[mark.length]=i}}mark=mark.reverse();for(var j=0,jlen=mark.length;j<jlen;++j){elm.removeChild(elm.childNodes[mark[j]])}};mdg.prototype.facetagMask=null;mdg.prototype.facetag=null;mdg.prototype.facetagBounding=null;mdg.prototype.facetagDone=null;mdg.prototype.facetagLocation=null;mdg.prototype.facetagState=null;mdg.prototype.facetagMode=0;mdg.prototype.facetagBucket=null;mdg.prototype.facetagHelpBalloon=null;mdg.prototype.facetagPromo=null;mdg.prototype.intHasIntroduced=0;mdg.prototype.pointerKeyWatch=null;mdg.prototype.imgDimension=null;mdg.prototype.imgPosition=null;mdg.prototype.wasShowingNav=false;mdg.prototype.isInFacetagFade=false;mdg.prototype.isShowingMarquee=false;mdg.prototype.counterKeyUp=0;mdg.OPAC_MARQUEE=0.6;mdg.PIX_SIDE_PHOTO_TAG=160;mdg.PIX_MEMBER_SEARCH_WIDTH=175;mdg.INT_FACETAG_MODE_ADD=0;mdg.INT_FACETAG_MODE_REMOVE=1;mdg.CHAR_SEPARATOR="|";mdg.prototype.initFacetagLink=function(){this.elements.facetagDisplay=DIV({id:"J_facetagDisplay"});this.elements.photo.appendChild(this.elements.facetagDisplay);if(Meetup.Data.member.isMember){var ul=MochiKit.DOM.getFirstElementByTagAndClassName("ul",null,this.elements.tasks);var a=A({"class":"J_LinkMarkPeople D_tagThisPhoto sprite add_icon",href:"#"},Meetup.Copy.tagThisPhoto);this.elements.tasks.appendChild(P({},a));this.pointerTagLink=MochiKit.Signal.connect(a,"onclick",this.onTagLinkClick)}MochiKit.Signal.connect(this.elements.facetagDisplay,"onmouseover",this.onFacetagDisplayMouseIn);delete this.initFacetagLink;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initFacetagLink};mdg.prototype.initFacetag=function(){this.facetagMask=Meetup.DomDeco.GalvPhotoViewer.buildFacetagMask();this.facetagBounding={};this.facetag={};var ft=this.facetag;ft.wrap=DIV({id:"J_facetag"});document.body.appendChild(ft.wrap);ft.marquees={};ft.marquees.wrap=DIV({"class":"J_facetagMarquee"});ft.marquees.array=Meetup.DomDeco.GalvPhotoViewer.buildFacetagMarquee(ft.marquees.wrap);document.body.appendChild(ft.marquees.wrap);connect(ft.wrap,"onclick",this.onFacetagClick);this.membersearch=new Meetup.DiscreteMemberSearch();this.membersearch.dimension(Meetup.DomDeco.GalvPhotoViewer.PIX_MEMBER_SEARCH_WIDTH);this.membersearch.attach("onAfterShow",this.makeMembersearchReady);this.membersearch.attach("onBeforeHide",this.makeMembersearchClear);this.membersearch.attach("onSelect",this.onMemberSearchSelect);this.membersearch.attach("onNoMatch",this.onMemberSearchNoMatch);this.membersearch.attach("onUpdateStruct",this.onMemberSearchUpdateStruct);this.facetagDone=new Meetup.DiscreteBackButton(Meetup.Copy.done);this.facetagDone.attach("onRootClick",this.hideFacetag);this.facetagDone.zIndex(2550);delete this.initFacetag;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initFacetag};mdg.prototype.initTagLinks=function(){try{Meetup.DomDeco.GalvPhotoViewer.clearChildElements(MochiKit.DOM.getFirstElementByTagAndClassName("ul",undefined,this.elements.tags));this.elements.tags.style.display="block";var currentTags=Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].tags;if(currentTags){this.currentTagsLength=currentTags.length}var h4=MochiKit.DOM.getFirstElementByTagAndClassName("h4",undefined,this.elements.tags);if(currentTags!==null&&currentTags.length>0){this.facetagState=Meetup.DomDeco.GalvPhotoViewer.convertTagStruct(Meetup.Data.photoAlbum.photos[this.currentPhotoIndex[0]].tags)}else{this.facetagState={}}this.makeTagsList();this.resetPosition();delete this.initTagLinks;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initTagLinks}catch(er){console.log(er)}};mdg.prototype.onCreateTagSuccess=function(photoIndex,name,x,y,evaled){Meetup.GAT.successCode="PH_TAG";Meetup.GAT.triggerSuccess="ph";this.resetMarquees();var tag,tags,index,listObj,lis,li,arrTags,ul=MochiKit.DOM.getFirstElementByTagAndClassName("ul",undefined,this.elements.tags),photo=Meetup.Data.photoAlbum.photos[photoIndex];if(typeof evaled==="string"&&evaled.length===0){var b=new Meetup.DiscreteBalloon(Meetup.Copy.noMoreTagFor.replace("__MEMBER_NAME__",name));b.position(this.imgPosition.x+x,this.imgPosition.y+y-40);b.zIndex(2700);b.show();window.setTimeout(b.hide,3500);return}if(photo.tags===null){photo.tags=[]}tags=photo.tags;tag={canDelete:true,memberId:evaled.memberId,name:evaled.name,photoTagId:evaled.photoTagId,taggerMemberId:evaled.taggerMemberId,xCoord:evaled.xCoord,yCoord:evaled.yCoord};Meetup.DomDeco.GalvPhotoViewer.complementTag(tag,this.imgDimension.w,this.imgDimension.h,this.imgPosition.x,this.imgPosition.y,this.onTagMarqueeMouseIn,this.onTagMarqueeMouseOut,Meetup.DomDeco.GalvPhotoViewer.buildFacetagRemoveFunction(tag.photoTagId,tag.name,this.deleteTag));tag.marquee.lines.style.display="block";index=tags.length;tag.tagIndex=index;tags[index]=tag;this.facetagState[tag.photoTagId]=tag;this.elements.facetagDisplay.appendChild(tag.marquee.wrap);lis=Meetup.DomDeco.GalvPhotoViewer.findListElementsByMemberId(this.elements.tags,tag.memberId);if((parseInt(tag.memberId,10)===-1)||(lis.length===0)){listObj=this.makeTagListObj(tag,(index===0?true:false));ul.appendChild(listObj.wrap);li=listObj.wrap;if(tags.length===1){MochiKit.DOM.getFirstElementByTagAndClassName("h4",undefined,this.elements.tags).style.visibility="visible"}}else{li=lis[0];arrTags=Meetup.DomDeco.GalvPhotoViewer.stringify(li.getAttribute("tagid")).split(Meetup.DomDeco.GalvPhotoViewer.CHAR_SEPARATOR);arrTags[arrTags.length]=tag.photoTagId;li.setAttribute("tagid",arrTags.join(Meetup.DomDeco.GalvPhotoViewer.CHAR_SEPARATOR))}tag.listElement=li;tag.balloon.zIndex(2525);tag.balloon.show();tag.xbutton.position(this.imgPosition.x+tag.bound.x+2,this.imgPosition.y+tag.bound.y+2);tag.xbutton.show();this.adjustPhotoViewerHeight();Meetup.DomDeco.GalvPhotoViewer.handleCommaSeparation(this.elements.tags)};mdg.findListElementsByMemberId=function(parent,memberid){var result=[];var lis=MochiKit.DOM.getElementsByTagAndClassName("li",undefined,parent);var li,mid;for(var i=0,len=lis.length;i<len;++i){li=lis[i];mid=0+li.getAttribute("memberid");if(mid==memberid){result[result.length]=li}}return result};mdg.prototype.onDeleteTagSuccess=function(photoTagId,photoIndex,evaled){var length=this.cleanUpTag(photoTagId,photoIndex);Meetup.DomDeco.GalvPhotoViewer.handleCommaSeparation(this.elements.tags);if(this.facetagMode===Meetup.DomDeco.GalvPhotoViewer.INT_FACETAG_MODE_ADD){return}if(length===0){this.hideFacetag()}};mdg.prototype.onFacetagDoneClick=function(){this.hideFacetag()};mdg.prototype.onFacetagClick=function(ev){if(this.facetagMode!==Meetup.DomDeco.GalvPhotoViewer.INT_FACETAG_MODE_ADD){return}var time;var MDG=Meetup.DomDeco.GalvPhotoViewer;var SMP=MDG.smoothMochiKitObjectPoint;var dimen=this.imgDimension;var pos=SMP(MochiKit.Style.getElementPosition(this.facetag.wrap));var mouse=SMP(ev.mouse().page);var elm_membersearch=this.membersearch.getRoot();var delay;if(this.facetagHelpBalloon.isShowing()){this.facetagHelpBalloon.hide()}if(this.membersearch.balloon&&this.membersearch.balloon.isShowing()){this.membersearch.balloon.hide()}if(this.isShowingMarquee){this.resetMarquees();MochiKit.Style.setStyle(elm_membersearch,{opacity:0.3})}this.isShowingMarquee=true;this.facetagLocation={x:(mouse.x-pos.x),y:(mouse.y-pos.y)};this.facetagBounding=MDG.calculateMarqueeLocation(this.facetagLocation.x,this.facetagLocation.y,dimen.w,dimen.h);if(this.facetagBounding.isAnimate){time=0.4;MDG.zoomInMarquee(this.facetag.marquees.array,this.facetagBounding,time)}else{time=0.05;MDG.locateMarquee(this.facetag.marquees.array,this.facetagBounding)}delay=(time*1100);if(this.membersearch.isShowing()){var point=MDG.calculateMemberSearchPosition(this.facetagLocation,this.facetagBounding,pos,this.imgDimension,this.membersearch.dimension());Meetup.Tweener.addTween(elm_membersearch,{opacity:1,left:point[0]+"px",top:point[1]+"px",time:0.2,transition:"easeInCubic",onComplete:this.membersearch.focus})}window.setTimeout(this.afterShowMarquees,delay)};mdg.prototype.onFacetagDisplayMouseIn=function(ev){ev.stop()};mdg.prototype.onMaskInteraction=function(ev){ev.stop()};mdg.prototype.onMemberSearchUpdateStruct=function(list,key){var i,len,span,li,G1=MochiKit.DOM.getFirstElementByTagAndClassName,lis=MochiKit.DOM.getElementsByTagAndClassName("li",undefined,list),MDG=Meetup.DomDeco.GalvPhotoViewer;for(i=0,len=lis.length;i<len;++i){li=lis[i];span=G1("span","text",li);span.appendChild(MDG.buildMemberSearchTagAnchor(Meetup.Copy.tagThisPerson))}this.membersearch.injectListItem(MDG.buildNobodyLi(lis.length,key))};mdg.buildNobodyLi=function(index,name){var li,spanText,spanName,spanAnc;li=LI({index:index,title:name});spanText=SPAN({"class":"text"});spanName=SPAN({"class":"name"});spanName.innerHTML=Meetup.Copy.askGeneralicTag.replace("__TAG_NAME__",name);spanText.appendChild(spanName);spanText.appendChild(BR());spanAnc=SPAN({"class":"tagAnchor"});spanAnc.innerHTML="Tag: "+name;spanText.appendChild(spanAnc);li.appendChild(spanText);return li};mdg.buildMemberSearchTagAnchor=function(key){var fakeAnc=SPAN({"class":"tagAnchor"},BR());fakeAnc.innerHTML+=key;return fakeAnc};mdg.prototype.onMemberSearchNoMatch=function(elm,key){var obj=Meetup.DomDeco.GalvPhotoViewer.buildTagAnyway(key);elm.appendChild(obj.span);obj.a.setAttribute("tagvalue",key);if(this.membersearch.evPointer){if(this.membersearch.evPointer.onNotMemberTagAnchorClick){disconnect(this.membersearch.evPointer.onNotMemberTagAnchorClick)}}else{this.membersearch.evPointer={}}this.membersearch.evPointer.onNotMemberTagAnchorClick=connect(obj.a,"onclick",this.onNotMemberTagAnchorClick)};mdg.prototype.onNotMemberTagAnchorClick=function(ev){ev.stop();var a=ev.target();var key=Meetup.DomDeco.GalvPhotoViewer.stringify(a.getAttribute("tagvalue"));this.onMemberSearchSelect(key)};mdg.buildTagAnyway=function(key){var span=SPAN();span.appendChild(document.createElement("br"));span.appendChild(document.createTextNode(Meetup.Copy.tag+Meetup.Copy.colon+" "));var strong=STRONG();span.appendChild(strong);var a=A({href:"#"},(key));strong.appendChild(a);return{span:span,a:a}};mdg.prototype.onMemberSearchSelect=function(member){if(this.isMemberSearchReady){if(typeof member==="string"){this.createTag(undefined,member,this.imgDimension.w,this.imgDimension.h,this.facetagLocation.x,this.facetagLocation.y)}else{if(typeof member==="object"){this.createTag(member.id,member.name,this.imgDimension.w,this.imgDimension.h,this.facetagLocation.x,this.facetagLocation.y)}}}this.isMemberSearchReady=false;this.membersearch.hide()};mdg.prototype.onPhotoTagListAnchorNameMouseIn=function(ev){var tag,pos,i,len,tagId,arr,MDG=Meetup.DomDeco.GalvPhotoViewer,trans=MDG.translateBalloonCoord,li=MDG.findParent(ev.target(),"li");tagId=Meetup.DomDeco.GalvPhotoViewer.stringify(li.getAttribute("tagid"));arr=tagId.split(Meetup.DomDeco.GalvPhotoViewer.CHAR_SEPARATOR);for(i=0,len=arr.length;i<len;++i){tag=this.facetagState[arr[i]];pos=trans(this.imgPosition.x,this.imgPosition.y,tag.xCoord,tag.yCoord,tag.bound.h);tag.balloon.position(pos.x,pos.y);tag.balloon.show()}};mdg.prototype.onPhotoTagListAnchorNameMouseOut=function(ev){var tag,i,len,tagId,arr,li=Meetup.DomDeco.GalvPhotoViewer.findParent(ev.target(),"li");tagId=Meetup.DomDeco.GalvPhotoViewer.stringify(li.getAttribute("tagid"));arr=tagId.split(Meetup.DomDeco.GalvPhotoViewer.CHAR_SEPARATOR);for(i=0,len=arr.length;i<len;++i){tag=this.facetagState[arr[i]];tag.balloon.hide()}};mdg.prototype.onPhotoTagListAnchorRemoveClick=function(ev){ev.stop();if(this.isInFadeAnimation||this.isInNavAnimation||this.isLoadingImg){return false}var i,len,MDG=Meetup.DomDeco.GalvPhotoViewer,li=MDG.findParent(ev.target(),"li"),arr=Meetup.DomDeco.GalvPhotoViewer.stringify(li.getAttribute("tagid")).split(MDG.CHAR_SEPARATOR);this.facetagBucket=[];for(i=0,len=arr.length;i<len;++i){this.facetagBucket[this.facetagBucket.length]=this.facetagState[arr[i]]}if(this.isPlayingSlide){this.onSlideshowPanelletClick()}if(this.isShowingNav){this.hideNav();this.wasShowingNav=true}else{this.wasShowingNav=false}if(this.isEditingCaption){this.closeCaptionEdit()}this.clearPrompt();this.showFacetag(MDG.INT_FACETAG_MODE_REMOVE)};mdg.findParent=function(elm,tag,cls){var c=0,iter=elm,fpc=Meetup.DomDeco.GalvPhotoViewer.findParentCheck;tag=tag.toLowerCase();while(fpc(iter,tag,cls)===false){if(c>10){return null}iter=iter.parentNode;++c}return iter};mdg.findParentCheck=function(elm,tag,cls){var result=false;if(elm.tagName.toLowerCase()===tag){if(cls===undefined||cls===null||elm.className===String(cls)){result=true}}return result};mdg.prototype.onTagMarqueeMouseIn=function(ev){var MDG=Meetup.DomDeco.GalvPhotoViewer,div=MDG.findParent(ev.target(),"div","J_facetagDisplayMarquee"),tagid=Meetup.DomDeco.GalvPhotoViewer.stringify(div.getAttribute("tagid")),tag=this.facetagState[tagid],pos=MDG.translateBalloonCoord(this.imgPosition.x,this.imgPosition.y,tag.xCoord,tag.yCoord,tag.bound.h);tag.balloon.position(pos.x,pos.y);tag.balloon.show()};mdg.prototype.onTagMarqueeMouseOut=function(ev){var div=Meetup.DomDeco.GalvPhotoViewer.findParent(ev.target(),"div","J_facetagDisplayMarquee"),tagid=Meetup.DomDeco.GalvPhotoViewer.stringify(div.getAttribute("tagid")),tag=this.facetagState[tagid];tag.balloon.hide()};mdg.prototype.onTagLinkClick=function(ev){ev.stop();if(this.isInFadeAnimation||this.isInNavAnimation||this.isLoadingImg){return false}if(this.isPlayingSlide){this.onSlideshowPanelletClick()}if(this.isShowingNav){this.hideNav();this.wasShowingNav=true}else{this.wasShowingNav=false}if(this.isEditingCaption){this.closeCaptionEdit()}this.clearPrompt();this.showFacetag();return false};mdg.prototype.onWindowKeyDown=function(ev){var key=ev.key();if(key.code===27){if(!this.isInFacetagFade){this.hideFacetag()}return}else{++this.counterKeyUp}if(this.counterKeyUp>2){if(this.facetagHelpBalloon.isShowing()){this.facetagHelpBalloon.hide()}}};mdg.prototype.afterHideFacetag=function(){this.isInFacetagFade=false;this.isFacetagging=false;this.facetagBucket=null;this.controller.wrap.style.display="block";this.facetag.marquees.wrap.style.display="none";this.facetagMask.wrap.style.display="none";this.resetPosition();MochiKit.Style.setStyle(this.elements.facetagDisplay,{opacity:1})};mdg.prototype.afterShowFacetag=function(){this.isInFacetagFade=false;this.facetag.wrap.style.display="block";this.facetag.marquees.wrap.style.display="block";this.facetagDone.show();this.counterKeyUp=0;this.isShowingMarquee=false;this.membersearch.hide();if(this.isMSIE){this.pointerKeyWatch=connect(document.body,"onkeydown",this.onWindowKeyDown)}else{this.pointerKeyWatch=connect(window,"onkeydown",this.onWindowKeyDown)}var i,len,tag,photoTagId,dimButton,MDG=Meetup.DomDeco.GalvPhotoViewer;switch(this.facetagMode){case MDG.INT_FACETAG_MODE_REMOVE:if(this.facetagHelpBalloon===null){this.facetagHelpBalloon=new Meetup.DiscreteBalloon(Meetup.Copy.tagHelpRemove,true)}else{this.facetagHelpBalloon.content(Meetup.Copy.tagHelpRemove)}this.facetagHelpBalloon.position((this.imgPosition.x+(this.imgDimension.w/2)),(this.imgPosition.y-20));this.facetagHelpBalloon.zIndex(2550);this.facetagHelpBalloon.show();for(i=0,len=this.facetagBucket.length;i<len;++i){tag=this.facetagBucket[i];tag.marquee.lines.style.display="block";tag.xbutton.position(this.imgPosition.x+tag.bound.x+2,this.imgPosition.y+tag.bound.y+2);tag.xbutton.show();tag.balloon.zIndex(2550);tag.balloon.position(this.imgPosition.x+tag.bound.x+(tag.bound.w/2),this.imgPosition.y+tag.bound.y);tag.balloon.show()}break;case MDG.INT_FACETAG_MODE_ADD:if(this.facetagHelpBalloon===null){this.facetagHelpBalloon=new Meetup.DiscreteBalloon(Meetup.Copy.tagHelpAdd,true)}else{this.facetagHelpBalloon.content(Meetup.Copy.tagHelpAdd)}this.facetagHelpBalloon.position((this.imgPosition.x+(this.imgDimension.w/2)),(this.imgPosition.y-20));this.facetagHelpBalloon.zIndex(2550);this.facetagHelpBalloon.show();for(photoTagId in this.facetagState){tag=this.facetagState[photoTagId];tag.marquee.lines.style.display="block";if(!tag.balloon.isShowing()){tag.balloon.show()}tag.balloon.zIndex(2525);Meetup.DomDeco.GalvPhotoViewer.buildBalloonHideInGiveSecond(tag.balloon)}if(this.isMSIE){MochiKit.Style.setStyle(this.elements.facetagDisplay,{opacity:1})}else{MochiKit.Style.setStyle(this.elements.facetagDisplay,{opacity:0.4})}break;default:LOG.error("You need to implement this:");break}};mdg.buildBalloonHideInGiveSecond=function(balloon,milsec){milsec=milsec||1500;window.setTimeout(function(){balloon.hide()},milsec)};mdg.prototype.afterShowMarquees=function(){if(this.membersearch.isShowing()){return}var MDG=Meetup.DomDeco.GalvPhotoViewer;var point=MDG.calculateMemberSearchPosition(this.facetagLocation,this.facetagBounding,MDG.smoothMochiKitObjectPoint(MochiKit.Style.getElementPosition(this.facetag.wrap)),this.imgDimension,this.membersearch.dimension());if((this.membersearch.balloon===undefined||this.membersearch.balloon.hasDiscarded())&&this.intHasIntroduced<3){++this.intHasIntroduced;var w=Meetup.DomDeco.GalvPhotoViewer.PIX_MEMBER_SEARCH_WIDTH/2;var balloon=new Meetup.DiscreteBalloon(Meetup.Copy.tagHelpMemberSearch);this.membersearch.balloon=balloon;this.membersearch.balloon.position(point[0]+w,point[1]-3);this.membersearch.balloon.zIndex(2550);var func=function(){window.setTimeout(balloon.hide,2000)};this.membersearch.balloon.attach("onAfterShow",func);window.setTimeout(balloon.show,500)}this.membersearch.position(point[0],point[1]);this.membersearch.show()};mdg.prototype.cleanUpFacetagState=function(){var tag,tagId,i,len,MSD=MochiKit.Signal.disconnect;for(tagId in this.facetagState){tag=this.facetagState[tagId];if(tag.balloon){tag.balloon.discard()}if(tag.pointers){for(i=0,len=tag.pointers.length;i<len;++i){MSD(tag.pointers[i])}}}};mdg.prototype.cleanUpTag=function(photoTagId,photoIndex){var i,li,len,arr,replacingArr,counter=0,result=0,tag=this.facetagState[photoTagId],MSD=MochiKit.Signal.disconnect;if(!tag){return result}li=tag.listElement;arr=Meetup.DomDeco.GalvPhotoViewer.stringify(li.getAttribute("tagid")).split(Meetup.DomDeco.GalvPhotoViewer.CHAR_SEPARATOR);if(arr.length===1){Meetup.DomDeco.GalvPhotoViewer.cleanUpTagLi(li);li.parentNode.removeChild(li);this.adjustPhotoViewerHeight()}else{replacingArr=[];for(i=0,len=arr.length;i<len;++i){if(parseInt(arr[i],10)!==parseInt(tag.photoTagId,10)){replacingArr[replacingArr.length]=arr[i]}}li.setAttribute("tagid",replacingArr.join(Meetup.DomDeco.GalvPhotoViewer.CHAR_SEPARATOR));result=replacingArr.length}for(i=0,len=tag.pointers.length;i<len;++i){MSD(tag.pointers[i])}tag.marquee.wrap.parentNode.removeChild(tag.marquee.wrap);tag.balloon.discard();tag.xbutton.discard();delete Meetup.Data.photoAlbum.photos[photoIndex].tags[tag.tagIndex];delete this.facetagState[photoTagId];for(i in this.facetagState){++counter}return result};mdg.prototype.createTag=function(taggeeId,name,width,height,xcoord,ycoord){if((name===undefined)||(name===false)||(name===null)){throw new Error("You need to pass at least name.")}this.forceReloader.flagUp();var photoIndex=this.currentPhotoIndex[0];var num=parseInt(taggeeId,10);taggeeId=(isNaN(num)||num<1)?-1:num;name=Meetup.DomDeco.GalvPhotoViewer.trim(name);var def=Meetup.Http.post(Meetup.Data.chapter.url+"api/",MochiKit.Base.queryString({method:"createTag",arg_eventPhotoId:Meetup.Data.photoAlbum.photos[photoIndex].id,arg_memberId:Meetup.Data.member.id,arg_taggeeMemberId:taggeeId,arg_name:name,arg_width:width,arg_height:height,arg_xCoord:xcoord,arg_yCoord:ycoord}));def.addCallbacks(partial(this.onCreateTagSuccess,photoIndex,name,xcoord,ycoord),partial(this.onCreateTagFail,name))};mdg.prototype.onCreateTagFail=function(name,evaled){LOG.error("onCreateTagFail");this.resetMarquees()};mdg.prototype.deleteTag=function(photoTagId){if(photoTagId===undefined){throw new Error("Deleting tag id is not specified.")}this.forceReloader.flagUp();var photoIndex=this.currentPhotoIndex[0];var def=Meetup.Http.post(Meetup.Data.chapter.url+"api/",MochiKit.Base.queryString({method:"deleteTag",arg_eventPhotoId:Meetup.Data.photoAlbum.photos[photoIndex].id,arg_memberId:Meetup.Data.member.id,arg_photoTagId:photoTagId}));def.addCallbacks(partial(this.onDeleteTagSuccess,photoTagId,photoIndex),function(){LOG.error("Error happens at deleteTag")})};mdg.prototype.getCurrentPhotoImg=function(){return MochiKit.DOM.getFirstElementByTagAndClassName("img",undefined,this.elements.photo)};mdg.prototype.hideFacetag=function(){disconnect(this.pointerKeyWatch);this.pointerKeyWatch=null;this.facetagBucket=null;this.isInFacetagFade=true;this.membersearch.hide();this.facetagDone.hide();this.facetag.wrap.style.display="none";if(this.facetagHelpBalloon.isShowing()){this.facetagHelpBalloon.hide()}var tag;for(var photoTagId in this.facetagState){tag=this.facetagState[photoTagId];tag.marquee.lines.style.display="none";if(tag.balloon){tag.balloon.zIndex(1350);if(tag.balloon.isShowing()){tag.balloon.hide()}}if(tag.xbutton){tag.xbutton.hide()}}if(this.membersearch.balloon&&this.membersearch.balloon.isShowing()){this.membersearch.balloon.hide()}var time=1;var mask=this.facetagMask.wrap;Meetup.Tweener.addTween(mask,{opacity:0,time:time});window.setTimeout(this.afterHideFacetag,(time*1100))};mdg.prototype.makeTagsList=function(){var photoTagId,tag,index,isAppending,listObj,arrTags,listElement,concatedTagId,tempDic={},counter=0,ul=MochiKit.DOM.getFirstElementByTagAndClassName("ul",undefined,this.elements.tags),MDG=Meetup.DomDeco.GalvPhotoViewer,BFR=MDG.buildFacetagRemoveFunction;MDG.cleanUpTagsList(ul);MDG.clearChildElements(ul);MDG.clearChildElements(this.elements.facetagDisplay);for(photoTagId in this.facetagState){tag=this.facetagState[photoTagId];isAppending=false;MDG.complementTag(tag,this.imgDimension.w,this.imgDimension.h,this.imgPosition.x,this.imgPosition.y,this.onTagMarqueeMouseIn,this.onTagMarqueeMouseOut,BFR(tag.photoTagId,tag.name,this.deleteTag));this.elements.facetagDisplay.appendChild(tag.marquee.wrap);index=tag.memberId;if(index=="-1"){index="-1_"+photoTagId;tempDic[index]=true;isAppending=true}else{if(tempDic[index]===undefined){tempDic[index]=true;isAppending=true}}if(isAppending){listObj=this.makeTagListObj(tag,(counter===0?true:false));ul.appendChild(listObj.wrap);++counter;tempDic[index]=listObj}else{listObj=tempDic[index];listElement=listObj.wrap;concatedTagId=Meetup.DomDeco.GalvPhotoViewer.stringify(listElement.getAttribute("tagid"));arrTags=concatedTagId.split(Meetup.DomDeco.GalvPhotoViewer.CHAR_SEPARATOR);arrTags[arrTags.length]=photoTagId;listElement.setAttribute("tagid",arrTags.join(Meetup.DomDeco.GalvPhotoViewer.CHAR_SEPARATOR))}tag.listElement=listObj.wrap;if(counter!=this.currentTagsLength){listObj.wrap.appendChild(SPAN({"class":"separator"},","))}}if(listObj){MochiKit.DOM.addElementClass(listObj.wrap,"last")}if(counter===0){}else{}};mdg.prototype.initFacetagPromo=function(){this.facetagPromo={};this.facetagPromo.wrap=DIV({id:"J_facetagPromo"});var wrap=this.facetagPromo.wrap;this.facetagPromo.bg=DIV({"class":"bg"});this.facetagPromo.display=DIV({"class":"display"});wrap.appendChild(this.facetagPromo.bg);wrap.appendChild(this.facetagPromo.display);this.elements.tags.appendChild(wrap);this.facetagPromo.show=function(){if(Meetup.Data.member.isMember){wrap.style.display="block"}};this.facetagPromo.hide=function(){if(Meetup.Data.member.isMember){wrap.style.display="none"}};var span=SPAN(Meetup.Copy.promoCopy);span.appendChild(document.createTextNode(" "));var a=A({href:"#"},Meetup.Copy.promoAnchorCopy);var self=this;span.appendChild(a);this.facetagPromo.display.appendChild(span);a.onclick=function(){self.showFacetag();return false};this.facetagPromo.wrap.style.display="none";if(this.isMSIE){Meetup.DiscreteBase.swapElementsBackgroundToFilter(this.facetagPromo.bg)}delete this.initFacetagPromo;delete Meetup.DomDeco.GalvPhotoViewer.prototype.initFacetagPromo};mdg.prototype.makeTagListObj=function(tag,isFirst){var MSC=MochiKit.Signal.connect,url=((parseInt(tag.memberId,10)!==-1)?Meetup.DomDeco.GalvPhotoViewer.buildMemberTaggedPhotoUrl(tag.memberId):undefined),listObj=Meetup.DomDeco.GalvPhotoViewer.buildTagsListLi(tag.memberId,tag.name,tag.canDelete,isFirst,this.isTaggable,tag.photoTagId,url);listObj.wrap.struct=listObj;listObj.pointers=[];listObj.pointers[listObj.pointers.length]=MSC(listObj.wrap,"onmouseover",this.onPhotoTagListAnchorNameMouseIn);listObj.pointers[listObj.pointers.length]=MSC(listObj.wrap,"onmouseout",this.onPhotoTagListAnchorNameMouseOut);if(tag.canDelete&&listObj.anchorRemove){listObj.pointers[listObj.pointers.length]=MSC(listObj.anchorRemove,"onclick",this.onPhotoTagListAnchorRemoveClick)}return listObj};mdg.prototype.relocateFacetag=function(){var MDGS=Meetup.DomDeco.GalvPhotoViewer.smoothMochiKitObjectPoint;var img=this.getCurrentPhotoImg();this.imgPosition=MDGS(MochiKit.Style.getElementPosition(img));this.imgDimension=MDGS(MochiKit.Style.getElementDimensions(img));var w_body=document.documentElement.scrollWidth;var h_body=document.documentElement.scrollHeight;var MSS=MochiKit.Style.setStyle;var sz_img=this.imgDimension;var pz_img=this.imgPosition;var left=pz_img.x+"px";var top=pz_img.y+"px";var width=sz_img.w+"px";var height=sz_img.h+"px";MSS(this.facetag.wrap,{left:left,top:top,width:width,height:height});MSS(this.facetag.marquees.wrap,{left:left,top:top,width:width,height:height});MSS(this.facetagMask.wrap,{left:"0px",top:"0px",width:w_body+"px",height:h_body+"px"});MSS(this.facetagMask.top,{left:"0px",top:"0px",width:w_body+"px",height:pz_img.y+"px"});MSS(this.facetagMask.right,{left:(pz_img.x+sz_img.w)+"px",top:pz_img.y+"px",width:(w_body-pz_img.x-sz_img.w)+"px",height:sz_img.h+"px"});MSS(this.facetagMask.bottom,{left:"0px",top:(pz_img.y+sz_img.h)+"px",width:w_body+"px",height:(h_body-pz_img.y-sz_img.h)+"px"});MSS(this.facetagMask.left,{left:"0px",top:pz_img.y+"px",width:pz_img.x+"px",height:sz_img.h+"px"});this.facetagDone.position(pz_img.x,pz_img.y)};mdg.prototype.resetMarquees=function(){this.isShowingMarquee=false;var mars=this.facetag.marquees.array;var MSS=MochiKit.Style.setStyle;var width=this.imgDimension.w;var height=this.imgDimension.h;MSS(mars[0],{left:"0px",top:"0px",width:width+"px",height:"1px",visibility:"hidden"});MSS(mars[1],{left:(width-1)+"px",top:"0px",width:"1px",height:height+"px",visibility:"hidden"});MSS(mars[2],{left:"0px",top:(height-1)+"px",width:width+"px",height:"1px",visibility:"hidden"});MSS(mars[3],{left:"0px",top:"0px",width:"1px",height:height+"px",visibility:"hidden"});this.facetag.marquees.wrap.style.display="block"};mdg.prototype.showFacetag=function(mode){if(this.facetagMask===null){this.initFacetag()}this.facetagMode=mode||Meetup.DomDeco.GalvPhotoViewer.INT_FACETAG_MODE_ADD;this.isInFacetagFade=true;this.isFacetagging=true;this.facetagLocation={};Meetup.DomDeco.GalvPhotoViewer.scrollToPhoto(this.getCurrentPhotoImg());this.resetMarquees();this.relocateFacetag();var MSS=MochiKit.Style.setStyle;var time=1;this.controller.wrap.style.display="none";var mask=this.facetagMask.wrap;MSS(mask,{opacity:0,display:"block"});Meetup.Tweener.addTween(mask,{opacity:0.6,time:time});window.setTimeout(this.afterShowFacetag,(time*1100))};mdg.handleCommaSeparation=function(list){var tags=getElementsByTagAndClassName("li",null,list);if(!tags||tags.length==0){removeElementClass(get1st("p","D_empty",list),"displaynone");return}else{addElementClass(get1st("p","D_empty",list),"displaynone")}var lastTag=tags[tags.length-1];var secondToLastTag=tags[tags.length-2];if(lastTag&&get1st("span","separator",lastTag)){removeElement(get1st("span","separator",lastTag))}if(secondToLastTag&&!get1st("span","separator",secondToLastTag)){secondToLastTag.appendChild(SPAN({"class":"separator"},","))}};mdg.buildFacetagMarquee=function(parent){var i,len,result=[];result[0]=DIV({"class":"top",style:"height:1px;"});result[1]=DIV({"class":"right",style:"width:1px;"});result[2]=DIV({"class":"bottom",style:"height:1px;"});result[3]=DIV({"class":"left",style:"width:1px;"});for(i=0,len=result.length;i<len;++i){parent.appendChild(result[i])}return result};mdg.buildFacetagMask=function(){var result={};result.wrap=DIV({id:"J_facetagMask"});result.top=DIV({"class":"top"});result.right=DIV({"class":"right"});result.bottom=DIV({"class":"bottom"});result.left=DIV({"class":"left"});result.wrap.appendChild(result.top);result.wrap.appendChild(result.right);result.wrap.appendChild(result.bottom);result.wrap.appendChild(result.left);document.body.appendChild(result.wrap);return result};mdg.buildFacetagRemoveFunction=function(photoTagId,tagName,deleteTag){return function(){deleteTag(photoTagId)}};mdg.buildMemberTaggedPhotoUrl=function(memberId){var arr=[Meetup.Data.chapter.url,"members/",memberId,"/photos/#tagged_photos"];return arr.join("")};mdg.buildTagBalloon=function(name,imgPosX,imgPosY,xCoord,yCoord,side){var dp=new Meetup.DiscreteBalloon(name,true);var pos=Meetup.DomDeco.GalvPhotoViewer.translateBalloonCoord(imgPosX,imgPosY,xCoord,yCoord,side);dp.position(pos.x,pos.y);return dp};mdg.buildTagsListLi=function(memberId,memberName,canDelete,isFirst,isTaggable,tagId,urlMemberPhotos){var elmName,ancRemove,ancPhotos,spanPhotos,spanRemove,url,tmp,isParened=false,li=LI({});if(isFirst){MochiKit.DOM.addElementClass(li,"first")}li.setAttribute("memberid",memberId);li.setAttribute("tagid",tagId);li.setAttribute("name",memberName);if(parseInt(memberId,10)!==-1){url=[Meetup.Data.chapter.url,"members/",memberId,"/"].join("");MochiKit.DOM.addElementClass(li,"member");tmp=A({href:url});elmName=STRONG({});li.appendChild(tmp);tmp.appendChild(elmName)}else{MochiKit.DOM.addElementClass(li,"object");elmName=STRONG();li.appendChild(elmName)}elmName.innerHTML=memberName;if(urlMemberPhotos){spanPhotos=SPAN({"class":"photos"});spanPhotos.appendChild(document.createTextNode(" ("));isParened=true;ancPhotos=A({href:urlMemberPhotos});ancPhotos.innerHTML=Meetup.Copy.photos;spanPhotos.appendChild(ancPhotos);if(!canDelete){spanPhotos.appendChild(document.createTextNode(") "));isParened=false}else{spanPhotos.appendChild(document.createTextNode(" | "))}li.appendChild(spanPhotos)}if(canDelete){spanRemove=SPAN({"class":"remove"});if(isTaggable){ancRemove=A({href:"#"},"x");ancRemove.title="Untag "+memberName;spanRemove.appendChild(ancRemove)}li.appendChild(spanRemove)}return{wrap:li,anchorRemove:ancRemove}};mdg.buildTagMarquee=function(tagId,bound){var result={};result.wrap=DIV({"class":"J_facetagDisplayMarquee"});result.wrap.setAttribute("tagid",tagId);result.wrap.style.left=bound.x+"px";result.wrap.style.top=bound.y+"px";result.wrap.style.width=bound.w+"px";result.wrap.style.height=bound.h+"px";result.lines=DIV({"class":"lines"});result.wrap.appendChild(result.lines);result.lines.style.display="none";result.lines.style.left="0px";result.lines.style.top="0px";result.lines.style.width=bound.w+"px";result.lines.style.height=bound.h+"px";var top=DIV({"class":"top"});top.style.left="0px";top.style.top="0px";top.style.width=bound.w+"px";top.style.height="1px";result.lines.appendChild(top);var right=DIV({"class":"right"});right.style.left=(bound.w-1)+"px";right.style.top="0px";right.style.width="1px";right.style.height=bound.h+"px";result.lines.appendChild(right);var bottom=DIV({"class":"bottom"});bottom.style.left="0px";bottom.style.top=(bound.h-1)+"px";bottom.style.width=bound.w+"px";bottom.style.height="1px";result.lines.appendChild(bottom);var left=DIV({"class":"left"});left.style.left="0px";left.style.top="0px";left.style.width="1px";left.style.height=bound.h+"px";result.lines.appendChild(left);result.interact=DIV({"class":"interact"});result.wrap.appendChild(result.interact);return result};mdg.calculateMarqueeLocation=function(mouseX,mouseY,width,height){var mqX,mqY,mqW,mqH,halfMqW,halfMqH;var side=Meetup.DomDeco.GalvPhotoViewer.PIX_SIDE_PHOTO_TAG;var isAnimate=[0,0];if(width<side){mqW=width;isAnimate[0]=1}else{mqW=side}if(height<side){mqH=height;isAnimate[1]=1}else{mqH=side}if(parseInt(isAnimate.join(""),2)===3){isAnimate=false}else{isAnimate=true}halfMqW=Math.floor(mqW/2);if(mouseX-halfMqW<0){mqX=0}else{if(mouseX+halfMqW>width){mqX=width-mqW}else{mqX=mouseX-halfMqW}}halfMqH=Math.floor(mqH/2);if(mouseY-halfMqH<0){mqY=0}else{if(mouseY+halfMqH>height){mqY=height-mqH}else{mqY=mouseY-halfMqH}}return{x:mqX,y:mqY,w:mqW,h:mqH,isAnimate:isAnimate}};mdg.calculateMemberSearchPosition=function(mouseLoc,marqBound,imgPos,imgDim,msDim){var direction=false;var offset_x=16;var result=[];if((imgDim.w>160)&&(mouseLoc.x>(imgDim.w/2))){direction=true}if(direction){result[0]=imgPos.x+marqBound.x-msDim.w-offset_x;result[1]=imgPos.y+marqBound.y}else{result[0]=imgPos.x+marqBound.x+marqBound.w+offset_x;result[1]=imgPos.y+marqBound.y}return result};mdg.cleanUpTagLi=function(li){var i,len,MSD=MochiKit.Signal.disconnect;if(li.struct){if(li.struct.pointers){for(i=0,len=li.struct.pointers.length;i<len;++i){MSD(li.struct.pointers[i])}}li.struct=null;try{delete li.struct}catch(er){}}};mdg.cleanUpTagsList=function(ul){var i,len,lis=MochiKit.DOM.getFirstElementByTagAndClassName("li",undefined,ul);if(lis===null){return}for(i=0,len=lis.length;i<len;++i){Meetup.DomDeco.GalvPhotoViewer.cleanUpTagLi(lis[i]);ul.removeChild(lis[i])}};mdg.complementTag=function(tag,imgWidth,imgHeight,imgPosX,imgPosY,funcMouseOver,funcMouseOut,funcDeleteTag){var MSC=MochiKit.Signal.connect,MDG=Meetup.DomDeco.GalvPhotoViewer;tag.bound=MDG.calculateMarqueeLocation(tag.xCoord,tag.yCoord,imgWidth,imgHeight);tag.balloon=MDG.buildTagBalloon(tag.name,imgPosX,imgPosY,tag.xCoord,tag.yCoord,tag.bound.h);tag.balloon.zIndex(1350);tag.marquee=MDG.buildTagMarquee(tag.photoTagId,tag.bound);tag.pointers=[];tag.pointers[tag.pointers.length]=MSC(tag.marquee.interact,"onmouseover",funcMouseOver);tag.pointers[tag.pointers.length]=MSC(tag.marquee.interact,"onmouseout",funcMouseOut);tag.xbutton=new Meetup.DiscreteMedXButton(true);tag.xbutton.attach("onRootClick",funcDeleteTag)};mdg.convertTagStruct=function(tags){var i,len,result={};if(tags===null){return result}for(i=0,len=tags.length;i<len;++i){tags[i].tagIndex=i;result[tags[i].photoTagId]=tags[i]}return result};mdg.insertElementTopmost=function(parent,child){var fc=parent.firstChild;if(fc===null){parent.appendChild(child)}else{parent.insertBefore(child,fc)}};mdg.loadImgAsync=function(abspath,onLoad,tick,delay,timeout,funcError){tick=tick||0;delay=delay||72;timeout=timeout||10000;if(!funcError){funcError=function(ev){if(img.finish){return}img.finish=true;throw new Error("The given file path doesn't seem to exist")}}var img=new Image();img.finish=false;img.onabort=funcError;img.onerror=funcError;img.onload=function(ev){img.finish=true;if(window.opera&&!img.complete){LOG.error("Opera specific problem")}onLoad(img)};img.src=abspath;if(!img.finish&&timeout){window.setTimeout(function(){if(img.finish){return}if(img.complete){img.finish=true;if(img.width){return}throw new Error("Unknown problem")}if((tick+=delay)>timeout){img.finish=true;throw new Error("Timeout")}setTimeout(arguments.callee,delay)},1)}};mdg.locateMarquee=function(marquees,bounding){var MSS=MochiKit.Style.setStyle;MSS(marquees[0],{width:bounding.w+"px",height:"1px",left:bounding.x+"px",top:bounding.y+"px",visibility:"visible"});MSS(marquees[1],{width:"1px",height:bounding.h+"px",left:(bounding.x+bounding.w-1)+"px",top:bounding.y+"px",visibility:"visible"});MSS(marquees[2],{width:bounding.w+"px",height:"1px",left:bounding.x+"px",top:(bounding.y+bounding.h-1)+"px",visibility:"visible"});MSS(marquees[3],{width:"1px",height:bounding.h+"px",left:bounding.x+"px",top:bounding.y+"px",visibility:"visible"})};mdg.scrollToPhoto=function(img){var pz=Meetup.DomDeco.GalvPhotoViewer.smoothMochiKitObjectPoint(MochiKit.Style.getElementPosition(img));var sz=Meetup.DomDeco.GalvPhotoViewer.smoothMochiKitObjectPoint(MochiKit.Style.getElementDimensions(img));var h_win=window.innerHeight||document.documentElement.clientHeight;var obj={scrollY:window.scrollY||document.documentElement.scrollTop};var offsetY=75;Meetup.Tweener.addTween(obj,{transition:"easeOutExpo",time:0.5,scrollY:Math.floor(pz.y-((h_win-sz.h+offsetY)/2)),onUpdate:function(){window.scroll(0,this.scrollY)},onComplete:function(){}})};mdg.shrinkTags=function(photoIndex){var arr=Meetup.Data.photoAlbum.photos[photoIndex].tags;if(arr===null){return}var result=[];for(var i=0,len=arr.length;i<len;++i){if(arr[i]){result[result.length]=arr[i]}}Meetup.Data.photoAlbum.photos[photoIndex].tags=result};mdg.smoothMochiKitObjectPoint=function(obj){var i,result={},MF=Math.floor;for(i in obj){if(obj.hasOwnProperty(i)){result[i]=MF(obj[i])}}return result};mdg.stringify=function(str){return""+str};mdg.translateBalloonCoord=function(imgPosX,imgPosY,xCoord,yCoord,side){var offset=Math.floor(side/4);var x=imgPosX+xCoord;var y=imgPosY+((yCoord<offset)?yCoord:(yCoord-offset));return{x:x,y:y}};mdg.trim=function(str){var reg=new RegExp(/^\s+|\s+$/g);Meetup.DomDeco.GalvPhotoViewer.trim=function(_str){return _str.replace(reg,"")};return Meetup.DomDeco.GalvPhotoViewer.trim(str)};mdg.zoomInMarquee=function(marquees,bounding,time){for(var i=0,len=marquees.length;i<len;++i){marquees[i].style.visibility="visible"}var delay=0;var transition="easeOutElastic";Meetup.Tweener.addTween(marquees[0],{delay:delay,left:bounding.x+"px",top:bounding.y+"px",width:bounding.w+"px",height:"1px",time:time,transition:transition});Meetup.Tweener.addTween(marquees[1],{delay:delay,left:(bounding.x+bounding.w)+"px",top:bounding.y+"px",width:"1px",height:bounding.h+"px",time:time,transition:transition});Meetup.Tweener.addTween(marquees[2],{delay:delay,left:bounding.x+"px",top:(bounding.y+bounding.h)+"px",width:bounding.w+"px",height:"1px",time:time,transition:transition});Meetup.Tweener.addTween(marquees[3],{delay:delay,left:bounding.x+"px",top:bounding.y+"px",width:"1px",height:bounding.h+"px",time:time,transition:transition})}})();