Meetup.UI.Tagger=function(){bindMethods(this)};Meetup.UI.Tagger.prototype={init:function(selectedTags,questionId){this.questionId=questionId||null;this.newQuestionMode=(this.questionId==null)?true:false;this.selectedTagsEl=this.makeDOM_selectedTagsEl(selectedTags);this.checkSelectedTagsQty();this.suggestedTagsEl=this.makeDOM_suggestedTagsEl([]);this.checkSuggestedTagsQty();this.addTagEl=this.makeDOM_addTagEl()},checkSuggestedTagsQty:function(){if(this.suggestedTagsEl.childNodes[1].hasChildNodes()){showElement(this.suggestedTagsEl)}else{hideElement(this.suggestedTagsEl)}},checkSelectedTagsQty:function(){if(this.selectedTagsEl.childNodes[1].childNodes.length>1){this.selectedTagsEl.childNodes[0].style.display="none"}else{this.selectedTagsEl.childNodes[0].style.display=""}},getSuggestedTags:function(e){var questionStr=e.src().value;var obj=this;var success=function(req){var data=eval(eval(req.responseText));var newSuggestedTagsEl=obj.makeDOM_suggestedTagsEl(data);swapDOM(obj.suggestedTagsEl,newSuggestedTagsEl);obj.suggestedTagsEl=newSuggestedTagsEl;obj.checkSuggestedTagsQty()};var error=function(req){};var d=doSimpleXMLHttpRequest("/api/",{method:"getKeywords",arg_question:questionStr});d.addCallbacks(success,error)},selectTag:function(e){e.stop();var src=e.src();var matches=src.id.match(/tag_(\d+)/);var tag={id:matches[1],name:src.title};this.selectedIds.push(tag.id);var keywordIdList=this.selectedIds.join(",");var obj=this;var success=function(){removeElement(src);obj.newQuestionTagsEl.value=keywordIdList;var tagEl=obj.makeDOM_selectedTagEl(tag);appendChildNodes(obj.selectedTagsEl.childNodes[1],tagEl);obj.checkSelectedTagsQty();obj.checkSuggestedTagsQty()};if(this.newQuestionMode){success()}else{var error=function(req){};var d=doSimpleXMLHttpRequest("/api/",{method:"tagKeyword",arg_questionId:this.questionId,arg_keywordId:tag.id});d.addCallbacks(success,error)}},idInList:function(id,list){var listStr=list.join(",");if(findValue(list,id)==-1){return false}else{return true}},addNewTag:function(){var newTagStr=this.newTagNameEl.value.replace(/^\s+|\s+$/g,"");if(newTagStr.length==""){return false}var newTagNames=newTagStr.split(",");forEach(newTagNames,function(newTagName){var obj=this;newTagName=newTagName.replace(/^\s+|\s+$/g,"");var success=function(req){if(req.responseText){var tag={id:req.responseText,name:newTagName};if(obj.idInList(tag.id,obj.selectedIds)){return false}obj.selectedIds.push(tag.id);var keywordIdList=obj.selectedIds.join(",");obj.newQuestionTagsEl.value=keywordIdList;obj.newTagNameEl.value="";signal(obj.newTagNameEl,"onblur");signal(obj.newTagNameEl,"onfocus");var tagEl=obj.makeDOM_selectedTagEl(tag);appendChildNodes(obj.selectedTagsEl.childNodes[1],tagEl);obj.checkSelectedTagsQty()}};var error=function(req){};var d;if(this.newQuestionMode){d=doSimpleXMLHttpRequest("/api/",{method:"addKeywordToDB",arg_keyword:newTagName})}else{d=doSimpleXMLHttpRequest("/api/",{method:"addKeywordToDBAndTag",arg_keyword:newTagName,arg_questionId:this.questionId})}d.addCallbacks(success,this,error)},this)},removeTag:function(e){e.stop();var src=e.src();var matches=src.id.match(/removeTag_(\d+)/);var tag={id:matches[1],name:src.title};for(i=0;i<=this.selectedIds.length;i++){if(tag.id==this.selectedIds[i]){var index=i;break}}this.selectedIds.splice(index,1);var keywordIdList=this.selectedIds.join(",");var obj=this;var success=function(){removeElement(src);obj.newQuestionTagsEl.value=keywordIdList;var tagEl=obj.makeDOM_suggestedTagEl(tag);appendChildNodes(obj.suggestedTagsEl.childNodes[1],tagEl);obj.checkSuggestedTagsQty();obj.checkSelectedTagsQty()};if(this.newQuestionMode){success()}else{var error=function(req){};var d=doSimpleXMLHttpRequest("/api/",{method:"untagKeyword",arg_questionId:this.questionId,arg_keywordId:tag.id});d.addCallbacks(success,error)}},makeDOM_selectedTagEl:function(tag){var removeEl=DIV({"class":"D_keyword J_removeTag",title:tag.name,id:"removeTag_"+tag.id},SPAN({"class":"sprite sprite_inline bullet_delete_icon"}),SPAN(null,tag.name));connect(removeEl,"onclick",this.removeTag);var t=removeEl;return t},makeDOM_selectedTagsEl:function(selectedTags){var childEls=[];forEach(selectedTags,function(s){childEls.push(this.makeDOM_selectedTagEl(s));this.selectedIds.push(s.id)},this);this.newQuestionTagsEl=INPUT({type:"hidden",name:"keywordIdList",id:"keywordIdList",value:this.selectedIds.join(",")});childEls.push(this.newQuestionTagsEl);return DIV({id:"currentKeywords"},DIV({"class":"D_empty",id:"noKeywordsYet"},Meetup.Copy.hasNoKeywordsYet),DIV(null,childEls))},makeDOM_suggestedTagEl:function(tag){var addEl=SPAN({"class":"sprite sprite_inline bullet_add_icon"});var t=DIV({id:"tag_"+tag.id,title:tag.name,"class":"D_keyword"},addEl,SPAN(null,tag.name));connect(t,"onclick",this.selectTag);return t},makeDOM_suggestedTagsEl:function(suggestedTags){var childEls=[];forEach(suggestedTags,function(s){if(this.idInList(s.id,this.selectedIds)){return false}childEls.push(this.makeDOM_suggestedTagEl(s))},this);return DIV({id:"suggestedKeywords"},DIV(null,LABEL(null,Meetup.Copy.someSuggestedKeywords)),DIV(null,childEls))},makeDOM_addTagEl:function(){this.newTagNameEl=INPUT({type:"text",id:"newKeyword",name:"newKeyword",autocomplete:"off",size:"20","class":"text"});var newTagButton=INPUT({type:"button",id:"newKeywordSubmit",value:Meetup.Copy.addNewKeyword});var newTagFormEl=SPAN(null,this.newTagNameEl,newTagButton);connect(newTagButton,"onclick",this.addNewTag);connect(this.newTagNameEl,"onkeydown",bind(function(e){var key=e.key();if(key.code==13||key.code==3){e.preventDefault()}},this));connect(this.newTagNameEl,"onkeypress",bind(function(e){var key=e.key();if(!key.string.match(/^[\w\s\.&',-]*$/)){e.stop();if(!this.noCharEl){this.noCharEl=DIV({style:"border: 1px solid #FFF1AA; background: #FFF6C9; position: absolute; font-size: .8em; padding: 5px; width: "+(this.newTagNameEl.offsetWidth-12)+"px;"},"Sorry, no special characters.");appendChildNodes(document.body,this.noCharEl)}Meetup.Layout.positionOnElementEdge(this.noCharEl,this.newTagNameEl,Meetup.Layout.NORTHWEST,{x:0,y:(this.noCharEl.offsetHeight+8)*-1});showElement(this.noCharEl);clearTimeout(this.noCharTimeout);this.noCharTimeout=setTimeout(bind(function(){hideElement(this.noCharEl)},this),3000)}},this));connect(this.newTagNameEl,"onkeyup",bind(function(e){var key=e.key();if(key.code==13||key.code==3){this.addNewTag()}},this));return DIV({id:"addKeywords"},newTagFormEl)},questionId:null,selectedIds:[],selectedTagsEl:null,suggestedTagsEl:null,addTagEl:null,newTagNameEl:null,newQuestionTagsEl:null,noCharEl:null,noCharTimeout:null,newQuestionMode:false};Meetup.UI.AnswerList=function(){bindMethods(this)};Meetup.UI.AnswerList.prototype={init:function(el){if(!el){return false}this.el=el;removeEmptyTextNodes(this.el);var deleteEls=getElementsByTagAndClassName("A","J_deleteAnswer",this.el);forEach(deleteEls,function(del){connect(del,"onclick",this.deleteClickHandler)},this)},deleteClickHandler:function(e){e.stop();var matches=e.src().id.match(/deleteAnswer_(\d+)/);var answerId=matches[1];this.confirmAndDelete(answerId)},confirmAndDelete:function(answerId){var answerId=answerId;var obj=this;var success=function(req){removeElement($("answer_"+answerId));if(!obj.el.hasChildNodes()){var qtyAnswersHeadlineEl=$("qtyAnswersHeadline");hideElement(qtyAnswersHeadlineEl);var yourAnswerEl=$("yourAnswer");if(yourAnswerEl){addElementClass($("yourAnswer"),"noAnswers")}var noAnswersEl=DIV({"class":"D_helpAnswer",id:"noAnswers"},Meetup.Copy.hasNotBeenAnswered);appendChildNodes(obj.el,noAnswersEl)}else{var qtyAnswersEl=$("qtyAnswers");var qty=parseInt(qtyAnswersEl.innerHTML)-1;if(qty>1){qtyAnswersEl.innerHTML=qty}else{$("qtyAnswersHeadline").innerHTML=Meetup.Copy.singleAnswer}}};var error=function(){};var r=confirm(Meetup.Copy.confirmDeleteAnswer);if(r==false){return false}var d=doSimpleXMLHttpRequest("/api/",{method:"deleteAnswer",arg_answerId:answerId});d.addCallbacks(success,error)},confirmMsg:null,el:null};Meetup.HelpSuggestionData=clone(Meetup.TopicSuggestionData);update(Meetup.HelpSuggestionData,{_cache:Meetup.Cache.bindToBucket("HelpSuggest"),__repr__:function(){return"Meetup.HelpSuggestionData"}});Meetup.DomDeco.HelpKeywordSuggest=function(){bindMethods(this);this._dataPager=object(Meetup.HelpSuggestionData)};Meetup.DomDeco.HelpKeywordSuggest.prototype=new Meetup.DomDeco.TopicSuggest();update(Meetup.DomDeco.HelpKeywordSuggest.prototype,{_method:"helpKeywordSuggestions",__repr__:function(){return"Meetup.DomDeco.HelpKeywordSuggest"}});(function(){var doVote=function(vote,e){if(e){e.stop()}var parentEl=getFirstParentByTagAndClassName(e.target(),"div","D_helpAnswer_vote");var input=get1st("input","answerVoteInput",parentEl);var submitEl=get1st("input","submitVote",parentEl);input.value=vote;submitEl.click()};var answerAction=function(e){if(e){e.stop()}var opEl=$("answerAction");var form=e.target().form;var opInput=get1st("input","answerActionOp",form);if(hasElementClass(e.target(),"J_answerAction_edit")){opInput.value="edit"}if(hasElementClass(e.target(),"J_answerAction_delete")){if(!confirm(Meetup.Copy.confirmDeleteAnswer)){return}else{opInput.value="delete"}}submitForm(form)};if($("answerList")){var answerDispatch=Meetup.Dispatcher.init($("answerList"));answerDispatch.registerFunc("D_helpAnswer_voteYes",partial(doVote,"up"));answerDispatch.registerFunc("D_helpAnswer_voteNo",partial(doVote,"down"));if(Meetup.Data.canEditAnswer){answerDispatch.registerFunc("J_answerAction",answerAction)}}})();
