Meetup.DomDeco.AbridgeDynam=function(){this._char_lim=300;this._readToggle=SPAN({style:{"font-size":".8em",color:"#88c",display:"inline","white-space":"nowrap"}},A({"class":"dynamReadMoreLink",href:"javascript:void(0)"},"&nbsp;"));bindMethods(this)};Meetup.DomDeco.AbridgeDynam.prototype={decorate:function(el){if(!el){LOG.error("no element passed in to Meetup.DomDeco.AbridgeDynam.decorate()");return}var classes=el.className.split(" ");for(var i in classes){if(/^expandTo_[0-9]*/.test(classes[i])){this._char_lim=Number(classes[i].split("_")[1])}}if(el.innerHTML.length<this._char_lim){return}this._handleSwap=hasElementClass(el,"canToggle");this._fullNode=this._createFullNode(el);this._abridgedNode=this._createAbridgedNode(el,this._char_lim);appendChildNodes(el,this._abridgedNode);swapDOM(el,this._abridgedNode);connect(getFirstElementByTagAndClassName("a","dynamReadMoreLink",this._abridgedNode),"onclick",this._expand)},_expand:function(e){e.stop();this._doSwap(this._abridgedNode,this._fullNode,this._abridge)},_abridge:function(e){e.stop();this._doSwap(this._fullNode,this._abridgedNode,this._expand)},_doSwap:function(from_node,to_node,endfunc){disconnectAll(getFirstElementByTagAndClassName("a","dynamReadMoreLink",from_node),"onclick");swapDOM(from_node,to_node);if(this._handleSwap){var swapLnk=getFirstElementByTagAndClassName("a","dynamReadMoreLink",to_node);disconnectAll(swapLnk,"onclick");connect(swapLnk,"onclick",endfunc)}},_createFullNode:function(el){var ret_node=el.cloneNode(true);setNodeAttribute(this._fullNode,"class",el.className);if(this._handleSwap){this._appendReadToggle(ret_node,Meetup.Copy.descReadLess)}return ret_node},_createAbridgedNode:function(el,lim){var ret_node=DIV({"class":"introWelcome"},null);ret_node.innerHTML=this._abridgeText(el.innerHTML,lim);addElementClass(ret_node,"abridged");this._appendReadToggle(ret_node,Meetup.Copy.descReadMore);return ret_node},_appendReadToggle:function(el,txt){var toggle_span=this._readToggle.cloneNode(true);$tagClass("a","dynamReadMoreLink",toggle_span)[0].innerHTML=txt;if($tagClass("p",null,el).length>0){var p_arr=$tagClass("p",null,el);appendChildNodes(p_arr[p_arr.length-1],toggle_span)}else{appendChildNodes(el,toggle_span)}},_abridgeText:function(html,lim){var new_html=html.substring(0,lim);if(new_html.lastIndexOf("<")>new_html.lastIndexOf(">")){if(html.charAt(new_html.lastIndexOf("<")+1)=="/"){new_html=html.substring(0,html.indexOf(">",lim)+1)}else{new_html=html.substring(0,new_html.lastIndexOf("<"))}}else{while(new_html.search(/.*<[^\/]*>[^<]*$/)>-1&&this._getMostRecentTag(html,new_html.length)!="p"&&this._getMostRecentTag(html,new_html.length)!="br"){var tag=this._getMostRecentTag(html,new_html.length);new_html=html.substring(0,html.indexOf(">",html.indexOf("</"+tag,new_html.length))+1)}}new_html=new_html.replace(/[\s]+$/,"");if(new_html.lastIndexOf("<p>")>new_html.lastIndexOf("</p>")){new_html+="... </p>"}return new_html},_getMostRecentTag:function(html,index){var tag_start_index=html.substring(0,index).lastIndexOf("<");var tag_close_index=Math.min(html.indexOf(">",tag_start_index)+1,html.indexOf(">",tag_start_index)+1);return html.substring(tag_start_index,tag_close_index).split(" ")[0].replace(/[><]+/g,"")},_abridgedNode:null,_readToggle:null,_fullNode:null,_handleSwap:null,__repr__:function(){return"Meetup.DomDeco.AbridgeDynam"}};Meetup.DOMReady.ready(function(){Meetup.DomDeco.applyByTagAndClass("div","dynamExpandBox",Meetup.DomDeco.AbridgeDynam)});