var T4lk={onLoadCallbacks:{callbacks:[],executed:false,add:function(A){if(this.executed){A()}else{this.callbacks.push(A)}},execute:function(){if(!this.executed){this.executed=true;this.callbacks.each(function(A){A()})}}},post:{handleSubmit:function(B,A){window.location=A.select('[title="permalink"]')[0].href},handleCancel:function(A){window.location="/top"}},showItem:{itemVotes:{},vote:function(id_string){var itemid=$("si_itemid:"+id_string).innerHTML;if(this.itemVotes[itemid]!==undefined){this.itemVotes[itemid]++}else{this.itemVotes[itemid]=+$("si_numvotes:"+id_string).innerHTML+1}var r=new Ajax.Request($("si_votelink:"+id_string).innerHTML,{onSuccess:function(transport){var reply=eval("("+transport.responseText+")");if(reply.errmsg!==undefined){T4lk.util.addPopupError($("si_votingerr:"+id_string),reply.errmsg);return }$("uservotes").update(reply.newnumuservotes);$("si_numvotes:"+id_string).className="";var num_votes_outer_elem=$("si_numvotesouter:"+id_string);var updateNumVotesBoundFunction=this.updateNumVotes.bind(this,id_string,itemid,reply.newnumitemvotes);if(num_votes_outer_elem.className=="votingtextblowup"){updateNumVotesBoundFunction()}else{num_votes_outer_elem.className="votingtextblowup";updateNumVotesBoundFunction.delay(0.4)}}.bind(this)})},updateNumVotes:function(F,D,C){var E=Math.max(this.itemVotes[D],C);var B=$("si_numvotes:"+F);var A=B.innerHTML;if(E>A){B.update(E);this.itemVotes[D]=E;if(B.grayvotestimer){window.clearTimeout(B.grayvotestimer)}B.grayvotestimer=this.grayVotesIndicator.bind(this,F).delay(0.5)}},grayVotesIndicator:function(B){var A=$("si_numvotes:"+B);A.grayvotestimer=null;A.className="graytext";$("si_numvotesouter:"+B).className=""},toggleMore:function(id_string){var bodyspan=$("si_bodytext:"+id_string);if(bodyspan.expanded){bodyspan.expandedContent=bodyspan.innerHTML;bodyspan.innerHTML=bodyspan.collapsedContent;bodyspan.expanded=false}else{if(bodyspan.everExpanded){bodyspan.innerHTML=bodyspan.expandedContent;bodyspan.expanded=true}else{bodyspan.collapsedContent=bodyspan.innerHTML;var t=new Ajax.Request($("si_getfullbodylink:"+id_string).innerHTML,{method:"get",onSuccess:function(transport){var reply=eval("("+transport.responseText+")");bodyspan.update(reply.content);bodyspan.expanded=true;bodyspan.everExpanded=true}})}}},getSubItems:function(id_string){var displayed_sub_items_str=$("si_newsubitemcontainer:"+id_string).childElements().map(function(s){return s.firstDescendant().innerHTML}).join(",");var r=new Ajax.Request($("si_getsubitemslink:"+id_string).innerHTML,{method:"get",parameters:{omit:displayed_sub_items_str},onSuccess:function(transport){var reply=eval("("+transport.responseText+")");$("si_subitemcontainer:"+id_string).update(reply.content);$("si_getsubitems:"+id_string).remove()}})},showReplyForm:function(B,A){$("si_replybuttons:"+A).hide();$("si_newsubitemcontainer:"+A).insert({top:B})},showEditForm:function(B,A){$("si_itemcontentworeplies:"+A).hide();$("si_editformcontainer:"+A).insert({top:B})},getAndShowReplyForm:function(A){T4lk.util.getElem(A,$("si_getreplyformlink:"+A).innerHTML,this.showReplyForm)},getAndShowNLForm:function(A){T4lk.util.getElem(A,$("si_getnolikeyformlink:"+A).innerHTML,this.showReplyForm)},getAndShowEditForm:function(A){T4lk.util.getElem(A,$("si_geteditformlink:"+A).innerHTML,this.showEditForm)},handleSubmitReply:function(B,A){$("si_replybuttons:"+B).show();$("si_newsubitemcontainer:"+B).insert({top:A})},handleCancelReply:function(A){$("si_replybuttons:"+A).show()},handleSubmitEdit:function(D,C,B){$("ib_complete:"+D).replace(C);var E=$("si_tags:"+D);var A=E.firstDescendant();E.update(A);B.each(function(F){E.insert({bottom:new Element("span",{"class":"tagtext"}).update(F)});E.insert({bottom:" "})}.bind(this));if(B.size()>0){E.show()}else{E.hide()}$("si_itemcontentworeplies:"+D).show()},handleCancelEdit:function(A){$("si_itemcontentworeplies:"+A).show()},publishToFacebook:function(A){T4lk.util.publishToFacebook(A)}},settings:{submitting:{},init:function(B){var A=$("s_submittagsbtn");A.observe("click",this.submit.bindAsEventListener(this,B));this.submitting=false},submit:function(event,submit_link){if(this.submitting){return }this.submitting=true;var tageditor_id="s_tageditor";var msg_div=$("s_managetagsmsg");var err_div=$("s_managetagserr");T4lk.util.clearMsgDiv(msg_div);T4lk.util.clearMsgDiv(err_div);if(!T4lk.tagEditor.validateTagFieldEmpty(err_div,tageditor_id)){this.submitting=false;return }var r=new Ajax.Request(submit_link,{onSuccess:function(transport){var reply=eval("("+transport.responseText+")");if(reply.errmsg){T4lk.util.showMessage(err_div,reply.errmsg);this.submitting=false;return }T4lk.util.showMessage(msg_div,reply.confmsg);this.submitting=false}.bind(this),parameters:{tags:T4lk.tagEditor.getDisplayedTagsString(tageditor_id)}})}},postForm:{submitting:{},init:function(D,C,G,A,F,I){var H=$("pf_body:"+D);var B=$("pf_submitbtn:"+D);var E=$("pf_cancelbtn:"+D);B.observe("click",this.submit.bindAsEventListener(this,D,C,G,A,I));E.observe("click",this.cancel.bindAsEventListener(this,D,F));this.submitting[D]=false;H.focus()},submit:function(event,id_string,tag_editor_id_string,submit_link,submit_handler,replace_existing){if(this.submitting[id_string]){return }this.submitting[id_string]=true;var body=$F("pf_body:"+id_string);var err_div=$("pf_err:"+id_string);T4lk.util.clearMsgDiv(err_div);if(!T4lk.util.validateMaxLen(err_div,T4lk.validationParams.bodymaxlen,body)){this.submitting[id_string]=false;return }if(!T4lk.tagEditor.validateTagFieldEmpty(err_div,tag_editor_id_string)){this.submitting[id_string]=false;return }var r=new Ajax.Request(submit_link,{onSuccess:function(transport){var reply=eval("("+transport.responseText+")");if(reply.errmsg!==undefined){T4lk.util.showMessage(err_div,reply.errmsg);this.submitting[id_string]=false;return }$("pf_form:"+id_string).remove();var new_item_content=new Element("div").update(reply.content).firstDescendant();if(replace_existing){var tag_container=new_item_content.childElements()[0];var itembody=new_item_content.childElements()[1];var tags=tag_container.childElements().pluck("innerHTML");tag_container.remove();submit_handler(id_string,itembody,tags)}else{submit_handler(id_string,new_item_content)}this.submitting[id_string]=false}.bind(this),parameters:{body:body,tags:T4lk.tagEditor.getDisplayedTagsString(tag_editor_id_string)}})},cancel:function(B,C,A){$("pf_form:"+C).remove();A(C)}},negativeReplyForm:{submitting:{},init:function(G,F,B,E,A,C){$("nrf_typemenu:"+G).observe("change",this.handleChange.bindAsEventListener(this,G));var D=$(B);if(D){T4lk.tagEditor.getDisplayedTags(D).each(function(H){T4lk.tagEditor.addToDisplayedTags(E,H)})}$("nrf_cancelbtn:"+G).observe("click",this.cancel.bindAsEventListener(this,G,C));$("nrf_submitbtn:"+G).observe("click",this.submit.bindAsEventListener(this,G,E,F,A));this.submitting[G]=false},handleChange:function(B,E){var C=$F(B.element());if(C=="none"){return }var A=$("nrf_typemenu_c_default:"+E);if(A!==null){A.remove()}var F=$("nrf_activecontainer:"+E);var D=$("nrf_inactivecontainer:"+E);F.childElements().each(function(H){H.remove();D.insert(H)});var G=$("nrf_c_"+C+":"+E);G.remove();F.insert(G);G.select(".getsfocus")[0].focus();$("nrf_submitbtn:"+E).disabled=false},submit:function(event,id_string,tag_editor_id_string,submit_link,submit_handler){if(this.submitting[id_string]){return }this.submitting[id_string]=true;var reply_type=$F("nrf_typemenu:"+id_string);var err_div=$("nrf_err:"+id_string);T4lk.util.clearMsgDiv(err_div);var request_parameters={replytype:reply_type};var body_elem=$("nrf_c_"+reply_type+"_body:"+id_string);if(body_elem!==null){var body=$F(body_elem);if(!T4lk.util.validateMaxLen(err_div,T4lk.validationParams.bodymaxlen,body)){this.submitting[id_string]=false;return }request_parameters.body=body}if(reply_type=="tags"){if(!T4lk.tagEditor.validateTagFieldEmpty(err_div,tag_editor_id_string)){this.submitting[id_string]=false;return }request_parameters.tags=T4lk.tagEditor.getDisplayedTagsString(tag_editor_id_string)}var r=new Ajax.Request(submit_link,{onSuccess:function(transport){var reply=eval("("+transport.responseText+")");if(reply.errmsg!==undefined){T4lk.util.showMessage(err_div,reply.errmsg);this.submitting[id_string]=false;return }$("nrf_form:"+id_string).remove();submit_handler(id_string,reply.content);this.submitting[id_string]=false}.bind(this),parameters:request_parameters})},cancel:function(B,C,A){$("nrf_form:"+C).remove();A(C)}},publishToFacebook:{onUserConnectedToFb:function(A){var B=$("ptf_getiteminfoforfbpostlink");if(B){T4lk.util.publishToFacebook("ptf_getiteminfoforfbpostlink",function(){window.close()})}else{}},onUserNotConnectedToFb:function(){var A=$("ptf_getiteminfoforfbpostlink");if(A){T4lk.util.alertAndClose(T4lk.publishToFacebookMessages.notconnected_msg)}else{}}},tagEditor:{init:function(C,D){var B=$F("te_aclink:"+C);var G=$("te_addtag:"+C);var F=$("te_addtagac:"+C);var E=$("te_initialtags:"+C);if(E){E.childElements().each(function(H){this.addToDisplayedTags(C,H.innerHTML)}.bind(this))}var A=new Ajax.Autocompleter(G,F,B,{});G.observe("keydown",function(H){if(H.keyCode==13&&!F.visible()){this.addTag(C,D)}}.bind(this));G.observe("keyup",function(H){if(H.keyCode!=13){this.addTagFieldKeypress(C)}}.bind(this))},validateTagFieldEmpty:function(A,B){var C=$F("te_addtag:"+B);return T4lk.util.validateEmpty(A,T4lk.validationParams.tagfieldnotempty_msg,C)},getDisplayedTagsString:function(A){return this.getDisplayedTags($("te_tagaccum:"+A)).join("|")},getDisplayedTags:function(A){return A.select(".tagtext").pluck("innerHTML")},getTagAccumulationDiv:function(A){var B=$("te_tagaccum:"+A);if(B.num_tags===undefined){B.num_tags=0}return B},addTag:function(F,G){var C=$("te_addtag:"+F);var B=$("te_tagerr:"+F);var A=this.getTagAccumulationDiv(F);if(!T4lk.util.validateMaxNum(B,T4lk.validationParams[G],A.num_tags+1)){return }if(!this.validateTag(B,C.value)){return }var D=this.canonicalizeNewTag(C.value);if(!this.validateTag(B,D)){return }var E=this.getDisplayedTags(A);if(!T4lk.util.validateValueNotInList(B,T4lk.validationParams.tagalreadyadded_msg,E,D)){return }this.addToDisplayedTags(F,D);C.value=""},addToDisplayedTags:function(F,C){var E=new Element("img",{src:"/images/small_close_button.png","class":"tagcancelbutton"});var D=new Element("span",{"class":"tagtext"}).insert(C);var B=new Element("span",{"class":"taglistitem"}).insert(D).insert(E);var A=this.getTagAccumulationDiv(F);A.insert(B);if(!A.visible()){A.show()}E.observe("click",this.removeTag.bindAsEventListener(this,B,A,$("te_addtag:"+F),$("te_tagerr:"+F)));A.insert(" ");A.num_tags++},removeAllDisplayedTags:function(B){var A=this.getTagAccumulationDiv(B);A.update();A.num_tags=0},canonicalizeNewTag:function(A){A=A.replace(/ {2,}/," ");A=A.replace(/^ /,"");A=A.replace(/ $/,"");A=A.toLowerCase();return A},validateTag:function(B,A){if(A.length==0){T4lk.util.clearMsgDiv(B);return false}if(!T4lk.util.validateMaxLen(B,T4lk.validationParams.tagmaxlen,A)){return false}if(!T4lk.util.validateMatchesPattern(B,T4lk.validationParams.tagpattern,A)){return false}T4lk.util.clearMsgDiv(B);return true},addTagFieldKeypress:function(D){var B=$("te_tagerr:"+D);var C="te_addtag:"+D;var A=$(C);this.validateTag(B,A.value)},removeTag:function(C,E,D,B,A){E.remove();D.num_tags--;if(D.empty()){D.hide()}B.focus();this.validateTag(A,B.value)},focusOnAddTagField:function(A){$("te_addtag:"+A).focus()}},util:{errorMessageCounter:0,addPopupError:function(B,D){this.errorMessageCounter++;var C="errmsg:"+this.errorMessageCounter;var A=new Element("div",{id:C,"class":"errormsgline"}).update(D.escapeHTML());B.insert({bottom:A});B.show();this.clearMsgDiv.bind(this,B,A).delay(5)},clearMsgDiv:function(B,A){if(A!==undefined){A.remove()}else{B.update()}if(B.visible()&&B.empty()){B.hide()}},showMessage:function(B,A){B.update(A.escapeHTML());B.show()},validateMaxLen:function(A,C,B){if(B.length>C.len){this.showMessage(A,C.message);return false}this.clearMsgDiv(A);return true},validateMatchesPattern:function(A,C,B){if(!B.match(new RegExp(C.pattern))){this.showMessage(A,C.message);return false}this.clearMsgDiv(A);return true},validateMaxNum:function(A,C,B){if(B>C.num){this.showMessage(A,C.message);return false}this.clearMsgDiv(A);return true},validateEmpty:function(A,B,C){if(C.length>0){this.showMessage(A,B);return false}this.clearMsgDiv(A);return true},validateValueNotInList:function(A,B,D,C){if(D.include(C)){this.showMessage(A,B);return false}this.clearMsgDiv(A);return true},getElem:function(id_string,get_elem_link,show_form_method){var r=new Ajax.Request(get_elem_link,{method:"get",onSuccess:function(transport){var post_form_elem=eval("("+transport.responseText+")").content;show_form_method(post_form_elem,id_string)}})},debugMsg:function(B,A){if(A===undefined){A=$("shellheader")}A.insert("<br />"+B)},debugDumpObj:function(B,C){if(C===undefined){C=$("shellheader")}C.insert("<br />");for(var A in B){C.insert(A+": "+B[A]+"<br />")}},publishToFacebook:function(get_info_link_container_id,callback){var r=new Ajax.Request($(get_info_link_container_id).innerHTML,{method:"get",onSuccess:function(transport){var reply=eval("("+transport.responseText+")");if(reply.errmsg!==undefined){return }FB.ensureInit(function(){var item_url="http://mushpot.net/item/"+reply.itemid;FB.Connect.streamPublish("",{name:reply.title,caption:reply.subtitle,href:item_url,description:reply.bodyexcerpt},[{text:"Read",href:item_url}],null,"Anything you'd like to add?",callback)})}})},alertAndClose:function(A){alert(A);window.close()}}};var Tapestry={onDOMLoaded:function(A){document.observe("dom:loaded",A)}};function showreply(A){T4lk.showItem.getAndShowReplyForm(A)}function shownolikey(A){T4lk.showItem.getAndShowNLForm(A)}function edititem(A){T4lk.showItem.getAndShowEditForm(A)}function showreplies(A){T4lk.showItem.getSubItems(A)}function vote(A){T4lk.showItem.vote(A)}function more(A){T4lk.showItem.toggleMore(A)}function publishtofacebook(A){T4lk.showItem.publishToFacebook(A)};