Meetup.DomDeco.CalendarQuickAdd=function(){bindMethods(this)};if(typeof(Meetup.QuickAddObjects)=="undefined"){Meetup.QuickAddObjects={}}if(typeof(Meetup.QuickAddHeight)=="undefined"){Meetup.QuickAddHeight=0}Meetup.DomDeco.CalendarQuickAdd.prototype={WIDTH:300,anchor:null,day:null,dateString:null,popup:null,form:null,cancel:null,titleField:null,descriptionField:null,allDayRadio:null,notallDayRadio:null,hourSelect:null,minuteSelect:null,amPmSelect:null,decorate:function(el){if(!el){LOG.error("no el passed into Meetup.DomDeco.CalendarQuickAdd");return false}el.href="#";var dateStr=el.id.substring("otherLink_".length);var dateArr=dateStr.split("-");this.day=new Date(dateArr[0],dateArr[1]-1,dateArr[2]);this.dateString=getNodeAttribute(el,"dateString");connect(el,"onclick",this.showQuickAdd)},showQuickAdd:function(e){e.stop();if($("quickAddDiv")){removeElement($("quickAddDiv"))}this.cancel=A({href:"javascript:"},Meetup.Copy.cancel);this.titleField=INPUT({type:"text",name:"title",style:"width: 100%;",maxLength:"80"});this.descriptionField=TEXTAREA({style:"width: 100%; height: 5em;",name:"description","class":"hasMaxLen maxChars10000"});this.allDayRadio=INPUT({type:"radio",id:"all_day",name:"all_day_toggle",value:"all_day",checked:"checked"});this.notallDayRadio=INPUT({type:"radio",id:"not_all_day",name:"all_day_toggle",value:"not_all_day"});var hourDayYear=this.getDateTimeSelect();this.hourSelect=hourDayYear[0];this.hourMinuteChar=hourDayYear[1];this.minuteSelect=hourDayYear[2];this.amPmSelect=hourDayYear[3];this.form=FORM({method:"post"},P({style:"font-weight: bold;"},Meetup.Copy.titlePrompt),this.titleField,P({style:"font-weight: bold; padding-top: 1em;"},Meetup.Copy.descriptionPrompt),this.descriptionField,P({style:"font-weight: bold; padding-top: 0.75em;"},Meetup.Copy.timePrompt),TABLE({"class":"inputs",style:"width: 100%"},TBODY(null,TR(null,TD(null,this.allDayRadio),TD(null,LABEL({"for":"all_day"},Meetup.Copy.allDay))),TR(null,TD(null,this.notallDayRadio),TD(null,LABEL({"for":"not_all_day"},Meetup.Copy.startsAtPrompt),this.hourSelect,this.hourMinuteChar,this.minuteSelect,this.amPmSelect)))),DIV({"class":"footElement"},INPUT({type:"submit",style:"margin: .5em 0;","class":"D_submit",name:"submit",value:Meetup.Copy.submit}),DIV({"class":"D_altAction"},this.cancel)));this.popup=DIV({id:"quickAddDiv"},H2({style:"font-size:1.3em;font-weight:bold;text-align:center;"},Meetup.Copy.addToCalendarPrompt+" "+this.dateString),this.form);connect(this.cancel,"onclick",this.closeThis);connect(this.form,"onsubmit",this.submitThis);connect(this.hourSelect,"onclick",this.selectTimeRadio);connect(this.minuteSelect,"onclick",this.selectTimeRadio);connect(this.amPmSelect,"onclick",this.selectTimeRadio);var charCount=new Meetup.DomDeco.CharCounter();charCount.decorate(this.descriptionField);Meetup.QuickAddObjects[e.target().id]=this;$("quickAddPopup").appendChild(this.popup);signal($("quickAddPopup"),"appear")},positionPopup:function(quickAddObj,e){var viewportDim=getViewportDimensions();if(Meetup.QuickAddHeight==0){Meetup.QuickAddHeight=elementDimensions(quickAddObj.popup).h}var divHeight=Meetup.QuickAddHeight>0?Meetup.QuickAddHeight:360;var viewportTop=e.mouse().page.y-e.mouse().client.y;var viewportBottom=viewportTop+viewportDim.h;if(e.mouse().page.x>viewportDim.w-this.WIDTH){quickAddObj.popup.style.left=viewportDim.w-this.WIDTH-100+"px"}else{quickAddObj.popup.style.left=e.mouse().page.x-(this.WIDTH/2)+"px"}var y=e.mouse().page.y-divHeight-15;if(y<viewportTop){if(e.mouse().page.y+divHeight+15<viewportBottom){y=e.mouse().page.y+15}else{y=viewportTop+15}}quickAddObj.popup.style.top=y+"px";if(Meetup.UserAgent.isIE()){setTimeout(function(){quickAddObj.titleField.focus()},500)}else{quickAddObj.titleField.focus()}},submitThis:function(e){e.stop();var title=this.titleField.value;var descr=this.descriptionField.value;var isAllDay=this.allDayRadio.checked?"true":"false";var thisDate=this.day.getFullYear()+"-"+(this.day.getMonth()+1)+"-"+this.day.getDate()+" "+(1*this.hourSelect.value+(this.amPmSelect.value==1?12:0))+":"+this.minuteSelect.value+":00";if(title.replace(/^\s*|\s*$/g,"").length==0){alert(Meetup.Copy.errorTitleMissing);return}var def=doXHR(groupUrl+"api/",{method:"POST",sendContent:queryString({method:"quickCalendarAdd",arg_memberId:$("memberId").value,arg_date:thisDate,arg_allDay:isAllDay,arg_title:title,arg_description:descr}),headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"}});def.addCallbacks(this.addEventToCell,function(){alert(Meetup.Copy.genericError)});signal("quickAddPopup","dismiss");removeElement(this.popup)},closeThis:function(e){signal("quickAddPopup","dismiss");e.stop();removeElement(this.popup)},selectTimeRadio:function(){this.notallDayRadio.checked=true;this.allDayRadio.checked=false},getDateTimeSelect:function(){if(Meetup.Language=="en_US"){var hourSelect=SELECT({id:"eventhour",name:"event.hour12","class":"isRadioSelector"},map(this.getOption,[["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7","selected"],["8","8"],["9","9"],["10","10"],["11","11"],["0","12"]]));var hourMinuteChar=":";var minuteSelect=SELECT({id:"eventminute",name:"event.minute","class":"isRadioSelector"},map(this.getOption,[["0","00","selected"],["15","15"],["30","30"],["45","45"]]));var amPmSelect=SELECT({id:"eventampm",name:"event.ampm","class":"isRadioSelector"},map(this.getOption,[["0","AM"],["1","PM","selected"]]));return[hourSelect,hourMinuteChar,minuteSelect,amPmSelect]}else{var hourSelect=SELECT({id:"eventhour",name:"event.hour","class":"isRadioSelector"},map(this.getOption,[["0","00"],["1","01"],["2","02"],["3","03"],["4","04"],["5","05"],["6","06"],["7","07"],["8","08"],["9","09"],["10","10"],["11","11"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19","selected"],["20","20"],["21","21"],["22","22"],["23","23"]]));var hourMinuteChar=".";var minuteSelect=SELECT({id:"eventminute",name:"event.minute","class":"isRadioSelector"},map(this.getOption,[["0","00","selected"],["15","15"],["30","30"],["45","45"]]));var amPmSelect=SELECT({id:"eventampm",name:"event.ampm","class":"isRadioSelector",style:"display:none"},map(this.getOption,[["0","AM","selected"],["1","PM"]]));return[hourSelect,hourMinuteChar,minuteSelect,amPmSelect]}},getOption:function(pair){if(pair.length==3){return OPTION({value:pair[0],selected:"selected"},pair[1])}else{return OPTION({value:pair[0]},pair[1])}},addEventToCell:function(xhr){var item=evalJSONRequest(xhr);var eventUrl=groupUrl+"calendar/"+item.eventId;var localtime=this.datetimeToDate(item.localTime);var timeStr="";if(Meetup.Language=="en_US"){var hour=(localtime.getHours()>12)?localtime.getHours()-12:localtime.getHours();if(hour==0){hour=12}timeStr=hour+":"+(localtime.getMinutes()<10?"0":"")+localtime.getMinutes()+(localtime.getHours()>=12?"PM":"AM")}else{timeStr=localtime.getHours()+"."+(localtime.getMinutes()<10?"0":"")+localtime.getMinutes()}var li=LI({"class":"note niceToolTip",title:this.breakWords(item.descr?item.descr:item.title,25)},item.duration==1440?null:DIV({"class":"time"},timeStr),DIV({"class":"eventContent"},DIV({"class":"eventName summary"},A({href:eventUrl,"class":"url levelUp level_2"},this.breakWords(item.title,12)))));var nodeId="_"+localtime.getFullYear()+"-"+(localtime.getMonth()+1)+"-"+localtime.getDate();if($("cell"+nodeId)){var existing=getElementsByTagAndClassName("li",null,$("daydiv"+nodeId));var newdiv=DIV({"class":"events"},UL({id:"cell"+nodeId},li,existing));swapDOM(getElementsByTagAndClassName("div","events",$("daydiv"+nodeId))[0],newdiv)}else{$("daydiv"+nodeId).appendChild(DIV({"class":"events"},UL({id:"cell"+nodeId},li)))}this.clearDateFor(localtime);Meetup.DomDeco.applyDecorator(Meetup.DomDeco.BubbleTips,li)},clearDateFor:function(localTime){for(key in Meetup.QuickAddObjects){var thisKey="otherLink_"+localTime.getFullYear()+"-"+(1*localTime.getMonth()+1)+"-"+localTime.getDate();if(key==thisKey){Meetup.QuickAddObjects[key]=null}}},datetimeToDate:function(datetime){return new Date(datetime.substring(0,4),1*datetime.substring(5,7)-1,datetime.substring(8,10),datetime.substring(11,13),datetime.substring(14,16),datetime.substring(17,19))},breakWords:function(text,maxWord){var regex=new RegExp("([^\\s]{"+maxWord+"})(?![^<>]*>)(?![\\w\\#]*;)","g");return text.replace(regex,"$1 ")}};