var Configurable={setOptions:function(options){this.options={};var constructor=this.constructor;if(constructor.superclass){var chain=[],klass=constructor;while(klass=klass.superclass){chain.push(klass)}chain=chain.reverse();for(var i=0,len=chain.length;i<len;i++){Object.extend(this.options,klass.DEFAULT_OPTIONS||{})}}Object.extend(this.options,constructor.DEFAULT_OPTIONS);return Object.extend(this.options,options||{})}};var Bubble=Class.create(Configurable,{initialize:function(element,options){this.element=$(element);this.options=this.setOptions(options);this.addObservers()},addObservers:function(){this.observers={mouseOver:function(){if(!this.id){this.create()}$(this.id).show()}.bind(this),mouseOut:this.onMouseOut.bind(this)};this.element.observe("mouseover",this.observers.mouseOver);this.element.observe("mouseout",this.observers.mouseOut)},create:function(){var bubble=new Element("div",{"class":this.options.className}).update("<p>"+this.options.text+"</p>");var offset=this.element.cumulativeOffset();bubble.setStyle({"top":offset.top+"px","left":offset.left+"px"});$(document.body).appendChild(bubble);this.id=bubble.identify();bubble.observe("mouseout",this.observers.mouseOut)},onMouseOut:function(event){var element=Event.element(event);if(event.relatedTarget==this.element||$(event.relatedTarget).hasClassName("bubble")||$(event.relatedTarget).up(".bubble")){}else{$(this.id).hide()}},destroy:function(){this.element.stopObserving("mouseover",this.observers.mouseOver);this.element.stopObserving("mouseout",this.observers.mouseOut);this.element.remove()}});Bubble.DEFAULT_OPTIONS={text:"",className:"bubble",offsetTop:17,offsetLeft:0,effects:true};var Tabs=Class.create({initialize:function(div,options){this.div=$(div);this.count=0;this.options=options;this.windows=$(div).select(".window");this.ul=$(div).select("ul.tabs");this.tabs=$(div).select(".tab");if($(div).select(".tab.selected").length==0){this.tabs[0].addClassName("selected")}this.ul.each(function(ul){this.tabs.each(function(tab,index){if(tab.down("a")==undefined){tab.observe("click",this.onClick.bindAsEventListener(this));if(this.options.onTabBind){this.options.onTabBind(this.windows[index])}}}.bind(this));this.slider(ul)}.bind(this))},slider:function(tab){if(this.length==undefined){this.length=0;for(var i=0;i<this.tabs.length;i++){this.length+=this.tabs[i].getWidth()+10}}var page_width=$(this.div).getWidth();if(this.length>page_width){var wrapper=new Element("div",{"class":"tab_wrapper"});var inner=new Element("div",{"class":"inner"});wrapper.insert({top:inner});tab.insert({before:wrapper});inner.insert({bottom:tab});this.left_slide=new Element("div",{"class":"slider left disable"});this.right_slide=new Element("div",{"class":"slider right"});wrapper.insert({top:this.left_slide});wrapper.insert({bottom:this.right_slide});this.left_slide.observe("click",this.slide.bindAsEventListener(this));this.right_slide.observe("click",this.slide.bindAsEventListener(this));tab.setStyle({"position":"absolute"})}},slide:function(e){var element=Event.element(e);var tabs=element.up().down().next().down();var offset=tabs.getStyle("left");if(element.hasClassName("right")){if(this.count!=this.tabs.length-1){var move=this.tabs[this.count].getWidth();new Effect.Move(tabs,{x:-move-5,duration:0.2});this.count++}}else{if(this.count!=0){var move=this.tabs[this.count-1].getWidth();new Effect.Move(tabs,{x:move+5,duration:0.2});this.count--}}if(this.count>0&&this.count<this.tabs.length-1){this.left_slide.removeClassName("disable");this.right_slide.removeClassName("disable")}else{if(this.count==0){this.left_slide.addClassName("disable")}else{if(this.count==this.tabs.length-1){this.right_slide.addClassName("disable")}}}},onClick:function(event){var element=Event.element(event);if(!element.hasClassName("tab")){element=element.up("li")}this.tabs.invoke("removeClassName","selected");this.windows.invoke("hide");element.addClassName("selected");var index=0;this.tabs.each(function(tab){if(tab==element){throw $break}index++}.bind(this));this.windows[index].show();if(this.options){if(this.options.onChange){this.options.onChange(this.windows[index])}}}});var Chart=Class.create(Configurable,{initialize:function(options){this.setOptions(options);this.id="chart_element_"+Chart.counter++;document.write('<div id="'+this.id+'" class="loading"></div>');document.observe("dom:loaded",this.build.bindAsEventListener(this))},build:function(){html="http://chart.apis.google.com/chart?";var width=$(this.id).getWidth()-20;html+="chs="+width+"x160&";for(var i in this.options){html+=i+"="+escape(this.options[i])+"&"}var img=new Element("img",{src:html,alt:"Chart"});$(this.id).appendChild(img)}});Chart.counter=0;var Tree=Class.create({initialize:function(tree){this.tree=$(tree);this.tree.select("li").each(function(li){var but=li.select(".button");if(but.length>0){but[0].observe("click",this.click.bindAsEventListener(this))}}.bind(this))},click:function(e){var element=Event.element(e);var li=element.up("li");li.select(".button")[0].toggleClassName("open");var ul=li.select("ul");if(ul.length>0){ul[0].toggle()}}});var Cookie=Class.create({create:function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString()}else{var expires=""}var domain="tweetmeme.com";document.cookie=name+"="+value+expires+"; path=/; domain="+domain},erase:function(name){this.create(name,"",-1)},read:function(name){var nameEQ=name+"=";var ca=document.cookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1,c.length)}if(c.indexOf(nameEQ)==0){return c.substring(nameEQ.length,c.length)}}return null}});Object.extend(String.prototype,(function(){function parseQueryString(){var str=decodeURIComponent(this);var args=str.split("&");var s=new Object;for(var i=0;i<args.length;i++){var dum=args[i].split("=");s[dum[0]]=dum[1]}return s}return{parseQueryString:parseQueryString}})());var Popup=Class.create({initialize:function(body,options){if($("popup")){return }this.body=body;this.options=options;if(!this.options.width){this.options.width=500}this.build();this.center()},build:function(){var overlay=new Element("div",{"id":"overlay"});document.body.appendChild(overlay);var template=new Template('			<div class="top"> 			</div> 			<div class="content"> 				<div class="inners"> 					<div class="body">#{body}</div> 				</div> 				<div class="cancel">Close</div> 			</div> 			<div class="bottom"> 			</div> 		');var popup={body:this.body};popup=template.evaluate(popup);this.pop=new Element("div",{"id":"popup"}).update(popup);this.pop.setStyle({"width":this.options.width+"px"});this.pop.hide();document.body.appendChild(this.pop);if(this.options.url!=null){new Tjax.Request(this.options.url,{},function(data){this.update(data);if(this.options.onLoad){this.options.onLoad()}}.bind(this));this.pop.select(".body")[0].setStyle({"height":"100px"});this.pop.addClassName("load");this.center()}$("popup").select(".cancel")[0].observe("click",this.close.bindAsEventListener(this));new Effect.Appear(this.pop,{duration:0.5})},center:function(){var vo=$(document.body).viewportOffset();var vh=document.viewport.getDimensions();var height=$("popup").getHeight();var width=$("popup").getWidth();var adjustV=Math.abs(vo[1])+((vh["height"]-height)/2);var adjustH=Math.abs((vh["width"]-width)/2);if(adjustV<=0){adjustV=10}$("popup").setStyle({"top":adjustV+"px","left":adjustH+"px","margin":"0px"});var oh=$(document.body).getHeight();$("overlay").setStyle({"height":oh+"px"})},close:function(){if($("popup")){new Effect.Fade("popup",{duration:0.1,afterFinish:function(){if($("popup")){$("popup").remove();$("overlay").remove()}}})}},update:function(body){load=$("popup").select(".body")[0];load.removeClassName("load");load.update(body);load.setStyle({"height":"auto"});this.center();var inputs=load.select("input");if(inputs.length>0){inputs[0].focus()}},element:function(){return $("popup").select(".body")[0]}});ModalPopup=Class.create(Popup,{initialize:function($super,body,options){if($("popup")){return }this.options={onSuccess:false,onCancel:false,close:true,okText:"OK",cancelText:"Cancel"};this.options=Object.extend(this.options,options);$super(body,this.options);var controls=new Element("div",{"class":"controls"});$("popup").select(".body")[0].up().appendChild(controls);var ok=new Element("div",{"class":"btn yes"}).update("<span>"+this.options.okText+"</span>");var cancel=new Element("div",{"class":"btn"}).update("Cancel");var success=function(){if(this.options.onSuccess){var result=this.options.onSuccess();if(result===false){return }else{if(this.options.close){this.close()}else{ok.addClassName("loading")}}}else{if(this.options.close){this.close()}}}.bind(this);this.observe=function(event){if(event.keyCode==13){event.stop();Event.stopObserving(document,"keypress",this.observe);success()}}.bind(this);document.observe("keypress",this.observe);ok.observe("click",function(event){var button=Event.element(event);if(!button.hasClassName("yes")){button=button.up(".yes")}if(!button.hasClassName("disable")){button.addClassName("disable");Event.stopObserving(document,"keypress",this.observe);success()}}.bindAsEventListener(this));cancel.observe("click",function(){Event.stopObserving(document,"keypress",this.observe);if(this.options.onCancel){this.options.onCancel()}this.close()}.bindAsEventListener(this));controls.appendChild(cancel);controls.appendChild(ok);if(body==""){load=$("popup").select(".body")[0];load.setStyle({"height":"100px"});load.addClassName("load");this.center()}}});var Tjax=Class.create();Tjax.Request=Class.create(Tjax,{initialize:function(url,options,callback,failure){var defaults={onSuccess:function(transport){this.response(transport,callback,failure)}.bind(this),onFailure:function(transport){Object.extend(transport,{success:callback,failure:failure});failure(transport)}};Object.extend(options,defaults);new Ajax.Request(url,options)},response:function(transport,callback,failure){Object.extend(transport,{success:callback,failure:failure});var json=transport.responseText.evalJSON();if(json["response"]=="success"){if(callback){callback(json["data"])}}else{if(failure){failure(transport,json["data"])}else{new Popup(json["data"])}}}});function toggle(element){element=$(element);var elements=element.select(".hide");elements.each(function(item){if(item.getStyle("display")==null){item.setStyle({"display":"block"})}else{item.removeAttribute("style")}})}function selectAll(){$$('input[type="checkbox"]').invoke("writeAttribute","checked","checked")}function selectNone(){$$('input[type="checkbox"]').invoke("removeAttribute","checked")}LinkConfirm=Class.create({initialize:function(element,message){this.element=$(element);this.element.observe("click",function(e){e.stop();new ModalPopup(message,this.ok.bindAsEventListener(this),this.cancel.bindAsEventListener(this),false)}.bindAsEventListener(this))},ok:function(){window.location=this.element.readAttribute("href")},cancel:function(){}});Object.extend(Array.prototype,{insert:function(index){var args=Array.prototype.slice.call(arguments,1);this.length=Math.max(this.length,index);index=index<0?this.length:index;if(args.length>1){this.splice.apply(this,[index,0].concat(args))}else{this.splice(index,0,args[0])}return this}});var Abuse=Class.create({initialize:function(){$$(".abuse").each(function(button){new Abuse_item(button)}.bind(this))}});var Abuse_item=Class.create({initialize:function(button){this.type=$w(button.className)[1];if(this.type=="url"){this.root_element=button.up(".tweet")}else{if(this.type=="comment"){this.root_element=button.up(".comment")}}button.observe("mouseover",function(){button.down().next().setStyle({"visibility":"visible"})});button.observe("mouseout",function(e){var element=Event.element(e);if($("abuse_dd")){if($("abuse_dd").getStyle("display")!="none"){var id=$("abuse_dd").className;if(id!=this.root_element.readAttribute("id")){button.down().next().setStyle({"visibility":"hidden"})}}else{button.down().next().setStyle({"visibility":"hidden"})}}else{button.down().next().setStyle({"visibility":"hidden"})}}.bind(this));button.down().next().observe("click",function(){if(button.hasClassName("open")){button.removeClassName("open");$("abuse_dd").hide();return }var dropdown=this.dropdown();$("abuse_dd").show();button.addClassName("open");dropdown.clonePosition(button,{setWidth:false,setHeight:false,offsetTop:22});$("abuse_dd").writeAttribute("class",this.root_element.readAttribute("id"))}.bind(this));button.down().observe("click",this.report.bindAsEventListener(this))},dropdown:function(){if($("abuse_dd")){$("abuse_dd").remove()}var ul=new Element("ul",{"id":"abuse_dd"}).update('<li class="duplicate">Duplicate</li>'+'<li class="offensive">Offensive</li>'+'<li class="spam">Spam</li>'+'<li class="sucks">This Sucks!</li>');$(document.body).insert({bottom:ul});ul.select("li").each(function(li){li.observe("click",this.report.bindAsEventListener(this))}.bind(this));return ul},report:function(e){if(!User.get()){new Login({onSuccess:function(){this.report(e)}.bind(this)});return }var element=Event.element(e);var post="type="+this.type;if(element.up("#abuse_dd")){var id=element.up("ul").className.substring(2);post+="&id="+id+"&reason="+element.className}else{var id=this.root_element.readAttribute("id").substring(2);post+="&id="+id+"&reason="}if(this.type=="comment"){$("c_"+id).select(".abuse")[0].addClassName("loading")}else{$("t_"+id).select(".abuse")[0].addClassName("loading")}this.id=id;new Tjax.Request("/ajax/report",{method:"post",postBody:post},this.success.bindAsEventListener(this),this.failure.bindAsEventListener(this))},success:function(){if($("abuse_dd")){$("abuse_dd").hide()}var box=new Element("div",{"class":"hide"});if(this.type=="url"){$("t_"+this.id).insert({bottom:box});$("t_"+this.id).setStyle({"position":"relative"});var button=$("t_"+this.id).select("a.retweet")[0];button.addClassName("selected");button.update("reported");var tweetobject=new Tweets();tweetobject.save(this.id,"urls");$("t_"+this.id).select(".abuse")[0].removeClassName("loading")}else{if(this.type=="comment"){$("c_"+this.id).insert({bottom:box});$("c_"+this.id).setStyle({"position":"relative"});var button=$("c_"+this.id).select(".retweet")[0];button.addClassName("selected");button.update("reported");var commentobject=new Comments(false);commentobject.save(this.id,"urls");$("c_"+this.id).select(".abuse")[0].removeClassName("loading")}}},failure:function(data){if(data.transport.responseText.evalJSON()["data"]=="Already reported."){this.success()}}});var Admin=Class.create({initialize:function(){if(!$("admin")){return }if($("add_channel")){$("add_channel").observe("change",this.onselected.bindAsEventListener(this))}if($("add_category")){$("add_category").observe("change",this.onselected.bindAsEventListener(this))}$$(".form .option").invoke("observe","click",this.click.bindAsEventListener(this))},onselected:function(e){var element=Event.element(e);element.childElements().each(function(e){if(e.selected){se=e.innerHTML.replace(/-/g,"")}});this.hidden=element.up().select('input[type="hidden"]')[0];if($F(this.hidden)==""){this.hidden.writeAttribute("value",$F(element))}else{var values=$F(this.hidden).split("-");for(var i=0;i<values.length;i++){if(values[i]==$F(element)){return }}this.hidden.writeAttribute("value",$F(this.hidden)+"-"+$F(element))}var selected=new Element("div",{"class":"n"+$F(element)+" option","title":"Remove this"}).update(se);selected.observe("click",this.click.bindAsEventListener(this));element.insert({before:selected})},click:function(e){var selected=Event.element(e);if(this.hidden==undefined){this.hidden=selected.up().select('input[type="hidden"]')[0]}var id=$w(selected.className)[0].substr(1);var ids=this.hidden.readAttribute("value").split("-");var index=false;for(var i=0;i<ids.length;i++){if(ids[i]==id){index=i}}if(index!==false){ids.splice(index,1)}this.hidden.writeAttribute("value",ids.join("-"));selected.remove()}});var Box=Class.create({initialize:function(options){this.options=Object.extend(Box.DEFAULT_OPTIONS,options||{})},addObservers:function(){this.observers={onDrop:this.options.onDrop.bind(this),onDrag:this.options.onDrag.bind(this),onEdit:this.options.onEdit.bind(this),onDelete:this.options.onDelete.bind(this)};if(this.box.edit){this.box.edit.observe("click",this.observers.onEdit)}if(this.box.del){this.box.del.observe("click",this.observers.onDelete)}Droppables.add(this.box.leftGap,{hoverclass:"hover",onDrop:this.observers.onDrop});Droppables.add(this.box.rightGap,{hoverclass:"hover",onDrop:this.observers.onDrop});this.drag=new Draggable(this.box.wrap,{handle:this.box.handle,revert:true,reverteffect:function(element,top_offset,left_offset){new Effect.MoveBy(element,-top_offset,-left_offset,{duration:0})},endeffect:false,onStart:function(drag,mouse){this.observers.onDrag(drag,mouse);drag.element.setStyle({"position":"relative"})}.bind(this),scroll:window});if(this.options.type=="container"||this.options.type=="rule"){Droppables.add(this.box.type,{hoverclass:"hover",onDrop:this.observers.onDrop})}this.box.type.setStyle({"position":"static"});this.box.leftGap.setStyle({"position":"static"});this.box.rightGap.setStyle({"position":"static"});this.box.wrap.setStyle({"position":"static"})},create:function(){var name=new Element("div",{"class":"name"}).update(this.options.name);if(this.options.icon_url){var icon=new Element("img",{"src":this.options.icon_url,"alt":"*"});name.insert({top:icon})}var edit=new Element("div",{"class":"edit"}).update("Edit");var del=new Element("div",{"class":"delete"});var hand=new Element("div",{"class":"hand"});var buttons=new Element("div",{"class":"buttons"});buttons.appendChild(del);buttons.appendChild(edit);hand.appendChild(name);var handle=new Element("div",{"class":"handle"});handle.appendChild(buttons);handle.appendChild(hand);var type=new Element("div",{"class":this.options.type+" drop","id":"w_"+this.options.id});type.appendChild(handle);var leftGap=new Element("div",{"class":"gap left drop"});var rightGap=new Element("div",{"class":"gap right drop"});var wrap=new Element("div",{"class":"wrap"});wrap.appendChild(leftGap);wrap.appendChild(type);wrap.appendChild(rightGap);if(this.options.type=="container"){type.addClassName("s"+this.options.size)}if(this.options.type=="widgets"){var belly=new Element("div",{"class":"belly"});type.appendChild(belly)}this.box={wrap:wrap,leftGap:leftGap,rightGap:rightGap,type:type,handle:hand,name:name,edit:edit,del:del}},stopObserving:function(){Droppables.remove(this.box.leftGap);Droppables.remove(this.box.rightGap);Droppables.remove(this.box.type);if(this.options.type!="layout"){if(this.box.edit){Event.stopObserving(this.box.edit,"click",this.observers.onEdit)}if(this.box.del){Event.stopObserving(this.box.del,"click",this.observers.onDelete)}}}});Box.DEFAULT_OPTIONS={onDrag:Prototype.emptyFunction,onDrop:Prototype.emptyFunction,onEdit:Prototype.emptyFunction,onDelete:Prototype.emptyFunction,type:""};var Rule=Class.create(Box,{initialize:function($super,options){this.options=Object.extend({element:false,type:"rule",onDrag:Prototype.emptyFunction,onEdit:Prototype.emptyFunction,onNegative:this.onNegative,onDelete:this.onDelete,url:""},options||{});this.create();this.addObservers()},create:function(){this.box={wrap:this.options.element,leftGap:this.options.element.down(),type:this.options.element.down().next(),rightGap:this.options.element.down().next(1),neg:this.options.element.down().next().down()};if(!this.box.type.hasClassName("rules")){Object.extend(this.box,{del:this.options.element.down().next().down().next().down().next().next()})}},addObservers:function(){this.observers={onDrop:this.options.onDrop.bind(this),onDelete:this.options.onDelete.bind(this),onNegative:this.options.onNegative.bind(this)};if(this.box.del){this.box.del.observe("click",this.observers.onDelete)}if(this.box.neg){this.box.neg.observe("click",this.observers.onNegative)}Droppables.add(this.box.leftGap,{hoverclass:"hover",onDrop:this.observers.onDrop});Droppables.add(this.box.rightGap,{hoverclass:"hover",onDrop:this.observers.onDrop});Droppables.add(this.box.type,{hoverclass:"hover",onDrop:this.observers.onDrop})},stopObserving:function(){Droppables.remove(this.box.leftGap);Droppables.remove(this.box.rightGap);Droppables.remove(this.box.type);if(this.box.del){Event.stopObserving(this.box.del,"click",this.observers.onDelete)}if(this.box.neg){Event.stopObserving(this.box.neg,"click",this.observers.onNegative)}},onDelete:function(event){var element=Event.element(event);var id=element.up(1).readAttribute("id").replace("p_","");var temp=element.up(2);temp.down().next().setOpacity("0.5");var success=function(data){$("canvas").up().update(data["view"]);$(document.body).fire("widget:deleted")}.bind(this);var failure=function(data){temp.down().next().setOpacity("1");temp.fire("widget:error",{message:"An error occured, the widget wasn't deleted"})};$(document.body).fire("widget:loading");var rule=$w($("canvas").className)[0].replace("rule_","");new Tjax.Request(this.options.url+"/update/delete",{postBody:"rule="+rule+"&pos="+id,method:"post"},success,failure)},onNegative:function(event){var button=Event.element(event);var id=button.up().readAttribute("id").replace("p_","");if(button.up().hasClassName("neg")){button.up().morph("border: 1px solid #AAAAAA;");button.up().removeClassName("neg")}else{button.up().morph("border: 1px solid #C1272D;");button.up().addClassName("neg")}var success=function(data){$(document.body).fire("widget:notted")}.bind(this);var failure=function(data){button.up().toggleClassName("neg");button.fire("widget:error",{message:"An error occured "})}.bind(this);$(document.body).fire("widget:notting");var rule=$w($("canvas").className)[0].replace("rule_","");new Tjax.Request(this.options.url+"/update/not",{postBody:"rule="+rule+"&pos="+id,method:"post"},success,failure)}});var Join=Class.create(Box,{initialize:function($super,options){this.options=Object.extend({element:false,type:"join",onChange:this.onChange,onDrop:Prototype.emptyFunction},options||{});this.create();this.addObservers()},create:function(){this.box={wrap:this.options.element}},addObservers:function(){this.box.wrap.observe("click",this.options.onChange);Droppables.add(this.box.wrap,{hoverclass:"hover",onDrop:this.options.onDrop.bind(this)})},stopObserving:function(){Event.stopObserving(this.box.wrap,"click",this.options.onChange);0;Droppables.remove(this.box.wrap)}});var Comments=Class.create({initialize:function(load){if(load!==false){this.id=$("main").down().readAttribute("id").replace("s_","");this.read();this.tabs();this.poll();this.bind();$("comment").observe("keyup",this.update.bindAsEventListener(this));$("comment").observe("click",function(){if($F("comment")=="Leave a comment on TweetMeme, it can be as many characters as you want."){$("comment").value=""}});$("post").observe("click",function(e){if($F("comment")=="Leave a comment on TweetMeme, it can be as many characters as you want."){e.stop();return }})}},bind:function(){this.comments=$$("li.comment");this.comments.each(function(item){var cobject=new Comment(item);this.data.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.disable()}});this.url_spam.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.spam()}})}.bind(this));if($("morecomments")){$("morecomments").observe("click",function(){this.more("comments")}.bind(this))}if($("moretweets")){$("moretweets").observe("click",function(){this.more("tweets")}.bind(this))}if($("tweets")){$("tweets").select(".tweet").each(function(item){var coobject=new Comment(item)})}$("post").observe("click",function(e){if(!User.get()){e.stop();new Login({onSuccess:function(){$("reply").enable();document.reply.submit()}})}})},read:function(){this.data=this.cookie("tweetmeme_tweeted_comments");this.url_spam=this.cookie("tweetmeme_reported_comments")},poll:function(){var inall=false;var all=$$(".timeframe .all").length>0?$$(".timeframe .all")[0]:false;if(all){if(all.hasClassName("selected")){inall=true}}var intime=false;var time=$$(".timeframe .time").length>0?$$(".timeframe .time")[0]:false;if(time){if(time.hasClassName("selected")){intime=true}}if($("comments")&&$$(".comments")[0].getStyle("display")!="none"&&inall&&intime){var id=$("comments").firstDescendant().readAttribute("id").substr(2);new Tjax.Request("/ajax/since/",{method:"post",postBody:"id="+id},function(data){if($$(".comments")[0].getStyle("display")!="none"){if($$(".btn.clicked").length==0){if(data!=0){data==1?body="There is "+data+" new comment waiting, click to refresh":body="There are "+data+" new comments waiting, click to refresh";if($("update")){$("update").update(body)}else{var update=new Element("a",{"id":"update","href":window.location.pathname}).update(body);$("comments").insert({"before":update})}}}}})}setTimeout(function(){this.poll()}.bind(this),30000)},save:function(id,type){var cook=new Cookie();this.read();switch(type){case"tweet":this.data.push(id);cook.create("tweetmeme_tweeted_comments",this.data.join("-"),7);break;case"urls":this.url_spam.push(id);cook.create("tweetmeme_reported_comments",this.url_spam.join("-"),7);break}},cookie:function(name){var cook=new Cookie();var variable=new Array();var data=cook.read(name);if(data!=null){variable=data.split("-")}else{variable=new Array()}return variable},more:function(type){$("more"+type).addClassName("loading");this.celements=$("more"+type).previous().select("li");switch(type){case"tweets":var url="/ajax/moretweets";var last_id=$w(this.celements[this.celements.length-1].className)[1].substr(2);var postbody="url_id="+this.id+"&from_id="+last_id;var callback=function(data){data.each(function(tweet){$("tweets").insert({bottom:tweet});var children=$("tweets").childElements();var item=children[children.length-1];var cobject=new Comment(item)}.bind(this))}.bind(this);break;case"comments":var last_id=this.celements[this.celements.length-1].readAttribute("id").substr(2);var url="/ajax/morecomments";order=$$(".order .selected")[0].innerHTML;order=="Time"?order="created_at":order="retweets";var postbody="url_id="+this.id+"&from_id="+last_id+"&order="+order;var callback=function(data){data.each(function(comment){$("comments").insert({bottom:comment});var children=$("comments").childElements();var item=children[children.length-1];var cobject=new Comment(item);this.data.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.disable()}});this.url_spam.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.spam()}});item.select(".abuse").each(function(abuse){new Abuse_item(abuse)})}.bind(this))}.bind(this);break}new Tjax.Request(url,{method:"post",postBody:postbody},function(data){callback(data);$("more"+type).removeClassName("loading");if(data.length==0){$("more"+type).remove()}$("number_"+type).innerHTML=parseInt($("number_"+type).innerHTML)+data.length;calculateHeight()}.bind(this))},tabs:function(){new Tabs("s_"+this.id,{onTabBind:function(window){if(window.getStyle("display")!="none"){this.tooltip(window)}}.bind(this),onChange:function(window){this.window=window;if(window.hasClassName("loading")){new Tjax.Request("/ajax/tab",{method:"post",postBody:"id="+this.id+"&tab="+$w(window.className)[1]},this.tab_load.bindAsEventListener(this))}else{if(window.hasClassName("comments")){$("comments").previous().insert({before:$("reply")})}else{if(window.hasClassName("tweets")){$("tweets").previous().insert({before:$("reply")})}else{if(window.hasClassName("thread")){$("thread").insert({before:$("reply")})}}}}this.tooltip(window);calculateHeight();this.poll()}.bind(this)})},tab_load:function(data){if(this.window.hasClassName("comments")||this.window.hasClassName("tweets")){if($("reply")){this.window.update(data.substr(data.lastIndexOf("</form>")));if(this.window.hasClassName("comments")){$("comments").previous().insert({before:$("reply")})}else{$("tweets").previous().insert({before:$("reply")})}$("reply").show()}else{this.window.update(data)}}else{this.window.update(data)}this.window.removeClassName("loading");this.bind();$("comments").select(".abuse").each(function(button){new Abuse_item(button)}.bind(this));this.tooltip(this.window)},tooltip:function(window){if(this.data.length==0){if($("tooltip")){$("tooltip").remove()}var tooltip=new Element("div",{"id":"tooltip"});var message=false;if(window.hasClassName("comments")||window.hasClassName("thread")){message="Click here to leave a comment on TweetMeme."}else{if(window.hasClassName("tweets")){message="Did you know you can reply to tweets in our comments?"}}if(!message){return false}tooltip.update("<div>"+message+"<span></span></div>");var offset=$("comment").cumulativeOffset();tooltip.setStyle({"top":(offset.top-75)+"px","left":(offset.left+$("comment").getWidth()-215)+"px"});$(document.body).appendChild(tooltip)}},update:function(){var textareaContent=$F("comment").replace(/<|>/g," ").replace(/\n/g,"<br />").replace(/&/g,"&amp;");if(this.twin==undefined){this.twin=new Element("div",{"style":"display:none"});$("comment").insert({"after":this.twin});this.textBoxHeight=false}this.twin.update(textareaContent+"&nbsp;");var twinHeight=this.twin.getHeight();if(this.textBoxHeight){if(this.textBoxHeight<twinHeight){$("comment").setStyle({"height":($("comment").getHeight()+16)+"px"})}else{if(this.textBoxHeight>twinHeight){$("comment").setStyle({"height":($("comment").getHeight()-16)+"px"})}}}this.textBoxHeight=this.twin.getHeight();calculateHeight()}});var Comment=Class.create(Comments,{initialize:function(comment){this.comment=comment;var reply=this.comment.select(".reply")[0];if(reply){reply.observe("click",this.reply.bindAsEventListener(this))}var retweets=this.comment.select(".retweet");if(retweets.length>0){this.span=retweets[0];this.listener=function(e){e.stop();this.request()}.bind(this);this.span.observe("click",this.listener)}},reply:function(event){if(!User.get()){window.location="/auth/signup";return }var element=Event.element(event);var id=element.up("li").readAttribute("id").substr(2);var ids=$F("reply_to");var _ids=ids.split(":");var hasid=false;_ids.each(function(_id){if(_id==id){hasid=true;throw $break}});if(hasid){return }if(ids==""){$("reply_to").writeAttribute("value",id)}else{$("reply_to").writeAttribute("value",ids+":"+id)}var name=element.up("li").select("strong")[0].innerHTML;var close=new Element("span",{"class":"r_"+id+" close"});var span=new Element("span",{"class":"name"}).update('<div class="left">'+name+"</div>");span.insert({bottom:close});new Effect.Highlight(span,{startcolor:"#DEEFC2",keepBackgroundImage:true});close.observe("click",function(e){var element=Event.element(e);var id=$w(element.className)[0].substr(2);var ids=$F("reply_to").split(":");for(var i=0;i<ids.length;i++){if(ids[i]==id){var index=i}}ids.splice(index,1);$("reply_to").writeAttribute("value",ids.join(":"));var count=span.up().select(".name").length;if(count==1){span.up(1).hide();$$("div.window").each(function(window){if(window.getStyle("display")!="none"){var win_id=$w(window.className)[1];switch(win_id){case"thread":$(win_id).insert({before:$("reply")});break;default:$(win_id).previous().insert({before:$("reply")});break}}})}span.remove()});$("to").insert({top:span});$("to").up().show();element.up("li").insert({bottom:$("reply")});$("reply").show()},spam:function(){if(this.comment.select("div.hide").length==0){var box=new Element("div",{"class":"hide"});this.comment.insert({bottom:box});this.comment.setStyle({"position":"relative"});var button=this.comment.select(".retweet")[0];button.addClassName("selected");button.update("reported")}},request:function(){if(!User.get()){new Login({onSuccess:this.request.bindAsEventListener(this)});return }var id=this.comment.readAttribute("id").substring(2);new Tjax.Request("/ajax/retweetcomment",{method:"post",postBody:"id="+id},function(data){this.response()}.bind(this),function(transport,data){if(data=="Already retweeted."){this.disable();this.save(this.comment.readAttribute("id").substr(2),"tweet")}}.bind(this))},disable:function(){this.span.addClassName("selected");this.span.innerHTML="tweeted";Event.stopObserving(this.span,"click",this.listener)},response:function(){this.comment.removeClassName("loading");var celement=this.comment.select("span")[0];celement.innerHTML=parseInt(celement.innerHTML)+1;this.disable();this.save(this.comment.readAttribute("id").substr(2),"tweet")}});var Login=Class.create({initialize:function(options){this.options={loginURL:"/auth/login",onSuccess:false,onCancel:false};this.options=Object.extend(this.options,options);if(!User.get()){new ModalPopup("",{url:"/ajax/partial?body=option&external=false",okText:"OK, take me to Twitter",onSuccess:function(){this.popup();this.check()}.bind(this),onCancel:this.options.onCancel})}},popup:function(){var top=(window.screen.height/2)-(400/2);var left=(window.screen.width/2)-(800/2);this.window=window.open("http://tweetmeme.com"+this.options.loginURL,"Login","menubar=0,resizable=0,status=0,toolbar=0,location=0,width=800,height=400,top="+top+",left="+left)},check:function(){var location=window.location.toString();if(location.match(/http:\/\/(\w+\.)?tweetmeme.com\//)){new PeriodicalExecuter(function(pe){if(User.get()){pe.stop();this.options.onSuccess();this.bind();this.update();this.window.close()}}.bind(this),0.5)}else{new PeriodicalExecuter(function(pe){if(this.window.location==null||this.window.closed==true){pe.stop();var iframe=new Element("iframe",{"src":"http://"+document.domain.toString()+"/auth/transfer","height":"0","width":"0","frameborder":"0"});$(document.body).appendChild(iframe);new PeriodicalExecuter(function(pe2){if(User.get()){pe2.stop();iframe.remove();this.options.onSuccess();this.bind();this.update()}}.bind(this),0.5)}}.bind(this),0.5)}},bind:function(){new Tweets()},update:function(){new Tjax.Request("/ajax/partial?body=user&external=false",{},function(data){$("header").select(".user")[0].update(data)})}});var Menu=Class.create({initialize:function(){this.root=$$(".menu li.root");this.sub=$$(".menu li.sub");this.bind()},bind:function(){this.root.each(function(li){li.observe("mouseout",this.mouseout.bindAsEventListener(this));li.down("a").observe("mouseover",this.mouseover.bindAsEventListener(this));li.down("a").observe("click",this.click.bindAsEventListener(this))}.bind(this))},mouseout:function(e){var element=Event.element(e);if(!element.hasClassName("root")){element=element.up("li.root")}if($(e.relatedTarget)){if(!$(e.relatedTarget).descendantOf(element)){if(element.next()){element.next().removeClassName("next")}if(element.down().next()){element.down().next().hide()}element.removeClassName("hover");if(element.down(1)){element.down(1).next().removeClassName("switch")}}}else{element.next().removeClassName("next")}},mouseover:function(e){var element=Event.element(e);var up=element.up("li");if(!up.hasClassName("first")&&!up.hasClassName("last")){if(element.up("li").next()){element.up("li").next().addClassName("next")}}},click:function(e){var element=Event.element(e);if(element.hasClassName("dropdown")){e.stop();var a=element.up("a");if(a.next()){if(a.next().getStyle("display")=="none"){this.root.each(function(item){if(item.down().next()){item.down().next().hide();item.down("span").removeClassName("switch")}item.removeClassName("hover")});element.addClassName("switch");a.up().addClassName("hover");var ul=a.next();var position=ul.clonePosition(a,{setWidth:false,setHeight:false,offsetTop:34});if(a.up().hasClassName("last")){var left=parseInt(ul.getStyle("left").replace("px",""));ul.setStyle({width:"368px",left:(left-287)+"px"})}else{var w=a.getWidth();if(w>ul.getWidth()){ul.setStyle({width:(w-2)+"px"})}}a.next().show()}else{a.next().hide();element.removeClassName("switch");a.up().removeClassName("hover")}}}},hideSub:function(e){var element=Event.element(e);if($(e.relatedTarget)){if($(e.relatedTarget).descendantOf(element.up("ul"))){}else{if(!this.ul.hasClassName("categories")){this.ul.hide();this.ul.up().removeClassName("hover")}}}}});var Rules=Class.create({initialize:function(){if(!$("rules")){return }this.ns=$F("ns");if($("ns_id")){this.ns_id=$F("ns_id")}this.rule_id=$F("rule_id");this.url="/rule/"+this.ns+"/";if(this.ns_id){this.url+=this.ns_id+"/"}this.url+=this.rule_id;this.load();$("drags").childElements().each(function(drag){new Draggable(drag,{revert:true,ghosting:true,scroll:window,onStart:function(drag,event){drag.element.setStyle({"height":"auto"})}})});document.observe("widget:deleted",this.load.bindAsEventListener(this))},load:function(){this.list={children:new Array()};var children=$("canvas").childElements();children.each(function(child){if(child.hasClassName("_rule")||child.hasClassName("join")){var dummy=this.build(child);this.list.children.push(dummy)}}.bind(this));this.reformat(this.list);Droppables.add($("canvas"),{hoverclass:"hover",onDrop:this.onDrop.bind(this)})},build:function(element){if(element.hasClassName("wrap")){var classes=$w(element.down().next().className)}else{var classes=$w(element.className)}switch(classes[0]){case"rules":var children=element.down().next().childElements();var temp=new Array();children.each(function(child){if(child.hasClassName("wrap")||child.hasClassName("join")){temp.push(this.build(child))}}.bind(this));var obj={object:new Rule({element:element,onDrop:this.onDrop.bind(this),url:this.url}),children:temp};break;case"rule":var obj={object:new Rule({element:element,onDrop:this.onDrop.bind(this),url:this.url})};break;case"join":var obj={object:new Join({element:element,onChange:this.onChange.bind(this),onDrop:this.onDrop.bind(this),url:this.url})};break}return obj},onDrop:function(drag,drop,event){var obj=function(){if($("popup")){var form=$("popup_form").serialize()}else{form=false}var success=function(data){this.popup.close();$("canvas").up().update(data["view"]);this.load()}.bind(this);var classnames=$w(drop.className);var do_switch=true;if(classnames.length>1){if(classnames[1]=="canvas"){var where="new";var pos="";do_switch=false}}if(do_switch){switch(classnames[0]){case"gap":switch(classnames[1]){case"top":var where="top";var pos=drop.next().readAttribute("id").replace("p_","");break;case"bottom":var where="bottom";var pos=drop.previous().readAttribute("id").replace("p_","");break}break;case"join":var where="bottom";var pos=drop.previous().down().next().readAttribute("id").replace("p_","");break;case"canvas":var where="new";var pos="";break;default:var where="inside";var pos=drop.readAttribute("id").replace("p_","");break}}var rule=$w($("canvas").className)[0].replace("rule_","");new Tjax.Request(this.url+"/update/insert",{method:"post",postBody:"rule="+rule+"&where="+where+"&pos="+pos+"&"+form},success);return false};this.popup=new ModalPopup("",{onSuccess:obj.bindAsEventListener(this)});new Tjax.Request(this.url+"/update/template/",{method:"post",postBody:"template="+$w(drag.className)[0]},function(data){this.popup.update(data)}.bind(this))},reformat:function(list){if(list.children){list.children.each(function(element,i){if(i!=list.children.length-1&&list.children[i+1].object.box.wrap.hasClassName("join")){element.object.box.rightGap.hide()}if(i!=0&&list.children[i-1].object.box.wrap.hasClassName("join")){element.object.box.leftGap.hide()}if(element.children){this.reformat(element)}}.bind(this))}},onChange:function(event){var but=Event.element(event);if(but.hasClassName("or")){var type="and"}else{var type="or"}var success=function(data){$("canvas").up().update(data["view"]);this.load()}.bind(this);var rule=$w($("canvas").className)[0].replace("rule_","");var id=but.up().readAttribute("id").replace("p_","");this.stopObserving(this.list);new Tjax.Request(this.url+"/update/change",{method:"post",postBody:"rule="+rule+"&pos="+id+"&type="+type},success)},stopObserving:function(list){if(list.children){list.children.each(function(element){this.stopObserving(element)}.bind(this))}if(list.object){list.object.stopObserving()}},startObserving:function(list){if(list.children){list.children.each(function(element){this.startObserving(element)}.bind(this))}if(list.object){list.object.addObservers()}}});var Stats=Class.create({initialize:function(){if(!$("analytics")){return }$$("div.help").each(function(item){new Bubble(item,{text:item.innerHTML,offsetTop:10})});$$("ul.tree").each(function(tree){new Tree(tree)});if($$("ul.tree").length>0){$$("ul.tree")[0].down(1).next(2).show();$$("ul.tree")[0].down(1).addClassName("open")}new Tabs("main");$$("span.toggle").each(function(item){item.observe("click",function(){item.up(1).next().toggle();item.toggleClassName("open")})})}});var timer=0;setInterval(function(){timer++},1000);var Tweets=Class.create({initialize:function(){this.tweets=$$("div.tweet");this.read();this.tweets.each(function(tweet,count){var tobject=new Tweet(tweet,this.tweets);this.data.each(function(id){if(id==tweet.readAttribute("id").substring(2)){tobject.disable()}});this.url_spam.each(function(id){if(id==tweet.readAttribute("id").substring(2)){tobject.spam()}});this.tweets[count]={element:tweet,object:tobject}}.bind(this))},read:function(){this.data=this.cookie("tweetmeme_tweeted");this.url_spam=this.cookie("tweetmeme_reported_urls")},save:function(id,type){var cook=new Cookie();this.read();switch(type){case"tweet":this.data.push(id);cook.create("tweetmeme_tweeted",this.data.join("-"),7);break;case"urls":this.url_spam.push(id);cook.create("tweetmeme_reported_urls",this.url_spam.join("-"),7);break}},cookie:function(name){var cook=new Cookie();var variable=new Array();var data=cook.read(name);if(data!=null){variable=data.split("-")}else{variable=new Array()}return variable}});var Tweet=Class.create(Tweets,{initialize:function(tweet,tweets){this.tweet=tweet;this.tweets=tweets;this.id=this.tweet.readAttribute("id").substr(2);this.a=this.tweet.select("a.retweet")[0];this.settings=User.settings();this.a.observe("click",this.listener.bindAsEventListener(this));this.count=parseInt(this.tweet.select("span")[0].innerHTML);if(this.tweet.hasClassName("advert")){this.advertid=$w(this.tweet.select(".advertid")[0].className)[1].substr(1)}else{this.advertid=false}var p=this.tweet.select("p")[0]},listener:function(e){e.stop();if(this.a.hasClassName("selected")){return }settings=User.settings();this.tweet.addClassName("loading");var classNames=$w(this.tweet.select(".tweetmemebutton")[0].className);var url="/ajax/partial?body=tweet&external=false&url_id="+this.id;if(classNames.length>1){var tweeter=classNames[classNames.length-1];if(tweeter!="compact"){url+="&source="+tweeter}else{url+="&source=tweetmeme"}}else{url+="&source=tweetmeme"}if(this.tweet.hasClassName("advert")){url+="&advertid="+this.advertid}var tweet=function(){this.popup=new ModalPopup("",{url:url,okText:(this.count==0)?"Tweet":"Retweet",onSuccess:function(){this.request($F("tweettext"))}.bind(this),close:false})}.bind(this);if(User.get()){if(settings["popup"]!=="no"){tweet()}else{this.request()}}else{new Login({loginURL:"/auth/login?autotweet=1",onSuccess:function(){tweet()}})}},check:function(links){var match="";for(var i=0;i<links.length;i++){var link=document.createElement("a");link.href=links[i];document.body.appendChild(link);$(link).hide();if(document.defaultView!=undefined){var color=document.defaultView.getComputedStyle(link,"").getPropertyValue("color")}else{var color=link.currentStyle["color"]}if(color=="rgb(56, 82, 90)"||color=="#666666"){match!=""?match+=","+escape(links[i]):match=escape(links[i])}$(link).remove()}return match},request:function(tweettext){var body="url_id="+this.id+"&timing="+timer;if(tweettext){body+="&tweet="+encodeURIComponent(tweettext)}if(this.advertid){body+="&advertid="+this.advertid}new Ajax.Request("/ajax/tweet",{postBody:body,onSuccess:this.response.bindAsEventListener(this)})},disable:function(){this.a.addClassName("selected");this.a.innerHTML="tweeted";Event.stopObserving(this.a,"click",this.listener);this.a.observe("click",function(e){e.stop()})},spam:function(){if(this.tweet.select("div.hide").length==0){var box=new Element("div",{"class":"hide"});this.tweet.insert({bottom:box});this.tweet.setStyle({"position":"relative"});var button=this.tweet.select("a.retweet")[0];button.addClassName("selected");button.update("reported")}},response:function(transport){this.tweet.removeClassName("loading");var data=transport.responseText.evalJSON();if(data.response!="failure"){var celement=this.tweet.select("span")[0];celement.innerHTML=parseInt(celement.innerHTML)+1;this.disable();this.save(this.tweet.readAttribute("id").substr(2),"tweet");if(this.popup){this.popup.close()}}else{if(data.data=="Already tweeted."){this.disable();this.save(this.tweet.readAttribute("id").substr(2),"tweet")}if(this.popup){$("popup").select(".feedback").invoke("remove");var error=new Element("div",{"class":"feedback"}).update(data.data);$("form").down().next().insert({after:error});$("popup").select(".loading").invoke("removeClassName","loading")}else{new Popup(data.data)}}}});var Partial=Class.create(Tweets,{initialize:function(){var func=$("partial").down().readAttribute("id");if(func){this[func]()}},follow:function(){var h_content=$("content").getHeight();var h_header=$$(".header")[0].getHeight();var h_controls=$$(".controls")[0].getHeight();this.resize(540,h_content+h_header+h_controls);if(User.followed()[$F("screen_name").toLowerCase()]!="false"){$("yes").addClassName("disable");$("yes").innerHTML="Following"}else{$("yes").observe("click",function(){$("yes").addClassName("loading");new Tjax.Request("/ajax/follow?screen_name="+$F("screen_name"),{},function(){var cook=new Cookie();cook.create("just_followed",$F("screen_name"),1);window.close()},function(data){$("yes").removeClassName("loading");var data=data.responseText.evalJSON();var errors=$("content").select(".feedback").invoke("remove");var error=new Element("div",{"class":"feedback"}).update(data.data);$("content").down().appendChild(error);this.resize(540,h_content+h_header+h_controls)}.bind(this))}.bind(this))}$("no").observe("click",function(){window.close()});new Tabs("tabs",{onChange:function(window){if(window.hasClassName("loading")){var url="/ajax/data?method="+window.readAttribute("id")+"&screen_name="+$F("screen_name");new Tjax.Request(url,{},function(data){window.update(data);window.removeClassName("loading")})}}})},tweet:function(){this.resize(500,205);$("yes").observe("click",function(e){e.stop();$("yes").addClassName("loading");var body="url_id="+$F("id");body+="&tweet="+encodeURIComponent($F("tweettext"));body+="&advertid="+$F("advertid");var links=this.check();if(links!=""){body+="&visited="+links}new Tjax.Request("/ajax/tweet",{postBody:body},function(){$("yes").removeClassName("loading");this.save($F("id"),"tweet");window.close()}.bind(this),function(data){$("yes").removeClassName("loading");var data=data.responseText.evalJSON();$("form").select(".feedback").invoke("remove");var error=new Element("div",{"class":"feedback"}).update(data.data);$("tweettext").up().insert({before:error});this.resize(500,245)}.bind(this))}.bind(this));$("no").observe("click",function(){window.close()})},option:function(){this.resize(500,350);this.settings=User.settings();if(this.settings.tweetoption=="yes"){if(this.settings.popup!="no"){if(!$("tweettext")){if($F("screen_name")){var url="http://tweetmeme.com/ajax/partial?body=follow&external=true&screen_name="+$F("screen_name");window.location=url}else{this.resize(500,205);var url="http://tweetmeme.com/ajax/partial?body=tweet&external=true";url+="&url_id="+$F("id");var params=new Array("source","service","service_api","alias","advertid","hashtags","space","advertid");params.each(function(param){if($F(param)){url+="&"+param+"="+$F(param)}});window.location=url}}}else{new Tjax.Request("/ajax/tweet",{postBody:"url_id="+$F("id")},function(data){this.save($F("id"),"tweet");window.close()}.bind(this),function(){window.close()})}}$("yes").observe("click",function(){$("yes").addClassName("loading");this.resize(800,400)}.bind(this));$("no").observe("click",function(){if(this.settings){Object.extend(this.settings,{tweetoption:"no"})}else{this.settings={tweetoption:"no"}}var bis=new Cookie();bis.create("user_settings",this.settings.parseQueryString(),99);if(User.get()){new Tjax.Request("/ajax/prefs",{method:"post",postBody:"tweetoption=no"},function(){window.close()})}else{setTimeout(function(){window.close()},500)}}.bind(this))},failed:function(){this.resize(500,405)},resize:function(width,height){if(!window.innerWidth){w=width;h=height+105}else{w=width+(window.outerWidth-window.innerWidth);h=height+(window.outerHeight-window.innerHeight)}window.resizeTo(w,h)},check:function(){var match="";var linkarray=new Array("http://tweetmeme.com","http://twitter.com");var div=new Element("div",{"id":"check"});$(document.body).appendChild(div);for(var i=0;i<linkarray.length;i++){var link=new Element("a",{"href":linkarray[i]});div.appendChild(link);if(document.defaultView!=undefined){var color=document.defaultView.getComputedStyle(link,"").getPropertyValue("color")}else{var color=link.currentStyle["color"]}if(color=="rgb(0, 0, 0)"||color=="#000000"){match!=""?match+=","+escape(linkarray[i]):match=escape(linkarray[i])}}div.remove();return match}});var User={get:function(){var c=new Cookie();var result=c.read("user_token");if(result!==null){return true}else{return false}},name:function(){var c=new Cookie();var result=c.read("user");if(result!=null){return result}return false},settings:function(){var c=new Cookie();var result=c.read("user_settings");if(result!=null){return result.parseQueryString()}return false},followed:function(){var c=new Cookie();var result=c.read("user_follow");if(result!=null){return result.parseQueryString()}return false},tweeted:function(id){var c=new Cookie();var data=c.read("tweetmeme_tweeted");if(data!=null){data=data.split("-")}else{data=new Array()}for(var i=0;i<data.length;i++){if(data[i]==id){return true}}return false}};var Users=Class.create(Comments,{initialize:function(){if(!$("user")){return }new Tabs($("user"));this.comments=$$("li.comment");this.read();this.comments.each(function(item){var cobject=new Comment(item);this.data.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.disable()}});this.url_spam.each(function(id){if(id==item.readAttribute("id").substring(2)){cobject.spam()}})}.bind(this))}});var Widget=Class.create({initialize:function(){if(!$("tweetmeme_widget")){return }this.data=$H({count:$("widget_count"),media:$("widget_media"),channel:$("channel"),category:$("category"),domain:$("domain")});this.data.each(function(pair){if(pair.value.previous(1)){pair.value.previous(1).observe("click",this.render.bindAsEventListener(this));pair.value.observe("change",this.oroptions.bindAsEventListener(this))}else{pair.value.observe("change",this.render.bindAsEventListener(this))}}.bind(this));this.style=$H({width:$("widget_width"),header:$("widget_header"),border_width:$("widget_border_width"),border_color:$("widget_border_color"),link_color:$("tweetmeme_widget"),link_color_hover:$("tweetmeme_widget")});this.style.each(function(pair){pair.value.observe("change",this.update.bindAsEventListener(this))}.bind(this));this.render();this.update();this.code()},oroptions:function(e){var element=Event.element(e);if(element.previous(1)){if($F(element.previous(1))=="on"){this.render()}}},update:function(){$("tweetmeme_widget").setStyle({width:$F(this.style.get("width"))});var windows=$("tweetmeme_widget").select('ul[class~"tabs"]');if(windows){windows.each(function(item){item.setStyle({borderLeftColor:$F(this.style.get("border_color")),borderLeftWidth:$F(this.style.get("border_width")),borderRightColor:$F(this.style.get("border_color")),borderRightWidth:$F(this.style.get("border_width"))});item.select("li").each(function(li){li.setStyle({borderBottomColor:$F(this.style.get("border_color")),borderBottomWidth:$F(this.style.get("border_width"))})}.bind(this))}.bind(this))}var title=$("tweetmeme_widget").select(".title")[0];if(title){title.setStyle({backgroundColor:$F(this.style.get("header"))})}var tabs=$("tweetmeme_widget").select(".tabs")[0];if(tabs){tabs.setStyle({borderBottomColor:$F(this.style.get("border_color")),borderBottomWidth:$F(this.style.get("border_width"))})}$("tweetmeme_widget").select("ul li").each(function(item){item.setStyle({borderBottomColor:$F(this.style.get("border_color"))})}.bind(this));this.code()},render:function(){$("tweetmeme_widget").update("");$("tweetmeme_widget").addClassName("loading");var url="/widgetdata.json?count="+$F(this.data.get("count"))+"&media="+$F(this.data.get("media"));if($F("what-category")=="on"){url+="&category="+$F("category")}else{if($F("what-channel")=="on"){url+="&channel="+$F("channel")}else{if($F("what-domain")=="on"){url+="&domain="+escape($F("domain"))}}}new Ajax.Request(url,{onSuccess:function(data){var data=data.responseText.evalJSON();var tabs=new Array("Recent","Popular");var windows=new Array();var tabitems=new Array();data.each(function(tab,i){var ul=new Element("ul");ul.addClassName("w"+i);if(i!=0){ul.hide()}if(tab["stories"]){tab["stories"].each(function(item,j){var li=new Element("li");if(j==tab["stories"].length-1){li.writeAttribute("class","last")}if(item["thumbnail"]==undefined){li.update('<a class="button_square" href="http://tweetmeme.com/story.php?url='+escape(item["url"])+'"><span class="count">'+item["url_count"]+"</span></a>"+'<a target="_blank" href="http://tweetmeme.com/story.php?url='+escape(item["url"])+'">'+item["title"]+"</a>")}else{li.update('<a href="http://tweetmeme.com/story.php?url='+escape(item["url"])+'"><img src="'+item["thumbnail"]+'" alt="*" class="thumb" /></a>'+'<a class="button_square" href="http://tweetmeme.com/story.php?url='+escape(item["url"]).replace(/\+/g,"%2b")+'"><span class="count">'+item["url_count"]+"</span></a>"+'<a target="_blank" href="http://tweetmeme.com/story.php?url='+escape(item["url"])+'">'+item["title"]+"</a>")}ul.appendChild(li)});windows.push(ul)}});if($F("what-domain")=="on"){var domain=new Element("span",{"class":"domain"}).update($F(this.data.get("domain")));$("tweetmeme_widget").appendChild(domain)}var ul=new Element("ul");ul.addClassName("tabs");tabs.each(function(item,i){var li=new Element("li");li.update(item);li.addClassName("t"+i);if(i==0){li.addClassName("selected")}tabitems.push(li);li.observe("click",function(){tabitems.invoke("removeClassName","selected");windows.invoke("hide");li.addClassName("selected");var numb=li.className.substring(0,2);for(var j=0;j<windows.length;j++){if(windows[j].className.replace("w","")==numb.replace("t","")){windows[j].style.cssText="display:auto;"}}});ul.appendChild(li)});$("tweetmeme_widget").appendChild(ul);for(i=0;i<windows.length;i++){$("tweetmeme_widget").appendChild(windows[i])}$("tweetmeme_widget").removeClassName("loading");var title=new Element("a",{"href":"http://tweetmeme.com","class":"title"});$("tweetmeme_widget").appendChild(title);var h=$("sidebar").getHeight();if($("sidebar").getHeight()>$("main").getHeight()){$("main").setStyle({"height":h+"px"})}}.bind(this)});this.code()},code:function(){var code="&lt;script type=&quot;text/javascript&quot;&gt;";if($F(this.data.get("domain").previous(1))=="on"){code+="tweetmeme_domain = '"+$F(this.data.get("domain"))+"';"}else{if($F(this.data.get("category").previous(1))=="on"){code+="tweetmeme_category = '"+$F(this.data.get("category"))+"';"}else{if($F(this.data.get("channel").previous(1))=="on"){code+="tweetmeme_channel = '"+$F(this.data.get("channel"))+"';"}}}code+="tweetmeme_width = '"+$F(this.style.get("width"))+"';"+"tweetmeme_header =  '"+$F(this.style.get("header"))+"';"+"tweetmeme_border_width = '"+$F(this.style.get("border_width"))+"';"+"tweetmeme_border_color = '"+$F(this.style.get("border_color"))+"';"+"&lt;/script&gt;"+"&lt;script type=&quot;text/javascript&quot; src=&quot;http://tweetmeme.com/i/scripts/widget.js&quot;&gt;&lt;/script&gt;";$("code").update(code)}});var ButtonForm=Class.create({initialize:function(){this.button=0;this.source="";this.shortner="";this.api_key="";this.url="";if(this.data){childData=this.data}else{childData=$H({})}this.data=childData.merge($H({stylelarge:$("tm_version_large"),stylecompact:$("tm_version_compact"),source:$("tm_source"),shortner:$("tm_url_shortner"),apikey:$("tm_api_key")}));this.data.each(function(pair){if(pair.value.previous(1)){pair.value.previous(1).observe("click",this.update.bindAsEventListener(this));pair.value.observe("change",this.oroptions.bindAsEventListener(this))}else{pair.value.observe("change",this.update.bindAsEventListener(this));pair.value.observe("keypress",this.validate.bindAsEventListener(this));pair.value.observe("keyup",this.validate.bindAsEventListener(this))}}.bind(this));this.update()},oroptions:function(e){var element=Event.element(e);if(element.previous(1)){if($F(element.previous(1))=="on"){this.update()}}},validate:function(e){if("tm_source"==e.target.id){e.target.value=e.target.value.substr(0,15);e.target.value=e.target.value.replace(/[^a-zA-Z0-9_]/g,"")}},update:function(e){if(("on"==$F("tm_version_compact"))){this.button=1;image="/images/buttoncompact.png"}else{this.button=0;image="/images/button.gif"}$("tm_preview_button").setAttribute("src",image);if(1>$F(this.data.get("source")).length){this.source="tweetmeme"}else{this.source=$F(this.data.get("source"))}$("tm_preview_source").innerHTML=this.source;switch($F(this.data.get("shortner"))){case"bit.ly":case"retwt.me":case"is.gd":case"TinyURL.com":case"ow.ly":case"tr.im":$("tm_api_key_row").hide();this.shortner=$F(this.data.get("shortner"));this.api_key=0;break;case"awe.sm":case"cli.gs":case"digg.com":case"su.pr":$("tm_api_key_row").show();this.shortner=$F(this.data.get("shortner"));this.api_key=1;break;default:$("tm_api_key_row").hide();this.shortner=0;this.api_key=0;break}$("tm_preview_url_shortner").innerHTML=(0==this.shortner)?"bit.ly":this.shortner},code:function(type,extras){var code="";var options=$H({});if(!extras){extras=$H({})}if("iframe"==type){var code="http://api.tweetmeme.com/button.js";if(0<this.url.length){options.update({url:this.url})}if(1==this.button){style="compact";var h=20;var w=90}else{style="normal";var h=61;var w=50}options.update({style:style});if("tweetmeme"!=this.source){options.update({source:$F(this.data.get("source"))})}if(0<this.shortner.length){options.update({service:$F(this.data.get("shortner"))});if(this.api_key>0){options.update({service_api:$F(this.data.get("apikey"))})}}options.update(extras);if(0<options.values().length){code+="?";options.each(function(pair){code+=(pair.key+"="+pair.value+"&")})}code='<iframe src="'+code+'" height="'+h+'" width="'+w+'" frameborder="0" scrolling="no"></iframe>'}else{if(0<this.url.length){options.update({tweetmeme_url:this.url})}if(1==this.button){options.update({tweetmeme_style:"compact"})}if("tweetmeme"!=this.source){options.update({tweetmeme_source:$F(this.data.get("source"))})}if(0<this.shortner.length){options.update({tweetmeme_service:$F(this.data.get("shortner"))});if(this.api_key>0){options.update({tweetmeme_service_api:$F(this.data.get("apikey"))})}}options.update(extras);if(0<options.values().length){options.each(function(pair){code+=(pair.key+" = '"+pair.value+"';")});code='<script type="text/javascript">'+code+"<\/script>"}code+='<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"><\/script>'}return code}});var TypePad=Class.create(ButtonForm,{update:function($super){$super();this.code()},code:function($super){var code="";code=$super();$("code").value=code}});var Blogger=Class.create(ButtonForm,{initialize:function($super){var tpl_advanced=false;var posnhor="right";var posnver="head";this.data=$H({obtemplate:$("ob_template"),posnhead:$("tm_posnhead"),posnfoot:$("tm_posnfoot"),posnleft:$("tm_posnleft"),posnright:$("tm_posnright"),generate:$("tm_generate")});$("tm_generate").observe("click",this.update.bindAsEventListener(this));$("tm_remove").observe("click",this.code.bindAsEventListener(this,1));$("tm_select").observe("click",this.selectCode.bindAsEventListener(this));$super()},validateTemplate:function(caller){var template=$("ob_template");var invalid=$("ob_error");var valid=false;invalid.hide();$("tm_success").hide();$("tm_remove").hide();$("tm_message").hide();$("ob_message").hide();$("tm_select").hide();$("tm_remove").hide();$("tm_removed").hide();$("tm_code").value="";if(0<template.value.length){match_bas=/<BlogItemTitle>/;match_adv=/<div class='post hentry uncustomized\-post\-template'>/;if(true==match_adv.test(template.value)){valid=true;this.tpl_advanced=true;this.url="<data:post.url/>"}else{if(true==match_bas.test(template.value)){valid=true;this.tpl_advanced=false;this.url="<$BlogItemPermalinkUrl$>"}else{invalid.show()}}}else{if(caller&&"tm_generate"==caller.target.id){invalid.show()}}return(valid)},checkButtonExists:function(){var template=$("ob_template");var message=$("ob_message");var remove=$("tm_remove");var removed=$("tm_removed");var pattern=/<span id="tweetmeme-blogger-gadget" style="float: (left|right);[^>]*>.+button\.js.+<\/span>/;message.hide();remove.hide();removed.hide();matches=template.value.match(pattern);if(matches&&0<matches.length){message.show();remove.show()}},update:function($super,e){if(!this.validateTemplate(e)){return }this.checkButtonExists();if(("on"==$F("tm_posnleft"))){this.posnhor="left"}else{this.posnhor="right"}if(("on"==$F("tm_posnfoot"))){this.posnver="foot"}else{this.posnver="head"}$super(e);if(e&&"tm_generate"==e.target.id){this.code()}else{$("tm_message").show()}},code:function($super,blnRemove){var tm_code="";var super_code="";var tm_template="";var ob_template=$("ob_template").value;var success=$("tm_success");var select=$("tm_select");var remove=$("tm_remove");var removed=$("tm_removed");var message=$("tm_message");ob_template=ob_template.replace(/<span id="tweetmeme-blogger-gadget" style="float: (left|right);[^>]*>.+button\.js.+<\/span>/g,"");if(blnRemove){tm_template=ob_template;success.hide();message.hide();removed.show()}else{if(0==this.tpl_advanced){super_code=$super("iframe");if("foot"==this.posnver){ob_piece='<p class="post-footer">';tpl_match=/<p class="post-footer">/}else{ob_piece="<BlogItemTitle>";tpl_match=/<BlogItemTitle>/}}else{super_code=$super();if("foot"==this.posnver){ob_piece="<div class='post-footer-line post-footer-line-1'>";tpl_match=/<div class='post-footer-line post-footer-line-1'>/}else{ob_piece="<div class='post hentry uncustomized-post-template'>";tpl_match=/<div class='post hentry uncustomized\-post\-template'>/}}tm_code="\n\n\n"+'<span id="tweetmeme-blogger-gadget" style="float: '+this.posnhor+'; margin: 5px; vertical-align: middle; background: transparent;">';tm_code+=super_code;tm_code+="</span>"+"\n\n\n";split=ob_template.split(tpl_match);tm_template=split[0];tm_template+=ob_piece;tm_template+=tm_code;tm_template+=split[1];success.show();removed.hide()}remove.show();select.show();$("tm_code").value=tm_template},selectCode:function(){$("tm_code").activate()}});var Adverts=Class.create({initialize:function(){this.adverts=$$(".advert");this.adverts.each(function(ad){var title=ad.select("h3 a");if(title.length>0){title[0].observe("click",this.onclick.bindAsEventListener(this))}}.bind(this))},onclick:function(e){e.stop();var element=Event.element(e);setTimeout(function(){window.location=element.readAttribute("href")},1000);var id=element.up(".tweet").readAttribute("id").substr(2);new Tjax.Request("/ajax",{postBody:"id="+id},function(){window.location=element.readAttribute("href")})}});var Advert=Class.create({initialize:function(){$H({flash:$("flash"),banner:$("banner"),story:$("story"),code:$("code"),rss:$("rss"),channel:$("channel")}).each(function(pair){pair.value.observe("click",this.type.bindAsEventListener(this))}.bind(this));this.fields=$H({target:$("target"),title:$("adtitle"),excerpt:$("adexcerpt"),image:$("adimage"),submit:$("submit")});$("lookup").observe("click",this.lookup.bindAsEventListener(this));$("target").observe("change",this.lookup.bindAsEventListener(this))},type:function(e){var element=Event.element(e);types=Form.getInputs("advert_edit","radio","type");types.each(function(radio){if(radio==element){if("code"==radio.id){$("frm_code").show();$("frm_fields").hide()}else{if("rss"==radio.id){$("frm_rss").show();$("frm_fields").hide()}else{if("channel"==radio.id){$("frm_channel").show();$("frm_fields").hide()}else{$("frm_code").hide();$("frm_fields").show();$("frm_"+radio.id).show();switch(radio.id){case"flash":case"banner":$("button").show();break;default:$("button").hide();break}}}}}else{$("frm_"+radio.id).hide()}})},lookup:function(e){$("lookup").toggle();$("loading").toggle();fields=this.fields;fields.each(function(field){field.value.disable()});var url=$("target").value;new Ajax.Request("/ajax/url?url="+url,{method:"get",onSuccess:function(transport){data=transport.responseText.evalJSON();if(data.story){Form.Element.setValue("surl",data.story.url);Form.Element.setValue("url",data.story.url);Form.Element.setValue("adtitle",data.story.title);if(data.story.excerpt){Form.Element.setValue("adexcerpt",data.story.excerpt)}if(data.story.thumbnail){Form.Element.setValue("adimage",data.story.thumbnail)}}else{Form.Element.setValue("surl",data.comment);Form.Element.setValue("url","")}fields.each(function(field){field.value.enable()});$("lookup").toggle();$("loading").toggle();fields.get("target").activate()}})}});var Follow=Class.create({initialize:function(){this.buttons=$("content").select(".user_follow");this.buttons.each(function(button){new FollowButton(button)})},check:function(screen_name){var cookie=new Cookie();var data=cookie.read("user_follow");if(data){var data=data.parseQueryString();if(data[screen_name]&&data[screen_name]=="true"){return true}else{if(data[screen_name]&&data[screen_name]=="false"){return false}}}return null},update:function(screen_name,relationship){var cook=new Cookie();var following=cook.read("user_follow");if(following==null){following=""}following=following.parseQueryString();if(following[screen_name]==undefined){following[screen_name]=relationship}var data_array=new Array();for(i in following){data_array.push(i+"="+following[i])}cook.create("user_follow",data_array.join("&"),1)}});var FollowButton=Class.create(Follow,{initialize:function(button){this.button=button;this.buttonObjects={follow:button.select("a.follow")[0],avatar:button.select("a.profile_image")[0]};this.screen_name=this.buttonObjects.follow.readAttribute("href").replace("http://twitter.com/","");$H(this.buttonObjects).each(function(item){item.value.observe("click",this.click.bindAsEventListener(this))}.bind(this));var followed=this.check(this.screen_name);if(followed===true){this.followed()}else{if(followed===null){var user=User.name();if(user){Twitjax.create("http://twitter.com/friendships/show.json?target_screen_name="+this.screen_name+"&source_screen_name="+user,{onSuccess:function(data){this.update(this.screen_name,data.relationship.source.following)}.bind(this)})}}}},click:function(e){e.stop();if(!this.button.hasClassName("selected")){if(!this.check(this.screen_name)){if(User.get()){this.popup()}else{new Login({loginURL:"/auth/login?autotweet=1",onSuccess:this.popup.bindAsEventListener(this)})}return }}this.followed()},popup:function(){new ModalPopup("",{width:600,url:this.buttonObjects.avatar.readAttribute("href"),okText:"Follow",onSuccess:this.follow.bindAsEventListener(this),onLoad:function(){new Tabs("popup",{onChange:function(window){if(window.hasClassName("loading")){var url="/ajax/data?method="+window.readAttribute("id")+"&screen_name="+this.screen_name;new Tjax.Request(url,{},function(data){window.update(data);window.removeClassName("loading")})}}.bind(this)})}.bind(this)})},follow:function(){var url="/ajax/follow?screen_name="+this.screen_name;new Tjax.Request(url,{},this.followed.bindAsEventListener(this))},followed:function(){this.button.removeClassName("loading");this.buttonObjects.follow.update("Followed").addClassName("selected");this.update(this.screen_name,"true")}});var Twitjax={queue:new Array(),count:0,create:function(url,options){var found=this.queue.find(function(n){if(n.url==url){return true}});if(!found){this.queue.push({url:url,options:options})}new PeriodicalExecuter(this.request.bindAsEventListener(this),0.5)},request:function(pe){if(this.queue.length>0&&!this.running){this.running=true;this.count++;this.item=this.queue.shift();var url=this.item.url+"&callback=Twitjax.callback";this.script=new Element("script",{"src":url,"height":0,"width":0,"id":"call_"+this.count});$(document.body).insert({bottom:this.script});var count=this.count;setTimeout(function(){if($("call_"+count)){if(this.item.options.onFailure){this.item.options.onFailure()}if($("call_"+count).parentNode){$("call_"+count).remove()}this.running=false}}.bind(this),10000)}},callback:function(data){if(this.script){if(this.script.parentNode){this.script.remove();this.script=null}}if(data.error){new Popup("<h1>Error</h1><p>Opps, look likes we have an error. Twitter says: "+data.error+"</p>");return false}if(this.item.options.onSuccess){this.item.options.onSuccess(data)}this.running=false}};document.observe("dom:loaded",function(){if($("partial")){new Partial();return }new Menu();new Abuse();new Tweets();new Follow();new Users();new Admin();new Adverts();new Stats();new Rules();new Widget();if($$(".story").length>0){new Comments()}if($("tweetmeme_typepad")){new TypePad()}if($("tweetmeme_blogger")){new Blogger()}if($("advert_edit")){new Advert()}if($("chicklet")){new Control.ColorPicker("colour",{IMAGE_BASE:"/images/colorpicker/"});$("refresh").observe("click",function(){var url="http://api.tweetmeme.com/domaincount.gif?domain="+$F("domain")+"&bgcolor="+$F("colour");var img=new Element("img",{"src":url,"alt":"chicklet"});var code="&lt;a href=&quot;http://tweetmeme.com/domain/"+$F("domain")+"&quot;&gt;&lt;img src=&quot;http://api.tweetmeme.com/domaincount.gif?domain="+$F("domain")+"&amp;bgcolor="+$F("colour")+"&quot; alt=&quot;TweetMeme Chicklet&quot; /&gt;&lt;/a&gt;";$("code").update(code);$("image").update().insert({top:img})})}if($("login")){$("login").observe("click",function(e){e.stop();new Login({onSuccess:function(){window.location=window.location}})})}$$("a.signin").each(function(button){button.observe("click",function(e){e.stop();new Login()})});calculateHeight()});function calculateHeight(){if($("sidebar")){var h=$("sidebar").getHeight();$("main").setStyle({"height":"auto"});if(h>$("main").getHeight()){$("main").setStyle({"height":(h-40)+"px"})}else{$("main").setStyle({"height":"auto"})}}};