if(typeof console==="undefined"){console={};console.log=function(){}}Meetup.DomDeco.MembersStage=function(){bindMethods(this)};Meetup.DomDeco.MembersStage.prototype.members=null;Meetup.DomDeco.MembersStage.prototype.chunks=null;Meetup.DomDeco.MembersStage.prototype.element=null;Meetup.DomDeco.MembersStage.prototype.evPointer=null;Meetup.DomDeco.MembersStage.prototype.index=null;Meetup.DomDeco.MembersStage.prototype.slotLength=0;Meetup.DomDeco.MembersStage.prototype.offset=0;Meetup.DomDeco.MembersStage.prototype.limit=30;Meetup.DomDeco.MembersStage.prototype.rootWidth=0;Meetup.DomDeco.MembersStage.prototype.rootHeight=0;Meetup.DomDeco.MembersStage.prototype.memberCount=0;Meetup.DomDeco.MembersStage.prototype.urlGroup="";Meetup.DomDeco.MembersStage.prototype.urlApi="";Meetup.DomDeco.MembersStage.prototype.isAnimating=false;Meetup.DomDeco.MembersStage.prototype.isUArrowShowing=false;Meetup.DomDeco.MembersStage.prototype.isDArrowShowing=false;Meetup.DomDeco.MembersStage.prototype.shownMember=null;Meetup.DomDeco.MembersStage.prototype.isShuffle=false;Meetup.DomDeco.MembersStage.ANIME_DISAPPEAR=1;Meetup.DomDeco.MembersStage.ANIME_MOVEUP=2;Meetup.DomDeco.MembersStage.ANIME_MOVEDOWN=3;Meetup.DomDeco.MembersStage.ANIME_MOVELEFT=4;Meetup.DomDeco.MembersStage.ANIME_MOVERIGHT=5;Meetup.DomDeco.MembersStage.SLOT_DEFAULT_LENGTH=3;Meetup.DomDeco.MembersStage.CHUNK_INDEX_CURRENT=1;Meetup.DomDeco.MembersStage.CHUNK_INDEX_FUTURE=2;Meetup.DomDeco.MembersStage.SEC_TRANSITION=0.7;Meetup.DomDeco.MembersStage.prototype.__repr__=function(){return"Meetup.DomDeco.MembersStage"};Meetup.DomDeco.MembersStage.prototype.decorate=function(el){this.members=[];this.chunks=[];this.element={};this.shownMember={};this.evPointer={};this.urlGroup=Meetup.Data.grouphome.baseUrl;this.urlApi=this.urlGroup+"api/";this.slotLength=Meetup.DomDeco.MembersStage.SLOT_DEFAULT_LENGTH;this.memberCount=Meetup.Data.grouphome.memberCount;var exist,G1=MochiKit.DOM.getFirstElementByTagAndClassName,CON=MochiKit.Signal.connect,ELMS=this.element;ELMS.root=el;ELMS.spinner=G1("div","J_membersStageSpinner",ELMS.root);ELMS.forNonJS=G1("div","forNonJS",ELMS.root);ELMS.view=Meetup.DomDeco.MembersStage.buildView();ELMS.root.appendChild(ELMS.view);exist=$("stageChangeRefresh");if(exist){ELMS.buttonRefresh=exist}exist=$("stageChangeShuffle");if(exist){ELMS.buttonShuffle=exist}exist=G1("a","J_membersStageArrowUp",ELMS.root);if(exist){ELMS.arrowUp=exist}exist=G1("a","J_membersStageArrowDown",ELMS.root);if(exist){ELMS.arrowDown=exist}this.initMembers();this.hideSpinner();this.hideForNonJS();this.startAnimation();this.initEvents()};Meetup.DomDeco.MembersStage.prototype.initEvents=function(){var CON=MochiKit.Signal.connect,ELMS=this.element;if(ELMS.buttonRefresh){this.evPointer.onRefreshClick=CON(ELMS.buttonRefresh,"onclick",this.onRefreshClick)}if(ELMS.buttonShuffle){this.evPointer.onShuffleClick=CON(ELMS.buttonShuffle,"onclick",this.onShuffleClick)}if(ELMS.arrowUp){this.evPointer.onArrowUpClick=CON(ELMS.arrowUp,"onclick",this.onArrowUpClick)}if(ELMS.arrowDown){this.evPointer.onArrowDownClick=CON(ELMS.arrowDown,"onclick",this.onArrowDownClick)}};Meetup.DomDeco.MembersStage.prototype.initMembers=function(){var row,len,i=0,MKDOM=MochiKit.DOM,rows=MKDOM.getElementsByTagAndClassName("div","row",MKDOM.getFirstElementByTagAndClassName("div","forNonJS",this.element.root));for(len=rows.length;i<len;++i){row=rows[i];row.style.display="block";this.members[this.members.length]=row;row.setAttribute("memberid",(""+row.getAttribute("title")));row.removeAttribute("title")}this.offset=rows.length};Meetup.DomDeco.MembersStage.prototype.initShuffle=function(){if(this.isShuffle){Meetup.DomDeco.MembersStage.shuffle(this.members)}};Meetup.DomDeco.MembersStage.prototype.makeChunk=function(back){back=back||false;var members,len,i=0,div=Meetup.DomDeco.MembersStage.buildChunk();div.style.display="none";if(back===false){members=this.pickMembers(this.slotLength)}else{members=this.pickMembersReverse(this.slotLength)}for(len=members.length;i<len;++i){if(members[i]){div.appendChild(members[i])}}return div};Meetup.DomDeco.MembersStage.prototype.onRefreshClick=function(ev){ev.stop();this.startAnimation(Meetup.DomDeco.MembersStage.ANIME_DISAPPEAR);return false};Meetup.DomDeco.MembersStage.prototype.onShuffleClick=function(ev){ev.stop();this.startAnimation(Meetup.DomDeco.MembersStage.ANIME_DISAPPEAR);return false};Meetup.DomDeco.MembersStage.prototype.onArrowUpClick=function(ev){ev.stop();this.startAnimation(Meetup.DomDeco.MembersStage.ANIME_MOVEDOWN,true);return false};Meetup.DomDeco.MembersStage.prototype.onArrowDownClick=function(ev){ev.stop();this.startAnimation(Meetup.DomDeco.MembersStage.ANIME_MOVEUP);return false};Meetup.DomDeco.MembersStage.prototype.onAccessGetMemberSuccess=function(obj){for(var i=0,len=obj.members.length;i<len;++i){this.members[this.members.length]=Meetup.DomDeco.MembersStage.buildMemberRow(obj.members[i],this.urlGroup);++this.offset}};Meetup.DomDeco.MembersStage.buildMemberRow=function(member,baseUrl){var row=DIV({"class":"row"});var picture=DIV({"class":"picture",style:"background-image:"+Meetup.DomDeco.MembersStage.buildBGImageString(member.photoUrl)});var memberUrl=Meetup.DomDeco.MembersStage.buildMemberUrl(baseUrl,member.memberId);var a_block=A({"class":"block",href:memberUrl}," ");picture.appendChild(a_block);row.appendChild(picture);var div_text=DIV({"class":"text"});var div_nominal=DIV({"class":"nominal"});var a_nominal=A({href:memberUrl});var arr_member=['<span class="name">',member.name,"</span>"];if(member.title.length>0){arr_member[arr_member.length]='<span class="title">';arr_member[arr_member.length]="&mdash;";arr_member[arr_member.length]=member.title;arr_member[arr_member.length]="</span>"}a_nominal.innerHTML=arr_member.join(" ");div_nominal.appendChild(a_nominal);if(member.status>1){div_nominal.appendChild(document.createElement("br"));if(Meetup.Data.grouphome.ownerId==member.memberId){div_nominal.appendChild(document.createTextNode(Meetup.Copy.organizer))}else{div_nominal.appendChild(document.createTextNode(Meetup.Copy.assistantOrganizer))}}div_text.appendChild(div_nominal);var arr_saying=[];var text_saying;var limit=Meetup.Data.grouphome.charLimit-30;if(member.chapterReview){arr_saying[arr_saying.length]="&ldquo;";if(member.chapterReview.length>limit){arr_saying[arr_saying.length]=Meetup.DomDeco.MembersStage.textTruncate(member.chapterReview,limit);arr_saying[arr_saying.length]="&hellip;"}else{arr_saying[arr_saying.length]=member.chapterReview}arr_saying[arr_saying.length]="&rdquo;"}else{if(member.bio){arr_saying[arr_saying.length]="&ldquo;";if(member.bio.length>limit){arr_saying[arr_saying.length]=Meetup.DomDeco.MembersStage.textTruncate(member.bio,limit);arr_saying[arr_saying.length]="&hellip;"}else{arr_saying[arr_saying.length]=member.bio}arr_saying[arr_saying.length]="&rdquo;"}else{arr_saying[arr_saying.length]=Meetup.Copy.membersStageEmptyContentRegex.replace(/__CITY__/,member.city).replace(/__STATE__/,member.state).replace(/__DATE__/,member.since)}}var div_saying=DIV({"class":"saying"});div_saying.innerHTML=arr_saying.join("");div_text.appendChild(div_saying);row.appendChild(div_text);return row};Meetup.DomDeco.MembersStage.prototype.onAccessFail=function(cont){LOG.error(cont)};Meetup.DomDeco.MembersStage.prototype.accessGetMember=function(){var def,opt,mid=Member.id||0;if(this.offset<0){throw new Error("this version does not support negative offset!")}opt={method:"getActiveMembersForChapterAsJson",arg_memberId:mid,arg_limit:this.limit,arg_offset:this.offset,arg_language:Meetup.Language};this.isAccessing=true;def=Meetup.Http.post(this.urlApi,MochiKit.Base.queryString(opt));def.addCallbacks(this.onAccessGetMemberSuccess,this.onAccessFail)};Meetup.DomDeco.MembersStage.prototype.showSpinner=function(){this.element.spinner.style.display="block"};Meetup.DomDeco.MembersStage.prototype.hideSpinner=function(){this.element.spinner.style.display="none"};Meetup.DomDeco.MembersStage.prototype.hideForNonJS=function(){this.element.forNonJS.style.display="none"};Meetup.DomDeco.MembersStage.prototype.showArrowUp=function(){if(this.element.arrowUp&&this.isUArrowShowing===false){this.isUArrowShowing=true;var dim,a=this.element.arrowUp,as=a.style;as.visibility="hidden";as.display="block";dim=MochiKit.Style.getElementDimensions(a);as.left=Math.floor((this.rootWidth-dim.w)/2)+"px";as.visibility="visible";if(!this.isShuffle){this.element.root.style.paddingTop=(dim.h+10)+"px"}}};Meetup.DomDeco.MembersStage.prototype.hideArrowUp=function(){this.element.arrowUp.style.display="none";this.isUArrowShowing=false};Meetup.DomDeco.MembersStage.prototype.showArrowDown=function(){if(this.element.arrowDown&&this.isDArrowShowing===false){this.isDArrowShowing=true;var dim,a=this.element.arrowDown,as=a.style;as.visibility="hidden";as.display="block";dim=MochiKit.Style.getElementDimensions(a);as.left=Math.floor((this.rootWidth-dim.w)/2)+"px";as.visibility="visible";if(!this.isShuffle){this.element.root.style.paddingBottom=dim.h+"px"}}};Meetup.DomDeco.MembersStage.prototype.hideArrowDown=function(){this.element.arrowDown.style.display="none";this.isDArrowShowing=false};Meetup.DomDeco.MembersStage.prototype.pickMembers=function(n){n=n||Meetup.DomDeco.MembersStage.SLOT_DEFAULT_LENGTH;var member,memberId,result;if(this.isShuffle){result=this.members.splice(0,n)}else{if(this.index===null){this.index=0;result=this.members.slice(0,n)}else{result=this.members.slice(this.index+n,this.index+(n*2))}}for(var i=0;i<n;++i){member=result[i];if(member){memberId=""+member.getAttribute("memberid");this.shownMember[this.shownMember.length]=memberId}else{break}}return result};Meetup.DomDeco.MembersStage.prototype.pickMembersReverse=function(n){if(this.isShuffle){throw new Error("pickMembersReverse: You cannot go backward when in Shuffle mode.")}n=n||Meetup.DomDeco.MembersStage.SLOT_DEFAULT_LENGTH;var member,memberId,result,start;if(this.index===null){start=0}else{start=this.index-n;if(start<0){throw new Error("pickMembersReverse: offset is wrong")}}result=this.members.slice(start,(start+n));for(var i=0;i<n;++i){member=result[i];memberId=""+member.getAttribute("memberid");this.shownMember[this.shownMember.length]=memberId}return result};Meetup.DomDeco.MembersStage.prototype.startAnimation=function(proc,back){if(this.isAnimating){return}proc=proc||null;back=back||false;var MDM=Meetup.DomDeco.MembersStage,c=this.makeChunk(back);this.chunks[MDM.CHUNK_INDEX_FUTURE]=c;this.element.view.appendChild(c);this.isAnimating=true;if(proc===null){this.animateInitially()}else{if(back===false){this.index+=this.slotLength}else{this.index-=this.slotLength}switch(proc){case MDM.ANIME_DISAPPEAR:this.animateDisappear();break;case MDM.ANIME_MOVEUP:this.animateMoveUp();break;case MDM.ANIME_MOVEDOWN:this.animateMoveDown();break;case MDM.ANIME_MOVELEFT:LOG.error("Not yet implmented");break;case MDM.ANIME_MOVERIGHT:LOG.error("Not yet implmented");break}}var len_mem=this.members.length;if((len_mem<=this.memberCount)&&this.index>(len_mem-10)){this.accessGetMember()}};Meetup.DomDeco.MembersStage.prototype.finishAnimation=function(){this.isAnimating=false;this.chunks[Meetup.DomDeco.MembersStage.CHUNK_INDEX_FUTURE]=null;MochiKit.Style.setStyle(this.chunks[Meetup.DomDeco.MembersStage.CHUNK_INDEX_CURRENT],{opacity:1});if(this.index>this.members.length-this.slotLength-1){this.hideArrowDown()}else{this.showArrowDown()}if(this.index===0){this.hideArrowUp()}else{this.showArrowUp()}};Meetup.DomDeco.MembersStage.prototype.animateInitially=function(){var MDM=Meetup.DomDeco.MembersStage,ELM=this.element,fadein=this.chunks[MDM.CHUNK_INDEX_FUTURE],time=MDM.SEC_TRANSITION;MochiKit.Style.setStyle(fadein,{opacity:0,display:"block"});var dim=MochiKit.Style.getElementDimensions(fadein);this.rootWidth=dim.w;this.rootHeight=dim.h;ELM.root.style.width=dim.w+"px";ELM.root.style.height=dim.h+"px";ELM.view.style.width=dim.w+"px";ELM.view.style.height=dim.h+"px";if(!this.isShuffle){ELM.root.style.paddingTop="32px";ELM.root.style.paddingBottom="22px"}Meetup.Tweener.addTween(fadein,{delay:0,opacity:1,time:time});Meetup.DomDeco.MembersStage.plantOnCompleteTimeout(time+0.01,Meetup.DomDeco.MembersStage.buildOnCompleteFadeIn(fadein,this))};Meetup.DomDeco.MembersStage.prototype.animateDisappear=function(){var delay=0,MDM=Meetup.DomDeco.MembersStage,fadeout=this.chunks[MDM.CHUNK_INDEX_CURRENT],fadein=this.chunks[MDM.CHUNK_INDEX_FUTURE],time=MDM.SEC_TRANSITION;if(fadeout){delay=time*0.3;Meetup.Tweener.addTween(fadeout,{delay:0,opacity:0,time:time});Meetup.DomDeco.MembersStage.plantOnCompleteTimeout(time+0.01,Meetup.DomDeco.MembersStage.buildOnCompleteFadeOut(fadeout,this))}MochiKit.Style.setStyle(fadein,{opacity:0,display:"block"});Meetup.Tweener.addTween(fadein,{delay:delay,opacity:1,time:time});Meetup.DomDeco.MembersStage.plantOnCompleteTimeout(delay+1+0.01,Meetup.DomDeco.MembersStage.buildOnCompleteFadeIn(fadein,this))};Meetup.DomDeco.MembersStage.prototype.animateMoveUp=function(){var delay=0,MDM=Meetup.DomDeco.MembersStage,fadeout=this.chunks[MDM.CHUNK_INDEX_CURRENT],fadein=this.chunks[MDM.CHUNK_INDEX_FUTURE],time=MDM.SEC_TRANSITION;if(fadeout){Meetup.Tweener.addTween(fadeout,{delay:0,top:-this.rootHeight+"px",time:time});Meetup.DomDeco.MembersStage.plantOnCompleteTimeout(time+0.01,Meetup.DomDeco.MembersStage.buildOnCompleteFadeOut(fadeout,this))}MochiKit.Style.setStyle(fadein,{opacity:1,display:"block",top:this.rootHeight+"px"});Meetup.Tweener.addTween(fadein,{delay:delay,top:"0px",time:time});Meetup.DomDeco.MembersStage.plantOnCompleteTimeout(delay+time+0.01,Meetup.DomDeco.MembersStage.buildOnCompleteFadeIn(fadein,this))};Meetup.DomDeco.MembersStage.prototype.animateMoveDown=function(){var delay=0,MDM=Meetup.DomDeco.MembersStage,fadeout=this.chunks[MDM.CHUNK_INDEX_CURRENT],fadein=this.chunks[MDM.CHUNK_INDEX_FUTURE],time=MDM.SEC_TRANSITION;if(fadeout){Meetup.Tweener.addTween(fadeout,{delay:0,top:this.rootHeight+"px",time:time});Meetup.DomDeco.MembersStage.plantOnCompleteTimeout(time+0.01,Meetup.DomDeco.MembersStage.buildOnCompleteFadeOut(fadeout,this))}MochiKit.Style.setStyle(fadein,{opacity:1,display:"block",top:-this.rootHeight+"px"});Meetup.Tweener.addTween(fadein,{delay:delay,top:"0px",time:time});Meetup.DomDeco.MembersStage.plantOnCompleteTimeout(delay+time+0.01,Meetup.DomDeco.MembersStage.buildOnCompleteFadeIn(fadein,this))};Meetup.DomDeco.MembersStage.textTruncate=function(str,length){if(str.length<length){return str}var result,shorten=str.slice(0,length),rev_shorten=shorten.split("").reverse().join(""),index=rev_shorten.indexOf(" ");if(index<0){result=shorten}else{result=rev_shorten.slice(index+1).split("").reverse().join("")}return result};Meetup.DomDeco.MembersStage.plantOnCompleteTimeout=function(time,func){return window.setTimeout(func,(time*1000))};Meetup.DomDeco.MembersStage.buildOnCompleteFadeOut=function(fadeout,self){return function(){fadeout.parentNode.removeChild(fadeout)}};Meetup.DomDeco.MembersStage.buildOnCompleteFadeIn=function(fadein,self){return function(){self.chunks[Meetup.DomDeco.MembersStage.CHUNK_INDEX_CURRENT]=fadein;self.finishAnimation()}};Meetup.DomDeco.MembersStage.buildView=function(){var div=document.createElement("div");div.className="view";return div};Meetup.DomDeco.MembersStage.buildChunk=function(){var div=document.createElement("div");div.className="chunk";return div};Meetup.DomDeco.MembersStage.buildBGImageString=function(url){return["url(",url,")"].join("")};Meetup.DomDeco.MembersStage.buildMemberUrl=function(baseUrl,memberId){return[baseUrl,"members/",memberId,"/"].join("")};Meetup.DomDeco.MembersStage.buildUrlForGroupBase=function(){var i,arr_original=window.location.href.split("/"),arr=[];for(i=0;i<4;++i){arr[arr.length]=arr_original[i]}arr[arr.length]="";return arr.join("/")};Meetup.DomDeco.MembersStage.shuffle=function(arr){var j,k,i=arr.length;while(--i){j=Math.floor(Math.random()*(i+1));if(i===j){continue}k=arr[i];arr[i]=arr[j];arr[j]=k}return arr};